From bfd044a2cb89acd258c63f9d20af132838caa68c Mon Sep 17 00:00:00 2001 From: nzasch <> Date: Sun, 2 Jul 2023 17:09:41 +0200 Subject: [PATCH] primo commit --- README.md | 1 + cat.png | Bin 0 -> 12929 bytes cat.svg | 61 + squeow_hw/bom/ibom.html | 4345 +++ squeow_hw/fp-info-cache | 1947 + squeow_hw/jlcpcb.zip | Bin 0 -> 35247 bytes squeow_hw/jlcpcb/squeow-B_Cu.gbl | 285 + squeow_hw/jlcpcb/squeow-B_Mask.gbs | 15 + squeow_hw/jlcpcb/squeow-B_Paste.gbp | 15 + squeow_hw/jlcpcb/squeow-B_Silkscreen.gbo | 16 + squeow_hw/jlcpcb/squeow-Edge_Cuts.gm1 | 39 + squeow_hw/jlcpcb/squeow-F_Cu.gtl | 3374 ++ squeow_hw/jlcpcb/squeow-F_Mask.gts | 226 + squeow_hw/jlcpcb/squeow-F_Paste.gtp | 218 + squeow_hw/jlcpcb/squeow-F_Silkscreen.gto | 1194 + squeow_hw/jlcpcb/squeow-NPTH-drl_map.gbr | 110 + squeow_hw/jlcpcb/squeow-NPTH.drl | 13 + squeow_hw/jlcpcb/squeow-PTH-drl_map.gbr | 481 + squeow_hw/jlcpcb/squeow-PTH.drl | 32 + .../squeow-2022-10-04_134218.zip | Bin 0 -> 150971 bytes .../squeow-2022-10-04_141706.zip | Bin 0 -> 151699 bytes .../squeow-2022-10-05_104657.zip | Bin 0 -> 77310 bytes .../squeow-2022-10-05_140432.zip | Bin 0 -> 130374 bytes .../squeow-2022-10-05_145900.zip | Bin 0 -> 77289 bytes .../squeow-2022-10-07_223214.zip | Bin 0 -> 77289 bytes .../squeow-2022-10-10_123446.zip | Bin 0 -> 77365 bytes .../squeow-2022-10-10_124608.zip | Bin 0 -> 77271 bytes .../squeow-2022-10-28_154142.zip | Bin 0 -> 77271 bytes .../squeow-2022-10-28_192108.zip | Bin 0 -> 77271 bytes .../squeow-2022-11-11_211649.zip | Bin 0 -> 130350 bytes .../squeow-2022-11-11_212452.zip | Bin 0 -> 77256 bytes .../squeow-2022-11-11_214509.zip | Bin 0 -> 77256 bytes .../squeow-2022-11-13_012818.zip | Bin 0 -> 77256 bytes .../squeow-2022-11-15_134144.zip | Bin 0 -> 77256 bytes .../squeow-2022-11-15_134823.zip | Bin 0 -> 77256 bytes .../squeow-2022-11-18_190348.zip | Bin 0 -> 75346 bytes .../squeow-2022-11-18_202540.zip | Bin 0 -> 97212 bytes .../squeow-2023-01-01_011521.zip | Bin 0 -> 75731 bytes .../squeow-2023-03-15_221901.zip | Bin 0 -> 75731 bytes .../squeow-2023-06-30_110458.zip | Bin 0 -> 75731 bytes .../squeow-2023-06-30_111541.zip | Bin 0 -> 76188 bytes .../squeow-2023-06-30_185236.zip | Bin 0 -> 76310 bytes .../squeow-2023-06-30_185854.zip | Bin 0 -> 76310 bytes .../squeow-2023-06-30_201736.zip | Bin 0 -> 75092 bytes .../squeow-2023-07-01_181420.zip | Bin 0 -> 75092 bytes squeow_hw/squeow.kicad_pcb | 3901 ++ squeow_hw/squeow.kicad_prl | 77 + squeow_hw/squeow.kicad_pro | 507 + squeow_hw/squeow.kicad_sch | 3923 ++ squeow_mod/_autosave-squeow_mod.kicad_pcb | 2067 + squeow_mod/fp-info-cache | 435 + squeow_mod/squeow_mod-B_Cu.gbr | 129 + squeow_mod/squeow_mod-B_Mask.gbr | 92 + squeow_mod/squeow_mod-B_Paste.gbr | 15 + squeow_mod/squeow_mod-B_Silkscreen.gbr | 15 + squeow_mod/squeow_mod-Edge_Cuts.gbr | 23 + squeow_mod/squeow_mod-F_Cu.gbr | 719 + squeow_mod/squeow_mod-F_Mask.gbr | 234 + squeow_mod/squeow_mod-F_Paste.gbr | 136 + squeow_mod/squeow_mod-F_Silkscreen.gbr | 1579 + squeow_mod/squeow_mod-NPTH.drl | 23 + squeow_mod/squeow_mod-PTH.drl | 45 + .../squeow_mod-2022-09-13_162503.zip | Bin 0 -> 943 bytes .../squeow_mod-2022-11-11_220552.zip | Bin 0 -> 67058 bytes .../squeow_mod-2022-11-11_221817.zip | Bin 0 -> 69588 bytes .../squeow_mod-2022-11-11_223404.zip | Bin 0 -> 74602 bytes .../squeow_mod-2022-11-11_224225.zip | Bin 0 -> 74715 bytes .../squeow_mod-2022-11-11_225139.zip | Bin 0 -> 49843 bytes .../squeow_mod-2022-11-13_011331.zip | Bin 0 -> 78013 bytes .../squeow_mod-2022-11-13_012331.zip | Bin 0 -> 78414 bytes .../squeow_mod-2022-11-13_013833.zip | Bin 0 -> 72488 bytes .../squeow_mod-2022-11-13_014437.zip | Bin 0 -> 72713 bytes .../squeow_mod-2022-11-13_015035.zip | Bin 0 -> 44173 bytes .../squeow_mod-2022-11-15_134056.zip | Bin 0 -> 44184 bytes .../squeow_mod-2023-03-15_222431.zip | Bin 0 -> 44185 bytes .../squeow_mod-2023-06-30_111052.zip | Bin 0 -> 44185 bytes .../squeow_mod-2023-06-30_120439.zip | Bin 0 -> 74847 bytes .../squeow_mod-2023-06-30_121643.zip | Bin 0 -> 74298 bytes .../squeow_mod-2023-06-30_151038.zip | Bin 0 -> 74038 bytes squeow_mod/squeow_mod-job.gbrjob | 125 + squeow_mod/squeow_mod.kicad_pcb | 1656 + squeow_mod/squeow_mod.kicad_prl | 77 + squeow_mod/squeow_mod.kicad_pro | 454 + squeow_mod/squeow_mod.kicad_sch | 2270 ++ squeow_sw/.mxproject | 14 + .../Device/ST/STM32G4xx/Include/stm32g431xx.h | 13139 +++++++ .../Device/ST/STM32G4xx/Include/stm32g4xx.h | 259 + .../ST/STM32G4xx/Include/system_stm32g4xx.h | 104 + .../CMSIS/Device/ST/STM32G4xx/LICENSE.txt | 6 + squeow_sw/Drivers/CMSIS/Include/cmsis_armcc.h | 894 + .../Drivers/CMSIS/Include/cmsis_armclang.h | 1444 + .../CMSIS/Include/cmsis_armclang_ltm.h | 1891 + .../Drivers/CMSIS/Include/cmsis_compiler.h | 283 + squeow_sw/Drivers/CMSIS/Include/cmsis_gcc.h | 2168 ++ .../Drivers/CMSIS/Include/cmsis_iccarm.h | 964 + .../Drivers/CMSIS/Include/cmsis_version.h | 39 + .../Drivers/CMSIS/Include/core_armv81mml.h | 2968 ++ .../Drivers/CMSIS/Include/core_armv8mbl.h | 1921 + .../Drivers/CMSIS/Include/core_armv8mml.h | 2835 ++ squeow_sw/Drivers/CMSIS/Include/core_cm0.h | 952 + .../Drivers/CMSIS/Include/core_cm0plus.h | 1085 + squeow_sw/Drivers/CMSIS/Include/core_cm1.h | 979 + squeow_sw/Drivers/CMSIS/Include/core_cm23.h | 1996 + squeow_sw/Drivers/CMSIS/Include/core_cm3.h | 1937 + squeow_sw/Drivers/CMSIS/Include/core_cm33.h | 2910 ++ squeow_sw/Drivers/CMSIS/Include/core_cm35p.h | 2910 ++ squeow_sw/Drivers/CMSIS/Include/core_cm4.h | 2124 ++ squeow_sw/Drivers/CMSIS/Include/core_cm7.h | 2725 ++ squeow_sw/Drivers/CMSIS/Include/core_sc000.h | 1025 + squeow_sw/Drivers/CMSIS/Include/core_sc300.h | 1912 + squeow_sw/Drivers/CMSIS/Include/mpu_armv7.h | 272 + squeow_sw/Drivers/CMSIS/Include/mpu_armv8.h | 346 + squeow_sw/Drivers/CMSIS/Include/tz_context.h | 70 + squeow_sw/Drivers/CMSIS/LICENSE.txt | 201 + .../Inc/Legacy/stm32_hal_legacy.h | 3912 ++ .../STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h | 624 + .../Inc/stm32g4xx_hal_adc.h | 2034 + .../Inc/stm32g4xx_hal_adc_ex.h | 1393 + .../Inc/stm32g4xx_hal_cortex.h | 419 + .../Inc/stm32g4xx_hal_def.h | 209 + .../Inc/stm32g4xx_hal_dma.h | 852 + .../Inc/stm32g4xx_hal_dma_ex.h | 264 + .../Inc/stm32g4xx_hal_exti.h | 315 + .../Inc/stm32g4xx_hal_flash.h | 1017 + .../Inc/stm32g4xx_hal_flash_ex.h | 89 + .../Inc/stm32g4xx_hal_flash_ramfunc.h | 74 + .../Inc/stm32g4xx_hal_gpio.h | 326 + .../Inc/stm32g4xx_hal_gpio_ex.h | 340 + .../Inc/stm32g4xx_hal_i2c.h | 835 + .../Inc/stm32g4xx_hal_i2c_ex.h | 175 + .../Inc/stm32g4xx_hal_pcd.h | 1003 + .../Inc/stm32g4xx_hal_pcd_ex.h | 88 + .../Inc/stm32g4xx_hal_pwr.h | 411 + .../Inc/stm32g4xx_hal_pwr_ex.h | 817 + .../Inc/stm32g4xx_hal_rcc.h | 3406 ++ .../Inc/stm32g4xx_hal_rcc_ex.h | 1606 + .../Inc/stm32g4xx_hal_tim.h | 2631 ++ .../Inc/stm32g4xx_hal_tim_ex.h | 2138 ++ .../Inc/stm32g4xx_hal_uart.h | 1723 + .../Inc/stm32g4xx_hal_uart_ex.h | 651 + .../Inc/stm32g4xx_ll_adc.h | 8183 ++++ .../Inc/stm32g4xx_ll_bus.h | 1680 + .../Inc/stm32g4xx_ll_cortex.h | 637 + .../Inc/stm32g4xx_ll_crs.h | 781 + .../Inc/stm32g4xx_ll_dma.h | 2578 ++ .../Inc/stm32g4xx_ll_dmamux.h | 2006 + .../Inc/stm32g4xx_ll_exti.h | 1422 + .../Inc/stm32g4xx_ll_gpio.h | 994 + .../Inc/stm32g4xx_ll_i2c.h | 2272 ++ .../Inc/stm32g4xx_ll_lpuart.h | 2650 ++ .../Inc/stm32g4xx_ll_pwr.h | 1602 + .../Inc/stm32g4xx_ll_rcc.h | 2998 ++ .../Inc/stm32g4xx_ll_system.h | 1516 + .../Inc/stm32g4xx_ll_tim.h | 6716 ++++ .../Inc/stm32g4xx_ll_usart.h | 4401 +++ .../Inc/stm32g4xx_ll_usb.h | 239 + .../Inc/stm32g4xx_ll_utils.h | 317 + .../Drivers/STM32G4xx_HAL_Driver/LICENSE.txt | 6 + .../STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c | 772 + .../Src/stm32g4xx_hal_adc.c | 3682 ++ .../Src/stm32g4xx_hal_adc_ex.c | 2373 ++ .../Src/stm32g4xx_hal_cortex.c | 517 + .../Src/stm32g4xx_hal_dma.c | 1110 + .../Src/stm32g4xx_hal_dma_ex.c | 298 + .../Src/stm32g4xx_hal_exti.c | 639 + .../Src/stm32g4xx_hal_flash.c | 768 + .../Src/stm32g4xx_hal_flash_ex.c | 1414 + .../Src/stm32g4xx_hal_flash_ramfunc.c | 253 + .../Src/stm32g4xx_hal_gpio.c | 532 + .../Src/stm32g4xx_hal_i2c.c | 6884 ++++ .../Src/stm32g4xx_hal_i2c_ex.c | 368 + .../Src/stm32g4xx_hal_pcd.c | 2222 ++ .../Src/stm32g4xx_hal_pcd_ex.c | 335 + .../Src/stm32g4xx_hal_pwr.c | 652 + .../Src/stm32g4xx_hal_pwr_ex.c | 1182 + .../Src/stm32g4xx_hal_rcc.c | 1401 + .../Src/stm32g4xx_hal_rcc_ex.c | 1825 + .../Src/stm32g4xx_hal_tim.c | 8108 ++++ .../Src/stm32g4xx_hal_tim_ex.c | 3701 ++ .../Src/stm32g4xx_hal_uart.c | 4613 +++ .../Src/stm32g4xx_hal_uart_ex.c | 1018 + .../Src/stm32g4xx_ll_adc.c | 1425 + .../Src/stm32g4xx_ll_usb.c | 822 + squeow_sw/Inc/main.h | 87 + squeow_sw/Inc/si5351.h | 36 + squeow_sw/Inc/squeow.h | 23 + squeow_sw/Inc/stm32g4xx_hal_conf.h | 380 + squeow_sw/Inc/stm32g4xx_it.h | 68 + squeow_sw/Inc/usb_device.h | 103 + squeow_sw/Inc/usbd_audio_if.h | 137 + squeow_sw/Inc/usbd_conf.h | 177 + squeow_sw/Inc/usbd_desc.h | 143 + squeow_sw/Makefile | 210 + .../Class/AUDIO/Inc/usbd_audio.h | 218 + .../Class/AUDIO/Src/usbd_audio.c | 873 + .../Core/Inc/usbd_core.h | 158 + .../Core/Inc/usbd_ctlreq.h | 103 + .../Core/Inc/usbd_def.h | 420 + .../Core/Inc/usbd_ioreq.h | 114 + .../Core/Src/usbd_core.c | 694 + .../Core/Src/usbd_ctlreq.c | 948 + .../Core/Src/usbd_ioreq.c | 226 + squeow_sw/STM32G431KBTx_FLASH.ld | 189 + squeow_sw/Src/main.c | 628 + squeow_sw/Src/si5351.c | 182 + squeow_sw/Src/squeow.c | 83 + squeow_sw/Src/stm32g4xx_hal_msp.c | 489 + squeow_sw/Src/stm32g4xx_it.c | 232 + squeow_sw/Src/system_stm32g4xx.c | 285 + squeow_sw/Src/usb_device.c | 97 + squeow_sw/Src/usbd_audio_if.c | 285 + squeow_sw/Src/usbd_conf.c | 795 + squeow_sw/Src/usbd_desc.c | 396 + squeow_sw/build/main.d | 81 + squeow_sw/build/main.lst | 2832 ++ squeow_sw/build/main.o | Bin 0 -> 33552 bytes squeow_sw/build/si5351.d | 75 + squeow_sw/build/si5351.lst | 1331 + squeow_sw/build/si5351.o | Bin 0 -> 19896 bytes squeow_sw/build/squeow.d | 75 + squeow_sw/build/squeow.lst | 623 + squeow_sw/build/squeow.o | Bin 0 -> 9896 bytes squeow_sw/build/squeow_codice.bin | Bin 0 -> 33232 bytes squeow_sw/build/squeow_codice.elf | Bin 0 -> 671888 bytes squeow_sw/build/squeow_codice.hex | 2083 ++ squeow_sw/build/squeow_codice.map | 4659 +++ squeow_sw/build/startup_stm32g431xx.d | 1 + squeow_sw/build/startup_stm32g431xx.o | Bin 0 -> 6716 bytes squeow_sw/build/stm32g4xx_hal.d | 73 + squeow_sw/build/stm32g4xx_hal.lst | 2204 ++ squeow_sw/build/stm32g4xx_hal.o | Bin 0 -> 24220 bytes squeow_sw/build/stm32g4xx_hal_adc.d | 74 + squeow_sw/build/stm32g4xx_hal_adc.lst | 22275 +++++++++++ squeow_sw/build/stm32g4xx_hal_adc.o | Bin 0 -> 78924 bytes squeow_sw/build/stm32g4xx_hal_adc_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_adc_ex.lst | 17638 +++++++++ squeow_sw/build/stm32g4xx_hal_adc_ex.o | Bin 0 -> 71060 bytes squeow_sw/build/stm32g4xx_hal_cortex.d | 74 + squeow_sw/build/stm32g4xx_hal_cortex.lst | 5185 +++ squeow_sw/build/stm32g4xx_hal_cortex.o | Bin 0 -> 25756 bytes squeow_sw/build/stm32g4xx_hal_dma.d | 74 + squeow_sw/build/stm32g4xx_hal_dma.lst | 3886 ++ squeow_sw/build/stm32g4xx_hal_dma.o | Bin 0 -> 22552 bytes squeow_sw/build/stm32g4xx_hal_dma_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_dma_ex.lst | 1981 + squeow_sw/build/stm32g4xx_hal_dma_ex.o | Bin 0 -> 10736 bytes squeow_sw/build/stm32g4xx_hal_exti.d | 74 + squeow_sw/build/stm32g4xx_hal_exti.lst | 1855 + squeow_sw/build/stm32g4xx_hal_exti.o | Bin 0 -> 16980 bytes squeow_sw/build/stm32g4xx_hal_flash.d | 74 + squeow_sw/build/stm32g4xx_hal_flash.lst | 3454 ++ squeow_sw/build/stm32g4xx_hal_flash.o | Bin 0 -> 18448 bytes squeow_sw/build/stm32g4xx_hal_flash_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_flash_ex.lst | 4194 +++ squeow_sw/build/stm32g4xx_hal_flash_ex.o | Bin 0 -> 25116 bytes squeow_sw/build/stm32g4xx_hal_flash_ramfunc.d | 74 + .../build/stm32g4xx_hal_flash_ramfunc.lst | 236 + squeow_sw/build/stm32g4xx_hal_flash_ramfunc.o | Bin 0 -> 3964 bytes squeow_sw/build/stm32g4xx_hal_gpio.d | 74 + squeow_sw/build/stm32g4xx_hal_gpio.lst | 1691 + squeow_sw/build/stm32g4xx_hal_gpio.o | Bin 0 -> 13744 bytes squeow_sw/build/stm32g4xx_hal_i2c.d | 74 + squeow_sw/build/stm32g4xx_hal_i2c.lst | 25797 +++++++++++++ squeow_sw/build/stm32g4xx_hal_i2c.o | Bin 0 -> 135312 bytes squeow_sw/build/stm32g4xx_hal_i2c_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_i2c_ex.lst | 925 + squeow_sw/build/stm32g4xx_hal_i2c_ex.o | Bin 0 -> 13644 bytes squeow_sw/build/stm32g4xx_hal_msp.d | 74 + squeow_sw/build/stm32g4xx_hal_msp.lst | 1953 + squeow_sw/build/stm32g4xx_hal_msp.o | Bin 0 -> 30676 bytes squeow_sw/build/stm32g4xx_hal_pcd.d | 74 + squeow_sw/build/stm32g4xx_hal_pcd.lst | 7846 ++++ squeow_sw/build/stm32g4xx_hal_pcd.o | Bin 0 -> 51184 bytes squeow_sw/build/stm32g4xx_hal_pcd_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_pcd_ex.lst | 970 + squeow_sw/build/stm32g4xx_hal_pcd_ex.o | Bin 0 -> 13200 bytes squeow_sw/build/stm32g4xx_hal_pwr.d | 74 + squeow_sw/build/stm32g4xx_hal_pwr.lst | 1406 + squeow_sw/build/stm32g4xx_hal_pwr.o | Bin 0 -> 14356 bytes squeow_sw/build/stm32g4xx_hal_pwr_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_pwr_ex.lst | 3933 ++ squeow_sw/build/stm32g4xx_hal_pwr_ex.o | Bin 0 -> 27596 bytes squeow_sw/build/stm32g4xx_hal_rcc.d | 74 + squeow_sw/build/stm32g4xx_hal_rcc.lst | 5028 +++ squeow_sw/build/stm32g4xx_hal_rcc.o | Bin 0 -> 27248 bytes squeow_sw/build/stm32g4xx_hal_rcc_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_rcc_ex.lst | 5781 +++ squeow_sw/build/stm32g4xx_hal_rcc_ex.o | Bin 0 -> 35292 bytes squeow_sw/build/stm32g4xx_hal_tim.d | 74 + squeow_sw/build/stm32g4xx_hal_tim.lst | 31027 ++++++++++++++++ squeow_sw/build/stm32g4xx_hal_tim.o | Bin 0 -> 165112 bytes squeow_sw/build/stm32g4xx_hal_tim_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_tim_ex.lst | 14004 +++++++ squeow_sw/build/stm32g4xx_hal_tim_ex.o | Bin 0 -> 87236 bytes squeow_sw/build/stm32g4xx_hal_uart.d | 74 + squeow_sw/build/stm32g4xx_hal_uart.lst | 24070 ++++++++++++ squeow_sw/build/stm32g4xx_hal_uart.o | Bin 0 -> 158440 bytes squeow_sw/build/stm32g4xx_hal_uart_ex.d | 74 + squeow_sw/build/stm32g4xx_hal_uart_ex.lst | 4750 +++ squeow_sw/build/stm32g4xx_hal_uart_ex.o | Bin 0 -> 30860 bytes squeow_sw/build/stm32g4xx_it.d | 76 + squeow_sw/build/stm32g4xx_it.lst | 563 + squeow_sw/build/stm32g4xx_it.o | Bin 0 -> 14592 bytes squeow_sw/build/stm32g4xx_ll_adc.d | 2 + squeow_sw/build/stm32g4xx_ll_adc.lst | 30 + squeow_sw/build/stm32g4xx_ll_adc.o | Bin 0 -> 1116 bytes squeow_sw/build/stm32g4xx_ll_usb.d | 74 + squeow_sw/build/stm32g4xx_ll_usb.lst | 5711 +++ squeow_sw/build/stm32g4xx_ll_usb.o | Bin 0 -> 44576 bytes squeow_sw/build/system_stm32g4xx.d | 73 + squeow_sw/build/system_stm32g4xx.lst | 570 + squeow_sw/build/system_stm32g4xx.o | Bin 0 -> 6984 bytes squeow_sw/build/usb_device.d | 96 + squeow_sw/build/usb_device.lst | 245 + squeow_sw/build/usb_device.o | Bin 0 -> 8068 bytes squeow_sw/build/usbd_audio.d | 89 + squeow_sw/build/usbd_audio.lst | 2657 ++ squeow_sw/build/usbd_audio.o | Bin 0 -> 26716 bytes squeow_sw/build/usbd_audio_if.d | 87 + squeow_sw/build/usbd_audio_if.lst | 588 + squeow_sw/build/usbd_audio_if.o | Bin 0 -> 11388 bytes squeow_sw/build/usbd_conf.d | 91 + squeow_sw/build/usbd_conf.lst | 2810 ++ squeow_sw/build/usbd_conf.o | Bin 0 -> 45340 bytes squeow_sw/build/usbd_core.d | 85 + squeow_sw/build/usbd_core.lst | 2360 ++ squeow_sw/build/usbd_core.o | Bin 0 -> 26720 bytes squeow_sw/build/usbd_ctlreq.d | 87 + squeow_sw/build/usbd_ctlreq.lst | 4356 +++ squeow_sw/build/usbd_ctlreq.o | Bin 0 -> 35728 bytes squeow_sw/build/usbd_desc.d | 88 + squeow_sw/build/usbd_desc.lst | 1131 + squeow_sw/build/usbd_desc.o | Bin 0 -> 13676 bytes squeow_sw/build/usbd_ioreq.d | 85 + squeow_sw/build/usbd_ioreq.lst | 549 + squeow_sw/build/usbd_ioreq.o | Bin 0 -> 12060 bytes squeow_sw/squeow_codice.ioc | 288 + squeow_sw/startup_stm32g431xx.s | 497 + 338 files changed, 434202 insertions(+) create mode 100644 README.md create mode 100644 cat.png create mode 100644 cat.svg create mode 100644 squeow_hw/bom/ibom.html create mode 100644 squeow_hw/fp-info-cache create mode 100644 squeow_hw/jlcpcb.zip create mode 100644 squeow_hw/jlcpcb/squeow-B_Cu.gbl create mode 100644 squeow_hw/jlcpcb/squeow-B_Mask.gbs create mode 100644 squeow_hw/jlcpcb/squeow-B_Paste.gbp create mode 100644 squeow_hw/jlcpcb/squeow-B_Silkscreen.gbo create mode 100644 squeow_hw/jlcpcb/squeow-Edge_Cuts.gm1 create mode 100644 squeow_hw/jlcpcb/squeow-F_Cu.gtl create mode 100644 squeow_hw/jlcpcb/squeow-F_Mask.gts create mode 100644 squeow_hw/jlcpcb/squeow-F_Paste.gtp create mode 100644 squeow_hw/jlcpcb/squeow-F_Silkscreen.gto create mode 100644 squeow_hw/jlcpcb/squeow-NPTH-drl_map.gbr create mode 100644 squeow_hw/jlcpcb/squeow-NPTH.drl create mode 100644 squeow_hw/jlcpcb/squeow-PTH-drl_map.gbr create mode 100644 squeow_hw/jlcpcb/squeow-PTH.drl create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-04_134218.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-04_141706.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-05_104657.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-05_140432.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-05_145900.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-07_223214.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-10_123446.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-10_124608.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-28_154142.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-10-28_192108.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-11_211649.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-11_212452.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-11_214509.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-13_012818.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-15_134144.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-15_134823.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-18_190348.zip create mode 100644 squeow_hw/squeow-backups/squeow-2022-11-18_202540.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-01-01_011521.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-03-15_221901.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-06-30_110458.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-06-30_111541.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-06-30_185236.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-06-30_185854.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-06-30_201736.zip create mode 100644 squeow_hw/squeow-backups/squeow-2023-07-01_181420.zip create mode 100644 squeow_hw/squeow.kicad_pcb create mode 100644 squeow_hw/squeow.kicad_prl create mode 100644 squeow_hw/squeow.kicad_pro create mode 100644 squeow_hw/squeow.kicad_sch create mode 100644 squeow_mod/_autosave-squeow_mod.kicad_pcb create mode 100644 squeow_mod/fp-info-cache create mode 100644 squeow_mod/squeow_mod-B_Cu.gbr create mode 100644 squeow_mod/squeow_mod-B_Mask.gbr create mode 100644 squeow_mod/squeow_mod-B_Paste.gbr create mode 100644 squeow_mod/squeow_mod-B_Silkscreen.gbr create mode 100644 squeow_mod/squeow_mod-Edge_Cuts.gbr create mode 100644 squeow_mod/squeow_mod-F_Cu.gbr create mode 100644 squeow_mod/squeow_mod-F_Mask.gbr create mode 100644 squeow_mod/squeow_mod-F_Paste.gbr create mode 100644 squeow_mod/squeow_mod-F_Silkscreen.gbr create mode 100644 squeow_mod/squeow_mod-NPTH.drl create mode 100644 squeow_mod/squeow_mod-PTH.drl create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-09-13_162503.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_220552.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_221817.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_223404.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_224225.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_225139.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_011331.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_012331.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_013833.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_014437.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_015035.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2022-11-15_134056.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2023-03-15_222431.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2023-06-30_111052.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2023-06-30_120439.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2023-06-30_121643.zip create mode 100644 squeow_mod/squeow_mod-backups/squeow_mod-2023-06-30_151038.zip create mode 100644 squeow_mod/squeow_mod-job.gbrjob create mode 100644 squeow_mod/squeow_mod.kicad_pcb create mode 100644 squeow_mod/squeow_mod.kicad_prl create mode 100644 squeow_mod/squeow_mod.kicad_pro create mode 100644 squeow_mod/squeow_mod.kicad_sch create mode 100644 squeow_sw/.mxproject create mode 100644 squeow_sw/Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h create mode 100644 squeow_sw/Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h create mode 100644 squeow_sw/Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h create mode 100644 squeow_sw/Drivers/CMSIS/Device/ST/STM32G4xx/LICENSE.txt create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_armcc.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_armclang.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_armclang_ltm.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_compiler.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_gcc.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_iccarm.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/cmsis_version.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_armv81mml.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_armv8mbl.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_armv8mml.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm0.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm0plus.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm1.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm23.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm3.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm33.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm35p.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm4.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_cm7.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_sc000.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/core_sc300.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/mpu_armv7.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/mpu_armv8.h create mode 100644 squeow_sw/Drivers/CMSIS/Include/tz_context.h create mode 100644 squeow_sw/Drivers/CMSIS/LICENSE.txt create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_bus.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_cortex.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_crs.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dma.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_dmamux.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_gpio.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_i2c.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_lpuart.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_pwr.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_rcc.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_system.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_tim.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usart.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_utils.h create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/LICENSE.txt create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ramfunc.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c create mode 100644 squeow_sw/Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c create mode 100644 squeow_sw/Inc/main.h create mode 100644 squeow_sw/Inc/si5351.h create mode 100644 squeow_sw/Inc/squeow.h create mode 100644 squeow_sw/Inc/stm32g4xx_hal_conf.h create mode 100644 squeow_sw/Inc/stm32g4xx_it.h create mode 100644 squeow_sw/Inc/usb_device.h create mode 100644 squeow_sw/Inc/usbd_audio_if.h create mode 100644 squeow_sw/Inc/usbd_conf.h create mode 100644 squeow_sw/Inc/usbd_desc.h create mode 100644 squeow_sw/Makefile create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c create mode 100644 squeow_sw/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c create mode 100644 squeow_sw/STM32G431KBTx_FLASH.ld create mode 100644 squeow_sw/Src/main.c create mode 100644 squeow_sw/Src/si5351.c create mode 100644 squeow_sw/Src/squeow.c create mode 100644 squeow_sw/Src/stm32g4xx_hal_msp.c create mode 100644 squeow_sw/Src/stm32g4xx_it.c create mode 100644 squeow_sw/Src/system_stm32g4xx.c create mode 100644 squeow_sw/Src/usb_device.c create mode 100644 squeow_sw/Src/usbd_audio_if.c create mode 100644 squeow_sw/Src/usbd_conf.c create mode 100644 squeow_sw/Src/usbd_desc.c create mode 100644 squeow_sw/build/main.d create mode 100644 squeow_sw/build/main.lst create mode 100644 squeow_sw/build/main.o create mode 100644 squeow_sw/build/si5351.d create mode 100644 squeow_sw/build/si5351.lst create mode 100644 squeow_sw/build/si5351.o create mode 100644 squeow_sw/build/squeow.d create mode 100644 squeow_sw/build/squeow.lst create mode 100644 squeow_sw/build/squeow.o create mode 100755 squeow_sw/build/squeow_codice.bin create mode 100755 squeow_sw/build/squeow_codice.elf create mode 100644 squeow_sw/build/squeow_codice.hex create mode 100644 squeow_sw/build/squeow_codice.map create mode 100644 squeow_sw/build/startup_stm32g431xx.d create mode 100644 squeow_sw/build/startup_stm32g431xx.o create mode 100644 squeow_sw/build/stm32g4xx_hal.d create mode 100644 squeow_sw/build/stm32g4xx_hal.lst create mode 100644 squeow_sw/build/stm32g4xx_hal.o create mode 100644 squeow_sw/build/stm32g4xx_hal_adc.d create mode 100644 squeow_sw/build/stm32g4xx_hal_adc.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_adc.o create mode 100644 squeow_sw/build/stm32g4xx_hal_adc_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_adc_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_adc_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_cortex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_cortex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_cortex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_dma.d create mode 100644 squeow_sw/build/stm32g4xx_hal_dma.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_dma.o create mode 100644 squeow_sw/build/stm32g4xx_hal_dma_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_dma_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_dma_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_exti.d create mode 100644 squeow_sw/build/stm32g4xx_hal_exti.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_exti.o create mode 100644 squeow_sw/build/stm32g4xx_hal_flash.d create mode 100644 squeow_sw/build/stm32g4xx_hal_flash.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_flash.o create mode 100644 squeow_sw/build/stm32g4xx_hal_flash_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_flash_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_flash_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_flash_ramfunc.d create mode 100644 squeow_sw/build/stm32g4xx_hal_flash_ramfunc.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_flash_ramfunc.o create mode 100644 squeow_sw/build/stm32g4xx_hal_gpio.d create mode 100644 squeow_sw/build/stm32g4xx_hal_gpio.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_gpio.o create mode 100644 squeow_sw/build/stm32g4xx_hal_i2c.d create mode 100644 squeow_sw/build/stm32g4xx_hal_i2c.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_i2c.o create mode 100644 squeow_sw/build/stm32g4xx_hal_i2c_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_i2c_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_i2c_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_msp.d create mode 100644 squeow_sw/build/stm32g4xx_hal_msp.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_msp.o create mode 100644 squeow_sw/build/stm32g4xx_hal_pcd.d create mode 100644 squeow_sw/build/stm32g4xx_hal_pcd.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_pcd.o create mode 100644 squeow_sw/build/stm32g4xx_hal_pcd_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_pcd_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_pcd_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_pwr.d create mode 100644 squeow_sw/build/stm32g4xx_hal_pwr.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_pwr.o create mode 100644 squeow_sw/build/stm32g4xx_hal_pwr_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_pwr_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_pwr_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_rcc.d create mode 100644 squeow_sw/build/stm32g4xx_hal_rcc.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_rcc.o create mode 100644 squeow_sw/build/stm32g4xx_hal_rcc_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_rcc_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_rcc_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_tim.d create mode 100644 squeow_sw/build/stm32g4xx_hal_tim.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_tim.o create mode 100644 squeow_sw/build/stm32g4xx_hal_tim_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_tim_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_tim_ex.o create mode 100644 squeow_sw/build/stm32g4xx_hal_uart.d create mode 100644 squeow_sw/build/stm32g4xx_hal_uart.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_uart.o create mode 100644 squeow_sw/build/stm32g4xx_hal_uart_ex.d create mode 100644 squeow_sw/build/stm32g4xx_hal_uart_ex.lst create mode 100644 squeow_sw/build/stm32g4xx_hal_uart_ex.o create mode 100644 squeow_sw/build/stm32g4xx_it.d create mode 100644 squeow_sw/build/stm32g4xx_it.lst create mode 100644 squeow_sw/build/stm32g4xx_it.o create mode 100644 squeow_sw/build/stm32g4xx_ll_adc.d create mode 100644 squeow_sw/build/stm32g4xx_ll_adc.lst create mode 100644 squeow_sw/build/stm32g4xx_ll_adc.o create mode 100644 squeow_sw/build/stm32g4xx_ll_usb.d create mode 100644 squeow_sw/build/stm32g4xx_ll_usb.lst create mode 100644 squeow_sw/build/stm32g4xx_ll_usb.o create mode 100644 squeow_sw/build/system_stm32g4xx.d create mode 100644 squeow_sw/build/system_stm32g4xx.lst create mode 100644 squeow_sw/build/system_stm32g4xx.o create mode 100644 squeow_sw/build/usb_device.d create mode 100644 squeow_sw/build/usb_device.lst create mode 100644 squeow_sw/build/usb_device.o create mode 100644 squeow_sw/build/usbd_audio.d create mode 100644 squeow_sw/build/usbd_audio.lst create mode 100644 squeow_sw/build/usbd_audio.o create mode 100644 squeow_sw/build/usbd_audio_if.d create mode 100644 squeow_sw/build/usbd_audio_if.lst create mode 100644 squeow_sw/build/usbd_audio_if.o create mode 100644 squeow_sw/build/usbd_conf.d create mode 100644 squeow_sw/build/usbd_conf.lst create mode 100644 squeow_sw/build/usbd_conf.o create mode 100644 squeow_sw/build/usbd_core.d create mode 100644 squeow_sw/build/usbd_core.lst create mode 100644 squeow_sw/build/usbd_core.o create mode 100644 squeow_sw/build/usbd_ctlreq.d create mode 100644 squeow_sw/build/usbd_ctlreq.lst create mode 100644 squeow_sw/build/usbd_ctlreq.o create mode 100644 squeow_sw/build/usbd_desc.d create mode 100644 squeow_sw/build/usbd_desc.lst create mode 100644 squeow_sw/build/usbd_desc.o create mode 100644 squeow_sw/build/usbd_ioreq.d create mode 100644 squeow_sw/build/usbd_ioreq.lst create mode 100644 squeow_sw/build/usbd_ioreq.o create mode 100644 squeow_sw/squeow_codice.ioc create mode 100644 squeow_sw/startup_stm32g431xx.s diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e843e0 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Trasmettitore in modulazione di ampiezza \ No newline at end of file diff --git a/cat.png b/cat.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb175474e54ab2916a806f2def1cf2ecd9bda2e GIT binary patch literal 12929 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 Q0Qj@l#lyMADdgP$13+{5ZU6uP literal 0 HcmV?d00001 diff --git a/cat.svg b/cat.svg new file mode 100644 index 0000000..8b17ebb --- /dev/null +++ b/cat.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/squeow_hw/bom/ibom.html b/squeow_hw/bom/ibom.html new file mode 100644 index 0000000..6836d76 --- /dev/null +++ b/squeow_hw/bom/ibom.html @@ -0,0 +1,4345 @@ + + + + + + + Interactive BOM for KiCAD + + + + + + +
+
+
+ +
+ + + +
+
+ + + +
+
+ + + +
+ + +
+
+ + + + + + + + + + + +
+ Title + + Revision +
+ Company + + Date +
+
+
+
+
+
+ + +
+ +
+
+
+ + + + + +
+
+
+
+
+ + + + +
+
+
+
+ + + + +
+
+
+
+
+ + + + diff --git a/squeow_hw/fp-info-cache b/squeow_hw/fp-info-cache new file mode 100644 index 0000000..a6cb776 --- /dev/null +++ b/squeow_hw/fp-info-cache @@ -0,0 +1,1947 @@ +463412594690780 +Connector_PinSocket_2.54mm +PinSocket_1x01_P2.54mm_Horizontal +Through hole angled socket strip, 1x01, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x01 2.54mm single row +0 +1 +1 +Connector_PinSocket_2.54mm +PinSocket_1x01_P2.54mm_Vertical +Through hole straight socket strip, 1x01, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x01 2.54mm single row +0 +1 +1 +Connector_PinSocket_2.54mm +PinSocket_1x02_P2.54mm_Horizontal +Through hole angled socket strip, 1x02, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x02 2.54mm single row +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_1x02_P2.54mm_Vertical +Through hole straight socket strip, 1x02, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x02 2.54mm single row +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_1x02_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x02, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x02 2.54mm single row style1 pin1 left +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_1x02_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x02, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x02 2.54mm single row style2 pin1 right +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_1x03_P2.54mm_Horizontal +Through hole angled socket strip, 1x03, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x03 2.54mm single row +0 +3 +3 +Connector_PinSocket_2.54mm +PinSocket_1x03_P2.54mm_Vertical +Through hole straight socket strip, 1x03, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x03 2.54mm single row +0 +3 +3 +Connector_PinSocket_2.54mm +PinSocket_1x03_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x03, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x03 2.54mm single row style1 pin1 left +0 +3 +3 +Connector_PinSocket_2.54mm +PinSocket_1x03_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x03, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x03 2.54mm single row style2 pin1 right +0 +3 +3 +Connector_PinSocket_2.54mm +PinSocket_1x04_P2.54mm_Horizontal +Through hole angled socket strip, 1x04, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x04 2.54mm single row +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_1x04_P2.54mm_Vertical +Through hole straight socket strip, 1x04, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x04 2.54mm single row +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_1x04_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x04, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x04 2.54mm single row style1 pin1 left +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_1x04_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x04, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x04 2.54mm single row style2 pin1 right +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_1x05_P2.54mm_Horizontal +Through hole angled socket strip, 1x05, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x05 2.54mm single row +0 +5 +5 +Connector_PinSocket_2.54mm +PinSocket_1x05_P2.54mm_Vertical +Through hole straight socket strip, 1x05, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x05 2.54mm single row +0 +5 +5 +Connector_PinSocket_2.54mm +PinSocket_1x05_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x05, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x05 2.54mm single row style1 pin1 left +0 +5 +5 +Connector_PinSocket_2.54mm +PinSocket_1x05_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x05, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x05 2.54mm single row style2 pin1 right +0 +5 +5 +Connector_PinSocket_2.54mm +PinSocket_1x06_P2.54mm_Horizontal +Through hole angled socket strip, 1x06, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x06 2.54mm single row +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_1x06_P2.54mm_Vertical +Through hole straight socket strip, 1x06, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x06 2.54mm single row +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_1x06_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x06, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x06 2.54mm single row style1 pin1 left +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_1x06_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x06, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x06 2.54mm single row style2 pin1 right +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_1x07_P2.54mm_Horizontal +Through hole angled socket strip, 1x07, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x07 2.54mm single row +0 +7 +7 +Connector_PinSocket_2.54mm +PinSocket_1x07_P2.54mm_Vertical +Through hole straight socket strip, 1x07, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x07 2.54mm single row +0 +7 +7 +Connector_PinSocket_2.54mm +PinSocket_1x07_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x07, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x07 2.54mm single row style1 pin1 left +0 +7 +7 +Connector_PinSocket_2.54mm +PinSocket_1x07_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x07, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x07 2.54mm single row style2 pin1 right +0 +7 +7 +Connector_PinSocket_2.54mm +PinSocket_1x08_P2.54mm_Horizontal +Through hole angled socket strip, 1x08, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x08 2.54mm single row +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_1x08_P2.54mm_Vertical +Through hole straight socket strip, 1x08, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x08 2.54mm single row +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_1x08_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x08, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x08 2.54mm single row style1 pin1 left +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_1x08_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x08, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x08 2.54mm single row style2 pin1 right +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_1x09_P2.54mm_Horizontal +Through hole angled socket strip, 1x09, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x09 2.54mm single row +0 +9 +9 +Connector_PinSocket_2.54mm +PinSocket_1x09_P2.54mm_Vertical +Through hole straight socket strip, 1x09, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x09 2.54mm single row +0 +9 +9 +Connector_PinSocket_2.54mm +PinSocket_1x09_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x09, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x09 2.54mm single row style1 pin1 left +0 +9 +9 +Connector_PinSocket_2.54mm +PinSocket_1x09_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x09, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x09 2.54mm single row style2 pin1 right +0 +9 +9 +Connector_PinSocket_2.54mm +PinSocket_1x10_P2.54mm_Horizontal +Through hole angled socket strip, 1x10, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x10 2.54mm single row +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_1x10_P2.54mm_Vertical +Through hole straight socket strip, 1x10, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x10 2.54mm single row +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_1x10_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x10, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x10 2.54mm single row style1 pin1 left +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_1x10_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x10, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x10 2.54mm single row style2 pin1 right +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_1x11_P2.54mm_Horizontal +Through hole angled socket strip, 1x11, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x11 2.54mm single row +0 +11 +11 +Connector_PinSocket_2.54mm +PinSocket_1x11_P2.54mm_Vertical +Through hole straight socket strip, 1x11, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x11 2.54mm single row +0 +11 +11 +Connector_PinSocket_2.54mm +PinSocket_1x11_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x11, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x11 2.54mm single row style1 pin1 left +0 +11 +11 +Connector_PinSocket_2.54mm +PinSocket_1x11_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x11, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x11 2.54mm single row style2 pin1 right +0 +11 +11 +Connector_PinSocket_2.54mm +PinSocket_1x12_P2.54mm_Horizontal +Through hole angled socket strip, 1x12, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x12 2.54mm single row +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_1x12_P2.54mm_Vertical +Through hole straight socket strip, 1x12, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x12 2.54mm single row +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_1x12_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x12, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x12 2.54mm single row style1 pin1 left +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_1x12_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x12, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x12 2.54mm single row style2 pin1 right +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_1x13_P2.54mm_Horizontal +Through hole angled socket strip, 1x13, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x13 2.54mm single row +0 +13 +13 +Connector_PinSocket_2.54mm +PinSocket_1x13_P2.54mm_Vertical +Through hole straight socket strip, 1x13, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x13 2.54mm single row +0 +13 +13 +Connector_PinSocket_2.54mm +PinSocket_1x13_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x13, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x13 2.54mm single row style1 pin1 left +0 +13 +13 +Connector_PinSocket_2.54mm +PinSocket_1x13_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x13, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x13 2.54mm single row style2 pin1 right +0 +13 +13 +Connector_PinSocket_2.54mm +PinSocket_1x14_P2.54mm_Horizontal +Through hole angled socket strip, 1x14, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x14 2.54mm single row +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_1x14_P2.54mm_Vertical +Through hole straight socket strip, 1x14, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x14 2.54mm single row +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_1x14_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x14, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x14 2.54mm single row style1 pin1 left +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_1x14_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x14, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x14 2.54mm single row style2 pin1 right +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_1x15_P2.54mm_Horizontal +Through hole angled socket strip, 1x15, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x15 2.54mm single row +0 +15 +15 +Connector_PinSocket_2.54mm +PinSocket_1x15_P2.54mm_Vertical +Through hole straight socket strip, 1x15, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x15 2.54mm single row +0 +15 +15 +Connector_PinSocket_2.54mm +PinSocket_1x15_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x15, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x15 2.54mm single row style1 pin1 left +0 +15 +15 +Connector_PinSocket_2.54mm +PinSocket_1x15_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x15, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x15 2.54mm single row style2 pin1 right +0 +15 +15 +Connector_PinSocket_2.54mm +PinSocket_1x16_P2.54mm_Horizontal +Through hole angled socket strip, 1x16, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x16 2.54mm single row +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_1x16_P2.54mm_Vertical +Through hole straight socket strip, 1x16, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x16 2.54mm single row +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_1x16_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x16, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x16 2.54mm single row style1 pin1 left +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_1x16_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x16, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x16 2.54mm single row style2 pin1 right +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_1x17_P2.54mm_Horizontal +Through hole angled socket strip, 1x17, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x17 2.54mm single row +0 +17 +17 +Connector_PinSocket_2.54mm +PinSocket_1x17_P2.54mm_Vertical +Through hole straight socket strip, 1x17, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x17 2.54mm single row +0 +17 +17 +Connector_PinSocket_2.54mm +PinSocket_1x17_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x17, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x17 2.54mm single row style1 pin1 left +0 +17 +17 +Connector_PinSocket_2.54mm +PinSocket_1x17_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x17, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x17 2.54mm single row style2 pin1 right +0 +17 +17 +Connector_PinSocket_2.54mm +PinSocket_1x18_P2.54mm_Horizontal +Through hole angled socket strip, 1x18, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x18 2.54mm single row +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_1x18_P2.54mm_Vertical +Through hole straight socket strip, 1x18, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x18 2.54mm single row +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_1x18_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x18, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x18 2.54mm single row style1 pin1 left +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_1x18_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x18, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x18 2.54mm single row style2 pin1 right +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_1x19_P2.54mm_Horizontal +Through hole angled socket strip, 1x19, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x19 2.54mm single row +0 +19 +19 +Connector_PinSocket_2.54mm +PinSocket_1x19_P2.54mm_Vertical +Through hole straight socket strip, 1x19, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x19 2.54mm single row +0 +19 +19 +Connector_PinSocket_2.54mm +PinSocket_1x19_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x19, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x19 2.54mm single row style1 pin1 left +0 +19 +19 +Connector_PinSocket_2.54mm +PinSocket_1x19_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x19, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x19 2.54mm single row style2 pin1 right +0 +19 +19 +Connector_PinSocket_2.54mm +PinSocket_1x20_P2.54mm_Horizontal +Through hole angled socket strip, 1x20, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x20 2.54mm single row +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_1x20_P2.54mm_Vertical +Through hole straight socket strip, 1x20, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x20 2.54mm single row +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_1x20_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x20, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x20 2.54mm single row style1 pin1 left +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_1x20_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x20, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x20 2.54mm single row style2 pin1 right +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_1x21_P2.54mm_Horizontal +Through hole angled socket strip, 1x21, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x21 2.54mm single row +0 +21 +21 +Connector_PinSocket_2.54mm +PinSocket_1x21_P2.54mm_Vertical +Through hole straight socket strip, 1x21, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x21 2.54mm single row +0 +21 +21 +Connector_PinSocket_2.54mm +PinSocket_1x21_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x21, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x21 2.54mm single row style1 pin1 left +0 +21 +21 +Connector_PinSocket_2.54mm +PinSocket_1x21_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x21, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x21 2.54mm single row style2 pin1 right +0 +21 +21 +Connector_PinSocket_2.54mm +PinSocket_1x22_P2.54mm_Horizontal +Through hole angled socket strip, 1x22, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x22 2.54mm single row +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_1x22_P2.54mm_Vertical +Through hole straight socket strip, 1x22, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x22 2.54mm single row +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_1x22_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x22, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x22 2.54mm single row style1 pin1 left +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_1x22_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x22, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x22 2.54mm single row style2 pin1 right +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_1x23_P2.54mm_Horizontal +Through hole angled socket strip, 1x23, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x23 2.54mm single row +0 +23 +23 +Connector_PinSocket_2.54mm +PinSocket_1x23_P2.54mm_Vertical +Through hole straight socket strip, 1x23, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x23 2.54mm single row +0 +23 +23 +Connector_PinSocket_2.54mm +PinSocket_1x23_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x23, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x23 2.54mm single row style1 pin1 left +0 +23 +23 +Connector_PinSocket_2.54mm +PinSocket_1x23_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x23, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x23 2.54mm single row style2 pin1 right +0 +23 +23 +Connector_PinSocket_2.54mm +PinSocket_1x24_P2.54mm_Horizontal +Through hole angled socket strip, 1x24, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x24 2.54mm single row +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_1x24_P2.54mm_Vertical +Through hole straight socket strip, 1x24, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x24 2.54mm single row +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_1x24_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x24, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x24 2.54mm single row style1 pin1 left +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_1x24_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x24, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x24 2.54mm single row style2 pin1 right +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_1x25_P2.54mm_Horizontal +Through hole angled socket strip, 1x25, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x25 2.54mm single row +0 +25 +25 +Connector_PinSocket_2.54mm +PinSocket_1x25_P2.54mm_Vertical +Through hole straight socket strip, 1x25, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x25 2.54mm single row +0 +25 +25 +Connector_PinSocket_2.54mm +PinSocket_1x25_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x25, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x25 2.54mm single row style1 pin1 left +0 +25 +25 +Connector_PinSocket_2.54mm +PinSocket_1x25_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x25, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x25 2.54mm single row style2 pin1 right +0 +25 +25 +Connector_PinSocket_2.54mm +PinSocket_1x26_P2.54mm_Horizontal +Through hole angled socket strip, 1x26, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x26 2.54mm single row +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_1x26_P2.54mm_Vertical +Through hole straight socket strip, 1x26, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x26 2.54mm single row +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_1x26_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x26, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x26 2.54mm single row style1 pin1 left +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_1x26_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x26, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x26 2.54mm single row style2 pin1 right +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_1x27_P2.54mm_Horizontal +Through hole angled socket strip, 1x27, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x27 2.54mm single row +0 +27 +27 +Connector_PinSocket_2.54mm +PinSocket_1x27_P2.54mm_Vertical +Through hole straight socket strip, 1x27, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x27 2.54mm single row +0 +27 +27 +Connector_PinSocket_2.54mm +PinSocket_1x27_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x27, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x27 2.54mm single row style1 pin1 left +0 +27 +27 +Connector_PinSocket_2.54mm +PinSocket_1x27_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x27, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x27 2.54mm single row style2 pin1 right +0 +27 +27 +Connector_PinSocket_2.54mm +PinSocket_1x28_P2.54mm_Horizontal +Through hole angled socket strip, 1x28, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x28 2.54mm single row +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_1x28_P2.54mm_Vertical +Through hole straight socket strip, 1x28, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x28 2.54mm single row +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_1x28_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x28, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x28 2.54mm single row style1 pin1 left +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_1x28_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x28, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x28 2.54mm single row style2 pin1 right +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_1x29_P2.54mm_Horizontal +Through hole angled socket strip, 1x29, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x29 2.54mm single row +0 +29 +29 +Connector_PinSocket_2.54mm +PinSocket_1x29_P2.54mm_Vertical +Through hole straight socket strip, 1x29, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x29 2.54mm single row +0 +29 +29 +Connector_PinSocket_2.54mm +PinSocket_1x29_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x29, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x29 2.54mm single row style1 pin1 left +0 +29 +29 +Connector_PinSocket_2.54mm +PinSocket_1x29_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x29, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x29 2.54mm single row style2 pin1 right +0 +29 +29 +Connector_PinSocket_2.54mm +PinSocket_1x30_P2.54mm_Horizontal +Through hole angled socket strip, 1x30, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x30 2.54mm single row +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_1x30_P2.54mm_Vertical +Through hole straight socket strip, 1x30, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x30 2.54mm single row +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_1x30_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x30, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x30 2.54mm single row style1 pin1 left +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_1x30_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x30, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x30 2.54mm single row style2 pin1 right +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_1x31_P2.54mm_Horizontal +Through hole angled socket strip, 1x31, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x31 2.54mm single row +0 +31 +31 +Connector_PinSocket_2.54mm +PinSocket_1x31_P2.54mm_Vertical +Through hole straight socket strip, 1x31, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x31 2.54mm single row +0 +31 +31 +Connector_PinSocket_2.54mm +PinSocket_1x31_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x31, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x31 2.54mm single row style1 pin1 left +0 +31 +31 +Connector_PinSocket_2.54mm +PinSocket_1x31_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x31, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x31 2.54mm single row style2 pin1 right +0 +31 +31 +Connector_PinSocket_2.54mm +PinSocket_1x32_P2.54mm_Horizontal +Through hole angled socket strip, 1x32, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x32 2.54mm single row +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_1x32_P2.54mm_Vertical +Through hole straight socket strip, 1x32, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x32 2.54mm single row +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_1x32_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x32, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x32 2.54mm single row style1 pin1 left +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_1x32_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x32, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x32 2.54mm single row style2 pin1 right +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_1x33_P2.54mm_Horizontal +Through hole angled socket strip, 1x33, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x33 2.54mm single row +0 +33 +33 +Connector_PinSocket_2.54mm +PinSocket_1x33_P2.54mm_Vertical +Through hole straight socket strip, 1x33, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x33 2.54mm single row +0 +33 +33 +Connector_PinSocket_2.54mm +PinSocket_1x33_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x33, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x33 2.54mm single row style1 pin1 left +0 +33 +33 +Connector_PinSocket_2.54mm +PinSocket_1x33_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x33, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x33 2.54mm single row style2 pin1 right +0 +33 +33 +Connector_PinSocket_2.54mm +PinSocket_1x34_P2.54mm_Horizontal +Through hole angled socket strip, 1x34, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x34 2.54mm single row +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_1x34_P2.54mm_Vertical +Through hole straight socket strip, 1x34, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x34 2.54mm single row +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_1x34_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x34, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x34 2.54mm single row style1 pin1 left +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_1x34_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x34, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x34 2.54mm single row style2 pin1 right +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_1x35_P2.54mm_Horizontal +Through hole angled socket strip, 1x35, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x35 2.54mm single row +0 +35 +35 +Connector_PinSocket_2.54mm +PinSocket_1x35_P2.54mm_Vertical +Through hole straight socket strip, 1x35, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x35 2.54mm single row +0 +35 +35 +Connector_PinSocket_2.54mm +PinSocket_1x35_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x35, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x35 2.54mm single row style1 pin1 left +0 +35 +35 +Connector_PinSocket_2.54mm +PinSocket_1x35_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x35, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x35 2.54mm single row style2 pin1 right +0 +35 +35 +Connector_PinSocket_2.54mm +PinSocket_1x36_P2.54mm_Horizontal +Through hole angled socket strip, 1x36, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x36 2.54mm single row +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_1x36_P2.54mm_Vertical +Through hole straight socket strip, 1x36, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x36 2.54mm single row +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_1x36_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x36, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x36 2.54mm single row style1 pin1 left +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_1x36_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x36, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x36 2.54mm single row style2 pin1 right +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_1x37_P2.54mm_Horizontal +Through hole angled socket strip, 1x37, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x37 2.54mm single row +0 +37 +37 +Connector_PinSocket_2.54mm +PinSocket_1x37_P2.54mm_Vertical +Through hole straight socket strip, 1x37, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x37 2.54mm single row +0 +37 +37 +Connector_PinSocket_2.54mm +PinSocket_1x37_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x37, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x37 2.54mm single row style1 pin1 left +0 +37 +37 +Connector_PinSocket_2.54mm +PinSocket_1x37_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x37, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x37 2.54mm single row style2 pin1 right +0 +37 +37 +Connector_PinSocket_2.54mm +PinSocket_1x38_P2.54mm_Horizontal +Through hole angled socket strip, 1x38, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x38 2.54mm single row +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_1x38_P2.54mm_Vertical +Through hole straight socket strip, 1x38, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x38 2.54mm single row +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_1x38_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x38, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x38 2.54mm single row style1 pin1 left +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_1x38_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x38, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x38 2.54mm single row style2 pin1 right +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_1x39_P2.54mm_Horizontal +Through hole angled socket strip, 1x39, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x39 2.54mm single row +0 +39 +39 +Connector_PinSocket_2.54mm +PinSocket_1x39_P2.54mm_Vertical +Through hole straight socket strip, 1x39, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x39 2.54mm single row +0 +39 +39 +Connector_PinSocket_2.54mm +PinSocket_1x39_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x39, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x39 2.54mm single row style1 pin1 left +0 +39 +39 +Connector_PinSocket_2.54mm +PinSocket_1x39_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x39, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x39 2.54mm single row style2 pin1 right +0 +39 +39 +Connector_PinSocket_2.54mm +PinSocket_1x40_P2.54mm_Horizontal +Through hole angled socket strip, 1x40, 2.54mm pitch, 8.51mm socket length, single row (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 1x40 2.54mm single row +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_1x40_P2.54mm_Vertical +Through hole straight socket strip, 1x40, 2.54mm pitch, single row (from Kicad 4.0.7), script generated +Through hole socket strip THT 1x40 2.54mm single row +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_1x40_P2.54mm_Vertical_SMD_Pin1Left +surface-mounted straight socket strip, 1x40, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x40 2.54mm single row style1 pin1 left +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_1x40_P2.54mm_Vertical_SMD_Pin1Right +surface-mounted straight socket strip, 1x40, 2.54mm pitch, single row, style 2 (pin 1 right) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated +Surface mounted socket strip SMD 1x40 2.54mm single row style2 pin1 right +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_2x01_P2.54mm_Horizontal +Through hole angled socket strip, 2x01, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x01 2.54mm double row +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_2x01_P2.54mm_Vertical +Through hole straight socket strip, 2x01, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x01 2.54mm double row +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_2x01_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x01, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x01 2.54mm double row +0 +2 +2 +Connector_PinSocket_2.54mm +PinSocket_2x02_P2.54mm_Horizontal +Through hole angled socket strip, 2x02, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x02 2.54mm double row +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_2x02_P2.54mm_Vertical +Through hole straight socket strip, 2x02, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x02 2.54mm double row +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_2x02_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x02, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x02 2.54mm double row +0 +4 +4 +Connector_PinSocket_2.54mm +PinSocket_2x03_P2.54mm_Horizontal +Through hole angled socket strip, 2x03, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x03 2.54mm double row +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_2x03_P2.54mm_Vertical +Through hole straight socket strip, 2x03, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x03 2.54mm double row +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_2x03_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x03, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x03 2.54mm double row +0 +6 +6 +Connector_PinSocket_2.54mm +PinSocket_2x04_P2.54mm_Horizontal +Through hole angled socket strip, 2x04, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x04 2.54mm double row +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_2x04_P2.54mm_Vertical +Through hole straight socket strip, 2x04, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x04 2.54mm double row +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_2x04_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x04, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x04 2.54mm double row +0 +8 +8 +Connector_PinSocket_2.54mm +PinSocket_2x05_P2.54mm_Horizontal +Through hole angled socket strip, 2x05, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x05 2.54mm double row +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_2x05_P2.54mm_Vertical +Through hole straight socket strip, 2x05, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x05 2.54mm double row +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_2x05_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x05, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x05 2.54mm double row +0 +10 +10 +Connector_PinSocket_2.54mm +PinSocket_2x06_P2.54mm_Horizontal +Through hole angled socket strip, 2x06, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x06 2.54mm double row +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_2x06_P2.54mm_Vertical +Through hole straight socket strip, 2x06, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x06 2.54mm double row +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_2x06_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x06, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x06 2.54mm double row +0 +12 +12 +Connector_PinSocket_2.54mm +PinSocket_2x07_P2.54mm_Horizontal +Through hole angled socket strip, 2x07, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x07 2.54mm double row +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_2x07_P2.54mm_Vertical +Through hole straight socket strip, 2x07, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x07 2.54mm double row +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_2x07_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x07, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x07 2.54mm double row +0 +14 +14 +Connector_PinSocket_2.54mm +PinSocket_2x08_P2.54mm_Horizontal +Through hole angled socket strip, 2x08, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x08 2.54mm double row +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_2x08_P2.54mm_Vertical +Through hole straight socket strip, 2x08, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x08 2.54mm double row +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_2x08_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x08, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x08 2.54mm double row +0 +16 +16 +Connector_PinSocket_2.54mm +PinSocket_2x09_P2.54mm_Horizontal +Through hole angled socket strip, 2x09, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x09 2.54mm double row +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_2x09_P2.54mm_Vertical +Through hole straight socket strip, 2x09, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x09 2.54mm double row +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_2x09_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x09, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x09 2.54mm double row +0 +18 +18 +Connector_PinSocket_2.54mm +PinSocket_2x10_P2.54mm_Horizontal +Through hole angled socket strip, 2x10, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x10 2.54mm double row +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_2x10_P2.54mm_Vertical +Through hole straight socket strip, 2x10, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x10 2.54mm double row +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_2x10_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x10, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x10 2.54mm double row +0 +20 +20 +Connector_PinSocket_2.54mm +PinSocket_2x11_P2.54mm_Horizontal +Through hole angled socket strip, 2x11, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x11 2.54mm double row +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_2x11_P2.54mm_Vertical +Through hole straight socket strip, 2x11, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x11 2.54mm double row +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_2x11_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x11, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x11 2.54mm double row +0 +22 +22 +Connector_PinSocket_2.54mm +PinSocket_2x12_P2.54mm_Horizontal +Through hole angled socket strip, 2x12, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x12 2.54mm double row +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_2x12_P2.54mm_Vertical +Through hole straight socket strip, 2x12, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x12 2.54mm double row +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_2x12_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x12, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x12 2.54mm double row +0 +24 +24 +Connector_PinSocket_2.54mm +PinSocket_2x13_P2.54mm_Horizontal +Through hole angled socket strip, 2x13, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x13 2.54mm double row +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_2x13_P2.54mm_Vertical +Through hole straight socket strip, 2x13, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x13 2.54mm double row +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_2x13_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x13, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x13 2.54mm double row +0 +26 +26 +Connector_PinSocket_2.54mm +PinSocket_2x14_P2.54mm_Horizontal +Through hole angled socket strip, 2x14, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x14 2.54mm double row +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_2x14_P2.54mm_Vertical +Through hole straight socket strip, 2x14, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x14 2.54mm double row +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_2x14_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x14, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x14 2.54mm double row +0 +28 +28 +Connector_PinSocket_2.54mm +PinSocket_2x15_P2.54mm_Horizontal +Through hole angled socket strip, 2x15, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x15 2.54mm double row +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_2x15_P2.54mm_Vertical +Through hole straight socket strip, 2x15, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x15 2.54mm double row +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_2x15_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x15, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x15 2.54mm double row +0 +30 +30 +Connector_PinSocket_2.54mm +PinSocket_2x16_P2.54mm_Horizontal +Through hole angled socket strip, 2x16, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x16 2.54mm double row +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_2x16_P2.54mm_Vertical +Through hole straight socket strip, 2x16, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x16 2.54mm double row +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_2x16_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x16, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x16 2.54mm double row +0 +32 +32 +Connector_PinSocket_2.54mm +PinSocket_2x17_P2.54mm_Horizontal +Through hole angled socket strip, 2x17, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x17 2.54mm double row +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_2x17_P2.54mm_Vertical +Through hole straight socket strip, 2x17, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x17 2.54mm double row +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_2x17_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x17, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x17 2.54mm double row +0 +34 +34 +Connector_PinSocket_2.54mm +PinSocket_2x18_P2.54mm_Horizontal +Through hole angled socket strip, 2x18, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x18 2.54mm double row +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_2x18_P2.54mm_Vertical +Through hole straight socket strip, 2x18, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x18 2.54mm double row +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_2x18_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x18, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x18 2.54mm double row +0 +36 +36 +Connector_PinSocket_2.54mm +PinSocket_2x19_P2.54mm_Horizontal +Through hole angled socket strip, 2x19, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x19 2.54mm double row +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_2x19_P2.54mm_Vertical +Through hole straight socket strip, 2x19, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x19 2.54mm double row +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_2x19_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x19, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x19 2.54mm double row +0 +38 +38 +Connector_PinSocket_2.54mm +PinSocket_2x20_P2.54mm_Horizontal +Through hole angled socket strip, 2x20, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x20 2.54mm double row +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_2x20_P2.54mm_Vertical +Through hole straight socket strip, 2x20, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x20 2.54mm double row +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_2x20_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x20, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x20 2.54mm double row +0 +40 +40 +Connector_PinSocket_2.54mm +PinSocket_2x21_P2.54mm_Horizontal +Through hole angled socket strip, 2x21, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x21 2.54mm double row +0 +42 +42 +Connector_PinSocket_2.54mm +PinSocket_2x21_P2.54mm_Vertical +Through hole straight socket strip, 2x21, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x21 2.54mm double row +0 +42 +42 +Connector_PinSocket_2.54mm +PinSocket_2x21_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x21, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x21 2.54mm double row +0 +42 +42 +Connector_PinSocket_2.54mm +PinSocket_2x22_P2.54mm_Horizontal +Through hole angled socket strip, 2x22, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x22 2.54mm double row +0 +44 +44 +Connector_PinSocket_2.54mm +PinSocket_2x22_P2.54mm_Vertical +Through hole straight socket strip, 2x22, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x22 2.54mm double row +0 +44 +44 +Connector_PinSocket_2.54mm +PinSocket_2x22_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x22, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x22 2.54mm double row +0 +44 +44 +Connector_PinSocket_2.54mm +PinSocket_2x23_P2.54mm_Horizontal +Through hole angled socket strip, 2x23, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x23 2.54mm double row +0 +46 +46 +Connector_PinSocket_2.54mm +PinSocket_2x23_P2.54mm_Vertical +Through hole straight socket strip, 2x23, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x23 2.54mm double row +0 +46 +46 +Connector_PinSocket_2.54mm +PinSocket_2x23_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x23, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x23 2.54mm double row +0 +46 +46 +Connector_PinSocket_2.54mm +PinSocket_2x24_P2.54mm_Horizontal +Through hole angled socket strip, 2x24, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x24 2.54mm double row +0 +48 +48 +Connector_PinSocket_2.54mm +PinSocket_2x24_P2.54mm_Vertical +Through hole straight socket strip, 2x24, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x24 2.54mm double row +0 +48 +48 +Connector_PinSocket_2.54mm +PinSocket_2x24_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x24, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x24 2.54mm double row +0 +48 +48 +Connector_PinSocket_2.54mm +PinSocket_2x25_P2.54mm_Horizontal +Through hole angled socket strip, 2x25, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x25 2.54mm double row +0 +50 +50 +Connector_PinSocket_2.54mm +PinSocket_2x25_P2.54mm_Vertical +Through hole straight socket strip, 2x25, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x25 2.54mm double row +0 +50 +50 +Connector_PinSocket_2.54mm +PinSocket_2x25_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x25, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x25 2.54mm double row +0 +50 +50 +Connector_PinSocket_2.54mm +PinSocket_2x26_P2.54mm_Horizontal +Through hole angled socket strip, 2x26, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x26 2.54mm double row +0 +52 +52 +Connector_PinSocket_2.54mm +PinSocket_2x26_P2.54mm_Vertical +Through hole straight socket strip, 2x26, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x26 2.54mm double row +0 +52 +52 +Connector_PinSocket_2.54mm +PinSocket_2x26_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x26, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x26 2.54mm double row +0 +52 +52 +Connector_PinSocket_2.54mm +PinSocket_2x27_P2.54mm_Horizontal +Through hole angled socket strip, 2x27, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x27 2.54mm double row +0 +54 +54 +Connector_PinSocket_2.54mm +PinSocket_2x27_P2.54mm_Vertical +Through hole straight socket strip, 2x27, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x27 2.54mm double row +0 +54 +54 +Connector_PinSocket_2.54mm +PinSocket_2x27_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x27, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x27 2.54mm double row +0 +54 +54 +Connector_PinSocket_2.54mm +PinSocket_2x28_P2.54mm_Horizontal +Through hole angled socket strip, 2x28, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x28 2.54mm double row +0 +56 +56 +Connector_PinSocket_2.54mm +PinSocket_2x28_P2.54mm_Vertical +Through hole straight socket strip, 2x28, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x28 2.54mm double row +0 +56 +56 +Connector_PinSocket_2.54mm +PinSocket_2x28_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x28, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x28 2.54mm double row +0 +56 +56 +Connector_PinSocket_2.54mm +PinSocket_2x29_P2.54mm_Horizontal +Through hole angled socket strip, 2x29, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x29 2.54mm double row +0 +58 +58 +Connector_PinSocket_2.54mm +PinSocket_2x29_P2.54mm_Vertical +Through hole straight socket strip, 2x29, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x29 2.54mm double row +0 +58 +58 +Connector_PinSocket_2.54mm +PinSocket_2x29_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x29, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x29 2.54mm double row +0 +58 +58 +Connector_PinSocket_2.54mm +PinSocket_2x30_P2.54mm_Horizontal +Through hole angled socket strip, 2x30, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x30 2.54mm double row +0 +60 +60 +Connector_PinSocket_2.54mm +PinSocket_2x30_P2.54mm_Vertical +Through hole straight socket strip, 2x30, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x30 2.54mm double row +0 +60 +60 +Connector_PinSocket_2.54mm +PinSocket_2x30_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x30, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x30 2.54mm double row +0 +60 +60 +Connector_PinSocket_2.54mm +PinSocket_2x31_P2.54mm_Horizontal +Through hole angled socket strip, 2x31, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x31 2.54mm double row +0 +62 +62 +Connector_PinSocket_2.54mm +PinSocket_2x31_P2.54mm_Vertical +Through hole straight socket strip, 2x31, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x31 2.54mm double row +0 +62 +62 +Connector_PinSocket_2.54mm +PinSocket_2x31_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x31, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x31 2.54mm double row +0 +62 +62 +Connector_PinSocket_2.54mm +PinSocket_2x32_P2.54mm_Horizontal +Through hole angled socket strip, 2x32, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x32 2.54mm double row +0 +64 +64 +Connector_PinSocket_2.54mm +PinSocket_2x32_P2.54mm_Vertical +Through hole straight socket strip, 2x32, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x32 2.54mm double row +0 +64 +64 +Connector_PinSocket_2.54mm +PinSocket_2x32_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x32, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x32 2.54mm double row +0 +64 +64 +Connector_PinSocket_2.54mm +PinSocket_2x33_P2.54mm_Horizontal +Through hole angled socket strip, 2x33, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x33 2.54mm double row +0 +66 +66 +Connector_PinSocket_2.54mm +PinSocket_2x33_P2.54mm_Vertical +Through hole straight socket strip, 2x33, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x33 2.54mm double row +0 +66 +66 +Connector_PinSocket_2.54mm +PinSocket_2x33_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x33, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x33 2.54mm double row +0 +66 +66 +Connector_PinSocket_2.54mm +PinSocket_2x34_P2.54mm_Horizontal +Through hole angled socket strip, 2x34, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x34 2.54mm double row +0 +68 +68 +Connector_PinSocket_2.54mm +PinSocket_2x34_P2.54mm_Vertical +Through hole straight socket strip, 2x34, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x34 2.54mm double row +0 +68 +68 +Connector_PinSocket_2.54mm +PinSocket_2x34_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x34, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x34 2.54mm double row +0 +68 +68 +Connector_PinSocket_2.54mm +PinSocket_2x35_P2.54mm_Horizontal +Through hole angled socket strip, 2x35, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x35 2.54mm double row +0 +70 +70 +Connector_PinSocket_2.54mm +PinSocket_2x35_P2.54mm_Vertical +Through hole straight socket strip, 2x35, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x35 2.54mm double row +0 +70 +70 +Connector_PinSocket_2.54mm +PinSocket_2x35_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x35, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x35 2.54mm double row +0 +70 +70 +Connector_PinSocket_2.54mm +PinSocket_2x36_P2.54mm_Horizontal +Through hole angled socket strip, 2x36, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x36 2.54mm double row +0 +72 +72 +Connector_PinSocket_2.54mm +PinSocket_2x36_P2.54mm_Vertical +Through hole straight socket strip, 2x36, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x36 2.54mm double row +0 +72 +72 +Connector_PinSocket_2.54mm +PinSocket_2x36_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x36, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x36 2.54mm double row +0 +72 +72 +Connector_PinSocket_2.54mm +PinSocket_2x37_P2.54mm_Horizontal +Through hole angled socket strip, 2x37, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x37 2.54mm double row +0 +74 +74 +Connector_PinSocket_2.54mm +PinSocket_2x37_P2.54mm_Vertical +Through hole straight socket strip, 2x37, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x37 2.54mm double row +0 +74 +74 +Connector_PinSocket_2.54mm +PinSocket_2x37_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x37, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x37 2.54mm double row +0 +74 +74 +Connector_PinSocket_2.54mm +PinSocket_2x38_P2.54mm_Horizontal +Through hole angled socket strip, 2x38, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x38 2.54mm double row +0 +76 +76 +Connector_PinSocket_2.54mm +PinSocket_2x38_P2.54mm_Vertical +Through hole straight socket strip, 2x38, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x38 2.54mm double row +0 +76 +76 +Connector_PinSocket_2.54mm +PinSocket_2x38_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x38, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x38 2.54mm double row +0 +76 +76 +Connector_PinSocket_2.54mm +PinSocket_2x39_P2.54mm_Horizontal +Through hole angled socket strip, 2x39, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x39 2.54mm double row +0 +78 +78 +Connector_PinSocket_2.54mm +PinSocket_2x39_P2.54mm_Vertical +Through hole straight socket strip, 2x39, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x39 2.54mm double row +0 +78 +78 +Connector_PinSocket_2.54mm +PinSocket_2x39_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x39, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x39 2.54mm double row +0 +78 +78 +Connector_PinSocket_2.54mm +PinSocket_2x40_P2.54mm_Horizontal +Through hole angled socket strip, 2x40, 2.54mm pitch, 8.51mm socket length, double cols (from Kicad 4.0.7), script generated +Through hole angled socket strip THT 2x40 2.54mm double row +0 +80 +80 +Connector_PinSocket_2.54mm +PinSocket_2x40_P2.54mm_Vertical +Through hole straight socket strip, 2x40, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Through hole socket strip THT 2x40 2.54mm double row +0 +80 +80 +Connector_PinSocket_2.54mm +PinSocket_2x40_P2.54mm_Vertical_SMD +surface-mounted straight socket strip, 2x40, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated +Surface mounted socket strip SMD 2x40 2.54mm double row +0 +80 +80 diff --git a/squeow_hw/jlcpcb.zip b/squeow_hw/jlcpcb.zip new file mode 100644 index 0000000000000000000000000000000000000000..6ff0588c0da8170ce482dc358c948819d1c51c96 GIT binary patch literal 35247 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 BmH+?% literal 0 HcmV?d00001 diff --git a/squeow_hw/jlcpcb/squeow-B_Cu.gbl b/squeow_hw/jlcpcb/squeow-B_Cu.gbl new file mode 100644 index 0000000..f94386b --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-B_Cu.gbl @@ -0,0 +1,285 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Copper,L2,Bot* +G04 #@! TF.FilePolarity,Positive* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 #@! TA.AperFunction,ViaPad* +%ADD10C,0.800000*% +G04 #@! TD* +G04 #@! TA.AperFunction,Conductor* +%ADD11C,1.000000*% +G04 #@! TD* +G04 APERTURE END LIST* +D10* +X34544000Y-48361600D03* +X39751000Y-29718000D03* +X23749000Y-22352000D03* +X32918400Y-48361600D03* +X20193000Y-46736000D03* +X17741500Y-22352000D03* +X41783000Y-22733000D03* +X32893000Y-24003000D03* +X15113000Y-53467000D03* +X41910000Y-54610000D03* +X43307000Y-37338000D03* +X27178000Y-38100000D03* +X15113000Y-39497000D03* +X26060400Y-38811200D03* +X17627600Y-45669200D03* +X28702000Y-28448000D03* +D11* +X17627600Y-45669200D02* +X19202400Y-45669200D01* +X26060400Y-31089600D02* +X26060400Y-38811200D01* +X19202400Y-45669200D02* +X26060400Y-38811200D01* +X28702000Y-28448000D02* +X26060400Y-31089600D01* +G04 #@! TA.AperFunction,Conductor* +G36* +X47693621Y-12847002D02* +G01* +X47740114Y-12900658D01* +X47751500Y-12953000D01* +X47751500Y-55627000D01* +X47731498Y-55695121D01* +X47677842Y-55741614D01* +X47625500Y-55753000D01* +X12699500Y-55753000D01* +X12631379Y-55732998D01* +X12584886Y-55679342D01* +X12573500Y-55627000D01* +X12573500Y-45662125D01* +X16614245Y-45662125D01* +X16632170Y-45859088D01* +X16688010Y-46048819D01* +X16779640Y-46224090D01* +X16903568Y-46378225D01* +X16908292Y-46382189D01* +X16915533Y-46388265D01* +X17055074Y-46505354D01* +X17060472Y-46508321D01* +X17060477Y-46508325D01* +X17157853Y-46561857D01* +X17228387Y-46600633D01* +X17234254Y-46602494D01* +X17234256Y-46602495D01* +X17411036Y-46658573D01* +X17416906Y-46660435D01* +X17570827Y-46677700D01* +X19140557Y-46677700D01* +X19154164Y-46678437D01* +X19185662Y-46681859D01* +X19185667Y-46681859D01* +X19191788Y-46682524D01* +X19218038Y-46680227D01* +X19241788Y-46678150D01* +X19246614Y-46677821D01* +X19249086Y-46677700D01* +X19252169Y-46677700D01* +X19264138Y-46676526D01* +X19294906Y-46673510D01* +X19296219Y-46673388D01* +X19340484Y-46669515D01* +X19388813Y-46665287D01* +X19393932Y-46663800D01* +X19399233Y-46663280D01* +X19488234Y-46636409D01* +X19489367Y-46636074D01* +X19572814Y-46611830D01* +X19572818Y-46611828D01* +X19578736Y-46610109D01* +X19583468Y-46607656D01* +X19588569Y-46606116D01* +X19604460Y-46597667D01* +X19670660Y-46562469D01* +X19671826Y-46561857D01* +X19748853Y-46521929D01* +X19754326Y-46519092D01* +X19758489Y-46515769D01* +X19763196Y-46513266D01* +X19835318Y-46454445D01* +X19836174Y-46453754D01* +X19875373Y-46422462D01* +X19877877Y-46419958D01* +X19878595Y-46419316D01* +X19882928Y-46415615D01* +X19916462Y-46388265D01* +X19945688Y-46352937D01* +X19953677Y-46344158D01* +X26729779Y-39568055D01* +X26739922Y-39558953D01* +X26764618Y-39539097D01* +X26769425Y-39535232D01* +X26801692Y-39496778D01* +X26804873Y-39493130D01* +X26806517Y-39491317D01* +X26808709Y-39489125D01* +X26835980Y-39455924D01* +X26836762Y-39454982D01* +X26892593Y-39388447D01* +X26892595Y-39388444D01* +X26896554Y-39383726D01* +X26899123Y-39379053D01* +X26902503Y-39374938D01* +X26946428Y-39293020D01* +X26947057Y-39291862D01* +X26988865Y-39215812D01* +X26988865Y-39215811D01* +X26991833Y-39210413D01* +X26993444Y-39205335D01* +X26995963Y-39200637D01* +X27023153Y-39111702D01* +X27023536Y-39110472D01* +X27049771Y-39027770D01* +X27051635Y-39021894D01* +X27052228Y-39016603D01* +X27053788Y-39011502D01* +X27063195Y-38918889D01* +X27063315Y-38917769D01* +X27068900Y-38867973D01* +X27068900Y-38864444D01* +X27068955Y-38863461D01* +X27069404Y-38857756D01* +X27073152Y-38820864D01* +X27073152Y-38820861D01* +X27073774Y-38814737D01* +X27069459Y-38769088D01* +X27068900Y-38757231D01* +X27068900Y-31559525D01* +X27088902Y-31491404D01* +X27105805Y-31470430D01* +X29450310Y-29125925D01* +X29544103Y-29011738D01* +X29547010Y-29006316D01* +X29547013Y-29006312D01* +X29634651Y-28842868D01* +X29634651Y-28842867D01* +X29637563Y-28837437D01* +X29695388Y-28648302D01* +X29715374Y-28451537D01* +X29696762Y-28254638D01* +X29640260Y-28065103D01* +X29548018Y-27890153D01* +X29423553Y-27736452D01* +X29271605Y-27609853D01* +X29097960Y-27515178D01* +X28909232Y-27456035D01* +X28903109Y-27455370D01* +X28903105Y-27455369D01* +X28718737Y-27435340D01* +X28718733Y-27435340D01* +X28712612Y-27434675D01* +X28515587Y-27451912D01* +X28410386Y-27482477D01* +X28331579Y-27505372D01* +X28331574Y-27505374D01* +X28325664Y-27507091D01* +X28150074Y-27598108D01* +X28029028Y-27694738D01* +X25391021Y-30332745D01* +X25380878Y-30341847D01* +X25351375Y-30365568D01* +X25347408Y-30370296D01* +X25319109Y-30404021D01* +X25315928Y-30407669D01* +X25314285Y-30409481D01* +X25312091Y-30411675D01* +X25284758Y-30444949D01* +X25284096Y-30445747D01* +X25224246Y-30517074D01* +X25221678Y-30521744D01* +X25218297Y-30525861D01* +X25187260Y-30583745D01* +X25174423Y-30607686D01* +X25173794Y-30608845D01* +X25131938Y-30684981D01* +X25131935Y-30684989D01* +X25128967Y-30690387D01* +X25127355Y-30695469D01* +X25124838Y-30700163D01* +X25097638Y-30789131D01* +X25097318Y-30790159D01* +X25069165Y-30878906D01* +X25068571Y-30884202D01* +X25067013Y-30889298D01* +X25066390Y-30895434D01* +X25057618Y-30981787D01* +X25057489Y-30982993D01* +X25051900Y-31032827D01* +X25051900Y-31036354D01* +X25051845Y-31037339D01* +X25051398Y-31043019D01* +X25047026Y-31086062D01* +X25047606Y-31092193D01* +X25051341Y-31131709D01* +X25051900Y-31143567D01* +X25051900Y-38341276D01* +X25031898Y-38409397D01* +X25014995Y-38430371D01* +X18821571Y-44623795D01* +X18759259Y-44657821D01* +X18732476Y-44660700D01* +X17577831Y-44660700D01* +X17574775Y-44661000D01* +X17574768Y-44661000D01* +X17516260Y-44666737D01* +X17430767Y-44675120D01* +X17424866Y-44676902D01* +X17424864Y-44676902D01* +X17351547Y-44699038D01* +X17241431Y-44732284D01* +X17066804Y-44825134D01* +X16980538Y-44895491D01* +X16918313Y-44946240D01* +X16918310Y-44946243D01* +X16913538Y-44950135D01* +X16909611Y-44954882D01* +X16909609Y-44954884D01* +X16791399Y-45097775D01* +X16791397Y-45097779D01* +X16787470Y-45102525D01* +X16693402Y-45276499D01* +X16634918Y-45465432D01* +X16614245Y-45662125D01* +X12573500Y-45662125D01* +X12573500Y-14277615D01* +X12593502Y-14209494D01* +X12647158Y-14163001D01* +X12667526Y-14155739D01* +X12707579Y-14145231D01* +X12760411Y-14131371D01* +X12764371Y-14129731D01* +X12764376Y-14129729D01* +X12912246Y-14068479D01* +X13034415Y-14017875D01* +X13290482Y-13868242D01* +X13523871Y-13685241D01* +X13730266Y-13472258D01* +X13732799Y-13468810D01* +X13732803Y-13468805D01* +X13903307Y-13236691D01* +X13905845Y-13233236D01* +X13977223Y-13101775D01* +X14045311Y-12976372D01* +X14045312Y-12976370D01* +X14047361Y-12972596D01* +X14060907Y-12936748D01* +X14071595Y-12908463D01* +X14114385Y-12851809D01* +X14181010Y-12827284D01* +X14189461Y-12827000D01* +X47625500Y-12827000D01* +X47693621Y-12847002D01* +G37* +G04 #@! TD.AperFunction* +M02* diff --git a/squeow_hw/jlcpcb/squeow-B_Mask.gbs b/squeow_hw/jlcpcb/squeow-B_Mask.gbs new file mode 100644 index 0000000..a9a369c --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-B_Mask.gbs @@ -0,0 +1,15 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Soldermask,Bot* +G04 #@! TF.FilePolarity,Negative* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 APERTURE END LIST* +M02* diff --git a/squeow_hw/jlcpcb/squeow-B_Paste.gbp b/squeow_hw/jlcpcb/squeow-B_Paste.gbp new file mode 100644 index 0000000..439d538 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-B_Paste.gbp @@ -0,0 +1,15 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Paste,Bot* +G04 #@! TF.FilePolarity,Positive* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 APERTURE END LIST* +M02* diff --git a/squeow_hw/jlcpcb/squeow-B_Silkscreen.gbo b/squeow_hw/jlcpcb/squeow-B_Silkscreen.gbo new file mode 100644 index 0000000..6f3f4b7 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-B_Silkscreen.gbo @@ -0,0 +1,16 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Legend,Bot* +G04 #@! TF.FilePolarity,Positive* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 APERTURE END LIST* +%LPC*% +M02* diff --git a/squeow_hw/jlcpcb/squeow-Edge_Cuts.gm1 b/squeow_hw/jlcpcb/squeow-Edge_Cuts.gm1 new file mode 100644 index 0000000..405bd74 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-Edge_Cuts.gm1 @@ -0,0 +1,39 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Profile,NP* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 #@! TA.AperFunction,Profile* +%ADD10C,0.150000*% +G04 #@! TD* +G04 #@! TA.AperFunction,Profile* +%ADD11C,0.100000*% +G04 #@! TD* +G04 APERTURE END LIST* +D10* +X12065000Y-12065000D02* +X48260000Y-12065000D01* +X48260000Y-12065000D02* +X48260000Y-56515000D01* +X48260000Y-56515000D02* +X12065000Y-56515000D01* +X12065000Y-56515000D02* +X12065000Y-12065000D01* +D11* +X13731666Y-12065000D02* +G75* +G03* +X13731666Y-12065000I-1666666J0D01* +G01* +X9565000Y-12065000D02* +X14565000Y-12065000D01* +X12065000Y-9565000D02* +X12065000Y-14565000D01* +M02* diff --git a/squeow_hw/jlcpcb/squeow-F_Cu.gtl b/squeow_hw/jlcpcb/squeow-F_Cu.gtl new file mode 100644 index 0000000..4558755 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-F_Cu.gtl @@ -0,0 +1,3374 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Copper,L1,Top* +G04 #@! TF.FilePolarity,Positive* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +%AMFreePoly0* +4,1,9,3.862500,-0.866500,0.737500,-0.866500,0.737500,-0.450000,-0.737500,-0.450000,-0.737500,0.450000,0.737500,0.450000,0.737500,0.866500,3.862500,0.866500,3.862500,-0.866500,3.862500,-0.866500,$1*% +G04 Aperture macros list end* +G04 #@! TA.AperFunction,NonConductor* +%ADD10C,0.010000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD11R,1.000000X2.510000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD12RoundRect,0.250000X0.350000X0.450000X-0.350000X0.450000X-0.350000X-0.450000X0.350000X-0.450000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD13RoundRect,0.250000X-0.412500X-1.100000X0.412500X-1.100000X0.412500X1.100000X-0.412500X1.100000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD14R,0.900000X1.300000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD15FreePoly0,90.000000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD16RoundRect,0.125000X-0.625000X-0.125000X0.625000X-0.125000X0.625000X0.125000X-0.625000X0.125000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD17RoundRect,0.125000X-0.125000X-0.625000X0.125000X-0.625000X0.125000X0.625000X-0.125000X0.625000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD18R,0.300000X1.400000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD19R,0.700000X0.450000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD20R,1.900000X1.000000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD21RoundRect,0.250000X-1.100000X0.412500X-1.100000X-0.412500X1.100000X-0.412500X1.100000X0.412500X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD22RoundRect,0.250000X0.412500X1.100000X-0.412500X1.100000X-0.412500X-1.100000X0.412500X-1.100000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD23RoundRect,0.250000X1.100000X-0.412500X1.100000X0.412500X-1.100000X0.412500X-1.100000X-0.412500X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD24RoundRect,0.150000X0.150000X-0.825000X0.150000X0.825000X-0.150000X0.825000X-0.150000X-0.825000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD25RoundRect,0.150000X-0.825000X-0.150000X0.825000X-0.150000X0.825000X0.150000X-0.825000X0.150000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD26RoundRect,0.250000X-0.350000X-0.450000X0.350000X-0.450000X0.350000X0.450000X-0.350000X0.450000X0*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD27R,4.000000X4.000000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD28R,0.450000X0.700000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD29R,1.500000X2.700000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD30R,2.400000X3.500000*% +G04 #@! TD* +G04 #@! TA.AperFunction,SMDPad,CuDef* +%ADD31R,2.510000X1.000000*% +G04 #@! TD* +G04 #@! TA.AperFunction,ViaPad* +%ADD32C,0.800000*% +G04 #@! TD* +G04 #@! TA.AperFunction,Conductor* +%ADD33C,0.250000*% +G04 #@! TD* +G04 #@! TA.AperFunction,Conductor* +%ADD34C,0.500000*% +G04 #@! TD* +G04 #@! TA.AperFunction,Conductor* +%ADD35C,1.000000*% +G04 #@! TD* +G04 APERTURE END LIST* +D10* +G36* +X37753877Y-23781574D02* +G01* +X37755323Y-23762625D01* +X37757704Y-23743949D01* +X37760996Y-23725568D01* +X37765175Y-23707508D01* +X37770219Y-23689790D01* +X37776102Y-23672440D01* +X37782802Y-23655480D01* +X37790296Y-23638935D01* +X37798558Y-23622828D01* +X37807566Y-23607182D01* +X37817296Y-23592021D01* +X37827724Y-23577370D01* +X37838826Y-23563251D01* +X37850580Y-23549689D01* +X37862961Y-23536706D01* +X37875945Y-23524327D01* +X37889509Y-23512575D01* +X37903629Y-23501474D01* +X37918282Y-23491048D01* +X37933443Y-23481319D01* +X37949090Y-23472313D01* +X37965198Y-23464052D01* +X37981744Y-23456560D01* +X37998705Y-23449861D01* +X38016055Y-23443979D01* +X38033773Y-23438936D01* +X38051834Y-23434758D01* +X38070214Y-23431466D01* +X38088890Y-23429086D01* +X38107838Y-23427641D01* +X38127035Y-23427154D01* +X38146239Y-23427641D01* +X38165194Y-23429086D01* +X38183877Y-23431466D01* +X38202264Y-23434758D01* +X38220331Y-23438936D01* +X38238056Y-23443979D01* +X38255413Y-23449861D01* +X38272379Y-23456560D01* +X38288931Y-23464052D01* +X38305045Y-23472313D01* +X38320698Y-23481319D01* +X38335865Y-23491048D01* +X38350523Y-23501474D01* +X38364648Y-23512575D01* +X38378217Y-23524327D01* +X38391206Y-23536706D01* +X38403591Y-23549689D01* +X38415349Y-23563251D01* +X38426456Y-23577370D01* +X38436888Y-23592021D01* +X38446622Y-23607182D01* +X38455633Y-23622827D01* +X38463899Y-23638935D01* +X38471395Y-23655480D01* +X38478098Y-23672440D01* +X38483985Y-23689790D01* +X38489031Y-23707507D01* +X38493212Y-23725568D01* +X38496506Y-23743949D01* +X38498889Y-23762625D01* +X38500336Y-23781574D01* +X38500825Y-23800772D01* +X38500337Y-23819972D01* +X38498891Y-23838923D01* +X38496509Y-23857601D01* +X38493216Y-23875983D01* +X38489035Y-23894045D01* +X38483989Y-23911763D01* +X38478103Y-23929114D01* +X38471401Y-23946075D01* +X38463904Y-23962620D01* +X38455639Y-23978728D01* +X38446627Y-23994373D01* +X38436894Y-24009534D01* +X38426462Y-24024185D01* +X38415355Y-24038303D01* +X38403597Y-24051865D01* +X38391211Y-24064848D01* +X38378222Y-24077226D01* +X38364652Y-24088977D01* +X38350527Y-24100077D01* +X38335868Y-24110503D01* +X38320701Y-24120230D01* +X38305048Y-24129236D01* +X38288933Y-24137496D01* +X38272381Y-24144987D01* +X38255414Y-24151685D01* +X38238057Y-24157567D01* +X38220332Y-24162609D01* +X38202265Y-24166787D01* +X38183877Y-24170078D01* +X38165194Y-24172458D01* +X38146239Y-24173903D01* +X38127035Y-24174390D01* +X38107844Y-24173903D01* +X38088901Y-24172458D01* +X38070229Y-24170078D01* +X38051853Y-24166787D01* +X38033795Y-24162609D01* +X38016080Y-24157567D01* +X37998731Y-24151685D01* +X37981772Y-24144987D01* +X37965227Y-24137496D01* +X37949119Y-24129236D01* +X37933473Y-24120230D01* +X37918311Y-24110503D01* +X37903657Y-24100077D01* +X37889536Y-24088977D01* +X37875971Y-24077226D01* +X37862985Y-24064848D01* +X37850603Y-24051865D01* +X37838848Y-24038303D01* +X37827743Y-24024185D01* +X37817313Y-24009534D01* +X37807581Y-23994373D01* +X37798571Y-23978728D01* +X37790307Y-23962620D01* +X37782812Y-23946075D01* +X37776110Y-23929114D01* +X37770224Y-23911763D01* +X37765179Y-23894045D01* +X37760998Y-23875983D01* +X37757705Y-23857601D01* +X37755324Y-23838923D01* +X37753877Y-23819972D01* +X37753392Y-23800864D01* +X37967702Y-23800864D01* +X37967910Y-23809050D01* +X37968528Y-23817129D01* +X37969544Y-23825092D01* +X37970949Y-23832929D01* +X37972733Y-23840629D01* +X37974886Y-23848182D01* +X37977397Y-23855580D01* +X37980257Y-23862810D01* +X37983454Y-23869864D01* +X37986980Y-23876731D01* +X37990824Y-23883401D01* +X37994976Y-23889864D01* +X37999425Y-23896110D01* +X38004162Y-23902128D01* +X38009176Y-23907910D01* +X38014458Y-23913445D01* +X38019996Y-23918722D01* +X38025782Y-23923731D01* +X38031804Y-23928463D01* +X38038054Y-23932908D01* +X38044519Y-23937055D01* +X38051191Y-23940894D01* +X38058060Y-23944415D01* +X38065114Y-23947609D01* +X38072345Y-23950464D01* +X38079741Y-23952972D01* +X38087293Y-23955121D01* +X38094991Y-23956902D01* +X38102824Y-23958305D01* +X38110783Y-23959320D01* +X38118856Y-23959936D01* +X38127035Y-23960143D01* +X38135238Y-23959936D01* +X38143334Y-23959320D01* +X38151313Y-23958305D01* +X38159164Y-23956902D01* +X38166878Y-23955121D01* +X38174445Y-23952972D01* +X38181854Y-23950464D01* +X38189095Y-23947609D01* +X38196159Y-23944415D01* +X38203035Y-23940894D01* +X38209714Y-23937055D01* +X38216184Y-23932908D01* +X38222438Y-23928463D01* +X38228463Y-23923731D01* +X38234250Y-23918722D01* +X38239790Y-23913445D01* +X38245072Y-23907910D01* +X38250086Y-23902128D01* +X38254822Y-23896110D01* +X38259269Y-23889864D01* +X38263419Y-23883400D01* +X38267261Y-23876730D01* +X38270785Y-23869864D01* +X38273980Y-23862810D01* +X38276837Y-23855579D01* +X38279346Y-23848182D01* +X38281497Y-23840629D01* +X38283280Y-23832929D01* +X38284684Y-23825092D01* +X38285700Y-23817129D01* +X38286317Y-23809050D01* +X38286526Y-23800864D01* +X38286318Y-23792673D01* +X38285700Y-23784588D01* +X38284684Y-23776620D01* +X38283278Y-23768779D01* +X38281494Y-23761074D01* +X38279340Y-23753517D01* +X38276828Y-23746116D01* +X38273967Y-23738883D01* +X38270768Y-23731826D01* +X38267240Y-23724957D01* +X38263395Y-23718284D01* +X38259241Y-23711819D01* +X38254789Y-23705572D01* +X38250049Y-23699551D01* +X38245031Y-23693768D01* +X38239746Y-23688233D01* +X38234203Y-23682955D01* +X38228412Y-23677945D01* +X38222385Y-23673212D01* +X38216130Y-23668767D01* +X38209658Y-23664620D01* +X38202979Y-23660781D01* +X38196104Y-23657259D01* +X38189041Y-23654066D01* +X38181802Y-23651210D01* +X38174397Y-23648703D01* +X38166835Y-23646554D01* +X38159127Y-23644773D01* +X38151283Y-23643370D01* +X38143313Y-23642356D01* +X38135227Y-23641740D01* +X38127035Y-23641532D01* +X38118856Y-23641740D01* +X38110783Y-23642356D01* +X38102824Y-23643370D01* +X38094991Y-23644773D01* +X38087293Y-23646554D01* +X38079741Y-23648703D01* +X38072345Y-23651210D01* +X38065114Y-23654066D01* +X38058060Y-23657259D01* +X38051191Y-23660781D01* +X38044519Y-23664620D01* +X38038054Y-23668767D01* +X38031804Y-23673212D01* +X38025782Y-23677945D01* +X38019996Y-23682955D01* +X38014458Y-23688233D01* +X38009176Y-23693768D01* +X38004162Y-23699551D01* +X37999425Y-23705572D01* +X37994976Y-23711819D01* +X37990824Y-23718284D01* +X37986980Y-23724957D01* +X37983454Y-23731826D01* +X37980257Y-23738883D01* +X37977397Y-23746116D01* +X37974886Y-23753517D01* +X37972733Y-23761074D01* +X37970949Y-23768779D01* +X37969544Y-23776620D01* +X37968528Y-23784588D01* +X37967910Y-23792673D01* +X37967702Y-23800864D01* +X37753392Y-23800864D01* +X37753390Y-23800772D01* +X37753877Y-23781574D01* +G37* +X37753877Y-23781574D02* +X37755323Y-23762625D01* +X37757704Y-23743949D01* +X37760996Y-23725568D01* +X37765175Y-23707508D01* +X37770219Y-23689790D01* +X37776102Y-23672440D01* +X37782802Y-23655480D01* +X37790296Y-23638935D01* +X37798558Y-23622828D01* +X37807566Y-23607182D01* +X37817296Y-23592021D01* +X37827724Y-23577370D01* +X37838826Y-23563251D01* +X37850580Y-23549689D01* +X37862961Y-23536706D01* +X37875945Y-23524327D01* +X37889509Y-23512575D01* +X37903629Y-23501474D01* +X37918282Y-23491048D01* +X37933443Y-23481319D01* +X37949090Y-23472313D01* +X37965198Y-23464052D01* +X37981744Y-23456560D01* +X37998705Y-23449861D01* +X38016055Y-23443979D01* +X38033773Y-23438936D01* +X38051834Y-23434758D01* +X38070214Y-23431466D01* +X38088890Y-23429086D01* +X38107838Y-23427641D01* +X38127035Y-23427154D01* +X38146239Y-23427641D01* +X38165194Y-23429086D01* +X38183877Y-23431466D01* +X38202264Y-23434758D01* +X38220331Y-23438936D01* +X38238056Y-23443979D01* +X38255413Y-23449861D01* +X38272379Y-23456560D01* +X38288931Y-23464052D01* +X38305045Y-23472313D01* +X38320698Y-23481319D01* +X38335865Y-23491048D01* +X38350523Y-23501474D01* +X38364648Y-23512575D01* +X38378217Y-23524327D01* +X38391206Y-23536706D01* +X38403591Y-23549689D01* +X38415349Y-23563251D01* +X38426456Y-23577370D01* +X38436888Y-23592021D01* +X38446622Y-23607182D01* +X38455633Y-23622827D01* +X38463899Y-23638935D01* +X38471395Y-23655480D01* +X38478098Y-23672440D01* +X38483985Y-23689790D01* +X38489031Y-23707507D01* +X38493212Y-23725568D01* +X38496506Y-23743949D01* +X38498889Y-23762625D01* +X38500336Y-23781574D01* +X38500825Y-23800772D01* +X38500337Y-23819972D01* +X38498891Y-23838923D01* +X38496509Y-23857601D01* +X38493216Y-23875983D01* +X38489035Y-23894045D01* +X38483989Y-23911763D01* +X38478103Y-23929114D01* +X38471401Y-23946075D01* +X38463904Y-23962620D01* +X38455639Y-23978728D01* +X38446627Y-23994373D01* +X38436894Y-24009534D01* +X38426462Y-24024185D01* +X38415355Y-24038303D01* +X38403597Y-24051865D01* +X38391211Y-24064848D01* +X38378222Y-24077226D01* +X38364652Y-24088977D01* +X38350527Y-24100077D01* +X38335868Y-24110503D01* +X38320701Y-24120230D01* +X38305048Y-24129236D01* +X38288933Y-24137496D01* +X38272381Y-24144987D01* +X38255414Y-24151685D01* +X38238057Y-24157567D01* +X38220332Y-24162609D01* +X38202265Y-24166787D01* +X38183877Y-24170078D01* +X38165194Y-24172458D01* +X38146239Y-24173903D01* +X38127035Y-24174390D01* +X38107844Y-24173903D01* +X38088901Y-24172458D01* +X38070229Y-24170078D01* +X38051853Y-24166787D01* +X38033795Y-24162609D01* +X38016080Y-24157567D01* +X37998731Y-24151685D01* +X37981772Y-24144987D01* +X37965227Y-24137496D01* +X37949119Y-24129236D01* +X37933473Y-24120230D01* +X37918311Y-24110503D01* +X37903657Y-24100077D01* +X37889536Y-24088977D01* +X37875971Y-24077226D01* +X37862985Y-24064848D01* +X37850603Y-24051865D01* +X37838848Y-24038303D01* +X37827743Y-24024185D01* +X37817313Y-24009534D01* +X37807581Y-23994373D01* +X37798571Y-23978728D01* +X37790307Y-23962620D01* +X37782812Y-23946075D01* +X37776110Y-23929114D01* +X37770224Y-23911763D01* +X37765179Y-23894045D01* +X37760998Y-23875983D01* +X37757705Y-23857601D01* +X37755324Y-23838923D01* +X37753877Y-23819972D01* +X37753392Y-23800864D01* +X37967702Y-23800864D01* +X37967910Y-23809050D01* +X37968528Y-23817129D01* +X37969544Y-23825092D01* +X37970949Y-23832929D01* +X37972733Y-23840629D01* +X37974886Y-23848182D01* +X37977397Y-23855580D01* +X37980257Y-23862810D01* +X37983454Y-23869864D01* +X37986980Y-23876731D01* +X37990824Y-23883401D01* +X37994976Y-23889864D01* +X37999425Y-23896110D01* +X38004162Y-23902128D01* +X38009176Y-23907910D01* +X38014458Y-23913445D01* +X38019996Y-23918722D01* +X38025782Y-23923731D01* +X38031804Y-23928463D01* +X38038054Y-23932908D01* +X38044519Y-23937055D01* +X38051191Y-23940894D01* +X38058060Y-23944415D01* +X38065114Y-23947609D01* +X38072345Y-23950464D01* +X38079741Y-23952972D01* +X38087293Y-23955121D01* +X38094991Y-23956902D01* +X38102824Y-23958305D01* +X38110783Y-23959320D01* +X38118856Y-23959936D01* +X38127035Y-23960143D01* +X38135238Y-23959936D01* +X38143334Y-23959320D01* +X38151313Y-23958305D01* +X38159164Y-23956902D01* +X38166878Y-23955121D01* +X38174445Y-23952972D01* +X38181854Y-23950464D01* +X38189095Y-23947609D01* +X38196159Y-23944415D01* +X38203035Y-23940894D01* +X38209714Y-23937055D01* +X38216184Y-23932908D01* +X38222438Y-23928463D01* +X38228463Y-23923731D01* +X38234250Y-23918722D01* +X38239790Y-23913445D01* +X38245072Y-23907910D01* +X38250086Y-23902128D01* +X38254822Y-23896110D01* +X38259269Y-23889864D01* +X38263419Y-23883400D01* +X38267261Y-23876730D01* +X38270785Y-23869864D01* +X38273980Y-23862810D01* +X38276837Y-23855579D01* +X38279346Y-23848182D01* +X38281497Y-23840629D01* +X38283280Y-23832929D01* +X38284684Y-23825092D01* +X38285700Y-23817129D01* +X38286317Y-23809050D01* +X38286526Y-23800864D01* +X38286318Y-23792673D01* +X38285700Y-23784588D01* +X38284684Y-23776620D01* +X38283278Y-23768779D01* +X38281494Y-23761074D01* +X38279340Y-23753517D01* +X38276828Y-23746116D01* +X38273967Y-23738883D01* +X38270768Y-23731826D01* +X38267240Y-23724957D01* +X38263395Y-23718284D01* +X38259241Y-23711819D01* +X38254789Y-23705572D01* +X38250049Y-23699551D01* +X38245031Y-23693768D01* +X38239746Y-23688233D01* +X38234203Y-23682955D01* +X38228412Y-23677945D01* +X38222385Y-23673212D01* +X38216130Y-23668767D01* +X38209658Y-23664620D01* +X38202979Y-23660781D01* +X38196104Y-23657259D01* +X38189041Y-23654066D01* +X38181802Y-23651210D01* +X38174397Y-23648703D01* +X38166835Y-23646554D01* +X38159127Y-23644773D01* +X38151283Y-23643370D01* +X38143313Y-23642356D01* +X38135227Y-23641740D01* +X38127035Y-23641532D01* +X38118856Y-23641740D01* +X38110783Y-23642356D01* +X38102824Y-23643370D01* +X38094991Y-23644773D01* +X38087293Y-23646554D01* +X38079741Y-23648703D01* +X38072345Y-23651210D01* +X38065114Y-23654066D01* +X38058060Y-23657259D01* +X38051191Y-23660781D01* +X38044519Y-23664620D01* +X38038054Y-23668767D01* +X38031804Y-23673212D01* +X38025782Y-23677945D01* +X38019996Y-23682955D01* +X38014458Y-23688233D01* +X38009176Y-23693768D01* +X38004162Y-23699551D01* +X37999425Y-23705572D01* +X37994976Y-23711819D01* +X37990824Y-23718284D01* +X37986980Y-23724957D01* +X37983454Y-23731826D01* +X37980257Y-23738883D01* +X37977397Y-23746116D01* +X37974886Y-23753517D01* +X37972733Y-23761074D01* +X37970949Y-23768779D01* +X37969544Y-23776620D01* +X37968528Y-23784588D01* +X37967910Y-23792673D01* +X37967702Y-23800864D01* +X37753392Y-23800864D01* +X37753390Y-23800772D01* +X37753877Y-23781574D01* +G36* +X35280785Y-21601829D02* +G01* +X35281078Y-21597263D01* +X35281561Y-21592743D01* +X35282232Y-21588274D01* +X35283086Y-21583860D01* +X35284120Y-21579507D01* +X35285331Y-21575218D01* +X35286715Y-21570998D01* +X35288267Y-21566853D01* +X35289986Y-21562785D01* +X35291867Y-21558800D01* +X35293906Y-21554903D01* +X35296101Y-21551098D01* +X35298447Y-21547389D01* +X35300940Y-21543781D01* +X35303578Y-21540279D01* +X35306357Y-21536888D01* +X35309273Y-21533611D01* +X35312322Y-21530453D01* +X35315502Y-21527420D01* +X35318808Y-21524515D01* +X35322237Y-21521743D01* +X35325785Y-21519109D01* +X35329449Y-21516617D01* +X35333224Y-21514272D01* +X35337109Y-21512078D01* +X35341099Y-21510040D01* +X35345189Y-21508163D01* +X35349378Y-21506451D01* +X35353661Y-21504908D01* +X35358035Y-21503539D01* +X35362496Y-21502350D01* +X35366968Y-21501345D01* +X35371449Y-21500540D01* +X35375934Y-21499931D01* +X35380416Y-21499517D01* +X35384891Y-21499295D01* +X35389352Y-21499263D01* +X35393796Y-21499418D01* +X35398215Y-21499758D01* +X35402605Y-21500280D01* +X35406961Y-21500982D01* +X35411276Y-21501861D01* +X35415546Y-21502916D01* +X35419764Y-21504144D01* +X35423927Y-21505541D01* +X35428027Y-21507107D01* +X35432060Y-21508839D01* +X35436020Y-21510733D01* +X35439902Y-21512788D01* +X35443701Y-21515001D01* +X35447410Y-21517370D01* +X35451025Y-21519893D01* +X35454540Y-21522567D01* +X35457950Y-21525389D01* +X35461249Y-21528357D01* +X35464432Y-21531470D01* +X35467493Y-21534723D01* +X35470427Y-21538116D01* +X35473228Y-21541645D01* +X35475892Y-21545308D01* +X35478412Y-21549103D01* +X35480783Y-21553027D01* +X35483001Y-21557079D01* +X35965138Y-22485422D01* +X36488536Y-22484681D01* +X37381435Y-22485304D01* +X37980575Y-22486902D01* +X38344963Y-22489074D01* +X38533607Y-22491415D01* +X39056979Y-21625103D01* +X39061927Y-21617638D01* +X39067407Y-21610693D01* +X39073380Y-21604284D01* +X39079804Y-21598428D01* +X39086639Y-21593141D01* +X39093846Y-21588440D01* +X39101383Y-21584341D01* +X39109211Y-21580861D01* +X39117289Y-21578017D01* +X39125577Y-21575824D01* +X39134035Y-21574299D01* +X39142622Y-21573460D01* +X39151298Y-21573321D01* +X39160023Y-21573901D01* +X39168756Y-21575215D01* +X39177457Y-21577280D01* +X39181764Y-21578578D01* +X39185984Y-21580043D01* +X39190114Y-21581671D01* +X39194150Y-21583458D01* +X39201929Y-21587491D01* +X39209294Y-21592107D01* +X39216220Y-21597272D01* +X39222680Y-21602952D01* +X39228649Y-21609113D01* +X39234100Y-21615720D01* +X39239007Y-21622739D01* +X39243345Y-21630136D01* +X39247086Y-21637877D01* +X39250206Y-21645927D01* +X39252678Y-21654251D01* +X39254476Y-21662817D01* +X39255114Y-21667179D01* +X39255574Y-21671589D01* +X39255852Y-21676042D01* +X39255946Y-21680533D01* +X39255946Y-26511440D01* +X39255631Y-26528513D01* +X39254693Y-26545423D01* +X39253145Y-26562162D01* +X39250999Y-26578719D01* +X39248267Y-26595085D01* +X39244961Y-26611251D01* +X39241093Y-26627206D01* +X39236674Y-26642942D01* +X39231718Y-26658447D01* +X39226236Y-26673713D01* +X39220240Y-26688730D01* +X39213742Y-26703488D01* +X39206754Y-26717978D01* +X39199289Y-26732190D01* +X39191358Y-26746113D01* +X39182974Y-26759739D01* +X39577402Y-26759739D01* +X39579343Y-26759755D01* +X39581288Y-26759805D01* +X39583233Y-26759888D01* +X39585177Y-26760007D01* +X39587117Y-26760161D01* +X39589051Y-26760353D01* +X39590977Y-26760582D01* +X39592893Y-26760850D01* +X39602850Y-26761138D01* +X39613520Y-26760629D01* +X39619931Y-26759958D01* +X39626928Y-26758914D01* +X39634411Y-26757423D01* +X39642282Y-26755413D01* +X39650441Y-26752813D01* +X39658790Y-26749549D01* +X39667229Y-26745549D01* +X39675659Y-26740741D01* +X39679840Y-26738012D01* +X39683982Y-26735053D01* +X39688072Y-26731856D01* +X39692098Y-26728412D01* +X39699701Y-26720969D01* +X39706839Y-26712694D01* +X39713509Y-26703601D01* +X39719707Y-26693699D01* +X39725430Y-26683000D01* +X39730675Y-26671516D01* +X39735437Y-26659257D01* +X39739713Y-26646235D01* +X39743500Y-26632460D01* +X39746793Y-26617945D01* +X39749590Y-26602700D01* +X39751886Y-26586737D01* +X39753678Y-26570067D01* +X39754963Y-26552701D01* +X39755736Y-26534650D01* +X39755995Y-26515925D01* +X39755235Y-26489525D01* +X39753002Y-26463467D01* +X39749367Y-26437676D01* +X39744400Y-26412079D01* +X39738173Y-26386601D01* +X39730754Y-26361168D01* +X39722217Y-26335706D01* +X39712630Y-26310141D01* +X39702064Y-26284399D01* +X39690591Y-26258405D01* +X39665202Y-26205368D01* +X39637030Y-26150436D01* +X39606638Y-26093016D01* +X39561973Y-26008090D01* +X39516668Y-25916991D01* +X39472755Y-25818572D01* +X39451956Y-25766258D01* +X39432267Y-25711684D01* +X39413943Y-25654705D01* +X39397237Y-25595178D01* +X39382405Y-25532960D01* +X39369699Y-25467906D01* +X39359375Y-25399875D01* +X39351685Y-25328721D01* +X39346885Y-25254301D01* +X39345229Y-25176473D01* +X39346504Y-25107641D01* +X39350224Y-25041567D01* +X39356230Y-24978210D01* +X39364361Y-24917531D01* +X39374459Y-24859489D01* +X39386365Y-24804046D01* +X39399918Y-24751162D01* +X39414961Y-24700796D01* +X39431333Y-24652910D01* +X39448876Y-24607463D01* +X39467429Y-24564416D01* +X39486835Y-24523728D01* +X39506933Y-24485362D01* +X39527564Y-24449276D01* +X39548569Y-24415430D01* +X39569789Y-24383786D01* +X39591064Y-24354304D01* +X39612236Y-24326943D01* +X39633144Y-24301665D01* +X39653629Y-24278429D01* +X39692696Y-24237925D01* +X39728162Y-24205115D01* +X39758752Y-24179680D01* +X39783193Y-24161303D01* +X39808528Y-24144453D01* +X39813339Y-24141764D01* +X39818228Y-24139348D01* +X39823186Y-24137202D01* +X39828203Y-24135324D01* +X39833271Y-24133710D01* +X39838381Y-24132360D01* +X39843522Y-24131271D01* +X39848686Y-24130440D01* +X39853863Y-24129866D01* +X39859045Y-24129545D01* +X39864222Y-24129476D01* +X39869384Y-24129656D01* +X39874523Y-24130083D01* +X39879629Y-24130754D01* +X39884693Y-24131668D01* +X39889705Y-24132823D01* +X39894657Y-24134214D01* +X39899540Y-24135842D01* +X39904343Y-24137702D01* +X39909058Y-24139794D01* +X39913675Y-24142114D01* +X39918186Y-24144660D01* +X39922581Y-24147430D01* +X39926850Y-24150422D01* +X39930985Y-24153634D01* +X39934976Y-24157062D01* +X39938814Y-24160706D01* +X39942490Y-24164561D01* +X39945994Y-24168627D01* +X39949317Y-24172901D01* +X39952451Y-24177380D01* +X39955385Y-24182063D01* +X39958073Y-24186880D01* +X39960489Y-24191774D01* +X39962635Y-24196736D01* +X39964513Y-24201758D01* +X39966126Y-24206829D01* +X39967476Y-24211940D01* +X39968566Y-24217083D01* +X39969396Y-24222248D01* +X39969971Y-24227426D01* +X39970292Y-24232608D01* +X39970362Y-24237784D01* +X39970182Y-24242945D01* +X39969756Y-24248082D01* +X39969085Y-24253186D01* +X39968172Y-24258247D01* +X39967020Y-24263257D01* +X39965629Y-24268206D01* +X39964004Y-24273084D01* +X39962146Y-24277884D01* +X39960057Y-24282594D01* +X39957740Y-24287207D01* +X39955197Y-24291713D01* +X39952430Y-24296102D01* +X39949443Y-24300366D01* +X39946236Y-24304496D01* +X39942813Y-24308481D01* +X39939175Y-24312313D01* +X39935325Y-24315983D01* +X39931266Y-24319481D01* +X39926999Y-24322799D01* +X39922528Y-24325926D01* +X39917853Y-24328854D01* +X39898432Y-24342278D01* +X39855953Y-24377627D01* +X39828538Y-24404228D01* +X39798323Y-24437156D01* +X39766296Y-24476693D01* +X39733445Y-24523121D01* +X39700759Y-24576722D01* +X39669225Y-24637779D01* +X39639832Y-24706573D01* +X39613567Y-24783386D01* +X39591419Y-24868501D01* +X39582197Y-24914259D01* +X39574375Y-24962199D01* +X39568076Y-25012355D01* +X39563424Y-25064762D01* +X39560543Y-25119456D01* +X39559555Y-25176473D01* +X39560992Y-25244484D01* +X39565167Y-25309497D01* +X39571874Y-25371668D01* +X39580907Y-25431153D01* +X39592061Y-25488108D01* +X39605131Y-25542689D01* +X39619911Y-25595052D01* +X39636195Y-25645354D01* +X39653778Y-25693750D01* +X39672454Y-25740396D01* +X39692018Y-25785449D01* +X39712264Y-25829065D01* +X39753981Y-25912609D01* +X39795961Y-25992275D01* +X39829193Y-26055214D01* +X39861025Y-26117810D01* +X39890524Y-26180591D01* +X39904106Y-26212216D01* +X39916755Y-26244086D01* +X39928352Y-26276266D01* +X39938783Y-26308824D01* +X39947929Y-26341824D01* +X39955674Y-26375333D01* +X39961901Y-26409417D01* +X39966494Y-26444142D01* +X39969335Y-26479574D01* +X39970308Y-26515780D01* +X39969757Y-26547061D01* +X39968106Y-26577329D01* +X39965357Y-26606578D01* +X39961512Y-26634803D01* +X39956573Y-26661999D01* +X39950542Y-26688162D01* +X39943421Y-26713286D01* +X39935212Y-26737367D01* +X39925918Y-26760400D01* +X39915540Y-26782379D01* +X39904081Y-26803301D01* +X39891542Y-26823160D01* +X39877926Y-26841952D01* +X39863235Y-26859671D01* +X39847470Y-26876312D01* +X39830634Y-26891872D01* +X39822820Y-26898415D01* +X39814951Y-26904615D01* +X39799082Y-26916022D01* +X39783105Y-26926166D01* +X39767098Y-26935115D01* +X39751139Y-26942942D01* +X39735305Y-26949716D01* +X39719675Y-26955510D01* +X39704325Y-26960392D01* +X39689335Y-26964436D01* +X39674781Y-26967710D01* +X39660741Y-26970286D01* +X39647293Y-26972235D01* +X39634514Y-26973628D01* +X39622484Y-26974535D01* +X39611278Y-26975028D01* +X39600976Y-26975176D01* +X39596433Y-26975148D01* +X39592126Y-26975067D01* +X39588059Y-26974942D01* +X39584239Y-26974781D01* +X39580672Y-26974590D01* +X39577362Y-26974378D01* +X39571541Y-26973919D01* +X35743258Y-26973919D01* +X35719484Y-26973316D01* +X35696020Y-26971526D01* +X35672893Y-26968578D01* +X35650133Y-26964503D01* +X35627770Y-26959328D01* +X35605832Y-26953084D01* +X35584349Y-26945799D01* +X35563350Y-26937504D01* +X35542865Y-26928227D01* +X35522923Y-26917997D01* +X35503552Y-26906844D01* +X35484782Y-26894798D01* +X35466643Y-26881887D01* +X35449164Y-26868141D01* +X35432373Y-26853589D01* +X35416301Y-26838261D01* +X35400976Y-26822185D01* +X35386427Y-26805391D01* +X35372685Y-26787909D01* +X35359778Y-26769767D01* +X35347735Y-26750996D01* +X35336586Y-26731624D01* +X35326360Y-26711680D01* +X35317087Y-26691194D01* +X35308794Y-26670195D01* +X35301513Y-26648713D01* +X35295271Y-26626777D01* +X35290099Y-26604416D01* +X35286025Y-26581659D01* +X35283079Y-26558536D01* +X35281290Y-26535076D01* +X35280689Y-26511388D01* +X35494999Y-26511388D01* +X35495323Y-26524142D01* +X35496284Y-26536732D01* +X35497865Y-26549141D01* +X35500052Y-26561353D01* +X35502829Y-26573353D01* +X35506180Y-26585126D01* +X35510089Y-26596655D01* +X35514541Y-26607924D01* +X35519519Y-26618919D01* +X35525009Y-26629623D01* +X35530993Y-26640020D01* +X35537458Y-26650095D01* +X35544386Y-26659831D01* +X35551763Y-26669215D01* +X35559572Y-26678228D01* +X35567798Y-26686857D01* +X35576425Y-26695084D01* +X35585437Y-26702895D01* +X35594819Y-26710273D01* +X35604554Y-26717203D01* +X35614628Y-26723669D01* +X35625024Y-26729655D01* +X35635727Y-26735146D01* +X35646720Y-26740126D01* +X35657989Y-26744579D01* +X35669518Y-26748489D01* +X35681290Y-26751841D01* +X35693290Y-26754618D01* +X35705503Y-26756806D01* +X35717912Y-26758388D01* +X35730503Y-26759349D01* +X35743258Y-26759673D01* +X37380738Y-26759673D01* +X37380738Y-26759753D01* +X38793414Y-26759753D01* +X38806170Y-26759429D01* +X38818759Y-26758468D01* +X38831168Y-26756886D01* +X38843380Y-26754698D01* +X38855380Y-26751920D01* +X38867151Y-26748568D01* +X38878678Y-26744658D01* +X38889946Y-26740205D01* +X38900938Y-26735225D01* +X38911639Y-26729734D01* +X38922034Y-26723748D01* +X38932106Y-26717282D01* +X38941839Y-26710351D01* +X38951219Y-26702973D01* +X38960230Y-26695162D01* +X38968855Y-26686934D01* +X38977079Y-26678306D01* +X38984886Y-26669292D01* +X38992261Y-26659908D01* +X38999187Y-26650171D01* +X39005650Y-26640095D01* +X39011633Y-26629697D01* +X39017121Y-26618993D01* +X39022098Y-26607998D01* +X39026548Y-26596728D01* +X39030456Y-26585198D01* +X39033806Y-26573425D01* +X39036582Y-26561423D01* +X39038768Y-26549210D01* +X39040349Y-26536800D01* +X39041310Y-26524210D01* +X39041633Y-26511454D01* +X39041633Y-22065131D01* +X38685570Y-22654557D01* +X38681268Y-22661115D01* +X38676546Y-22667273D01* +X38671433Y-22673020D01* +X38665958Y-22678347D01* +X38660148Y-22683243D01* +X38654033Y-22687698D01* +X38647640Y-22691700D01* +X38640998Y-22695240D01* +X38634136Y-22698307D01* +X38627081Y-22700891D01* +X38619863Y-22702981D01* +X38612511Y-22704567D01* +X38605051Y-22705638D01* +X38597513Y-22706185D01* +X38589925Y-22706196D01* +X38582317Y-22705661D01* +X37813125Y-22700794D01* +X36488536Y-22698994D01* +X36057060Y-22699394D01* +X35907128Y-22700211D01* +X35903319Y-22700369D01* +X35899508Y-22700385D01* +X35895700Y-22700261D01* +X35891898Y-22699999D01* +X35888107Y-22699599D01* +X35884331Y-22699063D01* +X35880573Y-22698394D01* +X35876840Y-22697592D01* +X35873134Y-22696659D01* +X35869459Y-22695597D01* +X35865821Y-22694407D01* +X35862223Y-22693091D01* +X35858670Y-22691649D01* +X35855165Y-22690085D01* +X35851714Y-22688399D01* +X35848319Y-22686593D01* +X35844986Y-22684668D01* +X35841719Y-22682627D01* +X35838521Y-22680470D01* +X35835398Y-22678199D01* +X35832353Y-22675815D01* +X35829390Y-22673321D01* +X35826515Y-22670717D01* +X35823730Y-22668006D01* +X35821041Y-22665189D01* +X35818451Y-22662267D01* +X35815964Y-22659242D01* +X35813586Y-22656115D01* +X35811320Y-22652889D01* +X35809170Y-22649563D01* +X35807141Y-22646142D01* +X35805237Y-22642624D01* +X35494999Y-22045354D01* +X35494999Y-26511388D01* +X35280689Y-26511388D01* +X35280687Y-26511308D01* +X35280687Y-21606437D01* +X35280785Y-21601829D01* +G37* +X35280785Y-21601829D02* +X35281078Y-21597263D01* +X35281561Y-21592743D01* +X35282232Y-21588274D01* +X35283086Y-21583860D01* +X35284120Y-21579507D01* +X35285331Y-21575218D01* +X35286715Y-21570998D01* +X35288267Y-21566853D01* +X35289986Y-21562785D01* +X35291867Y-21558800D01* +X35293906Y-21554903D01* +X35296101Y-21551098D01* +X35298447Y-21547389D01* +X35300940Y-21543781D01* +X35303578Y-21540279D01* +X35306357Y-21536888D01* +X35309273Y-21533611D01* +X35312322Y-21530453D01* +X35315502Y-21527420D01* +X35318808Y-21524515D01* +X35322237Y-21521743D01* +X35325785Y-21519109D01* +X35329449Y-21516617D01* +X35333224Y-21514272D01* +X35337109Y-21512078D01* +X35341099Y-21510040D01* +X35345189Y-21508163D01* +X35349378Y-21506451D01* +X35353661Y-21504908D01* +X35358035Y-21503539D01* +X35362496Y-21502350D01* +X35366968Y-21501345D01* +X35371449Y-21500540D01* +X35375934Y-21499931D01* +X35380416Y-21499517D01* +X35384891Y-21499295D01* +X35389352Y-21499263D01* +X35393796Y-21499418D01* +X35398215Y-21499758D01* +X35402605Y-21500280D01* +X35406961Y-21500982D01* +X35411276Y-21501861D01* +X35415546Y-21502916D01* +X35419764Y-21504144D01* +X35423927Y-21505541D01* +X35428027Y-21507107D01* +X35432060Y-21508839D01* +X35436020Y-21510733D01* +X35439902Y-21512788D01* +X35443701Y-21515001D01* +X35447410Y-21517370D01* +X35451025Y-21519893D01* +X35454540Y-21522567D01* +X35457950Y-21525389D01* +X35461249Y-21528357D01* +X35464432Y-21531470D01* +X35467493Y-21534723D01* +X35470427Y-21538116D01* +X35473228Y-21541645D01* +X35475892Y-21545308D01* +X35478412Y-21549103D01* +X35480783Y-21553027D01* +X35483001Y-21557079D01* +X35965138Y-22485422D01* +X36488536Y-22484681D01* +X37381435Y-22485304D01* +X37980575Y-22486902D01* +X38344963Y-22489074D01* +X38533607Y-22491415D01* +X39056979Y-21625103D01* +X39061927Y-21617638D01* +X39067407Y-21610693D01* +X39073380Y-21604284D01* +X39079804Y-21598428D01* +X39086639Y-21593141D01* +X39093846Y-21588440D01* +X39101383Y-21584341D01* +X39109211Y-21580861D01* +X39117289Y-21578017D01* +X39125577Y-21575824D01* +X39134035Y-21574299D01* +X39142622Y-21573460D01* +X39151298Y-21573321D01* +X39160023Y-21573901D01* +X39168756Y-21575215D01* +X39177457Y-21577280D01* +X39181764Y-21578578D01* +X39185984Y-21580043D01* +X39190114Y-21581671D01* +X39194150Y-21583458D01* +X39201929Y-21587491D01* +X39209294Y-21592107D01* +X39216220Y-21597272D01* +X39222680Y-21602952D01* +X39228649Y-21609113D01* +X39234100Y-21615720D01* +X39239007Y-21622739D01* +X39243345Y-21630136D01* +X39247086Y-21637877D01* +X39250206Y-21645927D01* +X39252678Y-21654251D01* +X39254476Y-21662817D01* +X39255114Y-21667179D01* +X39255574Y-21671589D01* +X39255852Y-21676042D01* +X39255946Y-21680533D01* +X39255946Y-26511440D01* +X39255631Y-26528513D01* +X39254693Y-26545423D01* +X39253145Y-26562162D01* +X39250999Y-26578719D01* +X39248267Y-26595085D01* +X39244961Y-26611251D01* +X39241093Y-26627206D01* +X39236674Y-26642942D01* +X39231718Y-26658447D01* +X39226236Y-26673713D01* +X39220240Y-26688730D01* +X39213742Y-26703488D01* +X39206754Y-26717978D01* +X39199289Y-26732190D01* +X39191358Y-26746113D01* +X39182974Y-26759739D01* +X39577402Y-26759739D01* +X39579343Y-26759755D01* +X39581288Y-26759805D01* +X39583233Y-26759888D01* +X39585177Y-26760007D01* +X39587117Y-26760161D01* +X39589051Y-26760353D01* +X39590977Y-26760582D01* +X39592893Y-26760850D01* +X39602850Y-26761138D01* +X39613520Y-26760629D01* +X39619931Y-26759958D01* +X39626928Y-26758914D01* +X39634411Y-26757423D01* +X39642282Y-26755413D01* +X39650441Y-26752813D01* +X39658790Y-26749549D01* +X39667229Y-26745549D01* +X39675659Y-26740741D01* +X39679840Y-26738012D01* +X39683982Y-26735053D01* +X39688072Y-26731856D01* +X39692098Y-26728412D01* +X39699701Y-26720969D01* +X39706839Y-26712694D01* +X39713509Y-26703601D01* +X39719707Y-26693699D01* +X39725430Y-26683000D01* +X39730675Y-26671516D01* +X39735437Y-26659257D01* +X39739713Y-26646235D01* +X39743500Y-26632460D01* +X39746793Y-26617945D01* +X39749590Y-26602700D01* +X39751886Y-26586737D01* +X39753678Y-26570067D01* +X39754963Y-26552701D01* +X39755736Y-26534650D01* +X39755995Y-26515925D01* +X39755235Y-26489525D01* +X39753002Y-26463467D01* +X39749367Y-26437676D01* +X39744400Y-26412079D01* +X39738173Y-26386601D01* +X39730754Y-26361168D01* +X39722217Y-26335706D01* +X39712630Y-26310141D01* +X39702064Y-26284399D01* +X39690591Y-26258405D01* +X39665202Y-26205368D01* +X39637030Y-26150436D01* +X39606638Y-26093016D01* +X39561973Y-26008090D01* +X39516668Y-25916991D01* +X39472755Y-25818572D01* +X39451956Y-25766258D01* +X39432267Y-25711684D01* +X39413943Y-25654705D01* +X39397237Y-25595178D01* +X39382405Y-25532960D01* +X39369699Y-25467906D01* +X39359375Y-25399875D01* +X39351685Y-25328721D01* +X39346885Y-25254301D01* +X39345229Y-25176473D01* +X39346504Y-25107641D01* +X39350224Y-25041567D01* +X39356230Y-24978210D01* +X39364361Y-24917531D01* +X39374459Y-24859489D01* +X39386365Y-24804046D01* +X39399918Y-24751162D01* +X39414961Y-24700796D01* +X39431333Y-24652910D01* +X39448876Y-24607463D01* +X39467429Y-24564416D01* +X39486835Y-24523728D01* +X39506933Y-24485362D01* +X39527564Y-24449276D01* +X39548569Y-24415430D01* +X39569789Y-24383786D01* +X39591064Y-24354304D01* +X39612236Y-24326943D01* +X39633144Y-24301665D01* +X39653629Y-24278429D01* +X39692696Y-24237925D01* +X39728162Y-24205115D01* +X39758752Y-24179680D01* +X39783193Y-24161303D01* +X39808528Y-24144453D01* +X39813339Y-24141764D01* +X39818228Y-24139348D01* +X39823186Y-24137202D01* +X39828203Y-24135324D01* +X39833271Y-24133710D01* +X39838381Y-24132360D01* +X39843522Y-24131271D01* +X39848686Y-24130440D01* +X39853863Y-24129866D01* +X39859045Y-24129545D01* +X39864222Y-24129476D01* +X39869384Y-24129656D01* +X39874523Y-24130083D01* +X39879629Y-24130754D01* +X39884693Y-24131668D01* +X39889705Y-24132823D01* +X39894657Y-24134214D01* +X39899540Y-24135842D01* +X39904343Y-24137702D01* +X39909058Y-24139794D01* +X39913675Y-24142114D01* +X39918186Y-24144660D01* +X39922581Y-24147430D01* +X39926850Y-24150422D01* +X39930985Y-24153634D01* +X39934976Y-24157062D01* +X39938814Y-24160706D01* +X39942490Y-24164561D01* +X39945994Y-24168627D01* +X39949317Y-24172901D01* +X39952451Y-24177380D01* +X39955385Y-24182063D01* +X39958073Y-24186880D01* +X39960489Y-24191774D01* +X39962635Y-24196736D01* +X39964513Y-24201758D01* +X39966126Y-24206829D01* +X39967476Y-24211940D01* +X39968566Y-24217083D01* +X39969396Y-24222248D01* +X39969971Y-24227426D01* +X39970292Y-24232608D01* +X39970362Y-24237784D01* +X39970182Y-24242945D01* +X39969756Y-24248082D01* +X39969085Y-24253186D01* +X39968172Y-24258247D01* +X39967020Y-24263257D01* +X39965629Y-24268206D01* +X39964004Y-24273084D01* +X39962146Y-24277884D01* +X39960057Y-24282594D01* +X39957740Y-24287207D01* +X39955197Y-24291713D01* +X39952430Y-24296102D01* +X39949443Y-24300366D01* +X39946236Y-24304496D01* +X39942813Y-24308481D01* +X39939175Y-24312313D01* +X39935325Y-24315983D01* +X39931266Y-24319481D01* +X39926999Y-24322799D01* +X39922528Y-24325926D01* +X39917853Y-24328854D01* +X39898432Y-24342278D01* +X39855953Y-24377627D01* +X39828538Y-24404228D01* +X39798323Y-24437156D01* +X39766296Y-24476693D01* +X39733445Y-24523121D01* +X39700759Y-24576722D01* +X39669225Y-24637779D01* +X39639832Y-24706573D01* +X39613567Y-24783386D01* +X39591419Y-24868501D01* +X39582197Y-24914259D01* +X39574375Y-24962199D01* +X39568076Y-25012355D01* +X39563424Y-25064762D01* +X39560543Y-25119456D01* +X39559555Y-25176473D01* +X39560992Y-25244484D01* +X39565167Y-25309497D01* +X39571874Y-25371668D01* +X39580907Y-25431153D01* +X39592061Y-25488108D01* +X39605131Y-25542689D01* +X39619911Y-25595052D01* +X39636195Y-25645354D01* +X39653778Y-25693750D01* +X39672454Y-25740396D01* +X39692018Y-25785449D01* +X39712264Y-25829065D01* +X39753981Y-25912609D01* +X39795961Y-25992275D01* +X39829193Y-26055214D01* +X39861025Y-26117810D01* +X39890524Y-26180591D01* +X39904106Y-26212216D01* +X39916755Y-26244086D01* +X39928352Y-26276266D01* +X39938783Y-26308824D01* +X39947929Y-26341824D01* +X39955674Y-26375333D01* +X39961901Y-26409417D01* +X39966494Y-26444142D01* +X39969335Y-26479574D01* +X39970308Y-26515780D01* +X39969757Y-26547061D01* +X39968106Y-26577329D01* +X39965357Y-26606578D01* +X39961512Y-26634803D01* +X39956573Y-26661999D01* +X39950542Y-26688162D01* +X39943421Y-26713286D01* +X39935212Y-26737367D01* +X39925918Y-26760400D01* +X39915540Y-26782379D01* +X39904081Y-26803301D01* +X39891542Y-26823160D01* +X39877926Y-26841952D01* +X39863235Y-26859671D01* +X39847470Y-26876312D01* +X39830634Y-26891872D01* +X39822820Y-26898415D01* +X39814951Y-26904615D01* +X39799082Y-26916022D01* +X39783105Y-26926166D01* +X39767098Y-26935115D01* +X39751139Y-26942942D01* +X39735305Y-26949716D01* +X39719675Y-26955510D01* +X39704325Y-26960392D01* +X39689335Y-26964436D01* +X39674781Y-26967710D01* +X39660741Y-26970286D01* +X39647293Y-26972235D01* +X39634514Y-26973628D01* +X39622484Y-26974535D01* +X39611278Y-26975028D01* +X39600976Y-26975176D01* +X39596433Y-26975148D01* +X39592126Y-26975067D01* +X39588059Y-26974942D01* +X39584239Y-26974781D01* +X39580672Y-26974590D01* +X39577362Y-26974378D01* +X39571541Y-26973919D01* +X35743258Y-26973919D01* +X35719484Y-26973316D01* +X35696020Y-26971526D01* +X35672893Y-26968578D01* +X35650133Y-26964503D01* +X35627770Y-26959328D01* +X35605832Y-26953084D01* +X35584349Y-26945799D01* +X35563350Y-26937504D01* +X35542865Y-26928227D01* +X35522923Y-26917997D01* +X35503552Y-26906844D01* +X35484782Y-26894798D01* +X35466643Y-26881887D01* +X35449164Y-26868141D01* +X35432373Y-26853589D01* +X35416301Y-26838261D01* +X35400976Y-26822185D01* +X35386427Y-26805391D01* +X35372685Y-26787909D01* +X35359778Y-26769767D01* +X35347735Y-26750996D01* +X35336586Y-26731624D01* +X35326360Y-26711680D01* +X35317087Y-26691194D01* +X35308794Y-26670195D01* +X35301513Y-26648713D01* +X35295271Y-26626777D01* +X35290099Y-26604416D01* +X35286025Y-26581659D01* +X35283079Y-26558536D01* +X35281290Y-26535076D01* +X35280689Y-26511388D01* +X35494999Y-26511388D01* +X35495323Y-26524142D01* +X35496284Y-26536732D01* +X35497865Y-26549141D01* +X35500052Y-26561353D01* +X35502829Y-26573353D01* +X35506180Y-26585126D01* +X35510089Y-26596655D01* +X35514541Y-26607924D01* +X35519519Y-26618919D01* +X35525009Y-26629623D01* +X35530993Y-26640020D01* +X35537458Y-26650095D01* +X35544386Y-26659831D01* +X35551763Y-26669215D01* +X35559572Y-26678228D01* +X35567798Y-26686857D01* +X35576425Y-26695084D01* +X35585437Y-26702895D01* +X35594819Y-26710273D01* +X35604554Y-26717203D01* +X35614628Y-26723669D01* +X35625024Y-26729655D01* +X35635727Y-26735146D01* +X35646720Y-26740126D01* +X35657989Y-26744579D01* +X35669518Y-26748489D01* +X35681290Y-26751841D01* +X35693290Y-26754618D01* +X35705503Y-26756806D01* +X35717912Y-26758388D01* +X35730503Y-26759349D01* +X35743258Y-26759673D01* +X37380738Y-26759673D01* +X37380738Y-26759753D01* +X38793414Y-26759753D01* +X38806170Y-26759429D01* +X38818759Y-26758468D01* +X38831168Y-26756886D01* +X38843380Y-26754698D01* +X38855380Y-26751920D01* +X38867151Y-26748568D01* +X38878678Y-26744658D01* +X38889946Y-26740205D01* +X38900938Y-26735225D01* +X38911639Y-26729734D01* +X38922034Y-26723748D01* +X38932106Y-26717282D01* +X38941839Y-26710351D01* +X38951219Y-26702973D01* +X38960230Y-26695162D01* +X38968855Y-26686934D01* +X38977079Y-26678306D01* +X38984886Y-26669292D01* +X38992261Y-26659908D01* +X38999187Y-26650171D01* +X39005650Y-26640095D01* +X39011633Y-26629697D01* +X39017121Y-26618993D01* +X39022098Y-26607998D01* +X39026548Y-26596728D01* +X39030456Y-26585198D01* +X39033806Y-26573425D01* +X39036582Y-26561423D01* +X39038768Y-26549210D01* +X39040349Y-26536800D01* +X39041310Y-26524210D01* +X39041633Y-26511454D01* +X39041633Y-22065131D01* +X38685570Y-22654557D01* +X38681268Y-22661115D01* +X38676546Y-22667273D01* +X38671433Y-22673020D01* +X38665958Y-22678347D01* +X38660148Y-22683243D01* +X38654033Y-22687698D01* +X38647640Y-22691700D01* +X38640998Y-22695240D01* +X38634136Y-22698307D01* +X38627081Y-22700891D01* +X38619863Y-22702981D01* +X38612511Y-22704567D01* +X38605051Y-22705638D01* +X38597513Y-22706185D01* +X38589925Y-22706196D01* +X38582317Y-22705661D01* +X37813125Y-22700794D01* +X36488536Y-22698994D01* +X36057060Y-22699394D01* +X35907128Y-22700211D01* +X35903319Y-22700369D01* +X35899508Y-22700385D01* +X35895700Y-22700261D01* +X35891898Y-22699999D01* +X35888107Y-22699599D01* +X35884331Y-22699063D01* +X35880573Y-22698394D01* +X35876840Y-22697592D01* +X35873134Y-22696659D01* +X35869459Y-22695597D01* +X35865821Y-22694407D01* +X35862223Y-22693091D01* +X35858670Y-22691649D01* +X35855165Y-22690085D01* +X35851714Y-22688399D01* +X35848319Y-22686593D01* +X35844986Y-22684668D01* +X35841719Y-22682627D01* +X35838521Y-22680470D01* +X35835398Y-22678199D01* +X35832353Y-22675815D01* +X35829390Y-22673321D01* +X35826515Y-22670717D01* +X35823730Y-22668006D01* +X35821041Y-22665189D01* +X35818451Y-22662267D01* +X35815964Y-22659242D01* +X35813586Y-22656115D01* +X35811320Y-22652889D01* +X35809170Y-22649563D01* +X35807141Y-22646142D01* +X35805237Y-22642624D01* +X35494999Y-22045354D01* +X35494999Y-26511388D01* +X35280689Y-26511388D01* +X35280687Y-26511308D01* +X35280687Y-21606437D01* +X35280785Y-21601829D01* +G36* +X37461312Y-24390786D02* +G01* +X37466753Y-24391199D01* +X37472114Y-24391879D01* +X37477389Y-24392819D01* +X37482572Y-24394013D01* +X37487656Y-24395454D01* +X37492634Y-24397136D01* +X37497500Y-24399051D01* +X37502245Y-24401193D01* +X37506865Y-24403556D01* +X37511352Y-24406132D01* +X37515699Y-24408915D01* +X37519900Y-24411898D01* +X37523948Y-24415075D01* +X37527836Y-24418439D01* +X37531557Y-24421983D01* +X37535105Y-24425701D01* +X37538473Y-24429586D01* +X37541654Y-24433630D01* +X37544641Y-24437829D01* +X37547429Y-24442174D01* +X37550009Y-24446659D01* +X37552375Y-24451278D01* +X37554521Y-24456023D01* +X37556440Y-24460889D01* +X37558125Y-24465868D01* +X37559569Y-24470954D01* +X37560766Y-24476140D01* +X37561708Y-24481419D01* +X37562390Y-24486785D01* +X37562804Y-24492231D01* +X37562943Y-24497750D01* +X37562804Y-24503270D01* +X37562390Y-24508716D01* +X37561708Y-24514083D01* +X37560765Y-24519363D01* +X37559568Y-24524550D01* +X37558124Y-24529638D01* +X37556439Y-24534618D01* +X37554519Y-24539486D01* +X37552373Y-24544233D01* +X37550006Y-24548854D01* +X37547425Y-24553341D01* +X37544637Y-24557689D01* +X37541649Y-24561889D01* +X37538467Y-24565936D01* +X37535099Y-24569823D01* +X37531550Y-24573544D01* +X37527828Y-24577090D01* +X37523940Y-24580457D01* +X37519891Y-24583636D01* +X37515690Y-24586622D01* +X37511342Y-24589407D01* +X37506855Y-24591985D01* +X37502235Y-24594350D01* +X37497488Y-24596494D01* +X37492623Y-24598411D01* +X37487644Y-24600094D01* +X37482560Y-24601537D01* +X37477377Y-24602732D01* +X37472101Y-24603673D01* +X37466739Y-24604354D01* +X37461299Y-24604767D01* +X37455787Y-24604907D01* +X37376650Y-24604907D01* +X37367998Y-24753788D01* +X37367563Y-24759086D01* +X37366876Y-24764302D01* +X37365945Y-24769432D01* +X37364776Y-24774469D01* +X37363374Y-24779408D01* +X37361747Y-24784242D01* +X37359900Y-24788967D01* +X37357841Y-24793577D01* +X37355575Y-24798065D01* +X37353109Y-24802426D01* +X37350449Y-24806655D01* +X37347602Y-24810745D01* +X37344574Y-24814692D01* +X37341371Y-24818489D01* +X37338000Y-24822130D01* +X37334467Y-24825610D01* +X37330778Y-24828924D01* +X37326941Y-24832065D01* +X37322960Y-24835028D01* +X37318843Y-24837807D01* +X37314596Y-24840397D01* +X37310226Y-24842791D01* +X37305738Y-24844984D01* +X37301139Y-24846971D01* +X37296435Y-24848745D01* +X37291634Y-24850301D01* +X37286740Y-24851634D01* +X37281762Y-24852737D01* +X37276704Y-24853604D01* +X37271573Y-24854231D01* +X37266376Y-24854612D01* +X37261119Y-24854740D01* +X37259561Y-24854726D01* +X37257987Y-24854692D01* +X37254835Y-24854594D01* +X37249341Y-24854129D01* +X37243934Y-24853396D01* +X37238621Y-24852400D01* +X37233409Y-24851150D01* +X37228304Y-24849651D01* +X37223311Y-24847912D01* +X37218439Y-24845939D01* +X37213692Y-24843739D01* +X37209078Y-24841319D01* +X37204603Y-24838687D01* +X37200272Y-24835850D01* +X37196093Y-24832814D01* +X37192072Y-24829588D01* +X37188216Y-24826177D01* +X37184529Y-24822588D01* +X37181020Y-24818830D01* +X37177694Y-24814909D01* +X37174558Y-24810833D01* +X37171618Y-24806607D01* +X37168880Y-24802240D01* +X37166351Y-24797738D01* +X37164037Y-24793109D01* +X37161945Y-24788359D01* +X37160080Y-24783497D01* +X37158450Y-24778528D01* +X37157061Y-24773459D01* +X37155918Y-24768299D01* +X37155030Y-24763054D01* +X37154400Y-24757731D01* +X37154037Y-24752337D01* +X37153947Y-24746879D01* +X37154135Y-24741365D01* +X37162059Y-24604973D01* +X37080753Y-24604973D01* +X37075243Y-24604833D01* +X37069804Y-24604420D01* +X37064445Y-24603739D01* +X37059170Y-24602797D01* +X37053988Y-24601602D01* +X37048904Y-24600159D01* +X37043926Y-24598475D01* +X37039060Y-24596558D01* +X37034314Y-24594413D01* +X37029693Y-24592048D01* +X37025206Y-24589469D01* +X37020857Y-24586684D01* +X37016655Y-24583697D01* +X37012606Y-24580517D01* +X37008716Y-24577150D01* +X37004993Y-24573603D01* +X37001443Y-24569882D01* +X36998073Y-24565995D01* +X36994890Y-24561947D01* +X36991901Y-24557746D01* +X36989111Y-24553398D01* +X36986529Y-24548910D01* +X36984161Y-24544288D01* +X36982013Y-24539540D01* +X36980093Y-24534673D01* +X36978406Y-24529692D01* +X36976961Y-24524604D01* +X36975763Y-24519417D01* +X36974820Y-24514136D01* +X36974137Y-24508769D01* +X36973723Y-24503323D01* +X36973584Y-24497803D01* +X36973723Y-24492285D01* +X36974137Y-24486840D01* +X36974820Y-24481474D01* +X36975763Y-24476194D01* +X36976961Y-24471008D01* +X36978406Y-24465921D01* +X36980093Y-24460941D01* +X36982013Y-24456074D01* +X36984161Y-24451326D01* +X36986529Y-24446706D01* +X36989111Y-24442218D01* +X36991901Y-24437871D01* +X36994890Y-24433670D01* +X36998073Y-24429623D01* +X37001443Y-24425735D01* +X37004993Y-24422015D01* +X37008716Y-24418468D01* +X37012606Y-24415101D01* +X37016655Y-24411922D01* +X37020857Y-24408935D01* +X37025206Y-24406150D01* +X37029693Y-24403571D01* +X37034314Y-24401206D01* +X37039060Y-24399061D01* +X37043926Y-24397144D01* +X37048904Y-24395460D01* +X37053988Y-24394018D01* +X37059170Y-24392822D01* +X37064445Y-24391880D01* +X37069804Y-24391200D01* +X37075243Y-24390786D01* +X37080753Y-24390647D01* +X37455800Y-24390647D01* +X37461312Y-24390786D01* +G37* +X37461312Y-24390786D02* +X37466753Y-24391199D01* +X37472114Y-24391879D01* +X37477389Y-24392819D01* +X37482572Y-24394013D01* +X37487656Y-24395454D01* +X37492634Y-24397136D01* +X37497500Y-24399051D01* +X37502245Y-24401193D01* +X37506865Y-24403556D01* +X37511352Y-24406132D01* +X37515699Y-24408915D01* +X37519900Y-24411898D01* +X37523948Y-24415075D01* +X37527836Y-24418439D01* +X37531557Y-24421983D01* +X37535105Y-24425701D01* +X37538473Y-24429586D01* +X37541654Y-24433630D01* +X37544641Y-24437829D01* +X37547429Y-24442174D01* +X37550009Y-24446659D01* +X37552375Y-24451278D01* +X37554521Y-24456023D01* +X37556440Y-24460889D01* +X37558125Y-24465868D01* +X37559569Y-24470954D01* +X37560766Y-24476140D01* +X37561708Y-24481419D01* +X37562390Y-24486785D01* +X37562804Y-24492231D01* +X37562943Y-24497750D01* +X37562804Y-24503270D01* +X37562390Y-24508716D01* +X37561708Y-24514083D01* +X37560765Y-24519363D01* +X37559568Y-24524550D01* +X37558124Y-24529638D01* +X37556439Y-24534618D01* +X37554519Y-24539486D01* +X37552373Y-24544233D01* +X37550006Y-24548854D01* +X37547425Y-24553341D01* +X37544637Y-24557689D01* +X37541649Y-24561889D01* +X37538467Y-24565936D01* +X37535099Y-24569823D01* +X37531550Y-24573544D01* +X37527828Y-24577090D01* +X37523940Y-24580457D01* +X37519891Y-24583636D01* +X37515690Y-24586622D01* +X37511342Y-24589407D01* +X37506855Y-24591985D01* +X37502235Y-24594350D01* +X37497488Y-24596494D01* +X37492623Y-24598411D01* +X37487644Y-24600094D01* +X37482560Y-24601537D01* +X37477377Y-24602732D01* +X37472101Y-24603673D01* +X37466739Y-24604354D01* +X37461299Y-24604767D01* +X37455787Y-24604907D01* +X37376650Y-24604907D01* +X37367998Y-24753788D01* +X37367563Y-24759086D01* +X37366876Y-24764302D01* +X37365945Y-24769432D01* +X37364776Y-24774469D01* +X37363374Y-24779408D01* +X37361747Y-24784242D01* +X37359900Y-24788967D01* +X37357841Y-24793577D01* +X37355575Y-24798065D01* +X37353109Y-24802426D01* +X37350449Y-24806655D01* +X37347602Y-24810745D01* +X37344574Y-24814692D01* +X37341371Y-24818489D01* +X37338000Y-24822130D01* +X37334467Y-24825610D01* +X37330778Y-24828924D01* +X37326941Y-24832065D01* +X37322960Y-24835028D01* +X37318843Y-24837807D01* +X37314596Y-24840397D01* +X37310226Y-24842791D01* +X37305738Y-24844984D01* +X37301139Y-24846971D01* +X37296435Y-24848745D01* +X37291634Y-24850301D01* +X37286740Y-24851634D01* +X37281762Y-24852737D01* +X37276704Y-24853604D01* +X37271573Y-24854231D01* +X37266376Y-24854612D01* +X37261119Y-24854740D01* +X37259561Y-24854726D01* +X37257987Y-24854692D01* +X37254835Y-24854594D01* +X37249341Y-24854129D01* +X37243934Y-24853396D01* +X37238621Y-24852400D01* +X37233409Y-24851150D01* +X37228304Y-24849651D01* +X37223311Y-24847912D01* +X37218439Y-24845939D01* +X37213692Y-24843739D01* +X37209078Y-24841319D01* +X37204603Y-24838687D01* +X37200272Y-24835850D01* +X37196093Y-24832814D01* +X37192072Y-24829588D01* +X37188216Y-24826177D01* +X37184529Y-24822588D01* +X37181020Y-24818830D01* +X37177694Y-24814909D01* +X37174558Y-24810833D01* +X37171618Y-24806607D01* +X37168880Y-24802240D01* +X37166351Y-24797738D01* +X37164037Y-24793109D01* +X37161945Y-24788359D01* +X37160080Y-24783497D01* +X37158450Y-24778528D01* +X37157061Y-24773459D01* +X37155918Y-24768299D01* +X37155030Y-24763054D01* +X37154400Y-24757731D01* +X37154037Y-24752337D01* +X37153947Y-24746879D01* +X37154135Y-24741365D01* +X37162059Y-24604973D01* +X37080753Y-24604973D01* +X37075243Y-24604833D01* +X37069804Y-24604420D01* +X37064445Y-24603739D01* +X37059170Y-24602797D01* +X37053988Y-24601602D01* +X37048904Y-24600159D01* +X37043926Y-24598475D01* +X37039060Y-24596558D01* +X37034314Y-24594413D01* +X37029693Y-24592048D01* +X37025206Y-24589469D01* +X37020857Y-24586684D01* +X37016655Y-24583697D01* +X37012606Y-24580517D01* +X37008716Y-24577150D01* +X37004993Y-24573603D01* +X37001443Y-24569882D01* +X36998073Y-24565995D01* +X36994890Y-24561947D01* +X36991901Y-24557746D01* +X36989111Y-24553398D01* +X36986529Y-24548910D01* +X36984161Y-24544288D01* +X36982013Y-24539540D01* +X36980093Y-24534673D01* +X36978406Y-24529692D01* +X36976961Y-24524604D01* +X36975763Y-24519417D01* +X36974820Y-24514136D01* +X36974137Y-24508769D01* +X36973723Y-24503323D01* +X36973584Y-24497803D01* +X36973723Y-24492285D01* +X36974137Y-24486840D01* +X36974820Y-24481474D01* +X36975763Y-24476194D01* +X36976961Y-24471008D01* +X36978406Y-24465921D01* +X36980093Y-24460941D01* +X36982013Y-24456074D01* +X36984161Y-24451326D01* +X36986529Y-24446706D01* +X36989111Y-24442218D01* +X36991901Y-24437871D01* +X36994890Y-24433670D01* +X36998073Y-24429623D01* +X37001443Y-24425735D01* +X37004993Y-24422015D01* +X37008716Y-24418468D01* +X37012606Y-24415101D01* +X37016655Y-24411922D01* +X37020857Y-24408935D01* +X37025206Y-24406150D01* +X37029693Y-24403571D01* +X37034314Y-24401206D01* +X37039060Y-24399061D01* +X37043926Y-24397144D01* +X37048904Y-24395460D01* +X37053988Y-24394018D01* +X37059170Y-24392822D01* +X37064445Y-24391880D01* +X37069804Y-24391200D01* +X37075243Y-24390786D01* +X37080753Y-24390647D01* +X37455800Y-24390647D01* +X37461312Y-24390786D01* +G36* +X36036334Y-23781574D02* +G01* +X36037780Y-23762625D01* +X36040160Y-23743949D01* +X36043452Y-23725568D01* +X36047631Y-23707508D01* +X36052674Y-23689790D01* +X36058556Y-23672440D01* +X36065256Y-23655480D01* +X36072748Y-23638935D01* +X36081009Y-23622828D01* +X36090016Y-23607182D01* +X36099745Y-23592021D01* +X36110172Y-23577370D01* +X36121273Y-23563251D01* +X36133025Y-23549689D01* +X36145405Y-23536706D01* +X36158388Y-23524327D01* +X36171950Y-23512575D01* +X36186069Y-23501474D01* +X36200721Y-23491048D01* +X36215881Y-23481319D01* +X36231527Y-23472313D01* +X36247634Y-23464052D01* +X36264179Y-23456560D01* +X36281139Y-23449861D01* +X36298489Y-23443979D01* +X36316206Y-23438936D01* +X36334266Y-23434758D01* +X36352645Y-23431466D01* +X36371321Y-23429086D01* +X36390269Y-23427641D01* +X36409465Y-23427154D01* +X36428665Y-23427641D01* +X36447616Y-23429086D01* +X36466295Y-23431466D01* +X36484677Y-23434758D01* +X36502739Y-23438936D01* +X36520457Y-23443979D01* +X36537808Y-23449861D01* +X36554768Y-23456560D01* +X36571314Y-23464052D01* +X36587421Y-23472313D01* +X36603067Y-23481319D01* +X36618227Y-23491048D01* +X36632879Y-23501474D01* +X36646997Y-23512575D01* +X36660559Y-23524327D01* +X36673541Y-23536706D01* +X36685920Y-23549689D01* +X36697671Y-23563251D01* +X36708771Y-23577370D01* +X36719197Y-23592021D01* +X36728924Y-23607182D01* +X36737930Y-23622827D01* +X36746190Y-23638935D01* +X36753681Y-23655480D01* +X36760379Y-23672440D01* +X36766261Y-23689790D01* +X36771303Y-23707507D01* +X36775481Y-23725568D01* +X36778772Y-23743949D01* +X36781151Y-23762625D01* +X36782597Y-23781574D01* +X36783084Y-23800772D01* +X36782596Y-23819972D01* +X36781151Y-23838923D01* +X36778770Y-23857601D01* +X36775478Y-23875983D01* +X36771299Y-23894045D01* +X36766255Y-23911763D01* +X36760372Y-23929114D01* +X36753672Y-23946075D01* +X36746179Y-23962620D01* +X36737916Y-23978728D01* +X36728909Y-23994373D01* +X36719179Y-24009534D01* +X36708752Y-24024185D01* +X36697649Y-24038303D01* +X36685896Y-24051865D01* +X36673516Y-24064848D01* +X36660533Y-24077226D01* +X36646970Y-24088977D01* +X36632850Y-24100077D01* +X36618198Y-24110503D01* +X36603038Y-24120230D01* +X36587392Y-24129236D01* +X36571285Y-24137496D01* +X36554740Y-24144987D01* +X36537782Y-24151685D01* +X36520432Y-24157567D01* +X36502716Y-24162609D01* +X36484658Y-24166787D01* +X36466279Y-24170078D01* +X36447606Y-24172458D01* +X36428660Y-24173903D01* +X36409465Y-24174390D01* +X36390275Y-24173903D01* +X36371332Y-24172458D01* +X36352661Y-24170078D01* +X36334285Y-24166787D01* +X36316228Y-24162609D01* +X36298513Y-24157567D01* +X36281165Y-24151685D01* +X36264207Y-24144987D01* +X36247663Y-24137496D01* +X36231556Y-24129236D01* +X36215911Y-24120230D01* +X36200750Y-24110503D01* +X36186098Y-24100077D01* +X36171978Y-24088977D01* +X36158414Y-24077226D01* +X36145429Y-24064848D01* +X36133048Y-24051865D01* +X36121294Y-24038303D01* +X36110191Y-24024185D01* +X36099762Y-24009534D01* +X36090032Y-23994373D01* +X36081023Y-23978728D01* +X36072759Y-23962620D01* +X36065265Y-23946075D01* +X36058564Y-23929114D01* +X36052679Y-23911763D01* +X36047635Y-23894045D01* +X36043455Y-23875983D01* +X36040162Y-23857601D01* +X36037781Y-23838923D01* +X36036335Y-23819972D01* +X36035850Y-23800864D01* +X36250160Y-23800864D01* +X36250368Y-23809050D01* +X36250984Y-23817129D01* +X36252000Y-23825092D01* +X36253404Y-23832929D01* +X36255186Y-23840629D01* +X36257337Y-23848182D01* +X36259847Y-23855580D01* +X36262704Y-23862810D01* +X36265900Y-23869864D01* +X36269423Y-23876731D01* +X36273265Y-23883401D01* +X36277414Y-23889864D01* +X36281861Y-23896110D01* +X36286596Y-23902128D01* +X36291608Y-23907910D01* +X36296887Y-23913445D01* +X36302423Y-23918722D01* +X36308207Y-23923731D01* +X36314228Y-23928463D01* +X36320475Y-23932908D01* +X36326940Y-23937055D01* +X36333611Y-23940894D01* +X36340478Y-23944415D01* +X36347533Y-23947609D01* +X36354763Y-23950464D01* +X36362160Y-23952972D01* +X36369713Y-23955121D01* +X36377412Y-23956902D01* +X36385246Y-23958305D01* +X36393207Y-23959320D01* +X36401283Y-23959936D01* +X36409465Y-23960143D01* +X36417653Y-23959936D01* +X36425735Y-23959320D01* +X36433700Y-23958305D01* +X36441538Y-23956902D01* +X36449240Y-23955121D01* +X36456796Y-23952972D01* +X36464194Y-23950464D01* +X36471426Y-23947609D01* +X36478481Y-23944415D01* +X36485350Y-23940894D01* +X36492021Y-23937055D01* +X36498485Y-23932908D01* +X36504732Y-23928463D01* +X36510751Y-23923731D01* +X36516534Y-23918722D01* +X36522069Y-23913445D01* +X36527347Y-23907910D01* +X36532357Y-23902128D01* +X36537089Y-23896110D01* +X36541534Y-23889864D01* +X36545681Y-23883400D01* +X36549521Y-23876730D01* +X36553042Y-23869864D01* +X36556236Y-23862810D01* +X36559092Y-23855579D01* +X36561599Y-23848182D01* +X36563749Y-23840629D01* +X36565530Y-23832929D01* +X36566933Y-23825092D01* +X36567947Y-23817129D01* +X36568564Y-23809050D01* +X36568771Y-23800864D01* +X36568563Y-23792673D01* +X36567947Y-23784588D01* +X36566931Y-23776620D01* +X36565527Y-23768779D01* +X36563745Y-23761074D01* +X36561594Y-23753517D01* +X36559084Y-23746116D01* +X36556227Y-23738883D01* +X36553031Y-23731826D01* +X36549508Y-23724957D01* +X36545666Y-23718284D01* +X36541517Y-23711819D01* +X36537070Y-23705572D01* +X36532335Y-23699551D01* +X36527323Y-23693768D01* +X36522044Y-23688233D01* +X36516508Y-23682955D01* +X36510724Y-23677945D01* +X36504703Y-23673212D01* +X36498456Y-23668767D01* +X36491991Y-23664620D01* +X36485320Y-23660781D01* +X36478453Y-23657259D01* +X36471398Y-23654066D01* +X36464168Y-23651210D01* +X36456771Y-23648703D01* +X36449218Y-23646554D01* +X36441519Y-23644773D01* +X36433685Y-23643370D01* +X36425724Y-23642356D01* +X36417647Y-23641740D01* +X36409465Y-23641532D01* +X36401283Y-23641740D01* +X36393207Y-23642356D01* +X36385246Y-23643370D01* +X36377412Y-23644773D01* +X36369713Y-23646554D01* +X36362160Y-23648703D01* +X36354763Y-23651210D01* +X36347533Y-23654066D01* +X36340478Y-23657259D01* +X36333611Y-23660781D01* +X36326940Y-23664620D01* +X36320475Y-23668767D01* +X36314228Y-23673212D01* +X36308207Y-23677945D01* +X36302423Y-23682955D01* +X36296887Y-23688233D01* +X36291608Y-23693768D01* +X36286596Y-23699551D01* +X36281861Y-23705572D01* +X36277414Y-23711819D01* +X36273265Y-23718284D01* +X36269423Y-23724957D01* +X36265900Y-23731826D01* +X36262704Y-23738883D01* +X36259847Y-23746116D01* +X36257337Y-23753517D01* +X36255186Y-23761074D01* +X36253404Y-23768779D01* +X36252000Y-23776620D01* +X36250984Y-23784588D01* +X36250368Y-23792673D01* +X36250160Y-23800864D01* +X36035850Y-23800864D01* +X36035847Y-23800772D01* +X36036334Y-23781574D01* +G37* +X36036334Y-23781574D02* +X36037780Y-23762625D01* +X36040160Y-23743949D01* +X36043452Y-23725568D01* +X36047631Y-23707508D01* +X36052674Y-23689790D01* +X36058556Y-23672440D01* +X36065256Y-23655480D01* +X36072748Y-23638935D01* +X36081009Y-23622828D01* +X36090016Y-23607182D01* +X36099745Y-23592021D01* +X36110172Y-23577370D01* +X36121273Y-23563251D01* +X36133025Y-23549689D01* +X36145405Y-23536706D01* +X36158388Y-23524327D01* +X36171950Y-23512575D01* +X36186069Y-23501474D01* +X36200721Y-23491048D01* +X36215881Y-23481319D01* +X36231527Y-23472313D01* +X36247634Y-23464052D01* +X36264179Y-23456560D01* +X36281139Y-23449861D01* +X36298489Y-23443979D01* +X36316206Y-23438936D01* +X36334266Y-23434758D01* +X36352645Y-23431466D01* +X36371321Y-23429086D01* +X36390269Y-23427641D01* +X36409465Y-23427154D01* +X36428665Y-23427641D01* +X36447616Y-23429086D01* +X36466295Y-23431466D01* +X36484677Y-23434758D01* +X36502739Y-23438936D01* +X36520457Y-23443979D01* +X36537808Y-23449861D01* +X36554768Y-23456560D01* +X36571314Y-23464052D01* +X36587421Y-23472313D01* +X36603067Y-23481319D01* +X36618227Y-23491048D01* +X36632879Y-23501474D01* +X36646997Y-23512575D01* +X36660559Y-23524327D01* +X36673541Y-23536706D01* +X36685920Y-23549689D01* +X36697671Y-23563251D01* +X36708771Y-23577370D01* +X36719197Y-23592021D01* +X36728924Y-23607182D01* +X36737930Y-23622827D01* +X36746190Y-23638935D01* +X36753681Y-23655480D01* +X36760379Y-23672440D01* +X36766261Y-23689790D01* +X36771303Y-23707507D01* +X36775481Y-23725568D01* +X36778772Y-23743949D01* +X36781151Y-23762625D01* +X36782597Y-23781574D01* +X36783084Y-23800772D01* +X36782596Y-23819972D01* +X36781151Y-23838923D01* +X36778770Y-23857601D01* +X36775478Y-23875983D01* +X36771299Y-23894045D01* +X36766255Y-23911763D01* +X36760372Y-23929114D01* +X36753672Y-23946075D01* +X36746179Y-23962620D01* +X36737916Y-23978728D01* +X36728909Y-23994373D01* +X36719179Y-24009534D01* +X36708752Y-24024185D01* +X36697649Y-24038303D01* +X36685896Y-24051865D01* +X36673516Y-24064848D01* +X36660533Y-24077226D01* +X36646970Y-24088977D01* +X36632850Y-24100077D01* +X36618198Y-24110503D01* +X36603038Y-24120230D01* +X36587392Y-24129236D01* +X36571285Y-24137496D01* +X36554740Y-24144987D01* +X36537782Y-24151685D01* +X36520432Y-24157567D01* +X36502716Y-24162609D01* +X36484658Y-24166787D01* +X36466279Y-24170078D01* +X36447606Y-24172458D01* +X36428660Y-24173903D01* +X36409465Y-24174390D01* +X36390275Y-24173903D01* +X36371332Y-24172458D01* +X36352661Y-24170078D01* +X36334285Y-24166787D01* +X36316228Y-24162609D01* +X36298513Y-24157567D01* +X36281165Y-24151685D01* +X36264207Y-24144987D01* +X36247663Y-24137496D01* +X36231556Y-24129236D01* +X36215911Y-24120230D01* +X36200750Y-24110503D01* +X36186098Y-24100077D01* +X36171978Y-24088977D01* +X36158414Y-24077226D01* +X36145429Y-24064848D01* +X36133048Y-24051865D01* +X36121294Y-24038303D01* +X36110191Y-24024185D01* +X36099762Y-24009534D01* +X36090032Y-23994373D01* +X36081023Y-23978728D01* +X36072759Y-23962620D01* +X36065265Y-23946075D01* +X36058564Y-23929114D01* +X36052679Y-23911763D01* +X36047635Y-23894045D01* +X36043455Y-23875983D01* +X36040162Y-23857601D01* +X36037781Y-23838923D01* +X36036335Y-23819972D01* +X36035850Y-23800864D01* +X36250160Y-23800864D01* +X36250368Y-23809050D01* +X36250984Y-23817129D01* +X36252000Y-23825092D01* +X36253404Y-23832929D01* +X36255186Y-23840629D01* +X36257337Y-23848182D01* +X36259847Y-23855580D01* +X36262704Y-23862810D01* +X36265900Y-23869864D01* +X36269423Y-23876731D01* +X36273265Y-23883401D01* +X36277414Y-23889864D01* +X36281861Y-23896110D01* +X36286596Y-23902128D01* +X36291608Y-23907910D01* +X36296887Y-23913445D01* +X36302423Y-23918722D01* +X36308207Y-23923731D01* +X36314228Y-23928463D01* +X36320475Y-23932908D01* +X36326940Y-23937055D01* +X36333611Y-23940894D01* +X36340478Y-23944415D01* +X36347533Y-23947609D01* +X36354763Y-23950464D01* +X36362160Y-23952972D01* +X36369713Y-23955121D01* +X36377412Y-23956902D01* +X36385246Y-23958305D01* +X36393207Y-23959320D01* +X36401283Y-23959936D01* +X36409465Y-23960143D01* +X36417653Y-23959936D01* +X36425735Y-23959320D01* +X36433700Y-23958305D01* +X36441538Y-23956902D01* +X36449240Y-23955121D01* +X36456796Y-23952972D01* +X36464194Y-23950464D01* +X36471426Y-23947609D01* +X36478481Y-23944415D01* +X36485350Y-23940894D01* +X36492021Y-23937055D01* +X36498485Y-23932908D01* +X36504732Y-23928463D01* +X36510751Y-23923731D01* +X36516534Y-23918722D01* +X36522069Y-23913445D01* +X36527347Y-23907910D01* +X36532357Y-23902128D01* +X36537089Y-23896110D01* +X36541534Y-23889864D01* +X36545681Y-23883400D01* +X36549521Y-23876730D01* +X36553042Y-23869864D01* +X36556236Y-23862810D01* +X36559092Y-23855579D01* +X36561599Y-23848182D01* +X36563749Y-23840629D01* +X36565530Y-23832929D01* +X36566933Y-23825092D01* +X36567947Y-23817129D01* +X36568564Y-23809050D01* +X36568771Y-23800864D01* +X36568563Y-23792673D01* +X36567947Y-23784588D01* +X36566931Y-23776620D01* +X36565527Y-23768779D01* +X36563745Y-23761074D01* +X36561594Y-23753517D01* +X36559084Y-23746116D01* +X36556227Y-23738883D01* +X36553031Y-23731826D01* +X36549508Y-23724957D01* +X36545666Y-23718284D01* +X36541517Y-23711819D01* +X36537070Y-23705572D01* +X36532335Y-23699551D01* +X36527323Y-23693768D01* +X36522044Y-23688233D01* +X36516508Y-23682955D01* +X36510724Y-23677945D01* +X36504703Y-23673212D01* +X36498456Y-23668767D01* +X36491991Y-23664620D01* +X36485320Y-23660781D01* +X36478453Y-23657259D01* +X36471398Y-23654066D01* +X36464168Y-23651210D01* +X36456771Y-23648703D01* +X36449218Y-23646554D01* +X36441519Y-23644773D01* +X36433685Y-23643370D01* +X36425724Y-23642356D01* +X36417647Y-23641740D01* +X36409465Y-23641532D01* +X36401283Y-23641740D01* +X36393207Y-23642356D01* +X36385246Y-23643370D01* +X36377412Y-23644773D01* +X36369713Y-23646554D01* +X36362160Y-23648703D01* +X36354763Y-23651210D01* +X36347533Y-23654066D01* +X36340478Y-23657259D01* +X36333611Y-23660781D01* +X36326940Y-23664620D01* +X36320475Y-23668767D01* +X36314228Y-23673212D01* +X36308207Y-23677945D01* +X36302423Y-23682955D01* +X36296887Y-23688233D01* +X36291608Y-23693768D01* +X36286596Y-23699551D01* +X36281861Y-23705572D01* +X36277414Y-23711819D01* +X36273265Y-23718284D01* +X36269423Y-23724957D01* +X36265900Y-23731826D01* +X36262704Y-23738883D01* +X36259847Y-23746116D01* +X36257337Y-23753517D01* +X36255186Y-23761074D01* +X36253404Y-23768779D01* +X36252000Y-23776620D01* +X36250984Y-23784588D01* +X36250368Y-23792673D01* +X36250160Y-23800864D01* +X36035850Y-23800864D01* +X36035847Y-23800772D01* +X36036334Y-23781574D01* +D11* +X36728400Y-54610000D03* +X39268400Y-51300000D03* +D12* +X36290000Y-34163000D03* +X34290000Y-34163000D03* +D13* +X14616500Y-28194000D03* +X17741500Y-28194000D03* +D14* +X27075000Y-26542000D03* +D15* +X28575000Y-26454500D03* +D14* +X30075000Y-26542000D03* +D13* +X32981500Y-14605000D03* +X36106500Y-14605000D03* +D16* +X27536500Y-39745000D03* +X27536500Y-40545000D03* +X27536500Y-41345000D03* +X27536500Y-42145000D03* +X27536500Y-42945000D03* +X27536500Y-43745000D03* +X27536500Y-44545000D03* +X27536500Y-45345000D03* +D17* +X28911500Y-46720000D03* +X29711500Y-46720000D03* +X30511500Y-46720000D03* +X31311500Y-46720000D03* +X32111500Y-46720000D03* +X32911500Y-46720000D03* +X33711500Y-46720000D03* +X34511500Y-46720000D03* +D16* +X35886500Y-45345000D03* +X35886500Y-44545000D03* +X35886500Y-43745000D03* +X35886500Y-42945000D03* +X35886500Y-42145000D03* +X35886500Y-41345000D03* +X35886500Y-40545000D03* +X35886500Y-39745000D03* +D17* +X34511500Y-38370000D03* +X33711500Y-38370000D03* +X32911500Y-38370000D03* +X32111500Y-38370000D03* +X31311500Y-38370000D03* +X30511500Y-38370000D03* +X29711500Y-38370000D03* +X28911500Y-38370000D03* +D18* +X18042000Y-36195000D03* +X18542000Y-36195000D03* +X19042000Y-36195000D03* +X19542000Y-36195000D03* +X20042000Y-36195000D03* +X20042000Y-31795000D03* +X19542000Y-31795000D03* +X19042000Y-31795000D03* +X18542000Y-31795000D03* +X18042000Y-31795000D03* +D13* +X20701000Y-28194000D03* +X23826000Y-28194000D03* +D12* +X36290000Y-32258000D03* +X34290000Y-32258000D03* +D19* +X19304000Y-44816000D03* +X19304000Y-46116000D03* +X21304000Y-45466000D03* +D20* +X17018000Y-53467000D03* +X13718000Y-50927000D03* +X17018000Y-48387000D03* +X13718000Y-45847000D03* +X17018000Y-43307000D03* +D21* +X20193000Y-38442500D03* +X20193000Y-41567500D03* +D22* +X39624000Y-47625000D03* +X36499000Y-47625000D03* +D23* +X32893000Y-28448000D03* +X32893000Y-25323000D03* +D24* +X13931500Y-24700000D03* +X15201500Y-24700000D03* +X16471500Y-24700000D03* +X17741500Y-24700000D03* +X17741500Y-19750000D03* +X16471500Y-19750000D03* +X15201500Y-19750000D03* +X13931500Y-19750000D03* +D25* +X27178000Y-30480000D03* +X27178000Y-31750000D03* +X27178000Y-33020000D03* +X27178000Y-34290000D03* +X32128000Y-34290000D03* +X32128000Y-33020000D03* +X32128000Y-31750000D03* +X32128000Y-30480000D03* +D26* +X26797000Y-36195000D03* +X28797000Y-36195000D03* +D23* +X15367000Y-34875000D03* +X15367000Y-31750000D03* +D27* +X28536500Y-15748000D03* +D11* +X20370800Y-54610000D03* +X22910800Y-51300000D03* +X25450800Y-54610000D03* +X27990800Y-51300000D03* +X30530800Y-54610000D03* +X33070800Y-51300000D03* +D28* +X17160000Y-38624000D03* +X15860000Y-38624000D03* +X16510000Y-40624000D03* +D27* +X16471500Y-15748000D03* +D28* +X14239000Y-38624000D03* +X12939000Y-38624000D03* +X13589000Y-40624000D03* +D29* +X33033000Y-18034000D03* +X37833000Y-18034000D03* +D19* +X19336000Y-47483000D03* +X19336000Y-48783000D03* +X21336000Y-48133000D03* +D24* +X19939000Y-24700000D03* +X21209000Y-24700000D03* +X22479000Y-24700000D03* +X23749000Y-24700000D03* +X23749000Y-19750000D03* +X22479000Y-19750000D03* +X21209000Y-19750000D03* +X19939000Y-19750000D03* +D27* +X22479000Y-15748000D03* +D30* +X23622000Y-39370000D03* +X23622000Y-34170000D03* +D31* +X45978000Y-52578000D03* +X42668000Y-50038000D03* +X45978000Y-47498000D03* +X42668000Y-44958000D03* +X45978000Y-42418000D03* +X42668000Y-39878000D03* +X45978000Y-37338000D03* +X42668000Y-34798000D03* +X45978000Y-32258000D03* +X42668000Y-29718000D03* +X45978000Y-27178000D03* +X42668000Y-24638000D03* +X45978000Y-22098000D03* +X42668000Y-19558000D03* +X45978000Y-17018000D03* +D32* +X34544000Y-48361600D03* +X39751000Y-29718000D03* +X23749000Y-22352000D03* +X32918400Y-48361600D03* +X20193000Y-46736000D03* +X17741500Y-22352000D03* +X41783000Y-22733000D03* +X32893000Y-24003000D03* +X15113000Y-53467000D03* +X41910000Y-54610000D03* +X43307000Y-37338000D03* +X27178000Y-38100000D03* +X15113000Y-39497000D03* +X26060400Y-38811200D03* +X17627600Y-45669200D03* +X28702000Y-28448000D03* +D33* +X18542000Y-36195000D02* +X18542000Y-37195000D01* +X18542000Y-37195000D02* +X19789500Y-38442500D01* +D34* +X20859000Y-42145000D02* +X20281500Y-41567500D01* +X27536500Y-42145000D02* +X20859000Y-42145000D01* +D35* +X33020000Y-18415000D02* +X33020000Y-14643500D01* +X13931500Y-24700000D02* +X13931500Y-27890000D01* +X13931500Y-24700000D02* +X13931500Y-19750000D01* +X30186500Y-21490000D02* +X33261500Y-18415000D01* +X30186500Y-21490000D02* +X30186500Y-26430500D01* +X13335000Y-19153500D02* +X13335000Y-12954000D01* +X31170500Y-12794000D02* +X32981500Y-14605000D01* +X19939000Y-27890000D02* +X20624000Y-28575000D01* +X13931500Y-19750000D02* +X13335000Y-19153500D01* +X13495000Y-12794000D02* +X19525000Y-12794000D01* +X30186500Y-26430500D02* +X30075000Y-26542000D01* +X13931500Y-27890000D02* +X14616500Y-28575000D01* +X19525000Y-12794000D02* +X31170500Y-12794000D01* +X19525000Y-12794000D02* +X19525000Y-19336000D01* +X19939000Y-24700000D02* +X19939000Y-27890000D01* +X19525000Y-19336000D02* +X19939000Y-19750000D01* +X19939000Y-19750000D02* +X19939000Y-24700000D01* +X13335000Y-12954000D02* +X13495000Y-12794000D01* +D34* +X43307000Y-37338000D02* +X45978000Y-37338000D01* +D33* +X22138500Y-29718569D02* +X22138500Y-29083000D01* +D35* +X30530800Y-54610000D02* +X36728400Y-54610000D01* +X39515000Y-20465000D02* +X41846500Y-22796500D01* +D34* +X28911500Y-38370000D02* +X27448000Y-38370000D01* +X35886500Y-46720000D02* +X36156500Y-46990000D01* +X16360000Y-39424000D02* +X17160000Y-38624000D01* +D35* +X34943000Y-20465000D02* +X39515000Y-20465000D01* +D34* +X27448000Y-38370000D02* +X27178000Y-38100000D01* +X15039000Y-39424000D02* +X16360000Y-39424000D01* +X26797000Y-34671000D02* +X27178000Y-34290000D01* +X20104000Y-46715000D02* +X20104000Y-45616000D01* +X20104000Y-45616000D02* +X19304000Y-44816000D01* +D33* +X15367000Y-31750000D02* +X16687000Y-33070000D01* +D35* +X27008500Y-17276000D02* +X28536500Y-15748000D01* +X42668000Y-23618000D02* +X42668000Y-24638000D01* +X33274000Y-20828000D02* +X34107000Y-20828000D01* +X27075000Y-26542000D02* +X27008500Y-26475500D01* +D33* +X19042000Y-31795000D02* +X19042000Y-32795000D01* +D34* +X14239000Y-38624000D02* +X15039000Y-39424000D01* +D33* +X19042000Y-32795000D02* +X18767000Y-33070000D01* +X22138500Y-29083000D02* +X23027500Y-28194000D01* +D34* +X39751000Y-29718000D02* +X42668000Y-29718000D01* +D35* +X23749000Y-26035000D02* +X23749000Y-19750000D01* +D34* +X32911500Y-46720000D02* +X32911500Y-48354700D01* +D35* +X24256000Y-26542000D02* +X23749000Y-26035000D01* +D33* +X21123069Y-30734000D02* +X22138500Y-29718569D01* +X19103000Y-30734000D02* +X21123069Y-30734000D01* +X19042000Y-31795000D02* +X19042000Y-30795000D01* +D34* +X27178000Y-36576000D02* +X26797000Y-36195000D01* +D35* +X41846500Y-22796500D02* +X42668000Y-23618000D01* +D33* +X16687000Y-33070000D02* +X18767000Y-33070000D01* +D34* +X34544000Y-48361600D02* +X34544000Y-46752500D01* +D35* +X27075000Y-26542000D02* +X24256000Y-26542000D01* +X34706500Y-20228500D02* +X34943000Y-20465000D01* +X17741500Y-28575000D02* +X17741500Y-19750000D01* +X23749000Y-28575000D02* +X23749000Y-26035000D01* +X27008500Y-26475500D02* +X27008500Y-17276000D01* +D34* +X34544000Y-46752500D02* +X34511500Y-46720000D01* +D33* +X19042000Y-30795000D02* +X19103000Y-30734000D01* +D35* +X43946000Y-54610000D02* +X45978000Y-52578000D01* +D34* +X34511500Y-46720000D02* +X35886500Y-46720000D01* +D35* +X34706500Y-20228500D02* +X35179000Y-19756000D01* +D34* +X27178000Y-38100000D02* +X27178000Y-36576000D01* +X26797000Y-36195000D02* +X26797000Y-34671000D01* +X19336000Y-47483000D02* +X20104000Y-46715000D01* +D35* +X42545000Y-22098000D02* +X41846500Y-22796500D01* +X36728400Y-54610000D02* +X43946000Y-54610000D01* +D34* +X32911500Y-48354700D02* +X32918400Y-48361600D01* +D35* +X34107000Y-20828000D02* +X34706500Y-20228500D01* +X32893000Y-21209000D02* +X33274000Y-20828000D01* +D33* +X23027500Y-28194000D02* +X23826000Y-28194000D01* +D35* +X35179000Y-15532500D02* +X36106500Y-14605000D01* +X35179000Y-19756000D02* +X35179000Y-15532500D01* +X32893000Y-25323000D02* +X32893000Y-21209000D01* +D34* +X15113000Y-53467000D02* +X17018000Y-53467000D01* +D35* +X45978000Y-22098000D02* +X42545000Y-22098000D01* +D34* +X29274673Y-47920000D02* +X29711500Y-47483173D01* +X29711500Y-47483173D02* +X29711500Y-46720000D01* +X22987000Y-51308000D02* +X26375000Y-47920000D01* +X26375000Y-47920000D02* +X29274673Y-47920000D01* +X19621500Y-34226500D02* +X19304000Y-34544000D01* +X15060000Y-37824000D02* +X15060000Y-35182000D01* +D35* +X36290000Y-34163000D02* +X36290000Y-28830000D01* +X17627600Y-45669200D02* +X18542000Y-46583600D01* +D34* +X35886500Y-45345000D02* +X35123327Y-45345000D01* +D35* +X32893000Y-28448000D02* +X28702000Y-28448000D01* +D33* +X18042000Y-36195000D02* +X18042000Y-34663000D01* +D35* +X26180449Y-28448000D02* +X26127449Y-28395000D01* +D34* +X12939000Y-38449000D02* +X13564000Y-37824000D01* +D35* +X28575000Y-28321000D02* +X28702000Y-28448000D01* +D34* +X13564000Y-37824000D02* +X15060000Y-37824000D01* +X19228000Y-46116000D02* +X18658800Y-46685200D01* +X19304000Y-34544000D02* +X18161000Y-34544000D01* +D35* +X36290000Y-28830000D02* +X36672000Y-28448000D01* +D34* +X18161000Y-34544000D02* +X15698000Y-34544000D01* +X18536000Y-47983000D02* +X19336000Y-48783000D01* +D35* +X35908000Y-28448000D02* +X36290000Y-28830000D01* +D33* +X19542000Y-31795000D02* +X19542000Y-34147000D01* +D34* +X21635000Y-31070000D02* +X20642000Y-32063000D01* +X37344000Y-45345000D02* +X39624000Y-47625000D01* +D33* +X19542000Y-34147000D02* +X19621500Y-34226500D01* +X18042000Y-34663000D02* +X18161000Y-34544000D01* +D34* +X20642000Y-32063000D02* +X20642000Y-33206000D01* +X27536500Y-39745000D02* +X26994200Y-39745000D01* +X29523327Y-39745000D02* +X33776563Y-43998237D01* +X33711500Y-46720000D02* +X33711500Y-44063300D01* +X12939000Y-38624000D02* +X12939000Y-38449000D01* +D35* +X32893000Y-28448000D02* +X35908000Y-28448000D01* +D34* +X26994200Y-39745000D02* +X26060400Y-38811200D01* +X33711500Y-50743500D02* +X33711500Y-46720000D01* +X33147000Y-51308000D02* +X33711500Y-50743500D01* +X26127449Y-28395000D02* +X23452449Y-31070000D01* +D35* +X32128000Y-30480000D02* +X32128000Y-29213000D01* +X18542000Y-46583600D02* +X18542000Y-46685200D01* +D34* +X18658800Y-46685200D02* +X18542000Y-46685200D01* +D35* +X28575000Y-26454500D02* +X28575000Y-28321000D01* +D34* +X18542000Y-46685200D02* +X18536000Y-46691200D01* +X18536000Y-46691200D02* +X18536000Y-47983000D01* +X15060000Y-37824000D02* +X15860000Y-38624000D01* +X33711500Y-44063300D02* +X33776563Y-43998237D01* +D35* +X40259000Y-28448000D02* +X41529000Y-27178000D01* +X36672000Y-28448000D02* +X40259000Y-28448000D01* +D34* +X27536500Y-39745000D02* +X29523327Y-39745000D01* +X35886500Y-45345000D02* +X37344000Y-45345000D01* +X23452449Y-31070000D02* +X21635000Y-31070000D01* +D35* +X42037000Y-50038000D02* +X39624000Y-47625000D01* +D34* +X20642000Y-33206000D02* +X19621500Y-34226500D01* +X19304000Y-46116000D02* +X19228000Y-46116000D01* +D35* +X41529000Y-27178000D02* +X45978000Y-27178000D01* +D34* +X33776563Y-43998237D02* +X35123327Y-45345000D01* +D35* +X28702000Y-28448000D02* +X26180449Y-28448000D01* +X32128000Y-29213000D02* +X32893000Y-28448000D01* +D33* +X20970673Y-30250000D02* +X21688500Y-29532173D01* +X21688500Y-25179500D02* +X21209000Y-24700000D01* +X21688500Y-29532173D02* +X21688500Y-25179500D01* +X18542000Y-30480000D02* +X18772000Y-30250000D01* +X18772000Y-30250000D02* +X20970673Y-30250000D01* +X18542000Y-31795000D02* +X18542000Y-30480000D01* +D34* +X26321000Y-40545000D02* +X25272000Y-39496000D01* +X25272000Y-39496000D02* +X25272000Y-37210000D01* +X25272000Y-37210000D02* +X23622000Y-35560000D01* +X27536500Y-40545000D02* +X26321000Y-40545000D01* +X26066500Y-41345000D02* +X24091500Y-39370000D01* +X27536500Y-41345000D02* +X26066500Y-41345000D01* +D35* +X22479000Y-19750000D02* +X22479000Y-15240000D01* +X21209000Y-19750000D02* +X22479000Y-19750000D01* +D33* +X20701000Y-36195000D02* +X21844000Y-35052000D01* +X21844000Y-35052000D02* +X21844000Y-32348000D01* +D34* +X32128000Y-34290000D02* +X34163000Y-34290000D01* +D33* +X25147000Y-32095000D02* +X25147000Y-32635751D01* +D34* +X30511500Y-38370000D02* +X30511500Y-35906500D01* +D33* +X25147000Y-32635751D02* +X26176249Y-33665000D01* +X26176249Y-33665000D02* +X28270000Y-33665000D01* +X20042000Y-36195000D02* +X20701000Y-36195000D01* +X22097000Y-32095000D02* +X25147000Y-32095000D01* +X21844000Y-32348000D02* +X22097000Y-32095000D01* +X28270000Y-33665000D02* +X30511500Y-35906500D01* +D34* +X30511500Y-35906500D02* +X32128000Y-34290000D01* +X20447000Y-54618000D02* +X20447000Y-51193000D01* +X20447000Y-51193000D02* +X24920000Y-46720000D01* +X24920000Y-46720000D02* +X28911500Y-46720000D01* +X25527000Y-54618000D02* +X25527000Y-51193000D01* +X25527000Y-51193000D02* +X28100000Y-48620000D01* +X28100000Y-48620000D02* +X29616500Y-48620000D01* +X30511500Y-47725000D02* +X30511500Y-46720000D01* +X29616500Y-48620000D02* +X30511500Y-47725000D01* +X31311500Y-49206500D02* +X31311500Y-46720000D01* +X28067000Y-51308000D02* +X29210000Y-51308000D01* +X29210000Y-51308000D02* +X31311500Y-49206500D01* +X32111500Y-52927500D02* +X32197000Y-53013000D01* +X34617000Y-53013000D02* +X36330000Y-51300000D01* +X32197000Y-53013000D02* +X34617000Y-53013000D01* +X36330000Y-51300000D02* +X39268400Y-51300000D01* +X32111500Y-46720000D02* +X32111500Y-52927500D01* +D33* +X15604000Y-29357000D02* +X18042000Y-31795000D01* +X15201500Y-24700000D02* +X15604000Y-25102500D01* +X15604000Y-25102500D02* +X15604000Y-29357000D01* +D34* +X29711500Y-38370000D02* +X29711500Y-37109500D01* +X29711500Y-37109500D02* +X28797000Y-36195000D01* +D33* +X19812000Y-35052000D02* +X20955000Y-35052000D01* +X35306000Y-33020000D02* +X34544000Y-32258000D01* +X25426249Y-31645000D02* +X26176249Y-32395000D01* +D34* +X33528000Y-33020000D02* +X32128000Y-33020000D01* +D33* +X30480000Y-33147000D02* +X32001000Y-33147000D01* +X20955000Y-35052000D02* +X21380302Y-34626698D01* +X26176249Y-32395000D02* +X29728000Y-32395000D01* +X35306000Y-37575500D02* +X35306000Y-33020000D01* +X21380302Y-34626698D02* +X21380302Y-32175302D01* +X34511500Y-38370000D02* +X35306000Y-37575500D01* +X21380302Y-32175302D02* +X21910604Y-31645000D01* +X21910604Y-31645000D02* +X25426249Y-31645000D01* +X29728000Y-32395000D02* +X30480000Y-33147000D01* +X19542000Y-35322000D02* +X19812000Y-35052000D01* +D34* +X34290000Y-32258000D02* +X33528000Y-33020000D01* +D33* +X19542000Y-36195000D02* +X19542000Y-35322000D01* +D34* +X16510000Y-40624000D02* +X16510000Y-42799000D01* +X16510000Y-42799000D02* +X17018000Y-43307000D01* +X27536500Y-42945000D02* +X17380000Y-42945000D01* +X17380000Y-42945000D02* +X17018000Y-43307000D01* +X21336000Y-49314050D02* +X19723050Y-50927000D01* +X24124000Y-45345000D02* +X27536500Y-45345000D01* +X21336000Y-48133000D02* +X21336000Y-49314050D01* +X21336000Y-48133000D02* +X24124000Y-45345000D01* +X19723050Y-50927000D02* +X13718000Y-50927000D01* +X14351000Y-44450000D02* +X13718000Y-45083000D01* +X18993000Y-43745000D02* +X18288000Y-44450000D01* +X13589000Y-43688000D02* +X14351000Y-44450000D01* +X14351000Y-44450000D02* +X18288000Y-44450000D01* +X13589000Y-40624000D02* +X13589000Y-43688000D01* +X13718000Y-45083000D02* +X13718000Y-45847000D01* +X27536500Y-43745000D02* +X18993000Y-43745000D01* +X21304000Y-45466000D02* +X22225000Y-44545000D01* +X22225000Y-44545000D02* +X27536500Y-44545000D01* +X20447000Y-48957000D02* +X20447000Y-47752000D01* +X21304000Y-46895000D02* +X21304000Y-45466000D01* +X18383550Y-49752550D02* +X19651450Y-49752550D01* +X20447000Y-47752000D02* +X21304000Y-46895000D01* +X17018000Y-48387000D02* +X18383550Y-49752550D01* +X19651450Y-49752550D02* +X20447000Y-48957000D01* +D35* +X37833000Y-18034000D02* +X41144000Y-18034000D01* +X41144000Y-18034000D02* +X42160000Y-17018000D01* +X41144000Y-18034000D02* +X42668000Y-19558000D01* +X42160000Y-17018000D02* +X45978000Y-17018000D01* +X16471500Y-19180000D02* +X16471500Y-15240000D01* +X15201500Y-19750000D02* +X15901500Y-19750000D01* +X15901500Y-19750000D02* +X16471500Y-19750000D01* +X15901500Y-19750000D02* +X16471500Y-19180000D01* +D34* +X41999449Y-47498000D02* +X45978000Y-47498000D01* +X38246449Y-43745000D02* +X41999449Y-47498000D01* +X35886500Y-43745000D02* +X38246449Y-43745000D01* +X35886500Y-42945000D02* +X40655000Y-42945000D01* +X40655000Y-42945000D02* +X42668000Y-44958000D01* +X45705000Y-42145000D02* +X45978000Y-42418000D01* +X35886500Y-42145000D02* +X45705000Y-42145000D01* +X41201000Y-41345000D02* +X42668000Y-39878000D01* +X35886500Y-41345000D02* +X41201000Y-41345000D01* +X36921000Y-40545000D02* +X42668000Y-34798000D01* +X35886500Y-40545000D02* +X36921000Y-40545000D01* +X35886500Y-39745000D02* +X35886500Y-38924500D01* +X35886500Y-38924500D02* +X42553000Y-32258000D01* +X42553000Y-32258000D02* +X45978000Y-32258000D01* +M02* diff --git a/squeow_hw/jlcpcb/squeow-F_Mask.gts b/squeow_hw/jlcpcb/squeow-F_Mask.gts new file mode 100644 index 0000000..132b12b --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-F_Mask.gts @@ -0,0 +1,226 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Soldermask,Top* +G04 #@! TF.FilePolarity,Negative* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +%AMFreePoly0* +4,1,9,3.862500,-0.866500,0.737500,-0.866500,0.737500,-0.450000,-0.737500,-0.450000,-0.737500,0.450000,0.737500,0.450000,0.737500,0.866500,3.862500,0.866500,3.862500,-0.866500,3.862500,-0.866500,$1*% +G04 Aperture macros list end* +%ADD10R,1.000000X2.510000*% +%ADD11RoundRect,0.250000X0.350000X0.450000X-0.350000X0.450000X-0.350000X-0.450000X0.350000X-0.450000X0*% +%ADD12RoundRect,0.250000X-0.412500X-1.100000X0.412500X-1.100000X0.412500X1.100000X-0.412500X1.100000X0*% +%ADD13R,0.900000X1.300000*% +%ADD14FreePoly0,90.000000*% +%ADD15RoundRect,0.125000X-0.625000X-0.125000X0.625000X-0.125000X0.625000X0.125000X-0.625000X0.125000X0*% +%ADD16RoundRect,0.125000X-0.125000X-0.625000X0.125000X-0.625000X0.125000X0.625000X-0.125000X0.625000X0*% +%ADD17R,0.300000X1.400000*% +%ADD18R,0.700000X0.450000*% +%ADD19R,1.900000X1.000000*% +%ADD20RoundRect,0.250000X-1.100000X0.412500X-1.100000X-0.412500X1.100000X-0.412500X1.100000X0.412500X0*% +%ADD21RoundRect,0.250000X0.412500X1.100000X-0.412500X1.100000X-0.412500X-1.100000X0.412500X-1.100000X0*% +%ADD22RoundRect,0.250000X1.100000X-0.412500X1.100000X0.412500X-1.100000X0.412500X-1.100000X-0.412500X0*% +%ADD23RoundRect,0.150000X0.150000X-0.825000X0.150000X0.825000X-0.150000X0.825000X-0.150000X-0.825000X0*% +%ADD24RoundRect,0.150000X-0.825000X-0.150000X0.825000X-0.150000X0.825000X0.150000X-0.825000X0.150000X0*% +%ADD25RoundRect,0.250000X-0.350000X-0.450000X0.350000X-0.450000X0.350000X0.450000X-0.350000X0.450000X0*% +%ADD26R,4.000000X4.000000*% +%ADD27R,0.450000X0.700000*% +%ADD28R,1.500000X2.700000*% +%ADD29R,2.400000X3.500000*% +%ADD30R,2.510000X1.000000*% +G04 APERTURE END LIST* +D10* +X36728400Y-54610000D03* +X39268400Y-51300000D03* +D11* +X36290000Y-34163000D03* +X34290000Y-34163000D03* +D12* +X14616500Y-28194000D03* +X17741500Y-28194000D03* +D13* +X27075000Y-26542000D03* +D14* +X28575000Y-26454500D03* +D13* +X30075000Y-26542000D03* +D12* +X32981500Y-14605000D03* +X36106500Y-14605000D03* +D15* +X27536500Y-39745000D03* +X27536500Y-40545000D03* +X27536500Y-41345000D03* +X27536500Y-42145000D03* +X27536500Y-42945000D03* +X27536500Y-43745000D03* +X27536500Y-44545000D03* +X27536500Y-45345000D03* +D16* +X28911500Y-46720000D03* +X29711500Y-46720000D03* +X30511500Y-46720000D03* +X31311500Y-46720000D03* +X32111500Y-46720000D03* +X32911500Y-46720000D03* +X33711500Y-46720000D03* +X34511500Y-46720000D03* +D15* +X35886500Y-45345000D03* +X35886500Y-44545000D03* +X35886500Y-43745000D03* +X35886500Y-42945000D03* +X35886500Y-42145000D03* +X35886500Y-41345000D03* +X35886500Y-40545000D03* +X35886500Y-39745000D03* +D16* +X34511500Y-38370000D03* +X33711500Y-38370000D03* +X32911500Y-38370000D03* +X32111500Y-38370000D03* +X31311500Y-38370000D03* +X30511500Y-38370000D03* +X29711500Y-38370000D03* +X28911500Y-38370000D03* +D17* +X18042000Y-36195000D03* +X18542000Y-36195000D03* +X19042000Y-36195000D03* +X19542000Y-36195000D03* +X20042000Y-36195000D03* +X20042000Y-31795000D03* +X19542000Y-31795000D03* +X19042000Y-31795000D03* +X18542000Y-31795000D03* +X18042000Y-31795000D03* +D12* +X20701000Y-28194000D03* +X23826000Y-28194000D03* +D11* +X36290000Y-32258000D03* +X34290000Y-32258000D03* +D18* +X19304000Y-44816000D03* +X19304000Y-46116000D03* +X21304000Y-45466000D03* +D19* +X17018000Y-53467000D03* +X13718000Y-50927000D03* +X17018000Y-48387000D03* +X13718000Y-45847000D03* +X17018000Y-43307000D03* +D20* +X20193000Y-38442500D03* +X20193000Y-41567500D03* +D21* +X39624000Y-47625000D03* +X36499000Y-47625000D03* +D22* +X32893000Y-28448000D03* +X32893000Y-25323000D03* +D23* +X13931500Y-24700000D03* +X15201500Y-24700000D03* +X16471500Y-24700000D03* +X17741500Y-24700000D03* +X17741500Y-19750000D03* +X16471500Y-19750000D03* +X15201500Y-19750000D03* +X13931500Y-19750000D03* +D24* +X27178000Y-30480000D03* +X27178000Y-31750000D03* +X27178000Y-33020000D03* +X27178000Y-34290000D03* +X32128000Y-34290000D03* +X32128000Y-33020000D03* +X32128000Y-31750000D03* +X32128000Y-30480000D03* +D25* +X26797000Y-36195000D03* +X28797000Y-36195000D03* +D22* +X15367000Y-34875000D03* +X15367000Y-31750000D03* +D26* +X28536500Y-15748000D03* +D10* +X20370800Y-54610000D03* +X22910800Y-51300000D03* +X25450800Y-54610000D03* +X27990800Y-51300000D03* +X30530800Y-54610000D03* +X33070800Y-51300000D03* +D27* +X17160000Y-38624000D03* +X15860000Y-38624000D03* +X16510000Y-40624000D03* +D26* +X16471500Y-15748000D03* +D27* +X14239000Y-38624000D03* +X12939000Y-38624000D03* +X13589000Y-40624000D03* +D28* +X33033000Y-18034000D03* +X37833000Y-18034000D03* +D18* +X19336000Y-47483000D03* +X19336000Y-48783000D03* +X21336000Y-48133000D03* +D23* +X19939000Y-24700000D03* +X21209000Y-24700000D03* +X22479000Y-24700000D03* +X23749000Y-24700000D03* +X23749000Y-19750000D03* +X22479000Y-19750000D03* +X21209000Y-19750000D03* +X19939000Y-19750000D03* +D26* +X22479000Y-15748000D03* +D29* +X23622000Y-39370000D03* +X23622000Y-34170000D03* +D30* +X45978000Y-52578000D03* +X42668000Y-50038000D03* +X45978000Y-47498000D03* +X42668000Y-44958000D03* +X45978000Y-42418000D03* +X42668000Y-39878000D03* +X45978000Y-37338000D03* +X42668000Y-34798000D03* +X45978000Y-32258000D03* +X42668000Y-29718000D03* +X45978000Y-27178000D03* +X42668000Y-24638000D03* +X45978000Y-22098000D03* +X42668000Y-19558000D03* +X45978000Y-17018000D03* +M02* diff --git a/squeow_hw/jlcpcb/squeow-F_Paste.gtp b/squeow_hw/jlcpcb/squeow-F_Paste.gtp new file mode 100644 index 0000000..3c3034d --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-F_Paste.gtp @@ -0,0 +1,218 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Paste,Top* +G04 #@! TF.FilePolarity,Positive* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +%AMFreePoly0* +4,1,9,3.862500,-0.866500,0.737500,-0.866500,0.737500,-0.450000,-0.737500,-0.450000,-0.737500,0.450000,0.737500,0.450000,0.737500,0.866500,3.862500,0.866500,3.862500,-0.866500,3.862500,-0.866500,$1*% +G04 Aperture macros list end* +%ADD10R,1.000000X2.510000*% +%ADD11RoundRect,0.250000X0.350000X0.450000X-0.350000X0.450000X-0.350000X-0.450000X0.350000X-0.450000X0*% +%ADD12RoundRect,0.250000X-0.412500X-1.100000X0.412500X-1.100000X0.412500X1.100000X-0.412500X1.100000X0*% +%ADD13R,0.900000X1.300000*% +%ADD14FreePoly0,90.000000*% +%ADD15RoundRect,0.125000X-0.625000X-0.125000X0.625000X-0.125000X0.625000X0.125000X-0.625000X0.125000X0*% +%ADD16RoundRect,0.125000X-0.125000X-0.625000X0.125000X-0.625000X0.125000X0.625000X-0.125000X0.625000X0*% +%ADD17R,0.300000X1.400000*% +%ADD18R,0.700000X0.450000*% +%ADD19R,1.900000X1.000000*% +%ADD20RoundRect,0.250000X-1.100000X0.412500X-1.100000X-0.412500X1.100000X-0.412500X1.100000X0.412500X0*% +%ADD21RoundRect,0.250000X0.412500X1.100000X-0.412500X1.100000X-0.412500X-1.100000X0.412500X-1.100000X0*% +%ADD22RoundRect,0.250000X1.100000X-0.412500X1.100000X0.412500X-1.100000X0.412500X-1.100000X-0.412500X0*% +%ADD23RoundRect,0.150000X0.150000X-0.825000X0.150000X0.825000X-0.150000X0.825000X-0.150000X-0.825000X0*% +%ADD24RoundRect,0.150000X-0.825000X-0.150000X0.825000X-0.150000X0.825000X0.150000X-0.825000X0.150000X0*% +%ADD25RoundRect,0.250000X-0.350000X-0.450000X0.350000X-0.450000X0.350000X0.450000X-0.350000X0.450000X0*% +%ADD26R,0.450000X0.700000*% +%ADD27R,1.500000X2.700000*% +%ADD28R,2.400000X3.500000*% +%ADD29R,2.510000X1.000000*% +G04 APERTURE END LIST* +D10* +X36728400Y-54610000D03* +X39268400Y-51300000D03* +D11* +X36290000Y-34163000D03* +X34290000Y-34163000D03* +D12* +X14616500Y-28194000D03* +X17741500Y-28194000D03* +D13* +X27075000Y-26542000D03* +D14* +X28575000Y-26454500D03* +D13* +X30075000Y-26542000D03* +D12* +X32981500Y-14605000D03* +X36106500Y-14605000D03* +D15* +X27536500Y-39745000D03* +X27536500Y-40545000D03* +X27536500Y-41345000D03* +X27536500Y-42145000D03* +X27536500Y-42945000D03* +X27536500Y-43745000D03* +X27536500Y-44545000D03* +X27536500Y-45345000D03* +D16* +X28911500Y-46720000D03* +X29711500Y-46720000D03* +X30511500Y-46720000D03* +X31311500Y-46720000D03* +X32111500Y-46720000D03* +X32911500Y-46720000D03* +X33711500Y-46720000D03* +X34511500Y-46720000D03* +D15* +X35886500Y-45345000D03* +X35886500Y-44545000D03* +X35886500Y-43745000D03* +X35886500Y-42945000D03* +X35886500Y-42145000D03* +X35886500Y-41345000D03* +X35886500Y-40545000D03* +X35886500Y-39745000D03* +D16* +X34511500Y-38370000D03* +X33711500Y-38370000D03* +X32911500Y-38370000D03* +X32111500Y-38370000D03* +X31311500Y-38370000D03* +X30511500Y-38370000D03* +X29711500Y-38370000D03* +X28911500Y-38370000D03* +D17* +X18042000Y-36195000D03* +X18542000Y-36195000D03* +X19042000Y-36195000D03* +X19542000Y-36195000D03* +X20042000Y-36195000D03* +X20042000Y-31795000D03* +X19542000Y-31795000D03* +X19042000Y-31795000D03* +X18542000Y-31795000D03* +X18042000Y-31795000D03* +D12* +X20701000Y-28194000D03* +X23826000Y-28194000D03* +D11* +X36290000Y-32258000D03* +X34290000Y-32258000D03* +D18* +X19304000Y-44816000D03* +X19304000Y-46116000D03* +X21304000Y-45466000D03* +D19* +X17018000Y-53467000D03* +X13718000Y-50927000D03* +X17018000Y-48387000D03* +X13718000Y-45847000D03* +X17018000Y-43307000D03* +D20* +X20193000Y-38442500D03* +X20193000Y-41567500D03* +D21* +X39624000Y-47625000D03* +X36499000Y-47625000D03* +D22* +X32893000Y-28448000D03* +X32893000Y-25323000D03* +D23* +X13931500Y-24700000D03* +X15201500Y-24700000D03* +X16471500Y-24700000D03* +X17741500Y-24700000D03* +X17741500Y-19750000D03* +X16471500Y-19750000D03* +X15201500Y-19750000D03* +X13931500Y-19750000D03* +D24* +X27178000Y-30480000D03* +X27178000Y-31750000D03* +X27178000Y-33020000D03* +X27178000Y-34290000D03* +X32128000Y-34290000D03* +X32128000Y-33020000D03* +X32128000Y-31750000D03* +X32128000Y-30480000D03* +D25* +X26797000Y-36195000D03* +X28797000Y-36195000D03* +D22* +X15367000Y-34875000D03* +X15367000Y-31750000D03* +D10* +X20370800Y-54610000D03* +X22910800Y-51300000D03* +X25450800Y-54610000D03* +X27990800Y-51300000D03* +X30530800Y-54610000D03* +X33070800Y-51300000D03* +D26* +X17160000Y-38624000D03* +X15860000Y-38624000D03* +X16510000Y-40624000D03* +X14239000Y-38624000D03* +X12939000Y-38624000D03* +X13589000Y-40624000D03* +D27* +X33033000Y-18034000D03* +X37833000Y-18034000D03* +D18* +X19336000Y-47483000D03* +X19336000Y-48783000D03* +X21336000Y-48133000D03* +D23* +X19939000Y-24700000D03* +X21209000Y-24700000D03* +X22479000Y-24700000D03* +X23749000Y-24700000D03* +X23749000Y-19750000D03* +X22479000Y-19750000D03* +X21209000Y-19750000D03* +X19939000Y-19750000D03* +D28* +X23622000Y-39370000D03* +X23622000Y-34170000D03* +D29* +X45978000Y-52578000D03* +X42668000Y-50038000D03* +X45978000Y-47498000D03* +X42668000Y-44958000D03* +X45978000Y-42418000D03* +X42668000Y-39878000D03* +X45978000Y-37338000D03* +X42668000Y-34798000D03* +X45978000Y-32258000D03* +X42668000Y-29718000D03* +X45978000Y-27178000D03* +X42668000Y-24638000D03* +X45978000Y-22098000D03* +X42668000Y-19558000D03* +X45978000Y-17018000D03* +M02* diff --git a/squeow_hw/jlcpcb/squeow-F_Silkscreen.gto b/squeow_hw/jlcpcb/squeow-F_Silkscreen.gto new file mode 100644 index 0000000..1690703 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-F_Silkscreen.gto @@ -0,0 +1,1194 @@ +G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3* +G04 #@! TF.CreationDate,2022-10-05T14:50:53+02:00* +G04 #@! TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?* +G04 #@! TF.SameCoordinates,Original* +G04 #@! TF.FileFunction,Legend,Top* +G04 #@! TF.FilePolarity,Positive* +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:50:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +%AMFreePoly0* +4,1,9,3.862500,-0.866500,0.737500,-0.866500,0.737500,-0.450000,-0.737500,-0.450000,-0.737500,0.450000,0.737500,0.450000,0.737500,0.866500,3.862500,0.866500,3.862500,-0.866500,3.862500,-0.866500,$1*% +G04 Aperture macros list end* +%ADD10C,0.150000*% +%ADD11C,0.120000*% +%ADD12R,1.000000X2.510000*% +%ADD13RoundRect,0.250000X0.350000X0.450000X-0.350000X0.450000X-0.350000X-0.450000X0.350000X-0.450000X0*% +%ADD14RoundRect,0.250000X-0.412500X-1.100000X0.412500X-1.100000X0.412500X1.100000X-0.412500X1.100000X0*% +%ADD15R,0.900000X1.300000*% +%ADD16FreePoly0,90.000000*% +%ADD17RoundRect,0.125000X-0.625000X-0.125000X0.625000X-0.125000X0.625000X0.125000X-0.625000X0.125000X0*% +%ADD18RoundRect,0.125000X-0.125000X-0.625000X0.125000X-0.625000X0.125000X0.625000X-0.125000X0.625000X0*% +%ADD19R,0.300000X1.400000*% +%ADD20R,0.700000X0.450000*% +%ADD21R,1.900000X1.000000*% +%ADD22RoundRect,0.250000X-1.100000X0.412500X-1.100000X-0.412500X1.100000X-0.412500X1.100000X0.412500X0*% +%ADD23RoundRect,0.250000X0.412500X1.100000X-0.412500X1.100000X-0.412500X-1.100000X0.412500X-1.100000X0*% +%ADD24RoundRect,0.250000X1.100000X-0.412500X1.100000X0.412500X-1.100000X0.412500X-1.100000X-0.412500X0*% +%ADD25RoundRect,0.150000X0.150000X-0.825000X0.150000X0.825000X-0.150000X0.825000X-0.150000X-0.825000X0*% +%ADD26RoundRect,0.150000X-0.825000X-0.150000X0.825000X-0.150000X0.825000X0.150000X-0.825000X0.150000X0*% +%ADD27RoundRect,0.250000X-0.350000X-0.450000X0.350000X-0.450000X0.350000X0.450000X-0.350000X0.450000X0*% +%ADD28R,4.000000X4.000000*% +%ADD29R,0.450000X0.700000*% +%ADD30R,1.500000X2.700000*% +%ADD31R,2.400000X3.500000*% +%ADD32R,2.510000X1.000000*% +G04 APERTURE END LIST* +D10* +X33850780Y-53288333D02* +X34565066Y-53288333D01* +X34707923Y-53335952D01* +X34803161Y-53431190D01* +X34850780Y-53574047D01* +X34850780Y-53669285D01* +X33850780Y-52907380D02* +X33850780Y-52288333D01* +X34231733Y-52621666D01* +X34231733Y-52478809D01* +X34279352Y-52383571D01* +X34326971Y-52335952D01* +X34422209Y-52288333D01* +X34660304Y-52288333D01* +X34755542Y-52335952D01* +X34803161Y-52383571D01* +X34850780Y-52478809D01* +X34850780Y-52764523D01* +X34803161Y-52859761D01* +X34755542Y-52907380D01* +X35123333Y-36265380D02* +X34790000Y-35789190D01* +X34551904Y-36265380D02* +X34551904Y-35265380D01* +X34932857Y-35265380D01* +X35028095Y-35313000D01* +X35075714Y-35360619D01* +X35123333Y-35455857D01* +X35123333Y-35598714D01* +X35075714Y-35693952D01* +X35028095Y-35741571D01* +X34932857Y-35789190D01* +X34551904Y-35789190D01* +X35456666Y-35265380D02* +X36075714Y-35265380D01* +X35742380Y-35646333D01* +X35885238Y-35646333D01* +X35980476Y-35693952D01* +X36028095Y-35741571D01* +X36075714Y-35836809D01* +X36075714Y-36074904D01* +X36028095Y-36170142D01* +X35980476Y-36217761D01* +X35885238Y-36265380D01* +X35599523Y-36265380D01* +X35504285Y-36217761D01* +X35456666Y-36170142D01* +X16012333Y-26251142D02* +X15964714Y-26298761D01* +X15821857Y-26346380D01* +X15726619Y-26346380D01* +X15583761Y-26298761D01* +X15488523Y-26203523D01* +X15440904Y-26108285D01* +X15393285Y-25917809D01* +X15393285Y-25774952D01* +X15440904Y-25584476D01* +X15488523Y-25489238D01* +X15583761Y-25394000D01* +X15726619Y-25346380D01* +X15821857Y-25346380D01* +X15964714Y-25394000D01* +X16012333Y-25441619D01* +X16869476Y-25679714D02* +X16869476Y-26346380D01* +X16631380Y-25298761D02* +X16393285Y-26013047D01* +X17012333Y-26013047D01* +X24527380Y-25353904D02* +X25336904Y-25353904D01* +X25432142Y-25306285D01* +X25479761Y-25258666D01* +X25527380Y-25163428D01* +X25527380Y-24972952D01* +X25479761Y-24877714D01* +X25432142Y-24830095D01* +X25336904Y-24782476D01* +X24527380Y-24782476D01* +X24527380Y-23877714D02* +X24527380Y-24068190D01* +X24575000Y-24163428D01* +X24622619Y-24211047D01* +X24765476Y-24306285D01* +X24955952Y-24353904D01* +X25336904Y-24353904D01* +X25432142Y-24306285D01* +X25479761Y-24258666D01* +X25527380Y-24163428D01* +X25527380Y-23972952D01* +X25479761Y-23877714D01* +X25432142Y-23830095D01* +X25336904Y-23782476D01* +X25098809Y-23782476D01* +X25003571Y-23830095D01* +X24955952Y-23877714D01* +X24908333Y-23972952D01* +X24908333Y-24163428D01* +X24955952Y-24258666D01* +X25003571Y-24306285D01* +X25098809Y-24353904D01* +X34377333Y-12662142D02* +X34329714Y-12709761D01* +X34186857Y-12757380D01* +X34091619Y-12757380D01* +X33948761Y-12709761D01* +X33853523Y-12614523D01* +X33805904Y-12519285D01* +X33758285Y-12328809D01* +X33758285Y-12185952D01* +X33805904Y-11995476D01* +X33853523Y-11900238D01* +X33948761Y-11805000D01* +X34091619Y-11757380D01* +X34186857Y-11757380D01* +X34329714Y-11805000D01* +X34377333Y-11852619D01* +X35234476Y-11757380D02* +X35044000Y-11757380D01* +X34948761Y-11805000D01* +X34901142Y-11852619D01* +X34805904Y-11995476D01* +X34758285Y-12185952D01* +X34758285Y-12566904D01* +X34805904Y-12662142D01* +X34853523Y-12709761D01* +X34948761Y-12757380D01* +X35139238Y-12757380D01* +X35234476Y-12709761D01* +X35282095Y-12662142D01* +X35329714Y-12566904D01* +X35329714Y-12328809D01* +X35282095Y-12233571D01* +X35234476Y-12185952D01* +X35139238Y-12138333D01* +X34948761Y-12138333D01* +X34853523Y-12185952D01* +X34805904Y-12233571D01* +X34758285Y-12328809D01* +X30949595Y-36117380D02* +X30949595Y-36926904D01* +X30997214Y-37022142D01* +X31044833Y-37069761D01* +X31140071Y-37117380D01* +X31330547Y-37117380D01* +X31425785Y-37069761D01* +X31473404Y-37022142D01* +X31521023Y-36926904D01* +X31521023Y-36117380D01* +X31949595Y-36212619D02* +X31997214Y-36165000D01* +X32092452Y-36117380D01* +X32330547Y-36117380D01* +X32425785Y-36165000D01* +X32473404Y-36212619D01* +X32521023Y-36307857D01* +X32521023Y-36403095D01* +X32473404Y-36545952D01* +X31901976Y-37117380D01* +X32521023Y-37117380D01* +X15894380Y-34756904D02* +X16703904Y-34756904D01* +X16799142Y-34709285D01* +X16846761Y-34661666D01* +X16894380Y-34566428D01* +X16894380Y-34375952D01* +X16846761Y-34280714D01* +X16799142Y-34233095D01* +X16703904Y-34185476D01* +X15894380Y-34185476D01* +X16894380Y-33185476D02* +X16894380Y-33756904D01* +X16894380Y-33471190D02* +X15894380Y-33471190D01* +X16037238Y-33566428D01* +X16132476Y-33661666D01* +X16180095Y-33756904D01* +X22096833Y-26251142D02* +X22049214Y-26298761D01* +X21906357Y-26346380D01* +X21811119Y-26346380D01* +X21668261Y-26298761D01* +X21573023Y-26203523D01* +X21525404Y-26108285D01* +X21477785Y-25917809D01* +X21477785Y-25774952D01* +X21525404Y-25584476D01* +X21573023Y-25489238D01* +X21668261Y-25394000D01* +X21811119Y-25346380D01* +X21906357Y-25346380D01* +X22049214Y-25394000D01* +X22096833Y-25441619D01* +X23001595Y-25346380D02* +X22525404Y-25346380D01* +X22477785Y-25822571D01* +X22525404Y-25774952D01* +X22620642Y-25727333D01* +X22858738Y-25727333D01* +X22953976Y-25774952D01* +X23001595Y-25822571D01* +X23049214Y-25917809D01* +X23049214Y-26155904D01* +X23001595Y-26251142D01* +X22953976Y-26298761D01* +X22858738Y-26346380D01* +X22620642Y-26346380D01* +X22525404Y-26298761D01* +X22477785Y-26251142D01* +X35123333Y-34360380D02* +X34790000Y-33884190D01* +X34551904Y-34360380D02* +X34551904Y-33360380D01* +X34932857Y-33360380D01* +X35028095Y-33408000D01* +X35075714Y-33455619D01* +X35123333Y-33550857D01* +X35123333Y-33693714D01* +X35075714Y-33788952D01* +X35028095Y-33836571D01* +X34932857Y-33884190D01* +X34551904Y-33884190D01* +X35504285Y-33455619D02* +X35551904Y-33408000D01* +X35647142Y-33360380D01* +X35885238Y-33360380D01* +X35980476Y-33408000D01* +X36028095Y-33455619D01* +X36075714Y-33550857D01* +X36075714Y-33646095D01* +X36028095Y-33788952D01* +X35456666Y-34360380D01* +X36075714Y-34360380D01* +X19515904Y-43968380D02* +X19515904Y-42968380D01* +X19754000Y-42968380D01* +X19896857Y-43016000D01* +X19992095Y-43111238D01* +X20039714Y-43206476D01* +X20087333Y-43396952D01* +X20087333Y-43539809D01* +X20039714Y-43730285D01* +X19992095Y-43825523D01* +X19896857Y-43920761D01* +X19754000Y-43968380D01* +X19515904Y-43968380D01* +X20944476Y-43301714D02* +X20944476Y-43968380D01* +X20706380Y-42920761D02* +X20468285Y-43635047D01* +X21087333Y-43635047D01* +X15034666Y-55789380D02* +X15034666Y-56503666D01* +X14987047Y-56646523D01* +X14891809Y-56741761D01* +X14748952Y-56789380D01* +X14653714Y-56789380D01* +X16034666Y-56789380D02* +X15463238Y-56789380D01* +X15748952Y-56789380D02* +X15748952Y-55789380D01* +X15653714Y-55932238D01* +X15558476Y-56027476D01* +X15463238Y-56075095D01* +X22850142Y-40171666D02* +X22897761Y-40219285D01* +X22945380Y-40362142D01* +X22945380Y-40457380D01* +X22897761Y-40600238D01* +X22802523Y-40695476D01* +X22707285Y-40743095D01* +X22516809Y-40790714D01* +X22373952Y-40790714D01* +X22183476Y-40743095D01* +X22088238Y-40695476D01* +X21993000Y-40600238D01* +X21945380Y-40457380D01* +X21945380Y-40362142D01* +X21993000Y-40219285D01* +X22040619Y-40171666D01* +X22945380Y-39219285D02* +X22945380Y-39790714D01* +X22945380Y-39505000D02* +X21945380Y-39505000D01* +X22088238Y-39600238D01* +X22183476Y-39695476D01* +X22231095Y-39790714D01* +X37894833Y-50282142D02* +X37847214Y-50329761D01* +X37704357Y-50377380D01* +X37609119Y-50377380D01* +X37466261Y-50329761D01* +X37371023Y-50234523D01* +X37323404Y-50139285D01* +X37275785Y-49948809D01* +X37275785Y-49805952D01* +X37323404Y-49615476D01* +X37371023Y-49520238D01* +X37466261Y-49425000D01* +X37609119Y-49377380D01* +X37704357Y-49377380D01* +X37847214Y-49425000D01* +X37894833Y-49472619D01* +X38228166Y-49377380D02* +X38847214Y-49377380D01* +X38513880Y-49758333D01* +X38656738Y-49758333D01* +X38751976Y-49805952D01* +X38799595Y-49853571D01* +X38847214Y-49948809D01* +X38847214Y-50186904D01* +X38799595Y-50282142D01* +X38751976Y-50329761D01* +X38656738Y-50377380D01* +X38371023Y-50377380D01* +X38275785Y-50329761D01* +X38228166Y-50282142D01* +X30950142Y-27052166D02* +X30997761Y-27099785D01* +X31045380Y-27242642D01* +X31045380Y-27337880D01* +X30997761Y-27480738D01* +X30902523Y-27575976D01* +X30807285Y-27623595D01* +X30616809Y-27671214D01* +X30473952Y-27671214D01* +X30283476Y-27623595D01* +X30188238Y-27575976D01* +X30093000Y-27480738D01* +X30045380Y-27337880D01* +X30045380Y-27242642D01* +X30093000Y-27099785D01* +X30140619Y-27052166D01* +X30045380Y-26718833D02* +X30045380Y-26052166D01* +X31045380Y-26480738D01* +X11888880Y-22986904D02* +X12698404Y-22986904D01* +X12793642Y-22939285D01* +X12841261Y-22891666D01* +X12888880Y-22796428D01* +X12888880Y-22605952D01* +X12841261Y-22510714D01* +X12793642Y-22463095D01* +X12698404Y-22415476D01* +X11888880Y-22415476D01* +X12222214Y-21510714D02* +X12888880Y-21510714D01* +X11841261Y-21748809D02* +X12555547Y-21986904D01* +X12555547Y-21367857D01* +X26351095Y-28027380D02* +X26351095Y-28836904D01* +X26398714Y-28932142D01* +X26446333Y-28979761D01* +X26541571Y-29027380D01* +X26732047Y-29027380D01* +X26827285Y-28979761D01* +X26874904Y-28932142D01* +X26922523Y-28836904D01* +X26922523Y-28027380D01* +X27303476Y-28027380D02* +X27922523Y-28027380D01* +X27589190Y-28408333D01* +X27732047Y-28408333D01* +X27827285Y-28455952D01* +X27874904Y-28503571D01* +X27922523Y-28598809D01* +X27922523Y-28836904D01* +X27874904Y-28932142D01* +X27827285Y-28979761D01* +X27732047Y-29027380D01* +X27446333Y-29027380D01* +X27351095Y-28979761D01* +X27303476Y-28932142D01* +X27630333Y-34997380D02* +X27297000Y-34521190D01* +X27058904Y-34997380D02* +X27058904Y-33997380D01* +X27439857Y-33997380D01* +X27535095Y-34045000D01* +X27582714Y-34092619D01* +X27630333Y-34187857D01* +X27630333Y-34330714D01* +X27582714Y-34425952D01* +X27535095Y-34473571D01* +X27439857Y-34521190D01* +X27058904Y-34521190D01* +X28582714Y-34997380D02* +X28011285Y-34997380D01* +X28297000Y-34997380D02* +X28297000Y-33997380D01* +X28201761Y-34140238D01* +X28106523Y-34235476D01* +X28011285Y-34283095D01* +X13424142Y-33479166D02* +X13471761Y-33526785D01* +X13519380Y-33669642D01* +X13519380Y-33764880D01* +X13471761Y-33907738D01* +X13376523Y-34002976D01* +X13281285Y-34050595D01* +X13090809Y-34098214D01* +X12947952Y-34098214D01* +X12757476Y-34050595D01* +X12662238Y-34002976D01* +X12567000Y-33907738D01* +X12519380Y-33764880D01* +X12519380Y-33669642D01* +X12567000Y-33526785D01* +X12614619Y-33479166D01* +X12614619Y-33098214D02* +X12567000Y-33050595D01* +X12519380Y-32955357D01* +X12519380Y-32717261D01* +X12567000Y-32622023D01* +X12614619Y-32574404D01* +X12709857Y-32526785D01* +X12805095Y-32526785D01* +X12947952Y-32574404D01* +X13519380Y-33145833D01* +X13519380Y-32526785D01* +X27726976Y-12302380D02* +X27726976Y-13016666D01* +X27679357Y-13159523D01* +X27584119Y-13254761D01* +X27441261Y-13302380D01* +X27346023Y-13302380D01* +X28726976Y-13302380D02* +X28155547Y-13302380D01* +X28441261Y-13302380D02* +X28441261Y-12302380D01* +X28346023Y-12445238D01* +X28250785Y-12540476D01* +X28155547Y-12588095D01* +X29346023Y-12302380D02* +X29441261Y-12302380D01* +X29536500Y-12350000D01* +X29584119Y-12397619D01* +X29631738Y-12492857D01* +X29679357Y-12683333D01* +X29679357Y-12921428D01* +X29631738Y-13111904D01* +X29584119Y-13207142D01* +X29536500Y-13254761D01* +X29441261Y-13302380D01* +X29346023Y-13302380D01* +X29250785Y-13254761D01* +X29203166Y-13207142D01* +X29155547Y-13111904D01* +X29107928Y-12921428D01* +X29107928Y-12683333D01* +X29155547Y-12492857D01* +X29203166Y-12397619D01* +X29250785Y-12350000D01* +X29346023Y-12302380D01* +X17493180Y-53288333D02* +X18207466Y-53288333D01* +X18350323Y-53335952D01* +X18445561Y-53431190D01* +X18493180Y-53574047D01* +X18493180Y-53669285D01* +X17588419Y-52859761D02* +X17540800Y-52812142D01* +X17493180Y-52716904D01* +X17493180Y-52478809D01* +X17540800Y-52383571D01* +X17588419Y-52335952D01* +X17683657Y-52288333D01* +X17778895Y-52288333D01* +X17921752Y-52335952D01* +X18493180Y-52907380D01* +X18493180Y-52288333D01* +X18912380Y-40312095D02* +X17912380Y-40312095D01* +X17912380Y-40074000D01* +X17960000Y-39931142D01* +X18055238Y-39835904D01* +X18150476Y-39788285D01* +X18340952Y-39740666D01* +X18483809Y-39740666D01* +X18674285Y-39788285D01* +X18769523Y-39835904D01* +X18864761Y-39931142D01* +X18912380Y-40074000D01* +X18912380Y-40312095D01* +X18912380Y-38788285D02* +X18912380Y-39359714D01* +X18912380Y-39074000D02* +X17912380Y-39074000D01* +X18055238Y-39169238D01* +X18150476Y-39264476D01* +X18198095Y-39359714D01* +X16138166Y-12302380D02* +X16138166Y-13016666D01* +X16090547Y-13159523D01* +X15995309Y-13254761D01* +X15852452Y-13302380D01* +X15757214Y-13302380D01* +X16757214Y-12730952D02* +X16661976Y-12683333D01* +X16614357Y-12635714D01* +X16566738Y-12540476D01* +X16566738Y-12492857D01* +X16614357Y-12397619D01* +X16661976Y-12350000D01* +X16757214Y-12302380D01* +X16947690Y-12302380D01* +X17042928Y-12350000D01* +X17090547Y-12397619D01* +X17138166Y-12492857D01* +X17138166Y-12540476D01* +X17090547Y-12635714D01* +X17042928Y-12683333D01* +X16947690Y-12730952D01* +X16757214Y-12730952D01* +X16661976Y-12778571D01* +X16614357Y-12826190D01* +X16566738Y-12921428D01* +X16566738Y-13111904D01* +X16614357Y-13207142D01* +X16661976Y-13254761D01* +X16757214Y-13302380D01* +X16947690Y-13302380D01* +X17042928Y-13254761D01* +X17090547Y-13207142D01* +X17138166Y-13111904D01* +X17138166Y-12921428D01* +X17090547Y-12826190D01* +X17042928Y-12778571D01* +X16947690Y-12730952D01* +X15991380Y-40312095D02* +X14991380Y-40312095D01* +X14991380Y-40074000D01* +X15039000Y-39931142D01* +X15134238Y-39835904D01* +X15229476Y-39788285D01* +X15419952Y-39740666D01* +X15562809Y-39740666D01* +X15753285Y-39788285D01* +X15848523Y-39835904D01* +X15943761Y-39931142D01* +X15991380Y-40074000D01* +X15991380Y-40312095D01* +X14991380Y-39407333D02* +X14991380Y-38788285D01* +X15372333Y-39121619D01* +X15372333Y-38978761D01* +X15419952Y-38883523D01* +X15467571Y-38835904D01* +X15562809Y-38788285D01* +X15800904Y-38788285D01* +X15896142Y-38835904D01* +X15943761Y-38883523D01* +X15991380Y-38978761D01* +X15991380Y-39264476D01* +X15943761Y-39359714D01* +X15896142Y-39407333D01* +X34694904Y-15986380D02* +X34694904Y-14986380D01* +X34933000Y-14986380D01* +X35075857Y-15034000D01* +X35171095Y-15129238D01* +X35218714Y-15224476D01* +X35266333Y-15414952D01* +X35266333Y-15557809D01* +X35218714Y-15748285D01* +X35171095Y-15843523D01* +X35075857Y-15938761D01* +X34933000Y-15986380D01* +X34694904Y-15986380D01* +X36171095Y-14986380D02* +X35694904Y-14986380D01* +X35647285Y-15462571D01* +X35694904Y-15414952D01* +X35790142Y-15367333D01* +X36028238Y-15367333D01* +X36123476Y-15414952D01* +X36171095Y-15462571D01* +X36218714Y-15557809D01* +X36218714Y-15795904D01* +X36171095Y-15891142D01* +X36123476Y-15938761D01* +X36028238Y-15986380D01* +X35790142Y-15986380D01* +X35694904Y-15938761D01* +X35647285Y-15891142D01* +X19547904Y-46635380D02* +X19547904Y-45635380D01* +X19786000Y-45635380D01* +X19928857Y-45683000D01* +X20024095Y-45778238D01* +X20071714Y-45873476D01* +X20119333Y-46063952D01* +X20119333Y-46206809D01* +X20071714Y-46397285D01* +X20024095Y-46492523D01* +X19928857Y-46587761D01* +X19786000Y-46635380D01* +X19547904Y-46635380D01* +X20500285Y-45730619D02* +X20547904Y-45683000D01* +X20643142Y-45635380D01* +X20881238Y-45635380D01* +X20976476Y-45683000D01* +X21024095Y-45730619D01* +X21071714Y-45825857D01* +X21071714Y-45921095D01* +X21024095Y-46063952D01* +X20452666Y-46635380D01* +X21071714Y-46635380D01* +X17896380Y-22986904D02* +X18705904Y-22986904D01* +X18801142Y-22939285D01* +X18848761Y-22891666D01* +X18896380Y-22796428D01* +X18896380Y-22605952D01* +X18848761Y-22510714D01* +X18801142Y-22463095D01* +X18705904Y-22415476D01* +X17896380Y-22415476D01* +X17896380Y-21463095D02* +X17896380Y-21939285D01* +X18372571Y-21986904D01* +X18324952Y-21939285D01* +X18277333Y-21844047D01* +X18277333Y-21605952D01* +X18324952Y-21510714D01* +X18372571Y-21463095D01* +X18467809Y-21415476D01* +X18705904Y-21415476D01* +X18801142Y-21463095D01* +X18848761Y-21510714D01* +X18896380Y-21605952D01* +X18896380Y-21844047D01* +X18848761Y-21939285D01* +X18801142Y-21986904D01* +X22145666Y-12302380D02* +X22145666Y-13016666D01* +X22098047Y-13159523D01* +X22002809Y-13254761D01* +X21859952Y-13302380D01* +X21764714Y-13302380D01* +X22669476Y-13302380D02* +X22859952Y-13302380D01* +X22955190Y-13254761D01* +X23002809Y-13207142D01* +X23098047Y-13064285D01* +X23145666Y-12873809D01* +X23145666Y-12492857D01* +X23098047Y-12397619D01* +X23050428Y-12350000D01* +X22955190Y-12302380D01* +X22764714Y-12302380D01* +X22669476Y-12350000D01* +X22621857Y-12397619D01* +X22574238Y-12492857D01* +X22574238Y-12730952D01* +X22621857Y-12826190D01* +X22669476Y-12873809D01* +X22764714Y-12921428D01* +X22955190Y-12921428D01* +X23050428Y-12873809D01* +X23098047Y-12826190D01* +X23145666Y-12730952D01* +X20798190Y-37246190D02* +X21274380Y-37246190D01* +X20274380Y-37579523D02* +X20798190Y-37246190D01* +X20274380Y-36912857D01* +X21274380Y-36055714D02* +X21274380Y-36627142D01* +X21274380Y-36341428D02* +X20274380Y-36341428D01* +X20417238Y-36436666D01* +X20512476Y-36531904D01* +X20560095Y-36627142D01* +X43989666Y-54360380D02* +X43989666Y-55074666D01* +X43942047Y-55217523D01* +X43846809Y-55312761D01* +X43703952Y-55360380D01* +X43608714Y-55360380D01* +X44894428Y-54693714D02* +X44894428Y-55360380D01* +X44656333Y-54312761D02* +X44418238Y-55027047D01* +X45037285Y-55027047D01* +D11* +X35968400Y-54285000D02* +X35968400Y-55805000D01* +X40028400Y-51625000D02* +X40598400Y-51625000D01* +X37488400Y-54285000D02* +X40598400Y-54285000D01* +X35398400Y-54285000D02* +X35968400Y-54285000D01* +X35398400Y-51625000D02* +X38508400Y-51625000D01* +X35398400Y-54285000D02* +X35398400Y-51625000D01* +X40598400Y-54285000D02* +X40598400Y-51625000D01* +X35517064Y-33428000D02* +X35062936Y-33428000D01* +X35517064Y-34898000D02* +X35062936Y-34898000D01* +X15467748Y-29554000D02* +X16890252Y-29554000D01* +X15467748Y-26834000D02* +X16890252Y-26834000D01* +X30935000Y-23232000D02* +X30935000Y-25952000D01* +X26215000Y-23232000D02* +X27525000Y-23232000D01* +X26445000Y-27092000D02* +X26445000Y-25952000D01* +X30935000Y-25952000D02* +X30705000Y-25952000D01* +X26215000Y-25952000D02* +X26215000Y-23232000D01* +X26215000Y-25952000D02* +X26445000Y-25952000D01* +X29625000Y-23232000D02* +X30935000Y-23232000D01* +X33832748Y-15965000D02* +X35255252Y-15965000D01* +X33832748Y-13245000D02* +X35255252Y-13245000D01* +X28401500Y-38935000D02* +X28101500Y-38935000D01* +X35321500Y-38935000D02* +X35321500Y-39235000D01* +X35021500Y-38935000D02* +X35321500Y-38935000D01* +X28101500Y-38935000D02* +X28101500Y-39235000D01* +X35321500Y-46155000D02* +X35321500Y-45855000D01* +X28101500Y-46155000D02* +X28101500Y-45855000D01* +X35021500Y-46155000D02* +X35321500Y-46155000D01* +X28101500Y-39235000D02* +X26786500Y-39235000D01* +X28401500Y-46155000D02* +X28101500Y-46155000D01* +D10* +X17367000Y-32320000D02* +X17667000Y-32320000D01* +X20717000Y-35670000D02* +X20417000Y-35670000D01* +X17367000Y-35670000D02* +X17592000Y-35670000D01* +X17592000Y-35670000D02* +X17592000Y-36895000D01* +X20717000Y-32320000D02* +X20417000Y-32320000D01* +X17367000Y-35670000D02* +X17367000Y-32320000D01* +X20717000Y-35670000D02* +X20717000Y-32320000D01* +D11* +X21552248Y-29554000D02* +X22974752Y-29554000D01* +X21552248Y-26834000D02* +X22974752Y-26834000D01* +X35517064Y-31523000D02* +X35062936Y-31523000D01* +X35517064Y-32993000D02* +X35062936Y-32993000D01* +X21034000Y-45966000D02* +X21034000Y-46626000D01* +X21034000Y-44306000D02* +X21034000Y-44966000D01* +X21034000Y-44306000D02* +X19004000Y-44306000D01* +X19624000Y-46626000D02* +X21034000Y-46626000D01* +X17908000Y-54227000D02* +X16698000Y-54227000D01* +X14038000Y-45087000D02* +X14038000Y-41877000D01* +X16698000Y-54897000D02* +X16698000Y-54227000D01* +X16698000Y-42547000D02* +X16698000Y-41877000D01* +X16698000Y-54897000D02* +X14038000Y-54897000D01* +X16698000Y-47627000D02* +X16698000Y-44067000D01* +X16698000Y-52707000D02* +X16698000Y-49147000D01* +X14038000Y-50167000D02* +X14038000Y-46607000D01* +X14038000Y-54897000D02* +X14038000Y-51687000D01* +X16698000Y-41877000D02* +X14038000Y-41877000D01* +X18833000Y-39293748D02* +X18833000Y-40716252D01* +X21553000Y-39293748D02* +X21553000Y-40716252D01* +X38772752Y-48985000D02* +X37350248Y-48985000D01* +X38772752Y-46265000D02* +X37350248Y-46265000D01* +X34253000Y-27596752D02* +X34253000Y-26174248D01* +X31533000Y-27596752D02* +X31533000Y-26174248D01* +X13276500Y-22225000D02* +X13276500Y-25675000D01* +X13276500Y-22225000D02* +X13276500Y-20275000D01* +X18396500Y-22225000D02* +X18396500Y-24175000D01* +X18396500Y-22225000D02* +X18396500Y-20275000D01* +X29653000Y-34945000D02* +X31603000Y-34945000D01* +X29653000Y-34945000D02* +X27703000Y-34945000D01* +X29653000Y-29825000D02* +X31603000Y-29825000D01* +X29653000Y-29825000D02* +X26203000Y-29825000D01* +X27569936Y-36930000D02* +X28024064Y-36930000D01* +X27569936Y-35460000D02* +X28024064Y-35460000D01* +X16727000Y-34023752D02* +X16727000Y-32601248D01* +X14007000Y-34023752D02* +X14007000Y-32601248D01* +X26336500Y-17948000D02* +X26336500Y-13548000D01* +X30736500Y-17948000D02* +X26336500Y-17948000D01* +X30736500Y-13548000D02* +X30736500Y-17948000D01* +X26336500Y-13548000D02* +X30736500Y-13548000D01* +X26210800Y-54285000D02* +X29770800Y-54285000D01* +X31290800Y-54285000D02* +X34400800Y-54285000D01* +X28750800Y-51625000D02* +X32310800Y-51625000D01* +X19040800Y-54285000D02* +X19040800Y-51625000D01* +X34400800Y-54285000D02* +X34400800Y-51625000D01* +X21130800Y-54285000D02* +X24690800Y-54285000D01* +X33830800Y-51625000D02* +X34400800Y-51625000D01* +X19040800Y-54285000D02* +X19610800Y-54285000D01* +X19040800Y-51625000D02* +X22150800Y-51625000D01* +X23670800Y-51625000D02* +X27230800Y-51625000D01* +X19610800Y-54285000D02* +X19610800Y-55805000D01* +X17670000Y-40354000D02* +X17670000Y-38324000D01* +X16010000Y-40354000D02* +X15350000Y-40354000D01* +X17670000Y-40354000D02* +X17010000Y-40354000D01* +X15350000Y-38944000D02* +X15350000Y-40354000D01* +X18671500Y-13548000D02* +X18671500Y-17948000D01* +X14271500Y-17948000D02* +X14271500Y-13548000D01* +X18671500Y-17948000D02* +X14271500Y-17948000D01* +X14271500Y-13548000D02* +X18671500Y-13548000D01* +X12429000Y-38944000D02* +X12429000Y-40354000D01* +X14749000Y-40354000D02* +X14089000Y-40354000D01* +X14749000Y-40354000D02* +X14749000Y-38324000D01* +X13089000Y-40354000D02* +X12429000Y-40354000D01* +X32133000Y-16534000D02* +X32133000Y-19534000D01* +X32133000Y-19534000D02* +X37833000Y-19534000D01* +X37833000Y-16534000D02* +X32133000Y-16534000D01* +X19656000Y-49293000D02* +X21066000Y-49293000D01* +X21066000Y-48633000D02* +X21066000Y-49293000D01* +X21066000Y-46973000D02* +X21066000Y-47633000D01* +X21066000Y-46973000D02* +X19036000Y-46973000D01* +X24404000Y-22225000D02* +X24404000Y-20275000D01* +X19284000Y-22225000D02* +X19284000Y-20275000D01* +X19284000Y-22225000D02* +X19284000Y-25675000D01* +X24404000Y-22225000D02* +X24404000Y-24175000D01* +X24679000Y-13548000D02* +X24679000Y-17948000D01* +X24679000Y-17948000D02* +X20279000Y-17948000D01* +X20279000Y-13548000D02* +X24679000Y-13548000D01* +X20279000Y-17948000D02* +X20279000Y-13548000D01* +X21822000Y-41320000D02* +X25422000Y-41320000D01* +X25422000Y-41320000D02* +X25422000Y-34070000D01* +X21822000Y-34070000D02* +X21822000Y-41320000D01* +X45653000Y-53908000D02* +X42993000Y-53908000D01* +X42993000Y-44198000D02* +X42993000Y-40638000D01* +X42993000Y-53908000D02* +X42993000Y-50798000D01* +X45653000Y-31498000D02* +X45653000Y-27938000D01* +X42993000Y-28958000D02* +X42993000Y-25398000D01* +X45653000Y-46738000D02* +X45653000Y-43178000D01* +X45653000Y-21338000D02* +X45653000Y-17778000D01* +X45653000Y-51818000D02* +X45653000Y-48258000D01* +X42993000Y-16258000D02* +X42993000Y-15688000D01* +X45653000Y-53908000D02* +X45653000Y-53338000D01* +X42993000Y-34038000D02* +X42993000Y-30478000D01* +X45653000Y-15688000D02* +X42993000Y-15688000D01* +X42993000Y-18798000D02* +X42993000Y-15688000D01* +X45653000Y-41658000D02* +X45653000Y-38098000D01* +X42993000Y-39118000D02* +X42993000Y-35558000D01* +X45653000Y-26418000D02* +X45653000Y-22858000D01* +X42993000Y-23878000D02* +X42993000Y-20318000D01* +X45653000Y-53338000D02* +X47173000Y-53338000D01* +X45653000Y-36578000D02* +X45653000Y-33018000D01* +X42993000Y-49278000D02* +X42993000Y-45718000D01* +%LPC*% +D12* +X36728400Y-54610000D03* +X39268400Y-51300000D03* +D13* +X36290000Y-34163000D03* +X34290000Y-34163000D03* +D14* +X14616500Y-28194000D03* +X17741500Y-28194000D03* +D15* +X27075000Y-26542000D03* +D16* +X28575000Y-26454500D03* +D15* +X30075000Y-26542000D03* +D14* +X32981500Y-14605000D03* +X36106500Y-14605000D03* +D17* +X27536500Y-39745000D03* +X27536500Y-40545000D03* +X27536500Y-41345000D03* +X27536500Y-42145000D03* +X27536500Y-42945000D03* +X27536500Y-43745000D03* +X27536500Y-44545000D03* +X27536500Y-45345000D03* +D18* +X28911500Y-46720000D03* +X29711500Y-46720000D03* +X30511500Y-46720000D03* +X31311500Y-46720000D03* +X32111500Y-46720000D03* +X32911500Y-46720000D03* +X33711500Y-46720000D03* +X34511500Y-46720000D03* +D17* +X35886500Y-45345000D03* +X35886500Y-44545000D03* +X35886500Y-43745000D03* +X35886500Y-42945000D03* +X35886500Y-42145000D03* +X35886500Y-41345000D03* +X35886500Y-40545000D03* +X35886500Y-39745000D03* +D18* +X34511500Y-38370000D03* +X33711500Y-38370000D03* +X32911500Y-38370000D03* +X32111500Y-38370000D03* +X31311500Y-38370000D03* +X30511500Y-38370000D03* +X29711500Y-38370000D03* +X28911500Y-38370000D03* +D19* +X18042000Y-36195000D03* +X18542000Y-36195000D03* +X19042000Y-36195000D03* +X19542000Y-36195000D03* +X20042000Y-36195000D03* +X20042000Y-31795000D03* +X19542000Y-31795000D03* +X19042000Y-31795000D03* +X18542000Y-31795000D03* +X18042000Y-31795000D03* +D14* +X20701000Y-28194000D03* +X23826000Y-28194000D03* +D13* +X36290000Y-32258000D03* +X34290000Y-32258000D03* +D20* +X19304000Y-44816000D03* +X19304000Y-46116000D03* +X21304000Y-45466000D03* +D21* +X17018000Y-53467000D03* +X13718000Y-50927000D03* +X17018000Y-48387000D03* +X13718000Y-45847000D03* +X17018000Y-43307000D03* +D22* +X20193000Y-38442500D03* +X20193000Y-41567500D03* +D23* +X39624000Y-47625000D03* +X36499000Y-47625000D03* +D24* +X32893000Y-28448000D03* +X32893000Y-25323000D03* +D25* +X13931500Y-24700000D03* +X15201500Y-24700000D03* +X16471500Y-24700000D03* +X17741500Y-24700000D03* +X17741500Y-19750000D03* +X16471500Y-19750000D03* +X15201500Y-19750000D03* +X13931500Y-19750000D03* +D26* +X27178000Y-30480000D03* +X27178000Y-31750000D03* +X27178000Y-33020000D03* +X27178000Y-34290000D03* +X32128000Y-34290000D03* +X32128000Y-33020000D03* +X32128000Y-31750000D03* +X32128000Y-30480000D03* +D27* +X26797000Y-36195000D03* +X28797000Y-36195000D03* +D24* +X15367000Y-34875000D03* +X15367000Y-31750000D03* +D28* +X28536500Y-15748000D03* +D12* +X20370800Y-54610000D03* +X22910800Y-51300000D03* +X25450800Y-54610000D03* +X27990800Y-51300000D03* +X30530800Y-54610000D03* +X33070800Y-51300000D03* +D29* +X17160000Y-38624000D03* +X15860000Y-38624000D03* +X16510000Y-40624000D03* +D28* +X16471500Y-15748000D03* +D29* +X14239000Y-38624000D03* +X12939000Y-38624000D03* +X13589000Y-40624000D03* +D30* +X33033000Y-18034000D03* +X37833000Y-18034000D03* +D20* +X19336000Y-47483000D03* +X19336000Y-48783000D03* +X21336000Y-48133000D03* +D25* +X19939000Y-24700000D03* +X21209000Y-24700000D03* +X22479000Y-24700000D03* +X23749000Y-24700000D03* +X23749000Y-19750000D03* +X22479000Y-19750000D03* +X21209000Y-19750000D03* +X19939000Y-19750000D03* +D28* +X22479000Y-15748000D03* +D31* +X23622000Y-39370000D03* +X23622000Y-34170000D03* +D32* +X45978000Y-52578000D03* +X42668000Y-50038000D03* +X45978000Y-47498000D03* +X42668000Y-44958000D03* +X45978000Y-42418000D03* +X42668000Y-39878000D03* +X45978000Y-37338000D03* +X42668000Y-34798000D03* +X45978000Y-32258000D03* +X42668000Y-29718000D03* +X45978000Y-27178000D03* +X42668000Y-24638000D03* +X45978000Y-22098000D03* +X42668000Y-19558000D03* +X45978000Y-17018000D03* +M02* diff --git a/squeow_hw/jlcpcb/squeow-NPTH-drl_map.gbr b/squeow_hw/jlcpcb/squeow-NPTH-drl_map.gbr new file mode 100644 index 0000000..49b2176 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-NPTH-drl_map.gbr @@ -0,0 +1,110 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3*% +%TF.CreationDate,2022-10-05T14:52:24+02:00*% +%TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?*% +%TF.SameCoordinates,Original*% +%TF.FileFunction,Drillmap*% +%TF.FilePolarity,Positive*% +%FSLAX45Y45*% +G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:52:24* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +%ADD10C,0.150000*% +%ADD11C,0.200000*% +G04 APERTURE END LIST* +D10* +X1206500Y-1206500D02* +X4826000Y-1206500D01* +X4826000Y-1206500D02* +X4826000Y-5651500D01* +X4826000Y-5651500D02* +X1206500Y-5651500D01* +X1206500Y-5651500D02* +X1206500Y-1206500D01* +D11* +X1456619Y-5969476D02* +X1456619Y-5769476D01* +X1504238Y-5769476D01* +X1532809Y-5779000D01* +X1551857Y-5798048D01* +X1561381Y-5817095D01* +X1570905Y-5855190D01* +X1570905Y-5883762D01* +X1561381Y-5921857D01* +X1551857Y-5940905D01* +X1532809Y-5959952D01* +X1504238Y-5969476D01* +X1456619Y-5969476D01* +X1656619Y-5969476D02* +X1656619Y-5836143D01* +X1656619Y-5874238D02* +X1666143Y-5855190D01* +X1675667Y-5845667D01* +X1694714Y-5836143D01* +X1713762Y-5836143D01* +X1780428Y-5969476D02* +X1780428Y-5836143D01* +X1780428Y-5769476D02* +X1770905Y-5779000D01* +X1780428Y-5788524D01* +X1789952Y-5779000D01* +X1780428Y-5769476D01* +X1780428Y-5788524D01* +X1904238Y-5969476D02* +X1885190Y-5959952D01* +X1875667Y-5940905D01* +X1875667Y-5769476D01* +X2009000Y-5969476D02* +X1989952Y-5959952D01* +X1980428Y-5940905D01* +X1980428Y-5769476D01* +X2237571Y-5969476D02* +X2237571Y-5769476D01* +X2304238Y-5912333D01* +X2370905Y-5769476D01* +X2370905Y-5969476D01* +X2551857Y-5969476D02* +X2551857Y-5864714D01* +X2542333Y-5845667D01* +X2523286Y-5836143D01* +X2485190Y-5836143D01* +X2466143Y-5845667D01* +X2551857Y-5959952D02* +X2532810Y-5969476D01* +X2485190Y-5969476D01* +X2466143Y-5959952D01* +X2456619Y-5940905D01* +X2456619Y-5921857D01* +X2466143Y-5902809D01* +X2485190Y-5893286D01* +X2532810Y-5893286D01* +X2551857Y-5883762D01* +X2647095Y-5836143D02* +X2647095Y-6036143D01* +X2647095Y-5845667D02* +X2666143Y-5836143D01* +X2704238Y-5836143D01* +X2723286Y-5845667D01* +X2732810Y-5855190D01* +X2742333Y-5874238D01* +X2742333Y-5931381D01* +X2732810Y-5950428D01* +X2723286Y-5959952D01* +X2704238Y-5969476D01* +X2666143Y-5969476D01* +X2647095Y-5959952D01* +X2828048Y-5950428D02* +X2837571Y-5959952D01* +X2828048Y-5969476D01* +X2818524Y-5959952D01* +X2828048Y-5950428D01* +X2828048Y-5969476D01* +X2828048Y-5845667D02* +X2837571Y-5855190D01* +X2828048Y-5864714D01* +X2818524Y-5855190D01* +X2828048Y-5845667D01* +X2828048Y-5864714D01* +M02* diff --git a/squeow_hw/jlcpcb/squeow-NPTH.drl b/squeow_hw/jlcpcb/squeow-NPTH.drl new file mode 100644 index 0000000..fce973f --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-NPTH.drl @@ -0,0 +1,13 @@ +M48 +; DRILL file {KiCad 6.0.7+dfsg-3} date mer 5 ott 2022, 14:52:04 +; FORMAT={-:-/ absolute / metric / decimal} +; #@! TF.CreationDate,2022-10-05T14:52:04+02:00 +; #@! TF.GenerationSoftware,Kicad,Pcbnew,6.0.7+dfsg-3 +; #@! TF.FileFunction,NonPlated,1,2,NPTH +FMAT,2 +METRIC +% +G90 +G05 +T0 +M30 diff --git a/squeow_hw/jlcpcb/squeow-PTH-drl_map.gbr b/squeow_hw/jlcpcb/squeow-PTH-drl_map.gbr new file mode 100644 index 0000000..e4b38a7 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-PTH-drl_map.gbr @@ -0,0 +1,481 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,6.0.7+dfsg-3*% +%TF.CreationDate,2022-10-05T14:52:24+02:00*% +%TF.ProjectId,squeow,73717565-6f77-42e6-9b69-6361645f7063,rev?*% +%TF.SameCoordinates,Original*% +%TF.FileFunction,Drillmap*% +%TF.FilePolarity,Positive*% +%FSLAX45Y45*% +G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 6.0.7+dfsg-3) date 2022-10-05 14:52:24* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +%ADD10C,0.150000*% +%ADD11C,0.200000*% +%ADD12C,0.040000*% +G04 APERTURE END LIST* +D10* +X1206500Y-1206500D02* +X4826000Y-1206500D01* +X4826000Y-1206500D02* +X4826000Y-5651500D01* +X4826000Y-5651500D02* +X1206500Y-5651500D01* +X1206500Y-5651500D02* +X1206500Y-1206500D01* +D11* +D12* +X1491300Y-3929700D02* +X1531300Y-3969700D01* +X1531300Y-3929700D02* +X1491300Y-3969700D01* +X1491300Y-5326700D02* +X1531300Y-5366700D01* +X1531300Y-5326700D02* +X1491300Y-5366700D01* +X1742760Y-4546920D02* +X1782760Y-4586920D01* +X1782760Y-4546920D02* +X1742760Y-4586920D01* +X1754150Y-2215200D02* +X1794150Y-2255200D01* +X1794150Y-2215200D02* +X1754150Y-2255200D01* +X1999300Y-4653600D02* +X2039300Y-4693600D01* +X2039300Y-4653600D02* +X1999300Y-4693600D01* +X2354900Y-2215200D02* +X2394900Y-2255200D01* +X2394900Y-2215200D02* +X2354900Y-2255200D01* +X2586040Y-3861120D02* +X2626040Y-3901120D01* +X2626040Y-3861120D02* +X2586040Y-3901120D01* +X2697800Y-3790000D02* +X2737800Y-3830000D01* +X2737800Y-3790000D02* +X2697800Y-3830000D01* +X2850200Y-2824800D02* +X2890200Y-2864800D01* +X2890200Y-2824800D02* +X2850200Y-2864800D01* +X3269300Y-2380300D02* +X3309300Y-2420300D01* +X3309300Y-2380300D02* +X3269300Y-2420300D01* +X3271840Y-4816160D02* +X3311840Y-4856160D01* +X3311840Y-4816160D02* +X3271840Y-4856160D01* +X3434400Y-4816160D02* +X3474400Y-4856160D01* +X3474400Y-4816160D02* +X3434400Y-4856160D01* +X3955100Y-2951800D02* +X3995100Y-2991800D01* +X3995100Y-2951800D02* +X3955100Y-2991800D01* +X4158300Y-2253300D02* +X4198300Y-2293300D01* +X4198300Y-2253300D02* +X4158300Y-2293300D01* +X4171000Y-5441000D02* +X4211000Y-5481000D01* +X4211000Y-5441000D02* +X4171000Y-5481000D01* +X4310700Y-3713800D02* +X4350700Y-3753800D01* +X4350700Y-3713800D02* +X4310700Y-3753800D01* +D11* +X1456619Y-5969476D02* +X1456619Y-5769476D01* +X1504238Y-5769476D01* +X1532809Y-5779000D01* +X1551857Y-5798048D01* +X1561381Y-5817095D01* +X1570905Y-5855190D01* +X1570905Y-5883762D01* +X1561381Y-5921857D01* +X1551857Y-5940905D01* +X1532809Y-5959952D01* +X1504238Y-5969476D01* +X1456619Y-5969476D01* +X1656619Y-5969476D02* +X1656619Y-5836143D01* +X1656619Y-5874238D02* +X1666143Y-5855190D01* +X1675667Y-5845667D01* +X1694714Y-5836143D01* +X1713762Y-5836143D01* +X1780428Y-5969476D02* +X1780428Y-5836143D01* +X1780428Y-5769476D02* +X1770905Y-5779000D01* +X1780428Y-5788524D01* +X1789952Y-5779000D01* +X1780428Y-5769476D01* +X1780428Y-5788524D01* +X1904238Y-5969476D02* +X1885190Y-5959952D01* +X1875667Y-5940905D01* +X1875667Y-5769476D01* +X2009000Y-5969476D02* +X1989952Y-5959952D01* +X1980428Y-5940905D01* +X1980428Y-5769476D01* +X2237571Y-5969476D02* +X2237571Y-5769476D01* +X2304238Y-5912333D01* +X2370905Y-5769476D01* +X2370905Y-5969476D01* +X2551857Y-5969476D02* +X2551857Y-5864714D01* +X2542333Y-5845667D01* +X2523286Y-5836143D01* +X2485190Y-5836143D01* +X2466143Y-5845667D01* +X2551857Y-5959952D02* +X2532810Y-5969476D01* +X2485190Y-5969476D01* +X2466143Y-5959952D01* +X2456619Y-5940905D01* +X2456619Y-5921857D01* +X2466143Y-5902809D01* +X2485190Y-5893286D01* +X2532810Y-5893286D01* +X2551857Y-5883762D01* +X2647095Y-5836143D02* +X2647095Y-6036143D01* +X2647095Y-5845667D02* +X2666143Y-5836143D01* +X2704238Y-5836143D01* +X2723286Y-5845667D01* +X2732810Y-5855190D01* +X2742333Y-5874238D01* +X2742333Y-5931381D01* +X2732810Y-5950428D01* +X2723286Y-5959952D01* +X2704238Y-5969476D01* +X2666143Y-5969476D01* +X2647095Y-5959952D01* +X2828048Y-5950428D02* +X2837571Y-5959952D01* +X2828048Y-5969476D01* +X2818524Y-5959952D01* +X2828048Y-5950428D01* +X2828048Y-5969476D01* +X2828048Y-5845667D02* +X2837571Y-5855190D01* +X2828048Y-5864714D01* +X2818524Y-5855190D01* +X2828048Y-5845667D01* +X2828048Y-5864714D01* +D12* +X1159000Y-6279000D02* +X1199000Y-6319000D01* +X1199000Y-6279000D02* +X1159000Y-6319000D01* +D11* +X1494714Y-6189476D02* +X1513762Y-6189476D01* +X1532809Y-6199000D01* +X1542333Y-6208524D01* +X1551857Y-6227571D01* +X1561381Y-6265667D01* +X1561381Y-6313286D01* +X1551857Y-6351381D01* +X1542333Y-6370428D01* +X1532809Y-6379952D01* +X1513762Y-6389476D01* +X1494714Y-6389476D01* +X1475667Y-6379952D01* +X1466143Y-6370428D01* +X1456619Y-6351381D01* +X1447095Y-6313286D01* +X1447095Y-6265667D01* +X1456619Y-6227571D01* +X1466143Y-6208524D01* +X1475667Y-6199000D01* +X1494714Y-6189476D01* +X1647095Y-6370428D02* +X1656619Y-6379952D01* +X1647095Y-6389476D01* +X1637571Y-6379952D01* +X1647095Y-6370428D01* +X1647095Y-6389476D01* +X1828048Y-6256143D02* +X1828048Y-6389476D01* +X1780428Y-6179952D02* +X1732809Y-6322809D01* +X1856619Y-6322809D01* +X1970905Y-6189476D02* +X1989952Y-6189476D01* +X2009000Y-6199000D01* +X2018524Y-6208524D01* +X2028048Y-6227571D01* +X2037571Y-6265667D01* +X2037571Y-6313286D01* +X2028048Y-6351381D01* +X2018524Y-6370428D01* +X2009000Y-6379952D01* +X1989952Y-6389476D01* +X1970905Y-6389476D01* +X1951857Y-6379952D01* +X1942333Y-6370428D01* +X1932809Y-6351381D01* +X1923286Y-6313286D01* +X1923286Y-6265667D01* +X1932809Y-6227571D01* +X1942333Y-6208524D01* +X1951857Y-6199000D01* +X1970905Y-6189476D01* +X2161381Y-6189476D02* +X2180429Y-6189476D01* +X2199476Y-6199000D01* +X2209000Y-6208524D01* +X2218524Y-6227571D01* +X2228048Y-6265667D01* +X2228048Y-6313286D01* +X2218524Y-6351381D01* +X2209000Y-6370428D01* +X2199476Y-6379952D01* +X2180429Y-6389476D01* +X2161381Y-6389476D01* +X2142333Y-6379952D01* +X2132810Y-6370428D01* +X2123286Y-6351381D01* +X2113762Y-6313286D01* +X2113762Y-6265667D01* +X2123286Y-6227571D01* +X2132810Y-6208524D01* +X2142333Y-6199000D01* +X2161381Y-6189476D01* +X2313762Y-6389476D02* +X2313762Y-6256143D01* +X2313762Y-6275190D02* +X2323286Y-6265667D01* +X2342333Y-6256143D01* +X2370905Y-6256143D01* +X2389952Y-6265667D01* +X2399476Y-6284714D01* +X2399476Y-6389476D01* +X2399476Y-6284714D02* +X2409000Y-6265667D01* +X2428048Y-6256143D01* +X2456619Y-6256143D01* +X2475667Y-6265667D01* +X2485190Y-6284714D01* +X2485190Y-6389476D01* +X2580429Y-6389476D02* +X2580429Y-6256143D01* +X2580429Y-6275190D02* +X2589952Y-6265667D01* +X2609000Y-6256143D01* +X2637571Y-6256143D01* +X2656619Y-6265667D01* +X2666143Y-6284714D01* +X2666143Y-6389476D01* +X2666143Y-6284714D02* +X2675667Y-6265667D01* +X2694714Y-6256143D01* +X2723286Y-6256143D01* +X2742333Y-6265667D01* +X2751857Y-6284714D01* +X2751857Y-6389476D01* +X3142333Y-6179952D02* +X2970905Y-6437095D01* +X3399476Y-6189476D02* +X3418524Y-6189476D01* +X3437571Y-6199000D01* +X3447095Y-6208524D01* +X3456619Y-6227571D01* +X3466143Y-6265667D01* +X3466143Y-6313286D01* +X3456619Y-6351381D01* +X3447095Y-6370428D01* +X3437571Y-6379952D01* +X3418524Y-6389476D01* +X3399476Y-6389476D01* +X3380428Y-6379952D01* +X3370905Y-6370428D01* +X3361381Y-6351381D01* +X3351857Y-6313286D01* +X3351857Y-6265667D01* +X3361381Y-6227571D01* +X3370905Y-6208524D01* +X3380428Y-6199000D01* +X3399476Y-6189476D01* +X3551857Y-6370428D02* +X3561381Y-6379952D01* +X3551857Y-6389476D01* +X3542333Y-6379952D01* +X3551857Y-6370428D01* +X3551857Y-6389476D01* +X3685190Y-6189476D02* +X3704238Y-6189476D01* +X3723286Y-6199000D01* +X3732809Y-6208524D01* +X3742333Y-6227571D01* +X3751857Y-6265667D01* +X3751857Y-6313286D01* +X3742333Y-6351381D01* +X3732809Y-6370428D01* +X3723286Y-6379952D01* +X3704238Y-6389476D01* +X3685190Y-6389476D01* +X3666143Y-6379952D01* +X3656619Y-6370428D01* +X3647095Y-6351381D01* +X3637571Y-6313286D01* +X3637571Y-6265667D01* +X3647095Y-6227571D01* +X3656619Y-6208524D01* +X3666143Y-6199000D01* +X3685190Y-6189476D01* +X3942333Y-6389476D02* +X3828048Y-6389476D01* +X3885190Y-6389476D02* +X3885190Y-6189476D01* +X3866143Y-6218048D01* +X3847095Y-6237095D01* +X3828048Y-6246619D01* +X4123286Y-6189476D02* +X4028048Y-6189476D01* +X4018524Y-6284714D01* +X4028048Y-6275190D01* +X4047095Y-6265667D01* +X4094714Y-6265667D01* +X4113762Y-6275190D01* +X4123286Y-6284714D01* +X4132809Y-6303762D01* +X4132809Y-6351381D01* +X4123286Y-6370428D01* +X4113762Y-6379952D01* +X4094714Y-6389476D01* +X4047095Y-6389476D01* +X4028048Y-6379952D01* +X4018524Y-6370428D01* +X4199476Y-6189476D02* +X4332810Y-6189476D01* +X4247095Y-6389476D01* +X4399476Y-6189476D02* +X4399476Y-6227571D01* +X4475667Y-6189476D02* +X4475667Y-6227571D01* +X4770905Y-6465667D02* +X4761381Y-6456143D01* +X4742333Y-6427571D01* +X4732810Y-6408524D01* +X4723286Y-6379952D01* +X4713762Y-6332333D01* +X4713762Y-6294238D01* +X4723286Y-6246619D01* +X4732810Y-6218048D01* +X4742333Y-6199000D01* +X4761381Y-6170428D01* +X4770905Y-6160905D01* +X4951857Y-6389476D02* +X4837571Y-6389476D01* +X4894714Y-6389476D02* +X4894714Y-6189476D01* +X4875667Y-6218048D01* +X4856619Y-6237095D01* +X4837571Y-6246619D01* +X5123286Y-6189476D02* +X5085190Y-6189476D01* +X5066143Y-6199000D01* +X5056619Y-6208524D01* +X5037571Y-6237095D01* +X5028048Y-6275190D01* +X5028048Y-6351381D01* +X5037571Y-6370428D01* +X5047095Y-6379952D01* +X5066143Y-6389476D01* +X5104238Y-6389476D01* +X5123286Y-6379952D01* +X5132810Y-6370428D01* +X5142333Y-6351381D01* +X5142333Y-6303762D01* +X5132810Y-6284714D01* +X5123286Y-6275190D01* +X5104238Y-6265667D01* +X5066143Y-6265667D01* +X5047095Y-6275190D01* +X5037571Y-6284714D01* +X5028048Y-6303762D01* +X5380429Y-6389476D02* +X5380429Y-6189476D01* +X5466143Y-6389476D02* +X5466143Y-6284714D01* +X5456619Y-6265667D01* +X5437571Y-6256143D01* +X5409000Y-6256143D01* +X5389952Y-6265667D01* +X5380429Y-6275190D01* +X5589952Y-6389476D02* +X5570905Y-6379952D01* +X5561381Y-6370428D01* +X5551857Y-6351381D01* +X5551857Y-6294238D01* +X5561381Y-6275190D01* +X5570905Y-6265667D01* +X5589952Y-6256143D01* +X5618524Y-6256143D01* +X5637571Y-6265667D01* +X5647095Y-6275190D01* +X5656619Y-6294238D01* +X5656619Y-6351381D01* +X5647095Y-6370428D01* +X5637571Y-6379952D01* +X5618524Y-6389476D01* +X5589952Y-6389476D01* +X5770905Y-6389476D02* +X5751857Y-6379952D01* +X5742333Y-6360905D01* +X5742333Y-6189476D01* +X5923286Y-6379952D02* +X5904238Y-6389476D01* +X5866143Y-6389476D01* +X5847095Y-6379952D01* +X5837571Y-6360905D01* +X5837571Y-6284714D01* +X5847095Y-6265667D01* +X5866143Y-6256143D01* +X5904238Y-6256143D01* +X5923286Y-6265667D01* +X5932809Y-6284714D01* +X5932809Y-6303762D01* +X5837571Y-6322809D01* +X6009000Y-6379952D02* +X6028048Y-6389476D01* +X6066143Y-6389476D01* +X6085190Y-6379952D01* +X6094714Y-6360905D01* +X6094714Y-6351381D01* +X6085190Y-6332333D01* +X6066143Y-6322809D01* +X6037571Y-6322809D01* +X6018524Y-6313286D01* +X6009000Y-6294238D01* +X6009000Y-6284714D01* +X6018524Y-6265667D01* +X6037571Y-6256143D01* +X6066143Y-6256143D01* +X6085190Y-6265667D01* +X6161381Y-6465667D02* +X6170905Y-6456143D01* +X6189952Y-6427571D01* +X6199476Y-6408524D01* +X6209000Y-6379952D01* +X6218524Y-6332333D01* +X6218524Y-6294238D01* +X6209000Y-6246619D01* +X6199476Y-6218048D01* +X6189952Y-6199000D01* +X6170905Y-6170428D01* +X6161381Y-6160905D01* +M02* diff --git a/squeow_hw/jlcpcb/squeow-PTH.drl b/squeow_hw/jlcpcb/squeow-PTH.drl new file mode 100644 index 0000000..6a1ace4 --- /dev/null +++ b/squeow_hw/jlcpcb/squeow-PTH.drl @@ -0,0 +1,32 @@ +M48 +; DRILL file {KiCad 6.0.7+dfsg-3} date mer 5 ott 2022, 14:52:04 +; FORMAT={-:-/ absolute / metric / decimal} +; #@! TF.CreationDate,2022-10-05T14:52:04+02:00 +; #@! TF.GenerationSoftware,Kicad,Pcbnew,6.0.7+dfsg-3 +; #@! TF.FileFunction,Plated,1,2,PTH +FMAT,2 +METRIC +; #@! TA.AperFunction,Plated,PTH,ViaDrill +T1C0.400 +% +G90 +G05 +T1 +X15.113Y-39.497 +X15.113Y-53.467 +X17.628Y-45.669 +X17.741Y-22.352 +X20.193Y-46.736 +X23.749Y-22.352 +X26.06Y-38.811 +X27.178Y-38.1 +X28.702Y-28.448 +X32.893Y-24.003 +X32.918Y-48.362 +X34.544Y-48.362 +X39.751Y-29.718 +X41.783Y-22.733 +X41.91Y-54.61 +X43.307Y-37.338 +T0 +M30 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-04_134218.zip b/squeow_hw/squeow-backups/squeow-2022-10-04_134218.zip new file mode 100644 index 0000000000000000000000000000000000000000..a789e894fa52a2005b0245cb50b1728b55ec73ba GIT binary patch literal 150971 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�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 Yf2e=d&BngFgPl1Om<)OmQy_Eo4-?MP_y7O^ literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-04_141706.zip b/squeow_hw/squeow-backups/squeow-2022-10-04_141706.zip new file mode 100644 index 0000000000000000000000000000000000000000..6b60156d3ec6c7e1f142eb5ff9f8a0d7333a1717 GIT binary patch literal 151699 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-05_104657.zip b/squeow_hw/squeow-backups/squeow-2022-10-05_104657.zip new file mode 100644 index 0000000000000000000000000000000000000000..876c130221b1e20ab388d4a73d0ce1a91e55153a GIT binary patch literal 77310 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

C; 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%0AHXUv+sp zGNrFI6xOX1HdCgjUiy2}H_Rhdt_qdn>u=+;Y&i1zf$ zo*~=UnP@ zXQL*5L;z2FH(@@&@!Q9nDG-?UiL`Ph_0>=CaiILSvjZK&%EF!DljRc(y2!_isfqa( z%wpTtrK&`6yUDXvGM}IeFbM+tG-O!ii{-?8-O}NZ5T`S-6Ul#c5@40Y2K!2AXS*}qW-ShN#s01)C z@kIAr7~K-)PleRagu)VETm|%+XFSmM)+zRWJRJqp^LM?b=lM||Jzp+2jpQjXqxh;5!XLdU*v^{zB_3+sh1NG?j;9pw519u3z z@y8how^RSJm9s%Z;%Y0!IZ>LMhHY<=yi`ni3d>%Lwgb*glvC#6tcHmyGz-ULm*n)| zax%>D=S|ShihAAVsGlV4ljGt$YH89jNeA?pzo_&I+@B7zF|w$}>AB)ga^YkdtPi6Z zX}qjr>d7XJNNyD?nO*pps6@#1=UBD;%vW{BgIRKE>gXS}q&KF<$DDmR$M z6vu39!c4F(_ECMO0CfrY`1l%khB~rV^Vs4Xmf)0uSxD6bY~1r!v%1W=Ik-+(ExjB5 z78b!%(mT!;c~)$8<|I3~aKj}Io8AKMSHXEWUcnlw?oW#{j%ukxrYd(u@K9A0DyA69 z?WOBW8EaSRIoZ~8(v1@gmm;xYKSS>3|Kg=pS=GmH+

jMoqTfId4A|+s-4L_d8u6 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-05_140432.zip b/squeow_hw/squeow-backups/squeow-2022-10-05_140432.zip new file mode 100644 index 0000000000000000000000000000000000000000..bd5feb9d65707a3727a43e026bba505166497b78 GIT binary patch literal 130374 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%0D;|BP@pO^E>>^Iy59Yg;% z%xq>t6rEGN@K#LoidxCGDi4Nq)5y`;ejFY=Y^EQN*s-=M@03&fRaqg}*^gu>n~76E z4ysK&2;u#HN88tpQ-X|fB6IA{3b@2k?RmV-yiF}w@5FSPTz8vV@KA%(*W9%}wP1!-kG+u}b|H5=&UK-J69*q;z4FRh}(WFk~rXKNGAKC}6rUN6FwoQxd z3^vV7GkxciGA}|z+?9h10>ntNGBQjv!}TKQ2U!O#rXT0!^o?vKB*?+lma>r{AZD=w z!Jzus;03k6`4lU*lbLun$qfpnHntRGrX!IS8d*X%9tcD)+SDL@CRS?Fw0{gFJIi^> zV%^BvgY6CkdFa1QLBF3_Qv>ZpSUh*y@}@-kx*$v4^fgsb+Z7335tELg0<)d${51AO z{ekSUY5NnoC{L1=nbhA!^^y#Z-S3)IzFi@bjo!~pVmMeFRYtVDadX+k;?PIlbmS_QA=$$5bsB)IqFv_S?B4>p~7h2Cq3i+I9mAZx%7eaxny z;yC;LI^c1Tg?9GrhWHn3xTUNY`*nwOD zS$S~KiBtj^93=ILOamDbHpml+=$Q_0y*!bpBr|~OSQyhrP@!wj14$0DcT%3H0aC%l z=0u5rjN8`%;DHJvS;USB4ip&3Ksdsls6Ude?qeS)Pm(XV_(1hGvW{vf?%?(di;hcs zL>_uuL^0hTTq)I;B|R>|M2^<Z~`|<_TP>Ir#4ASR_g5>tj&ay1b8R*k0q|w9?5XOLLVBY zj-Gy8!~E{oLj^NoEJ4NC$(p9!o{Z_p4wE!4!ZbAtIXfVj!2O!Yp`+et3_#DGikm6> z(8eF=4=DU@d_~{}H~qE;pY@@wnqjTLPQ{KLEexn>S8&*4;@08FCbg;tt3(S)x}UkE z+8sZRZJVeebn^(**`B>9bc#Zp{G{(Stio{qwb9UCr$bw*r9PiGj6P@1SM6Nz;dIY{ zKg{Jo4t8APt`AN+Ixh(%(oM6&)0VhYHlFed@Y!Y4ju=e|XjOB{rZ7=tIA?O;Wiz(? z=!&TJ$I}Z2F70yR@OCP?EKaXBFq!b`OfD!|cJ5TDC|J1Nl0K413f8xaC*llbr;Usk zVK@=Ja`IJ>PDmWwZ%>3U$$ALkNr02+f_@eLvops>ZO&8&O$2F%>X;P|$$IF#S!q`=y?%tMJ**2F))C<4bvIFP8uL+GGe*leqph# ze%?)PSO1t@W#@y6U6KHY03#ioRNqa$Wy#qb(*Pii4AeOp{^SwYzsA}pE0he@hgK%q zX=ta17l#g_FwGmB-6g+=sGZzyxE6jmQy>W@F~v*Ov5kuqa|buF`*~c;T|2nWok3j) zN>9s%Ea)B!Y+jt@5Ej#ME}&hUrGbLv?;a>mchZ3r>%Z-IEoTwvI*4#|KFk*EkV6gt zd%BjCz8xgMw!!`$$nL)5Y@R;(cPaThP<6*@W8giQG=8>kv6?Q~>6x&T+JMSZ<7?xm z%L9d{x+Zo|jFVxGzl|+3N>AQjs@ltM%jtSt^|YhI=3L7ke*B6Mjz@mQ7e~{+f|J8F zU!l$6j$MJ#;eKCX)zM*HG1=iszXG~LHo2m~Lngao$s-QE0?|YEzQWkUyKx1MMFblnGbte;`qA4Tl4HbZd4TNV8j`1{=O507zUcXtV7My!hR<&d!_hJL%v&*$vFLI8rss|BVi_WQdK&5enTvqm zKdUs~jvAM1ev|2*p>etRqBHrlFj?2Xp5KF-S8DwD!D~|YY4z(dKSgziSO;bY?^w;9 z)+cuG2-baZ9Rwddp>*^KJ>w>W%HfN@oG80d3Mihzj^b6X?NRpf7sz`D}BCpkPqH!=`r?w-bXLJbZYAJ zcVc?0JVI;RE-pvIkjSbn0y&GAoJRR5^LAbN}P_fB3fE#OlRr z^QzMlU1jcMjI1Q8ml{?~*?YN`9^3NpLEgS-Xd3dp1P4ST@Arb_pjhOyk@s6=UyM*r zG&0bxnyIdFcB97Kl>=E~H(V#n{TY)C88FBy?$iRwP-mu-jogV6kb$6yxk%=d%|wQv z8D!=e@5#EoYLg0m6(_2rlmZoB?zA|m(4~V6t7+O4qubjR$=H@@Vy1yAQulHOL=33< zcH?TrX=K~9FsMrHUqVQ2uPCHKdrWI`Qc+Km44gcD41}orqHrf>sy9T6q*4~_$Pv31Fk|D#Uu|o&QAmd{-%{*u^PQyZ-?RSMT zjJH|gU$kcDbaD7&Xpb-?!+ze&eJs}SvbV3bm@$>Gevl8mWDvcP?jY4(x98V*4KDPJ z9Od4T#nf2W3^569X!qL!GQ&pOkvP6(go*5p7-U@H>1%L(J1~cX-C;#iV}sDx(-@4J zeml7KB2F@RN$$x}hjHygF#F$@0_V|>GeCInKb9i4H*1o`UZk*~pI4y|?St4sNss|| zeCJc}oSMegrpa!SA^YQ=Y*Y(4Az2%@r$QLSFsNEhGjouidXS@-$$$ZF%uG#(Exk8( zOnm<)7HKwLB&845&tx9c*fU}FXDu-sImpuaX=YFweNSiu?0;LqAX0t914P9BV};|2 zgHzOA3P(C3#)cB)t36dIH<%En)=UMa?)(p{O72$$+f;V;-djqfMKPFP(fzb1!;&^_ z$xeeC_Xn*Y?SkuMAN;f?D6_6wAnBr-$*?5)svvLdv|%t-y2^BPdd^?laaMo;(oZv| zE3}h=J;DJwSk=kA*fTlyi|HV^^t7Xc>|QvB{oSDfdD}iFC(O4# z#wH3uhBTUFS(MtgX*ZL6k_kb@zG#LSOg98V$O!d-9JSFGvfZBt#0=Y?b#f3h8K&*! z>o6@FEG&IHZ1Av{L<+=^lozs`6a+2>jDtbecE4^5d*}7XZP*{S<(BF}p7;!6D%eiM zj_&8}=p-DU?q3{8jj>-JEILkN7Dj$lW6MI6`^)D5CFJU^ka})H z5+35POPsJ@l-Io0U0^VvX(Hpx{=;BKyXSuT*<}A^27~Q6)Hk#WqE-`rfgJEd49dyz z8QbBv^}0RA1`XzR=$aw8y-`E5ZYqz`TL?FkI}8TdDnD-}R9csyFg@HfEz9fDl@d2( zCab<=Kx}(JhH=n1$lwaiGlR|3^$Pa|7NY;SE^QyEM!dufL zy1(zZQ>sfb4O4B>No2|X+knf{rD8o?*M1v(uP5e%CDKB+L59Yf#IJK!^*vFza?{L! zc|;o;wyl}45k#BQ?Wmzr#l*dqP1D-fLIg3X4e1;KAFMKoJF{OF>`qUYkbPl%zy#{} zBtQghU+CwZBq$4c@+>XA<8Cr(STc%N(h`>WX;W~mlx|-GVaQ3>YSV`YFJ6WeXQven}%*tjg72=pX>^-ZRljml!?y(WSe-lFEkM*h`}30OU}}* zwRdK5>>d$kUj%!`@9&2OSZi^9kvRm@s=*#DKru?(vx$t`V_Re;tP?XqRW^m~fwHhP z#U!k-Q&F}6MaZ5RFB;hqAILxm(}5Vx7MCQ0*JnNh)bcIx66W_lh$A*vNDpL zO&ua83?Y^3@ur&kZc?@^kJ!J)y`JQ-v)v7CUX%}JhBpi$X+O>+npqA5cJwfJ#izen zOygSg7+xIaBrAiKaRe93eXwc-|MVxG765D}5W&s`BWT+2icI97#@8C4c0YCi{10w~ z4=b@hPWs-(h(u?6=bo(D(z28FWOxUh;)qk%`_N-nEaIDUr%E+{OgfG#4D#Ob4>E9~8hZjQFr5cZctnyn6}cyeZb!Cd zyNMSVDJ|^SvoHbS00VY}Tx+8y7##p5%s8zuS$fzLZ7yjAemd*Oc%BQV_z5t=-fFmx ze5UrX$0UafBboh+1gJ{cOUiR@1z+h!?VUdKy^wSK}64FD8M6qYNV( z0@85OU9g8uKP)D4?U@iLGLC!&FyjOpBjA-B*$!%Ui2<(}J5mn(WKKnE^;j0}*d(PR zn|AiY!bO-qcEWT?2|L*PX-`;Lt^YR598HVHT6=uE5_11!LNY{Ymvw?c0u$MrzTsel znN4t%ZczPvJJ|Pi$Wg``&O^tM6rdEe)HHE$ZR}zeGG0ty)07!x?!MaS&KDz3e>8%A`^Ru84jP(Ciq9vqyP5T@%U zE#`GONP<3btonc~M#2vSik%OPzK~9Z0+?oIflB+wV6@4!CX07QV%XHQWhRNQWgNNrIhqjL$iGUF& z3xwjVD^=ZsOD9?AN45}Tc$if{45p`8L58adiw9VQ<7@9{p#zm{bsO7ISWaLf2Hmw2 zOg=d&FPawp{^1VK&nBMF=@;;~kBN#6jCRaxz1v6l((>ZQG~kJ;PZp)qoLdLA&|(un zgVJ)1)c}a}5&APdlL_+BPQn(KZZInTy?sCyJ$goWZsBd24%9kG+h%(SFw^YtgW4Hp z1Z|ts{F&{Wxz>2aP>QlZR?~sjsS8y;7e z&e)VzW%qMo_h&!@%`U?5l1&n`Y3}}fVjx>f#qrTNGCFxs7t z>=`)i3Po8X^EymFj(gFcKmg)qJ0E5$z;t)gLRZWOW|bTcV!*g*Pa)^}(+yw4CRVZI zaV5}Xo%u|JHZYbndtCy)?$f4$I9osrCu~%R^cyk_ORPL6(dixa4KvfT&HQtukwMG6}^#rc`xa(NMAs7wLSd;c>>?EYVQdsNYx$dxWN19EUF*TOuI&w zvok3&Wc)&&YzaQttIOB3*WL!o-!ZlMyl6k`3wajfjQ;LVH(c1k^I|hZ8dXms#WJpL zY&lTuKBULckjYS~XGqGCh@$?J>jtF{1_Q>8>Dv+xH<23=(9FMkDK> z<`BczD}Yt+Gu17<%q?z>VjP%e|F!nrvqB}{qu7tl;u?PFkGM}X0GSyV{cDCV>{&@` zXZxd>2N$aSrfL><@0xA@JOm(eu}`LnxfJ@G}+c*MSO@#S|!b zA*&ZL17`37lVReUil`;bcu}E0ipb)286M%fjer}60GAg;uf@X`z?12 zFza8_y}lpY0gQK%2H_*kq`=J3yD$r9UI7-5BWB2$eNwIEM%w|HSyN;pUoJ1>0VW=I z%$V*}V9Wh^Fr!I~pdS~+eqxMp8c5!T`Eq(z1iFL_X>*PUe5+f3M`jeS@cK!z-`&3O z!dNG1PRUry2uHGU|1K8zyyQoCjAelFo~$YSFS|0OA^;IwCdMWhd#be;s+^LPLyImM zM>&@ngP}V@HoypON}vcKj!;0xflX=5)DUB6K2l9&ENX<-C}6OC+;e0NrNQ8k5c{!N zCrr4@?U^#Wnc{GX+W~CZr)NZ_Dvr1v4!$Ql(SnC}`u}P!Qa4eG$`>6O6y7ZBr*7Ttvsiu?yDEMgmZ-WKRG&JjkbTUkhsbUB-b;obFuGV|9X;J2i zpmX|V)2knmXx08^utY>pqrk7~spcW?F{XEXZRUz> zFsoX`C&_l72oV^0-oP-)ZmzHgiz6y~Ay2jBEd4wF^5Z-6gE@y&Y+zrtz1bo{TDbmM&)<_dYw2 z=?eFQY!Aq$6=`kc{lhKEqB#URt4yorbsszk#koh6tOTbA+0DiWgm#NLYD{V;GdEDw zjF}lTrHlo~vI?CHTs!RwV;{%ua1#W9M3ByQve<_XlPp`=8Q#3G581Pf<`{VG02&;Wg z45^TweN&)0?mJs+E!;8F+J=7$B$}WJdl?WV*k)jE2=SF%ly{`i?^H z%*%p>s5+I!Cihfk`8O(z#+kvf(lKx2WyEENf1z|Y8-q#NxQOA*H3VbqIdhOMJ ztu$ZOjOADJ~IaROx`I<**-HRXEtK^N4R9j%GoEUAi8@#nuI={ zd~%RNs&5*uo}Z?sVKj`d)xL}=J$kaazFJ=J)+sYil%oZK)#??ztI z%lE}QNH(n~bR(O#Kk+0V$9*CxwQjbeM}$mZI5VbIG`(~6y0rQ1edrH9$_ z?4Cx*)}luMuy%5YWT?3wTtdg|zFvayO7>_uO>1o?^BQ-unk%%JpsXKb8!?qzFu*=N zz)CYHbDwN%xPN18zt37Ec|`j}CP3|oEzH~YpcpJ`KQb6LxIxx-D&;_bX%Ejez{oq_ zC&||JU?3LU+ue7P2T>AL?uiOp5k|oCT+bEaCG-#|SpEB&#-5q%wuf%P!kbI7ve--y z7KPopPdp(xjN-lqj61OcQ`vj8DDdo5EY=$1j2v-9dsRyEC5YS@wJ-VvG9AK$JmFZ9 z)riJ1tpdSBHVx2`?B=q>mT~Ki>ck$rkQ!tULZaVistrT8>WDyxE}fVV<9T<9kD3bX z0v`BY$=UFwXBzrazS_|FG@Z3mp-1t7)74ayl@WkFSPq;%Gs^475T8?tmDhnGxc6_% zx3h-M*oS0}CHI&w+?<&axMBTkT(N0h-0eOufB`-4Hc(ohnVy`c{h;L_8(+tL z827l>J&X<*cbd5Jp+^_83eq$(B}yZLA*MQ4t?GvCWSr$J=?3%TW;itqI!2Xua@^aG zU5burM+`Huf>3HCj)0N(RMU!Nbt)r)4upRXTV$%g+#eQIN5At-nVr9e;u#4q(oVIH zsI_`gdZzwO;+;CLSB7^&&)#!t%+A72n7u{P^sR~)^8O9gv$=u~V{D+JJy}E8*mJ7$ z%_qeqA-%8D(#W*?GgTY94BMk_9xA(M>+^aT`jPshw*tY&PJ?MKb1aIjcHq0V( zQ;97=?iS?3SWdIIPCXx`xIuPu&nAjq^N~3?7d%tcxAH=r7+CRz(_emj zVnJ3y9(xAeItfac653pTd@hEsjE(zB|*Q<)L=siC=E64 z&!qHZbRv$AS!8%3D=|JM1m9mi+`ZN_h-662{m}FPc90#IKQ(_XFS2SbS&3hB@gl1B zp+6)W+mpQ*_B}x>>80!GsT7lwRFJ)|Rg(+9rAn1dm^(*stw~?&z#AL>cvQ^^?Dz)N3y-78u#9)|rT9P9}K5{I<);0Cm%ELmqU+L%cYdOQO3i z8`zvXYY5GLq8>Yb|WLeI8Ox#0jP3vNDUwtu3c7X?u1uaL$Ax)Z{r;Fr~amX47yH^%c z)1@Qo|iS|O)rN(Uo>4L)1&Wo%Zz8_-sy%LK3vUb zeK{^{cQiBka@O<=%~N~j6ehT;nF}v$Mzk%?nG|fce}%baaeBo3G_}k9pf_#49+$gi z<}kzCn@LCBWIJE)HRdG_uKh(Q(1|#Cysjd}NGm6td=*GAyW`{&xQa76Kj*2v3PZY1 zXX-_g((gI}{Hq*hEZJJKq>8D?nPxDkyTXxZ0x<#9x zsy#Z%r*B_Xrk;W9RoxzX=da3|OE(A3gs><6jHd>Zp|y&Ti?F#aCWyQQ>GI-g_9?+W z$T7eD)Zkd5);W7pNSJwE5D)I83^5B9In`TR9Mmv&tz7A)k?vFh+0ohLN0;8YelkO% zgz5F%52`OSn##8qyu;efjO;d}Wyf6jnPFa1kK)U7)o9nsNGf?!bD9xotdDh4u)4*s zjYbRy<*r-ZtKiRyWw)AHvDc|TD7DS7Jz;xip@Tx*t-zl(XJx(_GH81>_=6hZj5mbI zEKdrIGgvYBL7u9UGtx22G4Hvwc`JVwM~{fPFnY_4i)VdudwIaKHo2~q_6qX2o_jB` zH+qFkwcuULrS4_X=Q{GBde(AzEkZv{%VRisQo^3(;Cnlyg97+W=a4P>^{{+?OZl_$ ztoT03OwTzf-9NtWO?>8FeYayDbov`JZ`8R>U|+UBYckk2O~tbog?-2E=rA=kI2^|{ z`oB%>5&K#Dv)+oGQAUHRsWD?`vM$XIx;l0i?Um*adO~&v_YEB!bd>D3!=81??RTp? zEf2a`wu>3MkM5usX1~@Q9vpPi>_VXzbUNt6*+ok4z&khb?DDAB8JRnPHen{?S&!T< z3iarMyMN_ta#Y7lk)D0|peBVcL(hFry9n=vTjr*zP5%3ia1UCpcI`2G;LZ(OyYA^5 zdeH5)Ypzj8XYLi-^`1ZLG~2aiM?D99YKPA4)TzmB&%Aag9daFEgBlfljy`5}*RkrO zk+oIM$m;5EV!;k`_Ed@s z8|-N8c%%aat5=`(SqB-ca@wVxWNo_sIn-VPrbKUlbg26TrOvtH6uM`?o~T_x@AFAB z9#+B>@~rP(qv{T5=cav)8V4MhJN}W}mo&EuBuyJJy8cd$23@Q6ed&KY)eI)t>(K&n z?r}&mU3+~y_f9-sdNo=E&D|AA?HqK_myyJ1I{zJX$7SsdJvi*3J1)uI$k9Ca=*L+H zt)KGLi_*0QiSewFrE70m-7uNEV3Nuz+nsr*7Md*Tp~kWf`fs+HA8It7o||`4LK~&d zT7Nn=v^Tw{(m~@;*WVyJb?Q1w<)ANptLL7jEH@$sC_LzRO0u`Tf7U_2R4OLpM^ntnxUAXhoqh0i^CO)OJ+9s1ta$>Lwz~&wW?fHnx?#*;iRatRn6h}*8JD$R*rMX} zq}fPiG+saA6BZ;rYmDpY2Nm5eKV(rpPlt2<#%%r2Xh*k$ZFa0Yy<1G37_EwrZl+aA zxU<%{BzxWE;E_;ZR=4%15(Q9Kgm@;7EYJE}mRTI<&{+G{xGiDLs*~2ZuJy7p>Qn?< z+iSlaOK;0E_Ua<}XZH;oB*#;|VI5)Ksn)Tu^!2IAvaZ*+JyCdMZ*$fim*fljI8wCM zU7R3?TDpDQJqB~PzT2S>TK$cQcbCA_C$KNN`;`uw42~`99rNZEg=53d8szrl8m)Qf z_K5wg)md}J&M9N!b8E)VX5y@|V`ot}nnq4tAv=TjcEtxhCHw8@)VU#Lzgna3>DVWhYi{G&<)O>I}V=A=RHt*$<3kbA4?k3PPlgu{`q7~^Q#SAcT3<}188 z+_6_|bhzDDV0Cm>S5$U*&{s@%$R<}rc*tb0aPo*huTb=mxvxO>@M>IP@ZrU}g6P9* zd4=GIm->p|4@JTi{T~XHtLbnkj;@Bsp)9+aEr*iuYV;h+(Tl-!D1)!I)}aKy8fu5~ z|7zwPYLBatc&K}>Cg!2$8rJEN&b!*RhYIs*6d$VF#}@TtYn;@95{?|~&C(weJ8;j7 zUKjJkx8Ix$eXkE52AYSW@5s@!Li2A74x2jT4)4fNS@VkqT`NPW9K43mFEgkIFDdlt zn0_&io?++_>hAM{&bZy5B+okIc5l>ZKzsCjL|<0-`yahM(Gk`=u^v8L(T&!7Rv$il z(FxbPz#hJt$yV&8k&j;7=m6{=A3fL6d+5#|`{;Tc4~<7pg$iSL?0)#rNU!I3XgqqR zq|a2JKXNK6vi|&f@Ip#=?RcC$dR}E(=;%*-^f*gbac`}D__Rw$vm4}thhe&@&H1x3 zo!n#7jvl4yB6p*8?$ML>tDgU0Z`_+P}~y^xgO0tv4Y7 zfmxD8EH(OdF>6r^>nSgrPLB0h6V!E|4`%WE^`}pN{KKDq{PY)Tp3slq{*U#Oy&dvo zN@HX%s$-MUMJ4SPql;Wp6=o3vf=aAO^F{YB{}&GZIB>q690helm(;Y0LzFV_y3w!}M=|JCl=% zsOv-kDTU6uENpHGE_HcHIi|(A)u&=ZT-A0w5vDkSEA}(Fo89yCShZboDR5C#*5Hv< zFVRK2K+U>Zqx1#h?PwlazX-(xGV(Hu@h3wxeVv6oo`b&5K{&a3Bf_$VjJ+_*EP2c8 z0+hJnys{`E9kT~LO0viAUby4(C;tM4^86g6VoM@h7nak*K7_J_yxGO)YO-T}E_r+& z59UBlea}8f9X2UTTDIWI!nm|08JQN(uxO##4)OS!XhDTG8g*X}Lpe_3azanfBInhw zDlFjbw3t%e5_2-kmNuZLTvZM7`B_~4MjKJQXBtYDbz4JP6s&>8*cDeL<+O;Tw_;WD zDyy>tp=Uv|>#nxfBWZtBFAQUS$1GBcc`MK!xDL3c(SbEr$ctQy+SZbbKDi!}Z@Fzm z*7g~@q1gD|wkz_k&9F(z3PHJGHjw02iiMfDOD=0IKE~v-INprb%;EJm3|Zl5jRzLQ zc*h)AXdZ&ME~{E`AS?805|yd+YpBARjV9Zp8*;f0x99PCNKelK&`HAiyqWU0K&rzOW0mR?mAc>kwiWwp^YkpDUL(}^l7owj0mfUh)!VW~Rl%#U zZ^QAC9L?hLx5z@g@0djNB3IstRXCuFA`5T^kSG*c$*bG=u>bIy-sq6~i~H;haw;nm zP~PxJqf!plNC~7 z!{W_m#S%B%kPrnd5$NQik0)U;3E@Xp>%|VSjOV!i?G1ouZorj*RI(;4HAjG}5-Rkl z!$r-j5UL1hvTzJE0VZ1)EmqKHYr%{Dxc;3558j5~x0A6O^c6G*zQhy?SwpL|u$o3l zB_WaV5fF!X;UQJ)Q*H zkXkBGb2Shp6Ks1Kzv$k)Cb!e5IoS%Fl_ao@F)OCANw-wBmbfKI3vql+RI8HO3?O|G z7myRigx5bk&mOP?0r8byO5!Yh#C$A~MU7iFCT(jz#@?+QAMFsH!u3R??SG5$ebdlh zO2CN)co&j0(lAQJFKz{{Fv7Z=PgEH_?K~M+4VMec#JyfR(!6gHyreqkr4n12U@fdO z+!t8yYRyt^N}M2H^U~^z+%m?VS)OGJX>mPG5R0YQGC+1qv^Ff*pR8;s4t#TF7~ZnL z;0o#6pXB>CBHNm2oJt3f115l#jL{ciBiO>p0yKJj8kU(QyW_Y&q336T-FDEZ+rsWH z3zK^w&w;&d-DIuU9U)J4!ZAITr@{^?_glesYVVtclfslu14&fug$3XYu!j}}Jnn#$ zBGBHM#{gfp`yp@a^!7Iv@^aWl{Jv@6vo#d00P%pqje-D8s|66xMdqN=rq19uD~);LyQ^+zc(rd{gIk&Pgc^aJ zyqOZ$MG2yu;5V44xH7C{A_dG;yPbG(T1Jm|vh z*ygv0xT;>qMVF9t+154dV?|bHXp$luu6hU znnhKltH-7x9Rz%k5UhN05n7C<_1C{WI|-vSGuZONz;be@2jIe;SvSb-t@?GV$67@B zd(&rJ)pkfUlDvJ7>}0iaWq>Du`{+Q~B+zd)%UbOUsUgH>PP7QiHmk;+w|>UvFM&ImI8O{4<;*B<8vkvwd^oRj>;leiiIfZJ=CgX|R=slVlX9U;HjSK0_ z>$SfUmwR%nfS1M%h~E)(JQqqgK7JD9^T}3`m!zR%x8Qu#$%yUbmGeYsun+bCgYV(c z5;3&ac5#}Le6SNBh_b}Z$S}ywb9eYtACJipB^$e7O(XvFXflx~b zo6Z{z+=u?2+h~=&59s-6U?beB_j zaI;H^*oOiLlGKS$bmyIK)40FCPtUb<|L#9@`6IgRRPQh zEp|q*ycn+R+1nD<-g?wZR&KmZW9JBZeiF1r2(v8s!${iori5jMC8stU{pOEjBPJ7m zDEYwrw4Y(t173w-X+;|g8%1gGhk!9@-MSVfU^&EN8|5M{*>3WxUm-?X*xge>8n@G^ zEULIUS|}4%h zv!2Xium<~N=<8LvW0z+qu?3h(Tk(q(o?$Z;25f+NP#q9CWQJeMu_(uSrPQA+V`E

5j2_g0y_)T}EQ!&+%hfJR3Z_cC-RSD)UCZA~hgRtO3z zKGwpskn~+Um7(17MXmk6-=-G#IhjW-@DtY)|FizU2vZmZmvMg_1AqE&e?7+EepuIe z8tlYZYAB0dH^YZM8f#uGzEoE{w1O#aH;tXs>vPOPv3Zh!jhN&HnV~njjKQ57&kn|_?_u>LZJ;JfU-e>^Mrl!86j2$a# z%SzP*Aa>y52^GKRqL^rTA`RIT4Wi)+)Mv-abhtqh<_@0lK|tZv_^`I;)A~Dc!5W&1 zv28YcMvoUPN#XUQcaRLYJSOUsXoR&8pAg@Ti)L--2|{VSK*)?8$qZN)DHjNgtNpM| zj*9bpaFN;6%h8l%&lQ1B9BYh=4!))gkGwxj$!p*JW#n*29}vj?a9-o zS{#{x0(D2JIE2r94=$?k4Hn!kSP5)YHV?{)NXd2?8?V~hQEj~dqwm2(6B7G0D`2z) z9(Z*Sn)iznuEDqOR9%-c!JDJ_y<`IJMQGKjMe(}NWZ{-zqXjxLr8xlBG;x4oM&M;S zuL+Ri^RSJ^g&z6u~f4~(Q>uKmZ)Hx{KCq2O>V#q`ARJNUynXV`sb80-&( zeJvRed(ZTv=Y|bzKm76AyYnI8^8mWSx)&nXP=R4XaZ7|zVLQT9!ZldK3W$pYt??VI zuX`shbI(Wd6_%EAS!iXupjJ0aQXTNg2gan$^o9&;+n1O5VD6{ie%A4;_;tsMwn0j0 z4@MwL1}(tg^T36z(5!E~Z<;_yHA00)TG%tFotdZRV;jFO9y)cYIu8-5W}p+;h^Fhs zGD=mZ((NR+e!aOE->u|d6b}vWCdU|HnDvE6- z6P5sv0Hv6=q=vQ0z53X@@ld8SWzK2=hH1j?Lr9$s<3|_lJw2+MC|%gh+g50?27Q(s zaBPQGGw{x3GLzkMupb*EtY`iWHbr-Dtm}d^v26qZ-U`s_?DSq5kMAZwvTh1qP?<#GG4J9cOv0{;T$*>T0$5QgPt@mO0k%as zc&0a&#WM^t^stO;U@Qegiz<()lPih|B4y%#9c=n%n(G}tN@#%rcvdn&DOm0lX_gG* z8l|jBm1+9(i!AKrLw{j^fm;iMfn2L;DK#{>8;S@naCT^8Au14%Pm`Z{H2IPIJQ_r( zk00M>BnSvX4m4<;X$M9_LLBBJSeH|w_c4j8X1dgHJzrSSqgo0pjq$3B-6`KVu-@~d zP4c||4W8K;j4_HOh=q+)fy7cTX&TJyPq)&K-&n;~-`l}KH(7;hi?u*2FfeHeGW7+* z+FXNo9NZ)V?dgT>B3KWe*$pY6I` z^|a&6+zmz&z-!29X(Q8*S}nn2UI24lgb^}z7UFY8DBCThv5G%GEa44aTEZ){TvTQx ze#%wU324xna>`T_Z6pP6M zmio%F9HxVwGP@Vt)F4$5%5@&Vz&$fOJ54cU8W`YeY-uddryl!r%snFyH~tPEJ;N^q zb~7V%)M?;-D3IiA$$ZkyBx(HeTrRwy@3&_{R)d8}i_Mvn(Z?wzi*9&dRn^JQ;#W_W z^?Mlq>bvt%6yRA_6;QQ9TwsD*mrYA0Dm4G~Z8d$r!wC#)(x|vyL)?(mTAVc8AW*20 zn!PhaKr9gmMupgG6O*{O1C$+192k3_iJ}~16lIW%8TC97lVyR;&kTHuWtK5==^vhb zwf7gLsj6)7VW~A4M#hb}bD%q*%vvnGq&Bg1mnW77d~<^j%OVRvl*QQL8FsMXA93ac*!0wINs5NAkTWC5&R!@pcWSuKh zrF7lu=*+~M=i07sJ*Q@ zdbU+~$fai-t%2{g0P(g(0Z~lWi4riI0fhP?9lIct z!`0JYV!#+6la?4n%Dj5!BSHXR_E`~*{-|r}FarlU_)Eh(SyfCdiZb%Iqh|x>XTCPuwiW@G|27SU;iD~r7C!i1*PO1%l*ph{3sJdfCs)-lYS9Z`)a&gK@L}P@nu2Hn zR{T3Rg7JeJA-d`?ub2gAS&&05QCSZ=Z@S7d@vwV(kUYj60jxW2lsMG!d5;g3s!E|R z3~B|S^$=Ia6nGOHW3i)})F-+6{+D@q@^^z9(+hNWh4KtQvy3ZVV$BL_G)pM50-tIE zTed=$JBZJ`JFlK=c7u!JO>shHf_!Y@4osVS)JwD2G>}}G`V?L7hujWv55jYUk;+C5 z*;R&xF|mo&;2L~GZAP6y0Bk);l?WHN9WOL~7z2 zv*5WTOxZzv`$c)R22H);g-NkftpU!9gKBkMGs?mmniy!>R$+CeEoFigj$`im@LzT( z4R5jGn=&0r18`|nAIL0aY1`6u%PPU@=t;`%VaV+~%qc}j%-)=gs=V#+?iVWygfvTr zdN6Lzn$V+hur!lJc@#K(S(U>|-C%_2x*;$kzXslUuwq~>hDX^pSF54UCSZZ8+>P?C z9|(?No>2~j`3}67yV|oNR96}P4OGC)%nVguTVAS{R$1vQn>>FyBQJ~`xx2v$WE67& zU#M`)nk+htP+@^G#1%GAwLEc+)feMmE3`d+g6w>?I-1-So()V8(ZMdNFf5)WOJWUm zsVTAEsn2?L6}6g@D<0lSQr+{A8BE);HH6IAuvi^T0h|#TTGiEtnB26sj~DWgamE}g z!>uA-&M2ob4%-Ezh+IEJ$)mM5HlL4rEv*gmA3k5T(U_0oC!6Pe#k}x#P zc8?7%fYo7g<6_7401+yD>BLKS&yluNj%@kDw+zexXnnZ zKFgTRl3ie+CH$fU1q0BpnhqKQJ-gUGD349OzA$%(k!oWVP^yd8%umdwL1<-I06`l( zB9rS(N?yg`^WF0fCp{-o0IQZ>m|l#D;0dZ)yzZ$aYo%zD^QqIYyBoT1&~Cj*=`bsp z5?+o4AkV~N#@$OTg({&;?&w$xf|sXeS2pbNn`BCV9_=!)KSm7~oi0r#6h}S2(XJ2R*7=&$7N>M%*+=ym6ns z=c0wq&eCqFrC}}%i!&K$Gz(l;G(354r#>@#eY~#8_S>6lqIS+ItZ#x(m{?UC3Pfu_ z2;Pus1+@YdYv2%k%E!x^gfEiubncDG*fRl8XS7cR04k1>hXF1tOSSq|O_8lTIbmWy z;CA&gib{V26DjMef`|(&33Ynx3)UzvD)#DKaZ$}06Kvbnc=qWzsE#*9L%jeQp=5z^ zk#&ehrrs#nvnr=%O)_B?taSMJ7d{@$-C(3yj8r0v{_qIZz(33qI^8>le>7;Os+zJ$`+2N_P0cI@eMJ&<|LK1z?kw7jU8(Ob_5pgvibWM7U$J3(vPde!9U1 zuoS!?4`bgm6VL^#4#GcbuJvw{Gt(3P*CAhK<2gq+7->OP#~NnAn~@ZS4bxexAvzrj z7>kp17aEZf`l6uA{NA*{-dg=d$anO|zO4vcQ=OPc3RfN46jKu5GecNK(WPQ-`XsA? z3T!v#77DBNn5LUdXxI|VQYMmjVVNqu@pxDJ8d~RJ|Fw7=KYT+GFO1#b16I9P$vBwG zt_iFl5q(vQ1b!^WH6teV4_`ifyQox-#Vl^mMKf7zFY5w3$0jS7kSsluYXNeAZX`C( zr=oGFvv&}eJDkM8{3C;9kTkT|udz72hz1`qNn67tbC2=i!f?|7J^c8ZYa-vQYqgGXvs-EK=*e5v~U z_|1d8ck0`zeVKsngoch@R2Pi1WPy`f=m^!Er0%lM0?1FJJ~Cf!RNC8f!b}&DA)rc+ z*j(yU0mD~H$=y}n*-wig2B{8bB7!}&-#?rgg-{;ukZz$UCBXH=#XoSxbEzgd9;dNRzFtz>kH7VI~ zVMT;90xoK25gK0W1{M@^+33*l$2dE%;yuF_kNUxdAoAC5=3VUhaHS;16|n3I`G}sk znY<%1LRGDMoJ2nyC38E$(*fIX4g6Qm#k;ZstsDdUi4`5~TERV5tdNeS2mEWJpVm%4 z3dKXGaDl!>P@;0Jz!h1FVjH@WAi>7grCIA@mL1OZB+PExKb}FCPv_`$Q{7?&^JoPe zM8}HEMq0qEq@hvZp_tr_YLjT4>-9LS6hzoteV-{nZdI&jOAO{aTDhcbI?HK#seCkY z5>WLhME7#Oc$~32oMc;E)5b1dGOtZQdXh@mSy2K8ix9#r3G{Ljw&{uTaUbr?ZH}nb zx)N*>;@HYju~UazTJ2ViN*EId?qb{xm>(749d?RQSr%|o!#I{UaA{e=Fsmkn2~4k_ z-0vNB&xQo|`sWTGm5p0UHn2dFHF-+|AJRgY;m|5w%(Pj?me<4*PrFEx7i)Qo5ieML zchq0#jJ{7x4!pofi8;hli#Ra>W+b*htl$`x>>vwWm!W2` zyCA*Ou1n`Gmxn33GabEJXLU%6a0T*#sbSgX!q$qR2PJ!tlk0Hy7v<%q+jq_2PpsGX z#_^)w`T0Ue(Jh9po|Te)hh3KVtA{x#E=QHbB(COl$X)5JwWP{THlk(oalcf-qNlZo zCBY&sDl$Q{X`$^`ZaV>To;w$e=n)C+Re)FMb&E zFHT1@!D>km+_K^^r&zMd3eEjF_Gy4Z=SS6Ymu89>1|c-ddCc@r%& zQ`|UYlsqo5Foqp4S+c!ioTS(Tcu93g&wMV|n-Q9OMnbNMH@(;)WW=jF%3Cg~1Ux8VChWq!J2_qwR8*+r>%@A(9Ojo{?X#GjxXy zXJJK#!HvVN2$qMXsdKI~skyiJ7v-BL!wR^AmO<4T^8haT5@9qMDS$;0G1fMTKiekb z#n2rl=msC5F!D=bQAA>eHVqdD9@@ev8`pXEnx^G3UgYsrM#DQDEcSdPVN*()r$-DZ zR)L9KEdQRmbS^DWqy4v3?AoRxo)YdQk_ zWA_X|gLkGzj?-HqS0i!rVRH-iC@YIQ09Qb$zdOpIHdYh_0BkV9Dgv5|$pP?j%ohXm z4U8xlxL(+j$r4<#jC0~`MX<^Ntb@H-u=9Gw3AG;Wt{%ep&9fT&JwAAEqly-b#2es* z098dgioQWoElVuQx%FT3M8ZDM=w-2P@Zm%kiYEe{=kZ3$#J&-65gFbPc1#G9`G8RB z0FRC4m9^-1eh5^OdHMYgKOX9xl{_IqJ4oJWQSX<)YFSbW z-2rZDanqcl(^~B1_94qRcqv`5G*^dSWe0_kf8W@58QZyt=3ASbOEW=J>v2u+Y(!%u zu&(*|?b9$ly)V_};SdJ4IJPX;ssax_typ|dA^6Zros<(fjySkb><+oE+Z`s13{YO0 z4dMsNB#zJk-BJ|S9oru3Nj>&!CfN6dVAI~?B9v&GI~BPaoSGJiXRCT@ z)(<{5kyT&JTTKCX;XN9DsvL#GB!lt;>mk|FuzNZ*ykyVYX%(}_!n`o@!rTo;SZgP1 zKua%134oT_(Mya=dPPNVC+!prBlG2Jn!>g)I(`ZMoe9}R)%cb%_pU8nvPOh3X-Nid zq7Rs<+<>_!$EnW=d12(h+zm!xYpZwGEZ);Q%*HJ_m{Il4n9jB}vpYujB_8vO9us1| z_;=KZ*_|OK*o3`)`cA7R`G62nSWY#mYXI#HHjVi~TuTKGsZ+u@%@~k*G#Y_LGuG zr%|`nu~wh&=ilIjJ^5N?tR@^%cC})u;i48NlY`@$oiLNufQK=6dgNR9=rU!=ZIeo5 zEXfEjX6$vbx#uX2H(VSt^8bGOwQVn0U-Z+j>6iAy-~RW1|JUC>272VHKDMP0*auoI z!mt8_VAvbmoOtZX;8QoNdHiSkv;6aiR{z1AX}~CcIfg91{rYPwfBy9ERR6%=es1aa z^lN$0Y(&5O>(`(D{O7;Q|M|83@yED)A%Fc}KmXk7PwDrT{@6YK^|$T+;`1N=)9~6q z|Ji>3CH?%kKcYBf8k&M{A2qg{_;Qnq2Uic z{$Qb4t^V=lk!1HV{n;b@2N3GVs~5gLTK~KIB7E_Iv6p4}gj*MBH^%!77EPT-_eMx* zMtL?NoDF9JcChE;<5xYN;fvkHXL&6l1mkJ6Qppp6^FA0gCd^1D&6xo3bvB36M6=Xa;A8lIrTqz^YkE77mjRGRTf$Cy>464?cc^wq+?3qBa|HVoWSPbQr07%hV z;Rg#=SZ&Rj0BX*!b;Lx_$EAM|_$R@62x)z=g9qzmu*X&KERv$bc!Lw8{L+a)Gxv5S zP$r(490cx3aOT1Auw^B%fyV4i;G$Rw9J{Qa2&~6kuS|M>{00CkgPHu~vBd!E7ht34 z3xWVIZL150KOa|eBk-RQMD~eY36xdGNn(U_5PBmJ>a-g`V4iRAK^~`o&mDHe_Ko2r z3M7C)y6Gf-QKVDX*)(Zir9zi2T+flzYzaZ zka{J63wGvFNBpxc6M*o=CM#%h1kti(_FeSC$1`gdn019sV}S&fYGXwC-#TeWNi`eG#l&BMy1 zwC+OSBU6#p)ILNaa<}RPZB@KbTyQ1a%A__JX^2Eg?=Sj18pbHM@$?33VPhzMY5Rs!vh z3U&~H^>qjz#l=cQp{&>lFj41uj64+^p9x_(dZ^>M7uK)OWjM+_3Bm(UDhQMODuFx` zFu7Z=1VCsP9|1SfjA>B##-php1U9<$4fIEjGYywVX=w+6l+vF*a}cnO<{+T^bS5y^ z6p{o&oopeWTRF=4@j3ju<64qHsdb_u+D;t5k_4K@d=N-`#UnM`3YR73G+q&Cxe@r2 zjvNGG6oF=IiN@d;xq(a3u8stcIl)Uu@G!np-BMm%GfiH%1eip1c4JVT)Y8>4Gsr`Bczol z6NOC(KL)NR2w;-MNo|opOA%Ls^CWD~?c@1rKL>`(U=IuesIQ|iZqM~+&y|xahniR3 zCjxw#4eJ2#%TB_C<-^>EF$pFpbJC093pJ7--$=N6Qmh++c@mtN1VVLgBY?#|ZrK2+ zCdBrJ7^FBagizSCLl&SM&U?xN1xRRZ286TJ<LJWo== zbsHbySPlL>Pf~ftrwjsnf>eV5nse~rg<$i!BLTFJ+XwZHa=Fl@~r0IEAnJz%3AG7ZncoD>if9=uz5jI1AXo+l6x_6-6B zKk$M;u631x-j63FFOS{ntZaP@0ayv3DKF*-`wm!K+UB5#Ug4J#T%_ZMARoN1_Ei~>Q>?lwLhNH z&=r#u1H;5C?N4WQbfpMn27$deW(qtBHY}jZ9y;QDoCs$zX!*%w7#6!eKA&dt>3Z*c z`BXZ!4eU+TN%Z;$qk&#?{N`U3is69V%I0W5j;s$;6$Jd7Iu6+rU?r6 zM1V~c#26wd%F2O&2n&{TOaZsq(L#ccgL<@E+%i01p33plD#O3EYF=bkxT#?mRpr0ql!8 zEu?0U9$TA}fHvVcQThwqIe44=6X1(F-5@cI4K`QuPwd%Yj!bIoG$?JyKLP8j(?J~x zl!rKyz=fj+us#ofY1?yg<`G++J+R5GhO>5lLj+KSFbx6?nlph1YhwtBc{oi2X2)19 z$L%6rfun2vAW%<&i|2qo+Y6LE`lMrlMC3=Xdz6DAJ`+G7<9b0Uf;oCAlmY0rFbD!n z?dk9u1n}79b_07>etZs{Bxkp`|$)bBpXU5cE<*GuU)qwqiF@ zZL%Es_^GtW$a}p6b}O%`DHEG?-N=oUaV)V2xd@x_)*$i{q|1w|*|Q$D%rS4IId#=N z-fEL(5L+`$7}JZ@szhHy@Uibc{Kx||J=hbpZ#=MQoXn> zdG^`g+TH!-&Gk%4MI_05KKtxVyKZ;s;pT3JPh7X3KmTw4ZMJ-Rg+KA);q7Jl>AKzD z&uH#G$Fs#}ZqseMo4xqTyx?b_U8P^}>x*y5*^6)IFWJuWs(|FCNl0XrL4r8>#4pd zH`n(Mcj*$cWOjYC_{8Hjy@l?0xVd--mM+RwOLytIw3%GKTk`GI&BHAozq{WW>HYBI ztZd{5DJ98XF8bsDZ4BW)W&9`x`S324yPNx2PgnPC^#L4=H|;LByY}IsU9;{Q{X}{I zEBXCHyPrMWy+8DU`ZpeX9s3|A58G+++5h(@_sgrc{ek{F>THUYByGzL8 zolm~KeRFl&uCL#}12-FAd3=6^`rT7|;WM!_MXKf9tjS&~I<9etCm|@hG-< z!F!kQZil1z{`&Iae(zn3bOA5=4G!Y=JltQmH|YUte20bG`($q3Kis~5*nI;the^Z4 z@mAcM)W2a62OeKu{|yU--S&XJw7Y;mwTJQ+TOHHhQ{H{|ea7J^54<4#?&jS+pSA6e zEXLVy?jVsiX8Yac-5rqC_Gjze<<-^wTWtD`Pu`bw)z)W*c7C~DVt)ao{W5#;VtqUp z>f*XVv^_o_UO@BxsXd6#UXu7BRr-AWj@o)hZM*~h_t%#%*RP@Y{^d`v*01g3H~*k^ zzX_%Hf9SdX>-q`w-TP~ZlxqyRRq@$h25NfaJK^9b+{P#3BfZ5tapN75%eVH1LbUbP zCPiAZ{)f0bDWo6Y`cd!wpxGVhg68H($sYcU-~5a_{F$)%nZ0RSd}fRHy@@k>jK-~% z+FE_N_15OM6m7j_Hs4y!+}`vky|qdtH{UbMS>4-fYH!B$-gx#VOz&~CH(&eX3(GO= zZ50&{etUD#wA}rO-5n-dGzZpayH*0AsSy?z6L zaR+PyGiWi>H+L65TweccOTbANYHrQDcfVUdpbt`A{IGa@@mC-V*uPg7ufKc6U!p&@ z{_tWOr9NUAEZ`*sUHtZ&SN7#ghHpUM?`~((c%Q+$h*YI8p(l~73Zf_lv`k?%&nNm;Lr)P~mF`@Zt}!=6Leu zOz64eN#C=T)~Kv^Y@vJJSJ+aY-CzC(PbKZZbpqsHedTc@_~v^lQeh8Z;3n!KGHEZ2 zl8J0nU8cH)otGnBAd(kfy|0%yv)}(|F;=1G-b2nwNcFApvVr>yqm4e+EGdiRa}%Zq zE24}fs8`=oBTu>=9PPp?|L_0%$8Wy<=EraT^zxhkTu$yehUr~0UKJxMmCmOti|BL` zR7;jw`hZuv!@Rn@Zi8)nhiRla#3&|HYPSEbEB_tr>dEdln0@y1WyKc6Xw>?Qla$$8 zO`@cdupNyRxjPbFDyO5a**5+8;Qfi1ytcoB9p%!|TV%m`2hxjS9i|QtNPeK_F@lYfLaIpqk&-5zE zkg<7$ww@b{f24h+J-il=57vrx@bPU>AKreXZYk$fu+-UkK5t1vO!W@VmG!1oQ*}8; zU2KpSzk+^@5gU!VC=%0ea;YMES44#%i^{kv?dX{s8Nf;OizgSNib6F#s6P_XWFtDZ zyOR_pPTx`byVHLXbxf``F-PHJt~h9{$g;xh8)cGe#)ck7j~sBf1hjc1&LCp>dRsMY zY`YCPYqc!JL?LyGIP8%7*+KMaW3BJH#_UJ=9!TR~8<+Dg=K$A&hcJ!02{~j%O2~=@ zH`X)}a?^MTJlB)#KJ{aKFG(#993GrN8v8v*Sw$fWHJ8AB4pfB9Mk&)WSsFX)!xV3@ zJy3ppJ%O^N6cY5RCgJa-&lhQ#Jz-8&9Q)Omhd5W z%($td$(jiIy}ERi?cJR=opP|P1O>20-GDN%8BSQjf?KK(Fu-kbbf*oZwszX$$@F~= za2rkS8uGjVAZn*YE-?ynuB)mlQ0}Nw-J-QI>(i;H9IDH`iI@ZH6&(cxUKG7GEjwRWHvg=zPJL{JvzJrq}(vz12G%7FvEwGb1icZ=QbK)qSy5 z$Sz|Ks6^TnTg~WR-x4OPb9RDs=^@yJ|3vE&GM$H!UFW|Xpth_{yA|=f1zR;U z_UtVz0-8IRjEi{~Y?uK@V+0E*z3{6quU6KVI?KzN6|~-T;0;D%e}BF3E53jUd_j*- z7Z(V(>3(sCx?)5d2bvh>ee=hQSHJ)9 zKffGzK+JU=e7g5vp5lp^|9p4#V&&@X{T?iT_TiWRU}FpB*0y_i@eU1!)#{zQn}_t! z_P@0D4{!KSer)%b_dI%x;deh?$RO>7!g7AshHD`93(b}MKyxE8;(txob#WPW)M4_i z3*Ub8%{Lnk6IX3Aj&W><_(@PUF#z0E>6?S`Sql!r+F@enDq_#g$?3rq-tw0$M?APK zc)YXEc)+v8h(G^gcK^TLr#tY^n=f6zd4HAeKA-XNeQ0;@F0a$o7qj30@bbcI?7r)p z;mPdhOPt+yb#whD4bBnl;SLgS!SDUR@8$KI`Ruc=Z|X0zVej7GyuT~$cl=A@^>@Mt zg)hBnGq1jwy?uDNz5m^pU;g~_&-2@og|72*^X|)^Z|>^t9qisOf4&t3R&l$2`11Yj z)lI7RUtZo8asQ5gCtaj>7%gApU(f{xfbDc!I~aQm%)t1D;SO#Vv06*9ird(B{M;?) zYt76#y*MTNQeZJh3)8_!i2P`z6Oe*9S3b(%{d6zRk83XuOOUhpaHyD&q-#Q{0JF!q z&W1-2M4{Q7It-6Jcf+O+$Nc1%gWMhCGdV;`q1X(A^WF@r5h+54Hj_pxE6Mi?;BrpC z4Gd`hZ}><_g9+yxwV7%*%{C`%$KZH1J*K#5ozwL9v&k#nWIbd2+GKp*w)-ot4I ztu5BoMp_W7eIo&Xa;7M3udPY%@IPZF<$4_A;6TJ_BMBziY@`%D=fe8airgFt8(W9v zWev=YQTP??Y#aKmA51guq$KSq!mz3^H;go1q|zf)pO3*i9M3Gr5!fN}d&u)ReVi;8 z8Y#qci6Sq+zA*PR+Y%qLB0E&vBwmw+tG>MVfX~H)kDm5?5?Pw>tR+a5!lHdvyGv4 zQdH$Zkbm?3x^5u-mD_)z8RiQAt?Z0r;FuBL<4;}O0RUXyu$+=XFZI^mwfs?JY_VTm z1|E(cGQucT1T3{GQq`ej(-1J%L9D;U&-vLoa7llZFDOd`aTj4a&z)=rotTRXB)<^#=E$F#ArG0SJ_Vm$GcAr$CuTF z{U$)(T1_fJj8kQ`B?0ME2vx||p}vgKQmg4e{-s#~c{M+D6ZCYH>};+*bSL_7f2@JA zVv{5){;wGi(Br6<;#?-HAzDvUoli3$$8Q;s`w`F<~4aM3&u%0tk=|q)o1JI*k2`djwu{ z%~2QjTycd>HtN(ZjP6c+YZ*nh8Z%X5_a$_xi# zxuz3$p0w5di94FOVJc1$Akph z8S^t?Td6%c<*aB4CZP#A0Wd(w!`@BlRdC?7hot7KZhLXJbK;YOVF7Wd016T=Gw@Pu_u z1n&SSodLigt%U}X1fVj_jJjjDCVO-CPay9?%GE$CQf9{}5l6pZ3>`W?B}h!4kCWe@ z{*zWes?>T>PC!S)POTbSF?p;;XfUx<%gK&KH}2E_HS?bW#Gr;yj*?Xb-;Dt7d7-3o zt=cGy9*=BwjOe7@Wd9`YYpyXWrrUC0?m5bv1Cf>N$t0z-A9YKsxn=aR5&pA$IStK| z_SGl|rD6c&jZ;A+j!7xCq?UqAz8?$0*`&RAEl!~xr88C=36t7!;FILQCkO#3r!Hfc z;BE|m4aJ>(&^DLY@COX{E{w-s_Vm~tDDN-%u*(r=2{Giutba()C32H-1K!GWg*a1>tf|=rE_oK-8>6bbI;x<R8~Z643L2qCaA2th>3TBufFmqgdG6z96iOI{iuyA~z12&E14AghL* zY1l_xYs+zL-k*GhnPGSr1-`xItlkJb8bSy*5a zz;SmXX~?;TP0;mta@$j`(zFW_#wT{S<9+S|rn;&uytC5u$jfoA8?7p{l&)!^2b()v zzCJ8gsL(2e5jOcTC(jdZ@tW3M*{(z`E^+=WtX^1Pq9+3}s-f}L$-Dm$S81+DlVajz zSWXB|z5uRs!dlYOLldgH1J^(CtF%VZkY~$-Llw;s>4!rgJmdjDs4}kQNyz;Zze@Wb z-~RBsKjI&u)rJ4y0n~qh!hZMeC`f-5zxC>?O_1Je?%2S97woO|&Wqe4hca6oO6k_G zZp|2^6DveJGo0bGgVK2{UvTZ0A1<$FpKSu->krGzv@+bI-7Yu~u*in;Q83Ba6w)@} zSe%A?X8_R`!24HRKk{Prcz*lKHX`Q1&G6qjGee@(_?{CQu!sHbQ6v+=lJCK*)_wBs zgqt|ELcw+(!dYN&i_MS)RLcSX7#HzZg`w-RF$!in2Y?)d!LR@PomT$>5%_Ok|M|mm zxVxi$CO}L+hX`>bhHPfTH=eNo*))R0ce+Mn&zmDMv9?Ez$-0n)=QCw2rw4V0A-;Q` zTTnUBQ829Mnud}ttMV57_v*>S3%Kq&6u%QTG*0>95a%4T=(*JZXrif(g}7`{Tjbg= z9_Z=hsU+ZBsf8`%_yR6-Zh#aZn@IwTsxSr%_SpXw+{0QjEy0|tzOwBE10Zvfst?q# zabo4zzR~G-Bh!BZ|B#)n!K@dqT22yb(5M`(P_=@2B&T2`D++OB zV<}jBoMZt>F1w1cM_1lRcPnq{hX@IuFd7c~thqr7u~*GKb*>nWV#HC$Q2e4om8El7PIBN8Q>Ws;)IoDv^pK$d_SvtP|@j!T-oClGc zDu+`U*xR+Kl*TT-clkb%ZDpu8N=;NKLcmRD_~MZRd9n4Buey)c(~+AzZ%n~N!dXTi zaLAJ4B5fr*5dciF<0aQ4@Q}cxx4k^K`)mF9U}DH_^ftk~6eV%UZim?y3&-(5yX2x% zGH%QOTT=JydM@kXOrvg+?Xts4fuiOR6Jk#fHaajE4A1InZ=*reJkw%#w~3Rsn^oPa zT=*7_IO>W5*BrB$fh-k>hgQZVyyrNjt=)DC=T<98v5@GB1BSh|BD0gdmq1)wsp~cx z-myXK*PL)`NiE!3mG2%aq)XxgUb0oFwUT`tt*i3L_4bON!nRYTn?OnE1dV2@(q40!dI@CRRLvjc7_yrR0aKk8z|=uF<0)B_pwEv$=mRJ11lpM^12n?C zdyb!D44q7t@7&MSuX8hYvs+zP1@D#@|+-c_ZiYtq)Mv9SQVNZ#l= z40neB?>d_d*;-m1JLGZ?GM=>FFcEOTp~z$%@|r6s*P5}_JYQ$IoXnV!EcOtLI32?D zURBW8?=`%r{vw3SPNHkwHDjV6jia;3g9bj zlWuYP+A-^RkM3@e-Z)_e?JX5BvhBRmq#(}0wQ#+{YLlAAk2Vt-$gQ^7>gAMZt*Dig zodl@>j;U~Yh!!|JI2PMYa&26e?$Mo0HcOo}SBg=Q_j8X4XvtLp)zMT`UFuOwcynf# z@sKAl409g<6yKt++sCf zE*c-;&2+WFZ|$`aY)VlwXX@1mU?MGh7k#a*XhZ9A7h6G92l=J>**M;BNU+B-P2)J( z6lBA(EnL#CmkN#*j%_9w*}X=p+r{O~F^=U>oZ%cCtGx~ryA1yeOKKBA7S`x?Cy74 z*ke~sVpqak(}^1g^w1ZYH{jHY=BhK+LVmB~aRzq7F?P?UhYmEQ*kf2vW0-UUn>2Xa zg^65^B}ia8tzf8g@i4PpTP7Z47_80)rk4zJvKT$1klyc@vd6HQ#IVz@RmXR;IdCE$ zcun4Nk!z=;PpUV)QyfSh=J>4q?zi&UW7ke%*TPnU>IJ)gc>2@3-^W zxs~^re2xhq&ON@ zK`A9e2{MdhnxdCfw~OD>L8Nu=Jw1|a^4Hg|zxtT5;2K{DcoNdG9_q}Y*AX0skb{rK z`5g`qBCGTAcg!04D2LL^YLsO2fNS7ECX3vX7czB~eIU|qhr@$V>fDNFd<{RwV7JW} zuJKqM*E5a~M!5nds~o9&AEn)~2IwGkIyaPfib)$&*Fy|rO$wsc>4p;tg<4xIy;*6? z`etXr;z77{W^j0<|JR_KRk6igG8JaLs0>1i7!(m~X8b}L}N zXV@OYaTRE=UN*3IcTj{nh?~xC%OB|Qw$Ji3Q_pJ38~ z7@U{&BmHRiSf9Afd+@#vy+AnJxHv9l8KRIa#3p6YDePP?9K>R51fG}mBW-r~Sf94t zsidN+BbXAfn2e{w)%cx|PSrp$x|DVl*I_5t`FTImK6sD!Y2J?JtT&{_<|d zzLM%&WjDGV8|Pf%+PiURmBe0!tfLgUv=(857KaV7%-fk!oJ&ARt>-cBH#>#_`^Sb& z^TQPu{Iblx<7$Gl*YDER)$IF49gx}M;AfwG_xkhM|IOq7e=sqvEk4Yp2OmFjdHrVg z`nHwJep!YrshJ%9&&01^4|!5M)dulPya&&i<0N}+u>uTGU_?+$6WQSaao-zLy=;(} zC*(NMMyCJSdKgR31#@f^q=)*-0fv~9Uf3#IPOfRykJin8eQC9&uf*5lU;eyK`rjSy zbCu9eQrnOk2FuEq1F{0-6l9f5*2Y=@I8RM;I(4KH%*i41`J*Mtb1y!bE?l7@brb** z2vKNlWt7UmQpm@$ooMbB#;scgQmr28?I5!Kw1>^;|Kx&A#baA?_0*g>O-yysm30M! zGyhNUUC~w@Skf> zqPpH(t`MN(fy3joaLNb@mfkg0MJ+aS@4qCXvJllW!+huJ4CP3OAK67$qR&@Req?8l z4<;sOaK|NJEa82@3}mHYJY^$TKWGTx7W|PEv>p0e4<<&;>)dsZ<13$Aqg^<2sW~+0JX7_ zyS)YG9b(DwJ&@NbsnL=Qj9&%K*IRG(ay000gR(5q+RUXNrH3*IDPz?uOlAV&q)=@; z)>wRS>#p{kJdL!Duvjg&Stc&lmDtT1aO7Hsy~2B$kI=PbOy#H+ z7Zi{q#GlB$MbVS9+SOR?Xc0o%pX=##gAYJ8B?(GgSxaijS+6nQQaa;f)15k3yX73nWJnn*+4j6`&K}}LKAn+0Z_HS9;J<%;l%W_K_Am-A% zkj^b;p5eHB++p;3C(2;-mPg6h_?kL5zOI!7Zd^)SeigrKSrTl=FuEOO!h{ayGOaBoN)fu*^-Co@K`!lWK>Gk#31K zBaKef0ki_Q<4#zaK-?;@c+RGQC`gCHEw|WsIuj#~tG&`a2RJC&7t5_Hd*!tKO1uzF z*ero3lJs_`x@|nb!Sl%F<>mKcTOIHzV_VVjZDo})2^Of}s^jcU=8Uom`D~mIqzNi$ z`>t#i9J$5LGn^Hrx40pBkR5rP9naBH8PF2iGjZb_uC4|YU<>d_PFef4?w{mUeEt2} zsd&hZ_g}Ltsx>M)7B-IaRZNnwjv_1t=P9U`YI2)pQ5Cj;)ApY&2LA!;qNdn-g0(NI zhY4=j7|qERVS5k0c9>(So=_Lnp1m$Asa70Uud1#nZp0l$Dk=-b-R&(@q58YmMfEvoK_1J5Ms8XHpqTeyLBIJ z75-dxQFY)3BoNh67w(muoro$op>^}lRIk){&4}l$i&}eDIk7{~@HisZ45<);D%kE@ z@iL8;5_pEXs1(>w3>!UGF4{o^%<4Tii?E!`Z&RV;Rau`@7uBfXa&MgI%x$AP%z;P- zdm@BFp0xFLygkMf>!OAL6jHgrlGi-%23EV_2I;;g6HE>?TATFAby2yuvI)@%DqM|L z=YebxI2j(0GroRLo})G1-3q|Uts$YHs2lU$b=%2rp{Vv#b9dLf@y6_s2gUAQ|0 zFcIg|6PM1=qIGK`JK$tE(hmMfRZ%IYU^U;*HNNk<9{-4SQ8(L`|8B2a`2xKw`2iNx$>{x? zP4w=QB&&q8j_+2W!iM@=N<-At1XHMO)=RZ>6=#~;yM&=#{1$#+j(C9YJl@%7Jm60S zzN=3SzTYk9>o-B~vPCR5#8@+207#m`^|kR5QY~hwYHBCMI{dh<=gQqp&H~@ra)g1N z1T$uN;EJGW8}M4g#(d&>w+W% zU{aj1Gd2>w$6WNgT7jD|^lO@ayGf>MEGqy_<^unjOYS*XSIu=&iMS{1c+==Lu}6G! zDs?0I_hCTjr~z?WhwQh3E2XQRWCV~tcI|eEyf}$IPD-~Pm{JZ6U!?++<`@gZwu8qZ zkK^S{4^RGS^h=4}s0eFYbD64cxvX%&5r!y?Ub$55D3oVXZVhW^%U2VSrH;{ACAH{* zue2+1h0W@?V|r^%R*u;nWqY;cioyXq_O^b4UVc!)Bnj*2WLnF2g5~?VYT5UWsfA=cTp5UllQmPBLX2 zJmsc9c-9|b1M#xA!u)Ey%jS~S$8Jf+5HA%|8`mV|#+!?XglqulyTmG5srhbk0)js~ zJ7d?3V|*#CZRd(9URtj2WI1HJB_Xw}3d$blzL|vNHzD&H$nRn2Por13R{G-gOYr>B z=-zLw-xQjmc=kVNZj)#Tr;7VS!U~ems9d3#HXDY^xt3;T?A)xp@EhI2F@`T@i$QE5 z)5rI=-#P;(&53GD?8C8zohb&wH_8ATt_~$3Gt}>NO!~^aSf*;oAsQu~2bWgqV(6Jf z^wDqvRTZIm?u<~0VzE?oIfhHW{_4-xy#Ak?gH<~Xp`Qt#Le32i?X&;aujI z`x$d7XD{_$K=(lC1)bTRvzD)&oFhB0$3&D#_*jX9PFV&ak7iu!IS((zjJCa9<)i9Xz~ zHg>KOG%5@o$DF&dU*a}5o08Ph1xeK#h z=1-ztdjl@wURRE5T4)ZkWY02}t?bTbXU0ten)`v_6%<^(oLKu?W#za>5SE$C99gd5 z6}*r=YTxm$$w%CbezqnpPNwZk>a{y=D_{(#AXvZ^OBjmsz-qRYG&bu8*gl1F(^fla zlqj+CtpR{|;vH{Fq#R7KS&n`H%AsXdb$f4jg z%~xFohOH;$whRA=OIf+xdo6rj!}UTf_cC`KGNwfCG_9>0i*W=Eze9RGmMNrR=^646 zYE=#uLoKJKRUG&10f1yOqjAgw>0PEL6Sjpcd6z^AAP4ZMIDlD-p_irgDWyJYXl+jK zuORKEgs~5i-npt4pdE>zG4WDinN=!1=`jm;ce*#`UV6+&)+oKR{2@=)gNT_)R< z-Y`wb&NU>733DC%{$;}b`@5b>6YpShvSa=J;VxaidHXQC9|q5_FK@q?F%MtN7Cg*u zFCWU=FJ||b*KaV1cQ-%d?}uNm7%lT|!2eutQWMMHuh(Vn}B+u`D2M$ToN1{ zyPNv{>-YD|f$om;nM|u{wN9N&!gPpi6FsymWCx5u&ce*4JJ-)`T21WX<}_esPF&iN zTOxW+qr=%$nJ~tXwWGZ#sNHJiW@y`IHjE3sdNK{)OYRsPjTMs7?V=Mx@>(=)U@k|% z6FrV|wccpEF}!qhdqV%XY{&t`Gty$m8Fz8wuC~&4Cj%Bxjd!tHu=+^u*D_B{#%>j` z50|`#mBq!uI_Ew#Pf{>LUxGf`&1yj(kic!RZ{}J}CeNmfs}`WMv3ciV zUk+`3UC)pynGCk%arPg{Z7l!eh^7r7wCoEv)m5G=Qbz7D+%mVZ#s(;r0r+_6jvnlI zA2z4|@%2QzK2j()0Hkq^HeM(N zQ!bb!H@z@k32BC|UfDxOz{-a#(6!p8!)Qy6L&Q&_P1c24gBPtY%G(x>&x7($xkL}S z1NM(`E;gv2&bg)pdETYy+A!+iE^>bG=6I>dxX?#??i?b1675i`?oBstKf=<+HIbTZ zqO}~WOtD5g>RnKC3F1vIMXug z!~QrPvvb^!#p)%>5&PW*0Ej?$zmC<@_$N@*+y_@#Ln+2^q$vq#$+cH!L0cY(dp=A$ zaa$qJS;_+-Dn{f6QR`Fm)ByfB0_F}g4kbq$DYKj=fQ?`#-u6)=&;w}-98(}I-)1L= ze-t1_*B;w`RLn7Xx2_d1JeW>eWo{&u${|j8ETct~BWaHkdPPV;5byiJTNNgJW-$cB4(?7R$RSU1;OM z1lqBHzZ$r8TjY{rod4ChQB8zd))j-SF<;(5`f-9+Gp=?Z^f=|Da+h5EA=v6!wg5l@ zJ_u43+dMmN+<9!m_bE?Z>RdBS6AIiEQn5Hs&|xKWM=`BU2ecRse%|D9B~+&KTmn}y zH%*jcxM5!?z>D}xw@_jPq&K6E>TR{LAcg1y9>xvy5rH~&ulJm*hvXLI2Ll~gJ#l6xdGfupC%GPu z)Y*u$cb50J4BNpiakerRo|x|Y!{znGc7p7INS00tiZ2R4K&W7nLFCT)zP50e&6s1~ zsW7_h4INvsDX+JVq$9ARTmQwgGZ2D^s@Xpzao97`SUZfYtwpopqeIMqS(4O<}Y#?6s9PW6zI%T^z~5qiE!l56aZq2DK`6iexwCEyY0 zI*v=iazxp9HVSsW2~r>HB>dDga_3D^(5sMyjkwE2<;GcDa4Tt| zu)|za=MpTEdkXsk@l-uY9b0w!j4A9{Ms6S+M0K1tA0m*3hFt6^njEEZX4H-I)Wl|A zHOx#4Q5Fnmuvf@nE|Z&qaIy~G^mwGQ=o6B;Lv1T3&66f#gZhNbRTCU?xoTp^Ymtul#)o=&|M?qVT++I{nb{T*N z8b%(pE)S=2Zw4%#CH;A%gx+W(bTgG8y#yu7V2@p}F(uKA)LGR|CQWD^{hM*84)+%x zHE^H-f^{7jg)gvOj3T+tUC0#<3tmD*{UfJ&|5h-c4JRjI=?<}3n$z5%^F)_X*J4sG zv;p&Vm`g`?W;|zG?FVQ56X$>0INwN!waA5OJnT6m*@H?s2~AYGwwk-(oPhK7*()_E z6(Nax5!PnbhrNmj94J(9J!{5CRUQNR=daWh8iPPi^^RN*B*rE}W8j>73WFiQQz_J-Gq4m#8<`=CMLMYbW<43z0Q;xG`)2^wR2B9j(5&y3YZ*JP!PT26WVF=H zWj}r`{ETKs3N5MDgiFKSXbK!t2r%Gm&fZj)+Hr{eB%n#2dJhVlg_X0>#Futh8b>iS z=e_M}bPk>l@KrOdbNo+<906J~jQ*OmATnJUZLR5JF!$*IzslHCHaI51b84rAAW~V> zlwwdox=M{-BR$cqN);A(h3IdUVIR((5n&>rWs)+0UAe$QWH*r_gil8GXUU;xfQbc z2A%D>k(1^C2P-mnCUgxOSV4hjeK;NDFswf}SCdj)BG+^0Jp8T=ha$6YpPLX8WN|9h zG`%j|_D?WB3g!V&t@6ZsAsDXZ5=CsBzNebj2Dnd~jYJEr<{|2ta`O=Eev7AnV);)S z%V%qvag|G4>Y>9h)|msygN?!Glyo=p1T61=3!lA)9%>3W*?I1(6$%s*v4pNMD%ont z?r7zv9XNlcya=6TES&lpIdaZ%C2JjvD7wnzYyf!vgnah0W)(RrJ$1&A)^K(c*4N+v{-p>PdLBQRdE~YZ9QgQ=_N=es zw_bg{d77C1NgF)04XL0xC-9qh@)+9jq|izkzB#r z5|Av%1Sl_6mdZ3ehNQNMbEUHrX={S=&YU!(IMUpEt~}}jhxu~q4qup$UBdN?hGVVX>PPLt!l+sx)>qor8(3X|G>RG*v>(J#mWy zMWC#>0bK@et*OHBm1HQ6R@OSi_9?UzcM0X&A3c;8?~&uJxguxR+`Ym^oyWHLKGP@7 zH^5^K+!#X>Tlby|`-X~Lt~2Z>A4+pa(h-N9wV9+97tMtIR6o3u4uUU;p0nZXTgTL$ z=#AY90P|UmXNWBh^F|WMdNflK<3fw6>I{R7OR;Flp+&I?$K{?)j?Vb;n!<tX6(rw%= zvAw{L38RJJLHVgXLJxpd=Po_iZ> z|9EQu5JuVvfB%<1Z!x^r-Z84CA$o)GkiuMfFaUZ4_PV6lA*VCt?VLhC&hFWz)HCp# za?FzZFeb+l?A*LNlE%@M)i;hb33|H;bU4EAr>lLMY@II}gw$M1J`913Txi7C;K-Mz z!n9)Hhq`u-d3gTeeNLQ2TLahTs9dl>a@#f)xx%grUIy%&xb``zICoa_y|E7VpZ=y_ z?Qe>)spK@*Lj=c0bFwK{4DVX$6fzd2*%SOtk5QP9<=FH*94dqKbUzNxm(gBwh5#4g z&RjjlDDH?-dZ|ronUCgMeW%Pzsl<=p{b|GHbOwJ@RystR6$=8%jpCuNxxsRgI$GUz z?fd;GpE)3Ny0ghEEje9UILpdN!32&CW^qr66>(Rse#F`IB*%w#LBagPT==QbFfjA>*wRe6Mwqn!(`cru+zEl8aulhjv2=+`V>Pe#(Fo({nK4- zSam0r<%9ulL@S*U8P=RgQYP7{l`^{9pXzG!g&W9sCnz_r-JfAWDonhU8vpO8jTZ-c zs;jM(Sh>-zu%3&$Hte{R+1aGEs*)OThC0#NbT$u++jU9k5gX?ldDIcpq0|dDnt(+E zxn{Zt^p}R)&BtVluP%oZ9ZzTD*&pOt9pIUc@~moiozYls9K>E*!r78txK7#Fl51=7 zH0RUVShfdQKHz!!Mjd52<{YU4+-JpY$~fjFDVKx~P+Y|;Lq445boz~bF@Jsi`eRls z0RRMFx+s~i-;{^4$~FRIJLObYg>pN|<8(HE;?jNk1r$X z+lL%G_mklZna-89YT!a!sq|np08%^2{dBgCJkq{wgXNchJT9nok1F$>OXQj=F%E81 zBQzHQtvOq#^J%W9v+)`a9$LT8^Z)n1|L4p9Jj%891jNBv<*stITj0N3O9R)skmaiF z&YtFgIv3YF(OM_@pQNg=hP@NbaV8lTtjH2JzBRpg?VV9&THEPQ*#Gp~w4P2z0k0+r zz-|X02~G)-6dVQzKvxFKaP5@xb00k{**V1>r_?|DPJhaMrzvtRUdRDC6htnt2&45$ zI9p3?Hn$%134N#O{C%fAr)5e8(?N12VQkTuv=$ONyA>EzS{_YCCi&Bu`%e3oLx~0E zM&=Q6^_FC~olTIic^m%eC-?O`(f2jA?{xRAl1f>)<~{rCVW@EmYV(<@=OSbNXivXq z?K|z9F)1e!)myIasW>y56B!I7PiQX4e5AVPbM~E1scUI!5ZG*dDnj5AOlGJ(BLm(F zVZ8a;)B8>row&!b2#u}B?xM(A6XWbgIhsykydlAp`%ddjAPGCJ$jmo$Sc(koiOsCJ z-dy)l9Z6Dsdf(|_W323>szdp!$e!b%Fa=!!ra+CGV>tv*?>n6!NOY)LRLlJ+VAYCf zsu4Lk-(|$gkM^B@VgqOZaG!M&oog-`g`Jlid7%wB&aHHqlw-@jOZODASyc&)&;H1v zwifq*D?wNltj`j^{1@}wCZA+RImP0>GvRK0!lE{vWCe#cg zu6*3%a$ZK%vX1JH(+UdJL{S-|gqMj6c~~t1_lPJ8lH5wtMfphp{?qI>{TrnqLvCo| z;CapcaUsr?h)#2Fu>$kR=%|-A*Q(bWz&ngCI*`Ti&lKcOI|W&3Lq0=ICsKU10)!ho? zx)I!BLCB^;%(Y9P(^GN$`BIQouF*DVQimnJGDkYvK3@uQldx?Ypj`8fTV588aWJ5F)%engSMYqvuo9>u z@a<|!k?~xW09Fx}c1w-#4Vr&Z5+olB!WdKb5h| z5NlIj3#U2r-WmXSfJrR4DMm&qRXIxf3E9skWXclw-P2I9R7#OyEs11(=B)eFY5bb? zDVe}Yvsse6C_!@^1()v1iiCohR(otl>#=+Nr=?w|W~n(a+dSt!L*jsA?wS~|$9h%0 z#Yr&!(@H^hD&c%uDXQiY!$T+_H&3!IhgMCHKGq44{!>apb~yTwcM*0h=h1QKK_JWh zVw&u_xj=?r=XSBY7$Onj>?t#hgA7;ZaSHOK3CQx>5 zv#WOf=Hcx&o*lk%%ikC*0RElF-^Khbe&VbZc4|+lIpGMivTzePYlPQSyXTg}D-5-O zx9vl@dSBZ`zq@&NaeH%r!K1hzN4$R^xdC}YJk-1M>0r|2W|QR5J`MyiKJi~%-8zJ( zyJ%x^ryNPA3`Tl~Skg{C)L)hIgP%@})EvYLb~auoWix#F%!YtW&FergLb z<(s!a50}@ow*v!T%$S2OW(yAR#zT1vAaXf?iMyMh@%O_oS1kE?lJP%RVCnOn#J2Vfq&&?6B2cU_9Y81Sg?vne% z+9em}E}Y9J*F*KPW)h`$AWzHXkF9k?FFZi2ZAwyfblfAi zY-Yb|vA%es7xHmp8Iv5nHHy8%k?jdCQ0W5Hl`0YVITbT{%eJ6q=GJeK_gL5Iu0Rfi z*4+6*vvaz0nQe{=CQt^xY$m$#QVSra=5pBpd3bH-Hcltrbn%_*)>HSaIyk$f815*e z3Rk+I@lt$?xqsw!MP8i5yw=HCSESGZLeUh!ln{y;Ze?06wxmAlh1;C!75USsw@`rp zpnfE~uc<+0hh{`C#;W4Dy7v)x6f^rc+3TejkIOM_09JWtYaY5&7A`K&mGOWcl#@ER zhFvMg;}`~RiGDTrwkHeW3q@wQ?(|RrlM;y@b0>)405~yu?N?9eP*&eaQG4Hj{JB+A zqsrI$U4+hc0i(~})@YI)FV1&x?>(NxiG~50S|a;kqvICAHHy$U{ImHMlI9Gj@$3ht z_9$gmljjAWRr#Yy4(HMlZi1rTv=bjB$I{Xsig%1=aON_md=- zy>&x-FI6DrfiHULh4K-Iu`$W(&34MP_s~_sDR0ej{!!rquqyD?fAv^zt}AhL+7D8f z6DQt4jdh-Q=dI=Jr-CD9A!8yrA_Z+TnzuZV+KAIz^laY2c1L2?Vu@a1TgytZh@mikwYr|;)mEQA=K;qo=A1;~>{YBimpBKm(-o(! zYw4^S%_Cj#y&V|JeD4Nk9tjro%3BVCl}fW*Qn%F~B9e`pKOfm7j{We{^B^v@6E}T{afSkqwi<&$uH)*>B zk{fRtv&H8I=hNpsg-R7W4CEBM)}7@(7C3laV?WfOLp!?PHun0aew$XX%@6@JfI*JI zj!k519E^$XyElL|NAUB85MOQe=|VjRXMxbAup9_$GDpsVSs@cw&C{(ZHwK;tO1pw> z`gG%b<<<=sU`SkaleswyM1P92m8cNl;An-7rUCjWun!&>`Ep6w6v5L4xaHkT0x^D!t4q*ZY!<=J1q0&x+*Tip=qf z%v&p}#%)}O)WqRQvARj5mJ|ZlY)ex3yA|2vQ~E4?_u%cyzLilBa9fO7m&hsxkVm{p zYF%7Sij4v@9qYI2aEB-JStP<~8ZZ~)-dG5ZL5kqQq61UOZ1D6w#07?8v^m2neKHUD z{7vo}f%Klox&NSAb-(+^Z@&J=-?gLz{P&`j{^sjnFJ8P6o1}jG+vak-;DbW*0WB0W&4NW$xyuWyCY@!WL;27soTdn2@I{Nhue$Nl?Wr`?mjL?hm8LUWnm zKX7doUrE-eV9zFRax-e`^Uri&$!lni9VKJF&{Lgbl|@`gSf1=s;UILf(i(#FB8lr*+Xdym*bZX#e=Gu}#>VEHy4A@#Vs?BdkhvFG!^=Y_NLz zVm2+k|3SPw|5gc$KAN2DQgVw$;FHOk=unCpCj&!NKk($a@M%B#yVjnv+bo+`c@ZVU zAyRMZx5_9K41X8x16N-2FkGK1U;pvR=Ylm<5n270N(&rVmY^~nnM$%hfL5nP!VZRh z&&WCl>3Pn%@Qsp*uh9iIA;>HCz7=(PwCd}~%ez+{S%{0FJtkTheX-SeW}b-MqA6x8 z*p&yX-VObpk!#DOR&0k-OdmcJ!}rNm;-FIw`Ha)RXlzI&Q_Pz}y)66O`% z-!!zF6>NRc?Olr2HGXNCQN8o z)=ffi;`VZrb>S;Jz=h2sZ!WTv_(S_x-gjUAxzp8Z*pXk!JInZN-YeioEO}kDQL*@Yy(<0&;QZi6kz@$uzV90sJg>{~9f5ERl-?vM9cUnaFGh{^wAEA|WUDn(JC0XnP z(q?g0RI8HCn>ubwHVhe>=idmJ-SV5?uK$|2t)sl4Vxcm9Agez7H!f}m0Ge*K0gSR|5!>!%F((K^`a7xhp8Gi-R3rM*6K89C7uR>d@v;= zD@E)q7gcT=SX~Bhh~+@ZZ65C z_{6*|=@uBCd4XvF2%JmO7e87<75c@7_@CONDHE($iAxtOV?8PG=r&rCG?l5hYjo)y z9!>pc^JoeHcAa4&Wm{Y07>27Ry|@qztPi_ce_S)~Kfy zR7@e$k8Mt0xj%zb5eF4vZG|O82pr>B&n`H-)NKP&-fD#%{_N;K!<*~2HCHX-!Y;cb z44g%}R$W%5eYM+ZAo7R3xk1GkixMpN%P={~S|k==JJ_sNW>G&1n);YW)1+KBgAq$1 zvM-RYe9LC=e^g3Ek=L`ZiVu1;iz_0l;uq(jmdz@d9Ln;w)omptzdmSk@llUvNiNpF zkQtXoOTOS>Bvg@@^@=1Re>^%_srMyYJujFtIlfE z{*=2v>P+2W+BoBBPDIB}jJQ-QJBw&YG-GTw_HioipWUO0iN>uM03gA3SqjG#Yl@4b zxgf>5Msbgk|KmNH*28`hLV$}IaT#ew!CqaIbuwF(L&*1T<1gjWyi{)dN5vu+m0SKs{oZ~nL6KF+fi_A5yKn|teQ ztgdxkA~Fvm0|yAtf@ETqY4t|k0bJA~Bj3p7O8-W!OO1i$fekhLJ8TSl;{*FL6~hhirxaN;1c)`Nj9Malol`A_ zZFL&p^pS1x_1_yI)T?QsCNuprnH6=7QS#|mv_4g%Q#E*f;<9WR!q~`k>nwsE1KnvI5VG4OUF>n_9gs<}}IaVA<~*yFjHeyD15pu1OHj zQ;4iM@2D7>er7=(Ec-npL(e;iCuVPR$7{@t2;n9evjw^z#OcGeYL)b^@$hbMNj%6R zlm$0An#EhgoNZs|Kw1~)J*#6^R?U1g?2X;Fyl>#**L72R@x07tBT@^d!3QR>V>b0H z76c};kdk#$g^=Q!^TF0WH-CI8l`xhPV_I}%`(o>G)wIBzShG~vRcxnOvqy{Hn~o1c zBt%WtI*5_%+|nY@GH&`3a!6Kg6;}M&{kpE+TcIzjzxe-GlE*s<-Uoh4sY_Mw?mIm>@K9X|B%bySDscbWxJ&TxW*W5M%W^Hk7 z)v29crGglIWXiW`+?@Nx(i_tQjF8Xf0|lo1l(1A6SiizS>cg^U!G4W7R=b`TG=01u z?_o*E?Y3RC(~zJC1itP_FJvtnjCa&cT)A<)WUqa66T#jblesFzrSS{Y2~C2 zn783+dZ3id!hcjOt|kaNcib28rsvkj=k6}XoIOcK`PCcCa20rm!U@oi`Y2Zx!!Aov znFY~SK)>xN^X}D*x>|MJp878x8o%OJCI*kzssRffGeBg4)t-~eu0&^U<5QG)!Cn4j z!i&80OZd<9id10~c?HB(f?^?KR<6#DE(jl-T>YlCc!!0jrdOmdV&*vjg}|y%HVfP~ z#Ux!rhvZhgcLmT{O}&hsctZLD=F?VFR*<2KZBf=T1_0^60u@ZFb}1%vJk!rwSpMlJ zB&NdJlGq{JGbz<3*w0V{1$Zs3Qo{~;Z0&vg2}wxrS4vICMp`CGmbS(eM6lizEmbt9 zeab)jiUKXe@G=-2*07LIGSq@%S@R|_CBMn-+{^so=PSMvMaKrpC9<+N-%&OwzzSOs zYI%baKC^y4$MaPcAr_&wMXroj&I$&J$Kq9SIaU{yK3)6=A2g)H6}D_&l9S#cp@ zBBJ0tyf8s+Uo0?P$y}9nOoM1~0W~c_3cskd!6tCPf{zM!eeB^37(C`sSj-~P+;tKt zSg%X<2}(BDR8JlJAAC65WCa3dBV$1mtgZ~;aqPbqOA-|V^l@zZ2cA;^Y(-!UohHyV z85<5UQx_noHJM^q-}K9b#c#Mo#+JqF2v&>0xlwHp#Wk9$UmsDnOVoY5~ng-`$V?f0Ml;_rU*)o*_N z>F>W@gjB!!)qRJp^nLp7hu^mjTmOoArC+Y!|MCxgWedA+{kZmCT|Zs^`pZB3KfnLx z4|V(HPd|KHzWF}=_~Q@%w*2_ZAHNCj?6dXh+dq_Ve*dTMzWcXtzyJL=uYZ2|!@uth zrN904r?3C<3z|smf1IJ3mX#{Qtdhm&17GEK~kl|Ma()$_wHg zFw61J&w+Fcyt+l;({0T((BeiAqZa{VUB$d9f7%3~KM~#yy}WO1FImCE@u+YSGMm*} z?-yrRWes~St*3!7cVmyTm+uQI_-@5ePHV}$~3DzCFlTmT&cn7{NO?6cCcIN_Vnnm zdP@TSEQRd@S^tkcah5d&Z)>VsC=ZW)8vFU7OO84S5toe-RmPJ6JhSo>xIySx*_GkQ zOuFxGrnvjZbwZU#nZFVTr zcasOdg;u+?tj1rTo6q~5UDk;u=`Xp?OO3LBZaKbjenk1(f4E!lx8MKaPk+2wZK=`u z%=(o&P*1a2Pho%Y+KS|h6hb_-%Z^t2r5CHkr~ih9_4-F^#j5Q|&98sBKj!a$_-1@{ zms-C0wG_2D7V(4}qq?L-_1k6xjOb|Z12N5mrGIIDKB=HJ`3h!!PHV1N))fL%ZhX4k zmLz1Q^G-zQ%UIogI=Vet=7088dhMle(MOuq-I?Z?s2uM4XQ1-2eL5V4zRQo<|+N|-4>ZngKq*q<-=i_56b zu-?cZ7&Zc`*|2@DWCBGBi;_hYo3IRjAAuYmtoJ{!?%9Cp=xJYUU|Jqd;Hf7}IH1x9~9xMWQtfmCbyk)Yh)Qb|;DuarT7kww0Z=J!bN;+w{)eg| zq-s@*-C`e1jGUR+3v;U4krqTz_P1lS!wBAYYY+Dqf9P3Y(m14c3GUqiGQdrfG){K%V7~u;SX27*tVS4t+c8ewtM7q*&OSLIuTqFtImhk`bR1;ybbi8sl=ePE^&j( zl9E%Gn0g3IIg?f-a7)=n;la6E<&Xc4pZM;t#(%dew~TRJRI4-$fT3R$fY0Bg@9Wn; zd{*jw3-Y%BUsqWk>USrahr2a$=e&apQVU|Gvgmv#N()9Zr&Z}n+Bd+pw&FoUoE{&%0sn8p1Md`Xa!ba0v}I;(0~ z;Oi3DiY`UNpq>Qj{Enxp|4ZH?k}vgCMIU!$kuPc5Q&ryBHc&5CL?HV*K`(vRYQr7SPh{<$8)x$oN)S7+aZfE+d`Y-EGcPf$p4nvT@ z$=`kY{)g|^8@t-9q8PSoDl7BGneR{n^kh(>tTx7^ZdK%isfhT@R08{g9Z$ux-dF{E zSC#x0vu4m$TmT}Yjw=q)`sb$7*87oNDb5saOYT{}Mq5BN*2xE46w=jgb9WuY9!$l& zHH+g3RA1F50TZiZ9j915ECI#=Yirr$NtM$&PHa)wZ2s50gZ791&(Gl|DjSFpTbu}#+VW91$k!{UXo%9u55r%#y}t!25y>*&mZxie!Phg#~bZUE%K zFP`oC6bwMgFjo;V>-ma!V;A&)dTQ9Jt7GBe)_@uJ7*ZWpukx%8 z>a~a3dob+nsQUTEDs8=~Y(3*0tC%Y`_1P-0%jR`3TQc_Sbf?38UHelxgayL0vI$AS zxB*<1vagE-I~xHRs^p^vZ8ytZ-Z!vU5tfz}ta-QbX&#KtN-&$T0al-9P{<>8zDdx1 z*YTDr_!8?EC9!G)V*ndnwgm<*0ELB4KP?}=?AU5~-#w}Zre=<236YV~4wxZq;O7#y zDQ>XKo5E|z1)5ZAoEnFr@C=&}Jv-7MWhi}PW( zrc2kHe?IF2^p@SJw`2+a7KW@WycD>a1+qBfELDc!kB>`Df3B5?yOkUy#=Y60N%|}? zW%fmE1@zhETdWJq4|$t})Yrh2$E{|%VR(H*c$a1UXMR{X?~C(Sx9xDGecTS`aSfH< z{^l$D>tEma1EOW|RDeP6*$S~jZwkYjjUm)jw8SmA`U8x4VX~YyFSr}6BF>#h;HN+R zxTUf#|N6t9zGvj=Pk;O|ef#@=`Qs;?^{0Pn3;4w+uHYA+`U*h!WBHd~eER9z_PFrl z5C4Y${l|a*j^-B`1poCNmh_i9v%e4X=`zgq*V}^y2e|zH^@scKO8(3JN55ntX&9+S zg}SWmF*ka~F0uz;^@&OOFb3@N?t#BESNDK8ZrJ^CL$<&aT63UV6}Q5$;91OTUc9U( zZ&}2x92ZI%-hto!Bdmf&>1_k5WJ&7>@qQRg-=@9cpWRD% zN2N}h9zt$_kWuq}7fh=FuuAeZY!0Z#oI%$%*x2aTmB*Lo_uZ@j%__^qvG);(bcEq)0v`gs%FZYpi~KVWvod9ZDJW)_WeA>!KRT=av&ku2Ax zUyQq(fb=io`8Ok%RrG8T;^^@JzSCrUKwD!rK+9OdXTO> z5$EnT3}wO0aLKw;0uo7{8t8Z1{WJGJI;(Sr_Fq>vfP{@q3xj>ABx_BxV8R19A8md5j&uK_25!o}57S!Wx4O5G>)jvF^ue?ZVy> zqPPlZ@Swh&<$b>?cV?R~en*YD5VjPOUN#?E3-G|~5%f zf|6&lMe8$~{mQoKI0XS!R10M8qaqhvr@w)_eRRLWnh!?zNhFJ-Hd@h!UlsdKY8X0x zH34RbIW0CZju^sS-i?0w%QK_rxRsnXNIH5_1zSJH*#4JHIR~NYnXKt!-E!RcLwI)O zz?H5wFbgYdm$LSP+V~jaF=~o#vk%nFe&qt7qe-4;SxzcnGQIV%XZXrlSjsa2^+fGm zSUuy`9uDtsiyUI*{^=5rIXmFk3`32rMuDc6Y>Qjgv>9CZT+C@@lX1TGnzA|mVs`rN z!RUalR%XBGmC**Qo0=3bX3dc6Y2DU%-X!ScqQ8UTlnATx0fr5q!P;YEsy%!ZC!#}VN_LLw#qUy<-92YmuX+_MEm&XXUe)% znKew>C9oVgZZreSv|K#&oQ$i5x$}6{N0oz&+NwFm*TwMJdJ&G zUe5DIn07ox7IJ$)Z`Q7I&Y;sknO-~13->~|7RhofRTOIDUSQTN+MiY{+a+}avnw+G25cq0l zZZkV8>cP;l#O!=wnJkJn*m8MG1$LB5LWeau@!-ApidnA9ejdcIhK~eBUqr3+@=~7# zOhso{F_1d}cj3|4=ISQF1o*uh9&a#UqWWffYit9Fk}w#Lzu5`7l6IW1hO!7Z9eCxS3Hgq~+M zS3^nc%U*SEE#fsy6;|?qiIhx$sdE0}e!<7#9=a{hix)4lX%6C4i6Axsuq;BNso-4F zu%Xgp(RMicvnTIOmfFEcm4?8PFIORCgNwF`qJt~(G#S4S6>pu?+>5w-9(XV|cxqV% z`yM1-SN;yM4g<|uf%BGT35Y@}Ly86?GLb%aUvjWO3D@ zW$dDrkin^t9@t4^Fn#kPF{Y$no-G8PY}LVIK*d(a#=}HQE+{s$gPpA8w$;b3fxG4R zzr15~r<`_B=VGNtri#3P@9pAjT>)rSklSPUdbjwFDBdwTq4H+gPn6NOO2A~Jdu%PT zXd6sc=NG<@euJI+;7^+?Y12-ywMN~@^DZ(iB#0%h(gbWogzfrB(CxiJ&)>Gp{#MB) z?78&4XI*g2pkI^px+N_PFYUCnOGU>@F0Kc3YM>ne;z$Uo*1_5Taqq(dn$~Z zOpy(gRhDMk-1+;4MU&D$#X;Q9GQ zSC$#2A7*pSM5KUA09Kx99UwuYKlc7j4!Gx;t){d|j|KWtB%07kJ00SP<@`oS6{5(R!C9ER)(p9%^cXw z78O@*plnW~?8kMUy+F^K<$Ofe73aMILIW?et%9$BF{^b6M#U;lgLCg)oHuKKTB^bV zPLgeN1OP2S(!U@1jWX=m>=?Wxir-WLGdu`!=)hsdP|sen%}Xz68Rp1Xdz)B8n;xkm zD~tFCeJa!MuyNu~s3DgqM{jos4SQucwXmzCHTWj?-= zT}9aYwY(L&nsM@$X)Z;DR?dN$!VU`(X02M=n9_Y6mwlbs*JEj^HXmJ!4wsBpa}rg| zMd>#dWi@0rd-$x0`BN#gl@6=bXOZHHYaYyf^%8S(K;U5a85R}q7G;hXW!_j+u}QF% z{gP`7d$dI4&>Sjf0b6uS07i#(h4v@qU!3|3_eb0<${sJuzQumJv^O?vHBg6PUB9$t zCtR$MP#30=wJT+x2_Q>2}uL?|oq`VII5&Gfqbi`*^gt|MKaC|c1 zjrBmz!CcIm#cCMZ1jrE}vzZL!Sjte{RC;ggiN`1NnGQzZt?8ha9M=@z%HH2>g_O&% z$7!ZzcDeSfe@Y!CYOz`F3J-|GL;6fN=z&%hZ>=P(5e8mel&y@t;Y(4VgHs4#e=Vyt z_oeaV2}Jlj0`8$&m2Y8$kXIFzVf>nvbdW06Q(#B2y7|?(P3@$$JO&A$Nd-MRmp8Lp zs*s*RF;%auuw&yA*W?$);yRv{Beq?={u7Mwc_6~0rMv|Uv<*Sp7#3TD;={Kl(Ak!- z3TJ&TYK`{-KprE5&xG9GZpqbF^%gP^&Ly?QZIK(TcD_dBNMWD~qb76p^1eNRJb?zE z30gn7tT(ZNsy^VNEIKm|*;xlGNkTlhtw6ZxRi#&F#N({0(?q3fqSbpcmi`=hR=@x8 zn?L;U-M^1R`{PfSFaN)P2S$F8z=1%OO1~K89l-34?5vEYlcNZ3PllQ2eIvurc6+iC zZ1LX7#$ReuUCD}%xSbrLp1#&WSl7r#$4fHSm29n%x|3sY`j*TuU$(Xwuua@DUd!ysfaa$CxRuI! zyC<`TP1|y-jJ`A>yON{C8m){mhND+O$oxPAj|LQ-jm&Ct|(V z`=O0?A@qqe^JDrL{Gn7Utiu=8{gxYxA@!)c6Q*?;2Nr2FcCLV&7WT#yF8Vc4q}#;;8mK-e%sW7OZz-I!&&- zO)Yq+!Rc%6TAx}pxJpM`-hMnv>D}}-mMa=BM1_B0IxsJdXfuz-iRp%bRibE8CvsDd z_^c1@gICjmkxSdAMRo?8W~Q0G^GTT(AtLU|!36 z1h0rm$54UUPIi78`=b6p_Sm%jiCmN?$;wRX@1lB12FLDqO)B565XnaGXC^V6F{dB% zjK_f-4UN-MDxOZ9>}U1qvME-gJ>4`Rod_p8?s2Vx*Yf1NKn@bzdve+!gNFy3&b&hJ zHN-_c;WUsnV2D0uQ&4f7{eB(rILJafdv-(o3pU(RRv+Fk-=w6MC$|%1rj3aT1(7Ub#{>ro3}hf2VNcW_$yWEV50od#7hHUx zdK+0sH57Mn`-Mfvr9C1Ky)B}c?hme%>dTTImtZ1CYx=wu)cby7Yz5QtU(mQf)7M`4 zj?sbcA8eRU6yq&GemVOM<(cr2{ihB8R1l z8W}$`on>SPzCP`6^xL2hloi2_dtoPxbe)3%c_%o58zuX1M}bqDBqb~Lb`I8NLP-L= z6Z^*!S8I=CxL=_U4O2%?KdxbZ_v@j8nJ|{1V(es1({4}3bYzD~8W&-jnuVMl5KQ2H zP2|u~Z!`v=XHUh=lznL95A+8VemA}%aD$tE+k?;g&{oZ`R$!-M$Bq^T)U+!&>@jic zaAcEORfAQcg(Th2TvF|hAIG*$)DXIP1nO+hUKBb-Ax?hM_Zn7VIRDycXs^?ut<+MV z&l^UcGv}*zF8FY|XTTrkav%pgE^*ffCmo%a1QO|{+2LtRTq+w+c?J0FvS~+*rUbOA zIb~CrC^DQgIqTYhv!RQu!U1p}9Mxo~(p6``ULHp>Z|4{oK;DMw zj9(`W5HuOFTyVdz*j7L9Cbz49%&xNYLB%dffJ1sIFkVXdToD6^R zi0fZt?UNNs2J1sB6YVs#)5D8H2T_>j4bJY8-$T?+ZZ}*DKb$F$1e2KJrRvzmMT)tD z8`=FluH~*BT<6Z9E(E2gWkVKpj|Da_&TcD$Ce z2y`7pI65C@3wFpM2Y@|YOG@7k5@6e4e-C7L-*GlipZvR&{2i#eW3@5x9!wfP+qYOv zm+bUR*hy_bWvTJC@zdpj!c$!nJ1EA-65M?(cmGIU9sd5hhBl` zA$wn8?BU(Gg5blOb%oG}_wowB4{!Aqy&uYiEA~H-D7S{gfjqi3I}W7TttE0BLCq^Qe*EAysr$70 z^_ZWcxNwze*9}b zNY%yJ!P8-PV4D8sIX^r$_h%pa;MKDEPUU#DoZmdV=e6Iw`N6ciZM#40@U@jbUpvSL zZ?*Io`#$fZmtHzG_4zw7z14D%4_=wY4)#Wtv9iHvD&=qv_w~#I~gM@iRz_>6;t+JuBFGeJbaM1FB+PLd@sQP(a8I~ zAUP-&`E2Cu~$#Q?jBtr%avWh#kKr+;s>0~2! zq6B0hXksps`D8PZA!r7fdB%IPZm-&;LSMy+>L{f^#g{uRPAYWiAj4{!HpS@nc11F_ zWty02po-MJoBQrjyEsn8zNnw(VBlOzKtPagvz>b@x4 ziJ9sRks_&-1$#2I&Dd-m_6nY4t*B)|2Ef^2Dw1u8eQ0B~nD*0mTZd%Guxaej0W!$= zSWPnzT8z`MP-pvHp$y|~R`?gK**RSt{utUL49T#c_i`VLHN5QYYb|C>C9EIh11}jw zZ=^d&wb$+WHC}@YeIrM?cVsa&)-^*+LL1uswt&pA(RL(`Zy8}Cdm{!Jmw5UbT;C4N z;b3=Ik<{2AH1;$Gqo&^uuDytp3|^9Za@1j5`w-0jx23>&^y3T=-usWGi0#dqWU&`1 zEa>M|=tKJ;c2E*zz#ZTD6g;PaxwU@$?j)<|L1o>)DRmu$}gsC-CfvG$H!>W?|RlzouoxS&# z5@}Hk=2vt-?a8pDOqj9R3MHr-l&-jL17!&ktyaqjSSXuWNquI&O`vHjNCKFmIZco<3QSA+XGJU=SI)ZJJ|W>S^69CDy1R_=(7n1Vt(!r3v%Z zbKbU($qDnVkFkkDkRgpGSr(3id0Wrh& zXPq3xOonND`8rI?1`A8y4jViyCXoU$B;|!HCk25^0pnnhwcW4V!rpoPaU1rBZMmg- zkS9Kam?fH?c(aK33K@@Nopzuk^eeSO{x zCz~b~LVNRa%_(K~7Z*F$f;2&H-tvhY8%!rzM7N(f?DU}f#3eR=zvH;d%_?tqb05w@ zGJd@A5u~1*kc5Xg>=GyJ7v(jtbr%>6Xqw3Qvi~rc(eAmQem2>EnZaOt4)qPKf~eJm zUmyqk5QB1Ze8zV8ZM|-fu|b2m9lB-+Zg13(teeWC^cKR+CLpF_f!CQO7f+xW+D3Uec z@VqK5hVa((i0 zReetsuG};;U>?zihHYymYy{EfbUSLOR55X{Wz)3wwGcr}YC}3lzz3^L;?C@s1-sMJ zC1hV1A25MBJ_!&(+ZXzICke_zo;*uS@3@;x8kUUWm9&Iqe%cgVE2Z1lKp1k;wHmgB zXj8LV#r>)w036XvGo#~lm>O1+Zy#$q#ipTKRAVEn;3vBRY#Tb6GG*d30NEy{OI3KoPQM#*0RF#0N4E!gL@;v&ALJ;Psi$0JVGzyoC9^58{Z; z71Bdpt%KT}emnG6NRYuXlc{EDY`3B5F_}+>Kn-}GSnc)pXNZOAxiDs6= zfE_)|UGeE}7Sp&EJ%$&DImybPWgNl9av!W3!9V?prv(6;2}H1S!3df*ydo1hsPVN1 zsNIhp0RMv<;loPokCVQ4F(T0!-?=AiwzTYIJsI8sr#Rx&^*;2N6^r=h+^JH{ACnKq z#KdH*f%SqLamz8d>9+xcjU8k=L4iO#sRr3hOd1>=JcGP<{DTafsK%Z^3ry#M6CRP| zO-1g>q1%yd*>2(mMoJ4i_AE?5IKY4%A=lcd2}TD%2{TSBOqL$@M4L-mfuGJgGM?wc zDSiTsu(uknBcG{#>@msV!boQSA_1yW_L8#Tr>lv()kD3hlGQXXE#if&ot_5P{nfZd z*NaIY;V8q%hJZAjbQkPl(+`V@Tze)2ii{&)0n9kT#t3*NN4A5SU1Gp%#*UN&Kbcd} zT0NG9J2pw_$flkBuy7HkkDV}GQo;`Qe%cdOR_njbGDp**vDO~nu7un_nUD-o+GU+! zkibOtrf)ddU}h5>r5jW~-wyVD9deYhhV#&IBn2o1Ej3LXTpPQXg^U-|*ED4Y+4~71 z(Oe3hOh?FGDq!s9!6X?ncVZ;K&VF9>^-RhM>y|xDL(wriv5IRi?S>Iuv(-Z>Gn9`D zvj+#~C4}j^NsD=14w9fx9IHMci;?gHfnw(aqc5aWp#Y|tS)kJXF&J$!t;yn@kr*~L zZJCLtlOZVeEEJ5pC~RT&sVnVj206ZF4CHjNqwMks>SO=5OEUD;AWzv0B!k8K*x=#$ z$D!?GMq=F(;L=GJ`jIUJ86IX85QFI{R*>Op!r}oI;rQD7S?E9|TiwPs z6qXa1h(UMl1d~rr%8RB&zkj&H^RtQPbNU7R?PH>11EU@DTJQD|zO=l!F%5WP>XSw3 zH0RbqEwtDK(4e$jV>JLGeT4o@&t!r;w3D#Kr5lWje{Ua~`Ow31b<|qM88&d^cTR>tH`M%S|&*XmS^_ z7IT{#j(f%vmQlLxYuF6(z+DJwBO4iNauTRmm(-1HA&e&*hdw_khf%qYpWu1pUuf%w zzR}Y)0OIz(S<8$ioA5ZZ^xC?-5qc61^o_~(F|L}KymnspJbRehP|OET7qFu2hWeDR z$2(+W-xVB;nx=-Il-!0>?l#^*F!+z*gc`z$OE#q;~haW^lR4aGIn>Q0iR9} zKL8ai0vlu)oijG2RoVSq*!>yMK(mW5ykwKaY?`}2pBRXiX-}b=`<^l~>HyDxIlD)a zVrl+yK8$v!BYOr;yFyXc$h;2IkKQx5uMrHm_MZual#n-Qoo5oox4kv(&prcag$IPH}!_xLlsdAec#3 zdX^99WIr7T1C;yY3DNb$f>2nh3%dw~KRM)aR#uu$2KJtxeSoD0nL1!nAX0V5Ixg@& zI*aN@G}Eq;m+WCtHFK_UiKW?6tRn@^?&aJ}=tO`a+(?IHSM&(+wAP@VwXz zkw(>%NU@Bo8(R((yASE{JnV2zCSbj6`TlZJnL06smR3zve|Z3;p|+bDeaAwMEp=v} z@oo9O+#eTP#@+O>unpglJeeuBhr^5uV)vMuC1x)?4D}+WkBw>-WOz4&nu4V0BUXLh z5v`kMWWP8l8f6Qosdb%qJ;P!n; z1A_z^qtVDZs5!*&^$K9s`%HC9FLR4qqZkLK*?+Bl_pDF}_$c;cv$%#I`XlZW4M1kb zMgN-N3wu`5+S&eS=D~$(zp0wV-MePnKM#RO-@tfYoSX<|iPE&NOc z`*olKWibT`UdZZ2%zzoZz+{;CCb|Fk9Mu_n#69C%CIChVfb2SqVQ9o8vaA%M$ALiLJG*BFNd6&Ap~&LIhI~|${j_D6 zg{fr{TqnaWp5j6w$KrTX#!cLB3Je%yN9YVIMNBfw=zc*QJrL8LQKb#!821r#wpoo` z!#LKl*&nB6c26Ih_V6U}U}<(Pc8n;RW%1<|o;rV?Ib9+nc0edUsR3c^Yv7KWwFK+9 zjJO5u+yfD^Dno}~?GQyE;+`o$jJ}>zZ9%C6`yeDf4|I4mSsR%#>mx-|n#-3{J zg({~c<7X*5B^0&fBACUPVkVP1IiB~lTUtTthv96Qv?Lt;9&2=i|!0tZ{hhSsul$1^} z=~~Kxg8?@csBqr3tQgfo>n0Axy)}JkNUABN017_Z{@Y+dGY!o;A)O3UW2zX!Ox^L@ zt*iB(Y+97LBIulc+4Sm1BwDq<87vXe(l{9w+ZmY1)^ z{!REcy9C=3C$iv!Y^O#&f&3_NX~Xz!CHLw!vJ`3@WIdq>K6Q)B*LpIHfNA{YrzfL| zo~6rK$Gy)EWV*urAln17X+>HadH--rvS<#$&MMQYdEEyOLUHa9B`d+{L3Xq80ioSu zjvABN$;=HDHDhMROetf*v8+NT1J_Qw!q~@gJKO|8AQ7aqoh_he} zqdCT5Lh;xsEiAMY%1$=>M+}njE~8=f zOpL?`kiMhPJM*$&A*xPgvB^D^S^kX*qj6?%taQxVxY>{ltmQktR=BT`Xp?mf`!0@&;qFW~S3ww#ulMx>NYrtp znF60omR@`HAGwKA%oB@DDCvoheopAr0D3*OiayfGcLne}4hs-{GUfP8FcQjImF0p(7TbB^zwc24w6kP3f;(Rc15zxgSwC}d-gN3<+aH&RHNA5IkLI7UKsSU)U;w} zR_V6USLtE4JiDh6vbE?D0IZ!HA{lC~2ba+Cy04dDyplayPSaYO$-Ks$tmX6wPUl&>~)K22xsROnHB;B+Mm3nsb@CKuH(0c<3mCvm`wh<2zLWi2^QIMg7+DhXfXi3{pnpw! zW|}#Z>&Dk{AI3fIbq}Kh#+@dveCW}Itb#O+Oo`HnV2G*CRjaxoI~iv=OS-}QxEW5( zf{sz;ogDY}W0#_1+7ZJ{tRR#ci6da-J=L@#S)IyApabFG!xow9FZYK<)zR-fQ)cI{ zp?F5Zi?mbiBWkT)l%A=7lX$1j>y_c1(6jfP8nd&o6J~FbG<~b$g}i@5^=z)-!x$T= zXiwG z3&C5uhYhpH+*D!FqYHoty9m3=h%rMPFqIU-!+d1wwmh3YnBM;^NwL3+DEdM zUGoH?_7UVH3u6X(dQ9|u@^(E=o2KGaBAvmpebo^EZYmZ|Ct;6Xr|~|?4Bf+a`H(+7 z(cqW6I3XubRa&%Y@ARaG{S&9}=}vuE76qCntwzLe&{K?!Z^lelJ50HnSx_1~zGfKa zOlCibPFDM}y`Ft8{8%(SJk!KQ51As_MZf=AF}|m#(3vnF1}iRgycnPpC-g(3c~Ip( zYlKwkd#XTyxSd3XVzAfvTJK})NS3xMCf3}URJn4{EN+mU+_Q6 zCk9r0;q;f^o>-8TkjI`uw@!i*ri3<^AD@fiE2HCOOZ7hJ*0XhpQ{(H23!$IQxOh`^ zoM*8UJvNkmbfz7{*S*sOAZwg=tbyZBhPIui4QrvNg#`9vn8*x)9$a`(BTfl3T1n7v zGd0*y0!l-T`!gv$8J&pZV-^{n$V!Zl3BmW54|lKi3?dm4b3ZgafE{E9=1?edrI##`a_{hJ8=aN_y#fdMd@_Bo$=uYt>}z#0V1HZ-@Mz@}5YBAn`-I z@BJSn%ZpmVq9)6MRfxjK5!eUAgKES0)-z{vqIxlsYQ5eE?U8IRDY?vgIv{s0@lNlZ z45W5=!oro4JdpNv$v|(Du#p76oow7}bTd}4Uun-rsEGre67~W>_7B4TMX;)*J}3K2 z1`jjJCO%+SH!*ORnbf#&W@L-t0?qf1;q9-mYdR~&t92$~nUe{gFu(0GGC*&Kg3qY~nzw`*I>6^ND$2Q8kyG6w0dc<4nh#W~M~wHaju)r1M(t zvAqEFc~_W^Fn(OjrDR33?}lkG30ao&9uxP_TGP5%+*ev!tRxYR5{u!u|U}_Y6oN(B~o5&v7MKMWH$tzHT&mNQelh9iy0W^kCo_oVpi`B zdQ!y@(6m5z{Ldg+*3ZA#uW{NF??xUzuE`z;w7_ED5jgu=$!Swy@^o`bn!Q7-QROf| z1z)Qtvi8FwVn?od;!N=+nW1^&fIPmYvms1}`8qb!tmkEodDF|`&lgP>$@J)Z-7@1D zxp%tZh7VWsSznF|+a1kJzMM5ZL-W*LIfV(XYUaWVn-Oh`b0!6w?O$PTS)3j*KTYj& zKj=-HugB$XnK{hx_GZ$NH`&hDdyRRCgKK{g3Une)9AWKjW#vWN57-7W2U(>Y{| zemyLo-%|c;JS)CWGShQTO81YidlR3zSKsZ}2c7=L%o}xX6WEvS&zcOjO;ho#MPc7@ zJ335F4Gza~js9;_d&GX${;aoRXOz*PYHG~bnXF5*gRYL9MSG?BgPxF`!F@vq2OTB* z?XYKEa{JxtPRoOCmhEDO?xQ>Ch1sulhX)6pG`mpf1)UE1aCVW>JMhj;Ji9#Vbw=h6 zpiP*`c-AAgi$XoR;O<}fnjF>fQlw{JKB!6I%g}S*(=Nh$;g-2+YLoxIBiw_Qt6h7H z9=LPE)~eGopf?$i9s>8^oYZ88^yQ)NB4tKjomSMc)94!>hSpRW-_e1 zTQi6E8izT0Odm=GsiYcxyN_fFmLvN+;-N$m&^M_oIRD|!Uj7UJ09r(!Rpm#ebzw+tDJUeCs~`We-5>mfGN@2A06sGL8)`DIEC&R zuqSF)(EEJSjE9vlg*@xK*QmM!+PP_8qs9RT=8k_P_a)7(0!hLSOxIrD&bWa-+QRyR!ME|{dU%64bosf8wsdZ@9igZ`VX=7$=M zr|0IKl+Z@0v(}%E4ed?usdUgd)b%&WPMx}rQaR{L-|D$%Da(zB0SXT~o|5cs@1J$h zFO`bP_|cSf?zYPEv})kCxm7Evz25L)qgU!gKiU)?w25V9T)G82d1^9Cg{v<+K6R*d z&FAsjI(If)@{@H!Q2FdYMZ&*i|cdB(PEPZ{dvaIX%ZBG;)+1s3T z$0hlKK8_Tvbr&bdp_XnRcaOo`t?zc|gI0fI;@u@M^$F~Y?tZ0%CWB+kddIxEMd8@+ zvj(~SxJGN&{I;yEGdu zS?3m_B+E-%)v5nzm!rMK;oQ5l3*ml$4mzJU5k8t;AGA&F3cwBWvG(w14O_eF>FuKr z+P!wgHC%mjv)HEe+~_Ghb(-x8^U{ZQYE#?QtvP9sd#kGt8sy$;`lFApDB*DAE539H#z|O$4Ad~^d7qN$3D6q$3x@MQ=!7x9lIYs zG}7xi9vY9HDd{uS=Z~CN$&#U`y56IQdZ+RXy&P@=C; zF>!l+g8%N@@7GU%fe(ND<0siFc8veR@2%h0%inA(j(VNUZ|d(?%;%3k-Oi}}3u6+6 zNn^>W1=nL+jLmjQx@?Qygp6V>>nhCQBuoGU9M0kOZ%@yGT{+Z>k)2G7+19vZDavAv z-dOxPN4-AUh}T7P5`A9p-iNAmRnW%^coq8qX|bf5{o+coiA`RTjt}-zm4Ur!*gDq|B=@s$n6-~9O7 zWfIEHm*jgaL*AT%DPlD;F15Ut^u6r9qWty<%4D@3afjOBXo zOzK*z!Xy%QVlmZ=CHd?YDAZD_%4<#Ka3)Hy;_WA+s20Xd@Hf^K_+*%V?{8;vG7)v1 z2q3-CS(k;)MIj|zUQ&)}ac=dg*brB>9Z!TQX5fnbOzvj){5)1|R|q9Arpg*Tvg#!| z+!w$cS8J5M$apvptzU%V0h!keGX7*}&0J?8kLRGTa}Z9h-iWZQ0ap`;YL>j^bpcA> za9&xIkdE1d9zEIPr!U-b`ICQvLVtb^Qn4kJtqaQ;Vjn`meckNhb2ZtqKAJo}j|X!g zr@m(&qz;>uB`sTUWno<4k{~Y@&#-i%*^ct~nrJ~lF&d>`4?{Ul;&MVy&m!m5uPQ9y zZHVns-4b&$%a%5vSIDp$T6IO``*Au8IFJ>%CW*>Y25YFonT;m%qZ@L$4!7s=dPq;t0?<|0)h~e6xTj*no~VMU z=p*qV$9WbojqlGxvZ>k4-=3a?SGXXM){xk^BBHK9HpVWcXsOner8f2P6?wf5 ziWGJ%q^d zksQt9^0&xB$nTg$^deW@iB&kDiy{kf1}p(6vXWP~F|gv{HNDXx_ZRos8RS$}CMYf@ z1Ly%}f+eCQa~PisM5(MNmvpz}n>oB!jpYo{1pKmWnMVQsSb)ImQlZsSU4ty1$gJaYrC1f-HRVW~L+T$NCvM;$I| zUWHIaK$C@Ipb0S9x|p$p0b4s>^vCt@EI9Et{Jx!x-Jq|aIq)T>P{t|uaG|67djn}+sM z0#49AhUAPij8cJ}z5-VmVO`EAs*EokJQ-LGmkZ0p$zHnCyl)b`q&nxN5?h&IEvz%# z7aNOOvy__>C&<^lwE8Z$jIn2yXW2qpTu&3kVkx!^klhlk4GZ=sD;tUf-<%nSw=6KY zLi+Y6`M!U~gMDSu1u&$djFLOi$*iutUxLRs@oaf?wi-(R%Sh+Mqnpz zro?qof+#2W4JInC3@gb<0W;NZCtjSEQD-S4*uZ!kO6VRH$ztqR<@)wj)j7g?NpdN+ z`7I)@s@HMRCD7Tru2~-|64T0twl@#?s^Q1q*kJEnlc=lGIq5}i0YYo@5sU$=B)Ftm z)JD2`Y#P!*zy~40$|Dz{#b{=K{oAvXFiJCnFfR=3CwF=PF5H=QgWTS#U$=U!MU=lc zea2O7heRXE+xN&$R*P2#cmlYO4wOv-{Z_NA)vk~lLTu(li?D3AYTSA2XKa5{<8SZa zPpguv0A0(bJ@~Uin9?ygAP2*K}wR!Ah>hqTsrZ8kT5QY!13eD=N z+gDg-*5t6sjeS2JZil+vj=(NiKj*e$D+*+9rndqbZBsZEtdfpbrM%x-@vt`#Xh)ij zJLqKe%}$lkyl*DnXcIQ;V4p#c7;qOZY_p$JsJ3h}p2&^f18hLy-G#mU?fG-@(BYc~ zx=9!m>;cOpYwSw(QLf2r2}V8M5WWnzn(^Y*vo-$ql#zBbhoCIvLrFA8AT~s%moLi2 zXITU6HnxE~-U`*x=N<05{4KP=l6P%Ja3VvLi$zK&7sh_VOxj?sM2K{m5?j|CZwA}( zx}E6QZP3%Z;T*(d3XA2lgvqJBlvHd^k(fYSfdG#uAzuKV`IHL_h3z6H8|l?{dIz6| zkeE~kTfnZBW)fvOBuOxsRIb}9&YaN^@>}obGEeb6Q;EhWn1#q+=u1B}*WHwdk!RX=Qe&u($y~rj@;F`~eW%?kVeu zX%r}SDdi#r^Q%|8@-fdY>q`Gh@lLPDCc|@~>$8!SE?=jcM1bY;#_Sx5^I?K1C2r~gz{1P^iVM!~qxf3^NEBDdF#TArZ{>Wrb z^}bVK=O3|(0=(fM*C9k(l3Q6}!8^>rxRo!Qn2;;mCN-dur0;OW?Urr?IeD#RL`zvlQ+r? z08*GJkX;%^oG3u4?1`4+=^N_~f!^ZMSL5O7c?7zaAiq^^4kzRIdJ~q-7Ne|jA)R@> z_E+L^Pi__P^VcL-Z>!-oDK$gqdks|!+sUh%H=|Rk^7IwyPHqobey3{QAvf}>Y@xW) zszPo!1LhD8)UYB)Dps` z^F{;rp}*%gT4nD8dVU(%2)Amv!Hn0~3zgK873^y-0xU|{GIl$OMrdy*pA2i(zFI3g zC(wJQku9(eUluKJv9OUm!hd9DvB@gCW1R*}VNC-X?Aq{AFLkwMh204}ER$ypkp>dn z>{253p#Xv;b>b7J28GcVKFIf9;_1Z@$*EDQcHl6Ji*VOe3xsm(^e`QzA#$%G$D zJ}^J;d{_f(L^?KCQj zT5gWkiNG`*0HCN0yfiUnAd%Bpk)71OmE^BedwLeINdzC(>RRa=h3%MWROjf}OI)mG zJ(KD`&)np8Bc5EoQ@ ztc7PG>AQ9+L%HRPTKj*$O)c(oGLKr|C$1;{XZ?{O$1n;mMyTOz}vWjt{!O)h&T%2si_uxZ& zSAqic#5;LxUV#IJON+OqyTop5=D-K>1U4k`g#KP!z^F$68|;k+$Jx}>mz1$%MQvHB zn&5~XxOlpX-*Zt+v^Ecaa0TkKV`VyEkc7Dd5m03dql0j6Bn#usu_}$7vPii=U|j8oZE{qc z--CJGTWr8^2#%{UpVhVE==a%wGNR>AbRs(qp3D=b}idw5w_< z!i?xxM}vaRW0K~@s1xxT@Ek_m=Hjqm@AJ`YiWyLAX+F|F(S~^rZc#l5-D*yuPHzpI zVr-LvOXPNEO^jDqanaWqaXSfdup2fzFhbYSbe^v$z4YoRu!S89rjaa;N+i5o#JT~@ z!yB`)XCfHJ1;a-Z#n3;&&NV_}`}PJ0Av={OP9qcQhU@5_h?9`^Kd zd>r!xf{%|0VF5k-CdK|Pc;>wB_>fo@6Bt|t01kta9E?l^Gz}w2RQcv62P_-zU>ej@ zaRj!Z{`l?Pb&q+WXr@r!H0Jp-R;Z{K9lZ)AeE*wJTHUc9Ltb-sFt=SMo24sRr81 zm{nk&uDB+=jK+kts$x^7DmU@xkKesh=ie|D#kP{^rolgh*Jj$18e}B*>SOQ5!?;W} z$KH%>lEJd}-(cEwx4LDxN-=0CFbyNebNWT{>a|2R1exg47Zb7>l~FzS?t0k3WG8#%<*T>#a4~$#Ot6+Fk>H|QWC&d4!CN+qmK9)+ysC_EGq5fKO(fvGSPQmCWq4Cpabc2sQ$Rsw5{1XSi;FM`yDCs=-no+B^HEh! z2AiWr9@l#h7MKYFduv*U^Cvk zwdO|!OT5s6v6FDXwGZ3D%EytfW{5=YnRp+%%?Xm(EF2coJN8O5@L%CQD>y4E<%zmD zsOx>qENf1DJCebs)?O5o@dFHNNC4?B1-Na+P7a2Tg0S&%K*)DEVK`=h^%&RD z5DA7jRUVfoR}>Rf$^-`m5EyXn}!%Rx(j4SjILXwXcVG8ete&iARv%A(2#Vd zKNt;3b(oJ}T~3AQV-nrXw5?J`b&4g3 zg$;D!5vE?!G^p60ZpRB|6(JecF*93OtdwQ|d{>^814^?KTYCZ0k5=bh8w1nI-abIXg>%v2B)~_g zm>MGkj1TW0XW;l%FgIz1b8I*p0J`@a+9V2`SOwtKXzc=4B{~~ma3LDP1Hju!)WRkT zRN1bvZM4gOLO$I^?vp zk#R_^mVi_jxZ5tm7@9f@H9C7J+ij?^ia$Rr@(o^E!Yi{}RAxp%%P_oE^rhztEuVqZ z)6}DsDlnwyLsr+Hcorn@;Gx1I^q~TcCT7jZ92dq4EWV2>s_|Kg2_8BgExevLxM05; zlecHXJBi&1L|On#O)Gr~O+s#^?Ji2Vw()Z(?%~kCI&m@Hbn;6P!kJv)U*o}oxXj~Inz}N3!`%+^afr=8jE8yAyUeg2fo@JXPx(|DaF1eca>|b{B_*b6D7rH zm^N2$(HZc8JPyXBIGC-CKzw+$m}IG!0ztAxZ7b~_5IF{o@D*G1WaFmLeXa~1mM0-} zNnR+ZaT46JQ|}M*2{7<Ry(FJt^$TO`U^J8^Z}(TMdHibOI0q z>^2L11I#y-Ykz{)>EZPv*`)tkg+HbzH2O}@UQ#lxkfzag!cJox$$&L$q8H00*8%o* zHuhH@oU-1&x*kly9q}+6X-%%ML*k3u(mGM9Df|(`;$_T;1KhHIk=ZYH%!lO5j!ek(-YSptALdx<}xNtGaHBmlNOD85mQv<#52?d7c9L4jOc)HU3 zGHyY763)IsW+2RVQC&q^XgIoVX_Y?PJbV6NE09yF3c(KI6bn_VhwwTZuf^sUBP=Q9 z;NTTa^dLj`L_|UhOxDtluK{}o89GR)5~IZ7pIrUPfh-B;Z+T|!lTVgv6UDYhkm0Xf z-_n=?mZDPokpsd5zYXt zaKE^|cj%R(Q>;L|&5yYKvv;GT!?A5d2LY!j1}$61>@f4tOkR5EKQTAYwg#{|!cb?oqDY83p>1}`Hw;^B}7Ttk14x1g+Q zK#8)(MK;giiDYsW(ivXMDx-l94C4aNF*Z%e(e8i3NOF;bjfqJ~$%reHvH40ViqK9} z%D+MLYyAsQHLNBTbIi$=t5>TA-5C~b?x?|4Ge%TI;IOZ(>-d+(26{Tm`t0|@%%AYY z$mOS2BL1^a8Mpl@GaTPuufsuyQkzgvRz(n@J-36W7-r~VYOHL09Z9=e`|XKJ9*T=a zZZd1O(7BEyS<*Y@-cKiWP;S%syXHX3^3?^ESJfzF$QS`#!lhMNFil01Td@&mT0&fd z9*S2;P_xM&(7d6ci&@YyZfw=(d_-zl_O^ESqq}Kb&S>?=+dQtf$-&=EL?x2K40z*$ z0Y=+~6NdIM$Z-^{6@kS&2)s(>k=`Y8-w%k@R~tr_cKSxV45Wfk19cM=9(cDQyt5x_ zrtZps$BO|oPD(9-uH>ZlV^VgvCNo=@%zBf0z6`J+R9xM~#fXfJrldIRyF{bmShB%t zvWu@t58Y5tqic;rDvlIyI#Bo@IzOPtO;r<>%!=8km8&-<@_nT+Aod9r-v(r`FaF|U z<$6z%1}|npw990xCo`FhP^I>@B>$`a4vZUIP6szU!ezS(OCelKC=WtZ)of~5fr*2s zT@Z+7sip_4JhUoVwUy=w9V@W|NdA9K40Mwd6!kJy zKYzd9sm*MA?cT;G_Z|;fAIGLy&>FBAfjTGz(HW^Xur4HNU*FO<-sJ>GDxVh=kPA9J zFAbl<^RJ$nLMqqk#4pMA9Zg0Zs5DJ-9t*S&cH?;R4{Cg^YX=L+5RYJDI5L{}q|x;0 zsPBYjw<#y})+H$S>yCE&NB%BSAKeR+tSQ4alvt_~rf9T!EJ&kLH6xF-q-)#bA}@Yp zFyoT<2sR1tlZ1tXQtGwgvxa%Nczehf;Cg%;*dUauh|>@$XVPWIXU>KyNHqzDUki#- zs9~q|#*CctoZ-)T$dL%vYkn9o*HwT>U|QUBSEkgVm(0#l&W+gI1osd1IG2=*)ag&T zfuriXS76v&?_T&(hBkgc6_twYC295DZAsKCYuVq`KZ?XIXR1Nl$Bc_W3lr&)t8Ats1rk~Yh=8l%4A3ztgD3Jq3lp#!Z`rfd7k8Ur1~^3 z28-`qyR$egqMe07(ma2T;iKbE@IiO3sig;&w?Xn{EBCU*WglIYBN&xJ6)7U*A5MK3 zv&TP}3vlXHpd>FT3F(}$MkC?5zGiGs3Vr45Yo%b&bn#$;poyvBvi_ANf0uG|Sn7$L zI`45PQ+k7crMPQ|4nd}c@d-Xb+NNM*`aagQm04Q6v|ic>bb=A8k7oZVFeJb&F#q-e zaF3EI*`ir#q${;lWHZ4+bA5Ti79yJ5G%nJKRVS0*xPe&&A-06gy&?=nz~ku2TsRAf zVSzgAUyTIw{dhY{x%hxS*Oy0)59niKaN_#uy{p6#dK%1+PTIf@ih7l?)_;GQ0C1=S zHG-r0JGk;Z>1NxH=i4Ve)x2fzV(BvgkFZ|KA2Uj_6|7g#CI$$T(p56)x^KO--tlz5s{zek1j2szWQI7M{m@lDwMlbW zse)kI%%pD>Sg^o)oaNXI^>^Rbo686l-ZY0cLF_5>>h3D|3j)1pnU;_5e{y&-__dVB zXS+2)#W>;6Ardt!%le2hE(IdvlP!Z1^B+)hs-LzQ2j#2?Iyeq^UdX~dmK=Y%&(q4W zn+)YW5iaiqpl`pui9FmAqtMi zfKfS910B?o8{5<{OjDNsf-Fa}A`2nx+7`~iwGbw9l4(^*Niq&|_a|hLg+a8WI#+}JtlwP();$_u-Vo>4tdglyo>W{UQI$~HE=}&2XYKt2jZiz^z^k^dY?Pct zh^;9RgzBWqFJE(`%U$P}HX#)mAw04gjCqaQQZ|ar1R)ssX_?lahpZ)Mst+0yo0xFo zojt}+My|ftF)I5osLIxgEdE<3wyql*{S_#2!>4hwh_R4NyHjJ5UF%yonJ!HdqRN6yCjn}tU6?r z>M|~0RkaW5rZCWT+4-h-PO7Ks4*h~Hh1NOg zK;R7BggniC!r^;%6Hu7TJv~|Es}$D_qfbOuK#ak_=0Zadq*?XN(T{8_r()*b?2(2D zGmpPI)*2dY{hBuS%Q2b^w8O>B|6G)BhWxgZp&IG^$agr0wd#IjY_MY{`>(c z@5d&}-A~2{m%o->65e9eei@d0ztL_i5t#tEx>1#%&z)-1E*oy*lZ$J>)rtY*mo1g$ zyc|pnbmq%~)s*M!XQU@`ji$_=bgHAuudrY>^%>+&Iw#lbj>*mNDIS)Y3Zj33Vtzm8 zbo^uS6^b7jn=}d;+kNenOqmTkB1^_iz+8?r7BzF|!!G7JBlDN@w!{-x(K$}b9m7>$ z9X_LW?@un~YDz*h_>XHaUnF$*&}8!}SJ>z#8_fgdj2wncC>nC(Z-;XwB_}3cUWIu? zA>D@J)iSI@U(0hqohjwD&dG+h$eL`(kt|8eg~yDT^EL^E;Al;zaV^5NpyZsLMM2v5 znRp*vk79+r95}Q#8||*yc9os6nBlwG)XEArgslo$dB*VDRp!NZ#sxAWa$sHYj&`~S zmMO+Q4DA<8|EMEf7_}|;N*`X+7UBZ-jEjPKgfD26x)>r9^7h34f22DJ^4|XsL5rO zN+Zx{2E$4)c;t1sPi3*$0-hFfp-KHwH~3?{ert>R>gSob zQDt%Jt^@sD>^l5s_*W}tKOM9c;l)%)?lQen*`u}RDsZ2BW^MoZWv4riPL~1A5d?v9G>jz^8KxLX z#Ezr3s;g&^R7Lja@R|R^tIX5(eh)r|UAxVPg%?CtV~n6{IRJ~oOFQPXOW^1Xia0S6 z0iq-mm9OEtVD67=Oe>j}OkD62Ab2PkhF7q&@pfK+bBD5VC?nhxdJG?N^%G4SUrw%o zKPOvvL!#5LYS_?$xWO+p{U0Q}s{4t?6FiR2R-8dZeQu0(PxDwi2RnH)(K5tL3%%69 zGAD7bKVC`cb9lJ`h>5Yd(ZpU6-ObK?^zbuA2y*p;>}~9RR4DwgVbpoYrpdrxki+6t zB!92W2Xc-a2ioZKc*TInqPG`L^a~d;tNE>cvNQ^pba~XL-&@s$8!*^pdYo@NHK_Ny zjh?>@pGya%hfzSO#E^usJ1MEDv1I&fHK^67YjVw>qnbTOl4Fh?uOSlSLu;(=0y!jE zSvlk2QaG7eMba^8+H@7L?Oh1J+N69=D<)R*TJaaI+hl4mrhKbry(*XJHuOuf+S6i& z#kU_*V!ZbD%mS{QL32QxN%=3}+h-9NTNZC7xj`}D4i~tcZzJ?C+O1hTtNxiT%Df(L zqKd4Ta>}Rr#L%{TH0w}sN?9(~f0zq=a}-)@X=^rBW3j{@N>&h)+-q>R@Z%U_qHj2o zpKoTUw0cE`Coy7b^DjaM@i+S76uoFGkK>;#3*VHHY#Kc1f+`6zz*dtD3WLvvLTs zoNul%4}ShhWuK8?c7;L5V%l`gFfH^TU$&)9)FZRSj%N}in!h4xW<;bFsy3f=VmGNY z_0~U1)o>Q$T?x6x)FlmGI<873&qgC$cNWix*jXw*DDUBwi!~9*FbPl2{Eg_sFbx_a zY)^;(b~|Q%Rt~ilX{kSW{1fP7VKeF}p|yiA+)v-x&P+5=k8{Lzy&YUKTAdvK+4V-HJ|z^m?)X)IXVju&BAYR^nyPzf7uL~3)6PF z;<@V)+CIJpd?6~W1lMSc*nlNAM54o=V>R<+5(L?L3@G635{_(~{&w6goJgT;Riyh} zPeI<5QNKKVlvl{H<>dVLFYx_xxux6Ke@?l##AppU@O>NjX%zU5bMm|PZ6!_2nAkea z%HkBVzmA*h@n$8tztlnV{@Vn~>h&18`YV)o-l_2A5U1he>Abf3<8{7Q?Grrky}fvQ zzV=YG5%u$~)+q4p9sr~R9xp$Q67S!Ie>?_$ez;Z&7jNsmnLWQOZ?^zrW&&T72W^2L zR_~wb5BJJI8Q_-T$F1Jir_s)7>2X*i^;J^ z2f^;z@u1fk@e>pGp4}oCT`&nv*us+HC>N&6<-z1U_m{DnNb&ughHx^nx<56|5uX3y z7*m89gO-a$-q+C4pOvsyR=L>mRWsW7+oPtaA#(HzUPvNS88#zIARfmaWA`tCEiWYN zIIW2-B(Cy|v>KX_)_BzYK1~xPjOpQBKGVo(zD-=_vS>d*5M9Q@R~r_rGO-J-PpwJw zr9T8yQ_qzuDC^#~nGW^A`IH#qOV)`doer#BJ}WifPaze4Xk8 zq$r5o`dQ%a%xLNc%!d`kZv#~=FpEX!Bpg!0uq~J{zDp>SjAMMi#8KKE*GR&8e>0w6 zV6Y^K4t%gXaE$_i7qJ^J;5=$q3Mf-%adnQ&5eX~B>+j7%_MWsSkm#@E}gSJ=w^mu7E{CK1Gvyar;)=w`>nYwroF>+IuqFgJ=> zR&02-e_C;Vu0CgF{ThIS{*(GcsAoXrvy(j;w9{^}N@~Q5<2W=ZPL>PIzaB04$i(7@ zt|#fu@AAJkHpFCtF0E$}_8MI(`ax(87C-P2T#SeN~1i89S{)Y$62MGr6e&{!GmRjeS`; zrhb$MXAqb&`St|cAdz%L&G%kN)vXQI!OcuPpjSQw45sC=?Z&|nPqI#|5@BXPHNh?u z;5<-*9^GMxhlk}P3aVCMSX7U_V+Anr0k9^#WDB<&@aN0NYy=j05WBm|bTG*ubio4X zEbV%=5I3_-LSQU&u|HK_MheS`A-Fmo5r@b}GocPtb=O2miXTd62q0Fl=s|bqGy9Cy zWYA#T8^Zk@4$BHhkNez5n<;{SoJ)u|v`q(-&WRAL9mY75-FlAD}m+i(VK zuUpa7MvSUCyz2JpSwN}7df#P`2P7$5AULy-mBddWpmR-qPAHAOsKtf3GC&GbHF_Jdf$UC3Oqo>wF;;ijb zhInDaUjhx9P#Oq39NdUxg{7i#{TH(f&zVHLE#vuEq|FU>Pr<_ui@ew#2ZHt9W&y6x zN!r3aL^AA68a9we*Z^|qw55h+7!X=88Blj$-s%k)G?4yy3< zQ;ijA4!^z!^og42nGuGicZhrsej%FY%_g*Oq#BJ&ev7y`7-FTygEERrzgyJg3ktL= zXx?R=84h5%Op4I;bdN%UlK3hbq`^M}?!=mSn`M5fd^Jnb_ty-@3+&6>f+5#%*pCx! zr4iP+l%1sDHfQbl1J$n*Z+PJZDg0hRy!y>r6Ktm@hTE9&VP_7Kq!S)X#uxx`?41NR zYws6kHg$V1AbW@lV1v0BE5?JE%?X8OhR~}fgw6NgkV1)as)aeZP7K1k5r9yjOx_m- zS&aY$h=TA79YD?(DcR&e3@#yndAVDaN3NGeDuDB5B!ig_gnH5^*h#yvDwE`|bHiXb z?LY?W!{ZJ53g;zu33!w?HaxOI7*ht7bY+lV*!qByuuOjNqxWt6AkeWx+j<-(z)f?- zgJ8&TdWBS>qsRxiJY0KjlN1aoFTLFIsIb!p)<r6cy`#$t$Una2EUdR*2-at-nMv|;P%@NZjB%@Uq@xxfslhDj>h{lB6;?SrYKm_;72N?qU`yZkXW!=F?rKQ`Z^%G55#<^9qCPT3 z%&rFT7RUC>*!z!L;f>mJSBT_8Z$DqHp%YBh`bc1ndzB-P;4-k=coRXOKs9$2Ku9Cn zlKV{S_NnPs(3Cl(z(lqR=SV=WWe!Pp1g9}UL4b1k*2Xok8=*UH3!{050s`cq7csny zMV5&~_}y!@vN+ihc7=9t<`et$MZGt<+By|eog%K)JpvIRr@B+1(i5ccUCIP zV4eSclF-XvNRr{rcw!L_1QvfLtzReL8{k$>DK-|XSg^MKz55bn=Hv)fJhq_sAYY`K z_?-Zdi;3-8mN$01%F1G^mtBtAkii{Ai%E>B!*xXbA9A7Kxyb~Z9>@tn{(LOIwr)c!ZmZ7sO)t22crQ)k=8-ZSuYw;{4zW` zBUVMBEmxOj%-U~bI=F~jvm#a(X^!ljmnKNzEAy0iLAom5@I5d_gy_q0OrqUxau|`C zJuk^9uO8x28eYVBsYIOG+u2YwAK2VBUHOr|2%az0i+%EAuq?8?SPAH{W3;TdZX?bN zuJ!PAAf2A0i>C=Y*E?%C8LlKR{8%NVW%R$P?J)foR27ESCWiq538wgeQ|maayXmms zg4Q#m1_6fTgj9#Wvc)s@)WLm>yB3mPR6mtPrjgXJZ*b8GAbphnk#f+u*&>=qlb0~K z>-3dci=2?4!&FY!2q5a+BYv@h%_4-HGe$s{7DOR96~TA-n0b4Y;EG@e9r|o*_?Lsy z?7ij}-y;+Y53jSFzlXVQ-M{V@9_%TeQILb#b|BIoftzS)6r|m=Uiyi4&;Y|qt(gO9 zeF^cw5o%*I98aB`Ql@%j*^FU(%*%HX(^_GU2{Tnh(i{@9O0EBW`N0v=Zu^?@C*nCA zqavjX4QcP>VCBk?`{l7eawnK?>CQ<+Ph=&4T{IW;?CHh}TN-pJHr9p&2Od_f&`IOvs;xjz(j8Z0n0@LOQvqrgU2sj5Le)^+sy(E@t|2+PNH@~87S zXrXdQHOZp@SD3kC1~jdiTg);A8?>YY9~8aQ{`_sKZvF_|at5{2{l4;+*}}z9>Rh!dipX<8cGkGf_(bmPQSo_xkhF&hEqL2cE6wHhu^9NnDcr0p3gKv9DQowHVw z`B6y4BiFyT)7T5}D%Ww01B7Mw=IrF8soR5C)b56%I#VT&#VU7Q>guvK)UJ&O+}X-# zc3NlUXCfy8B&n_`#1k2iOn>Wu{98Njz3n6JqOb zQcCLRWj3zj++4CsOy>oPII*`XUK!>^3HzPyKavVDD97-Jt5&K@_7B#`e5K_{>E4vq zat-d*F2I$e)h?(?rp=>iUC^GnlsmncBUu}`s~}7faAQpeAez@q!Yd=9?aGr{u!M|2hG)2D?OSa}>h@75gNTL0Ga zN|YBN55uqCN`Gni(!o~N1+nXX8;x2at`|(>(U(1aoHrZf7uLnzBbXP&+UB-CGOlaU ziSqL9$g!YfpZ94>iut_y%*vG}Pg+>5*5|^)=Y~QLr_bEGP!<-NYU76cgmqA;k5m-L;vIrU&Av6%DGQwX zjS9gZ5Ny0?7g&7}Ue#47A;qo zJN|SVacF@&ofpfrx+QI`>0;;tVr};*l5;gh6~UNyOD<{&WcZoq;T!$p?% zRZv((i#I{}CUDEZXY$cz>?9qlN22qA)*^<0=@WX&7PyAwrOL%taBN%UWY0XE{_>?A zZt1TWWsdIM&p{^Z+dtErg%FLKKbM7)K6hUc%>Vyu`pAn)K>*m>`K{y^@e(3zeVw%WiGTKpwMhj?7dNFcWe)PP(=FAO#k}}P$UE|UJ9t| zI2C@vCRo+=3)uq=6yJuiC{n1Um(XtMiUbyi*{*R|)n#`T*9^O7UvfCD&$i{rVOch8 zKB(=Bq{>3NF38o6tMeU5reZhJhWRyz>z`BQjsB_EtSeXG{5wuX!&4F3Zq$deCu)4) zU1lf^xjZuOaDWHrqT_hdRtMw{_pU?F0g3)>G$^B6U}GPs4Z?H=zCBzvQc{{B3Q~>G zAB&%r_#daxQx|lLyyV4EUYbH-8r_<_@Da+J7RSer) z0O8(C;U0%ALt!CD!0Bi!L7wmxGQhJI!^1nXHx_G?Zp`x31Lhc^u9jH;;Qi_5ayRgQ z0R@ALgocP3*^sXq2uKY&*#E_fu4dMk-RCX@(jH82+seVSzX(aEJh<)yc8Mb;>C zGv4lTVSwLPtB<$4hjRc~JBFCdZY?vDvdwUB`Sl()@CKQh8qgaUsHr4( zD*)k`vA@O2=w>dYF{J?iZY^7YG`>rDk}pQ zYAdPrJyU6+sXgeFhOM{*KbB)!dwT`>YbU6`8%t~sr3GGY-eJ!*^+|1C;f2^YkOLdv zK99AQ)3JLOl4k<>>6e88H<>I+h7WJgM(48Sj6H$Aam4q-div@@fv^3*2k>`YwM z<+8Pg8vZ$9=U|M}S(Ga=@}$oyjFQ^2L&AX09W_vwRJouC0!82@4bFlYfslPeqV z0b5JS6EWLgw?+Kg0%tE8IeuHBFi^PxxXgi8*R?ZShJv8leWBF1pO27VhslQk zzdK2w+)@AIVEN09GSH1r3;ij>=FjmLc&bFJek7>FIjqpV=IVOyCr*eLV0ktF?x^;z zUSo?gp5KF^N5yY~aY=0RgrB!@i7>7w=6Sg({rz_oWq&d~US_}t4TgjIxN9!MN8!S_ zUilU3OHImzIPLaz==&b*{f%XEwvIQ0go#vaG3@dOxSAh+waomH-7KpgBo zN*L|xxkzo^{opo3=$kO>kvS4viA3qsi+m-;v2ND-SP*vo+)oI*9ojwh-;e%^`tP$$ z_hxu)9)%P7B3G-z7wc2-{$x+ppMyQ!>pjiS&zbX=U2*i-NSlw_LZ%sAQ!V;k)8u_) zff5{C-Q%UEIu5K1$BuX9xnoQ4_b^uz)>UIuZrZ;%+cW1A7?y?}7&0)?rWEc*rS^zX zJKxn-9M|IZgFGHoQCHZv;^u?e?g~+Ohy*Ws{Gv@}MhPA_t zUB70v0{XrRLLfvi=7s3>23&X$po@6x`9Zb@e7+dTOmCz;>%3p?2NJr-IeG&gjfCH@ z-v(V@GK`LqXLiZ`;)Dev6CN#E;2M<`)9kf40XZeBa1cVA1a*WZ{w_53{ILNDG(HQD zhi*-cPw|B3Eo)j^M~wYTut6tj z1ssqdw&#^nJ{S!!hwq>o=|`7pLabyL`>kneV@#ahCJx* zxrQ9yfBiZ}_>-F5-E$8aY4ATUzqXZU2?&0Df7A&(*3I?BTAY0`e3d}EZ!S!FpTVZ| zgm#%gyKBzu|JL_Pr3brB&pSpa_Yy$7@#|(Yx&PZo={xwF60e5ugh<7Hy~s>G=fL$q z14|Zx+Cct^$J0hhq93gTi)4={9yVwU9EH7Y(whGoO*H>a(lvS_Hzv;j&p#I*b>2S@ z?CqEN4`~tElRGq?uV&lc8}{4f8ja(MMqms-lx1|Id-HaHtN=l`y?+VEy@p+J=`ZXS zxgpTw?0hzcbF{)$oEBOXN>}`?v_3pf>(yzVMm)fJUBm|pM}I)VCm+6&BO|h1a?eh# zCC_gMNiC4y5u$bWH4I>EYr?I5=&F6Cf!TFf5L64Bp&j0l|BCBqiX8nEbSlR8ITShGjQ)w zwXjy`-Hy^|sg_dcWwO|D2>Ff4cv)tyJw}&Wl zEW_*kt>7AHd$Mw?>rpsfLze3c7|OJ5(@b*yZ;R=|IG;z`Eh*Al z;`)NyJE0rfl&!7kcSpGn2iT453^kSmnfnYqbc=?=AMzjNd0#ho4^tDwO50stUl>3O zxr%x2nT&n#@@4Uu_a7|@I3KTXZ_AaX%6UP-=Z}jQT>*W?KG zU8~>oKy-pV|Mn|W=ekY8qsH6G4)p_Bayyt%ht~ew>hyc>0Ab{DvizBcUchp;9~`&ed(4g}VAj?y0A6tZP3?DU_D{mEtK>FfyY=kJz;=x}$ANUf zKUs%)KE2#?vy(U0z6d{$%rU}L6ZxfycHk>pTH~{pEA>3;UtDGp98Nor+x%z$D&;FB zE?0L9C>9|X4a&G9w>uF4FFVK?l-Gpg00RxFdcx9ei*@f3C{gDBvzil`pN7&JK=Iw)D zTMO{}rRWXDH*9n>1xz}7ZDn?R9f;48xV?#I?te8>9!jS+xNdlPI#_(4Fk-Gb8?&u) zS^5k6)a4nnNw6{4)}06Zr77@dxw025lCRq#4fl1^&%&Qx3lA;$=Og$c1?KI@E`*jDcSdRshCXU^+Me8Ww@ zc#P@w^Jp6fI_KZL^JqR>=r#-If4IrKqQSWRbr~4uhMd~!@_RcvY@Nvv)@ZyDof+u# zEUi6Z?)GhsK>C=BG&2beHU-GT(V6qxa2&5&1?u+P1CFl!h8RM!#e3Lu^Z8#=Va+#Z zT7C8vY2VRSc1tH>o{ufCVcYKLT8np9Uu&;xwakr;R$7IA*+^9Q`Fkxs`9thlW_hA+ z7!l`;x-(}xu=lqf`NyI9JJBtF!U;16RHm1{ST3Sndhu^4-Wz>;^U!btPOEa}5FzED z>5P8#3@mn9PjJs5FQq@zedzBeLmFL6+%;Yc%Z(jNC2^;a#3z1k1Fw4p-+@9(W5-ZW zS8cx4c$VzG!oE*+m;ijx#R-dFee>K_QnUAmDp@H#L^MJ>$&iz;k_|_j(~J$gF*Ruy{DEoPN96nE^7` zBLK|xchv!2``+AKQxpFF24Dw9M?IM}06)*QFVatzrab`P(VN3yL0qFp#G2aqsg{MGvjN^_?$P<@4g( zq+P}!$zfOPkFQYw15*X?GuQxmU1kf_3HYu>4C&-Z@w#NUd3w9e3i6!uLg;;9wtE@( z>@2?Da0~BU_tT?Sh`tqKXY20zun=@pu=2uK?dz2pTK>|vS!eYxWv7nCPGYDa5;~W* zw?UxKc0u#}^)1@%-Dx^d8fMq9kr@!!THmp|MX0%i@M~JF+Y=9n6ftxosae=S+?vx5 zU9vR!OVD7D+G-i~1!$c8C+61^m!#3ejrl9HiJrb;%Ck1U7OR*CusSa(^R{SvDl%>} zK*xHWp91&|;_P#6opqMBqej z58KlnIMl!!i88ak(D)Ce-3yto-OcLw5kY+2y@dHdr*9u`=AgRNFQk=g8DKx*=b`Gq z&JGOBpH?1>U#wqX(1pI<%uOtJVE+GM%mljg05{;-V-vSM3)ezF23L=9`hu?|-*vSsP_taPPoC4fgEH%-2x}mSi0?uZx znzjdLe~f}4x=tI-$l|WQ3KPfkBqZ(3sr8mYcIxdDDSWa%T!y?o9%MOp-KgFPT;&HC z?z?h7LVvd(S+7$bKk)W=ss*wv@kaMtn%oiPO@`J_hryCuUI+GCra#j4)++aYJ|73x z3v|7u<@(bczg#Uhj;d_Ed8V+Bk6&*1 zHapYyKM!}h^LSd=sePr1+NGZkhJNQ_Hh7L{w?pqHQ$g3Vj4_$_e%wYTgy3=~eWIu< z=ivB}13lzyeJ~)sH}wQQw{1$ko4=6R5d++ER>G~GMR0=pw5Sr0b7O?4d$j5j>-Z2 zg9c|c(}7Qs9{_+NpueLHYZENe1L2J7{BdIAjk1>#sU^54VcFWME*(I0d+s(3a1_XZ z_KQRnT8A{4_o*D=zvg{uG1P(SgC1Jai*aJ7g+Q=IM6zkvpR(Q zYi362`)JFZnoz1=HyvDIAwid*WSd+_IQMcn7eu}8vlhqn$XZNoe^ArlisFcinfF|` zL4}>$9eg7UlJv~X25}H5GyU6LNOtTOx)2rKC;$i^6WA~mNT;3CX7_{QYe(n`-{Njq zcxU1m`1sWo1NG$n7*JBb3wH#%Ip+d}*J*gw%GIDHb-kVJk|@hV%f7!zQ6jE7iS3|6 z*8yiC#wGW7Ud>D$mWk`RM|yU6H4$zsc^fQQUa#N$OOljhVoYLJBULu$_aOt;4{C#a zkLSZI%uMPr2JX1i95{JKo1vYV5CU5KuWl|r)H>+W6TihfkgG29;1XO7iN7*)86jwgo7n^`S8mMpP%^HGToApX8ckE{xX+2sT*=i)VP;F0Q7A{8C*#3tXIFs4ZLjT5 z;~J+6z#97H%HI9H`ZK%BTD8GErYL4d8)lqsv5)%u3Q(VrpP#>Rcc>$CEtfscaS2Yf zE)%J0fSqUl=Zro}PBxx1c1!POfR$Cqr0lMXRqjuAdrQ(?Jh(je8yzTR%k`Oln)8O@?>uABO$R~794lA`x57`cUK2vJB!uv9yP)~qyQl~dyh;1~ zGvsGZ&zecpP~b3hLe@3u5hKl@aGG#FkDf6@%bKZL{VoAdH0*@bYs!Ah27IDp@HEn# z+NG5ru}&`}xx7Ohvp4hCzRV&xj%UY8EMG1>L9?qKPP#kYI`ER@Hvj)r|$bnXL&?5d)K?N2CfRZKEVP|e57q=mR z$W*U_kaLuC(Urqm?WL3HrpQvw$iz2Dymqo0XOhpbKx%c~s^r-@iXCjt!Z5-HBu(#I2bN#TKP$EEZn z-w3wl1>vDoE^e;b+Qp6=%Frj!U3aFIIq=%{&y7vdozrG-#(Ina)^HqXK!&WK)-azu zlK)T_`8tEejA?RGrd<|SgZc3|qD616!O}G8tnVLRb8>{07#!O})tS|2>IB!RZyJ;e ztVilnaYz?d1~^;&7#JL8w?G-^Sy5&?zPEz1CSww;b+Y7L3I0CrQ6AF{1<1d@2o%T; z<|!t_H~9Zbh9)!dy~XE2v?ymGnrO4hl#+jez|;^H3HG&_3yFz=I^m`tz}Rm-ZFpg5 z<|#f;3F&L%VXfus5+uM`8KK3PS6V617W~;0ccS5WTO7spTwjgj+o?&aJ1iw888pR4 zp{PW5+S%;Lw4xU>$IaGTpn#4Ag?PyXnZaYRg z-egubaBC3hnZAyo)@;_Hr(EH$#rhwT;KsPwzSMpe-n!u%*OIwq32AbAs z+}ocAMjSk<&00`01+!GCYr#hJvAC}_=xVsHj^x~Da1n~h_!wKceBDEYS%~+T{6ZX@ zT0k@s3oTH=f3D$UlIW19tRgt7NXiIm0ed*jmuyEwv0tGgphAJg-r~Q;JRwjk7M;#% z3x4HRj?GbQuy5ALAP64Y!Mnw6nc5TR<{Y8ObZZEBZ(;Ovcz{Tf$bS9K5crY(?BQfZ z70D{b!PUeUTbG`Ycs27e)$(IVATA*PVy;9eSjxeD&P2wzPG2=y*7Nd|nmbF;)JQwiahf zS1MfVLgtWId|ja8V=*1JJfRwl`1ao{fy|%=l){EJ)=ajGc3lSfKQJYIo^6FwwCqT6 z=31TeyjZqa>Z9^Vy2vt!Z(3_`Rd zQBiWrBk`*1V8cNUeTG3fi|nVeTLl*Wv*OSe^?vldo37qc(xMRsdQh&g*8W&r?f%Ik zT)C|;S;xvP02gJrERqZ(b!h=6fpv@=E2h27fRn~KjT3rXnvKZD-kgMwDD7o&BrTmc z;=xV4`4;_=MuZ}rliCyy7v2y>C$$gNq}u#6+HXCIKkZ^ zxVsDv!QI_m2X_zd8l1u1VbI{gVQ_Z{?rsT^stA>dYQxx=Bi!hn*Dk*1y`5AL*6!$=gh0VJ08CnGJ~aodVq2nOh3O~XZ4S!p zSdDll(-olu6=B|+ORQnWLWcV@FzOv zjONfp;cO<3%nsp&^2iUJ3~%OWOQ#9O1~-1_(fWAlWu|l5V%`&f=PQ(-1MB9CC4iq) z&3QjEc>zwMLlUh4uX3*m>YL_}Lpc9KKDBzc% z^8SR1qCJw$b}Z5vGY;oS*EOyQZ;fS?D@~8h)I$;dwous*Bc-4;;IT&qPd(-s(EJYyjN5xw?@mpDLNFeoyh!Q%B zcr=$7y>(5*uA)y-8Qzaw3J*)ZX2>Hwg9{)Vw{w27!%Zp?}FBQdv{2l1ynpYBl|Rt^;gx z*YAjef2->;B&*u?qatvWK+NiBXQz;>2$Qm8c1oXc8l+ia7qN#|&Y+BMXiS!Djizx} zal%(?hFC+RhlJ%bfUFma=}>o$AbefVU3v#;Q%d)u<%M<<3~5oYh%4zd14C&yqF%$G z=AtrFwKd`NUL8}hzi2_*I`}qe@Mq!_H6#@=x|wG~<;pW?J6~pJP2TH+Yh8PSIrLMe zHyB9$F2l5hcB)<5|M$4}(1Ds=IT1}_FX%c5yA?ELpO^1@DO+lAb(C{IT$4`a zFu=iRu#Nz%M(IlXJk4NT+@4DMqwISLmq^29p^}&(WJT~E?X?a9`Ea6iv0DXS9eZl7TBllz=auXv3cX*GdQ5i@rLi7H3;# zRy31Nb7aovfj%UoRgg=bXvgY27!{-Q%MRvTViy}59TW=ms>5TkM|L>MF1!2YAaefo zf{UJy4ow9w*XTCV!j$hc|;9iH{pnfsBF& zqer675Vb*=LdZ@P#c**dO@=>IFN;WD#43asF3w46ZZ0UFbfJcl)`e7EGtZT5{;dt} z{E6Z(TWNeq=1=Wn zZfAa0wjv;L8(hAu4v47z3&<4NoZ1{DA|1szzR+4rEfwXneDzI(!D?f5~AA z8euL(=}a+D50P8euc|*UdY484!+Wuo3WUeoZ6fH2e$#l;(Pc($S5R+FM0P4^1;xrh z6wp`pd_m)^P<+8$85XxY28L#~c(j5j#P_9YBXrguETi4SF%>|S{_P~pP%dJA+ZSkS ztlV_Q9?WqgIV*t&go{uQR!>ivyC%m`^Mw;5GD^<4U5*4Vq}^CaH1_i zCYDpvVGq`=#SFm&3yInbS?fA?r4M%qw3mqtji>GAeylZv4VK!tJG}@*3*D;b;FKO za!D{l#d=Po;8>!W<5HsuU2JviRvk!<5or<6QSX+tRDvuzx3rI9il zyAv|wl3EhMmix6%M7@USl~v43#jrJri_u*28HePHwoH* z^<06AqRJ5eCb?lV5?0l~Oad-ZF#lbJdFC>7HC0$G;jETh(ut~F$Z%+r3X5=;;|3~9I;EpJmMWBJrAC9}P8teGj1lIUgC;5DdiSZ{2RQ@e zR6fOuxQk-d5YLQiV8Vr`HPItyxXF*JPit+4s3Mc!!sQ1$ncQcm%g~a?XOo6reOh$x z%iy)v1l*4K*n;%K!*Sp}d-kz~9rdWS)LK+$$fKAq*|umP@q^VX8PTRV&yFb<99hHc zkwVb3mk52jhJhW=7E5z55eGx>1Iq>=B)dr}EBI&Cf--jfCr>23(msb354>q#_JmG| ztA}>9&M@54GMisFSf}~s{cwt8uPRhOL)l*Q+-~|ofg$i{Kudd88gSEFuXLnzMGs3f zD;@S?q5k>TOzr#*oClegCEN_Tk`)Iojorge&-g44k%V7sXO80<`SX;>50_dPVjD0Z7cSDQzn zdnzY7yj9Ry{%VCgTL{Uf~-r$5P|pgAzB8?q_p$AD}A5Cg^3ro`tnLhz~+vjy@7*DZ0S82)aIb4hcV zmo=ULE$P(zoeWgC#))NBy-l6Ar%35}0O7lnE+bRp27^7LVAESfwTwAs zC;i4D?M0}N&*0GJ2PJh$cEIb^IWFe1%pk^3!4K8dzunQ<2JCf=@%q@H*bCFoCOD+m zRodN%<%doe4SWlI5K=(keT>OrAn7cx>Rg3Zk`YlD0OG>BbzoB3vTGwbX?fK1B9XZ6 zNgbim$g)uW#ATpb3(29%$T-p}=SD8-mCM zDJz#qV`a%zmG4~eAEh#?vkLIiDKH=|D@QTl!$$vfd_kvHiZbL!$}hE4sxZ8`>?t&zW2P5pSc&wb^IYn3 z;V^fTj7P;yRx;fh(fT9T!oDJuUT`^}!Gl%O$EsWTA;lVLbg^u(?zfrO0&APmeNv#W zcB1Gd+7?9U*pV}4)mW`V%t7GUs@twT z+DQqY1gnUpW(WsV&-|3z$vXAa^Y@BnwX%@_#vzHa8uLQTTswSz#!Ux6bY^6W4?5y; zqeR$U#jahOkZwEz<%PlHy~lEQqzzs-xfT9feXG4_d47XzZZ!Pp2rqnOcUHEU&VtXJ ze;W_W*DFQbRTISnny`xBM0x8gkJ81e~S+Iz8n#bgo>@k)Zp- z??1oh8t3;Wo&hu2cSINoUjB6Ze+_y%T>W)+rTucj|1Q_r zXD*eoevL_*YL6NQ)_oLVGF_{bIrG$eLxo zZ1q!#I8cLKG)FmZ_ejn^%AJy%qFIFprvGBJ8#A3GaDnB<*SolNOHT)#E{*p$iE{rM zu2w#UgS+!@`EH}du1jJ8Nha%TS?xEv2&Ofb=610D<8GRBXT?FmM){&1=A~0<$tM$j zIs8G*H!BaExNFg~tU}yoYj}GL*7i0RNoVt~I#9edDUmCQ;i^$b)lj7lc;@cb3T1;1 z=E~cE1P7#FpZi^MRr=6=XZE)$u5QUf@wjgMjwb(fLCQfu zqL64NL)iUn_%_+7prB&0AK4h@CXc|~wozfQUPl#I zRoaaF#vJHxKli6EY|!gAE?N9LanJU7Inx1l5~9~7IUg#kd8}l>TJum*b@bz>&EJNB z3ARh_@^<33uWzja1`x9G!Ytb_e*&Sx8%W2#t$UPYL`|J}GKC>v(8{k@ZAivU4EKBw zrN2i7b?11bVP4g;pi6lS3SK~%F(jj~;q$Bt(hI{emmml?k{jY?afvW3m6xY59y{A# zo6s;ulESZo3H|*3wIQ%TBAIhQh9^=%dV%*-is$_@mI3J~Y9;$BnPsurrdz}cJjLYE zV4`XMB7Fb!O*{d`DCFIm?>i9{UZ$a*i17`bC?~DwIoWH59il{jpH1-1N4?f$*S9tE zF)$9Qwgi?nV2|PS9+qV%P*VF`Tnfg&k!9RvrV2>(Y)*EROi5CpG+m$s7ctBI)=AXS zQc$U;foC~GQF^SwV+p{r06aO%XgTaQSJo=}2sH1HD#&outlT&AQ$D-daJHSapw>oHN$QwVct zMh54$DZ;tnZ|tiJ-vnLVr&pl2$(LR7{1L#-LE`3}{CA>%-mk|OA8C?FGE=y;D6D#B zRBS#ft#b)h<-UaDjB@zM93i?A1IM0JHr+Xs@YkWGNwDBw2R*%ksBu^)xsE|lRcn`` zo-_%Gp4tT`*uW*M=uD>1f9lw~hj z5AEYv}WWqN{ zxprt3e}tDRfdE5|rM0SDU)Xj=6+)Z0ho?4!?w(zLB{}pew=T`KiA8?xl&hdOOqOXi8G;j!@v{ekN2eFGrM|p^=)15B~cmsB)EA z$bG3^`so4IfD{*cMRO>_>K-p?XzDj2APqLb-}~<(W<|s2^CtCkEeAABIc8m|Z{>JZ zl456|v-ZIV4US(4dq*}~)0h=>l<_!%oQj%yo*x^GxY;_5d0nmnhRx^D>R#@m8)5FF zCyu6zapo>Ib(r4(SHcn=$f(T3tFBPQa>QqeRe}1&&_VT6LDTBlm`&Jrbf1SRuvbla z)UhVegjRv9i3dqCWnH;bWXs_GPV-BA{d#47?&UPfbf*!Ao~a9ewGvmQWOpvDSq z$x(etskaZAdBAox@3`98w&}znYCdm{Ez8l6%H*Fntanau>xG2};tx;5C8D!gRnx#f zfA}Q->i?xIPsY@w{ki%-bbG!3zi#h)APm=k)$RR2uocRGizg{%{l)UukgP`GOI%&U zUZI3WP>)63tUjoa%#juuy4_fQ%(16wtx-jY;={V;)ZhN+&&}#ucI|tg=%44Gh5ttG zZ_f?ApNsPjx=m;CQLhFQy1y3ehDP-Qn+!k{G^|9=alise$drOU#UM3?QvmdMvO`!C zy}ZJjfwiSuiKPScKOWW(u%<^R}CSTtYUNmq2Ac~-*%PPqB6v%D-dqRxO zN1L@_DqiDauTgt4XH{DKbVq1p&8ooGQ7uf{nL|l!{h*kU1Dsm}A&$W$UOFTlu*cbu zH0J(k;(-*en`JXCy-SXbrnaQEQNg8GY2%U`{yF5z*W5_u9!V@OzPlKp%cLp_!}y(u z+l4HmBx+pYF@f)NsK;mrMAIrO(T^rAtW$5rt(}nsW}W3}<=HTxa97g3@iO(PK^vkBpNSDfHkJQmw`_KS9XdhNZ){|Nvu^WgI;hby ztRwjq`_465Q6bn%6NxAFzuvpepU~8$JYpeUKrem}$=h=hYQiQhUa!Yn%*qwU)A{Q% zd|zaC9w?5-yd{#QHb7JwPqhbQJGLLeYzV$z*ZS!yjmcyoeg8fB839~PlT&g z3yyev`rahbgb!rdi`Y?WQtE{LmIfvgekW!pV`&({Cf;(3IaKO|ff=)ph%{<&KmXM9 zp#Sl&3Ex+_Z-hWGGX`94_PQ_LNOQz3O2hN*P#ys05q98Mw7!htJ6NBA+1VBEP^g8L80d1(+$n_Bh)`ha1Zjk0+jsKC=YGu9}x#vl!~ zwc_wAqULI&ak@a8vHA_Hbqa9zhtO3PfX#S)iCVI|I+K`gUAi&N(8Ud41)pScN<_Jy(F-WBRO+CPj2l|0QNA^sURb!*MRP4uS+q}x;RkiQW zdL$bxn~89>^XT&A)8O~}Ac1cFmuGf|>&%z)CGkImwHSvF`%@~W`T74m;OF{;BY78Y zc0_vp=Ex3f|K6RM-pS6~Z)wH`Q};zP={>yF6+ARqKUu}2HH0CUp$}@V)6$ZxTbK(I zOoKQnFZ2Qx{9EdtBMeF=6ULPOki$$}L;1N_tM&gy{}REP#W1wr_uqtg`XME@VN|?` z2U-2vNxnFr4ni(it6EvbsymMJ%VaK{1I{0lFSO}A!cIYsUf5_mHhQ95|8Rycxh|#qbSJsY-mgusYfv}4^XC5HmtIO`B!Ucb zMdZ_0`;aRMod6eW5cH!_y)?zn2EvwD5@IuHy@cjj%BVtwG>e`)SK2w=Pu-V|u$6XB zkr>r#PiS%oLNMV$dPvf&{!!Xr_vv8a5PayAuQdsR0oj);-pCu-cQ{EurYWI8YMCuyebsK zMZ$+^s#7XtL<`wuX@dvgf$cUO%??66t!te}(7Hoh6R4I;oHLvYv@iaeVMJCB&^8>EKm}G~%bht2xJ~!s=dOl2 ztU%51vyu~eF<~O6G1hgBXu~|$)j>lzXW$k~fdWL!a>;IrTEM(2g>SLdf>wfKV0Y1h z!V?lL4LTHVkA$t+hb4|D&dAniU$Ftr`q#$<(PG73TqeSWlr!;BGH4NEdkFBW4mi}W zdBwauxGcI~%K% zrbwQ2EO$sWD*$A-pMxd+Op0ZVGNp%vSz5YqLDZ`#s?;BbNxMe6&%jFjZ3gy1R4DPn zu0L)lneBz6t4J~m1Y4=eO3daLV`bs{i4JtCHf4~xmWn}wS=`XUy{x(4HNZQTU|BQ2 zTW05PN94SC@7VfDg~xr&E3L;((@rqJrUC?VYo)8AM69JHAN-3ka5Rou={PQ7oS<-^ zWUaTa&=x{Jl)OVjB_2$o$W>yV6^brUZ<_7-O$n@HWmx))&bG@<&d*4ofOMu}KSZ)f zzPhI(DtRDF$dzS!Ka9Nl;2ZnW*|eAfu-~jy2ez zhu>sJ(v~h~C9YMMmN+Ler%j3>0>n_EL!!CW#^B+(fU#=Cg-x*J)#G3cj|t0>XxMN& zs?IkgkTtTjSFV4L#gA(@rehO6yR<>ff{UAytSgAuP@|u=t;oB8&bKa6F3#sltcu=u z5_irC#9<0xKH!~dWh4(0&9*z2A|)1`z2n-2!DgKEcKnPcI6V++d;9MwVG-($h%~Q*5RtlJjKb`8Dc~hWTCfrnJHE zc&|Pg>a%gh0Q-O%qL~VgIN-Y)2TyX$Yj4MufN0}tf+MTV8~|hI)voEXa^ZD+k4;qX zq7?6Q&gro$W1boUp^OIZ20ZZ$I+^*caJr+bm&{-!9X<1HB%>@eRC6EWqYN2}vdW-1%OC6--P5xl?6(kQfnD&D!r=c;+-HWRv9?jM^6)hoc`lVM~|51fq8 z2{ykT)h!0Drn;h8*#um1wAy&3gru-LvXT@M8K26Y8O)XDU!4KMCF%zHP_4zhl zT28qWB&WTW?bn)%R&s7VKSN9>GD0+7Fi21J6&1nTF5yBzSuwnd4lnLD$~uHv&4F}B z)5e|MUXc;I{aQWy`zicX!0H`k)wtOEBq1IS&z7>sF7-L{w67BL# z<(DB;?u_+`WzR2FX7)oo{kAN_K6IvVO3!rwaQ*k{R;O)_l?%<2mSiD1?w^spY_2Ow)ZPUIKm%$Wv5>ON-!bf)BRUarnSkseB}DhlEL8rA zxQ257!ehyBZx-f5Zj84%^Jn14=Hn7~>5`C{0fz(n*txi>@W(9{MRB?sKbtL0|k;Bo`#d2O>o zCfGT82e$ei@*dl(#b+CSkp9hFIVeoVz#0&VWoq~|gdRh+7 z{;V1}z!K&%H*kUpmRFW1sLogkw3a#g!c%-amTQ1lUSp&xpQm)x&Y5&3(~FhRP4O-% z&pj&YU3KKy&(WRaqKKBZ9lPYQo{UR@#||P!h&uy2FHAkIlL9Aaj);Ef@bgP3VP;r{!r07LZ!W&TdA<{&iEsg>XtP|+n$LHS=@&2yf8K%LO~vtF;eorIslUXAes=WX+y|`hQ{vZ;C>ANm zK_d=jIzfYnQ%1}OgiVM#Ptl{hu;e5%|_L~TCOqrM1C(yz3nnRjt zrYS;T5H}Q~?C01NEx7Im{6y`%JoboOHWzNygrCG<|M`A!7ATblQMtTFR~Z7<`(sVC{iuP8(Bf28-bV zKpCf`!iMLoe9N5Oj>(Az9xsSP$7{D&X=a}1jFb$1WZd8|mF~w}w%B4AsZ6s=4LXc+ z8#0uUy4p1kZzSx zG2^ggB*(3_@xy(AJICv%-r-5FssEryycCF9K}ep+TWE?<%Q=WIviC)q)D;yRJeo4A z$EkEG+m4j1fOl}+*#=A@je%8+uJ0nEsd0`a1D^+Zn71@Vxt_?K`u1e6@*0*AM2sHj z%0*rll))*Yn%Zy~p=zm;5yMkUnBtS>D@R;->wHPN$~o$b=AbdyhtDg*9ts*7Jz85k ziEcVh64J_3I#b1xN`t$~-;n8wQIlk<7#064n^j2^>YpcT{CQqk?LBeG_EWNW2~`^O zTbPv0jR>#*!d8&uSiP4{5p%;pYdfQ1Et8ZUgtEkH0o-`aOyADDzAx$P?s)(6c+qIu z`}Jl245hkIoV4%jU6!?obETud?S1i198?M!D_S8A4}zrn0Tuy|gMx$tZ8F*#y3to7 zMU?9xVV~p>Bfos}C&zyp#LgT8Ry#qz0o`dVzJov`ztB<*vgv;Qm0 z@2%Ip!1%{(Dr#Kk8$>kQxHEdu68}(3{}jmkUMab?kemIdfBMW!_rTX^b>lTHm1Q@tC#K5yAa0XaAy>;s6L8R8nh1EZ&6d5ve?h`g+(Q;}A!)?)!! zD?Cx`Z=YNxFS9m52L(U;h-&yZXh>Bjf%cgmdC&;?yjP1x#;Ew423Z>Zk}5eERzik5 zqaIm>USV{tPOF8jPfgkLs%Ft3gr_8e&&7jbkcRfp*R;O3z#6~$QInOW8mNgLNC_%) zSQl%C1i&LsG8lHsiaNE!l0~YLBzk2r4188O_H!liq3!i>HF_~Iy!T6kbDm?hxj8f{ zJT1%9SUJep8lD9nY=zaSJrKley$RQAEM&qck`^FPsiThrW&!T%;z<|n1cjEv>^f4C zxpo^z4zD{eVf28v_}Ty3_vNDpRbpl)7y6gE0)R{Y8VnDy=fKaG~1z~vEu*(64)C4=41eb4$a-T zz1^0iHR;JY>Q|k&s0zxd-=PJ|LuFUz`lPyRDs2m3g3bfd`z3BlhRN-<{vJ~AfA|z0jnmIPfC;cHT2be%&cZIUO+NnDU`UUGA>OUG(@3k{LW?v?nWa* zzvTPLmWaoY1LmO;;XDK*Xt-o+^OspC$M2gC>rNcwh<;lt&zxUlu_q1N5tNNeo;cXU z-sJ`D^$uFK{QP5h!0lbjMK-vG_v2i(d|Yk)3GE`cIx3A)EOx?Atqai>%G;TKKTv+J z(3o9w7Xfk>sE+3K=061yh+jnk_HgZD^73Lf4NHQ*N2${!8Tdk(PDr+oh5uwX>3cc8 zAa_<)*ROMi`}2!);CeuvjL1i|bp`Cd@ZAPx`bSwc&W8F^Sz2fYVFw#>pv5zhDuDcX zJt!aBmp->Veoh~-$R8%7P6y<6lECE%Gk?guYFPQ~+n5-4HU8*bk(B3yGo=JV4<@Jn zEE3nFi*e8~9#E4JRfl9*(_zHui%`TY^0Ea-(G7b4=(01tbt{7!fI8ZefU=FI4`J6AZ=?2I7m zepr_aSs})6Rv>G2%>>-{0f~zVXw9lnGbEcc52tx`wHWhh!!e!?oS!ip?XT;q)$rx(1$JH_G}1LhJjX1 zDr1H`n>4=QJ8wqWE&Kv*}9))K*OORy3qGv(kigNhv@t}8`-e)Je%rZVt z`#@N`)JJ5Em^r;NRT1R~JxhVUKl<59wfclx^xHjI+Rg*(9mnTiOcsRBN1W0(TFhw1 zL|fw^KZ`if;5l131UP2kJW4eyJ5iR zP@ejtQ*&`SIN(mZpK~obu38xQR@AXB2*P4Prve2<`@m@gIt`?G0`4Fbq*_&>Uv4sxyc} zqyrY0oheIb@IfT2p}L|E-az%zjdev-Gf78dZ_N_8s^@tmmNZ?A!wQ(Hjo@`h*Fb`b zJFX)#GiJYyr2CNtN*sT~`x;mDY3HehywbB)EcX*iOMdkdEf)dM4Mz?ScJ~E@cUju) zr&Zsn{c1P(hhF=dN;aIeW^4V zCq#R-txWXy)sgkIkHVenZ>z7OtjM3z^3?upvkeX7BE~qrSktT2Ao|s=uaB)eUpBnr zzu13S5t^K9n96St0I#|VB~O@WvI3UonP{yO&6lNXxDW}Il^3c)ZIsZLf0Lb)>Ucg{ zSZ!>z@Dl}#+wrS-*T<%B6OmFL!O_H`U}}4aUoB|cuuh54xBpzD{;rq8eH}1WL*AU} zaV4BIQIuBSw(?s}r!d@#$US+&7bl)ekix`oqzJ|Tso%{&GP4k+PWL6sSE;^2~=$|hDG*BvMCbXViFGn)!4 zcUauP21dLTb|o1ZcY!7qO=dqyWKP5+WpMg&av1^(RzYrZb26}RhI z9d2LZ5?3SGrSTU@;7ib<4d+ih3*DC*d%!$f-RG>0pG;B)FthV}!aNuLl>U{xg@a+# zcl>(s&nC;d>t?Pgh#g@W886jccRT;|29kF4qsKoiIqR3+ug6Q_FDt)Vj*_Mp&GqD$W)clpVPmBA|%35 z+u+N-;^6?%33lSEGyb?1ZcVcGR7F*4Im{tg_e+akW0>fogTh6FTeer2ZYC>ylqcUW z8L<&0dx2f~Qeb)a{KKo>USH@^M6CV6>FDfZ&n7{z9>MUg(&q}@k>PEvgw_E$>YNF! z_-Qhw%JTsfGau)21tw>dojQ-RKw`CEDxBu3xE^@vVv-3z<n%-X@JC`75B4z_Me$NyQ}$VBf#NDOlnwOrW%A<892NJPpw%D%PV zGfEuCZ(3`Ev|f$CXNb^z`4m^Z7PK_(!YCs!0M9fDDG&>z*|D?r%1u-PaS>KiXA(}y zj!we+iEj|ukJr0tjsvH^_E4yPwv6`;;l5X&$&?T_0}rRBKD>=L-E@1!J{tG5+5zmu zykpYqPW%#&%htoUPD3t|Pi#NSOgMdZjQb7mo6P64rI}4_& zHqx~<8P*!6sLH(nHtKI+;xJy5mKYRd;K2L5Wps&-zynQv%Vq^l{VEL$aWt7pn%Lsc zmfH?bfmFskJ1Htm!rdQezTIjq8~%ue^#g$@9%;b|popWvLIq`*@^5F+wep1b6HccW2ow7je4?>n2e#z9*h+Zp?elIRd zY3;?QzHZRJ5#K)#5L;Ez(wna}QY-b{-1k`U;^kHFj*J;$v9bPrB(sj3Dr(%+h9kD| zB3(w{x4|zj>(kmoFYhiNMOiZ`BfszBF#O%?dqTN^nUf*N{H5ocRl!q=Qmc%@P7U;7 z>y@1Tce?OuqIknKWA171k$k1YG%Qx#hFfa2VL4q@l$(b{>7R=;>+ESBkR0hFk4kF1 zwr#m*OuU!Gc6sA9Aq?8Eql-lf>)L>lM39c^#BB@h?n$!oJacU<_hD@OOhEH4ir6a| z1o=Jj>zlcRA*f)D;;~z;1lC3&hr0?UkMl60=75FnntIrq(U8#8uM~IlNmRDZvBy^8 zo4NEh1O_9nvo0*rBn{Cl@F-EjaV*0J5L`9r=*VZ3HO!t)X_58TD*VY3$rQ_j=o6q029SJu;C zqRj~#CRLX(u=|HgOtGUpikFSbtt;^UY**^Pw zg5(I2bi)!@D^sh0Cep;Eto#VC2iDlj#D(taN+KcoB`)1P<@28bRM}+hlTzM=+MGmsB_bl0!4Xr7 z!cuOYZ__M3tyIy@=wA_V4Yjtw1y=i#Gbo3?!QZD)4gxExF(wru9E(md9`ZSEM->b(TB^UL5Hke zKq>gH*rQu=SnSW~7M1=hI$}{$9(%0 ztJHK8><(JJ4Z60vD1`T~=>g+BkVvCQ%G6*??p|2bJpdu0N}jed{E?9+ZN^CQ%t(ry zs0;dd-wwmZBl~ssFfh-t;=Ezb8sZKidfwo=K^qPWpYbBWyShlUxEvq8*8vuxXAf!) zcOE+PdYMaAuqEl@@LgXfldSJf=cvmBLi#L%|C+-Qf9Mq-M{=_o35ypn;=0&wbBOlT z$vP&m%=EQM#)HJjK84v14&Z)kgN|_aocz;qxAqZOlYo42p#6JPOD>wA_UnUW;{Phr z2i2U{h0#Dio1F4}vLhk!&`J1oPcC^{h;O6Wq9rEck}|ra^-x7S?>-KBm><)W3tT9< z$uJtcRh8%ra#51pW^_1~;N(4}gM@Cg6;1pLQK>;s2?`}T2z G`hNi5mxXQs literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-05_145900.zip b/squeow_hw/squeow-backups/squeow-2022-10-05_145900.zip new file mode 100644 index 0000000000000000000000000000000000000000..a013b3c48c8204e0706e94a277b3b2deca15d563 GIT binary patch literal 77289 zcmV)0K+eBVO9KQH000080AP1TRgS}qPT0->0JA;=01yBG0CRD5Wp8&bYiVO)WM6P& zV(h(JlU&DBeQV~fqpU*yf z)2`cHdbqip;S<;G=grs-OXNnWnS>J z&#uxh`1Qp%U;QE7KeWY%md`DJ`oMF?pMQOM_0#J$Wqx^I?pnKE{jBG&Z+-0B zLmvzL_3zUCPuoNye|+z;!5qE%`OW?OFL<{6S^oR{)m{4e^7_sF@^=lU?d7|N1D||( z^X^@{epr7JGx<%qq5V(t)77W+@F{ihQ)=}o%;h)rO~ZOU+;5K@v-w@Rdvkfc{dkzn zmv;~US6xr$%bWLi55J_ly878+F1J4Q?SW4XQ~7Pm+Z2YG+Z# zVtK|kHsfaxzudOji$CAo&iKjf_2Y*8eD4d7n}72QH&+$!E#5frjm3`L|HAP6^G&HB z=aLTm03YgM|5Zf52dudiQxOsQt6n(w3D%(FY zvM^uoto`y!2bX`r&qcqyzPx`sd-126>!qy3o9n5*C^y&l4|nMjvSfCBv-rg0Hob-J zc(}QE2bM0%RZDm2y0n>GzFYF`)y=~#9>2Ta8tMJ;Xo zK|Z`o^yTF z69?}4&hP#0GTq-?^Q7;*@$RO!8ErC`-ha5cyM#2}`Q+Q%H&?gq`uhDlu(R=%$LIIA z7#4uQ?(=$y0X^_H>|752tXJzpzrDHo&u7xy>~Iv1;FSx zIEvfzaDUz2qz5SS9Tslyleu~SaQpsY_YKS(CJhtEn{jVa|As;A{T7~IUjGd%gbnwA z?X)y)joE&8d3OhFwf$@L z?(*vD{w=osY(2a8C0(`ksiB=;u9w(ffN8(XUi{Cif~oxS#rm8s^u~3AjGMh!z%hOS z75Jz2AU=CZ;)hh}^YuGw>m9Z64iw>EU%p(wh6enXKfPMNwvXTZgWCNjwBP@!=lZYf zCs2IvuOVBmG4fW$XMY)}>5cD%gP(94pNNn27VpH3cStVZ+8YYd)?1qtY03H@;_jr7 zethdkz4wD=cc2TJnul5$7Et|z#cJF}u-rUb#yk3x*Ey=8ZeTIn`2rPep{lkmjCI0Z@ zN0+~Odw0W74La!c+twZ!A-w=A|Lc9b`FXzZGu)TABcHwouz2yPo(5p~07&|!3DH=x zL8RuhFa?tuO!mS_W4!Ce8@00U8M)2w-_^&L{q|x|iC%fBV_Sw&u6XF%Ue-q!HSW%*%yY zJTQMcd7XVT$%?AF6<7-+a#Kw>^2vMSVl?VF`31E#_0y)_)g&PZAXyc5r|G7M6tfn_ z6p}b0+IM?w>Nm&_uOBC48gX9;+s`CXvjIs>knI)3V+kSG2(?z)ROUBdPothKdG8E~ zrV3WRVedmM2H_mFknuO`+)?T~#807JR5#Ik63Tdphaw?>i#6DKrdLUZjLjpo_1swe zA?+jW;k9^tuvV;tvu}g?@b)8hOF5^4rOwXtc}o&vs&{a%tT(Nis>?CzVuQT+74&0_ z*l5&6k(hpyOBK<(A}Rz~RK`_lN6*~I08XM`Jh>266sqY#{gH?!8_}`dounvn`i|1y zo&J-kV{)yDISL+il2Mt7R!B z3aL}XVTat$4x&#RYkk)>WO~W#-6$+Tb{Ts>CDNwY zYDV|^mM~eJvlFCC55Xqr4ANdGEa!J^xDR5#&|Jw6G&d3>{?~L}7q?PJ9VXwp@a;F>e6!&& zan&Z{7{_*qp9EzS1HfICzBw45wcsGE9VT|JBKF*zoE}W!Eq}>!#Dm*{$2-}<hS= z_wV?3(nWfQ(ei!%1zlhO*iN^#gR#d54UBIX?%-w-tF;uX0FG_P&)ssq*36vKi&L^M z1r~F(FddA9$d5)k0V#-c<)aMVPxs>dxc1_(1UZWjhl&YFx+atgFnf&aYR1H*ETF%ujwf$lWnMlS8Bwip?-M@6E6pks@?xGikK4l6yz<}oeb}zES z{!lBxUBF?70mF8LvLuqyR!G?kl!&!ayQ97vIakU{$2boM^il8bJ)CCH+G1U8qy@3s zHxlqCXNto1+M4tZ{~I$Y*W(Ze2O>@zNifM~Bc3*?6xZBt~6n+vFA)>}2{bD?mOKVBA9IKn-E`Gel>x%H>LcG_f9={XOz0Q4bC> z9Xbwj(BSk&K;M*e7Twqc@Cm$8MjeSv+Nl-o+49u{?CFYEwKUk1u_Yk>0FkV55)F*M zu2V3uHAg3Xwn+~V zPQci(szjy^>fPszJ*HsYj!yIr!zYlf9%80rcSQwV53^c{z)tpotN^{5AG#5GI$Cx%*B-hPeYi)~z*@0M5*7b6 z;{m>WJcj3$lGn>Y?u_x7@O&U|l`h&}%sr>+Cl&C>QjyLGg%ialX@lMKAY8$(x8fb|%@snvsR~qnD6V~!o3A@ijhOul@ zR9eHlBYDJqet>at3iW0iAUtqL2^56MhEbM;Vd=f84)=#3|lWtyXBdUh+ z1Zdd=p1`2dGDQd*oAQxMD#y@g!+>&wLw6#)lo>X)#0e}#0lj14G3}IK{L2WF68o); zn~rNr3)^Kik|_p+$JqvVLOba=3IGN~NeMV97wMJ6dc-4ycUhiJINH)Z6)Uvji!r{0 zjnp8;d-OK9oRv1mCVQ9V6DGU4qF@>tVI@J?B>Q66E<)<3{oRA6jdb4u{6+{+G~z&$W{g7jEpr-2SB$Tt7_&U zs=Y|X

stcmTvSe|K5#Zpz!s+W`~To1d>20JvR$`KtZxvb0w>xiZPK@G`#q+^gpw_AqN9;kF3F81Ivg}3_K!I!^b#j%{;p|`BBLJIgj>53# ziZg7oQKxQUfOq0s%qX(en5h!GFQH3aBCj{Goo$Dz9Qdw+>oEw!E zI?T$W(T314j_rhvfH%2%Fbz>kX8~_4P+iJEb(ImNff8y4)LTf_IU3irZZM_RQD1J* zc-yf*N6G72i3%`XuZ|Ih2e=79`_P45CDQ^HavWL>H{_(ZxL-b*7;YGVE39iGcn4tV z41fk{Ei@1%fR$-x)IGa3*_*R}0(lowt_GTsGCN9%I2s0H=+N~kL1OxRoc#XupS1c> zrPhmb0(u(uYSq|^$zwG_gQ=xjPIfHXai9LLng0|Z1~r6ol&m87t^}~p3ni6n)kazL zc%-XiWGC$=`zLWSOX{esGuSP*A z6$3zToC+dwj7q5`wG?FX{a8rOChf&*aSHV)9iWeqFs&U2LP-vUf)Idm>N0joZgko= ziTz6I+4^ililQ_F-U+;iXu9YSdf0y6yEx{h-=%)?ycgTMYcUGd3EIrzk5r-+)-;Y1 zfB>X1&iRK1sk7d3cKu*V?3;`+TT;+Vh68ajwtZ1v$m*#!ohcmI?Dhcd>7-qfwy>O~MFI2$5gT*?=dfWN?8q*&4^fUsS=s}%r}Lc%zulo$vvQCxT6^qs zRfUV5vh&rsqz+niTOnA3Nw*QX1mlM<0jHQgqo&O|UWrlJrnz%@ef$1l)7T-HzBPDQ z;#I>SwiOCGX8~vs09}-&Oot4(^8TJP!naJ)Ehg|&zlM#SOQba;fBk;jY`gin-Cf)) zc=?Z;>vr*&7dKO@-@Cbe7;?EkTc?!c3%mpH9lU&db2qHT8n?khdUwe=!pk&sJbQC@ z!3oKD^I`pTc;~|}3~~q7@jquj-+P;H^8H8O7Gv)}{`!IU*BcUlgY9xP`=#Bl_}GvO z*2>;=fX3&@(C(#(R!ZT6FC{`GHNCw>^}#LrEIV||p|G*Azdx|Bm)9G6G}T7INjAd` z3%6>AkRMT1gXy6>c{%M?ZQt@;Tjfjp@W1GlT40qgAr?6r(F8z)UD3ZXSz~zp;@9-gdz@*8S+-GptQbkLTVz z=apKlJ}ax6pf;ok6qrJZ9UuiJm?=(nKZ=Z>ez_AMZgT}7?h>nFsKEf&-3qBWE2KNp zqd7p&aIqEG=JA}H5CRK>5JaS`g=z(MNpu}cajq-94QuKG6#XLu(`A4Ys6xO z3avsIVUr(o@;u=-uW8+t?Mme066e#x>V*X+dNL5B8X9k%%=-^>rRIt>DJD*kTmF0QMiCxZk}y3f5o6Z@v0z6Rh`|J2o<4277J2^CGv%A4tqk{Rw+jvgEVH4y6ihQViL?zk9;e~o z8Nl=faQ_t-n7mj$p5Okmjf{D4GyHeXjFBiczUPDn{9*rl6v;%eb=i#zp+C!r*n;7zJ~k1453$;n#ouPOE=`DEzmt|NLP&+}+VW z6EG&9Lxe~YLzc7Qo6lH)a2i4KJ6)r(=gl3NSo5RCWL-$Y^O-W1(}p_35#PPfEvOvm zC@9u*O+%@dRoM&v`|8QWi@5GO0Du!VG)@KLu;(1J=(*JZh@z>Eg}iK0Tjby`9_Z=h zsU+ZCsf8`%_#!TI&VUpkn@IwbsxSr*_SpXw+{0=zEy1j-zOoGkLm+eVst?q#abo3I zztQP;Bh!BZ|B#)n!Mqo)T23Bn(5f7@P_=<^M?T?@9h?4L_D>@2B&TL1D++O>V<}jB zoMZt>F1w1cw@Y1|PTnV%h{J4E;gT;Ez&NH_M8WxVuJjs5Bm0K6-{<{=l@9^h z31D9+81tN>(uV8>h>M_1lRcPnr1r(eIuFd7c~thqr7u~*LWcnaYhZARWRapbLg$+B zLKoPB<0H@qXa9r=sIi;YGOUj_Ws;)IoDv^pKt|ASvtN4@<4c;vhgQZVyytkOt=)DC=T<98v5@GB1Bkt~BD1r-mq1)|sp~cx=CMKS z*PL)`NiE!4mG2-cq)Xz$Ub0oFwUT`tt+(>X_4bON!nRYTn?OnE1dV2@(q40!dI@ORRLvjq(JaCkkSaZuE zA5}>l_+!()H|r-+k6g!!7_yrR0aKk8z|=uF<0)B_pwEv$=mRJ11lpM^1~kIFdyb=H z44q7t@7&Nqhj8hYvs+zP1@D#@|+-c_ZiYtq)Mv9SQVNZ#l=40nhC z?>d_d*;-m1JLGZ?GM=>FFcEOTp~z$%@|`Ov*P5}_JYQ?MoXnV!EcOtLI32?DURBW< zmRXkuN+om=$TgANEt*Digodl@> zj;V0jh!!|ZI2PMYa&26e?$Mo0HcOo}SCCPW_j8X4XvtLp)zMT`UFuOwcynf#agir5 z409g<6**M;BRItY}P2)J(6lBA( zEnMoamkN#*j%_9w*}X=p+ePQhF^=U>u;CmWtG&(>yA1yeOKKBA7S`x?Cy7A*ke~s zVpqak(}^1j^w1ZYH{jHY=BhK+LVmB~at3z8F?P?UhYmEW*kf2vW0-UUn>2Xag^669 zB}ia8tzf8gQ8BY!ZzdjO7_80)rk4zJ(ilCXklyd4vd6HQ#IVz@RmXR;IdDQBcun4N z@oT4}PpUV)Q#42(=J>4q?zi~aW7ke%*TPnU>IJ)gc>2@3;Bcxs~^re2xhq&O;8K`A9e z2{Mdho1&Lgw~OM^L8Nu=Jw1|i^4Hg|zxtT5;2K{DcoNdG9_q}Y*AX0skb{rK`5g`q zBCGTAcg!04D2LL^YLsO2fNSGHCX3vX7czB~eIU|qhr@$V>fDNFd<{RwV7JW}uKidY z*Ex<5M!5nds~o9&AEn)~2IwGkIyaPfib)$&*F!90O$wsc>4p;tg<4xIy;*6?`etXr z;z77{W^j0I4U^=L&${JiD$E|@EJA3P6igG8JaN?$>1i7!(m~X8b}L}Nm)IV| zaT0Gr6A;C8AK9t2HixAXQpr0ttM(^QN}$=8sZD2;0s zMlPhx5#pvWUN*3IcTj{nh?~xC%OB|cw$Ji3Q_pJ38~7@U{& zBYkT3Sf9Afd+@#vJwiC#xHv9t8KRIa#3p6YDePP?9K>R51fG}mBkgzhSf94tsidN+ zBbXAfn2e{wRr;NfPSrp$x|DVl*I_5t`FTImR(Oy1Y2J?JtT&{_<|dzLM%& zWjDGY8|Pf%TD);+p~PN=tfLgUv=(857KaV7%-fk!oJ&ARt>-cBH$jF0`^Sb&^TQPu z{IblxOkdHrVg`nHwJ zep!YrshJ%9G4boyL!Q)5)j|9c@4++XILTgHtN;TP7!lOcM0Pkp+z-c8FB>H02{}%* zk@0`F-p0~%;T#(U>7m|ofFb6j7q-fllWSV_qjj`jUs`SHEAh4Xmp`wQ|96M`TqU)W z)HbAs!Lst@fUE#H1z9DNwXqfe&QsHzP93QPb8^Ul{%DEv+>1}93s-1J9|b@JLKIqC z8Kp9?6!NibCz`v3aqCurRI5jNJBVyQ?O`+eKe=F2@z|DJMKxzm6H{GuWnIA_jUDZn zu^>L%9K!0+DML`Dk%^Macw=vwqG1y0NPiXF6Z%9DO>a&gO1{f1MtbqD!JxhtL)s79G{Y;C>qDiJEaSa#mw$6 z!>?I|(48V4K=a(kd`NzB4aRCUiUa4X^rJC-$2OxoVGOKAh`9QMm)xEc{O8(}sIE7c zD+K6x;PCh?oHBxfrFTtLQH#yo6EKOWEJU@;FyFaKLpc)SM|RPz=<`*SAKBUCgNex* z+=&SoOL$)}16gSpPuU384;liv1%D(3ZHNBWgNYIIIyc_|;FXIUD-{%LDI<#F%|X`M zHWtvj#qEmxNz`Lj6mnhEo#YfyNP^6zf{m;yc^88m4>vr-{7KYX_a<{8Ky9q#E^vW) zhgdRv59GB7fil%2@RZlbL`xDOB5zH5?z@ zx~n}WPa~}(ELMwcmWhjYC3dq09J!WZuNPCT9gUx+6=r`FyIT97-ol14TiVxZfA3P9>^Y7c2zq>^hjj=sCEJ2R! zbf?Z$Z#f4t8B&Hywmol~vxj(*PiJJ$8#5Li`0rmIWhlmmz0B^`$UVD)=N_Eo1tzD# z_-WbZZLgy_$k21F&BvX{uV4Q0C^K0H8+^}zqLEt`a@o$#6-i9t%f3+DI>}%wq;rdz zXE-h&cNo3ii82_yQ5-&s(HcQ}% zB)#3KavKkD@H}#PdHKEARtJ2_*j99WTUljHf(0tL`Z#-&IisvXJ{#u)X@UyczAIY= zM{cq63};2@EpA92WJexn$8)q)2DF6sOx#F^tE>S9*aAF~Q`Ua1`zLu7Uw^-LDjss< z{nspyYK@AHg^lBU6_X^aqX2PPV5jgJdVgULn?%z3by-JyiB8| z1fHQjDh2iv!$yyli*^tJvwF`>BP=KL+f?Xyb=D`Q(A+#4r4b35q{b0Ctzo(Q3k zCvCkQZ_!VxEPO(#|Qs#q>qEEO! zYK;Y;LX&`|=Sw@qor;nbY`&BBGWvD8$3J3y)XjG0zuW6#zCiIxet;!)GK&9Z6UF-^ z$tvNj<2x3pvY`%_(hxZ{!6a&%byMwJ#hK=IFJWjUzlGzMBOYKpk9YPN5BO7o@#<59 z@psGl`b|*0Y!QnMan=kM0+Ob1y=}aNbcjBPfv|NgN9zD>E0_QCi6h8532$soA!5ekXgt9l!>14q zWQ(-caQ7)pv`!G|IV1tJVKdNMYvYG(m*Er0_Dl>zCm9qtU+K zTE8hgL-Fj7(A+-J5Kb5Ojf6EMp;@_NF>N*ymvb%6%-FeEdF3~{h+_<2%oc;#La2}L zZNGH}Y?>3*me{9b3p-Z~gm9Drwp<-bL}sYr>Dcs@d9h60kVAAzJP$st(#6m-iRh!@ zgsLh+^V}(+62)Sv=yD97e*M*-t$F=FHV3PA8bv=7PKC;mAqCE;=gzu~gT%S)FZVg- z(#~G$y#Uwe563+SRsA7YExE={=PGFIzxQ0dRKZ^1G)1MW4R*gt!gg0$uV?Eptl=fi zX}W_~>7-%)Ht1ybKUMCdm<(g*TAH^hWEyic55&YHwH5W<(4^zF=S@&iMG}3uZ*A;s zC1~v4J?0e$qm9PD?onsQ_Ugej^2sVAtM($AIF#=)B2x@NNwF1*z5t?*gL4;VyUd?N zz4iut#67Sa*SOFebjhA(E@Ro9&CZOQ1~m5r!z)O*dO5KcxXQ|L-ykeAmp!sv(JOc% zd(^(;U6YTv9sO)gTAWPVm(*)_+-ATSPD!wUEtW78<$>93D`{-j53qd-<)*E6(kM}4 z&S@JH46hICDQgJ}D6hn_o>r+a7)Zp5j-d{o5 zO9`VNBE55!EkHXGL1W^j!ZNE=deUQ-?(TGN%)u1GkQh+Pusx^^Ib@i2j~VaAm8_b} zvipNZzy|(jUZI=)3NXvLVP!VS@qMym+f!1-!Z@q3@+st7Vri>TPD59xmW(n7A^xVt z@=ODsXqDs?o8;h4lDhC!QQ@9ZR(M6Q@H*sYJzUju(;#_<;f|I38?~kqb<36Dt>v7m zo;b=pG+4wijx993QE`&R@v$z+E0F(N#{wnvLVJ!C z=R(7gOFBAU6ID#h?SvqnKde(8{khC5D%^fbbs-C1e3u-7NWBqChRQkpQOSDDy!!5@ zzW@6D{c@nY<9sI5s#>j6=Mpg;BHKg{?F!ieBapK)bLr0YbDLHZd%8IdSeX--dgK;~ zp3~}ZHdQ8!F=Xv%FDh!cdbt_e_?ZpkLa&}o!}pRq2}fgvWOTdejF7w*O&gfY5%5Hh z<6Nyb+Hedn-Q1qgPc9pB0P&2p*m=fXow(brwB5;o1yti*tro04lKZvHQdDxdj zyI%M{*m>|2U#)0|+hq!p(M-=L(gPI}f+a?X9r^N@V~(9?GK!JKl%Q z>3@7Z(XNjaiVXm1T(iv>F4xu@2E$!5$jTZ+plW3E5q1NC<>x*)?h2!<0{8KK`L+*h6 zW1Nc(>ZfzADM6lhDY`a{I=HKxAG|qUDl#tg(H=a9h@V6|l&X8vjoXp1v~f+OCYxw2 z$0}2-(T;i-)LeO%?K-TF`^J+gVSAyv2AR&Cy)vKm%vK!0fz%mBQBgV`=`GH*%=)lD zj>qgA_hYepiE_k#cY$N~H2w$_HTT6;)=-Ku9BEPlT5|2xS8)pLDc#bJvD&;jR3mCj6=!MMhY#b4PYafiMM{#2=qXj0>>6e%eUIe;SU9f(Y436 z9~E;<-mPl~3=gK0R+$@1r80@Dsv)?4R<$S73Q z#prIT^J7}&Fyqs=nk!AZfDPsh+t@`{ZYn2*%;4A?rQK*#xyABsN*CIAFoAX~;I9U5 z>(*Z3;gP}KhTnUxwJeR;#%}o=f7;fMf z3h*NSrdud60@9mNNAZ) ztyiUv1IBHYwdQ>K>F&DclBE<{@+BCgnn=M%QDg*ubKqN~i1;rNyARtsQ$sls){9jwR>t@Wc?^GP!^@k5^ z3=Ws4vN5463^-CB;Ye$;ElQxOp7@fGQ=YgeOCiAb)V;s#b~Zt)s5(}VPczvngo0oI;fhZ@3z>(ndi?M zXg4*r8&E`5DxC75`GzeJcjx9v9H)9n$>n8Y-YC+2uGH?(dW_lwP*|?{$UVXnx1G~2 zQg1Ni^JvM%XHD(KD7y9RqEDTjhOp+d;eag9x!#g%?v0_}C#M)o>6<0s5$HOOOTuzQ z*?2YzcD@NxAL}gq)UqX^8T3moDX_<0VMvhzcPfYCgUBj@$TvO+g zERuT+`vUP)JxLu~b^44c?O8@{C>%s}oJJoakcNg_>?xWYrEzA|jq}t*XJ0kUObbyK z3}>`g$Y3s;n}Kk$4&L;5q|)dUlDk7~IoWDOF`Zk9@jfrHaASm!ed6xgN3KGjlwqBM z^2VzsC~znkJ8=@{@#=1StA$#w<4&BXWYU*nf^F4s2n0t#TaMgbR8V#qfCm~z9<(kG zr*>}!ES)VCdZeu0Xi{`Dl_0?cCCXrt-LNqw(Tvnt)lMc&Xea%fa;OgX9Ue7wpb3I? z9ax1gvR#ZKxz63m6%GwvLR9@Dr+xocaGwn*Ct>jpFVZQZBRs_jQ;{ zM|NgBXJ73HY5f!Lf7*E8NQk${1#3L)IwRSWN;wHlRJyjByW^aI_x0H;I4Kn&k$Vx= zX4Z?niU>R?RB%0O#z|Ek1N-N%;1n8zK~DXSTqh*PCPHHXoqGz2fY#z(j>_Muf|FAz z)Sxpk6-OPJA)7@ysQzX>8Px#)r@{PZ0N7L&_99TN@0DvDJFd;unCD~S~86PnzSG?T^Vhy>0@yB=|I2A*i$w*Cc$%xr-UF96$g8@;k4q(*m62P65*8e!ariPf zAv3Cu->EzW=EI`afYV*%&QVucbrBT-=5vwDQmu9FTs540Rl0X&p=1hsq`7*%2jni^ zhFmFVJ9^Nc2J?GXw%0yPHrLjx5)!5vVI=_`M~G4rPJ#Jb?(j2#;E8z_viSzR?YYU5 z=3oaaGIuR>4Vzd&iD!K{HRLe7|1CJ1l=2d}-aF^#cWpQ{nSK4-q>vz!Q>muubz!%E zg8ETV51?w5C*BXiaE+HJV&il^)wDLif7)y$UT8HBQO}f{hhXZWbf7+NnTholI zTmn-M9f+~c98ex?3_ho%yOAegdjDJa@HO;NQ^3p4bKk8{pqPjyb&XNURzr42D?07K z`ZMK8=qzL5RM^OobdD=s>sUn5RVHTxK=dc%!YV=*vbzg8CgV)u&GoB z2t5{l`c$JPSyPK|Rp`h~)UT-lx z&O!D^YFRxE=;k7=><|^58wME|7rAjvBoH=i9g^-y=Khm>_>JonL=PsL;~B?#2f%D8 zQ;RZq*G5yRp6tUsgRLeBwCc#Rc%3Xr2kpKeT&)l;yDgebEU9|A#~lj zVnG4RFl1Xg1>DC^2HOMD8?L%0EZ4j+EHXraoj;GAPe#gxiUzae9jpgq@YHcECV zB+sR1rG+q-Lq0}Mroy68^&c79Z?tfI{r&G>ig2Ol@q?L1ZvVgmksoQ}`YL|w)z_P+ z+Ip9|<*W&hQ*9~~D0@OnWm%SubH1%XJlT2B9EzsqjLmmJJP+xMS(yEBc|H5=58u4{ z=H=|W*Fuu|>Z@(|oB+;m-VE^h9R`-ZY}a4jE?5%`tpTS8Ab!7m`sM9UZ!Q3rzr4SJ z0dt-1?rwe-cVFIJgcCvZ42b*!#>3Umfc_V&$Mf4?c56}n{^jiT_h&@Zx~Jy2$&qqg zFAj)Bq*#k^O4V#(KE-~5m;5hgg{bx1oC{IgoUvh&f)r#8lyT64hUM&CY$a!B(s4xn z`+tA+Cnw_%zh4e^f2_|1tCcNLrlFVxSDWPQOREbuW6RR%T*?0iusVj}j|t;-HIb}T z7{6&QLL~)@K*5rbJU1lmd+Fy}WlM(m-4&qHT+(9sWFnrny*19?az%25YfC`194nx_ zR9Pz1^cbSrCe9VmPNb~~N<4Eijp7J&@3}Im3mpE-DLs6VK6XjZrrDbBf%ZwHQ%Txe zShAKYiY&^ib=L%TjLAL$SLaEjPp90R465ZW8rP@cTyf4A5a{mL z%e{I%(JK$UUJcj0t0{5S7lp-cRtyEVe5lgc(KHVxwx+#)HPK`VG55r+3>1N~;zo5D z__d}A16Y!wI9hS*5ZkBFPTWnDZ-ewue!NGH!{&;eU2~TU8+9Jr;`>aWG~WP`IdB6F zO>E_RF8muRcDc^5qkJgM9Z6FhcGhO{R$Me4_EY`xN;(L>AbQS*vvM6%ccM3TF96hM zHJ&-PILsT#CF{{lNtg>Qrm8axGcM7hC5IfvCLEW8HaR-u$7>EB;(I#jNY-#KF zvAo+GlcJT1J7YT-+>l|F<7pvNVA)7+;GB%#PWI79_&qnfwAXHOERE(*+Y5btbMg4C z&HE^ufDCYuN@7e`_+mG}gw;K;Bdn#M`xfiw2Zr~aUgKRm#q6}mh ztMeHf+?Vb0X7&)9pFEe)I)N*ptIp<6NJd2Ov{2cm9Et@v+2+!Xb9wG`a1c^+t@$tnHgW+HUxOoGnhMj3h#%_i zIp*Q{hxa*ga%~M8Kbyk zO6jFGtz|x%hxMH@FQpPce)p#hm(v;iOZB{G@BsY|YzUD^EMe1mE*R}8Wt$gMH z&FRi2ue9Ve082o$ziQzuD4^AD3V+?etOUgB!Z zg=^BmMp3Sx%iCjIi4pdXz@F!eyGXDJF$dbf6s|IoOk)?OPj+&Z?vgT*t9%zm?v1x{ z1MEo&;*X={Ml(^K?%k_J8Jk$hD$aQ-(Jk)H3zy4n8H+x8h4w_(hvFgOF5niO`925h@5W=5Q5`fDmP#&MFD@>KIU_I2FHgsq`3ox zkf~NkY;K#HD<}HtqNz}$aO7_M>5dPRWh25)=YnkP>}oh>9KYyO46PXJ-6;1@ceP>F zom7?+2)JRbbVg)Yb0SHZWT#fj=x%?itIZc~G~b<|+_!^(v4SK4p zt&~`~A+NBWi@i4NxRlx1q_wJ&8gPa>(b;r14~*M&N$3$9=Noy{5!0d63pSd7MFY8J zx(D=^hTGD|WQwmYhZ7x7XXDu)?sRG<*#cj+u_9ZEogbz?$#VbQToaS`;jeRkHef|1lRxAMk z1Yf!+nXliJhqB5x0%SYoR9A&^JIUj8Hh<#Mefs0r27dkOt1WKxWxeE|#GC1AD+b($ z96R@!;R~706}M{O0$i!|U^D?zt8jk_rL$g%l|yewe|$W!P(}naurQC7J^xL$iPDTN*CJDf9 z2OkMe36T^W3I{+}2Fq~ml=5>QJuKNd#T}>AKl@UD%6+LRa*bZd0XY;(F0crr^+`Be zOKmo{9`p%)spukg$0h{^%$7`#aJ1HMK8w_pOpjS-9ps`|Dw-aY}0QnX2dFWBzEbzh~`B z?VK?wClb|LuKKAsQ<@VR3?xrzF35bO>gRLzrB119X=)JIY_$17PGP)J!IS$^>r5aCJFdvgH*;8u4DE@{tho+d z_fZ{5T77z7>R@B6?4znfS**yO+**jhkb+1W)fvoghebs9IFZeJWtpifF14 zIXT~D#LAEMrG8?AXaI1ZbrPLxF&TxOmmGPa4LHuNbeNQ5%f3tZ6tY=W35?JF$f4#I z_l7G$SQV_!Mz<=*yP`a$FLi8|i(f>MB)jEuC2m8n1t-FnsH1bE+2~Jc0NyPi3ZujB zxssi%4VF&iFf54;U!YXN#J<#P0DP7P&XWTCrQwz)O$y85A0}C>V+~1U$AuJXh9Orz z?sYjoGiq69^~Y(2hH9dyj8VeN#05UA7J++66a|THCF!F4Bq0B3cBB4{Qj#G*G;t8U z=Ki@5>ql^o zZowdAQz7QsB~a?Ac>a7T$tu@q8#JoJmgWqm%mqfh@G2G+QsW2&t zqpOV`I=-nUY$i-6a3+}}9dDm6CAmr1xDAl5`Nl0Vi^ez@*t=?cX~ZjdzT{X5bP@QL zHKoY7u1Wx`2#dR=#`g!#&={_JazeCh6uZu_?<$-34J#13SE5saSz(GV>Wrm5gY!mO z?wzhVumQVTBw%P!YD-DgsG*fP&?fNo8LdohGDJ%{4h+Q?b>En z?fT8b+ihGseB+kCF<1ipJCDDM`CI(NSu5|Ftd5oTrKHgMJmuc>y=t%+AyY5{ZG zhjR74wu^pu^X}sI=Kg|5aX*fH|3GpB`i6L@$LG^QrOC}E$)SE67-D?lzi}1p5Ss3$ z)jZO@c`M%vNtjCB7BUkVmO>&dZguNacgE zd$n#p0)sKX@eCvFF;#8_2s;-V-*B~~=zu$8>|M!f61K=u2(0FcyC=~F1z<|ITz7n(hZhFi8I;0<9@?v8Y!qQ}AJ zip$6DQ72JuEJ4(*MX(`Z-7 z{~>4{bKVyQ7I-fLyDx?ST%K*(V5EaEjRFnn|me0%tDYKsA72k{;ns0@ppib>^-}GxJ#FB z-U2;bUeDeR416(T4!)QzIKUeZ27cchZjG3M$FPphSK3~T9NP6Jk&lnQN$jACJL%i@MgMe?hk9% zT$sCXF5g@a)ytYml-_|nEtf>n-odhx)ykY@D~I*{BSQHXaFV|M%j@M}4~+Gh^nJ2i zYff@+b+!T7+m*P?aji;n3s6_8MBwLC%;>G#f|{9IzeV0-U8lPQIWSst zcMQ!=>ds}jIZBv78Thi9=*CMgfS8)gWuxTbwVm5Iop{s5cdlzs-LvZ8Y?orV^NcE7 z`GUqv^eyK8k=GS@aT4=dCud!eLI(&%Qvg#!C}y~wX|>pr`lvTfjo7 zr5ulI7`P?+)!f^jEQBu9H7LKo$76_oTUtZbXT=y#UBL#*I z4&WsEnk)=bL&6!uQ8gutOkBJ&tJpHMKrEwH$|ki%?$@c*o69{U*a(pD;GXmSKy^_F z-?a{d!H(I(2Z^6H_uVA{`wPHX6i8pLt)7Rv6#!AbP>PInU5S z(q{;LQB{vz`cY9iBJeaAO>+otr~-Xl$WO09HbgOYI3gCAZgX+q%R*#A#QQLIS(jFE{E%e z7GSDC$^&2Y(hKDy5MyJK*PHE>Y44${gj3#{<9wvTg<)0T5P<5j-dtzm=(HcCE+gYAyQu*DL+Qb{;qNKQ)P;t5s> zPU>z37#oJ`G0I|NyDby=%|zNx7DEP;oGfqk1|vU*9)*g@GW`y4|FJojdiS7BopTqg zhoKI=g5%DXWe}M=cea+5Vi7}O{EBrw$E&SAea-`pSundy-1J zth?ZbAl$IEbI?r?&@{1!s5$_}D41g6d;4v=cuO_}GF(Wl1^_vY0~R%TR&LUE2_!e( zRA!6M4bG>}dkU2*b{NPhcC9eGdK4$cChOJO-M)?|*L1G7RVuA-+~Q*I1A4U~2T+w|$i z`O2*uF36C$2r1Xm?_3SER_y--JJKF0GQO)$wzS)nG-hLClUQAf(Q;Kx_U}pufeyGF z|9|e@tXY=hI1_xIUvaIUBs1n=?2Fzgf*eUbT5Les%)AUNmP`sZ6hH&O(Wrm@d|yP= zsj7_3I(2aFrKE0Ilf-dk#pdDuxrZ;RZdyHD_k{*El0S=B<*k~#+AU2j81IL9Bv`EFkhD2LeZg8Q;4sG%bO?A(d%%N(YmJRYx5gp=cYuywAf| zyETm^v7FC`mt^l&bdb2p6{$B?6xO_nZ3~Nq)MG6R)3Zc;DtrOMG3`>5^~otU_W0GP~e-mS_sTM_>SGs<~G}o5n9b^?BUC?{(Te=}R=~%_cOL3H}4u zR`Hc&jSBW`@+LQZQW9S-96QFUME8PJ+QJ5_r!QvH z()%C8%kyuQu;`=7$u1?gSOh+qtceb#sBtndMD+tto(rG$qrYqIDZ97DPI}QaqPRNsRz~J+$LdO(LFBs zE)*GLv2F}$4O^~0%XAhue>2dq?mNdnH?RqiDeQ5iY+_S-7!s{7!Ioec0jHLF-eP38 z;)Ma>mp?q?t*u_;Ho>H3n>tfqngt=~ELJcBRCQ6FIyG*Gx~_T=_n9FN{H4{~$an`8 z+pCC_*lz{{q);M`!sqf}?CVfJW5-z+8M_O#6gYG&Y6)`93+50psUWP7Zy4BZNPF8k zSnxSaJQvD;Y80HJW+)iXnxtZ7Kp0~OSWbW0vct(m@52uM@6G3)iT+t8{AALEc4gfp z1Sf7UH(3|HvIAV$Eb`_eJB>fIkL7)5=AS!Vt%e=>mAtcz&*r@Xe#Da3MH>}+FT>ze z;T3`U_3Xy-To2|M;olZ8x`F!twbLR>%6fIVz@+xgTNR0!M5 zpE@lft|27@l?6=7vhpd3w0EaPgg--8gzynsN!Mk~El`rhKOk)u zS4Fid>Ab1qHf6(*p?Us|fY~j-`R)3ziQ78L4JsBc(+9HpK>b(qV!U$EtJ#J#~)3MsJe;*5eczR&wh$^32bvFnIW#MH$tAG`Hv<> zh!o6f>$Xt(K&3%8#Uj(k4jG7j)wL(tITC50F+8j>%5q~fx!$T_Q4PwX(Lk_2{?)1thJI@N( zRlV_m^K%j--foTZ%sWjMMk*On^Q$m0wk}E4yf`h2sLHdI=5db1=XGdSne670T#8T3 z+mdd9;h7hh27ti1Bz^ItHB_NrY>5A0z!7|p90*`K^B}r46db>uK-r>>I ze>RV%0ASY{CQ`PwHIiYtYSN1f!NB^koAt*v^!_6}n#I*3H|G}M&f3d;hYYhxODpxZ zhFa=zF6V!MM^kLp3C>ki*V6P@oPaG5tY#NLSfXO$K%Ryre$dfnAVzSv z*2O2ort>vH=~Oz90QQxZVmply`?Er*$bt_=gVUpY6x3YgHi^*i;oL(|FH(O|KSc9=YnQHtkQj z`=id(4W^AVp5{b!?97NuwX)NQhD0;QW@8_x;{Mq^nwV(ZiU9x;Y@elYOtGf8IGPJm ztZNka82LZmqiH?tCm{s5m=TweW)$qzMOi1aRXK!w?>7EY9?eSy$FKBL9!+0hXbD__ zwXiWO>pmrqfAkTUBMa^7HBbA$q(}3sZ!zm;aeVd7-~Z-+`|aaAYhk~FkXwl79Q+lLoivU@Y5P2(4zID=pO;@-+=q(=Gl1#Jwy z+7-Y>Ei&?rT(0zQ)VkCdST5L5v%kZ}us1%iFH=F>0Dnr6HA8?{tIDV)viCXFV%S!v z0Zt#;7GM9p5kkG17HTrnKa*Ke*BB+AensnBwaOJYs5$`G8e|ngygyK4zo(xoq{9J0 z254HD*xhuidLgn|oD$Wm>I?MYL!&}>9DS4EMrivEP!ASd+ZmS3;PA@#a@JjwYqG2I zn?27rx{ftU?7eH`AhmWm)I|t3xT2vNEg*JseocTnDwVTvd=9l=^zxpu( zN?rMe3bd6f>#qQA#|LS3x8?P&|M+B-fLXV^1rM`jWekt1EOk?tY*NiWXfM-g7P;=r zzKnhIk55JkSf~%Wje&X?r6nuyyx3sH1iz`(+hR_WoDP=#zOf5b8nc^{py`?f@jQjd znphBxq3LH9)WNdfGcxqNgLq>0Hg~+n%!m+ff-zg5`$3#OT&q@5?-~#9_LjthEJ9gu zlcQO@HO$%eg$|^3ao)39c4hUba25<6y7&tgGf zA`2;5FI5OBt~noU^>g#br&0-HDKVx+N47Jz4p&VJ%!##2gb({Evii$kSywei5uTie$tl!TEW)%08yFV} z=EefKmSEF3XUnO>05BO~)$C4z^36*5&U1jm+azu`Ad)0(XS@t!SA>A+lVE71dY(nQ z=l$nTA+Db78RN1+p78}^UBU*tmSJfS@9QHecf9=haGuIG!`ZWlnRd->6JXXB$JU+N z=~XI-!AGWio5sz#Uo5>bJ-`V0Y(7w6%1;SPb%FIO9Hc%hdlvB5m}9l;d12GX`|&=u ztO;hd-sG|cV|y}vwpBtl7-qlK8m`Gf$95-G?@c|-r>kM!8AQij(*OHgc9B+2>VSD0 zo~8#%$t?Uw#o}s$pmWE45^s8NeSGfjV$9i-WRzdMu?$y%cPN|y{iu&}Wl`+16qQ*J zZ3Xn(o-*%V&8VwY*X^nQ(xLGyZe?QdXssHs&@lr<7Fg{$sq9L0<~BY>i5J}EPbR#` zOW%b5Os_~4Mv+%QTqP(LG-d_s?C65La=!qw!FJL}xHDv`Ey4V(FEn@(X4lGc?v}%`PGRHIhtOe$uenMg@ ztSyNhvpthiZG!y_HBf-p(keCVkjK{E$Dfdd^nRt(bZo3;l4OZ%OhE+eP0>xV<+|IqsAAY{#D^YZ8s9Yi|eDfV;g95Cu1)-KV zDB&~f=W{$?RS{wlYFp&Wc;&2Mka#R!6_;amQR&mgfAB#=I$UAPHYSO=oSGFE5+))F z&ch26)b_;!)0NCsS;sVp78g*{5~T2pN*inf2Q2ugaM#Bk&Va#V4u!=m63tyFfr9nA zRG*+^gH83+!T-UBvrSeYU^X@uG{Nf103OGFY_TL!AwVC;rhni$1;ADW#?Wa3U6Zll z5HocFa$1uqhV@OqOj!JeOJrdaNSt?S|KO8dgi0()NmzEgTqXk4J6x{hW!YBmJ$UeoJlPdVXUFH5Yzpc6=3o>(yW17O&WBENf;c za-yT8W}pKHILQjMg{?46yfHiEOMpqP)QdXk_r)3g;#2taPv3s`=`a57H(&kc*Ps6W z>qSWQt6$xB+DhN0KYaiD)@kcsF|YK?^}ApGv9D}l7p@=H-m~k+%U^%_$N%T|-~6#| zzx?t0Z_78|r5}Fy{@<1#e)+>U;hp`qK7ISg^3Cu6^oKwE+qd8S{+ri7zx?sv_lDBn z{`%9`|M&$>B=$qjP)*B9m0?!N;`4#8^3|nOtWe%RZzBEk^%0DI;x80q7lSNiV{1#B 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-07_223214.zip b/squeow_hw/squeow-backups/squeow-2022-10-07_223214.zip new file mode 100644 index 0000000000000000000000000000000000000000..a013b3c48c8204e0706e94a277b3b2deca15d563 GIT binary patch literal 77289 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%0DI;x80q7lSNiV{1#B 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-10_123446.zip b/squeow_hw/squeow-backups/squeow-2022-10-10_123446.zip new file mode 100644 index 0000000000000000000000000000000000000000..dcc42a90982187bdb121e4af27936ba8e5dfd849 GIT binary patch literal 77365 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%0DI;x80q7lSNiV{1#B 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�w9ER7?;@sDo#tvnlqhmRLknVhqgJYQN*{Rkc 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-10_124608.zip b/squeow_hw/squeow-backups/squeow-2022-10-10_124608.zip new file mode 100644 index 0000000000000000000000000000000000000000..3daa2a94acf129f8c7ca05b6c66a6c5bfa2ad205 GIT binary patch literal 77271 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%0DI;x80q7lSNiV{1#B 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-28_154142.zip b/squeow_hw/squeow-backups/squeow-2022-10-28_154142.zip new file mode 100644 index 0000000000000000000000000000000000000000..3daa2a94acf129f8c7ca05b6c66a6c5bfa2ad205 GIT binary patch literal 77271 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%0DI;x80q7lSNiV{1#B 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-10-28_192108.zip b/squeow_hw/squeow-backups/squeow-2022-10-28_192108.zip new file mode 100644 index 0000000000000000000000000000000000000000..3daa2a94acf129f8c7ca05b6c66a6c5bfa2ad205 GIT binary patch literal 77271 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%0DI;x80q7lSNiV{1#B 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-11_211649.zip b/squeow_hw/squeow-backups/squeow-2022-11-11_211649.zip new file mode 100644 index 0000000000000000000000000000000000000000..8ed38349c52ab54c44eae18bb713c7847ffb593a GIT binary patch literal 130350 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�Mx*Hk`j6uKlh@MxcO zS}zlzo>}CPM^%-1JVghB%L9`(LMEB|5{PUmDg5M8c*INeA%Q}Y^MfauIAN%(<&ED5 zJV%1LrfAQaHd!dk8B%z_8H%d3^4^&yH6ZhQz?CqAtsGa4^NMGXRvN1T+-db~Oh7g6 zoXbv%6p^H7|H)%_xBq1svf0RxN!-s+U|(nJRt>?e*={WGa%-YIC|wKfZgvuhl@EMhl^<2SVG=r%&w!VQEdpdvH&8gqHl%Bj*rci ziRc9x9!;GR6wN??`mIvj;x4Vq5D9YY0_}WVJ5Yp76&d`+X4S;oWr8X!H#PopbS9o2 zZrDH4nwtIeuiZolWs}=WTqaiv1Y1qG)tg1N{l=N`q!Roe8?eH{)g|>#lTy_>cE#P4 zN!4BN#H^!OU*WkIIZN2y!wzdHCIMrT`&H5Q_9XDFh3uf66eer`FoK&% zS5~B0%bCK;c7@V;<7wR$?}9nE|(i_ z_}uuD7<0hVR9J*NztA%bz&iF{f~S{_yAPoVC_ecc^WT&u2^;6bJ@l7gqIp{s;uJr?^(B*XZbWrc7c^{sfNd>e?&moGru&Rs{OsEHFH^K{xQvdGZy6}NpBXKs5w~*OoeSwSm(dzKGrvs{SHt_HZ!WQkznej~XjWydj%-75&!1W&WGkCyI|g#2aTpiZ zP2)mYYhbQ$0#PrUn zRw%tYqQ4;SByn0L46m3uMwRcg&|Q6!^+0~0pwQVo7Lty!1GjWhpNBEg!;=GCb>K<5 z=(zm+4r0aZh7&y_#fT_gg*js?l3d{(r5Q=9noS}lvXV!M&z)-T(-N;g4S2LIl6*7) zDVQ}OXK+@7E+u7|42~sw9Fk2_6EuoGZ7auI&drI$|4 z9?8JSg5V5+aj#q(2n2U>CLmDXj>)uEGJg9pyP}dE57Gabn)!(%oB z+2)9TdjK?)4t)|aC!*8whOQ423_WNrg_;sm-Suv&UPJ2V?jpWP5@>) zfMT;xDvi9toTDb$c(k44B(yvCv3d(_+i|khM-ZPJi?dj0RAR!c-pY_r#3P3>@Xnyr z%5T5@Qu5pl1A*TTG@eD&Uj^Da7L?XxuB0x1xVd;bgB)o*KbiA=)TSJ)e$-~4zDTov zn-2U!^nK>zDkg z+nj;E`VNi&9$`1(9}$FLid;P!-r#-&>r1swgZsts`y` zjiyR#lgbEoQ{Hv_ZHLCJc=3HUydfUclvso(#mySV2;4wognrV)!da8(O!)niy{ZEc zbWzrJM7Cjk2E(sP)yHw1 z{tp2Haq8F3SGlK0soByW&cigCW>#FZKA~(%Y4TIGOKIMYl=!4>)$3quBS(OlG+kN? z2sX6>kav|Me?=@$AZ32G=LK}$AA4_2MBmCGvKSz^kbgR+kjn4PzW&+uK_X(70zU*7 z3ZVK~N_nXxR=dDyYc3+(8K_JK?qoW#OPbq56_D7!Q1CkZ&ZaPAdbO$=_~rN7AC7(Y z{&=o6-QABVlBV|D`*`q*edqDbrY^BFmgI|FXPx(Kuia;YkF+$YnqyO z1qxvmPG3Mtzn=pF3F^j#dv9bO5)gI^gbMoK1D1vwk z8&1#ef=C@WlN2ev;r^#4()T+|<@eoxh$`~XFqBaLKgXT0+*Tu&VMBFc3JR)T7#527 zgX8``i;;=Do1?3VhXw2Z2JtZ~b`eT$u{eQ9L|NGegFIxG3S>OEpzpNeqyY>GIP5NKfqTv6-`U6y|A`g%7pBC^R PkH`oAe&zSa3+n#^S5#fL literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-11_212452.zip b/squeow_hw/squeow-backups/squeow-2022-11-11_212452.zip new file mode 100644 index 0000000000000000000000000000000000000000..2ab00574b3cf7e8a64ec5713fc2ba3a7e326fe88 GIT binary patch literal 77256 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%0DI;x80q7lSNiV{1#B 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 b)L(#6C0S^g|Ez%ex?jGY?TlZjda(ZmwurR# literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-11_214509.zip b/squeow_hw/squeow-backups/squeow-2022-11-11_214509.zip new file mode 100644 index 0000000000000000000000000000000000000000..2ab00574b3cf7e8a64ec5713fc2ba3a7e326fe88 GIT binary patch literal 77256 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%0DI;x80q7lSNiV{1#B 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 b)L(#6C0S^g|Ez%ex?jGY?TlZjda(ZmwurR# literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-13_012818.zip b/squeow_hw/squeow-backups/squeow-2022-11-13_012818.zip new file mode 100644 index 0000000000000000000000000000000000000000..2ab00574b3cf7e8a64ec5713fc2ba3a7e326fe88 GIT binary patch literal 77256 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%0DI;x80q7lSNiV{1#B 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 b)L(#6C0S^g|Ez%ex?jGY?TlZjda(ZmwurR# literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-15_134144.zip b/squeow_hw/squeow-backups/squeow-2022-11-15_134144.zip new file mode 100644 index 0000000000000000000000000000000000000000..2ab00574b3cf7e8a64ec5713fc2ba3a7e326fe88 GIT binary patch literal 77256 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%0DI;x80q7lSNiV{1#B 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 b)L(#6C0S^g|Ez%ex?jGY?TlZjda(ZmwurR# literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-15_134823.zip b/squeow_hw/squeow-backups/squeow-2022-11-15_134823.zip new file mode 100644 index 0000000000000000000000000000000000000000..2ab00574b3cf7e8a64ec5713fc2ba3a7e326fe88 GIT binary patch literal 77256 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%0DI;x80q7lSNiV{1#B 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 b)L(#6C0S^g|Ez%ex?jGY?TlZjda(ZmwurR# literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2022-11-18_190348.zip b/squeow_hw/squeow-backups/squeow-2022-11-18_190348.zip new file mode 100644 index 0000000000000000000000000000000000000000..fed2d831f2c7b2917fa384bb3a64b5a5df284f4d GIT binary patch literal 75346 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

9$Lh|#sjwjUL9Ox~@F2MiCUlUA8qOQkZ1 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
SSDGsLr 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

!*Lpna3(^HhZ|rh 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-01-01_011521.zip b/squeow_hw/squeow-backups/squeow-2023-01-01_011521.zip new file mode 100644 index 0000000000000000000000000000000000000000..bb4d22b7c5360514ac5faa9d4a8ef51ec289924f GIT binary patch literal 75731 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

9$Lh|#sjwjUL9Ox~@F2MiCUlUA8qOQkZ1 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
SSDGsLr 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-03-15_221901.zip b/squeow_hw/squeow-backups/squeow-2023-03-15_221901.zip new file mode 100644 index 0000000000000000000000000000000000000000..bb4d22b7c5360514ac5faa9d4a8ef51ec289924f GIT binary patch literal 75731 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
;yPirD z?_qbchyDKHE?vI+@nLp944z+K-hMG-9=@0@c$nQ@K9nE7nB8Aqzr!Tn-TaKdKm2;d zXqk5d{&xkYK415DEA@K*W4inK@_M)sxUK#E%Wo7n{dP+iKgM!-`>^)(@7PI;LC#i# z+!)&;s_B;j+z+E$4{I?h!g#M2Lpr00WdUhJ&OvC;!QxzMIC51-$7`aBX}O&c#q+0i z&Z9q|yb2$Q@=y9B@^+qF(;ia3~6FSOeLk=LG zkrsQ;xUUoUyOp*(8L)tAysy=Q)g`&#$~-k0yH&tGTm&0d7FP@Fz$O-=Q4y3*9jzWe zklUO5llUiWo?^JAUu0i^vI>?RWNT-qn1qc1Jw2KKtp^hWxN6Qlb9TDtR=<|8110xD zNx=-A3i@b&s|9^P0=LD!nQJwfJexAET7b^R=ADOqIW+urJwv8sGT4&G*!!1}K#Q_;@Uj9_)A@Hm862dZJw)DHIz3(zs}wFL82G((@S?4cuIq4!;i`EwfZwm+PLHVa#qKDi8`^PvJ8`MwdTvLKP?^1Ma7qwSfd^FE~vTkEZcQhANP$X zQ{whQbqz9|dwXR*>zS=MfCH&BjH04+Jknj9X_@t5UyjG@9QR|vdx>(yes_U`_cZ

9$Lh|#sjwjUL9Ox~@F2MiCUlUA8qOQkZ1 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
SSDGsLr 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-06-30_110458.zip b/squeow_hw/squeow-backups/squeow-2023-06-30_110458.zip new file mode 100644 index 0000000000000000000000000000000000000000..bb4d22b7c5360514ac5faa9d4a8ef51ec289924f GIT binary patch literal 75731 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
;yPirD z?_qbchyDKHE?vI+@nLp944z+K-hMG-9=@0@c$nQ@K9nE7nB8Aqzr!Tn-TaKdKm2;d zXqk5d{&xkYK415DEA@K*W4inK@_M)sxUK#E%Wo7n{dP+iKgM!-`>^)(@7PI;LC#i# z+!)&;s_B;j+z+E$4{I?h!g#M2Lpr00WdUhJ&OvC;!QxzMIC51-$7`aBX}O&c#q+0i z&Z9q|yb2$Q@=y9B@^+qF(;ia3~6FSOeLk=LG zkrsQ;xUUoUyOp*(8L)tAysy=Q)g`&#$~-k0yH&tGTm&0d7FP@Fz$O-=Q4y3*9jzWe zklUO5llUiWo?^JAUu0i^vI>?RWNT-qn1qc1Jw2KKtp^hWxN6Qlb9TDtR=<|8110xD zNx=-A3i@b&s|9^P0=LD!nQJwfJexAET7b^R=ADOqIW+urJwv8sGT4&G*!!1}K#Q_;@Uj9_)A@Hm862dZJw)DHIz3(zs}wFL82G((@S?4cuIq4!;i`EwfZwm+PLHVa#qKDi8`^PvJ8`MwdTvLKP?^1Ma7qwSfd^FE~vTkEZcQhANP$X zQ{whQbqz9|dwXR*>zS=MfCH&BjH04+Jknj9X_@t5UyjG@9QR|vdx>(yes_U`_cZ

9$Lh|#sjwjUL9Ox~@F2MiCUlUA8qOQkZ1 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
SSDGsLr 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-06-30_111541.zip b/squeow_hw/squeow-backups/squeow-2023-06-30_111541.zip new file mode 100644 index 0000000000000000000000000000000000000000..3c8f1a3061e8c63d4d1066ec7fa5b846d41739d9 GIT binary patch literal 76188 zcmV)0K+eBVO9KQH0000805qd=RqYM;-D1Z80GuTQ01yBG0CRD5Wp8&bYiVO)WM6P& zV(h)ya%4x6CHUT7;S$mhqzuhzYP;oIEM!e)C6jChE30NkMj*BZ(L?}f0FflCrRLk` z=yiwh*W)??XGNAIg$#yYU)0nV)uU>32N%i8kvZ+`;;E+Di&qC8D}Ma4{@Ctc%s$-nZ!TY6{;j=u z{E+6K-1^Yh`yVp=)$h{%LtA|4@ww$sA9(Kg^KUP&etNs6%rEcDU2E5?pY{Cpt&e?u z=wpGu{!P07X`4vokMBJ;n4>p8zq_CR3!XjxEdPD}<}UqwdHwGG@plcT?e+VI1D||- z^ZtFiepr7JGx=4yq5V(t)77W+@F{ihQ)=}o%;i`0UBh}k+;5K@v-wTBdv|%g{dkzn z*LM&9S6xr$>zfaE55K0ny878+F1J4Q^?^?fQ~7nu+Z2YG+z|nelmNz+>oE|ePOxzH@|RmRq@{9jRW6U?AZM;49`E`lnQb# z>A(;0L0^8o+}uJ|?0rkyy|2~FcGb$m-DR24#@FxK_LpgH2@l?ycnS6Y=;f4?=-`{Bn~*~nj{lq7q(=*xdLhH#%UeiVaz zc%RDM&Hb#WtNXV401n2xc9+{-`{kisv+lZ|J=}db@PYIIPV$F`Hu@8({*A|8M?Z<# z!+u(P_>+<9N8@G3@Tn^gRtsb{u%GHP38sz9=`L@Q+GuJV3 z;I8ld-rp|M{mnH``pz5gZ)%&-CUfb-FE@9Wkj6Wo{PFhP)or`J{_q~`Yo0Z?1lQhk@}Zws^sNm+xgNZazHRet6h@12cz7!^H7s+?&+DVGw)2h3A*of5Qr4!#!X- z?XKWY?V(|M2VRkWck}+9kJ}dA#W?%T9c0qRY`?#}y92h`{TA`kXHG#&v^?o4r`TF@6CR z_?Pw|K6_2#yHx4(^*d_o9kuZe6yaZAzh1wF2K=YLyjj1t%WwW^@0-wm|A(IIzpkG^ z@qM_4Y`MnBTNR)E%kUk&@ttt+6K>-ZaY=9SPTY8hAelRH*tGwr2OL;_V$C?o37#8n=7N@?nmtI zFtt3mFtoXN`f>i=?9IAI~Mky~$V9tlHRZ*5MLQCn|qZf>KuPA?5ZM_NG93U#Ph?@8ADn{eXUv;o`f+Y8;v;CP4Tj_F#r=o7o=Ow%Z$4au;%q=*?|yuk-4CPZ*O#|n%$SKUW(y`}x0g^- zU%-C8eg|-Jck?s;{_rdQO3-kC05rP-R~Ye+4-dEZfB5ptQm^MfraKsv^K$e4%iG%T zzx+l?;e(sw#pn2b0hx!{(hty9HrPXYcRzdab}`7=YLFXan_(u0;XRISJ*>s32;;q8 z4C(P#Z|`mx>_LmY{js$N##k>f760o)yZL#(@KoHFA4fiY4QTRWso(}^`T$V-Wu}&O zuu24*wJ^pv5qU>Nf1$(bOUd&kSR zXLzjvUhmk2_q;W+D?hux{C8do+QI$=`(gE!Dh@m>~$0WE7cf6E>MxQ#3h; zxCO)?$GQMFF94Vx(nb1EFK-?Pd}zFEEkDO-RnNs1Cu%817-et<@TbU%R3_bWtL5Nm z7bgCH|KHz#_4QZZfAyEwU;W49XffV!j-isOgtHihi5R7c4HIh`j%!t>1ldD(W_PGp zm)C7Dw(lOW>~n}?q34nfNC4vH6S*)scXz_GMQsf@8 zh+0MIqbtp(&yUg%bI83-`T`cMpF991YatW7Xg-2>Nm+n*E2`|>TU%NW#|Pl&L|gPp z&b69O-}RWRH9{3vgy}e*xnfbgC#h;^&Nekdf5EMt+qk5^c%Wd1PbRN@C>AGQWKRj~ zn2^B-jsVgh{81?O?UXed-?W2mhHQ$A!fD>qY5IHF; ztd3X>={p5|eDm)OK%6#$l%bX_7QGt~H&IuSC3WF#(TZ}#A{^a)%cHg;zdVc+iT7%% zFIwcRI@qrcyD&pNxlFay996Dk?6V@Bi8y!Lvgh&1v;kzPjB`{3WHZiQ1LMhuDnfBG zK=uTJy>W#54f4NX^)r)N;U$U zpVuDvED{c&G+6>CDDCSr>axjEz9gX`mmL zbYcI-s!eK$JyuIt$1i%njKsXv{(@z!*glqi(>=vl12VZ1Jz%gwf~%-Fd< zNd2^_4=qOTT^7pWw3*t0Jba0QD!@~uRxQk&v7Ha=Rj-A<+IYPUkT$m5#-hg%l?>1_ zL0agW2E(LUKp<)*WYtnBW0ch)%4X-l9ig0T$Z0ks18P;HxNH|?2s=x-`MU;&Zi$W?Vv?ir`M*TURsDEB*vItg%*N0 z!1>1x`D%?9>Ww%2^hJmClwASUmm+~Ha{;dLA&DMzHF&0_8`rHMwXx)C5U0q>hsg4+yXFZoF!;)Mso&gJ!+si8FNhpr~#;Rbf+I+e5#PKHQO#r!YKoSH36V1 zCO`^jnhD8uQ_C2VREL&3&S~Ou13oJ1P$*G#Kp4V)Pkg>D)nHn(zT2aemy}j}`~=Fe zNZ3ozU6!}F*IDESrPhrL3AT(Re_XI05b9Gm8VgP9G-PV5oq-#{X!Z=DrL4MVZGawc!kMsBV?+Hupxa8(Mt_9V~$IfU70#vmHJ4zNNCZlm|tiw zn95NJr(wE#C{%VYALV>w#a9Y$>Y4`+>&y_=Jg`iqW`P>36wSJ(j3=!8N2u@Xvgy=e ztXhBtFKR3dBU%xm;*Sgrp>hOtYsX>4Qgy9apRUVN3#LXHM902cp!LMI6J!oMX=H-j zJ4$;GKAk|jXK9Q#0>Ty0twNhat-?%+UNx1B?0#(4w*=Yhke?vgvX!R8R1lS_Whb2j zkjf;QhfHmyHyQ=3yI5&W{sgI>vxSWof~ZAd%@aYBISfaJ)O56X$B)6*O@O?jJ^hqJ zN$VJ(K7;mk(VOGU~TMONjEBEMzq-qN=_kfEM*qwMq9?~*!H>Ny!lX!fkHQC z)I!>V$ZP7;7rok$v`QJO1PmKhVIf=SQy@6!Ya=7m*k<3ti0c)fzS(PN$+e18U0|%3 z-V1~){+4slm~x+U{)lMb2aVGgy}O(p`(dz7n0220dB7xaQ} zDQ0}-Ke)>=)y}e*3vuD#UpU0)akd)4{bS74I@;?oifiQ}AGuH*?vDD0>qX?ji|;P4 zFKGF65oC0m?iX>EYoS?M(i*xVcfwk>ZbT}&37=$%4l`=}Hb-iQqXk25j-&ikhW0N{ z4=|)Y!jJ^2>%LYYORjt$Qvq;m1HjcmmLQGPd5a-^c!~5p(33gZzbQVzk^Trr$|+zO z51~ey@dROs2!BwwO?7DZV&xV`=HL=7@Y@p^+P@V)z>xXao@)?NkXAw!h6&w3Xr~}W zuR4?t(MLjBORh4%Js-&F}?5thr;6U`^^RF5IDI zd5&$i4%j)shWiK`B|9qYTa!{*Moj^zDe|GwU6)*fv)kvzA6$&*5CBIO!+-4517JFv z0u(=sv2L@7Ej6Kw(me)WV%R<-;m~3{hgd!o^l*To@DYZvD9VS9-Bk?mbT3$z(u~l} z$yk$ANv-rdNAX?p+!&yZ4vZ>FSHwAHREj;Q{Ps*EhqH+0U1NBJJwt`W=UM%y0W4Jb(z`bE>WkT9Ov%qb|2)4f zS?D^%l>B^iS8wmy{r#6e-->c`{m`x-zWi`|b(8A-mzTFi+`s4FNf+roM#~8c7j%IE zU^^`$P*$NQi{TDYAY!$aVwIt?9hq|XIA3dK&KP83O7^9|K8$>+ZKRUGj}lf(uo@;R zOgQhS2bp}o5oB`sX6YH?APQ6ohry?h1(=wh{3@{IkO$@I zBP@ktGdT+1A)$tsds0V^eiNhm7Kr z(iX}ORxC^@8?`$cR05+-d7xtaJ`U*8j@WxRF}k2w2XjdaGD>4FLfYp{QP^HvliuNf zW!!jPk`xCAB2F7gFv(^k0l_lgG!rAT2HV!g1`vRgQb%3!G!H!aal@EgKbUyc31I6e z!icMquRx544br0sIFG?Q9M3#@*?5?|IE_9|mSg;8WAegOPp~ed6sl$8y@rrzNAA8h z$Sn-olj*yxGX4v~$Icfa0kfYWI*U~$)7|$ILP$M!FFbdv$9bnSkVHo zJXI5<)@6))8k{(*+b^2Q=?)B6ysD)YApz9*{)PSVIEjW*=sE=xXmstc`L6UbH%G1EDELP6J?0Du!Xj4WmwL+zxf%7Z?On-AA@1Ldy*{g&8R;XgA49W&xv z{?x@C0Knx9%PAT3;-6!t%osYh*t0H2C8CF%FiI5;im3u7Y3SHEBzNGxI>giO!_t9l zgrmGcX&Q*Vz`IiOjWo7N@m(lKEp>>hOkoo8--OOe4ME;hZ@?3 z^Q-YLqNFie&U9AxQ^E7@Q^WIRHDSLCptn|&N)YE%S$**>YYL$X**esiFZyxek18c=5NmTsPj0gDgM+3%{lGl%e+!^CD;rT$`DrHD? z%kkDaIao_A4DnAbQqjeSGvoO%TZD^k4OJbOOs4_bnimvHl$lGK^)LqS6}X9m&yv$%BlGQ>ZuF0O5f{ zN}wQ2HjJ_)3`_4-@7nYnj@-u`VErWOJ?ZAPHlk`6Pk@$9;0X*GEmMTBu_+%3lXnb# zHVh~?Toz1(momeqmW@N1*nfAxO6<2XZaS_hEo_(7NTwJN9%mce3GJlg zuq_T4ObIwC7wHv8ijGHV?z23daI~d+DpqJ^`Q{f#EiOVGqPMx_tn^rXhd9LY36tGi zQ7{dSu#ya4cW0nPs68rOl^#^gy-mULa|`ofwt;-X3bx(q4)$d1O98SjDr2{??_(13 z@f(O(g73gBP}o>VQ=x9W%8(&7hE%QB)Fy!W-;1ZMTZ+*uuIQ_@CJGFS^Q@o;0?ZTv zh3aF-y{C16-*NZ-CR|>l_&wbGJEQpTQuzt+^WukZFW!Fp!vN*+e-Wb4M{)XVt>3t> z!Uj%3&qi}Vg~kqWoclpsa$=3s0nn|-s+xI-YA+G20JvR$`KJBtva~lhP#_yfom}N~IQuVd3BcwDZAisD(r=-E@T8RoUU9XN2h6lI_K>N^z zT_w{37V=2Q5C5^5f+^kV$u#;V09RPoMDPy4(is2^(pqRBN&qX<%&2>IYqB?I{{-?b zq+AU&BV~4!5_J)I3>~^YB}hy^o`&|w?auU{wE9t{){AlidYZEkIgmGbtVU=swN%T= z+R5~P%lxMRF{mYH|FDYSyAr@YFO*cSRU2i|qYi3jmo~#2-HCg@<{G17x{b5Ys)kiz zg5@NUo=j3Y`%yQwnp;L7>!|V7%W0^dw68`%C>72?HckbRVEv0yOKK^|e>2iLyDp_1KtU|hiJO!5PH~t z-n%&FrQfA~^1K(@yK6BD)oI9lB#}zA!kWfW0uX>S#yS7cAa&L|&aNL!%8}r73{ucb zCUa5@wtZ1v$m*#!ohcmI?Dhcd>7-qfwy_B{j@9oh{A>LYnLW=_ED{=680q3w` z9p{S3>_e1eE|bkUUelh=cOv|Dhg!|bLB441vCmZ%E_%w&SLfCt^T#4eX}%qP#dQu= zaq~|Mz+zOkY3^KJ-+p-5Gv8)L+Q>)**xqTRl)qS?EnTId%4#0Qt z^2eLIVJ+6U4HnY-OD=-;SVs@f-rZer#WlS7uzotc^UJRcatGG&KW9JRdz)|a{YT#x zWA872{lNR{4T-l#0}Fe3y|G7AZ4{hjGu*Int9A(a5tTC_NqO>e+O68Y<-4}ZAML~cqE~8x zRlbB+v=R1c05nLhVIQ>WQ*vaLb8Aywo4GXx_Wj(+$6`wVxKjJOxKiuR)Mm9?XbFveml`h+VrclIl_)U(rslh*@a8lWmCwc03PJLleU?0wuT74-XFsl}{% zWglm#d@0j`HKN1;at@=TS+-GptQb`y-(6`L5Jr^;ucn1aZ2$@dc((Vh2cp31*6u-H#&U zr(f;_%avvTh`Zzp0n}iC>u!bAP-D~`>G2W;Pruj-Z1X@p;#dV127$}4WGz%HuuG!r zSc-F9=_N0Xk6nurT7=Sud5~4BTpK}qU2Ds6Y~G)Im6>697X`k(Eu2FPJR6ltqFJ4@ z^4N^wNb#j7U8!MBU4UE=v9qwiB!J`YMADFR4V$3r@zMlOxl+?ENEn~k-H!J;S3k*B zW#JvCc}8B2bKPuJnWc113q9D}+441Fu|kDbA&juek2!gsaGTe(?#gz>35A?B%w>*X zfr*|B#HfbG>-L}l_9KGwMNkp*Ml5F z7|jsuhlQu`lYfA@z!;}4$?u>K}~?bXXo zu-qBlb4n(#sw*n{IE&59gd7+rh|)HMv^k^JyrOGqBij_T0>P7YZ?K<25lKcE9xFq90o!$2H0 zenEA{tq24GpQ4JSF z%+BxyBnS3l>nUG#FJsv{a+BwcDVRt&%jg3RSyEh_zGN<`L(n%Fwppzn5_t61m*;kW zt(OlbhVVvj6UQ?2#w{gVLR}{Evm&FWZsX#omGA`jg$182^ zwo^E_T1kq9L{}U@?5!1B|gN$6CDf@PeSrvU<~+uFQ!$&R{NcBWjMJm)TCWj&yMA8OR) z2%Sl_^B?fSO&rMis<8aWjv0PnPWecDY%XpEx&7Hm6>KjLI z8hsBv8aSjV8@6j2AYFDY0bOCQ2NkL;V~)L@{dVGZ^IfN=Qx?AZ#M`ZLx@{LyS<|!j zu(rl<+%Dh0f$d<6>OJ!{`w-mWfup?4T)3^pSe3+qKQ`@qvwjlwsEakkklk=)!s;{^ z(F(#DPsy4DeSQQ&A2?|z(9T>jpb_TXa~vIG_#`C>M^LWb@y zm7g@@HI*ujB2ihN8*aG~u?mbDbtX%dTj?AZZhM<;x_|*V3aLaTY>k|69Jr8q>I~cp zsS+y5vGv|nrKfAs)~m6x0J})u=sFB{h+M8Nn+(}nxY5W2_#{roPcRX1z@f-w9rB$k zDA$^~93o$9xtz>sNy0q@BTk1fooiO>49l!b1EmtW2;`gqt_afl7ATL`F6R~Ap#AuA zN*<1hwFE#VYq_&aQ5Acw0KURD=@zH29kY)2=gANEt*DigodhXvPeFytMzp|T!dyArB-h4e=^ow5WV6&sa|Ia{ zc|Z4(a2ok6V4b;|YtVgt5qRXP z!pzAJ!{9TubnHLYPx+0R@2j|?kHlZS*>Upk$LUxY^uZ+TCM!D^B!?YjxJrwQnlmY- zG!v46Ry>}G!vie~cWZooEw@%WTe^ufL{tzV>sxYwcic?ger(D|N*dF2dj12F$jNIk; zMBN$g6PYdUem#2)%W^9Gz+(Oh-htOa(A z-(oi$WA|)&Xurkn9>01TzoZ+uq`}!POyuG$K?2fg1v{N| z1l0?EJ4ZbBR=F4zY;%~0)v;S*XMt%f3gpZjf4rdZOE-yQ)f7cwbD@;ypl%IIEpqy` zYKc>FQ_MSg2ZwaVmwwuwuCRcydqwS$D>QIGm+#yPqhOJBwj0&<791ah zTIXhXO8wYZ6R~AYy)ws1aab%j`%H!sq!dc|n5gdk)gOA1e9S#pdtMl@A%pCeChtkVxxFJ=^TpX`)6T+6fkg2Qe z1Ce$+93I3{=T<%AYxpq+yKTmB@y80)!n$>6WB}_rN9x{3X?M&4I*6UljU}F9)5g^G z5X@MUf~D)=4HM}gZaTLaaG;U;9>Z}OjBqAG#Uz29YdPr7ij=qvPiO#6L7ADyT``JEtcIumZ#Z!-WpE(QDTTHG|f8B z0ce~AUwX;F7};#Id=NUF*(qmei{XQUi>4WTuKVaXr0wu^(FElDo$rjD#OYRhT|Tz(8g#Nn^(#0tny)ObzX+a98}Ee(1Ct6ZF>*? zxj;%}4z)2|W|1;q&IaA8>dDrf)+Op7=3>L(ysX>9touW(Pu%7`cwfs9$jw)>j%!!S!K>*7>*mNVVuq zmZ$kURPnwQr#SC}!xlppp%7Iy1v+#qg+?_SH0VBNVN&hTd|T z(KiF{BvTpq2Skm&`W=Q3yR^=(!hXB4Y^Af*suo>xBUvxYqTQlZRjG(G9Li}`4F1R0 z->oyC4rLwvCnZ6>{q_&vy#4k&!3kNv=*4L4M{=NEO7*p}uQ!Yn=Um}pywR|0fxQY@ zM=5e?Ey4yZ4jbYzac4$xE`g`Cp2ukSY74@E{d2>n`R)n}epzPUa9P3G+xO|}YWD4- zAjoVv_}ORQy#0Lk|M2+#UrbDEiw|=R!sSOUuiwqy-nMetFUyc7HIu_XCcb(*Bued+ z9mFs39z0``lkBy{3NS!{5kW0YWQPO94RK8MvO!{=kmN)gDgW+VMF*wl$~iU)?lj5* z4u+VMUf3#IPOfRyj~3E?dug?$m*SQ9rythY|GUF|uA16OY8z6+U|IQcL{@;Df~=Cs z+E@z!=c##4r;b#DIXR?2f3!w8d$`Dj(WTNCc z-q>4)I~E2VNpMX(Z)DPCyr=PjX;?oq)5l=B_CiozM2?d+KEU)Y6+1{4r+bnv=kZ=C zTlAJuNAbh~_~d1kTy(HicJ4?HP)Sl0jbrAW(&b3!_T6RpEvpc^Q^W&k-iBrNlWQN~a>-3eo0EkeZQC%ohygWx~coLm9JC$!TMs6N%Da;zt<78mQhF$ZkTO=i!ek~OP72kw(M+hJES-?+fJb>6X&qs)T5PjST(v8) zn>FCbwJf=ZY_)bYfSOjAeJOUgApA$@S~8|`Sc?k^$PwaCJx*`svmCK7P~I9oENqZbrb>TDf{L;cw>wb=qqjUt#>Usw zx$$+aByi(W;ySGOUCWYSJBV?&q4hIy6b|mU1McqEfBxs~`>UG|4?Aawlh$P~I761W zh*MoiHBZilmV*SMI~bR_${4&==ip>%9sQTRB-um_9k;mS%rKy&Ii&26|{X}h7R}^>Xjv^J6h2pmN7OGJFrx!@|K9RIs-h)dICbBSktQIZ>YP}K+vXlLz zCpt%`7D$DF47r-d$sU|n3l$JzwxTx3epS15AMGLjTm@2f;7%kE)lnC2qMV(GDmS5Z z^UhSS)OgW|=PZy~dsaEIL(uRzA{Py*5P~Y$?pyIPjn)!)h61S+*iQ@_Jyx#TK?Ka| zJ$H?;oXu}jq2uLQpHv{#sNiyMoaxN{q&v)kNCtZ%ghHOQ^>(~Z#uE#qh5!^&xzUo> zJnsfpyW!61z9th)4m4V%^vMNMx#6-2(FrPCmR9G1Y!EmZ9*{J7YsQ?BPpjA|VWXtZ zO$NwexpR|Tpcu+lSJ+~aGL3p6pH?1~Tq9k$O$0CzC)5+y&d{QDYa%<~WH{0%{z>Ig zDW_mH-_JF^_;o#Cv&$%yQ3+?y+d5jQ25xB;^bp`zxJNq0PNhnj4?2oI;R2~O7Jv#(0-ByL?G(2vN>;G> zPTI@p*XbUAj|EaU`EUA-G{8yVO-X}>`31=POu|Sm#g}9W4$f*e? zQQIt>YUe7>H1~T6LofL)9RE1t0mk!qXP@zaKNT3SJ~bGB_c&j_3yPO5VzD94n&C=7 z(iASZjhB#aF-uibJ0a%b`*mSgZg+AP7|#|Y4D}?S0Sng%YtRCYgv~WO$S)7+aSXcgOflFh1o1yH`Owb-u9aoa*AZd|%GmHc!>+bY>X;7+}3QRPODvJ5&hS;B*IO zWo>EzA-S%h5!Rd5T{qpukHL7Qymaih!2w+X=$(fXORHke+JK{23mM}h`^Nd6&$yJU zCi0^IdPPzk9Edn=B+7>p4GhE>`HofLKxE&#APE7O6ld;?jfC$r7Y(phASVnBoTlG$ zlBpWY3Sg7D;(zAadk$7sbDdNoZW24*O?pjiiE~b+ZY2Lc3<(`Ipib+M{Wfsfbk&oL z0My5>-wu%%C(*}A>DB{V%Ao_SRDjeRYhl=i@Hpggyw2(2$v=&LDbX7hVRdV+SJf@o z7Y;bW5QWhzm#Q6w^i0aF;qC14)dYm8V{}$YEqdUq?Mhr~vpR02-ddBDV|Pc{o^6s9 z8^f4D*t(XZb%3^&>;L)05oDc&H@2n_G2?MGo?wsRQwRsLMOtgP{S+ozCy4YMk^tJU z8R)IG@k6%D@CjslC+nS8BHP0GX>IUZMU0}8Oc@7HxhYVd^+(u1z3jCxzZvtg*|hlQ z*p0~;>ZM|8;{v7JjdKy5kPU!+msm+FHQzH%K=Qu}OJmoLW4tM?ZRZjyURo~rWI2Sp zB_Xw}3Q8a5znO&SH=*+y(C=aBPos&rR{G-YYw-NhXy31`-xQvqc=ktV?w@D~r;8g$ z!Wxp$tX#5~Hadxun+Gys=4kGf+J^1RL3}Y=jA9F-F5laJ>kQyDC#o&6Q^ywet{6z+ zC0E=F@XB& z1u=BZyjJk0|!v81-5z8jl#y!yNeDym4L4;QYDy{!b5-Mh!U;$XDV0N6e1?AcyD zm_|NXWn|S}L=%SsUPfe!0Wc}HLeUps)Nyp~!fcoMlc?9;0Fbx~mg6E9nxih+)y#z~ zyR+GuaoYgWZD4qX30E&CRs&aAIqn>UW#-C9mTP(iFJzC}cf4!z5x=9Ktx1cMY5S6T z?T#A_7{fUU7P!R{hN3(`n{6eH&H4ehPodnj)lM2EO00a107Ra6$D0x<2UBd8>)bq!*lo9~h8GU;B3MtK%;C_zp0RiA-j>j}B-(?8;4RxbBm3*X;x z1yRdg&RvI$DUo|nYwN~>9znzJkY0~v3Tc>phCGB?l|v0t%eiV5$31%>Aeqc)VDmtF zm+8rbZ6QnEC6NNi0YNH`XqIB=a%p`^sgGJ*o74LnNP8(^^+Tk0F0=(~Mb13WO970 zPx1=o|K7nsi@-wILf>6pzr86xwTBDtdiMVPAJz}(7uZGLEgoO|6<{40{)&0vFVUY{ ze>iTNP<&~W+^|h_>7HX
;yPirD z?_qbchyDKHE?vI+@nLp944z+K-hMG-9=@0@c$nQ@K9nE7nB8Aqzr!Tn-TaKdKm2;d zXqk5d{&xkYK415DEA@K*W4inK@_M)sxUK#E%Wo7n{dP+iKgM!-`>^)(@7PI;LC#i# z+!)&;s_B;j+z+E$4{I?h!g#M2Lpr00WdUhJ&OvC;!QxzMIC51-$7`aBX}O&c#q+0i z&Z9q|yb2$Q@=y9B@^+qF(;ia3~6FSOeLk=LG zkrsQ;xUUoUyOp*(8L)tAysy=Q)g`&#$~-k0yH&tGTm&0d7FP@Fz$O-=Q4y3*9jzWe zklUO5llUiWo?^JAUu0i^vI>?RWNT-qn1qc1Jw2KKtp^hWxN6Qlb9TDtR=<|8110xD zNx=-A3i@b&s|9^P0=LD!nQJwfJexAET7b^R=ADOqIW+urJwv8sGT4&G*!!1}K#Q_;@Uj9_)A@Hm862dZJw)DHIz3(zs}wFL82G((@S?4cuIq4!;i`EwfZwm+PLHVa#qKDi8`^PvJ8`MwdTvLKP?^1Ma7qwSfd^FE~vTkEZcQhANP$X zQ{whQbqz9|dwXR*>zS=MfCH&BjH04+Jknj9X_@t5UyjG@9QR|vdx>(yes_U`_cZ

9$Lh|#sjwjUL9Ox~@F2MiCUlUA8qOQkZ1 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
SSDGsLr z0jpYm^j$lRYrU>z(Ka}(b2h?1^&tObM{cP_g_L1b z6~Ij6{l;DsYJujFRVTG+f63jS^`>sHZJhD6C!%91Ra~md(m)y#%@~`Eeg1a-dv|GK zqH)Ux07$Ujox(B2vc|>HUXY^JD9&4||NFT#t%m_6ga8-AkTH>V6b#lyStpZKDTMUs zH~wBO%{}Gn=lUg=rq8gn1g=2Mtfb69?bYKSeFWx6Lc4MctoRS<(){@^G3#b>{QQT% z`Sbt!7f)@CDD2N6`S0$nv$42VHjT(Uu#Yn=HD(fsD%a|bQg`ta_RZh`WO&0Rdo(lJ zG=BDlGx*uh9<7W1e1%3y8fsUspgK zwdN;10;feU9~pbyr1A9Ubw?N5TqcK8NNZuhB;aKs^l8k_C8PY_MX2-&FNBo697m zlVyKw>ADKyc?yxbGJ|1t)n8dqC(HiG$k6i+;wfXT-0>0}%bW zUOX?eVOzi$OoINxAdo z&xi9$yt+d~qTv60!mO3iwvSMf08edXe`v zDqc=sdoYO3+Zz0ruh~UfIjIBYZFrg3V0=OwGe42BBmx4mTEy_-=ttFGHq|4w}vzRgoo#jRW!Jz5G| z+d7!;tIV+4)2fooY|M3E@6Nqh>D?Cx<6Owy?)w9JM=CIjyaMLRf&FYPlg^W)6T$~4 ztKYQ#K!5t5tLYu-yBK;7P$49-E;b3=H|3zd3|*32_TFWHXEl{0d*Ko3I~Y(~S(Abk zU2F@qmN5WI!>CB$6U!zxt2v+PH?0Zr@*|QhQP{k)$h~jPELT|2Pz3B4y;iAVi9EOW zKL3a$r1zC_)3FwwStYa5F$EE=9BKvdn%<(PQx{ zyA+FyN?$JilTRAb;R;(;9$Eu5r&cVZhlz+B*~G*IwSBkPbR|gvM1p@SWc={(EQ~+&7U>Kby)HR8nv$4_z*r~228>S?FpUC(Pm&n+>cpbrN zvGqROAc{*gMZppX>m`?c_CdvOYpex#**ec20}w0#`2hafNmzV<64%WYKKW=Dp%U|| zBy2lgE)xOk9WK}EW!|dy9z6J69__NEJEu~5N<-D0mX$KiC99ps)vnq;2lM+QQqNQW z{*OqTg58mlUUKOzSD^h&^oxY}gG>;5RqiQ*-ye~_!GvFYL@FBB2qrWvCcz@*GA=P` zwODKOX16SLd^9@F9+AGmbhX;;4)xL_65xa{>^8Di2DMqkuGzsY+bVLf#xNW2KlCHg zH}C#dHyd+Jj7DDRDk+H#w*eCV1XT11L2)oLN|9)CC*XoL+fJY+y{*O7gn?1pBug9+A>8yGB`Shbe{|Dp)5 z%2uRRS1|pP-RHbh8B4ZHVaFA$qKbKtIwp8?z zvV(PIRDcSA9>5${mrHOuJ$aJ(Z1cSYt2eK}pEf1>?d zPEiLT;<7QO%6Kw>XJY;eZV);a|KT2Re~>Mop|q?Gc3VobLz%(5dhlDwY-^pX@p3yg zuCDvOeaCgiVb1(ROY@EMGs<86?ZbkPZIp6}&L^y~H4HXv>9}UL2q-0F4MZ72JhjU% zJHCC##j1GhA7w9^zWwdvG5`8EKa8&)vdcGLb5@IEGYZHts!K{#zil?ah>rF#6!WW{ z-@fD0FA6qIzJi&b*P2R_r9xmzcFPLevI<$~yb}@nG8Xrkk^Z&jZ-0=h^x8|`;*Z#r z)iBd>rFvxZ0H0iPYx!8ex9_-0x%(jgI$q?g{kMPk`-cVp=3jpIcy0N*P)*3N^;k5F zg@9Kj%#xvmne^kTeH6xD?fLeHz23+$7zu4x*l(6gTq0!CqGT4?u2_bDj6wctx3@n? z-LnDH(bK+Ic8D=p+QRn9OR**}gP@vdKICos18n#9jSDes%E--W=x0Sdm<8}ySy%R4 zDh9>@->UB1O=N-iKXV-hy={>AMlVH5wrBS223cJ*N1cR4tVI4?9ftUOsKWp$4mfL> z#mpSJm{{youmUIB85vfgeA*Q4styAUX8*;$*$}={RapnUYS*fl&2ax2J-vDv7shH? z*r+0zk2XvDPQ@6C7OP}^(aKWXrq;Yf?ZZ-2777PzjD1>L?vuqBqE5=P2vM#MW~3K# zNoxff3mHHqyUqD4Q|6Ne5!PZ=i{4`CT8x~S+6!~4*wu0EuC7-unok!*$RTLuoL@F2 z6zkclWn~!*m=+LL+v;G+f3Ff0Saz|MFKphi5Cph#U6WjN*o1^7?UJ~T6#rCd0G(GG zE#oC6tN8kq09Tm!Yc+J7Hafpt2I9j75m-4hXKRO^p>sE4M& z-=Y}9*MZ(E#Tb;*CZdvNYT_1k~LPyFgXkN@T)+YgL# zT@=T)02umBJ+z&(cY|n*19q+?@gwD_T_!S|2JDoH9&ZHlfn#s@i%|}C68G={=oMH zDXR`nGfAhamIq#!kT+b9Xc*M9LOOrosp|id_lV?sJyp@i9a-l~n)XzcU`KC4FIGe+ zHfi)$pZ95ns0Qlzo4@=Yw+2tg$$lfvUVVs3u%xuF&02zzal$S_F&o)svF*K%zu#Nc ztC?_0Bt~%6))tR3)S-B>RA)-sk-r3crifsJ4#9Wy<&Wwi~peKV0x!M@lhi0KqrXu1i zQwa`O;Cw2cCC3WjyDH?jm^6c~;sOvEb*wl<>tCBnZ(sO{UCGX5ZFA~*zeZa?H4DxH zTolrkZFAPXHWl-=S)5Ox_@Xumm{=T3ImO~(2`~;=TWdxfe^dY<9CB~4Ba$9 zeURCO0wj6)+M#;n-Q%*Cj|`rpFJO7WdYdfi$J#wOhQ$kEl`%DJmrt1(t>wAI+vv=K zc`#$1hg#~bYyjlIFCM6kRd}Ohn5&2wwgS0d)~&b=#gXqO^4iGGW?`jLiwvw=vC*|A zLs~4eqk)+{ETbnQ9~b?hvE%B^W>>kufDDW&wzz1fz?Njyxagw3t`ssa`$Hoa2V0DJ zEJTS=W}#Q>P}Kzq=7Y8Jq}zplZ0h#@k1sqci2zn&h@ogHJr3mer`SinVGRuEqfY_)vs9u)&qGexrm z_Qy32m?3Q7=Nz`x0Zv<(3QvysVZk5Ztdew%9+xLlWSAhzl3;r-mSe^cYpP$(gmVww z+;p>aUuxL=V0-QbkN-hkya|5I?$q0A3H}y_tSr0~xSAQVIN>Z+g5ZzOt4)8am57Ix zoTSF7udF0UpCqQdM9ccA0E6BKre#2H3d6FEA(S<1iCb{<2N?6lWI1i#a5q{_oClA33gn)?faqE#PNgxPqU3=_>%?cln=w_T|T4w#S9v{^tM1 z|Nh;-{fg!n83h0JD=g`c4rYHJ=F2|J?bmxJYz(mf{_ThR?@Ip5{YSrNEom63MuoD} z_Lv(zV;AeX$l_O~<--`Tue%5S+T7d&kX;X10pH9!kYNhd6zEpPtuQQk7E?`&m&GKu z^V;%xsg&Uz`1}9%i@*PqAO7JNfBM5;|NWo*Z|@$0<9xqW9p>t*7I|G#WpZfF^kvWu z?h8vEWEiFAVYk0`2Z2s7aw-f?AzJaNlmXMETB?Qp=e-FwP5XL?`O;LQv2SFLd%FM2 zi^+b$m0~PgEE7N(7{5u#yx7g80E-O&xk8J5xcIKu`#;;aU|t^`*a7$fFoG|_h7q+v z(VM(^5dte_UKW?RT>b|V9l_UCZcra3veb$Ic!X83D7|f-Eza|0k(a*v`abOq|Loqv z2WoZF^bm3bgp8W+yI@)cfR$HY!sdW#%oTKPgN==TUwM3cecw$5XjVxsj_r?d{F0SA zGqZVDjhj-;b@_#{&9K4D!{V3lre8O~?WWcZ{{d!aoCmBlz$+P8NiyQvrj+%Q(vd9K zrQeKun1J+e;`KKpmsIrZ65{Cb0KU^?d_Y@cHbBdmgSiB>V++Q3cU!Pe>cuIP4fgoz zF|c50PphV_*=4sHmjUH{e#!wdK$qRKz{jq>R|?89RX}d}d&g!9klMKaE{7!*uNR@|1hghx*R5~Ei8t@=H-ISQ^}&5Ht>%o* zZ1>Klf2&|-xMbxi0f{6p4fKcY{)zh^oz*Ep``0RP1z;o7!eA>Z$+Flh%$?`Q?>;eh zT2n26bHV5)0PGUkhc$&w#Nw4G>AC1zhOE0gdi|LG`jx(`8m3G&3p>X!{gqGjl6kn0 zieO6V#g*T)4>nHvCie#`yg0l|HWWZGo7NVN#Hu%dH&LkyXd6W}mk9-JxFPHAgwK$N zFOE+cn;EdUG80xN)eCJ&mMm0j+Ddr3d@0`I!}6thGavAOiY=?ibkJJZ(s+Z+$*hpL z0(AK3Q?O6cz3;F2u&aap=*_PH9&)v;YQkDA%*>4$tO(T?_-vN0b=*W(Uyg z*308xPPhLREFH53Qt#R5-4*ccs@ zo@|X6pkP^e3w(eL(VLdJTr2%H76WtcP>=HOe|cqesj~vYXG| z`@3=yx1q4h!afYX|K*jzjgZE>R`j#I&9irdUD**S#Te-dyLx%)yKHVkxBtN&lGvV% zZC5CHCR?;tqsc?uYyqbrpo&U{%zakmg6s5maJP@{4_Ncb=zbNe#ZeorXv0^<){`2B zj;|)b3^A9*CdLs%xXXvp_rJU{dWu_4>jp_jPpV+|#~9oHl50vqsB$H1`dIfIH~tV_ zT{&>2Ydy?DW%W|lUQin!Lp(-ZqucBgHFI3K0O)9v=T(-I%I8FHJ?t62a%L9uT!DI` z_AXS$YV+lI5xphW4BSD=_T3hmbz{R7d~ZkS=nTquf3&gj=z|L zetR-HpsSV1FS;_?fR$5M1&mn|Qf|u@q80yV32e&}T!m3peBKJn%;f8~1YD+ldl2p8pI<5K zQe@IFX_vr);JDEYEYouF&~q|Y3v=iBs?RR@>oP`{4f4~7#jVW7!9KGegI}`qdh;~) z&2>S~J7L=K6j|VP>8dLPc!muDvkmeMVtxU>ff*^cVv6v#UTgDvfpRCN^Eo`!?%f6?BukTp>qbkins#S-(Evh1n*=R!YRc;enOOsaVo&>&{ zncK|4ih441%rQBiStg634Ypj`)(ksJtwM*oI`QPa_l8++%YGfiu!fHWMqflJ^zu@l z1x!UJSTT@00e9iq*yiRoX#f239kVHE$Zp)M75r^j@h%lMa#ngPUJBs3r~57LtyZjA zyuDhf6tY_>4b`D4%hMU>ueY;LvvLJ%U<5mx@%jljdjOsV?wVp zn=2u&Y|UPDYF*+rOchr0fQhu408{1q#eK)e;SstmuZtHil4%a&wGcsU0$^E$m8ODo ztA-7=J{N7LqrZCc-Xy6Vj8tg|9Qkq;LNd5$Rb(Apj+e>!eW-Zvq~>14!}GwCvB6^- zb+--7fAZNgQ<)c_NNWwO=gW8hKGfZ1>yvr?wgnf9aDXnGZAC5F$*T3lg^n#nDkzl8 z+T4#I@wW00h;O32_;SfAKQV=#U9A~B|<-(D>RzS^RL$AF66j*W+jwz{C$&JK36lG|3Ey9OSX z-~aM~(VcSIL7j_Ak4zD10pHuj*-`;$Rgl|r`1-K;jwn7bI-&Ar*;16zw@ScdqkF7o znY9fjsp|{hN58|)eejpfm37lju(?Lr$n!2TEhLB~R%rq@BEoikCg_gdpx19(Vu!2M zt=Mzvd)K<)m_c7x>2*hL6g>IRl?i+>$GL!KBm?ORrz`Sz3< zH@QakP*zErZFAS}FL#cBd&j`57HWwR=2DVOStFjwFw|C~7M7pUY$281m2KWuc?8d| zFS@YIDE%;-YbGKE+zMdjnbrXkH2QPz-{gRMo!QE|Zqnm|GyQVZhOdF0`wTR#rP6zP z*!JxK$GmJYR1I4Q_<7Mi@Yxz73Ad<>%T;v*wtbEsPlW30EM9%Keyfn8kgW_;1)Djr znawIzZJ=x}qwL3Zp1nY?o8^2&)&=KX0il7H*;v6Bz?f>?3ZtTm%i!Ec7w6sDUzVz{ zfLF=JIf9S;Mj1A3b_`w;*>5U?8J>hVbl@;!s8=u9=A{?33{zyRyiUWtJvGpBBTvUC1b1kF7zxiq828)Uhi?Zj7vR`9Ao!c85wi>9zu&&>_B`5~( za`HhWmJVxk;)6)^(U=i}+WWxE$gs-dz zat`KV(kxcP&?Z2R0GZ8XAjeXM>aNmzTTeVcnQwG3>S0YMwdA;___gf)%@#)Q5nXsSxE<}Vm$@+6f2vr#%<~#t>rmL_(m$|*|~f*yQK)} z85C1=WrZCZmsnT7C>Gc8tQ@f&>h)h>gl_{8o-O5Tz(Cs&q>W**B`7|8YXY5Z2~{}j zQ&u%T3IKVI489R^`+8HZwyLio1L54Nwzw^Fqt(vWh!iOdRA$s6U2qk&LC^N1oL`{`QCe z{+nO@+c>n}{kVVmum1)(`6ht_0l<`gGs-)F*#p^G8BHfg5!{gsGtc`*hN10_WF^?- zy_1dKYf|0FijTOR9HO4S)yLg;^Z`S*J_dg%)e7tIMfJGl#$rf4>h6STUB-b$+RXSr^l?{=mpZmBhxD0t+yMXg z^KxF9#=J zv=3fQ2SzS!n-BOh>>JvWSC}#>qXEHvJP5IKhDeP8`(-o zkdvz|Wg|mC%wh$CLG`i03+j0DDOPMJGx2Pa8x%@yY$?c0XCf^$vV?3r5r|&2sX_Wo ztkk4w{}@Pimh+Uwx{Tg%QB!gp*yC#)ySBPYzk28}P&X~)OdB)>F z&W6TmDHSg#PWH3lox7%R4}o*P$D4X_H_VwqJl^kv15W01qLz@j<6T%k7TR+*eA-9Hru%~{rTVg@$0eA^(V9MQ1@(TM7+b+~{1-GX(Db!ezGJjt zggYUd5IQCRE)MgLLsIokvDO|LB?h5vr#djjMAgRjc{6=y+LGY*vvgqQN#w9pQ6uAL zrn8Lfz}Kf8&VC#8fwCgl@hI$sk*;$vAnybxaHC}Z?I>_+lcZ#&-p;|=Oejf!cVhoo z;%Xg{4EHPap<(Li>Blw9?|wa0FcZcSRE(XhY1$phn2zi)N#i0+Q?rn>1A+W#(#^c<45hW5G~+Da|;^}J#9 zIdi>g=YkKHdj|Yr_5(TDaf!P=IO*)XB#=lq%}!5S;!@do$t%ET`=*^Sni9~e=8{ce zqR4Q~8Fyhg5xsKqU64*l9Ncd&gfPi^2;oV9ljwqe7yh#|$470hR0mB2X@=^U z6%WaJ=)75Lk!oDH(s?8gwKMBW5}oeemRZ?0s#WenQIC(?ygZI%-p(;FfV>UU8NW{& zAZRjTx!`_bv8{gIO>S5Jm|bP(gNj{}0EYl0ot#wPO}=Hx*&NdVAdL*vIT`-s5!b)Q z+9xZN4AzHMCfaFer-v7Z4x%v48=T!GzlW%u+-|rQemGMg2_`YcOVzQBixhJwH?sSA zT+3ZMxz3$IT?k4~%Z4oI9t&(WWC{K6Ni4^O6&lQ=5)ty!02?pZ?Nj@ux^;_^rYVb-6@;g(BLVP-LT{thu(nbDSO{w z?CIUOf#B1db%W5S_wok7PjB@Ny`Rd28}>huDEEfLi9EVDJ5Hq8z0qdt2*7hTj`%CmP`1%sbH^_eSE0^0_xLPgK{vfjaBGd+YW@Y2I1JC;IlQX7yK$ z@7Jo+x%i?p`Lr-u*T0_MgPK=r{P@XhQuk@~>oGq? zb%$67W+(4h&7IaKcJc_;eQ_NGpFE*;PhOX!Cl7Gl57^&LPM+_&7g2Tc{P@>=kgAKb zlc&S(z%>2MbAEVi?$18-$*X1aoyzfQIlp;!&uhPV^Mh%3+jf80>1!)}zIKpL-fHPF z_I=)GFTHeX>g#u6daLCipS&`Q{SEE>iJJPjuln?X`(4?CEO(uHABfCKqIXqJ-s{}| z_?ut-vfRb$#bQ&{>k?gI?qrOtB&wGZDyHncthvXwJbjS2ZyK70d@sQP(a6WWAUP-& z`E2ClR@pZrloO2%w5w*SYnu~$?|x{Btr%avWf?_Kr+;s>0~1hq6B0h zXksps`D8PZA!r7fdB#VwZm-&;LSMy+>L{f^#g_*yPAYWiAj4{!HpS@nc11F_Wty02 zpo-L^oBb@x4iJ9sR zks_&-1xGTp&Dd-mjtZV+t*B)|2EaLBDw1u8eQ0B~nD*0mTZd%Guxaej0W!$=SWPnz zT8z`MP-n+op$y|~R`?gKIXGP${utUL49T#ck8&T2HN5QYYb|C>C9EIh6E7J=Z=^d& zwb$+WHC}@YeIrMCbYw9#)-^*+LL1uSwt&pA(RL(`Zy8}Cdm{!Jmw5UbT;C4N;b0F~ zk<{2AH1;$Gqo&^uuDytp3|^8)a@1j5`w-0Wx23>&^y3T=-p7xni0#dqWN{QJEa>M| z=tKJ;4p0(gz#ZTD6g;PpEQ?axHtlATPck8>*cZ((gXxAq2pOTCkfSzwC)?wBK+LfHStkcE zlVRHKUx#VgU}5RoVS|UoBvK%Tq}<7JQV_TlFb)P;+vB<|?49=?x8Zo$mRqU^dEzsO zsbD)1J9?bAqmyuadVFypHO78@u;@66Ss3|IjV%jN9xtB*l#t_VKi@7eZZiT&W{m5R z418_I*N{0gIrz>;CR#I19A>^6WP3t}RlK>I4eWRaulAtW)$+NWdj=RaEVaX_7NlRGfr%l1NQo4N&gdrzgt6@usHZ`kN zJgyo7z!AMPGdfO(sbMAg_OYf@Y#O>nH8!#eezGgTwxN?LQzkwGkZt1GzR^UOAO>#~ zEjdfK*3p^8v3o?EeG}{%f4m{iMOb22#TU?S1UZ434P|LT#OPJrsAdc8vAwAU9 zI;hR*w?lu01Q{GNnQE5Cb{m==gK6RrfY!ArTwqo;NgRuhTpJt5F&T1n2!uw31?|K1 zag?I}Hg$-YFoaa9$D3;EyGhxyJYxSE_j;1U&UQDnc~d@^8Qw62r2ROPXl6MK*wMq> z6`%fQF^y}{V|a0xldKF{#t~dBkHM-D{L`O!S^%(_Km9LT8eeOG+T+*( z@ISZ_KCHy?IO%&ABNCnQoky}}OUq8yli?k3iX%>4A488>v50TZohsG*G5K&zOiaca zSTDE{w;Y3;ej6~@*g>`v6bQtVYLLyuq`?3?K*Yb%!86E5$3MuxiE8W#w7_&8IN=dV z-c;m~9J(FZmhC29V5GFLW6#0_gaZuN5pu1KnqYJQlrZD8!er@TPqf+73jB1|k?}k` zr}zml!rp4Qj(nz$vBxBbosrD(MFLc%?4GjVr>lv()kD3hlGQXXE#gkrPEP~t{%YK! z>%}CHaFk(WLqHl%x(oKO>4(Kct|JoyMaGe@0A`$EV+6dCBiljEE-~OWV@Jw?pUkOf ztscw59h;EM!FtZ7c(haJgZwLFn4mrwL!+Gd9k^+>1mYOCGu8m#HLdJ{fYnn2H?EM6h zXfB0LrX%Di6)<-5V3G`(J24VqXFo6cdM4$Bb<3Wnq3D>MSjDxMcEgCS+3KN`8Oq0n z*@J`g62f%dq{X~02T9N;j#ZzK#Yp&pK(X_I(HGLGPyo}+EKq6x7>qWV)@1R{NDP~r zw#-D+$qPowsL5{B(136vnD7!p@`Z&Jrk_>${$Wt~0$zbt5Hh6gc zacKM4kq8)ZvOp-#x>D6GxO9?*eq;+lhKE@N#9(@g6=b-Yuy}w)IKK9N7CKPLR=2SY zh2;b$V$fYX!Q_*Z@}g)kQJmzEbdrU6e(eX=N> z=G;1{g%+Ct8kCl6tOh`&&(NRgnM{y}b`rL@bc0dx?;QiO=+QH}a|>_FbfDHj+BVxu zfSG28AJon;BVdEfpw|i8Z7&MMY0r6{-R?UzVJw4LR5O5p@22Z(9qgxOxoO4;P3}V0 zVs2BzanE?dGD^374VyupxCjvOAgti=(E}B9VP1gdI%^SyC+l|c|x{!yd!9ae$AR)#_o!bH=8$D!ZQxyFUXOXm$~Xmu!-lO>_6>69dsQ?I~1q-&00Lo!}WTXZJ`_ zEX_a8htckIWY559S18IFnb%?Zaomgk1OgB@+xak40j9f?7P?|SFstNn5Cg_ddkQ(% zpKkaXHnEBwk1K&D>&#~&w1Kgt+3OPUb)Pm3#MuI3IANngBv1Dqmf7%G23FaeEj!@H zM)gilUhSZPh1lkG8ZmU`FdE>hUYDbCLf`{juYf|+Ec zXZe6m_S11NK)FAj5M56!2!*A(u!~UmlS3Y7Wu@t4VDI_a2UvQLsRJejB2{;+;{qR} zv#5SVGwm8#&d#LBknx>7*%ExPSNqqq*WL!o-!ZlMyl6k`oji+iMt}FG8!qhRd9fKH zjjAV+Vi{LAwj3z-7}Dc;*x{N?z`Aew@p4j`Ix&WpR!vmDKLFBDJIsu}V8XTlj~R}S87)vxcLf35ehg_~ zkRW3;8d(Q5hZw$J0j&C%scz|IZgFcAueI-<6)FKA#c^yF*YHDs#ABiX$jrFt zUo(8+$Vyr}+aJw5xKJH8RkOHz*KEhs7|)B76M;w<)9qmeu-W6ZY9a0ZNEnVr zDPS~IlJDUX3IgxAEC50g$4lVk|F+Cg8}NWp1&s4Bq z2P#k&Q=s5ZR&Qbk%-{tk!^E$W`;X62ov}yUGrna4U?f9&n?7^ql}uzm?w@VJeA5LJ zqF*peGwygIlfM`nQJAHo!hEKY35M>W|`TZUPf zS|-7DGVJ0hE);SsjyGl8#N(#GfH8K2&ahI%B(sd}7sSy6G3^;u+CYx+7%^v?)z~$R zV;!60aav~g^s#9VPZAH7X6ItZh@x2*@2~LG`SZ-_5*e`rLitGz2xH#^chsyUSjT0= zEokSCTkaTO*1x8E{W!J*81Ett!bh4(ftjIqVHVE30xTX!%#bn1q*}|3wgWJ;rpQFz zFE8T(CLVXpnC?_y%j0=4qe+aQ9~Z=NVvKMaNZy9|a(Y$-+Czr4xkd!O)vbRZGm2Mu z{UX^PZeMs~tdlgCWUOU`BiVR-7Ylq|@*_OPGQjvq))fBxu1u*2Km_~5*aYK9wRWe< zDM>lB=#p`ibD1$1x+7!*jNqmOiV)%m1!Nr9l*UXAF^1+N)kMakMre%!20O+*N7hgp z3=Ro#9Gi8*gxhb=l-bP`hdpiwu;rMZ5t*tu;&wRrk?cel^5pa>voP|h-43A<=ZSki zbQ|_gPo?r;ag8V$3asfw=qnjfiZ;%r1=@r62>cOpGDDz0x_+UcjYmU4aL4s7rY9#D ze^1F>$j`yxY7eBMiik%zE|jw-31+*{L!hNPNO3ZUSl?Y|8cG}F+m6Vk~rHKvLo%+wvf-MU&I z$)-h_D}v7HmrbvJM50y4o52zhJ&gjts;8QVu#1{EMbSeZrs@?AT+{O;cxR_`tC)$yxe${Qlzy^Mg5uTJB$qj1WGU1*$a+E%eCiha*LpIHfNA{x)00s}&(eO@ z@#wPynXYg@$o7P6T9MX9K0e%%ESf{Gv&yt;UiZO+P@G3Z$x3i~klk#2Kxns^qsF9m zGIIk(&6t@nQ_5IyEUVDTz_rt^F!piW4mUv%NCfF@CyQg~Fv+r&o#D+3$B;eCXpV81 zP&{@@3kxlUvXjm65rbs>`1o2KU&Jg8XFHZ1#FY6JwAFE!D94u{l9jeY9Kqn5)}^A3 zLs%ViVn~Jb?3)73DW{>kU8MAfM*HhH8n%fC@!G|mi;m5zBEHye_HwS33dYIX~J#fbfi3A~e;GvmyZ zeW*gO$3wC_MlLktT=dixrt3@#1KEyb(5Q}4DkS6fsFC)i{5&;1vT6wMXUl(20rc@$ zGnZ7`M9N5>n*9ODhR{z^|5{ci8_unQ{a=y z(rd5&BR5fsd18?XB|Y)c&k3CxK(D7((MLM@t^j_=VF98~rW~IMMnYMuvOJM-gd^Wm zA4@{n7BVmrw}|eJ>(Ua&TqiROWuijH_n9%kXYx)_%J!KlIkOSNKf<0ND`%gag6Qt~ zXcGE(^2tF8slI8rdVZRkhS4y-R>v}?^ytav`f7Q>laH0I{E>SIG&5ZfAW=OIL@X9HGCpQex zyODc(`LTEh$)**BZe%sPB3b4^?c{yWenPgqHc5tJ6x%yTHrLh*gI<=hR_sibZX11- zo@UFldm15Iiyi^MI>;fCq2_vU2_3J;dI`oW*`wt&t+koVYuw3duFztFvVM$h#8hs< z0Q>X+E6t$HW3sW~{*AHyF>8_J5$zM10Cga?FmKy~Vz8{^$Y9vu23gywlmq>xJv`R{ zBOiR9BwN>mfmm?waNkKDL`hV6Br0r07y-|7Jy(dA&_keL^&e{*duFoR9=Zh!Z!XEo zVlzEh6n5t^@r2|siu)Qc?!*dAW$)3Vz_U}aSZjNlGRVm4P5VM8D5e8-{Mx5rGa}Ix!)}^KOri znhNX!9{66#+3=-j8hS5ZZRmWO&f2Naqxit-YO2Y~2*4gJ2Tq?E<^5xb&#A=9`@j&~ z$G7GCSwm+WLo&ybd(0PZ&ddnhu>Li!*fcNhcApo(fSz|7D6P*-PfpW*&~lJ*O{R(4 z4xkOW@mP#%Fq!M*Da>xLXkQmFfSL9ioT+^$`?=;#EA%k3B;*N~u>?T>n)b{zb0*h~ zuj4U{d)(_DMhA>LOSeQ~xIMPMy~)!#km8?>RMQXJIGI(IRR3R>hrsd_(nYuHeHM8>r|=)(|%K zn(BP>Nij)CAM3OFp}L!1H#@NJ#8fSs!b&0yk;`Ct$$4q`jHF4Te^o0 zv&h_3VhfPF1^Fc(r92U;TYOSvX))*1fh-* zD@FFdqghE_J*Zpc5zbL!)_6+&lL5o+^G`-E5300 z{kJC;WF_RWXV9&apoA%*&Hm$aF??lo+_zL8gKj-rhd4F9p12VD*^G-fMaOv-JJDl9 z*+*yEF?`)SO#rgSdB++!?qq1&Y1*(BdRjSmTF)SoAu*3b(*xK+c3}S0{I%R=)m*X?zvkjD zs*a&QBpch4y%_dAK`ZH{>*=W!lao}Cy{}c1u@fUmaK9b$d&+wv8G^(Q@qYAwkSuq# zghfr31FH~)kt1*nh6mM#@vUdhJ?3&Js@oJrkSmtDcC(Li#M+T^yejDWIizuEUM;`lR{ZFew^u;)6A3z-DW4oo^)QzJ+?bQpLd1% z2;;}aTuN3n`)-&9laOUO?=f)?tu?KS#eMZ|lpF#N91B{Gj6<3<2TvEtBjb=Y5Du>_ zq{`7=i3Q3IQ9B^RD3Nlv#SUH)lHCw=)*PQtNrf#YcQY`|A1l%G#H>CV^rVU*plN{~ z_@6X7tgWk0HdhB=0 z%wdN2HD)p(1|#Cylx`JNGm6td=p48yW`{&xQR15Kj*2v3q!h2 zXX-9V>35v~{!I=umT#&n{4T`l@|}#Ln+Bk}cyglL^aq8)^waOkr+KQUE!#DhZqeqK zYL8Cx>Dzaesb?U2Q@5wy`J1xl(#?r8AsmT6;i_>&spj5mbI zEH4U-GgvYBL7u9UGtx22G4Hvwc`JVwM~{fPFnY_4i&uSedwIaCHo2~q_6qX6o_jB` zH+qFkwcuULrS4_X=Q{GBde(AzFG4>}%VRisQNo_&;CnlylLGim=a4P>^|X9`OZl_$ zs`x(1OwYL}-9NtWO?>8FefMLZbov`JZ`8R>U|+VsYBJb1O~tDgg?-2E=rA=kI2^|{ z`oB%>5&K#DtKN#8QAUHRsWD?`vM$X|x;l0i?Um+FdO~&v_YEDKbd>D3!(MgC?RTp? zEl;{xwu>3MkM5)wX1~@Q9-MU2>_VXzbUNw7*+ok4z&khb?DDAB8JRnPHen{?Rgc^* z3iarMdwk_@58U3-ikxO2nSu6z21 zo^*Tdnrqb2nR~@{z2~nw&33KXQO`-A+M#nhb!u|kGq2r6hg?V4phg9svyWNbb*%bq zWNnpm@^ao&vbxb_3EoW>mY+wF1xgotWDQHr`k)vl<4h`PIaH4)VWriLiY^V3$-igeZFYM z!%CP!UiIB;RNVpX+_bMz_x`t2&0vzf9xV{( z9)~2;wb!@v=)~itSEEJH++C5>&Os-A8A*($^WRB#T-MIegTqd`>(^4tnofJ@+hSxe+ly;Yr6+lD+NyvrhV@QZX4nnv%}l zR#~1_4cs=jY9+PT8$NCHN}cFOo5GVev8;?sw_qnvO=hWZ^}gd%hg#Qs9`CJlXA^eU z<)_VYS+mzW`{e89N4gw(T)Wd*^91&`yC-XAT~BklVa#8N*W1mQvUt@Qm$hHmqT=$T z*+^wHUO(d#79_oDjO*wJ72PgBWl=s)him@EZ2iz^XSaiGcC5U-TTGo8t%}cXrd3L~ ztJb(Ad)?*WnNVO>xAm721yEOncqNW3&-z-HSsdrkSjX15En&^7i`KZV^|CSQQUqJu zYrmaKZ_6_FYM1=8`-TmYsVO&`ch?C*X!F}C_J*ax$2Hf@{T^v6s>i; z6XaA&w~xEWVD8p;KlDkfzcKOd5}5h~_CB)WYxF&x+gbK| z+4b#7Gt7Rgd;7SPR+?QVh|y_tYQ)(k%J6y3Z9Ka?8trxGCZJuKjh3u)3sI8g-d1($ zKicJJZ*e&HF6~0N-=CAtr%i;9rq?HJQ@a9igM6+%{8hu&u6la==#zG@U2zRp-`p&= zDLprO3QwJ8yTaW2&`xb?ySgWn+QBSU4)FB){M45f1N8bZI!pq{*>(5GYi z#W;J0p+~5@&rdqzc7Kw*>WtgHQKJFv+4B*7S>5k{_Vz?aSntGo`fx=zTJKqX`s_s~ zT<-#V`er6uv6n_ZdvT)!uz!5^Tu1MryMFAW>v23Zo;?*RjNP&O=|dyEp5vkM?3t22 zQ+@r&si?^M^XthADc!Z>arW$am1&`)KkeD$EM3LDwfgDPE*;HokWU_l>83W<&&qUi zk4-y!l%|W^jn=tmPulN#{*%3N)4Hk68@1R~tHp$B7FN4ifE{x51u7!D^zo+Bz_n z=%X_!wG@R(tk{Xg6fc(5C$~VL=Uh~(WzDBEQGyj$zZgZaG-iUoF|YlLVfwefpUK5U z)NLYwltL$+7dE#9m%6m9DXxoi)vwuxSk-nu5vDkSD~>aHnBD91sM=Os3S1PGGQg|SObf(6<1|V>mpXYWvf=N zlDaw&dKM(R?rM8GlJ-aS#xT|o%wk<*+A_2Ut^=-VbYRU2d67z1Tg@r!i|ZlzmfJ>T zZJ)6lijD7WyCNUj47*BMASf5i29n%Lu`m;NNx7EnV_aPl=bO=*IlSM7AuAlM@xX!@ zAD9CR%|q~(rK*YpsnDydC`_fVp$KO-nrzQ*$bKE}&*S}&UY-S@lP=XSfOWX1V#A)O zjH&2VxD?jS?E!Z4EMS^Fo`+;pt-HUyJPEIGK_IOmv2jI2sY`<3U2@h^)ip_N%JVDo zejUao5q=Z^RUer~Nueg3h=?1I#cDU`cO{nWidymi3@fQTm05ReL7r@Z03YRxpj29Y zE{jYM;Q++o%{6Tcq&iG7R;j*FsmI-KTXDQLFV7kFy4}^-j*$@0$zoE z8_tj9Y!>_9A`9_;U=q=bRCp(5#{Z`|1qRnky6J z7Lx$NZ0DmkoLbDcVwYAhBv$>qZ z{do7=&^PAQ8B`b(bh|Gxcz~Lm!;AUIy0gx#3Q3aPMR z@n*APi5qT6hys=fbaK|`lQ5Ws@FS~rw?i!BIc|UZ3cxdW;7UL$Sre9$BEVG+1$xxs zqNXZ@$^x1!oC8gO$<{@S74+F!aMvHVzq8=M*Wvg5Wb6ig1Q!$NAx}~U^sHe__HO0)Xov6=ZYLsb|67b7n}+sM z0!}QzyO5lbhS8e+;wo^35!R)20e#I|EA4TACdYGn^+cq_%`ibMmJ-7NR4vikuwZIQ z*^nKM?8+v)-~DkQ(zid!k8MPgvpzR`Yf1*1HrTSAkMh}WkD%VHGUJ}jH30;IJ{@g7o-Ku zq0Qu27bU37g5O|?;CNWDLJC+TcDpdvTjCC6cFQ*3HzRbzS+eGH_yAkz6ai9Kxn$eS z(+IZkIxZS!sm@!iNuSFL)2b6T*Q$IM7 z@_uW@fxe>QyC!ePLMM)Ic7VLYJ1@<|8*Rd79q=z~WP@YHO=a%igN+-OB%aUe3W(dT7pB)H-s-gttPa1_Z*DBy##{q<`9&{ z#mp<=9`371^rA$$_#{gJE@qpj^Q}-_yFcjF{coW?9Distf)fccR4h_DxiGd1FmwYP zjF6>rUD=xAd^6Z?(;e>YVS`@Y4d)=A*05N*eN9@MC%RyBvcv>pjrn{x6zo9=9T$lJ zSq^@}pzql91AH37%A^rsEenegFqFa+S2!3P<+ycmN8^`WP_nKP=0{$7NXn*b@;ru;@s`afKx`rJ$F9NIQ(9Q>>BuGeytiPEW1Ug zM3Gt~y}|3UDb}g?e5b$gCOm?j&k6P@s`kmla(0%!`3NisD`^RvNU&6t+1!PjsipHb zapB~CDEl9otffA7D(vhbs>o3E4ssnr6s8L9u<*G?zv4g2y{`8Ua^=-CVV!pq0-&%^ z;7}mbB?Kru7gDvM#8S*Thw9!GwLRA`UH^SM9t?+9r?EyQw_IT%In2Pg$`>R|$mMNg zFZQG^4h3M;8+qqoYs@kJ_)+zel=iAZyE$i|;$SvI=R@5ZFJ1L8AjHLH>=OKb5|ztx_}SjiYxwESt?n zS>wWbqnA(R@zi(k>>L%A}yqUSm2V2H&=SC!yxiwA0 zvmE+o-EYO3Y824$Dp$|o2n`6f*(FCzAVc@B>f)L6;C5`&c)U0-&%s3<-3FBwVLKA= z;Y0w7aa(+e;L(^a6#QfmyqgK(UhjY4RA7I>cn(W4G~F`H>2(cqu|Z=lMM%u+>Y_aO z5{3vpT%MPAB&JnJ3CIIY3Lb@i4=pG_ux=9W%9Ya`Yj4drB}>xn(>S<3UY`Vw0OA`9 z{xFgTwaH1bqwi!p5A7P5c=HqNY2ca=EX`MAVH_w8{t&R@tgAIE0mvTD zje}iIv5($OvElxttic8V`gTKO z2pv!uGQ-z=E<+_7*y}HrL4WU-0V@QB+uvTlty|4P0o5!@VH?cKd#g-ZO40?4VXZV5 z8osOZM;UsMt1s`xR#z2Gt8fF|8cXI`NP26XO3*54*C+qaFV_~(HrXXDq7By*|Fis- zp>sgv`?x=jfxrB(e>%qBep~B24YnA|CFDid&F}?-R+1Ns&&6dAtzfb{Oyl5f`WCZL z>gDz@opV`%k41HZY+uh^-*ys zE<8wtCj!uk$6l=;jDp$4xgC0fJx0pp@pCCseo;*(kFff)F7ae?A z6F}&;3-P-XiSiv;eUmvvwE_Fdr7%{-B+4y1SW0%B1VooRa>e0A{#(qV2w$N)?ShlQ z6=6S;w9+`Rn~asuI`t?p9&CYcF^4K-jxi~iB`fAYZ+WON<(+U9sCuK&xN^&C?Qp-C z5hU(RRIIEv?<5ywp)F!t9IPW?E=mjw$+eZ_Bt!mUxiC&xJj773X>;dE z=rOYUA77tGNM+TYp|Fbcfa$&@3074#R9s!h_Uli#BrvVvkKSFwhi!U&A}f0}#j}+*gL9ip^ef?=ZCeNwJyl*MQgk43Y%qly&ii zJgOM$2EJW1TRj5$WSK5}E4v@%{<08|D`+VHGJD)lr5d52W0!2Ul|d{3UnwQ1I%gO% z3v=#bGlq&|5dRKD@eiI=xA(ujx*rm19(EEGTBey43JfM()g?lXvZ>da!?|T3L-)HK z(j3~~pm5wP(M|XB$i6_iK#0=IV$voc!y*i6wE?U9!0?hQ2a627dBVefFoVjEKkN8a zW9e=x+6F1tm>9q)@+X8dc zqGDC1D0g9{953fM7uKKs2^UsxR@Vdo7=s3nYFu49+!o09&;QfSC0 zvuIgxAOaHXB4DBQj17<6`O{>Vi;$6Pg-KFiMVrDng$*_=v(c)mKIV%!76z!Eym#7u zSEYI7ZS8&@MWxk%Eo-Fv4|d`b7&2RN4eJI-Ed52Cm3(6vE6n5lg^v;SJ)A>4h>Wk# z!b5vRhAFFJBQri!4wRp-+tg&JOhcs7MAv&gQH-K08x*C<*FD-o6l9-QEWdG z8L!ME1K2Q<#!5zV2g~39X_f@}8Ko?%%9nX!54>>CANq}jm_Kwd7|7MKF1dsXjiLhM z1h_lV01Zh426>t#MpwrT7Pm^;>h{OiClUl0Az=<{-58%~G&sazKZ12>%~UWKX!QSU z?Miknw~_3=zamkqs)Zgn5Bmms*S}zJw2ijYhV2Hr`s@1~O82I&C}mz{^&*k)iSfh` z8H|ZBFs^)P7cZ#jkyg%{;LWC^RzL(?ck zqDQD8s#M@)WB|9N1OH0#c%_JqOrYZ$8k$fd-nehuVUk2qx+uu_M)n@C9MRbT34=Wm z9?FruxNqC`0G5F_+8%f2y^FscA~~pJQp!BQ5c*9!h`QhxQHnDrS*-nqsMF+SpR8mx zivt>8kh_6MfwQ`+ERPy0)UU+QVwvN@%eKXL zL4(p~B`#=n(@a^)<_oPJ)YZ4K=tf8wl;C0v&ub1RCQ8^*+LvOzleu49cTK$F|AU=X z-<^-5EZsAqOw|s=z*Jh7O-m&zj?}q7pVI7LHZUDo#m!xGV@+yt(g;5&HS)-G1~0;@ zf=;GF>=kDAm7e^f6%Qm1h`o}=`-Yk9I-;}1R zvM}40T9e_W{RoMJzS_L0#e(m*OKthY%syyrH}J5`uY-ew#j8 z_3ZWq0R!t1##|*5g>KW3w1k-lqvorM*+U8Yx~lrdYSbDsGwqrVk%{whi7atos+0~E zXLRNwE8uWEcTqOCk8FogFFXjsGq%P+nk-PB+XDOARhIV)n-4(d6Bt(Lgp zgji;;BxuZ7BN;=eCQ6kq?r4uLhKKv(;1zj)U3#&B9x_G8Hbl!p0k;&_au=eNq%XCy z7pb7p4w@se7_g8J1Lo&Cu5vhjsAqPny>~FaH4nUIYsX3%j*OTbpT+ zP)C<2p|LZzK|iSDiNIkS{-x=itSTnvfwtaZGk9K(Rwy4zW+}Xg)m~~o>oR~vg}4hU zK2=M18*zaM^}xjVugcs6Xn%zj4IKEo&^l%1lDS2d2jt#G!$(^L`FQZXu0h3-G5JBK z7NT;|UO0}yx}p~_Yp8%d!#T*u!x{r`q5SxFoR#qlHbQjO!9bYk(uqfUXCtyWEN5;wN zFl=*=dTAE4+7ixhzlbtt2`W4jPdPh6Yh&Gj2#NXk=Wu^u$KEaU_aP&6bgumZ+K&*_=1NF zkd#h|#dXb#7YmEKMX{(>!Q!PY3@k7fr&fr(;6$31MTK~|2ssvOrouk$|M`rb+;=R>JtjswXS6I! z>5`F*(ANW4`J$4Ip_arFH{V#5=L$RwC=U)DY3{kVu3}!$$yOID=$c~%E+^fRGb5%# z(K6SZ^F`S2$-JAdPWkUc1@r*J80R=?-h)8&EKvZnsDKF%alZ%)$2p#E_>X7%4kAgZ zj?D?MXouDe>oRNR;>+xriQm#isKJP?y(C<58A>ch zR~Iq|=CQHY7v%0BQf;gPOm)$kar)Ub5G}0S?!ixNF}Yq*$tyX0{q($pNzX|Xm{m(J z%x}R$&`+iouX`%VS}EFvGh~`}=ivSh?gqnOI;;wor1BEPIM9cJ9n9{QLX}XiT-RDySs7Y{W&yw&R>HF?HX8h%(Lg z!jc(QOQ!sQSfQ*g0rpI&j5JgiPF=yKZH#4ORqf~T9nU*b{s9vkC6!d@MC*{mCQI7nfoqlL&x6v8qwy*Mr+yB0gkpkJ&9Oeh>~ zYZ+3=l*L^jgtOATJimjFZ{V&L_EljpgoTBZJxlOZC39e5=POnIuowGvd92k9JU|b* zfGT+*HE!KI_?dGH%V~R1jj8P-FMrLXU=VxQCijm~`uiix&@g0QjtA&zqq&9`=uoG;CXwvuP|d5*UT zOpxts^{xvv)Xvb-pc1+c7we(FV)C|t!N3NNu0ilQW_4bXEt_l`y}O#hGZn%UwHs&{ z3o_^?F3Pi-aD>E3MZwO1lHD0TeRYd@wi@4!g%!|+EWO+s2pCKaN->JsG*&~zSlb1C z95&!}Q^GstJ@$AcVPRT9@jWTrWPc zW&-mVQ-%r)!P|o~s>gT{M8xXayd?7RS&VW!&m->s4K(&fc(iPK;g>3y3|@O!Qh+6{ zKquZbEx;1Kz8>l$epwF>Ci3Oc9Xx7jy0a`M^BYX7BPpF_F=2vNA#}Q^yK!h>f&=;l@tXJ*GzUuuqgOFL6LQ{3uWx?=>9r*p)E zZ$xEBCEX}ZGU>{PN5_LW6juMmKV_@lz0h!)?8Fv zInKIA<*`h6Fv(ERnrd}{*b}U%i=&%cTbyJIOAM*2nk#V)LU<`S_ju-k-aCRG;@$KkZ?;WC3jbO zU3*!Y2j}bHC=u+W_rAwwq$E6iy}E^>lmsFc2gixXawBDFS%=!#Wkg&=4O^U2w-!VH z$J0?_SDQ=OcN{h^c-RuOkeIzNDxSTsIaQcA@BxC#~42%pbw3e7$p;dNOy3u}AyEh^bzVFlDex@(|* zNR~3lOJJD`*fcsc{1~siSiF4LV!Xa!A?Oa!Zw3+X@o=Ri-fS}`nRrCcn?+t68KJ7y zJzm_uA1U*pI0qcVHHuX^7w^&vxN;2aB2Z{tjN*|IR?VVg=>h+2^cM_eCW;47;RbyV zp+x0cF|am^V)KcT;+if`))Ms_`o@z+Cj3lXfN6|yXj1^SG%Ft(Bg zN6DZQD2%FI1Zte`$6=>H!rtopNENG8v7Uu+nV(@LlqJ(y`HqFHXnf zirv8^+v1uwcJY$g5dzec6bxfXWeW{Agm9I#a=HlH@m+P+uP1KqJ-y>hutWJ+pj@V3k<#-{xSp z+vLn;5ZLRKFRSrfqZ^2{Agg2P%ivAsEocBrR4AjZ0~A1bdC6 zq%#(SiTKgCYKm;#$qOX*6K<3-Iz@a35-CGp4N#>k44s9c?@Q>|8x?!?u7GT>x(#hE zdU_hwj+x%6)V4>YvX@=44c0lt3yudpYA|?`g7mR4N5fTO&Eex;@OU711CeF}z0#~S z$rwG;%#x+9i+9YJXw_$PaZ4Uq+=y{Km^SYA#&4(?R&IKSQulTsvjc4&tUW-+R0{>N z#zlw}s}!bRHLy6F_XVFfw`hOWmYORTijidxBrpwF8o4E`4EVi^V5?e+Fr(oN6G@z0s!5tfs9_kM+kuBEA3XJS&u$>nY>GK6$bW{%84oTJ zJ=7A_1H-^`3Rm20bv(avv+dct+-zUl1q7n9XT?jQ7&r*=4|%)vpiPASS?xvf+~b^E zv`tiRQ^&sOHO${qe1@J{+1@0KbniBtk9sskx^jEI%(!vXc!x&!1vJ3DoWW>O^5m>SK z4&&5^R_a9->2b!b8kBUK$MFslMur%bW&^dMkI~<$p`J=nTz6~>q|deX3nW;#mui{4 zhea$&$L^!SD*+5NHxXvaM*u7PP_(06@_MVzqsvOf2)=+=Q_!EBO-SZGG(*=pz= zNvd@L^YFW{c!MtXShSd3R%u~(d)Byt9tcfzv6_{Lz$$V%x8PU-`SiU9!;>( zAuNR=>5(_EFEhx05sj6mT@6lM)*56hx0gnx50X_M=AEVvdUpw~i;i;Ci;#?I4NQZ# zrQ!5+aCq4z6xDBS%nKqf$lX8$W_HOsL%xcUC)qM9vWsz@rO4>*MO9A2z*hMh<-2W+ zjvv9lu^{Fp3_N4)Vb6BSx?#d3C?Cl$K47JC>(XC29v%zwg2(~68;C&G!g{l2@t$ED z*|;SKGpdXj(^+=-${X*XiygxA9}8kW{5x#K?Ckxd{0QM$V9iDrwqx@ z>@Lftt_!k9k+07pYib4ouB5-ib{edML(PoEz&eJY*XpueA~$522^3w@}$% zySkLTtl;d9l8*%dp(hu}Uy;a0O!gNE`O~c1?pUkmo2)l5VNZot>Gps^%Btk7n^n}} zWO7hkvlHf`wZmb~9Uu7~Ji1I-^4O#jdFwi&^BB5VZ0S*%gWHw?Nx zCQgW~6ASL8oLOnkFCj;)j}k@0cJQ)a=mNATcXK}0F&eE@asqJP2cyP<8R?{%0hF~@>*->=9@A29o1|5YVcv`YZPX3aeAGsr z?bi8sJ;or;9M)CY!>|J%Gs=7wfVrxecQJ`AqK5(>xjMMn2kj-(WjF^X` z(3XY+otZ(M%#TUc>QK``$#C)p$pXkLKwy=HR{;OPEOkFnu)=C-&2M*TBV2``t*``2;@dijk)^(WxG}Ap-0A=Egh1}cCv zfQw=UaBS%~0a%Z;=J^I6A5zg(&^bx0Yd%xDxaf~poa1PfGARn8*5PuY;UIAdX%s4_(ihA89wh*0%qte^o zYc-Fvg_d3sfW9)FcmhPd?Xq?_m=l2YDr|coWjNCDHXa`1Cn(@B`t2l0Ax}`SL7SE7 z00C#`ZLon&|5gA@G6UcMnK6Tn9yB|Td*Rk`2a=jGa9*-$#}&h%c@`cV1sksBH+XCG z_68Y6JPHK@Ky1Vn!1@y$JOoeN-hfxl9~qcVGnUC%W6VrTK|>8TD}ZdBQ;;S>yRE;r zZQHgvZQHhOW7@WD+qOAv+wN&=&;Q4X*m2^VyUM(*RaNjAC9g2Q)XPj#=-| zL4xHlsWxk65-sk?59o)y0?(IsBUa$8mXNxXgXCxaP}Q9blVC{I_6%yJ&Sj)8N4671 zrf%gWo{$rb{9+f^x46TzHV5QpCgj=Mrn8~|bGj+w0k|JV?ZLzMerN(zwPXSDgY^7T z00UKdfQ&&3II!R$CziX~yQ_{BS5g1Fn~@LMnUxY6WWFu#u0eH-_zmyqz>^v(ol8xU zefZ>PAaUzt`akZ0K^}lYS;U-33?krJ9GnLb@Xj3)cVI$MsGw#8&?xuBBjKAkWD%kj zhjWegHvHnIA4)iZLd56C1T#w91&wC`JVrc06HZU)iIqo~(FPB4;ER3%>KAJ4^ZA{0 zEX#SNq_#7sI0BBIs01G|xSE?`!nU#*Zu5F+JkWbqaK*P;w zxJ-HkpbHnakzXr-^7GxZW$vLJm_t@~>{Vl;1vV}B493(AfXLzeUlQO%sS1O{KhVrNzf{s(n1fa-U# ziA};$kDnQ1e~rTrL;?^ejEuBF=aq)h4D^26Zt;(nJ>sT= zg|RRK`g>!C+hhJg(P${tVc8xzC;&bgaF?L-Q{+a2&xY4S8lWi28LvjKgyIi}IF_|? z(XJqj|K4~>jq+JrK>XSm364P}R6`FDIMqoEBDA^NJaGDuPbqCR0IGIooHg}^=(aEZuSj`>pcI00Dp*1i;lsH~f550ahK8pC5A= zIKT{FxgYs1DY=2w3$3XD(!dp`{(asdZ?w8If9 z4Do^F_podn1%b>e3#u@)qX6=4*Ul*b@rS{B^)gmQhoG2^W`O?6tO|UyB79c3nE@Ht z@cq9#HJoCpv>B^V0M-xifFOJiV8Yd)n);nM{KPavjbRB1&pEPbDq6i|~(f`?l2ZOHd>S1PfZfCun7vVeI7H9&&^%pVwKu^VRwF ztmvS9hdi7%!RurtR<72*-X$XkIQ$hfUGXlRWHjLv;nyW)7Czt`%HbdrVJF)01ShZK z+fY>4m81INRPcc%V00s-MFeVFk)?mt9;4ThrvXkn`0eXzV}Q{F8j%!m^m4?iKJQt; z0Rb#XC`dgGAT;{Nw5BEJ@hc3XyCN?E^(RgH@-HQ6j2I?U8)E0jEAnK$v2X zaZH}UWz~eDIN(?)7Sv(C9H{yb$ZUh1-VE1qX&p3S&5F|c5r-I76!8yWJ|F{#R{=*^ zqI#$qRs+wt1-C6q1uVAm2}F<&NN&{d-G)KoxjZQr4mp7U2yjgpZVo^+(P5wzWfZ3i zVFm1R|cOAhPTjfp5O3b^%|A>kBM!-ia+tmEhlDwKi%7 zf4(}VOOHCiiovffwJyjAyK1KS3ix_AZn5xTdp)xwv~FvaYaXSTaxMG4InE`S>_;LL zVx->HmJx<;0nl}|Td^@G-?mAEx*0%(>%=_gH=9TEJNEmtZYoZJaw9x82~&A=3?G;) zpED>#a^daL3ODYbW2_k4f~aA*K}`65JMG&Bgw`RfCYVlp8@{0zK##!mM^4>~K`zn; z)^S7N9Yc~+rU7Ig=a7>J3Tp|+fRhgh=ftf=k*{mMO{Q_u&fbwIy$OA#&eqWZI|f3B z$I&W-a5brhRDG%e(|}bFhxnHB2zn47srUF)^A*whuf{MFgbDn_e-jeV(!+|Q8fitTq+4YBe5%9j*|bkZ-%Uhe${8>q=-6C3@w6ge{Qy4= zJDXZKopd@YJc$H!TrDcqix59zr$*E+y-=aKBbN6t|0}DZ=8js=>QL-H6abJ*_y3jE z{#wh{{)iI!J69h`llxq5Qe->FMepX(w_~@yOL(ocYkhPNY%6El;`;;5z_@>H*3{g+ zOIG@h4E@<@CxB@ye% zxXHuoc_4S0uv_p(371Sox%e-~k`{g-E9X8>+3&3w6qh1e`w z1IZv}k<$UFUsCY}T|K)DLiACHzJ<#fC?&MP2rT8bDStf{HDkFec4JbNu6fA^`N5j3 zHV|ve_sUa>3s0cP`OJ{;%G|W^or>=L1|U3;_Z@>x1^2G9X) z`ZDroe>cl{tVNMfjCM9(Nq{Qp!T?i-^deJ*XI?-sri#&^F3U}NVA0@lL#`VPjjzP{ zA`J8GJ@hg0gXp)C#6d<|u<-b05X8-xcg-1|#E73Mk4iqH3^y_YnTchiGNDll(uSkv zpM+RB@-<9qDUH(hoR;Y}|4=L@0by+OiTw(ex{_F-M>RbaebVf2d=?vzen9S5aVIel zawW0QbJho=Kw0LyQIw5ML?q?(p7YZ9#Z`$pfczM_R`QaSrfA3!aX{#W3tv8>Qb-y5 zc~m9>i|csFORx1P%rqGX%Fn&OpOyfjN%WxBFk8nT%O-NjiJ%*PWqf2u9CL*km<)~> z&KU6xJ?%MG|MyuDF+8pj62v3FeY$)vTZP;yhO}10Ng|JF`UF~u07{F*A|X=Iz#~;F zPZ%DO7QYpbP+I-E-7kKoFmD5!xDf zK*yrq(XL5Nj{gogLVOLD8at2nR6N1Y9?Ggb2vq5~?Ui(Gqg4YE0+d-^6Y>}XlBgGZ z(m2^5KM1?SHa8*KYB7K#_=QSm!?ynxo|g<#A*7vAGd-eeW>8tBFQ&?S*n+DPPqBoX zxlNpjRmC2B%fO7eJ*A6d`|2I8rkF9|Fqj=|iduuZ6nZ2)o)kj6iBgU={s5x>kER5S zS1}^8bz^Jggfq7KDeWl%MUk9B3C_*6nt8zCXq8=^rj<5&6u#%!I(q1BMMW99bT_7=5I!x=kdm+ z9y|&)oSWC{WRREVQ_N$r5NPiYnHj?FNs-80hQ+_bP_aB`IuoP)7BlURtNCQ2-XzF* z=RjLLmqRF0arhCM5Dh`;pGS?(3`RMS-}1^nfCl|lZ6@0J6!dvqo)H&l_v zs|)J}E&U07(gdsEjo49F#3c;aOKy~ZTj~q`2HTg#ognyzn>3ju-xR1HGN9>Jqu2^! zo5ORYoo|%(;EN0J4IMF(J(eTTGpD->ZizH)`S+Jja`lEo)@UvG@9#6jFFpA1nJX58BHsD1sECZunLIW>4CSCs z!#`}uR>L9she~GHDA^ zwZ#rHRVSFRC#VMGTs9T!rsj_|Mx@)z+8WJ41iX(zcP)?Y7M01rZ^y-f zc^ZGg7!44h<@t5zego&OxPFTB!Sil|X4C1gpqiE`$igRY(#)2RU~-t!CiZik;5iCk z=y0qG=U*}Z)F1+@Y%Itq48>bA05=)g=oJ_IEB&+R>fqXRv zY9=1iskIZEj#EDUs@>Kxl6z35Lm-ts8dUh+FaLj!F7;; zV%C9T3#GGY9SVANqX5geLPGq zj&sBjG(!3p!Zq46Sv=|AMAe?DRZ)-dffD%L2+kAlbFu3mr}X$K`8=@h8t1%@Y{C>e$TK?nvJ!y!2{LCB z-qkrvq*W~|Psn6DPeZY~fD2R!_ZKwqXG` zD;iO#%ng4?a3Z9iB#zc*zA0MK3wfcC4;9fQ-Ms#uTl@zM z3}l|4jRM^_xlHRRu5YZJIh&G6pgKt_UK0wQ>-|4pCm%EZfd4HA*^8W1X}_YlFH``4 zEn?vRx5{@mwz%%Gb;cEUVte2211`Xk|J}aIR{etE=O|I!yi(ghsUUsefIX zx;e%vMWQs(Zxwkt{-1{2)hQ2OM^7c1Z&_cAyw5)ZIoUqn-(Q+sR3ndw-G;H=W6kpk zZz^mobP^a;*Y4kgK`{KN3{+w@DZzFG>Gnltn zzV4GF5cG0=qxJTe=C3T~r)8)2y8pmlpM@<||IE;4I%^aZ0y!zrmiLz~_cupvULgeZ zXJH8*66Xtc+RcTMW|Iz}VDL!qd!w!}2-+$+gXDqy0eiQjrw}MwN z+H`UDg*Kc2lw)dj-b^J?MEQ3ZruU7u-CBkp56f}L!Uji;?AZ)1^!2v4e;+?wePSd3 z9U32D^vNT72g4^g7442y7g+XUiRGT;6v)eI)tB2`-?T2jxTyTzUnh8XeENM@OMSc- zlM|_Yzdl3ob9``ZZ$CGC`2fY&)vNV}guwslHrR=zKCJZ}Gza@Kv|H`>^S1nSJTmum z^r$~K`6N%_Lmpimq4)DF%}3QT@?u|iZ`|t<6*GC7MDPhjyT19>C(y@PN7JXHS?rNv zS?;l3LlE&>;2l1yGZ_KKQ%^$tW0$`>ydFT&H(XWK)VGSF^>Aa#!a{P+{kF66NWj#a z>B;nZX~HhY?+pe+#NXvD4kz&btxJ5_vI`Nm@%KoM#T;J=iadA5pn*F5(W%|FkISYub$KAnyFE)Ef8Rj=H_~*42Zl0db;G!G>S;4|CdLMtx#*-{IGgK@I6T&7qyDfwJju$l?OJI`3X?I} zR-;ei_YmG4JARI1Temg4{NHab42CZJmwmo}A3eM0E&4odeChJGwAVW=@dt9>Kn*Sh zhj-NAMQ}0y>}>d%5P6TWAUf@3c&$E_Lki9TbJFcAg+cf1 zLb#)3UN>yKD-67R?8OG%7VMn-_p%ptHMjRO@0UYb64tynP?x#?XxubkbT z8GG+10Y=1)B#e!mHb=5N&#J5IU4EnV?ig+Q(nm;#2fsh-(}w7O-hN9=V>V^WA1fQC zYKI^DkmqgitalpX5BPQb&WO&j)~GKmv0N0|j+f$a-oTUXje1#aF7%EpHy@}Dw=hc- zU`INZi9$m=aA(kUgcrQ4>f~L1^x^BU zTOa2Cn)F3AgxE$*;CE!9Kc4Zy_qV|_U!L^uzCVKR7T)_^7w&af2HU0h$#!k`K+@~N zMw}lu7z)jBXR+>`DOEYd-PfzrcP{OH{{&c1=g#-FV3t6P2goM6BQE6^1zX&*&!4t8?0q8M7)$Z&38>m!s?-0759F8Uzm=7)VS)Wo~*0;xNGhA%OpFB z-AU__`S$x0iJ9LcR7S>DVu9=BYMj5Y(@E>J`E^^IKX=wp+0>hl@cy6OM>c{V7r(hx zpWlC8`Sc$fU`RNcpkDE~$A^7k|h97o( z;i-L+!q`7ol_7o_EWCUi*)`s(DiXo#KO0wj`_pzb-9emkU%gG>g_J#n=a>p`?i$X? z-%#=_ENzDfaNhoR@aY$NvbPn+C(x0Vuw}hZAn7E}@Wy}fEz#)hHSogB97j5GO745D zO#8SwmB*imn)fB`Kp+`8mrK@;kiFBioqXG}v;SWy4!XYkzE(}ahoatJnsoB`^pA*K zNp$Fx;_S-E0}HUej_@@l=fX54S*oUYuCL_zf9hV;SO4Ahq_!5_+vGCVX_*VL?XI}5 zo1xfK>X{(6MC$79*Sz>~5<`3Swl}oj zACAN5uUmE@#*sdli@O(_^!{C)vG(py4u42@zsIy5u6x1#G4fioR|!wu1{1!+%C^4q zUhW^>2`D=BM%~TdjvDoJv)$F9bahOx-e2eWuRrt|RD>Rp}IE`9OTKyeL<(@m|&$!;|4pOib$R0Cf-~yaoA8J6Czy-SaPn`ZB&Ja&B}p zE0piqCHx8PahO2j(pzQe?vq0=uL_sU_5JR97VN)UOL!mfPcBA6F^|59I(mZRIh;Ei z^rvST+cTleV_9A+RlU(3=kCY6-oM<-?0Y}H|ISQd%-!ji7IXVPW^?h^d+{~5*O`2z z59HO>`FD6d|D{50*VCVwy@dEIYT}&2xXn$C`ux`A>+AK>x`SHrJ+f@e_vi6_T)tdq zD1ocC*d4k^ziQ}?vzM=ZkjGeE75H&elCUO7rt8Iw&O10h#&R>F7!%0rhu1N@zE~E> zo8Ga(L!cm$cUw2t;A)@7d1o z-sSmqFOt9yDIbkcho9Z=ORcl38R?l0pEZ}Tmhg=oEMM&)n5eULC#@lP<3DiC*i@Hl zjWF>&oW5_%ZTfYl0@K&839%rQ@XuH0e{^QoP5Gt-mfKdFl){MWy>fR(FE7jV4HR>Q zv{Y@LNKG;jmwhlt;_+b=1Za%!=zkbD> zUmC6h+T=jJ1wKy40!`UXL82u-M@TqTyft@qb-vx+m(}a^{9hi{r7QBBC-nM0r_95; zJ_*3-`vk@=dSx!3ArkZ8$@GB(;WgzrUrT>AaqRMWKW=l(WeBJ?-3iV8L(G=doiX%y zw}rxgPKOyA1_v7FX-D$awQT&bo@Sl;Ys|hOJaQ2*MeUuC?Pkc$_q?X8JZ#Ukc^%4H zejqRHk4;6roSI_5v@@q{s@+|EroF7vu-7wOY2OC%8L9SicUyh%hdMM(cVXVt!OtFc zVw7#t-qq+G8VeI-PrCLE&PC~89#i#dnil5Rg>{*JUuJO-l$@~Sq_Auh2%ZZbOHZgb zdtunWos0~8Kj?+zS$j3kU*?GTeP4@Hy=_rGgdz_kHT-=1ylp=Iyc{O`*eTq~b*)w! zvRA!4p2p=De7H{`2b$Z@Ml&D4Jd=GKzWmv*fER&e`eSv$IhoncQ6YgB&$&XELBn`) zoOP==0H0Th5Xp#|m!XYl^)q`PMvDFQep%O4)zrqMTXT&0^}yf5H$_t+rY`?sYOKFA z%X+c1^gUASEvlK@_jxljk+nP9KxfB#dxZ1$DMZ46d3&^cJQA07zulD%80zKxiShN- z{F(DUyR)ariJ#lmJIXt4$f(Wpd1?LnHEL)vEZ{Qv6sFe^iHX1AWb zd8Lh~Ab@X#Cu0HP+-KT(3LjQIDtGcR5)}um!?2@|&_f30(^WSVzBJeO^(cOk=mOK1 zxOMr`8ZGg4i-7C3M*a{R@Uh$XNg3c>G~Rael!5<)2jVanva2Z0kG`|hPQbxRkFy&O zq1^QGq}gE#cxm`%nwb=%TaQT*`UM}$DYIs9?D}=@8@3|X zH$r-F+{EzRhB(+`rr-VgXY?Y}+g(GG1X;J(>z4H!FMQa6xT>s?pe=g0pHk|Mr`e-Z&kSvOa5coXRT?I0h-P`?C8hq z{u$favr$Ez+tAn5(NzpN*JpFR8iM!W>p3&V|HCe{*l>R~q}PgNSfL zW7W+ON>5vHbtP9$`}y}9=lJl2$xXEXEz-f2?5sE^_?6GuNaa#iV&P&kyh65uOnvP4}1MS zB`3aq_EYwc&SAWseP5q74+|sL`y19+rD+*XB*WI`Sl_(mO^$Oum$cveylznqzcWxN zglB@Zw_7e>0KP|A5f;{M3`nDE>}b{6gV`#zrR2~P8MDeWfu_!Tx(9WlTo z5N$V+J<&~kP%h$I`_=C$LnKHX!O^Y78SLMpiDIu8_q={(9K#>qbZU zdk`-%?Fmu%g*mvP{@mTDiT}xkqq`qF7HCiF>&6gVqxOfma!>x*i~W9}JlEBYjBIA< za{FfD4-8)D>Bi8)%n;1;Xzu#d$FCK58H6P{c-bz0M*MMj;sSTr^Pcc)KfwiItM6I; zHZY=$gTy%rBXKVZ4gOkTx+357-o=-(URDf(_QsiIKp3623d(;W#9iKfZ|b^wA=J9S z%r~rkyX2xWrui8gLONAM=Jh(qXfbg2-U==e2<_9A=*!h%iN)ZT${oX7oU``1N&Plx z_JOtUTFT}hd$Bu5808kfZ{w5MAxZRPT*+VrD*ieoSiNf0JAQdu=lJq*# zIL6)ma$?sU<@^Vb-J(7DLZ}ua)#GZ-WETJOb9GNrAM~xp??KRWY}=>1P4}r!oa%N0 zJ28;=ZN3VYZQ3|*t_e=%Ig#Hf!ZlqK?#73|O*Q$L(dU=?y!||2)z8j59J+M6)rx&d z3tsg)Xv*nWJQQmn5Wa{&3AVr5 zm9vzMD|hT;tKckYGmqp=EoBLS*_~p(F4&<(m!q!)QhTsMX`=)5bxKr z7PL}wcnl!?2dHaN2CVFi5)iODKB2*RGp|ngXdbeuFywx|J`*D)MO5_iy*Lju8g#vfpaz+E4Vl52~5}MKWLvA;GBJU#JGW5znw$%(Vu?4jbc0oIAbm} z>CUsov`OuF)(y0MO%4M130rp#G`%SQ2Kbroy0Le?r}z>7B-O%xZdX-%qWx>Y{Jc8K zllQ9h;XMs+$=qZpuMEJAq6dV00sU_FFZ(Qj3`L^5eN!PP&D#)apNP z$ID?20>$qPEcXM$i{qQ25ChTsK+y`6Kg;CkA@j5pC?V>qiO zypsQdIb=>%G^`X^)LkSeq_v~*u;4)yeUw5nHa$6^h?s#rX962 zPPCZps|Ge!Xk8JzCmQyXZ-~o`$lcV@j-#f@gr$SnWuo>pj%FFrOpbcNwKvKuUo{aa zW@rB1+{$epiAE)oX_Jo9#)jn6D#LjdqPC4J&kVUT*z%vv4q;VmEonAfMVW4}&la|2 zsOGBf>rmBA8;T$g4~zbXEdu z`jfGPM~;r{)}x^Fep0h)yve(kkwB4N*w_`P7F1QQFT>8Znry(R#Vo3Zgf^YN$%}nr z_8GzGh5q+uXt_VhHq()=AcroYlyoSXY6cBqYCxRTv^Vu*ol#jCj@z<4bc8;xq23}t zN6V|oiH&ZBN%q{mBZZNU2LYl-CejSz_>_?vT#PJr8kZH~2ZlHb38(Z^=Bg`|Jq0#B zejlvRXk))?uf|M_9SDTHyUlj`%Yd_??86ZkzBF{w2WAai%<`m3QsIwUV)Ep1qF5+P zJ-MGe$TjS<`hE5UZGCD1*GW(C(t4jN8t81)J=Mw7o>H<-*b5@SX2_qo2#K251pfo@mjp;1;29xbM$GhJomJ$mQHptPKp=^*9 zZTL!h;xZLPwb7_e^ANhax7VWr%NEW~jtf$hrHf&&NOY7tbs?Kcc^i(bl~2c`1Ck#& zJiJ&F88$o#*cB)EX{Bq-%sVf$PCN_62~FpR1Fwab8EV58Bx9VO)#R^yq-lTY6>M}}vb%s= zA62BJ5Km>T=4o;Crd3p#*xMUqXaneO>}n}CU^SURAT9?Kl4_cOJi0Na@`+$lU6tIf0i6mG1Z{S?u;KFF^byu;O15nl4$ZLo#Sm_QUA-LLYZ0i1x z!{ZsbBCLw6uWZiCgRGGL7;y05k_!kmQ1yOfVtkaLBGIVP&okMPF@W zW{x;77v2zuWobm;cAK-zRn>&aL4)-3a8T2c(`5)X9u(VE7)~G zYfXufdG5h^AYyK!o3--6+0TO(dVHimxx(E271KiOna4-i2GUAFActVI%v8Do)MLe2 zIGdiRR$h-Zple02{k~E{>_dUll@`?pbXBlw+KG4xF?Wgx;Ca=buxZC-@l#SZiiR2$ z2A%!(_5T3yYE_l=o9WIgBu-pBNgQK9Cco4WAjuJDsB9BU(=bUyNP4jc?vz{ssZ7K9 zV>aXQ7_=tW{<(sT3Z@lF!(G#$JItE!cPSg~?#qrui@J7xqH}6^KcJ0h3ecw@hwS~j z`*6Z@f(Pw){}y4wvaOq1FB0#~Kv_a9bkZcb6?^?QQIn+H z{z*#~f960NLS{HXjAqI}7A>Y5tWpy!H$x(NfMn4nJ1<6;Cv!>{G9Bk8fIKCCuQM`0 z+~I8+D%T|B)XCC@WEy0iuOE*$0~{|x&1R3cNf`LN6m*>Rj38Y-p_T0L&lye5BWBph zgFJX#=>b#xAX%X*wSu5L)`XEii~uls!5AL zpAK^-HVKLWx&20HXBP_+C4lty&~S|yd0G67sC0wIfF;N8#Bh2GwIX<7K_|LVjW6EF z_6uya!^oF3SxLi0kV&w=D-PQ5;k?u%D$PVtL#j1J`R*Rg+k6WwhU6eelNF2E1%lW) zjpfAvFIjhCUC_BB)iIr+Ei+2Fwi<-o_zhX2thkZkgNeUxf&1e@RxYqvIN5#7{c^^a z>;ij1n_B6+%OrJFCRI`*^|T7;kY`0kdZHS;2F~c@!p}@z+z2EzT_&@^f1{yHU^Z5+ zBG|0YvJMiiaJG7e_-B?YxTSJd<$hKVNtDM^;pP?q!4&Nu7IabkfW$P3a*Suuxbsco z=Y|Lq*EsTc_!V_vK+|H5985T-@f0Jq5C=m8#$Y+xc`!T&bQ^X^x?p4Go;(P|7fZc; z@8C0Z{}d(lo@sgQouUT3m+3b1={~sL^FIY^G&TH>H6mOvOPS4ynkTDgw3;)WC5>6F zc@O4?N}!5|v}NeL*J4E|5)=f{sd$N%=}I-qlyFIAoy#{xn`4E58@NZqDKq{Iw?x;u zBqJ!N1y50nWG$5kW)ZCZ{ywulj>wf@r!q8&DNzBx!xFUwM?;hw%re!_Lirct3dyl1 zTQE@3o;tfohQ}wp#{h89W9~L;99aPIl&V;wM8qm3-oo6iz^$wu#m1wy3B7aKp-ATl zaF{Vy5Sda=`RK|_;?*OviScpHiTJ!uSo$k)D$-*X?um^q-c-V55~+pFLKbGATp<7}f@&68oI2nA zbqM~+oKv7s9PvJn#k@Zv1ix>sb^z6j{Qp z;D>WCWq;Ldlmoa@O~Aba2xJ?r;3XQjTlZ7wLN7gRz9GTN#gDy9GqCpR2sVt=t)vIM7l!VBirc9}F@gwWkUaZ>=@( zZ3IuE`LT&-DC1pd;e-?g#}ZPxsuxcxr36A5@8dPXPR3!iwm5~QP~^;I3bzxwE^l`x z#HBSh8h98@oTYZt>5M5_u*%qXE4EhfR>X**zj~g)k{v>Tb>Wb9cc%auus~Ia7bwoj zsPmmutLF%|nz%~oG>w*wN`qB|r2%U*ic!Jn=N-M0_qe7n2j72BfHtPs)PRJd@+;#j z*-lS^r>a_2t2(KV#b~=9H8@-hiL0oyhPbe8Olq6VC|=RQxplG6lyei@y-*!Q2hoKo}w}FQds%lI) z>>iy$RA6ieM=&#FgJz<3GNRE6mPm$(Zj)t{kP}Di)Ed{h(1E?4NaksB2ilNp{yB!| z6f}hdi0!PxT5Z%rHMW+-EL6QQZH59oUrd144M>Q0$g5PoieZXj7nB>MlLsu2mMlgm z$Awl*cn3V;&38cciitji)`R#dDRJ8K%Xv8jPR<*+H|&ACzmlj-tP8jTB&~@@#wuc& zf#`swRW@Fay$G*$Y{p<=DMt)`eHe@PO1u`cpV@0U^x zC?lV#2nnr4lj4w_sZ%v5iWWF;i_wflg%eG3TM37fm0y|%p^T^ITs{moNDwkeI@yG3 zr7y`!sK%sv!iLeZUtEg>ML3!3#`I!R_ckOmot2FB*1JqwD^smF_mNSqptRwombl&NmD~kw$40%QSodlqyk}Xm?1Jv#kq?SR&)Zh1LG>LCiZ< z!Yb%1OX2?>a9Jx?=wM4RJ}IY~V#X#LC438_Q7*j?;FFHepsFvi*ZNR`wGP#;G*eN* znaohmpJlVM6i1L-m0DUUdQ%<;hc;F*8)cPpLO_K)ZxocRB5x+1#O%}&Ovp+<24rvP zw-Q2@1deG4S%M%b2;5FKX4QsPWXuxl=UsofUQ;!^IT-JSgGFBt$FQ|J=$P(&S6W^O(CxNqt?IiCD zM@j#sltK7fk|WlLP2eEV7K>46W+XyFo3C8#1^8w)8pFFfj61?QNHT`IpH2b6g745U zmS>k8R>SrrX+~#qRGH7hN$e5(yAi`XRVhC;PpurOICLVGCE{RJQ`uFxA-Bp3gj9?<1 z)U*QqsD5b%yU^bJHcd95G6CJ5bT7qo=NkPr#iO|4c*1BdCYsu`s#1?Y0?aw#5gM4( zPbM7q5V8|qUHUACBQ@D=woToFIG+vQj2fkA(MZa>|Mi>q;v7PBwaqvKWt`lK9+`GP zZ5@sK*Gs2Km`Drt=pF6o6sme$-)Wp04F*NL+=)W7T=c3~MQTlgi(oIahF!FcP^{GI zsRNv_WD@zjnXE*N*M-7pNvmc9VdbS#TTQtVCcl-RH;)q!mr3Oz!mG=I4miA|%co&^ zpweT8qm3GM&3tS0^>Rqk1?Mi4hCyqA$EIM-?_zRV7wV*ej$~j(G@y7p*0asL!`c+z zzj3A1=@YF=PH`aA5VrFpXcpOkE(B^*z2X{MR#{iV$_mQu}5 zGM%2BAlfjrS)ks4ew%0>T_ZLfZ>C9LAip=p5u27ZBjEK$NKK)yB#OS0J26X?dNH`w z>Qm~>e;cm5jI0{&VonqZ^{%bML9Ge=ckrK!7>A{;s>#x3Dp%M{h6itZ_94Q9@SNIhQBi0hDd`=vViIi605-sQ}?MB2%hG zyn%;hl(t-3Sv1-@>VUqoN#-&Xj)%9MJs5@w&D*LVX&hIWVEm@bSfhWnU_)a7#aeCk z8s-U^0rFXpvLNw%`$E#BVN`Dl1qzsGr6aEc=Z8cIGxtEc2OeJ4h(yl)U{dE{u~UlB zOMo-AZxwnqm|YZ;(|}a3Do|Ev71MyDzDGzAmK-(zs^msAy6Kv9GMlhETk2k>p)zp6}iP~UEGf934~|$Dv>wJ53&DBV%9HJXi+p@W&NRI zQijn)?%pFLHqfC8=%0kJzb)73-nOub)T?jtz;dc*Q#B6y7LGCldK?SD6*Atqbpv{8~=sp*$Q z%xR^!$~sMpw(p1th2d$BHjAfqYV7_piqjUcgX40GOH+Vv55nXH4_5Ege89U&$D-dS zb&B0#VcFI&Km7tj={ZFOZO~0GdsGToh4rpXJlEzwl}dlUhi@ zd$R4|j=8O4@bkoRrUPM%3hmScHw((ow&2cI34(VOwS_{L5_fLP3<*q~AuH)_vUI(A z#w&g-=p-EEhi2EAHm+P%A%RPV0SwY?QXg(1cJ{+aBk>A?UdX0Ga(2>9J{5j{(XN`; zVSro1J5=bM3L2{hFU&fsv56wK&(g9^ol8Ya`Aj7??{;`uB5>kV~Yk1x(W zcy13D%VapiTH00I?i`1Rdf4Jv-cTS;VG1_%Uf*4Et2Q^S8jLd#WDTdD>{c(4A7U^Z zQ?i9h0fe*W@>TDb$lNQ(SD@;)&;PN0oOGEp?E1V!LittlQ8Evvwc>krVc7?I zHT56s2P&rl%Q-%?Tv@-;6lq046(#hzVzN|7$6u1WR)he%4p>x;yAg4!A!!VJ&DM#9 z{bsWUrJlG%)lHk z)!8L}DX%!P7Q#Op+?q+wL-HHP=_{tIluF7KZcLRM?hDETW(h4|MT^1moyY01-WQDW z?lB66%*S)eIZnU5AC??8woC+E^8QZA|NDjpu{EGiZE)DN?Tw-Z#6VN+yB_W(8NR6n zEVM)t{?1rDWTcC(=!!L>Gu#DvwSAmu1KLGSf5?FM#wz4t%-bWYI-{`$MpsszFg=oE zG%svg;3#>gzuaWXJNlJY1LQa@yg@S5%a74VFdbGO_qe&KYEMr7XXe4q$mzBLoLu@| zLnc6v2AaUw9+R7Xr5clf72fKmX=pue3Ja;Cu`J$C# z4u>e+&lmf97dXv_Ofpo@GUdlL2sLXWkAeWhoZsg;08G~tPh4#-LJXU_>`w(`Coh%c zB-0AMn93p_4Evpkp|o?GlO1!RZ^B5Rg`9>tA0Ae~xI$=1(sa_JGh-0<`kt=@52j4R zg28hl-nPN)Er*qM7P}MOm|L+ln5vTkdkRq#OlQxpFpIMI54G9w&OGc zt>#(kI;mx$vRR7zvy|IsJL+SLd3sb7@!M&uo?q-&%nH`jl}m<8_YJ$V2l1&99h3e1 zOLY!qML8=HgvMN_prxVtUIq<3PjXoH&5ZM2)*m%s!Gw`%>T!j7x-Yey2HXn!NQ;Bn zgEZHxoXL-jhRh;35BW)9^G_nC`L@4AG!s+n=LoyW$C_~UZ(i5kmoh)E7d%OZPH9@w zgISlnNCmJzq$EY8cF*>_z?8}z1A+(awp78gE^!z?kQ($tijBkL1M?Z>|Cs z_xMV%_3`bY%F~0vtFY*b3#^{e=0+eYrUqm;Urs&X5@{jKp*cwR%8fYQDfz#Sutsu+ z)=+@>KKWm}Cp($D7yGP*B!BUR!}0Q4b(_tPxWjT<&!NW2{wCS&#~#e2Aq6Bn3&SNG zS$8Aay^<$?TXj9~!eW}!ti4cTXKDEmCVmlq;An)GT8~PYMwSgDkR)GT=5U3S{K#eb zJ;GbSH3S?THqnOAg-qJ5M`8V?- zD4BEPWV!w7Q)abc`En8btULwBTR{G_%gFUPM^M$LvixQs)h7j%*ZT8a3FplRL~~Ho zId)}Q!XJCj z4Z#y1O{JV#I%IjH>o(DD0bot3k{mu?w=Y)VfBq3fiQ9VXyBbjEVz0E6Ze8SOTVDZt zCnZRikEDiUOG0Ng5X77_Lci-XO1|$Fyhd@sSgHlEzT#CQs{BFDT4{l*<~xxQUH;xf zwqD*xfO~AXsfaKuZDQ!Gvvgy=^nC$bMF1%YP(16_G)IvZTdJB9Bn-(*RUjQ#n9yyS zqYcu3aCV~m&Dp-yN}0*_vOu&|9pqLTmLq}%aB{5}njFU9u>c9xrCKdSZ2E*ah0HUn zr>0c(zE_6GaIPu+vTeJY@hOv@vUQapxtk6CbV^a{3JUn7imx5pukA`_)+14rLfek4 zIb{fzb2`tbrzuhaOmjQcIxxS8DVH2(QJBH0Cwmi*_LnaxDQ(v#NDhGWDSa&TQ?nEB zEoP#&r&$8qcr1?0Ts@)sepKeIxD?oykfg=AI++L{gcg8Ls~2xuQ5B;=j3nr_lp-A8 z)tlb_yvpL95rs7WweP1FT_{h3c#|>kjn_=`fweFJQ0g#)GTC_G252R?we6^Q4DLS>!c3~7jGmN?K&{xmA za$ZAIGlf(yjM zr$dMrSUw<`l6fmBD$9|y@5D9V1cp_8p7CD_vRROLu#X6A8aUjov3t1hHh4$)z0J^^ zVL+(ucHKIAjB}`Q*KSKBdZCoOG+);(kJpKvD;=B{`Z)#S_+iyE1+i)GO<)mQlgN&r{u;V;I16o~XOAYkaMyzOTSH8dHvP;K0^CnHH z3$4dxB4hjuI5mK1kbth^e(I+_$&P5eb4rgqvtv*-mm|FTP~)MwtzwsBd#7HMg`X%*`?6Tf&U z>2yCYlcKmlb}Fv6QH1r-68E#ra(f_$o@)N-UCiCY>AoMJ`gPv!MQFUQbEbQ-vsW;r zN>>%m+xM&c$zb|Z<0J|aD&cc|A8b0(nu)X1=Ty0kueYxAZX4ul;$LEqcJak(S$?N^ zzuw&Ap)!+Ff+7SGV6)!vWe$&TdDF+gLV7-d`EFt6d!|=7mr_6Yvf~_J_MjE<>33+> z;aJt~f|yWCq}}LAGH5w=y6wbP06fMB?~hk7M1`Y*n9nWI*_AE3) z(e(=w4n;Ua_9r=DyJ>->vRS!};nnzhQPb0r# zchq{X;)qX*aWiBUzF+!J=>@)1d-a1{l~fSZcmgfEv*uK(TeqBz{Fs;}Rh2ld-zj1# zgn6o6hirq^Xc`G62wnPXxJ5!J0QoMJV3lvLSP}EeC^r7qfa%-sosXId9hh)^)5dBm z_SV-lv>4>NoxB59hDhz?=HT~O$WbA3oxECs8Ri9FB`u(Sa*X)cIV@0JiG^wih8aO{ zW!xFHtPz1Z=ZWIKsew|EZ#6`-<8G(Ri42%d0QlJr^yr<5;=JdQCJSKJ-9Zl*Tm&?e zqmuI4Uijymu!W;smLf;v=GhAND)kitVE!G2Gk2Tngy9&tr#j>WT;YUcPDe7#1@TYG z_8T?&r7ckT+!bLDrd5w(Zdq*Mb?ne4+VsLW!Sd;=19cdFC&ssDBP^`4P!K)viyJ0r zgj1s^nV}+9Z^y8G`bY+r9A>#Q!4GxYOu@^>N%@jsXoI8~SV-s2G#V=TK*)N{v$U2)*QE7E6bFxE(m7b+rK+s+&91$A zA^ZfcLDWg|SP5||idla)TS>>d^LMaO&R(cJPKEQkg3~Fqg9d9o1tA!3sevz=!@a7& zTh$wQiMH^bQosj%fDXqw5t11riHR@Wq3Jn5pEZIn;R9nl991=l;fH*#MGvK-K#pNT zUCs9Nn4z7Y^T<-%QDVqR*CmyBem2F}(GPOip7Jogv zK_Q_5M=oA7^wDw3e&?=@$1}&~I27)w_+(dLc^onNlPqcxtIAtGl~4iUm#R&vi!Xi% zAkCfXA$8#xpv^ezG(|h*g@cU6GGw!?#@>zbPPwO)jocl;A|ULi8My3yXbeI;*%B)+7DviF`q&2QF71(WqbA1qs>fL= z%m_ar+3gD9n%O@2cFnGjD>hc}&Y)Aq8fX2FhbB~osocLTSmy8$^d7hdwa6n?`kqDg z8IBY`+e3@^qr$q6ayno(#lr*GT#&K8e*C3D+fVAuhj-$lQgPs%t?tD@WrsI9U>vpf>g4t^=a zYo(QQrLZ1?tO)eOK4OY6f$S?WRQok#NXl7BeYi72q{xw6Drv$Fnbu){aR~77!Z-=Y zLm45|8%x0&fe|UPEh$8rT;W*NCKKS0_$yLz;$vg(m294hLgRNhAZ0evRs2B|+34x_ zLtwM#T$YN3E%gT=ty+tU0dr@r$jasz*n{cUu+SVFGE@f8H~nVQHwAfhe|94OmesZ5 zTA7c8khmJ{)1UBLiF1y{EU=HS8q=A9UYK%MAAa#Tt0~LQQL44f=i*f>_P`@e*KG17 zGbvJcmLzV9pO&eP_0)jPXJK7^4ZI#94YxoT24dBp3nbK+`}+K7w)NJvqWC3lO{0Sv ztKv5OM*Uq(i6M9@#*L!rSiS;aZAWnK$>Bn^yAP!3B9vXk^8Y?F!_foayJodUXKyFi zl502wA@;h~|G5Kvw#{rczPUDCQMwFfS+RXwL7o)k3x-hBmf0}1@oFq#CGAj;4Mi+k zFmOiwhw7=Kj{crgXE$9@fu1aFhF;KUCRGf;TrF zgaFY8K+iLV=Aa5hk5r+KfTdQEb|`Q8y4&;hgZ{UIm*Gm5WlFegWGJ(+Vg(iXjV7G3 z=WxXoO-+Qn6b`5Mora?bxv#J#4@p5tptaFa`IP z=(zf2^GW%$sHE~AQMqheCdTD%8cT?{R5#_O7bz1>bS_6loDS>NqxM`;&5c(LE&aP= z?0mGUl2NTy$>3~cfD$TxN0}`n8A+AB^O$Uv7FBB_UvARA-@#BjY=q9)yeGh6c@BR3 zU|fFA5I#&cLx~Iz^MISi+$G|cz}2>1t}Q|8b|9Mxr5>lgn)&{U+EtJOJX7PVl6K3Y z$=G_dHGOxGi$wsp(u!Wly7|FYhQy}v`LGN_#qs9+00WrnEe+fi@L@eG;}h7~W9AI= ztA_T7tF=I>Mn;HB(gXo)`HvKHbD^sg*Pc@86ct>^mi_!KW|KT|+r)=JI$<9) ztuoVqk$fj`TqwSzo&7DT(-#jpiPj65NI1`18Y@=_Ox+THnIJ%Yi0k@Y{I?Y2Y<_vR z@AJKcm**I9Oh7J4isBf&XUUl6aFp5=MZ7CeeR>_aX>cT+0|&l0=brS-ZgGo~BRTth zFIr9Mrv-J^QQ2RYM-K(XQ?@o1cxt|P=5SJ0*4aNrm9q!ka;F3(<{4$b8=p62lu>cB zie-lBa_Oz>?@vg$MGOuF?ms%};qUMAVSjjj8cp4NAx@9x^iL5gXd^ZLj}%`nDYTH$ z_ecrnbJi>D!vuaO-7kj==8wP9+ggRLDds_go7eaQVEX%KR2-k>4K+b&DJ$<3(O`iJ zs2DKC7@ONA8y`qG!$ng#RD{GSnP4AjwsCv7?D^QeO=#C9dOvw-aA&U^vB?;aB0M&B zunac?Jgyj6y*qbceuO<_d8D;$GT<3pRE_e!rLnGLP*-HdiAyQb2wthf%0h-|(n({( zkOH+aH{`3H1mf7!EFwy>?PDL4+}G8b@TXc#rgvW2@_tS~itqbn!o39ea8>lzzn{~7 z-u~MVL~KMsyx};tVm^D>03jG-mOXBYfX*7sTKv-S3cutPlD(AN+}gTIV5HWYsAE9{ zXIg$BaC~FCql*T;CY8j^$=ZXL7kkFMEs%%0SBUM20c{1wo%(R|?F5*Tbm3V{{aKeRcC9 zr7FmFI-0f5&}mS4qJ_6ZJt98@$}YJjo#pRN&oil3Qty1#zb@+47b^&#FzuJ5Qb+_$ z^K^S@T8+bDeN%Fnbp(1l)ws{NX#UY5^ zu!qr>HH6><)WvO|%IABgfyA(o#E&vgF0-qU9lU+T+_<=GEk%Z`2PO zr-g6C&o_z*RBb$N{xEMYjvwPOcS_ip+wD%>bUqFwjgm9z8}yu(HXPsV{khw*6#It% zxJ`Y(r{?8@x`OBn)zt=LS>y=3NrfAG4JDFs@t~e{ru6gBsUzIgA z!kH!=^KYGtbUTQ}W*|!(XL=s^@YL{43>3T4QGCfv0KNXH6 zzD`pjLqn~xLN6p8ff&Tv(@6;1z;Ph5#+W?;3fIj=Hnn5AanC}Ui^%k&Qwcygk>}&u zcf?S^1s+RUJbE%#%MaykhTGt<)M9JR&%&UB?x)K*9Rt-0Ln_Y70{hTRYuwVLiQlkp zU$(gE7?v(`g;4X_RkL)4Ws!5|s{zvgR3?3FNq0SM?*1H(1Fj&Co~Q`&*I%OB5u;`@Deax(A00KUja3%rVGh<zKj*^5}v z03^8Y$b3n0YkY0?*_4Kz(EwlNp2*@XjezTM-6P+(!9S#g2q*l_kAFofL=;fNb%e3p z8CiTWQ>B&ji{34D#A|kE%Ry43_r&Glh{EqHo(0G}LqC>?KwW0!KC6ds=WSQ2uS{UP zzK-nrgA27TPpe-siSu~pQHXt6Tc;5=pErzjms_{xhBGpKRbX7MbE7ZPaTYupkhSQ9 zF0+-7o)qz1V0O2W1-|$;#oK^y@b&<{spIKOnp=}l}}aU?Ks!>vy1$VSu?eeFoPkH=19VP?(=zw>tnR9{~& z(=&O<{Vgbtv3kW1S^WKjX$RBXo1BxKq7f<6i zqlU@c=U)=gLk8ekD^7f(_G&p+9`I9yIwROm3|083pmiMN;A}0)PpsrZds%`VEddmf zg3U{o&DoQ9FFdpm7Saq=+>iA$dIWfOPKy(Fp^IiKe8kN=X@Apezh4h$S16g7zL3<< zPi!sUttoxa-%AGn{l^ej4_ohgSgSyowWKoJplV@lxVX8R`?V;ZIcs;F@WhJsbfrr8Zr+tgg&hr^cde*h)*fD(_z| zayFG@ua_x4B_}=jpBz*nVF z((x5RSQ~>RL@}s77t&hkCu*2Mxh!eQ1PMRIV!Q3pK**&#dJdALf7WO9YE*9bP$%Xn z($#)W1PGgsBLWTLQDS&C2wHSv1s8rDq)}Ho*#u~f_-v$KHf*2alM^CesfVGM!Yqww z7y0BhB+N2C&eKMUL>&X+F&8Qw-hi!r%H6c!SFb2vi7x6 znwfQimw$!8tKY;8=vgg&oWs+`9ZSUo8NER#goBDjD>T$}S*yol-ckw18O`|r6;L4O zLpAnACEsE*ge$RyA1mP21>f&0l3Yf{EjQ7`MshfenQa!Qe4LT0s*>uLXsT5^2+44s zc9FyMkQY-L{^;#EbT*RI_2qKk)Gb)iO{qm>O0F}RS+LqHGdU-7q*)QSX1*#h&7nl$ z=hDuBQ`49i=je!kuSTvJz|~g;K1Cu5SY_>&X`a?y9=|yZu50wo@nKH$(1VZZJ_-MI8-9czCsV+Z9Q3XYAavL$#)XR)>s6(5-?F)C| zj>gvkA?7e6nF9~)jzJwjew3O#4j}I$apL~@R@@~=aGn12V7sAKISRe{7s<@fr&bAb z#K0w6ax zOfN4o&}u~R8NsTdQqISmd9n+8*l`~Rx83t(6M#Z;rO;=KTn>80FgL7jmbg$%Mbj`& zP%~45maP?eLpHxs5ta5*_gi;~$foAH(h^{P`<9l&&@(VjilPi4Awih`MC5=ZmEpD` zfqMw3`!WXy+8ZQQ`7rC5Tqrh-6I4rmft6^`h?El2^fxXcGN!U5sZ1=n!!8t{jLF(+u{ykpwG}FG*y=#vLDeD(RK` z3&&uYrF0LhZ~2-m(u?pQ)xV-O+L(RoqclFLM#uL1XWA1RusBq3Z!fwoCp0GgOf z_C4|s#9_NpyB7nYZHltYbim_wjh)zbTtLqAHG99mp2G@Tbg|}0$X0IDgv;!TF^Z47wzfA^36nfRB_S(Z>xwt4u&6%aW>wlizYXixvTHT zwMkgPBJa_Uzwo zZ)jf+R(fclW$46z;+^AN75FRkJN0AZD~Gb-Av!^X9;7aE%j`mZybeHnqi`P*ajK;; zgQUB;G3s;Kc)@@O?=`BA`~4@o%C4)BO0-7`?NXURRG>+I30A;Qmq+#an`DEUX|tZZ zmL*~(4V~$;g9_;@%4m8N`a&4@l2%@8p>E<9+@nE=`9-pVQl-jDE-L7q)80d?2_YQh|^>BBlKRuuOz010vSa|Qh$T>pOc2Qi9?O8WG z@r!iAhCHaErqoZtC~%m~zb`o^6WLMt5$GJBhYd`M_n^r&SD@rHDV?~9nSDh#@;+%x z{n!lk$w9Q{xA2%@|es}c;)jOax4LjDqo zRvMY_2Czk!ur%&qYub&gl+1?nzl1d5l&x{WmRCIXiquRt+!JyIykxbG&j>Wd5U4vN zapS~G`2RxA!aBwVoP{2q%oC#|U{yu~xB zC~Nk4kMj)C+>tN0=RTAcEcEp4o80!w^`u8@BQ`gPl)C*5$SmM%LFk*-sRj6uK%UY3 zlo|hh{+VF^T^wtvO67%q)r%LvEX;fmdvzh>1h5j#)1|cf!Lq36G}C)o%BxI?qh^F=^#;R=P;krl;6 z#g@yBn@lrn{noHX&!k~F4h3staSs(b=oevw z%qcN)r5XV+_#CBAQgy#<3Y zMW1tMl>ORK9&Ot9q=wP51i`blKKq-#DhX9I_9> zCD+Xbb@$g!f5ypN=mgO&OR2701@BH1w&F_C(CI82uRxnEzY>%Q;+!>sUfBi_ z6@}xU3PkP01n%jC&1XUNW%+~=jWc5{{9Kg3hwsF>+=Jb}9>*LS%M~erXqI4ZEnmc* zt;F)0SN6L0E|Y5ZYAP-E#_q*#Nr+cBk9tQ^&bf{TFgiwVJNoQdU7#&i|Q0HmPHSR`9h{ z!vh?v;4;bvYml!}m@OHPIW+HaZbCKp+`FCQL7gee`Cf)I&hm=VgZep^4;kHA3u}I_ zOX8wMuQLOU>tKsoa(dwx!{yYl;^SbaYQKteS_Y3?<^{Js=nYF$lox|;y`r3p=i2RT zHI(y|n&Dc!Udf*$9BmY&ESX0~cy@TcB@2 z|FP;|U9_!>+0~k!E~bb8tb_GW{xaFsva~?P=^X5OWS1>eozrWM%BjoQ>fUtsAtsBs z+WiyY`FYq!Q%(pICkBn$!HliHOuwIz?K`v}ulg>lUbn2FL`Joa$L?86xHNTI;6D5q z^*@Z2Y%|@8U~ju^b!qH28C<#4J%b*!F7aQTMhq@Nfg-f$N8FP#rQi8I!>ZmrQD})- z=4lvG)>h1bIEN=PxL2Nk*>`@~^^$6zYKUF%F6E(P;o~WDXtf_@Eh@@N+fYZ;GWfG$FX%WX(qaxW#C8(T1npGJv!X`eL2G^-qu-*J}rl9t=DaQjyAc9ORtpea$z*e(*gdWEY?IC?8exp z{0lmNNKHwo7bJ?P1&o_1Xd)&9{P)#Keu63^%q*ljNGl5*fV{*-DJexMZadT3{-YH_ z)fY5#>){btn@?aNkF82Z?IeZy(9=I>>)OA)#r&0+o`QT*9IkSh)18kNc?YYccz06; zWQQMWK{E#bD&j+aXNc6-wCsjOMP z%UD&Z8~kObiSu# zrQkpf?;7&AM_gz*6iccP+Xbk6m(>{3{>`}*W2-Xj^%AE*apjP)Vn`+@#q z6+rpKNN_G0#iV5qnd}Vc}%QVTD z&l+|GZsuobIObvk*UOQT_cnor#+$J%X%kB}4t#*)#L7ahs&@0AfGh zwagh;R+4uup{26FDk*f%-OJFO=|ZyoPHTuX32Kh$awr%0Ydf?^ z_S#x}OJlhN4Okk$E$N&*I=s@2ChSQ315Ts8FCn07BNVs%t@R&sO>X$$?~01Q3+AVf z&e0uX9pMgyK=_aCf2ScB8~vyHzojSqTN?ee=KoeZSpTQ`zd`!{tv2uf|I~K>ss3+F i*MF;>C;uPy6X8`&5fkg585mFd)zdMOg+5x>Vwbs+yizTZ6@u#0Ug109cZGtoOI? z@ta8G^ClDGO^RwOS{22-nF)Bj+|P;dIR3>?=Oxv%>yl?*{G;96o?l(glvIi&g)e7c zylI#1Cf!}#%22)d93*Hv--B(KAFA0<)3-~^86p| z$?`**f8@r8zTN$h;jg|*w|8yvq2+VSpWgG_@#kNkU;OlX^_%(SZMkXf^5MsN{`$tp zzTNk+z+e9^-Tt)sOCo=K=dnQ_z5Myj?fh?ew*0aD@A=D{^z-@Uo7?5jHR!e%@9y?| z^2OD=ckS|S^-1*PH|2_UKgmxYKBb3GslA_451&F`epBBxjMv@mrse3(@6yei^UKZ0 zLubCYx%(e=)tN7@-rwB)nr`aDj~)7Q<5S=6`P9&r-=@6z8-||Tern~t^|bkz?jNho z$LjvE-h8a@ADhj`=KitWd~EL@yUoY${;}VD?C&3k&Bx*Xaa=uKEUeph_x^hEq1(Gu ze!73LTw`mK@r%1(uiNa&k5|_-elmM~KOw)|`NI9=U;o0@Ma6rIH}-sEF=KbXFg*Wq z-7Cnsq&+`?7yA9z%hfe}#m=|1-T7KQZx^lH-JF*ht$qEbZGM^Nmhj+Rx@$M*=>os* z2g9Fe*SF^vSC?luGc&h%eQ|Yrdv=#D;m_{)H>#aq`24ro`Fyi~o?qSFUA=o`7d_t^ zmCYYAGBD4##(w#wy~Dp~&sjgeJimQAd-B(-%cZZxo2#xqD_57dcQ@%AzGQZJwfMyS zG`&XbxVt)ghbEnsite9Jbrh(Vd?Gg!#UW((le#rE@h4ukIa8+NC) zzx3;?i(lWsFt%c2fbib=yX#?fzrQ@cyWM#gmM#!Wzrxzyc=!7Dvb{mi{bPF^u5XjM zdVhEQ{%-pX^c*@39mlhK^M~QBf53>HpM~e=m;b;RU?$#So^8E<`%}9sZ?SyP?>*)1 zci(3$xN^rM(r>Qb-SYa~_`M4|`_&Dc+*)tHJHNRBSlgOkH|G}@w{Ni?W^0qAq>Hv% zPPFxt>p5l+aNn=9C;#iBpevs~SuOlUAi8XDnzJVhe8(>kQ~%oT#1}6}yh@e6T)m?< z-cf7sAhQ1b#f#Nzgw%ie>&w+^d;iTp?|c*C^#9Ux{rA-qMAG+{a8{SFyjAhV--hq# zweN(zpKxoRi1)v5@lITOhvf1twQUN~##`&Zk(N#WbKLF}()Vxupm%@`I@1g5< zriI$+I=y4hPS5F`3A@vAJ7c8$(uSS+pmw@z`1bn9sJQ(RyKSbHdk2Qr2Tw2i@8wRf z>t+AF+?kYm*?li}`i4o;;;o$#*2}f{((bHcw;aZ>-IIFRO@H3~fnnpV^?9M=##`(2 z!pM!c)|Z5#jknf2%BYRE)+e{o8>^QF6Zy@41?+MI*aL>O7=^2wvsdSrudfQc_nDeo z^X}c(s|WOp3}>$vkI()N@BwOlarXMVm;5FAOY3(}HUaQGOu7S(e|J5T#`}zJ5Rs}B zCiEndRY4TxgYDMIV(k4l5>KGHc9`r|&0_!^i%ZZ|8;IxZ$?f}_o=Ow%uHIi__RIzZ z_vY>0>~=7gU!PxpHDjBT z>xGfC2P4;Po1x9{R#M?QTCB=Y1wo(<6U4xspHrj~WEN(7s=Fvd3#eet69stUCpeaufDhUM;NcKfd0 zzwFm%L*!pUhbMmqvEj)!fBxGh65enjgX)9#k%BBtRNx99)PgF##Dfxti> z;`jY*YDwkdBf-!Rgh?`rOtuM|OspxIoI~7z@=I$MXyyqJ(p@@B@9X*1(&T*>GvA)Z zUe$B4#fe&q5k?uT1N<$rB9%$E+-lit?_!(azy6;ezWMf>AHMnPi*Np8X)i1er!kgP zC9KFOOoW{#Hgv9OShQ7{5@ZkEnQdbkwGWj2=58in!%X?mTdv$SMzuYr(9xTjK8Rw`7^j;CBQ5VUFDnfBGL{|a<1dJHB zFoon?s}osQoYkSZBtmZv{WmNxYC`&4txsJ$la9A;{mB&8r3|-gO%vU8ES;#U$Pyjs zZPAKy%}J}n)`dBu$VS(hx%HD6r(`W;f)~w4OgKqdV8U5ZW$)hF(t7wn*MTo?&N|84 zB~#cYF_KucO(>rUldedSd&nYc6{W|lYxb~hV7#0CX6H6eVwyF|x?)Hq=bA9xD3N+B z0^uIR*_#b1A2iL+i8f4|ZoVnkW3tu=RUFo8$7;wG&c%C@s$!kkc6h$+EQaZ9iz?>U zd>4)aJe|dY$VpjYb@Y^^?-cZiZDR{{=*daE2#hEt8&N~%bqcH$2?HxlmWbI(`#Lt= z7M2XNYu&VA{!L+;_Muo{1Ch~7Sfy|#K_jjuZ9;5RtatvPX>zfJ`C!_xXs56&6!^BF zwZP2E2v`VRNof))hL%%TR`#)lFc>m8vNgj7S2u~*?bTFYw8&X?%(Uvzc^QGhWvZ>_ zsB%4I*jg~1cnxGKJw~{-9u?f0<5(JFL&z^Wn$#$JIkrCaoQ5?J?oC_09 z(Uy6gQU_5Gh)@7(HeziW@Ui5f?BJ;TteDmzK%7({>05%1vNg ziGXG)37wI~Vc?#&XXBIJCoYwCl$tf(yeOi?#Fi27#k{-iDE~>Yk1B?Qnk$ zbA2n2^OE>z(~7YKJnhh1?E4)eXRZk6;48+&Y>gR(Wt$6eiL}|aiI!&0*6I*~s6}Bo z6Im=xFcle6)6wD`Kh8B*cC1-8kzqj5vMY2|DY6NZO9e0sN%Wwr!80x07|dQ6wl>ey z>cL0bWhEgbAy#^oc^fiW5j+BUma24>QmQo0<%SMhtxL6f@bU9MQZ5opGAo|-@b@6T zQ3O2&XN6qHCoT48#FRn zKiVpcT2wrIGI#LtHrjs zDiQ-$OEs95tnc>VN?hBmpb4#tMRud$*DVKYuQS*h9DWDbNv1YQ{(*g5r#gE=Px#Ds z#`#Xe!66o+vkdA(TpV^T4hH9OI2v3eA}%vnSGlvxoY;p3jAT;`C+YqDqd*zR*M!5a&w@!k8RLy z=E$A~sSh+rB9L@ntB@sEKAWzHd9@+t=^#sxM(VuLAiaNx^gPf1Us2U?_@ z0^aw)s-$_dhcHBhzo^@$I#t+=Nd?gPyz*-_!mb19YOP0k=fjl5`d*Cm(W?B;s$dk13*2XJ68{D)S( zYs%Raz~|VFbqluMQWLr;-DB`2hRrn+_6^1qZh2qE*PaH24>SmaqI~F>UBw{W^nzh2 z%?RC`j5SG>)C02O6y^&~Q~B3Fy?FN0o#~g~egE>Czns1N(+~ggbUeFkuIrGvd;9b; zX=d}EZ!VrJ8+_IKE!zCWFTei#kQ1})5XgcULL zE~@m+RS)3k!b92>K<->cgxfheJ!JhX-nq|(TN*f|l(BiUFWA1>!a&Ya``_==4VueS zEnU8Of01s!oG~uBYd7!CFVn?Wvp>Chaptw9+2z&nWcKqpa7nwkx_rZVZ8M&+9lzo& zns+-i@BH%3eD=ljtNQC~n5wr|?{7-`ntzgb{hjbZ;Y)AY%&V_v%Y?e0fBt!XU9!-1 zNT~by>ZV@bwA0hm3D z^t*?=yM?(!3Y>TtI`MG5Z!<0LX4zk>#+)$2&Xnv+0ilbW17RenN;DGeDOjz5b!G7W z_zb%r)-voC1oRZyb#TX^=MLdfg~sHV)2n(AM4{Q7Kti?NP5@iat}{RRhpf6SDMk~uGxGrhjmW>B8>Kr;}t*m}Ik&z(Sc*>xiLI12?m=AsS;2 z*HJ>fvU0DH)7fZ?b+wTeWR%95LXgUtqOiTTCcVRd%J>d+umj0o?UFn^nBth*WtH*& zAUv2WZ$YE~GTc(J%H>MnG;#F!aWG}gG%>Ml66@J9Otdk1VX7yQOO!&jY`oWSPHlV( zdSACqW?69X^OduY&5&|xqewYt&{~_S2~z8F(6XIQo378mc^pL}a+Q3dW<2O=k0QW# z2k+p@^Jo$Z4W|kZXMGPZKYqugsoawZFePPRGgU>Vj?wHsXN)4~+V~O7Y~3a?ol%)A zPzxuV^b7<{8uoY$WQ?-fq9iYXu`%54sEJH+#j9Fc5fWIOkM?+%7k<}J3SFmQ0*yI} zoo<@Qr0U_kIw$ifAR!X~{{pAE#%yD#ofK8McLV3@{bgOFJP-Nb_e4SA|K=E~!0`9} zN1fd)?pVS_%b*v34)MA%s$j8tU5-jbkCkDRDx8U31^9XB=wgyv+(+$e)2C_Do_lEr z+Xgscu+Rg~WzEO^SZc+0p&Yf;;ZQS$qiE1Nk600(9YXPm+0Bb|oyz%=-n=-&{F7%| zDZ5T@wEjiS{UhiNQB2uN1nACz#uq12#3b(lEID-3W7aErLvBt!&QzGg&u(&?2lE#9 zWndg@W+?l)kQ?{8k(=_+VV{KESgT1T_3EwwtH-Mlal>_*M? ziO7w!x$+ej(VK?@)&RJ%NfH%*n(;uq{@~RirR3$(%q=S?BR7G(Rmza)mhau@n->&IDq`%-Lt+WEQGqL(~C?JT^|K zDF9OrvsB9*S}8gb9mshzVb~RTI0{?7o&pBaA>?9L0wd=rfEWB_WNB*JQA9Vf^4PGmQt0Q6*om7c3S z9^3!T-6PTYa7ovmP#Zut>eQ`BwG-B?iXvN$zACZ%61vny9s>B!{wERnAH=hle}1y` zNl~sJlur-%rS{~Mv!W$%WfO7&hDIEe0k3OKp_H8ig2RA+ZXXT#k2KYjaabpq41DmC z67YlVoY~f>w9vt{cMgZPFK6&y>vzbdyMHnTh&BPi(7GmqcK}|_AUcxPLIZIDrkZ9B z?Z7Wg(e6aXrGSN`CEpZeC&T9#2;^QUsa&fz%A&_Mx_6C3@LoQc!nUYV>qR+%sK=LQ zIkznNDtc%jbgJcK?Lpgi`fajqb0Otw5P~W5MlMkokq5Q|6{ZAV?GId^b^Cgarn+*h zYb7dx_`Nzth#t%+fCvN6c9l#ESlEY5qxFPcci)Lq7*=zQQSmHme1W`b5D*hA-&X3$ zB&D+--TZzqWOFnpvP?P))@DILQjVNK&$nj*{hNXJXaS4Y9k|wL89J?9Y{6^(dm7Rv z9Wa%Vf}&%UA_?b);4cscyNq3u8(*GVmOZ?j!Yic(8zDahpe zILTdh&`EkMTc2%6QIuw28Nsp;O&1-(0N%rU7spP0wk?~q$BOOUwHSr!G+b*ZkxI0} zn#P$om~=Ecl6-i$LEZRQ4}oin>r=XPt5p}ua<(&hmMBmjkslzlgbJ!Ox|1>(rsnIn z2Oli`c*9yNScOpl_$9szT|{Di2gg?=WcDG-vF)+7{#kl5J6VTW$yY{5p@&T7q;&+( zf)10_Q*Am^7+sTVW~|vYjae>9TiDU}&XBD|PLkpDSQU#;E_Wrzt_`lNSRck|%u0k| z>Ts)BIe2}oJ=UYD!bMNn`Rd&2GW($fahh*tQ?igwJch51^3hfLAtUQ`j(UE1{r+y< z3sdZ|1~0U$S{QFDLTb(ep&htu(u~pc*1vzh$+fS3 zZZ~IFi?;mx)nz-o*EgIE!SQXod6zEE^38b#Jxzn&n^_I{)%D$=)%(RtY8XF?=MBD$ zmv66bhEZA}auD8k=PdQQlpn^kH#cXjEBo+(KX!M!_HxEFn#s)2J^0V+uHNcx&eicB zd|QmYfB)0>yubeM<>W^5z*jG3zqZ?lwymu*Yh~w~xjhu#dG=C7D_MolmlCo3o8Fwz z`_t(sna>-0Mr+gHPkW}p`Q`emtc`+`ywhUXSyVeD0E)`jqDgu3^0-sv-OY{F#>;X~ z;6KL^a$u|_5q@k`h(^F<$u$gnt3D-1RynuYjnQUqjhT^|yCtmu=MnNB;|RGsTMGpx zR7tFhksBw(R7N2#f?LH_^dpXt-6uFgPCYwKSZX~0QGzA#tyUX_M2PJj>)gj3fy7UJ zgdDT#m3OW~<-^VnTo)x4k#n$*k~dO*K1awB3mP20imVx|7Y(zMcEWYv9QbPLb;sD> z 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


_GCsn9t4PP*$8up<5NazaB;GfDO^^F9~k0D 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-06-30_185854.zip b/squeow_hw/squeow-backups/squeow-2023-06-30_185854.zip new file mode 100644 index 0000000000000000000000000000000000000000..497604b7e0ff2c48e6f1e66793b4eaf92aab29fc GIT binary patch literal 76310 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 z z{o#Y!lN})k%OYo>J6*Ci3AK#j?p8>Rcu3um9v4nI?GbWdN{ASYr5xA=1(w>&TBue) zG@|S1y5HjnIeBS(>{^u2B2WWJV^*!Qnv3?j)|TVgY&+=@a#m!DLVtN%SOEmkJSvq$ zvpQ$xG3mkqxyh3qAy=8DbWICAQ2uQBthQL8LaT5tm|%zYR!??>jH&GcoUVwSJu$`< z1K6EN8eybiEp$Cj6i;=8tX+^G)o@>q9T`iq<*KsqjxYL0o_S;XU8g%jZd!L`yW&gp zta!sxgdne?Cxh^!fd{(X%UwU`BV<>kNiii6ih*-UzJR|N;G3kS2U1XVi@*EoriEDZqQ;gWPx3Cz+c8i{HucQyKIcg z)Hqk}5I1=J<9Ay93w+FsW{nUuovzW?Q{SRH z&QM=tvMwayd1V>P*C;#VA>X~vEhxURe~2OIxueD3%eb|CqNmYo#`10rbX>S<`Ho+M zpXWr9stt%3`Gi?8u2%bC%Dr)B9+jQYx{?(LAJ8q!yfe$rB1Lb6&NbnME}$_7t=s9j z$xQRfCE^@%RTAc41+I*#7Ev(woGZP?@q|P+V*jYRiA3MK>i}s^*wFYYEMINOF^isC z4M4t{##L(viCflTZ_ zsHEh()WQ~WoJWxPGNcrkVVNYDvKm#?-Cm&6u1_}he* z`W7gUUhZC5vfgKtnWm$+34B--F6Lu8tDP23-Ghr|by!w)J80UrWm6gELRQuTg!Vyk zD@TA1avT8=)`3At^#gHzFl=i$r?RZ66jA~AvNiH8;J_7UQs)IwNR?1Yj;7J*xnA_s z$})XF^CnpY=oCyUK7}UE9i_m^;1)xgrE(Q(vmEF&y?+f%WSfUO3!Fxl4YP^{Z=0P< zh*hvHs8D4&P*yi@I1tj4li->sF^({5l9{JSA%q0{f__I$O3qo|73yl%?Y& z6%TUHA{JN!sd5InF~wC(#59(EC-+RV;lU&ukxl2~7{(gDFBMD>!S^a;j9vDGkuIYt zD;suAYgVP)3ujI`V!014rIlrh;D7)@y~Wh~m@kt%gE*O0Ks>5<#3WgVo9DHOP-|wP zcRqV@8Ql69t0px{W&HYp@R$^r1uU6$MG53C%WP})Kt$t(H1zHmPB!IRug1m#b0n`t z9fo5`R+i2t!|xZa*ml6MH7_x-{|dHX95d(j44G{nc+AVpbp=|CRY`c-1D0(YHkn25S52i#qexVqW`^tUMVQLWS7)+Rxs>LZ zSzB;yS~O;og_kl_^v1xt5+BuZB^jwrj}>8Zv?9bd7@HQ0xx_@56BEf=&Nj`6m6i+G zscda)v5YFbZ$Yt1k(kv=QY<6@x&o(#S&=zIq?bU1N!N87i$dE#Y*HNNROu#A5;~PZ z5S%4Yv=WiJt<77P?AU_b=0_9q5M`)0N=;P5TEE#DPR!+7#bCV3R}B|-$f}bV<-1Nz zC-{i!6O*IH3PfEyk#5oA}buRvz>4aDsEE9spPo3a#(MCJ!hZfq#Qtx|(ay zef(satf;M$U`9!WQSLacr~dn&oVts;7L^%E?ZG z6c@~+!fHq@@ZAS4OJS00e21PJ!3bC zNz%kx0zA33T<={f zWJ@@1GP0L7If4i zwV0}74zV@BG?pTE;ue3n?!q&7REt$p6an^yQl78BXa^d{S|q9^7OY4yZ{6qG53~@D zPTS%S7iM_okDJrAhlJTHYL6`F#M!03bK#YOLDt!>srxQkyccSny1~cD>_0yeTh`Po zw>T-jPoNN$lA#1I#+i@NORAfN9B41pI`yO;xy|?Y*RP*_h%LCryIG!uv>b>!x6tc| z7KV_6kHz_|7Vd>sr)}RMI`qL7N-wM7I-n)9z-;3J-z|9|Q&-ssBJH+XxED*EI`oW> z;fEU7Z8L_2kSjt9$JU{?B4~Gx)V+_=ZqWhSi=9r5B|e7J#?{OmH9XQ?s~|DbYV$UM+KZe{zGGwLMw8v%CLhQ5yfu7dQi&l0*);3; zB2#0@m(oiH#>kr*d}=RrI`O8Qp^XObbzF2D;d9+b$449RQ;Ca&14B7bKfnn|jX-^i z+idV&8*bl-FkgS$FaUdK19VA|C7pKxxsKsofg^{?PBvPxvf#&kF8GIU^06Hv)Z?ypC329 zhyA%gN@PAJHeF_sGN-!)-Ky%z)~yO}YA@zuVsP4~+x<=V`2811_j$GF$4z%Csi^7*R0532cq&}l$O-9G4HTnG zX)AE;-^Mz9+x`Bw?{ja@kK68O&U!LMCkK6B1#rsyA;#*>TJRh)%*9fPTXMi(BRQs+ULj7jZn18 z8ga{MM&As)lT2l3KOk!Kb*qN0-oK@F@(}jh$+DHsQma~Y$z{B~EQ@m4R#l}U)^I3~ z(|h@E-@aO1kKA`9@prl*`TF~>zkB`tE5Wxlf6)tT><2DL8s}VLf%|B9CxJH+vW`;Z z(pm)NEDqzp_yz~BIG2D=TF+y&J3_nQtAA;jBd;znzUO839c%2)UcXBh7qjmd>PfSE zTW4Q<_xj7(|HJ0~zvze779VCo-usW7U%r{WzHa5bpO@hdXb^3;=3rB0H=Xt{Z5omkkc`5jP-dO&rCYPJvf?mLRiHaA|nSc(kc<{5>^z^mtdjL@Tjf0($$2KQuxKnE@02d|0ps?J zEzR{reWywz6D8Lr!KyY~Lpz{11*->pBa<#^^cvBwdFxN6u&!XTxu&Y9#eyx`m_$?- zj#FlEXBK)X2Xt>oC*D+@N67`7iib;Q`Td;v^0n%sE9(lDwy~qN`^NijD&sy{i^Pqt{RbR;xt<9{IEj^G(NEu7AMj;6theEY&G{>BF zjhe=$-~;eyNrDm!M@o&@=`{?K(itBk-&i|f)7J1!W0NIgDraB0pul(#-bL;$ik_U+ zuEuKf)&bkLhUri=fi}f#VZwuU;KxhZe)xE_J6LNx*Fs`Jc@{ekrc|LlFo_NZO13?3?m_Hp zi~RV8>};WprO*7^^MehFv0;|;9(m*%tif}|dGZ3C(?DTcws~`_*z9f46l3$@o&VP_ z{&KJ}SqB?@&j3Y{i!QT>b!U+&Q}~276t}vnxRHpv(U=LA%ZGRQUT>v_j2_J?85`#o zt4R~JDD0hYd(J3c{N-Oa4;`=G-)*fS)@_l!U=3Mf z8Nj-TNuHbyEe8osus4}@y-AbIxI)jffYO+RkqN|QwTtJwo^SNI3Gw8LeN$rIk~Sn6RZ`bHd;e+Z*%0~=6FtV z%YeCvo{5X~v4|%yoGm~qIc4ov$nB`D;Md=;c7pfqz5b_=|F%X&$G*k!r6Q9g$X*12 zaUQg}rJCHj{I|l0J8l12Li!J=|D9s%Df%p`kBJ5IfQ^$a!uB3~?O=kbK0^Q7egge( zQmr_aB&@CgG6KMhR8$t=jft;SH1!$ie|w)uS{CYHf!9P949IHXQlQo=fss6VQ~S|7 z+Q;gD!z+edP2+1htYibfA7ZwmHaL7$yLEb}{N3-O|6O}lIq^=c0mC$rRf;MclnS={ zR=iB(+A*I-|62zxc8B;9HCx!S6R@%gt($kIdZk7$$)8yNn*wirg8IhFnm|MVzut4r zD9e%+HWeD(SUIi!w^6}?kF(ZC=Cc5Bjz|V`FoZ&$wDopOujQor-yr}7RW4oWHP1HV z1m6b`@QcX=lLL+FY@byB8~m%95S^gHO71!jCIx{N?17h)x8~5<&Z+djDW_mHAC@*g zbay>qs>vvnQ3>nT+d8h)bwd4bAFWoVfL|0AUE`Z+0nS-y6KZI_`&h?D@pSs%>3+37{Z8fmU2vGFicU8Kk|8esy8# zkEs9sL%Th{T~eAK&Sa4GOi5Dflt#&4Kr0_bX?&7om2lSaxg@Z|AbO=VrhHAHgKb?G z+|E^;X)X!}#~rrPUX}(9oQBPteZls9E}TYvZk*<3*uGzt1dAN&1oW}g*mu7BT zIT@!(xg@C-!g}YUxz6{q9IF!MtZnmDtxhNBG|PJd>&9~NwrykKS%cFZRDpqr0rq8i zS|hACt-Efziyz`NN_pwbz#Q~4+-^Uef-@)|N;F`xG4koP!c@(^bwLuYDJi}Lc7WB~ z+q2im>1+fK3~hj$96XKjkwhYErJjsYz|a`smgJ<4G3xH&Owsb3Tz_Qsc3> zOzNGicV3BX3tu;F!xm@6NOqDbV-YBK46otX8rCQPZyTB4OaPeTE&d!jOB_B>~ZAxp~SrN%g%X)y8Z)CJ2q?T0y5QSjP zQS@e=N37V*4x#v+a`#s?WWVOpv0CY~*DuiKgDl3WP(1JbXs#-42o8y>mV*gOgl87u zCt9%>a`QkY%pA?VQkxv+{&#*gTl~@uyng@Q=36H~>N!zui8t45;hijlpdDoZk*$N; zb_Vo09;v@HPnI{Yvwl&vooVW zU@%0iS;i+L_YbBpEm>t`)m}ss2LU}JGQ|K~99yC23jp4+rY#;E%$|Hqks%XQRFOm< zk_sAc_7fmW?;eu{Yrc(MM;HuQ<(f`Am`W#YYi)ohyk}jxM0hex8f$6ZrjTj$xCTCT z7{CW~e*ba`2&`3Bj>{Cn4pvgLtPvQzkUeVO@vg}S_R{@qWtN!KE?-iw-EoO1WB5Xp z1*ozFGnEGpwXLMF8Mddprn0JOtDQ7Tlvw#d3v?^-P?{1c2UBd8<5v!LI%_hkV(yLA zsB2YxOx+ONxT-R#E|czsXtb{uE=iC}CCEJ7YiHp)fGZL~D&IHYliCyCHVI95-n6g?wMNCGINdILS~0r~8uh93 z@D@3}Ae*nwFJE7kpW59S*OYzt?(5Y9`US-E)#CBl-$9SSnl88v{3ZHJ>vxCApDx{V zRyiEffaej1!IS_(`A~ywQ+l2J*}2BrHes%V-#x>+eSgzaY2qDtJfG)a-KX<6Z||_q z*;amie*M*qP5x@OFnM-;eplXpHM>2(e1kr_x%wIZzWeopsR$1~{&Rsge7P!?Tk7Tf zZMymS{Bk&cx~~29>30guKDhe>CD?L)eYZMS+9IM0BWDjruGzLoDEwvMPJ?wTvldnn z?7du=bV3em0U<-qL1@p{GFXW{vgobjF;T^|+#ZoY_vh6eaeq4gN`;H1sxD;Vlm3z; zD1$db$xvDKBq~`C@z?LJ>ig&KZF5S6) zdhU8;iCm|FhjU^@T&_Fq`NlO?sLBK@L)MOVvJ$teMwp>CvRPw?`u@ojWJiXCSYfP? z4A~dux{}wTX;UXeF0TNx=+tyZUJTwR_vlT&vBFL(H9q!iJW82~i2jUsrRav;6;b}4%OvHnx?JS1L zhLo_-i{V<tR z3Zs*4WE~tTwDcIuvULvqLcpGqOXPBGb)Sszy;#EXY=>_4>tTDzhjq(_*OP2~MGD0R zpkh`PHHHO6d&8380-a=K4F@irYQ0u$Y1*-r*^tX7Gh5_S8ZM7(3mk{-P6oIQb*St& z@mM|_vaViFvcW_N-o8uGwPDo4<*EFzi|M5z<3b;;7B^V7W|)}PGRb9djaNdNp)6bW zi223<0$5$EZ90tBN!-_Eli3wY)xGJ)C3`stxF%AQO|+I{l_}O}581WdVUyWK)`ePw z7p*UJ=?iC11B9krqDS%8eYw+bdIJQIbMn{ijBa9t}kpd@jNz2JK$>A>r8ql?e z(>QF~?xLKg*T^Nx5x~a<&WYFfD^S#cj8$1fDaLSs0qmLllgxdcBw!-IzHXe1z`8s! z0AnYLPI|V<9gs=cH^-)NVcn)`oRY#?Ruos9`U4Oos)omJTr40QAagLot;uJtPr8q` z%$UrS1g3OWbRf+dqB`*oHHb;q6xAr`S)b}lK*pv`GxxjhxnwDYmV9&z(?kkBiXtPh zwrfVy_^pcvGuG^y#w?Y&KyNAoTxImyL{>ElGS+s(klTz+{DoO+MU&L(!N+%3&edbo z1o;8If{rA_Q+RSKCg;k{AXjh0qbV}m$Fce#=@pE$z7b6M!#Izyc( z6hf!b-BjntV$qrz>uYfuyQ)`Y;U+{0)(GSHf~>DxH#G8{)08pa4%xLkxu%%%NnuvA zZe6g|Gt%h-#FFc+R=AApQg&mCN-HbYI%^uMO5plLrioGvmmG(i&l>;IEtD9k!AX2T zzliSyu!EOjGv6-`TbonpWV|}RJlj;3*pt}TNg-lJ0a^f1OEQSuSt!F6uALrp>|1*3 z+lN;}Glq@Qk8Q?>i{7C@>H`hZnrw>_V5%ohJmCAtETmRQHN0i{?!jRhqoGCeqg!)C z%|bLsf1o)@Qj7+nu@+9ejzHEyIykay19(wZrfiD7Z;KcWt(jzaj;J|_2AK~us0Zb` z$-Lo`St&CIa0B2G6(xXxM%>uC{I?@yG_+`vb#p}7P_)Q?phYdR@I21`!uI&^ePazp&&RHvavv(#fZqQ{2LZ4!|YAV%n*YL>p+ zV)tvbOq_LmtON?+hpJTg=AGsf@jxOa&uM#3^^lUw%Zu8h%=Obqp!68K^?clyI&VV* z%4fs5n4UFJBum{M$SV945-0(LHEItOWLbJVc@DbxOS?$Dwaf*~e;)}H=S@)vlJIkl zxIS0qlAo+PnY2tfDkBf<7oJiAB}?GO3U~rK);Mz;VO_&3^%PBx(tuQsv!N48p!lvq z$}q>MvwE70EE-ebGOH)4W2;V&iN>5%0!2#SECHkf0CC1BmTQ!aXIp`HG(qZeV6X6G z5-7gvAhA3}2!<77DxwKjHpqZxSqE==JR}@{DhZSnls8^AL4i|#nbjtikI>!rRtvRU z4``mBNCG9)mXobk6w|pTEjzLj3s=|**(b@p_sJztK(K>t)o?NwUzV|a#b;4E!)3rh zL|?g=Y44XnS@r$CN}fQfE~=nbh`@@V$a4pQMFq zqlF*5KiCmrf^{88juSjwj3T+7!1@#xB3{DP|B>ZUPQ-nfJUR)sKO~oGzCe#aF1n1m z7L#(JHSVLsTspEd##QL2`}c?N`c4Xrj`!)m--Q5#&dI z0@+8UB3y7U!rIKiwO0`VEQJcLXU%}1%0tZOQ^-Ds#t57xQX-3u#n?n>%q4P9ArXK{ z+_}5>yU9K}l|l_V1JZHIr5P^2Nr!;ktS6%yxX@?8d8jJPR=_*oE7yc@Ecn@*C}gzM z&1FBHfAEPoPYNxm)`Uw#x<(3|Pz?m(Y|h?Pm)a;EJuT-^&9u&`aV2tkddW)UnzSG? zT^Vhy>4ya=PsVx3Q}01xaWDokn)t*F6VXu&&3SLTIw-GrGR{+F>?s>8+TdA!K*BYu zENV(ID8P6%TI=JaoF~;@5s9;Cm9Z({n!w!Rcx_AW-Q+NuetBBXqjc}eB6JkqW9QmC z9=N%98*-(f?fBw6A?H!up+BS&%}O{ouKt)=zX*OUbNODQ>iA97Q*j>c;chD&S?-)c zn^hN45jYR4ke6z$bDv)Jv1es_?L$woRB@H?uFVK530xr}#F+3H&a-h)aw0}>t(MWX<5vfh8eZ$H=h6fHaI;$q}lI;>;Uwc)!ad$^DbxOw;XHV%fSB)zhd&sWgo`3JzALVp)&^i$o3-n6TFpb$Gv($X*xkyf|0Fn{ zH^Ir)G~+7EZ)?Uq8sp5Dih_;7=ah6e@(~2bf11-BjR?^csDtxda5fZ#3S!q>V^p%$ zkljHU$Ssa@vb%0N%UD=zA#$FwDDVN= zv67)H-ngBLxW5b2iA5KaIa`bTa&yiZKo>2Q8${CGfjV=ag6T-3u!302!m;+SDfn06 zOaI!!flAZOC~7}3)9DVNE^ykG!Ll)7D89gHs4hovaK1V+DjRrOrjx9x#kVSSA@-z9Cl_gDhr{b!Zqa~+<;HgofZahDNxE@Cms6hZB%s(Ni8Xl; z=_;HtSMw01byZuCe7Wn>pYAkPE{YzjuQ{Ib7{UN*C}nC<2JhPFUE|X+offn0#dGSg zW(n4aKI^)(SWtmYxu&*Xp=5;V#LtH4fZrIFMirLz$czh!ARh6#ay?<^cvtEeIml1g zu%mbmSKu&8b_8nA;{DPh?8xEvT~4Ng-l_UW<~ggHVqd@h{!cGNIMeg^i3v+zhpF#|n01CzP{ML@d0_!&It?BVhJ`qyp!%0IoBz5f1$ z^g{R49GA#cjx}Wgd_;=12&Yud7F;s+N1UJh%{TEO^<=lO~Y7Mbwax|0itBSB&PUMmiMef?gFRO^YuE;#~4daVUBCp zv@4>WO=eaqNqbwXu&lPVka+E`3Cu&2eF9+4N0~LPRn5tuTJEB;ZXb&a@FjFka>$uW zT9?*FZzJmYaCyhC=9eD=`y>p9>)G=OogRv-^vE{{SaG{+E<0wU&ZDewX~*);{&ZH^ z5OYsl8A}nyP;pV_48UGfjYN_R#WAVYeVrwyvP*%|RKq&QH6_-aQ&@`4ib0~)hboO7 zyMw#iS(8}>WSj%nhSS8GI-bi=go@RuGYFXvrMUwKIdM>2Hh%5aa`c0rnBsOFd_#q2 zjY9gaIWd1=U0KMIqzh58WW+(+)W)s9m9Zaxq@$!mND89oY*>E5aj!Yi8}EXF0%bLN zzPjE;o4$35K8w^bm*D1WGakGUzCLrFN7a#2g-N&3otiZ>HoVvrW|`1psyd6(S;hZkaXbQ`|Bu3DMQyM}HLifNse=P;wH=1q^H2u^w`nQ)~@6GlS z5ZgmxQX>Z_nSsJ%bv|Q)`?4vCYWFqsvu`CLN#OcMsx#pX$%yEk7Ao76L$QDpo2_)? ztvvNK)^2&#F>ItHuNwUQ-+tU^@J`wGsG3G_55gnPvr2UUpbWgVm0|}H$dos0w)pYp zp4>}K(B70|mRxW>Ilk88xlS)>EL~ZBqdLSf%bmB(WlAQ`J_ll%~h1bkYvm% zWWEMRzBCn%EA6t{Ia`=zCFDJr57}#V6j< z!-6u}OTI?K)lxDGCK<)W14}QpX)W`?`=H+`^Fk`|!*_pO+tWMAhF(@WM4J__eTi;{ zvjY(zxHuiH?z;BfD)W=)MjyYM=arVM;UJvl2&B9cv9&IGN*sN=YV~*A&8tNjo7gKT zzL-~{TO7z2mVj>=_KhC;opd*^beEKgT&|=r+-^J_8?Z`BaAKVCIC|CWl)HJxl^CT9 z0*je*10sRlVOX^RO|LSNOk*eAC)~}`E-0{GEP)~0gOdXimkBAXcdQC{Ss&}HlkVmP z7YoA<5hCA=M^whtFO{q4mZAX2Y#+TRd%E2`KpUMoM**mTZvkWr(rVCU-uP^!vyy(7 z-8^HO)5$o|`%qXqu{uwYq88$OUs6hq<(-^xH&3yonbIKkoce5B#zG9P3Lt66X$--; z@gkZh-pw;vHX=ALmQ>|Evj!)@3A#ST(2B9%jn1#r?&e{JIjJn)EXu42;f%;2mm*1- zWT#fjc(0vyH%}YVT*^(zR4d{<=3B~@ud?f+sZgUZF2;7c-8^4HhEsQfa^r$f88lqM zEGsqs=cpZ0V>{h$UMaB#cvWFNi}5#ju#|bfSZh@!H6T0n$lbh?ZE@M{Js&+nBEOLb zce*+tRKc6Iw zY@@aLyq@!q#GC12<4T7QId(4A$fs|eHG^wl3E@cUmlwFg$rwKTL^7qVP&$Jxj2@SUpFTRDf1+TfF_8r8iM&GAK87XQgoBMzHhy!Oth zqW|a{eCuVUzuu`Py||pDCJ<>E80u=*&(D4I zAdqv4Tf2Ts>xO$tY}@P$Htut|m!v+odr3FT{`w@>k|?s|I+nd0Y9bVn#b|vJ&el?! z&8-K0{5IncE73U?syxvaqvs3RlF@UJEE$hU8k5#SB1pFa?xE#D;RTXEEzR7va=L86 zmP3gJ>?5;{Eb^5Mmm3T+HPi4{e{_}WM{h3fEpZ)ojqScwQYj19yysI8@J+s$-+ZR( zS!>dNsKT{U9^`bm^rKg$kvE@Cu|<_q*V5D=FbR0RhQPXbW)LQm0dIwH;6l>9J$sFu z&PL~qNjZ_I-g3DG#X1&zL&?B{hUS9I2g)sk0Yt+0EUYpSiQ~SGZGRvsw zlv?y6G^X#}!6>bXiB6*&O{Xwc2W5Y!O=g+S1am;Li_Cm3jR}_lZQyn^%fogb)!2T= zeR3dDHj^1;L1%o{Np#i^ zGz#t`Ir2gqOsm{V2SFbj!|jfm$fRz8mKc|I&)TW7HgK%S`DYTNSrFaE_t3VxX{uhz zs!9+%-liSoJh>Wo3BsyibvC+H*^k($qS@MEKi~FzIKq288Gu_~{23?nqk0R5D-kv+ zEGHY8WYMk~lE{ulaB2ptEg#;3I(=i*18qM}QLZM6$`~cQOf2hUwFq1QtSAICD@hmS zk770J)M3SIb~wa;3b_TWc1?UIMkm9e&nXd|=IXcw6w&CYmka2jS}_<6h$rp2ob*q* zh0j}VL1{xiBN`@Bd^iW37+7^m$xN}VO%$Y3!e$uREW8D3Ap=Ma&t<#1(j>G4N$~kV)M1c%(B{E zcomC^smqpj2;=V}x6mZWcmq0bzHveIq5+(k=eTNoX~aGI`^qg)Z@$!21o5Q;qlXHj zstKD369QnA%&3K@m0OTNPJz$4Q;Ll5sswV04U;l8K9zBX4%8|VDaPbIgIG;_S% zMG2a7)L0ZVD-y~ZU3+Xs>qm)ce?D>xP9>~ZD@D~TIzOc7a-Bo#a%j~A=~vam|3GpJ z4sH^@JA$M06=6=v31qn@Ta#Uv9CD+hXwGLUxA0@Ty?b?qe}4V&FXlF9W-foh|38qI z&H5!ZqIXlvwm~+?(F*N_KdB#9j5_*Cb`A~!jQIm3L0Q?vq^IHCFckk zpZH%~j3b1myJPk?2e?_2RH%xIG)7T9#iECr=b3T6^5nlq63JHv3Dh_Nth@H`GA_M;jaf& zcK>n;gx#}@+7n<#R~Y=n=!b6_wF;OqkNGD}QqSGKtn>sbnpJB_z@vole& zu1d{bVZDtdN$%;csjO<`LI?(HJ`Kq!os~x;LVQ&wB~!rq4wO0F?yRY-s?ABb;Vv|9 zI2$gAmw>~BO}RVLg^E7FMHcz*E4zl3I|;Hb60p9)kk)&yQ`l7zt%lnz7{$I|m6-QMV8+D|fF!jW6ChZ2&k1^~ay6kAg3t`DjO2R5tkxB4 zO1fe>mO4JS)~%YfuNv^aMNATvONtmEYCbgRqPEtvk~Zs+k}yk{Cs*6qX0~@Ld(tAS zz@U++Dj~g&tfx{$G~fe@j0DppL-*NL|37>0)?>|bTnGM@5A$RJtajcnev?IMB-^r# zAvKqmImlZ{1f)ZQq-G@l`dKS8clYkfs{M8I>?S2+KuF~2IJGM(GcsaDWLz!_*M9jo zKm6ive%WKe`0q_C{lhQ*Z1dtFIx3+E*|gs@a}y1Fl*ESrCB23cOJJtvH*}=Mi&0U1 zbNVF+y4-6ss{Z1ieH(9nhk7RMJ?SfEWMspuW6p49t5c<5VjCP#=aV;_RV!Tmcue!> z@(mr>ne6;!flbFU%RS{S2Q~(CeWbY7@av<6Fk2ekM~LP>{^>8R`NjWn&#`(DM~0s_ zEzlc<#SB}BHqfW`Ti{^e#KbtAg_ZTw0nSfHH&3%S{283ti#AxmEg9aMH|4jKlH6P= zAp_z7&V=uTHyxul@-A$s$3H*A7$%@q%RZ=HL{7N_qrC@mlM%QO20Yp;K+_r7?l@zp zb^hTQtZCs5ltJEvWgxpW$^Q3D5sW3o0vjYQtHX}0jX#J7TK-dwcd;x6cyBA&uv0t~ zd}zsUHAap7mNn}ui`W?vFZN3|(*yvRQsY(<2NgOFqfiN(*`(68#8w}*LiK$EU!zU) zAD>|rWeZhAwj&6RO-D`Hg36GzswA5(X?1y(-uZfCYkMkRk!2^e)+Sn5zu4PCFkWtV zKryqIb~#r5WVxQjmCiwW?i~OY$2(SNVi(wrDmO@3FWh**)nT!o#Z~ReG>RSeiWv(Q zieaPHCUG264*5#vhYH)oTSWS%)1DDFv}sRJsyeW8Ef%!_lIG1y8NH1`SaG#j8{=PH zOT1&N^ZAqca`3jXYjIPNe1V+}HrDg9v&3C$;M1#?ws^lkuyy0}C$nX%*U<5K3+yXx zN-$dx0$ARukgWpLmmg)T|MOFr(hdtEJv)dA_GF20V;L%q&W1e$%FA?BtNF^r(*?@} z*d8`YRW@EvER>LfM)&`4acP53G zjs1$YJv(f6^gfjLH3Mqp_*o2pFf^`RX}g4BfF|MT)i4b7nUc){&UoaYqSK13yX>E5 zu&ZxlF@G-K)mdHf-2nAs$ql|a9Q5AdJ2-gmI8`veo=prtHd1BvqV5YA?%b(=Q^D_& zG6$`d&FxHCu9DMQ;ZR7rzZx{_@5&RTdof=APaXV@Eu>^%Edlo#{APHr;(R&}Z_x+e zd{#d#_#OTrv2Wocl%lR%%S>qXOag{_*<2OXs-*L-&fDxxPw~%w{o{{62>H)K{_q#= z9}^dL))y*PD(M%wDCB3b%>?CGjoqv=9MtPFTTJ*ZhH6^MCYAl%!TlqIzi~Xg-dXQf z3S*`KTiKhqNn`dH!E2HaJBfU0_`B*V3Jx{&5<6ogP9A4#Qpp4!WxWyd5^a5D_&eoj zU5R>A3E0L|4R?EYJLIxC4O)ru%2oWr@VD4wh*H5#)Qy8ifNLU)VzgAHmTZ&HR{`BG z41Z^(=t#&-R?~Y|(rkGMSc=k1t@co^(AJlRzeNhB*}8Akhp?&8ma)jRxyBYT&A`$= zkgcx^e@huk7Qt;b@0>3Z`=pq(wPHo6(&lhE$m0vc-yZr!?@(!8aHw0QtM7D!OD#Mb zvQ%igKYaLGz{=-c@@kjiWDa@^yVy5qE@zx_7AyJm@b~u{>U|^09iz=LyIc5qcn8$6)?- z2Et{M@FH<=gJu0P)i5J=Tau*>vfVBkdA z-TL#oz&}nPytrEA?%W1MT}R)Nkm3JnX{Fv-o4+m)4(W^Vg~OI2_%V(JZo%2D?mHZty;fnbBR5|d2oEa8Sd?Jr z1lVjRnRsmBwgj71W8TqzdBy*gfpC*@*$ucUh5l24$`8E!R8B;tR1~>A=$ij^f$)-C ztU&7sCtM0CNC49zc3JPph9s7+vbzu^sAa+b}Qq6a5K>F*-Kf#{M;SbJI{^#@K8gsEDr%ghSdHdCZ$Py!vq(IyI%bX&ao@r5NF_ zb?R3I!ktz{6ksK}EAE^IkZvk%)zn&>1}L$YeLBA^5MEnVAs2YD6<&|=e&+x&wE<(u zrnB0$cMmcBA3P8aNsD_ifSiI|ZWZ=6))Y5K*F=ieqIe&=|KkV3t%uhuguqtAXEKq_ zZ;p0T*2!#D4k5oEwD47d@LR3x&-I4_;l9AB6F4`ma9{!pXOhQ1`UrfNg?9BV-|63E zApGaQ0@vNA`}q%l{pbJXFCIH{&c^C`Ur)L|L1X|m;aMgonoP|brQV!5ZC?!5TZR`X z#rJ+(f9ub_@r6J8*?TvxlRD+wS5B;JwgFkHO-5#|$i^U1ty_(OeG3eM$|sySdlxqS zs>U-00A31CXxE+vB!+|QqTXne!`_?*x_{)n{o=2U5bD);Q@0?=^ZmBkVw6mR5WQn= zla2E?9cKatSw#?^PhdK(>+_PW93XRm4U&nY26oPi1sL3%64k5f3oPeDuT2kE=rst& zf0oa3KOm&7?{UfOH&dBc!V)Xll5NWGwqE9y-1vAc-Fq5WL2B)CsGAUM3(F`%wD3ie z^DO~~sZ<^eN?sOgdlp}5m&P+%KZ0|d$etZ`HmAzeZ1^SdL8E4KU+MVzkIw+q(ZW(N zE)I~v%t=`R^TiHlE%;qEZ;QFAbnJZHRXRSGuL8^Ftp$u=L?8(|MN};)W-b*M&zLXuEa z*$3@qx@;<=Mxo=Yv!;4Y;kC2&VdN@{Z*5n4^VAH6!<%C;9h?+dip3GQZ1r?w;-(&+ z#gZ&gpV4d{Z)eBD!r*AzocC-hQ&~p-z{bh>7X2O?b!yqlPueMzlt==&sgcPqASkPfs%C|rNWFBEEcM1IffF+6XnLWg8 z9UT$8YYMU)~Gt?$FVfr<%=Ztt2HkkTUigC`CD^WaCeGh|rA7@I` zWUT}0$j)s&0UbLnwva=za<8#mcKKRW-*Z@s&9m`*+;-0atGj7i*i+k>Obuw%?rp?* zAc64cuKM}Iwa@Q7-1Bi%|M`24u2xR!fMaZUP&`m(X4NMlf~yI(#hv#{zw5>O(|NZy z@7!K=Q~uNMe1@yQq?8E2dZLG1*&L>9MP*i>HNg7)L;m`!U;O5#4+r^=G(YS2x_oWW zZ;8bZwQ3-Br-1cjv75?CWmh;|^uCR*d$H2HZ%(`zakI1knr>bzyj-sUq)Sk2Ho+z< z*)fRZgOkngT8mFO?P|Gs{UXoZ0gi<%(q^;30aFeN)G&y>7w=tx*P@mVrysa>{Stq8 zuPH0wpw0FY3mF42E_}TVS+Sfqn9Mn^PwuYt;cHi0qp&4$;*;-_+|w3!fVl!>oSM{d z10Or^UwiE;r1y=A)Ug4tNs=vFz@7-!o1&$P=5p537hk(p5n>UXj@Fo#&e4+53$dx< za;z>Yyk6doA(})_s6()^?Qn~ zLMK?~Icf<<5k4LKJnbZ)Kk&}w)U2<(c7<0d0#mOwy-brK@vumB1Ga9-6vLJRfADM9 zA{l^e)Kk(Bb>uBkr@Cyl^N_E0*%0Cj>yLJ5a%0Qpb%fBzK7@S-(5TT=1s5tL`Pf^! zUAvB^GGBk~x~n~yob^`f7$OIxVWQt8j3u<1&`G(6F4FDV^$84r@Y=O%$l)%-wln#~ zL>af3wc4z;Ww(2gI==Vn&aPdbz^+y|$4-6d+7-~vSI)#sjoH7}NH{LRZF>?WSYudW z{%`u)^{0+SZo7@8WmbG7h6if~LUO?ByUC_-q=2~}i!5J)G2fJWQ77Gm|NqIzpYTCB zdL~1aZ;cwuG|4_rfypD)rBtj?-hW~;^4rBRZ!5km@izup%Fam(HamKCdP^m<>${4@ z!j1;>u(j`B{hvSouTI4O_E&dfk-sYIHx=P3^Q#j_*`kQ~))8ctH?SPSd@=4?~eu-R(6%uxHn;mE~!m>3=q=2eXn4`7ll zJK=H0gL{yS{B^^TEnKNR!gbnPW|SlDL`!-T94Z>~uKaaRudf`A+*EZ!CSan*4rs93 zOrK~FE^w@IjzhYQ^Mi>&UpX8(!2Olgm<^6F^M2XA2V8ARWe=RK0@T~JWBirF zk#hk`PC(10u#bCYT0n6?EGc+fQ{6+k?)vg|!;wplItUTBo%xi;L*EC_wl4{oO6XX< zx$@Y*ayYUV9`7eJjv=Aml~5LTFE%^-bHGdb>~Q3FEsUQ#jq>7l?*p?aVLYr2cHe3b z6ZsaYz^h zngE6t+V8s!LZ@ioXNP}xB=Q%2`bBHUB^a~Hb85L}SsV1Pg>$fBEi% zfBjFtdw*F713l7z_~Rg4)Lr8_?#D_ckw*#c>JHap^)BpD0ri{DxuR&_MD2|T#sQm znM_ln{IrHb@ek5a2x=RU+p@U^3y5Q8pLfAF;hcqP*!240wBW0TLW~~xZ}!E8@MTT) z9ZacBO>ev59kPQp)h0(7b1hxogMVdLp?%M}?WK3DvLn=$%kJ2g+lkS&6%kk)E;g! z!ND*7`j_9zL??D>^xhugED1XSDD~HW`9Iz!m>$`E8dzyQ#4I>O!?*7B0S`D~ zH=)=K!4t8j>NkZhRcSx|4(tr= zG*X&Gex&%Ru7koMFHAcQ(IBx zx|yPRu{~PyT431!z<+)QP*e_Re-|E_2u{3lycep8lVE*}MOLWQ%Nx;GMs6U(KaDM) zl2p<`)5OSdX=1;9;6xu}aiPLJxxB7YBNg}ka&6CItVCZS^MY->**ci*^su#?7s4uI zTG+1>OwFj>if^2;vMW9Xlu5nU9q1mw+5^CHY(kVw_!bc?HMjxSt*mZ*47Q%h74!0o zVxc8LKFnGe&6!klL1Js+U|!vao-Nk)G`^BIyG?RSO$U}aSSSlqx81N~ZFEszwz66m z>uFp$TZENLZ8ETx)y{CT40*HcS^{_1$8dQ^+Y!EeF>h{&eq4J0@v>P1u%DyZLS+8A zgRKg?_FD;iazIxW$ngInUw+5BraHo%GW%o)07O1~dn{jA*+0a}Tf=AsvmJ7aJb zfr?~yPUI#4-W~*V^!vHhW8r@K)p`}Y+vixb8d-IZ)5j6kob}h>?^ba+=Ve)^XKkJp z1*Q<}NL^r;12k32zHSlju z;YsaY2eT(*zgxxZ-i>kAJ#umymUxsiE^jj{{#ISwhJPceL?GN&wrTyW*jX(eJzqjA~?pI}g z4*nhaU)uh=$3dfL*$^K1-21>1H2^AM*rYmynu?at3~xarV_sP3tj!DbMej%VE^PGM zfBMayO56VN*Z=e*liG0z)35&S?|=6VTl?+rJHJ2sMuva(Z7>YN@5~$ssm0Ui0ntnzvu?S9N^B?f2h)c>J#9zdU~QE60JT z1`oF%0k&YZcZ;(dwO^cGY+*sUS z3PWDJmhhELfr@kfJg5JU5Jl1%9%i$06QZ|&%mwgLs;yZ#?cSSU^Rl*wTux1#631fR zilO;m@=+11fhMT7zW;kFJC*SFbmr88@;fTu-w&VekGg&)`l3SF5p^<4a+d zO~a8AvTSxYIlz<0e=Y&~{Yt%Js$ieFcn$o?WZ7tg?L%0Y8H>(a1@2=EIbY|T-q`am z_wAJWpY)4)QVm4i;RhycoC+L`hrH?gQf~ZnU&d!} z#>G)W?hxUqna%?(t>B-Pg0}pwlCp1Cjt5^%F_0Y zm;ap74uhb0`M!G*0ta?nwpSgT&>MKint1Wg+0pE>4He+o=F~GL+5Qi(G%D5Lltj_Y zmAUVnbVlwt>zqCXCHZQ4gF0Oz81p)ANw7bVWLsE)g_Kt)sWZ|y?~bwfD2no#(a_CQ zsj}Q0Cu##INlxl0Y`K&)HJ-U_&^gpZm-l}j3*9}JZC9@kmHCU>!i&(u9H9tI<_ki-rta+v2;KH6O$ss4O zw<8NoN*je7M;=U@Co z&*h`BSY3COvk{w1tZ`9*YQY)6NaywL=`@%JcMWfhyka%wpT?VWEySIRr8r=|7+#H1 ztLXszkyNzq@)%6s^qt2y|D+!JR3GK7Xdp$&7F~fIx8+`7(_><(kb`^0*v@6O^gSc* z*X=pHvHKgmWz9~E91{lDAi+1-G;mOGDkN3EBX0iA6TSWA8SP6URB>-@vpbuB*SZ7V zCb5;^#BL(<`M$HE{@$J9l0AnnykAx)H|+z>RD*-Z08&teWvwl!@F>I8^k9d3zhG>H z@`U?Ilck0y2l%Ymgat4tglsmQnT;mV()wFeeTy|(2Xuxh_YUeexhuEj+cKdk6)Vn~3@=xN+ z7zeZ=%(inRp3%xNl7N$`eBQ$@8)WSvU;e(wasTH>-ug$`sxh`40cEkDmLXo~|76t0 z(sRubG{rp{WjoopU#{oyrIg!?O?JcoSq6n5_zs#QRbTeXCWPhjk$k6K$6xfr5W*uSg9p@61}kPfRtzqb z;=I>&;m*FO}>KPpru28TxGZ(u>M2BawMxHnB->fcIHsW#jOmzb9&E5aSt!$%|}y z3^`Tq=MJ> zaCbv=G?>qrK9aMOLFP@$!V&A%gRA1UmUaUtFBkKu4=y#=YL}ja`kOD-?+u0s=84%* z85T3e%@!4#Ht+|oyTuI7R_*^BKTdeKAl7H19$tGl1@#a2L}}klP(qo@Zn%@PINa@f zSLrEgR*BG*=P_hrV$Uf}brePixWZu7UfS||rFx4{b`CqD!yGybgtsVJEo6vl{s2AxrEaw{TS079DCHXB)zW6tIJa6 zp%l#9rNq$r=Hac}$5$)ufc5*vV(K~Ur3KD;HqdI8k)SJ-c%ky2q`rg^5;nR|j_k#U zX#+G&Tgw^HEHZ2J%CWpxR_~O=bCyijQmo7#`iezcoGX|V)J4s*wbb?ocj+-_=Kg}I zE41fu1}7v&%l@7m_iS9hihzp=-?ygLU??vGvG;29e$AdE{V|Bx6!Zg+CMR?3&|rSw z_R>^sTE=`Cgt}wne#M@{mj_bai6(4duN7ZBo1mFZwJNPO9=hTRCBEtR`{jC$3Nx|9 z?0n(83%YL2F#ZZF*;Ep6K$5#uVRvlYFV}PU!qS+s^S(wG-uMAe9?gH7A6n^)YpxLd8~a0PEeDWC=j6UXO> zSm9Hu0(98m7PY3`fut^mv_hT zDLgd|k%kiqecB7gtRakWaJgX=n~n|;;}K6sgZ(5dD1?mw_j;3_{S1O}D-K`pXF~cWm6R*K_#N4S1n6ERbf)9iWOW1olgodo>kH*7Ezo2kUf+ z7uU;N{fiIxljp(q$a(%$3CKkUz>l=p5FU2Y0CW_lBpU-;nq*3w-9=ze3uE{6?o*Cc zEVnPQFUtJ%FF8z}c>gWmt7FMUR?FJsqC#(T#{Me~A0$kxTHBb?`*w!Mc@(eP(rcrC z>bGcr>w#h}N{skX`a2(GH4pdj|%TT z%A9|c`OZfbn}h?*g{9~v5tbL$KyU!y0=Q{U@Lo>aYaVyXzc}@TkBaX;%AS9e{hs*g z(l0=<)W9=_O}Ntz5bxk}WFJIU{{2U}^PRFU;u$(Yy!$41{!Q*X-z2TCK8v>1U<+}O zh9RwGgBjgJP<3zieP3UHu~G9b=j#-m|IU|0vzHj8+k|I?sP`df`x&oF2q7u2!~1f* zaJoC<2_GTf?Myh|ned(Ofu585o;8~|GG7>&IY4K#w$rgexH?Waisw7?q>WMUzUic; zGQTN)uiw*dE3{nRw4zU!i`kOrFbUcyQH#y;eb-$nPB-aEC+LAy72o@k&|;FlZpv1c zgfPAq7z7le007D=&HE0~@&Y0}N5MTbtMYpoA;3wD$}oY`N?sEwcHrU=;=220+^!DV zTAqW1Cz+r}`|{mV*D9oEqF~jHT_^-rcn(B(^eNv12HJ)o zZ48^OLGdzH6X@()Xu?^a3w*@Gh_iEK@Fe8+{prg6tGR-ZQ@;F%D7yZ;-~903fBg^tGB@pazr8*A&;J5A`67V>0l<`gG0HphcC|Oj&dO*8 zIf}bm?@10ic;CqyzjP!kp_Cg>YvXM=k`*tm2028%JgtMUu9J<9J|4-|8mR|426yCK zd8PgMFzf8{+W{{euXaXQbs!V<8{5hF8L5wCC0q=h9Hf><&fx3>H=d3_qsPzI7BB3K zTSmmqkql^V`j1SiDlt){SBLF5@5~oiqLq zeOwjerH*~cp?#JWH^Bd6znoX*xZoz}7{;?<6*Ci}7?R?Jw_@QdY9;$uc?hIi-W;7B z+u$(AnTyT^5Z<5zLTwl201y}Qg$*F#Hv=H7}R(-WI-KIKGljHWY)hedV@--zgr3l z)0s*Ooh+dnPZXjToi%8mMU=WW9S;M^u6mxjSa-7a5W5pa9>#A|(H}YMW}xo~XGknd z-i^rkF6dIXJWUhSS4Bcr#A0J;!0aG9zr6cq{y_FvwBwH4j3>#;EavZKdP#=F9#>5& z-;WT_2p+%twejdXhJ#>E>_&*SOu@;#eRVt zB&7FZw?T#sPcdC(g$aXD7x6;UK-PdE`dmyw#dePKbt2;+3+?RH3Gpvja7$f%dcJ(u zl3re%PLQ4IHt6(hgA5}g^o3^dRN!G8uoJxkvht9i3#|k)BuMHDodz;AY>*ck(X&~O z_3}cWlFXFBb7f2)L4{#GPc%8m-bs0321tbvn+qcXGEUzBfF~x1WDy4@I5A)#1K|jJ zVg5+Adc6C@c#?d>#V4k>lXX=y5|EuZ9+o&-MsjYO7XQ zE3i^=U`GoFYFQO*_GH|;D2`7{p{A%r3r%|DT+-~$ACG!@ScWj%BT!d=_GZwj3bFHx zz1Q#x!}Zff!+Kr5+Da|;HQ#XhoVosL=YkKHYXp z#G$hBQdWS^Zi{v%XiC7UnoBW-iz36dkOME9x#VX@MD;&j9xzDh&}6r zhI&5S`SRG3bvfsY0px91_V|@)fS|>R8!wwp2-KaP;32+E7(#cMZ z)#P24T-`AZ0Mf}oor~j78FAxjeEZ^sQozQmm5FwFwbL_-!vIlO_=aQ;&F`UVm#`a- zg`dF`Xo5ve@lXwH<094E$%!0s9@p!sPLA^sP#1#I%V$FujEDsmFRpqBA2V<+pj}+G zfr92A5h%}a(uo!uzwLM|R~6_6h;R%(tRC#tLk<9YIhNGE10=w=!TO%)?y=&|;^3{} zUqFoUS?6YB;yt)De)VthHAAyAGGQ090h6WX)5b4{2L?|KOYC467snibn@eVtUZTG= zwYT4v%kg-#(~bd~Yb$^H@GC+%fAcH8IAi+_oSc618?-rHu{U6Jy54WF>TI*#Fxlx& zzXG~bF?mCSr$Y9ICC?=E4TzqK_Zy5oJsWQz`1EAGLFm(S`3AsGPxTvmKh+6u*#AVM z+&c~@`sm*6IMHVJPRofdyz_WY6zRRYbfSgteXSE6e($KASb%#s@5FxGJBcU8=ibFU zFT37yz1tI`dFL6Q*xT>A)!%W-J9$!%vG#k1|0GgB!v%9qmN@?mHjIy6ZwY3o zVl4Q2$1npOQ_j2<3mG3hPv3IAF+wa;g)dhlBR+Fe@W*SF9@|m#aIJSTBQi7(7jJZy zm=>6IiyI*L@`fHg zxqusSz;SPKa(y?Vh-#46%fB9jR70JeTpf-8rWtph>&0Uae~wq5+*z(I_ zypEH%UYL%s?TCk+-nKI4YbW{Su9gvFKlnbo>19w;U*8imS}iB}C7M-dC)Q-16&i1k<8nig$x}u$*gENl6AlECKaYEE>uSa1}dIB z74zIcGSu7h?l7=3$aq*SoChuDZdh2l=~Wo7_CXv_CdfcSe#j|gPA%`&rmJ<5VHV<%Y*f!h zAz2%Dq(T|QFsWKCoH^)EJ;_n5WFQ1LIaAAKOYe=Hj32MdB0cJxru4!3mCS9LYbMNb zuO+yVlPsNIID^p`YeM(n_}dD;k{SyhpdyYBD{NPslA?}UI5I{t7nJy49jQvWDTMIC zRx053kbgK_^7vJ7Tjdb%qZ3716jS&WBU48*oNUuS*=b1QaibNqU2uc!gI~T0#%!1t zXu7CYGMtR@RnRwfSupr9!(=+fL)WM6+$%r;=@-r!B^_kIl5j!}Rt+)__DYW9U^*x+ zy{zaYyBG3sJUjF;7zuMUFLvDySb7=|M;&j}N`|7ao$M$S>zYR9aXAXOm+OWBxBE^8 zj1I@cqo`*)Yw$}?mfS$8bk-bXP%PW6vDBuMp%d0c)6z3s3o;azSvCwRL-$34Yw6cz zVLO#h4Z$x&W-BOCfi_K8kDl|kKTJtjPkoGC6@mH#@wqiP(xDQ$Z|0dI27<3 zCRy9#cU!nZuRm_XakDL#R8R6EXHZkY4kA|c$hTwsa6Wpxj370}aeVO6aZ$7I|D&2q z7NR^JJ_jfv=hJ>YT@c*vACk=U*CQGD+RUe+b5?TjLyk)q-E32mDlna*2t?zWM!o-4SDh22VT;%MjersUcZ+lSl0> zgj>l227_#sUzZXlZD>%q9&TaF^0*A6#06Q&YJ4&vwml)kIp`8(aD-OQ;PVW-f;D%3 zT`|*T7qWG9EVvWQkRn+F4zFLO#Z=y!!P4V-$C*+?i)pxOi%p_Pj^74cUJez9TYNt~JEXTk6Ej277!rVcEij<*Fw(DsEP;6;P7nHl%eGH~t|mxev{cqA=h znO_zK$4cq`G!TYdY^{bbAv$YTt9blsC;&(F(%tB|Y^H{njvFRq%^n z0kI8(Or5gG8Gvk8&-R5b!U8dPqUgz4M!b%3F1~vt%h?wJCtx`r8epxb07jMS@EKg1Mz_jgs^Og(Hw(L zGGu*~Ge9lhb28z6AM-n64~2{@SnFUmm){QKf)Zp%%;Kt9I@|r#j2JA8LjhXX6Lf)D z)uM4M9&-KN*p9`KV?ZEuDm-W(mWQJh^r)7~w{mfhmU(>T|Q9(Hy_ zsLhM=!L0Cx*(LqQSzoj2VZe@&0k3!~xT=o&0KV4&@#@vV|mPDjgX&l`_prS z%>Yb5v%dl&IHY9eQyU(Ug&fp;S_9M`-yHz|gPWPfN*uS7VRMu!OfKB7~JyPfWgL2vR$A+Af8l{Y!)F6 zjsc!YKHdp{44kOun!pMy`+*&vN#@-|9?4<&k^QsXA`48S7Iv;#Sb%VV13R;^wNVR< z4uBG7?p9blJ*~&$xx+3*9qniEM#xSf=$D_i*dqt z%Td9h7?@o|#q~>g!(^}3>!FsJ#>a&!lRkm2>mVeR8UA`ryI1ED$_MpgH`(?u8hSx5vO9##_& zgBjIV(BW#q;sGAveA@d}>A)mg-QR7fEEg~lgC5oiE}vYC7hQ{S{&0rZYZK3#_8a&+ zrc1>RMhE7#-W`*F>3MNsI`9PRi%01+c^jY>R%`)iFj}sQ8UT?#Lw{xzIYA%VMcLxe zO+m%Kcg)pdM9=6UEj%sDhFS-0+kGzqVOj%zFgw$YfDf{QUMKAEy{HhEHRpZ~zwgwA zvCMN(-2no=TaK@F@SnQprkO&tgbUf2yt9VwUh#xw0&jmBK7%|77ed>}PKKFW6e_+; z>Q1&$#*2@`n4gr>sXV4uaKG^{^zVkf(aSLa;`Y9K%STi?`YWJ;Wfx&a$rg>- zE%&%SF;Febn!+@XHD%J&37&y)j))}H()#1P7#%@JPH$aSg{rKRc^sA>$GI3+AOLZz zpAR<`V0r{;VJp@Rvr5hYF<{)XrqFZa>V~&ri>TOnxf1BIu5uH% z;n2X<4e!~doeXDSF<?|V4L|JUda*kqovIg=VwrL`mmDben9}39+2NW@zddhi-12^TTrT!vyyanGJH8`%aZ~I_hnWY&9x*k0 zq~2s0=0z+I8`Yc3@N5RPBuOzwtOnl_KfRCzFx}t`9_^Zm2bFZwDjec-Bsgt+)Ot8xX7ofoJq!eJ`!S_~NrKGL=wuz#nqv5R1n||zB6iCtbI)6&8V9C1 zKCS(Ttk4MfD30%D-wi+QM?BUbfXrfy@ifyHj-sTsv*XgtLkiV#Q8mYw4a;`C9s-fE zfqA{S1QCdI!R|;afX^P6uNKnYE(ycYDFuv%N%A9ILP6mjKMR0R#Ca3A#J?@e*Cu>p zHjzE984#8jx5>;!(d*N4Kq&0B@GBMKH-HL^#gZs^BdZs&0%php>ty10$>Yb@tj;)+ z@tNPU05FoFz0Kg9B_|8n&+}({GT(B*gct|R(v3Ur2zC2h7O1QfvKuglsS%6HvQmhV z2Lgrf>`@q?`KL04A&ZL`@={HX-Iifhrk3?_gABiT$qR)Zi}OwyC-Jx_aA1s`sWWUM zvFI$L#{qGSKrCxUlQxlKJZ8+hZl_pPjg7IV@A=ci*L8^ zwD~LN42jI#0ipb2286M%i92ew5^V7@^A@yo$0c`6FdI)ZyncMQ0~jAF4a!HF#ekV< zci|SUvH~m~XU>o@$9h}Kg|-tgv)#x-z8zlX11vJ`SWG>rz?R4TV6l^!Nk1-#BV){P znn>P;^>BJN3%aEYX>*MTd>>`Mxg_ITW;&9M$9u8B>m@(a zV=NPlk7P~de_NHMN&$%A#u%p|9;w#esB)=a4n4bMZspp6436$h*?=IprM4o3I8yKYSDFG24RL%oTZjpFJ3UL$H%lCDc{_kD$I6Y! zD#n?&!>53mMXPvy5wIo6y0J0|L9c#9QH{Psn_d$Rdoq<*S;LCvOYJ zT-PP`b|b4^0lV~g;PlFlL$EM*saL0(biL%j!GT+PS2*u_RgCJXb&G`J+?w%fXsV^8 z00utV@!JqVv%H!uL6XP+4L-PMbNqYvKft$NVMvBGT1$0lu_VU z_0kRzeo>F6C`QP`(%8a5YDS#|&+Jkt?3mL#pEhf=Hn>$iK^ zWS7)9$$CK%yy_OWr}g3(0n_-~PcKdtBTKivj>niC$P9)1Nwz0s)BCq}^6}!9WYGhH zLsXWp=5e1g2*Y_qlxz~GC)use2b6ZtIqE`c7dJOh)lANeSxUx&W5HVgyFGESy<@Rm4j@Kml!1D$LG`Pcq3-% zINSNzK`fPDL0cVf8s&KNL$cC#sv|gj%Xg`$<5X71nix`{J;$QJa?0h^!}F&i3}S(V z*s9)Tf@I*$g)u--JIT!aTgVK54IK@yXAvZ3fQ%J|-B~{i9-0(`pS1e8-9XjthJvvu4JbrTS2X(W-}JdCXks&bb(+D=gPpJ`7|# zi$SA0W~q>j)1zkDm+~uXdREmC;IE$ltpw1=V>?|^ZC5F?cxsIc5bO@JIN}$QNA(EE z5VXa+hJP0)V>mm@$yHE>^XX%20TOkbWv0LKFb{by~W6f0wq1tp{K(XR!a8bEK9 zRxw7p#I68-=Vk$-FRmP~31&fAZ@|2ev4ykVQy;rU*`6{m3%7{wj^CvvoVh_}8p=Y2 zjvt&c!Doq1QOgd_lw8G#=^x=%AuHFIoPz2e^=K0Ic!|kD3#qYaIC_3zO~YxJPpe~x zQ%3Y;4}JBz;3dY&Q2wkv1e#fn2au?q8zPuMbR=URZl%=b2>(eAx6(wGtt_7nO%ZRU z)OuM`I2>-i8uoD^dwE+kxDm@|b(eY;h{q)i1N3g>t-So$*Mnr!`$c!MT0@cS0HJQ= z+nPPMkY1ZCLp6#c_c*At>5cg?TTKm%)}-6#G^U4z^qj3tG}jYLfV~bXiey;8k$1wF z?6J#&@k)+FI!#AzCG&(2vReDPn4qkm?>1s-(qI6KM(&knzUHwG*>Gv+yZy1Ck>r^O z6j>W}AodJ!JMv}lS;sd+mV=vQZI=cR45g0DT?6=h2#b9Hn-8qf;J`ByeG-i2yF?9Oz+WDSqn3H3+=KSQ54u+Gn3IZ2w zJdGo^@Ws_0d;urub+rND24{MSr;d%5lZ<1sFm4C7Hk8I=3#%z)ZjhG@yeXpNy8sW& zvfhwP?FZSfopO2)h*>}(Po#|90mjpGbr#N9cQ>Do#|-azu1AI);P1k?@?j(%vUk$* zW@?m9gg`9av3f%eImp<{Rntx3$H{PNRdh@^ALMv+Er%AJY)8Ci5e1>ttSNyYAE~Cd z)*4hM37shakF|zgt?2Gk!P{+v(RYIzx|)Uf%I9w>S9Zp-w2tO9K}z`V~H@;duM$MH#0CA(pPp2CEGQvW`cXv?pl%nHp_m6YpVr5;JCdaxhKcQX z7E`VqEQ_0DCy!#H7*L-@g=?EMMSCl6)J1?5FF*b5w-*s)|Kz!5u&s-tge#%V?Z?*^ z`pW2dTT*?@$MqaI;?#V4kwVyKGY{U9IOo|1Mb8E0^qpnJ@bs8Z0mvHH73<)5kYQ~X zw&5*|ijlx64hxyt(NhXfI?E|x<^T$Ybe6FkO2BBSd43k7C!-T_KFrp{3t5TzFd_Ky z@Zs$BNkb$X;QovazEMj2Ynzw31%BQMpPr zxo8DBreSp*y9k1W^xLVwmy#%wp-B8x@5j&x$?|5F@KKBBzy?KOmJb~BUd zxlp~B^|oFg^Z7`&w`yG$M4ga_lz69)@dr`|JYl=bMIT7}`pH0Vi?Wdfzk_Vt>U1-W za2#pR`>90&of7s2K#q6C{zb4CrM@QnTX7GI%@#S}EI2W7ms!lXaAp>g-~g@Xj+yVT zuxr^Xrm_toVh5B3p0M=o_GW;(<+q^^hT$PzT-+rwBAOj+uJbsAX0yeKRF9oTK<4f9 z#G-0#R4J5I^T%1Kxp1aL7(P2O_G0sTS+czW^mSEOsxW_CtPN;I_wS}_uqatJ0iTR} zSgqx|*b-RZoRULMf@2%ZS&T@R<`4uUc@`tGJ;LDvhEzF+GO>5rA)yCkI3-fve6d56 zgk(1roi)dsRZ`)L$(tJ()`yiCC1h3~9ePs5RM7N55Ax6aS$5sO`LA(V6Ypk;K90!| z2lSj{KM**lVaa7t;PMQ2N}6Lpt5fB4Km{+d7qa%#BjOydm2p=8lFY01CPVt!%mc0L$QTaU->Y?(C!@&05okhl2GZ|53(iIZc0 zQwj_sE)lOcm13lo3r>DhNN~I35)*h+XAFL>ti38jhE7-NO_MV2x&Zt)J&g5arE&P$?`w{c3!AqPvvpNi# z!(H?>W}73Y#;lB!rpT^0IlWEhU0NzT#-aQi`@1$|W+Ig^qe1*hJ7?x#`F`(r+6=;#a()qi$1+?a>Z#WYT?PxE5(sZ0zitwi8MaOccI0iq-OS^OCM@BjM zUVEkYrfG2wome}q_lmlBHF$S46}+0e>v}`5AkQ1bkH&m+_{h>+-t`LX(Pw>aOb@DO z2bkBc_6u7cuag%&@ktJT%vU<;sLvu0*>h%3`|jy4$#~3uFvAGnoeb9;$9f=# zlhK?*DU3EyCxbnQN*N=4*QuaGAC2xL>qybA%w)V8x;s>%o?~^77l2)l>UeAIb8I@) zweaoL>mb#k!biK8bqZ_O|9*hqlNqkVdd#7^>jc$j4nVLK5wcW+YT}MQrX5XK)huIT$e)ZX#wN=i^OTM)>xBWQ#YSxv_ z=2d5F#^JF8@}I7_VkdWdxnIf|CH&=XD>lfun$PUmHrI}erBgvu9OQH{8k&s>#az-e z3CC#^^8lQk59UISnC0o=VxVgv=hKtPWbonWoStiJ<{VmmsuiS?Y7PQF(<%5IIj$H_ zHIjf`m~+C<^qGi4XmzO#1!J1}QkM#LSG-ijf+Oqfr4|=9*f}Zk%mxVdyuKRT4l+dL za_l?F+6?=1YP|%!j4@B?)b^r)M?FuQ_*>5J(;?4K#*)gZr4)dSG3Qvf?P zPB^fR5F~kg(mH#PG;PEjBfLy5biGITZJ_SbX_#cM=S;+9-83OB7_-#4)7lWD=R@>kw2nDG?JCo{Uf>+1oLY>tp~c4U_S6%IP}3l}&Bc#BJ;BS5ilp;?v2o zw26MsJv^B^%YM3y7!L9>wU!1~-&TAXdFy&OcZY^`RTM>cKY?sK6tu^m@Z#E zkKHNP+=1I1-;-}R5RC`qE@sH@f0p7(9x%xf-`i@(q2Q8CvUZL6B1`-5(wigLVAh{i{!A z2TsOENMIQ}I6ivBl}@G>&LtZo_|}<+bHT4B?vCx6vwqiki({|V)wISTDUvlL%_%UIW(>2Gb9`oohoLK+~Z|$IQfa80t{M6@9foU$`qt^Q-RQYFq<9%!I}GM+ugpF>&|aR-a7Vy|?sd55J*=(>K3ij5D_10Ltk%zrmZ+6??@-r_22Ytj_l84V9g4 z^c$u-6_Ynacq(MCaPmw(-=OHJaK8cB)1&bQgHI3E8;CwVmTwUJ^iaRy_fwVdhW<|# z%A4zOs*c_qk5gUt=C+(_!Z)YqRFB>qrc)jK=4+j5@Ha>8RR6!Zd8gLn%}G49J#Q}N zspXp9>6y)Y^J`BH=9^P|YHlBU)Q`P!QYT6{3$S-je=>Fwo)@E==0$A32N}j%pIi*| z2*p^DvulMO-ak2y|`i+Z4ALaz4l@dZj6;Zy)%=&MNB83 z-MBFTI37N`u4DAjU0?Pw^f)gX&#np;-aWAU=|v->p7Wyd?3$7>Q+<8Osc6W?_3OzE zDZ{n%a`x zSK6<3{_BSA=CrHb8@1V_)n-C78{6k>fE6YB3hNX1*W3BuwDLQ?IQ`~#-(+tAGXD#| z*M6+uOu$xsv%T5spPX|k?Kzh}{`$xE#^j&ZziZ(0cfY;QBM29^nhU0PZF?XUhv`^NwA%GBdGdr=+dnQkg+w;5gJ zmZ~tD5YTR-CCzK#zAgXmx9#u#vHkeANP!Iq`{|0eMY{dX&%fQ6Py_b2K5pE^jHv zv^m#&DmKKX_H#y9G6ktPa`KM5kMq&AZ8$DCLMm&>NYh(%(QdHKuGT1hflfT*L+clz zxIsqVxR`%3gy3&n$a5a_8xO+C=8Xtj3mI!+l-cs0+XiU4W52Q}A)Si{!%%YM1K*_M z_9y=WEA(+5q~i1=TQ_#@!#aerg}mF%=W4QJD=>M!9}jq-q<&@{qz=23C2f0fWn-S( zmW)iBXPULpoV<8`OthdCoHN1SHbXfwaoeE}bCGlNO@$4zoiTj-{@G1&#<9nX?qK4Q*a?RV;hc2%4rix@5QR*RaRFU!f=G-fM0Fjwxs`2y)Z5I z6I`Se^Il+Aa2#+I2uLQ!tu z2AbSTv9Ypu%ca%gV@xiK^Tp_MBVJF#)D?~{d|>a5Pw>E=_E5ZaYpP*G8Z2%Sm8JPD zRN>4{Kkv~AxgCf5{dnD^4|4&$rEBvWuprK<*s&(6fEAsD%OUOVmX)`10e|lOen`&m zy8GLQneYk+1lk%J8%IRcwq+>ZtrRU)OId1DA0Ls|<1i12@Uz#b`V1R2hnBG;BJMyI z$?mZ4N^HedmGJ)zo3=dES$ASVne5pEpOuTCR8GFsO=hTYplHZu%KHYb4*!h}u`f*O zarOIB9FNV1xrn+&nC~qI7dHd+w`HsMZI7x#R^b$f^DQ~!;`X=5p1+@9B6^W4&qNar z=%UC1oB@mqLsoKgJF@{E9@9G;^8Vm{l!Kf~W5L~KGJqa{Jwzf}3WxEzK$XgRaYzrJ ze8sSD@{W5Vm7J}w^c0|D`s-bx}DK7t=h zWKrXujY)gU=h(Y<{-YnlU3l9OX~*AU{2UwFO9?o!0q;U{Mmk2R_{}xo3L~t``2zZy zm)_L!|G2lAl|MY-^@p zC>`(x)*lWk-o6PNu_I0v0Ksz}9BWLu9-Kh(o(YaC`xF=O9E2&mhWV`E!UAOlI02gi z2z7u55fJBGfwFg%rx|}!;Y_{t-8sA$%@1e`xI?=sv29Awm<7MX6T$Yd0frRtM(lp! ztoK47=qUCO>!%?yQdLi;dR_J+)`ck*0Mg=7p6Bt?D1In zs>tWxI5O;0Ow^`yPI{Aju&^dR0$Kok2A4E@aY$FsJplTF3|0#^Ot>8oW?K5UzkQSm zqcjVj^2VfNsBiCKS0N>B$MM{&Z+ksg7RtXzxKlX$CJ_sJ`q+0b_^{IKMGTNuRg-4Bp=c;`c$ zc%x0&tpomrk8H55I4RvfNuk=Z%Xo2M$2g%0H4Z1`_P38~FAqh%YgmtjmttRl{IbTX zR3BwaUQ0;G`GWAesJEXMuaSfKw-15fJ060vIG807?%}+O%qU8fo6oWa;9^dcI$sJk ztou8=diz`Gx6PkgjNn9u4i%e}PHs#H0}R~(2P1T;Oo>x4&KHA|J>B8V9v0}stKl5< zQwp19*w^ILBheL$QzRIOEtd1uQ1Az#bX+6?Was$>gT7+ZPsnKqiIpb6S{5E7U?`O- zj&LwwD%ZV#2u~*KEOtSMU_%+La^wv!F46P z-ddyoTD;TkJovcc@OvF{v%nvg*QSBOiraL~RH;=m8l1LWu_eCe<^Dx9;XT;-X^K6H zrhWGCoSkKCJ^~BEOWMLNGCUP!c6SkG>g@r#x^VKgDYrke!b^Q_S2#pOG*Mva9rQYs zC|nhsVc|=QKH)#gecbLJ^vXx~ge~Pw2!O&uK|+B{w-8|PT*%Fa8f!J@5~|1i)qY*W z^8eT6c;`5Ll#LXX+)IOp%uYr_*wIkmG-K^ zx;bZH;@~#J=EK|?FJ1F+AjHLD+%)(-6Th!k&#q>Zcj^ovL6Zw~mxjL}3g98fE9H23 zhjoB{_ki#fwSSn8K-V4mTjlQ18^`E)*mhftvc`pU6;(JMiQ753H^3i1Cb@cB4Ub8w z88+W*m|8e3Ue&xCol=#TQTlg!d+PFcrsflRBR6FW)s-;IW%ZW4X(9J7N|qk2Ya&MpF^zS<6BaE zQQ9(%?wr2?jqSp(WzgTHDQOYVu~GG-`BQ7Z+TH zZPn+J@ji@j@6+Gx?I+fvKusDPQtO$B-~)qi8VI$7uqUSo2VchS=T0Pyxi#Iwv-A2-4Zl@uno&T*NhZ(a2n`6f+pR<} zP+%gdIB@?+?z0d2mrjx5K1G_>Kg8*b%^DoEBdrWHjar1HU)~uWmxPxBH*i z75HCpp2L<6UAF>vI;9{t8#H*SLV~ZWgYqtxFjeT`@O*ehVopLzKpt39$SCZ4=t%*B zeVA}ou7c+H_CDuRvc=tvjYH_;<4n*AAilAX4P(KGBD6pYPeI>^`?U zx&;DkI3O=kEj4Kj84%#|68xYp?^Wn4YaiwU&Vb;JL2Z@MKsarg-fWJJ^MFM&?ShLb z8k{wt-;T;Varr0{dw_qk7r$BInGaCmIl{vSLI)Iv&hV|A>ri~Jl=_=xrr@h*z>Y)V z?Qb7Ht$Qm%0o80uVHr%~xm6}_HR}q&uvVH23qQ>HdmVbvs~=vAy(JY*Z;J!l8f)QR zNJeX&%CIW=W>5Z~U!|VVw)iDIqYcLs|Fiyv>2yHjxA*>bzWCe!@*n5>_usU(vcYL) zrG~QUwj17H&`a`S^QF4tVHHeq2R07Tre|=WIDkgLIZJYf&d@u9q>#=XW}oL2*igRb z;)c2vlQEygMJj$TK%mMipsu9amc30IR8}!gG@zhzSc}DGJcAGIT?q=955LJkaRmSq zE^XeH-6c*;G6z0hy`yI?hlzG)lQo!+hD~t=ifhN3?6ztNLj&-45Dnl7AI5Mot)IjN z+x#h}%h>Fhs#>rZMM9f;hdlwX5enleD>epBLiI}+t9vU&;+QSHEfa;wZ$F`0Uc z0hU@EnSknYN2xg6$UlRNDtv?Ov>SE;M}+fDa-wr!cNrV6b=py3yz>Q~!9x?W#F!P_ zk^~+YEe{Q@yc4bgRqs?9S7BML9nKfah{T=C>XjDun-woneZZpGJIw`MXsg&a2k!`& ziyFg1bL}-d$&|lXFPsy095FO(+T2AFMvm<5k00kFHXo71lB_Q$!lo%uuLCkB(Y*ML044GTOBAXFj4^kWvsFRgVlPD{Z1JXvvml zqk=_&Ni#A5kQ-Y!?-?sMHneb#G*)4l$uypj=ko%x=Ljd&>rENO9CG+;!2=Li9%d1= zZ|?tV?MikgHFfg}SSKfS*%$*P}4GP{c{9|Uz5 zqnW|T$k;NLYhDE+PBC4=z!`BnUS$*R)gt*eB5r4IIOq+V-O@arHq#kWP#T=-gn<#r zrrtBhQN`gexu+RAeo~wp{4K+4k3p8OIb~aXC66lRx`A&O&8d| z$Q3k{f15q_s5B!KbnH@0PfTKg@s)Fis&j@ZvvB7o#Mo3EllUKoDE{Kv#ryHwyY!Gy z^YD|P&af*)V0y_cz#_vsjNyeIEW7gC&pLk7S=ynZZICj>%sd|G+2*0+=-qQbk@bzY z3KMZU0>fiLCI95UXlT+LV}L&Cib(Ko3(V1~icOiS+{8;c9?orF*w6Mm4y^80w+sU? z1`Qt7IJykDEs}RAC9)IvH5#v{b33o2H{M-J*uX4ycn3~t7+Ol#PW)I&(33keY7Y!NOB9lle9rI}$+MCl?0p41o;Q5Vs9)1L#EZ!IHWnV*BQi}{RU29Hq1Hrlm_7mYpr)N<-;Dt* z2SFZ3V!!bp?w$L+JsP3goWPmQIvmsv4>mRfs~kRoYA&girw8?A1GY^$=-V6H;+aSk zdRWGN4z_|h0NCvv_poR-Zq&(wI8XV$4k6>L+g$ib3jWVx%SQjs-=uwN#J}wNMb1c{!*5Do=ZIb6jPVh`y zWwJmlK`fkD=e$n6q-i>wKV2_9eq)b7eeVPZxM@|Ww!q6TlF<6tnLNRp=6Sv4^Emh(wPtK~$;0$;bd{%K-k&@Ob5jjZI+V8akRVBHp-f+hLMK zQMxGT_(t&_K#u5afQG@I2oK}PPVU>bJ%DH6jkd>~dGF$Hhe!@8nUpdQFqD4N4yrEr zMU>)|ZotOIH=z1+aK6!Qh3Fn(5yx!;4 z!k((3!u(21EtWYhylh*17j!6nR${`dn`O%WH=n$EFjwEkq8lOMP(q3^J+C>Om?+^# zXJvUJaaGF3YegHUN*HZ7H?I8xW~d}_0U+rV;U6}NEF z4Vu*Aq!E5_YUGjWOkRXn1)EHT*el%ZnVtM%6%Qm1h`ooGDyZ>Jl!~17H@6N zD!W)_$*h+e@2q{^-;}1RvT)m$T9e_W{YZ&}z1qB~#X|14skMCJW*;oJ8+cgO*TF_E z#tvQAfr68Z=w9en1?#Fwo=mDt-W>;g}QdL zjbgJFN>A}DXu395zs(=5dQK06f`Ru4XRZ>7!mw#bTEfkPQ}b2B>|um`-Bf*p8nuSZ zO1q{*WZ`^VB3m4oDy4(R8J(F_1ssm&F3aZjk?nBmg$F};=GGW!lLf|eTi{>2%ASCs z%*~*)!1~kSpq?|tYKaR@h-LLkg2fCP$rwU4QK~e#qdkTg9^sEeROEfS^kM@eWQu`p zsFsBaZYi$iE<`IyPpz^St+u}_zKukYwrcGcmJUIvdx}ySmQ;hyu-BM}b%^kvEU$Y} z{sRKM2o@3^c598kHp?JkjxJHcVrOoHesISVfx|ZZspXxlDkj!}w%*}0cwUZH7#~Vz zDZGf)PA#963=mNv?vjcx&C=aQOc0?Rn3(@nS(^asudt(mgIpI{r>tBux480v+`DM_ zXp5j655CtmsW>txKj_p#R4&>{;25GSdI7hF2G}#5gK|8qIq(+7kAEjv89%WRqN@%e zx)d1bthj@dt*nPMH(h0!7^Im7K*qWwkz?~v^etY%Y zvm00xZ;BJ}qF^KA?iR(OT7`(0wv>rQcwBRj2WPh4L&G;^I)ny{ z;!$^&*{jC3rR$bef{fLZnvuhjn>*>0qSm)JiBXle9X1?1>;fju5?rEqi)~Hl(KzkW zWK$luvoE`H*r^+cuwEntW~SA^SRGq})M6NdvAJ3eaW*ZP<=|^tWV^d#ICfDEKjIxH zPVSmZiBMf-8We0lmIlDJ4YlQ^dTEuFzH%zuS1Iy>$Pv36n1Dw?i=>vqBWp5z{3IJT zD1%*-5US;g##0~0zqVj_`~=?lX8QxV>ns(RD5-;8RAG7;i&bL{b*U+_p^?ve7D8QB z$rTRoR7vb{$V_eNI2uA`99ZlQNB|o^hE{d8AtpDeu@}(%@{sb(Tw}wdBJ4gGHElb# zZ*iq^6B@!im4FSYEU1RCSQNO^Sm})OQ!V$h=pGRT#&}1Pz97;CC+CDkX9i9s3`5o> zEYc>`q)VXKr1`-X0@`ZHA7#YwAl@u5-(#VmMiq3&!idyj3jG!+8kSqd1{1*QFbM+L z5uIarJ?;eh_8YV_Oop2j(b99+F|mht&-4GHcf2%j{W+-_j)2U}V=$8CTp!q*R|}%x1|BGSz6< zMF|219;RwKa2V(8LgpYmHu3s`+#N)!ja5LXE?P5BKbr=og_qksDYE$ z^ChS5I}lN(*al?j!8YftSs?fro<@Ryta!oJ1uo6U&R^BC>0- zvv>N09&n*>xUFSMAxjo_i4e|8^YZ&0e0+m+weYVBlOZfTob1_xrz)8PyFt%P`NLl9 z>GGh}4LraPxqvHqAvJE@JLH*j3wv;TaE+;LQkTD0QZR`bE}9mvlFQ=Jx9J}ovEEGZgnl) zF@wl6IN~8UqOzltZj>gOG>hRe@E{HimN(pBKa00QntMc?mu)a+i-xxWl}D%LMf3%K#z7ByB!SQ?VM{Gt(!XwtJTPR9NAYyTFoQP~UQkIr=sEwmZ#3XCj z;*`3z8T#LzffBp=T*|%^uzA75mY{{i>V;Vuoh@!-YKw+9VN%mo#cOQ`J~e9f!sUnC zhZP^rxq3+|e-9l~Wiwhqzf{Af@yU`?BKF5sn6O6peC<X$qoxE zU=}i51M@?&l|fzt+g!k>(V^jwaTdkm<-?Za^@)XGI6%LdM7+ntm6CX~&6;H55j}4f zd2wWfs#^Crxqm-$=EHCfIEHH$t8y;hI#VorllhoD6`SHx`dOG8;hw2t0praMCERGHO zjI?mJl7>Xd;1d{(s!b9#uJ_}xQ($3l^?js@RjOFeM!2lcuoA|S>1^`krSj3pNiNN! zJ<3ba@kp^dm}FaA)5b1dvN}S5dy;}<46STo;f4@qMJty?*vJ#*SWb~FhM0OIMt2& z)3Zgm_VVWr9+mBy3mnph)5GX+10K?XnMH6)7c*;-`$*Df|AWUC9kt~xM7&^2IHsb* z=`qZ&&4ITXDY52BY7r+Yz>EU8hZfutC++vC0M@Qn0c)uw-N?5vS+a$!%Mdd-UEtnn zul4h6n*)jNkfT@YETc%m74Qd0!)AhoE@9|F$=>6nh64v^q>@Iaq&+$0@#}jj&w6L; zTj<0Tg@G=NEaT9OmnXF}s3Z0tfI~6uC=KK9HRpMxKz;sn1C3YdU#Rh<(G5gekkzsEW$-5R7Bm1Q8kEuLP=HvRmC#yFEnSPwpY+&% zlVF=S;wE}$=L_#rZ8>pN2IB=9tctBzwCa-ADn|E7cs?TO}OCH(WhSh{ZhD7P_kJL&18p9nJwV4) z3j?yoMTiuu6sFGxSX{09g3p^2zr8EX_Pt%eAS!!yycCLwgHZp_w@VM&MA)CzPMYT) z*W9vgqI#P<_D!$h{+8l1?9|HfCSjC&w-J2QV<^%r?D?|dCQ;)Z9^E(4fb?<}Yu7Tw z2zyS$AX;EK%c7Mv-cA~H`H!IW2&g?92^$c`n9tw7n&mR8ke>QQwGcQ0$g=B?3Jeig zvG@+>)Q48;q>A*o;?@mHx-H^(2MHrXj7oEW+OWqM@6<3)r6{gDjs?=!R{I1A_U)xv zX76DUOA@(DoL2iN`_c}~=|b#QXdm3QLw@+|T~hviQh2B_Xj>Mo42#hAB|}auI_O@j zPNq&m&~gk0U&mrSvq&Gmy_0{XUy1^wDT+lzX*8Ird5NJ%`s1|Fx@Z&4@(8%T%;DkH z_}e4x_632i6wQclXp++}Yk+m!)8ZP01|IsZr&z=j7N7LFhefvz5({pVG{izPGtXAT z=txqn3%G~hg~c0uvB#pt?6OJ=j5?MAGRg`|bg`P9h#)F*x%S}L11UyULQucP1A{() z`{v75=@rsJABfoh=q>^qyY!=nif zI)tZCBqQ<${$&RHFQT#2w5!3XX|F+!a(fw6`e0f0Vcr?)pm&$xy67lJzX-{k*1$4& zTN+MJhlH11!chIz#=Ic%g4_*6;AWSsGxVz%b&@T!BfA*aS&D+*PP%d$Cbr7gEZ=Qo zbo>bZ4T6}LH1G`C!=LSveZz!FFg}uBd;q0#>(b8x4-bO8AaX$N1|rb4@ZPLhyl2`* zHg3tmj4mU_bhaIyMdKZ8u|s&fibUj})E--fU!JI}X2Nhj?pY6L}cQ zZrUz&CCDC;BXTzoX`J0%q+*9T2sO)mCk}P!p%`m%Zmgd~$Tmb?dnG)6gq^D1LS=vL z>QeHuLb5w*J~jY^om`-QMWPrn*-r}cPpfXbW34{lWW9k2XDYPHum=oMb|q)utfCet zlY`-!oiLNp4u>^&a^!pP=rU!=W0Okct?S6nW9nkDx#!3c@{`TsRQ2IjesYM0o*6&s zcUtk7eF`*Ohb~=Vb0pUIaL|`A(0LuMHW^vYF47>fMl%A%9%@e}!LQM?S)-6|ICOhV zoDf+jHrz`&v(ubkLXM!15=Fyz@Ul;A0eY0XH6Jv266p>S8jhr8dv?hp+Dw0r$#GHp z8d_(u;+!1uh{OT08+eptdzI`=P&sLr&AFq8_b-)*1(t{rlgo!QGdye&tG<&(nocD- zoL${H+95!;!*s3-EG3zQizb=r3?X?jL+HRZcQA<|h+<$cYf2Fq%}Xp!!v@GMBx!3H z-NA{<|Ni==Z7*0~^y8QGOZ(w3|M8#y{+G{%9wm|wRVD;KmO5v`z8JSTQ#>iZPrwBfuJU12rGD zQCGWl{aue|P-hNwRrc`ML5>+^z6!wF*O57BqX~`ew8KHs7XSgC%^=Wt^adc*=`;YqJm27hJd%LV9Ztmdjp4)!1OP+2DG`7bs62n{U}tR0 zJFDCoAezS>;oM#F#6JpBuK;jc&N#wQihA89ju1UR zj!JL;UaRwSj?mI80t}zqhf*15{e1)k#cvD;|LWLWUdw-+Gk53nMXQZTJ4W_~lyb3IgInO}k{MjS3H< zHbdz)G^w<;hj3B~G^&|RT<3fu_bNV+yQQdiADh8(W}<*Y)McPN68p~?0Mdg$SecL5dvb+sS}(8R@<%})07rElgf?E7{z_91({Fr`Km+~n-(*Tjik@Z=3! z(ot%vYo_lZqQ-%USfe(fS0oJZ1=giS$_~NC18fk0T>$_Wm&p7Pk=fzGTJ=ByiWc1B z;t8V`L0U2B7alhuPnXVEF}w-^cj5h%jESG*0lXk}IhwVA0o^OJ-|3d%Sg1YsWfu?u z(RRKd*YPC9Mh}#9*MIO! z4uJxAn!t6qnX}^v64>^$Pbhn1;)*M4JTs3#P>v7Vo*^K8@gtyjS0U^fS|5qOWC4^R zjNFafC^O0-TJ(l)EZSmP-}eV_B5e&9>lumr;sBBrCZnXs(nV2bP;?+8iM7ukQmlF; z&U-|th#qE=3JSn+@t{0#-ycl+9l$VnaBzrXf{Go&tRo~BktPy=S}SV^9jFP_5sVYX z$lH!!R^gPZ4jSIV5FqG-m+t6Y)BCK;)oxs-)$0k|m%3g@59qual3nAUpO;Sa>{u2KIeQXuAMV z<!l*YI{`c4PjGVr_a1gYfcFR{G#q0w zT;FCO!^0J|6yMC)EkOXTMklZ+O3hB5U@s7WVXtZXS!93ls^fRys-HeE0GL+*P-kPo z-A5m4)^+mwmdL{jsC&=^&Iu5(!jdV~sK<@~JXZnJep+h^A95AXzLC7Dv%R~|<3U?U zi&VW^ssq;aFzoyE&jJf!>aPCx>CQSQMU!p4M~eCKo^?r>Xk7CGtR>2@0SLJu;PoM6 z1i63(-`n5_=LWig^LklEj)Z}8QUfYX?Z^Rrn|F&0fV@$N-T>JP(h(>|m+5~;+5N<; zE!yjjl@`JoSx~n0#cr6X!E8KT9+0=m0YJU#g8{U&+lIXOMa6aTx|M3KzhlDI0ShYY z&q1DM=mP+-mlHDp#a2^^XO7?QzCt8}@WLPgZyl)yfP7)VJC($b-wPbF@MlppK`aOv z3WQKDzRj}{2_UA1|IHW>M_yx2)}#1gk`!8!Mv8-(@?_~Bu{@ttK*9pJ5=*0EM24k? z1!Rp6nuuTc%stS==4)QPzv50GEwX7GK9svy>#Su@iHRdM@3naXdw4I|`^1=>tzgXM zWC7A@0fH==jWvi=F!F#2LzB_fU|GaE3IJ{a;Rv!&yaqhrZ(SZ21eC{A47L+!vXBAa zgH{v|7^uJfI%?h{Ke*v;sd(tyJf*4||+%x+uu8oo^M(-&7$@aPsm>w=}OkXd0%I3lRVfq`eOdAP4V6=`*fBq@X@SRk2PK+JZf@@dk$! zL!4#>ux^q#L~^mJ2Mj`T{5_1Vo-X__knBdN)apg8vzd1q8S$ z4p{&gO?4S4#TX@MLU;k|=-`3@6?|Z|K!8X+JB~Vw{n67nDJM5?9(pQ^)z;73TK}Kx z)t~QE1pl|me{qrJ-*M57S(!6VS3^#o&7|?0!1*bn6a7tL?{Ak3*Qr~6-dkrAn!oHa z4!Nj5!o*q_5WLFsv2eK=bn0=+*tKG;Z&kHTaj3dMV=Al4sZcUqw#VR-+70R<)_qQh41NzyaZur>XmO_@AczBG&|Jx1W0E3BEv7vlN? z3!HOe3sWN?1V+|DP3OAXqUJ*;4O>{9{+eG*=E^=f*7_K4h%>g3xxVOTp2_~SZ0$NA0X(e#e}{;ZdR zldsYMk4?f<78T70=E~;`3XxQByR^cMyLgNh{VP9m2yOrqzRynQwjQBn5UUZU!`_x} z@CDE)nrE9~lDM;X zBt~yaU!l8obij^*(C%@x${<`tswrKUV#w5Q9mFBA8yuSZ%~QDg(H7?n)3T(3`6m_3`$so1-z7)%)h z1_T|OO9!5I#H%0Rr+#Ns8>fR#cZDZ`fR3wKwQ2$4NBq>7+NB37G-ufA9_D{!HPYHq z?_M2@*@prEa_IiQvf5v3|FS=#ME=e(K+@tqm!A;b&UVqidGu}Ht?LwCE9qPx*#q0k zp0fP@Kr=My`xjVX;aOVBg!%aCa%nZoW6^%kO-y&MV z(lY)#^&D1ihqVBkMY}%<#5`gu0QE~cF2A#TmqCa=64AF{IUS{#HW-1WtS0%d$AVT2 zclmB~it;rt`2asyqxA-2P1#;qa#6tv6gi(c5?-mB4!%?2yR%8(vps_={p2*wm~8q{U^ z2@fn9JZ{K!!@;qYSYL!8zP*QDCVmiu7Lr)VC`%R|zjT7wX^YNTqmyWfGnEmkXOy7^ zMj&(XEL0{mN)TLm^iZOMPbpFbb4qz8fXEm;^*pPVZSSO%bjN%zos@h_&LE%v2>K zjz0&4UbygO!>R?8F`q}JqOiD*m%Q}akHSn7v7r3i`}?W!5L!eJ>h&|V{4s2zhnxs{ z;a4U{cEr(Fn1M;)h~bQXzM-c)N9+DRDeUBXy>Y+A_o|&Ppc>&vJZ%-k;2{M_D_s{PLOmR)(KBaZl6LGg$T+5 zP}V(1+yw;jDHot^fcteV>m2PG)#dr`fd5FW!BS)A(w<7h``JTTmj!_;AGf}eu5Gkv zLPCHtD`-I;V?Yx1U{9DN8Ri9HxBtqCkFs6};0S)9(%tygcMH!;2B{d*#;BF{r*e8g zMYT7&(tF5~s{&7{n47s(f{9ht9(>EtoVhKzlVkhp9j>~FG5#=^9c+?Xlez?YI6RIN zLZ^{Zo;B_OqHa-362_|t5!t4prDEI}TjP}Wlz^g8Ua=VG=33q2&-xZqG#%D6-NI0m z8OYx{{-z^B3n#r@LdF+tbelTvLgfW7_>%gr0N1n!AX~D?`u2GZ5Uvz*Ds~udsd+qw zm1v@kWyF@J@iC^$Rq|K1v|bX%sjhD#Z8ZzkV027ZA?DUPu<27Qo*G2X0Jas{5m56? zdqIuIlQ~Dqb}$y`ZbK#VIA;lHH`4GJ3)m+lT# z)6m)Bxjg*g=l3{{)LTLZ%?aAwwRdb6lyZwLLLb*XBeF~*roZUThK-vrVX1>L2XTiL zClTAdUZXAEj6KieOiDa>6stKmuh+>SFV82LM`Iw+-XAj3h20Y)khzSCeutrAc}{mE zMENab*d15#$wt0OlJm}jHhV6IP&SJ8O~XRlmb4CeR%8=@>8G*WE9R=DsZ|L0EAXm- zRBJ<*0d%@`$1gY3kjAPCY6qcNN?mVb(0?QZKc7!y#w9 z7X0`38RC~deE9U2Xf7gXH^EH_s3E51(I1f@K4I5EAxxB^{pe-t25UOyre-yh*k@7i zJXlmj#^($k+aHE9P^Y0EHe~Ce5Q9VIT#d1%_K`GvZ#C2lLi^BOP$xUzL&KtT;8(9k zV(5o@;Gm|CzOKq}-89x{<#8sK1C{~`R~ZEM`J~7_-Lqf?d)g4b-E{R@Vn-4Fn}yxK zEV`S%pyTY)~kM0(hD!gyU#)5g8e8Cv^6QJe#b>(~m=d8GXO7Ow+Zi8mg>9U}jl`6`?CvDQq zlnrBYn9(Nmah>2f3Sa1QtP1B{G5=H}0;_J!%PJ1WSup@N8EaA{SW&Nc0ucwYcyC6b zYu{2OCDM)=fJ++Bx3_o)C{rw8lyKeT@&5|35{VoH!XvA8-mdyqH)^9(u)p_>goA>ul(>V)yb2H-WeQt%&?mmMRJ?PSdC?`X zfx*zAmKw3WuH%AhCjrH*1;rLhW6?eo^y)$ZmUYQF1L~gsP*PywwnshLV#XC+w#P$S z{a_gi!j_jRIA!OIx8*}K@l3o;jbLhkdn5S_hl*PAmqBEgOcb|gMAoa8&+IyM@POk7 z!NLjNhkmXEE8f*Z;KCf^h$U!%^e=#GuxGM-GPsGXIa9Bo?srYQZoqiZJm|H*vHR$K z$(%kRm@k%dB{sBadVfu7%EYlUC0>-_J{yJ-_}u``6X$cW>mRH9_$l?=zwR3AypC+j z6gt2&GV-z#fcObAYa8C#F+-$XC8t2h^lOfWVs#!Dr~>XUYBH3BWN-_YR@9B;rN}3+ zy0Pl{Yq7PITKbhbO-_{M!iYV6Lp_GA7^zoe?2s-?W@cSRne@g;e}J>{D;xnBRsk|I zhX>+Ar+L##LCWhz(AX;)QK;+1a1O=?P zAMH_>>R^6EQM>``+|?ij`7N}xa^WN@t+=*~ooB~|r5u3HtI%$OoE+nGgnKe_Ud?6R z4Wri0YD_1Cs%>QrHFc3VZ3wPfxXe4pWw~P!yOqO46wEMw0UeZ zenjN8@;Kfy283|igZJPgWbThFQOCn-W6o4VSRw5xbenqB(fv7u$rkZFw_1Nn`k#A-qqn|wKd*NMC~!H?Ps?JxZug-< zGSl9$Jk9woh||EyNf=3|ug!6bTARw$C*H$bzh{ciUsGX+D);Zd zbH~!>U#-50e5zW&%NcDuIeSB!EPl!`wL5Mm6DcD7+l|tCM_O;K!jFgKIpko2BZv2F z2j+Ww+SSowahgc*2}HZT z`PM7Y%UMg)tE*Myk#1Gyv0hE^=eNK+d}K!w0*t4=q{PQAe^+=NfTDM(va+#v6-E2u z#*Br9Gjf-U7p_?42Fom(^~>g;Qd>V__BEyB5dRDkvxk9{?1f; zda?wg^W`EIW-HX_C+5g?Z>;UMUrq0qm!sBL%W+7Ito<6e2s-EUWTQdN{u|Q;!T5ge zapLjWkB^h9+xOw7my_qe-v+rZwdk=O3RzS0LUa_l?ukT+OHs&M# zusl3TDl=``sfmgc(OK3bPZIYK-t9Ynj-y+*)w}%PZ!Qc*F8r6hzJDJ*yXGu=J#BsI za<_EWJFM{gbKXD=F9nBo)Zs;OF&B3>{7i|wM_CY^_R_sppUNNwXMyoaAlB$#vTkpQ zTX|J)zW6!m_Lak+yLTbnQ8KRUH{KQdUq1F?f^PG7PX2q@gSwj2^O-B+keY}!rvub! z;eXni3GpuaTK$#1yEAR?{UpGMxRHplk=^P@mg`x0b-l}PoYobsLtpX;>G0sUxISfs zzWDZAatgCCOW|0>C`Bjy*oQoKgJ-?N2*2O2{dam)wvA?8L9x|>&~}_Ohw}!WTujf&e?xv1}w7((%-W1UYf&ZwXx}{JGdz=>flaJ79>Wf>`N3{d>D0 z@S!ch#J{%Z@&L9d_%&{9hBls0I;Ri3$9UEDgreKluLEd*&&S{@wRS@ZG|Dzw5-k z4ohddlsMV0>FQ5>o!^M{!v;g48R{s~yECIIgSh*8b^6Ysz3&?b>+ab3z81_Bi1q;4 zM0doc{GwpX-CfkefAaBDu<(p(^t?K!{g^hdl=22ezkWH&`XL}Yh5db{bSO9mRCVQe zDzRp8$c6ss6R1Fm*yet+Nb(2dCj0HLByr$}89!eF;of(;LM$nGoBzooNEqN2(Fei% z03OY!7vYBTmDsN>^5|P}{GXbP^o#!6$gXH7`H9n{x#cEincGw5npE8TalK*xz*A#t zpZapH?qjYs-!BvFD0U|;M;6=fPbB7kk5K99TM7BDm#eY*dWWnLd_m*WEN8$2~Ku1@}}2fi{gcD8d$62G2$V z3M5csh_dwLB1UHS=gq`Kh=#1SS^d;w=@>HV+8ir|C(`|G%jZGs+O^RVW{do7g}?Qs z8AHN*Q;|RQrSI;+t~hR|@5!&PB*^x*fayuIaK=W-jBlk|oDT7~v;b267d0X6qa#(_X8Vm61Y4Iyi%aXaa@d1wE>QXF)C_kOLK zfe%K$zclLR@);ZvxsvGq3lgv^B@fKU`Z~hbl9~xr$+ zdbdfXtW&ZV;@h3EUpIp>r_|FyYzfp=U9Y)uO{o4{{XfS1-e*I_1T+5a9ykp5784zy z2uT($OI-yjewrXZ^dGqc?skjk`)l^C%(p$n2PVsLe~In0XGe2pLR(u?AX>%^?q*oB zBwG(?0wf3b>VDnOet$R)p}%g~g_uP6U@q)lY|{I8cEs4bKRGOt?tYJIKV0{K`(xy` zWUUgOx(&pChm~%9=f2!Oyc1Bg>yNlwyd5>@>t(rXKl#j|K^cDxU%kJortwq6I-cUnCS!Y$?~F7$;NwGYXVP(KR!O8y93lt5dRuD zn6=qAdzt;`%UAO25@;iR&}rb0%0afDcxmk_VAk|7ssL{d@$@qXgl`4sTt658p15O` zr_DX@Qm8lmdp!F_FQZ)Lo?X(P&>n{gBsQ%@j_y7w^zy1;$-=6uH2&%#E|NsQZ^l*rF-J-*%^FYP<1 z72hMP);xb6-^b<4b%tWND$Cu$i+@DIu2_48ng<1p)m4EXH)Tm1f+V^g%&6Rh<6|s0 zV~SCM+&*|+qw9-hf!wLxJCOz{*f$2uhj3e`o@98q#G2cuV+L*@ez2OA+exOHmQT9f z?z#gL=Tn~31|ALXDwT5u2!Z@RvgpvSXG+l$quDRH19%LFiE9_F*ET<&E&s>~5B6-G zxhc!nDW5gzKF~ZqAEI}i3YOTJ7Wo$1{?yNIja7rYzQ`ZJzcR-^Q+4pZ$bH_Zy2pR% zTi7`G!s-ctuf@&MvxF2fxBc_Rj^;9$aC!T)Au!_!W!(e+Rx)ms0qwrsX%@k#l0Xj6 znCz7C+5&+nX!$+U(bcm&x9&v}_#y418S3z}`+cc>b~P+LyZbSxa#cnONhl<>UQu@pa6A zq49LYCeCGp3hF%%(Ql`}HTb(*|1(gW*LbON7dQ;O+b$IAZCl^t2NHrAMihbIvQxkZUz!1`8iC&sp_q@tEcpZUC`#EV5*7->QPTwmqdeI|$`3#Ye3r}VM90;!^&-q#+(#WyP=l!_NF`F)+ z)_5m0JJ9J~T6@OO?cEv*|2Y+AViX)`lB*NJSKGYt!+M%|>aRKThVaNmz!bT6LbjVO zKiB=5yz;O;+v;^FXZ3-+v_Co-`EqK80n^5uys3V7^_lvzO2b~qaHVq_#AmG5!`)^5 z!5`|-IMs=HQwu+H*nv^HNqbkVe`q31kTv1jJ1`q*aCuDCqh(f*Z5P&Q_I;VjK~Q|c zlAX-5kuP{Icq}un(d30;|8_Fm|NWpJl56ADFn5_P>i2yuLG`vp`4EacgjE0Y@$hf@^~7Xm;d2Di5zHQKNH1#0P{@tarm;hUk)z{$+T#F!8wu9 z#!)Vb7st6mmrlcYah!Rp-w&T#fe^unnwzeJX#F#DA4ZD(^?q5~SlQUhq*r~6`Srlx z%{NI?F0P^QVP;~mGsAkZv-CY&Zu?GCx2B^yXBJK|smB!?}($vRaJ0hx1E2#agGgLnBGMB-y$7c$<0V`f?xTZ4Oc8> zCS;80{`ANE_-VZ&yT6qwam*T( zGSk#xIr)!plPjB+j<5NGbZ_A6=n=W;J*+))bh~$m ze?YJW^w&?We01p6X2A{PXOBPc#YTqD%}+9STko9#A$C#D$CT$5vZHX%-}mukPjHH_ zQ+YSR$FHEi@`wQ*foQvt?1^stgK`1i#;XzsQdLR{TTkB z_x)h6ru#tuzNq?O7oI;R!r$Ri-%-=@oE~O(F!)Jkest*P-4MqU7DPbf>xSW~={3wi zlPDGlf&0zgLN6-P--CFGX-|m4FU-LW_2=$JU1Bi@j_!W+SfDMnw+lmXjoKgL%0204 zFXsD!@?1|ZBBF_<)9ssyKQMT{y9+}bGhHy(qp9=L0KZ1yWdN4s;AOk)8S%&Ai3{9e z&wJdj?F1Kut*(3Z+t8RY782(qjKsY#H2756>Qdlz5UW?3l++8bwv0byjyIwqDAhcIcvNuPUB?g0E zI%gDbVb;dyCgt0($p_ZHb192|^u_KRVT4=azLigQha|z1aV4D*sOamEVD+j&|M=x; zo#W^GfFUJJW4Epm;TU)K%ZXiUgwp^YVT<;K=|ShO0fOauDq38Yyn|y=5XVW&h(N26<4^QR|8Y`Ge4H_&uV3Fw?2qoqQP;i zpnhaIEQ(EZy+oh3ji9x%!(#xUHCc1B3Sebtgn)q6@d*vin|XEIN9&MHl_BTz^_dtc z@lSaV-`f+ccljpw&wB6C&!_D>?8zQ9zq!Gq3;A^oB(h0ghW{*tGnkga7m z_!%AX=u^J5&7+b=3dkQ2LQjEsBEp|-r+^5@Ch7@jlEP=DyKHP$@PT*Lb`ZulU4esK%yNS+q)nxOeC}dzI zuB^1nx@nfe(yOY>>@SDa2o%55vD^=gE{<;oLkz|41I5Zw7MIDui)&ylNp*%uN5ixs~5M5{pbA(;*$9jS0!4Re|#=Ky4jfo*r~%_{D!VGl*5C zy`)ut6=}A?K2y+|u9l;=uS-=u!n(Mb4o9&vy@WsbW?qd5b~_`)!sX`Sw84S_ds-rH z+kG9`o?DSd=&TIZxR}0!M~;r{)~%@fep0<^vdO!a9#4^0(9jvH9#mOpAj{6Snq
_GCsn9t4PP*$8up<5NazaB;GfDO^^F9~k0D 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-06-30_201736.zip b/squeow_hw/squeow-backups/squeow-2023-06-30_201736.zip new file mode 100644 index 0000000000000000000000000000000000000000..1603fce01746e64aa5c2c694053c7d49dea01c66 GIT binary patch literal 75092 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 z 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
M4jAU_p(GaIfU> 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow-backups/squeow-2023-07-01_181420.zip b/squeow_hw/squeow-backups/squeow-2023-07-01_181420.zip new file mode 100644 index 0000000000000000000000000000000000000000..1603fce01746e64aa5c2c694053c7d49dea01c66 GIT binary patch literal 75092 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 z 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 literal 0 HcmV?d00001 diff --git a/squeow_hw/squeow.kicad_pcb b/squeow_hw/squeow.kicad_pcb new file mode 100644 index 0000000..4daabb2 --- /dev/null +++ b/squeow_hw/squeow.kicad_pcb @@ -0,0 +1,3901 @@ +(kicad_pcb (version 20221018) (generator pcbnew) + + (general + (thickness 1.6) + ) + + (paper "A4") + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + (50 "User.1" user) + (51 "User.2" user) + (52 "User.3" user) + (53 "User.4" user) + (54 "User.5" user) + (55 "User.6" user) + (56 "User.7" user) + (57 "User.8" user) + (58 "User.9" user) + ) + + (setup + (stackup + (layer "F.SilkS" (type "Top Silk Screen")) + (layer "F.Paste" (type "Top Solder Paste")) + (layer "F.Mask" (type "Top Solder Mask") (thickness 0.01)) + (layer "F.Cu" (type "copper") (thickness 0.035)) + (layer "dielectric 1" (type "core") (thickness 1.51) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02)) + (layer "B.Cu" (type "copper") (thickness 0.035)) + (layer "B.Mask" (type "Bottom Solder Mask") (thickness 0.01)) + (layer "B.Paste" (type "Bottom Solder Paste")) + (layer "B.SilkS" (type "Bottom Silk Screen")) + (copper_finish "None") + (dielectric_constraints no) + ) + (pad_to_mask_clearance 0) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros false) + (usegerberextensions true) + (usegerberattributes false) + (usegerberadvancedattributes false) + (creategerberjobfile false) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 6) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (dxfpolygonmode true) + (dxfimperialunits true) + (dxfusepcbnewfont true) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue false) + (plotinvisibletext false) + (sketchpadsonfab false) + (subtractmaskfromsilk true) + (outputformat 1) + (mirror false) + (drillshape 0) + (scaleselection 1) + (outputdirectory "jlcpcb/") + ) + ) + + (net 0 "") + (net 1 "Net-(C1-Pad1)") + (net 2 "Net-(C1-Pad2)") + (net 3 "VCC") + (net 4 "GND") + (net 5 "Net-(J1-Pad2)") + (net 6 "+3.3V") + (net 7 "unconnected-(U1-Pad3)") + (net 8 "unconnected-(U1-Pad6)") + (net 9 "Net-(U1-Pad9)") + (net 10 "Net-(U2-Pad2)") + (net 11 "Net-(U2-Pad3)") + (net 12 "Net-(J9-Pad1)") + (net 13 "Net-(R3-Pad2)") + (net 14 "unconnected-(U2-Pad26)") + (net 15 "unconnected-(U2-Pad27)") + (net 16 "unconnected-(U2-Pad28)") + (net 17 "unconnected-(U2-Pad29)") + (net 18 "unconnected-(U4-Pad3)") + (net 19 "Net-(J1-Pad3)") + (net 20 "Net-(J1-Pad4)") + (net 21 "Net-(J1-Pad5)") + (net 22 "Net-(U1-Pad10)") + (net 23 "Net-(R1-Pad2)") + (net 24 "unconnected-(U3-Pad3)") + (net 25 "unconnected-(U3-Pad1)") + (net 26 "unconnected-(U3-Pad2)") + (net 27 "Net-(R2-Pad2)") + (net 28 "unconnected-(U3-Pad7)") + (net 29 "unconnected-(U5-Pad3)") + (net 30 "unconnected-(U2-Pad18)") + (net 31 "Net-(D1-Pad3)") + (net 32 "Net-(D2-Pad3)") + (net 33 "Net-(D3-Pad3)") + (net 34 "Net-(D4-Pad3)") + (net 35 "Net-(D5-Pad2)") + (net 36 "Net-(J8-Pad1)") + (net 37 "Net-(J4-Pad3)") + (net 38 "Net-(J4-Pad4)") + (net 39 "Net-(J4-Pad5)") + (net 40 "Net-(J4-Pad6)") + (net 41 "Net-(J4-Pad8)") + (net 42 "Net-(J4-Pad9)") + (net 43 "Net-(U2-Pad13)") + + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical_SMD_Pin1Left" (layer "F.Cu") + (tstamp 0477bad4-91d0-48fa-a528-c2785f560c45) + (at 29.3624 52.9844 90) + (descr "surface-mounted straight socket strip, 1x08, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated") + (tags "Surface mounted socket strip SMD 1x08 2.54mm single row style1 pin1 left") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/b1eb3852-85b3-447e-97c7-dfd2c1ef979b") + (attr smd) + (fp_text reference "J3" (at 0 -11.76 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ea2bc791-df88-4a09-b15e-5a49da94bb89) + ) + (fp_text value "gatta_audio" (at 0 11.76 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e2fbc5c6-dcc4-4244-9424-b212b13ebedc) + ) + (fp_text user "${REFERENCE}" (at 0 0 180) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 12d1f569-4944-49e9-b4e0-4d24c80f8f64) + ) + (fp_line (start -2.54 -9.65) (end -1.33 -9.65) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b024661c-12bc-4e1f-a78d-8c60896c8128)) + (fp_line (start -1.33 -10.32) (end -1.33 -9.65) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c6538e6a-8fe6-4952-851e-07bd57af364a)) + (fp_line (start -1.33 -10.32) (end 1.33 -10.32) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ab52854e-f4f8-493d-b01f-75c321bdba32)) + (fp_line (start -1.33 -8.13) (end -1.33 -4.57) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 20dc1487-e790-401b-80f5-d0ff755cef8a)) + (fp_line (start -1.33 -3.05) (end -1.33 0.51) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0495942e-27b1-4ec0-bf8b-93290796ce5a)) + (fp_line (start -1.33 2.03) (end -1.33 5.59) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 54256c41-a66e-4f42-af9c-d13ba3fe58ab)) + (fp_line (start -1.33 7.11) (end -1.33 10.32) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 26f9a554-2c6c-4f52-bd69-77102d8e65e2)) + (fp_line (start -1.33 10.32) (end 1.33 10.32) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 929bee7f-6184-45f8-ba25-53971a07f183)) + (fp_line (start 1.33 -10.32) (end 1.33 -7.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c539ccb4-d8b8-4928-9142-04b0b38237da)) + (fp_line (start 1.33 -5.59) (end 1.33 -2.03) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 378c5f97-b71a-404e-83c4-a3489e1c5767)) + (fp_line (start 1.33 -0.51) (end 1.33 3.05) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8c285833-2d8b-4de9-a231-298ebaf250fb)) + (fp_line (start 1.33 4.57) (end 1.33 8.13) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp afd4d7c3-bb2f-45d6-b7b2-86b1dedb92bd)) + (fp_line (start 1.33 9.65) (end 1.33 10.32) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b1cf992e-f921-461f-a99e-b4c394ae1b70)) + (fp_line (start -3.1 -10.8) (end 3.1 -10.8) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 22c3363c-18e2-44e3-9f1c-577f43bff3d0)) + (fp_line (start -3.1 10.75) (end -3.1 -10.8) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4754f6a2-c1bf-4558-94d4-90e6be5ef242)) + (fp_line (start 3.1 -10.8) (end 3.1 10.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0c1d2902-d3dd-45a3-8cd2-4267029b4d57)) + (fp_line (start 3.1 10.75) (end -3.1 10.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8e99776b-268d-4df9-b7c9-1dfbc91ed5d9)) + (fp_line (start -2.27 -9.19) (end -1.27 -9.19) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 87b01419-4838-41e5-9fd0-e56e247168a2)) + (fp_line (start -2.27 -8.59) (end -2.27 -9.19) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9be5c187-d9ca-43ec-8dec-bd2c2b9bc9e1)) + (fp_line (start -2.27 -4.11) (end -1.27 -4.11) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 73aaf12d-cb40-4593-9491-a7b897035584)) + (fp_line (start -2.27 -3.51) (end -2.27 -4.11) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f6bb6e1f-6251-4cd2-9386-a68e7e77c73d)) + (fp_line (start -2.27 0.97) (end -1.27 0.97) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ae84d908-f563-45a3-a92e-6c355ce0a9e6)) + (fp_line (start -2.27 1.57) (end -2.27 0.97) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp afb04474-59e1-4d37-be2e-0972e2a40f72)) + (fp_line (start -2.27 6.05) (end -1.27 6.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d58a32ab-aa70-42da-856a-6bf67de140a6)) + (fp_line (start -2.27 6.65) (end -2.27 6.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2179eebb-82d2-4c37-9209-aef93462d0af)) + (fp_line (start -1.27 -9.625) (end -0.635 -10.26) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2c98c5aa-7b7d-40b4-b61a-b48569171721)) + (fp_line (start -1.27 -8.59) (end -2.27 -8.59) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2e11cb37-5c67-4243-9a0f-ef663dbc3a2a)) + (fp_line (start -1.27 -3.51) (end -2.27 -3.51) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 360b35d6-de38-4e89-8a1a-4728e8874bf8)) + (fp_line (start -1.27 1.57) (end -2.27 1.57) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 12fa6378-515a-432b-990a-9c5fd2c18b21)) + (fp_line (start -1.27 6.65) (end -2.27 6.65) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7172563a-79df-4951-807c-4e00d3fb467e)) + (fp_line (start -1.27 10.26) (end -1.27 -9.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c451b1d6-4351-4687-bde5-78c449b54442)) + (fp_line (start -0.635 -10.26) (end 1.27 -10.26) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bb553888-dc2a-4a15-b633-08ae39588873)) + (fp_line (start 1.27 -10.26) (end 1.27 10.26) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3d00f287-cc0e-4bcd-b78a-f83d4cc03060)) + (fp_line (start 1.27 -6.65) (end 2.27 -6.65) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 50159e63-72b4-49a5-8786-b02cf2aaad1b)) + (fp_line (start 1.27 -1.57) (end 2.27 -1.57) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 791bc05a-b27c-4d0a-a392-634f579c5ad2)) + (fp_line (start 1.27 3.51) (end 2.27 3.51) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 09892082-a805-4fea-ad59-41ec8b2eacc9)) + (fp_line (start 1.27 8.59) (end 2.27 8.59) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 49a922b4-0bfb-4a61-99b5-b78a0ae75251)) + (fp_line (start 1.27 10.26) (end -1.27 10.26) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 596c3721-072f-446a-93b2-09bda139c92e)) + (fp_line (start 2.27 -6.65) (end 2.27 -6.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5db5f0ca-5c3d-482e-9ae6-64e48a6f4dcd)) + (fp_line (start 2.27 -6.05) (end 1.27 -6.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b504fc33-d1d5-49e6-82b1-e7a13ecfe1c9)) + (fp_line (start 2.27 -1.57) (end 2.27 -0.97) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 35f4be20-6f3f-46bf-a463-d68527436352)) + (fp_line (start 2.27 -0.97) (end 1.27 -0.97) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d8ea6edc-bc64-4ffc-9464-bb832067bbbe)) + (fp_line (start 2.27 3.51) (end 2.27 4.11) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0a5cb964-1831-46b3-9c40-db8aa59757b3)) + (fp_line (start 2.27 4.11) (end 1.27 4.11) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c0339861-837f-4795-8170-898559ff206e)) + (fp_line (start 2.27 8.59) (end 2.27 9.19) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 66121f82-92f6-41d6-aa0f-51d84ea57f5d)) + (fp_line (start 2.27 9.19) (end 1.27 9.19) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 69c0f429-450e-473b-be05-f468a4de017f)) + (pad "1" smd rect (at -1.65 -8.89 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 34 "Net-(D4-Pad3)") (pinfunction "Pin_1") (pintype "passive") (tstamp 9cea337c-bf10-4ef4-ac3e-7a0c9620647d)) + (pad "2" smd rect (at 1.65 -6.35 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 33 "Net-(D3-Pad3)") (pinfunction "Pin_2") (pintype "passive") (tstamp 093bf7dd-0cbd-4a0d-99de-b7380c80403b)) + (pad "3" smd rect (at -1.65 -3.81 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 32 "Net-(D2-Pad3)") (pinfunction "Pin_3") (pintype "passive") (tstamp 26263a73-0130-4514-a114-1f5e2f392c50)) + (pad "4" smd rect (at 1.65 -1.27 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 31 "Net-(D1-Pad3)") (pinfunction "Pin_4") (pintype "passive") (tstamp 9e8c4bde-2c38-4f45-ba80-fd38cf060b81)) + (pad "5" smd rect (at -1.65 1.27 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_5") (pintype "passive") (tstamp 12f6000e-4280-49ed-8742-a9dbf5148a13)) + (pad "6" smd rect (at 1.65 3.81 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pinfunction "Pin_6") (pintype "passive") (tstamp cb61c4d4-0025-43e8-8d9d-993f3cbc865b)) + (pad "7" smd rect (at -1.65 6.35 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_7") (pintype "passive") (tstamp 06e265a8-0810-4f5b-9eae-3c23f987c980)) + (pad "8" smd rect (at 1.65 8.89 90) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 43 "Net-(U2-Pad13)") (pinfunction "Pin_8") (pintype "passive") (tstamp 61c278fe-4c49-4fc8-8ce4-3e609da02a22)) + (model "${KICAD6_3DMODEL_DIR}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x08_P2.54mm_Vertical_SMD_Pin1Left.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" (layer "F.Cu") + (tstamp 06d5a468-66f2-4a05-98ff-d07e6d7edc68) + (at 35.29 34.163 180) + (descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/4cb7ccca-9554-4020-9406-885324790877") + (attr smd) + (fp_text reference "R3" (at 0 -1.65) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1c48a06e-228e-446f-a7f8-118e5baf4d33) + ) + (fp_text value "4k7" (at 0 1.65) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp cc19e4b9-7fe4-46d0-8f17-04325017fd97) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.08))) + (tstamp d75386d5-4cbd-4251-a235-00fc34355936) + ) + (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 84a5b400-fbbc-4145-be61-59ef3c554d52)) + (fp_line (start -0.227064 0.735) (end 0.227064 0.735) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5c56de13-1423-40fe-bb19-5fdee076fdec)) + (fp_line (start -1.85 -0.95) (end 1.85 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6b2b6b28-79ff-4685-bbad-c526bd10c99d)) + (fp_line (start -1.85 0.95) (end -1.85 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 022869ed-59a7-4d71-bc90-2eb4773402e3)) + (fp_line (start 1.85 -0.95) (end 1.85 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8682ad7e-9444-4959-abbb-f45ad48033c3)) + (fp_line (start 1.85 0.95) (end -1.85 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 00136194-bd0d-4047-acf9-8479876406b0)) + (fp_line (start -1 -0.625) (end 1 -0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ce2bfa48-acab-4f2d-b1f1-bf7bb02e263e)) + (fp_line (start -1 0.625) (end -1 -0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b15c68a3-8fb0-4131-b759-990d5c20526b)) + (fp_line (start 1 -0.625) (end 1 0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6c72dcec-09ea-4e8a-9335-41a8f3a8481c)) + (fp_line (start 1 0.625) (end -1 0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d7c56f28-92cb-48f2-801b-9b598df121d0)) + (pad "1" smd roundrect (at -1 0 180) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333) + (net 6 "+3.3V") (pintype "passive") (tstamp 56826b92-97f9-422c-8c6d-ad38f81c1080)) + (pad "2" smd roundrect (at 1 0 180) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333) + (net 13 "Net-(R3-Pad2)") (pintype "passive") (tstamp 43249878-b753-4c3d-bc7f-261eaf228b18)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp 119ab503-1fa7-47c6-a91b-f86e28f4f9b3) + (at 16.179 28.194) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/55312aa3-1d44-40ca-a88d-0efabb443032") + (attr smd) + (fp_text reference "C4" (at 0 -2.3) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 65bdf8f6-fe7b-4345-9e01-dddde4741479) + ) + (fp_text value "220n" (at 0 2.3) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 81752241-f5e0-43a6-95e8-1dfbe91c3c78) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 66359ae7-19c9-401d-b10a-fef35d10632c) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e478736c-5362-4308-9a53-c0ab6ca9955f)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 2a589380-29ec-4ec3-867b-30b8ecc39116)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fa3e7334-d347-4f2e-a3ed-530a9f8f5ab7)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e5e6b22c-c818-4b42-8005-0772ff34fb82)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 96cebfae-55cd-4f0a-8b6f-5a9233fc3107)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 37b02e22-d809-493f-8c76-3537bab1cdea)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e6c2bba4-5014-4a1b-b744-1cf2cf829bfe)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0bd750e7-cc25-4d80-8b1a-0409b40a99c2)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6732ca9f-3606-472a-9caa-26bc0720e6b9)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 95cf71c5-325f-476c-91e5-9f975bebb234)) + (pad "1" smd roundrect (at -1.5625 0) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 3 "VCC") (pintype "passive") (tstamp c9c87fcb-fab6-44d6-972b-d8d98ad5731e)) + (pad "2" smd roundrect (at 1.5625 0) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 4 "GND") (pintype "passive") (tstamp 997d0549-5624-427b-8422-5e0798bffa60)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_SMD:SOT-89-3" (layer "F.Cu") + (tstamp 148f40b2-4915-4f43-8373-976b52810001) + (at 28.575 24.892 90) + (descr "SOT-89-3, http://ww1.microchip.com/downloads/en/DeviceDoc/3L_SOT-89_MB_C04-029C.pdf") + (tags "SOT-89-3") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/efad2a02-4ebf-46ec-b0f4-c112b41c5bd0") + (attr smd) + (fp_text reference "U6" (at 0.3 -3.5 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e0e1f1f5-adf1-4429-b539-3c9f7c8f03c0) + ) + (fp_text value "AZ1117R-ADJ" (at -1.905 3.81 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 03716265-eac6-48ba-b114-08ac6dda8cc6) + ) + (fp_text user "${REFERENCE}" (at 0.5 0) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0714640b-b0e4-4aaf-85f4-bbe1ce8f7353) + ) + (fp_line (start -2.2 -2.13) (end -1.06 -2.13) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 489ca56e-876d-464a-9133-33105ab4e49d)) + (fp_line (start -1.06 -2.36) (end -1.06 -2.13) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a846e304-9015-4423-a9f7-2026ed590c33)) + (fp_line (start -1.06 -2.36) (end 1.66 -2.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 92aefc26-c9cb-4d3b-ba7d-f8eb102eba55)) + (fp_line (start -1.06 2.36) (end -1.06 2.13) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 68abd4b6-1bea-411f-964a-fbfeaa4f47bd)) + (fp_line (start 1.66 -2.36) (end 1.66 -1.05) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3dd11ccd-fd65-4d7e-a8c9-6c2f2a4e8162)) + (fp_line (start 1.66 1.05) (end 1.66 2.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp dbd99215-4eb8-4d3a-8485-920fa4a23b7c)) + (fp_line (start 1.66 2.36) (end -1.06 2.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 065e5e52-dab9-4d08-94a4-e4f73e8a5661)) + (fp_line (start -2.55 2.5) (end -2.55 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 90645340-1960-480f-8b52-a02f09f01633)) + (fp_line (start -2.55 2.5) (end 2.55 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 137d4214-c42e-4628-a220-cdcaea80a7f2)) + (fp_line (start 2.55 -2.5) (end -2.55 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b57b58a9-ce4e-4128-894f-f1ceba77769b)) + (fp_line (start 2.55 -2.5) (end 2.55 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c5ff6e99-2f11-4611-ac95-54e5a464d013)) + (fp_line (start -0.95 -1.25) (end 0.05 -2.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 73cf532f-257f-4179-a227-ea528c8dbeb7)) + (fp_line (start -0.95 2.25) (end -0.95 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7eec4a49-efaa-483c-a71a-6072f0b7890f)) + (fp_line (start 0.05 -2.25) (end 1.55 -2.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5099b512-ea4b-46b4-9c27-0d71de3b1833)) + (fp_line (start 1.55 -2.25) (end 1.55 2.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6a05c8c9-ffc6-4e9f-a730-429c7a6bf208)) + (fp_line (start 1.55 2.25) (end -0.95 2.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a190ffb9-b268-4337-892d-6971b67d66a2)) + (pad "1" smd rect (at -1.65 -1.5 90) (size 1.3 0.9) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "ADJ") (pintype "input") (tstamp 919f9d87-36d3-475d-a8bb-e8a8640251b1)) + (pad "2" smd custom (at -1.5625 0 90) (size 1.475 0.9) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pinfunction "VO") (pintype "power_out") (zone_connect 2) (thermal_bridge_angle 45) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly + (pts + (xy 3.8625 0.8665) + (xy 0.7375 0.8665) + (xy 0.7375 -0.8665) + (xy 3.8625 -0.8665) + ) + (width 0) (fill yes)) + ) (tstamp 6550fe38-f8c7-4f70-9500-787cc93b1e32)) + (pad "3" smd rect (at -1.65 1.5 90) (size 1.3 0.9) (layers "F.Cu" "F.Paste" "F.Mask") + (net 3 "VCC") (pinfunction "VI") (pintype "power_in") (tstamp ade1860b-8446-4ed5-8853-d2e111271708)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-89-3.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp 1816330a-6592-4840-a6e0-7ed7aa615266) + (at 34.544 14.605) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/f65dc182-2ca3-45be-801d-efa69dd19ec3") + (attr smd) + (fp_text reference "C6" (at 0 -2.3) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp afb63189-f895-4801-9959-071bff860794) + ) + (fp_text value "220n" (at 0 2.3) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9b2fdfcb-8d62-4f49-9040-668601a74008) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 0a61f47d-b311-4c3b-8a36-6f7e6920afd8) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9d7b253e-1e20-47cf-8aa4-eca7f4c60f78)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 68e511ac-2123-44ae-8b7e-f321055ae377)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8592bd79-f07d-41eb-b3f5-034ed1f613af)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8e5a4717-4883-4588-91b3-2ecc2796f210)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a70479f3-c8e9-4e2f-b2ed-b48373ddeb98)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b214c217-75cf-49bb-922a-e53bb2744a8b)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d0b006e3-3f11-4b50-8bc5-28ed47d61333)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1f668860-9f62-4704-b4f6-a3fb6e07df38)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3680b51f-8620-468d-bd2b-76504f9a7044)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e33f25f2-bc6a-431f-a892-fa4ffe3a69f5)) + (pad "1" smd roundrect (at -1.5625 0) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 3 "VCC") (pintype "passive") (tstamp 6c04a9aa-8c43-4a7c-954d-ea3070792d32)) + (pad "2" smd roundrect (at 1.5625 0) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 4 "GND") (pintype "passive") (tstamp e19417c7-48f2-4b92-9e07-74e2484246eb)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_QFP:LQFP-32_7x7mm_P0.8mm" (layer "F.Cu") + (tstamp 1fdbfa89-90cb-4767-be9d-59538ccf5790) + (at 31.7115 42.545) + (descr "LQFP, 32 Pin (https://www.nxp.com/docs/en/package-information/SOT358-1.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "LQFP QFP") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/4903cad6-3e69-4119-a498-17f872ef7a76") + (attr smd) + (fp_text reference "U2" (at 0 -5.88) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e9e41536-b836-4696-bdd5-6b442b1ef8f5) + ) + (fp_text value "STM32G431KBTx" (at 0 5.88) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 17b89707-b212-4a02-9ceb-e128e63d9457) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7d9a568a-7a89-4520-9f2f-b7f77be82b81) + ) + (fp_line (start -3.61 -3.61) (end -3.61 -3.31) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 595ee782-6d5d-42ec-9915-d34fdf17add5)) + (fp_line (start -3.61 -3.31) (end -4.925 -3.31) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp cb200883-75c3-45bb-a974-3bda5bb3c8aa)) + (fp_line (start -3.61 3.61) (end -3.61 3.31) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7a6a1aa3-2ca2-4d17-9adc-c45766cfd9ea)) + (fp_line (start -3.31 -3.61) (end -3.61 -3.61) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0f6f6e06-58ee-442c-8b9b-fbed849b31d9)) + (fp_line (start -3.31 3.61) (end -3.61 3.61) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d9f4eeba-eef2-4ae5-8958-c7ac06c31c95)) + (fp_line (start 3.31 -3.61) (end 3.61 -3.61) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4f44ea59-d7d2-4f7e-b885-781e4a09d32c)) + (fp_line (start 3.31 3.61) (end 3.61 3.61) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 88711eb9-2f86-495e-9b59-4a824e0f84ca)) + (fp_line (start 3.61 -3.61) (end 3.61 -3.31) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1caa7f03-5c16-4d7b-9440-31db10b3f284)) + (fp_line (start 3.61 3.61) (end 3.61 3.31) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 604959a5-c1c9-4ccc-8ef8-f570f299cba5)) + (fp_line (start -5.18 -3.3) (end -5.18 0) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0f94c049-abb1-4afb-8af9-9307085f8e58)) + (fp_line (start -5.18 3.3) (end -5.18 0) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5512253e-1d68-4de5-afa2-0eddf1cb79f8)) + (fp_line (start -3.75 -3.75) (end -3.75 -3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ffd2c3b8-ff04-4b8f-8166-2bc8057e81b2)) + (fp_line (start -3.75 -3.3) (end -5.18 -3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3975ab6e-ca09-4f2b-9c29-bb31bc3aa463)) + (fp_line (start -3.75 3.3) (end -5.18 3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 68b257d6-f50e-4b9f-b16b-fbfdf9f212f5)) + (fp_line (start -3.75 3.75) (end -3.75 3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e2a8ac92-5d9b-4f8a-8faf-930c12c8d101)) + (fp_line (start -3.3 -5.18) (end -3.3 -3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 52f52bc9-b21f-4618-a7b5-9cb026df8ec5)) + (fp_line (start -3.3 -3.75) (end -3.75 -3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 74958bea-b469-4e16-b66a-d7b02828d0c0)) + (fp_line (start -3.3 3.75) (end -3.75 3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 93c5419b-f4df-4d63-aa78-6471a54a7ac4)) + (fp_line (start -3.3 5.18) (end -3.3 3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 11b06227-7842-4cbf-bad9-5644c6de2aad)) + (fp_line (start 0 -5.18) (end -3.3 -5.18) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp be3bc674-34ec-4848-87fd-099f0fa749cf)) + (fp_line (start 0 -5.18) (end 3.3 -5.18) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d1bfca7d-61bd-4569-b0a9-6b885fe9aff3)) + (fp_line (start 0 5.18) (end -3.3 5.18) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f862ff68-0dcb-48de-8ddb-097f47d6ba49)) + (fp_line (start 0 5.18) (end 3.3 5.18) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2b0978a2-a2d0-4cb6-8210-9b0b5dd77f02)) + (fp_line (start 3.3 -5.18) (end 3.3 -3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp efd459c6-80df-438e-8016-43b4bf9fcedc)) + (fp_line (start 3.3 -3.75) (end 3.75 -3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 85c2ffb7-8911-467c-870b-f56e99d20a7b)) + (fp_line (start 3.3 3.75) (end 3.75 3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b118ee1b-7765-4c16-a001-6178476b8441)) + (fp_line (start 3.3 5.18) (end 3.3 3.75) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp dacd0421-d8a2-4cc4-9b11-3bd3b151dad8)) + (fp_line (start 3.75 -3.75) (end 3.75 -3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4a5f0f4d-fec9-4d1e-8b58-9034f9d6dfe6)) + (fp_line (start 3.75 -3.3) (end 5.18 -3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6a442c79-a155-462b-b45e-072b55ee9c7e)) + (fp_line (start 3.75 3.3) (end 5.18 3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 532019c1-f218-4755-b30a-fc811776f3ed)) + (fp_line (start 3.75 3.75) (end 3.75 3.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 62cf481a-3acc-4d03-8f32-91f5de756a5b)) + (fp_line (start 5.18 -3.3) (end 5.18 0) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 241fe1ae-d431-4b64-894c-4e9b527d3fce)) + (fp_line (start 5.18 3.3) (end 5.18 0) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7f3ae3ab-7d7a-4dee-bc9f-0254fb373cac)) + (fp_line (start -3.5 -2.5) (end -2.5 -3.5) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ef852fdb-57fe-4425-a17b-c046dbd83faf)) + (fp_line (start -3.5 3.5) (end -3.5 -2.5) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 281a0231-5fdf-412e-b4b8-6fd7110319cf)) + (fp_line (start -2.5 -3.5) (end 3.5 -3.5) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 793260f1-1284-41c7-ace8-fd69c5f4a6e4)) + (fp_line (start 3.5 -3.5) (end 3.5 3.5) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b03a3cca-2916-4f9a-af6d-d20e292f03ea)) + (fp_line (start 3.5 3.5) (end -3.5 3.5) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 049dc858-55c4-4c2d-9bce-d3c8f53bce2c)) + (pad "1" smd roundrect (at -4.175 -2.8) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 6 "+3.3V") (pinfunction "VDD") (pintype "power_in") (tstamp 524e84a1-550f-4242-a451-a69330b8004e)) + (pad "2" smd roundrect (at -4.175 -2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 10 "Net-(U2-Pad2)") (pinfunction "PF0") (pintype "bidirectional") (tstamp dfde14e9-cb47-4d97-8050-9f7ddec3411c)) + (pad "3" smd roundrect (at -4.175 -1.2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 11 "Net-(U2-Pad3)") (pinfunction "PF1") (pintype "bidirectional") (tstamp da5a80e1-1c82-4fcd-8028-fb1b64fd91d8)) + (pad "4" smd roundrect (at -4.175 -0.4) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 2 "Net-(C1-Pad2)") (pinfunction "PG10") (pintype "bidirectional") (tstamp ab7b51e9-baea-4890-ad34-b3c621c0dc6a)) + (pad "5" smd roundrect (at -4.175 0.4) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 21 "Net-(J1-Pad5)") (pinfunction "PA0") (pintype "bidirectional") (tstamp f5f99268-8c90-48f7-9186-dde4000162d2)) + (pad "6" smd roundrect (at -4.175 1.2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 20 "Net-(J1-Pad4)") (pinfunction "PA1") (pintype "bidirectional") (tstamp cd430ea1-fe9e-4744-b2c0-f84939886411)) + (pad "7" smd roundrect (at -4.175 2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 19 "Net-(J1-Pad3)") (pinfunction "PA2") (pintype "bidirectional") (tstamp 0c9f3a28-cf8f-41c7-81d8-e6d645584a77)) + (pad "8" smd roundrect (at -4.175 2.8) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 5 "Net-(J1-Pad2)") (pinfunction "PA3") (pintype "bidirectional") (tstamp 013e41c1-f570-4978-b806-232ee9d75340)) + (pad "9" smd roundrect (at -2.8 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 34 "Net-(D4-Pad3)") (pinfunction "PA4") (pintype "bidirectional") (tstamp 636ed6ad-fb81-4406-a75c-b66397a2fe30)) + (pad "10" smd roundrect (at -2 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 33 "Net-(D3-Pad3)") (pinfunction "PA5") (pintype "bidirectional") (tstamp 5e2ad97d-ffa3-4fed-9333-ae9ad654fb40)) + (pad "11" smd roundrect (at -1.2 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 32 "Net-(D2-Pad3)") (pinfunction "PA6") (pintype "bidirectional") (tstamp 2e219319-2277-4f36-89b6-42ea48f4a9b2)) + (pad "12" smd roundrect (at -0.4 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 31 "Net-(D1-Pad3)") (pinfunction "PA7") (pintype "bidirectional") (tstamp 6df8a397-df98-4bbb-97ff-51c9ad3b5dec)) + (pad "13" smd roundrect (at 0.4 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 43 "Net-(U2-Pad13)") (pinfunction "PB0") (pintype "bidirectional") (tstamp ddafd397-a295-4244-a41a-f5fa4f9701d3)) + (pad "14" smd roundrect (at 1.2 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "VSSA") (pintype "power_in") (tstamp 6e6dfe71-058f-4f44-a739-f588b879c673)) + (pad "15" smd roundrect (at 2 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 6 "+3.3V") (pinfunction "VDDA") (pintype "power_in") (tstamp 070d4209-cb35-4ed6-bea7-0af2b7811363)) + (pad "16" smd roundrect (at 2.8 4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "VSS") (pintype "power_in") (tstamp f5e44194-d639-4977-bdea-2b91f77905d8)) + (pad "17" smd roundrect (at 4.175 2.8) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 6 "+3.3V") (pinfunction "VDD") (pintype "power_in") (tstamp 9af38bc5-da27-463e-a206-de9cfe505ced)) + (pad "18" smd roundrect (at 4.175 2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 30 "unconnected-(U2-Pad18)") (pinfunction "PA8") (pintype "bidirectional") (tstamp 7b3ebe4d-ba10-42b6-a84e-1a71b7440717)) + (pad "19" smd roundrect (at 4.175 1.2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 37 "Net-(J4-Pad3)") (pinfunction "PA9") (pintype "bidirectional") (tstamp 5649a39a-1f75-4765-aaed-58e66316a860)) + (pad "20" smd roundrect (at 4.175 0.4) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 38 "Net-(J4-Pad4)") (pinfunction "PA10") (pintype "bidirectional") (tstamp 4aa7d8be-ce53-4906-8588-4c3e414baeb2)) + (pad "21" smd roundrect (at 4.175 -0.4) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 39 "Net-(J4-Pad5)") (pinfunction "PA11") (pintype "bidirectional") (tstamp 531b165f-214c-45f5-8745-aaf3280e6625)) + (pad "22" smd roundrect (at 4.175 -1.2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 40 "Net-(J4-Pad6)") (pinfunction "PA12") (pintype "bidirectional") (tstamp 754dd192-1536-4e56-91be-920cfcbd39b4)) + (pad "23" smd roundrect (at 4.175 -2) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 41 "Net-(J4-Pad8)") (pinfunction "PA13") (pintype "bidirectional") (tstamp 6f796b64-1b7a-42d7-a670-67301e1a28c6)) + (pad "24" smd roundrect (at 4.175 -2.8) (size 1.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 42 "Net-(J4-Pad9)") (pinfunction "PA14") (pintype "bidirectional") (tstamp 12db4157-e456-4b77-a3b8-8e18e3d2a904)) + (pad "25" smd roundrect (at 2.8 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 27 "Net-(R2-Pad2)") (pinfunction "PA15") (pintype "bidirectional") (tstamp a1789270-9a2b-4484-afa3-344369e72a66)) + (pad "26" smd roundrect (at 2 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 14 "unconnected-(U2-Pad26)") (pinfunction "PB3") (pintype "bidirectional") (tstamp f5f99812-bf4d-4f0b-ab74-383ed2fa5d13)) + (pad "27" smd roundrect (at 1.2 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 15 "unconnected-(U2-Pad27)") (pinfunction "PB4") (pintype "bidirectional") (tstamp 1f877dc9-4112-4c66-9589-0e89e00c3a8e)) + (pad "28" smd roundrect (at 0.4 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 16 "unconnected-(U2-Pad28)") (pinfunction "PB5") (pintype "bidirectional") (tstamp 1cac2d61-cb71-471c-8f16-062d81996aa5)) + (pad "29" smd roundrect (at -0.4 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 17 "unconnected-(U2-Pad29)") (pinfunction "PB6") (pintype "bidirectional") (tstamp e6574121-4352-45a1-be66-9935c4373cbd)) + (pad "30" smd roundrect (at -1.2 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 13 "Net-(R3-Pad2)") (pinfunction "PB7") (pintype "bidirectional") (tstamp 2c77ec62-be9c-4e8b-8c15-28ba481fda8f)) + (pad "31" smd roundrect (at -2 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 23 "Net-(R1-Pad2)") (pinfunction "PB8") (pintype "bidirectional") (tstamp 8c32b377-6375-4aed-a0ac-be9c8be97d7f)) + (pad "32" smd roundrect (at -2.8 -4.175) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "VSS") (pintype "power_in") (tstamp 50651ed3-f03d-470c-82b1-52d2291998c8)) + (model "${KICAD6_3DMODEL_DIR}/Package_QFP.3dshapes/LQFP-32_7x7mm_P0.8mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:MSOP-10_3x3mm_P0.5mm" (layer "F.Cu") + (tstamp 4666c9ec-9439-4dea-b390-bcee9a71c67f) + (at 19.042 33.995 90) + (descr "10-Lead Plastic Micro Small Outline Package (MS) [MSOP] (see Microchip Packaging Specification 00000049BS.pdf)") + (tags "SSOP 0.5") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/0fde9d4d-184d-4dce-b6ed-79084d70e5a1") + (attr smd) + (fp_text reference "U1" (at 0 -2.6 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 070ffb59-13ec-4e85-8607-5d0eba6e32f9) + ) + (fp_text value "Si5351A-B-GT" (at 0 2.6 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8a0358ae-1371-4d9b-8637-630a559dc69e) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.6 0.6) (thickness 0.15))) + (tstamp 6bfc7a4f-6c13-4a7b-aab7-33509024b41b) + ) + (fp_line (start -1.675 -1.675) (end -1.675 -1.45) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 56f7e827-9c9f-478e-9cdb-80c63fa06bbc)) + (fp_line (start -1.675 -1.675) (end 1.675 -1.675) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 9439117e-f700-4fa0-bdfa-d6fe6bdde97b)) + (fp_line (start -1.675 -1.45) (end -2.9 -1.45) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 7a70d04a-fed8-4c00-9fa0-c36e37623c1b)) + (fp_line (start -1.675 1.675) (end -1.675 1.375) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 2ce1490b-3007-4c38-8391-efc2740a3ca2)) + (fp_line (start -1.675 1.675) (end 1.675 1.675) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp c4786e2d-dc5b-459a-925e-b0b12da471cc)) + (fp_line (start 1.675 -1.675) (end 1.675 -1.375) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 1a685ac7-1824-4bb7-b22f-f256c6bf453e)) + (fp_line (start 1.675 1.675) (end 1.675 1.375) + (stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 8f62104a-e758-4ccc-86e7-ed425320d079)) + (fp_line (start -3.15 -1.85) (end -3.15 1.85) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4406b2b3-77c0-4b23-95b4-70e534e8e875)) + (fp_line (start -3.15 -1.85) (end 3.15 -1.85) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 63be7f52-2697-4d82-b6e4-c221041555e1)) + (fp_line (start -3.15 1.85) (end 3.15 1.85) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9b218bd7-2026-4528-8b04-040d2a769804)) + (fp_line (start 3.15 -1.85) (end 3.15 1.85) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ef74bc27-3450-4468-b6eb-342b78732a24)) + (fp_line (start -1.5 -0.5) (end -0.5 -1.5) + (stroke (width 0.15) (type solid)) (layer "F.Fab") (tstamp 39c2d523-b146-4a45-a8fa-eb0e8c4d55d8)) + (fp_line (start -1.5 1.5) (end -1.5 -0.5) + (stroke (width 0.15) (type solid)) (layer "F.Fab") (tstamp 9f116fe1-2340-46e6-a8da-223b32ff142c)) + (fp_line (start -0.5 -1.5) (end 1.5 -1.5) + (stroke (width 0.15) (type solid)) (layer "F.Fab") (tstamp 0c955b60-4073-48ab-95d9-0191918d5ece)) + (fp_line (start 1.5 -1.5) (end 1.5 1.5) + (stroke (width 0.15) (type solid)) (layer "F.Fab") (tstamp 878070ca-1a92-4030-973b-9006479944c6)) + (fp_line (start 1.5 1.5) (end -1.5 1.5) + (stroke (width 0.15) (type solid)) (layer "F.Fab") (tstamp 5144d1c7-6829-47a7-bfe9-fa6536d9d5b7)) + (pad "1" smd rect (at -2.2 -1 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pinfunction "VDD") (pintype "power_in") (tstamp f6653477-ccb8-4730-84cd-3737638a4f4d)) + (pad "2" smd rect (at -2.2 -0.5 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "Net-(C1-Pad1)") (pinfunction "XA") (pintype "input") (tstamp 445f96da-b936-41f3-a942-4a41241cb5fb)) + (pad "3" smd rect (at -2.2 0 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 7 "unconnected-(U1-Pad3)") (pinfunction "XB") (pintype "input") (tstamp 99e73b70-99f9-487a-9517-ad1e000eb5b3)) + (pad "4" smd rect (at -2.2 0.5 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 27 "Net-(R2-Pad2)") (pinfunction "SCL") (pintype "input") (tstamp b38587fb-f29d-4037-8f92-94c8e668c649)) + (pad "5" smd rect (at -2.2 1 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 13 "Net-(R3-Pad2)") (pinfunction "SDA") (pintype "bidirectional") (tstamp 7209ebc5-be10-4012-96aa-a22ad25223b1)) + (pad "6" smd rect (at 2.2 1 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 8 "unconnected-(U1-Pad6)") (pinfunction "CLK2") (pintype "output") (tstamp 46a1a0fc-b951-49bd-a8da-71658eb80391)) + (pad "7" smd rect (at 2.2 0.5 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pinfunction "VDDO") (pintype "power_in") (tstamp 4043a1f4-780b-4a12-81ab-4c73b4bcb5a7)) + (pad "8" smd rect (at 2.2 0 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 4c37c5ad-cfd9-4ad1-a8de-5b08aba075a2)) + (pad "9" smd rect (at 2.2 -0.5 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 9 "Net-(U1-Pad9)") (pinfunction "CLK1") (pintype "output") (tstamp 5244a56c-ed59-45a9-b0d3-a46781313474)) + (pad "10" smd rect (at 2.2 -1 90) (size 1.4 0.3) (layers "F.Cu" "F.Paste" "F.Mask") + (net 22 "Net-(U1-Pad10)") (pinfunction "CLK0") (pintype "output") (tstamp 7588bb27-665a-472f-b240-5c878bab372c)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/MSOP-10_3x3mm_P0.5mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp 542960fc-6451-4a03-9926-67182eada666) + (at 22.2635 28.194) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/a9efa97b-d79a-4697-ba5c-5ff87df787ad") + (attr smd) + (fp_text reference "C5" (at 0 -2.3) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 12ec6e69-d6c2-46d9-ac2b-2d5a4558e294) + ) + (fp_text value "220n" (at 0 2.3) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 977a105f-ba20-4a15-9053-6a81efd1144e) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 4728bd4e-fe9b-4f59-89b5-de8132df5636) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp dfb2baa0-c4ca-492b-9d51-285f7ec70ac0)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 38913340-93ca-4eb6-92be-33e764d722ed)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 181a68a7-9d1f-411a-a77e-4150a7b5ac18)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4286bfe6-80b0-4f9d-9149-888c17135753)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8856cd39-373a-4946-a4f9-87da484b818b)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8c6d4896-1c7d-43b9-87d8-d4e7bcba754c)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1ba8534d-1e3d-46f8-9d09-242afb275df5)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 795324c4-7c04-4570-877a-348d8e7f79db)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 16e13c49-eab3-4f81-b463-ef54932a2083)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0bc5af5d-a16f-4be0-8a33-93d29d91b175)) + (pad "1" smd roundrect (at -1.5625 0) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 3 "VCC") (pintype "passive") (tstamp 4614ce12-58b9-4837-a67c-92c19f1cd00b)) + (pad "2" smd roundrect (at 1.5625 0) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 4 "GND") (pintype "passive") (tstamp d9cefe31-6e63-4a2a-84a5-22ad137097d3)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" (layer "F.Cu") + (tstamp 547a0152-656b-452b-a2d0-23f5ddac87e0) + (at 35.29 32.258 180) + (descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/0e954770-e411-404c-9f60-e77a9b02dae1") + (attr smd) + (fp_text reference "R2" (at 0 -1.65) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp a666bb2a-bc5c-475e-9d61-5bdb6a677886) + ) + (fp_text value "4k7" (at 0 1.65) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp abca0328-9f46-4f3e-a627-7bb35e71d53a) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.08))) + (tstamp 245863f0-c6f8-41a6-8af4-574ef6f4f696) + ) + (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 278c94d9-9997-4260-b7ef-103f5a271b70)) + (fp_line (start -0.227064 0.735) (end 0.227064 0.735) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1328ec7d-467c-4479-9510-4446abd31170)) + (fp_line (start -1.85 -0.95) (end 1.85 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp cc974293-63a2-4f5c-8b8e-adae9726ad5c)) + (fp_line (start -1.85 0.95) (end -1.85 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 627f57b3-0a02-4029-8c00-457537bdb9ca)) + (fp_line (start 1.85 -0.95) (end 1.85 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 14d3eff9-2be9-4bb5-969b-e6f12a149152)) + (fp_line (start 1.85 0.95) (end -1.85 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 409152a7-3934-4efb-a58d-ea2fa0984bc6)) + (fp_line (start -1 -0.625) (end 1 -0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 815c0554-d2e2-43aa-bb8a-52b5be63ee70)) + (fp_line (start -1 0.625) (end -1 -0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 56eb9564-7d0e-47a5-86f1-745da897bd91)) + (fp_line (start 1 -0.625) (end 1 0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 39965203-f850-4d14-89d6-c81eee0d6574)) + (fp_line (start 1 0.625) (end -1 0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ff157672-b5c5-47e7-ba59-d2f10abeff26)) + (pad "1" smd roundrect (at -1 0 180) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333) + (net 6 "+3.3V") (pintype "passive") (tstamp 1c4dec29-a4a2-48ab-b412-f06f1503487a)) + (pad "2" smd roundrect (at 1 0 180) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333) + (net 27 "Net-(R2-Pad2)") (pintype "passive") (tstamp 2335fc90-705e-445b-8cea-030d25bd8854)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_SMD:SOT-323_SC-70" (layer "F.Cu") + (tstamp 628c7896-392d-4154-8c8d-6e0ec78af911) + (at 16.8148 61.722) + (descr "SOT-323, SC-70") + (tags "SOT-323 SC-70") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/ba1dea3a-45cd-434e-a908-22da7ac4b1b7") + (attr smd) + (fp_text reference "D4" (at -0.05 -1.95) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d0698fb1-9794-448d-8e78-17d119c51c3c) + ) + (fp_text value "BAT54SW" (at -0.05 2.05) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 39908a85-4e2e-4eec-9bc9-fc267d3f703b) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.075))) + (tstamp a041c7f1-a6c2-47b7-824c-f79623d58557) + ) + (fp_line (start -0.68 1.16) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp dfe996f3-c68f-4323-90b0-ba49f65b6470)) + (fp_line (start 0.73 -1.16) (end -1.3 -1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a5240d37-949a-4894-b198-639ec197c969)) + (fp_line (start 0.73 -1.16) (end 0.73 -0.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 74829291-fd59-4ee6-810e-ff7ffea90ebc)) + (fp_line (start 0.73 0.5) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 23a35dde-c83d-4d0b-8a40-c6dce75a8b1d)) + (fp_line (start -1.7 -1.3) (end 1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 32b2654d-6dc0-4958-8c87-0f937f32b4b5)) + (fp_line (start -1.7 1.3) (end -1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7cafdf67-9a44-4dc5-b551-6d275645eca9)) + (fp_line (start 1.7 -1.3) (end 1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e3536042-c9de-41b3-ad0b-4c91b84c5b0c)) + (fp_line (start 1.7 1.3) (end -1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e9bfed03-dd22-46ee-aa36-12f0a3fc11a9)) + (fp_line (start -0.68 -0.6) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 700132f1-f6ad-45b1-8324-02fc12acfa32)) + (fp_line (start -0.18 -1.1) (end -0.68 -0.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 126bffdc-4924-4c55-926f-f7c99c273567)) + (fp_line (start 0.67 -1.1) (end -0.18 -1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1ff94177-8d0f-4125-8c1d-fdb75fc0a4cc)) + (fp_line (start 0.67 -1.1) (end 0.67 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7b64e784-d1ed-4707-8725-f46cb2e6b0f7)) + (fp_line (start 0.67 1.1) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5c15176a-a81d-4a22-95b0-dd19e57aaafa)) + (pad "1" smd rect (at -1 -0.65 270) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pintype "passive") (tstamp 71a2c5a5-d9db-4c5f-b05d-2637d3aea424)) + (pad "2" smd rect (at -1 0.65 270) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pintype "passive") (tstamp ba9e06da-103c-4f8c-a495-721b5bf0f9dc)) + (pad "3" smd rect (at 1 0 270) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 34 "Net-(D4-Pad3)") (pintype "passive") (tstamp 1a1f5e16-55ec-4fa8-b68e-747a55e75429)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-323_SC-70.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Vertical_SMD_Pin1Left" (layer "F.Cu") + (tstamp 63cf7517-4175-4e27-92da-4302da15e231) + (at 15.368 48.387 180) + (descr "surface-mounted straight socket strip, 1x05, 2.54mm pitch, single row, style 1 (pin 1 left) (https://cdn.harwin.com/pdfs/M20-786.pdf), script generated") + (tags "Surface mounted socket strip SMD 1x05 2.54mm single row style1 pin1 left") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/53a38bb8-37b8-4242-9806-602da2c4ebed") + (attr smd) + (fp_text reference "J1" (at 0 -7.95) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1c5ee72f-0c6f-4cb9-9474-208dcb71920d) + ) + (fp_text value "ModuBus" (at 0 7.95) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d533af56-9fa5-497a-aa55-17eba6bcf66f) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7634dcba-933b-477e-9c27-2b166f8b3614) + ) + (fp_line (start -2.54 -5.84) (end -1.33 -5.84) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 08aa4945-0551-4848-8a73-e34c3c917639)) + (fp_line (start -1.33 -6.51) (end -1.33 -5.84) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1e09f521-84e9-40dd-baf4-d5302217a5df)) + (fp_line (start -1.33 -6.51) (end 1.33 -6.51) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3dbbfb39-4762-451e-909f-0a846ba49fad)) + (fp_line (start -1.33 -4.32) (end -1.33 -0.76) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8eb7c892-2795-491f-8ebb-b3d53cd7aaa5)) + (fp_line (start -1.33 0.76) (end -1.33 4.32) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4c5b6d54-0ec0-478f-bd2b-6fb208b14055)) + (fp_line (start -1.33 5.84) (end -1.33 6.51) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1effc489-4985-4252-b1ce-f2012045ef9d)) + (fp_line (start -1.33 6.51) (end 1.33 6.51) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c3a13832-d0df-4184-a9bd-87d26a4aa8ad)) + (fp_line (start 1.33 -6.51) (end 1.33 -3.3) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b566ef91-1006-4d96-b7a4-7fc515dfe1cc)) + (fp_line (start 1.33 -1.78) (end 1.33 1.78) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a918c58a-139a-4465-afe2-28ac9150d8c6)) + (fp_line (start 1.33 3.3) (end 1.33 6.51) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0b416b4b-fdb2-48f9-95cf-05f6089fa2aa)) + (fp_line (start -3.1 -6.95) (end 3.1 -6.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 31a639f0-f348-4264-87b0-ba7021468f41)) + (fp_line (start -3.1 6.95) (end -3.1 -6.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0e81b472-04c9-4db7-aa44-9f53dd5e3849)) + (fp_line (start 3.1 -6.95) (end 3.1 6.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8cd3fe3e-8162-456e-ae0e-eeb9d0a9d959)) + (fp_line (start 3.1 6.95) (end -3.1 6.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 1568dd87-efb6-42ec-9142-9abc975306a4)) + (fp_line (start -2.27 -5.38) (end -1.27 -5.38) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 08d6e221-91fb-491b-b05a-a03b1b5c2394)) + (fp_line (start -2.27 -4.78) (end -2.27 -5.38) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d3a4f7d6-22d8-4baa-94c3-67bec8c74b0c)) + (fp_line (start -2.27 -0.3) (end -1.27 -0.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2fc687fc-4511-49e3-ac0a-408fea1d5c25)) + (fp_line (start -2.27 0.3) (end -2.27 -0.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1a85fe72-26a5-49c4-be8f-7a971e5e29db)) + (fp_line (start -2.27 4.78) (end -1.27 4.78) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9c93cd83-aa91-43a9-be42-a9cb7f25b6d2)) + (fp_line (start -2.27 5.38) (end -2.27 4.78) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ef880f7d-4a16-4796-889a-067ad572cdad)) + (fp_line (start -1.27 -5.815) (end -0.635 -6.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1e1be8a5-187c-405b-a5a6-a5234cf37c97)) + (fp_line (start -1.27 -4.78) (end -2.27 -4.78) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 16a1b932-68b3-43b3-8193-bdd2541a998f)) + (fp_line (start -1.27 0.3) (end -2.27 0.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3a04899f-3e5e-4758-981f-a19607998f64)) + (fp_line (start -1.27 5.38) (end -2.27 5.38) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f5ad4620-5553-42a5-818c-d3306e5e4489)) + (fp_line (start -1.27 6.45) (end -1.27 -5.815) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 44beb7cc-df42-4131-be3a-8728ebf3192a)) + (fp_line (start -0.635 -6.45) (end 1.27 -6.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f3fbcb00-308f-4413-a879-c090df6e4313)) + (fp_line (start 1.27 -6.45) (end 1.27 6.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2b8476ac-28ac-446e-b2d9-1455f46ef94f)) + (fp_line (start 1.27 -2.84) (end 2.27 -2.84) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fbbd7872-17b2-48df-ab27-1717ff5bf0d6)) + (fp_line (start 1.27 2.24) (end 2.27 2.24) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bdb17618-0ed2-491a-bacb-8fa334f83283)) + (fp_line (start 1.27 6.45) (end -1.27 6.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6ce0686e-6475-4c3d-bc90-0b31974236ac)) + (fp_line (start 2.27 -2.84) (end 2.27 -2.24) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6ca312f0-a565-4fef-94c9-293c43f4d67d)) + (fp_line (start 2.27 -2.24) (end 1.27 -2.24) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d7215b7c-c854-4615-97dd-d29132dab48d)) + (fp_line (start 2.27 2.24) (end 2.27 2.84) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a2bf0c5b-85d7-49cf-8c51-12d08fb6ab6e)) + (fp_line (start 2.27 2.84) (end 1.27 2.84) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c8fd394e-cc41-468c-b341-3e8c991ef467)) + (pad "1" smd rect (at -1.65 -5.08 180) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_1") (pintype "passive") (tstamp 2f129989-6e2a-4108-bfde-55c6e999b9f3)) + (pad "2" smd rect (at 1.65 -2.54 180) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 5 "Net-(J1-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp 3315e905-1fae-412b-9468-c12e3155c6f8)) + (pad "3" smd rect (at -1.65 0 180) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 19 "Net-(J1-Pad3)") (pinfunction "Pin_3") (pintype "passive") (tstamp a019948f-dc34-4983-806d-bb58ec8b24ce)) + (pad "4" smd rect (at 1.65 2.54 180) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 20 "Net-(J1-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp f826f4bf-05b7-4cb8-a931-290bcb3bac0b)) + (pad "5" smd rect (at -1.65 5.08 180) (size 1.9 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 21 "Net-(J1-Pad5)") (pinfunction "Pin_5") (pintype "passive") (tstamp e96e6983-dd2f-42dd-8edd-1bd91ec25da8)) + (model "${KICAD6_3DMODEL_DIR}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x05_P2.54mm_Vertical_SMD_Pin1Left.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp 67605aa5-1c16-4be8-9cca-cdb3fbcac7bc) + (at 20.193 40.005 -90) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/61c86e75-5a70-4042-be4a-8794772cee9f") + (attr smd) + (fp_text reference "C1" (at 0 -2.3 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 244bc701-cb3d-44a7-864e-b35eacb032f1) + ) + (fp_text value "100n" (at 0 2.3 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 439944f4-f9e0-4e0b-9fd3-382db07f5c54) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp e992d1c0-b73f-4c81-aa72-4662f8aa6b53) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f99f5792-2af2-45c9-b444-47c4ca0555e9)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8ef99378-c59f-4a78-a978-3691feebfb1b)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 674c2ec2-3de1-4e5d-a292-4aa30ab92402)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b0946db8-d67e-489d-8370-fa94b904647d)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7f37ddc9-1f5a-409a-a7c5-5d71039ed638)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 007e5134-2ddc-4981-90ef-4acbc74803cf)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7d380f57-884a-49da-88ae-b1ecb3874f9b)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a827472e-18ad-49cf-ae31-3f5fedc1ebde)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8deba5d5-c4ff-4fc9-bc9c-ab78b7a049da)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cc485ed4-37be-4e51-9707-5d06bbe82440)) + (pad "1" smd roundrect (at -1.5625 0 270) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 1 "Net-(C1-Pad1)") (pintype "passive") (tstamp de4d19f5-1a1b-4e1f-a9aa-e403b2df14ae)) + (pad "2" smd roundrect (at 1.5625 0 270) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 2 "Net-(C1-Pad2)") (pintype "passive") (tstamp ffb1856f-8789-4699-a6fa-292b1e699ab9)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp 6c25d60d-b175-438e-af99-f093dc4abc1c) + (at 38.0615 47.625 180) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/40be89a0-c7e8-4015-91ba-311cf3539812") + (attr smd) + (fp_text reference "C3" (at 0 -2.3) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 229bbefc-55ba-49fd-9a97-286fb307e5d0) + ) + (fp_text value "220n" (at 0 2.3) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8e055528-9904-499e-8e81-abfa8a148097) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 62a8d83b-a7e9-440b-8a06-c4e57142eb73) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1d2be8ef-7fd6-4a69-acfe-c14303e6b7db)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8a8ea2ee-6a0a-40a8-947e-465bb74d6aef)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2e4ef58a-c9b8-4cb2-bda3-114f243554fd)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 171ff821-ae1f-431d-bce9-6198e6775f2b)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7d09fab4-ab87-4450-912b-daa982b3822c)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp adfd3dcb-edbe-4403-bb7d-b15cbff4b8cc)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7d23ff25-31c7-4c82-b751-c758bd1835db)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2f68cc02-e509-42b1-bc7d-142b83ed42d9)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3783bdef-bf06-4b2f-921c-a372ccd55663)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fb25fdf2-e500-4ad0-ace4-501de49ffe48)) + (pad "1" smd roundrect (at -1.5625 0 180) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 6 "+3.3V") (pintype "passive") (tstamp 0e7e1ba7-be93-4135-b3b8-6eb152812b34)) + (pad "2" smd roundrect (at 1.5625 0 180) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 4 "GND") (pintype "passive") (tstamp 906477e7-f34b-47dd-8a2b-147eacd4e38b)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp 78252718-6e84-41a9-9eb3-a2e3349a0341) + (at 32.893 26.8855 90) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/b54e46d6-9238-4c33-a0dd-85987baa3f40") + (attr smd) + (fp_text reference "C7" (at 0 -2.3 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 3378e204-674d-48cf-b1f2-ed9920ed8b66) + ) + (fp_text value "220n" (at 0 2.3 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 73b09cde-4911-46d3-a39c-c3d0a6587e94) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 0db2983d-af1f-4544-b184-3644796c7469) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9c3c4bf0-a17b-4e1f-a641-b30266bfe66c)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 042598ee-a663-44ce-ac6a-a35a0304f42b)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f6d428d7-44cf-485f-bacc-d6b9e81d5e36)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a54dc7ed-3913-4336-8658-cfd1812d1d5b)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5f35c72c-9184-4324-9dd0-6f0eb45a9e33)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8e3d38c8-6fd4-4018-a40c-d97db2f2f64f)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7bc050f1-4f73-44be-bea9-b2ccfab106a9)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp aab34a01-9a48-4dd3-8bd4-cef2de804264)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8e6dc097-d6e6-4338-a882-00ae90876e39)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e9b5fc78-0e30-4591-9f3f-ad0c087bdaea)) + (pad "1" smd roundrect (at -1.5625 0 90) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 6 "+3.3V") (pintype "passive") (tstamp be94a098-5323-4680-a7de-d6210666a0aa)) + (pad "2" smd roundrect (at 1.5625 0 90) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 4 "GND") (pintype "passive") (tstamp 8856420f-3679-4805-a602-456ba4d0e72d)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (layer "F.Cu") + (tstamp 8576af54-be76-44da-aefc-cdd6b9b4667e) + (at 15.8365 22.225 90) + (descr "SOIC, 8 Pin (JEDEC MS-012AA, https://www.analog.com/media/en/package-pcb-resources/package/pkg_pdf/soic_narrow-r/r_8.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "SOIC SO") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/3fae67fb-26c5-4304-a9dc-622db59a09f2") + (attr smd) + (fp_text reference "U4" (at 0 -3.4 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5bb857a2-9ff1-4b0f-832b-769ecbb64a66) + ) + (fp_text value "IXDN609PI" (at 0 3.4 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 725c90af-b054-4e8f-b53c-01eb063bd174) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.98 0.98) (thickness 0.15))) + (tstamp 6da10d1c-9dd3-47b0-9245-6792179cdbfd) + ) + (fp_line (start 0 -2.56) (end -3.45 -2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 05fee8b3-6c03-4a51-a157-82702b024e3b)) + (fp_line (start 0 -2.56) (end 1.95 -2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 31804b31-b28f-4775-9668-1fa7998485ee)) + (fp_line (start 0 2.56) (end -1.95 2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp aca375dd-56da-448d-8f6e-e8f4b7a184be)) + (fp_line (start 0 2.56) (end 1.95 2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e6082ebf-e5b1-416b-ae09-46bbbfe9cee4)) + (fp_line (start -3.7 -2.7) (end -3.7 2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a040d8ef-356b-4f93-8072-bf381a6593bb)) + (fp_line (start -3.7 2.7) (end 3.7 2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 589bfad8-d21a-427a-9ba9-dad911014190)) + (fp_line (start 3.7 -2.7) (end -3.7 -2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2401d408-2daa-4c52-a1e5-197c978d0457)) + (fp_line (start 3.7 2.7) (end 3.7 -2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fc7b8d1f-3111-4760-b8d5-93b8e378ce6b)) + (fp_line (start -1.95 -1.475) (end -0.975 -2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b28dd1c9-07f3-4be9-b2cb-0ca0689281b4)) + (fp_line (start -1.95 2.45) (end -1.95 -1.475) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 320601e8-fbb4-42e6-b8d6-fe87e9c09b2d)) + (fp_line (start -0.975 -2.45) (end 1.95 -2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 91f78d51-de47-4d57-b015-d39c4ca13e2b)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 48e9ad3b-cf17-430a-889e-68af44b96472)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9154244a-3627-4604-a7ee-9b686b0b466b)) + (pad "1" smd roundrect (at -2.475 -1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 3 "VCC") (pinfunction "VCC") (pintype "power_in") (tstamp 25ed568e-927c-4be6-b262-aec9a92a0891)) + (pad "2" smd roundrect (at -2.475 -0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 22 "Net-(U1-Pad10)") (pinfunction "IN") (pintype "input") (tstamp 19502dfa-66e3-4fd0-b711-e720be7fa473)) + (pad "3" smd roundrect (at -2.475 0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 18 "unconnected-(U4-Pad3)") (pinfunction "NC") (pintype "no_connect") (tstamp 05a77557-ca54-4cb4-a898-3f85f35ea83f)) + (pad "4" smd roundrect (at -2.475 1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "GND") (pintype "power_in") (tstamp fe5fc87a-8cf1-4031-b2bc-99d67bbe67cc)) + (pad "5" smd roundrect (at 2.475 1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "GND") (pintype "power_in") (tstamp f09b83a2-2fc5-48a4-9763-2b5ab8c5408c)) + (pad "6" smd roundrect (at 2.475 0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 36 "Net-(J8-Pad1)") (pinfunction "OUT") (pintype "output") (tstamp 92e30ca8-7b2c-45b8-8083-46a9fd1cb1b6)) + (pad "7" smd roundrect (at 2.475 -0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 36 "Net-(J8-Pad1)") (pinfunction "OUT") (pintype "output") (tstamp ab9b00fc-a6f2-47a7-9137-c0d7e619883d)) + (pad "8" smd roundrect (at 2.475 -1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 3 "VCC") (pinfunction "VCC") (pintype "power_in") (tstamp e0efa35a-03e2-488e-aff0-f7d8617ce284)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (layer "F.Cu") + (tstamp 8ff5bd82-26d5-4f06-8029-90b2870800f9) + (at 29.653 32.385) + (descr "SOIC, 8 Pin (JEDEC MS-012AA, https://www.analog.com/media/en/package-pcb-resources/package/pkg_pdf/soic_narrow-r/r_8.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "SOIC SO") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/99e2a637-41cb-4383-8794-f323a8b8ffe5") + (attr smd) + (fp_text reference "U3" (at -2.54 -3.81) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0ef43705-c4c2-4b93-b42f-10cfcde330b1) + ) + (fp_text value "M24C02-RMN" (at 0 3.4) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b23895b2-03e0-41fc-9ad1-c03953f3df36) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.98 0.98) (thickness 0.15))) + (tstamp 72303155-652c-4272-9eef-faa48a4f2edd) + ) + (fp_line (start 0 -2.56) (end -3.45 -2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp dc245a29-925a-4c96-a663-cf0f9eba4f64)) + (fp_line (start 0 -2.56) (end 1.95 -2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp cf6a2498-8cc3-4fe3-b4e4-9aa8024b2fde)) + (fp_line (start 0 2.56) (end -1.95 2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 46c99068-23af-4891-a72c-34e87d0910a3)) + (fp_line (start 0 2.56) (end 1.95 2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 36828af1-c17b-4913-a6ee-c217a2cb26fe)) + (fp_line (start -3.7 -2.7) (end -3.7 2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 869cd7e6-8970-4ce2-9ecd-9f6cc2b2c5f2)) + (fp_line (start -3.7 2.7) (end 3.7 2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4753b324-88e6-4ab5-ae43-a747b4065010)) + (fp_line (start 3.7 -2.7) (end -3.7 -2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 44e63a46-ff6b-45ac-b3c0-dc1378312226)) + (fp_line (start 3.7 2.7) (end 3.7 -2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 290df232-a2b1-46b3-b86d-5b86c0508766)) + (fp_line (start -1.95 -1.475) (end -0.975 -2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4b0e1129-cd3f-42ee-b493-47a98ec45762)) + (fp_line (start -1.95 2.45) (end -1.95 -1.475) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 53b6025d-9ab0-4064-bfc8-a00a0f1ecc66)) + (fp_line (start -0.975 -2.45) (end 1.95 -2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 34133990-0add-4b46-abd2-3d3c31c1e186)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7c8bb2f6-1be4-4dba-82d2-50350361e283)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cc9d8c17-573b-4ee2-abcb-0332d01e7942)) + (pad "1" smd roundrect (at -2.475 -1.905) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 25 "unconnected-(U3-Pad1)") (pinfunction "E0") (pintype "input") (tstamp ff3dc112-0d71-44f7-af04-9929a4c7d6b8)) + (pad "2" smd roundrect (at -2.475 -0.635) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 26 "unconnected-(U3-Pad2)") (pinfunction "E1") (pintype "input") (tstamp 2df6f705-bebe-4dea-b40f-6f1b45cbdee0)) + (pad "3" smd roundrect (at -2.475 0.635) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 24 "unconnected-(U3-Pad3)") (pinfunction "E2") (pintype "input") (tstamp 9bb91dad-b20e-46e6-a26a-78876c724178)) + (pad "4" smd roundrect (at -2.475 1.905) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "VSS") (pintype "power_in") (tstamp 1eba87cf-cb8f-4275-ab59-106262f2c1be)) + (pad "5" smd roundrect (at 2.475 1.905) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 13 "Net-(R3-Pad2)") (pinfunction "SDA") (pintype "bidirectional") (tstamp 9078b9f8-6311-4f96-8d8d-4aacf843c96e)) + (pad "6" smd roundrect (at 2.475 0.635) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 27 "Net-(R2-Pad2)") (pinfunction "SCL") (pintype "input") (tstamp f3f92b9e-6916-4994-a894-3a03bdbb563b)) + (pad "7" smd roundrect (at 2.475 -0.635) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 28 "unconnected-(U3-Pad7)") (pinfunction "~{WC}") (pintype "input") (tstamp 3713d3ff-46d9-4d6b-bdce-3a3c15920d65)) + (pad "8" smd roundrect (at 2.475 -1.905) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 6 "+3.3V") (pinfunction "VCC") (pintype "power_in") (tstamp 02d42f76-e60a-4a78-b037-54fc737642c3)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" (layer "F.Cu") + (tstamp a42adda0-8857-41c4-a110-66a0025c10a3) + (at 27.797 36.195) + (descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/19405bce-01fb-4cac-957a-65dcde5bef83") + (attr smd) + (fp_text reference "R1" (at 0 -1.65) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7198e0cb-080c-40a0-9a33-0ba8ec1c1300) + ) + (fp_text value "10k" (at 0 1.65) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7eb8c9ca-8b0c-4ec2-a416-580ae4e0aefb) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.08))) + (tstamp f7ed12ab-6e77-488d-9cb2-e7b1d7db3f77) + ) + (fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp aaf304d8-719b-4c88-aa74-fa940830488c)) + (fp_line (start -0.227064 0.735) (end 0.227064 0.735) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6644aba1-d756-472b-8aee-a4a118e680bd)) + (fp_line (start -1.85 -0.95) (end 1.85 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a0ba38d3-d5c0-4f3d-94d4-ba67f0988c5c)) + (fp_line (start -1.85 0.95) (end -1.85 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8599da46-d73f-49fc-9829-bf2592fc7436)) + (fp_line (start 1.85 -0.95) (end 1.85 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 1c3aae97-8e3b-4f69-b331-a26e1b94f185)) + (fp_line (start 1.85 0.95) (end -1.85 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3b14f612-c0bc-4556-b4fc-8b3cac7f7923)) + (fp_line (start -1 -0.625) (end 1 -0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9e535399-a070-4bd1-9513-14f2c939662c)) + (fp_line (start -1 0.625) (end -1 -0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 58b97b3a-fdc9-429b-a617-34436becfb45)) + (fp_line (start 1 -0.625) (end 1 0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f519560a-f73d-40de-8d9a-8800bcc80c86)) + (fp_line (start 1 0.625) (end -1 0.625) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5b2d0cf8-a2b2-45c1-83c8-52853b43ed0f)) + (pad "1" smd roundrect (at -1 0) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333) + (net 4 "GND") (pintype "passive") (tstamp 04c892e0-5cb4-4a58-ad8a-b6b74ddbf96c)) + (pad "2" smd roundrect (at 1 0) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333) + (net 23 "Net-(R1-Pad2)") (pintype "passive") (tstamp da192442-70a4-4953-856e-c22275013c27)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (layer "F.Cu") + (tstamp a61319dc-3a40-4f62-9632-98c42f439325) + (at 15.367 33.3125 90) + (descr "Capacitor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/23417b56-a126-4a88-858a-20b16d3187c1") + (attr smd) + (fp_text reference "C2" (at 0 -2.3 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 3a3509a9-ad6f-4d56-875c-e76a91420496) + ) + (fp_text value "220n" (at 0 2.3 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9492d814-53f5-46f4-93cd-0e289bdf08ae) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 2bd95e70-6782-44db-b737-729c29af0ea0) + ) + (fp_line (start -0.711252 -1.36) (end 0.711252 -1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e005bed3-e7e5-4ec3-959b-46d47ce1f08a)) + (fp_line (start -0.711252 1.36) (end 0.711252 1.36) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1fe7cdac-18d6-43f9-952e-5b1814b1414a)) + (fp_line (start -2.48 -1.6) (end 2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0d9a83c0-aa99-42d0-839e-0eaedf6f6415)) + (fp_line (start -2.48 1.6) (end -2.48 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8674050e-f37b-4fec-a7f0-cdeaa2d93a61)) + (fp_line (start 2.48 -1.6) (end 2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0e19f3bb-6dfb-4ef9-8f72-f1cf694c7c28)) + (fp_line (start 2.48 1.6) (end -2.48 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fe8a83cf-746b-4bf5-9335-9e3a7c2447ee)) + (fp_line (start -1.6 -1.25) (end 1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 48b1b0b2-714a-4900-b592-a57ba641af16)) + (fp_line (start -1.6 1.25) (end -1.6 -1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 089de273-6363-454b-ac86-0e4c409002ce)) + (fp_line (start 1.6 -1.25) (end 1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ae51e64a-e748-4fe7-b5ce-f8eaafd2fe96)) + (fp_line (start 1.6 1.25) (end -1.6 1.25) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a3fb45bf-c83a-4ca8-9b21-2743df9e4330)) + (pad "1" smd roundrect (at -1.5625 0 90) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 6 "+3.3V") (pintype "passive") (tstamp 62af6950-d3ef-4f06-8131-56b8ed48079d)) + (pad "2" smd roundrect (at 1.5625 0 90) (size 1.325 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453) + (net 4 "GND") (pintype "passive") (tstamp 6a7fedf9-3403-4493-815d-d2e0f3cb8be1)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1210_3225Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_4.0x4.0mm" (layer "F.Cu") + (tstamp a882d9f9-6f24-44a6-97ea-77644869f287) + (at 28.5365 15.748) + (descr "SMD rectangular pad as test Point, square 4.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/b5dfaae6-61f9-4bd1-9654-731df7cb71ab") + (attr exclude_from_pos_files) + (fp_text reference "J10" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4be5a013-abcb-47a3-abb8-d88e3f4edb6f) + ) + (fp_text value "MOSFETGND" (at -0.0885 2.54 270) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9c64ad75-d18f-4b06-acf0-9200c0278459) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp f9ad476a-9835-474d-962e-99ff20d4a1ab) + ) + (fp_line (start -2.2 -2.2) (end 2.2 -2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fb093712-7f2b-4af5-9083-ed7ba503617f)) + (fp_line (start -2.2 2.2) (end -2.2 -2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b5bcc570-a135-4399-b649-ef2cdb724bd2)) + (fp_line (start 2.2 -2.2) (end 2.2 2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e1688846-6a8d-4afd-8a9f-cd24aa4ce70c)) + (fp_line (start 2.2 2.2) (end -2.2 2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp de60776f-3b3a-4edd-a02c-5abf613c1c35)) + (fp_line (start -2.5 -2.5) (end -2.5 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c094cd2c-efaa-440a-bd29-348a293d22aa)) + (fp_line (start -2.5 -2.5) (end 2.5 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d69f8794-6a8f-43f9-af5c-bcc9881e6367)) + (fp_line (start 2.5 2.5) (end -2.5 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp dd638e88-3950-40df-ac78-9daa3dd7bcdc)) + (fp_line (start 2.5 2.5) (end 2.5 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e89d5efe-d56f-4f8e-8d9f-deefb205b340)) + (pad "1" smd rect (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 4 "GND") (pinfunction "Pin_1") (pintype "passive") (tstamp 56b911d2-0739-477c-94e7-2140f1c1413b)) + ) + + (footprint "Package_TO_SOT_SMD:SOT-323_SC-70" (layer "F.Cu") + (tstamp c8c01e37-3dad-4ebf-9ead-173570a073db) + (at 30.4292 63.8048 -90) + (descr "SOT-323, SC-70") + (tags "SOT-323 SC-70") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/4b480bd0-0bde-4226-ae92-67a74b9f306d") + (attr smd) + (fp_text reference "D1" (at -0.05 -1.95 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 6efa3fab-b876-466e-b233-93955ef50d4a) + ) + (fp_text value "BAT54SW" (at -0.05 2.05 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 474206d8-8958-4547-8fde-a15923b051de) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.075))) + (tstamp ffc34d4a-a43f-4e27-aaa1-6cc8b983a1a8) + ) + (fp_line (start -0.68 1.16) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ab6f58d7-7091-4e4a-9238-e19027e1695f)) + (fp_line (start 0.73 -1.16) (end -1.3 -1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 307470ab-05f5-4ce1-9218-b09c89caf50e)) + (fp_line (start 0.73 -1.16) (end 0.73 -0.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 91694ba5-cb43-419f-8ea7-d993ffc1db37)) + (fp_line (start 0.73 0.5) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 48f61cd9-ca92-4650-92a8-ee1235c9ed4f)) + (fp_line (start -1.7 -1.3) (end 1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 1e8d09a2-2868-4d4c-82ba-9d219bfa3286)) + (fp_line (start -1.7 1.3) (end -1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 93503efe-4959-497a-8c2e-55f94c4fce8d)) + (fp_line (start 1.7 -1.3) (end 1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3b817650-bcce-48d3-968a-9bbeea7f3dc1)) + (fp_line (start 1.7 1.3) (end -1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d6e1b92f-b0c4-4959-8c48-a8e1169ab8b7)) + (fp_line (start -0.68 -0.6) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a35afa27-38b1-49c2-81eb-511975980501)) + (fp_line (start -0.18 -1.1) (end -0.68 -0.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6d759689-29b1-4511-a3f7-4a8c9f137bc9)) + (fp_line (start 0.67 -1.1) (end -0.18 -1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5d73e4ab-8336-4c84-800c-b628b52d6919)) + (fp_line (start 0.67 -1.1) (end 0.67 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 36f13170-b801-4090-a3ef-9658fbd7b1a0)) + (fp_line (start 0.67 1.1) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4870ae76-25a8-40e4-ad3b-fa2036f0cdee)) + (pad "1" smd rect (at -1 -0.65 180) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pintype "passive") (tstamp 39c8717b-0e5f-41cc-a473-fb63369778c5)) + (pad "2" smd rect (at -1 0.65 180) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pintype "passive") (tstamp 36cef1a2-c481-493c-8f8e-a5b0bf69ff4b)) + (pad "3" smd rect (at 1 0 180) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 31 "Net-(D1-Pad3)") (pintype "passive") (tstamp e0759cbe-3429-4f73-862c-833cd971a65b)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-323_SC-70.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_4.0x4.0mm" (layer "F.Cu") + (tstamp cab3e6bc-6f77-4d19-bc33-1b3403b3e573) + (at 16.4715 15.748) + (descr "SMD rectangular pad as test Point, square 4.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/9e8aa448-3a19-4b99-bdcc-670bd787e7b2") + (attr exclude_from_pos_files) + (fp_text reference "J8" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0790ae3d-ebbc-47fc-9fb6-6d0d52a3bf24) + ) + (fp_text value "Conn_01x01_Female" (at -2.2475 3.1) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 592f9d45-524e-4e6b-9aa7-98d4eab4acfa) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 3b373f9e-6ccd-4ac4-b749-144f99b4aa1d) + ) + (fp_line (start -2.2 -2.2) (end 2.2 -2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d3d0c6f7-32af-4a9d-8408-15e702574011)) + (fp_line (start -2.2 2.2) (end -2.2 -2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ab956c93-2aab-4d3a-af6f-6de63b95c99e)) + (fp_line (start 2.2 -2.2) (end 2.2 2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0f989125-c3e7-4490-980c-312cdcb5a7ba)) + (fp_line (start 2.2 2.2) (end -2.2 2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b22bbee1-1d47-460c-8379-1a917132f8c0)) + (fp_line (start -2.5 -2.5) (end -2.5 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0a84e5df-787e-4f48-9c1a-6e2498e44291)) + (fp_line (start -2.5 -2.5) (end 2.5 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 118cb086-dbf4-409f-baca-ec508d15b8a9)) + (fp_line (start 2.5 2.5) (end -2.5 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7fec3f45-704b-4d50-963e-9d0769cdd24e)) + (fp_line (start 2.5 2.5) (end 2.5 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0c33bf11-9639-4f25-8f0f-f99646265cb0)) + (pad "1" smd rect (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 36 "Net-(J8-Pad1)") (pinfunction "Pin_1") (pintype "passive") (tstamp b041218a-6cc8-4cfd-a2db-630c0d27bb64)) + ) + + (footprint "Package_TO_SOT_SMD:SOT-323_SC-70" (layer "F.Cu") + (tstamp d1a5f6a1-c7a5-4316-94cb-c9f0e5bca34a) + (at 21.082 63.3984 -90) + (descr "SOT-323, SC-70") + (tags "SOT-323 SC-70") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/1a16911a-85ff-4f6f-b09c-a14d4493e96a") + (attr smd) + (fp_text reference "D3" (at -0.05 -1.95 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0a5b3bc2-b5d2-4889-8ea3-6884b635f57b) + ) + (fp_text value "BAT54SW" (at -0.05 2.05 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c6dc1f66-b3ed-4ee2-8b7b-31513fe8dcdf) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.075))) + (tstamp 0f560f66-0d6d-4afb-ac5a-45386b0975b1) + ) + (fp_line (start -0.68 1.16) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1416d54f-64bf-4939-8af8-d538ba3fa482)) + (fp_line (start 0.73 -1.16) (end -1.3 -1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6febd309-063b-429f-8d8a-e3ce237d5fd7)) + (fp_line (start 0.73 -1.16) (end 0.73 -0.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1f69e078-a98a-4656-b865-dff0bdfdd050)) + (fp_line (start 0.73 0.5) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 82999c20-4d64-4610-aa5d-e85b2e9654f5)) + (fp_line (start -1.7 -1.3) (end 1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4abcf410-ccbc-4ca5-8ebf-260922290beb)) + (fp_line (start -1.7 1.3) (end -1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ca69d806-d6a4-4cb4-864e-d0a2603483eb)) + (fp_line (start 1.7 -1.3) (end 1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c6c0b2c7-6686-4e05-90c4-ad6fc8a7e226)) + (fp_line (start 1.7 1.3) (end -1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fea9158f-6a97-4ea3-9985-ec1ee1f3b31e)) + (fp_line (start -0.68 -0.6) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4b0998ae-7a49-48da-b0df-4180c2310fe1)) + (fp_line (start -0.18 -1.1) (end -0.68 -0.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fb226478-1596-4034-ae29-c3d8a445b450)) + (fp_line (start 0.67 -1.1) (end -0.18 -1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d80ef1ab-7459-463f-8aad-358633cc4077)) + (fp_line (start 0.67 -1.1) (end 0.67 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 632c0c9c-1f2f-4131-9e2a-d4ddde35d254)) + (fp_line (start 0.67 1.1) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ded28bc5-cdca-477f-be72-5131e3b2f376)) + (pad "1" smd rect (at -1 -0.65 180) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pintype "passive") (tstamp 1599fc4c-a0c2-423f-9da9-6bf1110ee90e)) + (pad "2" smd rect (at -1 0.65 180) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pintype "passive") (tstamp 57787000-d425-4948-9b95-2561b52b88b1)) + (pad "3" smd rect (at 1 0 180) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 33 "Net-(D3-Pad3)") (pintype "passive") (tstamp 7c2650ad-ece3-47f0-a7ad-79afbb036d40)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-323_SC-70.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Diode_SMD:D_MELF" (layer "F.Cu") + (tstamp d659d66b-45ff-480b-8d07-9590e1ae7422) + (at 35.433 18.034) + (descr "Diode, MELF,,") + (tags "Diode MELF ") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/3e5e37d2-193f-41ec-83dd-d98c7f740beb") + (attr smd) + (fp_text reference "D5" (at 0 -2.5) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 441610b3-a37a-4c42-9f93-e1f38fe63d54) + ) + (fp_text value "SM4002" (at -0.25 2.5) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp de991d4c-0970-4e1e-a7d6-a9d81d0801de) + ) + (fp_text user "${REFERENCE}" (at 0 -2.5) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4685b82a-1af2-4fd3-83eb-620d72d7c63f) + ) + (fp_line (start -3.3 -1.5) (end -3.3 1.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 15e3ef93-ecbb-4cdc-824b-a1ea5e27f5d6)) + (fp_line (start -3.3 1.5) (end 2.4 1.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 81336b8d-00b0-4889-9520-a67ea10f2ac3)) + (fp_line (start 2.4 -1.5) (end -3.3 -1.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp af147408-9639-4cde-b62a-bad4afdf4192)) + (fp_line (start -3.4 -1.6) (end 3.4 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 95bb080c-bc5e-421d-900f-e887f2e75c48)) + (fp_line (start -3.4 1.6) (end -3.4 -1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9c50a755-a0bf-4a04-867a-4ea6792a6e75)) + (fp_line (start 3.4 -1.6) (end 3.4 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b886f38c-90e8-4d9b-82bc-bc44f8c1f609)) + (fp_line (start 3.4 1.6) (end -3.4 1.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 34efbf87-e3e8-452d-a13d-b4adb78371ac)) + (fp_line (start -2.6 -1.3) (end -2.6 1.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1c7eef23-7cdc-4f3f-984d-79ac1cc54cdd)) + (fp_line (start -2.6 1.3) (end 2.6 1.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 11c83e94-754c-4a7c-b09e-6770bccdce1f)) + (fp_line (start -0.64944 -0.79908) (end -0.64944 0.80112) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c8df32c8-d68e-4c6d-ab0d-a0730b7d5ece)) + (fp_line (start -0.64944 0.00102) (end -1.55114 0.00102) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9d8f187f-8d12-4270-be76-008bca45bad5)) + (fp_line (start -0.64944 0.00102) (end 0.50118 -0.79908) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp da3583f1-f845-4053-b5d1-794ba63dd8b4)) + (fp_line (start -0.64944 0.00102) (end 0.50118 0.75032) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a0b7474d-3664-4681-9c6c-b3363e12c5ee)) + (fp_line (start 0.50118 0.00102) (end 1.4994 0.00102) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 249cc99a-39e2-4568-9303-7b14105e0fca)) + (fp_line (start 0.50118 0.75032) (end 0.50118 -0.79908) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 54ba8de0-04e7-447f-ad28-10facc4665c5)) + (fp_line (start 2.6 -1.3) (end -2.6 -1.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 50da5560-ab66-4d4a-b740-8b8a51fd9c2c)) + (fp_line (start 2.6 1.3) (end 2.6 -1.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9e71e189-f71a-4f4e-8fae-169467ee71ac)) + (pad "1" smd rect (at -2.4 0) (size 1.5 2.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 3 "VCC") (pinfunction "K") (pintype "passive") (tstamp 73261385-4464-474b-bbb8-50a76daf3f68)) + (pad "2" smd rect (at 2.4 0) (size 1.5 2.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 35 "Net-(D5-Pad2)") (pinfunction "A") (pintype "passive") (tstamp 6d0b0b66-6858-4dbd-93cc-c2b094ce620f)) + (model "${KICAD6_3DMODEL_DIR}/Diode_SMD.3dshapes/D_MELF.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_SMD:SOT-323_SC-70" (layer "F.Cu") + (tstamp e2c5a8d7-dd30-4625-a1c5-2ba2b6c96473) + (at 26.5176 60.4012) + (descr "SOT-323, SC-70") + (tags "SOT-323 SC-70") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/dfe6720c-c823-45d0-8b65-257861e7f330") + (attr smd) + (fp_text reference "D2" (at -0.05 -1.95) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 6ac18b0a-5b05-426f-a449-4fc776c14727) + ) + (fp_text value "BAT54SW" (at -0.05 2.05) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp fdab2073-5a92-4198-b48d-b647546a9a47) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.5 0.5) (thickness 0.075))) + (tstamp 5d905ca6-a673-4a5a-9f0d-cef2ae13cdef) + ) + (fp_line (start -0.68 1.16) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0177ebb8-6416-4a12-a50d-08574c312943)) + (fp_line (start 0.73 -1.16) (end -1.3 -1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d089c02f-1e01-4b2c-9700-2c6b9d6923f4)) + (fp_line (start 0.73 -1.16) (end 0.73 -0.5) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ce23965d-9c9a-49a5-8f53-df14d68fd5e8)) + (fp_line (start 0.73 0.5) (end 0.73 1.16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7943e57f-e54d-42a4-ab00-ebf1bb87f1f4)) + (fp_line (start -1.7 -1.3) (end 1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 54b9b8c2-31ae-4261-8d3e-d7ae6285ad76)) + (fp_line (start -1.7 1.3) (end -1.7 -1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 21bd2569-caa5-43da-8107-2af568667ef8)) + (fp_line (start 1.7 -1.3) (end 1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f1d9e7be-40dc-4de8-9c6e-a49ca0d147a0)) + (fp_line (start 1.7 1.3) (end -1.7 1.3) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 16426540-4a84-4328-aa2f-0c94370482f1)) + (fp_line (start -0.68 -0.6) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9c77ca21-1084-449d-a62f-a71cfe777b9b)) + (fp_line (start -0.18 -1.1) (end -0.68 -0.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7fa9ed53-5674-4da4-b33d-3361c2cd3062)) + (fp_line (start 0.67 -1.1) (end -0.18 -1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 36308aa7-3c6c-4bda-a5ad-613ea4c4cc98)) + (fp_line (start 0.67 -1.1) (end 0.67 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c1bb08e0-eb14-4fcb-a9a5-6b5367c94e35)) + (fp_line (start 0.67 1.1) (end -0.68 1.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4fd6845c-7390-498e-92fd-bd94d2f718a1)) + (pad "1" smd rect (at -1 -0.65 270) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pintype "passive") (tstamp f2f84bb3-cdb1-46ba-9497-19d610703a26)) + (pad "2" smd rect (at -1 0.65 270) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pintype "passive") (tstamp d33c6f18-f806-4919-9b32-555cf5fc1398)) + (pad "3" smd rect (at 1 0 270) (size 0.45 0.7) (layers "F.Cu" "F.Paste" "F.Mask") + (net 32 "Net-(D2-Pad3)") (pintype "passive") (tstamp f2a7d129-ae4b-4541-a186-fa0c8544aaa1)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-323_SC-70.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (layer "F.Cu") + (tstamp ef59ceb5-52a2-42db-8f68-bf4b4c706449) + (at 21.844 22.225 90) + (descr "SOIC, 8 Pin (JEDEC MS-012AA, https://www.analog.com/media/en/package-pcb-resources/package/pkg_pdf/soic_narrow-r/r_8.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "SOIC SO") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/c10abea4-e98e-4e1a-9885-cdd6aac50277") + (attr smd) + (fp_text reference "U5" (at 0 -3.4 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 981ccfd4-b5b6-4193-acbd-4029c5ed5846) + ) + (fp_text value "IXDN609PI" (at 0 3.4 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ac06d11a-a4e4-43e3-9265-8e38f8e439e9) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.98 0.98) (thickness 0.15))) + (tstamp 33f54d35-8f59-4246-b141-7f005a197f0b) + ) + (fp_line (start 0 -2.56) (end -3.45 -2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 624f0932-d415-40f1-99fb-0962f598a99b)) + (fp_line (start 0 -2.56) (end 1.95 -2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 57148196-a4ee-4b69-b577-65e2543a7ce7)) + (fp_line (start 0 2.56) (end -1.95 2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c47c8593-a23f-4f25-8bd9-b607dd686fd7)) + (fp_line (start 0 2.56) (end 1.95 2.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 521bf907-feb3-4a9f-92f3-061e29bf2735)) + (fp_line (start -3.7 -2.7) (end -3.7 2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e2d601a3-ce8d-4f2a-83ee-0952136d18ad)) + (fp_line (start -3.7 2.7) (end 3.7 2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5c697093-2ad2-4b58-a2af-0d072dfd1520)) + (fp_line (start 3.7 -2.7) (end -3.7 -2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp afca6e9f-7dee-4b2f-b294-422d3d57e5ec)) + (fp_line (start 3.7 2.7) (end 3.7 -2.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 762c5935-da33-42e7-9795-30ecdab8f820)) + (fp_line (start -1.95 -1.475) (end -0.975 -2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b6cffbd3-bc60-4428-8e65-a52a6cd863bc)) + (fp_line (start -1.95 2.45) (end -1.95 -1.475) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8cfe1d44-71c6-40e1-9a52-22b791928714)) + (fp_line (start -0.975 -2.45) (end 1.95 -2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bca0ca86-cce5-4b3f-9c64-ea875dadf8cd)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cb938009-f0ad-4769-878a-9ac10039d742)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 707c1069-86be-440a-b1c1-564f658f5fc2)) + (pad "1" smd roundrect (at -2.475 -1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 3 "VCC") (pinfunction "VCC") (pintype "power_in") (tstamp 9075585f-d084-493c-a744-8c6198ce471f)) + (pad "2" smd roundrect (at -2.475 -0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 9 "Net-(U1-Pad9)") (pinfunction "IN") (pintype "input") (tstamp cd967b3c-4383-4add-ac3d-9dd8c310a889)) + (pad "3" smd roundrect (at -2.475 0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 29 "unconnected-(U5-Pad3)") (pinfunction "NC") (pintype "no_connect") (tstamp 39f7ecc2-6331-4405-8ba3-c7ff5803a95e)) + (pad "4" smd roundrect (at -2.475 1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "GND") (pintype "power_in") (tstamp aebdb1de-711f-468f-a01d-d7a092e79d6b)) + (pad "5" smd roundrect (at 2.475 1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 73717cde-b324-4d47-a1a3-ad8a7b6b6ade)) + (pad "6" smd roundrect (at 2.475 0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 12 "Net-(J9-Pad1)") (pinfunction "OUT") (pintype "output") (tstamp 1294e48c-e96f-4335-a204-c56431516e52)) + (pad "7" smd roundrect (at 2.475 -0.635 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 12 "Net-(J9-Pad1)") (pinfunction "OUT") (pintype "output") (tstamp 99cc913f-db46-4315-90a8-21c0c5a47571)) + (pad "8" smd roundrect (at 2.475 -1.905 90) (size 1.95 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 3 "VCC") (pinfunction "VCC") (pintype "power_in") (tstamp f6019b8c-5829-40c5-8766-d548dddee494)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_4.0x4.0mm" (layer "F.Cu") + (tstamp f241f634-82c6-4c08-8daa-d75d462ce239) + (at 22.479 15.748) + (descr "SMD rectangular pad as test Point, square 4.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/3ffaeb43-d11d-4b74-a8e6-d41561a4e20c") + (attr exclude_from_pos_files) + (fp_text reference "J9" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b325da56-db8a-49be-990d-8aa0ba43d220) + ) + (fp_text value "Conn_01x01_Female" (at -0.127 5.588 270) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 6d7a5ae3-f41d-4d4c-a719-e71a5a330b4b) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d30a1f2b-ef06-4eec-9378-ebc028984458) + ) + (fp_line (start -2.2 -2.2) (end 2.2 -2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c8832667-f202-4ed2-aac4-19862cfa6f2a)) + (fp_line (start -2.2 2.2) (end -2.2 -2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d52d5e21-1767-4619-aab1-38f0140e6b03)) + (fp_line (start 2.2 -2.2) (end 2.2 2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 93b259c2-ce6e-4701-bae2-68c11fc6f67d)) + (fp_line (start 2.2 2.2) (end -2.2 2.2) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ad5283f1-db72-47b9-8ee5-d5a6bc026eab)) + (fp_line (start -2.5 -2.5) (end -2.5 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ffbbefc7-32a5-4b58-bcf6-67a6086a0e3b)) + (fp_line (start -2.5 -2.5) (end 2.5 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 74b9cc55-c281-46ae-a6aa-41416a6c6ff5)) + (fp_line (start 2.5 2.5) (end -2.5 2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3ca59576-013a-47bb-a2fb-a530c5343c11)) + (fp_line (start 2.5 2.5) (end 2.5 -2.5) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp eb7b0555-549e-4dd5-a8dc-09d6fe701add)) + (pad "1" smd rect (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 12 "Net-(J9-Pad1)") (pinfunction "Pin_1") (pintype "passive") (tstamp 233c9fe6-11a5-4158-8848-9150ac53cf86)) + ) + + (footprint "Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm_HandSoldering" (layer "F.Cu") + (tstamp f2f47821-e4b4-485d-a91d-9a02cbbbaa75) + (at 23.622 36.77 90) + (descr "SMD Crystal SERIES SMD2520/2 http://www.icbase.com/File/PDF/HKC/HKC00061008.pdf, hand-soldering, 5.0x3.2mm^2 package") + (tags "SMD SMT crystal hand-soldering") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/3a3863d3-8e24-461e-8cf5-a941e01a83f7") + (attr smd) + (fp_text reference "Y1" (at 0 -2.8 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5c699d19-14b6-41bf-af03-50960f143fe0) + ) + (fp_text value "12.288 MHz" (at 0 2.8 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e789b0fe-d7e6-4312-a605-029e2a6c0fa3) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4420bb2c-e0a4-45d1-8d70-e65baf582736) + ) + (fp_circle (center 0 0) (end 0.093333 0) + (stroke (width 0.186667) (type solid)) (fill none) (layer "F.Adhes") (tstamp 7d0d5d74-2db6-49b3-8d39-5a3939ec0f57)) + (fp_circle (center 0 0) (end 0.213333 0) + (stroke (width 0.133333) (type solid)) (fill none) (layer "F.Adhes") (tstamp 14e0c47a-9ce9-4840-8c89-a828ce599a23)) + (fp_circle (center 0 0) (end 0.333333 0) + (stroke (width 0.133333) (type solid)) (fill none) (layer "F.Adhes") (tstamp c64c35cb-9b95-4351-b5e6-937016dff655)) + (fp_circle (center 0 0) (end 0.4 0) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Adhes") (tstamp d7d2f16e-d67e-49d7-8a23-43554dec2c91)) + (fp_line (start -4.55 -1.8) (end -4.55 1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 26883f07-1408-46e1-9dae-0e799c1d8e2d)) + (fp_line (start -4.55 1.8) (end 2.7 1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7aa12162-a99f-46aa-9bf6-781c68d26614)) + (fp_line (start 2.7 -1.8) (end -4.55 -1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c97d5990-fb69-4b6f-b2f1-7005244e8f9b)) + (fp_line (start -4.6 -1.9) (end -4.6 1.9) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 13fdfd5a-3271-4c2e-91a4-a098f9edb7eb)) + (fp_line (start -4.6 1.9) (end 4.6 1.9) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9d69c253-bcf6-43f8-9985-2e681a99202c)) + (fp_line (start 4.6 -1.9) (end -4.6 -1.9) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9a74f5a1-ae38-4a15-b54d-f42aab969326)) + (fp_line (start 4.6 1.9) (end 4.6 -1.9) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 65c05122-1897-4f35-a18b-58d076197984)) + (fp_line (start -2.5 -1.4) (end -2.3 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d4055b94-89dc-46b6-8f37-c8fa63f75006)) + (fp_line (start -2.5 0.6) (end -1.5 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1a27b4de-c7bf-40a9-a337-5d111b565807)) + (fp_line (start -2.5 1.4) (end -2.5 -1.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7298dc50-ec5f-4b23-ba49-f45816a74b69)) + (fp_line (start -2.3 -1.6) (end 2.3 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0824433d-068e-4644-bcd1-1b660be00faa)) + (fp_line (start -2.3 1.6) (end -2.5 1.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cd0a8757-21d9-4a75-b3cf-3c1ce957d08d)) + (fp_line (start 2.3 -1.6) (end 2.5 -1.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 50c268d9-13c3-48f8-ab7d-12aa40dae212)) + (fp_line (start 2.3 1.6) (end -2.3 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp db3e97a9-93f8-480d-bffb-563f7989ebe4)) + (fp_line (start 2.5 -1.4) (end 2.5 1.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1ad3d6ab-849c-4781-8de2-274715737baf)) + (fp_line (start 2.5 1.4) (end 2.3 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 23574d16-a763-4129-b3fd-50f7384fa45c)) + (pad "1" smd rect (at -2.6 0 90) (size 3.5 2.4) (layers "F.Cu" "F.Paste" "F.Mask") + (net 11 "Net-(U2-Pad3)") (pinfunction "1") (pintype "passive") (tstamp 3fa50c47-72df-4fa4-8dc1-ab1d92b97995)) + (pad "2" smd rect (at 2.6 0 90) (size 3.5 2.4) (layers "F.Cu" "F.Paste" "F.Mask") + (net 10 "Net-(U2-Pad2)") (pinfunction "2") (pintype "passive") (tstamp 817b192b-cbde-48d5-880e-35d275a013ec)) + (model "${KICAD6_3DMODEL_DIR}/Crystal.3dshapes/Crystal_SMD_5032-2Pin_5.0x3.2mm_HandSoldering.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Connector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_Vertical_SMD_Pin1Left" (layer "F.Cu") + (tstamp f95f8c0e-0778-43d8-9046-9488dac31f79) + (at 44.323 34.798 180) + (descr "surface-mounted straight pin header, 1x15, 2.54mm pitch, single row, style 1 (pin 1 left)") + (tags "Surface mounted pin header SMD 1x15 2.54mm single row style1 pin1 left") + (property "Sheetfile" "squeow.kicad_sch") + (property "Sheetname" "") + (path "/92a6428d-e324-4976-b1ea-1d7a1c7ed2f5") + (attr smd) + (fp_text reference "J4" (at 0 -20.11) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c370eb87-4632-4a97-9beb-71d4bfb09fce) + ) + (fp_text value "TOSTA_USB_JTAG" (at 0 20.11) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 3e7e30ca-be30-4ccf-afb9-87def23c6676) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 3bd26e51-0025-49bc-a312-e5a2377485be) + ) + (fp_line (start -1.33 -19.11) (end -1.33 -18.54) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 80556dcc-7e35-46c8-bd73-030f575487ba)) + (fp_line (start -1.33 -19.11) (end 1.33 -19.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 086dd45b-4663-44e6-b01c-5f4b89bfbfb7)) + (fp_line (start -1.33 -18.54) (end -2.85 -18.54) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e0861a5c-c264-4d53-9c3b-d8f8461eb8cd)) + (fp_line (start -1.33 -17.02) (end -1.33 -13.46) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6df512a7-b004-4d25-8f33-81e46c74b7cc)) + (fp_line (start -1.33 -11.94) (end -1.33 -8.38) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5f2afafa-416f-49d6-bf18-66894ccbbc36)) + (fp_line (start -1.33 -6.86) (end -1.33 -3.3) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b53ad3e4-f69f-4dec-9312-31920ceb1701)) + (fp_line (start -1.33 -1.78) (end -1.33 1.78) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ebbebcc0-392a-41be-985d-923cb089b4b8)) + (fp_line (start -1.33 3.3) (end -1.33 6.86) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1920201f-1393-4c0a-b257-ca7d8f60064c)) + (fp_line (start -1.33 8.38) (end -1.33 11.94) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp bdefdc8f-aa90-41b2-900f-145ff2abfd81)) + (fp_line (start -1.33 13.46) (end -1.33 17.02) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6b2971eb-6dae-4803-b019-444fc8f9c84d)) + (fp_line (start -1.33 19.11) (end 1.33 19.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9653bbea-ee0f-4573-bffa-9d1c9f0a9dcc)) + (fp_line (start 1.33 -19.11) (end 1.33 -16) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0eb8e1fe-3d98-4509-be68-23ff74d56c92)) + (fp_line (start 1.33 -14.48) (end 1.33 -10.92) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ed70544c-c0e3-4fd0-8e55-e7020c6d2012)) + (fp_line (start 1.33 -9.4) (end 1.33 -5.84) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0ce91cef-30c5-4eb3-82d5-af7088975bd6)) + (fp_line (start 1.33 -4.32) (end 1.33 -0.76) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b6b58d24-5ba9-40c0-be32-922ec3190e47)) + (fp_line (start 1.33 0.76) (end 1.33 4.32) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 87d49303-3c99-4739-a08d-b1813300c51a)) + (fp_line (start 1.33 5.84) (end 1.33 9.4) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4e4d12b1-60ab-45b1-b86c-5b0a3defd4ac)) + (fp_line (start 1.33 10.92) (end 1.33 14.48) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c0fc29cb-aedb-47f3-8c07-9a5be797b851)) + (fp_line (start 1.33 16) (end 1.33 19.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9babed46-843b-45b5-976a-b8f09d720db2)) + (fp_line (start 1.33 18.54) (end 1.33 19.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 722acebe-2120-44b8-a9ae-ac4be983e749)) + (fp_line (start -3.45 -19.6) (end -3.45 19.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a5551715-a688-4b0c-8374-81ec6fbf6ab8)) + (fp_line (start -3.45 19.6) (end 3.45 19.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp cff19046-7624-4ed0-ba21-d3c40fb6e458)) + (fp_line (start 3.45 -19.6) (end -3.45 -19.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7a745f92-333e-4d41-aba6-52f9390cc1ee)) + (fp_line (start 3.45 19.6) (end 3.45 -19.6) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 388fa8a3-f789-4128-9799-a87698653383)) + (fp_line (start -2.54 -18.1) (end -2.54 -17.46) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3df2bb40-6a1f-42b2-8647-c673f72afa4a)) + (fp_line (start -2.54 -17.46) (end -1.27 -17.46) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 66e89f28-92fe-4c44-a007-938509a29568)) + (fp_line (start -2.54 -13.02) (end -2.54 -12.38) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c3f9c14d-485e-41fc-af9a-711649d4a975)) + (fp_line (start -2.54 -12.38) (end -1.27 -12.38) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a50de083-a1cd-4a0a-ab25-32018628a2d3)) + (fp_line (start -2.54 -7.94) (end -2.54 -7.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 96739fee-5f7a-4ddf-bfa0-c860f4950ac8)) + (fp_line (start -2.54 -7.3) (end -1.27 -7.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 98601d61-378b-45ed-99bc-82c9c64e828b)) + (fp_line (start -2.54 -2.86) (end -2.54 -2.22) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 74b1364c-1422-428d-88b4-3be0c386c9ad)) + (fp_line (start -2.54 -2.22) (end -1.27 -2.22) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 013c282d-bc35-4032-aeca-9b5fb96ec0ff)) + (fp_line (start -2.54 2.22) (end -2.54 2.86) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0e356d19-b8eb-4c9d-a2f7-5d72d3a96f5d)) + (fp_line (start -2.54 2.86) (end -1.27 2.86) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 446ebe04-faf8-4326-985a-a27bf8f1e2c9)) + (fp_line (start -2.54 7.3) (end -2.54 7.94) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d99eb9b1-0135-4cc2-8a42-cfe1379afc60)) + (fp_line (start -2.54 7.94) (end -1.27 7.94) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 226fc5a5-5a55-4ded-86ee-ad7cfd31aecb)) + (fp_line (start -2.54 12.38) (end -2.54 13.02) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a62636d0-0e88-4d0b-b4d5-65de7f0281f7)) + (fp_line (start -2.54 13.02) (end -1.27 13.02) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a9131f5f-ba23-4200-b8a3-ec1c3584b2bf)) + (fp_line (start -2.54 17.46) (end -2.54 18.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f03a113d-01eb-4240-9667-9b0c7f2c175c)) + (fp_line (start -2.54 18.1) (end -1.27 18.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp af360cbb-dfd8-4698-8880-9e1484d09b8e)) + (fp_line (start -1.27 -18.1) (end -2.54 -18.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0b9fcbaf-c0f8-4048-a998-4041abb802d3)) + (fp_line (start -1.27 -18.1) (end -0.32 -19.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 127cbc50-bbcf-46cd-a1a4-f93768e752d5)) + (fp_line (start -1.27 -13.02) (end -2.54 -13.02) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a5d38725-2448-4798-a682-0d685521ffd9)) + (fp_line (start -1.27 -7.94) (end -2.54 -7.94) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f7170dd3-b997-45a2-a58e-2c1d2b09838e)) + (fp_line (start -1.27 -2.86) (end -2.54 -2.86) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 70b41393-adcf-4f0a-908a-d3c66a35f9a8)) + (fp_line (start -1.27 2.22) (end -2.54 2.22) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6306ad86-3c08-453a-b522-64860307187c)) + (fp_line (start -1.27 7.3) (end -2.54 7.3) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1bb6181b-11ce-4f57-b5c6-eaf48fabc476)) + (fp_line (start -1.27 12.38) (end -2.54 12.38) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e7c57fe5-6636-48fb-86a9-5c29e3408314)) + (fp_line (start -1.27 17.46) (end -2.54 17.46) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 07a0a57b-4322-4ae2-9683-237e482024a0)) + (fp_line (start -1.27 19.05) (end -1.27 -18.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 208e278e-24de-4a15-ad08-8da82b24ae57)) + (fp_line (start -0.32 -19.05) (end 1.27 -19.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 960650cf-11f2-4b4d-acbd-3438b951ec2a)) + (fp_line (start 1.27 -19.05) (end 1.27 19.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 48ebe657-0e28-4bf3-bfcf-3f03314ba163)) + (fp_line (start 1.27 -15.56) (end 2.54 -15.56) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e9833deb-ed8c-436c-b7dd-3e56a630e05c)) + (fp_line (start 1.27 -10.48) (end 2.54 -10.48) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6d8ca2a8-d3b5-4ce3-abbd-4383a48cc169)) + (fp_line (start 1.27 -5.4) (end 2.54 -5.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3d1b3971-87f0-4a08-9131-717119e587d7)) + (fp_line (start 1.27 -0.32) (end 2.54 -0.32) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 869d06e9-f549-4f56-b6bc-6d1bdd125ebf)) + (fp_line (start 1.27 4.76) (end 2.54 4.76) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp da5ad8eb-f61f-420a-aaa8-7e7895ad050f)) + (fp_line (start 1.27 9.84) (end 2.54 9.84) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bed28a6a-0e17-4610-861d-dea173d2727d)) + (fp_line (start 1.27 14.92) (end 2.54 14.92) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp daaf175f-6f67-474b-be83-99450c596735)) + (fp_line (start 1.27 19.05) (end -1.27 19.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0401476c-0974-461a-855a-ebbb999d92bb)) + (fp_line (start 2.54 -15.56) (end 2.54 -14.92) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1dcc51b7-3ee9-462a-a2b5-db1eeaefe9b0)) + (fp_line (start 2.54 -14.92) (end 1.27 -14.92) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c0f99532-d1ab-4674-8123-d0bdaeeb2468)) + (fp_line (start 2.54 -10.48) (end 2.54 -9.84) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9809e256-5ad8-4a5f-917f-fce2de319bff)) + (fp_line (start 2.54 -9.84) (end 1.27 -9.84) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7b52fa15-58c6-47c7-8c64-2ed155470506)) + (fp_line (start 2.54 -5.4) (end 2.54 -4.76) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 49c9b67c-49af-46e4-bfac-be2a038ea60f)) + (fp_line (start 2.54 -4.76) (end 1.27 -4.76) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c644cf41-a3c9-47cb-84a9-2aa2b14ff6b2)) + (fp_line (start 2.54 -0.32) (end 2.54 0.32) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f8d30d39-7039-41f7-a47f-3fe40847c5e3)) + (fp_line (start 2.54 0.32) (end 1.27 0.32) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5c6223a4-2e92-409d-b92c-ace030ee3651)) + (fp_line (start 2.54 4.76) (end 2.54 5.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5bb3f938-9ab2-4449-bdd3-923fd7107623)) + (fp_line (start 2.54 5.4) (end 1.27 5.4) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e338e306-3e38-4a54-b6b6-2c727e3966e9)) + (fp_line (start 2.54 9.84) (end 2.54 10.48) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 00599603-17a5-487b-8fa3-f5553f31cd49)) + (fp_line (start 2.54 10.48) (end 1.27 10.48) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5674189b-0dd0-4ce2-987c-3bc0751b83d1)) + (fp_line (start 2.54 14.92) (end 2.54 15.56) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 05ae0f44-85f5-4b7e-9f83-10b6bdc797f8)) + (fp_line (start 2.54 15.56) (end 1.27 15.56) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3eb99cec-3302-4014-88f3-01fd4d075eb8)) + (pad "1" smd rect (at -1.655 -17.78 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_1") (pintype "passive") (tstamp 07bff4e9-c6c8-44d8-a1aa-5f08baa745fa)) + (pad "2" smd rect (at 1.655 -15.24 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pinfunction "Pin_2") (pintype "passive") (tstamp bc1d56aa-c286-4c0b-a268-a04ed3359aae)) + (pad "3" smd rect (at -1.655 -12.7 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 37 "Net-(J4-Pad3)") (pinfunction "Pin_3") (pintype "passive") (tstamp 5305099a-ea95-4aba-b70d-cb0a9ee56841)) + (pad "4" smd rect (at 1.655 -10.16 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 38 "Net-(J4-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp c5a06462-bd87-4653-a15f-2bb058cfad27)) + (pad "5" smd rect (at -1.655 -7.62 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 39 "Net-(J4-Pad5)") (pinfunction "Pin_5") (pintype "passive") (tstamp b3cb5fb9-1041-4dee-afb5-676cb780b277)) + (pad "6" smd rect (at 1.655 -5.08 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 40 "Net-(J4-Pad6)") (pinfunction "Pin_6") (pintype "passive") (tstamp 157d7b0e-d85c-41f3-b6dc-727f882dfe5f)) + (pad "7" smd rect (at -1.655 -2.54 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_7") (pintype "passive") (tstamp 94fc9816-078c-42e7-961e-72c888a27385)) + (pad "8" smd rect (at 1.655 0 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 41 "Net-(J4-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp 6aa1ffb3-d75f-45a9-8f08-2746192828a1)) + (pad "9" smd rect (at -1.655 2.54 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 42 "Net-(J4-Pad9)") (pinfunction "Pin_9") (pintype "passive") (tstamp 2f5da95b-32d8-4bc4-a7fb-0bff40dc5b1b)) + (pad "10" smd rect (at 1.655 5.08 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_10") (pintype "passive") (tstamp 28e9a17d-25d4-4d08-98a8-d00c6031d149)) + (pad "11" smd rect (at -1.655 7.62 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "+3.3V") (pinfunction "Pin_11") (pintype "passive") (tstamp 8be29245-9751-4f02-915a-4fdf7e46f227)) + (pad "12" smd rect (at 1.655 10.16 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_12") (pintype "passive") (tstamp 8d017f92-d3ed-4d59-9ea7-2330b79fe6f5)) + (pad "13" smd rect (at -1.655 12.7 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") (pinfunction "Pin_13") (pintype "passive") (tstamp 35881598-5d82-46c3-a04f-8e0657bc2e91)) + (pad "14" smd rect (at 1.655 15.24 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 35 "Net-(D5-Pad2)") (pinfunction "Pin_14") (pintype "passive") (tstamp 066a2f9f-1fc9-42fe-b9d8-42c09d7bd716)) + (pad "15" smd rect (at -1.655 17.78 180) (size 2.51 1) (layers "F.Cu" "F.Paste" "F.Mask") + (net 35 "Net-(D5-Pad2)") (pinfunction "Pin_15") (pintype "passive") (tstamp b2d786f2-3b04-4656-9b1d-26fcbff3e2a2)) + (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x15_P2.54mm_Vertical_SMD_Pin1Left.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (gr_poly + (pts + (xy 38.146239 23.427641) + (xy 38.165194 23.429086) + (xy 38.183877 23.431466) + (xy 38.202264 23.434758) + (xy 38.220331 23.438936) + (xy 38.238056 23.443979) + (xy 38.255413 23.449861) + (xy 38.272379 23.45656) + (xy 38.288931 23.464052) + (xy 38.305045 23.472313) + (xy 38.320698 23.481319) + (xy 38.335865 23.491048) + (xy 38.350523 23.501474) + (xy 38.364648 23.512575) + (xy 38.378217 23.524327) + (xy 38.391206 23.536706) + (xy 38.403591 23.549689) + (xy 38.415349 23.563251) + (xy 38.426456 23.57737) + (xy 38.436888 23.592021) + (xy 38.446622 23.607182) + (xy 38.455633 23.622827) + (xy 38.463899 23.638935) + (xy 38.471395 23.65548) + (xy 38.478098 23.67244) + (xy 38.483985 23.68979) + (xy 38.489031 23.707507) + (xy 38.493212 23.725568) + (xy 38.496506 23.743949) + (xy 38.498889 23.762625) + (xy 38.500336 23.781574) + (xy 38.500825 23.800772) + (xy 38.500337 23.819972) + (xy 38.498891 23.838923) + (xy 38.496509 23.857601) + (xy 38.493216 23.875983) + (xy 38.489035 23.894045) + (xy 38.483989 23.911763) + (xy 38.478103 23.929114) + (xy 38.471401 23.946075) + (xy 38.463904 23.96262) + (xy 38.455639 23.978728) + (xy 38.446627 23.994373) + (xy 38.436894 24.009534) + (xy 38.426462 24.024185) + (xy 38.415355 24.038303) + (xy 38.403597 24.051865) + (xy 38.391211 24.064848) + (xy 38.378222 24.077226) + (xy 38.364652 24.088977) + (xy 38.350527 24.100077) + (xy 38.335868 24.110503) + (xy 38.320701 24.12023) + (xy 38.305048 24.129236) + (xy 38.288933 24.137496) + (xy 38.272381 24.144987) + (xy 38.255414 24.151685) + (xy 38.238057 24.157567) + (xy 38.220332 24.162609) + (xy 38.202265 24.166787) + (xy 38.183877 24.170078) + (xy 38.165194 24.172458) + (xy 38.146239 24.173903) + (xy 38.127035 24.17439) + (xy 38.107844 24.173903) + (xy 38.088901 24.172458) + (xy 38.070229 24.170078) + (xy 38.051853 24.166787) + (xy 38.033795 24.162609) + (xy 38.01608 24.157567) + (xy 37.998731 24.151685) + (xy 37.981772 24.144987) + (xy 37.965227 24.137496) + (xy 37.949119 24.129236) + (xy 37.933473 24.12023) + (xy 37.918311 24.110503) + (xy 37.903657 24.100077) + (xy 37.889536 24.088977) + (xy 37.875971 24.077226) + (xy 37.862985 24.064848) + (xy 37.850603 24.051865) + (xy 37.838848 24.038303) + (xy 37.827743 24.024185) + (xy 37.817313 24.009534) + (xy 37.807581 23.994373) + (xy 37.798571 23.978728) + (xy 37.790307 23.96262) + (xy 37.782812 23.946075) + (xy 37.77611 23.929114) + (xy 37.770224 23.911763) + (xy 37.765179 23.894045) + (xy 37.760998 23.875983) + (xy 37.757705 23.857601) + (xy 37.755324 23.838923) + (xy 37.753877 23.819972) + (xy 37.753392 23.800864) + (xy 37.967702 23.800864) + (xy 37.96791 23.80905) + (xy 37.968528 23.817129) + (xy 37.969544 23.825092) + (xy 37.970949 23.832929) + (xy 37.972733 23.840629) + (xy 37.974886 23.848182) + (xy 37.977397 23.85558) + (xy 37.980257 23.86281) + (xy 37.983454 23.869864) + (xy 37.98698 23.876731) + (xy 37.990824 23.883401) + (xy 37.994976 23.889864) + (xy 37.999425 23.89611) + (xy 38.004162 23.902128) + (xy 38.009176 23.90791) + (xy 38.014458 23.913445) + (xy 38.019996 23.918722) + (xy 38.025782 23.923731) + (xy 38.031804 23.928463) + (xy 38.038054 23.932908) + (xy 38.044519 23.937055) + (xy 38.051191 23.940894) + (xy 38.05806 23.944415) + (xy 38.065114 23.947609) + (xy 38.072345 23.950464) + (xy 38.079741 23.952972) + (xy 38.087293 23.955121) + (xy 38.094991 23.956902) + (xy 38.102824 23.958305) + (xy 38.110783 23.95932) + (xy 38.118856 23.959936) + (xy 38.127035 23.960143) + (xy 38.135238 23.959936) + (xy 38.143334 23.95932) + (xy 38.151313 23.958305) + (xy 38.159164 23.956902) + (xy 38.166878 23.955121) + (xy 38.174445 23.952972) + (xy 38.181854 23.950464) + (xy 38.189095 23.947609) + (xy 38.196159 23.944415) + (xy 38.203035 23.940894) + (xy 38.209714 23.937055) + (xy 38.216184 23.932908) + (xy 38.222438 23.928463) + (xy 38.228463 23.923731) + (xy 38.23425 23.918722) + (xy 38.23979 23.913445) + (xy 38.245072 23.90791) + (xy 38.250086 23.902128) + (xy 38.254822 23.89611) + (xy 38.259269 23.889864) + (xy 38.263419 23.8834) + (xy 38.267261 23.87673) + (xy 38.270785 23.869864) + (xy 38.27398 23.86281) + (xy 38.276837 23.855579) + (xy 38.279346 23.848182) + (xy 38.281497 23.840629) + (xy 38.28328 23.832929) + (xy 38.284684 23.825092) + (xy 38.2857 23.817129) + (xy 38.286317 23.80905) + (xy 38.286526 23.800864) + (xy 38.286318 23.792673) + (xy 38.2857 23.784588) + (xy 38.284684 23.77662) + (xy 38.283278 23.768779) + (xy 38.281494 23.761074) + (xy 38.27934 23.753517) + (xy 38.276828 23.746116) + (xy 38.273967 23.738883) + (xy 38.270768 23.731826) + (xy 38.26724 23.724957) + (xy 38.263395 23.718284) + (xy 38.259241 23.711819) + (xy 38.254789 23.705572) + (xy 38.250049 23.699551) + (xy 38.245031 23.693768) + (xy 38.239746 23.688233) + (xy 38.234203 23.682955) + (xy 38.228412 23.677945) + (xy 38.222385 23.673212) + (xy 38.21613 23.668767) + (xy 38.209658 23.66462) + (xy 38.202979 23.660781) + (xy 38.196104 23.657259) + (xy 38.189041 23.654066) + (xy 38.181802 23.65121) + (xy 38.174397 23.648703) + (xy 38.166835 23.646554) + (xy 38.159127 23.644773) + (xy 38.151283 23.64337) + (xy 38.143313 23.642356) + (xy 38.135227 23.64174) + (xy 38.127035 23.641532) + (xy 38.118856 23.64174) + (xy 38.110783 23.642356) + (xy 38.102824 23.64337) + (xy 38.094991 23.644773) + (xy 38.087293 23.646554) + (xy 38.079741 23.648703) + (xy 38.072345 23.65121) + (xy 38.065114 23.654066) + (xy 38.05806 23.657259) + (xy 38.051191 23.660781) + (xy 38.044519 23.66462) + (xy 38.038054 23.668767) + (xy 38.031804 23.673212) + (xy 38.025782 23.677945) + (xy 38.019996 23.682955) + (xy 38.014458 23.688233) + (xy 38.009176 23.693768) + (xy 38.004162 23.699551) + (xy 37.999425 23.705572) + (xy 37.994976 23.711819) + (xy 37.990824 23.718284) + (xy 37.98698 23.724957) + (xy 37.983454 23.731826) + (xy 37.980257 23.738883) + (xy 37.977397 23.746116) + (xy 37.974886 23.753517) + (xy 37.972733 23.761074) + (xy 37.970949 23.768779) + (xy 37.969544 23.77662) + (xy 37.968528 23.784588) + (xy 37.96791 23.792673) + (xy 37.967702 23.800864) + (xy 37.753392 23.800864) + (xy 37.75339 23.800772) + (xy 37.753877 23.781574) + (xy 37.755323 23.762625) + (xy 37.757704 23.743949) + (xy 37.760996 23.725568) + (xy 37.765175 23.707508) + (xy 37.770219 23.68979) + (xy 37.776102 23.67244) + (xy 37.782802 23.65548) + (xy 37.790296 23.638935) + (xy 37.798558 23.622828) + (xy 37.807566 23.607182) + (xy 37.817296 23.592021) + (xy 37.827724 23.57737) + (xy 37.838826 23.563251) + (xy 37.85058 23.549689) + (xy 37.862961 23.536706) + (xy 37.875945 23.524327) + (xy 37.889509 23.512575) + (xy 37.903629 23.501474) + (xy 37.918282 23.491048) + (xy 37.933443 23.481319) + (xy 37.94909 23.472313) + (xy 37.965198 23.464052) + (xy 37.981744 23.45656) + (xy 37.998705 23.449861) + (xy 38.016055 23.443979) + (xy 38.033773 23.438936) + (xy 38.051834 23.434758) + (xy 38.070214 23.431466) + (xy 38.08889 23.429086) + (xy 38.107838 23.427641) + (xy 38.127035 23.427154) + ) + + (stroke (width 0.01) (type solid)) (fill solid) (layer "F.Cu") (tstamp 19d5be3a-96dd-4399-9483-d8e466771ec5)) + (gr_poly + (pts + (xy 35.393796 21.499418) + (xy 35.398215 21.499758) + (xy 35.402605 21.50028) + (xy 35.406961 21.500982) + (xy 35.411276 21.501861) + (xy 35.415546 21.502916) + (xy 35.419764 21.504144) + (xy 35.423927 21.505541) + (xy 35.428027 21.507107) + (xy 35.43206 21.508839) + (xy 35.43602 21.510733) + (xy 35.439902 21.512788) + (xy 35.443701 21.515001) + (xy 35.44741 21.51737) + (xy 35.451025 21.519893) + (xy 35.45454 21.522567) + (xy 35.45795 21.525389) + (xy 35.461249 21.528357) + (xy 35.464432 21.53147) + (xy 35.467493 21.534723) + (xy 35.470427 21.538116) + (xy 35.473228 21.541645) + (xy 35.475892 21.545308) + (xy 35.478412 21.549103) + (xy 35.480783 21.553027) + (xy 35.483001 21.557079) + (xy 35.965138 22.485422) + (xy 36.488536 22.484681) + (xy 37.381435 22.485304) + (xy 37.980575 22.486902) + (xy 38.344963 22.489074) + (xy 38.533607 22.491415) + (xy 39.056979 21.625103) + (xy 39.061927 21.617638) + (xy 39.067407 21.610693) + (xy 39.07338 21.604284) + (xy 39.079804 21.598428) + (xy 39.086639 21.593141) + (xy 39.093846 21.58844) + (xy 39.101383 21.584341) + (xy 39.109211 21.580861) + (xy 39.117289 21.578017) + (xy 39.125577 21.575824) + (xy 39.134035 21.574299) + (xy 39.142622 21.57346) + (xy 39.151298 21.573321) + (xy 39.160023 21.573901) + (xy 39.168756 21.575215) + (xy 39.177457 21.57728) + (xy 39.181764 21.578578) + (xy 39.185984 21.580043) + (xy 39.190114 21.581671) + (xy 39.19415 21.583458) + (xy 39.201929 21.587491) + (xy 39.209294 21.592107) + (xy 39.21622 21.597272) + (xy 39.22268 21.602952) + (xy 39.228649 21.609113) + (xy 39.2341 21.61572) + (xy 39.239007 21.622739) + (xy 39.243345 21.630136) + (xy 39.247086 21.637877) + (xy 39.250206 21.645927) + (xy 39.252678 21.654251) + (xy 39.254476 21.662817) + (xy 39.255114 21.667179) + (xy 39.255574 21.671589) + (xy 39.255852 21.676042) + (xy 39.255946 21.680533) + (xy 39.255946 26.51144) + (xy 39.255631 26.528513) + (xy 39.254693 26.545423) + (xy 39.253145 26.562162) + (xy 39.250999 26.578719) + (xy 39.248267 26.595085) + (xy 39.244961 26.611251) + (xy 39.241093 26.627206) + (xy 39.236674 26.642942) + (xy 39.231718 26.658447) + (xy 39.226236 26.673713) + (xy 39.22024 26.68873) + (xy 39.213742 26.703488) + (xy 39.206754 26.717978) + (xy 39.199289 26.73219) + (xy 39.191358 26.746113) + (xy 39.182974 26.759739) + (xy 39.577402 26.759739) + (xy 39.579343 26.759755) + (xy 39.581288 26.759805) + (xy 39.583233 26.759888) + (xy 39.585177 26.760007) + (xy 39.587117 26.760161) + (xy 39.589051 26.760353) + (xy 39.590977 26.760582) + (xy 39.592893 26.76085) + (xy 39.60285 26.761138) + (xy 39.61352 26.760629) + (xy 39.619931 26.759958) + (xy 39.626928 26.758914) + (xy 39.634411 26.757423) + (xy 39.642282 26.755413) + (xy 39.650441 26.752813) + (xy 39.65879 26.749549) + (xy 39.667229 26.745549) + (xy 39.675659 26.740741) + (xy 39.67984 26.738012) + (xy 39.683982 26.735053) + (xy 39.688072 26.731856) + (xy 39.692098 26.728412) + (xy 39.699701 26.720969) + (xy 39.706839 26.712694) + (xy 39.713509 26.703601) + (xy 39.719707 26.693699) + (xy 39.72543 26.683) + (xy 39.730675 26.671516) + (xy 39.735437 26.659257) + (xy 39.739713 26.646235) + (xy 39.7435 26.63246) + (xy 39.746793 26.617945) + (xy 39.74959 26.6027) + (xy 39.751886 26.586737) + (xy 39.753678 26.570067) + (xy 39.754963 26.552701) + (xy 39.755736 26.53465) + (xy 39.755995 26.515925) + (xy 39.755235 26.489525) + (xy 39.753002 26.463467) + (xy 39.749367 26.437676) + (xy 39.7444 26.412079) + (xy 39.738173 26.386601) + (xy 39.730754 26.361168) + (xy 39.722217 26.335706) + (xy 39.71263 26.310141) + (xy 39.702064 26.284399) + (xy 39.690591 26.258405) + (xy 39.665202 26.205368) + (xy 39.63703 26.150436) + (xy 39.606638 26.093016) + (xy 39.561973 26.00809) + (xy 39.516668 25.916991) + (xy 39.472755 25.818572) + (xy 39.451956 25.766258) + (xy 39.432267 25.711684) + (xy 39.413943 25.654705) + (xy 39.397237 25.595178) + (xy 39.382405 25.53296) + (xy 39.369699 25.467906) + (xy 39.359375 25.399875) + (xy 39.351685 25.328721) + (xy 39.346885 25.254301) + (xy 39.345229 25.176473) + (xy 39.346504 25.107641) + (xy 39.350224 25.041567) + (xy 39.35623 24.97821) + (xy 39.364361 24.917531) + (xy 39.374459 24.859489) + (xy 39.386365 24.804046) + (xy 39.399918 24.751162) + (xy 39.414961 24.700796) + (xy 39.431333 24.65291) + (xy 39.448876 24.607463) + (xy 39.467429 24.564416) + (xy 39.486835 24.523728) + (xy 39.506933 24.485362) + (xy 39.527564 24.449276) + (xy 39.548569 24.41543) + (xy 39.569789 24.383786) + (xy 39.591064 24.354304) + (xy 39.612236 24.326943) + (xy 39.633144 24.301665) + (xy 39.653629 24.278429) + (xy 39.692696 24.237925) + (xy 39.728162 24.205115) + (xy 39.758752 24.17968) + (xy 39.783193 24.161303) + (xy 39.808528 24.144453) + (xy 39.813339 24.141764) + (xy 39.818228 24.139348) + (xy 39.823186 24.137202) + (xy 39.828203 24.135324) + (xy 39.833271 24.13371) + (xy 39.838381 24.13236) + (xy 39.843522 24.131271) + (xy 39.848686 24.13044) + (xy 39.853863 24.129866) + (xy 39.859045 24.129545) + (xy 39.864222 24.129476) + (xy 39.869384 24.129656) + (xy 39.874523 24.130083) + (xy 39.879629 24.130754) + (xy 39.884693 24.131668) + (xy 39.889705 24.132823) + (xy 39.894657 24.134214) + (xy 39.89954 24.135842) + (xy 39.904343 24.137702) + (xy 39.909058 24.139794) + (xy 39.913675 24.142114) + (xy 39.918186 24.14466) + (xy 39.922581 24.14743) + (xy 39.92685 24.150422) + (xy 39.930985 24.153634) + (xy 39.934976 24.157062) + (xy 39.938814 24.160706) + (xy 39.94249 24.164561) + (xy 39.945994 24.168627) + (xy 39.949317 24.172901) + (xy 39.952451 24.17738) + (xy 39.955385 24.182063) + (xy 39.958073 24.18688) + (xy 39.960489 24.191774) + (xy 39.962635 24.196736) + (xy 39.964513 24.201758) + (xy 39.966126 24.206829) + (xy 39.967476 24.21194) + (xy 39.968566 24.217083) + (xy 39.969396 24.222248) + (xy 39.969971 24.227426) + (xy 39.970292 24.232608) + (xy 39.970362 24.237784) + (xy 39.970182 24.242945) + (xy 39.969756 24.248082) + (xy 39.969085 24.253186) + (xy 39.968172 24.258247) + (xy 39.96702 24.263257) + (xy 39.965629 24.268206) + (xy 39.964004 24.273084) + (xy 39.962146 24.277884) + (xy 39.960057 24.282594) + (xy 39.95774 24.287207) + (xy 39.955197 24.291713) + (xy 39.95243 24.296102) + (xy 39.949443 24.300366) + (xy 39.946236 24.304496) + (xy 39.942813 24.308481) + (xy 39.939175 24.312313) + (xy 39.935325 24.315983) + (xy 39.931266 24.319481) + (xy 39.926999 24.322799) + (xy 39.922528 24.325926) + (xy 39.917853 24.328854) + (xy 39.898432 24.342278) + (xy 39.855953 24.377627) + (xy 39.828538 24.404228) + (xy 39.798323 24.437156) + (xy 39.766296 24.476693) + (xy 39.733445 24.523121) + (xy 39.700759 24.576722) + (xy 39.669225 24.637779) + (xy 39.639832 24.706573) + (xy 39.613567 24.783386) + (xy 39.591419 24.868501) + (xy 39.582197 24.914259) + (xy 39.574375 24.962199) + (xy 39.568076 25.012355) + (xy 39.563424 25.064762) + (xy 39.560543 25.119456) + (xy 39.559555 25.176473) + (xy 39.560992 25.244484) + (xy 39.565167 25.309497) + (xy 39.571874 25.371668) + (xy 39.580907 25.431153) + (xy 39.592061 25.488108) + (xy 39.605131 25.542689) + (xy 39.619911 25.595052) + (xy 39.636195 25.645354) + (xy 39.653778 25.69375) + (xy 39.672454 25.740396) + (xy 39.692018 25.785449) + (xy 39.712264 25.829065) + (xy 39.753981 25.912609) + (xy 39.795961 25.992275) + (xy 39.829193 26.055214) + (xy 39.861025 26.11781) + (xy 39.890524 26.180591) + (xy 39.904106 26.212216) + (xy 39.916755 26.244086) + (xy 39.928352 26.276266) + (xy 39.938783 26.308824) + (xy 39.947929 26.341824) + (xy 39.955674 26.375333) + (xy 39.961901 26.409417) + (xy 39.966494 26.444142) + (xy 39.969335 26.479574) + (xy 39.970308 26.51578) + (xy 39.969757 26.547061) + (xy 39.968106 26.577329) + (xy 39.965357 26.606578) + (xy 39.961512 26.634803) + (xy 39.956573 26.661999) + (xy 39.950542 26.688162) + (xy 39.943421 26.713286) + (xy 39.935212 26.737367) + (xy 39.925918 26.7604) + (xy 39.91554 26.782379) + (xy 39.904081 26.803301) + (xy 39.891542 26.82316) + (xy 39.877926 26.841952) + (xy 39.863235 26.859671) + (xy 39.84747 26.876312) + (xy 39.830634 26.891872) + (xy 39.82282 26.898415) + (xy 39.814951 26.904615) + (xy 39.799082 26.916022) + (xy 39.783105 26.926166) + (xy 39.767098 26.935115) + (xy 39.751139 26.942942) + (xy 39.735305 26.949716) + (xy 39.719675 26.95551) + (xy 39.704325 26.960392) + (xy 39.689335 26.964436) + (xy 39.674781 26.96771) + (xy 39.660741 26.970286) + (xy 39.647293 26.972235) + (xy 39.634514 26.973628) + (xy 39.622484 26.974535) + (xy 39.611278 26.975028) + (xy 39.600976 26.975176) + (xy 39.596433 26.975148) + (xy 39.592126 26.975067) + (xy 39.588059 26.974942) + (xy 39.584239 26.974781) + (xy 39.580672 26.97459) + (xy 39.577362 26.974378) + (xy 39.571541 26.973919) + (xy 35.743258 26.973919) + (xy 35.719484 26.973316) + (xy 35.69602 26.971526) + (xy 35.672893 26.968578) + (xy 35.650133 26.964503) + (xy 35.62777 26.959328) + (xy 35.605832 26.953084) + (xy 35.584349 26.945799) + (xy 35.56335 26.937504) + (xy 35.542865 26.928227) + (xy 35.522923 26.917997) + (xy 35.503552 26.906844) + (xy 35.484782 26.894798) + (xy 35.466643 26.881887) + (xy 35.449164 26.868141) + (xy 35.432373 26.853589) + (xy 35.416301 26.838261) + (xy 35.400976 26.822185) + (xy 35.386427 26.805391) + (xy 35.372685 26.787909) + (xy 35.359778 26.769767) + (xy 35.347735 26.750996) + (xy 35.336586 26.731624) + (xy 35.32636 26.71168) + (xy 35.317087 26.691194) + (xy 35.308794 26.670195) + (xy 35.301513 26.648713) + (xy 35.295271 26.626777) + (xy 35.290099 26.604416) + (xy 35.286025 26.581659) + (xy 35.283079 26.558536) + (xy 35.28129 26.535076) + (xy 35.280687 26.511308) + (xy 35.280687 22.045354) + (xy 35.494999 22.045354) + (xy 35.494999 26.511388) + (xy 35.495323 26.524142) + (xy 35.496284 26.536732) + (xy 35.497865 26.549141) + (xy 35.500052 26.561353) + (xy 35.502829 26.573353) + (xy 35.50618 26.585126) + (xy 35.510089 26.596655) + (xy 35.514541 26.607924) + (xy 35.519519 26.618919) + (xy 35.525009 26.629623) + (xy 35.530993 26.64002) + (xy 35.537458 26.650095) + (xy 35.544386 26.659831) + (xy 35.551763 26.669215) + (xy 35.559572 26.678228) + (xy 35.567798 26.686857) + (xy 35.576425 26.695084) + (xy 35.585437 26.702895) + (xy 35.594819 26.710273) + (xy 35.604554 26.717203) + (xy 35.614628 26.723669) + (xy 35.625024 26.729655) + (xy 35.635727 26.735146) + (xy 35.64672 26.740126) + (xy 35.657989 26.744579) + (xy 35.669518 26.748489) + (xy 35.68129 26.751841) + (xy 35.69329 26.754618) + (xy 35.705503 26.756806) + (xy 35.717912 26.758388) + (xy 35.730503 26.759349) + (xy 35.743258 26.759673) + (xy 37.380738 26.759673) + (xy 37.380738 26.759753) + (xy 38.793414 26.759753) + (xy 38.80617 26.759429) + (xy 38.818759 26.758468) + (xy 38.831168 26.756886) + (xy 38.84338 26.754698) + (xy 38.85538 26.75192) + (xy 38.867151 26.748568) + (xy 38.878678 26.744658) + (xy 38.889946 26.740205) + (xy 38.900938 26.735225) + (xy 38.911639 26.729734) + (xy 38.922034 26.723748) + (xy 38.932106 26.717282) + (xy 38.941839 26.710351) + (xy 38.951219 26.702973) + (xy 38.96023 26.695162) + (xy 38.968855 26.686934) + (xy 38.977079 26.678306) + (xy 38.984886 26.669292) + (xy 38.992261 26.659908) + (xy 38.999187 26.650171) + (xy 39.00565 26.640095) + (xy 39.011633 26.629697) + (xy 39.017121 26.618993) + (xy 39.022098 26.607998) + (xy 39.026548 26.596728) + (xy 39.030456 26.585198) + (xy 39.033806 26.573425) + (xy 39.036582 26.561423) + (xy 39.038768 26.54921) + (xy 39.040349 26.5368) + (xy 39.04131 26.52421) + (xy 39.041633 26.511454) + (xy 39.041633 22.065131) + (xy 38.68557 22.654557) + (xy 38.681268 22.661115) + (xy 38.676546 22.667273) + (xy 38.671433 22.67302) + (xy 38.665958 22.678347) + (xy 38.660148 22.683243) + (xy 38.654033 22.687698) + (xy 38.64764 22.6917) + (xy 38.640998 22.69524) + (xy 38.634136 22.698307) + (xy 38.627081 22.700891) + (xy 38.619863 22.702981) + (xy 38.612511 22.704567) + (xy 38.605051 22.705638) + (xy 38.597513 22.706185) + (xy 38.589925 22.706196) + (xy 38.582317 22.705661) + (xy 37.813125 22.700794) + (xy 36.488536 22.698994) + (xy 36.05706 22.699394) + (xy 35.907128 22.700211) + (xy 35.903319 22.700369) + (xy 35.899508 22.700385) + (xy 35.8957 22.700261) + (xy 35.891898 22.699999) + (xy 35.888107 22.699599) + (xy 35.884331 22.699063) + (xy 35.880573 22.698394) + (xy 35.87684 22.697592) + (xy 35.873134 22.696659) + (xy 35.869459 22.695597) + (xy 35.865821 22.694407) + (xy 35.862223 22.693091) + (xy 35.85867 22.691649) + (xy 35.855165 22.690085) + (xy 35.851714 22.688399) + (xy 35.848319 22.686593) + (xy 35.844986 22.684668) + (xy 35.841719 22.682627) + (xy 35.838521 22.68047) + (xy 35.835398 22.678199) + (xy 35.832353 22.675815) + (xy 35.82939 22.673321) + (xy 35.826515 22.670717) + (xy 35.82373 22.668006) + (xy 35.821041 22.665189) + (xy 35.818451 22.662267) + (xy 35.815964 22.659242) + (xy 35.813586 22.656115) + (xy 35.81132 22.652889) + (xy 35.80917 22.649563) + (xy 35.807141 22.646142) + (xy 35.805237 22.642624) + (xy 35.494999 22.045354) + (xy 35.280687 22.045354) + (xy 35.280687 21.606437) + (xy 35.280785 21.601829) + (xy 35.281078 21.597263) + (xy 35.281561 21.592743) + (xy 35.282232 21.588274) + (xy 35.283086 21.58386) + (xy 35.28412 21.579507) + (xy 35.285331 21.575218) + (xy 35.286715 21.570998) + (xy 35.288267 21.566853) + (xy 35.289986 21.562785) + (xy 35.291867 21.5588) + (xy 35.293906 21.554903) + (xy 35.296101 21.551098) + (xy 35.298447 21.547389) + (xy 35.30094 21.543781) + (xy 35.303578 21.540279) + (xy 35.306357 21.536888) + (xy 35.309273 21.533611) + (xy 35.312322 21.530453) + (xy 35.315502 21.52742) + (xy 35.318808 21.524515) + (xy 35.322237 21.521743) + (xy 35.325785 21.519109) + (xy 35.329449 21.516617) + (xy 35.333224 21.514272) + (xy 35.337109 21.512078) + (xy 35.341099 21.51004) + (xy 35.345189 21.508163) + (xy 35.349378 21.506451) + (xy 35.353661 21.504908) + (xy 35.358035 21.503539) + (xy 35.362496 21.50235) + (xy 35.366968 21.501345) + (xy 35.371449 21.50054) + (xy 35.375934 21.499931) + (xy 35.380416 21.499517) + (xy 35.384891 21.499295) + (xy 35.389352 21.499263) + ) + + (stroke (width 0.01) (type solid)) (fill solid) (layer "F.Cu") (tstamp 34b18d42-ace9-46e3-8481-dae249e16f41)) + (gr_poly + (pts + (xy 37.461312 24.390786) + (xy 37.466753 24.391199) + (xy 37.472114 24.391879) + (xy 37.477389 24.392819) + (xy 37.482572 24.394013) + (xy 37.487656 24.395454) + (xy 37.492634 24.397136) + (xy 37.4975 24.399051) + (xy 37.502245 24.401193) + (xy 37.506865 24.403556) + (xy 37.511352 24.406132) + (xy 37.515699 24.408915) + (xy 37.5199 24.411898) + (xy 37.523948 24.415075) + (xy 37.527836 24.418439) + (xy 37.531557 24.421983) + (xy 37.535105 24.425701) + (xy 37.538473 24.429586) + (xy 37.541654 24.43363) + (xy 37.544641 24.437829) + (xy 37.547429 24.442174) + (xy 37.550009 24.446659) + (xy 37.552375 24.451278) + (xy 37.554521 24.456023) + (xy 37.55644 24.460889) + (xy 37.558125 24.465868) + (xy 37.559569 24.470954) + (xy 37.560766 24.47614) + (xy 37.561708 24.481419) + (xy 37.56239 24.486785) + (xy 37.562804 24.492231) + (xy 37.562943 24.49775) + (xy 37.562804 24.50327) + (xy 37.56239 24.508716) + (xy 37.561708 24.514083) + (xy 37.560765 24.519363) + (xy 37.559568 24.52455) + (xy 37.558124 24.529638) + (xy 37.556439 24.534618) + (xy 37.554519 24.539486) + (xy 37.552373 24.544233) + (xy 37.550006 24.548854) + (xy 37.547425 24.553341) + (xy 37.544637 24.557689) + (xy 37.541649 24.561889) + (xy 37.538467 24.565936) + (xy 37.535099 24.569823) + (xy 37.53155 24.573544) + (xy 37.527828 24.57709) + (xy 37.52394 24.580457) + (xy 37.519891 24.583636) + (xy 37.51569 24.586622) + (xy 37.511342 24.589407) + (xy 37.506855 24.591985) + (xy 37.502235 24.59435) + (xy 37.497488 24.596494) + (xy 37.492623 24.598411) + (xy 37.487644 24.600094) + (xy 37.48256 24.601537) + (xy 37.477377 24.602732) + (xy 37.472101 24.603673) + (xy 37.466739 24.604354) + (xy 37.461299 24.604767) + (xy 37.455787 24.604907) + (xy 37.37665 24.604907) + (xy 37.367998 24.753788) + (xy 37.367563 24.759086) + (xy 37.366876 24.764302) + (xy 37.365945 24.769432) + (xy 37.364776 24.774469) + (xy 37.363374 24.779408) + (xy 37.361747 24.784242) + (xy 37.3599 24.788967) + (xy 37.357841 24.793577) + (xy 37.355575 24.798065) + (xy 37.353109 24.802426) + (xy 37.350449 24.806655) + (xy 37.347602 24.810745) + (xy 37.344574 24.814692) + (xy 37.341371 24.818489) + (xy 37.338 24.82213) + (xy 37.334467 24.82561) + (xy 37.330778 24.828924) + (xy 37.326941 24.832065) + (xy 37.32296 24.835028) + (xy 37.318843 24.837807) + (xy 37.314596 24.840397) + (xy 37.310226 24.842791) + (xy 37.305738 24.844984) + (xy 37.301139 24.846971) + (xy 37.296435 24.848745) + (xy 37.291634 24.850301) + (xy 37.28674 24.851634) + (xy 37.281762 24.852737) + (xy 37.276704 24.853604) + (xy 37.271573 24.854231) + (xy 37.266376 24.854612) + (xy 37.261119 24.85474) + (xy 37.259561 24.854726) + (xy 37.257987 24.854692) + (xy 37.254835 24.854594) + (xy 37.249341 24.854129) + (xy 37.243934 24.853396) + (xy 37.238621 24.8524) + (xy 37.233409 24.85115) + (xy 37.228304 24.849651) + (xy 37.223311 24.847912) + (xy 37.218439 24.845939) + (xy 37.213692 24.843739) + (xy 37.209078 24.841319) + (xy 37.204603 24.838687) + (xy 37.200272 24.83585) + (xy 37.196093 24.832814) + (xy 37.192072 24.829588) + (xy 37.188216 24.826177) + (xy 37.184529 24.822588) + (xy 37.18102 24.81883) + (xy 37.177694 24.814909) + (xy 37.174558 24.810833) + (xy 37.171618 24.806607) + (xy 37.16888 24.80224) + (xy 37.166351 24.797738) + (xy 37.164037 24.793109) + (xy 37.161945 24.788359) + (xy 37.16008 24.783497) + (xy 37.15845 24.778528) + (xy 37.157061 24.773459) + (xy 37.155918 24.768299) + (xy 37.15503 24.763054) + (xy 37.1544 24.757731) + (xy 37.154037 24.752337) + (xy 37.153947 24.746879) + (xy 37.154135 24.741365) + (xy 37.162059 24.604973) + (xy 37.080753 24.604973) + (xy 37.075243 24.604833) + (xy 37.069804 24.60442) + (xy 37.064445 24.603739) + (xy 37.05917 24.602797) + (xy 37.053988 24.601602) + (xy 37.048904 24.600159) + (xy 37.043926 24.598475) + (xy 37.03906 24.596558) + (xy 37.034314 24.594413) + (xy 37.029693 24.592048) + (xy 37.025206 24.589469) + (xy 37.020857 24.586684) + (xy 37.016655 24.583697) + (xy 37.012606 24.580517) + (xy 37.008716 24.57715) + (xy 37.004993 24.573603) + (xy 37.001443 24.569882) + (xy 36.998073 24.565995) + (xy 36.99489 24.561947) + (xy 36.991901 24.557746) + (xy 36.989111 24.553398) + (xy 36.986529 24.54891) + (xy 36.984161 24.544288) + (xy 36.982013 24.53954) + (xy 36.980093 24.534673) + (xy 36.978406 24.529692) + (xy 36.976961 24.524604) + (xy 36.975763 24.519417) + (xy 36.97482 24.514136) + (xy 36.974137 24.508769) + (xy 36.973723 24.503323) + (xy 36.973584 24.497803) + (xy 36.973723 24.492285) + (xy 36.974137 24.48684) + (xy 36.97482 24.481474) + (xy 36.975763 24.476194) + (xy 36.976961 24.471008) + (xy 36.978406 24.465921) + (xy 36.980093 24.460941) + (xy 36.982013 24.456074) + (xy 36.984161 24.451326) + (xy 36.986529 24.446706) + (xy 36.989111 24.442218) + (xy 36.991901 24.437871) + (xy 36.99489 24.43367) + (xy 36.998073 24.429623) + (xy 37.001443 24.425735) + (xy 37.004993 24.422015) + (xy 37.008716 24.418468) + (xy 37.012606 24.415101) + (xy 37.016655 24.411922) + (xy 37.020857 24.408935) + (xy 37.025206 24.40615) + (xy 37.029693 24.403571) + (xy 37.034314 24.401206) + (xy 37.03906 24.399061) + (xy 37.043926 24.397144) + (xy 37.048904 24.39546) + (xy 37.053988 24.394018) + (xy 37.05917 24.392822) + (xy 37.064445 24.39188) + (xy 37.069804 24.3912) + (xy 37.075243 24.390786) + (xy 37.080753 24.390647) + (xy 37.4558 24.390647) + ) + + (stroke (width 0.01) (type solid)) (fill solid) (layer "F.Cu") (tstamp 4b469c01-05bd-480b-816b-6db7aa341b9b)) + (gr_poly + (pts + (xy 36.428665 23.427641) + (xy 36.447616 23.429086) + (xy 36.466295 23.431466) + (xy 36.484677 23.434758) + (xy 36.502739 23.438936) + (xy 36.520457 23.443979) + (xy 36.537808 23.449861) + (xy 36.554768 23.45656) + (xy 36.571314 23.464052) + (xy 36.587421 23.472313) + (xy 36.603067 23.481319) + (xy 36.618227 23.491048) + (xy 36.632879 23.501474) + (xy 36.646997 23.512575) + (xy 36.660559 23.524327) + (xy 36.673541 23.536706) + (xy 36.68592 23.549689) + (xy 36.697671 23.563251) + (xy 36.708771 23.57737) + (xy 36.719197 23.592021) + (xy 36.728924 23.607182) + (xy 36.73793 23.622827) + (xy 36.74619 23.638935) + (xy 36.753681 23.65548) + (xy 36.760379 23.67244) + (xy 36.766261 23.68979) + (xy 36.771303 23.707507) + (xy 36.775481 23.725568) + (xy 36.778772 23.743949) + (xy 36.781151 23.762625) + (xy 36.782597 23.781574) + (xy 36.783084 23.800772) + (xy 36.782596 23.819972) + (xy 36.781151 23.838923) + (xy 36.77877 23.857601) + (xy 36.775478 23.875983) + (xy 36.771299 23.894045) + (xy 36.766255 23.911763) + (xy 36.760372 23.929114) + (xy 36.753672 23.946075) + (xy 36.746179 23.96262) + (xy 36.737916 23.978728) + (xy 36.728909 23.994373) + (xy 36.719179 24.009534) + (xy 36.708752 24.024185) + (xy 36.697649 24.038303) + (xy 36.685896 24.051865) + (xy 36.673516 24.064848) + (xy 36.660533 24.077226) + (xy 36.64697 24.088977) + (xy 36.63285 24.100077) + (xy 36.618198 24.110503) + (xy 36.603038 24.12023) + (xy 36.587392 24.129236) + (xy 36.571285 24.137496) + (xy 36.55474 24.144987) + (xy 36.537782 24.151685) + (xy 36.520432 24.157567) + (xy 36.502716 24.162609) + (xy 36.484658 24.166787) + (xy 36.466279 24.170078) + (xy 36.447606 24.172458) + (xy 36.42866 24.173903) + (xy 36.409465 24.17439) + (xy 36.390275 24.173903) + (xy 36.371332 24.172458) + (xy 36.352661 24.170078) + (xy 36.334285 24.166787) + (xy 36.316228 24.162609) + (xy 36.298513 24.157567) + (xy 36.281165 24.151685) + (xy 36.264207 24.144987) + (xy 36.247663 24.137496) + (xy 36.231556 24.129236) + (xy 36.215911 24.12023) + (xy 36.20075 24.110503) + (xy 36.186098 24.100077) + (xy 36.171978 24.088977) + (xy 36.158414 24.077226) + (xy 36.145429 24.064848) + (xy 36.133048 24.051865) + (xy 36.121294 24.038303) + (xy 36.110191 24.024185) + (xy 36.099762 24.009534) + (xy 36.090032 23.994373) + (xy 36.081023 23.978728) + (xy 36.072759 23.96262) + (xy 36.065265 23.946075) + (xy 36.058564 23.929114) + (xy 36.052679 23.911763) + (xy 36.047635 23.894045) + (xy 36.043455 23.875983) + (xy 36.040162 23.857601) + (xy 36.037781 23.838923) + (xy 36.036335 23.819972) + (xy 36.03585 23.800864) + (xy 36.25016 23.800864) + (xy 36.250368 23.80905) + (xy 36.250984 23.817129) + (xy 36.252 23.825092) + (xy 36.253404 23.832929) + (xy 36.255186 23.840629) + (xy 36.257337 23.848182) + (xy 36.259847 23.85558) + (xy 36.262704 23.86281) + (xy 36.2659 23.869864) + (xy 36.269423 23.876731) + (xy 36.273265 23.883401) + (xy 36.277414 23.889864) + (xy 36.281861 23.89611) + (xy 36.286596 23.902128) + (xy 36.291608 23.90791) + (xy 36.296887 23.913445) + (xy 36.302423 23.918722) + (xy 36.308207 23.923731) + (xy 36.314228 23.928463) + (xy 36.320475 23.932908) + (xy 36.32694 23.937055) + (xy 36.333611 23.940894) + (xy 36.340478 23.944415) + (xy 36.347533 23.947609) + (xy 36.354763 23.950464) + (xy 36.36216 23.952972) + (xy 36.369713 23.955121) + (xy 36.377412 23.956902) + (xy 36.385246 23.958305) + (xy 36.393207 23.95932) + (xy 36.401283 23.959936) + (xy 36.409465 23.960143) + (xy 36.417653 23.959936) + (xy 36.425735 23.95932) + (xy 36.4337 23.958305) + (xy 36.441538 23.956902) + (xy 36.44924 23.955121) + (xy 36.456796 23.952972) + (xy 36.464194 23.950464) + (xy 36.471426 23.947609) + (xy 36.478481 23.944415) + (xy 36.48535 23.940894) + (xy 36.492021 23.937055) + (xy 36.498485 23.932908) + (xy 36.504732 23.928463) + (xy 36.510751 23.923731) + (xy 36.516534 23.918722) + (xy 36.522069 23.913445) + (xy 36.527347 23.90791) + (xy 36.532357 23.902128) + (xy 36.537089 23.89611) + (xy 36.541534 23.889864) + (xy 36.545681 23.8834) + (xy 36.549521 23.87673) + (xy 36.553042 23.869864) + (xy 36.556236 23.86281) + (xy 36.559092 23.855579) + (xy 36.561599 23.848182) + (xy 36.563749 23.840629) + (xy 36.56553 23.832929) + (xy 36.566933 23.825092) + (xy 36.567947 23.817129) + (xy 36.568564 23.80905) + (xy 36.568771 23.800864) + (xy 36.568563 23.792673) + (xy 36.567947 23.784588) + (xy 36.566931 23.77662) + (xy 36.565527 23.768779) + (xy 36.563745 23.761074) + (xy 36.561594 23.753517) + (xy 36.559084 23.746116) + (xy 36.556227 23.738883) + (xy 36.553031 23.731826) + (xy 36.549508 23.724957) + (xy 36.545666 23.718284) + (xy 36.541517 23.711819) + (xy 36.53707 23.705572) + (xy 36.532335 23.699551) + (xy 36.527323 23.693768) + (xy 36.522044 23.688233) + (xy 36.516508 23.682955) + (xy 36.510724 23.677945) + (xy 36.504703 23.673212) + (xy 36.498456 23.668767) + (xy 36.491991 23.66462) + (xy 36.48532 23.660781) + (xy 36.478453 23.657259) + (xy 36.471398 23.654066) + (xy 36.464168 23.65121) + (xy 36.456771 23.648703) + (xy 36.449218 23.646554) + (xy 36.441519 23.644773) + (xy 36.433685 23.64337) + (xy 36.425724 23.642356) + (xy 36.417647 23.64174) + (xy 36.409465 23.641532) + (xy 36.401283 23.64174) + (xy 36.393207 23.642356) + (xy 36.385246 23.64337) + (xy 36.377412 23.644773) + (xy 36.369713 23.646554) + (xy 36.36216 23.648703) + (xy 36.354763 23.65121) + (xy 36.347533 23.654066) + (xy 36.340478 23.657259) + (xy 36.333611 23.660781) + (xy 36.32694 23.66462) + (xy 36.320475 23.668767) + (xy 36.314228 23.673212) + (xy 36.308207 23.677945) + (xy 36.302423 23.682955) + (xy 36.296887 23.688233) + (xy 36.291608 23.693768) + (xy 36.286596 23.699551) + (xy 36.281861 23.705572) + (xy 36.277414 23.711819) + (xy 36.273265 23.718284) + (xy 36.269423 23.724957) + (xy 36.2659 23.731826) + (xy 36.262704 23.738883) + (xy 36.259847 23.746116) + (xy 36.257337 23.753517) + (xy 36.255186 23.761074) + (xy 36.253404 23.768779) + (xy 36.252 23.77662) + (xy 36.250984 23.784588) + (xy 36.250368 23.792673) + (xy 36.25016 23.800864) + (xy 36.03585 23.800864) + (xy 36.035847 23.800772) + (xy 36.036334 23.781574) + (xy 36.03778 23.762625) + (xy 36.04016 23.743949) + (xy 36.043452 23.725568) + (xy 36.047631 23.707508) + (xy 36.052674 23.68979) + (xy 36.058556 23.67244) + (xy 36.065256 23.65548) + (xy 36.072748 23.638935) + (xy 36.081009 23.622828) + (xy 36.090016 23.607182) + (xy 36.099745 23.592021) + (xy 36.110172 23.57737) + (xy 36.121273 23.563251) + (xy 36.133025 23.549689) + (xy 36.145405 23.536706) + (xy 36.158388 23.524327) + (xy 36.17195 23.512575) + (xy 36.186069 23.501474) + (xy 36.200721 23.491048) + (xy 36.215881 23.481319) + (xy 36.231527 23.472313) + (xy 36.247634 23.464052) + (xy 36.264179 23.45656) + (xy 36.281139 23.449861) + (xy 36.298489 23.443979) + (xy 36.316206 23.438936) + (xy 36.334266 23.434758) + (xy 36.352645 23.431466) + (xy 36.371321 23.429086) + (xy 36.390269 23.427641) + (xy 36.409465 23.427154) + ) + + (stroke (width 0.01) (type solid)) (fill solid) (layer "F.Cu") (tstamp baf2f742-5a32-48e4-8553-532c97d8879f)) + (gr_rect (start 12.065 12.065) (end 48.26 56.515) + (stroke (width 0.15) (type solid)) (fill none) (layer "Edge.Cuts") (tstamp 483759c0-d97e-4ec2-8219-f3a67957a336)) + (target plus (at 12.065 12.065) (size 5) (width 0.1) (layer "Edge.Cuts") (tstamp 70d60575-2a36-43c1-ad04-006310ea3827)) + + (segment (start 18.542 36.195) (end 18.542 37.195) (width 0.25) (layer "F.Cu") (net 1) (tstamp d4c0e419-dd1d-406e-935a-c3d8ee076994)) + (segment (start 18.542 37.195) (end 19.7895 38.4425) (width 0.25) (layer "F.Cu") (net 1) (tstamp ddedd21d-aad0-4d70-a7b6-255ccd2bedac)) + (segment (start 20.859 42.145) (end 20.2815 41.5675) (width 0.5) (layer "F.Cu") (net 2) (tstamp 64403b3c-9727-486b-ab9a-66e7ac589e2f)) + (segment (start 27.5365 42.145) (end 20.859 42.145) (width 0.5) (layer "F.Cu") (net 2) (tstamp e35e7d82-42b3-43e3-9695-0356dd917c19)) + (segment (start 33.02 18.415) (end 33.02 14.6435) (width 1) (layer "F.Cu") (net 3) (tstamp 061e7408-e8b7-4424-bfbe-682fdedb0c8a)) + (segment (start 13.9315 24.7) (end 13.9315 27.89) (width 1) (layer "F.Cu") (net 3) (tstamp 1264365d-0282-438c-8bf5-7bd4b675941f)) + (segment (start 13.9315 24.7) (end 13.9315 19.75) (width 1) (layer "F.Cu") (net 3) (tstamp 138f11ca-f86c-4993-a41a-776300398054)) + (segment (start 30.1865 21.49) (end 33.2615 18.415) (width 1) (layer "F.Cu") (net 3) (tstamp 1bbe7e28-281a-4cd6-9ba4-faf037bd2d81)) + (segment (start 30.1865 21.49) (end 30.1865 26.4305) (width 1) (layer "F.Cu") (net 3) (tstamp 21cefe8a-2688-45ec-9aba-0a3fc52a72b2)) + (segment (start 13.335 19.1535) (end 13.335 12.954) (width 1) (layer "F.Cu") (net 3) (tstamp 2aa9bfc3-556d-4896-bfe6-2bdc2fecbc39)) + (segment (start 31.1705 12.794) (end 32.9815 14.605) (width 1) (layer "F.Cu") (net 3) (tstamp 5a11de07-a9b6-4510-8125-bcedc799a6b0)) + (segment (start 19.939 27.89) (end 20.624 28.575) (width 1) (layer "F.Cu") (net 3) (tstamp 6453789d-e2e8-4ee4-a0d3-84e8d064f233)) + (segment (start 13.9315 19.75) (end 13.335 19.1535) (width 1) (layer "F.Cu") (net 3) (tstamp 66343de7-5122-40f7-a2c4-a3a06b8af69b)) + (segment (start 13.495 12.794) (end 19.525 12.794) (width 1) (layer "F.Cu") (net 3) (tstamp 672e289a-b9aa-40de-b145-cc312eab134d)) + (segment (start 30.1865 26.4305) (end 30.075 26.542) (width 1) (layer "F.Cu") (net 3) (tstamp 6db8eb9d-09fe-4a5f-ad20-c6d2ac6d4274)) + (segment (start 13.9315 27.89) (end 14.6165 28.575) (width 1) (layer "F.Cu") (net 3) (tstamp 822ba7cd-1b08-4810-8abf-0616336224ac)) + (segment (start 19.525 12.794) (end 31.1705 12.794) (width 1) (layer "F.Cu") (net 3) (tstamp 893e9bed-b869-479f-b53f-f92d4ee7688d)) + (segment (start 19.525 12.794) (end 19.525 19.336) (width 1) (layer "F.Cu") (net 3) (tstamp 970bd0d3-e060-4c1c-aa42-682cbe6f9762)) + (segment (start 19.939 24.7) (end 19.939 27.89) (width 1) (layer "F.Cu") (net 3) (tstamp bace6376-4b04-466f-a95e-4a47bc2681d3)) + (segment (start 19.525 19.336) (end 19.939 19.75) (width 1) (layer "F.Cu") (net 3) (tstamp bb1259e2-fb69-4822-995d-d86cade81c43)) + (segment (start 19.939 19.75) (end 19.939 24.7) (width 1) (layer "F.Cu") (net 3) (tstamp e4095637-9873-4cc8-b3ab-340ce2c484fb)) + (segment (start 13.335 12.954) (end 13.495 12.794) (width 1) (layer "F.Cu") (net 3) (tstamp e5f81465-cf5d-4f50-9f08-89032c415c3b)) + (segment (start 43.307 37.338) (end 45.978 37.338) (width 0.5) (layer "F.Cu") (net 4) (tstamp 00cc3548-db97-4c8d-9a68-4be002c02bd8)) + (segment (start 22.1385 29.718569) (end 22.1385 29.083) (width 0.25) (layer "F.Cu") (net 4) (tstamp 05fdc7e4-0838-4c22-932a-38478ac9a378)) + (segment (start 30.5308 54.61) (end 36.7284 54.61) (width 1) (layer "F.Cu") (net 4) (tstamp 089eb03a-9cd6-4a3b-b5f9-6c90d6c26e85)) + (segment (start 39.515 20.465) (end 41.8465 22.7965) (width 1) (layer "F.Cu") (net 4) (tstamp 0dba5d28-a1ec-44eb-bf16-d2ec9fa6f903)) + (segment (start 28.9115 38.37) (end 27.448 38.37) (width 0.5) (layer "F.Cu") (net 4) (tstamp 10e7c123-caec-4798-a525-bd9fb44afeba)) + (segment (start 35.8865 46.72) (end 36.1565 46.99) (width 0.5) (layer "F.Cu") (net 4) (tstamp 13711a0d-41a0-493c-9ac7-6e4f24056bb4)) + (segment (start 34.943 20.465) (end 39.515 20.465) (width 1) (layer "F.Cu") (net 4) (tstamp 159a6480-5cc8-4a6b-9558-711b258c60db)) + (segment (start 27.448 38.37) (end 27.178 38.1) (width 0.5) (layer "F.Cu") (net 4) (tstamp 1b5dbb3c-169a-4af0-a1b2-059d9f61c11d)) + (segment (start 26.797 34.671) (end 27.178 34.29) (width 0.5) (layer "F.Cu") (net 4) (tstamp 26104cf3-f9da-45f7-89ba-2de065759b13)) + (segment (start 15.367 31.75) (end 16.687 33.07) (width 0.25) (layer "F.Cu") (net 4) (tstamp 38ff4c9e-2004-487f-9b80-876410f035fc)) + (segment (start 27.0085 17.276) (end 28.5365 15.748) (width 1) (layer "F.Cu") (net 4) (tstamp 3b9153a1-c5b7-449b-9739-3c8a3cfeeb35)) + (segment (start 42.668 23.618) (end 42.668 24.638) (width 1) (layer "F.Cu") (net 4) (tstamp 3de23ba3-1f85-4f79-aaaa-86a3043516d0)) + (segment (start 33.274 20.828) (end 34.107 20.828) (width 1) (layer "F.Cu") (net 4) (tstamp 4230893b-8739-4c77-b3f3-efbb4fd7efda)) + (segment (start 27.075 26.542) (end 27.0085 26.4755) (width 1) (layer "F.Cu") (net 4) (tstamp 4856242a-987c-49f1-a9d4-ed5e5df00f44)) + (segment (start 19.042 31.795) (end 19.042 32.795) (width 0.25) (layer "F.Cu") (net 4) (tstamp 52a6d354-f374-4d25-ac1b-268ef9641134)) + (segment (start 19.042 32.795) (end 18.767 33.07) (width 0.25) (layer "F.Cu") (net 4) (tstamp 6d3c178b-bce8-4f21-a239-a7b2277f4618)) + (segment (start 22.1385 29.083) (end 23.0275 28.194) (width 0.25) (layer "F.Cu") (net 4) (tstamp 74348f56-e0e6-4475-979d-09a8d5cf19fc)) + (segment (start 39.751 29.718) (end 42.668 29.718) (width 0.5) (layer "F.Cu") (net 4) (tstamp 760df3c7-ad5c-4dab-b321-d791ea73100f)) + (segment (start 23.749 26.035) (end 23.749 19.75) (width 1) (layer "F.Cu") (net 4) (tstamp 825a30ca-8905-40b6-9b91-7b1d8b697792)) + (segment (start 32.9115 46.72) (end 32.9115 48.3547) (width 0.5) (layer "F.Cu") (net 4) (tstamp 860bc9e0-1161-4441-9ff8-d99b81aa6284)) + (segment (start 24.256 26.542) (end 23.749 26.035) (width 1) (layer "F.Cu") (net 4) (tstamp 8666d0a8-535a-4ba1-ad0d-89c16289e9c2)) + (segment (start 21.123069 30.734) (end 22.1385 29.718569) (width 0.25) (layer "F.Cu") (net 4) (tstamp 88a19176-d5ed-4c29-aa74-84d0dbdfe01f)) + (segment (start 19.103 30.734) (end 21.123069 30.734) (width 0.25) (layer "F.Cu") (net 4) (tstamp 8947a5b1-bc8f-4740-8015-7448520029fe)) + (segment (start 19.042 31.795) (end 19.042 30.795) (width 0.25) (layer "F.Cu") (net 4) (tstamp 8b440923-d394-46ad-b19e-ec3fca151b6b)) + (segment (start 27.178 36.576) (end 26.797 36.195) (width 0.5) (layer "F.Cu") (net 4) (tstamp 8c3cf111-00bd-4e5e-8465-ee47bcc763e1)) + (segment (start 41.8465 22.7965) (end 42.668 23.618) (width 1) (layer "F.Cu") (net 4) (tstamp 8e3dbbc6-3bb8-4fd1-8bfa-f2585178883d)) + (segment (start 16.687 33.07) (end 18.767 33.07) (width 0.25) (layer "F.Cu") (net 4) (tstamp 90e37b7d-d653-4390-a8ac-8f0b0d624f6d)) + (segment (start 34.544 48.3616) (end 34.544 46.7525) (width 0.5) (layer "F.Cu") (net 4) (tstamp 95180e0c-ef66-41ea-bfa1-07ce97a7a726)) + (segment (start 27.075 26.542) (end 24.256 26.542) (width 1) (layer "F.Cu") (net 4) (tstamp 98634882-0024-4f9d-88e8-68be58d9dd4b)) + (segment (start 34.7065 20.2285) (end 34.943 20.465) (width 1) (layer "F.Cu") (net 4) (tstamp a921fce5-b69d-46e0-a724-6cff1323b26d)) + (segment (start 17.7415 28.575) (end 17.7415 19.75) (width 1) (layer "F.Cu") (net 4) (tstamp b2372e5c-664c-4378-a275-4716e7bb304b)) + (segment (start 23.749 28.575) (end 23.749 26.035) (width 1) (layer "F.Cu") (net 4) (tstamp b6db4bf3-d377-4bc0-83da-0c7399628b9f)) + (segment (start 27.0085 26.4755) (end 27.0085 17.276) (width 1) (layer "F.Cu") (net 4) (tstamp b86c9074-2bd6-4a46-8128-f5c425468a78)) + (segment (start 34.544 46.7525) (end 34.5115 46.72) (width 0.5) (layer "F.Cu") (net 4) (tstamp bd75d40c-ecdb-4073-9f7f-72dbf43aad10)) + (segment (start 19.042 30.795) (end 19.103 30.734) (width 0.25) (layer "F.Cu") (net 4) (tstamp be25cbfa-32d3-4648-a063-ec89df54df67)) + (segment (start 43.946 54.61) (end 45.978 52.578) (width 1) (layer "F.Cu") (net 4) (tstamp c6cf41b3-17bc-40d1-8aae-5c1a5aa61d78)) + (segment (start 34.5115 46.72) (end 35.8865 46.72) (width 0.5) (layer "F.Cu") (net 4) (tstamp c7c234ee-8a68-4d0b-a340-f86793a40fb2)) + (segment (start 34.7065 20.2285) (end 35.179 19.756) (width 1) (layer "F.Cu") (net 4) (tstamp c94d0335-6353-4e50-ad96-40d686bb6b30)) + (segment (start 27.178 38.1) (end 27.178 36.576) (width 0.5) (layer "F.Cu") (net 4) (tstamp cc58d4c0-577e-4782-933a-8c88f3bf1f85)) + (segment (start 26.797 36.195) (end 26.797 34.671) (width 0.5) (layer "F.Cu") (net 4) (tstamp d036e31f-3c33-42a2-b2a3-70849fd3c5fa)) + (segment (start 42.545 22.098) (end 41.8465 22.7965) (width 1) (layer "F.Cu") (net 4) (tstamp d54e4241-a1a7-43c3-bcf5-c9c5fcbc6a21)) + (segment (start 36.7284 54.61) (end 43.946 54.61) (width 1) (layer "F.Cu") (net 4) (tstamp d69396f2-0925-4852-930d-0d17d9f869bd)) + (segment (start 32.9115 48.3547) (end 32.9184 48.3616) (width 0.5) (layer "F.Cu") (net 4) (tstamp d751e5d8-b4e6-4cd4-aa81-58317dd0130d)) + (segment (start 34.107 20.828) (end 34.7065 20.2285) (width 1) (layer "F.Cu") (net 4) (tstamp d9ba011d-d23b-47e8-88b7-406599686c3b)) + (segment (start 32.893 21.209) (end 33.274 20.828) (width 1) (layer "F.Cu") (net 4) (tstamp d9dbdfa1-0541-4121-a4c8-e1162f597f79)) + (segment (start 23.0275 28.194) (end 23.826 28.194) (width 0.25) (layer "F.Cu") (net 4) (tstamp e58885ab-b45f-4232-9061-56eec20b449e)) + (segment (start 35.179 15.5325) (end 36.1065 14.605) (width 1) (layer "F.Cu") (net 4) (tstamp ed8359f6-46a0-426d-80d5-a3498bb4bc39)) + (segment (start 35.179 19.756) (end 35.179 15.5325) (width 1) (layer "F.Cu") (net 4) (tstamp ee5e0c22-ded4-4829-b441-b9668930e4e9)) + (segment (start 32.893 25.323) (end 32.893 21.209) (width 1) (layer "F.Cu") (net 4) (tstamp f83cffc7-507d-48d9-a890-d67cec6a7ec5)) + (segment (start 15.113 53.467) (end 17.018 53.467) (width 0.5) (layer "F.Cu") (net 4) (tstamp fec02a78-2229-4ad8-b24b-db3dc2055147)) + (segment (start 45.978 22.098) (end 42.545 22.098) (width 1) (layer "F.Cu") (net 4) (tstamp ffea294b-8168-49dc-b961-20062b8c8b85)) + (via (at 34.544 48.3616) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 0265cd8c-3ef4-4790-a870-7cd6c77964c6)) + (via (at 39.751 29.718) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 281350ac-a1f1-43fb-8741-f033b449bd71)) + (via (at 23.749 22.352) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 2ac7fc0c-272c-4a2e-b75a-97fc460e8a6c)) + (via (at 32.9184 48.3616) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 376c82d1-3619-4cde-806a-75cf6a68834c)) + (via (at 17.7415 22.352) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 495f9784-40e1-46cd-8f2e-f5d31ba0fb26)) + (via (at 41.783 22.733) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 55332ee4-5b72-48ce-8c16-4764605fc493)) + (via (at 32.893 24.003) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp 5e55ff9d-ce74-4b50-9bd0-40abc2d16df1)) + (via (at 15.113 53.467) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp b2810622-db71-461f-9d99-387dab3bffe9)) + (via (at 41.91 54.61) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp b92f4e41-d810-4bdc-b653-dc67dab2b866)) + (via (at 43.307 37.338) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp d07ebb45-b509-4481-ba53-45f19e86a3e1)) + (via (at 27.178 38.1) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (free) (net 4) (tstamp e01c99b2-63a9-4d5c-8e77-606e465ffc46)) + (segment (start 21.336 49.31405) (end 19.72305 50.927) (width 0.5) (layer "F.Cu") (net 5) (tstamp 27495d0f-64e5-41de-855a-fdb61a3fc9d5)) + (segment (start 24.124 45.345) (end 27.5365 45.345) (width 0.5) (layer "F.Cu") (net 5) (tstamp 8bda37b3-42e5-472d-b171-2e8e48c69530)) + (segment (start 21.336 48.133) (end 21.336 49.31405) (width 0.5) (layer "F.Cu") (net 5) (tstamp a4566ace-d3e8-4a0f-b1d2-919d1e26ddde)) + (segment (start 21.336 48.133) (end 24.124 45.345) (width 0.5) (layer "F.Cu") (net 5) (tstamp ea5ce592-27fb-41a8-845d-774d0d458e87)) + (segment (start 19.72305 50.927) (end 13.718 50.927) (width 0.5) (layer "F.Cu") (net 5) (tstamp fb9f3b73-242d-40c3-8732-d2f4e0837e66)) + (segment (start 19.6215 34.2265) (end 19.304 34.544) (width 0.5) (layer "F.Cu") (net 6) (tstamp 060fb5b6-e725-44fb-a323-fd604cec8496)) + (segment (start 36.29 34.163) (end 36.29 28.83) (width 1) (layer "F.Cu") (net 6) (tstamp 0b18901e-7de5-429f-b8bd-30211870c1b8)) + (segment (start 35.8865 45.345) (end 35.123327 45.345) (width 0.5) (layer "F.Cu") (net 6) (tstamp 0e402f97-c4fa-44e0-abbb-5b64556d9ba6)) + (segment (start 32.893 28.448) (end 28.702 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp 195f8850-9c5f-48db-b8c6-99e83332ac89)) + (segment (start 18.042 36.195) (end 18.042 34.663) (width 0.25) (layer "F.Cu") (net 6) (tstamp 1c7db92c-84c0-4bf0-8594-a2fa787859a6)) + (segment (start 26.180449 28.448) (end 26.127449 28.395) (width 1) (layer "F.Cu") (net 6) (tstamp 35811a9b-bd91-4e7c-b5d8-421757e7b7d5)) + (segment (start 28.575 28.321) (end 28.702 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp 3b86b998-60f2-4e70-80bb-ed29e24d2647)) + (segment (start 19.304 34.544) (end 18.161 34.544) (width 0.5) (layer "F.Cu") (net 6) (tstamp 3f53ebe1-983a-43b6-b6b3-10d62c949737)) + (segment (start 36.29 28.83) (end 36.672 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp 582688ac-6234-4575-93d7-17237733d451)) + (segment (start 18.161 34.544) (end 15.698 34.544) (width 0.5) (layer "F.Cu") (net 6) (tstamp 5841e5e3-2e95-4fdd-80b4-31d9e20fd634)) + (segment (start 35.908 28.448) (end 36.29 28.83) (width 1) (layer "F.Cu") (net 6) (tstamp 694ceaea-9dc7-4d39-af29-8936e2e79cd0)) + (segment (start 19.542 31.795) (end 19.542 34.147) (width 0.25) (layer "F.Cu") (net 6) (tstamp 6d2ba4f2-e9a7-4779-8b04-e044efabc17d)) + (segment (start 21.635 31.07) (end 20.642 32.063) (width 0.5) (layer "F.Cu") (net 6) (tstamp 74fb953f-2d59-4992-b145-855836e845da)) + (segment (start 37.344 45.345) (end 39.624 47.625) (width 0.5) (layer "F.Cu") (net 6) (tstamp 78f5ba34-e562-4ff1-9e49-3df12e6a2ab7)) + (segment (start 19.542 34.147) (end 19.6215 34.2265) (width 0.25) (layer "F.Cu") (net 6) (tstamp 7bb4f8f8-9074-44ed-89d2-90a6c2cf5dc8)) + (segment (start 18.042 34.663) (end 18.161 34.544) (width 0.25) (layer "F.Cu") (net 6) (tstamp 7c8e8f21-5160-4854-8414-b217911da2cc)) + (segment (start 20.642 32.063) (end 20.642 33.206) (width 0.5) (layer "F.Cu") (net 6) (tstamp 7da26eda-cd8e-4b28-bc88-9094f3b1445d)) + (segment (start 27.5365 39.745) (end 26.9942 39.745) (width 0.5) (layer "F.Cu") (net 6) (tstamp 8012eb8e-aef0-4943-9e64-b856bac4e7ce)) + (segment (start 29.523327 39.745) (end 33.776563 43.998237) (width 0.5) (layer "F.Cu") (net 6) (tstamp 834a7340-87ec-40bd-9c80-0766673afca0)) + (segment (start 33.7115 46.72) (end 33.7115 44.0633) (width 0.5) (layer "F.Cu") (net 6) (tstamp 83e1d02e-553c-457a-81af-c2ce6e6d986f)) + (segment (start 32.893 28.448) (end 35.908 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp 93d97414-ac3c-4f9c-82cd-55418eae7dd0)) + (segment (start 26.9942 39.745) (end 26.0604 38.8112) (width 0.5) (layer "F.Cu") (net 6) (tstamp a0c23c2b-eec7-487a-9658-313af0792c52)) + (segment (start 33.7115 50.7435) (end 33.7115 46.72) (width 0.5) (layer "F.Cu") (net 6) (tstamp b82a4aab-516a-4e36-8087-0cc644a58934)) + (segment (start 33.147 51.308) (end 33.7115 50.7435) (width 0.5) (layer "F.Cu") (net 6) (tstamp ba70c8ba-e873-4160-ab99-de569fb94d9f)) + (segment (start 26.127449 28.395) (end 23.452449 31.07) (width 0.5) (layer "F.Cu") (net 6) (tstamp bea127b1-2b85-4eb5-8d0f-fbda6cbf57a1)) + (segment (start 32.128 30.48) (end 32.128 29.213) (width 1) (layer "F.Cu") (net 6) (tstamp c39038d3-1ada-41b9-bc6a-7f0d0d47b200)) + (segment (start 28.575 26.4545) (end 28.575 28.321) (width 1) (layer "F.Cu") (net 6) (tstamp cf4019f3-9e05-4e6c-891f-b37cc5761bfd)) + (segment (start 33.7115 44.0633) (end 33.776563 43.998237) (width 0.5) (layer "F.Cu") (net 6) (tstamp d7f6790c-f7aa-42df-9e2e-ef1e3120dc2b)) + (segment (start 40.259 28.448) (end 41.529 27.178) (width 1) (layer "F.Cu") (net 6) (tstamp dc61407a-e879-4e3f-8900-99cd289fde08)) + (segment (start 36.672 28.448) (end 40.259 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp dcc26cdb-1815-4776-991c-755bb2b69c18)) + (segment (start 27.5365 39.745) (end 29.523327 39.745) (width 0.5) (layer "F.Cu") (net 6) (tstamp e2d25878-dda4-4e5d-b199-ae74dc5e1de4)) + (segment (start 35.8865 45.345) (end 37.344 45.345) (width 0.5) (layer "F.Cu") (net 6) (tstamp e5ba7c29-c45c-40bf-ae61-0f703ed06e82)) + (segment (start 23.452449 31.07) (end 21.635 31.07) (width 0.5) (layer "F.Cu") (net 6) (tstamp e9c6a104-278a-4f4c-a211-84cdfdf09029)) + (segment (start 42.037 50.038) (end 39.624 47.625) (width 1) (layer "F.Cu") (net 6) (tstamp ed72958b-e264-43dc-a2c3-458a31ebefdd)) + (segment (start 20.642 33.206) (end 19.6215 34.2265) (width 0.5) (layer "F.Cu") (net 6) (tstamp edd8b376-e389-43e9-9419-4d116f539645)) + (segment (start 41.529 27.178) (end 45.978 27.178) (width 1) (layer "F.Cu") (net 6) (tstamp fb5d07bf-7aae-4b94-8f8e-29e6d55578c0)) + (segment (start 33.776563 43.998237) (end 35.123327 45.345) (width 0.5) (layer "F.Cu") (net 6) (tstamp fbb019c9-74d5-4afa-b276-1988d4912ae9)) + (segment (start 28.702 28.448) (end 26.180449 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp fbfc581e-72a9-4f0d-a6cb-c6ebf00eca3f)) + (segment (start 32.128 29.213) (end 32.893 28.448) (width 1) (layer "F.Cu") (net 6) (tstamp fc15d337-58c6-4270-9918-ad85b9744df6)) + (via (at 26.0604 38.8112) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 6) (tstamp 20550139-eee7-4dc8-b86f-91ac405413c0)) + (via (at 28.702 28.448) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 6) (tstamp 61d29ae2-feff-497c-a1d1-221b10709d5f)) + (segment (start 26.0604 31.0896) (end 26.0604 38.8112) (width 1) (layer "B.Cu") (net 6) (tstamp 4aabaa68-df56-44ac-9ba6-dd033ab26a49)) + (segment (start 28.702 28.448) (end 26.0604 31.0896) (width 1) (layer "B.Cu") (net 6) (tstamp 795c0c29-87fd-4fd1-9161-83ae89269596)) + (segment (start 20.970673 30.25) (end 21.6885 29.532173) (width 0.25) (layer "F.Cu") (net 9) (tstamp 00f2fe26-c965-4932-9257-844f2b1aeaea)) + (segment (start 21.6885 25.1795) (end 21.209 24.7) (width 0.25) (layer "F.Cu") (net 9) (tstamp 02ad2a8f-e0c2-4172-b79b-7486751e92ba)) + (segment (start 21.6885 29.532173) (end 21.6885 25.1795) (width 0.25) (layer "F.Cu") (net 9) (tstamp 4fca6cd0-981b-449e-9db2-adb11acc635c)) + (segment (start 18.542 30.48) (end 18.772 30.25) (width 0.25) (layer "F.Cu") (net 9) (tstamp c74c602b-1adf-4f80-bf93-e526aea91af5)) + (segment (start 18.772 30.25) (end 20.970673 30.25) (width 0.25) (layer "F.Cu") (net 9) (tstamp d8171b6d-9d96-4ad3-8e04-347bd2dffa3a)) + (segment (start 18.542 31.795) (end 18.542 30.48) (width 0.25) (layer "F.Cu") (net 9) (tstamp d9dfdf3b-7b43-45f5-b723-fdfa0954df22)) + (segment (start 26.321 40.545) (end 25.272 39.496) (width 0.5) (layer "F.Cu") (net 10) (tstamp 18982620-6f35-4254-ae90-2ed8c615cce4)) + (segment (start 25.272 39.496) (end 25.272 37.21) (width 0.5) (layer "F.Cu") (net 10) (tstamp 7e24f3ae-7574-4dbc-8b5e-f3eb2aa1d3fe)) + (segment (start 25.272 37.21) (end 23.622 35.56) (width 0.5) (layer "F.Cu") (net 10) (tstamp d275f624-51cf-4b1d-9281-b548f94636a2)) + (segment (start 27.5365 40.545) (end 26.321 40.545) (width 0.5) (layer "F.Cu") (net 10) (tstamp f11188a0-4d80-48f7-adc4-c2c5bd53f2bd)) + (segment (start 26.0665 41.345) (end 24.0915 39.37) (width 0.5) (layer "F.Cu") (net 11) (tstamp 08d6d9dc-964d-46b9-8deb-d7152517d615)) + (segment (start 27.5365 41.345) (end 26.0665 41.345) (width 0.5) (layer "F.Cu") (net 11) (tstamp 620d80a2-cad3-4b0f-a1ed-9be90a002eb9)) + (segment (start 22.479 19.75) (end 22.479 15.24) (width 1) (layer "F.Cu") (net 12) (tstamp 8597f385-2c68-4aaa-9d8d-daa77637b3cc)) + (segment (start 21.209 19.75) (end 22.479 19.75) (width 1) (layer "F.Cu") (net 12) (tstamp bbc2df5e-01b5-46d9-9b56-18ed3d589a63)) + (segment (start 20.701 36.195) (end 21.844 35.052) (width 0.25) (layer "F.Cu") (net 13) (tstamp 02be03df-ac83-4df7-8ce4-23f24516467a)) + (segment (start 21.844 35.052) (end 21.844 32.348) (width 0.25) (layer "F.Cu") (net 13) (tstamp 0f076068-3bec-41e7-aad1-15a2e16abbc5)) + (segment (start 32.128 34.29) (end 34.163 34.29) (width 0.5) (layer "F.Cu") (net 13) (tstamp 235c2a3a-bea1-4c94-871b-3bb9e1725380)) + (segment (start 25.147 32.095) (end 25.147 32.635751) (width 0.25) (layer "F.Cu") (net 13) (tstamp 31759183-fe2d-4459-800b-5364eb0d54db)) + (segment (start 30.5115 38.37) (end 30.5115 35.9065) (width 0.5) (layer "F.Cu") (net 13) (tstamp 4366431c-cf14-47c8-83fe-2a598dca93e9)) + (segment (start 25.147 32.635751) (end 26.176249 33.665) (width 0.25) (layer "F.Cu") (net 13) (tstamp 4b53c50a-7f88-4616-bb10-48c31bdbbb39)) + (segment (start 26.176249 33.665) (end 28.27 33.665) (width 0.25) (layer "F.Cu") (net 13) (tstamp 5381785e-a38e-4d27-900a-9231b9a63f3b)) + (segment (start 20.042 36.195) (end 20.701 36.195) (width 0.25) (layer "F.Cu") (net 13) (tstamp a22ff148-1965-49a9-b379-a1b76a30ea89)) + (segment (start 22.097 32.095) (end 25.147 32.095) (width 0.25) (layer "F.Cu") (net 13) (tstamp cd7b19b4-b68d-4343-a03d-992e383918ce)) + (segment (start 21.844 32.348) (end 22.097 32.095) (width 0.25) (layer "F.Cu") (net 13) (tstamp d59d09b5-33b7-4b4e-8318-f72e15c4bd39)) + (segment (start 28.27 33.665) (end 30.5115 35.9065) (width 0.25) (layer "F.Cu") (net 13) (tstamp fba0c4fd-fc7e-492e-ae62-73faca5510e0)) + (segment (start 30.5115 35.9065) (end 32.128 34.29) (width 0.5) (layer "F.Cu") (net 13) (tstamp fc1169d0-33d7-4846-a122-f713102c8c00)) + (segment (start 21.304 45.466) (end 22.225 44.545) (width 0.5) (layer "F.Cu") (net 19) (tstamp 0cbdff7f-65f6-46ef-aba0-ed99296b4033)) + (segment (start 22.225 44.545) (end 27.5365 44.545) (width 0.5) (layer "F.Cu") (net 19) (tstamp 24e5fc39-3531-42a3-af3e-85268d465f28)) + (segment (start 20.447 48.957) (end 20.447 47.752) (width 0.5) (layer "F.Cu") (net 19) (tstamp 5dc92c30-1447-4ead-938a-7e9d65da571a)) + (segment (start 21.304 46.895) (end 21.304 45.466) (width 0.5) (layer "F.Cu") (net 19) (tstamp 60f02395-feac-411a-8bf9-0b6e9f968828)) + (segment (start 18.38355 49.75255) (end 19.65145 49.75255) (width 0.5) (layer "F.Cu") (net 19) (tstamp 67e7855b-7ca7-4520-b73c-9d21b87737a2)) + (segment (start 20.447 47.752) (end 21.304 46.895) (width 0.5) (layer "F.Cu") (net 19) (tstamp 852bc403-fbd0-485f-9966-750872a34def)) + (segment (start 17.018 48.387) (end 18.38355 49.75255) (width 0.5) (layer "F.Cu") (net 19) (tstamp b74675b4-9570-4d77-804d-1103f094dc65)) + (segment (start 19.65145 49.75255) (end 20.447 48.957) (width 0.5) (layer "F.Cu") (net 19) (tstamp cf0d43bf-8277-405e-ae22-4abac0e7ee6b)) + (segment (start 14.351 44.45) (end 13.718 45.083) (width 0.5) (layer "F.Cu") (net 20) (tstamp 3e781ac4-57f7-4abe-bdf4-a96eea86a61d)) + (segment (start 18.993 43.745) (end 18.288 44.45) (width 0.5) (layer "F.Cu") (net 20) (tstamp 45deff49-271d-494e-ac25-202bf45f17a1)) + (segment (start 14.351 44.45) (end 18.288 44.45) (width 0.5) (layer "F.Cu") (net 20) (tstamp 50b105d5-434e-42bf-9542-aad6ee099de5)) + (segment (start 13.718 45.083) (end 13.718 45.847) (width 0.5) (layer "F.Cu") (net 20) (tstamp a05aaa3d-a59f-428f-b39d-8af56e54ce85)) + (segment (start 27.5365 43.745) (end 18.993 43.745) (width 0.5) (layer "F.Cu") (net 20) (tstamp a70a5c42-7ab8-430d-abc8-551f8642f997)) + (segment (start 16.51 42.799) (end 17.018 43.307) (width 0.5) (layer "F.Cu") (net 21) (tstamp 09507817-d0d6-4df8-a8b9-294e74e30355)) + (segment (start 27.5365 42.945) (end 17.38 42.945) (width 0.5) (layer "F.Cu") (net 21) (tstamp 0dce3fcd-1d99-4ed6-812f-06e90d003a84)) + (segment (start 17.38 42.945) (end 17.018 43.307) (width 0.5) (layer "F.Cu") (net 21) (tstamp e48531ac-9eb2-4a80-b4b2-fee07551c40a)) + (segment (start 15.604 29.357) (end 18.042 31.795) (width 0.25) (layer "F.Cu") (net 22) (tstamp 53dcf68e-a74d-47f4-9256-2bd914a4af22)) + (segment (start 15.2015 24.7) (end 15.604 25.1025) (width 0.25) (layer "F.Cu") (net 22) (tstamp 671eabc8-e946-44dd-a5eb-0f91b71d594e)) + (segment (start 15.604 25.1025) (end 15.604 29.357) (width 0.25) (layer "F.Cu") (net 22) (tstamp b0cbe2ed-52b0-4eef-bbee-618923be226b)) + (segment (start 29.7115 38.37) (end 29.7115 37.1095) (width 0.5) (layer "F.Cu") (net 23) (tstamp 0f603067-2f07-4fd4-adc6-5bdba13f1f7d)) + (segment (start 29.7115 37.1095) (end 28.797 36.195) (width 0.5) (layer "F.Cu") (net 23) (tstamp 80bb0b63-23f0-496e-b0e7-cccbf6d6215f)) + (segment (start 19.812 35.052) (end 20.955 35.052) (width 0.25) (layer "F.Cu") (net 27) (tstamp 13e8c221-2352-4609-88ec-eb38de363307)) + (segment (start 35.306 33.02) (end 34.544 32.258) (width 0.25) (layer "F.Cu") (net 27) (tstamp 15c83019-8c79-4fed-b9ae-3f714ae3d291)) + (segment (start 25.426249 31.645) (end 26.176249 32.395) (width 0.25) (layer "F.Cu") (net 27) (tstamp 4d1e432d-8d42-42a5-adc9-cc6dbf9407b3)) + (segment (start 33.528 33.02) (end 32.128 33.02) (width 0.5) (layer "F.Cu") (net 27) (tstamp 50966e2d-df41-478b-8648-6b438e8649c5)) + (segment (start 30.48 33.147) (end 32.001 33.147) (width 0.25) (layer "F.Cu") (net 27) (tstamp 6cca88d4-ded1-4797-9bab-44402d33f9c0)) + (segment (start 20.955 35.052) (end 21.380302 34.626698) (width 0.25) (layer "F.Cu") (net 27) (tstamp 79598b9a-c395-4af0-9da5-39cf89cf597b)) + (segment (start 26.176249 32.395) (end 29.728 32.395) (width 0.25) (layer "F.Cu") (net 27) (tstamp 926ec4a0-c236-4ca9-845d-e5569b1f1c5d)) + (segment (start 35.306 37.5755) (end 35.306 33.02) (width 0.25) (layer "F.Cu") (net 27) (tstamp 9698501c-6d25-415a-8a37-cb864bf42e45)) + (segment (start 21.380302 34.626698) (end 21.380302 32.175302) (width 0.25) (layer "F.Cu") (net 27) (tstamp 9c522c57-0831-4e51-ab4f-439712794129)) + (segment (start 34.5115 38.37) (end 35.306 37.5755) (width 0.25) (layer "F.Cu") (net 27) (tstamp b5c6e345-713a-409a-a2ad-d915b10888a6)) + (segment (start 21.380302 32.175302) (end 21.910604 31.645) (width 0.25) (layer "F.Cu") (net 27) (tstamp bae3df20-9326-48e2-b5f6-edf52abc2d86)) + (segment (start 21.910604 31.645) (end 25.426249 31.645) (width 0.25) (layer "F.Cu") (net 27) (tstamp c42b1c26-d8a1-4c4c-92d3-b2e00482a604)) + (segment (start 29.728 32.395) (end 30.48 33.147) (width 0.25) (layer "F.Cu") (net 27) (tstamp d002ccb4-eb1f-47ce-9215-8a08623c4bb4)) + (segment (start 19.542 35.322) (end 19.812 35.052) (width 0.25) (layer "F.Cu") (net 27) (tstamp d70fca18-bcbf-416a-b883-4aa4bf013093)) + (segment (start 34.29 32.258) (end 33.528 33.02) (width 0.5) (layer "F.Cu") (net 27) (tstamp e01cd0ee-ca3e-4094-ab55-3b845c5215b2)) + (segment (start 19.542 36.195) (end 19.542 35.322) (width 0.25) (layer "F.Cu") (net 27) (tstamp fd56538a-06c1-4fca-aa7c-42b8f821ff9a)) + (segment (start 31.3115 49.2065) (end 31.3115 46.72) (width 0.5) (layer "F.Cu") (net 31) (tstamp 566ea904-8692-4f3e-a3a2-e444bd719453)) + (segment (start 28.067 51.308) (end 29.21 51.308) (width 0.5) (layer "F.Cu") (net 31) (tstamp 9dc47c77-9fb1-4107-b31c-e6eff5a64ae9)) + (segment (start 29.21 51.308) (end 31.3115 49.2065) (width 0.5) (layer "F.Cu") (net 31) (tstamp e81d69e0-874b-4b08-9f6e-b9638c4109de)) + (segment (start 25.527 54.618) (end 25.527 51.193) (width 0.5) (layer "F.Cu") (net 32) (tstamp 076adeba-84e5-4334-a453-32f1461643f2)) + (segment (start 25.527 51.193) (end 28.1 48.62) (width 0.5) (layer "F.Cu") (net 32) (tstamp 171437ac-fd9a-45f8-9622-97ed4c1ef612)) + (segment (start 28.1 48.62) (end 29.6165 48.62) (width 0.5) (layer "F.Cu") (net 32) (tstamp ab3d2809-dbbe-4d9f-8f4b-29fd76c69219)) + (segment (start 30.5115 47.725) (end 30.5115 46.72) (width 0.5) (layer "F.Cu") (net 32) (tstamp d2021c5e-1de2-44be-aec6-a2bae54a485d)) + (segment (start 29.6165 48.62) (end 30.5115 47.725) (width 0.5) (layer "F.Cu") (net 32) (tstamp e585dc96-3be7-44e4-b13d-7613afed7b4c)) + (segment (start 29.274673 47.92) (end 29.7115 47.483173) (width 0.5) (layer "F.Cu") (net 33) (tstamp 0e5e35b8-bcb8-47d5-9dd9-00a9d104f762)) + (segment (start 29.7115 47.483173) (end 29.7115 46.72) (width 0.5) (layer "F.Cu") (net 33) (tstamp aae6c551-541a-4ae5-abea-76b39d8ce191)) + (segment (start 22.987 51.308) (end 26.375 47.92) (width 0.5) (layer "F.Cu") (net 33) (tstamp c11236d2-c042-40f6-8061-d4a3242a6097)) + (segment (start 26.375 47.92) (end 29.274673 47.92) (width 0.5) (layer "F.Cu") (net 33) (tstamp e5a9bb24-e79b-4734-9726-2f803edba8de)) + (segment (start 20.447 54.618) (end 20.447 51.193) (width 0.5) (layer "F.Cu") (net 34) (tstamp 335b2b74-6c02-493a-bc52-f8349755d51f)) + (segment (start 20.447 51.193) (end 24.92 46.72) (width 0.5) (layer "F.Cu") (net 34) (tstamp 6f71cc7b-d9de-4a86-99ee-7ab83edc7985)) + (segment (start 24.92 46.72) (end 28.9115 46.72) (width 0.5) (layer "F.Cu") (net 34) (tstamp e8f46586-dce2-44c7-a416-5b11c325475e)) + (segment (start 37.833 18.034) (end 41.144 18.034) (width 1) (layer "F.Cu") (net 35) (tstamp 072e88fe-452c-428d-b950-7fa8878ecdda)) + (segment (start 41.144 18.034) (end 42.16 17.018) (width 1) (layer "F.Cu") (net 35) (tstamp 4189923d-023e-40d6-8315-10c6f6481036)) + (segment (start 41.144 18.034) (end 42.668 19.558) (width 1) (layer "F.Cu") (net 35) (tstamp 49ca0bf1-c05a-4e36-8362-f689f5037860)) + (segment (start 42.16 17.018) (end 45.978 17.018) (width 1) (layer "F.Cu") (net 35) (tstamp 7921714c-75c1-4f5f-ba60-383fdd3a4d55)) + (segment (start 16.4715 19.18) (end 16.4715 15.24) (width 1) (layer "F.Cu") (net 36) (tstamp 9394c22e-ea09-44db-98f9-c239dc4f0e4c)) + (segment (start 15.2015 19.75) (end 15.9015 19.75) (width 1) (layer "F.Cu") (net 36) (tstamp a6cc374d-8e1e-4ed8-aafa-6ebc5a6c7f3c)) + (segment (start 15.9015 19.75) (end 16.4715 19.75) (width 1) (layer "F.Cu") (net 36) (tstamp f56b741f-141e-43b9-85d4-9daa2ef0262c)) + (segment (start 15.9015 19.75) (end 16.4715 19.18) (width 1) (layer "F.Cu") (net 36) (tstamp fe9b6b2a-5273-41d4-a638-53d81075ebc4)) + (segment (start 41.999449 47.498) (end 45.978 47.498) (width 0.5) (layer "F.Cu") (net 37) (tstamp 3000fe28-2c29-41b5-941c-292e5a771246)) + (segment (start 38.246449 43.745) (end 41.999449 47.498) (width 0.5) (layer "F.Cu") (net 37) (tstamp 530a4642-485c-4d92-b1f8-c7c52f46ee4f)) + (segment (start 35.8865 43.745) (end 38.246449 43.745) (width 0.5) (layer "F.Cu") (net 37) (tstamp 9a2418b5-57c6-4fb8-a589-1c2a444b47ca)) + (segment (start 35.8865 42.945) (end 40.655 42.945) (width 0.5) (layer "F.Cu") (net 38) (tstamp a5548025-06b3-43f1-b536-9bf21cb9f4d8)) + (segment (start 40.655 42.945) (end 42.668 44.958) (width 0.5) (layer "F.Cu") (net 38) (tstamp e02fec22-c1f0-4404-b715-0e6e7b6d8627)) + (segment (start 45.705 42.145) (end 45.978 42.418) (width 0.5) (layer "F.Cu") (net 39) (tstamp 3c391d39-a1d3-4888-95ce-53f3621f1dd9)) + (segment (start 35.8865 42.145) (end 45.705 42.145) (width 0.5) (layer "F.Cu") (net 39) (tstamp 566cb3b0-7079-4eeb-8f00-92562ba6059e)) + (segment (start 41.201 41.345) (end 42.668 39.878) (width 0.5) (layer "F.Cu") (net 40) (tstamp 7eb8626e-f153-404a-a4a7-78c39bef179a)) + (segment (start 35.8865 41.345) (end 41.201 41.345) (width 0.5) (layer "F.Cu") (net 40) (tstamp c05d7654-77d0-4b46-b843-2e944fcc58c5)) + (segment (start 36.921 40.545) (end 42.668 34.798) (width 0.5) (layer "F.Cu") (net 41) (tstamp a27a571a-1ef9-40af-a9e8-65528d72f86e)) + (segment (start 35.8865 40.545) (end 36.921 40.545) (width 0.5) (layer "F.Cu") (net 41) (tstamp e2984c12-d812-45a3-a015-f8c455e6e573)) + (segment (start 35.8865 39.745) (end 35.8865 38.9245) (width 0.5) (layer "F.Cu") (net 42) (tstamp 56aa71dc-261e-4f9d-99ec-6e0a21cb4b72)) + (segment (start 35.8865 38.9245) (end 42.553 32.258) (width 0.5) (layer "F.Cu") (net 42) (tstamp 8e3ded53-3ecd-464b-a3c2-61a6452b6041)) + (segment (start 42.553 32.258) (end 45.978 32.258) (width 0.5) (layer "F.Cu") (net 42) (tstamp f1ab126e-ac90-4e46-a1b7-4c5bfb914743)) + (segment (start 36.33 51.3) (end 36.3644 51.3344) (width 0.5) (layer "F.Cu") (net 43) (tstamp 28f4f16c-60ff-4ff0-a448-cfa9d27a51b3)) + (segment (start 32.1115 52.9275) (end 32.197 53.013) (width 0.5) (layer "F.Cu") (net 43) (tstamp 600b3ade-8abb-4a07-8b9e-a20c3cdd71f6)) + (segment (start 34.617 53.013) (end 36.33 51.3) (width 0.5) (layer "F.Cu") (net 43) (tstamp 6393a50b-a119-4b86-9eac-937d8ef54133)) + (segment (start 32.197 53.013) (end 34.617 53.013) (width 0.5) (layer "F.Cu") (net 43) (tstamp ca5fd1da-4db6-46f2-97d2-1209c46e4086)) + (segment (start 36.3644 51.3344) (end 38.2524 51.3344) (width 0.5) (layer "F.Cu") (net 43) (tstamp e3aca6dc-3f75-48a7-afad-6421a0694a42)) + (segment (start 32.1115 46.72) (end 32.1115 52.9275) (width 0.5) (layer "F.Cu") (net 43) (tstamp e9880c44-931e-4aa2-9c63-0eb68a15d80d)) + + (zone (net 4) (net_name "GND") (layer "B.Cu") (tstamp 70077d32-048a-40e0-80d5-79be87af4498) (hatch edge 0.508) + (connect_pads (clearance 0.508)) + (min_thickness 0.254) (filled_areas_thickness no) + (fill yes (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 47.879 55.753) + (xy 12.573 55.753) + (xy 12.573 12.827) + (xy 47.879 12.827) + ) + ) + (filled_polygon + (layer "B.Cu") + (pts + (xy 47.693621 12.847002) + (xy 47.740114 12.900658) + (xy 47.7515 12.953) + (xy 47.7515 55.627) + (xy 47.731498 55.695121) + (xy 47.677842 55.741614) + (xy 47.6255 55.753) + (xy 12.6995 55.753) + (xy 12.631379 55.732998) + (xy 12.584886 55.679342) + (xy 12.5735 55.627) + (xy 12.5735 45.662125) + (xy 16.614245 45.662125) + (xy 16.63217 45.859088) + (xy 16.68801 46.048819) + (xy 16.77964 46.22409) + (xy 16.903568 46.378225) + (xy 16.908292 46.382189) + (xy 16.915533 46.388265) + (xy 17.055074 46.505354) + (xy 17.060472 46.508321) + (xy 17.060477 46.508325) + (xy 17.157853 46.561857) + (xy 17.228387 46.600633) + (xy 17.234254 46.602494) + (xy 17.234256 46.602495) + (xy 17.411036 46.658573) + (xy 17.416906 46.660435) + (xy 17.570827 46.6777) + (xy 19.140557 46.6777) + (xy 19.154164 46.678437) + (xy 19.185662 46.681859) + (xy 19.185667 46.681859) + (xy 19.191788 46.682524) + (xy 19.218038 46.680227) + (xy 19.241788 46.67815) + (xy 19.246614 46.677821) + (xy 19.249086 46.6777) + (xy 19.252169 46.6777) + (xy 19.264138 46.676526) + (xy 19.294906 46.67351) + (xy 19.296219 46.673388) + (xy 19.340484 46.669515) + (xy 19.388813 46.665287) + (xy 19.393932 46.6638) + (xy 19.399233 46.66328) + (xy 19.488234 46.636409) + (xy 19.489367 46.636074) + (xy 19.572814 46.61183) + (xy 19.572818 46.611828) + (xy 19.578736 46.610109) + (xy 19.583468 46.607656) + (xy 19.588569 46.606116) + (xy 19.60446 46.597667) + (xy 19.67066 46.562469) + (xy 19.671826 46.561857) + (xy 19.748853 46.521929) + (xy 19.754326 46.519092) + (xy 19.758489 46.515769) + (xy 19.763196 46.513266) + (xy 19.835318 46.454445) + (xy 19.836174 46.453754) + (xy 19.875373 46.422462) + (xy 19.877877 46.419958) + (xy 19.878595 46.419316) + (xy 19.882928 46.415615) + (xy 19.916462 46.388265) + (xy 19.945688 46.352937) + (xy 19.953677 46.344158) + (xy 26.729779 39.568055) + (xy 26.739922 39.558953) + (xy 26.764618 39.539097) + (xy 26.769425 39.535232) + (xy 26.801692 39.496778) + (xy 26.804873 39.49313) + (xy 26.806517 39.491317) + (xy 26.808709 39.489125) + (xy 26.83598 39.455924) + (xy 26.836762 39.454982) + (xy 26.892593 39.388447) + (xy 26.892595 39.388444) + (xy 26.896554 39.383726) + (xy 26.899123 39.379053) + (xy 26.902503 39.374938) + (xy 26.946428 39.29302) + (xy 26.947057 39.291862) + (xy 26.988865 39.215812) + (xy 26.988865 39.215811) + (xy 26.991833 39.210413) + (xy 26.993444 39.205335) + (xy 26.995963 39.200637) + (xy 27.023153 39.111702) + (xy 27.023536 39.110472) + (xy 27.049771 39.02777) + (xy 27.051635 39.021894) + (xy 27.052228 39.016603) + (xy 27.053788 39.011502) + (xy 27.063195 38.918889) + (xy 27.063315 38.917769) + (xy 27.0689 38.867973) + (xy 27.0689 38.864444) + (xy 27.068955 38.863461) + (xy 27.069404 38.857756) + (xy 27.073152 38.820864) + (xy 27.073152 38.820861) + (xy 27.073774 38.814737) + (xy 27.069459 38.769088) + (xy 27.0689 38.757231) + (xy 27.0689 31.559525) + (xy 27.088902 31.491404) + (xy 27.105805 31.47043) + (xy 29.45031 29.125925) + (xy 29.544103 29.011738) + (xy 29.54701 29.006316) + (xy 29.547013 29.006312) + (xy 29.634651 28.842868) + (xy 29.634651 28.842867) + (xy 29.637563 28.837437) + (xy 29.695388 28.648302) + (xy 29.715374 28.451537) + (xy 29.696762 28.254638) + (xy 29.64026 28.065103) + (xy 29.548018 27.890153) + (xy 29.423553 27.736452) + (xy 29.271605 27.609853) + (xy 29.09796 27.515178) + (xy 28.909232 27.456035) + (xy 28.903109 27.45537) + (xy 28.903105 27.455369) + (xy 28.718737 27.43534) + (xy 28.718733 27.43534) + (xy 28.712612 27.434675) + (xy 28.515587 27.451912) + (xy 28.410386 27.482477) + (xy 28.331579 27.505372) + (xy 28.331574 27.505374) + (xy 28.325664 27.507091) + (xy 28.150074 27.598108) + (xy 28.029028 27.694738) + (xy 25.391021 30.332745) + (xy 25.380878 30.341847) + (xy 25.351375 30.365568) + (xy 25.347408 30.370296) + (xy 25.319109 30.404021) + (xy 25.315928 30.407669) + (xy 25.314285 30.409481) + (xy 25.312091 30.411675) + (xy 25.284758 30.444949) + (xy 25.284096 30.445747) + (xy 25.224246 30.517074) + (xy 25.221678 30.521744) + (xy 25.218297 30.525861) + (xy 25.18726 30.583745) + (xy 25.174423 30.607686) + (xy 25.173794 30.608845) + (xy 25.131938 30.684981) + (xy 25.131935 30.684989) + (xy 25.128967 30.690387) + (xy 25.127355 30.695469) + (xy 25.124838 30.700163) + (xy 25.097638 30.789131) + (xy 25.097318 30.790159) + (xy 25.069165 30.878906) + (xy 25.068571 30.884202) + (xy 25.067013 30.889298) + (xy 25.06639 30.895434) + (xy 25.057618 30.981787) + (xy 25.057489 30.982993) + (xy 25.0519 31.032827) + (xy 25.0519 31.036354) + (xy 25.051845 31.037339) + (xy 25.051398 31.043019) + (xy 25.047026 31.086062) + (xy 25.047606 31.092193) + (xy 25.051341 31.131709) + (xy 25.0519 31.143567) + (xy 25.0519 38.341276) + (xy 25.031898 38.409397) + (xy 25.014995 38.430371) + (xy 18.821571 44.623795) + (xy 18.759259 44.657821) + (xy 18.732476 44.6607) + (xy 17.577831 44.6607) + (xy 17.574775 44.661) + (xy 17.574768 44.661) + (xy 17.51626 44.666737) + (xy 17.430767 44.67512) + (xy 17.424866 44.676902) + (xy 17.424864 44.676902) + (xy 17.351547 44.699038) + (xy 17.241431 44.732284) + (xy 17.066804 44.825134) + (xy 16.980538 44.895491) + (xy 16.918313 44.94624) + (xy 16.91831 44.946243) + (xy 16.913538 44.950135) + (xy 16.909611 44.954882) + (xy 16.909609 44.954884) + (xy 16.791399 45.097775) + (xy 16.791397 45.097779) + (xy 16.78747 45.102525) + (xy 16.693402 45.276499) + (xy 16.634918 45.465432) + (xy 16.614245 45.662125) + (xy 12.5735 45.662125) + (xy 12.5735 14.277615) + (xy 12.593502 14.209494) + (xy 12.647158 14.163001) + (xy 12.667526 14.155739) + (xy 12.707579 14.145231) + (xy 12.760411 14.131371) + (xy 12.764371 14.129731) + (xy 12.764376 14.129729) + (xy 12.912246 14.068479) + (xy 13.034415 14.017875) + (xy 13.290482 13.868242) + (xy 13.523871 13.685241) + (xy 13.730266 13.472258) + (xy 13.732799 13.46881) + (xy 13.732803 13.468805) + (xy 13.903307 13.236691) + (xy 13.905845 13.233236) + (xy 13.977223 13.101775) + (xy 14.045311 12.976372) + (xy 14.045312 12.97637) + (xy 14.047361 12.972596) + (xy 14.060907 12.936748) + (xy 14.071595 12.908463) + (xy 14.114385 12.851809) + (xy 14.18101 12.827284) + (xy 14.189461 12.827) + (xy 47.6255 12.827) + ) + ) + ) + (group "" (id b4460849-8d4a-4962-a0be-501a0ab84e07) + (members + 19d5be3a-96dd-4399-9483-d8e466771ec5 + 34b18d42-ace9-46e3-8481-dae249e16f41 + 4b469c01-05bd-480b-816b-6db7aa341b9b + baf2f742-5a32-48e4-8553-532c97d8879f + ) + ) +) diff --git a/squeow_hw/squeow.kicad_prl b/squeow_hw/squeow.kicad_prl new file mode 100644 index 0000000..1067b0b --- /dev/null +++ b/squeow_hw/squeow.kicad_prl @@ -0,0 +1,77 @@ +{ + "board": { + "active_layer": 0, + "active_layer_preset": "", + "auto_track_width": false, + "hidden_netclasses": [], + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "images": 0.6, + "pads": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "ratsnest_display_mode": 0, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": true, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 32, + 33, + 34, + 35, + 36 + ], + "visible_layers": "0001020_ffffffff", + "zone_display_mode": 0 + }, + "meta": { + "filename": "squeow.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/squeow_hw/squeow.kicad_pro b/squeow_hw/squeow.kicad_pro new file mode 100644 index 0000000..49c760d --- /dev/null +++ b/squeow_hw/squeow.kicad_pro @@ -0,0 +1,507 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": { + "board_outline_line_width": 0.09999999999999999, + "copper_line_width": 0.19999999999999998, + "copper_text_italic": false, + "copper_text_size_h": 1.5, + "copper_text_size_v": 1.5, + "copper_text_thickness": 0.3, + "copper_text_upright": false, + "courtyard_line_width": 0.049999999999999996, + "dimension_precision": 4, + "dimension_units": 3, + "dimensions": { + "arrow_length": 1270000, + "extension_offset": 500000, + "keep_text_aligned": true, + "suppress_zeroes": false, + "text_position": 0, + "units_format": 1 + }, + "fab_line_width": 0.09999999999999999, + "fab_text_italic": false, + "fab_text_size_h": 1.0, + "fab_text_size_v": 1.0, + "fab_text_thickness": 0.15, + "fab_text_upright": false, + "other_line_width": 0.15, + "other_text_italic": false, + "other_text_size_h": 1.0, + "other_text_size_v": 1.0, + "other_text_thickness": 0.15, + "other_text_upright": false, + "pads": { + "drill": 0.762, + "height": 1.524, + "width": 1.524 + }, + "silk_line_width": 0.15, + "silk_text_italic": false, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.15, + "silk_text_upright": false, + "zones": { + "45_degree_only": false, + "min_clearance": 0.508 + } + }, + "diff_pair_dimensions": [ + { + "gap": 0.0, + "via_gap": 0.0, + "width": 0.0 + } + ], + "drc_exclusions": [], + "meta": { + "version": 2 + }, + "rule_severities": { + "annular_width": "error", + "clearance": "error", + "connection_width": "warning", + "copper_edge_clearance": "error", + "copper_sliver": "warning", + "courtyards_overlap": "error", + "diff_pair_gap_out_of_range": "error", + "diff_pair_uncoupled_length_too_long": "error", + "drill_out_of_range": "error", + "duplicate_footprints": "warning", + "extra_footprint": "warning", + "footprint": "error", + "footprint_type_mismatch": "error", + "hole_clearance": "error", + "hole_near_hole": "error", + "invalid_outline": "error", + "isolated_copper": "warning", + "item_on_disabled_layer": "error", + "items_not_allowed": "error", + "length_out_of_range": "error", + "lib_footprint_issues": "warning", + "lib_footprint_mismatch": "warning", + "malformed_courtyard": "error", + "microvia_drill_out_of_range": "error", + "missing_courtyard": "ignore", + "missing_footprint": "warning", + "net_conflict": "warning", + "npth_inside_courtyard": "ignore", + "padstack": "error", + "pth_inside_courtyard": "ignore", + "shorting_items": "error", + "silk_edge_clearance": "warning", + "silk_over_copper": "warning", + "silk_overlap": "warning", + "skew_out_of_range": "error", + "solder_mask_bridge": "error", + "starved_thermal": "error", + "text_height": "warning", + "text_thickness": "warning", + "through_hole_pad_without_hole": "error", + "too_many_vias": "error", + "track_dangling": "warning", + "track_width": "error", + "tracks_crossing": "error", + "unconnected_items": "error", + "unresolved_variable": "error", + "via_dangling": "warning", + "zones_intersect": "error" + }, + "rules": { + "allow_blind_buried_vias": false, + "allow_microvias": false, + "max_error": 0.005, + "min_clearance": 0.0, + "min_connection": 0.0, + "min_copper_edge_clearance": 0.0, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.19999999999999998, + "min_microvia_drill": 0.09999999999999999, + "min_resolved_spokes": 2, + "min_silk_clearance": 0.0, + "min_text_height": 0.7999999999999999, + "min_text_thickness": 0.08, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.19999999999999998, + "min_via_annular_width": 0.049999999999999996, + "min_via_diameter": 0.39999999999999997, + "solder_mask_clearance": 0.0, + "solder_mask_min_width": 0.0, + "solder_mask_to_copper_clearance": 0.0, + "use_height_for_length_calcs": true + }, + "teardrop_options": [ + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 5, + "td_on_pad_in_zone": false, + "td_onpadsmd": true, + "td_onroundshapesonly": false, + "td_ontrackend": false, + "td_onviapad": true + } + ], + "teardrop_parameters": [ + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_round_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_rect_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_track_end", + "td_width_to_size_filter_ratio": 0.9 + } + ], + "track_widths": [ + 0.0, + 0.2, + 0.5, + 1.0 + ], + "via_dimensions": [ + { + "diameter": 0.0, + "drill": 0.0 + } + ], + "zones_allow_external_fillets": false, + "zones_use_no_outline": true + }, + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "conflicting_netclasses": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "lib_symbol_issues": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "similar_labels": "warning", + "simulation_model_issue": "ignore", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "squeow.kicad_pro", + "version": 1 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.25, + "via_diameter": 0.8, + "via_drill": 0.4, + "wire_width": 6 + } + ], + "meta": { + "version": 3 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "specctra_dsn": "", + "step": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "ngspice": { + "fix_include_paths": true, + "fix_passive_vals": false, + "meta": { + "version": 0 + }, + "model_mode": 0, + "workbook_filename": "" + }, + "page_layout_descr_file": "", + "plot_directory": "", + "spice_adjust_passive_values": false, + "spice_current_sheet_as_root": false, + "spice_external_command": "spice \"%I\"", + "spice_model_current_sheet_as_root": true, + "spice_save_all_currents": false, + "spice_save_all_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "dd809985-7087-414a-8be4-5f927ae2bdb6", + "" + ] + ], + "text_variables": {} +} diff --git a/squeow_hw/squeow.kicad_sch b/squeow_hw/squeow.kicad_sch new file mode 100644 index 0000000..4c0a530 --- /dev/null +++ b/squeow_hw/squeow.kicad_sch @@ -0,0 +1,3923 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid dd809985-7087-414a-8be4-5f927ae2bdb6) + + (paper "A4") + + (lib_symbols + (symbol "Connector:Conn_01x01_Female" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Connector_Conn_01x01_Female" (at 0 -2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x01_Female_1_1" + (polyline + (pts + (xy -1.27 0) + (xy -0.508 0) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 0.508) (mid -0.5058 0) (end 0 -0.508) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (pin passive line (at -5.08 0 0) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:Conn_01x05_Female" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 7.62 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x05_Female" (at 0 -7.62 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Generic connector, single row, 01x05, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x05_Female_1_1" + (arc (start 0 -4.572) (mid -0.5058 -5.08) (end 0 -5.588) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 -2.032) (mid -0.5058 -2.54) (end 0 -3.048) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 -5.08) + (xy -0.508 -5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 -2.54) + (xy -0.508 -2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 0) + (xy -0.508 0) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 2.54) + (xy -0.508 2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 5.08) + (xy -0.508 5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 0.508) (mid -0.5058 0) (end 0 -0.508) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 3.048) (mid -0.5058 2.54) (end 0 2.032) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 5.588) (mid -0.5058 5.08) (end 0 4.572) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (pin passive line (at -5.08 5.08 0) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 2.54 0) (length 3.81) + (name "Pin_2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 0 0) (length 3.81) + (name "Pin_3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -2.54 0) (length 3.81) + (name "Pin_4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -5.08 0) (length 3.81) + (name "Pin_5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:Conn_01x06_Male" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 7.62 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x06_Male" (at 0 -10.16 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x06_Male_1_1" + (polyline + (pts + (xy 1.27 -7.62) + (xy 0.8636 -7.62) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -5.08) + (xy 0.8636 -5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -2.54) + (xy 0.8636 -2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 0) + (xy 0.8636 0) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 2.54) + (xy 0.8636 2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 5.08) + (xy 0.8636 5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start 0.8636 -7.493) (end 0 -7.747) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -4.953) (end 0 -5.207) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -2.413) (end 0 -2.667) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 0.127) (end 0 -0.127) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 2.667) (end 0 2.413) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 5.207) (end 0 4.953) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (pin passive line (at 5.08 5.08 180) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 2.54 180) (length 3.81) + (name "Pin_2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 0 180) (length 3.81) + (name "Pin_3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -2.54 180) (length 3.81) + (name "Pin_4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -5.08 180) (length 3.81) + (name "Pin_5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -7.62 180) (length 3.81) + (name "Pin_6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:Conn_01x08_Female" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 10.16 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x08_Female" (at 0 -12.7 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Generic connector, single row, 01x08, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x08_Female_1_1" + (arc (start 0 -9.652) (mid -0.5058 -10.16) (end 0 -10.668) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 -7.112) (mid -0.5058 -7.62) (end 0 -8.128) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 -4.572) (mid -0.5058 -5.08) (end 0 -5.588) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 -2.032) (mid -0.5058 -2.54) (end 0 -3.048) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 -10.16) + (xy -0.508 -10.16) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 -7.62) + (xy -0.508 -7.62) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 -5.08) + (xy -0.508 -5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 -2.54) + (xy -0.508 -2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 0) + (xy -0.508 0) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 2.54) + (xy -0.508 2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 5.08) + (xy -0.508 5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 7.62) + (xy -0.508 7.62) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 0.508) (mid -0.5058 0) (end 0 -0.508) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 3.048) (mid -0.5058 2.54) (end 0 2.032) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 5.588) (mid -0.5058 5.08) (end 0 4.572) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (arc (start 0 8.128) (mid -0.5058 7.62) (end 0 7.112) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (pin passive line (at -5.08 7.62 0) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 5.08 0) (length 3.81) + (name "Pin_2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 2.54 0) (length 3.81) + (name "Pin_3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 0 0) (length 3.81) + (name "Pin_4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -2.54 0) (length 3.81) + (name "Pin_5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -5.08 0) (length 3.81) + (name "Pin_6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -7.62 0) (length 3.81) + (name "Pin_7" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -10.16 0) (length 3.81) + (name "Pin_8" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:Conn_01x15_Male" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 20.32 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x15_Male" (at 0 -20.32 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Generic connector, single row, 01x15, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x15_Male_1_1" + (polyline + (pts + (xy 1.27 -17.78) + (xy 0.8636 -17.78) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -15.24) + (xy 0.8636 -15.24) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -12.7) + (xy 0.8636 -12.7) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -10.16) + (xy 0.8636 -10.16) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -7.62) + (xy 0.8636 -7.62) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -5.08) + (xy 0.8636 -5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -2.54) + (xy 0.8636 -2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 0) + (xy 0.8636 0) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 2.54) + (xy 0.8636 2.54) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 5.08) + (xy 0.8636 5.08) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 7.62) + (xy 0.8636 7.62) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 10.16) + (xy 0.8636 10.16) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 12.7) + (xy 0.8636 12.7) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 15.24) + (xy 0.8636 15.24) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 17.78) + (xy 0.8636 17.78) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start 0.8636 -17.653) (end 0 -17.907) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -15.113) (end 0 -15.367) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -12.573) (end 0 -12.827) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -10.033) (end 0 -10.287) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -7.493) (end 0 -7.747) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -4.953) (end 0 -5.207) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 -2.413) (end 0 -2.667) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 0.127) (end 0 -0.127) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 2.667) (end 0 2.413) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 5.207) (end 0 4.953) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 7.747) (end 0 7.493) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 10.287) (end 0 10.033) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 12.827) (end 0 12.573) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 15.367) (end 0 15.113) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (rectangle (start 0.8636 17.907) (end 0 17.653) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (pin passive line (at 5.08 17.78 180) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -5.08 180) (length 3.81) + (name "Pin_10" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -7.62 180) (length 3.81) + (name "Pin_11" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -10.16 180) (length 3.81) + (name "Pin_12" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -12.7 180) (length 3.81) + (name "Pin_13" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -15.24 180) (length 3.81) + (name "Pin_14" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -17.78 180) (length 3.81) + (name "Pin_15" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 15.24 180) (length 3.81) + (name "Pin_2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 12.7 180) (length 3.81) + (name "Pin_3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 10.16 180) (length 3.81) + (name "Pin_4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 7.62 180) (length 3.81) + (name "Pin_5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 5.08 180) (length 3.81) + (name "Pin_6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 2.54 180) (length 3.81) + (name "Pin_7" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 0 180) (length 3.81) + (name "Pin_8" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -2.54 180) (length 3.81) + (name "Pin_9" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:C" (pin_numbers hide) (pin_names (offset 0.254)) (in_bom yes) (on_board yes) + (property "Reference" "C" (at 0.635 2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C" (at 0.635 -2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 0.9652 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "cap capacitor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Unpolarized capacitor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "C_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 -0.762) + (xy 2.032 -0.762) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.032 0.762) + (xy 2.032 0.762) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + ) + (symbol "C_1_1" + (pin passive line (at 0 3.81 270) (length 2.794) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 2.794) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:Crystal" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "Y" (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Crystal" (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "quartz ceramic resonator oscillator" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Two pin crystal" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Crystal*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Crystal_0_1" + (rectangle (start -1.143 2.54) (end 1.143 -2.54) + (stroke (width 0.3048) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 0) + (xy -1.905 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.905 -1.27) + (xy -1.905 1.27) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.905 -1.27) + (xy 1.905 1.27) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 2.54 0) + (xy 1.905 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "Crystal_1_1" + (pin passive line (at -3.81 0 0) (length 1.27) + (name "1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 3.81 0 180) (length 1.27) + (name "2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Device_R" (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Diode:BAT54SW" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) + (property "Reference" "D" (at 0.635 -3.81 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "BAT54SW" (at -6.35 3.175 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-323_SC-70" (at 1.905 3.175 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/BAT54W_SER.pdf" (at -3.048 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "dual schottky diode" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Dual schottky barrier diode, in series, SOT-323" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOT?323*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "BAT54SW_0_1" + (polyline + (pts + (xy -3.81 0) + (xy -1.27 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.175 -1.27) + (xy -3.175 -1.016) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 -1.27) + (xy -3.175 -1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 -1.27) + (xy -2.54 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 1.27) + (xy -1.905 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.905 0) + (xy 1.905 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.905 1.27) + (xy -1.905 1.016) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 0) + (xy 3.81 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 3.175 -1.27) + (xy 3.175 -1.016) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 3.81 -1.27) + (xy 3.175 -1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 3.81 -1.27) + (xy 3.81 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 3.81 1.27) + (xy 4.445 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 4.445 1.27) + (xy 4.445 1.016) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -4.445 1.27) + (xy -4.445 -1.27) + (xy -2.54 0) + (xy -4.445 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.905 1.27) + (xy 1.905 -1.27) + (xy 3.81 0) + (xy 1.905 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (circle (center 0 0) (radius 0.254) + (stroke (width 0) (type default)) + (fill (type outline)) + ) + ) + (symbol "BAT54SW_1_1" + (pin passive line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -5.08 90) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Diode:SM4002" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "D" (at 0 2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "SM4002" (at 0 -2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Diode_SMD:D_MELF" (at 0 -4.445 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://cdn-reichelt.de/documents/datenblatt/A400/SMD1N400%23DIO.pdf" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "diode" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "100V 1A General Purpose Rectifier Diode, MELF" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "D*MELF*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "SM4002_0_1" + (polyline + (pts + (xy -1.27 1.27) + (xy -1.27 -1.27) + ) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 0) + (xy -1.27 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 1.27) + (xy 1.27 -1.27) + (xy -1.27 0) + (xy 1.27 1.27) + ) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "SM4002_1_1" + (pin passive line (at -3.81 0 0) (length 2.54) + (name "K" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 3.81 0 180) (length 2.54) + (name "A" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Memory_EEPROM:M24C02-RMN" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -6.35 6.35 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Memory_EEPROM_M24C02-RMN" (at 7.62 6.35 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (at 0 8.89 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 1.27 -12.7 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "M24C02-RMN_0_1" + (rectangle (start -7.62 5.08) (end 7.62 -5.08) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "M24C02-RMN_1_1" + (pin input line (at -10.16 2.54 0) (length 2.54) + (name "E0" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -10.16 0 0) (length 2.54) + (name "E1" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -10.16 -2.54 0) (length 2.54) + (name "E2" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -7.62 90) (length 2.54) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 10.16 2.54 180) (length 2.54) + (name "SDA" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at 10.16 0 180) (length 2.54) + (name "SCL" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at 10.16 -2.54 180) (length 2.54) + (name "~{WC}" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 7.62 270) (length 2.54) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Oscillator:Si5351A-B-GT" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -8.89 11.43 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Si5351A-B-GT" (at -12.7 -12.7 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:MSOP-10_3x3mm_P0.5mm" (at 0 -20.32 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "https://www.silabs.com/documents/public/data-sheets/Si5351-B.pdf" (at -8.89 -2.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "CMOS Synth Oscillator I2C" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "I2C Programmable Any-Frequency CMOS Clock Generator, MSOP-8" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "MSOP*3x3mm*P0.5mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Si5351A-B-GT_0_1" + (rectangle (start -10.16 10.16) (end 10.16 -10.16) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "Si5351A-B-GT_1_1" + (pin power_in line (at -2.54 12.7 270) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 5.08 180) (length 2.54) + (name "CLK0" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 7.62 0) (length 2.54) + (name "XA" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 2.54 0) (length 2.54) + (name "XB" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -5.08 0) (length 2.54) + (name "SCL" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -12.7 -7.62 0) (length 2.54) + (name "SDA" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 -5.08 180) (length 2.54) + (name "CLK2" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 2.54 12.7 270) (length 2.54) + (name "VDDO" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -12.7 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 0 180) (length 2.54) + (name "CLK1" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Regulator_Linear:AZ1117R-ADJ" (pin_names (offset 0.254)) (in_bom yes) (on_board yes) + (property "Reference" "U" (at -3.81 3.175 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "AZ1117R-ADJ" (at 0 3.175 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-89-3" (at 0 6.35 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "https://www.diodes.com/assets/Datasheets/products_inactive_data/AZ1117.pdf" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "Adjustable Voltage Regulator 1A Positive LDO" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "1A 20V Adjustable LDO Linear Regulator, SOT-89" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOT?89*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "AZ1117R-ADJ_0_1" + (rectangle (start -5.08 1.905) (end 5.08 -5.08) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "AZ1117R-ADJ_1_1" + (pin input line (at 0 -7.62 90) (length 2.54) + (name "ADJ" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin power_out line (at 7.62 0 180) (length 2.54) + (name "VO" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -7.62 0 0) (length 2.54) + (name "VI" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "cesco:STM32G431KBTx" (pin_names (offset 1.27)) (in_bom yes) (on_board yes) + (property "Reference" "U" (at 0 2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "STM32G431KBTx" (at 0 -2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "LQFP32" (at 0 -5.08 0) + (effects (font (size 1.27 1.27) italic)) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (symbol "STM32G431KBTx_0_1" + (rectangle (start -21.59 19.05) (end 17.78 -17.78) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "STM32G431KBTx_1_1" + (pin power_in line (at -29.21 13.97 0) (length 7.62) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -10.16 -25.4 90) (length 7.62) + (name "PA5" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -6.35 -25.4 90) (length 7.62) + (name "PA6" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -25.4 90) (length 7.62) + (name "PA7" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -25.4 90) (length 7.62) + (name "PB0" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 5.08 -25.4 90) (length 7.62) + (name "VSSA" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 8.89 -25.4 90) (length 7.62) + (name "VDDA" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 12.7 -25.4 90) (length 7.62) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 25.4 -12.7 180) (length 7.62) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 -8.89 180) (length 7.62) + (name "PA8" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 -5.08 180) (length 7.62) + (name "PA9" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 10.16 0) (length 7.62) + (name "PF0" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 -1.27 180) (length 7.62) + (name "PA10" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 2.54 180) (length 7.62) + (name "PA11" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 6.35 180) (length 7.62) + (name "PA12" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 10.16 180) (length 7.62) + (name "PA13" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 25.4 13.97 180) (length 7.62) + (name "PA14" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 11.43 26.67 270) (length 7.62) + (name "PA15" (effects (font (size 1.27 1.27)))) + (number "25" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 7.62 26.67 270) (length 7.62) + (name "PB3" (effects (font (size 1.27 1.27)))) + (number "26" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 3.81 26.67 270) (length 7.62) + (name "PB4" (effects (font (size 1.27 1.27)))) + (number "27" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 26.67 270) (length 7.62) + (name "PB5" (effects (font (size 1.27 1.27)))) + (number "28" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -3.81 26.67 270) (length 7.62) + (name "PB6" (effects (font (size 1.27 1.27)))) + (number "29" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 6.35 0) (length 7.62) + (name "PF1" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -7.62 26.67 270) (length 7.62) + (name "PB7" (effects (font (size 1.27 1.27)))) + (number "30" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -11.43 26.67 270) (length 7.62) + (name "PB8" (effects (font (size 1.27 1.27)))) + (number "31" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -15.24 26.67 270) (length 7.62) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "32" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 2.54 0) (length 7.62) + (name "PG10" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 -1.27 0) (length 7.62) + (name "PA0" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 -5.08 0) (length 7.62) + (name "PA1" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 -8.89 0) (length 7.62) + (name "PA2" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -29.21 -12.7 0) (length 7.62) + (name "PA3" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -13.97 -25.4 90) (length 7.62) + (name "PA4" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "fzzt-rescue:IXDN609PI-ixdn609pi" (in_bom yes) (on_board yes) + (property "Reference" "U" (at 0 13.97 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "IXDN609PI-ixdn609pi" (at 0 11.43 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (at 0 -12.7 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "IXDN609PI-ixdn609pi_0_1" + (rectangle (start -5.08 10.16) (end 5.08 -10.16) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "IXDN609PI-ixdn609pi_1_1" + (pin power_in line (at -7.62 7.62 0) (length 2.54) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 2.54 0) (length 2.54) + (name "IN" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin no_connect line (at -7.62 -2.54 0) (length 2.54) + (name "NC" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -7.62 -7.62 0) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 7.62 -7.62 180) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 7.62 -2.54 180) (length 2.54) + (name "OUT" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 7.62 2.54 180) (length 2.54) + (name "OUT" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 7.62 7.62 180) (length 2.54) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+3.3V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 0 3.556 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"+3.3V\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "+3.3V_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+3.3V_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "+3.3V" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) + (xy 0 -1.27) + (xy 1.27 -1.27) + (xy 0 -2.54) + (xy -1.27 -1.27) + (xy 0 -1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line (at 0 0 270) (length 0) hide + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:VCC" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"VCC\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "VCC_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "VCC_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + (junction (at 90.17 161.29) (diameter 0) (color 0 0 0 0) + (uuid 06ffb1f2-1db9-44a5-becd-1f1227f3b56c) + ) + (junction (at 115.57 83.82) (diameter 0) (color 0 0 0 0) + (uuid 09961d89-a24b-4e6b-a114-cb5a183e2b41) + ) + (junction (at 163.83 29.21) (diameter 0) (color 0 0 0 0) + (uuid 0f61c0b2-605f-4cbd-bfa4-7d4dbb826d56) + ) + (junction (at 129.54 139.7) (diameter 0) (color 0 0 0 0) + (uuid 21639966-2e8c-4862-9550-38362b1324f5) + ) + (junction (at 189.23 97.79) (diameter 0) (color 0 0 0 0) + (uuid 31bdde54-b0b8-4eb7-beb7-e779229c97b3) + ) + (junction (at 163.83 44.45) (diameter 0) (color 0 0 0 0) + (uuid 3859951f-706e-4043-86e5-60ec24910f23) + ) + (junction (at 134.62 71.12) (diameter 0) (color 0 0 0 0) + (uuid 38d2cdab-4945-4197-a075-392a08e96df1) + ) + (junction (at 168.91 77.47) (diameter 0) (color 0 0 0 0) + (uuid 46b81fa2-b6d2-49d7-9936-3fb823306d7e) + ) + (junction (at 97.79 168.91) (diameter 0) (color 0 0 0 0) + (uuid 560ea4c3-c8d6-46f0-a86c-e0c3d0033436) + ) + (junction (at 186.69 67.31) (diameter 0) (color 0 0 0 0) + (uuid 58f6611d-707c-40cd-b748-795005ea83e1) + ) + (junction (at 168.91 44.45) (diameter 0) (color 0 0 0 0) + (uuid 592cb3d3-c4c5-416c-9b89-13028f868441) + ) + (junction (at 96.52 86.36) (diameter 0) (color 0 0 0 0) + (uuid 5d97e1db-2f35-4197-9589-b5d2e1a37f37) + ) + (junction (at 68.58 154.94) (diameter 0) (color 0 0 0 0) + (uuid 5e90b6f4-042b-4fb7-99b5-55df7d81290e) + ) + (junction (at 168.91 29.21) (diameter 0) (color 0 0 0 0) + (uuid 5ebe94b4-e068-4aad-a5d7-42853ce5fae6) + ) + (junction (at 163.83 62.23) (diameter 0) (color 0 0 0 0) + (uuid 60eb36f4-9360-4e57-badc-770777091c15) + ) + (junction (at 38.1 154.94) (diameter 0) (color 0 0 0 0) + (uuid 6bdc762c-a1a3-472c-9864-52f19c91886f) + ) + (junction (at 118.11 83.82) (diameter 0) (color 0 0 0 0) + (uuid 702b4e9e-8f9c-4534-8c5b-c4fdb2237cdb) + ) + (junction (at 157.48 97.79) (diameter 0) (color 0 0 0 0) + (uuid 75795d80-2c10-49f7-8879-a8a1078fcb10) + ) + (junction (at 120.65 86.36) (diameter 0) (color 0 0 0 0) + (uuid 87c2d005-fe6e-480b-a939-bd3276c2bec7) + ) + (junction (at 142.24 100.33) (diameter 0) (color 0 0 0 0) + (uuid 89f50f58-6f1d-4339-9467-0a0a66908a49) + ) + (junction (at 102.87 160.02) (diameter 0) (color 0 0 0 0) + (uuid 8efdde04-9fe3-41cf-bf7e-6827e720e14b) + ) + (junction (at 168.91 62.23) (diameter 0) (color 0 0 0 0) + (uuid 9364fbb0-3c0e-4b43-b6d6-3527c52bf336) + ) + (junction (at 109.22 160.02) (diameter 0) (color 0 0 0 0) + (uuid 95754053-2d6f-4b5e-881c-e59922cc5a60) + ) + (junction (at 163.83 97.79) (diameter 0) (color 0 0 0 0) + (uuid 9bf59a55-1d07-493f-91ff-32e737324541) + ) + (junction (at 74.93 71.12) (diameter 0) (color 0 0 0 0) + (uuid 9ec86c04-27ae-454d-8da7-4efd1a652e1a) + ) + (junction (at 168.91 20.32) (diameter 0) (color 0 0 0 0) + (uuid a028b744-efbe-45a7-9078-c3d44eaf68ca) + ) + (junction (at 92.71 163.83) (diameter 0) (color 0 0 0 0) + (uuid a1c490b0-d9b6-413d-9898-c1c9b022a9f8) + ) + (junction (at 95.25 166.37) (diameter 0) (color 0 0 0 0) + (uuid a779d0a9-1e2d-44cb-b93c-869f63164517) + ) + (junction (at 163.83 77.47) (diameter 0) (color 0 0 0 0) + (uuid adcfb665-a7ec-4065-8e3a-d9795341fc0a) + ) + (junction (at 74.93 66.04) (diameter 0) (color 0 0 0 0) + (uuid d11de5f8-6e51-4827-b7b9-5167d51ffca1) + ) + (junction (at 186.69 34.29) (diameter 0) (color 0 0 0 0) + (uuid d3656b8b-a829-4d9a-b37b-cd1d814b3530) + ) + (junction (at 53.34 154.94) (diameter 0) (color 0 0 0 0) + (uuid d3e4bfa4-1a83-443f-9638-cd4fc204e424) + ) + (junction (at 142.24 105.41) (diameter 0) (color 0 0 0 0) + (uuid f5a8194d-ba70-44b4-8ccd-3deaa7fa5caf) + ) + + (bus_entry (at 247.65 88.9) (size 2.54 2.54) + (stroke (width 0) (type default)) + (uuid 74c20a49-874b-4bc8-af22-5c5f452dc77d) + ) + + (wire (pts (xy 45.72 160.02) (xy 45.72 166.37)) + (stroke (width 0) (type default)) + (uuid 001dddc7-02ee-4f01-a8f7-930f633f7a4f) + ) + (wire (pts (xy 102.87 160.02) (xy 109.22 160.02)) + (stroke (width 0) (type default)) + (uuid 01dcc8a0-efd4-484b-8812-6a1deebe017a) + ) + (wire (pts (xy 125.73 71.12) (xy 134.62 71.12)) + (stroke (width 0) (type default)) + (uuid 02d20f4f-0c50-4dda-94ba-546e159a29f5) + ) + (wire (pts (xy 71.12 133.35) (xy 71.12 135.89)) + (stroke (width 0) (type default)) + (uuid 045a56a2-4741-438f-9285-3d7402a56c20) + ) + (wire (pts (xy 168.91 49.53) (xy 186.69 49.53)) + (stroke (width 0) (type default)) + (uuid 062cc10f-b3de-46e2-b2f0-bd81496e656f) + ) + (wire (pts (xy 168.91 82.55) (xy 186.69 82.55)) + (stroke (width 0) (type default)) + (uuid 06ada08e-1f5c-4e5d-9596-803c79b084fd) + ) + (wire (pts (xy 133.35 139.7) (xy 129.54 139.7)) + (stroke (width 0) (type default)) + (uuid 0b0eb1f6-8fc9-4ef2-bb1b-8ef5d1d3012f) + ) + (wire (pts (xy 92.71 163.83) (xy 92.71 152.4)) + (stroke (width 0) (type default)) + (uuid 0b1d4500-7e6d-4cc9-98d0-828483234f6e) + ) + (wire (pts (xy 96.52 86.36) (xy 96.52 100.33)) + (stroke (width 0) (type default)) + (uuid 0e7f51ac-ae4d-456e-90ce-f5c03351673c) + ) + (wire (pts (xy 107.95 167.64) (xy 107.95 173.99)) + (stroke (width 0) (type default)) + (uuid 0ea1c316-1642-47c1-91fe-9f7a39f3cb7d) + ) + (wire (pts (xy 142.24 100.33) (xy 142.24 97.79)) + (stroke (width 0) (type default)) + (uuid 0ee82f7d-cdf2-46d3-bc1a-af5d0b8db7d9) + ) + (wire (pts (xy 134.62 71.12) (xy 134.62 72.39)) + (stroke (width 0) (type default)) + (uuid 102c0886-27c2-4c4f-9bd5-16492893c711) + ) + (wire (pts (xy 133.35 116.84) (xy 133.35 118.11)) + (stroke (width 0) (type default)) + (uuid 114bc007-f600-4d5c-bbd4-0d0f5b34d8e3) + ) + (wire (pts (xy 186.69 44.45) (xy 186.69 49.53)) + (stroke (width 0) (type default)) + (uuid 11e1429b-c330-4509-8e1f-ecdf3c467db6) + ) + (wire (pts (xy 88.9 53.34) (xy 88.9 55.88)) + (stroke (width 0) (type default)) + (uuid 162ae415-de7e-44b9-9746-ee3e7c6accc4) + ) + (wire (pts (xy 76.2 161.29) (xy 90.17 161.29)) + (stroke (width 0) (type default)) + (uuid 17345b4c-bbaa-445e-8a04-be77faa9a94c) + ) + (wire (pts (xy 74.93 66.04) (xy 76.2 66.04)) + (stroke (width 0) (type default)) + (uuid 1c5a24b2-c3ce-4fce-9f3a-ef087e7011b0) + ) + (wire (pts (xy 168.91 44.45) (xy 168.91 49.53)) + (stroke (width 0) (type default)) + (uuid 1d4b3789-0699-4c6a-8e2d-01887883f3a2) + ) + (wire (pts (xy 92.71 173.99) (xy 92.71 163.83)) + (stroke (width 0) (type default)) + (uuid 1efeb969-297f-450e-9646-86555b2b4b68) + ) + (wire (pts (xy 168.91 29.21) (xy 171.45 29.21)) + (stroke (width 0) (type default)) + (uuid 1f5af56c-63c3-463d-a924-c44e1b41bd82) + ) + (wire (pts (xy 90.17 161.29) (xy 90.17 173.99)) + (stroke (width 0) (type default)) + (uuid 1f976f8f-317c-43ad-97e6-710b2e91f7bc) + ) + (wire (pts (xy 68.58 135.89) (xy 68.58 139.7)) + (stroke (width 0) (type default)) + (uuid 1fd6900c-d7e6-4f31-b7cd-20ad26fb58b8) + ) + (wire (pts (xy 102.87 170.18) (xy 102.87 160.02)) + (stroke (width 0) (type default)) + (uuid 20a7b8f7-39e3-4352-acb0-5f2d2a701386) + ) + (wire (pts (xy 31.75 128.27) (xy 74.93 128.27)) + (stroke (width 0) (type default)) + (uuid 2567e4f6-623e-475b-9cad-65e8de37ade1) + ) + (wire (pts (xy 105.41 173.99) (xy 105.41 170.18)) + (stroke (width 0) (type default)) + (uuid 26b62b2e-0e02-4765-b97a-843d92120555) + ) + (wire (pts (xy 74.93 71.12) (xy 74.93 66.04)) + (stroke (width 0) (type default)) + (uuid 29aa3647-2bca-4ed6-b1d1-3463788f735d) + ) + (wire (pts (xy 132.08 120.65) (xy 132.08 123.19)) + (stroke (width 0) (type default)) + (uuid 2a6e7f08-abfa-42da-a04d-7290e1b95468) + ) + (wire (pts (xy 168.91 29.21) (xy 168.91 20.32)) + (stroke (width 0) (type default)) + (uuid 2a7a6d07-10e3-49db-98d4-ea49112a641a) + ) + (wire (pts (xy 95.25 173.99) (xy 95.25 166.37)) + (stroke (width 0) (type default)) + (uuid 3215b71a-cb74-4c71-9a33-3a69b1503ee9) + ) + (wire (pts (xy 189.23 97.79) (xy 184.15 97.79)) + (stroke (width 0) (type default)) + (uuid 373df75f-9610-43b3-9b5e-404d10c78832) + ) + (wire (pts (xy 74.93 130.81) (xy 74.93 132.08)) + (stroke (width 0) (type default)) + (uuid 38ad5ad8-4f36-413a-93fd-70cf4c635bba) + ) + (wire (pts (xy 118.11 81.28) (xy 118.11 83.82)) + (stroke (width 0) (type default)) + (uuid 38e31a16-db78-48a3-83a0-596cc15a38ae) + ) + (wire (pts (xy 163.83 36.83) (xy 163.83 29.21)) + (stroke (width 0) (type default)) + (uuid 3946ec8d-4c44-430a-b974-c790ece73e6e) + ) + (wire (pts (xy 168.91 77.47) (xy 168.91 82.55)) + (stroke (width 0) (type default)) + (uuid 39c50ca5-eebc-4a66-a896-edaaa9ae7f42) + ) + (wire (pts (xy 129.54 116.84) (xy 133.35 116.84)) + (stroke (width 0) (type default)) + (uuid 3a362c5a-d42b-41bc-aafc-1094f828329a) + ) + (wire (pts (xy 96.52 81.28) (xy 96.52 86.36)) + (stroke (width 0) (type default)) + (uuid 3eb4f690-f653-48ea-a146-a1e55b9e7d00) + ) + (wire (pts (xy 153.67 67.31) (xy 171.45 67.31)) + (stroke (width 0) (type default)) + (uuid 3f61b937-da07-43c0-99fe-66c41feccdb4) + ) + (wire (pts (xy 142.24 100.33) (xy 142.24 102.87)) + (stroke (width 0) (type default)) + (uuid 41bbfc8a-9b0e-439c-a316-2bed5d673ba3) + ) + (wire (pts (xy 90.17 152.4) (xy 90.17 161.29)) + (stroke (width 0) (type default)) + (uuid 41f551a2-74ce-458e-a1a6-4c97c39a6b3a) + ) + (wire (pts (xy 186.69 39.37) (xy 186.69 34.29)) + (stroke (width 0) (type default)) + (uuid 422f4c56-936f-432c-aead-2321c8ef7182) + ) + (wire (pts (xy 60.96 163.83) (xy 92.71 163.83)) + (stroke (width 0) (type default)) + (uuid 4c27b4a8-b4e1-4782-bfc6-dba856722338) + ) + (wire (pts (xy 157.48 97.79) (xy 163.83 97.79)) + (stroke (width 0) (type default)) + (uuid 4e56549e-1018-4061-85d1-f8c1ef603d29) + ) + (wire (pts (xy 168.91 77.47) (xy 171.45 77.47)) + (stroke (width 0) (type default)) + (uuid 4ec5fa92-ed77-43f3-b793-450c71c917e9) + ) + (wire (pts (xy 129.54 132.08) (xy 132.08 132.08)) + (stroke (width 0) (type default)) + (uuid 50c638ee-acf5-43e4-946b-e199291f6c4b) + ) + (wire (pts (xy 186.69 20.32) (xy 186.69 29.21)) + (stroke (width 0) (type default)) + (uuid 536b47a0-a27c-4fa4-8f85-206dd5c5e739) + ) + (wire (pts (xy 139.7 86.36) (xy 120.65 86.36)) + (stroke (width 0) (type default)) + (uuid 53bec7fb-f98b-4c42-8a8a-ab98017a1ed8) + ) + (wire (pts (xy 66.04 66.04) (xy 74.93 66.04)) + (stroke (width 0) (type default)) + (uuid 55148297-bc57-4876-bdfd-ffd94cf3b363) + ) + (wire (pts (xy 142.24 97.79) (xy 149.86 97.79)) + (stroke (width 0) (type default)) + (uuid 55255b9f-9a41-45c9-b6bb-6ec35e21a2be) + ) + (wire (pts (xy 168.91 53.34) (xy 168.91 62.23)) + (stroke (width 0) (type default)) + (uuid 55879bf8-3d9e-4c16-afe4-8dcc25aa3f10) + ) + (wire (pts (xy 72.39 116.84) (xy 72.39 113.03)) + (stroke (width 0) (type default)) + (uuid 59184b48-ecc5-4977-ad08-740ae44a6435) + ) + (wire (pts (xy 76.2 160.02) (xy 76.2 161.29)) + (stroke (width 0) (type default)) + (uuid 5ba26914-51e1-4902-9675-c5848d0c890d) + ) + (wire (pts (xy 105.41 152.4) (xy 105.41 167.64)) + (stroke (width 0) (type default)) + (uuid 5ea3eb57-6188-485e-a5f5-bb316b1ac909) + ) + (wire (pts (xy 97.79 168.91) (xy 97.79 157.48)) + (stroke (width 0) (type default)) + (uuid 5fc710d0-7077-4f61-b2cd-4223b2e401a6) + ) + (wire (pts (xy 139.7 80.01) (xy 139.7 86.36)) + (stroke (width 0) (type default)) + (uuid 61b11a8c-76bf-40b7-ba5f-a21df2d6e7ef) + ) + (wire (pts (xy 163.83 62.23) (xy 168.91 62.23)) + (stroke (width 0) (type default)) + (uuid 633733b1-d9a1-4613-96dd-e4ff428675b2) + ) + (wire (pts (xy 163.83 77.47) (xy 168.91 77.47)) + (stroke (width 0) (type default)) + (uuid 64940adb-34ba-44a9-ae35-8d30acebcbfe) + ) + (wire (pts (xy 74.93 71.12) (xy 76.2 71.12)) + (stroke (width 0) (type default)) + (uuid 650d6217-cb46-4a35-b015-19042793056d) + ) + (wire (pts (xy 60.96 81.28) (xy 60.96 100.33)) + (stroke (width 0) (type default)) + (uuid 66a17f3a-9260-41be-be29-15645cc29385) + ) + (wire (pts (xy 129.54 139.7) (xy 129.54 149.86)) + (stroke (width 0) (type default)) + (uuid 6924e417-cb8b-422e-950b-b54fb86d04ab) + ) + (wire (pts (xy 163.83 97.79) (xy 168.91 97.79)) + (stroke (width 0) (type default)) + (uuid 6a52d482-75d6-4932-992d-f629fa9b1249) + ) + (wire (pts (xy 153.67 53.34) (xy 153.67 67.31)) + (stroke (width 0) (type default)) + (uuid 6b64bb04-f024-412b-ae42-b553366ecb22) + ) + (wire (pts (xy 168.91 44.45) (xy 171.45 44.45)) + (stroke (width 0) (type default)) + (uuid 6dc66785-18c4-48ef-82fc-adeaee207eef) + ) + (wire (pts (xy 135.89 113.03) (xy 135.89 115.57)) + (stroke (width 0) (type default)) + (uuid 6ea6e0fa-f736-4c12-867f-bc86d4aa0ade) + ) + (wire (pts (xy 88.9 53.34) (xy 153.67 53.34)) + (stroke (width 0) (type default)) + (uuid 70aa33b6-67eb-435e-a018-b56aa3894df5) + ) + (wire (pts (xy 129.54 128.27) (xy 142.24 128.27)) + (stroke (width 0) (type default)) + (uuid 70aba22d-1b4f-4f9a-8b0e-a10f799dccda) + ) + (wire (pts (xy 153.67 48.26) (xy 83.82 48.26)) + (stroke (width 0) (type default)) + (uuid 71c2d588-e79c-47aa-9129-00ffbfe239c7) + ) + (wire (pts (xy 139.7 71.12) (xy 139.7 72.39)) + (stroke (width 0) (type default)) + (uuid 72ecc14d-3965-45bd-a441-43bf1ab54ce5) + ) + (wire (pts (xy 95.25 166.37) (xy 95.25 154.94)) + (stroke (width 0) (type default)) + (uuid 75b65812-6790-49cd-88ec-94fa0ac46df8) + ) + (wire (pts (xy 31.75 130.81) (xy 74.93 130.81)) + (stroke (width 0) (type default)) + (uuid 77eeae79-e86c-4d12-9a84-e0a295419311) + ) + (wire (pts (xy 74.93 71.12) (xy 74.93 113.03)) + (stroke (width 0) (type default)) + (uuid 780056f1-a456-4c8f-9893-00c571e0cf8d) + ) + (wire (pts (xy 30.48 168.91) (xy 97.79 168.91)) + (stroke (width 0) (type default)) + (uuid 78f9f7b7-65a4-436b-abdb-100e6f74120c) + ) + (wire (pts (xy 129.54 120.65) (xy 132.08 120.65)) + (stroke (width 0) (type default)) + (uuid 799026e0-f0ab-4661-b4da-acab258a0440) + ) + (wire (pts (xy 186.69 34.29) (xy 198.12 34.29)) + (stroke (width 0) (type default)) + (uuid 7aab2f3d-9e22-451d-9caf-1000d1a9a2e7) + ) + (wire (pts (xy 163.83 29.21) (xy 168.91 29.21)) + (stroke (width 0) (type default)) + (uuid 7c771a83-258d-4b20-9aed-24f123e542c9) + ) + (wire (pts (xy 31.75 135.89) (xy 68.58 135.89)) + (stroke (width 0) (type default)) + (uuid 7ea8d504-964d-4828-a467-2b6bdd680829) + ) + (wire (pts (xy 163.83 69.85) (xy 163.83 62.23)) + (stroke (width 0) (type default)) + (uuid 7f2d63c2-a211-495b-9ab5-b1d901f75563) + ) + (wire (pts (xy 101.6 152.4) (xy 101.6 157.48)) + (stroke (width 0) (type default)) + (uuid 7fc2b4f3-6ce9-4704-b40b-80faf7a990a0) + ) + (wire (pts (xy 31.75 138.43) (xy 33.02 138.43)) + (stroke (width 0) (type default)) + (uuid 828398b9-d321-43b0-bd8d-e8dbc000bd27) + ) + (wire (pts (xy 129.54 113.03) (xy 135.89 113.03)) + (stroke (width 0) (type default)) + (uuid 864e615d-e32b-4da7-a264-1ff5af7b8b5d) + ) + (wire (pts (xy 153.67 48.26) (xy 153.67 34.29)) + (stroke (width 0) (type default)) + (uuid 88666d24-d310-41b5-bd6c-9e1b94f45b87) + ) + (wire (pts (xy 93.98 83.82) (xy 93.98 81.28)) + (stroke (width 0) (type default)) + (uuid 8aa26c9e-1915-4b0b-b0f2-300414a75306) + ) + (wire (pts (xy 133.35 118.11) (xy 142.24 118.11)) + (stroke (width 0) (type default)) + (uuid 8ebbb885-5441-4da2-be9e-ca4f3c4a531e) + ) + (wire (pts (xy 60.96 107.95) (xy 60.96 124.46)) + (stroke (width 0) (type default)) + (uuid 8f448dd5-f506-4333-8c50-73cc2ea4269a) + ) + (wire (pts (xy 168.91 20.32) (xy 186.69 20.32)) + (stroke (width 0) (type default)) + (uuid 8f73653c-55f9-4e95-8d46-ee5fe59fd1d5) + ) + (wire (pts (xy 30.48 160.02) (xy 30.48 168.91)) + (stroke (width 0) (type default)) + (uuid 914193eb-6178-4a78-a704-d8298d6af822) + ) + (wire (pts (xy 71.12 135.89) (xy 74.93 135.89)) + (stroke (width 0) (type default)) + (uuid 97f336d7-ef7a-480d-921d-643c1aeb1ee1) + ) + (wire (pts (xy 132.08 130.81) (xy 142.24 130.81)) + (stroke (width 0) (type default)) + (uuid 9c5324df-9f0a-4308-a8ac-eeaabfdb5f03) + ) + (wire (pts (xy 134.62 83.82) (xy 134.62 80.01)) + (stroke (width 0) (type default)) + (uuid 9c7ea4b8-f02a-4145-b6da-1e98009bb5e7) + ) + (wire (pts (xy 31.75 133.35) (xy 71.12 133.35)) + (stroke (width 0) (type default)) + (uuid 9f49ebe4-2ad7-477b-8342-225f089c26b2) + ) + (wire (pts (xy 92.71 152.4) (xy 93.98 152.4)) + (stroke (width 0) (type default)) + (uuid a3e47baa-3842-4a00-ae70-9fbea0aa2c51) + ) + (wire (pts (xy 129.54 125.73) (xy 142.24 125.73)) + (stroke (width 0) (type default)) + (uuid a6559a59-7a96-4d32-9cca-d57ea10061d4) + ) + (wire (pts (xy 60.96 81.28) (xy 81.28 81.28)) + (stroke (width 0) (type default)) + (uuid a7a4e282-db2b-442d-bf8e-93c4cfb30d34) + ) + (wire (pts (xy 93.98 83.82) (xy 115.57 83.82)) + (stroke (width 0) (type default)) + (uuid aea20f09-9bfe-4ccc-aed0-66497b6bf366) + ) + (wire (pts (xy 97.79 157.48) (xy 101.6 157.48)) + (stroke (width 0) (type default)) + (uuid af7b046b-e9af-48d9-a008-ad0cae72c1e1) + ) + (wire (pts (xy 64.77 120.65) (xy 74.93 120.65)) + (stroke (width 0) (type default)) + (uuid afe84c7e-b00c-44e8-953d-766bfa2b3941) + ) + (wire (pts (xy 168.91 62.23) (xy 171.45 62.23)) + (stroke (width 0) (type default)) + (uuid b5829b37-290a-449a-865b-f54258dff5dc) + ) + (wire (pts (xy 96.52 86.36) (xy 120.65 86.36)) + (stroke (width 0) (type default)) + (uuid b9f240fb-37fa-4b0a-bea8-27f815aae995) + ) + (wire (pts (xy 186.69 67.31) (xy 198.12 67.31)) + (stroke (width 0) (type default)) + (uuid bbd122b6-8c5f-47e1-8b5a-617564e1abda) + ) + (wire (pts (xy 72.39 113.03) (xy 64.77 113.03)) + (stroke (width 0) (type default)) + (uuid be565fdd-735d-4c9f-9716-5bba12a80fcd) + ) + (wire (pts (xy 132.08 123.19) (xy 142.24 123.19)) + (stroke (width 0) (type default)) + (uuid c0bf853a-cc84-44cc-a69a-0c3c42480147) + ) + (wire (pts (xy 97.79 173.99) (xy 97.79 168.91)) + (stroke (width 0) (type default)) + (uuid c0ec4feb-b940-4a33-aa14-a000b1139ce7) + ) + (wire (pts (xy 45.72 166.37) (xy 95.25 166.37)) + (stroke (width 0) (type default)) + (uuid c1ecd2a2-6e24-4846-8a41-4b1efe550c1c) + ) + (wire (pts (xy 105.41 167.64) (xy 107.95 167.64)) + (stroke (width 0) (type default)) + (uuid c2c9d44b-0efb-41ff-8a44-d2960552f92c) + ) + (wire (pts (xy 157.48 29.21) (xy 163.83 29.21)) + (stroke (width 0) (type default)) + (uuid c41e98a3-4690-46c3-91e7-4c7161e21501) + ) + (wire (pts (xy 186.69 53.34) (xy 168.91 53.34)) + (stroke (width 0) (type default)) + (uuid c4c1f7c9-7beb-45b7-9f8c-05bbde3746dd) + ) + (wire (pts (xy 74.93 124.46) (xy 60.96 124.46)) + (stroke (width 0) (type default)) + (uuid c69d86f6-e12f-4b18-bcf9-33be9194a08d) + ) + (wire (pts (xy 100.33 173.99) (xy 100.33 160.02)) + (stroke (width 0) (type default)) + (uuid c6eec357-f0df-4d7d-8a12-393bc0d26ef4) + ) + (wire (pts (xy 100.33 160.02) (xy 102.87 160.02)) + (stroke (width 0) (type default)) + (uuid c762b85c-d85c-47dc-aa0f-6b49bd493ef5) + ) + (wire (pts (xy 118.11 83.82) (xy 134.62 83.82)) + (stroke (width 0) (type default)) + (uuid c9012b65-1610-417b-80de-8fd6591ef99e) + ) + (wire (pts (xy 68.58 139.7) (xy 74.93 139.7)) + (stroke (width 0) (type default)) + (uuid cab4f89a-6ed1-42aa-aedf-074dae504813) + ) + (wire (pts (xy 193.04 97.79) (xy 189.23 97.79)) + (stroke (width 0) (type default)) + (uuid cc19c3f9-b884-43dc-9194-f97e16803a54) + ) + (wire (pts (xy 129.54 124.46) (xy 129.54 125.73)) + (stroke (width 0) (type default)) + (uuid cef551ad-fdc8-473a-8517-8f9e2f345de6) + ) + (wire (pts (xy 60.96 160.02) (xy 60.96 163.83)) + (stroke (width 0) (type default)) + (uuid d146d4fd-457f-43e4-9a61-c43b9e563266) + ) + (wire (pts (xy 83.82 48.26) (xy 83.82 55.88)) + (stroke (width 0) (type default)) + (uuid d3f8886e-3ccb-4e98-a8d2-16ad3810983f) + ) + (wire (pts (xy 97.79 152.4) (xy 97.79 154.94)) + (stroke (width 0) (type default)) + (uuid d5a1c70b-1e11-4cae-ab04-a5207355a263) + ) + (wire (pts (xy 142.24 105.41) (xy 142.24 107.95)) + (stroke (width 0) (type default)) + (uuid db0c1d21-7754-4f2b-9199-c2924a246a9e) + ) + (wire (pts (xy 186.69 53.34) (xy 186.69 62.23)) + (stroke (width 0) (type default)) + (uuid de4ec469-dce8-47e4-81f9-6fcc09bc21bd) + ) + (wire (pts (xy 153.67 34.29) (xy 171.45 34.29)) + (stroke (width 0) (type default)) + (uuid e390d3be-c022-4beb-85eb-0db7688e3ec3) + ) + (wire (pts (xy 115.57 83.82) (xy 118.11 83.82)) + (stroke (width 0) (type default)) + (uuid e3c562d6-56c3-4655-82e7-0fc73374a260) + ) + (wire (pts (xy 120.65 86.36) (xy 120.65 81.28)) + (stroke (width 0) (type default)) + (uuid e5709057-a8ea-4bfd-84a7-ed524ce4eb37) + ) + (wire (pts (xy 163.83 62.23) (xy 157.48 62.23)) + (stroke (width 0) (type default)) + (uuid e62484f8-131d-4f73-b17f-5da4941d417c) + ) + (wire (pts (xy 74.93 116.84) (xy 72.39 116.84)) + (stroke (width 0) (type default)) + (uuid e7c4ff66-d484-4286-ae4d-e9755e76601c) + ) + (wire (pts (xy 132.08 132.08) (xy 132.08 130.81)) + (stroke (width 0) (type default)) + (uuid ed53d6fa-aa61-479d-93f0-cfc7a5b025cb) + ) + (wire (pts (xy 134.62 71.12) (xy 139.7 71.12)) + (stroke (width 0) (type default)) + (uuid ef51c094-73b0-446f-92f4-eb2eedb2afb6) + ) + (wire (pts (xy 157.48 62.23) (xy 157.48 29.21)) + (stroke (width 0) (type default)) + (uuid efcaa00e-ca9a-4f1e-b44e-5a85da65beae) + ) + (wire (pts (xy 95.25 154.94) (xy 97.79 154.94)) + (stroke (width 0) (type default)) + (uuid f5663bfd-a3a3-4605-bffc-7be1d76d017c) + ) + (wire (pts (xy 115.57 83.82) (xy 115.57 100.33)) + (stroke (width 0) (type default)) + (uuid f598754d-eaa2-4adc-bb74-9ce60a88d2dc) + ) + (wire (pts (xy 186.69 72.39) (xy 186.69 67.31)) + (stroke (width 0) (type default)) + (uuid f7c5cbc4-e040-4571-8462-68150ca99555) + ) + (wire (pts (xy 135.89 115.57) (xy 142.24 115.57)) + (stroke (width 0) (type default)) + (uuid f8124875-06b6-4937-8e53-8fe2f73a907d) + ) + (wire (pts (xy 109.22 152.4) (xy 109.22 160.02)) + (stroke (width 0) (type default)) + (uuid f8df0cb8-57fc-4d31-8453-5d654f569002) + ) + (wire (pts (xy 163.83 44.45) (xy 168.91 44.45)) + (stroke (width 0) (type default)) + (uuid fba40849-9cf1-49ce-b6d7-7b9cc823d9f7) + ) + (wire (pts (xy 105.41 170.18) (xy 102.87 170.18)) + (stroke (width 0) (type default)) + (uuid fc8f74bb-5eda-4f75-91a9-cdd16a38986a) + ) + (wire (pts (xy 186.69 82.55) (xy 186.69 77.47)) + (stroke (width 0) (type default)) + (uuid fcaa6ccb-b9a8-4f69-a7a0-cbe27533ccf0) + ) + + (symbol (lib_id "power:GND") (at 142.24 113.03 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 03dcce6a-a217-4525-bfd4-72b6567a46c2) + (property "Reference" "#PWR016" (at 135.89 113.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 137.8458 113.157 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 142.24 113.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 142.24 113.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e18e3e79-1b4f-4a44-8743-6f0cd29b5f0b)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR016") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 74.93 66.04 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0a5efd49-591b-4332-9312-221efb1684a5) + (property "Reference" "#PWR09" (at 74.93 69.85 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 74.93 60.96 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 74.93 66.04 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 74.93 66.04 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a88836fe-0052-4a12-ba7f-19c6acbb2ee7)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR09") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 134.62 76.2 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 0e954770-e411-404c-9f60-e77a9b02dae1) + (property "Reference" "R2" (at 136.398 75.0316 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "4k7" (at 136.398 77.343 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" (at 132.842 76.2 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 134.62 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 58d6f7b5-98db-4881-b4e2-d42f5e3fe9cc)) + (pin "2" (uuid 686ab597-f09c-4efa-a71f-f0ecda5e7a54)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "R2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Oscillator:Si5351A-B-GT") (at 88.9 68.58 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 0fde9d4d-184d-4dce-b6ed-79084d70e5a1) + (property "Reference" "U1" (at 88.9 68.58 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Si5351A-B-GT" (at 90.17 72.39 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:MSOP-10_3x3mm_P0.5mm" (at 109.22 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "https://www.silabs.com/documents/public/data-sheets/Si5351-B.pdf" (at 91.44 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 242b21ac-1d38-41de-bb3c-1d23d89217cd)) + (pin "10" (uuid f02a4d0a-c6b7-44c4-ae0e-a32e4c9149bd)) + (pin "2" (uuid 3997e7c4-696d-439f-9bf5-555b50815215)) + (pin "3" (uuid 2a7219d2-b0e8-4880-8e6c-e07c875c8f5b)) + (pin "4" (uuid c5ba184a-ba79-4ec9-a4b5-1d84f0d86f67)) + (pin "5" (uuid 5c79dfcf-c376-445a-bf14-91a4672eb777)) + (pin "6" (uuid c67c7f9d-9e8b-4a3e-b7cd-396c1c461634)) + (pin "7" (uuid 5708d365-4537-4f04-90d0-a4118a56c503)) + (pin "8" (uuid 512fc3fa-669f-44b4-8662-eb5f4e4136fa)) + (pin "9" (uuid 345243a1-8cd7-4b77-9043-49dfb7906f07)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "U1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 142.24 110.49 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 10dc3a8e-f11f-492d-a071-75a76a8f334f) + (property "Reference" "#PWR020" (at 146.05 110.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 138.43 110.4899 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 142.24 110.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 142.24 110.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 30ad59b4-3f73-4f05-aa04-d589a43a6e4e)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR020") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 101.6 68.58 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1460454f-5643-4a7d-abc0-2641e785d3ed) + (property "Reference" "#PWR012" (at 107.95 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 105.41 68.5799 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 101.6 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 101.6 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 374bd139-bb27-4748-902b-88690bc5cb5e)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR012") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 142.24 133.35 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 1676879d-2dac-4772-84b5-70204b69889b) + (property "Reference" "#PWR021" (at 146.05 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 133.35 133.35 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 142.24 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 142.24 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 017dc789-cba1-48b8-82a2-7b665379f111)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR021") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:VCC") (at 168.91 20.32 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 184a3c79-66c0-4aa0-b5b9-de86859f4406) + (property "Reference" "#PWR026" (at 168.91 24.13 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (at 171.45 19.0499 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 168.91 20.32 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 168.91 20.32 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8f38e8ae-8f28-450e-bccb-a35863ccb9ab)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR026") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 199.39 49.53 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 18fe543e-28cb-4d79-8d9c-e434e219ae5e) + (property "Reference" "#PWR030" (at 199.39 55.88 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 199.517 53.9242 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 49.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 49.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9d1233f8-d3db-49d0-b6f1-f49627aff41a)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR030") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 92.71 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 19405bce-01fb-4cac-957a-65dcde5bef83) + (property "Reference" "R1" (at 94.488 95.3516 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "10k" (at 94.488 97.663 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" (at 90.932 96.52 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 92.71 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 935f587e-3966-4ce2-8a9d-e6cfc7d548ee)) + (pin "2" (uuid 36a36042-6b48-4706-976c-86d5851817f0)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "R1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Diode:BAT54SW") (at 60.96 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1a16911a-85ff-4f6f-b09c-a14d4493e96a) + (property "Reference" "D3" (at 60.96 148.59 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "BAT54SW" (at 60.96 151.13 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-323_SC-70" (at 62.865 151.765 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/BAT54W_SER.pdf" (at 57.912 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 771f9f52-dd83-4b92-9d28-831357971ac6)) + (pin "2" (uuid 16cf78e7-89aa-43b3-9a93-60425c6898f3)) + (pin "3" (uuid 75bce558-d200-4c9d-ac50-5a2a7225b54a)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "D3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 66.04 69.85 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 23417b56-a126-4a88-858a-20b16d3187c1) + (property "Reference" "C2" (at 68.961 68.6816 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "220n" (at 68.961 70.993 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 67.0052 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 66.04 69.85 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ae5c737b-b6af-4a63-baf5-b3d9ff0a81a5)) + (pin "2" (uuid 60c801e3-666a-442a-bbfb-826b03684e07)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 163.83 77.47 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 2f461d4f-d5c5-4c91-a59a-b6c9cf0ac28d) + (property "Reference" "#PWR025" (at 163.83 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 163.957 81.8642 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 163.83 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 163.83 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0815acd2-3831-45bd-bed4-a169561655da)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR025") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 53.34 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 339a9fd4-525b-482a-a302-7599a86cb0c7) + (property "Reference" "#PWR06" (at 53.34 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 55.88 156.2099 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 53.34 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 53.34 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f9bd49a2-37a3-452d-b456-3a7ab56778f4)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR06") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 22.86 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 36eb311c-dde2-41b9-a658-6d5712fd76e1) + (property "Reference" "#PWR01" (at 22.86 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 25.4 156.2099 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 22.86 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 22.86 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid da8d7e75-d282-4c9a-865a-3a731d1fdb40)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR01") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:Crystal") (at 64.77 116.84 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3a3863d3-8e24-461e-8cf5-a941e01a83f7) + (property "Reference" "Y1" (at 68.58 115.5699 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "12.288 MHz" (at 68.58 118.1099 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm_HandSoldering" (at 64.77 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 64.77 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ee031b00-49fa-4d9a-8bfd-133b92550d87)) + (pin "2" (uuid b12d714b-632c-4b33-9d8c-ec21bb59536f)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "Y1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 110.49 71.12 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3a5ad588-133a-41c5-9093-7c396a84623b) + (property "Reference" "#PWR014" (at 110.49 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 110.49 76.2 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 110.49 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 110.49 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid abf83b1f-469e-4188-8376-06634e237fa7)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR014") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Diode:SM4002") (at 153.67 97.79 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3e5e37d2-193f-41ec-83dd-d98c7f740beb) + (property "Reference" "D5" (at 153.67 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "SM4002" (at 153.67 93.98 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Diode_SMD:D_MELF" (at 153.67 93.345 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://cdn-reichelt.de/documents/datenblatt/A400/SMD1N400%23DIO.pdf" (at 153.67 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 70554608-c858-4b9d-b4a6-aeabca753651)) + (pin "2" (uuid b284ea91-1563-4240-bbbe-213aad07f964)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "D5") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "fzzt-rescue:IXDN609PI-ixdn609pi") (at 179.07 36.83 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 3fae67fb-26c5-4304-a9dc-622db59a09f2) + (property "Reference" "U4" (at 179.07 22.4282 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "IXDN609PI" (at 179.07 24.7396 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (at 179.07 49.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 179.07 36.83 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid afc0d3de-5aed-4415-a97e-fa20105e0bb2)) + (pin "2" (uuid aa88823c-3f4b-4097-9653-f700d31f6f0e)) + (pin "3" (uuid adeaf695-3d2f-44af-b762-fd117c363f83)) + (pin "4" (uuid 26dcc8ae-2530-496b-ba2c-8926d214e14d)) + (pin "5" (uuid 2fa6a0af-945f-4d23-99b0-89ea1fbae4ce)) + (pin "6" (uuid 8df050d0-cbf2-45b7-8d37-8cb4cb4fb35d)) + (pin "7" (uuid 948eb6f6-f67a-4cc9-9580-5e9138c3e017)) + (pin "8" (uuid f8631a7d-830a-4883-8603-b1a1dcf9f915)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "U4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Female") (at 203.2 67.31 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 3ffaeb43-d11d-4b74-a8e6-d41561a4e20c) + (property "Reference" "J9" (at 203.9112 66.6496 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Conn_01x01_Female" (at 203.9112 68.961 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_4.0x4.0mm" (at 203.2 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 203.2 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e67c2b87-e832-432d-b694-6f78efa8800f)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J9") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 129.54 153.67 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 40be89a0-c7e8-4015-91ba-311cf3539812) + (property "Reference" "C3" (at 132.461 152.5016 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "220n" (at 132.461 154.813 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 130.5052 157.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 129.54 153.67 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6d7f9f61-d321-410b-92cf-2dfa43f3553e)) + (pin "2" (uuid c09d76f8-1ac7-4037-b607-f754a1e84aa2)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 133.35 139.7 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 410ff65d-03be-4332-bde2-3e65b5bae208) + (property "Reference" "#PWR018" (at 133.35 135.89 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 133.35 144.78 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 139.7 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 139.7 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8a84718b-122b-41e2-a98d-764a246fd6da)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR018") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "cesco:STM32G431KBTx") (at 104.14 127 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 4903cad6-3e69-4119-a498-17f872ef7a76) + (property "Reference" "U2" (at 104.14 125.73 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "STM32G431KBTx" (at 104.14 128.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_QFP:LQFP-32_7x7mm_P0.8mm" (at 102.87 115.57 0) + (effects (font (size 1.27 1.27) italic)) + ) + (property "Datasheet" "" (at 104.14 127 0) + (effects (font (size 1.27 1.27))) + ) + (pin "1" (uuid 7d1edce7-86d0-48e2-b880-577ef43e92e4)) + (pin "10" (uuid 80ff7688-1fc2-4d34-9bd1-31b9aae966f9)) + (pin "11" (uuid cdb96ba8-f75e-4cb2-81c7-dbae313e1d7a)) + (pin "12" (uuid 6f69c65d-8b82-4ca9-bb81-ece12d3e6487)) + (pin "13" (uuid 226b4f15-0c76-4fe3-a2d3-178ba0ffceb2)) + (pin "14" (uuid b82e2cf2-8eb7-4f62-a821-b096a6839e2d)) + (pin "15" (uuid cca9b248-9ea0-45bd-a92d-979db7650364)) + (pin "16" (uuid 06093ca6-0425-4258-8e57-1dc00e961bb7)) + (pin "17" (uuid 68363a0d-5289-435d-a122-6b56f6549258)) + (pin "18" (uuid 592f8974-03a1-427f-850d-96fcd0bf87d4)) + (pin "19" (uuid 37a80b17-f538-4dc6-aa1e-46497b1905ea)) + (pin "2" (uuid ddc8869f-beeb-40de-bc70-431995957b1e)) + (pin "20" (uuid d25b7857-0355-4346-a53b-336eef5f8c4c)) + (pin "21" (uuid ae04c852-1a43-4113-8e9b-7c97876e1432)) + (pin "22" (uuid 4ef75ba0-82c0-432a-bf8b-201c79e0c784)) + (pin "23" (uuid 9966851b-7ede-4df4-82f8-299f12c96292)) + (pin "24" (uuid 2f7158c5-93f7-46af-b843-5b96411c288d)) + (pin "25" (uuid f0c12db0-8f15-41e4-bbf7-070ab92af9b0)) + (pin "26" (uuid fbfdc208-51d2-427f-a2f9-5624744a34ee)) + (pin "27" (uuid b13977ea-b974-41f5-9309-88c746b45549)) + (pin "28" (uuid a7949cff-e967-4781-9a37-b8f43c7ead55)) + (pin "29" (uuid f6da4e25-e8fb-45de-acc0-ea543200d7dd)) + (pin "3" (uuid 41971f6b-bcc5-4654-bdfc-5e5ec01c593a)) + (pin "30" (uuid 78e997ca-5026-4d69-adf0-3c31133f9d69)) + (pin "31" (uuid 0f555648-9f08-4470-bccd-27aa43ffd2fd)) + (pin "32" (uuid 3f010417-0b72-4eb0-99ee-80ebf2fdad1e)) + (pin "4" (uuid ff3e8ca4-5bd2-439f-bd76-e22227e701e1)) + (pin "5" (uuid 46d8b4c4-ddeb-4bb3-96ca-7ca8128b2bfa)) + (pin "6" (uuid 060e84ac-fbc1-48ea-bfef-307fa2ca7281)) + (pin "7" (uuid 0165fdf1-497c-4cf6-a372-a4f50002d5e2)) + (pin "8" (uuid 7449906e-698c-46c7-b931-6834bd03e52d)) + (pin "9" (uuid 4779e6d1-ffc0-40bf-a031-f4ef13c862a9)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "U2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Diode:BAT54SW") (at 30.48 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4b480bd0-0bde-4226-ae92-67a74b9f306d) + (property "Reference" "D1" (at 30.48 148.59 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "BAT54SW" (at 30.48 151.13 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-323_SC-70" (at 32.385 151.765 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/BAT54W_SER.pdf" (at 27.432 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 805c68ec-8094-4840-b69c-c7ce1187d26b)) + (pin "2" (uuid 692d72f2-9184-4fb5-80cc-b13ddbb0de9b)) + (pin "3" (uuid 3b953ee1-c36a-4bd2-b509-214085684dba)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "D1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 139.7 76.2 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 4cb7ccca-9554-4020-9406-885324790877) + (property "Reference" "R3" (at 141.478 75.0316 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "4k7" (at 141.478 77.343 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" (at 137.922 76.2 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 139.7 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 02171359-5263-479f-826e-52179dc57d22)) + (pin "2" (uuid 5cb615cb-3732-4bd4-9ea1-a7aabe9b4fa4)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "R3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 176.53 105.41 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 531e6431-0454-463d-8f99-44ce682b64c0) + (property "Reference" "#PWR031" (at 176.53 111.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 179.07 106.6799 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 176.53 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 176.53 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a373d9e2-3e7b-484c-afec-868eab46d8a7)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR031") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x05_Female") (at 26.67 133.35 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 53a38bb8-37b8-4242-9806-602da2c4ebed) + (property "Reference" "J1" (at 27.305 123.19 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "ModuBus" (at 27.305 125.73 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Vertical_SMD_Pin1Left" (at 26.67 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 26.67 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1f5e0564-1f79-46ed-9cc7-5329821b6042)) + (pin "2" (uuid c84a81c5-5472-4d0d-958f-30c1888345ee)) + (pin "3" (uuid 5d70b201-bcab-41b2-b84f-889be16ac0a6)) + (pin "4" (uuid e82d4765-282b-4b72-be1a-2895cffaa651)) + (pin "5" (uuid eb39d185-cb95-4d57-9c2c-a2d46138c6ea)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 163.83 40.64 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 55312aa3-1d44-40ca-a88d-0efabb443032) + (property "Reference" "C4" (at 166.751 39.4716 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "220n" (at 166.751 41.783 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 164.7952 44.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 163.83 40.64 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 28d29d79-a95e-43cd-b1c3-1c763dcddff1)) + (pin "2" (uuid 8a3990e1-3cd6-42c0-99f1-c4447886bdfb)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 60.96 104.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 61c86e75-5a70-4042-be4a-8794772cee9f) + (property "Reference" "C1" (at 63.881 102.9716 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 63.881 105.283 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 61.9252 107.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 60.96 104.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e009dd49-ca9a-418b-b7b0-4d05ab5bfb0a)) + (pin "2" (uuid 7afd13a6-f568-4958-8dc2-33d4ede88b88)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 83.82 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6385a02d-788c-40dc-852a-653451580e24) + (property "Reference" "#PWR05" (at 83.82 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 83.82 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 83.82 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 83.82 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 918e4056-61d0-42a9-a619-5dc4c82175e5)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR05") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 163.83 44.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 65158102-3264-40fd-bd0c-bb6a78117ba0) + (property "Reference" "#PWR024" (at 163.83 50.8 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 163.957 48.8442 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 163.83 44.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 163.83 44.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7558989e-b6e7-472a-b6b4-d405b35ffc4d)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR024") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 134.62 71.12 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 65f93bdd-0962-4132-8059-e19043c3e370) + (property "Reference" "#PWR019" (at 134.62 74.93 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 134.62 66.04 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 134.62 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 134.62 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 491c6c08-ed2f-4e5b-b81c-6e11103b55d2)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR019") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 189.23 105.41 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6f9a0070-7bff-4be1-81aa-8efe5d3799e9) + (property "Reference" "#PWR032" (at 189.23 111.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 191.77 106.6799 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 189.23 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 189.23 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 914f4f24-8489-4c37-8707-5d7a037c8ca5)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR032") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 142.24 120.65 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 70b5680f-acbd-411c-bca1-64f1bd5a3b59) + (property "Reference" "#PWR0101" (at 135.89 120.65 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 137.8458 120.777 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 142.24 120.65 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 142.24 120.65 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9daf7d7f-9148-4bee-a132-793e4ff19125)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR0101") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 68.58 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 735f3ae6-3574-48e3-b79c-a461763281e7) + (property "Reference" "#PWR08" (at 68.58 158.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 68.58 146.05 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 68.58 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 68.58 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5e0e88c4-c7ea-4428-84e0-0af6c3be71af)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR08") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 102.87 173.99 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 75fee757-4b6e-48b9-abad-0511a0b49396) + (property "Reference" "#PWR0103" (at 102.87 177.8 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 105.41 172.7199 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 102.87 173.99 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 102.87 173.99 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 15bdffbd-6511-4beb-8dd3-1cad5036b4fb)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR0103") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 157.48 105.41 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8195725b-04e5-47fb-bd40-9a02fcc441d1) + (property "Reference" "#PWR028" (at 157.48 111.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 160.02 106.6799 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 157.48 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 157.48 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 611a2612-69bb-4ff4-beee-a424ebf1648c)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR028") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 142.24 135.89 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8db3adc5-9e26-4da0-a032-b4c3817e0836) + (property "Reference" "#PWR022" (at 142.24 142.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 144.78 137.1599 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 142.24 135.89 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 142.24 135.89 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ceb33014-533d-4313-b5d9-0599188325e1)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR022") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x15_Male") (at 147.32 118.11 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 92a6428d-e324-4976-b1ea-1d7a1c7ed2f5) + (property "Reference" "J4" (at 148.59 116.8399 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "TOSTA_USB_JTAG" (at 148.59 119.3799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_Vertical_SMD_Pin1Left" (at 147.32 118.11 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 147.32 118.11 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bfbbb15c-3e1e-4844-ab43-e4a999bca69f)) + (pin "10" (uuid 178c9891-f79f-4aad-b881-c9e069e87b54)) + (pin "11" (uuid a71838bb-2956-445d-b701-26d8b4708b50)) + (pin "12" (uuid 3f584043-2fd7-4ec4-9f70-e18e4016a597)) + (pin "13" (uuid 882b77f0-cca7-42c4-8402-4f02ee75f92e)) + (pin "14" (uuid 91d38928-a17c-444b-920b-1acb17c3ea01)) + (pin "15" (uuid b7182db0-e253-4f66-b6b1-b4f79db1f106)) + (pin "2" (uuid be340f6e-0dc8-46bf-8a69-ed2222f759c6)) + (pin "3" (uuid 13a84796-0ee5-4bf7-a8da-56590bc2b928)) + (pin "4" (uuid f3596037-1a5b-4844-9883-0aacb9de4668)) + (pin "5" (uuid 89c20f5a-3624-45cc-b567-308a31edbb67)) + (pin "6" (uuid 1ae74460-1c00-45a3-9451-f89eb9036201)) + (pin "7" (uuid 5a579d48-d081-49fb-8f8f-d04774ee6947)) + (pin "8" (uuid ab8d48b8-28ce-462d-91c5-aefec1dcf42b)) + (pin "9" (uuid 8f089cbc-f9f5-4a7f-a1bd-7329a372306c)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Memory_EEPROM:M24C02-RMN") (at 118.11 71.12 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 99e2a637-41cb-4383-8794-f323a8b8ffe5) + (property "Reference" "U3" (at 120.65 68.58 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "M24C02-RMN" (at 118.11 73.66 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (at 127 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.st.com/content/ccc/resource/technical/document/datasheet/b0/d8/50/40/5a/85/49/6f/DM00071904.pdf/files/DM00071904.pdf/jcr:content/translations/en.DM00071904.pdf" (at 105.41 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c067ebcd-423c-498d-8ac6-d81a67370b6c)) + (pin "2" (uuid 84eeddc5-ab60-4bee-afc5-35ad965d164c)) + (pin "3" (uuid 807b2979-d01a-41da-8078-6a55d7f93277)) + (pin "4" (uuid b5a3f072-c5c8-44d4-b70b-0b52c3e135ee)) + (pin "5" (uuid 34aed727-8f24-4e23-8ac2-b96a1d78d273)) + (pin "6" (uuid 790126d8-a852-4e06-bbb2-a468a8eac24e)) + (pin "7" (uuid 25745117-0413-4bbf-bba4-3c63974b09dd)) + (pin "8" (uuid c4d8d187-e1d2-4f9a-90ca-86c9d15b328b)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "U3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 38.1 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 9c0f2d35-d1f2-4ddf-a230-f9466c51b16a) + (property "Reference" "#PWR04" (at 38.1 158.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 38.1 146.05 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 38.1 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 38.1 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 05843165-d225-4361-9f9a-d1cfe108c5de)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR04") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Female") (at 203.2 34.29 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 9e8aa448-3a19-4b99-bdcc-670bd787e7b2) + (property "Reference" "J8" (at 203.9112 33.6296 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Conn_01x01_Female" (at 203.9112 35.941 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_4.0x4.0mm" (at 203.2 34.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 203.2 34.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 88bb1ff4-178a-48bd-a7df-e30e8a4259b6)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J8") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 88.9 100.33 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a256ab6a-368f-4e08-aaeb-731228167487) + (property "Reference" "#PWR010" (at 88.9 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 91.44 99.0599 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 88.9 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 88.9 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d700c5d8-1144-4569-8274-8a343184a26b)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR010") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 163.83 73.66 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid a9efa97b-d79a-4697-ba5c-5ff87df787ad) + (property "Reference" "C5" (at 166.751 72.4916 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "220n" (at 166.751 74.803 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 164.7952 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 163.83 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid fec643dd-6396-4250-8a06-af09c4ec2da7)) + (pin "2" (uuid 0398838c-4d4d-4c83-8c4f-839f80e6610c)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C5") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x08_Female") (at 97.79 179.07 90) (mirror x) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b1eb3852-85b3-447e-97c7-dfd2c1ef979b) + (property "Reference" "J3" (at 99.06 181.61 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "gatta_audio" (at 99.06 184.15 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical_SMD_Pin1Left" (at 97.79 179.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 97.79 179.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a5bd24df-d63f-4273-be44-d26454d27e4f)) + (pin "2" (uuid 62c81e0c-2dcd-4c9f-b3bf-13aa3c6ccbbc)) + (pin "3" (uuid 0af4090e-6500-469b-a3ac-20c460185a6d)) + (pin "4" (uuid 4dd38014-6440-44ae-a956-543ddb6c086a)) + (pin "5" (uuid 0ea30e52-6610-4bd4-bb0a-e593eb8e717c)) + (pin "6" (uuid 4161c912-ee97-4b43-95b5-77b8b5301e9c)) + (pin "7" (uuid db7fd52f-92e7-4685-86c2-d1ef51460a67)) + (pin "8" (uuid 37293964-de12-4165-9f03-91b0bedf0498)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 189.23 101.6 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid b54e46d6-9238-4c33-a0dd-85987baa3f40) + (property "Reference" "C7" (at 192.151 100.4316 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "220n" (at 192.151 102.743 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 190.1952 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 189.23 101.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b26be9b0-fbf2-430d-87dc-468af4799038)) + (pin "2" (uuid e721e364-c728-41a9-8881-1016289d65e8)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C7") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Female") (at 204.47 49.53 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid b5dfaae6-61f9-4bd1-9654-731df7cb71ab) + (property "Reference" "J10" (at 205.1812 48.8696 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "MOSFETGND" (at 205.1812 51.181 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_4.0x4.0mm" (at 204.47 49.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 204.47 49.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 18ff596c-8bfd-47ed-9729-da904d31ab5a)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J10") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 92.71 92.71 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b6c27a96-ec9e-4fb1-b0d0-59a1d22108d5) + (property "Reference" "#PWR011" (at 92.71 86.36 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 95.25 91.4399 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 92.71 92.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 92.71 92.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1487d7ce-1c0a-428a-9010-ff2abf5576d0)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR011") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 109.22 160.02 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b75ade58-8adb-4522-b822-c68cae5009af) + (property "Reference" "#PWR013" (at 109.22 166.37 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 109.22 165.1 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 109.22 160.02 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 109.22 160.02 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 22494176-fddf-4fd4-a2dd-29e0ff5db85e)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR013") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Diode:BAT54SW") (at 76.2 154.94 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ba1dea3a-45cd-434e-a908-22da7ac4b1b7) + (property "Reference" "D4" (at 76.2 151.13 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "BAT54SW" (at 76.2 148.59 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-323_SC-70" (at 74.295 151.765 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/BAT54W_SER.pdf" (at 79.248 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8802fb71-4ea5-425e-92af-f2b3c0444f1d)) + (pin "2" (uuid d696646d-5ce6-41eb-b8de-2021c14a0b2a)) + (pin "3" (uuid 7f9706a2-acdc-4d31-9b56-ef752d583413)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "D4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 66.04 73.66 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid bab4afa0-e578-43cf-a03f-dbe34cdf9dad) + (property "Reference" "#PWR07" (at 66.04 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 66.04 78.74 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 66.04 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 66.04 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f052ec0b-3d34-4928-a647-fcf373e2885e)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR07") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "fzzt-rescue:IXDN609PI-ixdn609pi") (at 179.07 69.85 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid c10abea4-e98e-4e1a-9885-cdd6aac50277) + (property "Reference" "U5" (at 179.07 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "IXDN609PI" (at 179.07 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" (at 179.07 82.55 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 179.07 69.85 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8b1dd372-4429-40d6-99db-08908ca0b0c9)) + (pin "2" (uuid dc4653fb-2ee5-4619-a418-366d2675b4a3)) + (pin "3" (uuid 3982ae47-e111-4dc6-8683-0d90488fc9d4)) + (pin "4" (uuid c3fdae59-520c-4fbd-b6f2-79e6543f88ca)) + (pin "5" (uuid 2cd1334d-64e9-45f7-b46e-8bfdc06436c4)) + (pin "6" (uuid 209cc7a6-5086-45c1-944f-4fcd24ad0400)) + (pin "7" (uuid 4445b979-e574-408a-a068-8b98fce53159)) + (pin "8" (uuid 6a6d8461-5293-4eed-9632-77b20f506627)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "U5") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 113.03 152.4 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid ce3ed3b9-26b0-4068-9c02-daf7e179d00c) + (property "Reference" "#PWR0102" (at 113.03 148.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 110.49 156.21 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 113.03 152.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 113.03 152.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7d8813f9-1dac-477e-951a-8eacccd85021)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR0102") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 116.84 152.4 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d10f1deb-3462-41da-972d-b07153d3cdb2) + (property "Reference" "#PWR015" (at 123.19 152.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 120.65 152.3999 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 116.84 152.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 116.84 152.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 36d27768-f05a-4c5f-a81f-a525bdec51c5)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR015") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 193.04 97.79 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d2416109-3bce-46d8-8d9b-083738ec3147) + (property "Reference" "#PWR033" (at 189.23 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 196.85 97.7899 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 193.04 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 193.04 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5ae528ec-9ff0-417c-bcca-c75fc3073262)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR033") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:VCC") (at 163.83 97.79 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d6ffe743-4a6b-4fab-9bf4-b5d30f2e746a) + (property "Reference" "#PWR029" (at 163.83 101.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (at 163.83 92.71 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 163.83 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 163.83 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 73bb3655-e7a4-4874-bf29-56f55c9e586c)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR029") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 129.54 157.48 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d8997028-a5a2-4d97-8b9b-da732a3f7930) + (property "Reference" "#PWR017" (at 129.54 163.83 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 132.08 158.7499 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 129.54 157.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 129.54 157.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 752e8c92-cbcc-4dab-a2c2-2fc0f1d5800b)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR017") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Diode:BAT54SW") (at 45.72 154.94 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid dfe6720c-c823-45d0-8b65-257861e7f330) + (property "Reference" "D2" (at 45.72 148.59 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "BAT54SW" (at 45.72 151.13 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-323_SC-70" (at 43.815 151.765 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/BAT54W_SER.pdf" (at 48.768 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 85cf24f8-a40a-45f9-9e9b-c47442e25490)) + (pin "2" (uuid 10171d11-d24e-40a2-adfc-3889309469e7)) + (pin "3" (uuid 04eb5cc5-4c93-4d5f-abbd-3844e14af20f)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "D2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Regulator_Linear:AZ1117R-ADJ") (at 176.53 97.79 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid efad2a02-4ebf-46ec-b0f4-c112b41c5bd0) + (property "Reference" "U6" (at 176.53 90.17 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "AZ1117R-ADJ" (at 176.53 92.71 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-89-3" (at 176.53 91.44 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "https://www.diodes.com/assets/Datasheets/products_inactive_data/AZ1117.pdf" (at 176.53 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8f796c26-2554-455d-ae91-4916c3a31451)) + (pin "2" (uuid 98bb7b29-be43-4206-aaa8-315012fe2683)) + (pin "3" (uuid 097577bb-baf6-4a1d-a8d3-6ba3b6470892)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "U6") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 142.24 105.41 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f03bc10e-c6dc-44bf-a012-21260163f64c) + (property "Reference" "#PWR023" (at 135.89 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 138.43 105.4099 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 142.24 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 142.24 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 52695252-3c5b-407b-9e8e-ce430623b3ae)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR023") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 33.02 138.43 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f3a0f934-e94d-4b25-aed7-9a0eac4abc7d) + (property "Reference" "#PWR02" (at 33.02 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 35.56 139.6999 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 33.02 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 210b856e-7b77-4249-9b3a-42a5f1f18646)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "#PWR02") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x06_Male") (at 67.31 184.15 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f4b4a183-d9bc-4713-9132-211ab82e1874) + (property "Reference" "J2" (at 68.58 186.69 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "GattaBUS" (at 68.58 189.23 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical_SMD_Pin1Left" (at 67.31 184.15 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 67.31 184.15 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4c6ebd85-5f57-446c-8f71-3c1bf40f080b)) + (pin "2" (uuid 2c5a0f81-b0d8-466f-8c7e-c7db92f8dbd5)) + (pin "3" (uuid b8bb6f46-adea-4402-bb98-8e0fdc2cccd6)) + (pin "4" (uuid 5ea4ffa9-18ae-42cd-b74d-ad2984248fdd)) + (pin "5" (uuid 8e765b00-bdd1-4fef-8604-c6a41e3d50bb)) + (pin "6" (uuid adf94584-a9b3-4483-a871-a43cc0b26764)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "J2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 157.48 101.6 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid f65dc182-2ca3-45be-801d-efa69dd19ec3) + (property "Reference" "C6" (at 160.401 100.4316 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "220n" (at 160.401 102.743 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder" (at 158.4452 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 157.48 101.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d42644d9-56ba-490d-bd06-83777681a878)) + (pin "2" (uuid 9b7f9176-2c2f-41fd-9e5f-99e5a723f676)) + (instances + (project "squeow" + (path "/dd809985-7087-414a-8be4-5f927ae2bdb6" + (reference "C6") (unit 1) + ) + ) + ) + ) + + (sheet_instances + (path "/" (page "1")) + ) +) diff --git a/squeow_mod/_autosave-squeow_mod.kicad_pcb b/squeow_mod/_autosave-squeow_mod.kicad_pcb new file mode 100644 index 0000000..a72ba19 --- /dev/null +++ b/squeow_mod/_autosave-squeow_mod.kicad_pcb @@ -0,0 +1,2067 @@ +(kicad_pcb (version 20221018) (generator pcbnew) + + (general + (thickness 1.6) + ) + + (paper "A4") + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + (50 "User.1" user) + (51 "User.2" user) + (52 "User.3" user) + (53 "User.4" user) + (54 "User.5" user) + (55 "User.6" user) + (56 "User.7" user) + (57 "User.8" user) + (58 "User.9" user) + ) + + (setup + (stackup + (layer "F.SilkS" (type "Top Silk Screen")) + (layer "F.Paste" (type "Top Solder Paste")) + (layer "F.Mask" (type "Top Solder Mask") (thickness 0.01)) + (layer "F.Cu" (type "copper") (thickness 0.035)) + (layer "dielectric 1" (type "core") (thickness 1.51) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02)) + (layer "B.Cu" (type "copper") (thickness 0.035)) + (layer "B.Mask" (type "Bottom Solder Mask") (thickness 0.01)) + (layer "B.Paste" (type "Bottom Solder Paste")) + (layer "B.SilkS" (type "Bottom Silk Screen")) + (copper_finish "None") + (dielectric_constraints no) + ) + (pad_to_mask_clearance 0) + (aux_axis_origin 46.9825 16.51) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros false) + (usegerberextensions false) + (usegerberattributes true) + (usegerberadvancedattributes true) + (creategerberjobfile true) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 6) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin true) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (dxfpolygonmode true) + (dxfimperialunits true) + (dxfusepcbnewfont true) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (sketchpadsonfab false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 0) + (scaleselection 1) + (outputdirectory "") + ) + ) + + (net 0 "") + (net 1 "GND") + (net 2 "unconnected-(U4-Pad2)") + (net 3 "unconnected-(U3-Pad2)") + (net 4 "unconnected-(U2-Pad2)") + (net 5 "unconnected-(U1-Pad2)") + (net 6 "Net-(R4-Pad1)") + (net 7 "Net-(R3-Pad1)") + (net 8 "Net-(R2-Pad1)") + (net 9 "Net-(R1-Pad1)") + (net 10 "Net-(Q4-Pad1)") + (net 11 "Net-(Q3-Pad1)") + (net 12 "Net-(Q2-Pad1)") + (net 13 "Net-(Q1-Pad1)") + (net 14 "Net-(J6-Pad5)") + (net 15 "Net-(J6-Pad4)") + (net 16 "Net-(J6-Pad3)") + (net 17 "Net-(J6-Pad2)") + (net 18 "Net-(J6-Pad1)") + (net 19 "Net-(D3-Pad2)") + (net 20 "Net-(D2-Pad2)") + (net 21 "Net-(D1-Pad2)") + (net 22 "Net-(D1-Pad1)") + (net 23 "Net-(C4-Pad2)") + (net 24 "Net-(C4-Pad1)") + (net 25 "Net-(C3-Pad2)") + (net 26 "Net-(C3-Pad1)") + (net 27 "Net-(C2-Pad2)") + (net 28 "Net-(C2-Pad1)") + (net 29 "Net-(C1-Pad2)") + (net 30 "Net-(C1-Pad1)") + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp 0134792b-1e2a-48a7-a29d-5d883dfcafa1) + (at 50.96 78.105 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/34aa2012-1c68-4d57-95ca-133c293530aa") + (attr through_hole) + (fp_text reference "D1" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e3cbea0c-3e3c-4c91-bd43-134aefdd0b3b) + ) + (fp_text value "D_Schottky_x2_ACom_KAK" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b07c43bc-2dc9-40f9-b67c-733c12c28e89) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5e18aa30-42c6-4779-b0a4-198e1d2e7920) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1280474a-d464-4628-ac8a-ba042b748218)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 2758f51d-88e4-4a26-84e9-468c10e23893)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 24384664-1687-4ac0-b427-039bea4352d1)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 56c6d66b-7881-437d-bd78-ddbe778a837b)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1e51a8eb-6b78-4968-8de7-1c5c6b641502)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 46bf5099-aec9-425d-8b68-7b96afaa808e)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f2734a8f-a8d8-4c8c-b519-ec774889b5c1)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9455c583-9e9d-48e5-8402-f710adc30ae9)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 75a2c46e-9c38-482f-9172-eb3ab9aa58bd)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 37707259-b10d-4ea4-bb47-568b4aca40dd)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp edb06c86-1504-4d02-80ea-e81f4b54a65b)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6d1443db-7dd1-4e9a-a04f-c6b98cb23bd6)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 01db896a-4bda-4675-9782-46df674fb533)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8b3e527d-8d66-4991-8d2b-1a8326be1a0d)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 66d08652-6a53-4787-8021-6373e88d8726)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ecd04929-5506-4809-8eb1-c0236b3280e6)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1854b995-84f6-4b14-8acc-96ea4383d78f)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a2303ea9-3693-4829-a0a0-a961b59990ae)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b1b0ba7c-8cf3-47b5-a767-3d16a01a6b79)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bc94777e-87c2-4bf2-afd0-cbbf2a77260d)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0d2e892c-cb1d-436b-864e-0a7d83672a6e)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e2ca9b92-3f8c-489c-a05e-d7f325c8a050)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp 6c382f61-70e9-4ffe-9fc0-93b057466a6f)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp 5ad2c2ff-9091-4864-b93d-fa98dba663cc)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 22 "Net-(D1-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 1fd42927-ed8d-4a5f-8eee-0e4e0bc7ab81)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 21 "Net-(D1-Pad2)") (pinfunction "A") (pintype "passive") (tstamp a0ff0e29-8c3d-4fdd-982b-49de8517f75a)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 29 "Net-(C1-Pad2)") (pinfunction "K") (pintype "passive") (tstamp 3543b231-1dc8-46db-b9ef-2708e19c1568)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_D4.0mm" (layer "F.Cu") + (tstamp 064ca189-16b6-4691-bae0-eb00c29e37cf) + (at 55 53.975) + (descr "SMD pad as test Point, diameter 4.0mm") + (tags "test point SMD pad") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/6d3f0d01-965d-4fe9-a041-9c00fe7ab86b") + (attr exclude_from_pos_files) + (fp_text reference "J3" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 587963ac-a622-4e94-9962-d8b2f25a7a96) + ) + (fp_text value "Vrail" (at 0 3.1) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 2ef93c45-83c8-402b-8110-d5f21bd44c19) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4528a258-c607-447b-b0b2-68270459cbba) + ) + (fp_circle (center 0 0) (end 0 2.25) + (stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp 7f2d40d6-f552-4c88-9613-243ecbbfee1b)) + (fp_circle (center 0 0) (end 2.5 0) + (stroke (width 0.05) (type solid)) (fill none) (layer "F.CrtYd") (tstamp 0dda22fd-1168-449d-a3e4-e726665405a8)) + (pad "1" smd circle (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 20 "Net-(D2-Pad2)") (pinfunction "Pin_1") (pintype "passive") (tstamp 996b87b5-ad28-48c1-aaa7-866aa525fba3)) + ) + + (footprint "Package_SO:SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm" (layer "F.Cu") + (tstamp 07180bcb-243a-4aa3-98f7-cd5e27d49a9b) + (at 62.23 45.72 180) + (descr "8-Lead Plastic Stretched Small Outline (SSO/Stretched SO), see https://docs.broadcom.com/cs/Satellite?blobcol=urldata&blobheader=application%2Fpdf&blobheadername1=Content-Disposition&blobheadername2=Content-Type&blobheadername3=MDT-Type&blobheadervalue1=attachment%3Bfilename%3DIPD-Selection-Guide_AV00-0254EN_030617.pdf&blobheadervalue2=application%2Fx-download&blobheadervalue3=abinary%253B%2Bcharset%253DUTF-8&blobkey=id&blobnocache=true&blobtable=MungoBlobs&blobwhere=1430884105675&ssbinary=true") + (tags "SSO Stretched SO SOIC 1.27") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/6b993f44-9809-4ab0-ba6c-69600c51226b") + (attr smd) + (fp_text reference "U3" (at 0.1 -3.265) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0ffdcd23-190c-406f-8796-0231a5dfd359) + ) + (fp_text value "UCC23313" (at 0.05 3.385) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ba6844ba-c309-4d63-ad44-c6142c287819) + ) + (fp_text user "${REFERENCE}" (at 0 -0.065) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp a20359b2-3903-4b7d-994d-75e249c0e4fa) + ) + (fp_line (start -3.55 -2.465) (end -3.55 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a7b61e43-73ee-4c3e-a9f9-65129227e7eb)) + (fp_line (start -3.55 -1.8) (end -5.3 -1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e206c237-7925-4f31-b8cc-8b8aca5888cd)) + (fp_line (start -3.5 1.785) (end -3.5 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ee427d55-6234-4f42-8cf8-aae144a13e4b)) + (fp_line (start -3.5 2.435) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c42468f2-41db-4dab-8d69-fe2ce169151a)) + (fp_line (start 3.5 -2.465) (end -3.55 -2.465) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 73473acb-0463-48a5-a4e3-52cbe6c5f522)) + (fp_line (start 3.5 -2.465) (end 3.5 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp cf9d9942-246a-43ac-bd78-d6da1eb40d5e)) + (fp_line (start 3.55 1.785) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 086cf38f-cebe-4608-aa3a-795efa4f09a8)) + (fp_line (start -5.6 -2.56) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 69c25bdf-e74c-4391-894e-4bee948851e1)) + (fp_line (start -5.6 -2.56) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3ae97d42-7742-47b1-9056-fda311838746)) + (fp_line (start 5.6 2.54) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 298c1ff8-81ff-4cb9-bc3f-bc5c2de5fcd0)) + (fp_line (start 5.6 2.54) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 17a15af0-f872-40fb-a5f2-e02dfdf41b61)) + (fp_line (start -3.4 2.285) (end -3.4 -1.265) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 2812461e-5d71-45f0-8e69-c198ce3e4063)) + (fp_line (start -2.3 -2.315) (end -3.4 -1.215) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 6219c2a2-51a9-41cd-b60d-34f9d404254f)) + (fp_line (start 3.4 -2.315) (end -2.3 -2.315) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp a809f7eb-9c5e-453b-a414-6230b72e2b1b)) + (fp_line (start 3.4 -2.315) (end 3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 64b35d4c-fbf2-4452-a600-0d7287274968)) + (fp_line (start 3.4 2.285) (end -3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 001d40bd-c4e0-4b9b-9bb3-d949110308aa)) + (pad "1" smd rect (at -4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 7 "Net-(R3-Pad1)") (pinfunction "A") (pintype "passive") (tstamp 94d1693e-7c7c-4011-93c5-5217d3f06e03)) + (pad "2" smd rect (at -4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 3 "unconnected-(U3-Pad2)") (pinfunction "NC") (pintype "no_connect") (tstamp af5a3493-bb45-4029-b7da-61c71b4a90f9)) + (pad "3" smd rect (at -4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "GND") (pinfunction "C") (pintype "passive") (tstamp 5dd065ba-351d-4405-b861-edaaf483efc5)) + (pad "4" smd rect (at 4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 25 "Net-(C3-Pad2)") (pinfunction "VEE") (pintype "power_in") (tstamp 6d2ce772-cb84-4cbd-b63c-17a25ad069d0)) + (pad "5" smd rect (at 4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 11 "Net-(Q3-Pad1)") (pinfunction "VO") (pintype "output") (tstamp 342a5963-ad54-4fd5-aa27-052e7364623d)) + (pad "6" smd rect (at 4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 26 "Net-(C3-Pad1)") (pinfunction "VCC") (pintype "power_in") (tstamp 0d5c140c-93cd-4671-ad98-e79c2c9e34e1)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp 08e0a802-a54b-442f-a08f-1ec59df5f42a) + (at 50.96 45.72 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/0d61e049-a1cc-43d3-bace-605701fbf208") + (attr through_hole) + (fp_text reference "Q3" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 244d1ad9-b197-4a57-b87f-5fc20c6cc260) + ) + (fp_text value "IRF540N" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ad69574d-324e-4acc-b01b-87bb830d8bca) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c1942837-af42-4cc1-8a69-60adc4750ed5) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4072f1d1-1c5b-4175-9883-c16c0678365d)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5f5b0cce-847e-4ec2-99e8-5e23a27ea9a3)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6e83bebd-c026-4192-9db7-d3e17bf7486c)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp dfffef38-2045-479a-aa44-2909b232fa6b)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5dad9623-8779-4bac-a8e4-0f39c6e75189)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 594195fd-c4ce-4a82-a40b-ea46184dc92e)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4f1f67c0-7171-427d-a963-6588b05dcba6)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6bb4f794-4cf6-40b0-8f72-12026af53926)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp dba9052f-5809-4d32-a61a-7eadb6ac0d6a)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 266ec22a-44ce-4e15-979a-2ca1af8eb165)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d7579216-a7e1-4c4f-938b-9c7c1b9450b6)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 37be10e0-eca0-49dd-bb55-9f285e0e968a)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fa14d27a-e090-476e-a430-595ea34f2c41)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cbf9234d-3a4e-4422-87b7-750ad8aa2a11)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 52c4de90-3a03-4a02-92d1-f4350575810e)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 15c30325-5bc7-4fa3-8b00-dbb7143684d1)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b0e37dd8-ed33-40cf-a524-905c798240b2)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0d2f6d16-c7c5-4756-ad9c-f8fa4eb4179b)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e6b87b87-19de-464f-bbcb-77ac5d06ac1a)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d7455fb3-fa19-42ec-955d-0ec35b4e4620)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4b98abdb-edcc-4829-8287-8602f542ce22)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d0bb3619-1d0b-4f18-9ffb-aecccedf27b6)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp f69d4d6e-3bdb-4541-8022-2418a761679b)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp f4a2123a-5f9c-4130-ab38-b81e4ec5416c)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 11 "Net-(Q3-Pad1)") (pinfunction "G") (pintype "input") (tstamp 026cbaf3-52af-4b23-afef-55d5efe82292)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 27 "Net-(C2-Pad2)") (pinfunction "D") (pintype "passive") (tstamp e428abd2-ded7-457d-b9cf-7de4d6a426a3)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 25 "Net-(C3-Pad2)") (pinfunction "S") (pintype "passive") (tstamp b2bd6327-8355-423a-b6b5-0ee8906e35a8)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp 155b276b-c973-4ce9-9f73-d1783a8ad9df) + (at 50.96 34.925 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/103c19ff-f952-4a8e-8808-6443742e17dc") + (attr through_hole) + (fp_text reference "D3" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 70bcceca-1e2e-4179-9af7-27bac1f2e8e5) + ) + (fp_text value "D_Schottky_x2_ACom_KAK" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 104596e8-99bc-4abd-8ade-0869551562b4) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e8291a78-10f1-46a1-a970-58296236130d) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 2f8f487d-1f6d-43ea-bc44-9336e070edb8)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ca2e4e77-82f7-4802-8227-f7845503dbd7)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a209be30-a79a-45da-950b-65ff43d30e07)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0714b3ff-7377-40ca-be87-76d6f184388f)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp af7422e3-4805-4023-8aa6-175e9a456a4f)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 475ec497-fedb-4f03-9e26-6f2a9eaa7e12)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3986f4ab-2840-46d3-8ae8-d8c073398faa)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 033cf201-5b0c-4bf5-a6e1-b4f1e8105abd)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 14deaf3b-5c9c-434c-9e64-adda854f848f)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f41e2ff1-b5f6-4bf8-b2f4-af3fb8c76658)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0268ac4a-f8c1-42d8-b983-cb48439836d1)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bb708fc5-d849-46b8-a863-ca5781db28b2)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5135795c-5c10-4e6f-9cfd-55d4a4dd8aa0)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 907974fa-acda-4c61-8609-1767e13b8dc3)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fc103442-c35b-4f40-9b0b-1ca2a24f0738)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 13fccc96-e4e9-4b11-8aa8-f0090cd8155d)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 901de756-1dc8-4a95-b306-b63fc1cf58d1)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 223e933f-232e-44cc-aa2e-4c3038de432d)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9664dde9-97de-438f-befb-6b9d7b842886)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5ab5af88-3bf6-44df-a774-0a628dcd86a6)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1be204dc-3319-40ac-8058-57ab7adae2f6)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 271e9d90-4dda-4c1c-a358-33b9d96f400d)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp 15a163a4-dd3c-47ca-ba18-dbd9bbe57f2e)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp 119cc021-b26e-4209-bb5b-4cacc3f13982)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 20 "Net-(D2-Pad2)") (pinfunction "K") (pintype "passive") (tstamp 68711c1d-a710-4c6d-865c-e0a1244a80bc)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 19 "Net-(D3-Pad2)") (pinfunction "A") (pintype "passive") (tstamp 0e6b4af1-74ea-4109-91d0-14740826b4c9)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 25 "Net-(C3-Pad2)") (pinfunction "K") (pintype "passive") (tstamp d382d052-17d6-497e-bbc1-50c130216d14)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder" (layer "F.Cu") + (tstamp 236cba4d-4807-4f56-ae75-bc38ce4a6c34) + (at 66.04 55.245) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/b22770e1-2648-4c8d-b87d-ef343367423e") + (attr smd) + (fp_text reference "R3" (at 0 -1.82) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d8dfb146-e504-403c-9a97-15e41a879078) + ) + (fp_text value "220" (at 0 1.82) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp fffbcea0-42a3-4de9-a6c8-53dc28efe808) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 607040c7-c820-47bd-8743-924eacb648fb) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a11ebb11-63df-4d7c-ac72-48ea9058bb7a)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 52fa3a05-7d69-4f8d-863d-0e81bddd93c0)) + (fp_line (start -2.45 -1.12) (end 2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5ca178ac-7c6c-4bc0-8f96-be11aa3caab6)) + (fp_line (start -2.45 1.12) (end -2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9cc34fda-40ee-4ddd-b3d9-3300542cb50a)) + (fp_line (start 2.45 -1.12) (end 2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp aca439ef-ae42-4274-addc-9fed401b8c3e)) + (fp_line (start 2.45 1.12) (end -2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 46777f40-90b8-4dc9-826d-ead7c88c83d9)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 12d1378a-22c2-408f-9bcc-0b5773a55be3)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 03e054b3-a3a6-4aef-b6d5-74d170891428)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8aeb544b-c91d-46d0-a47b-7377d062de64)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 65c5b9df-4b90-49b7-b7d4-59d218dc724b)) + (pad "1" smd roundrect (at -1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 7 "Net-(R3-Pad1)") (pintype "passive") (tstamp 88442e5f-5978-4e63-b0e9-ac21ac88bba8)) + (pad "2" smd roundrect (at 1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 16 "Net-(J6-Pad3)") (pintype "passive") (tstamp c566ef56-bf43-4a3b-b1d5-77f911700680)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp 34542926-7590-4d8e-b130-268f2cd652ce) + (at 50.96 56.515 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/64948c2c-60ab-4071-b2db-801b68debbc6") + (attr through_hole) + (fp_text reference "D2" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 254638cc-6d34-4755-9fe0-1d3325a783f0) + ) + (fp_text value "D_Schottky_x2_ACom_KAK" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d4a2051d-93b6-480b-87bb-ff7be67e8023) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp a13cab7f-b57a-43fe-a3e7-3b903dc3defc) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 592e5bd6-01ee-438a-ae77-bde572e9cdfd)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1dc36414-f65a-47b5-b923-d485a3054496)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 831ef416-ca88-4eeb-b6e9-89fef542ebb2)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 32d52f3e-0460-4048-93d3-a4dedd7b159b)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 388ce84c-bedc-4c29-b1c3-8e5cb89ddd0a)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp cd99407a-00b3-4380-91d5-74de41a74e10)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 04375c67-1dd9-48a5-965b-17e37c0adefb)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 216eec76-26bd-4ac6-8a0a-eea04db2ccc5)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9ed62a8b-b179-439f-9f44-fc2abf8085d1)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d931cbaf-b29a-480d-a39a-fb25b8f44ed2)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8fd0158e-0d9f-4be2-b451-99aa15397779)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e7b826e6-d7e8-46d9-a7bb-2ec9398940f3)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e74d7087-f41f-43d9-96ba-11cab9ce3803)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0d63e045-24f2-4d2d-a227-41d4744be147)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3f94b805-c0d5-4c01-9cca-2a6c467cac2a)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8e12b4b5-5a5c-4616-89e6-3eb36abc57c3)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 111c51b1-92b4-4eff-835f-ac49724bcc2c)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 42192c9e-60ee-436d-9f74-d1992ca8ba83)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 38fdc61d-4197-41f9-8d5f-e113672937d8)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9fc00cc8-996c-48fd-91d6-c68df330a708)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 030dd199-a669-465e-af14-f475ca690f7a)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9f112a52-bb9a-43ff-8b96-c2de319945ce)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp 11c1f3ba-0648-4fc0-869f-bba9656d23eb)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp 1e214a4c-22d7-429c-8a0b-06e5384574cb)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 21 "Net-(D1-Pad2)") (pinfunction "K") (pintype "passive") (tstamp 6e38c492-2714-4a47-9186-8454b83b1658)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 20 "Net-(D2-Pad2)") (pinfunction "A") (pintype "passive") (tstamp 65b8e643-8099-4abe-9292-fae36848c236)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 27 "Net-(C2-Pad2)") (pinfunction "K") (pintype "passive") (tstamp 242d7af2-5c9b-48cc-abd5-fc4dedac9e68)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1812_4532Metric_Pad1.57x3.40mm_HandSolder" (layer "F.Cu") + (tstamp 380e6c3d-42fd-48b3-b4b0-46f3d0a61210) + (at 54.61 67.31 90) + (descr "Capacitor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/b8d86064-8231-4a32-a836-0812f376effb") + (attr smd) + (fp_text reference "C2" (at 0 -2.65 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7304b172-6116-4493-a877-3e987779413f) + ) + (fp_text value "1uF" (at 0 2.65 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 2483ef18-3a66-4572-9917-cf285917a76c) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8677ddd2-1d0d-4911-bf6c-a9f334533289) + ) + (fp_line (start -1.161252 -1.71) (end 1.161252 -1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8b4a5bae-9cfb-4b1a-9635-19735a6017ba)) + (fp_line (start -1.161252 1.71) (end 1.161252 1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5009cc08-822c-4ae4-942b-e5c0ae7bd3f5)) + (fp_line (start -3.18 -1.95) (end 3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 67003e2e-22ea-4f22-b32a-75128bf98bc5)) + (fp_line (start -3.18 1.95) (end -3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp da1637a1-d2e8-4c7f-9977-5d0ba6eba38f)) + (fp_line (start 3.18 -1.95) (end 3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2105787c-4d0e-4eac-8b3b-7e9fed129bcc)) + (fp_line (start 3.18 1.95) (end -3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e8704a19-b7c3-44a2-a1e2-97751a9b079e)) + (fp_line (start -2.25 -1.6) (end 2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b05bf438-cf55-4249-9493-3e2ff83978c3)) + (fp_line (start -2.25 1.6) (end -2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 14fa4467-70f7-4424-a13c-3561aa4775a2)) + (fp_line (start 2.25 -1.6) (end 2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 84889299-d82c-46df-9c86-e4f70810a814)) + (fp_line (start 2.25 1.6) (end -2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c3ed7613-1e69-4fd3-b305-053b1e91c355)) + (pad "1" smd roundrect (at -2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 28 "Net-(C2-Pad1)") (pintype "passive") (tstamp 76ce3683-e7b2-4924-93be-ed621369fed3)) + (pad "2" smd roundrect (at 2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 27 "Net-(C2-Pad2)") (pintype "passive") (tstamp 5660b9c4-33db-4ef2-87f4-66c90b5abfdd)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1812_4532Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1812_4532Metric_Pad1.57x3.40mm_HandSolder" (layer "F.Cu") + (tstamp 4060cd7d-0607-40d9-a62a-f67818471c63) + (at 54.61 24.13 90) + (descr "Capacitor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/9ae6bedd-433b-4493-89c7-3cd9212b806f") + (attr smd) + (fp_text reference "C4" (at 0 -2.65 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 61c3fbe2-6643-4f7d-8a57-2e51e0591463) + ) + (fp_text value "1uF" (at 0 2.65 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b9dce5de-8266-4f6c-a4c3-c2f94d7b5490) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d0a70ce9-dddb-4c59-a233-4109ce8fe632) + ) + (fp_line (start -1.161252 -1.71) (end 1.161252 -1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 94759f03-015e-48ce-b046-10614a0cf873)) + (fp_line (start -1.161252 1.71) (end 1.161252 1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1218dd94-7fb5-47e2-b349-50b001e98d9c)) + (fp_line (start -3.18 -1.95) (end 3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2f375179-01e7-4169-a0b4-d637968bc89f)) + (fp_line (start -3.18 1.95) (end -3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 25a8154d-6bba-40db-9e47-04df32a72d66)) + (fp_line (start 3.18 -1.95) (end 3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ec4fe1d4-c0c0-4b63-9e35-50d20949d61b)) + (fp_line (start 3.18 1.95) (end -3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a5276c0d-84e8-49d6-b62b-449c364ddebe)) + (fp_line (start -2.25 -1.6) (end 2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f5fe79f5-9277-44e9-a70b-e3c53bc62957)) + (fp_line (start -2.25 1.6) (end -2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ab6d769a-cdd9-4f96-a2f3-f7a4af9a4d5a)) + (fp_line (start 2.25 -1.6) (end 2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ebc2ba75-98ea-4ee6-bc6c-8523a2619d97)) + (fp_line (start 2.25 1.6) (end -2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f2802a12-4de6-4c9f-a208-7b83d995afb7)) + (pad "1" smd roundrect (at -2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 24 "Net-(C4-Pad1)") (pintype "passive") (tstamp 7d5841ab-5e79-4fd3-a8bf-6a2048d97f3a)) + (pad "2" smd roundrect (at 2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 23 "Net-(C4-Pad2)") (pintype "passive") (tstamp 1f53430a-3d81-41fe-92f1-a0a2812c8eaa)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1812_4532Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical" (layer "F.Cu") + (tstamp 462168a7-32c6-42c7-801d-ca46b2d804df) + (at 71.12 60.325 180) + (descr "Through hole straight pin header, 1x05, 2.54mm pitch, single row") + (tags "Through hole pin header THT 1x05 2.54mm single row") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/ea88743b-b375-4483-b60f-b0dba05dcdb1") + (attr through_hole) + (fp_text reference "J6" (at 0 -2.33) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 6a3abd79-d729-4b70-abc4-8114e37ebab3) + ) + (fp_text value "Conn_01x05_Male" (at 0 12.49) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9899c9d1-36fd-4160-b5c0-681741540ed7) + ) + (fp_text user "${REFERENCE}" (at 0 5.08 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0a130cdb-0b8a-4b3b-b604-e37e65473948) + ) + (fp_line (start -1.33 -1.33) (end 0 -1.33) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4e348fdb-40c6-4b55-988f-2e80c8bf8730)) + (fp_line (start -1.33 0) (end -1.33 -1.33) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d8c5ff68-810a-48ef-b161-a0d33b2273b1)) + (fp_line (start -1.33 1.27) (end -1.33 11.49) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 01f0bbc3-879b-45c5-a8df-9c372b135659)) + (fp_line (start -1.33 1.27) (end 1.33 1.27) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c931def2-7605-4f81-bdfc-f6f7594c1494)) + (fp_line (start -1.33 11.49) (end 1.33 11.49) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 21ecd30f-e316-4c00-94db-c7f93871453b)) + (fp_line (start 1.33 1.27) (end 1.33 11.49) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ec49d5f3-52e3-4ab3-8df5-e5a386f00329)) + (fp_line (start -1.8 -1.8) (end -1.8 11.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6cd0be82-aaa1-4351-855f-da3b097f3cbb)) + (fp_line (start -1.8 11.95) (end 1.8 11.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7b86819d-c1e9-4e11-9bad-be6ec1059ac7)) + (fp_line (start 1.8 -1.8) (end -1.8 -1.8) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 19ca4d52-f46e-4934-9f13-95d3fce8019a)) + (fp_line (start 1.8 11.95) (end 1.8 -1.8) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7343ee50-199e-48e3-9cd6-5b871aa8ee08)) + (fp_line (start -1.27 -0.635) (end -0.635 -1.27) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3c9fb010-e05d-4d99-8fd3-468956f32620)) + (fp_line (start -1.27 11.43) (end -1.27 -0.635) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 924e6779-17e6-4212-8f71-b5791743fc4a)) + (fp_line (start -0.635 -1.27) (end 1.27 -1.27) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 21cbcf9f-ebd3-459a-a5aa-656529971202)) + (fp_line (start 1.27 -1.27) (end 1.27 11.43) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c4feed95-eca1-487a-b4b8-432e7b0f62d2)) + (fp_line (start 1.27 11.43) (end -1.27 11.43) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 664cdfaa-d346-42a8-a619-c3539f5e2b4a)) + (pad "1" thru_hole rect (at 0 0 180) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") + (net 18 "Net-(J6-Pad1)") (pinfunction "Pin_1") (pintype "passive") (tstamp 60e3db67-2672-4a2d-82c9-a22afbb57405)) + (pad "2" thru_hole oval (at 0 2.54 180) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") + (net 17 "Net-(J6-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp fba5f783-6313-4f76-8a4c-322e55d83211)) + (pad "3" thru_hole oval (at 0 5.08 180) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") + (net 16 "Net-(J6-Pad3)") (pinfunction "Pin_3") (pintype "passive") (tstamp d9a45f09-1018-43a0-86ab-0f12a1148906)) + (pad "4" thru_hole oval (at 0 7.62 180) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") + (net 15 "Net-(J6-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp 7ba6b9e9-72f7-4ed6-a58f-b59908a4b13a)) + (pad "5" thru_hole oval (at 0 10.16 180) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") + (net 14 "Net-(J6-Pad5)") (pinfunction "Pin_5") (pintype "passive") (tstamp 49aefd72-8039-4941-a278-b923c390b982)) + (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x05_P2.54mm_Vertical.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_D4.0mm" (layer "F.Cu") + (tstamp 4e6772e2-68e9-4ec8-8f69-3a144566a700) + (at 55 75.565) + (descr "SMD pad as test Point, diameter 4.0mm") + (tags "test point SMD pad") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/dcede888-71fe-46c8-a547-f334235f12e3") + (attr exclude_from_pos_files) + (fp_text reference "J2" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8011f26a-966e-4d21-ad41-b2fee8b6bda3) + ) + (fp_text value "Vrail" (at 0 3.1) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1ca22912-1a0f-459e-8f62-aa4472acfaf9) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1ded3dd0-0503-4ca2-b381-17db0d3b64fd) + ) + (fp_circle (center 0 0) (end 0 2.25) + (stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp f1667fbe-2c60-497e-ad85-e6af4fe16735)) + (fp_circle (center 0 0) (end 2.5 0) + (stroke (width 0.05) (type solid)) (fill none) (layer "F.CrtYd") (tstamp d8a365be-8560-49d0-b931-1cc1bd088e03)) + (pad "1" smd circle (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 21 "Net-(D1-Pad2)") (pinfunction "Pin_1") (pintype "passive") (tstamp be26b5f9-cf18-4af0-b74c-bdfe20e52ce7)) + ) + + (footprint "TestPoint:TestPoint_Pad_D4.0mm" (layer "F.Cu") + (tstamp 50b8fd33-52bd-4eb3-bd3b-0863f1d258bf) + (at 55 32.385) + (descr "SMD pad as test Point, diameter 4.0mm") + (tags "test point SMD pad") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/2714a589-d508-4a73-a7c9-0c477ea7458b") + (attr exclude_from_pos_files) + (fp_text reference "J4" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp bd05f3fd-a169-47c9-8ba4-38caa44190b2) + ) + (fp_text value "Vrail" (at 0 3.1) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7f2f98ea-7859-45a9-bebf-9de194d082d1) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ce1f0d05-126c-4f42-81e3-7329543affdf) + ) + (fp_circle (center 0 0) (end 0 2.25) + (stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp 34e6ca43-c210-4d7b-baff-e477fed158e6)) + (fp_circle (center 0 0) (end 2.5 0) + (stroke (width 0.05) (type solid)) (fill none) (layer "F.CrtYd") (tstamp 6e173f69-75a5-48fb-80ea-634dbdb7260e)) + (pad "1" smd circle (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 19 "Net-(D3-Pad2)") (pinfunction "Pin_1") (pintype "passive") (tstamp 0d74f634-4a46-4e90-926f-5791719bf785)) + ) + + (footprint "Diode_SMD:D_SOD-323" (layer "F.Cu") + (tstamp 5463c1dd-1328-4484-9b76-26638cbbefb2) + (at 55.88 50.165) + (descr "SOD-323") + (tags "SOD-323") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/0a3e9348-2132-40e8-9662-35d174d54215") + (attr smd) + (fp_text reference "D6" (at 0 -1.85) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 13f68a44-2042-4162-a7ae-ee6892b000a0) + ) + (fp_text value "1N4148WS" (at 0.1 1.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 27744a30-fa62-461d-8802-89fb3c28486b) + ) + (fp_text user "${REFERENCE}" (at 0 -1.85) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp addb1c8a-6fd5-475b-8366-63ff919f1a44) + ) + (fp_line (start -1.5 -0.85) (end -1.5 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp abf96c63-004b-417f-8320-1446d45f9382)) + (fp_line (start -1.5 -0.85) (end 1.05 -0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9611f581-c436-4777-965a-e4520733cd96)) + (fp_line (start -1.5 0.85) (end 1.05 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6dd997ad-fb05-4e73-a3cd-6b08d4be4a6f)) + (fp_line (start -1.6 -0.95) (end -1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp bf939759-86d2-4991-8c9f-170588a94669)) + (fp_line (start -1.6 -0.95) (end 1.6 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f5802252-eb88-40a6-9985-71764496aa8e)) + (fp_line (start -1.6 0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ba6070a5-2853-4d53-862a-a9c1dd935340)) + (fp_line (start 1.6 -0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 277a91bb-6f37-4fc6-9ef6-7a582f9268f8)) + (fp_line (start -0.9 -0.7) (end 0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d659b0da-d469-47a0-b529-fc9525e200a6)) + (fp_line (start -0.9 0.7) (end -0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 78f822e5-ffa9-4e54-8696-73f35bcd539f)) + (fp_line (start -0.3 -0.35) (end -0.3 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 08391d2f-cb36-4866-be23-c73ff49d914a)) + (fp_line (start -0.3 0) (end -0.5 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3739dee9-724a-46e6-a771-8a301c81c1b5)) + (fp_line (start -0.3 0) (end 0.2 -0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fb2dfbc8-97e7-4673-a5b7-8bb94f878375)) + (fp_line (start 0.2 -0.35) (end 0.2 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e5e0efd9-62a7-4f30-90c1-f55acceea91d)) + (fp_line (start 0.2 0) (end 0.45 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 84ceef47-872c-4273-bd51-9c99564e3a4f)) + (fp_line (start 0.2 0.35) (end -0.3 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8a805154-0a10-4493-8201-a6768aa49b71)) + (fp_line (start 0.9 -0.7) (end 0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bd4e8554-6a1c-40f0-bfe9-9a94f35c7ed0)) + (fp_line (start 0.9 0.7) (end -0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 541bc26f-5171-4578-b5b9-dc2d92cead4a)) + (pad "1" smd rect (at -1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 26 "Net-(C3-Pad1)") (pinfunction "K") (pintype "passive") (tstamp cefef4e2-df30-4fd9-87ae-baa96ad36df1)) + (pad "2" smd rect (at 1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 20 "Net-(D2-Pad2)") (pinfunction "A") (pintype "passive") (tstamp 2db59cad-1790-44c4-8f12-76ed8ec40a57)) + (model "${KICAD6_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_D4.0mm" (layer "F.Cu") + (tstamp 579a02b7-18fe-48da-a9d3-961850f062a4) + (at 55 19.05) + (descr "SMD pad as test Point, diameter 4.0mm") + (tags "test point SMD pad") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/6c7744a1-d107-4098-aeda-4a0e18b23c66") + (attr exclude_from_pos_files) + (fp_text reference "J5" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 644bea4c-e7d7-491c-9d18-7b978cd5c951) + ) + (fp_text value "Vrail" (at 0 3.1) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1288a721-64c9-4957-8902-ed75fc8c46f8) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 09458b0c-9a39-4b0c-bb96-3d05d2d7da32) + ) + (fp_circle (center 0 0) (end 0 2.25) + (stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp ef4b0dc8-d1bf-4d8f-8a65-7ec4745f50db)) + (fp_circle (center 0 0) (end 2.5 0) + (stroke (width 0.05) (type solid)) (fill none) (layer "F.CrtYd") (tstamp 1623a861-d17d-4c83-a0cf-ce189f216617)) + (pad "1" smd circle (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 23 "Net-(C4-Pad2)") (pinfunction "Pin_1") (pintype "passive") (tstamp e529e155-4ec5-4a6d-9cdf-938c9accea16)) + ) + + (footprint "Diode_SMD:D_SOD-323" (layer "F.Cu") + (tstamp 5ea149ce-c08b-45c8-8601-614ff488ad27) + (at 55.88 28.575) + (descr "SOD-323") + (tags "SOD-323") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/79504c3b-fee1-4e04-94d0-83e4de817446") + (attr smd) + (fp_text reference "D7" (at 0 -1.85) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0b354613-0b73-44e6-b290-0c13af83f0d3) + ) + (fp_text value "1N4148WS" (at 0.1 1.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 142655ef-75c6-4cde-83ad-437dd8ea0e78) + ) + (fp_text user "${REFERENCE}" (at 0 -1.85) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d1626866-dc55-41f0-b4dd-0a4b52c90bdf) + ) + (fp_line (start -1.5 -0.85) (end -1.5 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 09d976b1-0d74-4a62-9c78-83d0dcde6dcf)) + (fp_line (start -1.5 -0.85) (end 1.05 -0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp eca507f5-eb96-40a6-8230-8fe094c08e2e)) + (fp_line (start -1.5 0.85) (end 1.05 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ec6e0f5d-f138-4aaf-b991-fcea5bbfd958)) + (fp_line (start -1.6 -0.95) (end -1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3080fc15-eb39-4ebb-bdab-1caede128279)) + (fp_line (start -1.6 -0.95) (end 1.6 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f974dc01-d54b-4ae7-9fb9-f3b110bf5a4e)) + (fp_line (start -1.6 0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8491d17d-5404-4b7c-8a05-2bc59be3589f)) + (fp_line (start 1.6 -0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a48c8506-b70f-42e8-a1ac-4ddc2fcaa841)) + (fp_line (start -0.9 -0.7) (end 0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ffa67015-8f37-449c-887a-779df27f82c2)) + (fp_line (start -0.9 0.7) (end -0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 81bc70f4-cc31-4d2d-9563-a207b0baecac)) + (fp_line (start -0.3 -0.35) (end -0.3 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 21385ccc-c7b8-450a-9747-d153f2a77254)) + (fp_line (start -0.3 0) (end -0.5 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bf8c41a6-4c17-499d-8073-43c9608e70bc)) + (fp_line (start -0.3 0) (end 0.2 -0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 48b6ec3a-9404-4b25-9e9c-437fb1af25c3)) + (fp_line (start 0.2 -0.35) (end 0.2 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fcd5cb79-8c2b-419b-a669-e6c1de1c1600)) + (fp_line (start 0.2 0) (end 0.45 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1bb7f379-5af7-4819-b8db-85c3a3490d11)) + (fp_line (start 0.2 0.35) (end -0.3 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 41a49a43-5c51-4f2a-8435-9c90e7f43791)) + (fp_line (start 0.9 -0.7) (end 0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b41197fa-bde5-4a41-8f46-c4218f36fc10)) + (fp_line (start 0.9 0.7) (end -0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 42c08329-aa68-4c50-984e-b2fe13b90403)) + (pad "1" smd rect (at -1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 24 "Net-(C4-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 6aaf8c2d-19b2-4ee2-8e9b-3af413c50741)) + (pad "2" smd rect (at 1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 19 "Net-(D3-Pad2)") (pinfunction "A") (pintype "passive") (tstamp 7b9a9211-774e-47c5-9d78-c0001639e370)) + (model "${KICAD6_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1812_4532Metric_Pad1.57x3.40mm_HandSolder" (layer "F.Cu") + (tstamp 638df845-dead-4768-b608-f0a829544613) + (at 54.61 45.72 90) + (descr "Capacitor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/d2387b1e-b412-4b02-8003-d9451de9b077") + (attr smd) + (fp_text reference "C3" (at 0 -2.65 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1ffde10a-d7f5-4b57-ad0a-797f639096d3) + ) + (fp_text value "1uF" (at 0 2.65 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp f14aac3d-c8ad-49a3-9058-bd08e9897b58) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 40f6d5ba-d3e5-4ada-b260-a8d96bcc753f) + ) + (fp_line (start -1.161252 -1.71) (end 1.161252 -1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0d759d2d-fb85-463c-a50e-92b9d8c7f576)) + (fp_line (start -1.161252 1.71) (end 1.161252 1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e236fe21-e530-48e4-bd2f-1e4b01f107b0)) + (fp_line (start -3.18 -1.95) (end 3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7371d0fb-f8b3-44f1-b0af-fb488536e353)) + (fp_line (start -3.18 1.95) (end -3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a544f869-36be-4651-937d-0a8f07f2dd0b)) + (fp_line (start 3.18 -1.95) (end 3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 543467c3-34d8-4e0f-8cff-c7f4e78eb7d8)) + (fp_line (start 3.18 1.95) (end -3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9d3d7746-fbb5-423e-9afa-9acf9c888087)) + (fp_line (start -2.25 -1.6) (end 2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fb6fb0cd-46cd-4d60-958e-986ab9195019)) + (fp_line (start -2.25 1.6) (end -2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 72af9104-3bbf-49ff-97fb-0ea78187c097)) + (fp_line (start 2.25 -1.6) (end 2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e58ba01d-3634-4779-8388-133c09375a3f)) + (fp_line (start 2.25 1.6) (end -2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ec6ee90c-989b-4f43-8a73-3e221124c44c)) + (pad "1" smd roundrect (at -2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 26 "Net-(C3-Pad1)") (pintype "passive") (tstamp 601a0d1c-055f-49d2-a040-0d413c6c7fdd)) + (pad "2" smd roundrect (at 2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 25 "Net-(C3-Pad2)") (pintype "passive") (tstamp 67a3b5c7-12d0-42e3-98f3-cc71f7edfb2b)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1812_4532Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1812_4532Metric_Pad1.57x3.40mm_HandSolder" (layer "F.Cu") + (tstamp 66db1ee0-bb01-454c-8e2e-5e25ffa7dfb8) + (at 54.61 88.9 90) + (descr "Capacitor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/78342f3e-150e-4758-bb17-bb08aac44f14") + (attr smd) + (fp_text reference "C1" (at 0 -2.65 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0c718d80-629f-4dc1-a708-ac99a6ff4be4) + ) + (fp_text value "1uF" (at 0 2.65 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b97d4b6d-01a4-4f1f-98d1-9290d81e26d7) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 48404b1e-6193-4c0d-b82a-e3c956c76791) + ) + (fp_line (start -1.161252 -1.71) (end 1.161252 -1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5ab7424d-7a2c-4b6b-b9fb-0df31a938546)) + (fp_line (start -1.161252 1.71) (end 1.161252 1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b63ad90e-a594-4f6a-92ad-e649b5e656f9)) + (fp_line (start -3.18 -1.95) (end 3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp faf8b046-33bf-45da-ae22-97f36ebf0672)) + (fp_line (start -3.18 1.95) (end -3.18 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 569c1c27-85da-4113-9093-be2de03339b6)) + (fp_line (start 3.18 -1.95) (end 3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9291d982-303c-4c72-a1d2-7216d8aa8b64)) + (fp_line (start 3.18 1.95) (end -3.18 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 367fed3f-d058-4e76-8d1e-d5d7a4f480c7)) + (fp_line (start -2.25 -1.6) (end 2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d76a0ffb-c0ad-46b8-b762-deb83fae5322)) + (fp_line (start -2.25 1.6) (end -2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1a15d5a2-4419-4021-811e-072dbb4e146d)) + (fp_line (start 2.25 -1.6) (end 2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6f9fe4a0-b3d3-4938-9498-8456a677dc14)) + (fp_line (start 2.25 1.6) (end -2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9f688224-0374-4644-85da-55536a79d685)) + (pad "1" smd roundrect (at -2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 30 "Net-(C1-Pad1)") (pintype "passive") (tstamp 9f2e9778-43c9-47d4-a2ce-592bc734cce7)) + (pad "2" smd roundrect (at 2.1375 0 90) (size 1.575 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1587301587) + (net 29 "Net-(C1-Pad2)") (pintype "passive") (tstamp 16702f6a-8b7f-497f-8833-01bdb30e7b7f)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1812_4532Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm" (layer "F.Cu") + (tstamp 6b0a3fd6-7a08-4cc4-bcd8-19cc36fd4d9f) + (at 62.23 24.13 180) + (descr "8-Lead Plastic Stretched Small Outline (SSO/Stretched SO), see https://docs.broadcom.com/cs/Satellite?blobcol=urldata&blobheader=application%2Fpdf&blobheadername1=Content-Disposition&blobheadername2=Content-Type&blobheadername3=MDT-Type&blobheadervalue1=attachment%3Bfilename%3DIPD-Selection-Guide_AV00-0254EN_030617.pdf&blobheadervalue2=application%2Fx-download&blobheadervalue3=abinary%253B%2Bcharset%253DUTF-8&blobkey=id&blobnocache=true&blobtable=MungoBlobs&blobwhere=1430884105675&ssbinary=true") + (tags "SSO Stretched SO SOIC 1.27") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/d1880de2-4770-45c9-9426-3250938971af") + (attr smd) + (fp_text reference "U4" (at 0.1 -3.265) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5a6e20ef-98e0-4286-ad17-e34874804e67) + ) + (fp_text value "UCC23313" (at 0.05 3.385) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 015ba8be-3a70-4f8d-a452-45a43e1727aa) + ) + (fp_text user "${REFERENCE}" (at 0 -0.065) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c6e07da2-c4f2-4362-878d-9334df94c5d0) + ) + (fp_line (start -3.55 -2.465) (end -3.55 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b2d6b2a6-5d7c-435f-8b95-378a83db3109)) + (fp_line (start -3.55 -1.8) (end -5.3 -1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e4d6c244-e91f-4d69-be06-f57690c6fea4)) + (fp_line (start -3.5 1.785) (end -3.5 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 18cc4b23-2fcb-4824-b616-c040b6056cf4)) + (fp_line (start -3.5 2.435) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 173b1d61-de4f-4117-a3a2-0852cc695dbe)) + (fp_line (start 3.5 -2.465) (end -3.55 -2.465) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 71cb7672-77f7-4e41-9b08-03a2851d65e4)) + (fp_line (start 3.5 -2.465) (end 3.5 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8d745565-3e1b-457d-881f-d56e1af60e31)) + (fp_line (start 3.55 1.785) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp cec4ddcc-4aa3-436d-8069-9681675a2e12)) + (fp_line (start -5.6 -2.56) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6c946640-66f3-4365-a0e0-2ba6a1107d4e)) + (fp_line (start -5.6 -2.56) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c81b8ada-5c05-40ac-8d3b-36fec6acc806)) + (fp_line (start 5.6 2.54) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6ea2e355-c8d4-4fb9-a241-2b2a596ad8ef)) + (fp_line (start 5.6 2.54) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a4d01c3d-7afc-400e-b1af-95429cc0cb1c)) + (fp_line (start -3.4 2.285) (end -3.4 -1.265) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 28e4e130-0cb5-4153-9274-3394bb5b3c22)) + (fp_line (start -2.3 -2.315) (end -3.4 -1.215) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 116b155e-6427-4ba1-a6d1-3ab1d34e59db)) + (fp_line (start 3.4 -2.315) (end -2.3 -2.315) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 315841d9-89c7-42f7-ad7e-f223cef2c182)) + (fp_line (start 3.4 -2.315) (end 3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 4080e639-64f6-48d9-bfa9-c97c06bbeb37)) + (fp_line (start 3.4 2.285) (end -3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 220fd1ec-df36-4e52-9082-56d274b37e2f)) + (pad "1" smd rect (at -4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "Net-(R4-Pad1)") (pinfunction "A") (pintype "passive") (tstamp 01b8239e-bb9e-44a8-b458-57600c11c092)) + (pad "2" smd rect (at -4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 2 "unconnected-(U4-Pad2)") (pinfunction "NC") (pintype "no_connect") (tstamp 9ee5f7e9-46da-4f51-b31d-7308302caf52)) + (pad "3" smd rect (at -4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "GND") (pinfunction "C") (pintype "passive") (tstamp aebc29a3-8766-4a4d-b6b9-8a7d51ce157a)) + (pad "4" smd rect (at 4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 23 "Net-(C4-Pad2)") (pinfunction "VEE") (pintype "power_in") (tstamp adf8e68f-d2bb-49e2-9275-2b719e183d42)) + (pad "5" smd rect (at 4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 10 "Net-(Q4-Pad1)") (pinfunction "VO") (pintype "output") (tstamp 78290c2e-6132-4a03-8582-4527dbf732b8)) + (pad "6" smd rect (at 4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 24 "Net-(C4-Pad1)") (pinfunction "VCC") (pintype "power_in") (tstamp 4fca1bab-a619-481d-b1ce-6c33d724c1b9)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder" (layer "F.Cu") + (tstamp 6c939d27-efc9-443a-ba44-92b8fdb3a204) + (at 66.04 52.705) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/e97640da-bd7c-4fbc-b49d-4ea42bdf9f26") + (attr smd) + (fp_text reference "R4" (at 0 -1.82) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 416434f7-5bea-46ba-9411-f89518a99dba) + ) + (fp_text value "220" (at 0 1.82) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp eba39d76-6585-4c12-aa6c-ec02a609d836) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp cf201b3a-e270-4569-8e0a-c294a938ba9e) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 98530bf7-e475-4583-b899-bac0a6e7dd36)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp aaf62aaa-bfc5-4bc0-b5cf-0b2cc481d35d)) + (fp_line (start -2.45 -1.12) (end 2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8c0238e8-8b06-463f-a3e0-1623ea7ff0ae)) + (fp_line (start -2.45 1.12) (end -2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fd2545e8-7cdc-41ac-9a22-6bd47ddb25d8)) + (fp_line (start 2.45 -1.12) (end 2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c624d2dd-a083-4fcf-b07d-55aaa8d99f52)) + (fp_line (start 2.45 1.12) (end -2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fa8678aa-9773-4e68-8a4f-1e4ce2fe3663)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 111ad5d2-968c-40f1-b260-995e0dc10974)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 77c35469-729a-44e3-a813-0370b813c630)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c5cd4e3d-9056-4628-8b06-75c93ad6aa48)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1e2dc1a0-db6d-49c9-b0f4-2b317f2c4410)) + (pad "1" smd roundrect (at -1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 6 "Net-(R4-Pad1)") (pintype "passive") (tstamp bb7e0dda-51f2-4167-a5b5-daede60cd1cc)) + (pad "2" smd roundrect (at 1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 15 "Net-(J6-Pad4)") (pintype "passive") (tstamp f5009c7c-d99c-4ba1-9292-fe9bd0ee358c)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp 733641bc-affc-45c8-bec9-2bb667df108c) + (at 50.96 88.9 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/f27fdfd6-3fe3-49f4-aa87-1fd3cb02d496") + (attr through_hole) + (fp_text reference "Q1" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9074b8a4-b838-4126-ab93-327e22a72ae9) + ) + (fp_text value "IRF540N" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b7c86368-c38d-4bd5-a043-7aab4bc5d64f) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8e69e457-e018-43b6-8d13-f6f68a5c26c0) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 41caa78e-890d-4a82-88ca-48da37860d18)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 99489398-b155-4cf1-a614-e91e1d2e5e3a)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6fcfb407-05d2-415f-91c6-e32dbd20b1e4)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7e95e79b-bfb2-4f14-8da0-7fbda5829b79)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 908dd07b-7ee3-4ae1-be89-5d9fadcf3558)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f491adb7-b844-4a36-99c5-78db9cceef08)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e9fa589a-94f3-4480-8d15-56e046f3c09c)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3cb0a2d1-cb4e-4f2a-bad0-460494920d25)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f6673cc7-cc72-41ee-bd2f-ddd2204601d5)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 065bda24-6699-4bd0-8e62-8995b3a1500c)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 767f3e69-bee1-412f-888f-f7d1b8a64aaf)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 91d75f7f-cdd2-4771-a95d-781410b39d5f)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp de42d08b-aa44-4ee6-9a50-a8101725d91b)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d8565841-e825-4057-b5c8-4726e8dc50ed)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4b8c9489-4e08-4e7e-a232-33f511d1fde5)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ac08ca18-909d-497d-9d80-4304b95f6456)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c36c136d-95c9-4428-98d3-e6c4345241ae)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4e810007-41c2-4691-95fc-92e24a55bddf)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 82f3a002-d8a3-4e76-a924-eb5b99e22a9c)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 953a072b-dc11-47d6-a071-0f841a1e1144)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7d44579d-56c7-4223-8911-8b29982023ce)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 639ad93e-01b1-46f4-bf2a-bd4dfebeacd0)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp da14ffe2-d068-4eed-a5a4-9fdafdf42040)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp 551d6617-44a0-48dc-936e-956f597aa2ac)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 13 "Net-(Q1-Pad1)") (pinfunction "G") (pintype "input") (tstamp bc376bcf-ad8e-4ea1-aa05-5ee89f4edffe)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 22 "Net-(D1-Pad1)") (pinfunction "D") (pintype "passive") (tstamp e8b32254-46d6-45e2-8bec-c97221dd253d)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 29 "Net-(C1-Pad2)") (pinfunction "S") (pintype "passive") (tstamp 09598763-9554-4a5d-89a9-ab181f7702f6)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm" (layer "F.Cu") + (tstamp 78728fde-44bd-488b-bb7e-284047127998) + (at 62.23 88.9 180) + (descr "8-Lead Plastic Stretched Small Outline (SSO/Stretched SO), see https://docs.broadcom.com/cs/Satellite?blobcol=urldata&blobheader=application%2Fpdf&blobheadername1=Content-Disposition&blobheadername2=Content-Type&blobheadername3=MDT-Type&blobheadervalue1=attachment%3Bfilename%3DIPD-Selection-Guide_AV00-0254EN_030617.pdf&blobheadervalue2=application%2Fx-download&blobheadervalue3=abinary%253B%2Bcharset%253DUTF-8&blobkey=id&blobnocache=true&blobtable=MungoBlobs&blobwhere=1430884105675&ssbinary=true") + (tags "SSO Stretched SO SOIC 1.27") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/5ef7239f-ff2b-4b64-adc3-d394f8cf897c") + (attr smd) + (fp_text reference "U1" (at 0.1 -3.265) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 1b53c504-df9a-44d2-9171-18ecb41cf59b) + ) + (fp_text value "UCC23313" (at 0.05 3.385) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4366dd47-a822-4c1b-a655-c2212761834c) + ) + (fp_text user "${REFERENCE}" (at 0 -0.065) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8228fec0-2ec9-4c1f-a6f0-cb1cb7d0fb61) + ) + (fp_line (start -3.55 -2.465) (end -3.55 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8321c67d-d7d2-4d05-93e3-1d46e908910b)) + (fp_line (start -3.55 -1.8) (end -5.3 -1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e231f163-c521-4fb1-9901-fe214a025be8)) + (fp_line (start -3.5 1.785) (end -3.5 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6919c1f9-a017-4f49-9099-ab63d5ab7d1e)) + (fp_line (start -3.5 2.435) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7f1465bc-220b-4065-839b-18c6ee7f11e5)) + (fp_line (start 3.5 -2.465) (end -3.55 -2.465) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a2e29b48-4cca-44e8-bb90-c599e478ee38)) + (fp_line (start 3.5 -2.465) (end 3.5 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 969a57ad-1bff-4a55-989e-117091f85d50)) + (fp_line (start 3.55 1.785) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0d78895f-373a-4a10-96ca-fd58415da410)) + (fp_line (start -5.6 -2.56) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b2bea1c4-3bbd-422c-88d0-7f58b8148819)) + (fp_line (start -5.6 -2.56) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c23533a6-02a0-4106-a477-8ebaaf83fa5c)) + (fp_line (start 5.6 2.54) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 403f2813-1894-4306-9fd9-607bfc4705db)) + (fp_line (start 5.6 2.54) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 0b34102b-5993-42b2-a167-88c76e09519e)) + (fp_line (start -3.4 2.285) (end -3.4 -1.265) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp ebd26c2d-f2be-49be-8589-106283e6ee9b)) + (fp_line (start -2.3 -2.315) (end -3.4 -1.215) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 3398c9ce-0445-4200-a9e9-10dc7a8aaa84)) + (fp_line (start 3.4 -2.315) (end -2.3 -2.315) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 2b3a59e1-253b-48ca-a3ef-da12ad9dea8c)) + (fp_line (start 3.4 -2.315) (end 3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 0a57c4c3-ec9f-4d95-a318-e78e97a35c89)) + (fp_line (start 3.4 2.285) (end -3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp b2d80bfa-675c-4847-aae0-dba7e4ca12b2)) + (pad "1" smd rect (at -4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 9 "Net-(R1-Pad1)") (pinfunction "A") (pintype "passive") (tstamp 2c4fc5ba-3ab2-46af-8391-900dc522bfe0)) + (pad "2" smd rect (at -4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 5 "unconnected-(U1-Pad2)") (pinfunction "NC") (pintype "no_connect") (tstamp 00860bf9-c8e3-4a56-ad72-7be37a4e2849)) + (pad "3" smd rect (at -4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "GND") (pinfunction "C") (pintype "passive") (tstamp d145e37e-c08f-4657-80f5-77cc606a6ad9)) + (pad "4" smd rect (at 4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 29 "Net-(C1-Pad2)") (pinfunction "VEE") (pintype "power_in") (tstamp 0fbc43ec-43c4-41bd-b321-f9fe367dc219)) + (pad "5" smd rect (at 4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 13 "Net-(Q1-Pad1)") (pinfunction "VO") (pintype "output") (tstamp 0cf4fd33-b545-4291-8391-9cbfa5af965e)) + (pad "6" smd rect (at 4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 30 "Net-(C1-Pad1)") (pinfunction "VCC") (pintype "power_in") (tstamp b1cb8543-c9e8-404b-b665-c68df83149a6)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Diode_SMD:D_SOD-323" (layer "F.Cu") + (tstamp 90136890-1b41-4fd9-a370-e845a09d9f31) + (at 58.42 92.71) + (descr "SOD-323") + (tags "SOD-323") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/dc92bbb3-2215-498d-9573-47843642432e") + (attr smd) + (fp_text reference "D4" (at 0 -1.85) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp a29d845c-e89e-408f-8fce-f030fafb8e4b) + ) + (fp_text value "1N4148WS" (at 0.1 1.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 04585ade-e905-4ea3-b67c-5c420c90f709) + ) + (fp_text user "${REFERENCE}" (at 0 -1.85) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 8d41bdeb-8f28-4dc0-b245-2e16ae6365cc) + ) + (fp_line (start -1.5 -0.85) (end -1.5 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a1b83702-aeb5-450b-a862-6dfde4eda4de)) + (fp_line (start -1.5 -0.85) (end 1.05 -0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4f8cdeb0-4361-4044-b614-cfd77e742fe1)) + (fp_line (start -1.5 0.85) (end 1.05 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e768831c-d304-448a-acee-f854d75fb0de)) + (fp_line (start -1.6 -0.95) (end -1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 1b0b97e4-5dff-4c0c-98db-d7d5b845b99a)) + (fp_line (start -1.6 -0.95) (end 1.6 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 00767ee9-4043-4887-a2ea-b66732953aef)) + (fp_line (start -1.6 0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6886ff2e-a747-4055-a49b-744a7179b577)) + (fp_line (start 1.6 -0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2850b88e-292e-4442-941a-2972969c43c2)) + (fp_line (start -0.9 -0.7) (end 0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8839de2c-98be-41af-a970-6c2c205baa51)) + (fp_line (start -0.9 0.7) (end -0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fefcd923-875c-4a29-ac66-1eb30f7c8fbc)) + (fp_line (start -0.3 -0.35) (end -0.3 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a86fabb5-c388-400a-83aa-feb9aca07ea2)) + (fp_line (start -0.3 0) (end -0.5 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a0889ac2-432a-4219-a924-5cfc743eca17)) + (fp_line (start -0.3 0) (end 0.2 -0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 90babfae-3ee4-4eac-afd6-c3d74d7abf1e)) + (fp_line (start 0.2 -0.35) (end 0.2 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7bea006f-f030-4617-b3f7-d9731b0e1be5)) + (fp_line (start 0.2 0) (end 0.45 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2ad63a3f-37fa-44a1-9842-69726663bc01)) + (fp_line (start 0.2 0.35) (end -0.3 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 87f386ea-4a54-4b8c-8441-088b128bd4d8)) + (fp_line (start 0.9 -0.7) (end 0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0b7c6244-36e7-41b4-868c-4efa6971163b)) + (fp_line (start 0.9 0.7) (end -0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b3549472-1848-4e34-8328-7ed5da8ab5e2)) + (pad "1" smd rect (at -1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 30 "Net-(C1-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 0bf073ce-ad0f-4484-822a-5ebe1e9fe87b)) + (pad "2" smd rect (at 1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 22 "Net-(D1-Pad1)") (pinfunction "A") (pintype "passive") (tstamp 44c30956-aed3-46e2-97ad-50d477d30d55)) + (model "${KICAD6_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder" (layer "F.Cu") + (tstamp 95e0e62d-068a-48c8-a653-c85e04a0da48) + (at 66.04 60.325) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/93eb1227-ce5b-475b-8ec0-3a22879e6612") + (attr smd) + (fp_text reference "R1" (at 0 -1.82) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c8931620-b7d1-4f64-800c-dc639e01584f) + ) + (fp_text value "220" (at 0 1.82) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e19210c9-9f53-46bb-a835-7ccf0b55ff7b) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 5d3e30f6-bc0f-4467-a7ac-cff055282c24) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 08b157da-766c-4b51-8561-fc75a8b1c29a)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9d1f8690-52a3-4468-9a71-a88c051d0f1e)) + (fp_line (start -2.45 -1.12) (end 2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f24c7427-e0a5-4215-b801-5a7fdae032e1)) + (fp_line (start -2.45 1.12) (end -2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2063b26f-55a2-4980-8bb2-6650e4653188)) + (fp_line (start 2.45 -1.12) (end 2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 845202ca-7007-4c8b-b0a8-2210d8a79e5c)) + (fp_line (start 2.45 1.12) (end -2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f6e3a7c0-1a36-439d-853e-6cf7d207db73)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bb3b89ef-b2d1-40e2-8976-24fcc35ae991)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2bf4a677-a6f7-4857-9397-41b4071ef310)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 754f9ed8-3adb-413d-91eb-358fe79b5dd2)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f7fae986-d222-49f7-9f24-d8027773ce65)) + (pad "1" smd roundrect (at -1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 9 "Net-(R1-Pad1)") (pintype "passive") (tstamp c84845d2-2f7e-47a1-8114-2a49a6b2013d)) + (pad "2" smd roundrect (at 1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 18 "Net-(J6-Pad1)") (pintype "passive") (tstamp 4310bd3b-5565-4eb4-bb3b-00be41947552)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp 9e89f996-cf5c-4934-bd2c-d2d64aa3c447) + (at 50.96 67.31 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/bd89e833-d02e-4730-b42f-4ed1ea200c42") + (attr through_hole) + (fp_text reference "Q2" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp be526b42-257b-4aca-810e-9981cf059e6f) + ) + (fp_text value "IRF540N" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ff838cfb-b5d8-444d-a60a-fcc28767b5f0) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp eea39e02-a347-4434-97b3-225e033c054f) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f52d63e4-f6b2-47f2-abc8-242815779bb4)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9de5f914-c179-490c-90c0-b655608d243c)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 72de0e39-2d42-46cf-9d1f-fec0f43f5df9)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6f6d9d94-541e-40ef-ae3b-629b4b0314df)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 41d403d7-e1ef-48a5-b6a5-e037e0cb42b5)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 360a9d49-f260-467b-8a1f-3890f82203e2)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0409e8de-6290-4e1e-9742-9150342e7f47)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b3940e9b-dcb8-4212-8c02-cc5b9875e841)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp aaed403d-b851-4a7d-aed1-e12e5217d95b)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4903ad12-9274-49e6-896a-0ba18048e9ec)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fc28151b-9e88-4243-a483-f6ec13ce9ea2)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f3c3a0ec-208d-4912-a4aa-feeb9f111b70)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c50072e0-a05d-4580-9db6-fadd31652728)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 28faec5d-5034-482e-892f-a5c01ca458aa)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp aec10ba3-c61b-4575-b3b5-e22a02671ccd)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7692b5fc-2f1f-462d-943a-018224942e05)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 33a4eeb1-2bea-40a2-8617-f68174223f91)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d062db05-1ea8-4cca-b443-eb2c8c53c150)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 108d8c92-7968-4222-b6b6-fd7392ecb1dd)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8075b37c-7514-4671-b658-7074ffaa9a4b)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 595f2e12-c82a-41a3-9c72-92a0a95c706f)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9ecb8678-b8e1-401c-bc52-4aba94a29f9f)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp dc7e6600-ee26-4ffd-94ed-ee540e751f99)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp 0035feff-fe19-4024-a1c9-f4bcf8cc5efe)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 12 "Net-(Q2-Pad1)") (pinfunction "G") (pintype "input") (tstamp 87ffbfa4-af36-4ca6-9070-5b84b47b5c1e)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 29 "Net-(C1-Pad2)") (pinfunction "D") (pintype "passive") (tstamp ff83b3a6-4d53-4701-934d-6e694b49d232)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 27 "Net-(C2-Pad2)") (pinfunction "S") (pintype "passive") (tstamp 1ade1f8c-c9c8-41f2-b6f9-a28248362c99)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Diode_SMD:D_SOD-323" (layer "F.Cu") + (tstamp c715ba1d-772c-44e7-a835-e3b4cb39f8b2) + (at 55.88 71.755) + (descr "SOD-323") + (tags "SOD-323") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/c62a68f6-5959-4e0d-add0-6725d0e22108") + (attr smd) + (fp_text reference "D5" (at 0 -1.85) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c8a719e9-5a60-4256-88e6-46309a6f2004) + ) + (fp_text value "1N4148WS" (at 0.1 1.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 64ce93c4-34de-4f1e-a332-e5b65f4fd8b2) + ) + (fp_text user "${REFERENCE}" (at 0 -1.85) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 35d85d1f-cbf4-418c-a8e2-c754642f2785) + ) + (fp_line (start -1.5 -0.85) (end -1.5 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e5a27129-3301-4b3b-947a-140d7cc2883c)) + (fp_line (start -1.5 -0.85) (end 1.05 -0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9aa3c0ec-0ecc-47a3-aa99-f9c6ad245952)) + (fp_line (start -1.5 0.85) (end 1.05 0.85) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 42b86919-8d15-43b2-a3dd-3e32b120fb2f)) + (fp_line (start -1.6 -0.95) (end -1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp eab1edb4-4ddb-46ef-8ed8-68e5901615c8)) + (fp_line (start -1.6 -0.95) (end 1.6 -0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c745ca80-da42-4637-99ab-8d3131878536)) + (fp_line (start -1.6 0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9f79c12c-00e9-4696-80c0-e28cb8e762de)) + (fp_line (start 1.6 -0.95) (end 1.6 0.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8fd291a0-2be1-4e31-baa6-903c749c4392)) + (fp_line (start -0.9 -0.7) (end 0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 757f5457-f31b-415d-b4ba-17697ca14e47)) + (fp_line (start -0.9 0.7) (end -0.9 -0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a6ffe256-617d-421b-95d9-6f55927f5f53)) + (fp_line (start -0.3 -0.35) (end -0.3 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ab6d212c-f040-4a8b-b094-f506eb75f2c5)) + (fp_line (start -0.3 0) (end -0.5 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1215aad5-d5c1-47f9-b5b5-3cd1a23f9c52)) + (fp_line (start -0.3 0) (end 0.2 -0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 18370893-99fc-4228-8b43-661cb90a284d)) + (fp_line (start 0.2 -0.35) (end 0.2 0.35) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 91aa9f2a-571b-4469-97d7-5cc7d4c2c37a)) + (fp_line (start 0.2 0) (end 0.45 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e0b7fa48-cad4-4eda-93cb-833d9048da91)) + (fp_line (start 0.2 0.35) (end -0.3 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8c8458a0-b31d-4d73-b8a3-6ac265a061d6)) + (fp_line (start 0.9 -0.7) (end 0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0b99653a-7ba7-48f4-a674-72e453b9b2c2)) + (fp_line (start 0.9 0.7) (end -0.9 0.7) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ab3100e9-e4f5-4e70-ac1e-89880e51db6b)) + (pad "1" smd rect (at -1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 28 "Net-(C2-Pad1)") (pinfunction "K") (pintype "passive") (tstamp d841aaaf-0234-4917-9004-b82d37082a7a)) + (pad "2" smd rect (at 1.05 0) (size 0.6 0.45) (layers "F.Cu" "F.Paste" "F.Mask") + (net 21 "Net-(D1-Pad2)") (pinfunction "A") (pintype "passive") (tstamp 973cbdeb-0617-42c4-a9e8-cf7ef4a93fab)) + (model "${KICAD6_3DMODEL_DIR}/Diode_SMD.3dshapes/D_SOD-323.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_D4.0mm" (layer "F.Cu") + (tstamp cb327948-66a2-43d2-a2dc-924c328b39ae) + (at 51 93.345) + (descr "SMD pad as test Point, diameter 4.0mm") + (tags "test point SMD pad") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/050589bb-899f-4384-8e63-0c94b0a943cd") + (attr exclude_from_pos_files) + (fp_text reference "J1" (at 0 -2.898) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 18cc8f45-212b-4c3e-bee2-ff7a25299ef7) + ) + (fp_text value "Vrail" (at 0 3.1) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 126bf3e8-30b1-45df-9f4d-dfb7065339e3) + ) + (fp_text user "${REFERENCE}" (at 0 -2.9) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5cb10700-2b13-4257-b24b-32f20824b0ff) + ) + (fp_circle (center 0 0) (end 0 2.25) + (stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp 97204bf9-6a23-4a86-a411-c6535f15fc10)) + (fp_circle (center 0 0) (end 2.5 0) + (stroke (width 0.05) (type solid)) (fill none) (layer "F.CrtYd") (tstamp 93c1080b-111f-4be5-919d-55f36de6004e)) + (pad "1" smd circle (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") + (net 22 "Net-(D1-Pad1)") (pinfunction "Pin_1") (pintype "passive") (tstamp 10708ad7-7e44-4bcb-aea6-72a668569847)) + ) + + (footprint "Package_TO_SOT_THT:TO-220F-3_Horizontal_TabDown" (layer "F.Cu") + (tstamp ccd95f00-d45e-451b-850d-826c11e4f8a0) + (at 50.96 24.13 90) + (descr "TO-220F-3, Horizontal, RM 2.54mm, see http://www.st.com/resource/en/datasheet/stp20nm60.pdf") + (tags "TO-220F-3 Horizontal RM 2.54mm") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/bbc609db-d67c-42dc-a674-eb05a0c1600d") + (attr through_hole) + (fp_text reference "Q4" (at 2.54 -20.22 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 770c7500-9177-4f2d-a389-a92aed5fd2bb) + ) + (fp_text value "IRF540N" (at 2.54 2 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp af67a863-5c89-4f0c-a82e-7d06f485fe68) + ) + (fp_text user "${REFERENCE}" (at 2.54 -20.22 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7f60a7f2-41ee-4da7-873c-97d632f6fb4a) + ) + (fp_line (start -2.71 -19.22) (end -2.71 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8991c437-84fc-4add-8d0f-a6da22ca207e)) + (fp_line (start -2.71 -19.22) (end 7.79 -19.22) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 535a2712-cc05-4f86-8150-1bfd1236e1b6)) + (fp_line (start -2.71 -3.11) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fb17622e-914b-4f61-b924-58d9ad448438)) + (fp_line (start 0 -3.11) (end 0 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4e8e2ca9-86d4-43f4-b395-17aeb535b8c0)) + (fp_line (start 2.54 -3.11) (end 2.54 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8aebae27-62b8-485a-aa23-4ebc9b236fdb)) + (fp_line (start 5.08 -3.11) (end 5.08 -1.15) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d5559f92-7cc6-4a98-b1d3-cb40f312e72c)) + (fp_line (start 7.79 -19.22) (end 7.79 -3.11) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 63fddaab-1bd0-42a4-a232-64c3094d9932)) + (fp_line (start -2.84 -19.35) (end -2.84 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d7d315e9-2a7a-4b36-a258-51234a24a2bb)) + (fp_line (start -2.84 1.25) (end 7.92 1.25) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5458075a-95a7-4a57-8224-5a7973f11b64)) + (fp_line (start 7.92 -19.35) (end -2.84 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 79a7b1f6-018f-449d-bca1-d1d366464bd0)) + (fp_line (start 7.92 1.25) (end 7.92 -19.35) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3a9beaf0-4ab0-4bf9-a675-840cf20f9818)) + (fp_line (start -2.59 -19.1) (end 7.67 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 587c93cf-85b6-4c31-993c-742964f11fa8)) + (fp_line (start -2.59 -12.42) (end -2.59 -19.1) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3b419b89-d2e9-4de8-8a4c-09071fdbd8b2)) + (fp_line (start -2.59 -12.42) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9bf83732-6f03-4f52-9b21-93c2b6d7e6da)) + (fp_line (start -2.59 -3.23) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5debe630-f246-421a-847c-9bb45f57ab75)) + (fp_line (start 0 -3.23) (end 0 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2d8c1618-b3bc-495a-9c2c-599e1d86e822)) + (fp_line (start 2.54 -3.23) (end 2.54 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9c3f044e-1eef-4249-ba1b-5eeba7652b2d)) + (fp_line (start 5.08 -3.23) (end 5.08 0) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1459cbb5-8339-4919-95a2-6d39afdaf991)) + (fp_line (start 7.67 -19.1) (end 7.67 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 79af50bf-2ff9-4ffe-9d56-c0d77f9d328e)) + (fp_line (start 7.67 -12.42) (end -2.59 -12.42) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp feae8c89-81f5-4192-8191-c1c326b04b0a)) + (fp_line (start 7.67 -12.42) (end 7.67 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp dee454b7-a07f-44e3-a705-8dcb5532c655)) + (fp_line (start 7.67 -3.23) (end -2.59 -3.23) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4b4a5157-7334-4048-9eaf-65a60005673c)) + (fp_circle (center 2.54 -15.8) (end 4.39 -15.8) + (stroke (width 0.1) (type solid)) (fill none) (layer "F.Fab") (tstamp e4e216d5-b42a-407f-818b-c04a34161fef)) + (pad "" np_thru_hole oval (at 2.54 -15.8 90) (size 3.5 3.5) (drill 3.5) (layers "*.Cu" "*.Mask") (tstamp 4ae0896b-28eb-4333-8065-9326c5da95bd)) + (pad "1" thru_hole rect (at 0 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 10 "Net-(Q4-Pad1)") (pinfunction "G") (pintype "input") (tstamp fb6de705-4a04-4ab5-9e8a-8a8c916e8078)) + (pad "2" thru_hole oval (at 2.54 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 25 "Net-(C3-Pad2)") (pinfunction "D") (pintype "passive") (tstamp c90c80f3-ff08-4df7-ada5-c700469919bc)) + (pad "3" thru_hole oval (at 5.08 0 90) (size 1.905 2) (drill 1.2) (layers "*.Cu" "*.Mask") + (net 23 "Net-(C4-Pad2)") (pinfunction "S") (pintype "passive") (tstamp 20dc282b-b039-4f84-81b2-d608dcb04e8e)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_THT.3dshapes/TO-220F-3_Horizontal_TabDown.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder" (layer "F.Cu") + (tstamp d58e976c-321e-4e92-9bc4-0842de0ff6e0) + (at 66.04 57.785) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/ffc1b322-1664-46b4-b4fb-ef1c82762c58") + (attr smd) + (fp_text reference "R2" (at 0 -1.82) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 24d2246a-e09a-4731-814d-15998fd5916c) + ) + (fp_text value "220" (at 0 1.82) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp dc654af9-6b96-43be-8673-1342086a6eef) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp fab44d62-8170-466e-b5c8-dbec85aa62e1) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7441178d-aa53-4929-b5e9-6a8778e65c6a)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp bafa4759-cb06-4ce5-9904-48256de2f6b8)) + (fp_line (start -2.45 -1.12) (end 2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f1d039e7-c8f0-43f0-a2b5-440c1e31a848)) + (fp_line (start -2.45 1.12) (end -2.45 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 619f0093-2ed0-4e38-b536-dc232a1cf9c1)) + (fp_line (start 2.45 -1.12) (end 2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8b8069c2-d145-4d4e-b8d2-4a1848de0814)) + (fp_line (start 2.45 1.12) (end -2.45 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b011786d-7a15-4802-a1d9-af7f6b09884e)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 402a5832-b070-4e1e-ba05-9c74fd156d02)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 69b53edb-faf4-4fc8-8c1b-60d75286c1ba)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e277b0b3-80c3-4d2a-9fe6-72be4467e6b7)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2078e0f3-c65a-485d-ad8f-9b88e540b791)) + (pad "1" smd roundrect (at -1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 8 "Net-(R2-Pad1)") (pintype "passive") (tstamp 2bc107c5-264e-44d7-8dee-3531c85aef6a)) + (pad "2" smd roundrect (at 1.55 0) (size 1.3 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 17 "Net-(J6-Pad2)") (pintype "passive") (tstamp db2849b5-1b76-4d87-86dd-eda631eaeb75)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_1812_4532Metric_Pad1.30x3.40mm_HandSolder" (layer "F.Cu") + (tstamp e2ab00f7-5fd4-438b-8ebb-7752695859b5) + (at 68.3 41.91) + (descr "Resistor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.nikhef.nl/pub/departments/mt/projects/detectorR_D/dtddice/ERJ2G.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/48b2513f-f38c-4176-af5d-1506d860931a") + (attr smd) + (fp_text reference "R5" (at 0 -2.65) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9bc77cf8-da98-46b9-8198-6a966e25f5ec) + ) + (fp_text value "220" (at 0 2.65) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 508e5145-cb08-478e-9a92-09b8c3780fb4) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7ddcb990-9399-4aed-b8c6-89db55814dd5) + ) + (fp_line (start -1.386252 -1.71) (end 1.386252 -1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3734e5be-0877-46bc-ae5c-34ffcc753419)) + (fp_line (start -1.386252 1.71) (end 1.386252 1.71) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5a8f17bc-ceb3-48d7-9ac9-6ea239bc5d57)) + (fp_line (start -3.12 -1.95) (end 3.12 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8149ef57-72c9-4d85-8324-94c964f08abb)) + (fp_line (start -3.12 1.95) (end -3.12 -1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 24f3d9a0-40f7-4c13-a779-27373953a1e2)) + (fp_line (start 3.12 -1.95) (end 3.12 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 955ff49c-f456-4210-b449-1348b612a9bc)) + (fp_line (start 3.12 1.95) (end -3.12 1.95) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e1e2dab2-cd0b-44a6-9e45-04cb83e34842)) + (fp_line (start -2.25 -1.6) (end 2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 66706b20-8927-47b6-8adb-0b2426d9e5b6)) + (fp_line (start -2.25 1.6) (end -2.25 -1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1c8d18fc-3130-4726-b334-353aeb2026a9)) + (fp_line (start 2.25 -1.6) (end 2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 62546863-11b1-42e7-9980-4f919d6293b8)) + (fp_line (start 2.25 1.6) (end -2.25 1.6) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 689f2882-0dd1-4283-9d1c-b40234ad8c59)) + (pad "1" smd roundrect (at -2.225 0) (size 1.3 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 1 "GND") (pintype "passive") (tstamp 5a7ea061-b3d7-4a6d-9e54-38372b63b63f)) + (pad "2" smd roundrect (at 2.225 0) (size 1.3 3.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1923076923) + (net 14 "Net-(J6-Pad5)") (pintype "passive") (tstamp 146b6dee-ca55-4360-9560-8a965f3b52d4)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1812_4532Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Package_SO:SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm" (layer "F.Cu") + (tstamp f3cc5bc7-ff5d-4414-b32f-051cab0d5f8c) + (at 62.23 67.31 180) + (descr "8-Lead Plastic Stretched Small Outline (SSO/Stretched SO), see https://docs.broadcom.com/cs/Satellite?blobcol=urldata&blobheader=application%2Fpdf&blobheadername1=Content-Disposition&blobheadername2=Content-Type&blobheadername3=MDT-Type&blobheadervalue1=attachment%3Bfilename%3DIPD-Selection-Guide_AV00-0254EN_030617.pdf&blobheadervalue2=application%2Fx-download&blobheadervalue3=abinary%253B%2Bcharset%253DUTF-8&blobkey=id&blobnocache=true&blobtable=MungoBlobs&blobwhere=1430884105675&ssbinary=true") + (tags "SSO Stretched SO SOIC 1.27") + (property "Sheetfile" "squeow_mod.kicad_sch") + (property "Sheetname" "") + (path "/071894b9-a4fb-4962-a100-9be726162c17") + (attr smd) + (fp_text reference "U2" (at 0.1 -3.265) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 67929d4b-a75b-4094-a099-938ffed8162f) + ) + (fp_text value "UCC23313" (at 0.05 3.385) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c2b0e8ed-c55a-468c-972a-16ad07c162c7) + ) + (fp_text user "${REFERENCE}" (at 0 -0.065) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 443c2a0d-cbd6-4c30-a509-0bdde6def684) + ) + (fp_line (start -3.55 -2.465) (end -3.55 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7841857a-f066-413a-a976-0e3b0a2cec67)) + (fp_line (start -3.55 -1.8) (end -5.3 -1.8) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp be8a81ad-f538-44bc-9b60-65a8d740db65)) + (fp_line (start -3.5 1.785) (end -3.5 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b6ff1b8d-c21c-48ac-829b-1c71d1a8d5fd)) + (fp_line (start -3.5 2.435) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e5dfbbf2-77b8-40d8-a56f-fd87f2596803)) + (fp_line (start 3.5 -2.465) (end -3.55 -2.465) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7c3fb679-ebf8-401f-800d-ec572417b185)) + (fp_line (start 3.5 -2.465) (end 3.5 -1.815) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1e44ae91-8fc7-48b8-afa7-8bb1cc9c650e)) + (fp_line (start 3.55 1.785) (end 3.55 2.435) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fea72355-6bbb-4787-b38f-8b0c5aa4c8be)) + (fp_line (start -5.6 -2.56) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f9d0df7c-3091-458e-ac23-a22b79118297)) + (fp_line (start -5.6 -2.56) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 80998775-fd4f-4be9-a383-c9acb5b0f4bb)) + (fp_line (start 5.6 2.54) (end -5.6 2.54) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c9f216a2-b01e-4489-90c2-3546b799a480)) + (fp_line (start 5.6 2.54) (end 5.6 -2.56) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 38856f37-e523-477c-a78d-d659f95ae978)) + (fp_line (start -3.4 2.285) (end -3.4 -1.265) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 0f6e5ab4-bc55-4932-a288-b9c07e3d63d5)) + (fp_line (start -2.3 -2.315) (end -3.4 -1.215) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp b560417b-bbda-4270-9ef5-a7eb30d028b5)) + (fp_line (start 3.4 -2.315) (end -2.3 -2.315) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 1c035a41-f81c-4608-b72e-50ee0e2c598a)) + (fp_line (start 3.4 -2.315) (end 3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp 23a2d3b9-714f-48b0-a2f9-a491ba527c74)) + (fp_line (start 3.4 2.285) (end -3.4 2.285) + (stroke (width 0.12) (type solid)) (layer "F.Fab") (tstamp cca3404a-1e7b-485a-ae20-bcd9f7c1cfe7)) + (pad "1" smd rect (at -4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 8 "Net-(R2-Pad1)") (pinfunction "A") (pintype "passive") (tstamp 20e7c396-37e3-4319-b2ad-e03d6381750f)) + (pad "2" smd rect (at -4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "unconnected-(U2-Pad2)") (pinfunction "NC") (pintype "no_connect") (tstamp 3b068ce1-d5fe-491d-b9aa-5c13423e92fd)) + (pad "3" smd rect (at -4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "GND") (pinfunction "C") (pintype "passive") (tstamp 87a5d290-7ed6-48c4-b823-042d1ab6d1c0)) + (pad "4" smd rect (at 4.27 1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 27 "Net-(C2-Pad2)") (pinfunction "VEE") (pintype "power_in") (tstamp 0deb5654-d051-4629-bda4-d01107ff20e7)) + (pad "5" smd rect (at 4.27 0 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 12 "Net-(Q2-Pad1)") (pinfunction "VO") (pintype "output") (tstamp 53ad7123-afd8-4df8-a544-0226d13040a4)) + (pad "6" smd rect (at 4.27 -1.27 180) (size 2.16 0.64) (layers "F.Cu" "F.Paste" "F.Mask") + (net 28 "Net-(C2-Pad1)") (pinfunction "VCC") (pintype "power_in") (tstamp 4910bbfc-a0a6-48cc-b0ec-f077fe750ead)) + (model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SSO-6_6.8x4.6mm_P1.27mm_Clearance7mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (gr_rect (start 46.9825 16.51) (end 73.0175 95.885) + (stroke (width 0.1) (type solid)) (fill none) (layer "Edge.Cuts") (tstamp 496ae10a-9dc1-465b-8b7f-1b99fdd6e29e)) + + (segment (start 64.135 41.91) (end 63.5 42.545) (width 1) (layer "F.Cu") (net 1) (tstamp 0d20a753-d080-491a-8fd9-42f4de522295)) + (segment (start 59.055 60.96) (end 63.5 65.405) (width 1) (layer "F.Cu") (net 1) (tstamp 176e265a-aaf1-415d-a50e-49d8fbe230e3)) + (segment (start 65.405 87.63) (end 66.5 87.63) (width 1) (layer "F.Cu") (net 1) (tstamp 21e55576-bc16-410d-ac63-3fe0efe63bb9)) + (segment (start 63.5 65.405) (end 63.5 66.675) (width 1) (layer "F.Cu") (net 1) (tstamp 223f330f-4606-4948-87cd-a70108d3bdcf)) + (segment (start 66.5 22.86) (end 64.87 22.86) (width 1) (layer "F.Cu") (net 1) (tstamp 282449a1-d1ca-4201-9602-8a1a3dc23aec)) + (segment (start 63.5 24.23) (end 63.5 42.545) (width 1) (layer "F.Cu") (net 1) (tstamp 2a41c0d6-3163-45b9-a849-a9961bb9d375)) + (segment (start 63.5 85.725) (end 65.405 87.63) (width 1) (layer "F.Cu") (net 1) (tstamp 2db282a7-6088-4229-9fbb-4284285dfc8c)) + (segment (start 59.055 53.34) (end 59.055 60.96) (width 1) (layer "F.Cu") (net 1) (tstamp 3a070fc1-20d3-459a-bf39-dcd486780604)) + (segment (start 63.5 44.45) (end 63.5 48.895) (width 1) (layer "F.Cu") (net 1) (tstamp 427259fc-0d52-4d9c-b352-5eb6c24f7289)) + (segment (start 63.5 48.895) (end 59.055 53.34) (width 1) (layer "F.Cu") (net 1) (tstamp 5d81611d-b3f6-4914-b669-b33e5e3976d7)) + (segment (start 63.5 66.04) (end 63.5 66.675) (width 1) (layer "F.Cu") (net 1) (tstamp 67dbd3d7-ef99-4ef1-990d-8a5a31a4c874)) + (segment (start 66.5 44.45) (end 63.5 44.45) (width 1) (layer "F.Cu") (net 1) (tstamp 785f0e05-b76f-44ca-8bd7-9ece313ce763)) + (segment (start 66.5 66.04) (end 63.5 66.04) (width 1) (layer "F.Cu") (net 1) (tstamp 873fde00-9ea3-4375-9d13-cebe0728e70a)) + (segment (start 64.87 22.86) (end 63.5 24.23) (width 1) (layer "F.Cu") (net 1) (tstamp 9721e885-a271-407d-b25b-d6860120056c)) + (segment (start 63.5 66.675) (end 63.5 85.725) (width 1) (layer "F.Cu") (net 1) (tstamp 97530bce-e1d7-4472-915f-ceed8459d5e8)) + (segment (start 66.075 41.91) (end 64.135 41.91) (width 1) (layer "F.Cu") (net 1) (tstamp b33992e7-fcc3-462c-958b-76361d1ba3ac)) + (segment (start 63.5 42.545) (end 63.5 44.45) (width 1) (layer "F.Cu") (net 1) (tstamp c4d8f845-8caf-4a52-8c93-4ffbc1fc425e)) + (segment (start 68.33 27.23) (end 66.5 25.4) (width 1) (layer "F.Cu") (net 6) (tstamp 1aa5eb28-2abd-4b3a-9f1b-90d186f05ab1)) + (segment (start 64.49 51.9) (end 68.33 48.06) (width 1) (layer "F.Cu") (net 6) (tstamp 31d1aebd-7cb3-486b-817e-6d5a56584266)) + (segment (start 64.49 52.705) (end 64.49 51.9) (width 1) (layer "F.Cu") (net 6) (tstamp 4cc3f6be-dd31-4d20-aa71-ff59cf27b256)) + (segment (start 68.33 48.06) (end 68.33 27.23) (width 1) (layer "F.Cu") (net 6) (tstamp f999e6db-83df-4552-acf2-d7be10b9b851)) + (segment (start 63 53.755) (end 64.49 55.245) (width 1) (layer "F.Cu") (net 7) (tstamp 70e50dbe-a61f-4f5b-b23f-37e92ad768f6)) + (segment (start 66.5 47.662766) (end 63 51.162766) (width 1) (layer "F.Cu") (net 7) (tstamp 8bff1444-4260-4f29-8a46-d8532a4891be)) + (segment (start 66.5 46.99) (end 66.5 47.662766) (width 1) (layer "F.Cu") (net 7) (tstamp 9423a92e-6ab7-43bb-9be8-2fdc586c7bbc)) + (segment (start 63 51.162766) (end 63 53.755) (width 1) (layer "F.Cu") (net 7) (tstamp 96c0ae32-6355-4d8c-acea-494edc9ec03c)) + (segment (start 68.13 68.58) (end 68.33 68.38) (width 1) (layer "F.Cu") (net 8) (tstamp 07267a88-0482-443d-b221-8ce33c72d7c6)) + (segment (start 66.500786 64) (end 65 64) (width 1) (layer "F.Cu") (net 8) (tstamp 4f868b49-e1dd-45cb-9243-717a2d07f5cf)) + (segment (start 63.215 57.785) (end 64.49 57.785) (width 1) (layer "F.Cu") (net 8) (tstamp 65cc0cf0-30e0-4b43-8654-73170824eca7)) + (segment (start 66.615786 64.115) (end 66.500786 64) (width 1) (layer "F.Cu") (net 8) (tstamp 83698258-5799-4a2a-b3a2-cf4b12ce3202)) + (segment (start 62 61) (end 62 59) (width 1) (layer "F.Cu") (net 8) (tstamp a542d1fc-64da-40fa-bdf7-8869c3e4f0ec)) + (segment (start 62 59) (end 63.215 57.785) (width 1) (layer "F.Cu") (net 8) (tstamp b0cfbef9-6232-4c27-acee-1ab6216943ec)) + (segment (start 65 64) (end 62 61) (width 1) (layer "F.Cu") (net 8) (tstamp cee7a0f4-1d51-4bfd-a786-cc292bcb8c8b)) + (segment (start 68.33 68.38) (end 68.33 65.155) (width 1) (layer "F.Cu") (net 8) (tstamp ee3403c5-9cc3-46f1-913d-d4f5a9d94a48)) + (segment (start 68.33 65.155) (end 67.29 64.115) (width 1) (layer "F.Cu") (net 8) (tstamp f2e67e03-faac-4bb6-8190-26c18407feb3)) + (segment (start 67.29 64.115) (end 66.615786 64.115) (width 1) (layer "F.Cu") (net 8) (tstamp fa062aad-817f-47ae-8830-69ea741421c5)) + (segment (start 66.5 68.58) (end 68.13 68.58) (width 1) (layer "F.Cu") (net 8) (tstamp fbe6a847-de7c-4703-a518-7b7e2df0be14)) + (segment (start 70.485 64.77) (end 68.58 62.865) (width 1) (layer "F.Cu") (net 9) (tstamp 58eff93c-d746-4c74-a427-3c88dc0da2dc)) + (segment (start 67.03 62.865) (end 64.49 60.325) (width 1) (layer "F.Cu") (net 9) (tstamp 6be44820-0f5e-4c02-8f70-7e5659c09fb4)) + (segment (start 68.58 62.865) (end 67.03 62.865) (width 1) (layer "F.Cu") (net 9) (tstamp 88c0938d-38dc-4a42-9d08-a8dd2b4c5699)) + (segment (start 68.13 90.17) (end 70.485 87.815) (width 1) (layer "F.Cu") (net 9) (tstamp a8dfaa9b-2559-4233-9dc0-077bdf840484)) + (segment (start 66.5 90.17) (end 68.13 90.17) (width 1) (layer "F.Cu") (net 9) (tstamp cf90e813-aef3-420e-94b9-39ce2da51e31)) + (segment (start 70.485 87.815) (end 70.485 64.77) (width 1) (layer "F.Cu") (net 9) (tstamp d95e18bf-74dd-4899-9864-bba6ded24db8)) + (segment (start 50.96 24.13) (end 57.96 24.13) (width 1) (layer "F.Cu") (net 10) (tstamp ff71fe09-a6b2-4fb6-912a-9962626a4ac6)) + (segment (start 57.96 45.72) (end 50.96 45.72) (width 1) (layer "F.Cu") (net 11) (tstamp 25f100ce-aa3d-4f8b-98c1-fdbc4accce2f)) + (segment (start 57.96 67.31) (end 50.96 67.31) (width 1) (layer "F.Cu") (net 12) (tstamp a1378cf0-e157-4ca0-8e1b-2300736a91b4)) + (segment (start 57.96 88.9) (end 50.96 88.9) (width 1) (layer "F.Cu") (net 13) (tstamp 8b726460-8885-405d-900d-f73b6c8b7e11)) + (segment (start 71.12 42.505) (end 70.525 41.91) (width 1) (layer "F.Cu") (net 14) (tstamp 159beb4b-6415-49fd-bf9b-9b3a94bbca0b)) + (segment (start 71.12 50.165) (end 71.12 42.505) (width 1) (layer "F.Cu") (net 14) (tstamp bb3cc94d-2d3f-4bdd-8ce2-d2849a3dba0b)) + (segment (start 67.04 52.705) (end 71.12 52.705) (width 1) (layer "F.Cu") (net 15) (tstamp 86172240-2bcd-4812-b0fd-1e3eaec60f96)) + (segment (start 71.12 55.245) (end 67.04 55.245) (width 1) (layer "F.Cu") (net 16) (tstamp 8a9859fa-c46a-4d9e-86c7-7d60b318dfde)) + (segment (start 71.12 57.785) (end 67.04 57.785) (width 1) (layer "F.Cu") (net 17) (tstamp 5d246eda-fc01-409f-a3ca-5203e0037609)) + (segment (start 71.12 60.325) (end 67.04 60.325) (width 1) (layer "F.Cu") (net 18) (tstamp 6a2118d8-35fe-4b94-9eb1-363ab5985787)) + (segment (start 53.975 32.385) (end 56.93 29.43) (width 1) (layer "F.Cu") (net 19) (tstamp 3b479abd-eb96-46ba-aa9a-89ebdfb90f98)) + (segment (start 56.93 29.43) (end 56.93 28.575) (width 1) (layer "F.Cu") (net 19) (tstamp 77626806-dc86-4a3a-a0af-73c4f1c3d389)) + (segment (start 53.975 32.385) (end 50.96 32.385) (width 2) (layer "F.Cu") (net 19) (tstamp c8e2d326-ba33-4d33-915e-9c40f99270ff)) + (segment (start 60.96 48.26) (end 58.1025 51.1175) (width 2) (layer "F.Cu") (net 20) (tstamp 049f3db9-d3f9-4f9d-8808-002a4917135e)) + (segment (start 52.07 34.925) (end 60.96 43.815) (width 2) (layer "F.Cu") (net 20) (tstamp 247a0435-591e-4515-8872-1849cac4d6bb)) + (segment (start 57.15 50.165) (end 58.1025 51.1175) (width 1) (layer "F.Cu") (net 20) (tstamp 2f3c8252-627f-487b-9a6c-4a531790084b)) + (segment (start 60.96 43.815) (end 60.96 48.26) (width 2) (layer "F.Cu") (net 20) (tstamp 764bab83-5995-4244-8ef3-da23f361392c)) + (segment (start 50.96 53.975) (end 55 53.975) (width 2) (layer "F.Cu") (net 20) (tstamp 896dad3b-af23-4a8b-889a-bedb0a5f8caa)) + (segment (start 50.96 34.925) (end 52.07 34.925) (width 2) (layer "F.Cu") (net 20) (tstamp aabf2c57-796a-456d-abcc-fa7056e39c5c)) + (segment (start 56.93 50.165) (end 57.15 50.165) (width 1) (layer "F.Cu") (net 20) (tstamp beb1b6d2-18ed-411f-8b5f-caf7ca127835)) + (segment (start 58.1025 51.1175) (end 55.245 53.975) (width 2) (layer "F.Cu") (net 20) (tstamp c30b65e3-0b6e-469c-9f11-531fab756f32)) + (segment (start 60.54 70.905) (end 59.3725 72.0725) (width 2) (layer "F.Cu") (net 21) (tstamp 066852fa-d36b-43bb-85f2-a6b4243f72ad)) + (segment (start 55.88 75.565) (end 53.975 75.565) (width 2) (layer "F.Cu") (net 21) (tstamp 249aa638-316d-46e0-a046-9962c8a0a7be)) + (segment (start 53.975 75.565) (end 50.96 75.565) (width 2) (layer "F.Cu") (net 21) (tstamp 6550f4da-61b0-4125-bc4a-5d9e6e1ee694)) + (segment (start 59.3725 72.0725) (end 55.88 75.565) (width 2) (layer "F.Cu") (net 21) (tstamp 7a0adfcb-e65f-45cd-b15f-1cd0ddbad5ca)) + (segment (start 52.07 56.515) (end 60.54 64.985) (width 2) (layer "F.Cu") (net 21) (tstamp 7fe58093-583d-41ef-9dc7-a5957b4719e6)) + (segment (start 56.93 71.755) (end 59.055 71.755) (width 1) (layer "F.Cu") (net 21) (tstamp 8618f475-191d-403f-a4fd-1320937d2b4b)) + (segment (start 59.055 71.755) (end 59.3725 72.0725) (width 1) (layer "F.Cu") (net 21) (tstamp ada321cb-1977-4a6e-9b00-4dee1ad55ca4)) + (segment (start 60.54 64.985) (end 60.54 70.905) (width 2) (layer "F.Cu") (net 21) (tstamp bdb89c98-635d-42c5-afac-fc6c3bf04e58)) + (segment (start 50.96 56.515) (end 52.07 56.515) (width 2) (layer "F.Cu") (net 21) (tstamp bf90ca37-2481-4af3-b6c2-dc7c47681280)) + (segment (start 50.96 78.105) (end 52.07 78.105) (width 2) (layer "F.Cu") (net 22) (tstamp 176faa20-226e-4809-bfb1-d56d6b11b41d)) + (segment (start 48.46 86.4475) (end 50.96 86.4475) (width 2) (layer "F.Cu") (net 22) (tstamp 3b3aef3e-d2c7-401a-aa6b-94164a612c90)) + (segment (start 59.69 93.345) (end 59.69 92.93) (width 1) (layer "F.Cu") (net 22) (tstamp 3cf020a4-8ba0-4c89-bc94-3bc6f70126f8)) + (segment (start 52.07 78.105) (end 60.54 86.575) (width 2) (layer "F.Cu") (net 22) (tstamp 472131de-a4c1-442e-9005-76726a09c32e)) + (segment (start 48.46 91.005) (end 48.46 86.4475) (width 2) (layer "F.Cu") (net 22) (tstamp 5efe1963-65ed-42f7-bb05-9861767e9ae5)) + (segment (start 60.54 92.495) (end 59.69 93.345) (width 2) (layer "F.Cu") (net 22) (tstamp 73a577d1-5784-4bdd-bf31-086f7ca7b4b7)) + (segment (start 58.5625 94.4725) (end 59.69 93.345) (width 2) (layer "F.Cu") (net 22) (tstamp 9744cd76-653a-405f-b4a6-9ba12f1c940c)) + (segment (start 51.9275 94.4725) (end 58.5625 94.4725) (width 2) (layer "F.Cu") (net 22) (tstamp a1a2b873-4ece-4f5f-bfe9-b67b85f75558)) + (segment (start 59.69 92.93) (end 59.47 92.71) (width 1) (layer "F.Cu") (net 22) (tstamp c6b98802-b8ef-470f-b8d6-8c2bfdd1d2fc)) + (segment (start 50.8 93.345) (end 51.9275 94.4725) (width 2) (layer "F.Cu") (net 22) (tstamp ccbef230-1dc7-477f-a3a1-35fe6c15af5a)) + (segment (start 60.54 86.575) (end 60.54 92.495) (width 2) (layer "F.Cu") (net 22) (tstamp f6725e05-bf1c-42ff-baef-dc746da76ad7)) + (segment (start 50.8 93.345) (end 48.46 91.005) (width 2) (layer "F.Cu") (net 22) (tstamp f9a0a125-dc7a-4051-a4e3-01cd11b548e9)) + (segment (start 54.61 21.9925) (end 54.61 19.44) (width 2) (layer "F.Cu") (net 23) (tstamp 4e34a65c-24f2-44a9-9552-5baa94a4bccc)) + (segment (start 54.61 21.9925) (end 55.4275 22.81) (width 1) (layer "F.Cu") (net 23) (tstamp 6269ec4c-c4bd-4d99-9ee1-6203d530342a)) + (segment (start 55.4275 22.81) (end 57.96 22.81) (width 1) (layer "F.Cu") (net 23) (tstamp a0424235-ff99-4902-8269-cfc67fb7b041)) + (segment (start 50.96 19.05) (end 55 19.05) (width 2) (layer "F.Cu") (net 23) (tstamp d25d37e2-afd4-4cf9-a7eb-8f632a713737)) + (segment (start 54.83 28.575) (end 54.83 26.4875) (width 1) (layer "F.Cu") (net 24) (tstamp 00424083-3a06-4fab-9227-0f6abbadc52b)) + (segment (start 54.61 26.2675) (end 55.4275 25.45) (width 1) (layer "F.Cu") (net 24) (tstamp e7d3ba02-c542-4a6e-819c-bac9b5d0f909)) + (segment (start 55.4275 25.45) (end 57.96 25.45) (width 1) (layer "F.Cu") (net 24) (tstamp f7c587d2-2fe0-4b26-90b1-2c74cd4612ba)) + (segment (start 48.895 21.59) (end 48.46 22.025) (width 2) (layer "F.Cu") (net 25) (tstamp 19306891-16af-4694-a828-7a789e8136e0)) + (segment (start 52.705 40.64) (end 54.61 42.545) (width 2) (layer "F.Cu") (net 25) (tstamp 1daf9f6b-b098-447c-88a4-e631efc860de)) + (segment (start 48.46 38.14) (end 50.96 40.64) (width 2) (layer "F.Cu") (net 25) (tstamp 28042122-8000-4ec2-ae63-450571a4b334)) + (segment (start 48.46 22.025) (end 48.46 30.28) (width 2) (layer "F.Cu") (net 25) (tstamp 355c503f-de6e-4a00-98ee-2bbd9c0a6ca5)) + (segment (start 54.61 42.545) (end 54.61 43.5825) (width 2) (layer "F.Cu") (net 25) (tstamp 3cab63ad-0b16-4209-bf66-3a55411dceca)) + (segment (start 54.61 43.5825) (end 55.4275 44.4) (width 1) (layer "F.Cu") (net 25) (tstamp 5020c4e3-eb92-4ff0-8d74-6a01d58b51cf)) + (segment (start 50.96 21.59) (end 48.895 21.59) (width 2) (layer "F.Cu") (net 25) (tstamp 5482ab7a-af5c-4ecf-b516-9bdce87f7d4c)) + (segment (start 55.4275 44.4) (end 57.96 44.4) (width 1) (layer "F.Cu") (net 25) (tstamp 7f89b7b3-24da-4986-85f1-97f0db66de9e)) + (segment (start 48.46 30.28) (end 48.46 38.14) (width 2) (layer "F.Cu") (net 25) (tstamp b1e443f4-5038-442a-ac34-45564cf16c6f)) + (segment (start 48.895 29.845) (end 48.46 30.28) (width 2) (layer "F.Cu") (net 25) (tstamp bfafb6d1-a623-4077-bd56-caf9a3536be9)) + (segment (start 50.96 29.845) (end 48.895 29.845) (width 2) (layer "F.Cu") (net 25) (tstamp e7703231-0a8e-4041-b591-d9ef39e9db9e)) + (segment (start 50.96 40.64) (end 52.705 40.64) (width 2) (layer "F.Cu") (net 25) (tstamp f71ca8fc-391b-4365-93f9-f6b7c5fb254f)) + (segment (start 54.61 47.8575) (end 55.4275 47.04) (width 1) (layer "F.Cu") (net 26) (tstamp 1c5019b1-46d4-4984-8a01-362d6a1cce82)) + (segment (start 55.4275 47.04) (end 57.96 47.04) (width 1) (layer "F.Cu") (net 26) (tstamp ad842466-9e46-4d2c-b2be-b97cbf14f3d6)) + (segment (start 54.83 50.165) (end 54.83 48.0775) (width 1) (layer "F.Cu") (net 26) (tstamp c8b38c04-ce26-4fd9-a95f-66a124ffb0f0)) + (segment (start 48.5475 43.18) (end 48.46 43.2675) (width 2) (layer "F.Cu") (net 27) (tstamp 0c39745f-cdb4-42f8-b2a0-8828be85cd21)) + (segment (start 50.96 62.23) (end 52.07 62.23) (width 2) (layer "F.Cu") (net 27) (tstamp 1b035314-2b9e-48f4-a7c9-c2deb7c9fe8a)) + (segment (start 50.96 43.18) (end 48.5475 43.18) (width 2) (layer "F.Cu") (net 27) (tstamp 404d0661-4068-479f-85a0-e5549993ad27)) + (segment (start 48.46 51.635) (end 48.46 59.73) (width 2) (layer "F.Cu") (net 27) (tstamp 4f685399-e74e-44a7-9eb8-d1805a649f0f)) + (segment (start 54.61 65.1725) (end 55.4275 65.99) (width 1) (layer "F.Cu") (net 27) (tstamp 5b597d12-ecc7-43ae-8199-fb2e04b96d6c)) + (segment (start 48.66 51.435) (end 48.46 51.635) (width 2) (layer "F.Cu") (net 27) (tstamp 5cadce4d-4a1e-4af7-baaf-5fbf78949932)) + (segment (start 54.61 64.77) (end 54.61 65.1725) (width 2) (layer "F.Cu") (net 27) (tstamp 8b1b0c40-69f0-46dc-8f62-91b54bcf03a1)) + (segment (start 55.4275 65.99) (end 57.96 65.99) (width 1) (layer "F.Cu") (net 27) (tstamp 951fb68f-e2bc-4382-8f95-1e5694566506)) + (segment (start 50.96 51.435) (end 48.66 51.435) (width 2) (layer "F.Cu") (net 27) (tstamp ba88c8e3-eae8-4bca-8bfa-47efcd9f1c3b)) + (segment (start 48.46 43.2675) (end 48.46 51.635) (width 2) (layer "F.Cu") (net 27) (tstamp d8bcf9cf-28c1-4fd8-9e5c-94ad91992ad7)) + (segment (start 48.46 59.73) (end 50.96 62.23) (width 2) (layer "F.Cu") (net 27) (tstamp dc977a5f-ff3a-4c79-8b77-bc66c38ff992)) + (segment (start 52.07 62.23) (end 54.61 64.77) (width 2) (layer "F.Cu") (net 27) (tstamp eaedefd9-a44c-48b8-8e51-4e41ee85108a)) + (segment (start 55.4275 68.63) (end 57.96 68.63) (width 1) (layer "F.Cu") (net 28) (tstamp 52408008-8c99-4d3a-9cc0-4f301362c612)) + (segment (start 54.83 71.755) (end 54.83 69.6675) (width 1) (layer "F.Cu") (net 28) (tstamp 638c05ac-8e53-4357-94c2-3a31cf9e8340)) + (segment (start 54.61 69.4475) (end 55.4275 68.63) (width 1) (layer "F.Cu") (net 28) (tstamp cb61fd3f-f65e-4d94-b40c-8cf45ce3cb72)) + (segment (start 48.895 73.025) (end 48.46 72.59) (width 2) (layer "F.Cu") (net 29) (tstamp 155c5b6d-851e-45e2-8bc4-624b20dbef77)) + (segment (start 49.809141 83.82) (end 50.96 83.82) (width 2) (layer "F.Cu") (net 29) (tstamp 412c3144-c50d-4330-91c6-05ed9a29f58a)) + (segment (start 54.61 86.7625) (end 55.4275 87.58) (width 1) (layer "F.Cu") (net 29) (tstamp 5fde0381-b7e6-4fcf-ac8d-a6e80ec20f14)) + (segment (start 52.07 83.82) (end 54.61 86.36) (width 2) (layer "F.Cu") (net 29) (tstamp 66cafd64-3853-4dfb-bf4b-0a40d2e59d33)) + (segment (start 48.46 72.59) (end 48.46 82.470859) (width 2) (layer "F.Cu") (net 29) (tstamp 6f8af218-1481-4864-93ed-a738bd48bf5b)) + (segment (start 50.96 83.82) (end 52.07 83.82) (width 2) (layer "F.Cu") (net 29) (tstamp 793a4950-89f2-4aaa-bb4d-069c8c2c5011)) + (segment (start 48.46 64.8575) (end 48.46 72.59) (width 2) (layer "F.Cu") (net 29) (tstamp 80987aca-2b41-4647-b329-ba7a5ca2cdab)) + (segment (start 55.4275 87.58) (end 57.96 87.58) (width 1) (layer "F.Cu") (net 29) (tstamp 8e0ac09b-ee86-4d70-87d2-5efb9ac08844)) + (segment (start 54.61 86.36) (end 54.61 86.7625) (width 2) (layer "F.Cu") (net 29) (tstamp 8f15f807-477e-4829-826e-850b1c7598bf)) + (segment (start 48.46 82.470859) (end 49.809141 83.82) (width 2) (layer "F.Cu") (net 29) (tstamp a78aebb5-23d6-4d94-9a2f-37f032bbafcc)) + (segment (start 48.5475 64.77) (end 48.46 64.8575) (width 2) (layer "F.Cu") (net 29) (tstamp dddc0e0f-c4d1-4231-aff0-92639633c58b)) + (segment (start 50.96 64.77) (end 48.5475 64.77) (width 2) (layer "F.Cu") (net 29) (tstamp e9a65852-edb9-4333-b6aa-01a494c660a2)) + (segment (start 50.96 73.025) (end 48.895 73.025) (width 2) (layer "F.Cu") (net 29) (tstamp f7a9ee9d-8e70-41a3-9db5-92382637ba31)) + (segment (start 57.3575 92.7225) (end 57.37 92.71) (width 1) (layer "F.Cu") (net 30) (tstamp 27534811-f109-4315-8e5c-3b3dc7002c04)) + (segment (start 55.4275 90.22) (end 57.96 90.22) (width 1) (layer "F.Cu") (net 30) (tstamp 49245ea2-dee1-4ab8-a8ae-15424dd3f1e1)) + (segment (start 54.61 91.0375) (end 55.4275 90.22) (width 1) (layer "F.Cu") (net 30) (tstamp 58f4ff1a-69cc-409b-97ce-470d60554d96)) + (segment (start 56.295 92.7225) (end 57.3575 92.7225) (width 1) (layer "F.Cu") (net 30) (tstamp 5f3be7c3-701f-4965-8e7c-af8244a59f7c)) + (segment (start 56.295 92.7225) (end 54.61 91.0375) (width 1) (layer "F.Cu") (net 30) (tstamp fa8c1536-6c27-4f8c-8745-bb65b787d840)) + +) diff --git a/squeow_mod/fp-info-cache b/squeow_mod/fp-info-cache new file mode 100644 index 0000000..13c2ebf --- /dev/null +++ b/squeow_mod/fp-info-cache @@ -0,0 +1,435 @@ +103351009360878 +Resistor_SMD +R_0201_0603Metric +Resistor SMD 0201 (0603 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://www.vishay.com/docs/20052/crcw0201e3.pdf), generated with kicad-footprint-generator +resistor +0 +4 +2 +Resistor_SMD +R_0201_0603Metric_Pad0.64x0.40mm_HandSolder +Resistor SMD 0201 (0603 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.vishay.com/docs/20052/crcw0201e3.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +4 +2 +Resistor_SMD +R_0402_1005Metric +Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_0402_1005Metric_Pad0.72x0.64mm_HandSolder +Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_0603_1608Metric +Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_0603_1608Metric_Pad0.98x0.95mm_HandSolder +Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_0612_1632Metric +Resistor SMD 0612 (1632 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://www.vishay.com/docs/20019/rcwe.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_0612_1632Metric_Pad1.18x3.40mm_HandSolder +Resistor SMD 0612 (1632 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.vishay.com/docs/20019/rcwe.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_0805_2012Metric +Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_0805_2012Metric_Pad1.20x1.40mm_HandSolder +Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_0815_2038Metric +Resistor SMD 0815 (2038 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://www.susumu.co.jp/common/pdf/n_catalog_partition07_en.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_0815_2038Metric_Pad1.20x4.05mm_HandSolder +Resistor SMD 0815 (2038 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.susumu.co.jp/common/pdf/n_catalog_partition07_en.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_01005_0402Metric +Resistor SMD 01005 (0402 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: http://www.vishay.com/docs/20056/crcw01005e3.pdf), generated with kicad-footprint-generator +resistor +0 +4 +2 +Resistor_SMD +R_01005_0402Metric_Pad0.57x0.30mm_HandSolder +Resistor SMD 01005 (0402 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.vishay.com/docs/20056/crcw01005e3.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +4 +2 +Resistor_SMD +R_1020_2550Metric +Resistor SMD 1020 (2550 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://www.vishay.com/docs/20019/rcwe.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_1020_2550Metric_Pad1.33x5.20mm_HandSolder +Resistor SMD 1020 (2550 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.vishay.com/docs/20019/rcwe.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_1206_3216Metric +Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_1206_3216Metric_Pad1.30x1.75mm_HandSolder +Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_1210_3225Metric +Resistor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_1210_3225Metric_Pad1.30x2.65mm_HandSolder +Resistor SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_1218_3246Metric +Resistor SMD 1218 (3246 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://www.vishay.com/docs/20035/dcrcwe3.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_1218_3246Metric_Pad1.22x4.75mm_HandSolder +Resistor SMD 1218 (3246 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.vishay.com/docs/20035/dcrcwe3.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_1812_4532Metric +Resistor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://www.nikhef.nl/pub/departments/mt/projects/detectorR_D/dtddice/ERJ2G.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_1812_4532Metric_Pad1.30x3.40mm_HandSolder +Resistor SMD 1812 (4532 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.nikhef.nl/pub/departments/mt/projects/detectorR_D/dtddice/ERJ2G.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_2010_5025Metric +Resistor SMD 2010 (5025 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_2010_5025Metric_Pad1.40x2.65mm_HandSolder +Resistor SMD 2010 (5025 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_2512_6332Metric +Resistor SMD 2512 (6332 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_2512_6332Metric_Pad1.40x3.35mm_HandSolder +Resistor SMD 2512 (6332 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_2816_7142Metric +Resistor SMD 2816 (7142 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size from: https://www.vishay.com/docs/30100/wsl.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_2816_7142Metric_Pad3.20x4.45mm_HandSolder +Resistor SMD 2816 (7142 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size from: https://www.vishay.com/docs/30100/wsl.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_4020_10251Metric +Resistor SMD 4020 (10251 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: http://datasheet.octopart.com/HVC0603T5004FET-Ohmite-datasheet-26699797.pdf), generated with kicad-footprint-generator +resistor +0 +2 +2 +Resistor_SMD +R_4020_10251Metric_Pad1.65x5.30mm_HandSolder +Resistor SMD 4020 (10251 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://datasheet.octopart.com/HVC0603T5004FET-Ohmite-datasheet-26699797.pdf), generated with kicad-footprint-generator +resistor handsolder +0 +2 +2 +Resistor_SMD +R_Array_Concave_2x0603 +Thick Film Chip Resistor Array, Wave soldering, Vishay CRA06P (see cra06p.pdf) +resistor array +0 +4 +4 +Resistor_SMD +R_Array_Concave_4x0402 +Thick Film Chip Resistor Array, Wave soldering, Vishay CRA04P (see cra04p.pdf) +resistor array +0 +8 +8 +Resistor_SMD +R_Array_Concave_4x0603 +Thick Film Chip Resistor Array, Wave soldering, Vishay CRA06P (see cra06p.pdf) +resistor array +0 +8 +8 +Resistor_SMD +R_Array_Convex_2x0402 +Chip Resistor Network, ROHM MNR02 (see mnr_g.pdf) +resistor array +0 +4 +4 +Resistor_SMD +R_Array_Convex_2x0603 +Chip Resistor Network, ROHM MNR12 (see mnr_g.pdf) +resistor array +0 +4 +4 +Resistor_SMD +R_Array_Convex_2x0606 +Precision Thin Film Chip Resistor Array, VISHAY (see http://www.vishay.com/docs/28770/acasat.pdf) +resistor array +0 +4 +4 +Resistor_SMD +R_Array_Convex_2x1206 +Chip Resistor Network, ROHM MNR32 (see mnr_g.pdf) +resistor array +0 +4 +4 +Resistor_SMD +R_Array_Convex_4x0402 +Chip Resistor Network, ROHM MNR04 (see mnr_g.pdf) +resistor array +0 +8 +8 +Resistor_SMD +R_Array_Convex_4x0603 +Chip Resistor Network, ROHM MNR14 (see mnr_g.pdf) +resistor array +0 +8 +8 +Resistor_SMD +R_Array_Convex_4x0612 +Precision Thin Film Chip Resistor Array, VISHAY (see http://www.vishay.com/docs/28770/acasat.pdf) +resistor array +0 +8 +8 +Resistor_SMD +R_Array_Convex_4x1206 +Chip Resistor Network, ROHM MNR34 (see mnr_g.pdf) +resistor array +0 +8 +8 +Resistor_SMD +R_Array_Convex_5x0603 +Chip Resistor Network, ROHM MNR15 (see mnr_g.pdf) +resistor array +0 +10 +10 +Resistor_SMD +R_Array_Convex_5x1206 +Chip Resistor Network, ROHM MNR35 (see mnr_g.pdf) +resistor array +0 +10 +10 +Resistor_SMD +R_Array_Convex_8x0602 +Chip Resistor Network, ROHM MNR18 (see mnr_g.pdf) +resistor array +0 +16 +16 +Resistor_SMD +R_Cat16-2 +SMT resistor net, Bourns CAT16 series, 2 way +SMT resistor net Bourns CAT16 series 2 way +0 +4 +4 +Resistor_SMD +R_Cat16-4 +SMT resistor net, Bourns CAT16 series, 4 way +SMT resistor net Bourns CAT16 series 4 way +0 +8 +8 +Resistor_SMD +R_Cat16-8 +SMT resistor net, Bourns CAT16 series, 8 way +SMT resistor net Bourns CAT16 series 8 way +0 +16 +16 +Resistor_SMD +R_MELF_MMB-0207 +Resistor, MELF, MMB-0207, http://www.vishay.com/docs/28713/melfprof.pdf +MELF Resistor +0 +2 +2 +Resistor_SMD +R_MicroMELF_MMU-0102 +Resistor, MicroMELF, MMU-0102, http://www.vishay.com/docs/28713/melfprof.pdf +MicroMELF Resistor +0 +2 +2 +Resistor_SMD +R_MiniMELF_MMA-0204 +Resistor, MiniMELF, MMA-0204, http://www.vishay.com/docs/28713/melfprof.pdf +MiniMELF Resistor +0 +2 +2 +Resistor_SMD +R_Shunt_Ohmite_LVK12 +4 contact shunt resistor +shunt resistor 4 contacts +0 +4 +4 +Resistor_SMD +R_Shunt_Ohmite_LVK20 +4 contacts shunt resistor, https://www.ohmite.com/assets/docs/res_lvk.pdf +4 contacts resistor smd +0 +4 +4 +Resistor_SMD +R_Shunt_Ohmite_LVK24 +4 contacts shunt resistor,https://www.ohmite.com/assets/docs/res_lvk.pdf +4 contacts resistor smd +0 +4 +4 +Resistor_SMD +R_Shunt_Ohmite_LVK25 +4 contacts shunt resistor,https://www.ohmite.com/assets/docs/res_lvk.pdf +4 contacts resistor smd +0 +4 +4 +Resistor_SMD +R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm +Shunt Resistor SMD 2512 (6332 Metric), 2.6mm thick, Vishay WKS2512, Terminal length (T) 1.19mm, 5 to 200 milli Ohm (http://http://www.vishay.com/docs/30108/wsk.pdf) +resistor shunt WSK2512 +0 +4 +4 +Resistor_SMD +R_Shunt_Vishay_WSK2512_6332Metric_T2.21mm +Shunt Resistor SMD 2512 (6332 Metric), 2.6mm thick, Vishay WKS2512, Terminal length (T) 2.21mm, 1 to 4.9 milli Ohm (http://http://www.vishay.com/docs/30108/wsk.pdf) +resistor shunt WSK2512 +0 +4 +4 +Resistor_SMD +R_Shunt_Vishay_WSK2512_6332Metric_T2.66mm +Shunt Resistor SMD 2512 (6332 Metric), 2.6mm thick, Vishay WKS2512, Terminal length (T) 2.66mm, 0.5 to 0.99 milli Ohm (http://http://www.vishay.com/docs/30108/wsk.pdf) +resistor shunt WSK2512 +0 +4 +4 +Resistor_SMD +R_Shunt_Vishay_WSKW0612 +https://www.vishay.com/docs/30332/wskw0612.pdf +4-Terminal SMD Shunt +0 +4 +4 +Resistor_SMD +R_Shunt_Vishay_WSR2_WSR3 +Power Metal Strip Resistors 0.005 to 0.2, https://www.vishay.com/docs/30101/wsr.pdf +SMD Shunt Resistor +0 +2 +2 +Resistor_SMD +R_Shunt_Vishay_WSR2_WSR3_KelvinConnection +Power Metal Strip Resistors 0.005 to 0.2, https://www.vishay.com/docs/30101/wsr.pdf +SMD Shunt Resistor +0 +4 +2 diff --git a/squeow_mod/squeow_mod-B_Cu.gbr b/squeow_mod/squeow_mod-B_Cu.gbr new file mode 100644 index 0000000..a6c9fd7 --- /dev/null +++ b/squeow_mod/squeow_mod-B_Cu.gbr @@ -0,0 +1,129 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:52+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Copper,L2,Bot*% +%TF.FilePolarity,Positive*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:52* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +%TA.AperFunction,ComponentPad*% +%ADD10O,2.000000X1.905000*% +%TD*% +%TA.AperFunction,ComponentPad*% +%ADD11R,2.000000X1.905000*% +%TD*% +%TA.AperFunction,ComponentPad*% +%ADD12O,1.700000X1.700000*% +%TD*% +%TA.AperFunction,ComponentPad*% +%ADD13R,1.700000X1.700000*% +%TD*% +G04 APERTURE END LIST* +D10* +%TO.P,D1,3,K*% +%TO.N,Net-(C1-Pad2)*% +X3977500Y-56515000D03* +%TO.P,D1,2,A*% +%TO.N,Net-(D1-Pad2)*% +X3977500Y-59055000D03* +D11* +%TO.P,D1,1,K*% +%TO.N,Net-(D1-Pad1)*% +X3977500Y-61595000D03* +%TD*% +D10* +%TO.P,Q3,3,S*% +%TO.N,Net-(C3-Pad2)*% +X3977500Y-24130000D03* +%TO.P,Q3,2,D*% +%TO.N,Net-(C2-Pad2)*% +X3977500Y-26670000D03* +D11* +%TO.P,Q3,1,G*% +%TO.N,Net-(Q3-Pad1)*% +X3977500Y-29210000D03* +%TD*% +D10* +%TO.P,D3,3,K*% +%TO.N,Net-(C3-Pad2)*% +X3977500Y-13335000D03* +%TO.P,D3,2,A*% +%TO.N,Net-(D3-Pad2)*% +X3977500Y-15875000D03* +D11* +%TO.P,D3,1,K*% +%TO.N,Net-(D2-Pad2)*% +X3977500Y-18415000D03* +%TD*% +D10* +%TO.P,D2,3,K*% +%TO.N,Net-(C2-Pad2)*% +X3977500Y-34925000D03* +%TO.P,D2,2,A*% +%TO.N,Net-(D2-Pad2)*% +X3977500Y-37465000D03* +D11* +%TO.P,D2,1,K*% +%TO.N,Net-(D1-Pad2)*% +X3977500Y-40005000D03* +%TD*% +D12* +%TO.P,J6,5,Pin_5*% +%TO.N,Net-(J6-Pad5)*% +X24137500Y-33655000D03* +%TO.P,J6,4,Pin_4*% +%TO.N,Net-(J6-Pad4)*% +X24137500Y-36195000D03* +%TO.P,J6,3,Pin_3*% +%TO.N,Net-(J6-Pad3)*% +X24137500Y-38735000D03* +%TO.P,J6,2,Pin_2*% +%TO.N,Net-(J6-Pad2)*% +X24137500Y-41275000D03* +D13* +%TO.P,J6,1,Pin_1*% +%TO.N,Net-(J6-Pad1)*% +X24137500Y-43815000D03* +%TD*% +D10* +%TO.P,Q1,3,S*% +%TO.N,Net-(C1-Pad2)*% +X3977500Y-67310000D03* +%TO.P,Q1,2,D*% +%TO.N,Net-(D1-Pad1)*% +X3977500Y-69850000D03* +D11* +%TO.P,Q1,1,G*% +%TO.N,Net-(Q1-Pad1)*% +X3977500Y-72390000D03* +%TD*% +D10* +%TO.P,Q2,3,S*% +%TO.N,Net-(C2-Pad2)*% +X3977500Y-45720000D03* +%TO.P,Q2,2,D*% +%TO.N,Net-(C1-Pad2)*% +X3977500Y-48260000D03* +D11* +%TO.P,Q2,1,G*% +%TO.N,Net-(Q2-Pad1)*% +X3977500Y-50800000D03* +%TD*% +D10* +%TO.P,Q4,3,S*% +%TO.N,Net-(C4-Pad2)*% +X3977500Y-2540000D03* +%TO.P,Q4,2,D*% +%TO.N,Net-(C3-Pad2)*% +X3977500Y-5080000D03* +D11* +%TO.P,Q4,1,G*% +%TO.N,Net-(Q4-Pad1)*% +X3977500Y-7620000D03* +%TD*% +M02* diff --git a/squeow_mod/squeow_mod-B_Mask.gbr b/squeow_mod/squeow_mod-B_Mask.gbr new file mode 100644 index 0000000..2aafd4a --- /dev/null +++ b/squeow_mod/squeow_mod-B_Mask.gbr @@ -0,0 +1,92 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:54+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Soldermask,Bot*% +%TF.FilePolarity,Negative*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:54* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +%ADD10O,2.000000X1.905000*% +%ADD11R,2.000000X1.905000*% +%ADD12O,3.500000X3.500000*% +%ADD13O,1.700000X1.700000*% +%ADD14R,1.700000X1.700000*% +G04 APERTURE END LIST* +D10* +%TO.C,D1*% +X3977500Y-56515000D03* +X3977500Y-59055000D03* +D11* +X3977500Y-61595000D03* +D12* +X-11822500Y-59055000D03* +%TD*% +D10* +%TO.C,Q3*% +X3977500Y-24130000D03* +X3977500Y-26670000D03* +D11* +X3977500Y-29210000D03* +D12* +X-11822500Y-26670000D03* +%TD*% +D10* +%TO.C,D3*% +X3977500Y-13335000D03* +X3977500Y-15875000D03* +D11* +X3977500Y-18415000D03* +D12* +X-11822500Y-15875000D03* +%TD*% +D10* +%TO.C,D2*% +X3977500Y-34925000D03* +X3977500Y-37465000D03* +D11* +X3977500Y-40005000D03* +D12* +X-11822500Y-37465000D03* +%TD*% +D13* +%TO.C,J6*% +X24137500Y-33655000D03* +X24137500Y-36195000D03* +X24137500Y-38735000D03* +X24137500Y-41275000D03* +D14* +X24137500Y-43815000D03* +%TD*% +D10* +%TO.C,Q1*% +X3977500Y-67310000D03* +X3977500Y-69850000D03* +D11* +X3977500Y-72390000D03* +D12* +X-11822500Y-69850000D03* +%TD*% +D10* +%TO.C,Q2*% +X3977500Y-45720000D03* +X3977500Y-48260000D03* +D11* +X3977500Y-50800000D03* +D12* +X-11822500Y-48260000D03* +%TD*% +D10* +%TO.C,Q4*% +X3977500Y-2540000D03* +X3977500Y-5080000D03* +D11* +X3977500Y-7620000D03* +D12* +X-11822500Y-5080000D03* +%TD*% +M02* diff --git a/squeow_mod/squeow_mod-B_Paste.gbr b/squeow_mod/squeow_mod-B_Paste.gbr new file mode 100644 index 0000000..d20ef43 --- /dev/null +++ b/squeow_mod/squeow_mod-B_Paste.gbr @@ -0,0 +1,15 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:53+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Paste,Bot*% +%TF.FilePolarity,Positive*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 APERTURE END LIST* +M02* diff --git a/squeow_mod/squeow_mod-B_Silkscreen.gbr b/squeow_mod/squeow_mod-B_Silkscreen.gbr new file mode 100644 index 0000000..d8f2894 --- /dev/null +++ b/squeow_mod/squeow_mod-B_Silkscreen.gbr @@ -0,0 +1,15 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:53+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Legend,Bot*% +%TF.FilePolarity,Positive*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 APERTURE END LIST* +M02* diff --git a/squeow_mod/squeow_mod-Edge_Cuts.gbr b/squeow_mod/squeow_mod-Edge_Cuts.gbr new file mode 100644 index 0000000..274c56a --- /dev/null +++ b/squeow_mod/squeow_mod-Edge_Cuts.gbr @@ -0,0 +1,23 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:54+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Profile,NP*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:54* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +%TA.AperFunction,Profile*% +%ADD10C,0.100000*% +%TD*% +G04 APERTURE END LIST* +D10* +X0Y0D02* +X26035000Y0D01* +X26035000Y-79375000D01* +X0Y-79375000D01* +X0Y0D01* +M02* diff --git a/squeow_mod/squeow_mod-F_Cu.gbr b/squeow_mod/squeow_mod-F_Cu.gbr new file mode 100644 index 0000000..ea3af7e --- /dev/null +++ b/squeow_mod/squeow_mod-F_Cu.gbr @@ -0,0 +1,719 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:52+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Copper,L1,Top*% +%TF.FilePolarity,Positive*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:52* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +G04 Aperture macros list end* +%TA.AperFunction,ComponentPad*% +%ADD10O,2.000000X1.905000*% +%TD*% +%TA.AperFunction,ComponentPad*% +%ADD11R,2.000000X1.905000*% +%TD*% +%TA.AperFunction,SMDPad,CuDef*% +%ADD12C,4.000000*% +%TD*% +%TA.AperFunction,SMDPad,CuDef*% +%ADD13R,2.160000X0.640000*% +%TD*% +%TA.AperFunction,SMDPad,CuDef*% +%ADD14RoundRect,0.250000X-0.400000X-0.625000X0.400000X-0.625000X0.400000X0.625000X-0.400000X0.625000X0*% +%TD*% +%TA.AperFunction,SMDPad,CuDef*% +%ADD15RoundRect,0.250000X1.450000X-0.537500X1.450000X0.537500X-1.450000X0.537500X-1.450000X-0.537500X0*% +%TD*% +%TA.AperFunction,ComponentPad*% +%ADD16O,1.700000X1.700000*% +%TD*% +%TA.AperFunction,ComponentPad*% +%ADD17R,1.700000X1.700000*% +%TD*% +%TA.AperFunction,SMDPad,CuDef*% +%ADD18R,0.600000X0.450000*% +%TD*% +%TA.AperFunction,SMDPad,CuDef*% +%ADD19RoundRect,0.250000X-0.400000X-1.450000X0.400000X-1.450000X0.400000X1.450000X-0.400000X1.450000X0*% +%TD*% +%TA.AperFunction,Conductor*% +%ADD20C,1.000000*% +%TD*% +%TA.AperFunction,Conductor*% +%ADD21C,2.000000*% +%TD*% +G04 APERTURE END LIST* +D10* +%TO.P,D1,3,K*% +%TO.N,Net-(C1-Pad2)*% +X3977500Y-56515000D03* +%TO.P,D1,2,A*% +%TO.N,Net-(D1-Pad2)*% +X3977500Y-59055000D03* +D11* +%TO.P,D1,1,K*% +%TO.N,Net-(D1-Pad1)*% +X3977500Y-61595000D03* +%TD*% +D12* +%TO.P,J3,1,Pin_1*% +%TO.N,Net-(D2-Pad2)*% +X8017500Y-37465000D03* +%TD*% +D13* +%TO.P,U3,6,VCC*% +%TO.N,Net-(C3-Pad1)*% +X10977500Y-30480000D03* +%TO.P,U3,5,VO*% +%TO.N,Net-(Q3-Pad1)*% +X10977500Y-29210000D03* +%TO.P,U3,4,VEE*% +%TO.N,Net-(C3-Pad2)*% +X10977500Y-27940000D03* +%TO.P,U3,3,C*% +%TO.N,GND*% +X19517500Y-27940000D03* +%TO.P,U3,2,NC*% +%TO.N,unconnected-(U3-Pad2)*% +X19517500Y-29210000D03* +%TO.P,U3,1,A*% +%TO.N,Net-(R3-Pad1)*% +X19517500Y-30480000D03* +%TD*% +D10* +%TO.P,Q3,3,S*% +%TO.N,Net-(C3-Pad2)*% +X3977500Y-24130000D03* +%TO.P,Q3,2,D*% +%TO.N,Net-(C2-Pad2)*% +X3977500Y-26670000D03* +D11* +%TO.P,Q3,1,G*% +%TO.N,Net-(Q3-Pad1)*% +X3977500Y-29210000D03* +%TD*% +D10* +%TO.P,D3,3,K*% +%TO.N,Net-(C3-Pad2)*% +X3977500Y-13335000D03* +%TO.P,D3,2,A*% +%TO.N,Net-(D3-Pad2)*% +X3977500Y-15875000D03* +D11* +%TO.P,D3,1,K*% +%TO.N,Net-(D2-Pad2)*% +X3977500Y-18415000D03* +%TD*% +D14* +%TO.P,R3,2*% +%TO.N,Net-(J6-Pad3)*% +X20607500Y-38735000D03* +%TO.P,R3,1*% +%TO.N,Net-(R3-Pad1)*% +X17507500Y-38735000D03* +%TD*% +D10* +%TO.P,D2,3,K*% +%TO.N,Net-(C2-Pad2)*% +X3977500Y-34925000D03* +%TO.P,D2,2,A*% +%TO.N,Net-(D2-Pad2)*% +X3977500Y-37465000D03* +D11* +%TO.P,D2,1,K*% +%TO.N,Net-(D1-Pad2)*% +X3977500Y-40005000D03* +%TD*% +D15* +%TO.P,C2,2*% +%TO.N,Net-(C2-Pad2)*% +X7627500Y-48662500D03* +%TO.P,C2,1*% +%TO.N,Net-(C2-Pad1)*% +X7627500Y-52937500D03* +%TD*% +%TO.P,C4,2*% +%TO.N,Net-(C4-Pad2)*% +X7627500Y-5482500D03* +%TO.P,C4,1*% +%TO.N,Net-(C4-Pad1)*% +X7627500Y-9757500D03* +%TD*% +D16* +%TO.P,J6,5,Pin_5*% +%TO.N,Net-(J6-Pad5)*% +X24137500Y-33655000D03* +%TO.P,J6,4,Pin_4*% +%TO.N,Net-(J6-Pad4)*% +X24137500Y-36195000D03* +%TO.P,J6,3,Pin_3*% +%TO.N,Net-(J6-Pad3)*% +X24137500Y-38735000D03* +%TO.P,J6,2,Pin_2*% +%TO.N,Net-(J6-Pad2)*% +X24137500Y-41275000D03* +D17* +%TO.P,J6,1,Pin_1*% +%TO.N,Net-(J6-Pad1)*% +X24137500Y-43815000D03* +%TD*% +D12* +%TO.P,J2,1,Pin_1*% +%TO.N,Net-(D1-Pad2)*% +X8017500Y-59055000D03* +%TD*% +%TO.P,J4,1,Pin_1*% +%TO.N,Net-(D3-Pad2)*% +X8017500Y-15875000D03* +%TD*% +D18* +%TO.P,D6,2,A*% +%TO.N,Net-(D2-Pad2)*% +X9947500Y-33655000D03* +%TO.P,D6,1,K*% +%TO.N,Net-(C3-Pad1)*% +X7847500Y-33655000D03* +%TD*% +D12* +%TO.P,J5,1,Pin_1*% +%TO.N,Net-(C4-Pad2)*% +X8017500Y-2540000D03* +%TD*% +D18* +%TO.P,D7,2,A*% +%TO.N,Net-(D3-Pad2)*% +X9947500Y-12065000D03* +%TO.P,D7,1,K*% +%TO.N,Net-(C4-Pad1)*% +X7847500Y-12065000D03* +%TD*% +D15* +%TO.P,C3,2*% +%TO.N,Net-(C3-Pad2)*% +X7627500Y-27072500D03* +%TO.P,C3,1*% +%TO.N,Net-(C3-Pad1)*% +X7627500Y-31347500D03* +%TD*% +%TO.P,C1,2*% +%TO.N,Net-(C1-Pad2)*% +X7627500Y-70252500D03* +%TO.P,C1,1*% +%TO.N,Net-(C1-Pad1)*% +X7627500Y-74527500D03* +%TD*% +D13* +%TO.P,U4,6,VCC*% +%TO.N,Net-(C4-Pad1)*% +X10977500Y-8890000D03* +%TO.P,U4,5,VO*% +%TO.N,Net-(Q4-Pad1)*% +X10977500Y-7620000D03* +%TO.P,U4,4,VEE*% +%TO.N,Net-(C4-Pad2)*% +X10977500Y-6350000D03* +%TO.P,U4,3,C*% +%TO.N,GND*% +X19517500Y-6350000D03* +%TO.P,U4,2,NC*% +%TO.N,unconnected-(U4-Pad2)*% +X19517500Y-7620000D03* +%TO.P,U4,1,A*% +%TO.N,Net-(R4-Pad1)*% +X19517500Y-8890000D03* +%TD*% +D14* +%TO.P,R4,2*% +%TO.N,Net-(J6-Pad4)*% +X20607500Y-36195000D03* +%TO.P,R4,1*% +%TO.N,Net-(R4-Pad1)*% +X17507500Y-36195000D03* +%TD*% +D10* +%TO.P,Q1,3,S*% +%TO.N,Net-(C1-Pad2)*% +X3977500Y-67310000D03* +%TO.P,Q1,2,D*% +%TO.N,Net-(D1-Pad1)*% +X3977500Y-69850000D03* +D11* +%TO.P,Q1,1,G*% +%TO.N,Net-(Q1-Pad1)*% +X3977500Y-72390000D03* +%TD*% +D13* +%TO.P,U1,6,VCC*% +%TO.N,Net-(C1-Pad1)*% +X10977500Y-73660000D03* +%TO.P,U1,5,VO*% +%TO.N,Net-(Q1-Pad1)*% +X10977500Y-72390000D03* +%TO.P,U1,4,VEE*% +%TO.N,Net-(C1-Pad2)*% +X10977500Y-71120000D03* +%TO.P,U1,3,C*% +%TO.N,GND*% +X19517500Y-71120000D03* +%TO.P,U1,2,NC*% +%TO.N,unconnected-(U1-Pad2)*% +X19517500Y-72390000D03* +%TO.P,U1,1,A*% +%TO.N,Net-(R1-Pad1)*% +X19517500Y-73660000D03* +%TD*% +D18* +%TO.P,D4,2,A*% +%TO.N,Net-(D1-Pad1)*% +X12487500Y-76200000D03* +%TO.P,D4,1,K*% +%TO.N,Net-(C1-Pad1)*% +X10387500Y-76200000D03* +%TD*% +D14* +%TO.P,R1,2*% +%TO.N,Net-(J6-Pad1)*% +X20607500Y-43815000D03* +%TO.P,R1,1*% +%TO.N,Net-(R1-Pad1)*% +X17507500Y-43815000D03* +%TD*% +D10* +%TO.P,Q2,3,S*% +%TO.N,Net-(C2-Pad2)*% +X3977500Y-45720000D03* +%TO.P,Q2,2,D*% +%TO.N,Net-(C1-Pad2)*% +X3977500Y-48260000D03* +D11* +%TO.P,Q2,1,G*% +%TO.N,Net-(Q2-Pad1)*% +X3977500Y-50800000D03* +%TD*% +D18* +%TO.P,D5,2,A*% +%TO.N,Net-(D1-Pad2)*% +X9947500Y-55245000D03* +%TO.P,D5,1,K*% +%TO.N,Net-(C2-Pad1)*% +X7847500Y-55245000D03* +%TD*% +D12* +%TO.P,J1,1,Pin_1*% +%TO.N,Net-(D1-Pad1)*% +X4017500Y-76835000D03* +%TD*% +D10* +%TO.P,Q4,3,S*% +%TO.N,Net-(C4-Pad2)*% +X3977500Y-2540000D03* +%TO.P,Q4,2,D*% +%TO.N,Net-(C3-Pad2)*% +X3977500Y-5080000D03* +D11* +%TO.P,Q4,1,G*% +%TO.N,Net-(Q4-Pad1)*% +X3977500Y-7620000D03* +%TD*% +D14* +%TO.P,R2,2*% +%TO.N,Net-(J6-Pad2)*% +X20607500Y-41275000D03* +%TO.P,R2,1*% +%TO.N,Net-(R2-Pad1)*% +X17507500Y-41275000D03* +%TD*% +D19* +%TO.P,R5,2*% +%TO.N,Net-(J6-Pad5)*% +X23542500Y-25400000D03* +%TO.P,R5,1*% +%TO.N,GND*% +X19092500Y-25400000D03* +%TD*% +D13* +%TO.P,U2,6,VCC*% +%TO.N,Net-(C2-Pad1)*% +X10977500Y-52070000D03* +%TO.P,U2,5,VO*% +%TO.N,Net-(Q2-Pad1)*% +X10977500Y-50800000D03* +%TO.P,U2,4,VEE*% +%TO.N,Net-(C2-Pad2)*% +X10977500Y-49530000D03* +%TO.P,U2,3,C*% +%TO.N,GND*% +X19517500Y-49530000D03* +%TO.P,U2,2,NC*% +%TO.N,unconnected-(U2-Pad2)*% +X19517500Y-50800000D03* +%TO.P,U2,1,A*% +%TO.N,Net-(R2-Pad1)*% +X19517500Y-52070000D03* +%TD*% +D20* +%TO.N,Net-(C1-Pad1)*% +X10375000Y-76212500D02* +X10387500Y-76200000D01* +X8445000Y-73710000D02* +X10977500Y-73710000D01* +X7627500Y-74527500D02* +X8445000Y-73710000D01* +X9312500Y-76212500D02* +X10375000Y-76212500D01* +X9312500Y-76212500D02* +X7627500Y-74527500D01* +D21* +%TO.N,Net-(C1-Pad2)*% +X1912500Y-56515000D02* +X1477500Y-56080000D01* +X2826641Y-67310000D02* +X3977500Y-67310000D01* +D20* +X7627500Y-70252500D02* +X8445000Y-71070000D01* +D21* +X5087500Y-67310000D02* +X7627500Y-69850000D01* +X1477500Y-56080000D02* +X1477500Y-65960859D01* +X3977500Y-67310000D02* +X5087500Y-67310000D01* +X1477500Y-48347500D02* +X1477500Y-56080000D01* +D20* +X8445000Y-71070000D02* +X10977500Y-71070000D01* +D21* +X7627500Y-69850000D02* +X7627500Y-70252500D01* +X1477500Y-65960859D02* +X2826641Y-67310000D01* +X1565000Y-48260000D02* +X1477500Y-48347500D01* +X3977500Y-48260000D02* +X1565000Y-48260000D01* +X3977500Y-56515000D02* +X1912500Y-56515000D01* +D20* +%TO.N,Net-(C2-Pad1)*% +X8445000Y-52120000D02* +X10977500Y-52120000D01* +X7847500Y-55245000D02* +X7847500Y-53157500D01* +X7627500Y-52937500D02* +X8445000Y-52120000D01* +D21* +%TO.N,Net-(C2-Pad2)*% +X1565000Y-26670000D02* +X1477500Y-26757500D01* +X3977500Y-45720000D02* +X5087500Y-45720000D01* +X3977500Y-26670000D02* +X1565000Y-26670000D01* +X1477500Y-35125000D02* +X1477500Y-43220000D01* +D20* +X7627500Y-48662500D02* +X8445000Y-49480000D01* +D21* +X1677500Y-34925000D02* +X1477500Y-35125000D01* +X7627500Y-48260000D02* +X7627500Y-48662500D01* +D20* +X8445000Y-49480000D02* +X10977500Y-49480000D01* +D21* +X3977500Y-34925000D02* +X1677500Y-34925000D01* +X1477500Y-26757500D02* +X1477500Y-35125000D01* +X1477500Y-43220000D02* +X3977500Y-45720000D01* +X5087500Y-45720000D02* +X7627500Y-48260000D01* +D20* +%TO.N,Net-(C3-Pad1)*% +X7627500Y-31347500D02* +X8445000Y-30530000D01* +X8445000Y-30530000D02* +X10977500Y-30530000D01* +X7847500Y-33655000D02* +X7847500Y-31567500D01* +D21* +%TO.N,Net-(C3-Pad2)*% +X1912500Y-5080000D02* +X1477500Y-5515000D01* +X5722500Y-24130000D02* +X7627500Y-26035000D01* +X1477500Y-21630000D02* +X3977500Y-24130000D01* +X1477500Y-5515000D02* +X1477500Y-13770000D01* +X7627500Y-26035000D02* +X7627500Y-27072500D01* +D20* +X7627500Y-27072500D02* +X8445000Y-27890000D01* +D21* +X3977500Y-5080000D02* +X1912500Y-5080000D01* +D20* +X8445000Y-27890000D02* +X10977500Y-27890000D01* +D21* +X1477500Y-13770000D02* +X1477500Y-21630000D01* +X1912500Y-13335000D02* +X1477500Y-13770000D01* +X3977500Y-13335000D02* +X1912500Y-13335000D01* +X3977500Y-24130000D02* +X5722500Y-24130000D01* +D20* +%TO.N,Net-(C4-Pad1)*% +X7847500Y-12065000D02* +X7847500Y-9977500D01* +X7627500Y-9757500D02* +X8445000Y-8940000D01* +X8445000Y-8940000D02* +X10977500Y-8940000D01* +D21* +%TO.N,Net-(C4-Pad2)*% +X7627500Y-5482500D02* +X7627500Y-2930000D01* +D20* +X7627500Y-5482500D02* +X8445000Y-6300000D01* +X8445000Y-6300000D02* +X10977500Y-6300000D01* +D21* +X3977500Y-2540000D02* +X8017500Y-2540000D01* +%TO.N,Net-(D1-Pad2)*% +X13557500Y-54395000D02* +X12390000Y-55562500D01* +X8897500Y-59055000D02* +X6992500Y-59055000D01* +X6992500Y-59055000D02* +X3977500Y-59055000D01* +X12390000Y-55562500D02* +X8897500Y-59055000D01* +X5087500Y-40005000D02* +X13557500Y-48475000D01* +D20* +X9947500Y-55245000D02* +X12072500Y-55245000D01* +X12072500Y-55245000D02* +X12390000Y-55562500D01* +D21* +X13557500Y-48475000D02* +X13557500Y-54395000D01* +X3977500Y-40005000D02* +X5087500Y-40005000D01* +%TO.N,Net-(D2-Pad2)*% +X13977500Y-31750000D02* +X11120000Y-34607500D01* +X5087500Y-18415000D02* +X13977500Y-27305000D01* +D20* +X10167500Y-33655000D02* +X11120000Y-34607500D01* +D21* +X13977500Y-27305000D02* +X13977500Y-31750000D01* +X3977500Y-37465000D02* +X8017500Y-37465000D01* +X3977500Y-18415000D02* +X5087500Y-18415000D01* +D20* +X9947500Y-33655000D02* +X10167500Y-33655000D01* +D21* +X11120000Y-34607500D02* +X8262500Y-37465000D01* +D20* +%TO.N,Net-(D3-Pad2)*% +X6992500Y-15875000D02* +X9947500Y-12920000D01* +X9947500Y-12920000D02* +X9947500Y-12065000D01* +D21* +X6992500Y-15875000D02* +X3977500Y-15875000D01* +D20* +%TO.N,Net-(Q1-Pad1)*% +X10977500Y-72390000D02* +X3977500Y-72390000D01* +%TO.N,Net-(Q3-Pad1)*% +X10977500Y-29210000D02* +X3977500Y-29210000D01* +%TO.N,Net-(Q4-Pad1)*% +X3977500Y-7620000D02* +X10977500Y-7620000D01* +%TO.N,GND*% +X17152500Y-25400000D02* +X16517500Y-26035000D01* +X12072500Y-44450000D02* +X16517500Y-48895000D01* +X18422500Y-71120000D02* +X19517500Y-71120000D01* +X16517500Y-48895000D02* +X16517500Y-50165000D01* +X19517500Y-6350000D02* +X17887500Y-6350000D01* +X16517500Y-7720000D02* +X16517500Y-26035000D01* +X16517500Y-69215000D02* +X18422500Y-71120000D01* +X12072500Y-36830000D02* +X12072500Y-44450000D01* +X16517500Y-27940000D02* +X16517500Y-32385000D01* +X16517500Y-32385000D02* +X12072500Y-36830000D01* +X16517500Y-49530000D02* +X16517500Y-50165000D01* +X19517500Y-27940000D02* +X16517500Y-27940000D01* +X19517500Y-49530000D02* +X16517500Y-49530000D01* +X17887500Y-6350000D02* +X16517500Y-7720000D01* +X16517500Y-50165000D02* +X16517500Y-69215000D01* +X19092500Y-25400000D02* +X17152500Y-25400000D01* +X16517500Y-26035000D02* +X16517500Y-27940000D01* +%TO.N,Net-(Q2-Pad1)*% +X10977500Y-50800000D02* +X3977500Y-50800000D01* +%TO.N,Net-(J6-Pad2)*% +X24137500Y-41275000D02* +X20057500Y-41275000D01* +%TO.N,Net-(J6-Pad3)*% +X24137500Y-38735000D02* +X20057500Y-38735000D01* +%TO.N,Net-(J6-Pad4)*% +X20057500Y-36195000D02* +X24137500Y-36195000D01* +%TO.N,Net-(R1-Pad1)*% +X23502500Y-48260000D02* +X21597500Y-46355000D01* +X20047500Y-46355000D02* +X17507500Y-43815000D01* +X21597500Y-46355000D02* +X20047500Y-46355000D01* +X21147500Y-73660000D02* +X23502500Y-71305000D01* +X19517500Y-73660000D02* +X21147500Y-73660000D01* +X23502500Y-71305000D02* +X23502500Y-48260000D01* +D21* +%TO.N,Net-(D1-Pad1)*% +X3977500Y-61595000D02* +X5087500Y-61595000D01* +X1477500Y-69937500D02* +X3977500Y-69937500D01* +D20* +X12707500Y-76835000D02* +X12707500Y-76420000D01* +D21* +X5087500Y-61595000D02* +X13557500Y-70065000D01* +X1477500Y-74495000D02* +X1477500Y-69937500D01* +X13557500Y-75985000D02* +X12707500Y-76835000D01* +X11580000Y-77962500D02* +X12707500Y-76835000D01* +X4945000Y-77962500D02* +X11580000Y-77962500D01* +D20* +X12707500Y-76420000D02* +X12487500Y-76200000D01* +D21* +X3817500Y-76835000D02* +X4945000Y-77962500D01* +X13557500Y-70065000D02* +X13557500Y-75985000D01* +X3817500Y-76835000D02* +X1477500Y-74495000D01* +D20* +%TO.N,Net-(J6-Pad1)*% +X24137500Y-43815000D02* +X20057500Y-43815000D01* +%TO.N,Net-(R2-Pad1)*% +X21147500Y-52070000D02* +X21347500Y-51870000D01* +X19518286Y-47490000D02* +X18017500Y-47490000D01* +X16232500Y-41275000D02* +X17507500Y-41275000D01* +X19633286Y-47605000D02* +X19518286Y-47490000D01* +X15017500Y-44490000D02* +X15017500Y-42490000D01* +X15017500Y-42490000D02* +X16232500Y-41275000D01* +X18017500Y-47490000D02* +X15017500Y-44490000D01* +X21347500Y-51870000D02* +X21347500Y-48645000D01* +X21347500Y-48645000D02* +X20307500Y-47605000D01* +X20307500Y-47605000D02* +X19633286Y-47605000D01* +X19517500Y-52070000D02* +X21147500Y-52070000D01* +%TO.N,Net-(R3-Pad1)*% +X16017500Y-37245000D02* +X17507500Y-38735000D01* +X19517500Y-31152766D02* +X16017500Y-34652766D01* +X19517500Y-30480000D02* +X19517500Y-31152766D01* +X16017500Y-34652766D02* +X16017500Y-37245000D01* +%TO.N,Net-(R4-Pad1)*% +X21347500Y-10720000D02* +X19517500Y-8890000D01* +X17507500Y-35390000D02* +X21347500Y-31550000D01* +X17507500Y-36195000D02* +X17507500Y-35390000D01* +X21347500Y-31550000D02* +X21347500Y-10720000D01* +%TO.N,Net-(J6-Pad5)*% +X24137500Y-25995000D02* +X23542500Y-25400000D01* +X24137500Y-33655000D02* +X24137500Y-25995000D01* +%TD*% +M02* diff --git a/squeow_mod/squeow_mod-F_Mask.gbr b/squeow_mod/squeow_mod-F_Mask.gbr new file mode 100644 index 0000000..e301865 --- /dev/null +++ b/squeow_mod/squeow_mod-F_Mask.gbr @@ -0,0 +1,234 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:53+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Soldermask,Top*% +%TF.FilePolarity,Negative*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +G04 Aperture macros list end* +%ADD10O,2.000000X1.905000*% +%ADD11R,2.000000X1.905000*% +%ADD12O,3.500000X3.500000*% +%ADD13C,4.000000*% +%ADD14R,2.160000X0.640000*% +%ADD15RoundRect,0.250000X-0.400000X-0.625000X0.400000X-0.625000X0.400000X0.625000X-0.400000X0.625000X0*% +%ADD16RoundRect,0.250000X1.450000X-0.537500X1.450000X0.537500X-1.450000X0.537500X-1.450000X-0.537500X0*% +%ADD17O,1.700000X1.700000*% +%ADD18R,1.700000X1.700000*% +%ADD19R,0.600000X0.450000*% +%ADD20RoundRect,0.250000X-0.400000X-1.450000X0.400000X-1.450000X0.400000X1.450000X-0.400000X1.450000X0*% +G04 APERTURE END LIST* +D10* +%TO.C,D1*% +X3977500Y-56515000D03* +X3977500Y-59055000D03* +D11* +X3977500Y-61595000D03* +D12* +X-11822500Y-59055000D03* +%TD*% +D13* +%TO.C,J3*% +X8017500Y-37465000D03* +%TD*% +D14* +%TO.C,U3*% +X10977500Y-30480000D03* +X10977500Y-29210000D03* +X10977500Y-27940000D03* +X19517500Y-27940000D03* +X19517500Y-29210000D03* +X19517500Y-30480000D03* +%TD*% +D10* +%TO.C,Q3*% +X3977500Y-24130000D03* +X3977500Y-26670000D03* +D11* +X3977500Y-29210000D03* +D12* +X-11822500Y-26670000D03* +%TD*% +D10* +%TO.C,D3*% +X3977500Y-13335000D03* +X3977500Y-15875000D03* +D11* +X3977500Y-18415000D03* +D12* +X-11822500Y-15875000D03* +%TD*% +D15* +%TO.C,R3*% +X20607500Y-38735000D03* +X17507500Y-38735000D03* +%TD*% +D10* +%TO.C,D2*% +X3977500Y-34925000D03* +X3977500Y-37465000D03* +D11* +X3977500Y-40005000D03* +D12* +X-11822500Y-37465000D03* +%TD*% +D16* +%TO.C,C2*% +X7627500Y-48662500D03* +X7627500Y-52937500D03* +%TD*% +%TO.C,C4*% +X7627500Y-5482500D03* +X7627500Y-9757500D03* +%TD*% +D17* +%TO.C,J6*% +X24137500Y-33655000D03* +X24137500Y-36195000D03* +X24137500Y-38735000D03* +X24137500Y-41275000D03* +D18* +X24137500Y-43815000D03* +%TD*% +D13* +%TO.C,J2*% +X8017500Y-59055000D03* +%TD*% +%TO.C,J4*% +X8017500Y-15875000D03* +%TD*% +D19* +%TO.C,D6*% +X9947500Y-33655000D03* +X7847500Y-33655000D03* +%TD*% +D13* +%TO.C,J5*% +X8017500Y-2540000D03* +%TD*% +D19* +%TO.C,D7*% +X9947500Y-12065000D03* +X7847500Y-12065000D03* +%TD*% +D16* +%TO.C,C3*% +X7627500Y-27072500D03* +X7627500Y-31347500D03* +%TD*% +%TO.C,C1*% +X7627500Y-70252500D03* +X7627500Y-74527500D03* +%TD*% +D14* +%TO.C,U4*% +X10977500Y-8890000D03* +X10977500Y-7620000D03* +X10977500Y-6350000D03* +X19517500Y-6350000D03* +X19517500Y-7620000D03* +X19517500Y-8890000D03* +%TD*% +D15* +%TO.C,R4*% +X20607500Y-36195000D03* +X17507500Y-36195000D03* +%TD*% +D10* +%TO.C,Q1*% +X3977500Y-67310000D03* +X3977500Y-69850000D03* +D11* +X3977500Y-72390000D03* +D12* +X-11822500Y-69850000D03* +%TD*% +D14* +%TO.C,U1*% +X10977500Y-73660000D03* +X10977500Y-72390000D03* +X10977500Y-71120000D03* +X19517500Y-71120000D03* +X19517500Y-72390000D03* +X19517500Y-73660000D03* +%TD*% +D19* +%TO.C,D4*% +X12487500Y-76200000D03* +X10387500Y-76200000D03* +%TD*% +D15* +%TO.C,R1*% +X20607500Y-43815000D03* +X17507500Y-43815000D03* +%TD*% +D10* +%TO.C,Q2*% +X3977500Y-45720000D03* +X3977500Y-48260000D03* +D11* +X3977500Y-50800000D03* +D12* +X-11822500Y-48260000D03* +%TD*% +D19* +%TO.C,D5*% +X9947500Y-55245000D03* +X7847500Y-55245000D03* +%TD*% +D13* +%TO.C,J1*% +X4017500Y-76835000D03* +%TD*% +D10* +%TO.C,Q4*% +X3977500Y-2540000D03* +X3977500Y-5080000D03* +D11* +X3977500Y-7620000D03* +D12* +X-11822500Y-5080000D03* +%TD*% +D15* +%TO.C,R2*% +X20607500Y-41275000D03* +X17507500Y-41275000D03* +%TD*% +D20* +%TO.C,R5*% +X23542500Y-25400000D03* +X19092500Y-25400000D03* +%TD*% +D14* +%TO.C,U2*% +X10977500Y-52070000D03* +X10977500Y-50800000D03* +X10977500Y-49530000D03* +X19517500Y-49530000D03* +X19517500Y-50800000D03* +X19517500Y-52070000D03* +%TD*% +M02* diff --git a/squeow_mod/squeow_mod-F_Paste.gbr b/squeow_mod/squeow_mod-F_Paste.gbr new file mode 100644 index 0000000..952413d --- /dev/null +++ b/squeow_mod/squeow_mod-F_Paste.gbr @@ -0,0 +1,136 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:52+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Paste,Top*% +%TF.FilePolarity,Positive*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:52* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +G04 Aperture macros list* +%AMRoundRect* +0 Rectangle with rounded corners* +0 $1 Rounding radius* +0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* +0 Add a 4 corners polygon primitive as box body* +4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* +0 Add four circle primitives for the rounded corners* +1,1,$1+$1,$2,$3* +1,1,$1+$1,$4,$5* +1,1,$1+$1,$6,$7* +1,1,$1+$1,$8,$9* +0 Add four rect primitives between the rounded corners* +20,1,$1+$1,$2,$3,$4,$5,0* +20,1,$1+$1,$4,$5,$6,$7,0* +20,1,$1+$1,$6,$7,$8,$9,0* +20,1,$1+$1,$8,$9,$2,$3,0*% +G04 Aperture macros list end* +%ADD10R,2.160000X0.640000*% +%ADD11RoundRect,0.250000X-0.400000X-0.625000X0.400000X-0.625000X0.400000X0.625000X-0.400000X0.625000X0*% +%ADD12RoundRect,0.250000X1.450000X-0.537500X1.450000X0.537500X-1.450000X0.537500X-1.450000X-0.537500X0*% +%ADD13R,0.600000X0.450000*% +%ADD14RoundRect,0.250000X-0.400000X-1.450000X0.400000X-1.450000X0.400000X1.450000X-0.400000X1.450000X0*% +G04 APERTURE END LIST* +D10* +%TO.C,U3*% +X10977500Y-30480000D03* +X10977500Y-29210000D03* +X10977500Y-27940000D03* +X19517500Y-27940000D03* +X19517500Y-29210000D03* +X19517500Y-30480000D03* +%TD*% +D11* +%TO.C,R3*% +X20607500Y-38735000D03* +X17507500Y-38735000D03* +%TD*% +D12* +%TO.C,C2*% +X7627500Y-48662500D03* +X7627500Y-52937500D03* +%TD*% +%TO.C,C4*% +X7627500Y-5482500D03* +X7627500Y-9757500D03* +%TD*% +D13* +%TO.C,D6*% +X9947500Y-33655000D03* +X7847500Y-33655000D03* +%TD*% +%TO.C,D7*% +X9947500Y-12065000D03* +X7847500Y-12065000D03* +%TD*% +D12* +%TO.C,C3*% +X7627500Y-27072500D03* +X7627500Y-31347500D03* +%TD*% +%TO.C,C1*% +X7627500Y-70252500D03* +X7627500Y-74527500D03* +%TD*% +D10* +%TO.C,U4*% +X10977500Y-8890000D03* +X10977500Y-7620000D03* +X10977500Y-6350000D03* +X19517500Y-6350000D03* +X19517500Y-7620000D03* +X19517500Y-8890000D03* +%TD*% +D11* +%TO.C,R4*% +X20607500Y-36195000D03* +X17507500Y-36195000D03* +%TD*% +D10* +%TO.C,U1*% +X10977500Y-73660000D03* +X10977500Y-72390000D03* +X10977500Y-71120000D03* +X19517500Y-71120000D03* +X19517500Y-72390000D03* +X19517500Y-73660000D03* +%TD*% +D13* +%TO.C,D4*% +X12487500Y-76200000D03* +X10387500Y-76200000D03* +%TD*% +D11* +%TO.C,R1*% +X20607500Y-43815000D03* +X17507500Y-43815000D03* +%TD*% +D13* +%TO.C,D5*% +X9947500Y-55245000D03* +X7847500Y-55245000D03* +%TD*% +D11* +%TO.C,R2*% +X20607500Y-41275000D03* +X17507500Y-41275000D03* +%TD*% +D14* +%TO.C,R5*% +X23542500Y-25400000D03* +X19092500Y-25400000D03* +%TD*% +D10* +%TO.C,U2*% +X10977500Y-52070000D03* +X10977500Y-50800000D03* +X10977500Y-49530000D03* +X19517500Y-49530000D03* +X19517500Y-50800000D03* +X19517500Y-52070000D03* +%TD*% +M02* diff --git a/squeow_mod/squeow_mod-F_Silkscreen.gbr b/squeow_mod/squeow_mod-F_Silkscreen.gbr new file mode 100644 index 0000000..face792 --- /dev/null +++ b/squeow_mod/squeow_mod-F_Silkscreen.gbr @@ -0,0 +1,1579 @@ +%TF.GenerationSoftware,KiCad,Pcbnew,7.0.5+dfsg-2*% +%TF.CreationDate,2023-06-30T15:01:53+02:00*% +%TF.ProjectId,squeow_mod,73717565-6f77-45f6-9d6f-642e6b696361,rev?*% +%TF.SameCoordinates,PX2cce564PYfbec30*% +%TF.FileFunction,Legend,Top*% +%TF.FilePolarity,Positive*% +%FSLAX46Y46*% +G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* +G04 Created by KiCad (PCBNEW 7.0.5+dfsg-2) date 2023-06-30 15:01:53* +%MOMM*% +%LPD*% +G01* +G04 APERTURE LIST* +%ADD10C,0.150000*% +%ADD11C,0.120000*% +G04 APERTURE END LIST* +D10* +%TO.C,D1*% +X-15787681Y-59793094D02* +X-16787681Y-59793094D01* +X-16787681Y-59793094D02* +X-16787681Y-59554999D01* +X-16787681Y-59554999D02* +X-16740062Y-59412142D01* +X-16740062Y-59412142D02* +X-16644824Y-59316904D01* +X-16644824Y-59316904D02* +X-16549586Y-59269285D01* +X-16549586Y-59269285D02* +X-16359110Y-59221666D01* +X-16359110Y-59221666D02* +X-16216253Y-59221666D01* +X-16216253Y-59221666D02* +X-16025777Y-59269285D01* +X-16025777Y-59269285D02* +X-15930539Y-59316904D01* +X-15930539Y-59316904D02* +X-15835300Y-59412142D01* +X-15835300Y-59412142D02* +X-15787681Y-59554999D01* +X-15787681Y-59554999D02* +X-15787681Y-59793094D01* +X-15787681Y-58269285D02* +X-15787681Y-58840713D01* +X-15787681Y-58554999D02* +X-16787681Y-58554999D01* +X-16787681Y-58554999D02* +X-16644824Y-58650237D01* +X-16644824Y-58650237D02* +X-16549586Y-58745475D01* +X-16549586Y-58745475D02* +X-16501967Y-58840713D01* +%TO.C,J3*% +X7684166Y-34021819D02* +X7684166Y-34736104D01* +X7684166Y-34736104D02* +X7636547Y-34878961D01* +X7636547Y-34878961D02* +X7541309Y-34974200D01* +X7541309Y-34974200D02* +X7398452Y-35021819D01* +X7398452Y-35021819D02* +X7303214Y-35021819D01* +X8065119Y-34021819D02* +X8684166Y-34021819D01* +X8684166Y-34021819D02* +X8350833Y-34402771D01* +X8350833Y-34402771D02* +X8493690Y-34402771D01* +X8493690Y-34402771D02* +X8588928Y-34450390D01* +X8588928Y-34450390D02* +X8636547Y-34498009D01* +X8636547Y-34498009D02* +X8684166Y-34593247D01* +X8684166Y-34593247D02* +X8684166Y-34831342D01* +X8684166Y-34831342D02* +X8636547Y-34926580D01* +X8636547Y-34926580D02* +X8588928Y-34974200D01* +X8588928Y-34974200D02* +X8493690Y-35021819D01* +X8493690Y-35021819D02* +X8207976Y-35021819D01* +X8207976Y-35021819D02* +X8112738Y-34974200D01* +X8112738Y-34974200D02* +X8065119Y-34926580D01* +%TO.C,U3*% +X14385595Y-31929819D02* +X14385595Y-32739342D01* +X14385595Y-32739342D02* +X14433214Y-32834580D01* +X14433214Y-32834580D02* +X14480833Y-32882200D01* +X14480833Y-32882200D02* +X14576071Y-32929819D01* +X14576071Y-32929819D02* +X14766547Y-32929819D01* +X14766547Y-32929819D02* +X14861785Y-32882200D01* +X14861785Y-32882200D02* +X14909404Y-32834580D01* +X14909404Y-32834580D02* +X14957023Y-32739342D01* +X14957023Y-32739342D02* +X14957023Y-31929819D01* +X15337976Y-31929819D02* +X15957023Y-31929819D01* +X15957023Y-31929819D02* +X15623690Y-32310771D01* +X15623690Y-32310771D02* +X15766547Y-32310771D01* +X15766547Y-32310771D02* +X15861785Y-32358390D01* +X15861785Y-32358390D02* +X15909404Y-32406009D01* +X15909404Y-32406009D02* +X15957023Y-32501247D01* +X15957023Y-32501247D02* +X15957023Y-32739342D01* +X15957023Y-32739342D02* +X15909404Y-32834580D01* +X15909404Y-32834580D02* +X15861785Y-32882200D01* +X15861785Y-32882200D02* +X15766547Y-32929819D01* +X15766547Y-32929819D02* +X15480833Y-32929819D01* +X15480833Y-32929819D02* +X15385595Y-32882200D01* +X15385595Y-32882200D02* +X15337976Y-32834580D01* +%TO.C,Q3*% +X-15692443Y-26765238D02* +X-15740062Y-26860476D01* +X-15740062Y-26860476D02* +X-15835300Y-26955714D01* +X-15835300Y-26955714D02* +X-15978158Y-27098571D01* +X-15978158Y-27098571D02* +X-16025777Y-27193809D01* +X-16025777Y-27193809D02* +X-16025777Y-27289047D01* +X-15787681Y-27241428D02* +X-15835300Y-27336666D01* +X-15835300Y-27336666D02* +X-15930539Y-27431904D01* +X-15930539Y-27431904D02* +X-16121015Y-27479523D01* +X-16121015Y-27479523D02* +X-16454348Y-27479523D01* +X-16454348Y-27479523D02* +X-16644824Y-27431904D01* +X-16644824Y-27431904D02* +X-16740062Y-27336666D01* +X-16740062Y-27336666D02* +X-16787681Y-27241428D01* +X-16787681Y-27241428D02* +X-16787681Y-27050952D01* +X-16787681Y-27050952D02* +X-16740062Y-26955714D01* +X-16740062Y-26955714D02* +X-16644824Y-26860476D01* +X-16644824Y-26860476D02* +X-16454348Y-26812857D01* +X-16454348Y-26812857D02* +X-16121015Y-26812857D01* +X-16121015Y-26812857D02* +X-15930539Y-26860476D01* +X-15930539Y-26860476D02* +X-15835300Y-26955714D01* +X-15835300Y-26955714D02* +X-15787681Y-27050952D01* +X-15787681Y-27050952D02* +X-15787681Y-27241428D01* +X-16787681Y-26479523D02* +X-16787681Y-25860476D01* +X-16787681Y-25860476D02* +X-16406729Y-26193809D01* +X-16406729Y-26193809D02* +X-16406729Y-26050952D01* +X-16406729Y-26050952D02* +X-16359110Y-25955714D01* +X-16359110Y-25955714D02* +X-16311491Y-25908095D01* +X-16311491Y-25908095D02* +X-16216253Y-25860476D01* +X-16216253Y-25860476D02* +X-15978158Y-25860476D01* +X-15978158Y-25860476D02* +X-15882920Y-25908095D01* +X-15882920Y-25908095D02* +X-15835300Y-25955714D01* +X-15835300Y-25955714D02* +X-15787681Y-26050952D01* +X-15787681Y-26050952D02* +X-15787681Y-26336666D01* +X-15787681Y-26336666D02* +X-15835300Y-26431904D01* +X-15835300Y-26431904D02* +X-15882920Y-26479523D01* +%TO.C,D3*% +X-15787681Y-16613094D02* +X-16787681Y-16613094D01* +X-16787681Y-16613094D02* +X-16787681Y-16374999D01* +X-16787681Y-16374999D02* +X-16740062Y-16232142D01* +X-16740062Y-16232142D02* +X-16644824Y-16136904D01* +X-16644824Y-16136904D02* +X-16549586Y-16089285D01* +X-16549586Y-16089285D02* +X-16359110Y-16041666D01* +X-16359110Y-16041666D02* +X-16216253Y-16041666D01* +X-16216253Y-16041666D02* +X-16025777Y-16089285D01* +X-16025777Y-16089285D02* +X-15930539Y-16136904D01* +X-15930539Y-16136904D02* +X-15835300Y-16232142D01* +X-15835300Y-16232142D02* +X-15787681Y-16374999D01* +X-15787681Y-16374999D02* +X-15787681Y-16613094D01* +X-16787681Y-15708332D02* +X-16787681Y-15089285D01* +X-16787681Y-15089285D02* +X-16406729Y-15422618D01* +X-16406729Y-15422618D02* +X-16406729Y-15279761D01* +X-16406729Y-15279761D02* +X-16359110Y-15184523D01* +X-16359110Y-15184523D02* +X-16311491Y-15136904D01* +X-16311491Y-15136904D02* +X-16216253Y-15089285D01* +X-16216253Y-15089285D02* +X-15978158Y-15089285D01* +X-15978158Y-15089285D02* +X-15882920Y-15136904D01* +X-15882920Y-15136904D02* +X-15835300Y-15184523D01* +X-15835300Y-15184523D02* +X-15787681Y-15279761D01* +X-15787681Y-15279761D02* +X-15787681Y-15565475D01* +X-15787681Y-15565475D02* +X-15835300Y-15660713D01* +X-15835300Y-15660713D02* +X-15882920Y-15708332D01* +%TO.C,R3*% +X18890833Y-37369819D02* +X18557500Y-36893628D01* +X18319405Y-37369819D02* +X18319405Y-36369819D01* +X18319405Y-36369819D02* +X18700357Y-36369819D01* +X18700357Y-36369819D02* +X18795595Y-36417438D01* +X18795595Y-36417438D02* +X18843214Y-36465057D01* +X18843214Y-36465057D02* +X18890833Y-36560295D01* +X18890833Y-36560295D02* +X18890833Y-36703152D01* +X18890833Y-36703152D02* +X18843214Y-36798390D01* +X18843214Y-36798390D02* +X18795595Y-36846009D01* +X18795595Y-36846009D02* +X18700357Y-36893628D01* +X18700357Y-36893628D02* +X18319405Y-36893628D01* +X19224167Y-36369819D02* +X19843214Y-36369819D01* +X19843214Y-36369819D02* +X19509881Y-36750771D01* +X19509881Y-36750771D02* +X19652738Y-36750771D01* +X19652738Y-36750771D02* +X19747976Y-36798390D01* +X19747976Y-36798390D02* +X19795595Y-36846009D01* +X19795595Y-36846009D02* +X19843214Y-36941247D01* +X19843214Y-36941247D02* +X19843214Y-37179342D01* +X19843214Y-37179342D02* +X19795595Y-37274580D01* +X19795595Y-37274580D02* +X19747976Y-37322200D01* +X19747976Y-37322200D02* +X19652738Y-37369819D01* +X19652738Y-37369819D02* +X19367024Y-37369819D01* +X19367024Y-37369819D02* +X19271786Y-37322200D01* +X19271786Y-37322200D02* +X19224167Y-37274580D01* +%TO.C,D2*% +X-15787681Y-38203094D02* +X-16787681Y-38203094D01* +X-16787681Y-38203094D02* +X-16787681Y-37964999D01* +X-16787681Y-37964999D02* +X-16740062Y-37822142D01* +X-16740062Y-37822142D02* +X-16644824Y-37726904D01* +X-16644824Y-37726904D02* +X-16549586Y-37679285D01* +X-16549586Y-37679285D02* +X-16359110Y-37631666D01* +X-16359110Y-37631666D02* +X-16216253Y-37631666D01* +X-16216253Y-37631666D02* +X-16025777Y-37679285D01* +X-16025777Y-37679285D02* +X-15930539Y-37726904D01* +X-15930539Y-37726904D02* +X-15835300Y-37822142D01* +X-15835300Y-37822142D02* +X-15787681Y-37964999D01* +X-15787681Y-37964999D02* +X-15787681Y-38203094D01* +X-16692443Y-37250713D02* +X-16740062Y-37203094D01* +X-16740062Y-37203094D02* +X-16787681Y-37107856D01* +X-16787681Y-37107856D02* +X-16787681Y-36869761D01* +X-16787681Y-36869761D02* +X-16740062Y-36774523D01* +X-16740062Y-36774523D02* +X-16692443Y-36726904D01* +X-16692443Y-36726904D02* +X-16597205Y-36679285D01* +X-16597205Y-36679285D02* +X-16501967Y-36679285D01* +X-16501967Y-36679285D02* +X-16359110Y-36726904D01* +X-16359110Y-36726904D02* +X-15787681Y-37298332D01* +X-15787681Y-37298332D02* +X-15787681Y-36679285D01* +%TO.C,C2*% +X5337080Y-50966666D02* +X5384700Y-51014285D01* +X5384700Y-51014285D02* +X5432319Y-51157142D01* +X5432319Y-51157142D02* +X5432319Y-51252380D01* +X5432319Y-51252380D02* +X5384700Y-51395237D01* +X5384700Y-51395237D02* +X5289461Y-51490475D01* +X5289461Y-51490475D02* +X5194223Y-51538094D01* +X5194223Y-51538094D02* +X5003747Y-51585713D01* +X5003747Y-51585713D02* +X4860890Y-51585713D01* +X4860890Y-51585713D02* +X4670414Y-51538094D01* +X4670414Y-51538094D02* +X4575176Y-51490475D01* +X4575176Y-51490475D02* +X4479938Y-51395237D01* +X4479938Y-51395237D02* +X4432319Y-51252380D01* +X4432319Y-51252380D02* +X4432319Y-51157142D01* +X4432319Y-51157142D02* +X4479938Y-51014285D01* +X4479938Y-51014285D02* +X4527557Y-50966666D01* +X4527557Y-50585713D02* +X4479938Y-50538094D01* +X4479938Y-50538094D02* +X4432319Y-50442856D01* +X4432319Y-50442856D02* +X4432319Y-50204761D01* +X4432319Y-50204761D02* +X4479938Y-50109523D01* +X4479938Y-50109523D02* +X4527557Y-50061904D01* +X4527557Y-50061904D02* +X4622795Y-50014285D01* +X4622795Y-50014285D02* +X4718033Y-50014285D01* +X4718033Y-50014285D02* +X4860890Y-50061904D01* +X4860890Y-50061904D02* +X5432319Y-50633332D01* +X5432319Y-50633332D02* +X5432319Y-50014285D01* +%TO.C,C4*% +X5337080Y-7786666D02* +X5384700Y-7834285D01* +X5384700Y-7834285D02* +X5432319Y-7977142D01* +X5432319Y-7977142D02* +X5432319Y-8072380D01* +X5432319Y-8072380D02* +X5384700Y-8215237D01* +X5384700Y-8215237D02* +X5289461Y-8310475D01* +X5289461Y-8310475D02* +X5194223Y-8358094D01* +X5194223Y-8358094D02* +X5003747Y-8405713D01* +X5003747Y-8405713D02* +X4860890Y-8405713D01* +X4860890Y-8405713D02* +X4670414Y-8358094D01* +X4670414Y-8358094D02* +X4575176Y-8310475D01* +X4575176Y-8310475D02* +X4479938Y-8215237D01* +X4479938Y-8215237D02* +X4432319Y-8072380D01* +X4432319Y-8072380D02* +X4432319Y-7977142D01* +X4432319Y-7977142D02* +X4479938Y-7834285D01* +X4479938Y-7834285D02* +X4527557Y-7786666D01* +X4765652Y-6929523D02* +X5432319Y-6929523D01* +X4384700Y-7167618D02* +X5098985Y-7405713D01* +X5098985Y-7405713D02* +X5098985Y-6786666D01* +%TO.C,J6*% +X23804166Y-45599819D02* +X23804166Y-46314104D01* +X23804166Y-46314104D02* +X23756547Y-46456961D01* +X23756547Y-46456961D02* +X23661309Y-46552200D01* +X23661309Y-46552200D02* +X23518452Y-46599819D01* +X23518452Y-46599819D02* +X23423214Y-46599819D01* +X24708928Y-45599819D02* +X24518452Y-45599819D01* +X24518452Y-45599819D02* +X24423214Y-45647438D01* +X24423214Y-45647438D02* +X24375595Y-45695057D01* +X24375595Y-45695057D02* +X24280357Y-45837914D01* +X24280357Y-45837914D02* +X24232738Y-46028390D01* +X24232738Y-46028390D02* +X24232738Y-46409342D01* +X24232738Y-46409342D02* +X24280357Y-46504580D01* +X24280357Y-46504580D02* +X24327976Y-46552200D01* +X24327976Y-46552200D02* +X24423214Y-46599819D01* +X24423214Y-46599819D02* +X24613690Y-46599819D01* +X24613690Y-46599819D02* +X24708928Y-46552200D01* +X24708928Y-46552200D02* +X24756547Y-46504580D01* +X24756547Y-46504580D02* +X24804166Y-46409342D01* +X24804166Y-46409342D02* +X24804166Y-46171247D01* +X24804166Y-46171247D02* +X24756547Y-46076009D01* +X24756547Y-46076009D02* +X24708928Y-46028390D01* +X24708928Y-46028390D02* +X24613690Y-45980771D01* +X24613690Y-45980771D02* +X24423214Y-45980771D01* +X24423214Y-45980771D02* +X24327976Y-46028390D01* +X24327976Y-46028390D02* +X24280357Y-46076009D01* +X24280357Y-46076009D02* +X24232738Y-46171247D01* +%TO.C,J2*% +X7684166Y-55611819D02* +X7684166Y-56326104D01* +X7684166Y-56326104D02* +X7636547Y-56468961D01* +X7636547Y-56468961D02* +X7541309Y-56564200D01* +X7541309Y-56564200D02* +X7398452Y-56611819D01* +X7398452Y-56611819D02* +X7303214Y-56611819D01* +X8112738Y-55707057D02* +X8160357Y-55659438D01* +X8160357Y-55659438D02* +X8255595Y-55611819D01* +X8255595Y-55611819D02* +X8493690Y-55611819D01* +X8493690Y-55611819D02* +X8588928Y-55659438D01* +X8588928Y-55659438D02* +X8636547Y-55707057D01* +X8636547Y-55707057D02* +X8684166Y-55802295D01* +X8684166Y-55802295D02* +X8684166Y-55897533D01* +X8684166Y-55897533D02* +X8636547Y-56040390D01* +X8636547Y-56040390D02* +X8065119Y-56611819D01* +X8065119Y-56611819D02* +X8684166Y-56611819D01* +%TO.C,J4*% +X7684166Y-12431819D02* +X7684166Y-13146104D01* +X7684166Y-13146104D02* +X7636547Y-13288961D01* +X7636547Y-13288961D02* +X7541309Y-13384200D01* +X7541309Y-13384200D02* +X7398452Y-13431819D01* +X7398452Y-13431819D02* +X7303214Y-13431819D01* +X8588928Y-12765152D02* +X8588928Y-13431819D01* +X8350833Y-12384200D02* +X8112738Y-13098485D01* +X8112738Y-13098485D02* +X8731785Y-13098485D01* +%TO.C,D6*% +X8159405Y-32259819D02* +X8159405Y-31259819D01* +X8159405Y-31259819D02* +X8397500Y-31259819D01* +X8397500Y-31259819D02* +X8540357Y-31307438D01* +X8540357Y-31307438D02* +X8635595Y-31402676D01* +X8635595Y-31402676D02* +X8683214Y-31497914D01* +X8683214Y-31497914D02* +X8730833Y-31688390D01* +X8730833Y-31688390D02* +X8730833Y-31831247D01* +X8730833Y-31831247D02* +X8683214Y-32021723D01* +X8683214Y-32021723D02* +X8635595Y-32116961D01* +X8635595Y-32116961D02* +X8540357Y-32212200D01* +X8540357Y-32212200D02* +X8397500Y-32259819D01* +X8397500Y-32259819D02* +X8159405Y-32259819D01* +X9587976Y-31259819D02* +X9397500Y-31259819D01* +X9397500Y-31259819D02* +X9302262Y-31307438D01* +X9302262Y-31307438D02* +X9254643Y-31355057D01* +X9254643Y-31355057D02* +X9159405Y-31497914D01* +X9159405Y-31497914D02* +X9111786Y-31688390D01* +X9111786Y-31688390D02* +X9111786Y-32069342D01* +X9111786Y-32069342D02* +X9159405Y-32164580D01* +X9159405Y-32164580D02* +X9207024Y-32212200D01* +X9207024Y-32212200D02* +X9302262Y-32259819D01* +X9302262Y-32259819D02* +X9492738Y-32259819D01* +X9492738Y-32259819D02* +X9587976Y-32212200D01* +X9587976Y-32212200D02* +X9635595Y-32164580D01* +X9635595Y-32164580D02* +X9683214Y-32069342D01* +X9683214Y-32069342D02* +X9683214Y-31831247D01* +X9683214Y-31831247D02* +X9635595Y-31736009D01* +X9635595Y-31736009D02* +X9587976Y-31688390D01* +X9587976Y-31688390D02* +X9492738Y-31640771D01* +X9492738Y-31640771D02* +X9302262Y-31640771D01* +X9302262Y-31640771D02* +X9207024Y-31688390D01* +X9207024Y-31688390D02* +X9159405Y-31736009D01* +X9159405Y-31736009D02* +X9111786Y-31831247D01* +%TO.C,J5*% +X7684166Y903181D02* +X7684166Y188896D01* +X7684166Y188896D02* +X7636547Y46039D01* +X7636547Y46039D02* +X7541309Y-49200D01* +X7541309Y-49200D02* +X7398452Y-96819D01* +X7398452Y-96819D02* +X7303214Y-96819D01* +X8636547Y903181D02* +X8160357Y903181D01* +X8160357Y903181D02* +X8112738Y426991D01* +X8112738Y426991D02* +X8160357Y474610D01* +X8160357Y474610D02* +X8255595Y522229D01* +X8255595Y522229D02* +X8493690Y522229D01* +X8493690Y522229D02* +X8588928Y474610D01* +X8588928Y474610D02* +X8636547Y426991D01* +X8636547Y426991D02* +X8684166Y331753D01* +X8684166Y331753D02* +X8684166Y93658D01* +X8684166Y93658D02* +X8636547Y-1580D01* +X8636547Y-1580D02* +X8588928Y-49200D01* +X8588928Y-49200D02* +X8493690Y-96819D01* +X8493690Y-96819D02* +X8255595Y-96819D01* +X8255595Y-96819D02* +X8160357Y-49200D01* +X8160357Y-49200D02* +X8112738Y-1580D01* +%TO.C,D7*% +X8159405Y-10669819D02* +X8159405Y-9669819D01* +X8159405Y-9669819D02* +X8397500Y-9669819D01* +X8397500Y-9669819D02* +X8540357Y-9717438D01* +X8540357Y-9717438D02* +X8635595Y-9812676D01* +X8635595Y-9812676D02* +X8683214Y-9907914D01* +X8683214Y-9907914D02* +X8730833Y-10098390D01* +X8730833Y-10098390D02* +X8730833Y-10241247D01* +X8730833Y-10241247D02* +X8683214Y-10431723D01* +X8683214Y-10431723D02* +X8635595Y-10526961D01* +X8635595Y-10526961D02* +X8540357Y-10622200D01* +X8540357Y-10622200D02* +X8397500Y-10669819D01* +X8397500Y-10669819D02* +X8159405Y-10669819D01* +X9064167Y-9669819D02* +X9730833Y-9669819D01* +X9730833Y-9669819D02* +X9302262Y-10669819D01* +%TO.C,C3*% +X5337080Y-29376666D02* +X5384700Y-29424285D01* +X5384700Y-29424285D02* +X5432319Y-29567142D01* +X5432319Y-29567142D02* +X5432319Y-29662380D01* +X5432319Y-29662380D02* +X5384700Y-29805237D01* +X5384700Y-29805237D02* +X5289461Y-29900475D01* +X5289461Y-29900475D02* +X5194223Y-29948094D01* +X5194223Y-29948094D02* +X5003747Y-29995713D01* +X5003747Y-29995713D02* +X4860890Y-29995713D01* +X4860890Y-29995713D02* +X4670414Y-29948094D01* +X4670414Y-29948094D02* +X4575176Y-29900475D01* +X4575176Y-29900475D02* +X4479938Y-29805237D01* +X4479938Y-29805237D02* +X4432319Y-29662380D01* +X4432319Y-29662380D02* +X4432319Y-29567142D01* +X4432319Y-29567142D02* +X4479938Y-29424285D01* +X4479938Y-29424285D02* +X4527557Y-29376666D01* +X4432319Y-29043332D02* +X4432319Y-28424285D01* +X4432319Y-28424285D02* +X4813271Y-28757618D01* +X4813271Y-28757618D02* +X4813271Y-28614761D01* +X4813271Y-28614761D02* +X4860890Y-28519523D01* +X4860890Y-28519523D02* +X4908509Y-28471904D01* +X4908509Y-28471904D02* +X5003747Y-28424285D01* +X5003747Y-28424285D02* +X5241842Y-28424285D01* +X5241842Y-28424285D02* +X5337080Y-28471904D01* +X5337080Y-28471904D02* +X5384700Y-28519523D01* +X5384700Y-28519523D02* +X5432319Y-28614761D01* +X5432319Y-28614761D02* +X5432319Y-28900475D01* +X5432319Y-28900475D02* +X5384700Y-28995713D01* +X5384700Y-28995713D02* +X5337080Y-29043332D01* +%TO.C,C1*% +X5337080Y-72556666D02* +X5384700Y-72604285D01* +X5384700Y-72604285D02* +X5432319Y-72747142D01* +X5432319Y-72747142D02* +X5432319Y-72842380D01* +X5432319Y-72842380D02* +X5384700Y-72985237D01* +X5384700Y-72985237D02* +X5289461Y-73080475D01* +X5289461Y-73080475D02* +X5194223Y-73128094D01* +X5194223Y-73128094D02* +X5003747Y-73175713D01* +X5003747Y-73175713D02* +X4860890Y-73175713D01* +X4860890Y-73175713D02* +X4670414Y-73128094D01* +X4670414Y-73128094D02* +X4575176Y-73080475D01* +X4575176Y-73080475D02* +X4479938Y-72985237D01* +X4479938Y-72985237D02* +X4432319Y-72842380D01* +X4432319Y-72842380D02* +X4432319Y-72747142D01* +X4432319Y-72747142D02* +X4479938Y-72604285D01* +X4479938Y-72604285D02* +X4527557Y-72556666D01* +X5432319Y-71604285D02* +X5432319Y-72175713D01* +X5432319Y-71889999D02* +X4432319Y-71889999D01* +X4432319Y-71889999D02* +X4575176Y-71985237D01* +X4575176Y-71985237D02* +X4670414Y-72080475D01* +X4670414Y-72080475D02* +X4718033Y-72175713D01* +%TO.C,U4*% +X14385595Y-10339819D02* +X14385595Y-11149342D01* +X14385595Y-11149342D02* +X14433214Y-11244580D01* +X14433214Y-11244580D02* +X14480833Y-11292200D01* +X14480833Y-11292200D02* +X14576071Y-11339819D01* +X14576071Y-11339819D02* +X14766547Y-11339819D01* +X14766547Y-11339819D02* +X14861785Y-11292200D01* +X14861785Y-11292200D02* +X14909404Y-11244580D01* +X14909404Y-11244580D02* +X14957023Y-11149342D01* +X14957023Y-11149342D02* +X14957023Y-10339819D01* +X15861785Y-10673152D02* +X15861785Y-11339819D01* +X15623690Y-10292200D02* +X15385595Y-11006485D01* +X15385595Y-11006485D02* +X16004642Y-11006485D01* +%TO.C,R4*% +X18890833Y-34829819D02* +X18557500Y-34353628D01* +X18319405Y-34829819D02* +X18319405Y-33829819D01* +X18319405Y-33829819D02* +X18700357Y-33829819D01* +X18700357Y-33829819D02* +X18795595Y-33877438D01* +X18795595Y-33877438D02* +X18843214Y-33925057D01* +X18843214Y-33925057D02* +X18890833Y-34020295D01* +X18890833Y-34020295D02* +X18890833Y-34163152D01* +X18890833Y-34163152D02* +X18843214Y-34258390D01* +X18843214Y-34258390D02* +X18795595Y-34306009D01* +X18795595Y-34306009D02* +X18700357Y-34353628D01* +X18700357Y-34353628D02* +X18319405Y-34353628D01* +X19747976Y-34163152D02* +X19747976Y-34829819D01* +X19509881Y-33782200D02* +X19271786Y-34496485D01* +X19271786Y-34496485D02* +X19890833Y-34496485D01* +%TO.C,Q1*% +X-15692443Y-69945238D02* +X-15740062Y-70040476D01* +X-15740062Y-70040476D02* +X-15835300Y-70135714D01* +X-15835300Y-70135714D02* +X-15978158Y-70278571D01* +X-15978158Y-70278571D02* +X-16025777Y-70373809D01* +X-16025777Y-70373809D02* +X-16025777Y-70469047D01* +X-15787681Y-70421428D02* +X-15835300Y-70516666D01* +X-15835300Y-70516666D02* +X-15930539Y-70611904D01* +X-15930539Y-70611904D02* +X-16121015Y-70659523D01* +X-16121015Y-70659523D02* +X-16454348Y-70659523D01* +X-16454348Y-70659523D02* +X-16644824Y-70611904D01* +X-16644824Y-70611904D02* +X-16740062Y-70516666D01* +X-16740062Y-70516666D02* +X-16787681Y-70421428D01* +X-16787681Y-70421428D02* +X-16787681Y-70230952D01* +X-16787681Y-70230952D02* +X-16740062Y-70135714D01* +X-16740062Y-70135714D02* +X-16644824Y-70040476D01* +X-16644824Y-70040476D02* +X-16454348Y-69992857D01* +X-16454348Y-69992857D02* +X-16121015Y-69992857D01* +X-16121015Y-69992857D02* +X-15930539Y-70040476D01* +X-15930539Y-70040476D02* +X-15835300Y-70135714D01* +X-15835300Y-70135714D02* +X-15787681Y-70230952D01* +X-15787681Y-70230952D02* +X-15787681Y-70421428D01* +X-15787681Y-69040476D02* +X-15787681Y-69611904D01* +X-15787681Y-69326190D02* +X-16787681Y-69326190D01* +X-16787681Y-69326190D02* +X-16644824Y-69421428D01* +X-16644824Y-69421428D02* +X-16549586Y-69516666D01* +X-16549586Y-69516666D02* +X-16501967Y-69611904D01* +%TO.C,U1*% +X14385595Y-75109819D02* +X14385595Y-75919342D01* +X14385595Y-75919342D02* +X14433214Y-76014580D01* +X14433214Y-76014580D02* +X14480833Y-76062200D01* +X14480833Y-76062200D02* +X14576071Y-76109819D01* +X14576071Y-76109819D02* +X14766547Y-76109819D01* +X14766547Y-76109819D02* +X14861785Y-76062200D01* +X14861785Y-76062200D02* +X14909404Y-76014580D01* +X14909404Y-76014580D02* +X14957023Y-75919342D01* +X14957023Y-75919342D02* +X14957023Y-75109819D01* +X15957023Y-76109819D02* +X15385595Y-76109819D01* +X15671309Y-76109819D02* +X15671309Y-75109819D01* +X15671309Y-75109819D02* +X15576071Y-75252676D01* +X15576071Y-75252676D02* +X15480833Y-75347914D01* +X15480833Y-75347914D02* +X15385595Y-75395533D01* +%TO.C,D4*% +X10699405Y-74804819D02* +X10699405Y-73804819D01* +X10699405Y-73804819D02* +X10937500Y-73804819D01* +X10937500Y-73804819D02* +X11080357Y-73852438D01* +X11080357Y-73852438D02* +X11175595Y-73947676D01* +X11175595Y-73947676D02* +X11223214Y-74042914D01* +X11223214Y-74042914D02* +X11270833Y-74233390D01* +X11270833Y-74233390D02* +X11270833Y-74376247D01* +X11270833Y-74376247D02* +X11223214Y-74566723D01* +X11223214Y-74566723D02* +X11175595Y-74661961D01* +X11175595Y-74661961D02* +X11080357Y-74757200D01* +X11080357Y-74757200D02* +X10937500Y-74804819D01* +X10937500Y-74804819D02* +X10699405Y-74804819D01* +X12127976Y-74138152D02* +X12127976Y-74804819D01* +X11889881Y-73757200D02* +X11651786Y-74471485D01* +X11651786Y-74471485D02* +X12270833Y-74471485D01* +%TO.C,R1*% +X18890833Y-42449819D02* +X18557500Y-41973628D01* +X18319405Y-42449819D02* +X18319405Y-41449819D01* +X18319405Y-41449819D02* +X18700357Y-41449819D01* +X18700357Y-41449819D02* +X18795595Y-41497438D01* +X18795595Y-41497438D02* +X18843214Y-41545057D01* +X18843214Y-41545057D02* +X18890833Y-41640295D01* +X18890833Y-41640295D02* +X18890833Y-41783152D01* +X18890833Y-41783152D02* +X18843214Y-41878390D01* +X18843214Y-41878390D02* +X18795595Y-41926009D01* +X18795595Y-41926009D02* +X18700357Y-41973628D01* +X18700357Y-41973628D02* +X18319405Y-41973628D01* +X19843214Y-42449819D02* +X19271786Y-42449819D01* +X19557500Y-42449819D02* +X19557500Y-41449819D01* +X19557500Y-41449819D02* +X19462262Y-41592676D01* +X19462262Y-41592676D02* +X19367024Y-41687914D01* +X19367024Y-41687914D02* +X19271786Y-41735533D01* +%TO.C,Q2*% +X-15692443Y-48355238D02* +X-15740062Y-48450476D01* +X-15740062Y-48450476D02* +X-15835300Y-48545714D01* +X-15835300Y-48545714D02* +X-15978158Y-48688571D01* +X-15978158Y-48688571D02* +X-16025777Y-48783809D01* +X-16025777Y-48783809D02* +X-16025777Y-48879047D01* +X-15787681Y-48831428D02* +X-15835300Y-48926666D01* +X-15835300Y-48926666D02* +X-15930539Y-49021904D01* +X-15930539Y-49021904D02* +X-16121015Y-49069523D01* +X-16121015Y-49069523D02* +X-16454348Y-49069523D01* +X-16454348Y-49069523D02* +X-16644824Y-49021904D01* +X-16644824Y-49021904D02* +X-16740062Y-48926666D01* +X-16740062Y-48926666D02* +X-16787681Y-48831428D01* +X-16787681Y-48831428D02* +X-16787681Y-48640952D01* +X-16787681Y-48640952D02* +X-16740062Y-48545714D01* +X-16740062Y-48545714D02* +X-16644824Y-48450476D01* +X-16644824Y-48450476D02* +X-16454348Y-48402857D01* +X-16454348Y-48402857D02* +X-16121015Y-48402857D01* +X-16121015Y-48402857D02* +X-15930539Y-48450476D01* +X-15930539Y-48450476D02* +X-15835300Y-48545714D01* +X-15835300Y-48545714D02* +X-15787681Y-48640952D01* +X-15787681Y-48640952D02* +X-15787681Y-48831428D01* +X-16692443Y-48021904D02* +X-16740062Y-47974285D01* +X-16740062Y-47974285D02* +X-16787681Y-47879047D01* +X-16787681Y-47879047D02* +X-16787681Y-47640952D01* +X-16787681Y-47640952D02* +X-16740062Y-47545714D01* +X-16740062Y-47545714D02* +X-16692443Y-47498095D01* +X-16692443Y-47498095D02* +X-16597205Y-47450476D01* +X-16597205Y-47450476D02* +X-16501967Y-47450476D01* +X-16501967Y-47450476D02* +X-16359110Y-47498095D01* +X-16359110Y-47498095D02* +X-15787681Y-48069523D01* +X-15787681Y-48069523D02* +X-15787681Y-47450476D01* +%TO.C,D5*% +X8159405Y-53849819D02* +X8159405Y-52849819D01* +X8159405Y-52849819D02* +X8397500Y-52849819D01* +X8397500Y-52849819D02* +X8540357Y-52897438D01* +X8540357Y-52897438D02* +X8635595Y-52992676D01* +X8635595Y-52992676D02* +X8683214Y-53087914D01* +X8683214Y-53087914D02* +X8730833Y-53278390D01* +X8730833Y-53278390D02* +X8730833Y-53421247D01* +X8730833Y-53421247D02* +X8683214Y-53611723D01* +X8683214Y-53611723D02* +X8635595Y-53706961D01* +X8635595Y-53706961D02* +X8540357Y-53802200D01* +X8540357Y-53802200D02* +X8397500Y-53849819D01* +X8397500Y-53849819D02* +X8159405Y-53849819D01* +X9635595Y-52849819D02* +X9159405Y-52849819D01* +X9159405Y-52849819D02* +X9111786Y-53326009D01* +X9111786Y-53326009D02* +X9159405Y-53278390D01* +X9159405Y-53278390D02* +X9254643Y-53230771D01* +X9254643Y-53230771D02* +X9492738Y-53230771D01* +X9492738Y-53230771D02* +X9587976Y-53278390D01* +X9587976Y-53278390D02* +X9635595Y-53326009D01* +X9635595Y-53326009D02* +X9683214Y-53421247D01* +X9683214Y-53421247D02* +X9683214Y-53659342D01* +X9683214Y-53659342D02* +X9635595Y-53754580D01* +X9635595Y-53754580D02* +X9587976Y-53802200D01* +X9587976Y-53802200D02* +X9492738Y-53849819D01* +X9492738Y-53849819D02* +X9254643Y-53849819D01* +X9254643Y-53849819D02* +X9159405Y-53802200D01* +X9159405Y-53802200D02* +X9111786Y-53754580D01* +%TO.C,J1*% +X3684166Y-73391819D02* +X3684166Y-74106104D01* +X3684166Y-74106104D02* +X3636547Y-74248961D01* +X3636547Y-74248961D02* +X3541309Y-74344200D01* +X3541309Y-74344200D02* +X3398452Y-74391819D01* +X3398452Y-74391819D02* +X3303214Y-74391819D01* +X4684166Y-74391819D02* +X4112738Y-74391819D01* +X4398452Y-74391819D02* +X4398452Y-73391819D01* +X4398452Y-73391819D02* +X4303214Y-73534676D01* +X4303214Y-73534676D02* +X4207976Y-73629914D01* +X4207976Y-73629914D02* +X4112738Y-73677533D01* +%TO.C,Q4*% +X-15692443Y-5175238D02* +X-15740062Y-5270476D01* +X-15740062Y-5270476D02* +X-15835300Y-5365714D01* +X-15835300Y-5365714D02* +X-15978158Y-5508571D01* +X-15978158Y-5508571D02* +X-16025777Y-5603809D01* +X-16025777Y-5603809D02* +X-16025777Y-5699047D01* +X-15787681Y-5651428D02* +X-15835300Y-5746666D01* +X-15835300Y-5746666D02* +X-15930539Y-5841904D01* +X-15930539Y-5841904D02* +X-16121015Y-5889523D01* +X-16121015Y-5889523D02* +X-16454348Y-5889523D01* +X-16454348Y-5889523D02* +X-16644824Y-5841904D01* +X-16644824Y-5841904D02* +X-16740062Y-5746666D01* +X-16740062Y-5746666D02* +X-16787681Y-5651428D01* +X-16787681Y-5651428D02* +X-16787681Y-5460952D01* +X-16787681Y-5460952D02* +X-16740062Y-5365714D01* +X-16740062Y-5365714D02* +X-16644824Y-5270476D01* +X-16644824Y-5270476D02* +X-16454348Y-5222857D01* +X-16454348Y-5222857D02* +X-16121015Y-5222857D01* +X-16121015Y-5222857D02* +X-15930539Y-5270476D01* +X-15930539Y-5270476D02* +X-15835300Y-5365714D01* +X-15835300Y-5365714D02* +X-15787681Y-5460952D01* +X-15787681Y-5460952D02* +X-15787681Y-5651428D01* +X-16454348Y-4365714D02* +X-15787681Y-4365714D01* +X-16835300Y-4603809D02* +X-16121015Y-4841904D01* +X-16121015Y-4841904D02* +X-16121015Y-4222857D01* +%TO.C,R2*% +X18890833Y-39909819D02* +X18557500Y-39433628D01* +X18319405Y-39909819D02* +X18319405Y-38909819D01* +X18319405Y-38909819D02* +X18700357Y-38909819D01* +X18700357Y-38909819D02* +X18795595Y-38957438D01* +X18795595Y-38957438D02* +X18843214Y-39005057D01* +X18843214Y-39005057D02* +X18890833Y-39100295D01* +X18890833Y-39100295D02* +X18890833Y-39243152D01* +X18890833Y-39243152D02* +X18843214Y-39338390D01* +X18843214Y-39338390D02* +X18795595Y-39386009D01* +X18795595Y-39386009D02* +X18700357Y-39433628D01* +X18700357Y-39433628D02* +X18319405Y-39433628D01* +X19271786Y-39005057D02* +X19319405Y-38957438D01* +X19319405Y-38957438D02* +X19414643Y-38909819D01* +X19414643Y-38909819D02* +X19652738Y-38909819D01* +X19652738Y-38909819D02* +X19747976Y-38957438D01* +X19747976Y-38957438D02* +X19795595Y-39005057D01* +X19795595Y-39005057D02* +X19843214Y-39100295D01* +X19843214Y-39100295D02* +X19843214Y-39195533D01* +X19843214Y-39195533D02* +X19795595Y-39338390D01* +X19795595Y-39338390D02* +X19224167Y-39909819D01* +X19224167Y-39909819D02* +X19843214Y-39909819D01* +%TO.C,R5*% +X21150833Y-23204819D02* +X20817500Y-22728628D01* +X20579405Y-23204819D02* +X20579405Y-22204819D01* +X20579405Y-22204819D02* +X20960357Y-22204819D01* +X20960357Y-22204819D02* +X21055595Y-22252438D01* +X21055595Y-22252438D02* +X21103214Y-22300057D01* +X21103214Y-22300057D02* +X21150833Y-22395295D01* +X21150833Y-22395295D02* +X21150833Y-22538152D01* +X21150833Y-22538152D02* +X21103214Y-22633390D01* +X21103214Y-22633390D02* +X21055595Y-22681009D01* +X21055595Y-22681009D02* +X20960357Y-22728628D01* +X20960357Y-22728628D02* +X20579405Y-22728628D01* +X22055595Y-22204819D02* +X21579405Y-22204819D01* +X21579405Y-22204819D02* +X21531786Y-22681009D01* +X21531786Y-22681009D02* +X21579405Y-22633390D01* +X21579405Y-22633390D02* +X21674643Y-22585771D01* +X21674643Y-22585771D02* +X21912738Y-22585771D01* +X21912738Y-22585771D02* +X22007976Y-22633390D01* +X22007976Y-22633390D02* +X22055595Y-22681009D01* +X22055595Y-22681009D02* +X22103214Y-22776247D01* +X22103214Y-22776247D02* +X22103214Y-23014342D01* +X22103214Y-23014342D02* +X22055595Y-23109580D01* +X22055595Y-23109580D02* +X22007976Y-23157200D01* +X22007976Y-23157200D02* +X21912738Y-23204819D01* +X21912738Y-23204819D02* +X21674643Y-23204819D01* +X21674643Y-23204819D02* +X21579405Y-23157200D01* +X21579405Y-23157200D02* +X21531786Y-23109580D01* +%TO.C,U2*% +X14385595Y-53519819D02* +X14385595Y-54329342D01* +X14385595Y-54329342D02* +X14433214Y-54424580D01* +X14433214Y-54424580D02* +X14480833Y-54472200D01* +X14480833Y-54472200D02* +X14576071Y-54519819D01* +X14576071Y-54519819D02* +X14766547Y-54519819D01* +X14766547Y-54519819D02* +X14861785Y-54472200D01* +X14861785Y-54472200D02* +X14909404Y-54424580D01* +X14909404Y-54424580D02* +X14957023Y-54329342D01* +X14957023Y-54329342D02* +X14957023Y-53519819D01* +X15385595Y-53615057D02* +X15433214Y-53567438D01* +X15433214Y-53567438D02* +X15528452Y-53519819D01* +X15528452Y-53519819D02* +X15766547Y-53519819D01* +X15766547Y-53519819D02* +X15861785Y-53567438D01* +X15861785Y-53567438D02* +X15909404Y-53615057D01* +X15909404Y-53615057D02* +X15957023Y-53710295D01* +X15957023Y-53710295D02* +X15957023Y-53805533D01* +X15957023Y-53805533D02* +X15909404Y-53948390D01* +X15909404Y-53948390D02* +X15337976Y-54519819D01* +X15337976Y-54519819D02* +X15957023Y-54519819D01* +D11* +%TO.C,D1*% +X-15242500Y-53805000D02* +X867500Y-53805000D01* +X867500Y-61595000D02* +X2827500Y-61595000D01* +X867500Y-56515000D02* +X2827500Y-56515000D01* +X-15242500Y-64305000D02* +X-15242500Y-53805000D01* +X867500Y-64305000D02* +X867500Y-53805000D01* +X867500Y-59055000D02* +X2827500Y-59055000D01* +X-15242500Y-64305000D02* +X867500Y-64305000D01* +%TO.C,J3*% +X10267500Y-37465000D02* +G75* +G03* +X10267500Y-37465000I-2250000J0D01* +G01* +%TO.C,U3*% +X18747500Y-27425000D02* +X18747500Y-26775000D01* +X18797500Y-31010000D02* +X20547500Y-31010000D01* +X11747500Y-31675000D02* +X11747500Y-31025000D01* +X18747500Y-26775000D02* +X11697500Y-26775000D01* +X18797500Y-31675000D02* +X18797500Y-31025000D01* +X11747500Y-31675000D02* +X18797500Y-31675000D01* +X11697500Y-27425000D02* +X11697500Y-26775000D01* +%TO.C,Q3*% +X867500Y-29210000D02* +X2827500Y-29210000D01* +X867500Y-31920000D02* +X867500Y-21420000D01* +X-15242500Y-31920000D02* +X-15242500Y-21420000D01* +X867500Y-26670000D02* +X2827500Y-26670000D01* +X867500Y-24130000D02* +X2827500Y-24130000D01* +X-15242500Y-21420000D02* +X867500Y-21420000D01* +X-15242500Y-31920000D02* +X867500Y-31920000D01* +%TO.C,D3*% +X-15242500Y-21125000D02* +X-15242500Y-10625000D01* +X867500Y-15875000D02* +X2827500Y-15875000D01* +X867500Y-21125000D02* +X867500Y-10625000D01* +X867500Y-13335000D02* +X2827500Y-13335000D01* +X-15242500Y-10625000D02* +X867500Y-10625000D01* +X-15242500Y-21125000D02* +X867500Y-21125000D01* +X867500Y-18415000D02* +X2827500Y-18415000D01* +%TO.C,R3*% +X18330436Y-37825000D02* +X19784564Y-37825000D01* +X18330436Y-39645000D02* +X19784564Y-39645000D01* +%TO.C,D2*% +X867500Y-34925000D02* +X2827500Y-34925000D01* +X867500Y-42715000D02* +X867500Y-32215000D01* +X-15242500Y-42715000D02* +X867500Y-42715000D01* +X867500Y-37465000D02* +X2827500Y-37465000D01* +X867500Y-40005000D02* +X2827500Y-40005000D01* +X-15242500Y-42715000D02* +X-15242500Y-32215000D01* +X-15242500Y-32215000D02* +X867500Y-32215000D01* +%TO.C,C2*% +X5917500Y-51961252D02* +X5917500Y-49638748D01* +X9337500Y-51961252D02* +X9337500Y-49638748D01* +%TO.C,C4*% +X5917500Y-8781252D02* +X5917500Y-6458748D01* +X9337500Y-8781252D02* +X9337500Y-6458748D01* +%TO.C,J6*% +X22807500Y-42545000D02* +X22807500Y-32325000D01* +X25467500Y-43815000D02* +X25467500Y-45145000D01* +X25467500Y-42545000D02* +X22807500Y-42545000D01* +X25467500Y-45145000D02* +X24137500Y-45145000D01* +X25467500Y-32325000D02* +X22807500Y-32325000D01* +X25467500Y-42545000D02* +X25467500Y-32325000D01* +%TO.C,J2*% +X10267500Y-59055000D02* +G75* +G03* +X10267500Y-59055000I-2250000J0D01* +G01* +%TO.C,J4*% +X10267500Y-15875000D02* +G75* +G03* +X10267500Y-15875000I-2250000J0D01* +G01* +%TO.C,D6*% +X7397500Y-32805000D02* +X7397500Y-34505000D01* +X7397500Y-32805000D02* +X9947500Y-32805000D01* +X7397500Y-34505000D02* +X9947500Y-34505000D01* +%TO.C,J5*% +X10267500Y-2540000D02* +G75* +G03* +X10267500Y-2540000I-2250000J0D01* +G01* +%TO.C,D7*% +X7397500Y-11215000D02* +X9947500Y-11215000D01* +X7397500Y-12915000D02* +X9947500Y-12915000D01* +X7397500Y-11215000D02* +X7397500Y-12915000D01* +%TO.C,C3*% +X9337500Y-30371252D02* +X9337500Y-28048748D01* +X5917500Y-30371252D02* +X5917500Y-28048748D01* +%TO.C,C1*% +X9337500Y-73551252D02* +X9337500Y-71228748D01* +X5917500Y-73551252D02* +X5917500Y-71228748D01* +%TO.C,U4*% +X18797500Y-9420000D02* +X20547500Y-9420000D01* +X11697500Y-5835000D02* +X11697500Y-5185000D01* +X18797500Y-10085000D02* +X18797500Y-9435000D01* +X11747500Y-10085000D02* +X11747500Y-9435000D01* +X11747500Y-10085000D02* +X18797500Y-10085000D01* +X18747500Y-5835000D02* +X18747500Y-5185000D01* +X18747500Y-5185000D02* +X11697500Y-5185000D01* +%TO.C,R4*% +X18330436Y-37105000D02* +X19784564Y-37105000D01* +X18330436Y-35285000D02* +X19784564Y-35285000D01* +%TO.C,Q1*% +X867500Y-67310000D02* +X2827500Y-67310000D01* +X-15242500Y-64600000D02* +X867500Y-64600000D01* +X-15242500Y-75100000D02* +X-15242500Y-64600000D01* +X867500Y-69850000D02* +X2827500Y-69850000D01* +X867500Y-72390000D02* +X2827500Y-72390000D01* +X867500Y-75100000D02* +X867500Y-64600000D01* +X-15242500Y-75100000D02* +X867500Y-75100000D01* +%TO.C,U1*% +X18797500Y-74190000D02* +X20547500Y-74190000D01* +X11747500Y-74855000D02* +X18797500Y-74855000D01* +X11747500Y-74855000D02* +X11747500Y-74205000D01* +X18797500Y-74855000D02* +X18797500Y-74205000D01* +X18747500Y-69955000D02* +X11697500Y-69955000D01* +X18747500Y-70605000D02* +X18747500Y-69955000D01* +X11697500Y-70605000D02* +X11697500Y-69955000D01* +%TO.C,D4*% +X9937500Y-77050000D02* +X12487500Y-77050000D01* +X9937500Y-75350000D02* +X9937500Y-77050000D01* +X9937500Y-75350000D02* +X12487500Y-75350000D01* +%TO.C,R1*% +X18330436Y-44725000D02* +X19784564Y-44725000D01* +X18330436Y-42905000D02* +X19784564Y-42905000D01* +%TO.C,Q2*% +X-15242500Y-53510000D02* +X867500Y-53510000D01* +X-15242500Y-53510000D02* +X-15242500Y-43010000D01* +X867500Y-53510000D02* +X867500Y-43010000D01* +X867500Y-50800000D02* +X2827500Y-50800000D01* +X867500Y-48260000D02* +X2827500Y-48260000D01* +X867500Y-45720000D02* +X2827500Y-45720000D01* +X-15242500Y-43010000D02* +X867500Y-43010000D01* +%TO.C,D5*% +X7397500Y-54395000D02* +X7397500Y-56095000D01* +X7397500Y-54395000D02* +X9947500Y-54395000D01* +X7397500Y-56095000D02* +X9947500Y-56095000D01* +%TO.C,J1*% +X6267500Y-76835000D02* +G75* +G03* +X6267500Y-76835000I-2250000J0D01* +G01* +%TO.C,Q4*% +X867500Y-10330000D02* +X867500Y170000D01* +X867500Y-2540000D02* +X2827500Y-2540000D01* +X867500Y-5080000D02* +X2827500Y-5080000D01* +X-15242500Y-10330000D02* +X867500Y-10330000D01* +X-15242500Y170000D02* +X867500Y170000D01* +X-15242500Y-10330000D02* +X-15242500Y170000D01* +X867500Y-7620000D02* +X2827500Y-7620000D01* +%TO.C,R2*% +X18330436Y-42185000D02* +X19784564Y-42185000D01* +X18330436Y-40365000D02* +X19784564Y-40365000D01* +%TO.C,R5*% +X19931248Y-27110000D02* +X22703752Y-27110000D01* +X19931248Y-23690000D02* +X22703752Y-23690000D01* +%TO.C,U2*% +X11697500Y-49015000D02* +X11697500Y-48365000D01* +X18747500Y-48365000D02* +X11697500Y-48365000D01* +X18797500Y-52600000D02* +X20547500Y-52600000D01* +X18747500Y-49015000D02* +X18747500Y-48365000D01* +X11747500Y-53265000D02* +X18797500Y-53265000D01* +X18797500Y-53265000D02* +X18797500Y-52615000D01* +X11747500Y-53265000D02* +X11747500Y-52615000D01* +%TD*% +M02* diff --git a/squeow_mod/squeow_mod-NPTH.drl b/squeow_mod/squeow_mod-NPTH.drl new file mode 100644 index 0000000..b77741e --- /dev/null +++ b/squeow_mod/squeow_mod-NPTH.drl @@ -0,0 +1,23 @@ +M48 +; DRILL file {KiCad 7.0.5+dfsg-2} date ven 30 giu 2023, 15:02:06 +; FORMAT={-:-/ absolute / inch / decimal} +; #@! TF.CreationDate,2023-06-30T15:02:06+02:00 +; #@! TF.GenerationSoftware,Kicad,Pcbnew,7.0.5+dfsg-2 +; #@! TF.FileFunction,NonPlated,1,2,NPTH +FMAT,2 +INCH +; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill +T1C0.1378 +% +G90 +G05 +T1 +X-0.4655Y-0.2 +X-0.4655Y-0.625 +X-0.4655Y-1.05 +X-0.4655Y-1.475 +X-0.4655Y-1.9 +X-0.4655Y-2.325 +X-0.4655Y-2.75 +T0 +M30 diff --git a/squeow_mod/squeow_mod-PTH.drl b/squeow_mod/squeow_mod-PTH.drl new file mode 100644 index 0000000..0a88438 --- /dev/null +++ b/squeow_mod/squeow_mod-PTH.drl @@ -0,0 +1,45 @@ +M48 +; DRILL file {KiCad 7.0.5+dfsg-2} date ven 30 giu 2023, 15:02:06 +; FORMAT={-:-/ absolute / inch / decimal} +; #@! TF.CreationDate,2023-06-30T15:02:06+02:00 +; #@! TF.GenerationSoftware,Kicad,Pcbnew,7.0.5+dfsg-2 +; #@! TF.FileFunction,Plated,1,2,PTH +FMAT,2 +INCH +; #@! TA.AperFunction,Plated,PTH,ComponentDrill +T1C0.0394 +; #@! TA.AperFunction,Plated,PTH,ComponentDrill +T2C0.0472 +% +G90 +G05 +T1 +X0.9503Y-1.325 +X0.9503Y-1.425 +X0.9503Y-1.525 +X0.9503Y-1.625 +X0.9503Y-1.725 +T2 +X0.1566Y-0.1 +X0.1566Y-0.2 +X0.1566Y-0.3 +X0.1566Y-0.525 +X0.1566Y-0.625 +X0.1566Y-0.725 +X0.1566Y-0.95 +X0.1566Y-1.05 +X0.1566Y-1.15 +X0.1566Y-1.375 +X0.1566Y-1.475 +X0.1566Y-1.575 +X0.1566Y-1.8 +X0.1566Y-1.9 +X0.1566Y-2.0 +X0.1566Y-2.225 +X0.1566Y-2.325 +X0.1566Y-2.425 +X0.1566Y-2.65 +X0.1566Y-2.75 +X0.1566Y-2.85 +T0 +M30 diff --git a/squeow_mod/squeow_mod-backups/squeow_mod-2022-09-13_162503.zip b/squeow_mod/squeow_mod-backups/squeow_mod-2022-09-13_162503.zip new file mode 100644 index 0000000000000000000000000000000000000000..b75fa2f3268e7e6264a86d6fd2c6fd6ef75d054e GIT binary patch literal 943 zcmWIWW@Zs#00Eh1-B1n7bIXl@Y!C*C78jPL=9kCk=BMaoXC^16#1|wdX~08W|CMTsT(MG8Q*d8y@^T$%w;J2=30Sndq+*~rMi5YLLs zj-veDDR=V@EAX_w|1BbVJ@jhcYLmBB`G&qH6#cSW9av1F&A;Adf6}iKyM4Axr~QK) z$DdVijoa+geDdb$U$^UjoR`s+72WG zYi@6F6lP&>Zub@0^;E)8@!&0uZ);CmeoTqFTVmq&yFXz2#lvR{G#<#Gc>8d*hs51! z_n*JIpyQUN!sEGf#`}FP>))ClydZ+@56tOP)7vN&a*wNIgb>_DjKkq%My2WQ3+yCd(JZd``*kAOE zA;6oFNe-NRu_tPvqmTf$B#tlvdy++HPXRJ9O(@DoHvv6F5GJ@YVKD(1J^|jWY#>$4 OKzIyDUk0jUU;qG?>1PB0 literal 0 HcmV?d00001 diff --git a/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_220552.zip b/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_220552.zip new file mode 100644 index 0000000000000000000000000000000000000000..ea219b227894e4cbc5ea0a40a76007b53ed66fdd GIT binary patch literal 67058 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ℜ?J}VQo@b&Aq{AD$@ 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%0ABP6_ZbK)@8e3F_* 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 z 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 CCo0JR literal 0 HcmV?d00001 diff --git a/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_224225.zip b/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_224225.zip new file mode 100644 index 0000000000000000000000000000000000000000..2bee60fe71ddcba412aa1f5d0970d8afe3feb8ba GIT binary patch literal 74715 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 z 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%0DJDgW5K)X5idGsWOZRf_1>D$Y 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 dkL}%K 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 eAR+#rv-scl0S5SAM*%KEc4aMdadl;H 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%0AO6p0n|7tCu7k06_Sr52 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 ADC1_IN15 + */ + GPIO_InitStruct.Pin = AUDIO_IN_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(AUDIO_IN_GPIO_Port, &GPIO_InitStruct); + + /* USER CODE BEGIN ADC1_MspInit 1 */ + + /* USER CODE END ADC1_MspInit 1 */ + } + else if(hadc->Instance==ADC2) + { + /* USER CODE BEGIN ADC2_MspInit 0 */ + + /* USER CODE END ADC2_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + HAL_RCC_ADC12_CLK_ENABLED++; + if(HAL_RCC_ADC12_CLK_ENABLED==1){ + __HAL_RCC_ADC12_CLK_ENABLE(); + } + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**ADC2 GPIO Configuration + PA4 ------> ADC2_IN17 + PA5 ------> ADC2_IN13 + PA6 ------> ADC2_IN3 + PA7 ------> ADC2_IN4 + */ + GPIO_InitStruct.Pin = TEMPERATURA_Pin|CORRENTE_Pin|DIRETTA_Pin|RIFLESSA_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN ADC2_MspInit 1 */ + + /* USER CODE END ADC2_MspInit 1 */ + } + +} + +/** +* @brief ADC MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hadc: ADC handle pointer +* @retval None +*/ +void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) +{ + if(hadc->Instance==ADC1) + { + /* USER CODE BEGIN ADC1_MspDeInit 0 */ + + /* USER CODE END ADC1_MspDeInit 0 */ + /* Peripheral clock disable */ + HAL_RCC_ADC12_CLK_ENABLED--; + if(HAL_RCC_ADC12_CLK_ENABLED==0){ + __HAL_RCC_ADC12_CLK_DISABLE(); + } + + /**ADC1 GPIO Configuration + PB0 ------> ADC1_IN15 + */ + HAL_GPIO_DeInit(AUDIO_IN_GPIO_Port, AUDIO_IN_Pin); + + /* USER CODE BEGIN ADC1_MspDeInit 1 */ + + /* USER CODE END ADC1_MspDeInit 1 */ + } + else if(hadc->Instance==ADC2) + { + /* USER CODE BEGIN ADC2_MspDeInit 0 */ + + /* USER CODE END ADC2_MspDeInit 0 */ + /* Peripheral clock disable */ + HAL_RCC_ADC12_CLK_ENABLED--; + if(HAL_RCC_ADC12_CLK_ENABLED==0){ + __HAL_RCC_ADC12_CLK_DISABLE(); + } + + /**ADC2 GPIO Configuration + PA4 ------> ADC2_IN17 + PA5 ------> ADC2_IN13 + PA6 ------> ADC2_IN3 + PA7 ------> ADC2_IN4 + */ + HAL_GPIO_DeInit(GPIOA, TEMPERATURA_Pin|CORRENTE_Pin|DIRETTA_Pin|RIFLESSA_Pin); + + /* USER CODE BEGIN ADC2_MspDeInit 1 */ + + /* USER CODE END ADC2_MspDeInit 1 */ + } + +} + +/** +* @brief I2C MSP Initialization +* This function configures the hardware resources used in this example +* @param hi2c: I2C handle pointer +* @retval None +*/ +void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(hi2c->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspInit 0 */ + + /* USER CODE END I2C1_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; + PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C1 GPIO Configuration + PA15 ------> I2C1_SCL + PB7 ------> I2C1_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_15; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* Peripheral clock enable */ + __HAL_RCC_I2C1_CLK_ENABLE(); + /* USER CODE BEGIN I2C1_MspInit 1 */ + + /* USER CODE END I2C1_MspInit 1 */ + } + +} + +/** +* @brief I2C MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hi2c: I2C handle pointer +* @retval None +*/ +void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c) +{ + if(hi2c->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspDeInit 0 */ + + /* USER CODE END I2C1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C1_CLK_DISABLE(); + + /**I2C1 GPIO Configuration + PA15 ------> I2C1_SCL + PB7 ------> I2C1_SDA + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7); + + /* USER CODE BEGIN I2C1_MspDeInit 1 */ + + /* USER CODE END I2C1_MspDeInit 1 */ + } + +} + +/** +* @brief TIM_Base MSP Initialization +* This function configures the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + /* USER CODE BEGIN TIM2_MspInit 1 */ + + /* USER CODE END TIM2_MspInit 1 */ + } + else if(htim_base->Instance==TIM3) + { + /* USER CODE BEGIN TIM3_MspInit 0 */ + + /* USER CODE END TIM3_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM3_CLK_ENABLE(); + /* TIM3 interrupt Init */ + HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(TIM3_IRQn); + /* USER CODE BEGIN TIM3_MspInit 1 */ + + /* USER CODE END TIM3_MspInit 1 */ + } + +} + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(htim->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspPostInit 0 */ + + /* USER CODE END TIM2_MspPostInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**TIM2 GPIO Configuration + PA0 ------> TIM2_CH1 + PA1 ------> TIM2_CH2 + PA2 ------> TIM2_CH3 + PA3 ------> TIM2_CH4 + */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM2_MspPostInit 1 */ + + /* USER CODE END TIM2_MspPostInit 1 */ + } + +} +/** +* @brief TIM_Base MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspDeInit 0 */ + + /* USER CODE END TIM2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM2_CLK_DISABLE(); + /* USER CODE BEGIN TIM2_MspDeInit 1 */ + + /* USER CODE END TIM2_MspDeInit 1 */ + } + else if(htim_base->Instance==TIM3) + { + /* USER CODE BEGIN TIM3_MspDeInit 0 */ + + /* USER CODE END TIM3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM3_CLK_DISABLE(); + + /* TIM3 interrupt DeInit */ + HAL_NVIC_DisableIRQ(TIM3_IRQn); + /* USER CODE BEGIN TIM3_MspDeInit 1 */ + + /* USER CODE END TIM3_MspDeInit 1 */ + } + +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/squeow_sw/Src/stm32g4xx_it.c b/squeow_sw/Src/stm32g4xx_it.c new file mode 100644 index 0000000..9b6ffb5 --- /dev/null +++ b/squeow_sw/Src/stm32g4xx_it.c @@ -0,0 +1,232 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32g4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + * Copyright (c) 2022 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 "main.h" +#include "stm32g4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ +extern PCD_HandleTypeDef hpcd_USB_FS; +extern TIM_HandleTypeDef htim3; +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) + { + } + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32G4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32g4xx.s). */ +/******************************************************************************/ + +/** + * @brief This function handles USB low priority interrupt remap. + */ +void USB_LP_IRQHandler(void) +{ + /* USER CODE BEGIN USB_LP_IRQn 0 */ + + /* USER CODE END USB_LP_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_FS); + /* USER CODE BEGIN USB_LP_IRQn 1 */ + + /* USER CODE END USB_LP_IRQn 1 */ +} + +/** + * @brief This function handles TIM3 global interrupt. + */ +void TIM3_IRQHandler(void) +{ + /* USER CODE BEGIN TIM3_IRQn 0 */ + + /* USER CODE END TIM3_IRQn 0 */ + HAL_TIM_IRQHandler(&htim3); + /* USER CODE BEGIN TIM3_IRQn 1 */ + + /* USER CODE END TIM3_IRQn 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/squeow_sw/Src/system_stm32g4xx.c b/squeow_sw/Src/system_stm32g4xx.c new file mode 100644 index 0000000..d20700b --- /dev/null +++ b/squeow_sw/Src/system_stm32g4xx.c @@ -0,0 +1,285 @@ +/** + ****************************************************************************** + * @file system_stm32g4xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32g4xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * After each device reset the HSI (16 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32g4xx.s" file, to + * configure the system clock before to branch to main program. + * + * This file configures the system clock as follows: + *============================================================================= + *----------------------------------------------------------------------------- + * System Clock source | HSI + *----------------------------------------------------------------------------- + * SYSCLK(Hz) | 16000000 + *----------------------------------------------------------------------------- + * HCLK(Hz) | 16000000 + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * PLL_M | 1 + *----------------------------------------------------------------------------- + * PLL_N | 16 + *----------------------------------------------------------------------------- + * PLL_P | 7 + *----------------------------------------------------------------------------- + * PLL_Q | 2 + *----------------------------------------------------------------------------- + * PLL_R | 2 + *----------------------------------------------------------------------------- + * Require 48MHz for RNG | Disabled + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 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. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32g4xx_system + * @{ + */ + +/** @addtogroup STM32G4xx_System_Private_Includes + * @{ + */ + +#include "stm32g4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ +/* Note: Following vector table addresses must be defined in line with linker + configuration. */ +/*!< Uncomment the following line if you need to relocate the vector table + anywhere in Flash or Sram, else the vector table is kept at the automatic + remap of boot address selected */ +/* #define USER_VECT_TAB_ADDRESS */ + +#if defined(USER_VECT_TAB_ADDRESS) +/*!< Uncomment the following line if you need to relocate your vector Table + in Sram else user remap will be done in Flash. */ +/* #define VECT_TAB_SRAM */ +#if defined(VECT_TAB_SRAM) +#define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +#else +#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +/******************************************************************************/ +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Variables + * @{ + */ + /* The SystemCoreClock variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ + uint32_t SystemCoreClock = HSI_VALUE; + + const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U}; + const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U}; + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32G4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system. + * @param None + * @retval None + */ + +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2))); /* set CP10 and CP11 Full Access */ + #endif + + /* Configure the Vector Table location add offset address ------------------*/ +#if defined(USER_VECT_TAB_ADDRESS) + SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(**) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(***) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(***) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (**) HSI_VALUE is a constant defined in stm32g4xx_hal.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (***) HSE_VALUE is a constant defined in stm32g4xx_hal.h file (default value + * 24 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp, pllvco, pllr, pllsource, pllm; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case 0x04: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + + case 0x08: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + + case 0x0C: /* PLL used as system clock source */ + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN + SYSCLK = PLL_VCO / PLLR + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC); + pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ; + if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + { + pllvco = (HSI_VALUE / pllm); + } + else /* HSE used as PLL clock source */ + { + pllvco = (HSE_VALUE / pllm); + } + pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8); + pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + SystemCoreClock = pllvco/pllr; + break; + + default: + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + + diff --git a/squeow_sw/Src/usb_device.c b/squeow_sw/Src/usb_device.c new file mode 100644 index 0000000..52f2aec --- /dev/null +++ b/squeow_sw/Src/usb_device.c @@ -0,0 +1,97 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usb_device.c + * @version : v3.0_Cube + * @brief : This file implements the USB Device + ****************************************************************************** + * @attention + * + * Copyright (c) 2022 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_audio.h" +#include "usbd_audio_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 */ + +extern void Error_Handler(void); +/* USB Device Core handle declaration. */ +USBD_HandleTypeDef hUsbDeviceFS; +extern USBD_DescriptorsTypeDef AUDIO_Desc; + +/* + * -- 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(&hUsbDeviceFS, &AUDIO_Desc, DEVICE_FS) != USBD_OK) { + Error_Handler(); + } + if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_AUDIO) != USBD_OK) { + Error_Handler(); + } + if (USBD_AUDIO_RegisterInterface(&hUsbDeviceFS, &USBD_AUDIO_fops_FS) != USBD_OK) { + Error_Handler(); + } + if (USBD_Start(&hUsbDeviceFS) != USBD_OK) { + Error_Handler(); + } + /* USER CODE BEGIN USB_Device_Init_PostTreatment */ + + /* USER CODE END USB_Device_Init_PostTreatment */ +} + +/** + * @} + */ + +/** + * @} + */ + diff --git a/squeow_sw/Src/usbd_audio_if.c b/squeow_sw/Src/usbd_audio_if.c new file mode 100644 index 0000000..a1c32c7 --- /dev/null +++ b/squeow_sw/Src/usbd_audio_if.c @@ -0,0 +1,285 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_audio_if.c + * @version : v3.0_Cube + * @brief : Generic media access layer. + ****************************************************************************** + * @attention + * + * Copyright (c) 2022 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_audio_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_AUDIO_IF + * @{ + */ + +/** @defgroup USBD_AUDIO_IF_Private_TypesDefinitions USBD_AUDIO_IF_Private_TypesDefinitions + * @brief Private types. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_TYPES */ + +/* USER CODE END PRIVATE_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_AUDIO_IF_Private_Defines USBD_AUDIO_IF_Private_Defines + * @brief Private defines. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_DEFINES */ + +/* USER CODE END PRIVATE_DEFINES */ + +/** + * @} + */ + +/** @defgroup USBD_AUDIO_IF_Private_Macros USBD_AUDIO_IF_Private_Macros + * @brief Private macros. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_MACRO */ + +/* USER CODE END PRIVATE_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_AUDIO_IF_Private_Variables USBD_AUDIO_IF_Private_Variables + * @brief Private variables. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_VARIABLES */ + +/* USER CODE END PRIVATE_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_AUDIO_IF_Exported_Variables USBD_AUDIO_IF_Exported_Variables + * @brief Public variables. + * @{ + */ + +extern USBD_HandleTypeDef hUsbDeviceFS; + +/* USER CODE BEGIN EXPORTED_VARIABLES */ + +/* USER CODE END EXPORTED_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_AUDIO_IF_Private_FunctionPrototypes USBD_AUDIO_IF_Private_FunctionPrototypes + * @brief Private functions declaration. + * @{ + */ + +static int8_t AUDIO_Init_FS(uint32_t AudioFreq, uint32_t Volume, uint32_t options); +static int8_t AUDIO_DeInit_FS(uint32_t options); +static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd); +static int8_t AUDIO_VolumeCtl_FS(uint8_t vol); +static int8_t AUDIO_MuteCtl_FS(uint8_t cmd); +static int8_t AUDIO_PeriodicTC_FS(uint8_t *pbuf, uint32_t size, uint8_t cmd); +static int8_t AUDIO_GetState_FS(void); + +/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ + +/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ + +/** + * @} + */ + +USBD_AUDIO_ItfTypeDef USBD_AUDIO_fops_FS = +{ + AUDIO_Init_FS, + AUDIO_DeInit_FS, + AUDIO_AudioCmd_FS, + AUDIO_VolumeCtl_FS, + AUDIO_MuteCtl_FS, + AUDIO_PeriodicTC_FS, + AUDIO_GetState_FS, +}; + +/* Private functions ---------------------------------------------------------*/ +/** + * @brief Initializes the AUDIO media low layer over USB FS IP + * @param AudioFreq: Audio frequency used to play the audio stream. + * @param Volume: Initial volume level (from 0 (Mute) to 100 (Max)) + * @param options: Reserved for future use + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_Init_FS(uint32_t AudioFreq, uint32_t Volume, uint32_t options) +{ + /* USER CODE BEGIN 0 */ + UNUSED(AudioFreq); + UNUSED(Volume); + UNUSED(options); + return (USBD_OK); + /* USER CODE END 0 */ +} + +/** + * @brief De-Initializes the AUDIO media low layer + * @param options: Reserved for future use + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_DeInit_FS(uint32_t options) +{ + /* USER CODE BEGIN 1 */ + UNUSED(options); + return (USBD_OK); + /* USER CODE END 1 */ +} + +/** + * @brief Handles AUDIO command. + * @param pbuf: Pointer to buffer of data to be sent + * @param size: Number of data to be sent (in bytes) + * @param cmd: Command opcode + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd) +{ + /* USER CODE BEGIN 2 */ + switch(cmd) + { + case AUDIO_CMD_START: + break; + + case AUDIO_CMD_PLAY: + break; + } + UNUSED(pbuf); + UNUSED(size); + UNUSED(cmd); + return (USBD_OK); + /* USER CODE END 2 */ +} + +/** + * @brief Controls AUDIO Volume. + * @param vol: volume level (0..100) + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_VolumeCtl_FS(uint8_t vol) +{ + /* USER CODE BEGIN 3 */ + UNUSED(vol); + return (USBD_OK); + /* USER CODE END 3 */ +} + +/** + * @brief Controls AUDIO Mute. + * @param cmd: command opcode + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_MuteCtl_FS(uint8_t cmd) +{ + /* USER CODE BEGIN 4 */ + UNUSED(cmd); + return (USBD_OK); + /* USER CODE END 4 */ +} + +/** + * @brief AUDIO_PeriodicT_FS + * @param cmd: Command opcode + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_PeriodicTC_FS(uint8_t *pbuf, uint32_t size, uint8_t cmd) +{ + /* USER CODE BEGIN 5 */ + UNUSED(pbuf); + UNUSED(size); + UNUSED(cmd); + return (USBD_OK); + /* USER CODE END 5 */ +} + +/** + * @brief Gets AUDIO State. + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t AUDIO_GetState_FS(void) +{ + /* USER CODE BEGIN 6 */ + return (USBD_OK); + /* USER CODE END 6 */ +} + +/** + * @brief Manages the DMA full transfer complete event. + * @retval None + */ +void TransferComplete_CallBack_FS(void) +{ + /* USER CODE BEGIN 7 */ + USBD_AUDIO_Sync(&hUsbDeviceFS, AUDIO_OFFSET_FULL); + /* USER CODE END 7 */ +} + +/** + * @brief Manages the DMA Half transfer complete event. + * @retval None + */ +void HalfTransfer_CallBack_FS(void) +{ + /* USER CODE BEGIN 8 */ + USBD_AUDIO_Sync(&hUsbDeviceFS, AUDIO_OFFSET_HALF); + /* USER CODE END 8 */ +} + +/* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */ + +/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */ + +/** + * @} + */ + +/** + * @} + */ diff --git a/squeow_sw/Src/usbd_conf.c b/squeow_sw/Src/usbd_conf.c new file mode 100644 index 0000000..1ffa62a --- /dev/null +++ b/squeow_sw/Src/usbd_conf.c @@ -0,0 +1,795 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_conf.c + * @version : v3.0_Cube + * @brief : This file implements the board support package for the USB device library + ****************************************************************************** + * @attention + * + * Copyright (c) 2022 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 "stm32g4xx.h" +#include "stm32g4xx_hal.h" +#include "usbd_def.h" +#include "usbd_core.h" + +#include "usbd_audio.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +PCD_HandleTypeDef hpcd_USB_FS; +void Error_Handler(void); + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* Exported function prototypes ----------------------------------------------*/ + +/* USER CODE BEGIN PFP */ +/* Private function prototypes -----------------------------------------------*/ + +/* USER CODE END PFP */ + +/* Private functions ---------------------------------------------------------*/ +static USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status); +/* USER CODE BEGIN 1 */ +static void SystemClockConfig_Resume(void); + +/* USER CODE END 1 */ +extern void SystemClock_Config(void); + +/******************************************************************************* + LL Driver Callbacks (PCD -> USB Device Library) +*******************************************************************************/ +/* MSP Init */ + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) +#else +void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(pcdHandle->Instance==USB) + { + /* USER CODE BEGIN USB_MspInit 0 */ + + /* USER CODE END USB_MspInit 0 */ + + /** Initializes the peripherals clocks + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USB; + PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_HSI48; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* Peripheral clock enable */ + __HAL_RCC_USB_CLK_ENABLE(); + + /* Peripheral interrupt init */ + HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USB_LP_IRQn); + /* USER CODE BEGIN USB_MspInit 1 */ + + /* USER CODE END USB_MspInit 1 */ + } +} + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) +#else +void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + if(pcdHandle->Instance==USB) + { + /* USER CODE BEGIN USB_MspDeInit 0 */ + + /* USER CODE END USB_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USB_CLK_DISABLE(); + + /* Peripheral interrupt Deinit*/ + HAL_NVIC_DisableIRQ(USB_LP_IRQn); + + /* USER CODE BEGIN USB_MspDeInit 1 */ + + /* USER CODE END USB_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 */ +{ + /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_SetupStageCallback_PreTreatment */ + USBD_LL_SetupStage((USBD_HandleTypeDef*)hpcd->pData, (uint8_t *)hpcd->Setup); + /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_SetupStageCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_DataOutStageCallback_PreTreatment */ + USBD_LL_DataOutStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->OUT_ep[epnum].xfer_buff); + /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_DataOutStageCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_DataInStageCallback_PreTreatment */ + USBD_LL_DataInStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->IN_ep[epnum].xfer_buff); + /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_DataInStageCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_SOFCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_SOFCallback_PreTreatment */ + USBD_LL_SOF((USBD_HandleTypeDef*)hpcd->pData); + /* USER CODE BEGIN HAL_PCD_SOFCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_SOFCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_ResetCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_ResetCallback_PreTreatment */ + USBD_SpeedTypeDef speed = USBD_SPEED_FULL; + + if ( hpcd->Init.speed != PCD_SPEED_FULL) + { + Error_Handler(); + } + /* Set Speed. */ + USBD_LL_SetSpeed((USBD_HandleTypeDef*)hpcd->pData, speed); + + /* Reset Device. */ + USBD_LL_Reset((USBD_HandleTypeDef*)hpcd->pData); + /* USER CODE BEGIN HAL_PCD_ResetCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_ResetCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_SuspendCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_SuspendCallback_PreTreatment */ + /* Inform USB library that core enters in suspend Mode. */ + USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData); + /* 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 */ + /* USER CODE BEGIN HAL_PCD_SuspendCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_SuspendCallback_PostTreatment */ +} + +/** + * @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 HAL_PCD_ResumeCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_ResumeCallback_PreTreatment */ + + /* USER CODE BEGIN 3 */ + if (hpcd->Init.low_power_enable) + { + /* Reset SLEEPDEEP bit of Cortex System Control Register. */ + SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + SystemClockConfig_Resume(); + } + /* USER CODE END 3 */ + + USBD_LL_Resume((USBD_HandleTypeDef*)hpcd->pData); + /* USER CODE BEGIN HAL_PCD_ResumeCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_ResumeCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_ISOOUTIncompleteCallback_PreTreatment */ + USBD_LL_IsoOUTIncomplete((USBD_HandleTypeDef*)hpcd->pData, epnum); + /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_ISOOUTIncompleteCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_ISOINIncompleteCallback_PreTreatment */ + USBD_LL_IsoINIncomplete((USBD_HandleTypeDef*)hpcd->pData, epnum); + /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_ISOINIncompleteCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_ConnectCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_ConnectCallback_PreTreatment */ + USBD_LL_DevConnected((USBD_HandleTypeDef*)hpcd->pData); + /* USER CODE BEGIN HAL_PCD_ConnectCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_ConnectCallback_PostTreatment */ +} + +/** + * @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 */ +{ + /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PreTreatment */ + + /* USER CODE END HAL_PCD_DisconnectCallback_PreTreatment */ + USBD_LL_DevDisconnected((USBD_HandleTypeDef*)hpcd->pData); + /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PostTreatment */ + + /* USER CODE END HAL_PCD_DisconnectCallback_PostTreatment */ +} + + /* USER CODE BEGIN LowLevelInterface */ + + /* USER CODE END LowLevelInterface */ + +/******************************************************************************* + 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. */ + hpcd_USB_FS.pData = pdev; + /* Link the driver to the stack. */ + pdev->pData = &hpcd_USB_FS; + + hpcd_USB_FS.Instance = USB; + hpcd_USB_FS.Init.dev_endpoints = 8; + hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; + hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED; + hpcd_USB_FS.Init.Sof_enable = DISABLE; + hpcd_USB_FS.Init.low_power_enable = DISABLE; + hpcd_USB_FS.Init.lpm_enable = DISABLE; + hpcd_USB_FS.Init.battery_charging_enable = DISABLE; + + #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + /* register Msp Callbacks (before the Init) */ + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_MSPINIT_CB_ID, PCD_MspInit); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_MSPDEINIT_CB_ID, PCD_MspDeInit); + #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + + if (HAL_PCD_Init(&hpcd_USB_FS) != HAL_OK) + { + Error_Handler( ); + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + /* Register USB PCD CallBacks */ + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback); + /* USER CODE BEGIN RegisterCallBackFirstPart */ + + /* USER CODE END RegisterCallBackFirstPart */ + HAL_PCD_RegisterLpmCallback(&hpcd_USB_FS, PCDEx_LPM_Callback); + HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_FS, PCD_DataOutStageCallback); + HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_FS, PCD_DataInStageCallback); + HAL_PCD_RegisterIsoOutIncpltCallback(&hpcd_USB_FS, PCD_ISOOUTIncompleteCallback); + HAL_PCD_RegisterIsoInIncpltCallback(&hpcd_USB_FS, PCD_ISOINIncompleteCallback); + /* USER CODE BEGIN RegisterCallBackSecondPart */ + + /* USER CODE END RegisterCallBackSecondPart */ +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + /* USER CODE BEGIN EndPoint_Configuration */ + HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, 0x00, PCD_SNG_BUF, 0x10); + HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, 0x80, PCD_SNG_BUF, 0x50); + /* USER CODE END EndPoint_Configuration */ + /* USER CODE BEGIN EndPoint_Configuration_AUDIO */ + HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, AUDIO_OUT_EP, PCD_DBL_BUF, 0x01500090); + /* USER CODE END EndPoint_Configuration_AUDIO */ + 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); +} + +/** + * @brief Send LPM message to user layer + * @param hpcd: PCD handle + * @param msg: LPM message + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg) +#else +void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + /* USER CODE BEGIN LPM_Callback */ + switch (msg) + { + case PCD_LPM_L0_ACTIVE: + if (hpcd->Init.low_power_enable) + { + SystemClockConfig_Resume(); + + /* Reset SLEEPDEEP bit of Cortex System Control Register. */ + SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + } + USBD_LL_Resume(hpcd->pData); + break; + + case PCD_LPM_L1_ACTIVE: + USBD_LL_Suspend(hpcd->pData); + + /* Enter in STOP mode. */ + 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)); + } + break; + } + /* USER CODE END LPM_Callback */ +} + +/** + * @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 Static single allocation. + * @param size: Size of allocated memory + * @retval None + */ +void *USBD_static_malloc(uint32_t size) +{ + static uint32_t mem[(sizeof(USBD_AUDIO_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) +{ + +} + +/* USER CODE BEGIN 5 */ +/** + * @brief Configures system clock after wake-up from USB resume callBack: + * enable HSI, PLL and select PLL as system clock source. + * @retval None + */ +static void SystemClockConfig_Resume(void) +{ + SystemClock_Config(); +} +/* USER CODE END 5 */ + +/** + * @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/squeow_sw/Src/usbd_desc.c b/squeow_sw/Src/usbd_desc.c new file mode 100644 index 0000000..7de84e4 --- /dev/null +++ b/squeow_sw/Src/usbd_desc.c @@ -0,0 +1,396 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_desc.c + * @version : v3.0_Cube + * @brief : This file implements the USB device descriptors. + ****************************************************************************** + * @attention + * + * Copyright (c) 2022 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 22336 +#define USBD_PRODUCT_STRING "STM32 Audio Class" +#define USBD_CONFIGURATION_STRING "AUDIO Config" +#define USBD_INTERFACE_STRING "AUDIO 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. + * @{ + */ + +uint8_t * USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables + * @brief Private variables. + * @{ + */ + +USBD_DescriptorsTypeDef AUDIO_Desc = +{ + USBD_AUDIO_DeviceDescriptor, + USBD_AUDIO_LangIDStrDescriptor, + USBD_AUDIO_ManufacturerStrDescriptor, + USBD_AUDIO_ProductStrDescriptor, + USBD_AUDIO_SerialStrDescriptor, + USBD_AUDIO_ConfigStrDescriptor, + USBD_AUDIO_InterfaceStrDescriptor +}; + +#if defined ( __ICCARM__ ) /* IAR Compiler */ + #pragma data_alignment=4 +#endif /* defined ( __ICCARM__ ) */ +/** USB standard device descriptor. */ +__ALIGN_BEGIN uint8_t USBD_AUDIO_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = +{ + 0x12, /*bLength */ + USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ + 0x00, /*bcdUSB */ + 0x02, + 0x00, /*bDeviceClass*/ + 0x00, /*bDeviceSubClass*/ + 0x00, /*bDeviceProtocol*/ + USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ + LOBYTE(USBD_VID), /*idVendor*/ + HIBYTE(USBD_VID), /*idVendor*/ + LOBYTE(USBD_PID), /*idProduct*/ + HIBYTE(USBD_PID), /*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*/ +}; + +/* USB_DeviceDescriptor */ + +/** + * @} + */ + +/** @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_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + UNUSED(speed); + *length = sizeof(USBD_AUDIO_DeviceDesc); + return USBD_AUDIO_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_AUDIO_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_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + if(speed == 0) + { + USBD_GetString((uint8_t *)USBD_PRODUCT_STRING, USBD_StrDesc, length); + } + else + { + USBD_GetString((uint8_t *)USBD_PRODUCT_STRING, 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_AUDIO_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_AUDIO_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_AUDIO_SerialStrDescriptor */ + + /* USER CODE END USBD_AUDIO_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_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + if(speed == USBD_SPEED_HIGH) + { + USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING, USBD_StrDesc, length); + } + else + { + USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING, 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_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + if(speed == 0) + { + USBD_GetString((uint8_t *)USBD_INTERFACE_STRING, USBD_StrDesc, length); + } + else + { + USBD_GetString((uint8_t *)USBD_INTERFACE_STRING, USBD_StrDesc, length); + } + return USBD_StrDesc; +} + +/** + * @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/squeow_sw/build/main.d b/squeow_sw/build/main.d new file mode 100644 index 0000000..01064b9 --- /dev/null +++ b/squeow_sw/build/main.d @@ -0,0 +1,81 @@ +build/main.o: Src/main.c Inc/main.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h \ + Inc/usb_device.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + Inc/usbd_conf.h Inc/si5351.h +Inc/main.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: +Inc/usb_device.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.h: +Inc/si5351.h: diff --git a/squeow_sw/build/main.lst b/squeow_sw/build/main.lst new file mode 100644 index 0000000..b77797f --- /dev/null +++ b/squeow_sw/build/main.lst @@ -0,0 +1,2832 @@ +ARM GAS /tmp/cc8GRwsk.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "main.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/main.c" + 20 .section .text.MX_GPIO_Init,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 MX_GPIO_Init: + 27 .LFB341: + 1:Src/main.c **** /* USER CODE BEGIN Header */ + 2:Src/main.c **** /** + 3:Src/main.c **** ****************************************************************************** + 4:Src/main.c **** * @file : main.c + 5:Src/main.c **** * @brief : Main program body + 6:Src/main.c **** ****************************************************************************** + 7:Src/main.c **** * @attention + 8:Src/main.c **** * + 9:Src/main.c **** * Copyright (c) 2022 STMicroelectronics. + 10:Src/main.c **** * All rights reserved. + 11:Src/main.c **** * + 12:Src/main.c **** * This software is licensed under terms that can be found in the LICENSE file + 13:Src/main.c **** * in the root directory of this software component. + 14:Src/main.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 15:Src/main.c **** * + 16:Src/main.c **** ****************************************************************************** + 17:Src/main.c **** */ + 18:Src/main.c **** /* USER CODE END Header */ + 19:Src/main.c **** /* Includes ------------------------------------------------------------------*/ + 20:Src/main.c **** #include "main.h" + 21:Src/main.c **** #include "usb_device.h" + 22:Src/main.c **** + 23:Src/main.c **** /* Private includes ----------------------------------------------------------*/ + 24:Src/main.c **** /* USER CODE BEGIN Includes */ + 25:Src/main.c **** #include "si5351.h" + 26:Src/main.c **** + 27:Src/main.c **** /* USER CODE END Includes */ + 28:Src/main.c **** + 29:Src/main.c **** /* Private typedef -----------------------------------------------------------*/ + 30:Src/main.c **** /* USER CODE BEGIN PTD */ + 31:Src/main.c **** + ARM GAS /tmp/cc8GRwsk.s page 2 + + + 32:Src/main.c **** /* USER CODE END PTD */ + 33:Src/main.c **** + 34:Src/main.c **** /* Private define ------------------------------------------------------------*/ + 35:Src/main.c **** /* USER CODE BEGIN PD */ + 36:Src/main.c **** /* USER CODE END PD */ + 37:Src/main.c **** + 38:Src/main.c **** /* Private macro -------------------------------------------------------------*/ + 39:Src/main.c **** /* USER CODE BEGIN PM */ + 40:Src/main.c **** + 41:Src/main.c **** /* USER CODE END PM */ + 42:Src/main.c **** + 43:Src/main.c **** /* Private variables ---------------------------------------------------------*/ + 44:Src/main.c **** ADC_HandleTypeDef hadc1; + 45:Src/main.c **** ADC_HandleTypeDef hadc2; + 46:Src/main.c **** + 47:Src/main.c **** I2C_HandleTypeDef hi2c1; + 48:Src/main.c **** + 49:Src/main.c **** TIM_HandleTypeDef htim2; + 50:Src/main.c **** TIM_HandleTypeDef htim3; + 51:Src/main.c **** + 52:Src/main.c **** UART_HandleTypeDef huart1; + 53:Src/main.c **** + 54:Src/main.c **** /* USER CODE BEGIN PV */ + 55:Src/main.c **** + 56:Src/main.c **** /* USER CODE END PV */ + 57:Src/main.c **** + 58:Src/main.c **** /* Private function prototypes -----------------------------------------------*/ + 59:Src/main.c **** void SystemClock_Config(void); + 60:Src/main.c **** static void MX_GPIO_Init(void); + 61:Src/main.c **** static void MX_TIM2_Init(void); + 62:Src/main.c **** static void MX_I2C1_Init(void); + 63:Src/main.c **** static void MX_TIM3_Init(void); + 64:Src/main.c **** static void MX_ADC1_Init(void); + 65:Src/main.c **** static void MX_ADC2_Init(void); + 66:Src/main.c **** static void MX_USART1_UART_Init(void); + 67:Src/main.c **** /* USER CODE BEGIN PFP */ + 68:Src/main.c **** + 69:Src/main.c **** /* USER CODE END PFP */ + 70:Src/main.c **** + 71:Src/main.c **** /* Private user code ---------------------------------------------------------*/ + 72:Src/main.c **** /* USER CODE BEGIN 0 */ + 73:Src/main.c **** + 74:Src/main.c **** /* USER CODE END 0 */ + 75:Src/main.c **** + 76:Src/main.c **** /** + 77:Src/main.c **** * @brief The application entry point. + 78:Src/main.c **** * @retval int + 79:Src/main.c **** */ + 80:Src/main.c **** int main(void) + 81:Src/main.c **** { + 82:Src/main.c **** /* USER CODE BEGIN 1 */ + 83:Src/main.c **** + 84:Src/main.c **** /* USER CODE END 1 */ + 85:Src/main.c **** + 86:Src/main.c **** /* MCU Configuration--------------------------------------------------------*/ + 87:Src/main.c **** + 88:Src/main.c **** /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + ARM GAS /tmp/cc8GRwsk.s page 3 + + + 89:Src/main.c **** HAL_Init(); + 90:Src/main.c **** + 91:Src/main.c **** /* USER CODE BEGIN Init */ + 92:Src/main.c **** + 93:Src/main.c **** /* USER CODE END Init */ + 94:Src/main.c **** + 95:Src/main.c **** /* Configure the system clock */ + 96:Src/main.c **** SystemClock_Config(); + 97:Src/main.c **** + 98:Src/main.c **** /* USER CODE BEGIN SysInit */ + 99:Src/main.c **** + 100:Src/main.c **** /* USER CODE END SysInit */ + 101:Src/main.c **** + 102:Src/main.c **** /* Initialize all configured peripherals */ + 103:Src/main.c **** MX_GPIO_Init(); + 104:Src/main.c **** MX_TIM2_Init(); + 105:Src/main.c **** MX_I2C1_Init(); + 106:Src/main.c **** MX_TIM3_Init(); + 107:Src/main.c **** MX_ADC1_Init(); + 108:Src/main.c **** MX_ADC2_Init(); + 109:Src/main.c **** MX_USART1_UART_Init(); + 110:Src/main.c **** MX_USB_Device_Init(); + 111:Src/main.c **** /* USER CODE BEGIN 2 */ + 112:Src/main.c **** + 113:Src/main.c **** HAL_TIM_Base_Start_IT(&htim2); + 114:Src/main.c **** HAL_TIM_Base_Start_IT(&htim3); + 115:Src/main.c **** + 116:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); + 117:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); + 118:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3); + 119:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); + 120:Src/main.c **** + 121:Src/main.c **** HAL_Delay(10); + 122:Src/main.c **** si5351_initialize(); + 123:Src/main.c **** HAL_Delay(10); + 124:Src/main.c **** si5351_on_clk(0); + 125:Src/main.c **** si5351_on_clk(1); + 126:Src/main.c **** si5351_set_frequency(1000000,0); + 127:Src/main.c **** si5351_set_frequency(1000000,1); + 128:Src/main.c **** + 129:Src/main.c **** /* USER CODE END 2 */ + 130:Src/main.c **** + 131:Src/main.c **** /* Infinite loop */ + 132:Src/main.c **** /* USER CODE BEGIN WHILE */ + 133:Src/main.c **** while (1) + 134:Src/main.c **** { + 135:Src/main.c **** /* USER CODE END WHILE */ + 136:Src/main.c **** + 137:Src/main.c **** /* USER CODE BEGIN 3 */ + 138:Src/main.c **** // HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); + 139:Src/main.c **** + 140:Src/main.c **** // TIM2->CCR1 = pwm_value > 1024 ? 1024 : pwm_value; + 141:Src/main.c **** // TIM2->CCR2 = pwm_value > 2048 ? 1024 : sat_sub(pwm_value,1024) & 1023; + 142:Src/main.c **** // TIM2->CCR3 = pwm_value > 3072 ? 1024 : sat_sub(pwm_value,2048) & 1023; + 143:Src/main.c **** // TIM2->CCR4 = pwm_value > 4096 ? 1024 : sat_sub(pwm_value,3072) & 1023; + 144:Src/main.c **** HAL_Delay(10); + 145:Src/main.c **** si5351_set_frequency(1000000,0); + ARM GAS /tmp/cc8GRwsk.s page 4 + + + 146:Src/main.c **** si5351_set_frequency(1000000,1); + 147:Src/main.c **** + 148:Src/main.c **** } + 149:Src/main.c **** /* USER CODE END 3 */ + 150:Src/main.c **** } + 151:Src/main.c **** + 152:Src/main.c **** /** + 153:Src/main.c **** * @brief System Clock Configuration + 154:Src/main.c **** * @retval None + 155:Src/main.c **** */ + 156:Src/main.c **** void SystemClock_Config(void) + 157:Src/main.c **** { + 158:Src/main.c **** RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 159:Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 160:Src/main.c **** + 161:Src/main.c **** /** Configure the main internal regulator output voltage + 162:Src/main.c **** */ + 163:Src/main.c **** HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1); + 164:Src/main.c **** + 165:Src/main.c **** /** Initializes the RCC Oscillators according to the specified parameters + 166:Src/main.c **** * in the RCC_OscInitTypeDef structure. + 167:Src/main.c **** */ + 168:Src/main.c **** RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE; + 169:Src/main.c **** RCC_OscInitStruct.HSEState = RCC_HSE_ON; + 170:Src/main.c **** RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; + 171:Src/main.c **** RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 172:Src/main.c **** RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + 173:Src/main.c **** RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV2; + 174:Src/main.c **** RCC_OscInitStruct.PLL.PLLN = 32; + 175:Src/main.c **** RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + 176:Src/main.c **** RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV4; + 177:Src/main.c **** RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + 178:Src/main.c **** if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 179:Src/main.c **** { + 180:Src/main.c **** Error_Handler(); + 181:Src/main.c **** } + 182:Src/main.c **** + 183:Src/main.c **** /** Initializes the CPU, AHB and APB buses clocks + 184:Src/main.c **** */ + 185:Src/main.c **** RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 186:Src/main.c **** |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + 187:Src/main.c **** RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + 188:Src/main.c **** RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 189:Src/main.c **** RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 190:Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 191:Src/main.c **** + 192:Src/main.c **** if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) + 193:Src/main.c **** { + 194:Src/main.c **** Error_Handler(); + 195:Src/main.c **** } + 196:Src/main.c **** HAL_RCC_MCOConfig(RCC_MCO_PG10, RCC_MCO1SOURCE_HSE, RCC_MCODIV_1); + 197:Src/main.c **** } + 198:Src/main.c **** + 199:Src/main.c **** /** + 200:Src/main.c **** * @brief ADC1 Initialization Function + 201:Src/main.c **** * @param None + 202:Src/main.c **** * @retval None + ARM GAS /tmp/cc8GRwsk.s page 5 + + + 203:Src/main.c **** */ + 204:Src/main.c **** static void MX_ADC1_Init(void) + 205:Src/main.c **** { + 206:Src/main.c **** + 207:Src/main.c **** /* USER CODE BEGIN ADC1_Init 0 */ + 208:Src/main.c **** + 209:Src/main.c **** /* USER CODE END ADC1_Init 0 */ + 210:Src/main.c **** + 211:Src/main.c **** ADC_MultiModeTypeDef multimode = {0}; + 212:Src/main.c **** ADC_ChannelConfTypeDef sConfig = {0}; + 213:Src/main.c **** + 214:Src/main.c **** /* USER CODE BEGIN ADC1_Init 1 */ + 215:Src/main.c **** + 216:Src/main.c **** /* USER CODE END ADC1_Init 1 */ + 217:Src/main.c **** + 218:Src/main.c **** /** Common config + 219:Src/main.c **** */ + 220:Src/main.c **** hadc1.Instance = ADC1; + 221:Src/main.c **** hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + 222:Src/main.c **** hadc1.Init.Resolution = ADC_RESOLUTION_12B; + 223:Src/main.c **** hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 224:Src/main.c **** hadc1.Init.GainCompensation = 0; + 225:Src/main.c **** hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; + 226:Src/main.c **** hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + 227:Src/main.c **** hadc1.Init.LowPowerAutoWait = DISABLE; + 228:Src/main.c **** hadc1.Init.ContinuousConvMode = DISABLE; + 229:Src/main.c **** hadc1.Init.NbrOfConversion = 1; + 230:Src/main.c **** hadc1.Init.DiscontinuousConvMode = DISABLE; + 231:Src/main.c **** hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 232:Src/main.c **** hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 233:Src/main.c **** hadc1.Init.DMAContinuousRequests = DISABLE; + 234:Src/main.c **** hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 235:Src/main.c **** hadc1.Init.OversamplingMode = DISABLE; + 236:Src/main.c **** if (HAL_ADC_Init(&hadc1) != HAL_OK) + 237:Src/main.c **** { + 238:Src/main.c **** Error_Handler(); + 239:Src/main.c **** } + 240:Src/main.c **** + 241:Src/main.c **** /** Configure the ADC multi-mode + 242:Src/main.c **** */ + 243:Src/main.c **** multimode.Mode = ADC_MODE_INDEPENDENT; + 244:Src/main.c **** if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) + 245:Src/main.c **** { + 246:Src/main.c **** Error_Handler(); + 247:Src/main.c **** } + 248:Src/main.c **** + 249:Src/main.c **** /** Configure Regular Channel + 250:Src/main.c **** */ + 251:Src/main.c **** sConfig.Channel = ADC_CHANNEL_15; + 252:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_1; + 253:Src/main.c **** sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + 254:Src/main.c **** sConfig.SingleDiff = ADC_SINGLE_ENDED; + 255:Src/main.c **** sConfig.OffsetNumber = ADC_OFFSET_NONE; + 256:Src/main.c **** sConfig.Offset = 0; + 257:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + 258:Src/main.c **** { + 259:Src/main.c **** Error_Handler(); + ARM GAS /tmp/cc8GRwsk.s page 6 + + + 260:Src/main.c **** } + 261:Src/main.c **** /* USER CODE BEGIN ADC1_Init 2 */ + 262:Src/main.c **** + 263:Src/main.c **** /* USER CODE END ADC1_Init 2 */ + 264:Src/main.c **** + 265:Src/main.c **** } + 266:Src/main.c **** + 267:Src/main.c **** /** + 268:Src/main.c **** * @brief ADC2 Initialization Function + 269:Src/main.c **** * @param None + 270:Src/main.c **** * @retval None + 271:Src/main.c **** */ + 272:Src/main.c **** static void MX_ADC2_Init(void) + 273:Src/main.c **** { + 274:Src/main.c **** + 275:Src/main.c **** /* USER CODE BEGIN ADC2_Init 0 */ + 276:Src/main.c **** + 277:Src/main.c **** /* USER CODE END ADC2_Init 0 */ + 278:Src/main.c **** + 279:Src/main.c **** ADC_ChannelConfTypeDef sConfig = {0}; + 280:Src/main.c **** + 281:Src/main.c **** /* USER CODE BEGIN ADC2_Init 1 */ + 282:Src/main.c **** + 283:Src/main.c **** /* USER CODE END ADC2_Init 1 */ + 284:Src/main.c **** + 285:Src/main.c **** /** Common config + 286:Src/main.c **** */ + 287:Src/main.c **** hadc2.Instance = ADC2; + 288:Src/main.c **** hadc2.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + 289:Src/main.c **** hadc2.Init.Resolution = ADC_RESOLUTION_12B; + 290:Src/main.c **** hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 291:Src/main.c **** hadc2.Init.GainCompensation = 0; + 292:Src/main.c **** hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + 293:Src/main.c **** hadc2.Init.EOCSelection = ADC_EOC_SEQ_CONV; + 294:Src/main.c **** hadc2.Init.LowPowerAutoWait = DISABLE; + 295:Src/main.c **** hadc2.Init.ContinuousConvMode = DISABLE; + 296:Src/main.c **** hadc2.Init.NbrOfConversion = 4; + 297:Src/main.c **** hadc2.Init.DiscontinuousConvMode = DISABLE; + 298:Src/main.c **** hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 299:Src/main.c **** hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 300:Src/main.c **** hadc2.Init.DMAContinuousRequests = DISABLE; + 301:Src/main.c **** hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 302:Src/main.c **** hadc2.Init.OversamplingMode = DISABLE; + 303:Src/main.c **** if (HAL_ADC_Init(&hadc2) != HAL_OK) + 304:Src/main.c **** { + 305:Src/main.c **** Error_Handler(); + 306:Src/main.c **** } + 307:Src/main.c **** + 308:Src/main.c **** /** Configure Regular Channel + 309:Src/main.c **** */ + 310:Src/main.c **** sConfig.Channel = ADC_CHANNEL_3; + 311:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_1; + 312:Src/main.c **** sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + 313:Src/main.c **** sConfig.SingleDiff = ADC_SINGLE_ENDED; + 314:Src/main.c **** sConfig.OffsetNumber = ADC_OFFSET_NONE; + 315:Src/main.c **** sConfig.Offset = 0; + 316:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + ARM GAS /tmp/cc8GRwsk.s page 7 + + + 317:Src/main.c **** { + 318:Src/main.c **** Error_Handler(); + 319:Src/main.c **** } + 320:Src/main.c **** + 321:Src/main.c **** /** Configure Regular Channel + 322:Src/main.c **** */ + 323:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_2; + 324:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 325:Src/main.c **** { + 326:Src/main.c **** Error_Handler(); + 327:Src/main.c **** } + 328:Src/main.c **** + 329:Src/main.c **** /** Configure Regular Channel + 330:Src/main.c **** */ + 331:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_3; + 332:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 333:Src/main.c **** { + 334:Src/main.c **** Error_Handler(); + 335:Src/main.c **** } + 336:Src/main.c **** + 337:Src/main.c **** /** Configure Regular Channel + 338:Src/main.c **** */ + 339:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_4; + 340:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 341:Src/main.c **** { + 342:Src/main.c **** Error_Handler(); + 343:Src/main.c **** } + 344:Src/main.c **** /* USER CODE BEGIN ADC2_Init 2 */ + 345:Src/main.c **** + 346:Src/main.c **** /* USER CODE END ADC2_Init 2 */ + 347:Src/main.c **** + 348:Src/main.c **** } + 349:Src/main.c **** + 350:Src/main.c **** /** + 351:Src/main.c **** * @brief I2C1 Initialization Function + 352:Src/main.c **** * @param None + 353:Src/main.c **** * @retval None + 354:Src/main.c **** */ + 355:Src/main.c **** static void MX_I2C1_Init(void) + 356:Src/main.c **** { + 357:Src/main.c **** + 358:Src/main.c **** /* USER CODE BEGIN I2C1_Init 0 */ + 359:Src/main.c **** + 360:Src/main.c **** /* USER CODE END I2C1_Init 0 */ + 361:Src/main.c **** + 362:Src/main.c **** /* USER CODE BEGIN I2C1_Init 1 */ + 363:Src/main.c **** + 364:Src/main.c **** /* USER CODE END I2C1_Init 1 */ + 365:Src/main.c **** hi2c1.Instance = I2C1; + 366:Src/main.c **** hi2c1.Init.Timing = 0x208080C1; + 367:Src/main.c **** hi2c1.Init.OwnAddress1 = 0; + 368:Src/main.c **** hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + 369:Src/main.c **** hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + 370:Src/main.c **** hi2c1.Init.OwnAddress2 = 0; + 371:Src/main.c **** hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + 372:Src/main.c **** hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + 373:Src/main.c **** hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + ARM GAS /tmp/cc8GRwsk.s page 8 + + + 374:Src/main.c **** if (HAL_I2C_Init(&hi2c1) != HAL_OK) + 375:Src/main.c **** { + 376:Src/main.c **** Error_Handler(); + 377:Src/main.c **** } + 378:Src/main.c **** + 379:Src/main.c **** /** Configure Analogue filter + 380:Src/main.c **** */ + 381:Src/main.c **** if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + 382:Src/main.c **** { + 383:Src/main.c **** Error_Handler(); + 384:Src/main.c **** } + 385:Src/main.c **** + 386:Src/main.c **** /** Configure Digital filter + 387:Src/main.c **** */ + 388:Src/main.c **** if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) + 389:Src/main.c **** { + 390:Src/main.c **** Error_Handler(); + 391:Src/main.c **** } + 392:Src/main.c **** /* USER CODE BEGIN I2C1_Init 2 */ + 393:Src/main.c **** + 394:Src/main.c **** /* USER CODE END I2C1_Init 2 */ + 395:Src/main.c **** + 396:Src/main.c **** } + 397:Src/main.c **** + 398:Src/main.c **** /** + 399:Src/main.c **** * @brief TIM2 Initialization Function + 400:Src/main.c **** * @param None + 401:Src/main.c **** * @retval None + 402:Src/main.c **** */ + 403:Src/main.c **** static void MX_TIM2_Init(void) + 404:Src/main.c **** { + 405:Src/main.c **** + 406:Src/main.c **** /* USER CODE BEGIN TIM2_Init 0 */ + 407:Src/main.c **** + 408:Src/main.c **** /* USER CODE END TIM2_Init 0 */ + 409:Src/main.c **** + 410:Src/main.c **** TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + 411:Src/main.c **** TIM_MasterConfigTypeDef sMasterConfig = {0}; + 412:Src/main.c **** TIM_OC_InitTypeDef sConfigOC = {0}; + 413:Src/main.c **** + 414:Src/main.c **** /* USER CODE BEGIN TIM2_Init 1 */ + 415:Src/main.c **** + 416:Src/main.c **** /* USER CODE END TIM2_Init 1 */ + 417:Src/main.c **** htim2.Instance = TIM2; + 418:Src/main.c **** htim2.Init.Prescaler = 0; + 419:Src/main.c **** htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 420:Src/main.c **** htim2.Init.Period = 2047; + 421:Src/main.c **** htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 422:Src/main.c **** htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 423:Src/main.c **** if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + 424:Src/main.c **** { + 425:Src/main.c **** Error_Handler(); + 426:Src/main.c **** } + 427:Src/main.c **** sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + 428:Src/main.c **** if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + 429:Src/main.c **** { + 430:Src/main.c **** Error_Handler(); + ARM GAS /tmp/cc8GRwsk.s page 9 + + + 431:Src/main.c **** } + 432:Src/main.c **** if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) + 433:Src/main.c **** { + 434:Src/main.c **** Error_Handler(); + 435:Src/main.c **** } + 436:Src/main.c **** sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 437:Src/main.c **** sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 438:Src/main.c **** if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 439:Src/main.c **** { + 440:Src/main.c **** Error_Handler(); + 441:Src/main.c **** } + 442:Src/main.c **** sConfigOC.OCMode = TIM_OCMODE_PWM1; + 443:Src/main.c **** sConfigOC.Pulse = 500; + 444:Src/main.c **** sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + 445:Src/main.c **** sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + 446:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) + 447:Src/main.c **** { + 448:Src/main.c **** Error_Handler(); + 449:Src/main.c **** } + 450:Src/main.c **** sConfigOC.Pulse = 1000; + 451:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + 452:Src/main.c **** { + 453:Src/main.c **** Error_Handler(); + 454:Src/main.c **** } + 455:Src/main.c **** sConfigOC.Pulse = 1500; + 456:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + 457:Src/main.c **** { + 458:Src/main.c **** Error_Handler(); + 459:Src/main.c **** } + 460:Src/main.c **** sConfigOC.Pulse = 2000; + 461:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) + 462:Src/main.c **** { + 463:Src/main.c **** Error_Handler(); + 464:Src/main.c **** } + 465:Src/main.c **** /* USER CODE BEGIN TIM2_Init 2 */ + 466:Src/main.c **** + 467:Src/main.c **** /* USER CODE END TIM2_Init 2 */ + 468:Src/main.c **** HAL_TIM_MspPostInit(&htim2); + 469:Src/main.c **** + 470:Src/main.c **** } + 471:Src/main.c **** + 472:Src/main.c **** /** + 473:Src/main.c **** * @brief TIM3 Initialization Function + 474:Src/main.c **** * @param None + 475:Src/main.c **** * @retval None + 476:Src/main.c **** */ + 477:Src/main.c **** static void MX_TIM3_Init(void) + 478:Src/main.c **** { + 479:Src/main.c **** + 480:Src/main.c **** /* USER CODE BEGIN TIM3_Init 0 */ + 481:Src/main.c **** + 482:Src/main.c **** /* USER CODE END TIM3_Init 0 */ + 483:Src/main.c **** + 484:Src/main.c **** TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + 485:Src/main.c **** TIM_MasterConfigTypeDef sMasterConfig = {0}; + 486:Src/main.c **** + 487:Src/main.c **** /* USER CODE BEGIN TIM3_Init 1 */ + ARM GAS /tmp/cc8GRwsk.s page 10 + + + 488:Src/main.c **** + 489:Src/main.c **** /* USER CODE END TIM3_Init 1 */ + 490:Src/main.c **** htim3.Instance = TIM3; + 491:Src/main.c **** htim3.Init.Prescaler = 49152; + 492:Src/main.c **** htim3.Init.CounterMode = TIM_COUNTERMODE_UP; + 493:Src/main.c **** htim3.Init.Period = 199; + 494:Src/main.c **** htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 495:Src/main.c **** htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 496:Src/main.c **** if (HAL_TIM_Base_Init(&htim3) != HAL_OK) + 497:Src/main.c **** { + 498:Src/main.c **** Error_Handler(); + 499:Src/main.c **** } + 500:Src/main.c **** sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + 501:Src/main.c **** if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) + 502:Src/main.c **** { + 503:Src/main.c **** Error_Handler(); + 504:Src/main.c **** } + 505:Src/main.c **** sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 506:Src/main.c **** sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 507:Src/main.c **** if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) + 508:Src/main.c **** { + 509:Src/main.c **** Error_Handler(); + 510:Src/main.c **** } + 511:Src/main.c **** /* USER CODE BEGIN TIM3_Init 2 */ + 512:Src/main.c **** + 513:Src/main.c **** /* USER CODE END TIM3_Init 2 */ + 514:Src/main.c **** + 515:Src/main.c **** } + 516:Src/main.c **** + 517:Src/main.c **** /** + 518:Src/main.c **** * @brief USART1 Initialization Function + 519:Src/main.c **** * @param None + 520:Src/main.c **** * @retval None + 521:Src/main.c **** */ + 522:Src/main.c **** static void MX_USART1_UART_Init(void) + 523:Src/main.c **** { + 524:Src/main.c **** + 525:Src/main.c **** /* USER CODE BEGIN USART1_Init 0 */ + 526:Src/main.c **** + 527:Src/main.c **** /* USER CODE END USART1_Init 0 */ + 528:Src/main.c **** + 529:Src/main.c **** /* USER CODE BEGIN USART1_Init 1 */ + 530:Src/main.c **** + 531:Src/main.c **** /* USER CODE END USART1_Init 1 */ + 532:Src/main.c **** huart1.Instance = USART1; + 533:Src/main.c **** huart1.Init.BaudRate = 115200; + 534:Src/main.c **** huart1.Init.WordLength = UART_WORDLENGTH_8B; + 535:Src/main.c **** huart1.Init.StopBits = UART_STOPBITS_1; + 536:Src/main.c **** huart1.Init.Parity = UART_PARITY_NONE; + 537:Src/main.c **** huart1.Init.Mode = UART_MODE_TX_RX; + 538:Src/main.c **** huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + 539:Src/main.c **** huart1.Init.OverSampling = UART_OVERSAMPLING_16; + 540:Src/main.c **** huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + 541:Src/main.c **** huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; + 542:Src/main.c **** huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 543:Src/main.c **** if (HAL_UART_Init(&huart1) != HAL_OK) + 544:Src/main.c **** { + ARM GAS /tmp/cc8GRwsk.s page 11 + + + 545:Src/main.c **** Error_Handler(); + 546:Src/main.c **** } + 547:Src/main.c **** if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) + 548:Src/main.c **** { + 549:Src/main.c **** Error_Handler(); + 550:Src/main.c **** } + 551:Src/main.c **** if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) + 552:Src/main.c **** { + 553:Src/main.c **** Error_Handler(); + 554:Src/main.c **** } + 555:Src/main.c **** if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK) + 556:Src/main.c **** { + 557:Src/main.c **** Error_Handler(); + 558:Src/main.c **** } + 559:Src/main.c **** /* USER CODE BEGIN USART1_Init 2 */ + 560:Src/main.c **** + 561:Src/main.c **** /* USER CODE END USART1_Init 2 */ + 562:Src/main.c **** + 563:Src/main.c **** } + 564:Src/main.c **** + 565:Src/main.c **** /** + 566:Src/main.c **** * @brief GPIO Initialization Function + 567:Src/main.c **** * @param None + 568:Src/main.c **** * @retval None + 569:Src/main.c **** */ + 570:Src/main.c **** static void MX_GPIO_Init(void) + 571:Src/main.c **** { + 28 .loc 1 571 1 view -0 + 29 .cfi_startproc + 30 @ args = 0, pretend = 0, frame = 40 + 31 @ frame_needed = 0, uses_anonymous_args = 0 + 32 0000 00B5 push {lr} + 33 .LCFI0: + 34 .cfi_def_cfa_offset 4 + 35 .cfi_offset 14, -4 + 36 0002 8BB0 sub sp, sp, #44 + 37 .LCFI1: + 38 .cfi_def_cfa_offset 48 + 572:Src/main.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; + 39 .loc 1 572 3 view .LVU1 + 40 .loc 1 572 20 is_stmt 0 view .LVU2 + 41 0004 0023 movs r3, #0 + 42 0006 0593 str r3, [sp, #20] + 43 0008 0693 str r3, [sp, #24] + 44 000a 0793 str r3, [sp, #28] + 45 000c 0893 str r3, [sp, #32] + 46 000e 0993 str r3, [sp, #36] + 573:Src/main.c **** /* USER CODE BEGIN MX_GPIO_Init_1 */ + 574:Src/main.c **** /* USER CODE END MX_GPIO_Init_1 */ + 575:Src/main.c **** + 576:Src/main.c **** /* GPIO Ports Clock Enable */ + 577:Src/main.c **** __HAL_RCC_GPIOF_CLK_ENABLE(); + 47 .loc 1 577 3 is_stmt 1 view .LVU3 + 48 .LBB4: + 49 .loc 1 577 3 view .LVU4 + 50 .loc 1 577 3 view .LVU5 + 51 0010 03F18043 add r3, r3, #1073741824 + ARM GAS /tmp/cc8GRwsk.s page 12 + + + 52 0014 03F50433 add r3, r3, #135168 + 53 0018 DA6C ldr r2, [r3, #76] + 54 001a 42F02002 orr r2, r2, #32 + 55 001e DA64 str r2, [r3, #76] + 56 .loc 1 577 3 view .LVU6 + 57 0020 DA6C ldr r2, [r3, #76] + 58 0022 02F02002 and r2, r2, #32 + 59 0026 0192 str r2, [sp, #4] + 60 .loc 1 577 3 view .LVU7 + 61 0028 019A ldr r2, [sp, #4] + 62 .LBE4: + 63 .loc 1 577 3 view .LVU8 + 578:Src/main.c **** __HAL_RCC_GPIOG_CLK_ENABLE(); + 64 .loc 1 578 3 view .LVU9 + 65 .LBB5: + 66 .loc 1 578 3 view .LVU10 + 67 .loc 1 578 3 view .LVU11 + 68 002a DA6C ldr r2, [r3, #76] + 69 002c 42F04002 orr r2, r2, #64 + 70 0030 DA64 str r2, [r3, #76] + 71 .loc 1 578 3 view .LVU12 + 72 0032 DA6C ldr r2, [r3, #76] + 73 0034 02F04002 and r2, r2, #64 + 74 0038 0292 str r2, [sp, #8] + 75 .loc 1 578 3 view .LVU13 + 76 003a 029A ldr r2, [sp, #8] + 77 .LBE5: + 78 .loc 1 578 3 view .LVU14 + 579:Src/main.c **** __HAL_RCC_GPIOA_CLK_ENABLE(); + 79 .loc 1 579 3 view .LVU15 + 80 .LBB6: + 81 .loc 1 579 3 view .LVU16 + 82 .loc 1 579 3 view .LVU17 + 83 003c DA6C ldr r2, [r3, #76] + 84 003e 42F00102 orr r2, r2, #1 + 85 0042 DA64 str r2, [r3, #76] + 86 .loc 1 579 3 view .LVU18 + 87 0044 DA6C ldr r2, [r3, #76] + 88 0046 02F00102 and r2, r2, #1 + 89 004a 0392 str r2, [sp, #12] + 90 .loc 1 579 3 view .LVU19 + 91 004c 039A ldr r2, [sp, #12] + 92 .LBE6: + 93 .loc 1 579 3 view .LVU20 + 580:Src/main.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 94 .loc 1 580 3 view .LVU21 + 95 .LBB7: + 96 .loc 1 580 3 view .LVU22 + 97 .loc 1 580 3 view .LVU23 + 98 004e DA6C ldr r2, [r3, #76] + 99 0050 42F00202 orr r2, r2, #2 + 100 0054 DA64 str r2, [r3, #76] + 101 .loc 1 580 3 view .LVU24 + 102 0056 DB6C ldr r3, [r3, #76] + 103 0058 03F00203 and r3, r3, #2 + 104 005c 0493 str r3, [sp, #16] + 105 .loc 1 580 3 view .LVU25 + ARM GAS /tmp/cc8GRwsk.s page 13 + + + 106 005e 049B ldr r3, [sp, #16] + 107 .LBE7: + 108 .loc 1 580 3 view .LVU26 + 581:Src/main.c **** + 582:Src/main.c **** /*Configure GPIO pin : PG10 */ + 583:Src/main.c **** GPIO_InitStruct.Pin = GPIO_PIN_10; + 109 .loc 1 583 3 view .LVU27 + 110 .loc 1 583 23 is_stmt 0 view .LVU28 + 111 0060 4FF48063 mov r3, #1024 + 112 0064 0593 str r3, [sp, #20] + 584:Src/main.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 113 .loc 1 584 3 is_stmt 1 view .LVU29 + 114 .loc 1 584 24 is_stmt 0 view .LVU30 + 115 0066 0223 movs r3, #2 + 116 0068 0693 str r3, [sp, #24] + 585:Src/main.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 117 .loc 1 585 3 is_stmt 1 view .LVU31 + 586:Src/main.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 118 .loc 1 586 3 view .LVU32 + 587:Src/main.c **** GPIO_InitStruct.Alternate = GPIO_AF0_MCO; + 119 .loc 1 587 3 view .LVU33 + 588:Src/main.c **** HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); + 120 .loc 1 588 3 view .LVU34 + 121 006a 05A9 add r1, sp, #20 + 122 006c 0248 ldr r0, .L3 + 123 006e FFF7FEFF bl HAL_GPIO_Init + 124 .LVL0: + 589:Src/main.c **** + 590:Src/main.c **** /* USER CODE BEGIN MX_GPIO_Init_2 */ + 591:Src/main.c **** /* USER CODE END MX_GPIO_Init_2 */ + 592:Src/main.c **** } + 125 .loc 1 592 1 is_stmt 0 view .LVU35 + 126 0072 0BB0 add sp, sp, #44 + 127 .LCFI2: + 128 .cfi_def_cfa_offset 4 + 129 @ sp needed + 130 0074 5DF804FB ldr pc, [sp], #4 + 131 .L4: + 132 .align 2 + 133 .L3: + 134 0078 00180048 .word 1207965696 + 135 .cfi_endproc + 136 .LFE341: + 138 .section .text.Error_Handler,"ax",%progbits + 139 .align 1 + 140 .global Error_Handler + 141 .syntax unified + 142 .thumb + 143 .thumb_func + 145 Error_Handler: + 146 .LFB342: + 593:Src/main.c **** + 594:Src/main.c **** /* USER CODE BEGIN 4 */ + 595:Src/main.c **** + 596:Src/main.c **** /* USER CODE END 4 */ + 597:Src/main.c **** + 598:Src/main.c **** /** + ARM GAS /tmp/cc8GRwsk.s page 14 + + + 599:Src/main.c **** * @brief This function is executed in case of error occurrence. + 600:Src/main.c **** * @retval None + 601:Src/main.c **** */ + 602:Src/main.c **** void Error_Handler(void) + 603:Src/main.c **** { + 147 .loc 1 603 1 is_stmt 1 view -0 + 148 .cfi_startproc + 149 @ Volatile: function does not return. + 150 @ args = 0, pretend = 0, frame = 0 + 151 @ frame_needed = 0, uses_anonymous_args = 0 + 152 @ link register save eliminated. + 604:Src/main.c **** /* USER CODE BEGIN Error_Handler_Debug */ + 605:Src/main.c **** /* User can add his own implementation to report the HAL error return state */ + 606:Src/main.c **** __disable_irq(); + 153 .loc 1 606 3 view .LVU37 + 154 .LBB8: + 155 .LBI8: + 156 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + ARM GAS /tmp/cc8GRwsk.s page 15 + + + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + ARM GAS /tmp/cc8GRwsk.s page 16 + + + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + ARM GAS /tmp/cc8GRwsk.s page 17 + + + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + 157 .loc 2 207 27 view .LVU38 + 158 .LBB9: + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cc8GRwsk.s page 18 + + + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 159 .loc 2 209 3 view .LVU39 + 160 .syntax unified + 161 @ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 162 0000 72B6 cpsid i + 163 @ 0 "" 2 + 164 .thumb + 165 .syntax unified + 166 .L6: + 167 .LBE9: + 168 .LBE8: + 607:Src/main.c **** while (1) + 169 .loc 1 607 3 discriminator 1 view .LVU40 + 608:Src/main.c **** { + 609:Src/main.c **** } + 170 .loc 1 609 3 discriminator 1 view .LVU41 + 607:Src/main.c **** while (1) + 171 .loc 1 607 9 discriminator 1 view .LVU42 + 172 0002 FEE7 b .L6 + 173 .cfi_endproc + 174 .LFE342: + 176 .section .text.MX_TIM2_Init,"ax",%progbits + 177 .align 1 + 178 .syntax unified + 179 .thumb + 180 .thumb_func + 182 MX_TIM2_Init: + 183 .LFB338: + 404:Src/main.c **** + 184 .loc 1 404 1 view -0 + 185 .cfi_startproc + 186 @ args = 0, pretend = 0, frame = 56 + 187 @ frame_needed = 0, uses_anonymous_args = 0 + 188 0000 00B5 push {lr} + 189 .LCFI3: + 190 .cfi_def_cfa_offset 4 + 191 .cfi_offset 14, -4 + 192 0002 8FB0 sub sp, sp, #60 + 193 .LCFI4: + 194 .cfi_def_cfa_offset 64 + 410:Src/main.c **** TIM_MasterConfigTypeDef sMasterConfig = {0}; + 195 .loc 1 410 3 view .LVU44 + 410:Src/main.c **** TIM_MasterConfigTypeDef sMasterConfig = {0}; + 196 .loc 1 410 26 is_stmt 0 view .LVU45 + 197 0004 0023 movs r3, #0 + 198 0006 0A93 str r3, [sp, #40] + 199 0008 0B93 str r3, [sp, #44] + 200 000a 0C93 str r3, [sp, #48] + 201 000c 0D93 str r3, [sp, #52] + 411:Src/main.c **** TIM_OC_InitTypeDef sConfigOC = {0}; + 202 .loc 1 411 3 is_stmt 1 view .LVU46 + 411:Src/main.c **** TIM_OC_InitTypeDef sConfigOC = {0}; + 203 .loc 1 411 27 is_stmt 0 view .LVU47 + 204 000e 0793 str r3, [sp, #28] + 205 0010 0893 str r3, [sp, #32] + 206 0012 0993 str r3, [sp, #36] + 412:Src/main.c **** + ARM GAS /tmp/cc8GRwsk.s page 19 + + + 207 .loc 1 412 3 is_stmt 1 view .LVU48 + 412:Src/main.c **** + 208 .loc 1 412 22 is_stmt 0 view .LVU49 + 209 0014 0093 str r3, [sp] + 210 0016 0193 str r3, [sp, #4] + 211 0018 0293 str r3, [sp, #8] + 212 001a 0393 str r3, [sp, #12] + 213 001c 0493 str r3, [sp, #16] + 214 001e 0593 str r3, [sp, #20] + 215 0020 0693 str r3, [sp, #24] + 417:Src/main.c **** htim2.Init.Prescaler = 0; + 216 .loc 1 417 3 is_stmt 1 view .LVU50 + 417:Src/main.c **** htim2.Init.Prescaler = 0; + 217 .loc 1 417 18 is_stmt 0 view .LVU51 + 218 0022 3248 ldr r0, .L25 + 219 0024 4FF08042 mov r2, #1073741824 + 220 0028 0260 str r2, [r0] + 418:Src/main.c **** htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 221 .loc 1 418 3 is_stmt 1 view .LVU52 + 418:Src/main.c **** htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 222 .loc 1 418 24 is_stmt 0 view .LVU53 + 223 002a 4360 str r3, [r0, #4] + 419:Src/main.c **** htim2.Init.Period = 2047; + 224 .loc 1 419 3 is_stmt 1 view .LVU54 + 419:Src/main.c **** htim2.Init.Period = 2047; + 225 .loc 1 419 26 is_stmt 0 view .LVU55 + 226 002c 8360 str r3, [r0, #8] + 420:Src/main.c **** htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 227 .loc 1 420 3 is_stmt 1 view .LVU56 + 420:Src/main.c **** htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 228 .loc 1 420 21 is_stmt 0 view .LVU57 + 229 002e 40F2FF72 movw r2, #2047 + 230 0032 C260 str r2, [r0, #12] + 421:Src/main.c **** htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 231 .loc 1 421 3 is_stmt 1 view .LVU58 + 421:Src/main.c **** htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 232 .loc 1 421 28 is_stmt 0 view .LVU59 + 233 0034 0361 str r3, [r0, #16] + 422:Src/main.c **** if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + 234 .loc 1 422 3 is_stmt 1 view .LVU60 + 422:Src/main.c **** if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + 235 .loc 1 422 32 is_stmt 0 view .LVU61 + 236 0036 8361 str r3, [r0, #24] + 423:Src/main.c **** { + 237 .loc 1 423 3 is_stmt 1 view .LVU62 + 423:Src/main.c **** { + 238 .loc 1 423 7 is_stmt 0 view .LVU63 + 239 0038 FFF7FEFF bl HAL_TIM_Base_Init + 240 .LVL1: + 423:Src/main.c **** { + 241 .loc 1 423 6 view .LVU64 + 242 003c 0028 cmp r0, #0 + 243 003e 44D1 bne .L17 + 427:Src/main.c **** if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + 244 .loc 1 427 3 is_stmt 1 view .LVU65 + 427:Src/main.c **** if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + 245 .loc 1 427 34 is_stmt 0 view .LVU66 + ARM GAS /tmp/cc8GRwsk.s page 20 + + + 246 0040 4FF48053 mov r3, #4096 + 247 0044 0A93 str r3, [sp, #40] + 428:Src/main.c **** { + 248 .loc 1 428 3 is_stmt 1 view .LVU67 + 428:Src/main.c **** { + 249 .loc 1 428 7 is_stmt 0 view .LVU68 + 250 0046 0AA9 add r1, sp, #40 + 251 0048 2848 ldr r0, .L25 + 252 004a FFF7FEFF bl HAL_TIM_ConfigClockSource + 253 .LVL2: + 428:Src/main.c **** { + 254 .loc 1 428 6 view .LVU69 + 255 004e 0028 cmp r0, #0 + 256 0050 3DD1 bne .L18 + 432:Src/main.c **** { + 257 .loc 1 432 3 is_stmt 1 view .LVU70 + 432:Src/main.c **** { + 258 .loc 1 432 7 is_stmt 0 view .LVU71 + 259 0052 2648 ldr r0, .L25 + 260 0054 FFF7FEFF bl HAL_TIM_PWM_Init + 261 .LVL3: + 432:Src/main.c **** { + 262 .loc 1 432 6 view .LVU72 + 263 0058 0028 cmp r0, #0 + 264 005a 3AD1 bne .L19 + 436:Src/main.c **** sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 265 .loc 1 436 3 is_stmt 1 view .LVU73 + 436:Src/main.c **** sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 266 .loc 1 436 37 is_stmt 0 view .LVU74 + 267 005c 0023 movs r3, #0 + 268 005e 0793 str r3, [sp, #28] + 437:Src/main.c **** if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 269 .loc 1 437 3 is_stmt 1 view .LVU75 + 437:Src/main.c **** if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 270 .loc 1 437 33 is_stmt 0 view .LVU76 + 271 0060 0993 str r3, [sp, #36] + 438:Src/main.c **** { + 272 .loc 1 438 3 is_stmt 1 view .LVU77 + 438:Src/main.c **** { + 273 .loc 1 438 7 is_stmt 0 view .LVU78 + 274 0062 07A9 add r1, sp, #28 + 275 0064 2148 ldr r0, .L25 + 276 0066 FFF7FEFF bl HAL_TIMEx_MasterConfigSynchronization + 277 .LVL4: + 438:Src/main.c **** { + 278 .loc 1 438 6 view .LVU79 + 279 006a 0028 cmp r0, #0 + 280 006c 33D1 bne .L20 + 442:Src/main.c **** sConfigOC.Pulse = 500; + 281 .loc 1 442 3 is_stmt 1 view .LVU80 + 442:Src/main.c **** sConfigOC.Pulse = 500; + 282 .loc 1 442 20 is_stmt 0 view .LVU81 + 283 006e 6023 movs r3, #96 + 284 0070 0093 str r3, [sp] + 443:Src/main.c **** sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + 285 .loc 1 443 3 is_stmt 1 view .LVU82 + 443:Src/main.c **** sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + ARM GAS /tmp/cc8GRwsk.s page 21 + + + 286 .loc 1 443 19 is_stmt 0 view .LVU83 + 287 0072 4FF4FA73 mov r3, #500 + 288 0076 0193 str r3, [sp, #4] + 444:Src/main.c **** sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + 289 .loc 1 444 3 is_stmt 1 view .LVU84 + 444:Src/main.c **** sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + 290 .loc 1 444 24 is_stmt 0 view .LVU85 + 291 0078 0022 movs r2, #0 + 292 007a 0292 str r2, [sp, #8] + 445:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) + 293 .loc 1 445 3 is_stmt 1 view .LVU86 + 445:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) + 294 .loc 1 445 24 is_stmt 0 view .LVU87 + 295 007c 0492 str r2, [sp, #16] + 446:Src/main.c **** { + 296 .loc 1 446 3 is_stmt 1 view .LVU88 + 446:Src/main.c **** { + 297 .loc 1 446 7 is_stmt 0 view .LVU89 + 298 007e 6946 mov r1, sp + 299 0080 1A48 ldr r0, .L25 + 300 0082 FFF7FEFF bl HAL_TIM_PWM_ConfigChannel + 301 .LVL5: + 446:Src/main.c **** { + 302 .loc 1 446 6 view .LVU90 + 303 0086 40BB cbnz r0, .L21 + 450:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + 304 .loc 1 450 3 is_stmt 1 view .LVU91 + 450:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + 305 .loc 1 450 19 is_stmt 0 view .LVU92 + 306 0088 4FF47A73 mov r3, #1000 + 307 008c 0193 str r3, [sp, #4] + 451:Src/main.c **** { + 308 .loc 1 451 3 is_stmt 1 view .LVU93 + 451:Src/main.c **** { + 309 .loc 1 451 7 is_stmt 0 view .LVU94 + 310 008e 0422 movs r2, #4 + 311 0090 6946 mov r1, sp + 312 0092 1648 ldr r0, .L25 + 313 0094 FFF7FEFF bl HAL_TIM_PWM_ConfigChannel + 314 .LVL6: + 451:Src/main.c **** { + 315 .loc 1 451 6 view .LVU95 + 316 0098 08BB cbnz r0, .L22 + 455:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + 317 .loc 1 455 3 is_stmt 1 view .LVU96 + 455:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + 318 .loc 1 455 19 is_stmt 0 view .LVU97 + 319 009a 40F2DC53 movw r3, #1500 + 320 009e 0193 str r3, [sp, #4] + 456:Src/main.c **** { + 321 .loc 1 456 3 is_stmt 1 view .LVU98 + 456:Src/main.c **** { + 322 .loc 1 456 7 is_stmt 0 view .LVU99 + 323 00a0 0822 movs r2, #8 + 324 00a2 6946 mov r1, sp + 325 00a4 1148 ldr r0, .L25 + 326 00a6 FFF7FEFF bl HAL_TIM_PWM_ConfigChannel + ARM GAS /tmp/cc8GRwsk.s page 22 + + + 327 .LVL7: + 456:Src/main.c **** { + 328 .loc 1 456 6 view .LVU100 + 329 00aa D0B9 cbnz r0, .L23 + 460:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) + 330 .loc 1 460 3 is_stmt 1 view .LVU101 + 460:Src/main.c **** if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) + 331 .loc 1 460 19 is_stmt 0 view .LVU102 + 332 00ac 4FF4FA63 mov r3, #2000 + 333 00b0 0193 str r3, [sp, #4] + 461:Src/main.c **** { + 334 .loc 1 461 3 is_stmt 1 view .LVU103 + 461:Src/main.c **** { + 335 .loc 1 461 7 is_stmt 0 view .LVU104 + 336 00b2 0C22 movs r2, #12 + 337 00b4 6946 mov r1, sp + 338 00b6 0D48 ldr r0, .L25 + 339 00b8 FFF7FEFF bl HAL_TIM_PWM_ConfigChannel + 340 .LVL8: + 461:Src/main.c **** { + 341 .loc 1 461 6 view .LVU105 + 342 00bc 98B9 cbnz r0, .L24 + 468:Src/main.c **** + 343 .loc 1 468 3 is_stmt 1 view .LVU106 + 344 00be 0B48 ldr r0, .L25 + 345 00c0 FFF7FEFF bl HAL_TIM_MspPostInit + 346 .LVL9: + 470:Src/main.c **** + 347 .loc 1 470 1 is_stmt 0 view .LVU107 + 348 00c4 0FB0 add sp, sp, #60 + 349 .LCFI5: + 350 .cfi_remember_state + 351 .cfi_def_cfa_offset 4 + 352 @ sp needed + 353 00c6 5DF804FB ldr pc, [sp], #4 + 354 .L17: + 355 .LCFI6: + 356 .cfi_restore_state + 425:Src/main.c **** } + 357 .loc 1 425 5 is_stmt 1 view .LVU108 + 358 00ca FFF7FEFF bl Error_Handler + 359 .LVL10: + 360 .L18: + 430:Src/main.c **** } + 361 .loc 1 430 5 view .LVU109 + 362 00ce FFF7FEFF bl Error_Handler + 363 .LVL11: + 364 .L19: + 434:Src/main.c **** } + 365 .loc 1 434 5 view .LVU110 + 366 00d2 FFF7FEFF bl Error_Handler + 367 .LVL12: + 368 .L20: + 440:Src/main.c **** } + 369 .loc 1 440 5 view .LVU111 + 370 00d6 FFF7FEFF bl Error_Handler + 371 .LVL13: + ARM GAS /tmp/cc8GRwsk.s page 23 + + + 372 .L21: + 448:Src/main.c **** } + 373 .loc 1 448 5 view .LVU112 + 374 00da FFF7FEFF bl Error_Handler + 375 .LVL14: + 376 .L22: + 453:Src/main.c **** } + 377 .loc 1 453 5 view .LVU113 + 378 00de FFF7FEFF bl Error_Handler + 379 .LVL15: + 380 .L23: + 458:Src/main.c **** } + 381 .loc 1 458 5 view .LVU114 + 382 00e2 FFF7FEFF bl Error_Handler + 383 .LVL16: + 384 .L24: + 463:Src/main.c **** } + 385 .loc 1 463 5 view .LVU115 + 386 00e6 FFF7FEFF bl Error_Handler + 387 .LVL17: + 388 .L26: + 389 00ea 00BF .align 2 + 390 .L25: + 391 00ec 00000000 .word htim2 + 392 .cfi_endproc + 393 .LFE338: + 395 .section .text.MX_I2C1_Init,"ax",%progbits + 396 .align 1 + 397 .syntax unified + 398 .thumb + 399 .thumb_func + 401 MX_I2C1_Init: + 402 .LFB337: + 356:Src/main.c **** + 403 .loc 1 356 1 view -0 + 404 .cfi_startproc + 405 @ args = 0, pretend = 0, frame = 0 + 406 @ frame_needed = 0, uses_anonymous_args = 0 + 407 0000 08B5 push {r3, lr} + 408 .LCFI7: + 409 .cfi_def_cfa_offset 8 + 410 .cfi_offset 3, -8 + 411 .cfi_offset 14, -4 + 365:Src/main.c **** hi2c1.Init.Timing = 0x208080C1; + 412 .loc 1 365 3 view .LVU117 + 365:Src/main.c **** hi2c1.Init.Timing = 0x208080C1; + 413 .loc 1 365 18 is_stmt 0 view .LVU118 + 414 0002 1148 ldr r0, .L35 + 415 0004 114B ldr r3, .L35+4 + 416 0006 0360 str r3, [r0] + 366:Src/main.c **** hi2c1.Init.OwnAddress1 = 0; + 417 .loc 1 366 3 is_stmt 1 view .LVU119 + 366:Src/main.c **** hi2c1.Init.OwnAddress1 = 0; + 418 .loc 1 366 21 is_stmt 0 view .LVU120 + 419 0008 114B ldr r3, .L35+8 + 420 000a 4360 str r3, [r0, #4] + 367:Src/main.c **** hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + ARM GAS /tmp/cc8GRwsk.s page 24 + + + 421 .loc 1 367 3 is_stmt 1 view .LVU121 + 367:Src/main.c **** hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + 422 .loc 1 367 26 is_stmt 0 view .LVU122 + 423 000c 0023 movs r3, #0 + 424 000e 8360 str r3, [r0, #8] + 368:Src/main.c **** hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + 425 .loc 1 368 3 is_stmt 1 view .LVU123 + 368:Src/main.c **** hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + 426 .loc 1 368 29 is_stmt 0 view .LVU124 + 427 0010 0122 movs r2, #1 + 428 0012 C260 str r2, [r0, #12] + 369:Src/main.c **** hi2c1.Init.OwnAddress2 = 0; + 429 .loc 1 369 3 is_stmt 1 view .LVU125 + 369:Src/main.c **** hi2c1.Init.OwnAddress2 = 0; + 430 .loc 1 369 30 is_stmt 0 view .LVU126 + 431 0014 0361 str r3, [r0, #16] + 370:Src/main.c **** hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + 432 .loc 1 370 3 is_stmt 1 view .LVU127 + 370:Src/main.c **** hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + 433 .loc 1 370 26 is_stmt 0 view .LVU128 + 434 0016 4361 str r3, [r0, #20] + 371:Src/main.c **** hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + 435 .loc 1 371 3 is_stmt 1 view .LVU129 + 371:Src/main.c **** hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + 436 .loc 1 371 31 is_stmt 0 view .LVU130 + 437 0018 8361 str r3, [r0, #24] + 372:Src/main.c **** hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + 438 .loc 1 372 3 is_stmt 1 view .LVU131 + 372:Src/main.c **** hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + 439 .loc 1 372 30 is_stmt 0 view .LVU132 + 440 001a C361 str r3, [r0, #28] + 373:Src/main.c **** if (HAL_I2C_Init(&hi2c1) != HAL_OK) + 441 .loc 1 373 3 is_stmt 1 view .LVU133 + 373:Src/main.c **** if (HAL_I2C_Init(&hi2c1) != HAL_OK) + 442 .loc 1 373 28 is_stmt 0 view .LVU134 + 443 001c 0362 str r3, [r0, #32] + 374:Src/main.c **** { + 444 .loc 1 374 3 is_stmt 1 view .LVU135 + 374:Src/main.c **** { + 445 .loc 1 374 7 is_stmt 0 view .LVU136 + 446 001e FFF7FEFF bl HAL_I2C_Init + 447 .LVL18: + 374:Src/main.c **** { + 448 .loc 1 374 6 view .LVU137 + 449 0022 50B9 cbnz r0, .L32 + 381:Src/main.c **** { + 450 .loc 1 381 3 is_stmt 1 view .LVU138 + 381:Src/main.c **** { + 451 .loc 1 381 7 is_stmt 0 view .LVU139 + 452 0024 0021 movs r1, #0 + 453 0026 0848 ldr r0, .L35 + 454 0028 FFF7FEFF bl HAL_I2CEx_ConfigAnalogFilter + 455 .LVL19: + 381:Src/main.c **** { + 456 .loc 1 381 6 view .LVU140 + 457 002c 38B9 cbnz r0, .L33 + 388:Src/main.c **** { + ARM GAS /tmp/cc8GRwsk.s page 25 + + + 458 .loc 1 388 3 is_stmt 1 view .LVU141 + 388:Src/main.c **** { + 459 .loc 1 388 7 is_stmt 0 view .LVU142 + 460 002e 0021 movs r1, #0 + 461 0030 0548 ldr r0, .L35 + 462 0032 FFF7FEFF bl HAL_I2CEx_ConfigDigitalFilter + 463 .LVL20: + 388:Src/main.c **** { + 464 .loc 1 388 6 view .LVU143 + 465 0036 20B9 cbnz r0, .L34 + 396:Src/main.c **** + 466 .loc 1 396 1 view .LVU144 + 467 0038 08BD pop {r3, pc} + 468 .L32: + 376:Src/main.c **** } + 469 .loc 1 376 5 is_stmt 1 view .LVU145 + 470 003a FFF7FEFF bl Error_Handler + 471 .LVL21: + 472 .L33: + 383:Src/main.c **** } + 473 .loc 1 383 5 view .LVU146 + 474 003e FFF7FEFF bl Error_Handler + 475 .LVL22: + 476 .L34: + 390:Src/main.c **** } + 477 .loc 1 390 5 view .LVU147 + 478 0042 FFF7FEFF bl Error_Handler + 479 .LVL23: + 480 .L36: + 481 0046 00BF .align 2 + 482 .L35: + 483 0048 00000000 .word hi2c1 + 484 004c 00540040 .word 1073763328 + 485 0050 C1808020 .word 545292481 + 486 .cfi_endproc + 487 .LFE337: + 489 .section .text.MX_TIM3_Init,"ax",%progbits + 490 .align 1 + 491 .syntax unified + 492 .thumb + 493 .thumb_func + 495 MX_TIM3_Init: + 496 .LFB339: + 478:Src/main.c **** + 497 .loc 1 478 1 view -0 + 498 .cfi_startproc + 499 @ args = 0, pretend = 0, frame = 32 + 500 @ frame_needed = 0, uses_anonymous_args = 0 + 501 0000 00B5 push {lr} + 502 .LCFI8: + 503 .cfi_def_cfa_offset 4 + 504 .cfi_offset 14, -4 + 505 0002 89B0 sub sp, sp, #36 + 506 .LCFI9: + 507 .cfi_def_cfa_offset 40 + 484:Src/main.c **** TIM_MasterConfigTypeDef sMasterConfig = {0}; + 508 .loc 1 484 3 view .LVU149 + ARM GAS /tmp/cc8GRwsk.s page 26 + + + 484:Src/main.c **** TIM_MasterConfigTypeDef sMasterConfig = {0}; + 509 .loc 1 484 26 is_stmt 0 view .LVU150 + 510 0004 0023 movs r3, #0 + 511 0006 0493 str r3, [sp, #16] + 512 0008 0593 str r3, [sp, #20] + 513 000a 0693 str r3, [sp, #24] + 514 000c 0793 str r3, [sp, #28] + 485:Src/main.c **** + 515 .loc 1 485 3 is_stmt 1 view .LVU151 + 485:Src/main.c **** + 516 .loc 1 485 27 is_stmt 0 view .LVU152 + 517 000e 0193 str r3, [sp, #4] + 518 0010 0293 str r3, [sp, #8] + 519 0012 0393 str r3, [sp, #12] + 490:Src/main.c **** htim3.Init.Prescaler = 49152; + 520 .loc 1 490 3 is_stmt 1 view .LVU153 + 490:Src/main.c **** htim3.Init.Prescaler = 49152; + 521 .loc 1 490 18 is_stmt 0 view .LVU154 + 522 0014 1348 ldr r0, .L45 + 523 0016 144A ldr r2, .L45+4 + 524 0018 0260 str r2, [r0] + 491:Src/main.c **** htim3.Init.CounterMode = TIM_COUNTERMODE_UP; + 525 .loc 1 491 3 is_stmt 1 view .LVU155 + 491:Src/main.c **** htim3.Init.CounterMode = TIM_COUNTERMODE_UP; + 526 .loc 1 491 24 is_stmt 0 view .LVU156 + 527 001a 4FF44042 mov r2, #49152 + 528 001e 4260 str r2, [r0, #4] + 492:Src/main.c **** htim3.Init.Period = 199; + 529 .loc 1 492 3 is_stmt 1 view .LVU157 + 492:Src/main.c **** htim3.Init.Period = 199; + 530 .loc 1 492 26 is_stmt 0 view .LVU158 + 531 0020 8360 str r3, [r0, #8] + 493:Src/main.c **** htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 532 .loc 1 493 3 is_stmt 1 view .LVU159 + 493:Src/main.c **** htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 533 .loc 1 493 21 is_stmt 0 view .LVU160 + 534 0022 C722 movs r2, #199 + 535 0024 C260 str r2, [r0, #12] + 494:Src/main.c **** htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 536 .loc 1 494 3 is_stmt 1 view .LVU161 + 494:Src/main.c **** htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 537 .loc 1 494 28 is_stmt 0 view .LVU162 + 538 0026 0361 str r3, [r0, #16] + 495:Src/main.c **** if (HAL_TIM_Base_Init(&htim3) != HAL_OK) + 539 .loc 1 495 3 is_stmt 1 view .LVU163 + 495:Src/main.c **** if (HAL_TIM_Base_Init(&htim3) != HAL_OK) + 540 .loc 1 495 32 is_stmt 0 view .LVU164 + 541 0028 8361 str r3, [r0, #24] + 496:Src/main.c **** { + 542 .loc 1 496 3 is_stmt 1 view .LVU165 + 496:Src/main.c **** { + 543 .loc 1 496 7 is_stmt 0 view .LVU166 + 544 002a FFF7FEFF bl HAL_TIM_Base_Init + 545 .LVL24: + 496:Src/main.c **** { + 546 .loc 1 496 6 view .LVU167 + 547 002e 90B9 cbnz r0, .L42 + ARM GAS /tmp/cc8GRwsk.s page 27 + + + 500:Src/main.c **** if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) + 548 .loc 1 500 3 is_stmt 1 view .LVU168 + 500:Src/main.c **** if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) + 549 .loc 1 500 34 is_stmt 0 view .LVU169 + 550 0030 4FF48053 mov r3, #4096 + 551 0034 0493 str r3, [sp, #16] + 501:Src/main.c **** { + 552 .loc 1 501 3 is_stmt 1 view .LVU170 + 501:Src/main.c **** { + 553 .loc 1 501 7 is_stmt 0 view .LVU171 + 554 0036 04A9 add r1, sp, #16 + 555 0038 0A48 ldr r0, .L45 + 556 003a FFF7FEFF bl HAL_TIM_ConfigClockSource + 557 .LVL25: + 501:Src/main.c **** { + 558 .loc 1 501 6 view .LVU172 + 559 003e 60B9 cbnz r0, .L43 + 505:Src/main.c **** sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 560 .loc 1 505 3 is_stmt 1 view .LVU173 + 505:Src/main.c **** sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 561 .loc 1 505 37 is_stmt 0 view .LVU174 + 562 0040 0023 movs r3, #0 + 563 0042 0193 str r3, [sp, #4] + 506:Src/main.c **** if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) + 564 .loc 1 506 3 is_stmt 1 view .LVU175 + 506:Src/main.c **** if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) + 565 .loc 1 506 33 is_stmt 0 view .LVU176 + 566 0044 0393 str r3, [sp, #12] + 507:Src/main.c **** { + 567 .loc 1 507 3 is_stmt 1 view .LVU177 + 507:Src/main.c **** { + 568 .loc 1 507 7 is_stmt 0 view .LVU178 + 569 0046 01A9 add r1, sp, #4 + 570 0048 0648 ldr r0, .L45 + 571 004a FFF7FEFF bl HAL_TIMEx_MasterConfigSynchronization + 572 .LVL26: + 507:Src/main.c **** { + 573 .loc 1 507 6 view .LVU179 + 574 004e 30B9 cbnz r0, .L44 + 515:Src/main.c **** + 575 .loc 1 515 1 view .LVU180 + 576 0050 09B0 add sp, sp, #36 + 577 .LCFI10: + 578 .cfi_remember_state + 579 .cfi_def_cfa_offset 4 + 580 @ sp needed + 581 0052 5DF804FB ldr pc, [sp], #4 + 582 .L42: + 583 .LCFI11: + 584 .cfi_restore_state + 498:Src/main.c **** } + 585 .loc 1 498 5 is_stmt 1 view .LVU181 + 586 0056 FFF7FEFF bl Error_Handler + 587 .LVL27: + 588 .L43: + 503:Src/main.c **** } + 589 .loc 1 503 5 view .LVU182 + ARM GAS /tmp/cc8GRwsk.s page 28 + + + 590 005a FFF7FEFF bl Error_Handler + 591 .LVL28: + 592 .L44: + 509:Src/main.c **** } + 593 .loc 1 509 5 view .LVU183 + 594 005e FFF7FEFF bl Error_Handler + 595 .LVL29: + 596 .L46: + 597 0062 00BF .align 2 + 598 .L45: + 599 0064 00000000 .word htim3 + 600 0068 00040040 .word 1073742848 + 601 .cfi_endproc + 602 .LFE339: + 604 .section .text.MX_ADC1_Init,"ax",%progbits + 605 .align 1 + 606 .syntax unified + 607 .thumb + 608 .thumb_func + 610 MX_ADC1_Init: + 611 .LFB335: + 205:Src/main.c **** + 612 .loc 1 205 1 view -0 + 613 .cfi_startproc + 614 @ args = 0, pretend = 0, frame = 48 + 615 @ frame_needed = 0, uses_anonymous_args = 0 + 616 0000 10B5 push {r4, lr} + 617 .LCFI12: + 618 .cfi_def_cfa_offset 8 + 619 .cfi_offset 4, -8 + 620 .cfi_offset 14, -4 + 621 0002 8CB0 sub sp, sp, #48 + 622 .LCFI13: + 623 .cfi_def_cfa_offset 56 + 211:Src/main.c **** ADC_ChannelConfTypeDef sConfig = {0}; + 624 .loc 1 211 3 view .LVU185 + 211:Src/main.c **** ADC_ChannelConfTypeDef sConfig = {0}; + 625 .loc 1 211 24 is_stmt 0 view .LVU186 + 626 0004 0024 movs r4, #0 + 627 0006 0994 str r4, [sp, #36] + 628 0008 0A94 str r4, [sp, #40] + 629 000a 0B94 str r4, [sp, #44] + 212:Src/main.c **** + 630 .loc 1 212 3 is_stmt 1 view .LVU187 + 212:Src/main.c **** + 631 .loc 1 212 26 is_stmt 0 view .LVU188 + 632 000c 2022 movs r2, #32 + 633 000e 2146 mov r1, r4 + 634 0010 01A8 add r0, sp, #4 + 635 0012 FFF7FEFF bl memset + 636 .LVL30: + 220:Src/main.c **** hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + 637 .loc 1 220 3 is_stmt 1 view .LVU189 + 220:Src/main.c **** hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + 638 .loc 1 220 18 is_stmt 0 view .LVU190 + 639 0016 1E48 ldr r0, .L55 + 640 0018 4FF0A043 mov r3, #1342177280 + ARM GAS /tmp/cc8GRwsk.s page 29 + + + 641 001c 0360 str r3, [r0] + 221:Src/main.c **** hadc1.Init.Resolution = ADC_RESOLUTION_12B; + 642 .loc 1 221 3 is_stmt 1 view .LVU191 + 221:Src/main.c **** hadc1.Init.Resolution = ADC_RESOLUTION_12B; + 643 .loc 1 221 29 is_stmt 0 view .LVU192 + 644 001e 4FF40033 mov r3, #131072 + 645 0022 4360 str r3, [r0, #4] + 222:Src/main.c **** hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 646 .loc 1 222 3 is_stmt 1 view .LVU193 + 222:Src/main.c **** hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 647 .loc 1 222 25 is_stmt 0 view .LVU194 + 648 0024 8460 str r4, [r0, #8] + 223:Src/main.c **** hadc1.Init.GainCompensation = 0; + 649 .loc 1 223 3 is_stmt 1 view .LVU195 + 223:Src/main.c **** hadc1.Init.GainCompensation = 0; + 650 .loc 1 223 24 is_stmt 0 view .LVU196 + 651 0026 C460 str r4, [r0, #12] + 224:Src/main.c **** hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; + 652 .loc 1 224 3 is_stmt 1 view .LVU197 + 224:Src/main.c **** hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; + 653 .loc 1 224 31 is_stmt 0 view .LVU198 + 654 0028 0461 str r4, [r0, #16] + 225:Src/main.c **** hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + 655 .loc 1 225 3 is_stmt 1 view .LVU199 + 225:Src/main.c **** hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + 656 .loc 1 225 27 is_stmt 0 view .LVU200 + 657 002a 4461 str r4, [r0, #20] + 226:Src/main.c **** hadc1.Init.LowPowerAutoWait = DISABLE; + 658 .loc 1 226 3 is_stmt 1 view .LVU201 + 226:Src/main.c **** hadc1.Init.LowPowerAutoWait = DISABLE; + 659 .loc 1 226 27 is_stmt 0 view .LVU202 + 660 002c 0423 movs r3, #4 + 661 002e 8361 str r3, [r0, #24] + 227:Src/main.c **** hadc1.Init.ContinuousConvMode = DISABLE; + 662 .loc 1 227 3 is_stmt 1 view .LVU203 + 227:Src/main.c **** hadc1.Init.ContinuousConvMode = DISABLE; + 663 .loc 1 227 31 is_stmt 0 view .LVU204 + 664 0030 0477 strb r4, [r0, #28] + 228:Src/main.c **** hadc1.Init.NbrOfConversion = 1; + 665 .loc 1 228 3 is_stmt 1 view .LVU205 + 228:Src/main.c **** hadc1.Init.NbrOfConversion = 1; + 666 .loc 1 228 33 is_stmt 0 view .LVU206 + 667 0032 4477 strb r4, [r0, #29] + 229:Src/main.c **** hadc1.Init.DiscontinuousConvMode = DISABLE; + 668 .loc 1 229 3 is_stmt 1 view .LVU207 + 229:Src/main.c **** hadc1.Init.DiscontinuousConvMode = DISABLE; + 669 .loc 1 229 30 is_stmt 0 view .LVU208 + 670 0034 0123 movs r3, #1 + 671 0036 0362 str r3, [r0, #32] + 230:Src/main.c **** hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 672 .loc 1 230 3 is_stmt 1 view .LVU209 + 230:Src/main.c **** hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 673 .loc 1 230 36 is_stmt 0 view .LVU210 + 674 0038 80F82440 strb r4, [r0, #36] + 231:Src/main.c **** hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 675 .loc 1 231 3 is_stmt 1 view .LVU211 + 231:Src/main.c **** hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + ARM GAS /tmp/cc8GRwsk.s page 30 + + + 676 .loc 1 231 31 is_stmt 0 view .LVU212 + 677 003c C462 str r4, [r0, #44] + 232:Src/main.c **** hadc1.Init.DMAContinuousRequests = DISABLE; + 678 .loc 1 232 3 is_stmt 1 view .LVU213 + 232:Src/main.c **** hadc1.Init.DMAContinuousRequests = DISABLE; + 679 .loc 1 232 35 is_stmt 0 view .LVU214 + 680 003e 0463 str r4, [r0, #48] + 233:Src/main.c **** hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 681 .loc 1 233 3 is_stmt 1 view .LVU215 + 233:Src/main.c **** hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 682 .loc 1 233 36 is_stmt 0 view .LVU216 + 683 0040 80F83840 strb r4, [r0, #56] + 234:Src/main.c **** hadc1.Init.OversamplingMode = DISABLE; + 684 .loc 1 234 3 is_stmt 1 view .LVU217 + 234:Src/main.c **** hadc1.Init.OversamplingMode = DISABLE; + 685 .loc 1 234 22 is_stmt 0 view .LVU218 + 686 0044 C463 str r4, [r0, #60] + 235:Src/main.c **** if (HAL_ADC_Init(&hadc1) != HAL_OK) + 687 .loc 1 235 3 is_stmt 1 view .LVU219 + 235:Src/main.c **** if (HAL_ADC_Init(&hadc1) != HAL_OK) + 688 .loc 1 235 31 is_stmt 0 view .LVU220 + 689 0046 80F84040 strb r4, [r0, #64] + 236:Src/main.c **** { + 690 .loc 1 236 3 is_stmt 1 view .LVU221 + 236:Src/main.c **** { + 691 .loc 1 236 7 is_stmt 0 view .LVU222 + 692 004a FFF7FEFF bl HAL_ADC_Init + 693 .LVL31: + 236:Src/main.c **** { + 694 .loc 1 236 6 view .LVU223 + 695 004e C8B9 cbnz r0, .L52 + 243:Src/main.c **** if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) + 696 .loc 1 243 3 is_stmt 1 view .LVU224 + 243:Src/main.c **** if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) + 697 .loc 1 243 18 is_stmt 0 view .LVU225 + 698 0050 0023 movs r3, #0 + 699 0052 0993 str r3, [sp, #36] + 244:Src/main.c **** { + 700 .loc 1 244 3 is_stmt 1 view .LVU226 + 244:Src/main.c **** { + 701 .loc 1 244 7 is_stmt 0 view .LVU227 + 702 0054 09A9 add r1, sp, #36 + 703 0056 0E48 ldr r0, .L55 + 704 0058 FFF7FEFF bl HAL_ADCEx_MultiModeConfigChannel + 705 .LVL32: + 244:Src/main.c **** { + 706 .loc 1 244 6 view .LVU228 + 707 005c A0B9 cbnz r0, .L53 + 251:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_1; + 708 .loc 1 251 3 is_stmt 1 view .LVU229 + 251:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_1; + 709 .loc 1 251 19 is_stmt 0 view .LVU230 + 710 005e 0D4B ldr r3, .L55+4 + 711 0060 0193 str r3, [sp, #4] + 252:Src/main.c **** sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + 712 .loc 1 252 3 is_stmt 1 view .LVU231 + 252:Src/main.c **** sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + ARM GAS /tmp/cc8GRwsk.s page 31 + + + 713 .loc 1 252 16 is_stmt 0 view .LVU232 + 714 0062 0623 movs r3, #6 + 715 0064 0293 str r3, [sp, #8] + 253:Src/main.c **** sConfig.SingleDiff = ADC_SINGLE_ENDED; + 716 .loc 1 253 3 is_stmt 1 view .LVU233 + 253:Src/main.c **** sConfig.SingleDiff = ADC_SINGLE_ENDED; + 717 .loc 1 253 24 is_stmt 0 view .LVU234 + 718 0066 0023 movs r3, #0 + 719 0068 0393 str r3, [sp, #12] + 254:Src/main.c **** sConfig.OffsetNumber = ADC_OFFSET_NONE; + 720 .loc 1 254 3 is_stmt 1 view .LVU235 + 254:Src/main.c **** sConfig.OffsetNumber = ADC_OFFSET_NONE; + 721 .loc 1 254 22 is_stmt 0 view .LVU236 + 722 006a 7F22 movs r2, #127 + 723 006c 0492 str r2, [sp, #16] + 255:Src/main.c **** sConfig.Offset = 0; + 724 .loc 1 255 3 is_stmt 1 view .LVU237 + 255:Src/main.c **** sConfig.Offset = 0; + 725 .loc 1 255 24 is_stmt 0 view .LVU238 + 726 006e 0422 movs r2, #4 + 727 0070 0592 str r2, [sp, #20] + 256:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + 728 .loc 1 256 3 is_stmt 1 view .LVU239 + 256:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + 729 .loc 1 256 18 is_stmt 0 view .LVU240 + 730 0072 0693 str r3, [sp, #24] + 257:Src/main.c **** { + 731 .loc 1 257 3 is_stmt 1 view .LVU241 + 257:Src/main.c **** { + 732 .loc 1 257 7 is_stmt 0 view .LVU242 + 733 0074 0DEB0201 add r1, sp, r2 + 734 0078 0548 ldr r0, .L55 + 735 007a FFF7FEFF bl HAL_ADC_ConfigChannel + 736 .LVL33: + 257:Src/main.c **** { + 737 .loc 1 257 6 view .LVU243 + 738 007e 28B9 cbnz r0, .L54 + 265:Src/main.c **** + 739 .loc 1 265 1 view .LVU244 + 740 0080 0CB0 add sp, sp, #48 + 741 .LCFI14: + 742 .cfi_remember_state + 743 .cfi_def_cfa_offset 8 + 744 @ sp needed + 745 0082 10BD pop {r4, pc} + 746 .L52: + 747 .LCFI15: + 748 .cfi_restore_state + 238:Src/main.c **** } + 749 .loc 1 238 5 is_stmt 1 view .LVU245 + 750 0084 FFF7FEFF bl Error_Handler + 751 .LVL34: + 752 .L53: + 246:Src/main.c **** } + 753 .loc 1 246 5 view .LVU246 + 754 0088 FFF7FEFF bl Error_Handler + 755 .LVL35: + ARM GAS /tmp/cc8GRwsk.s page 32 + + + 756 .L54: + 259:Src/main.c **** } + 757 .loc 1 259 5 view .LVU247 + 758 008c FFF7FEFF bl Error_Handler + 759 .LVL36: + 760 .L56: + 761 .align 2 + 762 .L55: + 763 0090 00000000 .word hadc1 + 764 0094 0080F03E .word 1055948800 + 765 .cfi_endproc + 766 .LFE335: + 768 .section .text.MX_ADC2_Init,"ax",%progbits + 769 .align 1 + 770 .syntax unified + 771 .thumb + 772 .thumb_func + 774 MX_ADC2_Init: + 775 .LFB336: + 273:Src/main.c **** + 776 .loc 1 273 1 view -0 + 777 .cfi_startproc + 778 @ args = 0, pretend = 0, frame = 32 + 779 @ frame_needed = 0, uses_anonymous_args = 0 + 780 0000 00B5 push {lr} + 781 .LCFI16: + 782 .cfi_def_cfa_offset 4 + 783 .cfi_offset 14, -4 + 784 0002 89B0 sub sp, sp, #36 + 785 .LCFI17: + 786 .cfi_def_cfa_offset 40 + 279:Src/main.c **** + 787 .loc 1 279 3 view .LVU249 + 279:Src/main.c **** + 788 .loc 1 279 26 is_stmt 0 view .LVU250 + 789 0004 2022 movs r2, #32 + 790 0006 0021 movs r1, #0 + 791 0008 6846 mov r0, sp + 792 000a FFF7FEFF bl memset + 793 .LVL37: + 287:Src/main.c **** hadc2.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + 794 .loc 1 287 3 is_stmt 1 view .LVU251 + 287:Src/main.c **** hadc2.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + 795 .loc 1 287 18 is_stmt 0 view .LVU252 + 796 000e 2848 ldr r0, .L69 + 797 0010 284B ldr r3, .L69+4 + 798 0012 0360 str r3, [r0] + 288:Src/main.c **** hadc2.Init.Resolution = ADC_RESOLUTION_12B; + 799 .loc 1 288 3 is_stmt 1 view .LVU253 + 288:Src/main.c **** hadc2.Init.Resolution = ADC_RESOLUTION_12B; + 800 .loc 1 288 29 is_stmt 0 view .LVU254 + 801 0014 4FF40033 mov r3, #131072 + 802 0018 4360 str r3, [r0, #4] + 289:Src/main.c **** hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 803 .loc 1 289 3 is_stmt 1 view .LVU255 + 289:Src/main.c **** hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 804 .loc 1 289 25 is_stmt 0 view .LVU256 + ARM GAS /tmp/cc8GRwsk.s page 33 + + + 805 001a 0023 movs r3, #0 + 806 001c 8360 str r3, [r0, #8] + 290:Src/main.c **** hadc2.Init.GainCompensation = 0; + 807 .loc 1 290 3 is_stmt 1 view .LVU257 + 290:Src/main.c **** hadc2.Init.GainCompensation = 0; + 808 .loc 1 290 24 is_stmt 0 view .LVU258 + 809 001e C360 str r3, [r0, #12] + 291:Src/main.c **** hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + 810 .loc 1 291 3 is_stmt 1 view .LVU259 + 291:Src/main.c **** hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE; + 811 .loc 1 291 31 is_stmt 0 view .LVU260 + 812 0020 0361 str r3, [r0, #16] + 292:Src/main.c **** hadc2.Init.EOCSelection = ADC_EOC_SEQ_CONV; + 813 .loc 1 292 3 is_stmt 1 view .LVU261 + 292:Src/main.c **** hadc2.Init.EOCSelection = ADC_EOC_SEQ_CONV; + 814 .loc 1 292 27 is_stmt 0 view .LVU262 + 815 0022 0122 movs r2, #1 + 816 0024 4261 str r2, [r0, #20] + 293:Src/main.c **** hadc2.Init.LowPowerAutoWait = DISABLE; + 817 .loc 1 293 3 is_stmt 1 view .LVU263 + 293:Src/main.c **** hadc2.Init.LowPowerAutoWait = DISABLE; + 818 .loc 1 293 27 is_stmt 0 view .LVU264 + 819 0026 0822 movs r2, #8 + 820 0028 8261 str r2, [r0, #24] + 294:Src/main.c **** hadc2.Init.ContinuousConvMode = DISABLE; + 821 .loc 1 294 3 is_stmt 1 view .LVU265 + 294:Src/main.c **** hadc2.Init.ContinuousConvMode = DISABLE; + 822 .loc 1 294 31 is_stmt 0 view .LVU266 + 823 002a 0377 strb r3, [r0, #28] + 295:Src/main.c **** hadc2.Init.NbrOfConversion = 4; + 824 .loc 1 295 3 is_stmt 1 view .LVU267 + 295:Src/main.c **** hadc2.Init.NbrOfConversion = 4; + 825 .loc 1 295 33 is_stmt 0 view .LVU268 + 826 002c 4377 strb r3, [r0, #29] + 296:Src/main.c **** hadc2.Init.DiscontinuousConvMode = DISABLE; + 827 .loc 1 296 3 is_stmt 1 view .LVU269 + 296:Src/main.c **** hadc2.Init.DiscontinuousConvMode = DISABLE; + 828 .loc 1 296 30 is_stmt 0 view .LVU270 + 829 002e 0422 movs r2, #4 + 830 0030 0262 str r2, [r0, #32] + 297:Src/main.c **** hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 831 .loc 1 297 3 is_stmt 1 view .LVU271 + 297:Src/main.c **** hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 832 .loc 1 297 36 is_stmt 0 view .LVU272 + 833 0032 80F82430 strb r3, [r0, #36] + 298:Src/main.c **** hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 834 .loc 1 298 3 is_stmt 1 view .LVU273 + 298:Src/main.c **** hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + 835 .loc 1 298 31 is_stmt 0 view .LVU274 + 836 0036 C362 str r3, [r0, #44] + 299:Src/main.c **** hadc2.Init.DMAContinuousRequests = DISABLE; + 837 .loc 1 299 3 is_stmt 1 view .LVU275 + 299:Src/main.c **** hadc2.Init.DMAContinuousRequests = DISABLE; + 838 .loc 1 299 35 is_stmt 0 view .LVU276 + 839 0038 0363 str r3, [r0, #48] + 300:Src/main.c **** hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 840 .loc 1 300 3 is_stmt 1 view .LVU277 + ARM GAS /tmp/cc8GRwsk.s page 34 + + + 300:Src/main.c **** hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED; + 841 .loc 1 300 36 is_stmt 0 view .LVU278 + 842 003a 80F83830 strb r3, [r0, #56] + 301:Src/main.c **** hadc2.Init.OversamplingMode = DISABLE; + 843 .loc 1 301 3 is_stmt 1 view .LVU279 + 301:Src/main.c **** hadc2.Init.OversamplingMode = DISABLE; + 844 .loc 1 301 22 is_stmt 0 view .LVU280 + 845 003e C363 str r3, [r0, #60] + 302:Src/main.c **** if (HAL_ADC_Init(&hadc2) != HAL_OK) + 846 .loc 1 302 3 is_stmt 1 view .LVU281 + 302:Src/main.c **** if (HAL_ADC_Init(&hadc2) != HAL_OK) + 847 .loc 1 302 31 is_stmt 0 view .LVU282 + 848 0040 80F84030 strb r3, [r0, #64] + 303:Src/main.c **** { + 849 .loc 1 303 3 is_stmt 1 view .LVU283 + 303:Src/main.c **** { + 850 .loc 1 303 7 is_stmt 0 view .LVU284 + 851 0044 FFF7FEFF bl HAL_ADC_Init + 852 .LVL38: + 303:Src/main.c **** { + 853 .loc 1 303 6 view .LVU285 + 854 0048 38BB cbnz r0, .L64 + 310:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_1; + 855 .loc 1 310 3 is_stmt 1 view .LVU286 + 310:Src/main.c **** sConfig.Rank = ADC_REGULAR_RANK_1; + 856 .loc 1 310 19 is_stmt 0 view .LVU287 + 857 004a 1B4B ldr r3, .L69+8 + 858 004c 0093 str r3, [sp] + 311:Src/main.c **** sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + 859 .loc 1 311 3 is_stmt 1 view .LVU288 + 311:Src/main.c **** sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + 860 .loc 1 311 16 is_stmt 0 view .LVU289 + 861 004e 0623 movs r3, #6 + 862 0050 0193 str r3, [sp, #4] + 312:Src/main.c **** sConfig.SingleDiff = ADC_SINGLE_ENDED; + 863 .loc 1 312 3 is_stmt 1 view .LVU290 + 312:Src/main.c **** sConfig.SingleDiff = ADC_SINGLE_ENDED; + 864 .loc 1 312 24 is_stmt 0 view .LVU291 + 865 0052 0023 movs r3, #0 + 866 0054 0293 str r3, [sp, #8] + 313:Src/main.c **** sConfig.OffsetNumber = ADC_OFFSET_NONE; + 867 .loc 1 313 3 is_stmt 1 view .LVU292 + 313:Src/main.c **** sConfig.OffsetNumber = ADC_OFFSET_NONE; + 868 .loc 1 313 22 is_stmt 0 view .LVU293 + 869 0056 7F22 movs r2, #127 + 870 0058 0392 str r2, [sp, #12] + 314:Src/main.c **** sConfig.Offset = 0; + 871 .loc 1 314 3 is_stmt 1 view .LVU294 + 314:Src/main.c **** sConfig.Offset = 0; + 872 .loc 1 314 24 is_stmt 0 view .LVU295 + 873 005a 0422 movs r2, #4 + 874 005c 0492 str r2, [sp, #16] + 315:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 875 .loc 1 315 3 is_stmt 1 view .LVU296 + 315:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 876 .loc 1 315 18 is_stmt 0 view .LVU297 + 877 005e 0593 str r3, [sp, #20] + ARM GAS /tmp/cc8GRwsk.s page 35 + + + 316:Src/main.c **** { + 878 .loc 1 316 3 is_stmt 1 view .LVU298 + 316:Src/main.c **** { + 879 .loc 1 316 7 is_stmt 0 view .LVU299 + 880 0060 6946 mov r1, sp + 881 0062 1348 ldr r0, .L69 + 882 0064 FFF7FEFF bl HAL_ADC_ConfigChannel + 883 .LVL39: + 316:Src/main.c **** { + 884 .loc 1 316 6 view .LVU300 + 885 0068 C8B9 cbnz r0, .L65 + 323:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 886 .loc 1 323 3 is_stmt 1 view .LVU301 + 323:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 887 .loc 1 323 16 is_stmt 0 view .LVU302 + 888 006a 0C23 movs r3, #12 + 889 006c 0193 str r3, [sp, #4] + 324:Src/main.c **** { + 890 .loc 1 324 3 is_stmt 1 view .LVU303 + 324:Src/main.c **** { + 891 .loc 1 324 7 is_stmt 0 view .LVU304 + 892 006e 6946 mov r1, sp + 893 0070 0F48 ldr r0, .L69 + 894 0072 FFF7FEFF bl HAL_ADC_ConfigChannel + 895 .LVL40: + 324:Src/main.c **** { + 896 .loc 1 324 6 view .LVU305 + 897 0076 A0B9 cbnz r0, .L66 + 331:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 898 .loc 1 331 3 is_stmt 1 view .LVU306 + 331:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 899 .loc 1 331 16 is_stmt 0 view .LVU307 + 900 0078 1223 movs r3, #18 + 901 007a 0193 str r3, [sp, #4] + 332:Src/main.c **** { + 902 .loc 1 332 3 is_stmt 1 view .LVU308 + 332:Src/main.c **** { + 903 .loc 1 332 7 is_stmt 0 view .LVU309 + 904 007c 6946 mov r1, sp + 905 007e 0C48 ldr r0, .L69 + 906 0080 FFF7FEFF bl HAL_ADC_ConfigChannel + 907 .LVL41: + 332:Src/main.c **** { + 908 .loc 1 332 6 view .LVU310 + 909 0084 78B9 cbnz r0, .L67 + 339:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 910 .loc 1 339 3 is_stmt 1 view .LVU311 + 339:Src/main.c **** if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) + 911 .loc 1 339 16 is_stmt 0 view .LVU312 + 912 0086 1823 movs r3, #24 + 913 0088 0193 str r3, [sp, #4] + 340:Src/main.c **** { + 914 .loc 1 340 3 is_stmt 1 view .LVU313 + 340:Src/main.c **** { + 915 .loc 1 340 7 is_stmt 0 view .LVU314 + 916 008a 6946 mov r1, sp + 917 008c 0848 ldr r0, .L69 + ARM GAS /tmp/cc8GRwsk.s page 36 + + + 918 008e FFF7FEFF bl HAL_ADC_ConfigChannel + 919 .LVL42: + 340:Src/main.c **** { + 920 .loc 1 340 6 view .LVU315 + 921 0092 50B9 cbnz r0, .L68 + 348:Src/main.c **** + 922 .loc 1 348 1 view .LVU316 + 923 0094 09B0 add sp, sp, #36 + 924 .LCFI18: + 925 .cfi_remember_state + 926 .cfi_def_cfa_offset 4 + 927 @ sp needed + 928 0096 5DF804FB ldr pc, [sp], #4 + 929 .L64: + 930 .LCFI19: + 931 .cfi_restore_state + 305:Src/main.c **** } + 932 .loc 1 305 5 is_stmt 1 view .LVU317 + 933 009a FFF7FEFF bl Error_Handler + 934 .LVL43: + 935 .L65: + 318:Src/main.c **** } + 936 .loc 1 318 5 view .LVU318 + 937 009e FFF7FEFF bl Error_Handler + 938 .LVL44: + 939 .L66: + 326:Src/main.c **** } + 940 .loc 1 326 5 view .LVU319 + 941 00a2 FFF7FEFF bl Error_Handler + 942 .LVL45: + 943 .L67: + 334:Src/main.c **** } + 944 .loc 1 334 5 view .LVU320 + 945 00a6 FFF7FEFF bl Error_Handler + 946 .LVL46: + 947 .L68: + 342:Src/main.c **** } + 948 .loc 1 342 5 view .LVU321 + 949 00aa FFF7FEFF bl Error_Handler + 950 .LVL47: + 951 .L70: + 952 00ae 00BF .align 2 + 953 .L69: + 954 00b0 00000000 .word hadc2 + 955 00b4 00010050 .word 1342177536 + 956 00b8 0800900C .word 210763784 + 957 .cfi_endproc + 958 .LFE336: + 960 .section .text.MX_USART1_UART_Init,"ax",%progbits + 961 .align 1 + 962 .syntax unified + 963 .thumb + 964 .thumb_func + 966 MX_USART1_UART_Init: + 967 .LFB340: + 523:Src/main.c **** + 968 .loc 1 523 1 view -0 + ARM GAS /tmp/cc8GRwsk.s page 37 + + + 969 .cfi_startproc + 970 @ args = 0, pretend = 0, frame = 0 + 971 @ frame_needed = 0, uses_anonymous_args = 0 + 972 0000 08B5 push {r3, lr} + 973 .LCFI20: + 974 .cfi_def_cfa_offset 8 + 975 .cfi_offset 3, -8 + 976 .cfi_offset 14, -4 + 532:Src/main.c **** huart1.Init.BaudRate = 115200; + 977 .loc 1 532 3 view .LVU323 + 532:Src/main.c **** huart1.Init.BaudRate = 115200; + 978 .loc 1 532 19 is_stmt 0 view .LVU324 + 979 0002 1548 ldr r0, .L81 + 980 0004 154B ldr r3, .L81+4 + 981 0006 0360 str r3, [r0] + 533:Src/main.c **** huart1.Init.WordLength = UART_WORDLENGTH_8B; + 982 .loc 1 533 3 is_stmt 1 view .LVU325 + 533:Src/main.c **** huart1.Init.WordLength = UART_WORDLENGTH_8B; + 983 .loc 1 533 24 is_stmt 0 view .LVU326 + 984 0008 4FF4E133 mov r3, #115200 + 985 000c 4360 str r3, [r0, #4] + 534:Src/main.c **** huart1.Init.StopBits = UART_STOPBITS_1; + 986 .loc 1 534 3 is_stmt 1 view .LVU327 + 534:Src/main.c **** huart1.Init.StopBits = UART_STOPBITS_1; + 987 .loc 1 534 26 is_stmt 0 view .LVU328 + 988 000e 0023 movs r3, #0 + 989 0010 8360 str r3, [r0, #8] + 535:Src/main.c **** huart1.Init.Parity = UART_PARITY_NONE; + 990 .loc 1 535 3 is_stmt 1 view .LVU329 + 535:Src/main.c **** huart1.Init.Parity = UART_PARITY_NONE; + 991 .loc 1 535 24 is_stmt 0 view .LVU330 + 992 0012 C360 str r3, [r0, #12] + 536:Src/main.c **** huart1.Init.Mode = UART_MODE_TX_RX; + 993 .loc 1 536 3 is_stmt 1 view .LVU331 + 536:Src/main.c **** huart1.Init.Mode = UART_MODE_TX_RX; + 994 .loc 1 536 22 is_stmt 0 view .LVU332 + 995 0014 0361 str r3, [r0, #16] + 537:Src/main.c **** huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + 996 .loc 1 537 3 is_stmt 1 view .LVU333 + 537:Src/main.c **** huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + 997 .loc 1 537 20 is_stmt 0 view .LVU334 + 998 0016 0C22 movs r2, #12 + 999 0018 4261 str r2, [r0, #20] + 538:Src/main.c **** huart1.Init.OverSampling = UART_OVERSAMPLING_16; + 1000 .loc 1 538 3 is_stmt 1 view .LVU335 + 538:Src/main.c **** huart1.Init.OverSampling = UART_OVERSAMPLING_16; + 1001 .loc 1 538 25 is_stmt 0 view .LVU336 + 1002 001a 8361 str r3, [r0, #24] + 539:Src/main.c **** huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + 1003 .loc 1 539 3 is_stmt 1 view .LVU337 + 539:Src/main.c **** huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + 1004 .loc 1 539 28 is_stmt 0 view .LVU338 + 1005 001c C361 str r3, [r0, #28] + 540:Src/main.c **** huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; + 1006 .loc 1 540 3 is_stmt 1 view .LVU339 + 540:Src/main.c **** huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; + 1007 .loc 1 540 30 is_stmt 0 view .LVU340 + ARM GAS /tmp/cc8GRwsk.s page 38 + + + 1008 001e 0362 str r3, [r0, #32] + 541:Src/main.c **** huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 1009 .loc 1 541 3 is_stmt 1 view .LVU341 + 541:Src/main.c **** huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 1010 .loc 1 541 30 is_stmt 0 view .LVU342 + 1011 0020 4362 str r3, [r0, #36] + 542:Src/main.c **** if (HAL_UART_Init(&huart1) != HAL_OK) + 1012 .loc 1 542 3 is_stmt 1 view .LVU343 + 542:Src/main.c **** if (HAL_UART_Init(&huart1) != HAL_OK) + 1013 .loc 1 542 38 is_stmt 0 view .LVU344 + 1014 0022 8362 str r3, [r0, #40] + 543:Src/main.c **** { + 1015 .loc 1 543 3 is_stmt 1 view .LVU345 + 543:Src/main.c **** { + 1016 .loc 1 543 7 is_stmt 0 view .LVU346 + 1017 0024 FFF7FEFF bl HAL_UART_Init + 1018 .LVL48: + 543:Src/main.c **** { + 1019 .loc 1 543 6 view .LVU347 + 1020 0028 70B9 cbnz r0, .L77 + 547:Src/main.c **** { + 1021 .loc 1 547 3 is_stmt 1 view .LVU348 + 547:Src/main.c **** { + 1022 .loc 1 547 7 is_stmt 0 view .LVU349 + 1023 002a 0021 movs r1, #0 + 1024 002c 0A48 ldr r0, .L81 + 1025 002e FFF7FEFF bl HAL_UARTEx_SetTxFifoThreshold + 1026 .LVL49: + 547:Src/main.c **** { + 1027 .loc 1 547 6 view .LVU350 + 1028 0032 58B9 cbnz r0, .L78 + 551:Src/main.c **** { + 1029 .loc 1 551 3 is_stmt 1 view .LVU351 + 551:Src/main.c **** { + 1030 .loc 1 551 7 is_stmt 0 view .LVU352 + 1031 0034 0021 movs r1, #0 + 1032 0036 0848 ldr r0, .L81 + 1033 0038 FFF7FEFF bl HAL_UARTEx_SetRxFifoThreshold + 1034 .LVL50: + 551:Src/main.c **** { + 1035 .loc 1 551 6 view .LVU353 + 1036 003c 40B9 cbnz r0, .L79 + 555:Src/main.c **** { + 1037 .loc 1 555 3 is_stmt 1 view .LVU354 + 555:Src/main.c **** { + 1038 .loc 1 555 7 is_stmt 0 view .LVU355 + 1039 003e 0648 ldr r0, .L81 + 1040 0040 FFF7FEFF bl HAL_UARTEx_DisableFifoMode + 1041 .LVL51: + 555:Src/main.c **** { + 1042 .loc 1 555 6 view .LVU356 + 1043 0044 30B9 cbnz r0, .L80 + 563:Src/main.c **** + 1044 .loc 1 563 1 view .LVU357 + 1045 0046 08BD pop {r3, pc} + 1046 .L77: + 545:Src/main.c **** } + ARM GAS /tmp/cc8GRwsk.s page 39 + + + 1047 .loc 1 545 5 is_stmt 1 view .LVU358 + 1048 0048 FFF7FEFF bl Error_Handler + 1049 .LVL52: + 1050 .L78: + 549:Src/main.c **** } + 1051 .loc 1 549 5 view .LVU359 + 1052 004c FFF7FEFF bl Error_Handler + 1053 .LVL53: + 1054 .L79: + 553:Src/main.c **** } + 1055 .loc 1 553 5 view .LVU360 + 1056 0050 FFF7FEFF bl Error_Handler + 1057 .LVL54: + 1058 .L80: + 557:Src/main.c **** } + 1059 .loc 1 557 5 view .LVU361 + 1060 0054 FFF7FEFF bl Error_Handler + 1061 .LVL55: + 1062 .L82: + 1063 .align 2 + 1064 .L81: + 1065 0058 00000000 .word huart1 + 1066 005c 00380140 .word 1073821696 + 1067 .cfi_endproc + 1068 .LFE340: + 1070 .section .text.SystemClock_Config,"ax",%progbits + 1071 .align 1 + 1072 .global SystemClock_Config + 1073 .syntax unified + 1074 .thumb + 1075 .thumb_func + 1077 SystemClock_Config: + 1078 .LFB334: + 157:Src/main.c **** RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 1079 .loc 1 157 1 view -0 + 1080 .cfi_startproc + 1081 @ args = 0, pretend = 0, frame = 80 + 1082 @ frame_needed = 0, uses_anonymous_args = 0 + 1083 0000 00B5 push {lr} + 1084 .LCFI21: + 1085 .cfi_def_cfa_offset 4 + 1086 .cfi_offset 14, -4 + 1087 0002 95B0 sub sp, sp, #84 + 1088 .LCFI22: + 1089 .cfi_def_cfa_offset 88 + 158:Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 1090 .loc 1 158 3 view .LVU363 + 158:Src/main.c **** RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 1091 .loc 1 158 22 is_stmt 0 view .LVU364 + 1092 0004 3822 movs r2, #56 + 1093 0006 0021 movs r1, #0 + 1094 0008 06A8 add r0, sp, #24 + 1095 000a FFF7FEFF bl memset + 1096 .LVL56: + 159:Src/main.c **** + 1097 .loc 1 159 3 is_stmt 1 view .LVU365 + 159:Src/main.c **** + ARM GAS /tmp/cc8GRwsk.s page 40 + + + 1098 .loc 1 159 22 is_stmt 0 view .LVU366 + 1099 000e 0023 movs r3, #0 + 1100 0010 0193 str r3, [sp, #4] + 1101 0012 0293 str r3, [sp, #8] + 1102 0014 0393 str r3, [sp, #12] + 1103 0016 0493 str r3, [sp, #16] + 1104 0018 0593 str r3, [sp, #20] + 163:Src/main.c **** + 1105 .loc 1 163 3 is_stmt 1 view .LVU367 + 1106 001a 4FF40070 mov r0, #512 + 1107 001e FFF7FEFF bl HAL_PWREx_ControlVoltageScaling + 1108 .LVL57: + 168:Src/main.c **** RCC_OscInitStruct.HSEState = RCC_HSE_ON; + 1109 .loc 1 168 3 view .LVU368 + 168:Src/main.c **** RCC_OscInitStruct.HSEState = RCC_HSE_ON; + 1110 .loc 1 168 36 is_stmt 0 view .LVU369 + 1111 0022 2123 movs r3, #33 + 1112 0024 0693 str r3, [sp, #24] + 169:Src/main.c **** RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; + 1113 .loc 1 169 3 is_stmt 1 view .LVU370 + 169:Src/main.c **** RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; + 1114 .loc 1 169 30 is_stmt 0 view .LVU371 + 1115 0026 4FF48033 mov r3, #65536 + 1116 002a 0793 str r3, [sp, #28] + 170:Src/main.c **** RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 1117 .loc 1 170 3 is_stmt 1 view .LVU372 + 170:Src/main.c **** RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 1118 .loc 1 170 32 is_stmt 0 view .LVU373 + 1119 002c 0123 movs r3, #1 + 1120 002e 0C93 str r3, [sp, #48] + 171:Src/main.c **** RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + 1121 .loc 1 171 3 is_stmt 1 view .LVU374 + 171:Src/main.c **** RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + 1122 .loc 1 171 34 is_stmt 0 view .LVU375 + 1123 0030 0223 movs r3, #2 + 1124 0032 0D93 str r3, [sp, #52] + 172:Src/main.c **** RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV2; + 1125 .loc 1 172 3 is_stmt 1 view .LVU376 + 172:Src/main.c **** RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV2; + 1126 .loc 1 172 35 is_stmt 0 view .LVU377 + 1127 0034 0322 movs r2, #3 + 1128 0036 0E92 str r2, [sp, #56] + 173:Src/main.c **** RCC_OscInitStruct.PLL.PLLN = 32; + 1129 .loc 1 173 3 is_stmt 1 view .LVU378 + 173:Src/main.c **** RCC_OscInitStruct.PLL.PLLN = 32; + 1130 .loc 1 173 30 is_stmt 0 view .LVU379 + 1131 0038 0F93 str r3, [sp, #60] + 174:Src/main.c **** RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + 1132 .loc 1 174 3 is_stmt 1 view .LVU380 + 174:Src/main.c **** RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + 1133 .loc 1 174 30 is_stmt 0 view .LVU381 + 1134 003a 2022 movs r2, #32 + 1135 003c 1092 str r2, [sp, #64] + 175:Src/main.c **** RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV4; + 1136 .loc 1 175 3 is_stmt 1 view .LVU382 + 175:Src/main.c **** RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV4; + 1137 .loc 1 175 30 is_stmt 0 view .LVU383 + ARM GAS /tmp/cc8GRwsk.s page 41 + + + 1138 003e 1193 str r3, [sp, #68] + 176:Src/main.c **** RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + 1139 .loc 1 176 3 is_stmt 1 view .LVU384 + 176:Src/main.c **** RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; + 1140 .loc 1 176 30 is_stmt 0 view .LVU385 + 1141 0040 0422 movs r2, #4 + 1142 0042 1292 str r2, [sp, #72] + 177:Src/main.c **** if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 1143 .loc 1 177 3 is_stmt 1 view .LVU386 + 177:Src/main.c **** if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 1144 .loc 1 177 30 is_stmt 0 view .LVU387 + 1145 0044 1393 str r3, [sp, #76] + 178:Src/main.c **** { + 1146 .loc 1 178 3 is_stmt 1 view .LVU388 + 178:Src/main.c **** { + 1147 .loc 1 178 7 is_stmt 0 view .LVU389 + 1148 0046 06A8 add r0, sp, #24 + 1149 0048 FFF7FEFF bl HAL_RCC_OscConfig + 1150 .LVL58: + 178:Src/main.c **** { + 1151 .loc 1 178 6 view .LVU390 + 1152 004c A0B9 cbnz r0, .L87 + 185:Src/main.c **** |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + 1153 .loc 1 185 3 is_stmt 1 view .LVU391 + 185:Src/main.c **** |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + 1154 .loc 1 185 31 is_stmt 0 view .LVU392 + 1155 004e 0F23 movs r3, #15 + 1156 0050 0193 str r3, [sp, #4] + 187:Src/main.c **** RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 1157 .loc 1 187 3 is_stmt 1 view .LVU393 + 187:Src/main.c **** RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 1158 .loc 1 187 34 is_stmt 0 view .LVU394 + 1159 0052 0321 movs r1, #3 + 1160 0054 0291 str r1, [sp, #8] + 188:Src/main.c **** RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 1161 .loc 1 188 3 is_stmt 1 view .LVU395 + 188:Src/main.c **** RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 1162 .loc 1 188 35 is_stmt 0 view .LVU396 + 1163 0056 0023 movs r3, #0 + 1164 0058 0393 str r3, [sp, #12] + 189:Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 1165 .loc 1 189 3 is_stmt 1 view .LVU397 + 189:Src/main.c **** RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 1166 .loc 1 189 36 is_stmt 0 view .LVU398 + 1167 005a 0493 str r3, [sp, #16] + 190:Src/main.c **** + 1168 .loc 1 190 3 is_stmt 1 view .LVU399 + 190:Src/main.c **** + 1169 .loc 1 190 36 is_stmt 0 view .LVU400 + 1170 005c 0593 str r3, [sp, #20] + 192:Src/main.c **** { + 1171 .loc 1 192 3 is_stmt 1 view .LVU401 + 192:Src/main.c **** { + 1172 .loc 1 192 7 is_stmt 0 view .LVU402 + 1173 005e 01A8 add r0, sp, #4 + 1174 0060 FFF7FEFF bl HAL_RCC_ClockConfig + 1175 .LVL59: + ARM GAS /tmp/cc8GRwsk.s page 42 + + + 192:Src/main.c **** { + 1176 .loc 1 192 6 view .LVU403 + 1177 0064 50B9 cbnz r0, .L88 + 196:Src/main.c **** } + 1178 .loc 1 196 3 is_stmt 1 view .LVU404 + 1179 0066 0022 movs r2, #0 + 1180 0068 4FF08061 mov r1, #67108864 + 1181 006c 0448 ldr r0, .L89 + 1182 006e FFF7FEFF bl HAL_RCC_MCOConfig + 1183 .LVL60: + 197:Src/main.c **** + 1184 .loc 1 197 1 is_stmt 0 view .LVU405 + 1185 0072 15B0 add sp, sp, #84 + 1186 .LCFI23: + 1187 .cfi_remember_state + 1188 .cfi_def_cfa_offset 4 + 1189 @ sp needed + 1190 0074 5DF804FB ldr pc, [sp], #4 + 1191 .L87: + 1192 .LCFI24: + 1193 .cfi_restore_state + 180:Src/main.c **** } + 1194 .loc 1 180 5 is_stmt 1 view .LVU406 + 1195 0078 FFF7FEFF bl Error_Handler + 1196 .LVL61: + 1197 .L88: + 194:Src/main.c **** } + 1198 .loc 1 194 5 view .LVU407 + 1199 007c FFF7FEFF bl Error_Handler + 1200 .LVL62: + 1201 .L90: + 1202 .align 2 + 1203 .L89: + 1204 0080 00040600 .word 394240 + 1205 .cfi_endproc + 1206 .LFE334: + 1208 .section .text.main,"ax",%progbits + 1209 .align 1 + 1210 .global main + 1211 .syntax unified + 1212 .thumb + 1213 .thumb_func + 1215 main: + 1216 .LFB333: + 81:Src/main.c **** /* USER CODE BEGIN 1 */ + 1217 .loc 1 81 1 view -0 + 1218 .cfi_startproc + 1219 @ Volatile: function does not return. + 1220 @ args = 0, pretend = 0, frame = 0 + 1221 @ frame_needed = 0, uses_anonymous_args = 0 + 1222 0000 08B5 push {r3, lr} + 1223 .LCFI25: + 1224 .cfi_def_cfa_offset 8 + 1225 .cfi_offset 3, -8 + 1226 .cfi_offset 14, -4 + 89:Src/main.c **** + 1227 .loc 1 89 3 view .LVU409 + ARM GAS /tmp/cc8GRwsk.s page 43 + + + 1228 0002 FFF7FEFF bl HAL_Init + 1229 .LVL63: + 96:Src/main.c **** + 1230 .loc 1 96 3 view .LVU410 + 1231 0006 FFF7FEFF bl SystemClock_Config + 1232 .LVL64: + 103:Src/main.c **** MX_TIM2_Init(); + 1233 .loc 1 103 3 view .LVU411 + 1234 000a FFF7FEFF bl MX_GPIO_Init + 1235 .LVL65: + 104:Src/main.c **** MX_I2C1_Init(); + 1236 .loc 1 104 3 view .LVU412 + 1237 000e FFF7FEFF bl MX_TIM2_Init + 1238 .LVL66: + 105:Src/main.c **** MX_TIM3_Init(); + 1239 .loc 1 105 3 view .LVU413 + 1240 0012 FFF7FEFF bl MX_I2C1_Init + 1241 .LVL67: + 106:Src/main.c **** MX_ADC1_Init(); + 1242 .loc 1 106 3 view .LVU414 + 1243 0016 FFF7FEFF bl MX_TIM3_Init + 1244 .LVL68: + 107:Src/main.c **** MX_ADC2_Init(); + 1245 .loc 1 107 3 view .LVU415 + 1246 001a FFF7FEFF bl MX_ADC1_Init + 1247 .LVL69: + 108:Src/main.c **** MX_USART1_UART_Init(); + 1248 .loc 1 108 3 view .LVU416 + 1249 001e FFF7FEFF bl MX_ADC2_Init + 1250 .LVL70: + 109:Src/main.c **** MX_USB_Device_Init(); + 1251 .loc 1 109 3 view .LVU417 + 1252 0022 FFF7FEFF bl MX_USART1_UART_Init + 1253 .LVL71: + 110:Src/main.c **** /* USER CODE BEGIN 2 */ + 1254 .loc 1 110 3 view .LVU418 + 1255 0026 FFF7FEFF bl MX_USB_Device_Init + 1256 .LVL72: + 113:Src/main.c **** HAL_TIM_Base_Start_IT(&htim3); + 1257 .loc 1 113 4 view .LVU419 + 1258 002a 1D4C ldr r4, .L94 + 1259 002c 2046 mov r0, r4 + 1260 002e FFF7FEFF bl HAL_TIM_Base_Start_IT + 1261 .LVL73: + 114:Src/main.c **** + 1262 .loc 1 114 4 view .LVU420 + 1263 0032 1C48 ldr r0, .L94+4 + 1264 0034 FFF7FEFF bl HAL_TIM_Base_Start_IT + 1265 .LVL74: + 116:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); + 1266 .loc 1 116 2 view .LVU421 + 1267 0038 0021 movs r1, #0 + 1268 003a 2046 mov r0, r4 + 1269 003c FFF7FEFF bl HAL_TIM_PWM_Start + 1270 .LVL75: + 117:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3); + 1271 .loc 1 117 9 view .LVU422 + ARM GAS /tmp/cc8GRwsk.s page 44 + + + 1272 0040 0421 movs r1, #4 + 1273 0042 2046 mov r0, r4 + 1274 0044 FFF7FEFF bl HAL_TIM_PWM_Start + 1275 .LVL76: + 118:Src/main.c **** HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); + 1276 .loc 1 118 9 view .LVU423 + 1277 0048 0821 movs r1, #8 + 1278 004a 2046 mov r0, r4 + 1279 004c FFF7FEFF bl HAL_TIM_PWM_Start + 1280 .LVL77: + 119:Src/main.c **** + 1281 .loc 1 119 9 view .LVU424 + 1282 0050 0C21 movs r1, #12 + 1283 0052 2046 mov r0, r4 + 1284 0054 FFF7FEFF bl HAL_TIM_PWM_Start + 1285 .LVL78: + 121:Src/main.c **** si5351_initialize(); + 1286 .loc 1 121 2 view .LVU425 + 1287 0058 0A20 movs r0, #10 + 1288 005a FFF7FEFF bl HAL_Delay + 1289 .LVL79: + 122:Src/main.c **** HAL_Delay(10); + 1290 .loc 1 122 2 view .LVU426 + 1291 005e FFF7FEFF bl si5351_initialize + 1292 .LVL80: + 123:Src/main.c **** si5351_on_clk(0); + 1293 .loc 1 123 9 view .LVU427 + 1294 0062 0A20 movs r0, #10 + 1295 0064 FFF7FEFF bl HAL_Delay + 1296 .LVL81: + 124:Src/main.c **** si5351_on_clk(1); + 1297 .loc 1 124 9 view .LVU428 + 1298 0068 0020 movs r0, #0 + 1299 006a FFF7FEFF bl si5351_on_clk + 1300 .LVL82: + 125:Src/main.c **** si5351_set_frequency(1000000,0); + 1301 .loc 1 125 9 view .LVU429 + 1302 006e 0120 movs r0, #1 + 1303 0070 FFF7FEFF bl si5351_on_clk + 1304 .LVL83: + 126:Src/main.c **** si5351_set_frequency(1000000,1); + 1305 .loc 1 126 9 view .LVU430 + 1306 0074 0C4C ldr r4, .L94+8 + 1307 0076 0021 movs r1, #0 + 1308 0078 2046 mov r0, r4 + 1309 007a FFF7FEFF bl si5351_set_frequency + 1310 .LVL84: + 127:Src/main.c **** + 1311 .loc 1 127 9 view .LVU431 + 1312 007e 0121 movs r1, #1 + 1313 0080 2046 mov r0, r4 + 1314 0082 FFF7FEFF bl si5351_set_frequency + 1315 .LVL85: + 1316 .L92: + 133:Src/main.c **** { + 1317 .loc 1 133 3 discriminator 1 view .LVU432 + 144:Src/main.c **** si5351_set_frequency(1000000,0); + ARM GAS /tmp/cc8GRwsk.s page 45 + + + 1318 .loc 1 144 9 discriminator 1 view .LVU433 + 1319 0086 0A20 movs r0, #10 + 1320 0088 FFF7FEFF bl HAL_Delay + 1321 .LVL86: + 145:Src/main.c **** si5351_set_frequency(1000000,1); + 1322 .loc 1 145 9 discriminator 1 view .LVU434 + 1323 008c 064C ldr r4, .L94+8 + 1324 008e 0021 movs r1, #0 + 1325 0090 2046 mov r0, r4 + 1326 0092 FFF7FEFF bl si5351_set_frequency + 1327 .LVL87: + 146:Src/main.c **** + 1328 .loc 1 146 9 discriminator 1 view .LVU435 + 1329 0096 0121 movs r1, #1 + 1330 0098 2046 mov r0, r4 + 1331 009a FFF7FEFF bl si5351_set_frequency + 1332 .LVL88: + 133:Src/main.c **** { + 1333 .loc 1 133 9 discriminator 1 view .LVU436 + 1334 009e F2E7 b .L92 + 1335 .L95: + 1336 .align 2 + 1337 .L94: + 1338 00a0 00000000 .word htim2 + 1339 00a4 00000000 .word htim3 + 1340 00a8 40420F00 .word 1000000 + 1341 .cfi_endproc + 1342 .LFE333: + 1344 .global huart1 + 1345 .section .bss.huart1,"aw",%nobits + 1346 .align 2 + 1349 huart1: + 1350 0000 00000000 .space 144 + 1350 00000000 + 1350 00000000 + 1350 00000000 + 1350 00000000 + 1351 .global htim3 + 1352 .section .bss.htim3,"aw",%nobits + 1353 .align 2 + 1356 htim3: + 1357 0000 00000000 .space 76 + 1357 00000000 + 1357 00000000 + 1357 00000000 + 1357 00000000 + 1358 .global htim2 + 1359 .section .bss.htim2,"aw",%nobits + 1360 .align 2 + 1363 htim2: + 1364 0000 00000000 .space 76 + 1364 00000000 + 1364 00000000 + 1364 00000000 + 1364 00000000 + 1365 .global hi2c1 + 1366 .section .bss.hi2c1,"aw",%nobits + ARM GAS /tmp/cc8GRwsk.s page 46 + + + 1367 .align 2 + 1370 hi2c1: + 1371 0000 00000000 .space 76 + 1371 00000000 + 1371 00000000 + 1371 00000000 + 1371 00000000 + 1372 .global hadc2 + 1373 .section .bss.hadc2,"aw",%nobits + 1374 .align 2 + 1377 hadc2: + 1378 0000 00000000 .space 108 + 1378 00000000 + 1378 00000000 + 1378 00000000 + 1378 00000000 + 1379 .global hadc1 + 1380 .section .bss.hadc1,"aw",%nobits + 1381 .align 2 + 1384 hadc1: + 1385 0000 00000000 .space 108 + 1385 00000000 + 1385 00000000 + 1385 00000000 + 1385 00000000 + 1386 .text + 1387 .Letext0: + 1388 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1389 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1390 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 1391 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1392 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h" + 1393 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h" + 1394 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 1395 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h" + 1396 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h" + 1397 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" + 1398 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h" + 1399 .file 14 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" + 1400 .file 15 "Inc/si5351.h" + 1401 .file 16 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h" + 1402 .file 17 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h" + 1403 .file 18 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h" + 1404 .file 19 "Inc/main.h" + 1405 .file 20 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h" + 1406 .file 21 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + 1407 .file 22 "Inc/usb_device.h" + 1408 .file 23 "" + ARM GAS /tmp/cc8GRwsk.s page 47 + + +DEFINED SYMBOLS + *ABS*:00000000 main.c + /tmp/cc8GRwsk.s:21 .text.MX_GPIO_Init:00000000 $t + /tmp/cc8GRwsk.s:26 .text.MX_GPIO_Init:00000000 MX_GPIO_Init + /tmp/cc8GRwsk.s:134 .text.MX_GPIO_Init:00000078 $d + /tmp/cc8GRwsk.s:139 .text.Error_Handler:00000000 $t + /tmp/cc8GRwsk.s:145 .text.Error_Handler:00000000 Error_Handler + /tmp/cc8GRwsk.s:177 .text.MX_TIM2_Init:00000000 $t + /tmp/cc8GRwsk.s:182 .text.MX_TIM2_Init:00000000 MX_TIM2_Init + /tmp/cc8GRwsk.s:391 .text.MX_TIM2_Init:000000ec $d + /tmp/cc8GRwsk.s:1363 .bss.htim2:00000000 htim2 + /tmp/cc8GRwsk.s:396 .text.MX_I2C1_Init:00000000 $t + /tmp/cc8GRwsk.s:401 .text.MX_I2C1_Init:00000000 MX_I2C1_Init + /tmp/cc8GRwsk.s:483 .text.MX_I2C1_Init:00000048 $d + /tmp/cc8GRwsk.s:1370 .bss.hi2c1:00000000 hi2c1 + /tmp/cc8GRwsk.s:490 .text.MX_TIM3_Init:00000000 $t + /tmp/cc8GRwsk.s:495 .text.MX_TIM3_Init:00000000 MX_TIM3_Init + /tmp/cc8GRwsk.s:599 .text.MX_TIM3_Init:00000064 $d + /tmp/cc8GRwsk.s:1356 .bss.htim3:00000000 htim3 + /tmp/cc8GRwsk.s:605 .text.MX_ADC1_Init:00000000 $t + /tmp/cc8GRwsk.s:610 .text.MX_ADC1_Init:00000000 MX_ADC1_Init + /tmp/cc8GRwsk.s:763 .text.MX_ADC1_Init:00000090 $d + /tmp/cc8GRwsk.s:1384 .bss.hadc1:00000000 hadc1 + /tmp/cc8GRwsk.s:769 .text.MX_ADC2_Init:00000000 $t + /tmp/cc8GRwsk.s:774 .text.MX_ADC2_Init:00000000 MX_ADC2_Init + /tmp/cc8GRwsk.s:954 .text.MX_ADC2_Init:000000b0 $d + /tmp/cc8GRwsk.s:1377 .bss.hadc2:00000000 hadc2 + /tmp/cc8GRwsk.s:961 .text.MX_USART1_UART_Init:00000000 $t + /tmp/cc8GRwsk.s:966 .text.MX_USART1_UART_Init:00000000 MX_USART1_UART_Init + /tmp/cc8GRwsk.s:1065 .text.MX_USART1_UART_Init:00000058 $d + /tmp/cc8GRwsk.s:1349 .bss.huart1:00000000 huart1 + /tmp/cc8GRwsk.s:1071 .text.SystemClock_Config:00000000 $t + /tmp/cc8GRwsk.s:1077 .text.SystemClock_Config:00000000 SystemClock_Config + /tmp/cc8GRwsk.s:1204 .text.SystemClock_Config:00000080 $d + /tmp/cc8GRwsk.s:1209 .text.main:00000000 $t + /tmp/cc8GRwsk.s:1215 .text.main:00000000 main + /tmp/cc8GRwsk.s:1338 .text.main:000000a0 $d + /tmp/cc8GRwsk.s:1346 .bss.huart1:00000000 $d + /tmp/cc8GRwsk.s:1353 .bss.htim3:00000000 $d + /tmp/cc8GRwsk.s:1360 .bss.htim2:00000000 $d + /tmp/cc8GRwsk.s:1367 .bss.hi2c1:00000000 $d + /tmp/cc8GRwsk.s:1374 .bss.hadc2:00000000 $d + /tmp/cc8GRwsk.s:1381 .bss.hadc1:00000000 $d + +UNDEFINED SYMBOLS +HAL_GPIO_Init +HAL_TIM_Base_Init +HAL_TIM_ConfigClockSource +HAL_TIM_PWM_Init +HAL_TIMEx_MasterConfigSynchronization +HAL_TIM_PWM_ConfigChannel +HAL_TIM_MspPostInit +HAL_I2C_Init +HAL_I2CEx_ConfigAnalogFilter +HAL_I2CEx_ConfigDigitalFilter +memset +HAL_ADC_Init + ARM GAS /tmp/cc8GRwsk.s page 48 + + +HAL_ADCEx_MultiModeConfigChannel +HAL_ADC_ConfigChannel +HAL_UART_Init +HAL_UARTEx_SetTxFifoThreshold +HAL_UARTEx_SetRxFifoThreshold +HAL_UARTEx_DisableFifoMode +HAL_PWREx_ControlVoltageScaling +HAL_RCC_OscConfig +HAL_RCC_ClockConfig +HAL_RCC_MCOConfig +HAL_Init +MX_USB_Device_Init +HAL_TIM_Base_Start_IT +HAL_TIM_PWM_Start +HAL_Delay +si5351_initialize +si5351_on_clk +si5351_set_frequency diff --git a/squeow_sw/build/main.o b/squeow_sw/build/main.o new file mode 100644 index 0000000000000000000000000000000000000000..851dc6266d6aa87d68d0d34eaabdc9f95a248466 GIT binary patch literal 33552 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 MeSb1S$js&c0Xh1^6aWAK literal 0 HcmV?d00001 diff --git a/squeow_sw/build/si5351.d b/squeow_sw/build/si5351.d new file mode 100644 index 0000000..abb34b3 --- /dev/null +++ b/squeow_sw/build/si5351.d @@ -0,0 +1,75 @@ +build/si5351.o: Src/si5351.c Inc/main.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h Inc/si5351.h +Inc/main.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: +Inc/si5351.h: diff --git a/squeow_sw/build/si5351.lst b/squeow_sw/build/si5351.lst new file mode 100644 index 0000000..2ae25a2 --- /dev/null +++ b/squeow_sw/build/si5351.lst @@ -0,0 +1,1331 @@ +ARM GAS /tmp/ccx0f9ME.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "si5351.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/si5351.c" + 20 .section .text.si5351_write8,"ax",%progbits + 21 .align 1 + 22 .global si5351_write8 + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 si5351_write8: + 28 .LVL0: + 29 .LFB329: + 1:Src/si5351.c **** #include "main.h" + 2:Src/si5351.c **** #include "stm32g4xx_hal.h" + 3:Src/si5351.c **** #include + 4:Src/si5351.c **** #include "si5351.h" + 5:Src/si5351.c **** + 6:Src/si5351.c **** uint8_t oeb; + 7:Src/si5351.c **** + 8:Src/si5351.c **** void si5351_write8 (uint8_t reg, uint8_t value){ + 30 .loc 1 8 48 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 8 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 .loc 1 8 48 is_stmt 0 view .LVU1 + 35 0000 10B5 push {r4, lr} + 36 .LCFI0: + 37 .cfi_def_cfa_offset 8 + 38 .cfi_offset 4, -8 + 39 .cfi_offset 14, -4 + 40 0002 86B0 sub sp, sp, #24 + 41 .LCFI1: + 42 .cfi_def_cfa_offset 32 + 43 0004 0446 mov r4, r0 + 44 0006 8DF81710 strb r1, [sp, #23] + 9:Src/si5351.c **** while (HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(SI5351_ADDRESS<<1), 3, 100) != HAL_OK) { } + 45 .loc 1 9 2 is_stmt 1 view .LVU2 + 46 .LVL1: + 47 .L2: + 48 .loc 1 9 91 discriminator 1 view .LVU3 + 49 .loc 1 9 78 discriminator 1 view .LVU4 + ARM GAS /tmp/ccx0f9ME.s page 2 + + + 50 .loc 1 9 9 is_stmt 0 discriminator 1 view .LVU5 + 51 000a 6423 movs r3, #100 + 52 000c 0322 movs r2, #3 + 53 000e C021 movs r1, #192 + 54 0010 0948 ldr r0, .L4 + 55 0012 FFF7FEFF bl HAL_I2C_IsDeviceReady + 56 .LVL2: + 57 .loc 1 9 78 discriminator 1 view .LVU6 + 58 0016 0028 cmp r0, #0 + 59 0018 F7D1 bne .L2 + 10:Src/si5351.c **** HAL_I2C_Mem_Write(&hi2c1, (uint8_t)(SI5351_ADDRESS<<1), (uint8_t)reg, I2C_MEMADD_SIZE_8BIT, (uint8 + 60 .loc 1 10 2 is_stmt 1 view .LVU7 + 61 001a 6423 movs r3, #100 + 62 001c 0293 str r3, [sp, #8] + 63 001e 0123 movs r3, #1 + 64 0020 0193 str r3, [sp, #4] + 65 0022 0DF11702 add r2, sp, #23 + 66 0026 0092 str r2, [sp] + 67 0028 2246 mov r2, r4 + 68 002a C021 movs r1, #192 + 69 002c 0248 ldr r0, .L4 + 70 002e FFF7FEFF bl HAL_I2C_Mem_Write + 71 .LVL3: + 11:Src/si5351.c **** } + 72 .loc 1 11 1 is_stmt 0 view .LVU8 + 73 0032 06B0 add sp, sp, #24 + 74 .LCFI2: + 75 .cfi_def_cfa_offset 8 + 76 @ sp needed + 77 0034 10BD pop {r4, pc} + 78 .L5: + 79 0036 00BF .align 2 + 80 .L4: + 81 0038 00000000 .word hi2c1 + 82 .cfi_endproc + 83 .LFE329: + 85 .section .text.si5351_read8,"ax",%progbits + 86 .align 1 + 87 .global si5351_read8 + 88 .syntax unified + 89 .thumb + 90 .thumb_func + 92 si5351_read8: + 93 .LVL4: + 94 .LFB330: + 12:Src/si5351.c **** + 13:Src/si5351.c **** uint8_t si5351_read8(uint8_t reg, uint8_t *value){ + 95 .loc 1 13 50 is_stmt 1 view -0 + 96 .cfi_startproc + 97 @ args = 0, pretend = 0, frame = 8 + 98 @ frame_needed = 0, uses_anonymous_args = 0 + 99 .loc 1 13 50 is_stmt 0 view .LVU10 + 100 0000 10B5 push {r4, lr} + 101 .LCFI3: + 102 .cfi_def_cfa_offset 8 + 103 .cfi_offset 4, -8 + 104 .cfi_offset 14, -4 + ARM GAS /tmp/ccx0f9ME.s page 3 + + + 105 0002 86B0 sub sp, sp, #24 + 106 .LCFI4: + 107 .cfi_def_cfa_offset 32 + 108 0004 0446 mov r4, r0 + 109 0006 0591 str r1, [sp, #20] + 14:Src/si5351.c **** HAL_StatusTypeDef status = HAL_OK; + 110 .loc 1 14 2 is_stmt 1 view .LVU11 + 111 .LVL5: + 15:Src/si5351.c **** while (HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(SI5351_ADDRESS<<1), 3, 100) != HAL_OK) { } + 112 .loc 1 15 2 view .LVU12 + 113 .L7: + 114 .loc 1 15 91 discriminator 1 view .LVU13 + 115 .loc 1 15 78 discriminator 1 view .LVU14 + 116 .loc 1 15 9 is_stmt 0 discriminator 1 view .LVU15 + 117 0008 6423 movs r3, #100 + 118 000a 0322 movs r2, #3 + 119 000c C021 movs r1, #192 + 120 000e 0948 ldr r0, .L9 + 121 0010 FFF7FEFF bl HAL_I2C_IsDeviceReady + 122 .LVL6: + 123 .loc 1 15 78 discriminator 1 view .LVU16 + 124 0014 0028 cmp r0, #0 + 125 0016 F7D1 bne .L7 + 16:Src/si5351.c **** status = HAL_I2C_Mem_Read(&hi2c1, // i2c handle + 126 .loc 1 16 2 is_stmt 1 view .LVU17 + 127 .loc 1 16 11 is_stmt 0 view .LVU18 + 128 0018 6423 movs r3, #100 + 129 001a 0293 str r3, [sp, #8] + 130 001c 0123 movs r3, #1 + 131 001e 0193 str r3, [sp, #4] + 132 0020 05AA add r2, sp, #20 + 133 0022 0092 str r2, [sp] + 134 0024 2246 mov r2, r4 + 135 0026 C021 movs r1, #192 + 136 0028 0248 ldr r0, .L9 + 137 002a FFF7FEFF bl HAL_I2C_Mem_Read + 138 .LVL7: + 17:Src/si5351.c **** (uint8_t)(SI5351_ADDRESS<<1), // i2c address, left aligned + 18:Src/si5351.c **** (uint8_t)reg, // register address + 19:Src/si5351.c **** I2C_MEMADD_SIZE_8BIT, // si5351 uses 8bit register addresses + 20:Src/si5351.c **** (uint8_t*)(&value), // write returned data to this variable + 21:Src/si5351.c **** 1, // how many bytes to expect returned + 22:Src/si5351.c **** 100); // timeout + 23:Src/si5351.c **** + 24:Src/si5351.c **** return status; + 139 .loc 1 24 3 is_stmt 1 view .LVU19 + 25:Src/si5351.c **** } + 140 .loc 1 25 1 is_stmt 0 view .LVU20 + 141 002e 06B0 add sp, sp, #24 + 142 .LCFI5: + 143 .cfi_def_cfa_offset 8 + 144 @ sp needed + 145 0030 10BD pop {r4, pc} + 146 .L10: + 147 0032 00BF .align 2 + 148 .L9: + 149 0034 00000000 .word hi2c1 + ARM GAS /tmp/ccx0f9ME.s page 4 + + + 150 .cfi_endproc + 151 .LFE330: + 153 .global __aeabi_ui2d + 154 .global __aeabi_ddiv + 155 .global __aeabi_d2uiz + 156 .global __aeabi_d2iz + 157 .global __aeabi_i2d + 158 .global __aeabi_dsub + 159 .global __aeabi_dmul + 160 .global __aeabi_dadd + 161 .section .text.CalcRegisters,"ax",%progbits + 162 .align 1 + 163 .global CalcRegisters + 164 .syntax unified + 165 .thumb + 166 .thumb_func + 168 CalcRegisters: + 169 .LVL8: + 170 .LFB331: + 26:Src/si5351.c **** + 27:Src/si5351.c **** + 28:Src/si5351.c **** void CalcRegisters(uint32_t fout, uint8_t *regs){ + 171 .loc 1 28 49 is_stmt 1 view -0 + 172 .cfi_startproc + 173 @ args = 0, pretend = 0, frame = 0 + 174 @ frame_needed = 0, uses_anonymous_args = 0 + 175 .loc 1 28 49 is_stmt 0 view .LVU22 + 176 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + 177 .LCFI6: + 178 .cfi_def_cfa_offset 40 + 179 .cfi_offset 3, -40 + 180 .cfi_offset 4, -36 + 181 .cfi_offset 5, -32 + 182 .cfi_offset 6, -28 + 183 .cfi_offset 7, -24 + 184 .cfi_offset 8, -20 + 185 .cfi_offset 9, -16 + 186 .cfi_offset 10, -12 + 187 .cfi_offset 11, -8 + 188 .cfi_offset 14, -4 + 189 0004 8046 mov r8, r0 + 190 0006 0C46 mov r4, r1 + 29:Src/si5351.c **** // uint32_t fref = SI5351_CRYSTAL_FREQ; // The reference frequency + 30:Src/si5351.c **** + 31:Src/si5351.c **** // Calc Output Multisynth Divider and R with e = 0 and f = 1 => msx_p2 = 0 and msx_p3 = 1 + 32:Src/si5351.c **** uint32_t d = 4; + 191 .loc 1 32 5 is_stmt 1 view .LVU23 + 192 .LVL9: + 33:Src/si5351.c **** uint32_t msx_p1 = 0; // If fout > 150 MHz then MSx_P1 = 0 and MSx_DIVBY + 193 .loc 1 33 5 view .LVU24 + 34:Src/si5351.c **** int msx_divby4 = 0; + 194 .loc 1 34 5 view .LVU25 + 35:Src/si5351.c **** int rx_div = 0; + 195 .loc 1 35 5 view .LVU26 + 36:Src/si5351.c **** int r = 1; + 196 .loc 1 36 5 view .LVU27 + 37:Src/si5351.c **** + ARM GAS /tmp/ccx0f9ME.s page 5 + + + 38:Src/si5351.c **** if (fout > 150e6) + 197 .loc 1 38 5 view .LVU28 + 198 .loc 1 38 8 is_stmt 0 view .LVU29 + 199 0008 674B ldr r3, .L29+24 + 200 000a 9842 cmp r0, r3 + 201 000c 49D8 bhi .L20 + 39:Src/si5351.c **** msx_divby4 = 0x0C; // MSx_DIVBY4[1:0] = 0b11, see datasheet 4.1.3 + 40:Src/si5351.c **** else if (fout < 292969UL) // If fout < 500 kHz then use R divider, see datas + 202 .loc 1 40 10 is_stmt 1 view .LVU30 + 203 .loc 1 40 13 is_stmt 0 view .LVU31 + 204 000e 674B ldr r3, .L29+28 + 205 0010 9842 cmp r0, r3 + 206 0012 38D9 bls .L21 + 41:Src/si5351.c **** { + 42:Src/si5351.c **** int rd = 0; + 43:Src/si5351.c **** while ((r < 128) && (r * fout < 292969UL)) + 44:Src/si5351.c **** { + 45:Src/si5351.c **** r <<= 1; + 46:Src/si5351.c **** rd++; + 47:Src/si5351.c **** } + 48:Src/si5351.c **** rx_div = rd << 4; + 49:Src/si5351.c **** + 50:Src/si5351.c **** d = 600e6 / (r * fout); // Use lowest VCO frequency but handle d minimum + 51:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 52:Src/si5351.c **** d++; + 53:Src/si5351.c **** + 54:Src/si5351.c **** if (d * r * fout < 600e6) // VCO frequency to low check and maintain an even + 55:Src/si5351.c **** d += 2; + 56:Src/si5351.c **** } + 57:Src/si5351.c **** else // 292968 Hz <= fout <= 150 MHz + 58:Src/si5351.c **** { + 59:Src/si5351.c **** d = 600e6 / fout; // Use lowest VCO frequency but handle d minimum + 207 .loc 1 59 9 is_stmt 1 view .LVU32 + 208 .loc 1 59 19 is_stmt 0 view .LVU33 + 209 0014 FFF7FEFF bl __aeabi_ui2d + 210 .LVL10: + 211 .loc 1 59 19 view .LVU34 + 212 0018 0246 mov r2, r0 + 213 001a 0B46 mov r3, r1 + 214 001c 5CA1 adr r1, .L29 + 215 001e D1E90001 ldrd r0, [r1] + 216 0022 FFF7FEFF bl __aeabi_ddiv + 217 .LVL11: + 218 .loc 1 59 11 view .LVU35 + 219 0026 FFF7FEFF bl __aeabi_d2uiz + 220 .LVL12: + 60:Src/si5351.c **** if (d < 6) + 221 .loc 1 60 9 is_stmt 1 view .LVU36 + 222 .loc 1 60 12 is_stmt 0 view .LVU37 + 223 002a 0528 cmp r0, #5 + 224 002c 2ED9 bls .L23 + 61:Src/si5351.c **** d = 6; + 62:Src/si5351.c **** else if (d % 2) // Make d even to reduce phase noise/jitter, see d + 225 .loc 1 62 14 is_stmt 1 view .LVU38 + 226 .loc 1 62 17 is_stmt 0 view .LVU39 + 227 002e 10F0010F tst r0, #1 + 228 0032 2CD0 beq .L18 + ARM GAS /tmp/ccx0f9ME.s page 6 + + + 63:Src/si5351.c **** d++; + 229 .loc 1 63 12 is_stmt 1 view .LVU40 + 230 .loc 1 63 13 is_stmt 0 view .LVU41 + 231 0034 0130 adds r0, r0, #1 + 232 .LVL13: + 233 .loc 1 63 13 view .LVU42 + 234 0036 2AE0 b .L18 + 235 .LVL14: + 236 .L16: + 237 .LBB2: + 45:Src/si5351.c **** rd++; + 238 .loc 1 45 13 is_stmt 1 view .LVU43 + 45:Src/si5351.c **** rd++; + 239 .loc 1 45 15 is_stmt 0 view .LVU44 + 240 0038 7600 lsls r6, r6, #1 + 241 .LVL15: + 46:Src/si5351.c **** } + 242 .loc 1 46 13 is_stmt 1 view .LVU45 + 46:Src/si5351.c **** } + 243 .loc 1 46 15 is_stmt 0 view .LVU46 + 244 003a 0135 adds r5, r5, #1 + 245 .LVL16: + 246 .L13: + 43:Src/si5351.c **** { + 247 .loc 1 43 26 is_stmt 1 view .LVU47 + 248 003c 7F2E cmp r6, #127 + 249 003e 04DC bgt .L15 + 43:Src/si5351.c **** { + 250 .loc 1 43 32 is_stmt 0 discriminator 1 view .LVU48 + 251 0040 08FB06F2 mul r2, r8, r6 + 43:Src/si5351.c **** { + 252 .loc 1 43 26 discriminator 1 view .LVU49 + 253 0044 594B ldr r3, .L29+28 + 254 0046 9A42 cmp r2, r3 + 255 0048 F6D9 bls .L16 + 256 .L15: + 48:Src/si5351.c **** + 257 .loc 1 48 9 is_stmt 1 view .LVU50 + 48:Src/si5351.c **** + 258 .loc 1 48 16 is_stmt 0 view .LVU51 + 259 004a 2D01 lsls r5, r5, #4 + 260 .LVL17: + 50:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 261 .loc 1 50 9 is_stmt 1 view .LVU52 + 50:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 262 .loc 1 50 24 is_stmt 0 view .LVU53 + 263 004c 3746 mov r7, r6 + 50:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 264 .loc 1 50 19 view .LVU54 + 265 004e 08FB06F0 mul r0, r8, r6 + 266 .LVL18: + 50:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 267 .loc 1 50 19 view .LVU55 + 268 0052 FFF7FEFF bl __aeabi_ui2d + 269 .LVL19: + 50:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 270 .loc 1 50 19 view .LVU56 + ARM GAS /tmp/ccx0f9ME.s page 7 + + + 271 0056 0246 mov r2, r0 + 272 0058 0B46 mov r3, r1 + 273 005a 4DA1 adr r1, .L29 + 274 005c D1E90001 ldrd r0, [r1] + 275 0060 FFF7FEFF bl __aeabi_ddiv + 276 .LVL20: + 50:Src/si5351.c **** if (d % 2) // Make d even to reduce spurious and phase noise/ + 277 .loc 1 50 11 view .LVU57 + 278 0064 FFF7FEFF bl __aeabi_d2uiz + 279 .LVL21: + 51:Src/si5351.c **** d++; + 280 .loc 1 51 9 is_stmt 1 view .LVU58 + 51:Src/si5351.c **** d++; + 281 .loc 1 51 12 is_stmt 0 view .LVU59 + 282 0068 10F0010F tst r0, #1 + 283 006c 00D0 beq .L17 + 52:Src/si5351.c **** + 284 .loc 1 52 13 is_stmt 1 view .LVU60 + 52:Src/si5351.c **** + 285 .loc 1 52 14 is_stmt 0 view .LVU61 + 286 006e 0130 adds r0, r0, #1 + 287 .LVL22: + 288 .L17: + 54:Src/si5351.c **** d += 2; + 289 .loc 1 54 9 is_stmt 1 view .LVU62 + 54:Src/si5351.c **** d += 2; + 290 .loc 1 54 15 is_stmt 0 view .LVU63 + 291 0070 00FB07F7 mul r7, r0, r7 + 54:Src/si5351.c **** d += 2; + 292 .loc 1 54 19 view .LVU64 + 293 0074 08FB07F7 mul r7, r8, r7 + 54:Src/si5351.c **** d += 2; + 294 .loc 1 54 12 view .LVU65 + 295 0078 4D4B ldr r3, .L29+32 + 296 007a 9F42 cmp r7, r3 + 297 007c 4ED8 bhi .L22 + 55:Src/si5351.c **** } + 298 .loc 1 55 13 is_stmt 1 view .LVU66 + 55:Src/si5351.c **** } + 299 .loc 1 55 15 is_stmt 0 view .LVU67 + 300 007e 0230 adds r0, r0, #2 + 301 .LVL23: + 55:Src/si5351.c **** } + 302 .loc 1 55 15 view .LVU68 + 303 .LBE2: + 34:Src/si5351.c **** int rx_div = 0; + 304 .loc 1 34 9 view .LVU69 + 305 0080 4FF0000A mov r10, #0 + 306 0084 12E0 b .L12 + 307 .LVL24: + 308 .L21: + 309 .LBB3: + 42:Src/si5351.c **** while ((r < 128) && (r * fout < 292969UL)) + 310 .loc 1 42 13 view .LVU70 + 311 0086 0025 movs r5, #0 + 312 .LBE3: + 36:Src/si5351.c **** + ARM GAS /tmp/ccx0f9ME.s page 8 + + + 313 .loc 1 36 9 view .LVU71 + 314 0088 0126 movs r6, #1 + 315 008a D7E7 b .L13 + 316 .LVL25: + 317 .L23: + 61:Src/si5351.c **** else if (d % 2) // Make d even to reduce phase noise/jitter, see d + 318 .loc 1 61 15 view .LVU72 + 319 008c 0620 movs r0, #6 + 320 .LVL26: + 321 .L18: + 64:Src/si5351.c **** + 65:Src/si5351.c **** if (d * fout < 600e6) // VCO frequency to low check and maintain an even + 322 .loc 1 65 9 is_stmt 1 view .LVU73 + 323 .loc 1 65 15 is_stmt 0 view .LVU74 + 324 008e 08FB00F2 mul r2, r8, r0 + 325 .loc 1 65 12 view .LVU75 + 326 0092 474B ldr r3, .L29+32 + 327 0094 9A42 cmp r2, r3 + 328 0096 44D8 bhi .L24 + 66:Src/si5351.c **** d += 2; + 329 .loc 1 66 13 is_stmt 1 view .LVU76 + 330 .loc 1 66 15 is_stmt 0 view .LVU77 + 331 0098 0230 adds r0, r0, #2 + 332 .LVL27: + 36:Src/si5351.c **** + 333 .loc 1 36 9 view .LVU78 + 334 009a 0126 movs r6, #1 + 35:Src/si5351.c **** int r = 1; + 335 .loc 1 35 9 view .LVU79 + 336 009c 0025 movs r5, #0 + 34:Src/si5351.c **** int rx_div = 0; + 337 .loc 1 34 9 view .LVU80 + 338 009e AA46 mov r10, r5 + 339 00a0 04E0 b .L12 + 340 .LVL28: + 341 .L20: + 36:Src/si5351.c **** + 342 .loc 1 36 9 view .LVU81 + 343 00a2 0126 movs r6, #1 + 35:Src/si5351.c **** int r = 1; + 344 .loc 1 35 9 view .LVU82 + 345 00a4 0025 movs r5, #0 + 39:Src/si5351.c **** else if (fout < 292969UL) // If fout < 500 kHz then use R divider, see datas + 346 .loc 1 39 20 view .LVU83 + 347 00a6 4FF00C0A mov r10, #12 + 32:Src/si5351.c **** uint32_t msx_p1 = 0; // If fout > 150 MHz then MSx_P1 = 0 and MSx_DIVBY + 348 .loc 1 32 14 view .LVU84 + 349 00aa 0420 movs r0, #4 + 350 .LVL29: + 351 .L12: + 67:Src/si5351.c **** } + 68:Src/si5351.c **** msx_p1 = 128 * d - 512; + 352 .loc 1 68 5 is_stmt 1 view .LVU85 + 353 .loc 1 68 22 is_stmt 0 view .LVU86 + 354 00ac 00F10077 add r7, r0, #33554432 + 355 00b0 043F subs r7, r7, #4 + 356 .loc 1 68 12 view .LVU87 + ARM GAS /tmp/ccx0f9ME.s page 9 + + + 357 00b2 FF01 lsls r7, r7, #7 + 358 .LVL30: + 69:Src/si5351.c **** + 70:Src/si5351.c **** uint32_t fvco = (uint32_t) d * r * fout; + 359 .loc 1 70 5 is_stmt 1 view .LVU88 + 360 .loc 1 70 34 is_stmt 0 view .LVU89 + 361 00b4 06FB00F0 mul r0, r6, r0 + 362 .LVL31: + 71:Src/si5351.c **** + 72:Src/si5351.c **** // Calc Feedback Multisynth Divider + 73:Src/si5351.c **** double fmd = (double)fvco / SI5351_CRYSTAL_FREQ; // The FMD value has been found + 363 .loc 1 73 5 is_stmt 1 view .LVU90 + 364 .loc 1 73 18 is_stmt 0 view .LVU91 + 365 00b8 08FB00F0 mul r0, r8, r0 + 366 .LVL32: + 367 .loc 1 73 18 view .LVU92 + 368 00bc FFF7FEFF bl __aeabi_ui2d + 369 .LVL33: + 370 .loc 1 73 12 view .LVU93 + 371 00c0 35A3 adr r3, .L29+8 + 372 00c2 D3E90023 ldrd r2, [r3] + 373 00c6 FFF7FEFF bl __aeabi_ddiv + 374 .LVL34: + 375 00ca 8046 mov r8, r0 + 376 .LVL35: + 377 .loc 1 73 12 view .LVU94 + 378 00cc 8946 mov r9, r1 + 379 .LVL36: + 74:Src/si5351.c **** int a = fmd; // a is the integer part of the FMD value + 380 .loc 1 74 5 is_stmt 1 view .LVU95 + 381 .loc 1 74 9 is_stmt 0 view .LVU96 + 382 00ce FFF7FEFF bl __aeabi_d2iz + 383 .LVL37: + 384 00d2 0646 mov r6, r0 + 385 .LVL38: + 75:Src/si5351.c **** + 76:Src/si5351.c **** double b_c = (double)fmd - a; // Get b/c + 386 .loc 1 76 5 is_stmt 1 view .LVU97 + 387 .loc 1 76 30 is_stmt 0 view .LVU98 + 388 00d4 FFF7FEFF bl __aeabi_i2d + 389 .LVL39: + 390 .loc 1 76 30 view .LVU99 + 391 00d8 0246 mov r2, r0 + 392 00da 0B46 mov r3, r1 + 393 .loc 1 76 12 view .LVU100 + 394 00dc 4046 mov r0, r8 + 395 00de 4946 mov r1, r9 + 396 00e0 FFF7FEFF bl __aeabi_dsub + 397 .LVL40: + 398 00e4 8046 mov r8, r0 + 399 .LVL41: + 400 .loc 1 76 12 view .LVU101 + 401 00e6 8946 mov r9, r1 + 402 .LVL42: + 77:Src/si5351.c **** uint32_t c = 1048575UL; + 403 .loc 1 77 5 is_stmt 1 view .LVU102 + 78:Src/si5351.c **** uint32_t b = (double)b_c * c; + ARM GAS /tmp/ccx0f9ME.s page 10 + + + 404 .loc 1 78 5 view .LVU103 + 405 .loc 1 78 30 is_stmt 0 view .LVU104 + 406 00e8 2DA3 adr r3, .L29+16 + 407 00ea D3E90023 ldrd r2, [r3] + 408 00ee FFF7FEFF bl __aeabi_dmul + 409 .LVL43: + 410 .loc 1 78 14 view .LVU105 + 411 00f2 FFF7FEFF bl __aeabi_d2uiz + 412 .LVL44: + 79:Src/si5351.c **** if (b > 0) + 413 .loc 1 79 5 is_stmt 1 view .LVU106 + 414 .loc 1 79 8 is_stmt 0 view .LVU107 + 415 00f6 8346 mov fp, r0 + 416 00f8 B8B1 cbz r0, .L25 + 80:Src/si5351.c **** { + 81:Src/si5351.c **** c = (double)b / b_c + 0.5; // Improves frequency precision in some cases + 417 .loc 1 81 9 is_stmt 1 view .LVU108 + 418 .loc 1 81 13 is_stmt 0 view .LVU109 + 419 00fa FFF7FEFF bl __aeabi_ui2d + 420 .LVL45: + 421 .loc 1 81 23 view .LVU110 + 422 00fe 4246 mov r2, r8 + 423 0100 4B46 mov r3, r9 + 424 0102 FFF7FEFF bl __aeabi_ddiv + 425 .LVL46: + 426 .loc 1 81 29 view .LVU111 + 427 0106 0022 movs r2, #0 + 428 0108 2A4B ldr r3, .L29+36 + 429 010a FFF7FEFF bl __aeabi_dadd + 430 .LVL47: + 431 .loc 1 81 11 view .LVU112 + 432 010e FFF7FEFF bl __aeabi_d2uiz + 433 .LVL48: + 82:Src/si5351.c **** if (c > 1048575UL) + 434 .loc 1 82 9 is_stmt 1 view .LVU113 + 435 .loc 1 82 12 is_stmt 0 view .LVU114 + 436 0112 B0F5801F cmp r0, #1048576 + 437 0116 09D3 bcc .L19 + 83:Src/si5351.c **** c = 1048575UL; + 438 .loc 1 83 15 view .LVU115 + 439 0118 2748 ldr r0, .L29+40 + 440 .LVL49: + 441 .loc 1 83 15 view .LVU116 + 442 011a 07E0 b .L19 + 443 .LVL50: + 444 .L22: + 34:Src/si5351.c **** int rx_div = 0; + 445 .loc 1 34 9 view .LVU117 + 446 011c 4FF0000A mov r10, #0 + 447 0120 C4E7 b .L12 + 448 .LVL51: + 449 .L24: + 36:Src/si5351.c **** + 450 .loc 1 36 9 view .LVU118 + 451 0122 0126 movs r6, #1 + 35:Src/si5351.c **** int r = 1; + 452 .loc 1 35 9 view .LVU119 + ARM GAS /tmp/ccx0f9ME.s page 11 + + + 453 0124 0025 movs r5, #0 + 34:Src/si5351.c **** int rx_div = 0; + 454 .loc 1 34 9 view .LVU120 + 455 0126 AA46 mov r10, r5 + 456 0128 C0E7 b .L12 + 457 .LVL52: + 458 .L25: + 77:Src/si5351.c **** uint32_t b = (double)b_c * c; + 459 .loc 1 77 14 view .LVU121 + 460 012a 2348 ldr r0, .L29+40 + 461 .LVL53: + 462 .L19: + 84:Src/si5351.c **** } + 85:Src/si5351.c **** + 86:Src/si5351.c **** uint32_t msnx_p1 = 128 * a + 128 * b / c - 512; // See datasheet 3.2 + 463 .loc 1 86 5 is_stmt 1 view .LVU122 + 464 .loc 1 86 38 is_stmt 0 view .LVU123 + 465 012c 4FEACB1B lsl fp, fp, #7 + 466 .LVL54: + 467 .loc 1 86 42 view .LVU124 + 468 0130 BBFBF0F3 udiv r3, fp, r0 + 469 .loc 1 86 32 view .LVU125 + 470 0134 03EBC616 add r6, r3, r6, lsl #7 + 471 .LVL55: + 472 .loc 1 86 14 view .LVU126 + 473 0138 A6F50076 sub r6, r6, #512 + 474 .LVL56: + 87:Src/si5351.c **** uint32_t msnx_p2 = 128 * b - c * (128 * b / c); + 475 .loc 1 87 5 is_stmt 1 view .LVU127 + 476 .loc 1 87 14 is_stmt 0 view .LVU128 + 477 013c 00FB13BB mls fp, r0, r3, fp + 478 .LVL57: + 88:Src/si5351.c **** uint32_t msnx_p3 = c; + 479 .loc 1 88 5 is_stmt 1 view .LVU129 + 89:Src/si5351.c **** + 90:Src/si5351.c **** // Feedback Multisynth Divider registers + 91:Src/si5351.c **** regs[0] = (msnx_p3 >> 8) & 0xFF; + 480 .loc 1 91 5 view .LVU130 + 481 .loc 1 91 24 is_stmt 0 view .LVU131 + 482 0140 030A lsrs r3, r0, #8 + 483 .loc 1 91 13 view .LVU132 + 484 0142 2370 strb r3, [r4] + 92:Src/si5351.c **** regs[1] = msnx_p3 & 0xFF; + 485 .loc 1 92 5 is_stmt 1 view .LVU133 + 486 .loc 1 92 13 is_stmt 0 view .LVU134 + 487 0144 6070 strb r0, [r4, #1] + 93:Src/si5351.c **** regs[2] = (msnx_p1 >> 16) & 0x03; + 488 .loc 1 93 5 is_stmt 1 view .LVU135 + 489 .loc 1 93 31 is_stmt 0 view .LVU136 + 490 0146 C6F30143 ubfx r3, r6, #16, #2 + 491 .loc 1 93 13 view .LVU137 + 492 014a A370 strb r3, [r4, #2] + 94:Src/si5351.c **** regs[3] = (msnx_p1 >> 8) & 0xFF; + 493 .loc 1 94 5 is_stmt 1 view .LVU138 + 494 .loc 1 94 24 is_stmt 0 view .LVU139 + 495 014c 330A lsrs r3, r6, #8 + 496 .loc 1 94 13 view .LVU140 + ARM GAS /tmp/ccx0f9ME.s page 12 + + + 497 014e E370 strb r3, [r4, #3] + 95:Src/si5351.c **** regs[4] = msnx_p1 & 0xFF; + 498 .loc 1 95 5 is_stmt 1 view .LVU141 + 499 .loc 1 95 13 is_stmt 0 view .LVU142 + 500 0150 2671 strb r6, [r4, #4] + 96:Src/si5351.c **** regs[5] = ((msnx_p3 >> 12) & 0xF0) + ((msnx_p2 >> 16) & 0x0F); + 501 .loc 1 96 5 is_stmt 1 view .LVU143 + 502 .loc 1 96 25 is_stmt 0 view .LVU144 + 503 0152 000B lsrs r0, r0, #12 + 504 .LVL58: + 505 .loc 1 96 32 view .LVU145 + 506 0154 00F0F000 and r0, r0, #240 + 507 .loc 1 96 59 view .LVU146 + 508 0158 CBF30343 ubfx r3, fp, #16, #4 + 509 .loc 1 96 40 view .LVU147 + 510 015c 1843 orrs r0, r0, r3 + 511 .loc 1 96 13 view .LVU148 + 512 015e 6071 strb r0, [r4, #5] + 97:Src/si5351.c **** regs[6] = (msnx_p2 >> 8) & 0xFF; + 513 .loc 1 97 5 is_stmt 1 view .LVU149 + 514 .loc 1 97 24 is_stmt 0 view .LVU150 + 515 0160 4FEA1B23 lsr r3, fp, #8 + 516 .loc 1 97 13 view .LVU151 + 517 0164 A371 strb r3, [r4, #6] + 98:Src/si5351.c **** regs[7] = msnx_p2 & 0xFF; + 518 .loc 1 98 5 is_stmt 1 view .LVU152 + 519 .loc 1 98 13 is_stmt 0 view .LVU153 + 520 0166 84F807B0 strb fp, [r4, #7] + 99:Src/si5351.c **** + 100:Src/si5351.c **** // Output Multisynth Divider registers + 101:Src/si5351.c **** regs[8] = 0; // (msx_p3 >> 8) & 0xFF + 521 .loc 1 101 5 is_stmt 1 view .LVU154 + 522 .loc 1 101 13 is_stmt 0 view .LVU155 + 523 016a 0023 movs r3, #0 + 524 016c 2372 strb r3, [r4, #8] + 102:Src/si5351.c **** regs[9] = 1; // msx_p3 & 0xFF + 525 .loc 1 102 5 is_stmt 1 view .LVU156 + 526 .loc 1 102 13 is_stmt 0 view .LVU157 + 527 016e 0122 movs r2, #1 + 528 0170 6272 strb r2, [r4, #9] + 103:Src/si5351.c **** regs[10] = rx_div + msx_divby4 + ((msx_p1 >> 16) & 0x03); + 529 .loc 1 103 5 is_stmt 1 view .LVU158 + 530 .loc 1 103 23 is_stmt 0 view .LVU159 + 531 0172 5544 add r5, r5, r10 + 532 .LVL59: + 533 .loc 1 103 23 view .LVU160 + 534 0174 EDB2 uxtb r5, r5 + 535 .loc 1 103 54 view .LVU161 + 536 0176 C7F30142 ubfx r2, r7, #16, #2 + 537 .loc 1 103 36 view .LVU162 + 538 017a 1544 add r5, r5, r2 + 539 .loc 1 103 14 view .LVU163 + 540 017c A572 strb r5, [r4, #10] + 104:Src/si5351.c **** regs[11] = (msx_p1 >> 8) & 0xFF; + 541 .loc 1 104 5 is_stmt 1 view .LVU164 + 542 .loc 1 104 24 is_stmt 0 view .LVU165 + 543 017e 3A0A lsrs r2, r7, #8 + ARM GAS /tmp/ccx0f9ME.s page 13 + + + 544 .loc 1 104 14 view .LVU166 + 545 0180 E272 strb r2, [r4, #11] + 105:Src/si5351.c **** regs[12] = msx_p1 & 0xFF; + 546 .loc 1 105 5 is_stmt 1 view .LVU167 + 547 .loc 1 105 14 is_stmt 0 view .LVU168 + 548 0182 2773 strb r7, [r4, #12] + 106:Src/si5351.c **** regs[13] = 0; // ((msx_p3 >> 12) & 0xF0) + (msx_p2 >> 16) & 0x0 + 549 .loc 1 106 5 is_stmt 1 view .LVU169 + 550 .loc 1 106 14 is_stmt 0 view .LVU170 + 551 0184 6373 strb r3, [r4, #13] + 107:Src/si5351.c **** regs[14] = 0; // (msx_p2 >> 8) & 0xFF + 552 .loc 1 107 5 is_stmt 1 view .LVU171 + 553 .loc 1 107 14 is_stmt 0 view .LVU172 + 554 0186 A373 strb r3, [r4, #14] + 108:Src/si5351.c **** regs[15] = 0; // msx_p2 & 0xFF + 555 .loc 1 108 5 is_stmt 1 view .LVU173 + 556 .loc 1 108 14 is_stmt 0 view .LVU174 + 557 0188 E373 strb r3, [r4, #15] + 109:Src/si5351.c **** + 110:Src/si5351.c **** // HAL_I2C_Master_Transmit(&hi2c2, Si5351_ConfigStruct->HW_I2C_Address, reg_data, sizeof(reg_data), + 111:Src/si5351.c **** return; + 558 .loc 1 111 5 is_stmt 1 view .LVU175 + 112:Src/si5351.c **** } + 559 .loc 1 112 1 is_stmt 0 view .LVU176 + 560 018a BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + 561 .LVL60: + 562 .L30: + 563 .loc 1 112 1 view .LVU177 + 564 018e 00BF .align 3 + 565 .L29: + 566 0190 00000000 .word 0 + 567 0194 A3E1C141 .word 1103225251 + 568 0198 00000000 .word 0 + 569 019c 60E37641 .word 1098310496 + 570 01a0 00000000 .word 0 + 571 01a4 FEFF2F41 .word 1093664766 + 572 01a8 80D1F008 .word 150000000 + 573 01ac 68780400 .word 292968 + 574 01b0 FF45C323 .word 599999999 + 575 01b4 0000E03F .word 1071644672 + 576 01b8 FFFF0F00 .word 1048575 + 577 .cfi_endproc + 578 .LFE331: + 580 .section .text.si5351_initialize,"ax",%progbits + 581 .align 1 + 582 .global si5351_initialize + 583 .syntax unified + 584 .thumb + 585 .thumb_func + 587 si5351_initialize: + 588 .LFB332: + 113:Src/si5351.c **** + 114:Src/si5351.c **** void si5351_initialize(){ + 589 .loc 1 114 25 is_stmt 1 view -0 + 590 .cfi_startproc + 591 @ args = 0, pretend = 0, frame = 0 + 592 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/ccx0f9ME.s page 14 + + + 593 0000 10B5 push {r4, lr} + 594 .LCFI7: + 595 .cfi_def_cfa_offset 8 + 596 .cfi_offset 4, -8 + 597 .cfi_offset 14, -4 + 598 0002 0024 movs r4, #0 + 115:Src/si5351.c **** uint8_t dummy; + 599 .loc 1 115 2 view .LVU179 + 116:Src/si5351.c **** // Initialize Si5351A + 117:Src/si5351.c **** while (si5351_read8(0,dummy) & 0x80); // Wait for Si5351A to initialize + 600 .loc 1 117 2 view .LVU180 + 601 .L32: + 602 .loc 1 117 9 discriminator 1 view .LVU181 + 603 0004 2146 mov r1, r4 + 604 0006 0020 movs r0, #0 + 605 0008 FFF7FEFF bl si5351_read8 + 606 .LVL61: + 607 000c 10F0800F tst r0, #128 + 608 0010 F8D1 bne .L32 + 118:Src/si5351.c **** oeb = 0xFF; + 609 .loc 1 118 2 view .LVU182 + 610 .loc 1 118 6 is_stmt 0 view .LVU183 + 611 0012 FF21 movs r1, #255 + 612 0014 2C4B ldr r3, .L34 + 613 0016 1970 strb r1, [r3] + 119:Src/si5351.c **** + 120:Src/si5351.c **** si5351_write8(SI5351_OUT_ENABLE, oeb); // Output Enable Control, disable all + 614 .loc 1 120 5 is_stmt 1 view .LVU184 + 615 0018 0320 movs r0, #3 + 616 001a FFF7FEFF bl si5351_write8 + 617 .LVL62: + 121:Src/si5351.c **** + 122:Src/si5351.c **** si5351_write8(SI5351_INPUT_SOURCE, 0x00); // PLL Input Source, select the XTAL input + 618 .loc 1 122 5 view .LVU185 + 619 001e 0021 movs r1, #0 + 620 0020 0F20 movs r0, #15 + 621 0022 FFF7FEFF bl si5351_write8 + 622 .LVL63: + 123:Src/si5351.c **** si5351_write8(SI5351_OUT_DIS_STATE, 0x00); // stato bassa Z giu se disabilitati + 623 .loc 1 123 5 view .LVU186 + 624 0026 0021 movs r1, #0 + 625 0028 1820 movs r0, #24 + 626 002a FFF7FEFF bl si5351_write8 + 627 .LVL64: + 124:Src/si5351.c **** + 125:Src/si5351.c **** // Output MultisynthN, e = 0, f = 1, MS0_P2 and MSO_P3 + 126:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH0, 0x00); + 628 .loc 1 126 5 view .LVU187 + 629 002e 0021 movs r1, #0 + 630 0030 2A20 movs r0, #42 + 631 0032 FFF7FEFF bl si5351_write8 + 632 .LVL65: + 127:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH0+1, 0x01); + 633 .loc 1 127 5 view .LVU188 + 634 0036 0121 movs r1, #1 + 635 0038 2B20 movs r0, #43 + 636 003a FFF7FEFF bl si5351_write8 + ARM GAS /tmp/ccx0f9ME.s page 15 + + + 637 .LVL66: + 128:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH0+5, 0x00); + 638 .loc 1 128 5 view .LVU189 + 639 003e 0021 movs r1, #0 + 640 0040 2F20 movs r0, #47 + 641 0042 FFF7FEFF bl si5351_write8 + 642 .LVL67: + 129:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH0+6, 0x00); + 643 .loc 1 129 5 view .LVU190 + 644 0046 0021 movs r1, #0 + 645 0048 3020 movs r0, #48 + 646 004a FFF7FEFF bl si5351_write8 + 647 .LVL68: + 130:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH0+7, 0x00); + 648 .loc 1 130 5 view .LVU191 + 649 004e 0021 movs r1, #0 + 650 0050 3120 movs r0, #49 + 651 0052 FFF7FEFF bl si5351_write8 + 652 .LVL69: + 131:Src/si5351.c **** + 132:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH1, 0x00); + 653 .loc 1 132 5 view .LVU192 + 654 0056 0021 movs r1, #0 + 655 0058 3220 movs r0, #50 + 656 005a FFF7FEFF bl si5351_write8 + 657 .LVL70: + 133:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH1+1, 0x01); + 658 .loc 1 133 5 view .LVU193 + 659 005e 0121 movs r1, #1 + 660 0060 3320 movs r0, #51 + 661 0062 FFF7FEFF bl si5351_write8 + 662 .LVL71: + 134:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH1+5, 0x00); + 663 .loc 1 134 5 view .LVU194 + 664 0066 0021 movs r1, #0 + 665 0068 3720 movs r0, #55 + 666 006a FFF7FEFF bl si5351_write8 + 667 .LVL72: + 135:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH1+6, 0x00); + 668 .loc 1 135 5 view .LVU195 + 669 006e 0021 movs r1, #0 + 670 0070 3820 movs r0, #56 + 671 0072 FFF7FEFF bl si5351_write8 + 672 .LVL73: + 136:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH1+7, 0x00); + 673 .loc 1 136 5 view .LVU196 + 674 0076 0021 movs r1, #0 + 675 0078 3920 movs r0, #57 + 676 007a FFF7FEFF bl si5351_write8 + 677 .LVL74: + 137:Src/si5351.c **** + 138:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH2, 0x00); + 678 .loc 1 138 5 view .LVU197 + 679 007e 0021 movs r1, #0 + 680 0080 3A20 movs r0, #58 + 681 0082 FFF7FEFF bl si5351_write8 + 682 .LVL75: + ARM GAS /tmp/ccx0f9ME.s page 16 + + + 139:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH2+1, 0x01); + 683 .loc 1 139 5 view .LVU198 + 684 0086 0121 movs r1, #1 + 685 0088 3B20 movs r0, #59 + 686 008a FFF7FEFF bl si5351_write8 + 687 .LVL76: + 140:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH2+5, 0x00); + 688 .loc 1 140 5 view .LVU199 + 689 008e 0021 movs r1, #0 + 690 0090 3F20 movs r0, #63 + 691 0092 FFF7FEFF bl si5351_write8 + 692 .LVL77: + 141:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH2+6, 0x00); + 693 .loc 1 141 5 view .LVU200 + 694 0096 0021 movs r1, #0 + 695 0098 4020 movs r0, #64 + 696 009a FFF7FEFF bl si5351_write8 + 697 .LVL78: + 142:Src/si5351.c **** si5351_write8(SI5351_MULTISYNTH2+7, 0x00); + 698 .loc 1 142 5 view .LVU201 + 699 009e 0021 movs r1, #0 + 700 00a0 4120 movs r0, #65 + 701 00a2 FFF7FEFF bl si5351_write8 + 702 .LVL79: + 143:Src/si5351.c **** + 144:Src/si5351.c **** si5351_write8(SI5351_CLK0_CONTROL, 0x4F); // Power up CLK0, PLLA, MS0 operates in integer mod + 703 .loc 1 144 5 view .LVU202 + 704 00a6 4F21 movs r1, #79 + 705 00a8 1020 movs r0, #16 + 706 00aa FFF7FEFF bl si5351_write8 + 707 .LVL80: + 145:Src/si5351.c **** si5351_write8(SI5351_CLK1_CONTROL, 0x5F); // Power up CLK1, PLLA, MS0 operates in integer mod + 708 .loc 1 145 5 view .LVU203 + 709 00ae 5F21 movs r1, #95 + 710 00b0 1120 movs r0, #17 + 711 00b2 FFF7FEFF bl si5351_write8 + 712 .LVL81: + 146:Src/si5351.c **** si5351_write8(SI5351_CLK2_CONTROL, 0x6F); // Power up CLK2, PLLB, int, non inv, multisynth 2, + 713 .loc 1 146 5 view .LVU204 + 714 00b6 6F21 movs r1, #111 + 715 00b8 1220 movs r0, #18 + 716 00ba FFF7FEFF bl si5351_write8 + 717 .LVL82: + 147:Src/si5351.c **** + 148:Src/si5351.c **** // Reference load configuration + 149:Src/si5351.c **** si5351_write8(SI5351_CRYSTAL_LOAD, 0x12); // Set reference load C: 6 pF = 0x12, 8 pF = + 718 .loc 1 149 5 view .LVU205 + 719 00be 1221 movs r1, #18 + 720 00c0 B720 movs r0, #183 + 721 00c2 FFF7FEFF bl si5351_write8 + 722 .LVL83: + 150:Src/si5351.c **** } + 723 .loc 1 150 1 is_stmt 0 view .LVU206 + 724 00c6 10BD pop {r4, pc} + 725 .L35: + 726 .align 2 + 727 .L34: + ARM GAS /tmp/ccx0f9ME.s page 17 + + + 728 00c8 00000000 .word oeb + 729 .cfi_endproc + 730 .LFE332: + 732 .section .text.si5351_set_frequency,"ax",%progbits + 733 .align 1 + 734 .global si5351_set_frequency + 735 .syntax unified + 736 .thumb + 737 .thumb_func + 739 si5351_set_frequency: + 740 .LVL84: + 741 .LFB333: + 151:Src/si5351.c **** + 152:Src/si5351.c **** void si5351_set_frequency(uint32_t freq, uint8_t pll){ + 742 .loc 1 152 54 is_stmt 1 view -0 + 743 .cfi_startproc + 744 @ args = 0, pretend = 0, frame = 16 + 745 @ frame_needed = 0, uses_anonymous_args = 0 + 746 .loc 1 152 54 is_stmt 0 view .LVU208 + 747 0000 10B5 push {r4, lr} + 748 .LCFI8: + 749 .cfi_def_cfa_offset 8 + 750 .cfi_offset 4, -8 + 751 .cfi_offset 14, -4 + 752 0002 84B0 sub sp, sp, #16 + 753 .LCFI9: + 754 .cfi_def_cfa_offset 24 + 755 0004 0C46 mov r4, r1 + 153:Src/si5351.c **** uint8_t regs[16]; + 756 .loc 1 153 2 is_stmt 1 view .LVU209 + 154:Src/si5351.c **** CalcRegisters(freq, regs); + 757 .loc 1 154 2 view .LVU210 + 758 0006 6946 mov r1, sp + 759 .LVL85: + 760 .loc 1 154 2 is_stmt 0 view .LVU211 + 761 0008 FFF7FEFF bl CalcRegisters + 762 .LVL86: + 155:Src/si5351.c **** + 156:Src/si5351.c **** // Load Output Multisynth0 with d (e and f already set during init. and never changed) + 157:Src/si5351.c **** if(pll == 0){ + 763 .loc 1 157 2 is_stmt 1 view .LVU212 + 764 .loc 1 157 4 is_stmt 0 view .LVU213 + 765 000c 94B1 cbz r4, .L47 + 158:Src/si5351.c **** for (int i = 0; i < 8; i++) + 159:Src/si5351.c **** si5351_write8(SI5351_PLLA + i, regs[i]); + 160:Src/si5351.c **** for (int i = 10; i < 13; i++) + 161:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 162:Src/si5351.c **** } else if(pll == 1){ + 766 .loc 1 162 9 is_stmt 1 view .LVU214 + 767 .loc 1 162 11 is_stmt 0 view .LVU215 + 768 000e 012C cmp r4, #1 + 769 0010 1FD1 bne .L42 + 770 .LBB4: + 163:Src/si5351.c **** for (int i = 0; i < 8; i++) + 771 .loc 1 163 12 view .LVU216 + 772 0012 0024 movs r4, #0 + 773 0014 2EE0 b .L43 + ARM GAS /tmp/ccx0f9ME.s page 18 + + + 774 .LVL87: + 775 .L39: + 776 .loc 1 163 12 view .LVU217 + 777 .LBE4: + 778 .LBB5: + 159:Src/si5351.c **** for (int i = 10; i < 13; i++) + 779 .loc 1 159 4 is_stmt 1 discriminator 3 view .LVU218 + 780 0016 04F11003 add r3, r4, #16 + 781 001a 6B44 add r3, sp, r3 + 782 001c 04F11A00 add r0, r4, #26 + 783 0020 13F8101C ldrb r1, [r3, #-16] @ zero_extendqisi2 + 784 0024 C0B2 uxtb r0, r0 + 785 0026 FFF7FEFF bl si5351_write8 + 786 .LVL88: + 158:Src/si5351.c **** for (int i = 0; i < 8; i++) + 787 .loc 1 158 27 discriminator 3 view .LVU219 + 788 002a 0134 adds r4, r4, #1 + 789 .LVL89: + 790 .L37: + 158:Src/si5351.c **** for (int i = 0; i < 8; i++) + 791 .loc 1 158 21 discriminator 1 view .LVU220 + 792 002c 072C cmp r4, #7 + 793 002e F2DD ble .L39 + 794 .LBE5: + 795 .LBB6: + 160:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 796 .loc 1 160 12 is_stmt 0 view .LVU221 + 797 0030 0A24 movs r4, #10 + 798 .LVL90: + 160:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 799 .loc 1 160 12 view .LVU222 + 800 0032 0CE0 b .L40 + 801 .LVL91: + 802 .L47: + 160:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 803 .loc 1 160 12 view .LVU223 + 804 .LBE6: + 805 .LBB7: + 158:Src/si5351.c **** si5351_write8(SI5351_PLLA + i, regs[i]); + 806 .loc 1 158 12 view .LVU224 + 807 0034 0024 movs r4, #0 + 808 0036 F9E7 b .L37 + 809 .LVL92: + 810 .L41: + 158:Src/si5351.c **** si5351_write8(SI5351_PLLA + i, regs[i]); + 811 .loc 1 158 12 view .LVU225 + 812 .LBE7: + 813 .LBB8: + 161:Src/si5351.c **** } else if(pll == 1){ + 814 .loc 1 161 11 is_stmt 1 discriminator 3 view .LVU226 + 815 0038 04F11003 add r3, r4, #16 + 816 003c 6B44 add r3, sp, r3 + 817 003e 04F12200 add r0, r4, #34 + 818 0042 13F8101C ldrb r1, [r3, #-16] @ zero_extendqisi2 + 819 0046 C0B2 uxtb r0, r0 + 820 0048 FFF7FEFF bl si5351_write8 + 821 .LVL93: + ARM GAS /tmp/ccx0f9ME.s page 19 + + + 160:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 822 .loc 1 160 29 discriminator 3 view .LVU227 + 823 004c 0134 adds r4, r4, #1 + 824 .LVL94: + 825 .L40: + 160:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 826 .loc 1 160 22 discriminator 1 view .LVU228 + 827 004e 0C2C cmp r4, #12 + 828 0050 F2DD ble .L41 + 829 .LVL95: + 830 .L42: + 160:Src/si5351.c **** si5351_write8(34 + i, regs[i]); + 831 .loc 1 160 22 is_stmt 0 discriminator 1 view .LVU229 + 832 .LBE8: + 164:Src/si5351.c **** si5351_write8(SI5351_PLLB + i, regs[i]); + 165:Src/si5351.c **** for (int i = 10; i < 13; i++) + 166:Src/si5351.c **** si5351_write8(42 + i, regs[i]); + 167:Src/si5351.c **** } + 168:Src/si5351.c **** + 169:Src/si5351.c **** // Reset PLLA + 170:Src/si5351.c **** // delayMicroseconds(500); // Allow registers to settle before resetting the PLL + 171:Src/si5351.c **** si5351_write8(SI5351_RESET, 0x20); + 833 .loc 1 171 5 is_stmt 1 view .LVU230 + 834 0052 2021 movs r1, #32 + 835 0054 B120 movs r0, #177 + 836 0056 FFF7FEFF bl si5351_write8 + 837 .LVL96: + 172:Src/si5351.c **** } + 838 .loc 1 172 1 is_stmt 0 view .LVU231 + 839 005a 04B0 add sp, sp, #16 + 840 .LCFI10: + 841 .cfi_remember_state + 842 .cfi_def_cfa_offset 8 + 843 @ sp needed + 844 005c 10BD pop {r4, pc} + 845 .LVL97: + 846 .L44: + 847 .LCFI11: + 848 .cfi_restore_state + 849 .LBB9: + 164:Src/si5351.c **** si5351_write8(SI5351_PLLB + i, regs[i]); + 850 .loc 1 164 4 is_stmt 1 discriminator 3 view .LVU232 + 851 005e 04F11003 add r3, r4, #16 + 852 0062 6B44 add r3, sp, r3 + 853 0064 04F12200 add r0, r4, #34 + 854 0068 13F8101C ldrb r1, [r3, #-16] @ zero_extendqisi2 + 855 006c C0B2 uxtb r0, r0 + 856 006e FFF7FEFF bl si5351_write8 + 857 .LVL98: + 163:Src/si5351.c **** si5351_write8(SI5351_PLLB + i, regs[i]); + 858 .loc 1 163 27 discriminator 3 view .LVU233 + 859 0072 0134 adds r4, r4, #1 + 860 .LVL99: + 861 .L43: + 163:Src/si5351.c **** si5351_write8(SI5351_PLLB + i, regs[i]); + 862 .loc 1 163 21 discriminator 1 view .LVU234 + 863 0074 072C cmp r4, #7 + ARM GAS /tmp/ccx0f9ME.s page 20 + + + 864 0076 F2DD ble .L44 + 865 .LBE9: + 866 .LBB10: + 165:Src/si5351.c **** si5351_write8(42 + i, regs[i]); + 867 .loc 1 165 12 is_stmt 0 view .LVU235 + 868 0078 0A24 movs r4, #10 + 869 .LVL100: + 165:Src/si5351.c **** si5351_write8(42 + i, regs[i]); + 870 .loc 1 165 12 view .LVU236 + 871 007a 0AE0 b .L45 + 872 .LVL101: + 873 .L46: + 166:Src/si5351.c **** } + 874 .loc 1 166 11 is_stmt 1 discriminator 3 view .LVU237 + 875 007c 04F11003 add r3, r4, #16 + 876 0080 6B44 add r3, sp, r3 + 877 0082 04F12A00 add r0, r4, #42 + 878 0086 13F8101C ldrb r1, [r3, #-16] @ zero_extendqisi2 + 879 008a C0B2 uxtb r0, r0 + 880 008c FFF7FEFF bl si5351_write8 + 881 .LVL102: + 165:Src/si5351.c **** si5351_write8(42 + i, regs[i]); + 882 .loc 1 165 29 discriminator 3 view .LVU238 + 883 0090 0134 adds r4, r4, #1 + 884 .LVL103: + 885 .L45: + 165:Src/si5351.c **** si5351_write8(42 + i, regs[i]); + 886 .loc 1 165 22 discriminator 1 view .LVU239 + 887 0092 0C2C cmp r4, #12 + 888 0094 F2DD ble .L46 + 889 0096 DCE7 b .L42 + 890 .LBE10: + 891 .cfi_endproc + 892 .LFE333: + 894 .section .text.si5351_off_clk,"ax",%progbits + 895 .align 1 + 896 .global si5351_off_clk + 897 .syntax unified + 898 .thumb + 899 .thumb_func + 901 si5351_off_clk: + 902 .LVL104: + 903 .LFB334: + 173:Src/si5351.c **** + 174:Src/si5351.c **** void si5351_off_clk(uint8_t clk){ + 904 .loc 1 174 33 view -0 + 905 .cfi_startproc + 906 @ args = 0, pretend = 0, frame = 0 + 907 @ frame_needed = 0, uses_anonymous_args = 0 + 908 .loc 1 174 33 is_stmt 0 view .LVU241 + 909 0000 08B5 push {r3, lr} + 910 .LCFI12: + 911 .cfi_def_cfa_offset 8 + 912 .cfi_offset 3, -8 + 913 .cfi_offset 14, -4 + 175:Src/si5351.c **** oeb |= 1U << clk; + 914 .loc 1 175 2 is_stmt 1 view .LVU242 + ARM GAS /tmp/ccx0f9ME.s page 21 + + + 915 .loc 1 175 12 is_stmt 0 view .LVU243 + 916 0002 0123 movs r3, #1 + 917 0004 8340 lsls r3, r3, r0 + 918 .loc 1 175 6 view .LVU244 + 919 0006 044A ldr r2, .L53 + 920 0008 1178 ldrb r1, [r2] @ zero_extendqisi2 + 921 000a 1943 orrs r1, r1, r3 + 922 000c C9B2 uxtb r1, r1 + 923 000e 1170 strb r1, [r2] + 176:Src/si5351.c **** si5351_write8(SI5351_OUT_ENABLE, oeb); + 924 .loc 1 176 2 is_stmt 1 view .LVU245 + 925 0010 0320 movs r0, #3 + 926 .LVL105: + 927 .loc 1 176 2 is_stmt 0 view .LVU246 + 928 0012 FFF7FEFF bl si5351_write8 + 929 .LVL106: + 177:Src/si5351.c **** } + 930 .loc 1 177 1 view .LVU247 + 931 0016 08BD pop {r3, pc} + 932 .L54: + 933 .align 2 + 934 .L53: + 935 0018 00000000 .word oeb + 936 .cfi_endproc + 937 .LFE334: + 939 .section .text.si5351_on_clk,"ax",%progbits + 940 .align 1 + 941 .global si5351_on_clk + 942 .syntax unified + 943 .thumb + 944 .thumb_func + 946 si5351_on_clk: + 947 .LVL107: + 948 .LFB335: + 178:Src/si5351.c **** + 179:Src/si5351.c **** void si5351_on_clk(uint8_t clk){ + 949 .loc 1 179 32 is_stmt 1 view -0 + 950 .cfi_startproc + 951 @ args = 0, pretend = 0, frame = 0 + 952 @ frame_needed = 0, uses_anonymous_args = 0 + 953 .loc 1 179 32 is_stmt 0 view .LVU249 + 954 0000 08B5 push {r3, lr} + 955 .LCFI13: + 956 .cfi_def_cfa_offset 8 + 957 .cfi_offset 3, -8 + 958 .cfi_offset 14, -4 + 180:Src/si5351.c **** oeb &= ~(1U << clk); + 959 .loc 1 180 2 is_stmt 1 view .LVU250 + 960 .loc 1 180 14 is_stmt 0 view .LVU251 + 961 0002 0123 movs r3, #1 + 962 0004 8340 lsls r3, r3, r0 + 963 .loc 1 180 6 view .LVU252 + 964 0006 044A ldr r2, .L57 + 965 0008 1178 ldrb r1, [r2] @ zero_extendqisi2 + 966 000a 21EA0301 bic r1, r1, r3 + 967 000e 1170 strb r1, [r2] + 181:Src/si5351.c **** si5351_write8(SI5351_OUT_ENABLE, oeb); + ARM GAS /tmp/ccx0f9ME.s page 22 + + + 968 .loc 1 181 2 is_stmt 1 view .LVU253 + 969 0010 0320 movs r0, #3 + 970 .LVL108: + 971 .loc 1 181 2 is_stmt 0 view .LVU254 + 972 0012 FFF7FEFF bl si5351_write8 + 973 .LVL109: + 182:Src/si5351.c **** } + 974 .loc 1 182 1 view .LVU255 + 975 0016 08BD pop {r3, pc} + 976 .L58: + 977 .align 2 + 978 .L57: + 979 0018 00000000 .word oeb + 980 .cfi_endproc + 981 .LFE335: + 983 .global oeb + 984 .section .bss.oeb,"aw",%nobits + 987 oeb: + 988 0000 00 .space 1 + 989 .text + 990 .Letext0: + 991 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 992 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 993 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 994 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 995 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" + 996 .file 7 "Inc/si5351.h" + ARM GAS /tmp/ccx0f9ME.s page 23 + + +DEFINED SYMBOLS + *ABS*:00000000 si5351.c + /tmp/ccx0f9ME.s:21 .text.si5351_write8:00000000 $t + /tmp/ccx0f9ME.s:27 .text.si5351_write8:00000000 si5351_write8 + /tmp/ccx0f9ME.s:81 .text.si5351_write8:00000038 $d + /tmp/ccx0f9ME.s:86 .text.si5351_read8:00000000 $t + /tmp/ccx0f9ME.s:92 .text.si5351_read8:00000000 si5351_read8 + /tmp/ccx0f9ME.s:149 .text.si5351_read8:00000034 $d + /tmp/ccx0f9ME.s:162 .text.CalcRegisters:00000000 $t + /tmp/ccx0f9ME.s:168 .text.CalcRegisters:00000000 CalcRegisters + /tmp/ccx0f9ME.s:566 .text.CalcRegisters:00000190 $d + /tmp/ccx0f9ME.s:581 .text.si5351_initialize:00000000 $t + /tmp/ccx0f9ME.s:587 .text.si5351_initialize:00000000 si5351_initialize + /tmp/ccx0f9ME.s:728 .text.si5351_initialize:000000c8 $d + /tmp/ccx0f9ME.s:987 .bss.oeb:00000000 oeb + /tmp/ccx0f9ME.s:733 .text.si5351_set_frequency:00000000 $t + /tmp/ccx0f9ME.s:739 .text.si5351_set_frequency:00000000 si5351_set_frequency + /tmp/ccx0f9ME.s:895 .text.si5351_off_clk:00000000 $t + /tmp/ccx0f9ME.s:901 .text.si5351_off_clk:00000000 si5351_off_clk + /tmp/ccx0f9ME.s:935 .text.si5351_off_clk:00000018 $d + /tmp/ccx0f9ME.s:940 .text.si5351_on_clk:00000000 $t + /tmp/ccx0f9ME.s:946 .text.si5351_on_clk:00000000 si5351_on_clk + /tmp/ccx0f9ME.s:979 .text.si5351_on_clk:00000018 $d + /tmp/ccx0f9ME.s:988 .bss.oeb:00000000 $d + +UNDEFINED SYMBOLS +HAL_I2C_IsDeviceReady +HAL_I2C_Mem_Write +hi2c1 +HAL_I2C_Mem_Read +__aeabi_ui2d +__aeabi_ddiv +__aeabi_d2uiz +__aeabi_d2iz +__aeabi_i2d +__aeabi_dsub +__aeabi_dmul +__aeabi_dadd diff --git a/squeow_sw/build/si5351.o b/squeow_sw/build/si5351.o new file mode 100644 index 0000000000000000000000000000000000000000..0c14612ffc24e82e235f5ae49a96cf8ade7833f2 GIT binary patch literal 19896 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 t(?e~7AD + 2:Src/squeow.c **** #include + 3:Src/squeow.c **** #include + 4:Src/squeow.c **** #include + 5:Src/squeow.c **** + 6:Src/squeow.c **** #include "squeow.h" + 7:Src/squeow.c **** + 8:Src/squeow.c **** /* SQUEOW + 9:Src/squeow.c **** + 10:Src/squeow.c **** TIM3 eventi 98304000/(49152×200) 10hz + 11:Src/squeow.c **** TIM2 PWM 98304000/2048 48khz + 12:Src/squeow.c **** + 13:Src/squeow.c **** risoluzione PWM 4*2048 -> 8192 (13bit) + 14:Src/squeow.c **** + 15:Src/squeow.c **** */ + 16:Src/squeow.c **** + 17:Src/squeow.c **** uint8_t stato_audio; + 18:Src/squeow.c **** uint16_t pwm_value, sample_value; + 19:Src/squeow.c **** char display_buffer[16]; + 20:Src/squeow.c **** uint8_t rails_number; + 21:Src/squeow.c **** uint16_t samples_ringbuf[SAMPLES_BUFFER_SIZE]; ///< buffer ad anello dei dati RX + 22:Src/squeow.c **** uint16_t samples_ringbuf_input_index, samples_ringbuf_output_index; + 23:Src/squeow.c **** + 24:Src/squeow.c **** + 25:Src/squeow.c **** void audio_play(uint16_t pbuf, uint8_t size){ + 30 .loc 1 25 45 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/ccGt6Pje.s page 2 + + + 34 @ link register save eliminated. + 26:Src/squeow.c **** /* + 27:Src/squeow.c **** char display_buffer[16]; + 28:Src/squeow.c **** uint16_t static indice; + 29:Src/squeow.c **** indice++; + 30:Src/squeow.c **** snprintf(display_buffer, 10, "n %d", indice); + 31:Src/squeow.c **** ssd1306_SetCursor(0, 1); + 32:Src/squeow.c **** ssd1306_WriteString(display_buffer, Font_11x18, White); + 33:Src/squeow.c **** // ssd1306_UpdateScreen(&hi2c1); + 34:Src/squeow.c **** */ + 35:Src/squeow.c **** for (uint8_t i=0; i= 6.28) angle = 0; + 135 .loc 1 50 10 is_stmt 1 view .LVU24 + 136 .loc 1 50 12 is_stmt 0 view .LVU25 + 137 001a 11A3 adr r3, .L10+8 + 138 001c D3E90023 ldrd r2, [r3] + 139 0020 FFF7FEFF bl __aeabi_dcmpge + 140 .LVL11: + 141 0024 18B1 cbz r0, .L6 + 142 .loc 1 50 28 is_stmt 1 discriminator 1 view .LVU26 + 143 .loc 1 50 34 is_stmt 0 discriminator 1 view .LVU27 + 144 0026 0020 movs r0, #0 + 145 0028 0021 movs r1, #0 + 146 002a C4E90001 strd r0, [r4] + 147 .L6: + 51:Src/squeow.c **** return (uint16_t)((sin(angle)*0x7fff)+0x7fff); + 148 .loc 1 51 9 is_stmt 1 view .LVU28 + 149 .loc 1 51 28 is_stmt 0 view .LVU29 + 150 002e 104B ldr r3, .L10+24 + 151 0030 93ED000B vldr.64 d0, [r3] + 152 0034 FFF7FEFF bl sin + 153 .LVL12: + 154 0038 51EC100B vmov r0, r1, d0 + 155 .loc 1 51 38 view .LVU30 + 156 003c 0AA3 adr r3, .L10+16 + 157 003e D3E90023 ldrd r2, [r3] + 158 0042 FFF7FEFF bl __aeabi_dmul + 159 .LVL13: + 160 .loc 1 51 46 view .LVU31 + 161 0046 08A3 adr r3, .L10+16 + 162 0048 D3E90023 ldrd r2, [r3] + 163 004c FFF7FEFF bl __aeabi_dadd + 164 .LVL14: + 165 .loc 1 51 16 view .LVU32 + 166 0050 FFF7FEFF bl __aeabi_d2uiz + 167 .LVL15: + 52:Src/squeow.c **** } + 168 .loc 1 52 1 view .LVU33 + 169 0054 80B2 uxth r0, r0 + 170 0056 10BD pop {r4, pc} + 171 .L11: + 172 .align 3 + 173 .L10: + 174 0058 7F6ABC74 .word 1958505087 + 175 005c 9318D43F .word 1070864531 + 176 0060 1F85EB51 .word 1374389535 + 177 0064 B81E1940 .word 1075388088 + 178 0068 00000000 .word 0 + ARM GAS /tmp/ccGt6Pje.s page 5 + + + 179 006c C0FFDF40 .word 1088421824 + 180 0070 00000000 .word angle.1 + 181 .cfi_endproc + 182 .LFE334: + 184 .section .text.u12_sine,"ax",%progbits + 185 .align 1 + 186 .global u12_sine + 187 .syntax unified + 188 .thumb + 189 .thumb_func + 191 u12_sine: + 192 .LFB335: + 53:Src/squeow.c **** + 54:Src/squeow.c **** uint16_t u12_sine(void){ + 193 .loc 1 54 24 is_stmt 1 view -0 + 194 .cfi_startproc + 195 @ args = 0, pretend = 0, frame = 0 + 196 @ frame_needed = 0, uses_anonymous_args = 0 + 197 0000 10B5 push {r4, lr} + 198 .LCFI1: + 199 .cfi_def_cfa_offset 8 + 200 .cfi_offset 4, -8 + 201 .cfi_offset 14, -4 + 55:Src/squeow.c **** static double angle; + 202 .loc 1 55 9 view .LVU35 + 56:Src/squeow.c **** angle += SINE_INCREMENT; + 203 .loc 1 56 9 view .LVU36 + 204 .loc 1 56 15 is_stmt 0 view .LVU37 + 205 0002 1B4C ldr r4, .L17+24 + 206 0004 14A3 adr r3, .L17 + 207 0006 D3E90023 ldrd r2, [r3] + 208 000a D4E90001 ldrd r0, [r4] + 209 000e FFF7FEFF bl __aeabi_dadd + 210 .LVL16: + 211 0012 0246 mov r2, r0 + 212 0014 0B46 mov r3, r1 + 213 0016 C4E90023 strd r2, [r4] + 57:Src/squeow.c **** if(angle >= 6.28) angle = 0; + 214 .loc 1 57 10 is_stmt 1 view .LVU38 + 215 .loc 1 57 12 is_stmt 0 view .LVU39 + 216 001a 11A3 adr r3, .L17+8 + 217 001c D3E90023 ldrd r2, [r3] + 218 0020 FFF7FEFF bl __aeabi_dcmpge + 219 .LVL17: + 220 0024 18B1 cbz r0, .L13 + 221 .loc 1 57 28 is_stmt 1 discriminator 1 view .LVU40 + 222 .loc 1 57 34 is_stmt 0 discriminator 1 view .LVU41 + 223 0026 0020 movs r0, #0 + 224 0028 0021 movs r1, #0 + 225 002a C4E90001 strd r0, [r4] + 226 .L13: + 58:Src/squeow.c **** return (uint16_t)((sin(angle)*0x7ff)+0x7ff); + 227 .loc 1 58 9 is_stmt 1 view .LVU42 + 228 .loc 1 58 28 is_stmt 0 view .LVU43 + 229 002e 104B ldr r3, .L17+24 + 230 0030 93ED000B vldr.64 d0, [r3] + 231 0034 FFF7FEFF bl sin + ARM GAS /tmp/ccGt6Pje.s page 6 + + + 232 .LVL18: + 233 0038 51EC100B vmov r0, r1, d0 + 234 .loc 1 58 38 view .LVU44 + 235 003c 0AA3 adr r3, .L17+16 + 236 003e D3E90023 ldrd r2, [r3] + 237 0042 FFF7FEFF bl __aeabi_dmul + 238 .LVL19: + 239 .loc 1 58 45 view .LVU45 + 240 0046 08A3 adr r3, .L17+16 + 241 0048 D3E90023 ldrd r2, [r3] + 242 004c FFF7FEFF bl __aeabi_dadd + 243 .LVL20: + 244 .loc 1 58 16 view .LVU46 + 245 0050 FFF7FEFF bl __aeabi_d2uiz + 246 .LVL21: + 59:Src/squeow.c **** } + 247 .loc 1 59 1 view .LVU47 + 248 0054 80B2 uxth r0, r0 + 249 0056 10BD pop {r4, pc} + 250 .L18: + 251 .align 3 + 252 .L17: + 253 0058 7F6ABC74 .word 1958505087 + 254 005c 9318D43F .word 1070864531 + 255 0060 1F85EB51 .word 1374389535 + 256 0064 B81E1940 .word 1075388088 + 257 0068 00000000 .word 0 + 258 006c 00FC9F40 .word 1084226560 + 259 0070 00000000 .word angle.0 + 260 .cfi_endproc + 261 .LFE335: + 263 .section .text.sample,"ax",%progbits + 264 .align 1 + 265 .global sample + 266 .syntax unified + 267 .thumb + 268 .thumb_func + 270 sample: + 271 .LFB336: + 60:Src/squeow.c **** + 61:Src/squeow.c **** uint16_t sample(void){ + 272 .loc 1 61 22 is_stmt 1 view -0 + 273 .cfi_startproc + 274 @ args = 0, pretend = 0, frame = 0 + 275 @ frame_needed = 0, uses_anonymous_args = 0 + 276 @ link register save eliminated. + 62:Src/squeow.c **** /* + 63:Src/squeow.c **** stato_audio == STATO_AUDIO_ADC; + 64:Src/squeow.c **** HAL_ADC_Start(&hadc1); + 65:Src/squeow.c **** if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK){ + 66:Src/squeow.c **** // store_sample(HAL_ADC_GetValue(&hadc1) << 4); + 67:Src/squeow.c **** sample_value = HAL_ADC_GetValue(&hadc1); + 68:Src/squeow.c **** } + 69:Src/squeow.c **** HAL_ADC_Stop(&hadc1); + 70:Src/squeow.c **** */ + 71:Src/squeow.c **** } + 277 .loc 1 71 1 view .LVU49 + ARM GAS /tmp/ccGt6Pje.s page 7 + + + 278 0000 7047 bx lr + 279 .cfi_endproc + 280 .LFE336: + 282 .section .text.store_sample,"ax",%progbits + 283 .align 1 + 284 .global store_sample + 285 .syntax unified + 286 .thumb + 287 .thumb_func + 289 store_sample: + 290 .LVL22: + 291 .LFB338: + 72:Src/squeow.c **** + 73:Src/squeow.c **** void store_samples(uint16_t *data, uint16_t size){ + 74:Src/squeow.c **** for(uint16_t i = 0; i < size; ++i) { + 75:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 76:Src/squeow.c **** store_sample(data[i]); + 77:Src/squeow.c **** } + 78:Src/squeow.c **** } + 79:Src/squeow.c **** + 80:Src/squeow.c **** void store_sample(uint16_t sample){ + 292 .loc 1 80 35 view -0 + 293 .cfi_startproc + 294 @ args = 0, pretend = 0, frame = 0 + 295 @ frame_needed = 0, uses_anonymous_args = 0 + 296 .loc 1 80 35 is_stmt 0 view .LVU51 + 297 0000 08B5 push {r3, lr} + 298 .LCFI2: + 299 .cfi_def_cfa_offset 8 + 300 .cfi_offset 3, -8 + 301 .cfi_offset 14, -4 + 81:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = sample; + 302 .loc 1 81 17 is_stmt 1 view .LVU52 + 303 .loc 1 81 32 is_stmt 0 view .LVU53 + 304 0002 054B ldr r3, .L22 + 305 0004 1988 ldrh r1, [r3] + 306 .loc 1 81 62 view .LVU54 + 307 0006 054A ldr r2, .L22+4 + 308 0008 22F81100 strh r0, [r2, r1, lsl #1] @ movhi + 82:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_input_index, SAMPLES_BUFFER_SIZE_MASK); + 309 .loc 1 82 17 is_stmt 1 view .LVU55 + 310 000c 40F2FF31 movw r1, #1023 + 311 0010 1846 mov r0, r3 + 312 .LVL23: + 313 .loc 1 82 17 is_stmt 0 view .LVU56 + 314 0012 FFF7FEFF bl ringbuf_increment + 315 .LVL24: + 83:Src/squeow.c **** } + 316 .loc 1 83 1 view .LVU57 + 317 0016 08BD pop {r3, pc} + 318 .L23: + 319 .align 2 + 320 .L22: + 321 0018 00000000 .word samples_ringbuf_input_index + 322 001c 00000000 .word samples_ringbuf + 323 .cfi_endproc + 324 .LFE338: + ARM GAS /tmp/ccGt6Pje.s page 8 + + + 326 .section .text.store_samples,"ax",%progbits + 327 .align 1 + 328 .global store_samples + 329 .syntax unified + 330 .thumb + 331 .thumb_func + 333 store_samples: + 334 .LVL25: + 335 .LFB337: + 73:Src/squeow.c **** for(uint16_t i = 0; i < size; ++i) { + 336 .loc 1 73 50 is_stmt 1 view -0 + 337 .cfi_startproc + 338 @ args = 0, pretend = 0, frame = 0 + 339 @ frame_needed = 0, uses_anonymous_args = 0 + 73:Src/squeow.c **** for(uint16_t i = 0; i < size; ++i) { + 340 .loc 1 73 50 is_stmt 0 view .LVU59 + 341 0000 70B5 push {r4, r5, r6, lr} + 342 .LCFI3: + 343 .cfi_def_cfa_offset 16 + 344 .cfi_offset 4, -16 + 345 .cfi_offset 5, -12 + 346 .cfi_offset 6, -8 + 347 .cfi_offset 14, -4 + 348 0002 0646 mov r6, r0 + 349 0004 0D46 mov r5, r1 + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 350 .loc 1 74 9 is_stmt 1 view .LVU60 + 351 .LBB3: + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 352 .loc 1 74 13 view .LVU61 + 353 .LVL26: + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 354 .loc 1 74 22 is_stmt 0 view .LVU62 + 355 0006 0024 movs r4, #0 + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 356 .loc 1 74 9 view .LVU63 + 357 0008 0AE0 b .L25 + 358 .LVL27: + 359 .L26: + 75:Src/squeow.c **** store_sample(data[i]); + 360 .loc 1 75 15 is_stmt 1 discriminator 3 view .LVU64 + 75:Src/squeow.c **** store_sample(data[i]); + 361 .loc 1 75 30 is_stmt 0 discriminator 3 view .LVU65 + 362 000a 074B ldr r3, .L28 + 363 000c 1A88 ldrh r2, [r3] + 75:Src/squeow.c **** store_sample(data[i]); + 364 .loc 1 75 66 discriminator 3 view .LVU66 + 365 000e 36F81400 ldrh r0, [r6, r4, lsl #1] + 75:Src/squeow.c **** store_sample(data[i]); + 366 .loc 1 75 60 discriminator 3 view .LVU67 + 367 0012 064B ldr r3, .L28+4 + 368 0014 23F81200 strh r0, [r3, r2, lsl #1] @ movhi + 76:Src/squeow.c **** } + 369 .loc 1 76 17 is_stmt 1 discriminator 3 view .LVU68 + 370 0018 FFF7FEFF bl store_sample + 371 .LVL28: + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + ARM GAS /tmp/ccGt6Pje.s page 9 + + + 372 .loc 1 74 39 discriminator 3 view .LVU69 + 373 001c 0134 adds r4, r4, #1 + 374 .LVL29: + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 375 .loc 1 74 39 is_stmt 0 discriminator 3 view .LVU70 + 376 001e A4B2 uxth r4, r4 + 377 .LVL30: + 378 .L25: + 74:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = data[i]; + 379 .loc 1 74 31 is_stmt 1 discriminator 1 view .LVU71 + 380 0020 AC42 cmp r4, r5 + 381 0022 F2D3 bcc .L26 + 382 .LBE3: + 78:Src/squeow.c **** + 383 .loc 1 78 1 is_stmt 0 view .LVU72 + 384 0024 70BD pop {r4, r5, r6, pc} + 385 .LVL31: + 386 .L29: + 78:Src/squeow.c **** + 387 .loc 1 78 1 view .LVU73 + 388 0026 00BF .align 2 + 389 .L28: + 390 0028 00000000 .word samples_ringbuf_input_index + 391 002c 00000000 .word samples_ringbuf + 392 .cfi_endproc + 393 .LFE337: + 395 .section .bss.angle.0,"aw",%nobits + 396 .align 3 + 399 angle.0: + 400 0000 00000000 .space 8 + 400 00000000 + 401 .section .bss.angle.1,"aw",%nobits + 402 .align 3 + 405 angle.1: + 406 0000 00000000 .space 8 + 406 00000000 + 407 .global samples_ringbuf_output_index + 408 .section .bss.samples_ringbuf_output_index,"aw",%nobits + 409 .align 1 + 412 samples_ringbuf_output_index: + 413 0000 0000 .space 2 + 414 .global samples_ringbuf_input_index + 415 .section .bss.samples_ringbuf_input_index,"aw",%nobits + 416 .align 1 + 419 samples_ringbuf_input_index: + 420 0000 0000 .space 2 + 421 .global samples_ringbuf + 422 .section .bss.samples_ringbuf,"aw",%nobits + 423 .align 2 + 426 samples_ringbuf: + 427 0000 00000000 .space 2048 + 427 00000000 + 427 00000000 + 427 00000000 + 427 00000000 + 428 .global rails_number + 429 .section .bss.rails_number,"aw",%nobits + ARM GAS /tmp/ccGt6Pje.s page 10 + + + 432 rails_number: + 433 0000 00 .space 1 + 434 .global display_buffer + 435 .section .bss.display_buffer,"aw",%nobits + 436 .align 2 + 439 display_buffer: + 440 0000 00000000 .space 16 + 440 00000000 + 440 00000000 + 440 00000000 + 441 .global sample_value + 442 .section .bss.sample_value,"aw",%nobits + 443 .align 1 + 446 sample_value: + 447 0000 0000 .space 2 + 448 .global pwm_value + 449 .section .bss.pwm_value,"aw",%nobits + 450 .align 1 + 453 pwm_value: + 454 0000 0000 .space 2 + 455 .global stato_audio + 456 .section .bss.stato_audio,"aw",%nobits + 459 stato_audio: + 460 0000 00 .space 1 + 461 .text + 462 .Letext0: + 463 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 464 .file 3 "Inc/squeow.h" + 465 .file 4 "/usr/include/newlib/math.h" + ARM GAS /tmp/ccGt6Pje.s page 11 + + +DEFINED SYMBOLS + *ABS*:00000000 squeow.c + /tmp/ccGt6Pje.s:21 .text.audio_play:00000000 $t + /tmp/ccGt6Pje.s:27 .text.audio_play:00000000 audio_play + /tmp/ccGt6Pje.s:62 .text.sat_sub:00000000 $t + /tmp/ccGt6Pje.s:68 .text.sat_sub:00000000 sat_sub + /tmp/ccGt6Pje.s:106 .text.u16_sine:00000000 $t + /tmp/ccGt6Pje.s:112 .text.u16_sine:00000000 u16_sine + /tmp/ccGt6Pje.s:174 .text.u16_sine:00000058 $d + /tmp/ccGt6Pje.s:405 .bss.angle.1:00000000 angle.1 + /tmp/ccGt6Pje.s:185 .text.u12_sine:00000000 $t + /tmp/ccGt6Pje.s:191 .text.u12_sine:00000000 u12_sine + /tmp/ccGt6Pje.s:253 .text.u12_sine:00000058 $d + /tmp/ccGt6Pje.s:399 .bss.angle.0:00000000 angle.0 + /tmp/ccGt6Pje.s:264 .text.sample:00000000 $t + /tmp/ccGt6Pje.s:270 .text.sample:00000000 sample + /tmp/ccGt6Pje.s:283 .text.store_sample:00000000 $t + /tmp/ccGt6Pje.s:289 .text.store_sample:00000000 store_sample + /tmp/ccGt6Pje.s:321 .text.store_sample:00000018 $d + /tmp/ccGt6Pje.s:419 .bss.samples_ringbuf_input_index:00000000 samples_ringbuf_input_index + /tmp/ccGt6Pje.s:426 .bss.samples_ringbuf:00000000 samples_ringbuf + /tmp/ccGt6Pje.s:327 .text.store_samples:00000000 $t + /tmp/ccGt6Pje.s:333 .text.store_samples:00000000 store_samples + /tmp/ccGt6Pje.s:390 .text.store_samples:00000028 $d + /tmp/ccGt6Pje.s:396 .bss.angle.0:00000000 $d + /tmp/ccGt6Pje.s:402 .bss.angle.1:00000000 $d + /tmp/ccGt6Pje.s:412 .bss.samples_ringbuf_output_index:00000000 samples_ringbuf_output_index + /tmp/ccGt6Pje.s:409 .bss.samples_ringbuf_output_index:00000000 $d + /tmp/ccGt6Pje.s:416 .bss.samples_ringbuf_input_index:00000000 $d + /tmp/ccGt6Pje.s:423 .bss.samples_ringbuf:00000000 $d + /tmp/ccGt6Pje.s:432 .bss.rails_number:00000000 rails_number + /tmp/ccGt6Pje.s:433 .bss.rails_number:00000000 $d + /tmp/ccGt6Pje.s:439 .bss.display_buffer:00000000 display_buffer + /tmp/ccGt6Pje.s:436 .bss.display_buffer:00000000 $d + /tmp/ccGt6Pje.s:446 .bss.sample_value:00000000 sample_value + /tmp/ccGt6Pje.s:443 .bss.sample_value:00000000 $d + /tmp/ccGt6Pje.s:453 .bss.pwm_value:00000000 pwm_value + /tmp/ccGt6Pje.s:450 .bss.pwm_value:00000000 $d + /tmp/ccGt6Pje.s:459 .bss.stato_audio:00000000 stato_audio + /tmp/ccGt6Pje.s:460 .bss.stato_audio:00000000 $d + +UNDEFINED SYMBOLS +__aeabi_dadd +__aeabi_dcmpge +__aeabi_dmul +__aeabi_d2uiz +sin +ringbuf_increment diff --git a/squeow_sw/build/squeow.o b/squeow_sw/build/squeow.o new file mode 100644 index 0000000000000000000000000000000000000000..f008591ac98db28397bda1ebdf51c17d55292e6b GIT binary patch literal 9896 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/squeow_codice.bin b/squeow_sw/build/squeow_codice.bin new file mode 100755 index 0000000000000000000000000000000000000000..88c0d75364d50e621860f331d9257457aa02e466 GIT binary patch literal 33232 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/squeow_codice.elf b/squeow_sw/build/squeow_codice.elf new file mode 100755 index 0000000000000000000000000000000000000000..9e242f3a705afae68b6a04274d83709d6a0cf169 GIT binary patch literal 671888 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

@YWQT|z0a@A{@0amdnQO*M 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

r_As!`%u)^H25;=sr7w2NSV>5CH2bp^g1uLND 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∨gJGZpdU#PDg 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, SysTick_CTRL_TICKINT_Msk); + 511 .loc 1 428 3 view .LVU108 + 512 0000 4FF0E022 mov r2, #-536813568 + 513 0004 1369 ldr r3, [r2, #16] + 514 0006 23F00203 bic r3, r3, #2 + 515 000a 1361 str r3, [r2, #16] + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 516 .loc 1 429 1 is_stmt 0 view .LVU109 + 517 000c 7047 bx lr + 518 .cfi_endproc + 519 .LFE340: + 521 .section .text.HAL_ResumeTick,"ax",%progbits + 522 .align 1 + 523 .weak HAL_ResumeTick + 524 .syntax unified + 525 .thumb + 526 .thumb_func + 528 HAL_ResumeTick: + 529 .LFB341: + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Resume Tick increment. + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note In the default implementation , SysTick timer is the source of time base. It is + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * used to generate interrupts at regular time intervals. Once HAL_ResumeTick() + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * is called, the SysTick interrupt will be enabled and so Tick increment + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * is resumed. + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note This function is declared as __weak to be overwritten in case of other + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * implementations in user file. + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** __weak void HAL_ResumeTick(void) + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 530 .loc 1 442 1 is_stmt 1 view -0 + 531 .cfi_startproc + 532 @ args = 0, pretend = 0, frame = 0 + 533 @ frame_needed = 0, uses_anonymous_args = 0 + 534 @ link register save eliminated. + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Enable SysTick Interrupt */ + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); + 535 .loc 1 444 3 view .LVU111 + 536 0000 4FF0E022 mov r2, #-536813568 + 537 0004 1369 ldr r3, [r2, #16] + 538 0006 43F00203 orr r3, r3, #2 + 539 000a 1361 str r3, [r2, #16] + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 540 .loc 1 445 1 is_stmt 0 view .LVU112 + 541 000c 7047 bx lr + 542 .cfi_endproc + 543 .LFE341: + 545 .section .text.HAL_GetHalVersion,"ax",%progbits + 546 .align 1 + 547 .global HAL_GetHalVersion + 548 .syntax unified + 549 .thumb + 550 .thumb_func + 552 HAL_GetHalVersion: + 553 .LFB342: + ARM GAS /tmp/ccDAvPw5.s page 19 + + + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Returns the HAL revision. + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval version : 0xXYZR (8bits for each decimal, R for RC) + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** uint32_t HAL_GetHalVersion(void) + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 554 .loc 1 452 1 is_stmt 1 view -0 + 555 .cfi_startproc + 556 @ args = 0, pretend = 0, frame = 0 + 557 @ frame_needed = 0, uses_anonymous_args = 0 + 558 @ link register save eliminated. + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** return __STM32G4xx_HAL_VERSION; + 559 .loc 1 453 3 view .LVU114 + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 560 .loc 1 454 1 is_stmt 0 view .LVU115 + 561 0000 0048 ldr r0, .L53 + 562 0002 7047 bx lr + 563 .L54: + 564 .align 2 + 565 .L53: + 566 0004 00020201 .word 16908800 + 567 .cfi_endproc + 568 .LFE342: + 570 .section .text.HAL_GetREVID,"ax",%progbits + 571 .align 1 + 572 .global HAL_GetREVID + 573 .syntax unified + 574 .thumb + 575 .thumb_func + 577 HAL_GetREVID: + 578 .LFB343: + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Returns the device revision identifier. + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval Device revision identifier + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** uint32_t HAL_GetREVID(void) + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 579 .loc 1 461 1 is_stmt 1 view -0 + 580 .cfi_startproc + 581 @ args = 0, pretend = 0, frame = 0 + 582 @ frame_needed = 0, uses_anonymous_args = 0 + 583 @ link register save eliminated. + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** return ((DBGMCU->IDCODE & DBGMCU_IDCODE_REV_ID) >> 16U); + 584 .loc 1 462 3 view .LVU117 + 585 .loc 1 462 18 is_stmt 0 view .LVU118 + 586 0000 014B ldr r3, .L56 + 587 0002 1868 ldr r0, [r3] + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 588 .loc 1 463 1 view .LVU119 + 589 0004 000C lsrs r0, r0, #16 + 590 0006 7047 bx lr + 591 .L57: + 592 .align 2 + 593 .L56: + 594 0008 002004E0 .word -536600576 + ARM GAS /tmp/ccDAvPw5.s page 20 + + + 595 .cfi_endproc + 596 .LFE343: + 598 .section .text.HAL_GetDEVID,"ax",%progbits + 599 .align 1 + 600 .global HAL_GetDEVID + 601 .syntax unified + 602 .thumb + 603 .thumb_func + 605 HAL_GetDEVID: + 606 .LFB344: + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Returns the device identifier. + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval Device identifier + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** uint32_t HAL_GetDEVID(void) + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 607 .loc 1 470 1 is_stmt 1 view -0 + 608 .cfi_startproc + 609 @ args = 0, pretend = 0, frame = 0 + 610 @ frame_needed = 0, uses_anonymous_args = 0 + 611 @ link register save eliminated. + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** return (DBGMCU->IDCODE & DBGMCU_IDCODE_DEV_ID); + 612 .loc 1 471 3 view .LVU121 + 613 .loc 1 471 17 is_stmt 0 view .LVU122 + 614 0000 024B ldr r3, .L59 + 615 0002 1868 ldr r0, [r3] + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 616 .loc 1 472 1 view .LVU123 + 617 0004 C0F30B00 ubfx r0, r0, #0, #12 + 618 0008 7047 bx lr + 619 .L60: + 620 000a 00BF .align 2 + 621 .L59: + 622 000c 002004E0 .word -536600576 + 623 .cfi_endproc + 624 .LFE344: + 626 .section .text.HAL_DBGMCU_EnableDBGSleepMode,"ax",%progbits + 627 .align 1 + 628 .global HAL_DBGMCU_EnableDBGSleepMode + 629 .syntax unified + 630 .thumb + 631 .thumb_func + 633 HAL_DBGMCU_EnableDBGSleepMode: + 634 .LFB345: + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @} + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** @defgroup HAL_Exported_Functions_Group3 HAL Debug functions + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief HAL Debug functions + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** @verbatim + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** =============================================================================== + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** ##### HAL Debug functions ##### + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** =============================================================================== + ARM GAS /tmp/ccDAvPw5.s page 21 + + + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** [..] This section provides functions allowing to: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Enable/Disable Debug module during SLEEP mode + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Enable/Disable Debug module during STOP0/STOP1/STOP2 modes + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Enable/Disable Debug module during STANDBY mode + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** @endverbatim + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @{ + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the Debug Module during SLEEP mode. + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_DBGMCU_EnableDBGSleepMode(void) + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 635 .loc 1 499 1 is_stmt 1 view -0 + 636 .cfi_startproc + 637 @ args = 0, pretend = 0, frame = 0 + 638 @ frame_needed = 0, uses_anonymous_args = 0 + 639 @ link register save eliminated. + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); + 640 .loc 1 500 3 view .LVU125 + 641 0000 024A ldr r2, .L62 + 642 0002 5368 ldr r3, [r2, #4] + 643 0004 43F00103 orr r3, r3, #1 + 644 0008 5360 str r3, [r2, #4] + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 645 .loc 1 501 1 is_stmt 0 view .LVU126 + 646 000a 7047 bx lr + 647 .L63: + 648 .align 2 + 649 .L62: + 650 000c 002004E0 .word -536600576 + 651 .cfi_endproc + 652 .LFE345: + 654 .section .text.HAL_DBGMCU_DisableDBGSleepMode,"ax",%progbits + 655 .align 1 + 656 .global HAL_DBGMCU_DisableDBGSleepMode + 657 .syntax unified + 658 .thumb + 659 .thumb_func + 661 HAL_DBGMCU_DisableDBGSleepMode: + 662 .LFB346: + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the Debug Module during SLEEP mode. + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_DBGMCU_DisableDBGSleepMode(void) + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 663 .loc 1 508 1 is_stmt 1 view -0 + 664 .cfi_startproc + 665 @ args = 0, pretend = 0, frame = 0 + 666 @ frame_needed = 0, uses_anonymous_args = 0 + 667 @ link register save eliminated. + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); + 668 .loc 1 509 3 view .LVU128 + ARM GAS /tmp/ccDAvPw5.s page 22 + + + 669 0000 024A ldr r2, .L65 + 670 0002 5368 ldr r3, [r2, #4] + 671 0004 23F00103 bic r3, r3, #1 + 672 0008 5360 str r3, [r2, #4] + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 673 .loc 1 510 1 is_stmt 0 view .LVU129 + 674 000a 7047 bx lr + 675 .L66: + 676 .align 2 + 677 .L65: + 678 000c 002004E0 .word -536600576 + 679 .cfi_endproc + 680 .LFE346: + 682 .section .text.HAL_DBGMCU_EnableDBGStopMode,"ax",%progbits + 683 .align 1 + 684 .global HAL_DBGMCU_EnableDBGStopMode + 685 .syntax unified + 686 .thumb + 687 .thumb_func + 689 HAL_DBGMCU_EnableDBGStopMode: + 690 .LFB347: + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the Debug Module during STOP0/STOP1/STOP2 modes. + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_DBGMCU_EnableDBGStopMode(void) + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 691 .loc 1 517 1 is_stmt 1 view -0 + 692 .cfi_startproc + 693 @ args = 0, pretend = 0, frame = 0 + 694 @ frame_needed = 0, uses_anonymous_args = 0 + 695 @ link register save eliminated. + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); + 696 .loc 1 518 3 view .LVU131 + 697 0000 024A ldr r2, .L68 + 698 0002 5368 ldr r3, [r2, #4] + 699 0004 43F00203 orr r3, r3, #2 + 700 0008 5360 str r3, [r2, #4] + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 701 .loc 1 519 1 is_stmt 0 view .LVU132 + 702 000a 7047 bx lr + 703 .L69: + 704 .align 2 + 705 .L68: + 706 000c 002004E0 .word -536600576 + 707 .cfi_endproc + 708 .LFE347: + 710 .section .text.HAL_DBGMCU_DisableDBGStopMode,"ax",%progbits + 711 .align 1 + 712 .global HAL_DBGMCU_DisableDBGStopMode + 713 .syntax unified + 714 .thumb + 715 .thumb_func + 717 HAL_DBGMCU_DisableDBGStopMode: + 718 .LFB348: + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + ARM GAS /tmp/ccDAvPw5.s page 23 + + + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the Debug Module during STOP0/STOP1/STOP2 modes. + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_DBGMCU_DisableDBGStopMode(void) + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 719 .loc 1 526 1 is_stmt 1 view -0 + 720 .cfi_startproc + 721 @ args = 0, pretend = 0, frame = 0 + 722 @ frame_needed = 0, uses_anonymous_args = 0 + 723 @ link register save eliminated. + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); + 724 .loc 1 527 3 view .LVU134 + 725 0000 024A ldr r2, .L71 + 726 0002 5368 ldr r3, [r2, #4] + 727 0004 23F00203 bic r3, r3, #2 + 728 0008 5360 str r3, [r2, #4] + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 729 .loc 1 528 1 is_stmt 0 view .LVU135 + 730 000a 7047 bx lr + 731 .L72: + 732 .align 2 + 733 .L71: + 734 000c 002004E0 .word -536600576 + 735 .cfi_endproc + 736 .LFE348: + 738 .section .text.HAL_DBGMCU_EnableDBGStandbyMode,"ax",%progbits + 739 .align 1 + 740 .global HAL_DBGMCU_EnableDBGStandbyMode + 741 .syntax unified + 742 .thumb + 743 .thumb_func + 745 HAL_DBGMCU_EnableDBGStandbyMode: + 746 .LFB349: + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the Debug Module during STANDBY mode. + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_DBGMCU_EnableDBGStandbyMode(void) + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 747 .loc 1 535 1 is_stmt 1 view -0 + 748 .cfi_startproc + 749 @ args = 0, pretend = 0, frame = 0 + 750 @ frame_needed = 0, uses_anonymous_args = 0 + 751 @ link register save eliminated. + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); + 752 .loc 1 536 3 view .LVU137 + 753 0000 024A ldr r2, .L74 + 754 0002 5368 ldr r3, [r2, #4] + 755 0004 43F00403 orr r3, r3, #4 + 756 0008 5360 str r3, [r2, #4] + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 757 .loc 1 537 1 is_stmt 0 view .LVU138 + 758 000a 7047 bx lr + 759 .L75: + 760 .align 2 + ARM GAS /tmp/ccDAvPw5.s page 24 + + + 761 .L74: + 762 000c 002004E0 .word -536600576 + 763 .cfi_endproc + 764 .LFE349: + 766 .section .text.HAL_DBGMCU_DisableDBGStandbyMode,"ax",%progbits + 767 .align 1 + 768 .global HAL_DBGMCU_DisableDBGStandbyMode + 769 .syntax unified + 770 .thumb + 771 .thumb_func + 773 HAL_DBGMCU_DisableDBGStandbyMode: + 774 .LFB350: + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the Debug Module during STANDBY mode. + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_DBGMCU_DisableDBGStandbyMode(void) + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 775 .loc 1 544 1 is_stmt 1 view -0 + 776 .cfi_startproc + 777 @ args = 0, pretend = 0, frame = 0 + 778 @ frame_needed = 0, uses_anonymous_args = 0 + 779 @ link register save eliminated. + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); + 780 .loc 1 545 3 view .LVU140 + 781 0000 024A ldr r2, .L77 + 782 0002 5368 ldr r3, [r2, #4] + 783 0004 23F00403 bic r3, r3, #4 + 784 0008 5360 str r3, [r2, #4] + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 785 .loc 1 546 1 is_stmt 0 view .LVU141 + 786 000a 7047 bx lr + 787 .L78: + 788 .align 2 + 789 .L77: + 790 000c 002004E0 .word -536600576 + 791 .cfi_endproc + 792 .LFE350: + 794 .section .text.HAL_SYSCFG_CCMSRAMErase,"ax",%progbits + 795 .align 1 + 796 .global HAL_SYSCFG_CCMSRAMErase + 797 .syntax unified + 798 .thumb + 799 .thumb_func + 801 HAL_SYSCFG_CCMSRAMErase: + 802 .LFB351: + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @} + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** @defgroup HAL_Exported_Functions_Group4 HAL SYSCFG configuration functions + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief HAL SYSCFG configuration functions + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** @verbatim + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** =============================================================================== + ARM GAS /tmp/ccDAvPw5.s page 25 + + + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** ##### HAL SYSCFG configuration functions ##### + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** =============================================================================== + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** [..] This section provides functions allowing to: + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Start a hardware CCMSRAM erase operation + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Enable/Disable the Internal FLASH Bank Swapping + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Configure the Voltage reference buffer + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Enable/Disable the Voltage reference buffer + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** (+) Enable/Disable the I/O analog switch voltage booster + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** @endverbatim + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @{ + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Start a hardware CCMSRAM erase operation. + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note As long as CCMSRAM is not erased the CCMER bit will be set. + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This bit is automatically reset at the end of the CCMSRAM erase operation. + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_CCMSRAMErase(void) + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 803 .loc 1 577 1 is_stmt 1 view -0 + 804 .cfi_startproc + 805 @ args = 0, pretend = 0, frame = 0 + 806 @ frame_needed = 0, uses_anonymous_args = 0 + 807 @ link register save eliminated. + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* unlock the write protection of the CCMER bit */ + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SYSCFG->SKR = 0xCA; + 808 .loc 1 579 3 view .LVU143 + 809 .loc 1 579 15 is_stmt 0 view .LVU144 + 810 0000 044B ldr r3, .L80 + 811 0002 CA22 movs r2, #202 + 812 0004 5A62 str r2, [r3, #36] + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SYSCFG->SKR = 0x53; + 813 .loc 1 580 3 is_stmt 1 view .LVU145 + 814 .loc 1 580 15 is_stmt 0 view .LVU146 + 815 0006 5322 movs r2, #83 + 816 0008 5A62 str r2, [r3, #36] + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Starts a hardware CCMSRAM erase operation*/ + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(SYSCFG->SCSR, SYSCFG_SCSR_CCMER); + 817 .loc 1 582 3 is_stmt 1 view .LVU147 + 818 000a 9A69 ldr r2, [r3, #24] + 819 000c 42F00102 orr r2, r2, #1 + 820 0010 9A61 str r2, [r3, #24] + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 821 .loc 1 583 1 is_stmt 0 view .LVU148 + 822 0012 7047 bx lr + 823 .L81: + 824 .align 2 + 825 .L80: + 826 0014 00000140 .word 1073807360 + 827 .cfi_endproc + 828 .LFE351: + 830 .section .text.HAL_SYSCFG_EnableMemorySwappingBank,"ax",%progbits + 831 .align 1 + 832 .global HAL_SYSCFG_EnableMemorySwappingBank + 833 .syntax unified + ARM GAS /tmp/ccDAvPw5.s page 26 + + + 834 .thumb + 835 .thumb_func + 837 HAL_SYSCFG_EnableMemorySwappingBank: + 838 .LFB352: + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the Internal FLASH Bank Swapping. + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note This function can be used only for STM32G4xx devices. + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note Flash Bank2 mapped at 0x08000000 (and aliased @0x00000000) + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * and Flash Bank1 mapped at 0x08040000 (and aliased at 0x00040000) + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_EnableMemorySwappingBank(void) + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 839 .loc 1 596 1 is_stmt 1 view -0 + 840 .cfi_startproc + 841 @ args = 0, pretend = 0, frame = 0 + 842 @ frame_needed = 0, uses_anonymous_args = 0 + 843 @ link register save eliminated. + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE); + 844 .loc 1 597 3 view .LVU150 + 845 0000 024A ldr r2, .L83 + 846 0002 1368 ldr r3, [r2] + 847 0004 43F48073 orr r3, r3, #256 + 848 0008 1360 str r3, [r2] + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 849 .loc 1 598 1 is_stmt 0 view .LVU151 + 850 000a 7047 bx lr + 851 .L84: + 852 .align 2 + 853 .L83: + 854 000c 00000140 .word 1073807360 + 855 .cfi_endproc + 856 .LFE352: + 858 .section .text.HAL_SYSCFG_DisableMemorySwappingBank,"ax",%progbits + 859 .align 1 + 860 .global HAL_SYSCFG_DisableMemorySwappingBank + 861 .syntax unified + 862 .thumb + 863 .thumb_func + 865 HAL_SYSCFG_DisableMemorySwappingBank: + 866 .LFB353: + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the Internal FLASH Bank Swapping. + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note This function can be used only for STM32G4xx devices. + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note The default state : Flash Bank1 mapped at 0x08000000 (and aliased @0x0000 0000) + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * and Flash Bank2 mapped at 0x08040000 (and aliased at 0x00040000) + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_DisableMemorySwappingBank(void) + ARM GAS /tmp/ccDAvPw5.s page 27 + + + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 867 .loc 1 611 1 is_stmt 1 view -0 + 868 .cfi_startproc + 869 @ args = 0, pretend = 0, frame = 0 + 870 @ frame_needed = 0, uses_anonymous_args = 0 + 871 @ link register save eliminated. + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE); + 872 .loc 1 612 3 view .LVU153 + 873 0000 024A ldr r2, .L86 + 874 0002 1368 ldr r3, [r2] + 875 0004 23F48073 bic r3, r3, #256 + 876 0008 1360 str r3, [r2] + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 877 .loc 1 613 1 is_stmt 0 view .LVU154 + 878 000a 7047 bx lr + 879 .L87: + 880 .align 2 + 881 .L86: + 882 000c 00000140 .word 1073807360 + 883 .cfi_endproc + 884 .LFE353: + 886 .section .text.HAL_SYSCFG_VREFBUF_VoltageScalingConfig,"ax",%progbits + 887 .align 1 + 888 .global HAL_SYSCFG_VREFBUF_VoltageScalingConfig + 889 .syntax unified + 890 .thumb + 891 .thumb_func + 893 HAL_SYSCFG_VREFBUF_VoltageScalingConfig: + 894 .LVL27: + 895 .LFB354: + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** #if defined(VREFBUF) + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Configure the internal voltage reference buffer voltage scale. + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @param VoltageScaling: specifies the output voltage to achieve + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This parameter can be one of the following values: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @arg SYSCFG_VREFBUF_VOLTAGE_SCALE0: VREFBUF_OUT around 2.048 V. + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This requires VDDA equal to or higher than 2.4 V + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @arg SYSCFG_VREFBUF_VOLTAGE_SCALE1: VREFBUF_OUT around 2.5 V. + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This requires VDDA equal to or higher than 2.8 V + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @arg SYSCFG_VREFBUF_VOLTAGE_SCALE2: VREFBUF_OUT around 2.9 V. + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This requires VDDA equal to or higher than 3.15 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling) + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 896 .loc 1 629 1 is_stmt 1 view -0 + 897 .cfi_startproc + 898 @ args = 0, pretend = 0, frame = 0 + 899 @ frame_needed = 0, uses_anonymous_args = 0 + 900 @ link register save eliminated. + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Check the parameters */ + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** assert_param(IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(VoltageScaling)); + 901 .loc 1 631 3 view .LVU156 + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_VRS, VoltageScaling); + 902 .loc 1 633 3 view .LVU157 + ARM GAS /tmp/ccDAvPw5.s page 28 + + + 903 0000 034A ldr r2, .L89 + 904 0002 136B ldr r3, [r2, #48] + 905 0004 23F03003 bic r3, r3, #48 + 906 0008 0343 orrs r3, r3, r0 + 907 000a 1363 str r3, [r2, #48] + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 908 .loc 1 634 1 is_stmt 0 view .LVU158 + 909 000c 7047 bx lr + 910 .L90: + 911 000e 00BF .align 2 + 912 .L89: + 913 0010 00000140 .word 1073807360 + 914 .cfi_endproc + 915 .LFE354: + 917 .section .text.HAL_SYSCFG_VREFBUF_HighImpedanceConfig,"ax",%progbits + 918 .align 1 + 919 .global HAL_SYSCFG_VREFBUF_HighImpedanceConfig + 920 .syntax unified + 921 .thumb + 922 .thumb_func + 924 HAL_SYSCFG_VREFBUF_HighImpedanceConfig: + 925 .LVL28: + 926 .LFB355: + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Configure the internal voltage reference buffer high impedance mode. + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @param Mode: specifies the high impedance mode + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This parameter can be one of the following values: + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @arg SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE: VREF+ pin is internally connect to VREFI + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @arg SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE: VREF+ pin is high impedance. + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode) + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 927 .loc 1 645 1 is_stmt 1 view -0 + 928 .cfi_startproc + 929 @ args = 0, pretend = 0, frame = 0 + 930 @ frame_needed = 0, uses_anonymous_args = 0 + 931 @ link register save eliminated. + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Check the parameters */ + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** assert_param(IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(Mode)); + 932 .loc 1 647 3 view .LVU160 + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** MODIFY_REG(VREFBUF->CSR, VREFBUF_CSR_HIZ, Mode); + 933 .loc 1 649 3 view .LVU161 + 934 0000 034A ldr r2, .L92 + 935 0002 136B ldr r3, [r2, #48] + 936 0004 23F00203 bic r3, r3, #2 + 937 0008 0343 orrs r3, r3, r0 + 938 000a 1363 str r3, [r2, #48] + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 939 .loc 1 650 1 is_stmt 0 view .LVU162 + 940 000c 7047 bx lr + 941 .L93: + 942 000e 00BF .align 2 + 943 .L92: + 944 0010 00000140 .word 1073807360 + ARM GAS /tmp/ccDAvPw5.s page 29 + + + 945 .cfi_endproc + 946 .LFE355: + 948 .section .text.HAL_SYSCFG_VREFBUF_TrimmingConfig,"ax",%progbits + 949 .align 1 + 950 .global HAL_SYSCFG_VREFBUF_TrimmingConfig + 951 .syntax unified + 952 .thumb + 953 .thumb_func + 955 HAL_SYSCFG_VREFBUF_TrimmingConfig: + 956 .LVL29: + 957 .LFB356: + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Tune the Internal Voltage Reference buffer (VREFBUF). + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @param TrimmingValue specifies trimming code for VREFBUF calibration + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * This parameter can be a number between Min_Data = 0x00 and Max_Data = 0x3F + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue) + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 958 .loc 1 659 1 is_stmt 1 view -0 + 959 .cfi_startproc + 960 @ args = 0, pretend = 0, frame = 0 + 961 @ frame_needed = 0, uses_anonymous_args = 0 + 962 @ link register save eliminated. + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Check the parameters */ + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** assert_param(IS_SYSCFG_VREFBUF_TRIMMING(TrimmingValue)); + 963 .loc 1 661 3 view .LVU164 + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** MODIFY_REG(VREFBUF->CCR, VREFBUF_CCR_TRIM, TrimmingValue); + 964 .loc 1 663 3 view .LVU165 + 965 0000 034A ldr r2, .L95 + 966 0002 536B ldr r3, [r2, #52] + 967 0004 23F03F03 bic r3, r3, #63 + 968 0008 0343 orrs r3, r3, r0 + 969 000a 5363 str r3, [r2, #52] + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 970 .loc 1 664 1 is_stmt 0 view .LVU166 + 971 000c 7047 bx lr + 972 .L96: + 973 000e 00BF .align 2 + 974 .L95: + 975 0010 00000140 .word 1073807360 + 976 .cfi_endproc + 977 .LFE356: + 979 .section .text.HAL_SYSCFG_EnableVREFBUF,"ax",%progbits + 980 .align 1 + 981 .global HAL_SYSCFG_EnableVREFBUF + 982 .syntax unified + 983 .thumb + 984 .thumb_func + 986 HAL_SYSCFG_EnableVREFBUF: + 987 .LFB357: + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the Internal Voltage Reference buffer (VREFBUF). + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval HAL_OK/HAL_TIMEOUT + ARM GAS /tmp/ccDAvPw5.s page 30 + + + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void) + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 988 .loc 1 671 1 is_stmt 1 view -0 + 989 .cfi_startproc + 990 @ args = 0, pretend = 0, frame = 0 + 991 @ frame_needed = 0, uses_anonymous_args = 0 + 992 0000 10B5 push {r4, lr} + 993 .LCFI5: + 994 .cfi_def_cfa_offset 8 + 995 .cfi_offset 4, -8 + 996 .cfi_offset 14, -4 + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** uint32_t tickstart; + 997 .loc 1 672 3 view .LVU168 + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR); + 998 .loc 1 674 3 view .LVU169 + 999 0002 0B4A ldr r2, .L104 + 1000 0004 136B ldr r3, [r2, #48] + 1001 0006 43F00103 orr r3, r3, #1 + 1002 000a 1363 str r3, [r2, #48] + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Get Start Tick*/ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** tickstart = HAL_GetTick(); + 1003 .loc 1 677 3 view .LVU170 + 1004 .loc 1 677 15 is_stmt 0 view .LVU171 + 1005 000c FFF7FEFF bl HAL_GetTick + 1006 .LVL30: + 1007 0010 0446 mov r4, r0 + 1008 .LVL31: + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /* Wait for VRR bit */ + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** while (READ_BIT(VREFBUF->CSR, VREFBUF_CSR_VRR) == 0x00U) + 1009 .loc 1 680 3 is_stmt 1 view .LVU172 + 1010 .L98: + 1011 .loc 1 680 50 view .LVU173 + 1012 .loc 1 680 10 is_stmt 0 view .LVU174 + 1013 0012 074B ldr r3, .L104 + 1014 0014 1B6B ldr r3, [r3, #48] + 1015 .loc 1 680 50 view .LVU175 + 1016 0016 13F0080F tst r3, #8 + 1017 001a 06D1 bne .L103 + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** if ((HAL_GetTick() - tickstart) > VREFBUF_TIMEOUT_VALUE) + 1018 .loc 1 682 5 is_stmt 1 view .LVU176 + 1019 .loc 1 682 10 is_stmt 0 view .LVU177 + 1020 001c FFF7FEFF bl HAL_GetTick + 1021 .LVL32: + 1022 .loc 1 682 24 view .LVU178 + 1023 0020 001B subs r0, r0, r4 + 1024 .loc 1 682 8 view .LVU179 + 1025 0022 0A28 cmp r0, #10 + 1026 0024 F5D9 bls .L98 + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** return HAL_TIMEOUT; + 1027 .loc 1 684 14 view .LVU180 + 1028 0026 0320 movs r0, #3 + ARM GAS /tmp/ccDAvPw5.s page 31 + + + 1029 0028 00E0 b .L99 + 1030 .L103: + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** return HAL_OK; + 1031 .loc 1 688 10 view .LVU181 + 1032 002a 0020 movs r0, #0 + 1033 .L99: + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1034 .loc 1 689 1 view .LVU182 + 1035 002c 10BD pop {r4, pc} + 1036 .LVL33: + 1037 .L105: + 1038 .loc 1 689 1 view .LVU183 + 1039 002e 00BF .align 2 + 1040 .L104: + 1041 0030 00000140 .word 1073807360 + 1042 .cfi_endproc + 1043 .LFE357: + 1045 .section .text.HAL_SYSCFG_DisableVREFBUF,"ax",%progbits + 1046 .align 1 + 1047 .global HAL_SYSCFG_DisableVREFBUF + 1048 .syntax unified + 1049 .thumb + 1050 .thumb_func + 1052 HAL_SYSCFG_DisableVREFBUF: + 1053 .LFB358: + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the Internal Voltage Reference buffer (VREFBUF). + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_DisableVREFBUF(void) + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 1054 .loc 1 697 1 is_stmt 1 view -0 + 1055 .cfi_startproc + 1056 @ args = 0, pretend = 0, frame = 0 + 1057 @ frame_needed = 0, uses_anonymous_args = 0 + 1058 @ link register save eliminated. + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(VREFBUF->CSR, VREFBUF_CSR_ENVR); + 1059 .loc 1 698 3 view .LVU185 + 1060 0000 024A ldr r2, .L107 + 1061 0002 136B ldr r3, [r2, #48] + 1062 0004 23F00103 bic r3, r3, #1 + 1063 0008 1363 str r3, [r2, #48] + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1064 .loc 1 699 1 is_stmt 0 view .LVU186 + 1065 000a 7047 bx lr + 1066 .L108: + 1067 .align 2 + 1068 .L107: + 1069 000c 00000140 .word 1073807360 + 1070 .cfi_endproc + 1071 .LFE358: + 1073 .section .text.HAL_SYSCFG_EnableIOSwitchBooster,"ax",%progbits + ARM GAS /tmp/ccDAvPw5.s page 32 + + + 1074 .align 1 + 1075 .global HAL_SYSCFG_EnableIOSwitchBooster + 1076 .syntax unified + 1077 .thumb + 1078 .thumb_func + 1080 HAL_SYSCFG_EnableIOSwitchBooster: + 1081 .LFB359: + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** #endif /* VREFBUF */ + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the I/O analog switch voltage booster + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_EnableIOSwitchBooster(void) + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 1082 .loc 1 708 1 is_stmt 1 view -0 + 1083 .cfi_startproc + 1084 @ args = 0, pretend = 0, frame = 0 + 1085 @ frame_needed = 0, uses_anonymous_args = 0 + 1086 @ link register save eliminated. + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_BOOSTEN); + 1087 .loc 1 709 3 view .LVU188 + 1088 0000 024A ldr r2, .L110 + 1089 0002 5368 ldr r3, [r2, #4] + 1090 0004 43F48073 orr r3, r3, #256 + 1091 0008 5360 str r3, [r2, #4] + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1092 .loc 1 710 1 is_stmt 0 view .LVU189 + 1093 000a 7047 bx lr + 1094 .L111: + 1095 .align 2 + 1096 .L110: + 1097 000c 00000140 .word 1073807360 + 1098 .cfi_endproc + 1099 .LFE359: + 1101 .section .text.HAL_SYSCFG_DisableIOSwitchBooster,"ax",%progbits + 1102 .align 1 + 1103 .global HAL_SYSCFG_DisableIOSwitchBooster + 1104 .syntax unified + 1105 .thumb + 1106 .thumb_func + 1108 HAL_SYSCFG_DisableIOSwitchBooster: + 1109 .LFB360: + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the I/O analog switch voltage booster + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_DisableIOSwitchBooster(void) + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 1110 .loc 1 718 1 is_stmt 1 view -0 + 1111 .cfi_startproc + 1112 @ args = 0, pretend = 0, frame = 0 + 1113 @ frame_needed = 0, uses_anonymous_args = 0 + 1114 @ link register save eliminated. + ARM GAS /tmp/ccDAvPw5.s page 33 + + + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_BOOSTEN); + 1115 .loc 1 719 3 view .LVU191 + 1116 0000 024A ldr r2, .L113 + 1117 0002 5368 ldr r3, [r2, #4] + 1118 0004 23F48073 bic r3, r3, #256 + 1119 0008 5360 str r3, [r2, #4] + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1120 .loc 1 720 1 is_stmt 0 view .LVU192 + 1121 000a 7047 bx lr + 1122 .L114: + 1123 .align 2 + 1124 .L113: + 1125 000c 00000140 .word 1073807360 + 1126 .cfi_endproc + 1127 .LFE360: + 1129 .section .text.HAL_SYSCFG_EnableIOSwitchVDD,"ax",%progbits + 1130 .align 1 + 1131 .global HAL_SYSCFG_EnableIOSwitchVDD + 1132 .syntax unified + 1133 .thumb + 1134 .thumb_func + 1136 HAL_SYSCFG_EnableIOSwitchVDD: + 1137 .LFB361: + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Enable the I/O analog switch voltage by VDD + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_EnableIOSwitchVDD(void) + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 1138 .loc 1 728 1 is_stmt 1 view -0 + 1139 .cfi_startproc + 1140 @ args = 0, pretend = 0, frame = 0 + 1141 @ frame_needed = 0, uses_anonymous_args = 0 + 1142 @ link register save eliminated. + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_ANASWVDD); + 1143 .loc 1 729 3 view .LVU194 + 1144 0000 024A ldr r2, .L116 + 1145 0002 5368 ldr r3, [r2, #4] + 1146 0004 43F40073 orr r3, r3, #512 + 1147 0008 5360 str r3, [r2, #4] + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1148 .loc 1 730 1 is_stmt 0 view .LVU195 + 1149 000a 7047 bx lr + 1150 .L117: + 1151 .align 2 + 1152 .L116: + 1153 000c 00000140 .word 1073807360 + 1154 .cfi_endproc + 1155 .LFE361: + 1157 .section .text.HAL_SYSCFG_DisableIOSwitchVDD,"ax",%progbits + 1158 .align 1 + 1159 .global HAL_SYSCFG_DisableIOSwitchVDD + 1160 .syntax unified + 1161 .thumb + 1162 .thumb_func + ARM GAS /tmp/ccDAvPw5.s page 34 + + + 1164 HAL_SYSCFG_DisableIOSwitchVDD: + 1165 .LFB362: + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @brief Disable the I/O analog switch voltage by VDD + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_DisableIOSwitchVDD(void) + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 1166 .loc 1 738 1 is_stmt 1 view -0 + 1167 .cfi_startproc + 1168 @ args = 0, pretend = 0, frame = 0 + 1169 @ frame_needed = 0, uses_anonymous_args = 0 + 1170 @ link register save eliminated. + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_ANASWVDD); + 1171 .loc 1 739 3 view .LVU197 + 1172 0000 024A ldr r2, .L119 + 1173 0002 5368 ldr r3, [r2, #4] + 1174 0004 23F40073 bic r3, r3, #512 + 1175 0008 5360 str r3, [r2, #4] + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1176 .loc 1 740 1 is_stmt 0 view .LVU198 + 1177 000a 7047 bx lr + 1178 .L120: + 1179 .align 2 + 1180 .L119: + 1181 000c 00000140 .word 1073807360 + 1182 .cfi_endproc + 1183 .LFE362: + 1185 .section .text.HAL_SYSCFG_CCMSRAM_WriteProtectionEnable,"ax",%progbits + 1186 .align 1 + 1187 .global HAL_SYSCFG_CCMSRAM_WriteProtectionEnable + 1188 .syntax unified + 1189 .thumb + 1190 .thumb_func + 1192 HAL_SYSCFG_CCMSRAM_WriteProtectionEnable: + 1193 .LVL34: + 1194 .LFB363: + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** /** @brief CCMSRAM page write protection enable + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @param Page: This parameter is a long 32bit value and can be a value of @ref SYSCFG_CCMSRAMWRP + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @note write protection can only be disabled by a system reset + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** * @retval None + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** */ + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** void HAL_SYSCFG_CCMSRAM_WriteProtectionEnable(uint32_t Page) + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** { + 1195 .loc 1 749 1 is_stmt 1 view -0 + 1196 .cfi_startproc + 1197 @ args = 0, pretend = 0, frame = 0 + 1198 @ frame_needed = 0, uses_anonymous_args = 0 + 1199 @ link register save eliminated. + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** assert_param(IS_SYSCFG_CCMSRAMWRP_PAGE(Page)); + 1200 .loc 1 750 3 view .LVU200 + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** SET_BIT(SYSCFG->SWPR, (uint32_t)(Page)); + ARM GAS /tmp/ccDAvPw5.s page 35 + + + 1201 .loc 1 752 3 view .LVU201 + 1202 0000 024A ldr r2, .L122 + 1203 0002 136A ldr r3, [r2, #32] + 1204 0004 0343 orrs r3, r3, r0 + 1205 0006 1362 str r3, [r2, #32] + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal.c **** } + 1206 .loc 1 753 1 is_stmt 0 view .LVU202 + 1207 0008 7047 bx lr + 1208 .L123: + 1209 000a 00BF .align 2 + 1210 .L122: + 1211 000c 00000140 .word 1073807360 + 1212 .cfi_endproc + 1213 .LFE363: + 1215 .global uwTickFreq + 1216 .section .data.uwTickFreq,"aw" + 1217 .align 2 + 1220 uwTickFreq: + 1221 0000 01000000 .word 1 + 1222 .global uwTickPrio + 1223 .section .data.uwTickPrio,"aw" + 1224 .align 2 + 1227 uwTickPrio: + 1228 0000 10000000 .word 16 + 1229 .global uwTick + 1230 .section .bss.uwTick,"aw",%nobits + 1231 .align 2 + 1234 uwTick: + 1235 0000 00000000 .space 4 + 1236 .text + 1237 .Letext0: + 1238 .file 2 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1239 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1240 .file 4 "Drivers/CMSIS/Include/core_cm4.h" + 1241 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1242 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" + 1243 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + 1244 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h" + ARM GAS /tmp/ccDAvPw5.s page 36 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal.c + /tmp/ccDAvPw5.s:21 .text.HAL_MspInit:00000000 $t + /tmp/ccDAvPw5.s:27 .text.HAL_MspInit:00000000 HAL_MspInit + /tmp/ccDAvPw5.s:40 .text.HAL_MspDeInit:00000000 $t + /tmp/ccDAvPw5.s:46 .text.HAL_MspDeInit:00000000 HAL_MspDeInit + /tmp/ccDAvPw5.s:59 .text.HAL_DeInit:00000000 $t + /tmp/ccDAvPw5.s:65 .text.HAL_DeInit:00000000 HAL_DeInit + /tmp/ccDAvPw5.s:109 .text.HAL_DeInit:00000028 $d + /tmp/ccDAvPw5.s:114 .text.HAL_InitTick:00000000 $t + /tmp/ccDAvPw5.s:120 .text.HAL_InitTick:00000000 HAL_InitTick + /tmp/ccDAvPw5.s:197 .text.HAL_InitTick:00000044 $d + /tmp/ccDAvPw5.s:1220 .data.uwTickFreq:00000000 uwTickFreq + /tmp/ccDAvPw5.s:1227 .data.uwTickPrio:00000000 uwTickPrio + /tmp/ccDAvPw5.s:204 .text.HAL_Init:00000000 $t + /tmp/ccDAvPw5.s:210 .text.HAL_Init:00000000 HAL_Init + /tmp/ccDAvPw5.s:254 .text.HAL_IncTick:00000000 $t + /tmp/ccDAvPw5.s:260 .text.HAL_IncTick:00000000 HAL_IncTick + /tmp/ccDAvPw5.s:280 .text.HAL_IncTick:00000010 $d + /tmp/ccDAvPw5.s:1234 .bss.uwTick:00000000 uwTick + /tmp/ccDAvPw5.s:286 .text.HAL_GetTick:00000000 $t + /tmp/ccDAvPw5.s:292 .text.HAL_GetTick:00000000 HAL_GetTick + /tmp/ccDAvPw5.s:308 .text.HAL_GetTick:00000008 $d + /tmp/ccDAvPw5.s:313 .text.HAL_GetTickPrio:00000000 $t + /tmp/ccDAvPw5.s:319 .text.HAL_GetTickPrio:00000000 HAL_GetTickPrio + /tmp/ccDAvPw5.s:334 .text.HAL_GetTickPrio:00000008 $d + /tmp/ccDAvPw5.s:339 .text.HAL_SetTickFreq:00000000 $t + /tmp/ccDAvPw5.s:345 .text.HAL_SetTickFreq:00000000 HAL_SetTickFreq + /tmp/ccDAvPw5.s:402 .text.HAL_SetTickFreq:00000024 $d + /tmp/ccDAvPw5.s:408 .text.HAL_GetTickFreq:00000000 $t + /tmp/ccDAvPw5.s:414 .text.HAL_GetTickFreq:00000000 HAL_GetTickFreq + /tmp/ccDAvPw5.s:429 .text.HAL_GetTickFreq:00000008 $d + /tmp/ccDAvPw5.s:434 .text.HAL_Delay:00000000 $t + /tmp/ccDAvPw5.s:440 .text.HAL_Delay:00000000 HAL_Delay + /tmp/ccDAvPw5.s:493 .text.HAL_Delay:00000024 $d + /tmp/ccDAvPw5.s:498 .text.HAL_SuspendTick:00000000 $t + /tmp/ccDAvPw5.s:504 .text.HAL_SuspendTick:00000000 HAL_SuspendTick + /tmp/ccDAvPw5.s:522 .text.HAL_ResumeTick:00000000 $t + /tmp/ccDAvPw5.s:528 .text.HAL_ResumeTick:00000000 HAL_ResumeTick + /tmp/ccDAvPw5.s:546 .text.HAL_GetHalVersion:00000000 $t + /tmp/ccDAvPw5.s:552 .text.HAL_GetHalVersion:00000000 HAL_GetHalVersion + /tmp/ccDAvPw5.s:566 .text.HAL_GetHalVersion:00000004 $d + /tmp/ccDAvPw5.s:571 .text.HAL_GetREVID:00000000 $t + /tmp/ccDAvPw5.s:577 .text.HAL_GetREVID:00000000 HAL_GetREVID + /tmp/ccDAvPw5.s:594 .text.HAL_GetREVID:00000008 $d + /tmp/ccDAvPw5.s:599 .text.HAL_GetDEVID:00000000 $t + /tmp/ccDAvPw5.s:605 .text.HAL_GetDEVID:00000000 HAL_GetDEVID + /tmp/ccDAvPw5.s:622 .text.HAL_GetDEVID:0000000c $d + /tmp/ccDAvPw5.s:627 .text.HAL_DBGMCU_EnableDBGSleepMode:00000000 $t + /tmp/ccDAvPw5.s:633 .text.HAL_DBGMCU_EnableDBGSleepMode:00000000 HAL_DBGMCU_EnableDBGSleepMode + /tmp/ccDAvPw5.s:650 .text.HAL_DBGMCU_EnableDBGSleepMode:0000000c $d + /tmp/ccDAvPw5.s:655 .text.HAL_DBGMCU_DisableDBGSleepMode:00000000 $t + /tmp/ccDAvPw5.s:661 .text.HAL_DBGMCU_DisableDBGSleepMode:00000000 HAL_DBGMCU_DisableDBGSleepMode + /tmp/ccDAvPw5.s:678 .text.HAL_DBGMCU_DisableDBGSleepMode:0000000c $d + /tmp/ccDAvPw5.s:683 .text.HAL_DBGMCU_EnableDBGStopMode:00000000 $t + /tmp/ccDAvPw5.s:689 .text.HAL_DBGMCU_EnableDBGStopMode:00000000 HAL_DBGMCU_EnableDBGStopMode + /tmp/ccDAvPw5.s:706 .text.HAL_DBGMCU_EnableDBGStopMode:0000000c $d + ARM GAS /tmp/ccDAvPw5.s page 37 + + + /tmp/ccDAvPw5.s:711 .text.HAL_DBGMCU_DisableDBGStopMode:00000000 $t + /tmp/ccDAvPw5.s:717 .text.HAL_DBGMCU_DisableDBGStopMode:00000000 HAL_DBGMCU_DisableDBGStopMode + /tmp/ccDAvPw5.s:734 .text.HAL_DBGMCU_DisableDBGStopMode:0000000c $d + /tmp/ccDAvPw5.s:739 .text.HAL_DBGMCU_EnableDBGStandbyMode:00000000 $t + /tmp/ccDAvPw5.s:745 .text.HAL_DBGMCU_EnableDBGStandbyMode:00000000 HAL_DBGMCU_EnableDBGStandbyMode + /tmp/ccDAvPw5.s:762 .text.HAL_DBGMCU_EnableDBGStandbyMode:0000000c $d + /tmp/ccDAvPw5.s:767 .text.HAL_DBGMCU_DisableDBGStandbyMode:00000000 $t + /tmp/ccDAvPw5.s:773 .text.HAL_DBGMCU_DisableDBGStandbyMode:00000000 HAL_DBGMCU_DisableDBGStandbyMode + /tmp/ccDAvPw5.s:790 .text.HAL_DBGMCU_DisableDBGStandbyMode:0000000c $d + /tmp/ccDAvPw5.s:795 .text.HAL_SYSCFG_CCMSRAMErase:00000000 $t + /tmp/ccDAvPw5.s:801 .text.HAL_SYSCFG_CCMSRAMErase:00000000 HAL_SYSCFG_CCMSRAMErase + /tmp/ccDAvPw5.s:826 .text.HAL_SYSCFG_CCMSRAMErase:00000014 $d + /tmp/ccDAvPw5.s:831 .text.HAL_SYSCFG_EnableMemorySwappingBank:00000000 $t + /tmp/ccDAvPw5.s:837 .text.HAL_SYSCFG_EnableMemorySwappingBank:00000000 HAL_SYSCFG_EnableMemorySwappingBank + /tmp/ccDAvPw5.s:854 .text.HAL_SYSCFG_EnableMemorySwappingBank:0000000c $d + /tmp/ccDAvPw5.s:859 .text.HAL_SYSCFG_DisableMemorySwappingBank:00000000 $t + /tmp/ccDAvPw5.s:865 .text.HAL_SYSCFG_DisableMemorySwappingBank:00000000 HAL_SYSCFG_DisableMemorySwappingBank + /tmp/ccDAvPw5.s:882 .text.HAL_SYSCFG_DisableMemorySwappingBank:0000000c $d + /tmp/ccDAvPw5.s:887 .text.HAL_SYSCFG_VREFBUF_VoltageScalingConfig:00000000 $t + /tmp/ccDAvPw5.s:893 .text.HAL_SYSCFG_VREFBUF_VoltageScalingConfig:00000000 HAL_SYSCFG_VREFBUF_VoltageScalingConfig + /tmp/ccDAvPw5.s:913 .text.HAL_SYSCFG_VREFBUF_VoltageScalingConfig:00000010 $d + /tmp/ccDAvPw5.s:918 .text.HAL_SYSCFG_VREFBUF_HighImpedanceConfig:00000000 $t + /tmp/ccDAvPw5.s:924 .text.HAL_SYSCFG_VREFBUF_HighImpedanceConfig:00000000 HAL_SYSCFG_VREFBUF_HighImpedanceConfig + /tmp/ccDAvPw5.s:944 .text.HAL_SYSCFG_VREFBUF_HighImpedanceConfig:00000010 $d + /tmp/ccDAvPw5.s:949 .text.HAL_SYSCFG_VREFBUF_TrimmingConfig:00000000 $t + /tmp/ccDAvPw5.s:955 .text.HAL_SYSCFG_VREFBUF_TrimmingConfig:00000000 HAL_SYSCFG_VREFBUF_TrimmingConfig + /tmp/ccDAvPw5.s:975 .text.HAL_SYSCFG_VREFBUF_TrimmingConfig:00000010 $d + /tmp/ccDAvPw5.s:980 .text.HAL_SYSCFG_EnableVREFBUF:00000000 $t + /tmp/ccDAvPw5.s:986 .text.HAL_SYSCFG_EnableVREFBUF:00000000 HAL_SYSCFG_EnableVREFBUF + /tmp/ccDAvPw5.s:1041 .text.HAL_SYSCFG_EnableVREFBUF:00000030 $d + /tmp/ccDAvPw5.s:1046 .text.HAL_SYSCFG_DisableVREFBUF:00000000 $t + /tmp/ccDAvPw5.s:1052 .text.HAL_SYSCFG_DisableVREFBUF:00000000 HAL_SYSCFG_DisableVREFBUF + /tmp/ccDAvPw5.s:1069 .text.HAL_SYSCFG_DisableVREFBUF:0000000c $d + /tmp/ccDAvPw5.s:1074 .text.HAL_SYSCFG_EnableIOSwitchBooster:00000000 $t + /tmp/ccDAvPw5.s:1080 .text.HAL_SYSCFG_EnableIOSwitchBooster:00000000 HAL_SYSCFG_EnableIOSwitchBooster + /tmp/ccDAvPw5.s:1097 .text.HAL_SYSCFG_EnableIOSwitchBooster:0000000c $d + /tmp/ccDAvPw5.s:1102 .text.HAL_SYSCFG_DisableIOSwitchBooster:00000000 $t + /tmp/ccDAvPw5.s:1108 .text.HAL_SYSCFG_DisableIOSwitchBooster:00000000 HAL_SYSCFG_DisableIOSwitchBooster + /tmp/ccDAvPw5.s:1125 .text.HAL_SYSCFG_DisableIOSwitchBooster:0000000c $d + /tmp/ccDAvPw5.s:1130 .text.HAL_SYSCFG_EnableIOSwitchVDD:00000000 $t + /tmp/ccDAvPw5.s:1136 .text.HAL_SYSCFG_EnableIOSwitchVDD:00000000 HAL_SYSCFG_EnableIOSwitchVDD + /tmp/ccDAvPw5.s:1153 .text.HAL_SYSCFG_EnableIOSwitchVDD:0000000c $d + /tmp/ccDAvPw5.s:1158 .text.HAL_SYSCFG_DisableIOSwitchVDD:00000000 $t + /tmp/ccDAvPw5.s:1164 .text.HAL_SYSCFG_DisableIOSwitchVDD:00000000 HAL_SYSCFG_DisableIOSwitchVDD + /tmp/ccDAvPw5.s:1181 .text.HAL_SYSCFG_DisableIOSwitchVDD:0000000c $d + /tmp/ccDAvPw5.s:1186 .text.HAL_SYSCFG_CCMSRAM_WriteProtectionEnable:00000000 $t + /tmp/ccDAvPw5.s:1192 .text.HAL_SYSCFG_CCMSRAM_WriteProtectionEnable:00000000 HAL_SYSCFG_CCMSRAM_WriteProtectionEnable + /tmp/ccDAvPw5.s:1211 .text.HAL_SYSCFG_CCMSRAM_WriteProtectionEnable:0000000c $d + /tmp/ccDAvPw5.s:1217 .data.uwTickFreq:00000000 $d + /tmp/ccDAvPw5.s:1224 .data.uwTickPrio:00000000 $d + /tmp/ccDAvPw5.s:1231 .bss.uwTick:00000000 $d + +UNDEFINED SYMBOLS +HAL_SYSTICK_Config +HAL_NVIC_SetPriority +SystemCoreClock +HAL_NVIC_SetPriorityGrouping + ARM GAS /tmp/ccDAvPw5.s page 38 + + diff --git a/squeow_sw/build/stm32g4xx_hal.o b/squeow_sw/build/stm32g4xx_hal.o new file mode 100644 index 0000000000000000000000000000000000000000..95dd48650f31b795193a629e6ce2046331db92ec GIT binary patch literal 24220 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, (__VALUE +1570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Read a value in ADC register +1573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __INSTANCE__ ADC Instance +1574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __REG__ Register to be read +1575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Register value +1576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +1578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro +1583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get ADC channel number in decimal format +1588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from literals LL_ADC_CHANNEL_x. +1589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Example: +1590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4) +1591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will return decimal number "4". +1592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The input can be a value from functions where a channel +1593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number is returned, either defined with number +1594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or with bitfield (only one bit must be set). +1595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: +1596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +1600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + ARM GAS /tmp/ccICigVb.s page 30 + + +1626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0 and Max_Data=18 +1638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \ +1640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__CHANNEL__) & ADC_CHANNEL_ID_BITFIELD_MASK) == 0UL) ? \ +1641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +1642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS \ +1643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +1645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +1646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (uint32_t)POSITION_VAL((__CHANNEL__)) \ +1647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x +1652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from number in decimal format. +1653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Example: +1654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4) +1655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will return a data equivalent to "LL_ADC_CHANNEL_4". +1656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18 +1657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +1658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +1662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + ARM GAS /tmp/ccICigVb.s page 31 + + +1683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +1700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +1701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +1702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) +1704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__DECIMAL_NB__) <= 9UL) ? +1705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( +1706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | +1707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | +1708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_SMPR1_REGOFFSET | (((3UL * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +1709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : +1711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( +1712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +1713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) +1714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_SMPR2_REGOFFSET | (((3UL * ((__DECIMAL_NB__) - 10UL))) << ADC_CHANNEL_SMPx_BITOFFSET_PO +1715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to determine whether the selected channel +1720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * corresponds to literal definitions of driver. +1721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The different literal definitions of ADC channels are: +1722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC internal channel: +1723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ... +1724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC external channel (channel connected to a GPIO pin): +1725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ... +1726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The channel parameter must be a value defined from literal +1727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, +1728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_TEMPSENSOR, ...), +1729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...), +1730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * must not be a value from functions where a channel number is +1731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * returned from ADC registers, +1732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * because internal and external channels share the same channel +1733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number in ADC registers. The differentiation is made only with +1734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameters definitions of driver. +1735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: +1736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) + ARM GAS /tmp/ccICigVb.s page 32 + + +1740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channe +1778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if the channel corresponds to a parameter definition of a ADC internal channe +1779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \ +1781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0UL) +1782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to convert a channel defined from parameter +1785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, +1786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_TEMPSENSOR, ...), +1787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to its equivalent parameter definition of a ADC external channel +1788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...). +1789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The channel parameter can be, additionally to a value +1790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined from parameter definition of a ADC internal channel +1791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...), +1792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a value defined from parameter definition of +1793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...) +1794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or a value from functions where a channel number is returned +1795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC registers. +1796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: + ARM GAS /tmp/ccICigVb.s page 33 + + +1797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +1801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +1839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 +1841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 +1842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 +1843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 +1844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 +1845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 + ARM GAS /tmp/ccICigVb.s page 34 + + +1854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \ +1860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK) +1861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to determine whether the internal channel +1864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * selected is available on the ADC instance selected. +1865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The channel parameter must be a value defined from parameter +1866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, +1867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_TEMPSENSOR, ...), +1868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * must not be a value defined from parameter definition of +1869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...) +1870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or a value from functions where a channel number is +1871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * returned from ADC registers, +1872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * because internal and external channels share the same channel +1873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number in ADC registers. The differentiation is made only with +1874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameters definitions of driver. +1875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_INSTANCE__ ADC instance +1876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: +1877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if the internal channel selected is not available on the ADC instance selecte +1898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if the internal channel selected is available on the ADC instance selected. +1899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +1901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ + ARM GAS /tmp/ccICigVb.s page 35 + + +1911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +1914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +1915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC3) \ +1919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ +1921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC4) \ +1927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP6) || \ +1929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC5) \ +1934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP5) || \ +1936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC5) || \ +1937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP4) || \ +1938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #elif defined(STM32G471xx) +1944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +1957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +1958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC3) \ +1962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ +1964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ + ARM GAS /tmp/ccICigVb.s page 36 + + +1968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #elif defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +1970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +1983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +1984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #elif defined(STM32G491xx) || defined(STM32G4A1xx) +1988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +2000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +2001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +2002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +2005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC3) \ +2006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +2007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ +2008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP6) || \ +2009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +2010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif +2014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to define ADC analog watchdog parameter: +2017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * define a single channel to monitor with analog watchdog +2018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from sequencer channel and groups definition. +2019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels(). +2020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: +2021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_SetAnalogWDMonitChannels( +2022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC1, LL_ADC_AWD1, +2023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR)) +2024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: + ARM GAS /tmp/ccICigVb.s page 37 + + +2025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +2026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +2027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +2028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +2029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +2030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +2031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +2032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +2033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +2034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +2035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +2036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +2037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +2038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +2039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +2040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +2041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +2042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +2043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +2044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +2045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +2046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +2047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +2048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +2049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +2050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +2051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +2052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +2053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +2054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +2055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +2056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +2057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +2058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +2059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +2060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +2061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +2062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +2063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +2064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +2065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +2066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +2067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +2068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +2069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __GROUP__ This parameter can be one of the following values: +2070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_GROUP_REGULAR +2071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_GROUP_INJECTED +2072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED +2073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +2074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_DISABLE +2075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) +2076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) +2077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ +2078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) +2079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) +2080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ +2081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) + ARM GAS /tmp/ccICigVb.s page 38 + + +2082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) +2083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ +2084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) +2085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) +2086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ +2087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) +2088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) +2089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ +2090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) +2091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) +2092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ +2093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) +2094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) +2095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ +2096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) +2097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) +2098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ +2099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) +2100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) +2101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ +2102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) +2103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) +2104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ +2105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) +2106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) +2107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ +2108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) +2109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) +2110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ +2111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) +2112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) +2113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ +2114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) +2115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) +2116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ +2117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) +2118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) +2119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ +2120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) +2121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) +2122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ +2123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) +2124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) +2125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ +2126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) +2127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) +2128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ +2129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) +2130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) +2131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ +2132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) +2133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) +2134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ +2135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0) +2136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0) +2137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ +2138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG (0)(1) + ARM GAS /tmp/ccICigVb.s page 39 + + +2139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ (0)(1) +2140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ (1) +2141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG (0)(5) +2142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ (0)(5) +2143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ (5) +2144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(6) +2145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(6) +2146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (6) +2147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1) +2148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1) +2149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1) +2150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2) +2151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2) +2152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2) +2153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG (0)(2) +2154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ (0)(2) +2155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ (2) +2156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG (0)(3) +2157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ (0)(3) +2158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ (3) +2159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(5) +2160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(5) +2161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (5) +2162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG (0)(5) +2163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_INJ (0)(5) +2164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG_INJ (5) +2165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG (0)(4) +2166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_INJ (0)(4) +2167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG_INJ (4) +2168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +2169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (0) On STM32G4, parameter available only on analog watchdog number: AWD1.\n +2170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +2171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +2172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +2173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +2174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +2175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +2176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +2177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +2178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) +2180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__GROUP__) == LL_ADC_GROUP_REGULAR) +2181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +2182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : +2183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__GROUP__) == LL_ADC_GROUP_INJECTED) +2184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) +2185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : +2186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +2187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to set the value of ADC analog watchdog threshold high +2191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or low in function of ADC resolution, when ADC resolution is +2192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * different of 12 bits. +2193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_ConfigAnalogWDThresholds() +2194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or @ref LL_ADC_SetAnalogWDThresholds(). +2195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, with a ADC resolution of 8 bits, to set the value of + ARM GAS /tmp/ccICigVb.s page 40 + + +2196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog threshold high (on 8 bits): +2197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_SetAnalogWDThresholds +2198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (< ADCx param >, +2199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, > (ADC_CFGR_RES_BITOFFSET_POS - 1U ))) +2211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get the value of ADC analog watchdog threshold high +2214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or low in function of ADC resolution, when ADC resolution is +2215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * different of 12 bits. +2216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds(). +2217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, with a ADC resolution of 8 bits, to get the value of +2218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog threshold high (on 8 bits): +2219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION +2220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_RESOLUTION_8B, +2221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_GetAnalogWDThresholds(, LL_ADC_AWD_THRESHOLD_HIGH) +2222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ); +2223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF +2229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +2230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \ +2232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U ))) +2233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get the ADC analog watchdog threshold high +2236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or low from raw value containing both thresholds concatenated. +2237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds(). +2238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, to get analog watchdog threshold high from the register raw value: +2239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(LL_ADC_AWD_THRESHOLD_HIGH, > (((__AWD_THRESHOLD_TYPE__) & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_ +2248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to set the ADC calibration value with both single ended +2251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and differential modes calibration factors concatenated. +2252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_SetCalibrationFactor(). + ARM GAS /tmp/ccICigVb.s page 41 + + +2253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, to set calibration factors single ended to 0x55 +2254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and differential ended to 0x2A: +2255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_SetCalibrationFactor( +2256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC1, +2257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(0x55, 0x2A)) +2258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CALIB_FACTOR_SINGLE_ENDED__ Value between Min_Data=0x00 and Max_Data=0x7F +2259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CALIB_FACTOR_DIFFERENTIAL__ Value between Min_Data=0x00 and Max_Data=0x7F +2260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +2261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(__CALIB_FACTOR_SINGLE_ENDED__, __CALIB_FACTOR_DIFFERENTIA +2263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__CALIB_FACTOR_DIFFERENTIAL__) << ADC_CALFACT_CALFACT_D_Pos) | (__CALIB_FACTOR_SINGLE_ENDED__) +2264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +2266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get the ADC multimode conversion data of ADC master +2268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or ADC slave from raw value with both ADC conversion data concatenated. +2269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This macro is intended to be used when multimode transfer by DMA +2270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer(). +2271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In this case the transferred data need to processed with this macro +2272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to separate the conversion data of ADC master and ADC slave. +2273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values: +2274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_MASTER +2275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_SLAVE +2276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF +2277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +2278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) +2280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_MULTI_CONV_DATA__) >> ((ADC_CDR_RDATA_SLV_Pos) & ~(__ADC_MULTI_MASTER_SLAVE__))) & ADC_C +2281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +2282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +2284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to select, from a ADC instance, to which ADC instance +2286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * it has a dependence in multimode (ADC master of the corresponding +2287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC common instance). +2288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of device with multimode available and a mix of +2289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instances compliant and not compliant with multimode feature, +2290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instances not compliant with multimode feature are +2291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * considered as master instances (do not depend to +2292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * any other ADC instance). +2293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADCx__ ADC instance +2294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval __ADCx__ ADC instance master of the corresponding ADC common instance +2295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC5) +2297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_MULTI_INSTANCE_MASTER(__ADCx__) \ +2298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( ( ((__ADCx__) == ADC2) \ +2299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** )? \ +2300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC1) \ +2301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( ( ((__ADCx__) == ADC4) \ +2303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** )? \ +2304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC3) \ +2305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADCx__) \ +2307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else + ARM GAS /tmp/ccICigVb.s page 42 + + +2310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_MULTI_INSTANCE_MASTER(__ADCx__) \ +2311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( ( ((__ADCx__) == ADC2) \ +2312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** )? \ +2313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC1) \ +2314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADCx__) \ +2316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC5 */ +2318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +2319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to select the ADC common instance +2322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to which is belonging the selected ADC instance. +2323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC common register instance can be used for: +2324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Set parameters common to several ADC instances +2325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Multimode (for devices with several ADC instances) +2326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to functions having argument "ADCxy_COMMON" as parameter. +2327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADCx__ ADC instance +2328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC common register instance +2329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC345_COMMON) +2331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \ +2332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADCx__) == ADC1) || ((__ADCx__) == ADC2)) \ +2333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? ( \ +2334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC12_COMMON) \ +2335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +2338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC345_COMMON) \ +2339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_COMMON_INSTANCE(__ADCx__) (ADC12_COMMON) +2343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC345_COMMON */ +2344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to check if all ADC instances sharing the same +2346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC common instance are disabled. +2347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This check is required by functions with setting conditioned to +2348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +2350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to functions having argument "ADCxy_COMMON" as parameter. +2351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On devices with only 1 ADC common instance, parameter of this macro +2352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is useless and can be ignored (parameter kept for compatibility +2353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with devices featuring several ADC common instances). +2354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADCXY_COMMON__ ADC common instance +2355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if all ADC instances sharing the same ADC common instance +2357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are disabled. +2358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if at least one ADC instance sharing the same ADC common instance +2359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled. +2360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC345_COMMON) +2362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC4) && defined(ADC5) +2363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ +2364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADCXY_COMMON__) == ADC12_COMMON) \ +2365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? ( \ +2366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC1) | \ + ARM GAS /tmp/ccICigVb.s page 43 + + +2367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC2) ) \ +2368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +2371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC3) | \ +2372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC4) | \ +2373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC5) ) \ +2374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ +2378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADCXY_COMMON__) == ADC12_COMMON) \ +2379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? ( \ +2380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC1) | \ +2381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC2) ) \ +2382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC3)) \ +2385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC4 && ADC5 */ +2387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ +2389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC1) | LL_ADC_IsEnabled(ADC2)) +2390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif +2391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to define the ADC conversion data full-scale digital +2394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * value corresponding to the selected ADC resolution. +2395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC conversion data full-scale corresponds to voltage range +2396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * determined by analog voltage references Vref+ and Vref- +2397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (refer to reference manual). +2398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC conversion data full-scale digital value (unit: digital value of ADC conversion dat +2404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ +2406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (0xFFFUL >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL))) +2407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to convert the ADC conversion data from +2410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a resolution to another resolution. +2411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __DATA__ ADC conversion data to be converted +2412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION_CURRENT__ Resolution of the data to be converted +2413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion +2419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B + ARM GAS /tmp/ccICigVb.s page 44 + + +2424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC conversion data to the requested resolution +2425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\ +2427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION_CURRENT__,\ +2428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION_TARGET__) \ +2429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__DATA__) \ +2430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL))) \ +2431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL)) \ +2432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate the voltage (unit: mVolt) +2436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * corresponding to a ADC conversion data (unit: digital value). +2437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Analog reference voltage (Vref+) must be either known from +2438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * user board environment or can be calculated using ADC measurement +2439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). +2440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) +2441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_DATA__ ADC conversion data (resolution 12 bits) +2442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: digital value). +2443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC conversion data equivalent voltage value (unit: mVolt) +2449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ +2451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_DATA__,\ +2452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ +2453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \ +2454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ +2455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate analog reference voltage (Vref+) +2459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: mVolt) from ADC conversion data of internal voltage +2460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * reference VrefInt. +2461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Computation is using VrefInt calibration value +2462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * stored in system memory for each device during production. +2463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This voltage depends on user board environment: voltage level +2464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * connected to pin Vref+. +2465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On devices with small package, the pin Vref+ is not present +2466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and internally bonded to pin Vdda. +2467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, calibration data of internal voltage reference +2468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * VrefInt corresponds to a resolution of 12 bits, +2469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this is the recommended ADC resolution to convert voltage of +2470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal voltage reference VrefInt. +2471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Otherwise, this macro performs the processing to scale +2472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion data to 12 bits. +2473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits) +2474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of internal voltage reference VrefInt (unit: digital value). +2475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Analog reference voltage (unit: mV) + ARM GAS /tmp/ccICigVb.s page 45 + + +2481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\ +2483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ +2484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \ +2485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \ +2486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADC_RESOLUTION__), \ +2487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_RESOLUTION_12B) \ +2488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate the temperature (unit: degree Celsius) +2492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC conversion data of internal temperature sensor. +2493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Computation is using temperature sensor calibration values +2494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * stored in system memory for each device during production. +2495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Calculation formula: +2496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Temperature = ((TS_ADC_DATA - TS_CAL1) +2497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * * (TS_CAL2_TEMP - TS_CAL1_TEMP)) +2498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP +2499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with TS_ADC_DATA = temperature sensor raw data measured by ADC +2500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Avg_Slope = (TS_CAL2 - TS_CAL1) +2501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * / (TS_CAL2_TEMP - TS_CAL1_TEMP) +2502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_CAL1 = equivalent TS_ADC_DATA at temperature +2503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TEMP_DEGC_CAL1 (calibrated in factory) +2504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_CAL2 = equivalent TS_ADC_DATA at temperature +2505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TEMP_DEGC_CAL2 (calibrated in factory) +2506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Caution: Calculation relevancy under reserve that calibration +2507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameters are correct (address and data). +2508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * To calculate temperature using temperature sensor +2509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * datasheet typical values (generic values less, therefore +2510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * less accurate than calibrated values), +2511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(). +2512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note As calculation input, the analog reference voltage (Vref+) must be +2513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined as it impacts the ADC LSB equivalent voltage. +2514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Analog reference voltage (Vref+) must be either known from +2515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * user board environment or can be calculated using ADC measurement +2516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). +2517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, calibration data of temperature sensor +2518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * corresponds to a resolution of 12 bits, +2519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this is the recommended ADC resolution to convert voltage of +2520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor. +2521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Otherwise, this macro performs the processing to scale +2522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion data to 12 bits. +2523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) +2524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal +2525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor (unit: digital value). +2526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature +2527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sensor voltage has been measured. +2528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Temperature (unit: degree Celsius) +2534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\ +2536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_ADC_DATA__,\ +2537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ + ARM GAS /tmp/ccICigVb.s page 46 + + +2538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \ +2539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADC_RESOLUTION__), \ +2540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_RESOLUTION_12B) \ +2541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (__VREFANALOG_VOLTAGE__)) \ +2542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / TEMPSENSOR_CAL_VREFANALOG) \ +2543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** - (int32_t) *TEMPSENSOR_CAL1_ADDR) \ +2544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \ +2545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \ +2546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) + TEMPSENSOR_CAL1_TEMP \ +2547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate the temperature (unit: degree Celsius) +2551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC conversion data of internal temperature sensor. +2552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Computation is using temperature sensor typical values +2553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (refer to device datasheet). +2554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Calculation formula: +2555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV) +2556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * / Avg_Slope + CALx_TEMP +2557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with TS_ADC_DATA = temperature sensor raw data measured by ADC +2558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: digital value) +2559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Avg_Slope = temperature sensor slope +2560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: uV/Degree Celsius) +2561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_TYP_CALx_VOLT = temperature sensor digital value at +2562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature CALx_TEMP (unit: mV) +2563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Caution: Calculation relevancy under reserve the temperature sensor +2564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of the current device has characteristics in line with +2565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * datasheet typical values. +2566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If temperature sensor calibration values are available on +2567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()), +2568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature calculation will be more accurate using +2569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CALC_TEMPERATURE(). +2570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note As calculation input, the analog reference voltage (Vref+) must be +2571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined as it impacts the ADC LSB equivalent voltage. +2572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Analog reference voltage (Vref+) must be either known from +2573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * user board environment or can be calculated using ADC measurement +2574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). +2575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC measurement data must correspond to a resolution of 12 bits +2576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (full scale digital value 4095). If not the case, the data must be +2577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * preliminarily rescaled to an equivalent resolution of 12 bits. +2578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical v +2579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On STM32G4, refer to device datasheet parameter "Avg_Slop +2580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical +2581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On STM32G4, refer to device datasheet parameter "V30" (co +2582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature s +2583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV) +2584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: +2585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor volta +2586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Temperature (unit: degree Celsius) +2592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\ +2594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_TYP_CALX_V__,\ + ARM GAS /tmp/ccICigVb.s page 47 + + +2595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_CALX_TEMP__,\ +2596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __VREFANALOG_VOLTAGE__,\ +2597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_ADC_DATA__,\ +2598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ +2599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((((int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \ +2600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \ +2601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1000UL) \ +2602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** - \ +2603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \ +2604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1000UL) \ +2605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) / (int32_t)(__TEMPSENSOR_TYP_AVGSLOPE__) \ +2607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) + (int32_t)(__TEMPSENSOR_CALX_TEMP__) \ +2608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Exported functions --------------------------------------------------------*/ +2620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions +2621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management +2625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: LL ADC functions to set DMA transfer are located into sections of */ +2628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* configuration of ADC instance, groups and multimode (if available): */ +2629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* @ref LL_ADC_REG_SetDMATransfer(), ... */ +2630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Function to help to configure DMA transfer from ADC: retrieve the +2633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC register address from ADC instance and a list of ADC registers +2634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * intended to be used (most commonly) with DMA transfer. +2635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note These ADC registers are data registers: +2636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when ADC conversion data is available in ADC data registers, +2637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC generates a DMA transfer request. +2638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This macro is intended to be used with LL DMA driver, refer to +2639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_DMA_ConfigAddresses()". +2640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: +2641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_DMA_ConfigAddresses(DMA1, +2642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_DMA_CHANNEL_1, +2643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA), +2644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (uint32_t)&< array or variable >, +2645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_DMA_DIRECTION_PERIPH_TO_MEMORY); +2646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with several ADC: in multimode, some devices +2647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use a different data register outside of ADC instance scope +2648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (common data register). This macro manages this register difference, +2649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * only ADC instance has to be set as parameter. +2650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_DMA_GetRegAddr\n +2651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CDR RDATA_MST LL_ADC_DMA_GetRegAddr\n + ARM GAS /tmp/ccICigVb.s page 48 + + +2652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CDR RDATA_SLV LL_ADC_DMA_GetRegAddr +2653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Register This parameter can be one of the following values: +2655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA +2656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1) +2657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +2658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) Available on devices with several ADC instances. +2659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC register address +2660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +2662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register) +2663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t data_reg_addr; +2665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (Register == LL_ADC_DMA_REG_REGULAR_DATA) +2667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve address of register DR */ +2669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** data_reg_addr = (uint32_t) &(ADCx->DR); +2670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */ +2672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve address of register CDR */ +2674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** data_reg_addr = (uint32_t) &((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR); +2675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return data_reg_addr; +2678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register) +2681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Prevent unused argument(s) compilation warning */ +2683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (void)(Register); +2684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve address of register DR */ +2686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) &(ADCx->DR); +2687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +2689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to +2695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: Clock source and prescaler. +2700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, if ADC group injected is used, some +2701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * clock ratio constraints between ADC clock and AHB clock +2702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * must be respected. +2703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual. +2704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +2707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This check can be done with function @ref LL_ADC_IsEnabled() for each +2708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance or by using helper macro helper macro + ARM GAS /tmp/ccICigVb.s page 49 + + +2709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). +2710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR CKMODE LL_ADC_SetCommonClock\n +2711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR PRESC LL_ADC_SetCommonClock +2712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param CommonClock This parameter can be one of the following values: +2715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1 +2716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2 +2717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4 +2718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1 +2719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2 +2720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4 +2721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6 +2722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8 +2723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10 +2724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12 +2725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16 +2726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32 +2727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64 +2728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 +2729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 +2730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock) +2733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC, CommonClock); +2735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get parameter common to several ADC: Clock source and prescaler. +2739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR CKMODE LL_ADC_GetCommonClock\n +2740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR PRESC LL_ADC_GetCommonClock +2741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +2744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1 +2745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2 +2746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4 +2747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1 +2748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2 +2749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4 +2750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6 +2751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8 +2752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10 +2753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12 +2754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16 +2755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32 +2756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64 +2757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 +2758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 +2759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON) +2761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC)); +2763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 50 + + +2766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: measurement path to +2767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal channels (VrefInt, temperature sensor, ...). +2768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Configure all paths (overwrite current configuration). +2769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * The values not selected are removed from configuration. +2773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Stabilization time of measurement path to internal channel: +2774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * After enabling internal paths, before starting ADC conversion, +2775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a delay is required for internal voltage reference and +2776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor stabilization time. +2777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US. +2779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US. +2780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC internal channel sampling time constraint: +2781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For ADC conversion of internal channels, +2782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a sampling time minimum value is required. +2783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalCh\n +2785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_SetCommonPathInternalCh\n +2786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_SetCommonPathInternalCh +2787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param PathInternal This parameter can be a combination of the following values: +2790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Path +2797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSEL, PathInternal) +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: measurement path to +2803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal channels (VrefInt, temperature sensor, ...). +2804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Add paths to the current configuration. +2805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Stabilization time of measurement path to internal channel: +2809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * After enabling internal paths, before starting ADC conversion, +2810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a delay is required for internal voltage reference and +2811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor stabilization time. +2812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US. +2814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US. +2815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC internal channel sampling time constraint: +2816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For ADC conversion of internal channels, +2817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a sampling time minimum value is required. +2818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalChAdd\n +2820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_SetCommonPathInternalChAdd\n +2821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_SetCommonPathInternalChAdd +2822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance + ARM GAS /tmp/ccICigVb.s page 51 + + +2823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param PathInternal This parameter can be a combination of the following values: +2825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonPathInternalChAdd(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t P +2832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCxy_COMMON->CCR, PathInternal); +2834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: measurement path to +2838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal channels (VrefInt, temperature sensor, ...). +2839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Remove paths to the current configuration. +2840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalChRem\n +2844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_SetCommonPathInternalChRem\n +2845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_SetCommonPathInternalChRem +2846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param PathInternal This parameter can be a combination of the following values: +2849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonPathInternalChRem(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t P +2856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCxy_COMMON->CCR, PathInternal); +2858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get parameter common to several ADC: measurement path to internal +2862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channels (VrefInt, temperature sensor, ...). +2863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_GetCommonPathInternalCh\n +2867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_GetCommonPathInternalCh\n +2868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_GetCommonPathInternalCh +2869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be a combination of the following values: +2872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON) +2878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSE + ARM GAS /tmp/ccICigVb.s page 52 + + +2880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC ins +2887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC calibration factor in the mode single-ended +2892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or differential (for devices with differential mode available). +2893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function is intended to set calibration parameters +2894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without having to perform a new calibration using +2895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref LL_ADC_StartCalibration(). +2896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with differential mode available: +2897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Calibration of offset is specific to each of +2898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * single-ended and differential modes +2899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (calibration factor must be specified for each of these +2900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * differential modes, if used afterwards and if the application +2901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * requires their calibration). +2902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of setting calibration factors of both modes single ended +2903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and differential (parameter LL_ADC_BOTH_SINGLE_DIFF_ENDED): +2904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * both calibration factors must be concatenated. +2905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * To perform this processing, use helper macro +2906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(). +2907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled, without calibration on going, without conversion +2910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on group regular. +2911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CALFACT CALFACT_S LL_ADC_SetCalibrationFactor\n +2912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CALFACT CALFACT_D LL_ADC_SetCalibrationFactor +2913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be one of the following values: +2915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +2916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +2917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_BOTH_SINGLE_DIFF_ENDED +2918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x7F +2919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff, uint32_t C +2922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CALFACT, +2924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK, +2925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CalibrationFactor << (((SingleDiff & ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK) >> ADC_SINGLED +2926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC calibration factor in the mode single-ended +2930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or differential (for devices with differential mode available). +2931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Calibration factors are set by hardware after performing +2932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a calibration run using function @ref LL_ADC_StartCalibration(). +2933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with differential mode available: +2934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Calibration of offset is specific to each of +2935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * single-ended and differential modes +2936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CALFACT CALFACT_S LL_ADC_GetCalibrationFactor\n + ARM GAS /tmp/ccICigVb.s page 53 + + +2937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CALFACT CALFACT_D LL_ADC_GetCalibrationFactor +2938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be one of the following values: +2940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +2941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +2942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0x7F +2943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff) +2945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve bits with position in register depending on parameter */ +2947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "SingleDiff". */ +2948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameter used with mask "ADC_SINGLEDIFF_CALIB_FACTOR_MASK" because */ +2949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +2950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CALFACT, +2951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> ((SingleDiff & ADC +2952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SINGLEDIFF_CA +2953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC resolution. +2957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual for alignments formats +2958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +2959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +2962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +2963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR RES LL_ADC_SetResolution +2964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Resolution This parameter can be one of the following values: +2966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution) +2973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_RES, Resolution); +2975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC resolution. +2979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual for alignments formats +2980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +2981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR RES LL_ADC_GetResolution +2982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +2984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx) +2990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_RES)); +2992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/ccICigVb.s page 54 + + +2994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC conversion data alignment. +2996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to reference manual for alignments formats +2997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +2998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR ALIGN LL_ADC_SetDataAlignment +3003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param DataAlignment This parameter can be one of the following values: +3005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_RIGHT +3006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_LEFT +3007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment) +3010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_ALIGN, DataAlignment); +3012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC conversion data alignment. +3016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to reference manual for alignments formats +3017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +3018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR ALIGN LL_ADC_GetDataAlignment +3019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_RIGHT +3022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_LEFT +3023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx) +3025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_ALIGN)); +3027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC low power mode. +3031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC low power modes: +3032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto wait": Dynamic low power mode, +3033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions occurrences are limited to the minimum necessary +3034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in order to reduce power consumption. +3035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * New ADC conversion starts only when the previous +3036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * unitary conversion data (for ADC group regular) +3037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or previous sequence conversions data (for ADC group injected) +3038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * has been retrieved by user software. +3039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In the meantime, ADC remains idle: does not performs any +3040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * other conversion. +3041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This mode allows to automatically adapt the ADC conversions +3042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * triggers to the speed of the software that reads the data. +3043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Moreover, this avoids risk of overrun for low frequency +3044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * applications. +3045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * How to use this low power mode: +3046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - It is not recommended to use with interruption or DMA +3047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * since these modes have to clear immediately the EOC flag +3048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (by CPU to free the IRQ pending event or by DMA). +3049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Auto wait will work but fort a very short time, discarding +3050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * its intended benefit (except specific case of high load of CPU + ARM GAS /tmp/ccICigVb.s page 55 + + +3051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or DMA transfers which can justify usage of auto wait). +3052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Do use with polling: 1. Start conversion, +3053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 2. Later on, when conversion data is needed: poll for end of +3054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversion to ensure that conversion is completed and +3055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * retrieve ADC conversion data. This will trig another +3056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion start. +3057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto power-off" (feature available on +3058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this device if parameter LL_ADC_LP_AUTOPOWEROFF is available): +3059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the ADC automatically powers-off after a conversion and +3060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * automatically wakes up when a new conversion is triggered +3061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (with startup time between trigger and start of sampling). +3062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This feature can be combined with low power mode "auto wait". +3063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note With ADC low power mode "auto wait", the ADC conversion data read +3064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is corresponding to previous ADC conversion start, independently +3065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of delay during which ADC was idle. +3066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, the ADC conversion data may be outdated: does not +3067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * correspond to the current voltage level on the selected +3068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +3069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AUTDLY LL_ADC_SetLowPowerMode +3074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param LowPowerMode This parameter can be one of the following values: +3076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_MODE_NONE +3077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_AUTOWAIT +3078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetLowPowerMode(ADC_TypeDef *ADCx, uint32_t LowPowerMode) +3081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_AUTDLY, LowPowerMode); +3083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC low power mode: +3087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC low power modes: +3088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto wait": Dynamic low power mode, +3089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions occurrences are limited to the minimum necessary +3090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in order to reduce power consumption. +3091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * New ADC conversion starts only when the previous +3092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * unitary conversion data (for ADC group regular) +3093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or previous sequence conversions data (for ADC group injected) +3094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * has been retrieved by user software. +3095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In the meantime, ADC remains idle: does not performs any +3096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * other conversion. +3097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This mode allows to automatically adapt the ADC conversions +3098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * triggers to the speed of the software that reads the data. +3099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Moreover, this avoids risk of overrun for low frequency +3100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * applications. +3101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * How to use this low power mode: +3102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - It is not recommended to use with interruption or DMA +3103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * since these modes have to clear immediately the EOC flag +3104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (by CPU to free the IRQ pending event or by DMA). +3105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Auto wait will work but fort a very short time, discarding +3106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * its intended benefit (except specific case of high load of CPU +3107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or DMA transfers which can justify usage of auto wait). + ARM GAS /tmp/ccICigVb.s page 56 + + +3108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Do use with polling: 1. Start conversion, +3109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 2. Later on, when conversion data is needed: poll for end of +3110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversion to ensure that conversion is completed and +3111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * retrieve ADC conversion data. This will trig another +3112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion start. +3113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto power-off" (feature available on +3114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this device if parameter LL_ADC_LP_AUTOPOWEROFF is available): +3115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the ADC automatically powers-off after a conversion and +3116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * automatically wakes up when a new conversion is triggered +3117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (with startup time between trigger and start of sampling). +3118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This feature can be combined with low power mode "auto wait". +3119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note With ADC low power mode "auto wait", the ADC conversion data read +3120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is corresponding to previous ADC conversion start, independently +3121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of delay during which ADC was idle. +3122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, the ADC conversion data may be outdated: does not +3123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * correspond to the current voltage level on the selected +3124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +3125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AUTDLY LL_ADC_GetLowPowerMode +3126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_MODE_NONE +3129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_AUTOWAIT +3130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetLowPowerMode(ADC_TypeDef *ADCx) +3132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_AUTDLY)); +3134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC selected offset number 1, 2, 3 or 4. +3138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the 2 items of offset configuration: +3139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC channel to which the offset programmed will be applied +3140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (independently of channel mapped on ADC group regular +3141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or group injected) +3142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Offset level (offset to be subtracted from the raw +3143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * converted data). +3144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Caution: Offset format is dependent to ADC resolution: +3145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset has to be left-aligned on bit 11, the LSB (right bits) +3146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are set to 0. +3147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function enables the offset, by default. It can be forced +3148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to disable state using function LL_ADC_SetOffsetState(). +3149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If a channel is mapped on several offsets numbers, only the offset +3150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with the lowest value is considered for the subtraction. +3151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +3156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +3157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_CH LL_ADC_SetOffset\n +3158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR1 OFFSET1 LL_ADC_SetOffset\n +3159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR1 OFFSET1_EN LL_ADC_SetOffset\n +3160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_CH LL_ADC_SetOffset\n +3161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2 LL_ADC_SetOffset\n +3162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_EN LL_ADC_SetOffset\n +3163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_CH LL_ADC_SetOffset\n +3164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3 LL_ADC_SetOffset\n + ARM GAS /tmp/ccICigVb.s page 57 + + +3165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_EN LL_ADC_SetOffset\n +3166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_CH LL_ADC_SetOffset\n +3167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4 LL_ADC_SetOffset\n +3168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_EN LL_ADC_SetOffset +3169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +3176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +3177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +3178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +3179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +3180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +3181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +3182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +3183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +3184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +3185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +3186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +3187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +3188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +3189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +3190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +3191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +3192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +3193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +3194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +3195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +3196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +3197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +3198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +3199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +3200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +3201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +3202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +3203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +3204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +3205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +3206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +3208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +3209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +3210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +3211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +3212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +3213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +3214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +3215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +3216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +3217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF +3218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32 +3221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/ccICigVb.s page 58 + + +3222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, +3226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | (Channel & ADC_CHANNEL_ID_NUMBER_MASK) | OffsetLevel); +3227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channel to which the offset programmed will be applied +3232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (independently of channel mapped on ADC group regular +3233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or group injected) +3234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +3235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +3236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +3237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +3238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +3239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +3240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +3241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +3242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +3243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +3244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +3245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +3246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +3247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_CH LL_ADC_GetOffsetChannel\n +3248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_CH LL_ADC_GetOffsetChannel\n +3249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_CH LL_ADC_GetOffsetChannel\n +3250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_CH LL_ADC_GetOffsetChannel +3251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +3259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +3260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +3261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +3262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +3263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +3264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +3265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +3266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +3267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +3268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +3269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +3270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +3271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +3272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +3273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +3274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +3275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +3276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +3277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +3278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) + ARM GAS /tmp/ccICigVb.s page 59 + + +3279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +3280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +3281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +3282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +3283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +3284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +3285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +3286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +3287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +3288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +3290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +3291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +3292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +3293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +3294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +3295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +3296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +3297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +3298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +3299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +3300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +3301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +3302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetChannel(ADC_TypeDef *ADCx, uint32_t Offsety) +3304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_CH); +3308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Offset level (offset to be subtracted from the raw +3313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * converted data). +3314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Caution: Offset format is dependent to ADC resolution: +3315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset has to be left-aligned on bit 11, the LSB (right bits) +3316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are set to 0. +3317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1 LL_ADC_GetOffsetLevel\n +3318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2 LL_ADC_GetOffsetLevel\n +3319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3 LL_ADC_GetOffsetLevel\n +3320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4 LL_ADC_GetOffsetLevel +3321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +3328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetLevel(ADC_TypeDef *ADCx, uint32_t Offsety) +3330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1); +3334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/ccICigVb.s page 60 + + +3336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set for the ADC selected offset number 1, 2, 3 or 4: +3338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * force offset state disable or enable +3339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without modifying offset channel or offset value. +3340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function should be needed only in case of offset to be +3341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled-disabled dynamically, and should not be needed in other cases: +3342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function LL_ADC_SetOffset() automatically enables the offset. +3343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_EN LL_ADC_SetOffsetState\n +3348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_EN LL_ADC_SetOffsetState\n +3349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_EN LL_ADC_SetOffsetState\n +3350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_EN LL_ADC_SetOffsetState +3351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetState This parameter can be one of the following values: +3358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_DISABLE +3359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_ENABLE +3360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetStat +3363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, +3368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** OffsetState); +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset state disabled or enabled. +3374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_EN LL_ADC_GetOffsetState\n +3375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_EN LL_ADC_GetOffsetState\n +3376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_EN LL_ADC_GetOffsetState\n +3377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_EN LL_ADC_GetOffsetState +3378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_DISABLE +3386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_ENABLE +3387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety) +3389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_EN); + ARM GAS /tmp/ccICigVb.s page 61 + + +3393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set for the ADC selected offset number 1, 2, 3 or 4: +3397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * choose offset sign. +3398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSETPOS LL_ADC_SetOffsetSign\n +3403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSETPOS LL_ADC_SetOffsetSign\n +3404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSETPOS LL_ADC_SetOffsetSign\n +3405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSETPOS LL_ADC_SetOffsetSign +3406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetSign This parameter can be one of the following values: +3413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE +3414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE +3415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffsetSign(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSign) +3418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, +3423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** OffsetSign); +3424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset sign if positive or negative. +3429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSETPOS LL_ADC_GetOffsetSign\n +3430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSETPOS LL_ADC_GetOffsetSign\n +3431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSETPOS LL_ADC_GetOffsetSign\n +3432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSETPOS LL_ADC_GetOffsetSign +3433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE +3441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE +3442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetSign(ADC_TypeDef *ADCx, uint32_t Offsety) +3444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSETPOS); +3448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/ccICigVb.s page 62 + + +3450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set for the ADC selected offset number 1, 2, 3 or 4: +3452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * choose offset saturation mode. +3453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 SATEN LL_ADC_SetOffsetSaturation\n +3458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 SATEN LL_ADC_SetOffsetSaturation\n +3459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 SATEN LL_ADC_SetOffsetSaturation\n +3460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 SATEN LL_ADC_SetOffsetSaturation +3461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetSaturation This parameter can be one of the following values: +3468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE +3469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE +3470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffsetSaturation(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Offse +3473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_SATEN, +3478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** OffsetSaturation); +3479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset saturation if enabled or disabled. +3484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 SATEN LL_ADC_GetOffsetSaturation\n +3485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 SATEN LL_ADC_GetOffsetSaturation\n +3486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 SATEN LL_ADC_GetOffsetSaturation\n +3487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 SATEN LL_ADC_GetOffsetSaturation +3488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE +3496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE +3497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetSaturation(ADC_TypeDef *ADCx, uint32_t Offsety) +3499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_SATEN); +3503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC gain compensation. + ARM GAS /tmp/ccICigVb.s page 63 + + +3507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the gain compensation coefficient +3508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * that is applied to raw converted data using the formula: +3509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * DATA = DATA(raw) * (gain compensation coef) / 4096 +3510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function enables the gain compensation if given +3511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coefficient is above 0, otherwise it disables it. +3512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Gain compensation when enabled is applied to all channels. +3513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll GCOMP GCOMPCOEFF LL_ADC_SetGainCompensation\n +3518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 GCOMP LL_ADC_SetGainCompensation +3519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param GainCompensation This parameter can be: +3521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 0 Gain compensation will be disabled and value set to 0 +3522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1 -> 16393 Gain compensation will be enabled with specified value +3523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetGainCompensation(ADC_TypeDef *ADCx, uint32_t GainCompensation) +3526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->GCOMP, ADC_GCOMP_GCOMPCOEFF, GainCompensation); +3528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_GCOMP, ((GainCompensation == 0UL) ? 0UL : 1UL) << ADC_CFGR2_GCO +3529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the ADC gain compensation value +3533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll GCOMP GCOMPCOEFF LL_ADC_GetGainCompensation\n +3534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 GCOMP LL_ADC_GetGainCompensation +3535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be: +3537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 0 Gain compensation is disabled +3538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1 -> 16393 Gain compensation is enabled with returned value +3539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetGainCompensation(ADC_TypeDef *ADCx) +3541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CFGR2, ADC_CFGR2_GCOMP) == ADC_CFGR2_GCOMP) ? READ_BIT(ADCx->GCOMP, ADC_G +3543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_SMPR1_SMPPLUS) +3546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC sampling time common configuration impacting +3548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings of sampling time channel wise. +3549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMPPLUS LL_ADC_SetSamplingTimeCommonConfig +3554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SamplingTimeCommonConfig This parameter can be one of the following values: +3556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT +3557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 +3558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetSamplingTimeCommonConfig(ADC_TypeDef *ADCx, uint32_t SamplingTimeCom +3561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->SMPR1, ADC_SMPR1_SMPPLUS, SamplingTimeCommonConfig); +3563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/ccICigVb.s page 64 + + +3564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC sampling time common configuration impacting +3567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings of sampling time channel wise. +3568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMPPLUS LL_ADC_GetSamplingTimeCommonConfig +3569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT +3572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 +3573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetSamplingTimeCommonConfig(ADC_TypeDef *ADCx) +3575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->SMPR1, ADC_SMPR1_SMPPLUS)); +3577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_SMPR1_SMPPLUS */ +3579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +3582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: gr +3585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +3586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular conversion trigger source: +3590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +3591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +3592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting trigger source to external trigger +3593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * also set trigger polarity to rising edge +3594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (default setting for compatibility with some ADC on other +3595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * STM32 families having this setting set by HW default value). +3596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In case of need to modify trigger edge, use +3597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function @ref LL_ADC_REG_SetTriggerEdge(). +3598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +3599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +3600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTSEL LL_ADC_REG_SetTriggerSource\n +3605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR EXTEN LL_ADC_REG_SetTriggerSource +3606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TriggerSource This parameter can be one of the following values: +3608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_SOFTWARE +3609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO +3610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 +3611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (1) +3612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (1) +3613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3 +3614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO +3615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1 (2) +3616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2 (1) +3617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3 (2) +3618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO +3619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1 (2) +3620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (1) + ARM GAS /tmp/ccICigVb.s page 65 + + +3621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO +3622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1 (2) +3623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (1) +3624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO +3625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO +3626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO +3627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 +3628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1 (2) +3629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO +3630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO +3631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 +3632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1 +3633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2 (1) +3634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3 (1) +3635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 +3636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (2) +3637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 +3638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (2) +3639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 +3640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 +3641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 +3642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 +3643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 +3644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 +3645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (1) +3646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (2) +3647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM_OUT +3648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +3650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +3651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +3652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource) +3655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL, TriggerSource); +3657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion trigger source: +3661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +3662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +3663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To determine whether group regular trigger source is +3664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or external, without detail +3665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of which peripheral is selected as external trigger, +3666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (equivalent to +3667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)") +3668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_REG_IsTriggerSourceSWStart. +3669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +3670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +3671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTSEL LL_ADC_REG_GetTriggerSource\n +3672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR EXTEN LL_ADC_REG_GetTriggerSource +3673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_SOFTWARE +3676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO +3677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 + ARM GAS /tmp/ccICigVb.s page 66 + + +3678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (1) +3679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (1) +3680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3 +3681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO +3682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1 (2) +3683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2 (1) +3684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3 (2) +3685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO +3686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1 (2) +3687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (1) +3688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO +3689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1 (2) +3690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (1) +3691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO +3692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO +3693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO +3694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 +3695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1 (2) +3696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO +3697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO +3698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 +3699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1 +3700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2 (1) +3701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3 (1) +3702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 +3703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (2) +3704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 +3705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (2) +3706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 +3707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 +3708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 +3709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 +3710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 +3711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 +3712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (1) +3713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (2) +3714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM_OUT +3715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +3717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +3718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +3719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx) +3721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t TriggerSource = READ_BIT(ADCx->CFGR, ADC_CFGR_EXTSEL | ADC_CFGR_EXTEN); +3723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */ +3725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to ADC_CFGR_EXTEN {0; 1; 2; 3}. */ +3726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ShiftExten = ((TriggerSource & ADC_CFGR_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2U +3727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bitfield corresponding to ADC_CFGR_EXTEN and ADC_CFGR_EXTSEL */ +3729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to match with triggers literals definition. */ +3730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((TriggerSource +3731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & (ADC_REG_TRIG_SOURCE_MASK >> ShiftExten) & ADC_CFGR_EXTSEL) +3732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ((ADC_REG_TRIG_EDGE_MASK >> ShiftExten) & ADC_CFGR_EXTEN) +3733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +3734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/ccICigVb.s page 67 + + +3735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion trigger source internal (SW start) +3738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or external. +3739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of group regular trigger source set to external trigger, +3740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to determine which peripheral is selected as external trigger, +3741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_REG_GetTriggerSource(). +3742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTEN LL_ADC_REG_IsTriggerSourceSWStart +3743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if trigger source external trigger +3745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if trigger source SW start. +3746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx) +3748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN)) ? 1 +3750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular conversion trigger polarity. +3754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Applicable only for trigger source set to external trigger. +3755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTEN LL_ADC_REG_SetTriggerEdge +3760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ExternalTriggerEdge This parameter can be one of the following values: +3762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISING +3763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING +3764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING +3765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge) +3768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN, ExternalTriggerEdge); +3770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion trigger polarity. +3774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Applicable only for trigger source set to external trigger. +3775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTEN LL_ADC_REG_GetTriggerEdge +3776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISING +3779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING +3780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING +3781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx) +3783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN)); +3785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC sampling mode. +3789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the ADC conversion sampling mode +3790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This mode applies to regular group only. +3791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Set sampling mode is applied to all conversion of regular group. + ARM GAS /tmp/ccICigVb.s page 68 + + +3792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 BULB LL_ADC_REG_SetSamplingMode\n +3797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 SMPTRIG LL_ADC_REG_SetSamplingMode +3798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SamplingMode This parameter can be one of the following values: +3800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_NORMAL +3801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_BULB +3802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED +3803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSamplingMode(ADC_TypeDef *ADCx, uint32_t SamplingMode) +3806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG, SamplingMode); +3808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the ADC sampling mode +3812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 BULB LL_ADC_REG_GetSamplingMode\n +3813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 SMPTRIG LL_ADC_REG_GetSamplingMode +3814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_NORMAL +3817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_BULB +3818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED +3819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSamplingMode(ADC_TypeDef *ADCx) +3821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG)); +3823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular sequencer length and scan direction. +3827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC group regular sequencer features: +3828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer fully configurable +3829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerRanks()" available): +3830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are configurable. +3832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function performs configuration of: +3833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +3834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +3836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerRanks()". +3838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer not fully configurable +3839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerChannels()" available): +3840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are defined by channel number. +3842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function performs configuration of: +3843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence is +3844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined by number of channels set in the sequence, +3845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * rank of each channel is fixed by channel HW number. +3846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...). +3847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from lowest channel number to + ARM GAS /tmp/ccICigVb.s page 69 + + +3849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * highest channel number). +3850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerChannels()". +3852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +3853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +3854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength +3859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SequencerNbRanks This parameter can be one of the following values: +3861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE +3862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS +3863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS +3864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS +3865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS +3866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS +3867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS +3868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS +3869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS +3870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS +3871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS +3872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS +3873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS +3874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS +3875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS +3876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS +3877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks) +3880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks); +3882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular sequencer length and scan direction. +3886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC group regular sequencer features: +3887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer fully configurable +3888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerRanks()" available): +3889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are configurable. +3891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function retrieves: +3892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +3893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +3895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerRanks()". +3897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer not fully configurable +3898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerChannels()" available): +3899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are defined by channel number. +3901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function retrieves: +3902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence is +3903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined by number of channels set in the sequence, +3904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * rank of each channel is fixed by channel HW number. +3905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...). + ARM GAS /tmp/ccICigVb.s page 70 + + +3906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from lowest channel number to +3908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * highest channel number). +3909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerChannels()". +3911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +3912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +3913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 L LL_ADC_REG_GetSequencerLength +3914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE +3917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS +3918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS +3919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS +3920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS +3921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS +3922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS +3923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS +3924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS +3925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS +3926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS +3927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS +3928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS +3929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS +3930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS +3931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS +3932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx) +3934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L)); +3936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular sequencer discontinuous mode: +3940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +3941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +3942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group regular +3943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * continuous mode and sequencer discontinuous mode. +3944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC auto-injected mode +3945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC group regular sequencer discontinuous mode. +3946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DISCEN LL_ADC_REG_SetSequencerDiscont\n +3951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DISCNUM LL_ADC_REG_SetSequencerDiscont +3952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SeqDiscont This parameter can be one of the following values: +3954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE +3955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK +3956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS +3957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS +3958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS +3959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS +3960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS +3961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS +3962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS + ARM GAS /tmp/ccICigVb.s page 71 + + +3963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont) +3966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM, SeqDiscont); +3968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular sequencer discontinuous mode: +3972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +3973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +3974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DISCEN LL_ADC_REG_GetSequencerDiscont\n +3975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DISCNUM LL_ADC_REG_GetSequencerDiscont +3976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE +3979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK +3980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS +3981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS +3982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS +3983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS +3984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS +3985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS +3986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS +3987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx) +3989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM)); +3991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular sequence: channel on the selected +3995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan sequence rank. +3996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function performs configuration of: +3997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Channels ordering into each rank of scan sequence: +3998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever channel can be placed into whatever rank. +3999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, ADC group regular sequencer is +4000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * fully configurable: sequencer length and each rank +4001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * affectation to a channel are configurable. +4002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to description of function @ref LL_ADC_REG_SetSequencerLength(). +4003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, to measure internal channels (VrefInt, +4006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TempSensor, ...), measurement paths to internal channels must be +4007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled separately. +4008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). +4009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +4013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 SQ1 LL_ADC_REG_SetSequencerRanks\n +4014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ2 LL_ADC_REG_SetSequencerRanks\n +4015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ3 LL_ADC_REG_SetSequencerRanks\n +4016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ4 LL_ADC_REG_SetSequencerRanks\n +4017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ5 LL_ADC_REG_SetSequencerRanks\n +4018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ6 LL_ADC_REG_SetSequencerRanks\n +4019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n + ARM GAS /tmp/ccICigVb.s page 72 + + +4020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n +4021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n +4022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ10 LL_ADC_REG_SetSequencerRanks\n +4023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ11 LL_ADC_REG_SetSequencerRanks\n +4024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ12 LL_ADC_REG_SetSequencerRanks\n +4025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ13 LL_ADC_REG_SetSequencerRanks\n +4026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ14 LL_ADC_REG_SetSequencerRanks\n +4027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ15 LL_ADC_REG_SetSequencerRanks\n +4028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ16 LL_ADC_REG_SetSequencerRanks +4029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_1 +4032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_2 +4033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_3 +4034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_4 +4035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_5 +4036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_6 +4037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_7 +4038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_8 +4039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_9 +4040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_10 +4041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_11 +4042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_12 +4043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_13 +4044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_14 +4045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_15 +4046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_16 +4047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +4048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) + ARM GAS /tmp/ccICigVb.s page 73 + + +4077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channe +4092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 30 .loc 2 4092 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 @ link register save eliminated. + 35 .loc 2 4092 1 is_stmt 0 view .LVU1 + 36 0000 10B4 push {r4} + 37 .LCFI0: + 38 .cfi_def_cfa_offset 4 + 39 .cfi_offset 4, -4 +4093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "Channel" with bits position */ +4094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register and register position depending on parameter "Rank". */ +4095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "Rank" and "Channel" are used with masks because containing */ +4096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* other bits reserved for other purpose. */ +4097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> A + 40 .loc 2 4097 3 is_stmt 1 view .LVU2 + 41 .loc 2 4097 25 is_stmt 0 view .LVU3 + 42 0002 3030 adds r0, r0, #48 + 43 .LVL1: + 44 .loc 2 4097 25 view .LVU4 + 45 0004 0B0A lsrs r3, r1, #8 + 46 0006 9B00 lsls r3, r3, #2 + 47 0008 03F00C03 and r3, r3, #12 + 48 .LVL2: +4098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, + 49 .loc 2 4099 3 is_stmt 1 view .LVU5 + 50 000c C458 ldr r4, [r0, r3] + 51 000e 01F01F01 and r1, r1, #31 + 52 .LVL3: + 53 .loc 2 4099 3 is_stmt 0 view .LVU6 + 54 0012 4FF01F0C mov ip, #31 + 55 0016 0CFA01FC lsl ip, ip, r1 + 56 001a 24EA0C0C bic ip, r4, ip + 57 001e C2F38462 ubfx r2, r2, #26, #5 + 58 .LVL4: + 59 .loc 2 4099 3 view .LVU7 + 60 0022 8A40 lsls r2, r2, r1 + 61 0024 4CEA0202 orr r2, ip, r2 + 62 0028 C250 str r2, [r0, r3] +4100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK), + ARM GAS /tmp/ccICigVb.s page 74 + + +4101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Ra +4102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 63 .loc 2 4102 1 view .LVU8 + 64 002a 5DF8044B ldr r4, [sp], #4 + 65 .LCFI1: + 66 .cfi_restore 4 + 67 .cfi_def_cfa_offset 0 + 68 002e 7047 bx lr + 69 .cfi_endproc + 70 .LFE171: + 72 .section .text.LL_ADC_SetChannelSamplingTime,"ax",%progbits + 73 .align 1 + 74 .syntax unified + 75 .thumb + 76 .thumb_func + 78 LL_ADC_SetChannelSamplingTime: + 79 .LVL5: + 80 .LFB195: +4103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular sequence: channel on the selected +4106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan sequence rank. +4107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, ADC group regular sequencer is +4108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * fully configurable: sequencer length and each rank +4109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * affectation to a channel are configurable. +4110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to description of function @ref LL_ADC_REG_SetSequencerLength(). +4111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +4114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +4115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +4116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +4117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +4118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +4120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +4121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +4122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +4123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 SQ1 LL_ADC_REG_GetSequencerRanks\n +4125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ2 LL_ADC_REG_GetSequencerRanks\n +4126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ3 LL_ADC_REG_GetSequencerRanks\n +4127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ4 LL_ADC_REG_GetSequencerRanks\n +4128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ5 LL_ADC_REG_GetSequencerRanks\n +4129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ6 LL_ADC_REG_GetSequencerRanks\n +4130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n +4131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n +4132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n +4133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ10 LL_ADC_REG_GetSequencerRanks\n +4134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ11 LL_ADC_REG_GetSequencerRanks\n +4135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ12 LL_ADC_REG_GetSequencerRanks\n +4136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ13 LL_ADC_REG_GetSequencerRanks\n +4137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ14 LL_ADC_REG_GetSequencerRanks\n +4138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ15 LL_ADC_REG_GetSequencerRanks\n +4139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ16 LL_ADC_REG_GetSequencerRanks +4140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: + ARM GAS /tmp/ccICigVb.s page 75 + + +4142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_1 +4143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_2 +4144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_3 +4145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_4 +4146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_5 +4147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_6 +4148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_7 +4149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_8 +4150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_9 +4151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_10 +4152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_11 +4153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_12 +4154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_13 +4155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_14 +4156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_15 +4157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_16 +4158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock + ARM GAS /tmp/ccICigVb.s page 76 + + +4199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +4201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +4202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +4203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank) +4205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, ((Rank & ADC_REG_SQRX_REGOFFSET_MASK +4207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)((READ_BIT(*preg, +4209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MA +4210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS +4211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +4212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC continuous conversion mode on ADC group regular. +4216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC continuous conversion mode: +4217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - single mode: one conversion per trigger +4218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode: after the first trigger, following +4219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversions launched successively automatically. +4220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group regular +4221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * continuous mode and sequencer discontinuous mode. +4222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +4226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR CONT LL_ADC_REG_SetContinuousMode +4227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Continuous This parameter can be one of the following values: +4229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_SINGLE +4230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_CONTINUOUS +4231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous) +4234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_CONT, Continuous); +4236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC continuous conversion mode on ADC group regular. +4240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC continuous conversion mode: +4241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - single mode: one conversion per trigger +4242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode: after the first trigger, following +4243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversions launched successively automatically. +4244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR CONT LL_ADC_REG_GetContinuousMode +4245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_SINGLE +4248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_CONTINUOUS +4249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx) +4251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_CONT)); +4253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 77 + + +4256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular conversion data transfer: no transfer or +4257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * transfer by DMA, and DMA requests mode. +4258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If transfer by DMA selected, specifies the DMA requests +4259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode: +4260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +4261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +4262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +4263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +4264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +4265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +4266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +4267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +4268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +4269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +4270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +4271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +4272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). +4273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with several ADC instances: ADC multimode DMA +4274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings are available using function @ref LL_ADC_SetMultiDMATransfer(). +4275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To configure DMA source address (peripheral address), +4276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_DMA_GetRegAddr(). +4277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DMAEN LL_ADC_REG_SetDMATransfer\n +4282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DMACFG LL_ADC_REG_SetDMATransfer +4283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param DMATransfer This parameter can be one of the following values: +4285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE +4286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED +4287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED +4288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer) +4291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG, DMATransfer); +4293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data transfer: no transfer or +4297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * transfer by DMA, and DMA requests mode. +4298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If transfer by DMA selected, specifies the DMA requests +4299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode: +4300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +4301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +4302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +4303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +4304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +4305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +4306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +4307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +4308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +4309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +4310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +4311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +4312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). + ARM GAS /tmp/ccICigVb.s page 78 + + +4313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with several ADC instances: ADC multimode DMA +4314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings are available using function @ref LL_ADC_GetMultiDMATransfer(). +4315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To configure DMA source address (peripheral address), +4316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_DMA_GetRegAddr(). +4317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DMAEN LL_ADC_REG_GetDMATransfer\n +4318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DMACFG LL_ADC_REG_GetDMATransfer +4319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE +4322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED +4323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED +4324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx) +4326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG)); +4328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular behavior in case of overrun: +4332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * data preserved or overwritten. +4333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Compatibility with devices without feature overrun: +4334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * other devices without this feature have a behavior +4335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * equivalent to data overwritten. +4336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * The default setting of overrun is data preserved. +4337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, for compatibility with all devices, parameter +4338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * overrun should be set to data overwritten. +4339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +4343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR OVRMOD LL_ADC_REG_SetOverrun +4344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Overrun This parameter can be one of the following values: +4346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED +4347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN +4348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetOverrun(ADC_TypeDef *ADCx, uint32_t Overrun) +4351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_OVRMOD, Overrun); +4353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular behavior in case of overrun: +4357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * data preserved or overwritten. +4358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR OVRMOD LL_ADC_REG_GetOverrun +4359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED +4362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN +4363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetOverrun(ADC_TypeDef *ADCx) +4365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_OVRMOD)); +4367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 79 + + +4370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +4371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: g +4374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +4375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected conversion trigger source: +4379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +4380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +4381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting trigger source to external trigger +4382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * also set trigger polarity to rising edge +4383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (default setting for compatibility with some ADC on other +4384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * STM32 families having this setting set by HW default value). +4385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In case of need to modify trigger edge, use +4386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function @ref LL_ADC_INJ_SetTriggerEdge(). +4387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +4388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +4389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTSEL LL_ADC_INJ_SetTriggerSource\n +4394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JEXTEN LL_ADC_INJ_SetTriggerSource +4395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TriggerSource This parameter can be one of the following values: +4397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE +4398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO +4399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 +4400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) +4401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 +4402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO +4403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) +4404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO +4405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) +4406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) +4407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) +4408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO +4409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) +4410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) +4411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO +4412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO +4413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO +4414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 +4415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) +4416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 +4417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO +4418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) +4419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO +4420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 +4421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) +4422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) +4423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) +4424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 +4425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) +4426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 + ARM GAS /tmp/ccICigVb.s page 80 + + +4427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 +4428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 +4429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 +4430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 +4431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 +4432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 +4433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) +4434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) +4435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT +4436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +4438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +4439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +4440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource) +4443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN, TriggerSource); +4445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger source: +4449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +4450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +4451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To determine whether group injected trigger source is +4452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or external, without detail +4453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of which peripheral is selected as external trigger, +4454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (equivalent to +4455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)") +4456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart. +4457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +4458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +4459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTSEL LL_ADC_INJ_GetTriggerSource\n +4460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JEXTEN LL_ADC_INJ_GetTriggerSource +4461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE +4464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO +4465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 +4466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) +4467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 +4468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO +4469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) +4470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO +4471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) +4472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) +4473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) +4474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO +4475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) +4476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) +4477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO +4478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO +4479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO +4480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 +4481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) +4482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 +4483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO + ARM GAS /tmp/ccICigVb.s page 81 + + +4484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) +4485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO +4486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 +4487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) +4488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) +4489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) +4490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 +4491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) +4492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 +4493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 +4494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 +4495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 +4496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 +4497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 +4498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 +4499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) +4500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) +4501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT +4502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +4504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +4505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +4506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx) +4508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t TriggerSource = READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN); +4510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */ +4512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to ADC_JSQR_JEXTEN {0; 1; 2; 3}. */ +4513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ShiftJexten = ((TriggerSource & ADC_JSQR_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - +4514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bitfield corresponding to ADC_JSQR_JEXTEN and ADC_JSQR_JEXTSEL */ +4516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to match with triggers literals definition. */ +4517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((TriggerSource +4518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & (ADC_INJ_TRIG_SOURCE_MASK >> ShiftJexten) & ADC_JSQR_JEXTSEL) +4519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ((ADC_INJ_TRIG_EDGE_MASK >> ShiftJexten) & ADC_JSQR_JEXTEN) +4520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +4521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger source internal (SW start) +4525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** or external +4526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of group injected trigger source set to external trigger, +4527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to determine which peripheral is selected as external trigger, +4528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_INJ_GetTriggerSource. +4529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart +4530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if trigger source external trigger +4532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if trigger source SW start. +4533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx) +4535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN)) ? +4537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected conversion trigger polarity. + ARM GAS /tmp/ccICigVb.s page 82 + + +4541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Applicable only for trigger source set to external trigger. +4542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTEN LL_ADC_INJ_SetTriggerEdge +4547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ExternalTriggerEdge This parameter can be one of the following values: +4549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING +4550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING +4551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING +4552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge) +4555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTEN, ExternalTriggerEdge); +4557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger polarity. +4561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Applicable only for trigger source set to external trigger. +4562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTEN LL_ADC_INJ_GetTriggerEdge +4563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING +4566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING +4567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING +4568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx) +4570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN)); +4572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected sequencer length and scan direction. +4576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function performs configuration of: +4577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +4578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +4579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +4580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +4581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +4582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength +4587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SequencerNbRanks This parameter can be one of the following values: +4589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE +4590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS +4591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS +4592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS +4593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks) +4596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks); + ARM GAS /tmp/ccICigVb.s page 83 + + +4598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected sequencer length and scan direction. +4602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function retrieves: +4603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +4604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +4605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +4606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +4607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +4608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength +4609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE +4612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS +4613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS +4614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS +4615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx) +4617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL)); +4619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected sequencer discontinuous mode: +4623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +4624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +4625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group injected +4626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * auto-injected mode and sequencer discontinuous mode. +4627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JDISCEN LL_ADC_INJ_SetSequencerDiscont +4628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SeqDiscont This parameter can be one of the following values: +4630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE +4631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK +4632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont) +4635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_JDISCEN, SeqDiscont); +4637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected sequencer discontinuous mode: +4641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +4642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +4643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JDISCEN LL_ADC_INJ_GetSequencerDiscont +4644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE +4647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK +4648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx) +4650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JDISCEN)); +4652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 84 + + +4655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected sequence: channel on the selected +4656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence rank. +4657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, to measure internal channels (VrefInt, +4660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TempSensor, ...), measurement paths to internal channels must be +4661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled separately. +4662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). +4663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +4664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +4665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n +4670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n +4671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n +4672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks +4673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +4676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +4677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +4678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +4679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +4680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n + ARM GAS /tmp/ccICigVb.s page 85 + + +4712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channe +4724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "Channel" with bits position */ +4726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register depending on parameter "Rank". */ +4727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "Rank" and "Channel" are used with masks because containing */ +4728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* other bits reserved for other purpose. */ +4729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, +4730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Rank & ADC_INJ +4731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Ra +4732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected sequence: channel on the selected +4736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence rank. +4737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +4740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +4741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +4742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +4743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +4744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +4746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +4747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +4748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +4749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JSQ1 LL_ADC_INJ_GetSequencerRanks\n +4751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ2 LL_ADC_INJ_GetSequencerRanks\n +4752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ3 LL_ADC_INJ_GetSequencerRanks\n +4753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ4 LL_ADC_INJ_GetSequencerRanks +4754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +4757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +4758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +4759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +4760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 + ARM GAS /tmp/ccICigVb.s page 86 + + +4769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +4803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +4804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +4805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank) +4807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)((READ_BIT(ADCx->JSQR, +4809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) < +4810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS +4811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +4812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected conversion trigger: +4816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * independent or from ADC group regular. +4817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This mode can be used to extend number of data registers +4818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * updated after one ADC conversion trigger and with data +4819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * permanently kept (not erased by successive conversions of scan of +4820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC sequencer ranks), up to 5 data registers: +4821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1 data register on ADC group regular, 4 data registers +4822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on ADC group injected. +4823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC group injected injected trigger source is set to an +4824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external trigger, this feature must be must be set to +4825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * independent trigger. + ARM GAS /tmp/ccICigVb.s page 87 + + +4826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC group injected automatic trigger is compliant only with +4827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * group injected trigger source set to SW start, without any +4828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * further action on ADC group injected conversion start or stop: +4829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in this case, ADC group injected is controlled only +4830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC group regular. +4831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group injected +4832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * auto-injected mode and sequencer discontinuous mode. +4833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JAUTO LL_ADC_INJ_SetTrigAuto +4838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TrigAuto This parameter can be one of the following values: +4840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT +4841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR +4842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto) +4845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_JAUTO, TrigAuto); +4847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger: +4851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * independent or from ADC group regular. +4852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JAUTO LL_ADC_INJ_GetTrigAuto +4853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT +4856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR +4857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx) +4859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JAUTO)); +4861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected contexts queue mode. +4865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note A context is a setting of group injected sequencer: +4866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - group injected trigger +4867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer length +4868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer ranks +4869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If contexts queue is disabled: +4870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - only 1 sequence can be configured +4871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and is active perpetually. +4872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If contexts queue is enabled: +4873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - up to 2 contexts can be queued +4874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and are checked in and out as a FIFO stack (first-in, first-out). +4875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If a new context is set when queues is full, error is triggered +4876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * by interruption "Injected Queue Overflow". +4877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Two behaviors are possible when all contexts have been processed: +4878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the contexts queue can maintain the last context active perpetually +4879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or can be empty and injected group triggers are disabled. +4880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Triggers can be only external (not internal SW start) +4881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Caution: The sequence must be fully configured in one time +4882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (one write of register JSQR makes a check-in of a new context + ARM GAS /tmp/ccICigVb.s page 88 + + +4883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * into the queue). +4884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore functions to set separately injected trigger and +4885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer channels cannot be used, register JSQR must be set +4886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using function @ref LL_ADC_INJ_ConfigQueueContext(). +4887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This parameter can be modified only when no conversion is on going +4888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note A modification of the context mode (bit JQDIS) causes the contexts +4890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * queue to be flushed and the register JSQR is cleared. +4891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JQM LL_ADC_INJ_SetQueueMode\n +4896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JQDIS LL_ADC_INJ_SetQueueMode +4897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param QueueMode This parameter can be one of the following values: +4899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_DISABLE +4900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE +4901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY +4902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetQueueMode(ADC_TypeDef *ADCx, uint32_t QueueMode) +4905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS, QueueMode); +4907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected context queue mode. +4911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JQM LL_ADC_INJ_GetQueueMode\n +4912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JQDIS LL_ADC_INJ_GetQueueMode +4913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_DISABLE +4916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE +4917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY +4918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetQueueMode(ADC_TypeDef *ADCx) +4920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS)); +4922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set one context on ADC group injected that will be checked in +4926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * contexts queue. +4927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note A context is a setting of group injected sequencer: +4928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - group injected trigger +4929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer length +4930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer ranks +4931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function is intended to be used when contexts queue is enabled, +4932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * because the sequence must be fully configured in one time +4933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (functions to set separately injected trigger and sequencer channels +4934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * cannot be used): +4935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to function @ref LL_ADC_INJ_SetQueueMode(). +4936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In the contexts queue, only the active context can be read. +4937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * The parameters of this function can be read using functions: +4938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_GetTriggerSource() +4939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_GetTriggerEdge() + ARM GAS /tmp/ccICigVb.s page 89 + + +4940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_GetSequencerRanks() +4941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, to measure internal channels (VrefInt, +4942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TempSensor, ...), measurement paths to internal channels must be +4943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled separately. +4944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). +4945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +4946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +4947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTSEL LL_ADC_INJ_ConfigQueueContext\n +4952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JEXTEN LL_ADC_INJ_ConfigQueueContext\n +4953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JL LL_ADC_INJ_ConfigQueueContext\n +4954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ1 LL_ADC_INJ_ConfigQueueContext\n +4955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ2 LL_ADC_INJ_ConfigQueueContext\n +4956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ3 LL_ADC_INJ_ConfigQueueContext\n +4957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ4 LL_ADC_INJ_ConfigQueueContext +4958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TriggerSource This parameter can be one of the following values: +4960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE +4961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO +4962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 +4963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) +4964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 +4965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO +4966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) +4967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO +4968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) +4969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) +4970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) +4971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO +4972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) +4973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) +4974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO +4975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO +4976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO +4977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 +4978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) +4979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 +4980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO +4981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) +4982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO +4983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 +4984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) +4985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) +4986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) +4987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 +4988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) +4989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 +4990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 +4991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 +4992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 +4993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 +4994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 +4995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 +4996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) + ARM GAS /tmp/ccICigVb.s page 90 + + +4997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) +4998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT +4999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +5001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +5002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +5003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ExternalTriggerEdge This parameter can be one of the following values: +5004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING +5005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING +5006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING +5007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Note: This parameter is discarded in case of SW start: +5009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameter "TriggerSource" set to "LL_ADC_INJ_TRIG_SOFTWARE". +5010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SequencerNbRanks This parameter can be one of the following values: +5011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE +5012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS +5013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS +5014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS +5015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank1_Channel This parameter can be one of the following values: +5016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n + ARM GAS /tmp/ccICigVb.s page 91 + + +5054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank2_Channel This parameter can be one of the following values: +5058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank3_Channel This parameter can be one of the following values: +5100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 + ARM GAS /tmp/ccICigVb.s page 92 + + +5111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank4_Channel This parameter can be one of the following values: +5142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) + ARM GAS /tmp/ccICigVb.s page 93 + + +5168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_ConfigQueueContext(ADC_TypeDef *ADCx, +5186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t TriggerSource, +5187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ExternalTriggerEdge, +5188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t SequencerNbRanks, +5189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank1_Channel, +5190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank2_Channel, +5191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank3_Channel, +5192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank4_Channel) +5193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "Rankx_Channel" with bits position */ +5195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register depending on literal "LL_ADC_INJ_RANK_x". */ +5196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "Rankx_Channel" and "LL_ADC_INJ_RANK_x" are used with masks */ +5197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* because containing other bits reserved for other purpose. */ +5198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* If parameter "TriggerSource" is set to SW start, then parameter */ +5199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "ExternalTriggerEdge" is discarded. */ +5200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t is_trigger_not_sw = (uint32_t)((TriggerSource != LL_ADC_INJ_TRIG_SOFTWARE) ? 1UL : 0UL); +5201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, +5202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JEXTSEL | +5203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JEXTEN | +5204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ4 | +5205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ3 | +5206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ2 | +5207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ1 | +5208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JL, +5209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (TriggerSource & ADC_JSQR_JEXTSEL) | +5210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ExternalTriggerEdge * (is_trigger_not_sw)) | +5211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank4_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank3_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank2_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank1_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SequencerNbRanks +5216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +5221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels +5224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + ARM GAS /tmp/ccICigVb.s page 94 + + +5225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set sampling time of the selected ADC channel +5229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Unit: ADC clock cycles. +5230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this device, sampling time is on channel scope: independently +5231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of channel mapped on ADC group regular or injected. +5232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of internal channel (VrefInt, TempSensor, ...) to be +5233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * converted: +5234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sampling time constraints must be respected (sampling time can be +5235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * adjusted in function of ADC clock frequency and sampling time +5236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * setting). +5237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for timings values (parameters TS_vrefint, +5238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_temp, ...). +5239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Conversion time is the addition of sampling time and processing time. +5240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, ADC processing time is: +5241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 12.5 ADC clock cycles at ADC resolution 12 bits +5242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 10.5 ADC clock cycles at ADC resolution 10 bits +5243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 8.5 ADC clock cycles at ADC resolution 8 bits +5244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 6.5 ADC clock cycles at ADC resolution 6 bits +5245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC conversion of internal channel (VrefInt, +5246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor, ...), a sampling time minimum value +5247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is required. +5248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +5249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +5252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +5253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMP0 LL_ADC_SetChannelSamplingTime\n +5254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP1 LL_ADC_SetChannelSamplingTime\n +5255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP2 LL_ADC_SetChannelSamplingTime\n +5256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP3 LL_ADC_SetChannelSamplingTime\n +5257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP4 LL_ADC_SetChannelSamplingTime\n +5258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP5 LL_ADC_SetChannelSamplingTime\n +5259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP6 LL_ADC_SetChannelSamplingTime\n +5260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP7 LL_ADC_SetChannelSamplingTime\n +5261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP8 LL_ADC_SetChannelSamplingTime\n +5262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP9 LL_ADC_SetChannelSamplingTime\n +5263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP10 LL_ADC_SetChannelSamplingTime\n +5264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP11 LL_ADC_SetChannelSamplingTime\n +5265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP12 LL_ADC_SetChannelSamplingTime\n +5266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP13 LL_ADC_SetChannelSamplingTime\n +5267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP14 LL_ADC_SetChannelSamplingTime\n +5268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP15 LL_ADC_SetChannelSamplingTime\n +5269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP16 LL_ADC_SetChannelSamplingTime\n +5270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP17 LL_ADC_SetChannelSamplingTime\n +5271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP18 LL_ADC_SetChannelSamplingTime +5272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +5274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 + ARM GAS /tmp/ccICigVb.s page 95 + + +5282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SamplingTime This parameter can be one of the following values: +5316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1) +5317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5 +5318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5 +5319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5 +5320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5 +5321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5 +5322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5 +5323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5 +5324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On some devices, ADC sampling time 2.5 ADC clock cycles +5326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can be replaced by 3.5 ADC clock cycles. +5327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). +5328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t Sa +5331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 81 .loc 2 5331 1 is_stmt 1 view -0 + 82 .cfi_startproc + 83 @ args = 0, pretend = 0, frame = 0 + 84 @ frame_needed = 0, uses_anonymous_args = 0 + 85 @ link register save eliminated. + 86 .loc 2 5331 1 is_stmt 0 view .LVU10 + 87 0000 10B4 push {r4} + ARM GAS /tmp/ccICigVb.s page 96 + + + 88 .LCFI2: + 89 .cfi_def_cfa_offset 4 + 90 .cfi_offset 4, -4 +5332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "SamplingTime" with bits position */ +5333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register and register position depending on parameter "Channel". */ +5334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameter "Channel" is used with masks because containing */ +5335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* other bits reserved for other purpose. */ +5336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_M + 91 .loc 2 5336 3 is_stmt 1 view .LVU11 + 92 .loc 2 5336 25 is_stmt 0 view .LVU12 + 93 0002 1430 adds r0, r0, #20 + 94 .LVL6: + 95 .loc 2 5336 25 view .LVU13 + 96 0004 4B0E lsrs r3, r1, #25 + 97 0006 9B00 lsls r3, r3, #2 + 98 0008 03F00403 and r3, r3, #4 + 99 .LVL7: +5337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, + 100 .loc 2 5338 3 is_stmt 1 view .LVU14 + 101 000c C458 ldr r4, [r0, r3] + 102 000e C1F30451 ubfx r1, r1, #20, #5 + 103 .LVL8: + 104 .loc 2 5338 3 is_stmt 0 view .LVU15 + 105 0012 4FF0070C mov ip, #7 + 106 0016 0CFA01FC lsl ip, ip, r1 + 107 001a 24EA0C0C bic ip, r4, ip + 108 001e 8A40 lsls r2, r2, r1 + 109 .LVL9: + 110 .loc 2 5338 3 view .LVU16 + 111 0020 4CEA0202 orr r2, ip, r2 + 112 0024 C250 str r2, [r0, r3] +5339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BIT +5340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SamplingTime << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BIT +5341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 113 .loc 2 5341 1 view .LVU17 + 114 0026 5DF8044B ldr r4, [sp], #4 + 115 .LCFI3: + 116 .cfi_restore 4 + 117 .cfi_def_cfa_offset 0 + 118 002a 7047 bx lr + 119 .cfi_endproc + 120 .LFE195: + 122 .section .text.LL_ADC_SetAnalogWDMonitChannels,"ax",%progbits + 123 .align 1 + 124 .syntax unified + 125 .thumb + 126 .thumb_func + 128 LL_ADC_SetAnalogWDMonitChannels: + 129 .LVL10: + 130 .LFB199: +5342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get sampling time of the selected ADC channel +5345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Unit: ADC clock cycles. +5346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this device, sampling time is on channel scope: independently +5347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of channel mapped on ADC group regular or injected. + ARM GAS /tmp/ccICigVb.s page 97 + + +5348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Conversion time is the addition of sampling time and processing time. +5349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, ADC processing time is: +5350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 12.5 ADC clock cycles at ADC resolution 12 bits +5351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 10.5 ADC clock cycles at ADC resolution 10 bits +5352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 8.5 ADC clock cycles at ADC resolution 8 bits +5353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 6.5 ADC clock cycles at ADC resolution 6 bits +5354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMP0 LL_ADC_GetChannelSamplingTime\n +5355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP1 LL_ADC_GetChannelSamplingTime\n +5356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP2 LL_ADC_GetChannelSamplingTime\n +5357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP3 LL_ADC_GetChannelSamplingTime\n +5358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP4 LL_ADC_GetChannelSamplingTime\n +5359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP5 LL_ADC_GetChannelSamplingTime\n +5360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP6 LL_ADC_GetChannelSamplingTime\n +5361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP7 LL_ADC_GetChannelSamplingTime\n +5362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP8 LL_ADC_GetChannelSamplingTime\n +5363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP9 LL_ADC_GetChannelSamplingTime\n +5364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP10 LL_ADC_GetChannelSamplingTime\n +5365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP11 LL_ADC_GetChannelSamplingTime\n +5366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP12 LL_ADC_GetChannelSamplingTime\n +5367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP13 LL_ADC_GetChannelSamplingTime\n +5368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP14 LL_ADC_GetChannelSamplingTime\n +5369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP15 LL_ADC_GetChannelSamplingTime\n +5370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP16 LL_ADC_GetChannelSamplingTime\n +5371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP17 LL_ADC_GetChannelSamplingTime\n +5372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP18 LL_ADC_GetChannelSamplingTime +5373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +5375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + ARM GAS /tmp/ccICigVb.s page 98 + + +5405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +5417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1) +5418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5 +5419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5 +5420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5 +5421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5 +5422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5 +5423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5 +5424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5 +5425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On some devices, ADC sampling time 2.5 ADC clock cycles +5427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can be replaced by 3.5 ADC clock cycles. +5428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). +5429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel) +5431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOF +5433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(*preg, +5435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_ +5436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_P +5437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set mode single-ended or differential input of the selected +5442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +5443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Channel ending is on channel scope: independently of channel mapped +5444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on ADC group regular or injected. +5445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In differential mode: Differential measurement is carried out +5446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * between the selected channel 'i' (positive input) and +5447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel 'i+1' (negative input). Only channel 'i' has to be +5448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configured, channel 'i+1' is configured automatically. +5449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to Reference Manual to ensure the selected channel is +5450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * available in differential mode. +5451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For example, internal channels (VrefInt, TempSensor, ...) are +5452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * not available in differential mode. +5453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note When configuring a channel 'i' in differential mode, +5454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the channel 'i+1' is not usable separately. +5455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some channels are internally fixed to single-ended inputs +5456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configuration: +5457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC1: Channels 12, 15, 16, 17 and 18 +5458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC2: Channels 15, 17 and 18 +5459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC3: Channels 12, 16, 17 and 18 (1) +5460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC4: Channels 16, 17 and 18 (1) +5461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC5: Channels 2, 3, 4, 16, 17 and 18 (1) + ARM GAS /tmp/ccICigVb.s page 99 + + +5462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) ADC3/4/5 are not available on all devices, refer to device datasheet +5463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * for more details. +5464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For ADC channels configured in differential mode, both inputs +5465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * should be biased at (Vref+)/2 +/-200mV. +5466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (Vref+ is the analog voltage reference) +5467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +5470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +5471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...) +5472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DIFSEL DIFSEL LL_ADC_SetChannelSingleDiff +5473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +5475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 +5476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 +5477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 +5478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 +5479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 +5480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be a combination of the following values: +5491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +5492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +5493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t Sing +5496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Bits for single or differential mode selection for each channel are set */ +5498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to 1 only when the differential mode is selected, and to 0 when the */ +5499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* single mode is selected. */ +5500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (SingleDiff == LL_ADC_DIFFERENTIAL_ENDED) +5502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->DIFSEL, +5504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); +5505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->DIFSEL, +5509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); +5510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get mode single-ended or differential input of the selected +5515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +5516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note When configuring a channel 'i' in differential mode, +5517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the channel 'i+1' is not usable separately. +5518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, to ensure a channel is configured in single-ended mode, + ARM GAS /tmp/ccICigVb.s page 100 + + +5519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the configuration of channel itself and the channel 'i-1' must be +5520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * read back (to ensure that the selected channel channel has not been +5521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configured in differential mode by the previous channel). +5522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to Reference Manual to ensure the selected channel is +5523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * available in differential mode. +5524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For example, internal channels (VrefInt, TempSensor, ...) are +5525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * not available in differential mode. +5526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note When configuring a channel 'i' in differential mode, +5527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the channel 'i+1' is not usable separately. +5528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some channels are internally fixed to single-ended inputs +5529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configuration: +5530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC1: Channels 12, 15, 16, 17 and 18 +5531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC2: Channels 15, 17 and 18 +5532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC3: Channels 12, 16, 17 and 18 (1) +5533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC4: Channels 16, 17 and 18 (1) +5534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC5: Channels 2, 3, 4, 16, 17 and 18 (1) +5535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) ADC3/4/5 are not available on all devices, refer to device datasheet +5536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * for more details. +5537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. In this case, the value +5538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * returned is null if all channels are in single ended-mode. +5539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...) +5540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DIFSEL DIFSEL LL_ADC_GetChannelSingleDiff +5541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be a combination of the following values: +5543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 +5544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 +5545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 +5546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 +5547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 +5548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: channel in single-ended mode, else: channel in differential mode +5559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel) +5561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->DIFSEL, (Channel & ADC_SINGLEDIFF_CHANNEL_MASK))); +5563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +5567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: an +5570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +5571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog monitored channels: +5575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a single channel, multiple channels or all channels, + ARM GAS /tmp/ccICigVb.s page 101 + + +5576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on ADC groups regular and-or injected. +5577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Once monitored channels are selected, analog watchdog +5578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled. +5579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of need to define a single channel to monitor +5580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with analog watchdog from sequencer channel definition, +5581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP(). +5582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +5594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +5595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +5596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +5597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +5598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +5599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +5600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +5601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +5602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +5603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +5606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +5607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AWD1CH LL_ADC_SetAnalogWDMonitChannels\n +5608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n +5609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1EN LL_ADC_SetAnalogWDMonitChannels\n +5610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JAWD1EN LL_ADC_SetAnalogWDMonitChannels\n +5611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD2CR AWD2CH LL_ADC_SetAnalogWDMonitChannels\n +5612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD3CR AWD3CH LL_ADC_SetAnalogWDMonitChannels +5613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +5615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +5616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +5617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +5618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDChannelGroup This parameter can be one of the following values: +5619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_DISABLE +5620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) +5621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) +5622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ +5623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) +5624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) +5625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ +5626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) +5627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) +5628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ +5629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) +5630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) +5631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ +5632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) + ARM GAS /tmp/ccICigVb.s page 102 + + +5633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) +5634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ +5635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) +5636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) +5637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ +5638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) +5639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) +5640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ +5641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) +5642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) +5643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ +5644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) +5645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) +5646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ +5647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) +5648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) +5649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ +5650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) +5651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) +5652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ +5653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) +5654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) +5655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ +5656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) +5657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) +5658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ +5659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) +5660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) +5661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ +5662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) +5663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) +5664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ +5665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) +5666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) +5667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ +5668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) +5669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) +5670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ +5671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) +5672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) +5673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ +5674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) +5675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) +5676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ +5677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) +5678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) +5679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ +5680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0) +5681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0) +5682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ +5683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG (0)(1) +5684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ (0)(1) +5685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ (1) +5686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG (0)(5) +5687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ (0)(5) +5688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ (5) +5689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(6) + ARM GAS /tmp/ccICigVb.s page 103 + + +5690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(6) +5691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (6) +5692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1) +5693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1) +5694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1) +5695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2) +5696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2) +5697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2) +5698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG (0)(2) +5699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ (0)(2) +5700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ (2) +5701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG (0)(3) +5702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ (0)(3) +5703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ (3) +5704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(5) +5705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(5) +5706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (5) +5707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG (0)(5) +5708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_INJ (0)(5) +5709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG_INJ (5) +5710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG (0)(4) +5711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_INJ (0)(4) +5712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG_INJ (4) +5713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (0) On STM32G4, parameter available only on analog watchdog number: AWD1.\n +5715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWD +5726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 131 .loc 2 5726 1 is_stmt 1 view -0 + 132 .cfi_startproc + 133 @ args = 0, pretend = 0, frame = 0 + 134 @ frame_needed = 0, uses_anonymous_args = 0 + 135 .loc 2 5726 1 is_stmt 0 view .LVU19 + 136 0000 00B5 push {lr} + 137 .LCFI4: + 138 .cfi_def_cfa_offset 4 + 139 .cfi_offset 14, -4 +5727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "AWDChannelGroup" with bits position */ +5728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register and register position depending on parameter "AWDy". */ +5729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "AWDChannelGroup" and "AWDy" are used with masks because */ +5730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) >> AD + 140 .loc 2 5731 3 is_stmt 1 view .LVU20 + 141 .loc 2 5731 25 is_stmt 0 view .LVU21 + 142 0002 0C30 adds r0, r0, #12 + 143 .LVL11: + 144 .loc 2 5731 25 view .LVU22 + 145 0004 C1F3015C ubfx ip, r1, #20, #2 + ARM GAS /tmp/ccICigVb.s page 104 + + + 146 0008 01F00103 and r3, r1, #1 + 147 000c 03EBC303 add r3, r3, r3, lsl #3 + 148 0010 0CEB830C add ip, ip, r3, lsl #2 + 149 .LVL12: +5732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C +5733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, + 150 .loc 2 5734 3 is_stmt 1 view .LVU23 + 151 0014 50F82C30 ldr r3, [r0, ip, lsl #2] + 152 0018 21F0024E bic lr, r1, #-2113929216 + 153 001c 2EF4601E bic lr, lr, #3670016 + 154 0020 23EA0E03 bic r3, r3, lr + 155 0024 1140 ands r1, r1, r2 + 156 .LVL13: + 157 .loc 2 5734 3 is_stmt 0 view .LVU24 + 158 0026 0B43 orrs r3, r3, r1 + 159 0028 40F82C30 str r3, [r0, ip, lsl #2] +5735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), +5736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AWDChannelGroup & AWDy); +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 160 .loc 2 5737 1 view .LVU25 + 161 002c 5DF804FB ldr pc, [sp], #4 + 162 .cfi_endproc + 163 .LFE199: + 165 .section .text.HAL_ADC_MspInit,"ax",%progbits + 166 .align 1 + 167 .weak HAL_ADC_MspInit + 168 .syntax unified + 169 .thumb + 170 .thumb_func + 172 HAL_ADC_MspInit: + 173 .LVL14: + 174 .LFB331: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @file stm32g4xx_hal_adc.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief This file provides firmware functions to manage the following + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * functionalities of the Analog to Digital Converter (ADC) + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + Peripheral Control functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + Peripheral State functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Other functions (extended functions) are available in file + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * "stm32g4xx_hal_adc_ex.c". + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ****************************************************************************** + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @attention + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Copyright (c) 2019 STMicroelectronics. + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * All rights reserved. + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This software is licensed under terms that can be found in the LICENSE file + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * in the root directory of this software component. + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ****************************************************************************** + ARM GAS /tmp/ccICigVb.s page 105 + + + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @verbatim + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ============================================================================== + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ##### ADC peripheral features ##### + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ============================================================================== + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) 12-bit, 10-bit, 8-bit or 6-bit configurable resolution. + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Interrupt generation at the end of regular conversion and in case of + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** analog watchdog or overrun events. + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Single and continuous conversion modes. + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Scan mode for conversion of several channels sequentially. + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Data alignment with in-built data coherency. + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Programmable sampling time (channel wise) + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) External trigger (timer or EXTI) with configurable polarity + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) DMA request generation for transfer of conversions data of regular group. + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Configurable delay between conversions in Dual interleaved mode. + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC channels selectable single/differential input. + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC offset shared on 4 offset instances. + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC gain compensation + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC calibration + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC conversion of regular group. + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC supply requirements: 1.62 V to 3.6 V. + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ADC input range: from Vref- (connected to Vssa) to Vref+ (connected to + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Vdda or to an external voltage reference). + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ##### How to use this driver ##### + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ============================================================================== + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** *** Configuration of top level parameters related to ADC *** + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ============================================================ + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Enable the ADC interface + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) As prerequisite, ADC clock must be configured at RCC top level. + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Two clock settings are mandatory: + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) ADC clock (core clock, also possibly conversion clock). + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) ADC clock (conversions clock). + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Two possible clock sources: synchronous clock derived from AHB clock + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** or asynchronous clock derived from system clock or PLL (output divider P) + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** running up to 75MHz. + ARM GAS /tmp/ccICigVb.s page 106 + + + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Example: + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Into HAL_ADC_MspInit() (recommended code location) or with + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** other device clock parameters configuration: + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) __HAL_RCC_ADC_CLK_ENABLE(); (mandatory) + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** RCC_ADCCLKSOURCE_PLL enable: (optional: if asynchronous clock + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) RCC_PeriphClkInitTypeDef RCC_PeriphClkInit; + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLL; + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit); + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) ADC clock source and clock prescaler are configured at ADC level with + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** parameter "ClockPrescaler" using function HAL_ADC_Init(). + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) ADC pins configuration + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Enable the clock for the ADC GPIOs + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using macro __HAL_RCC_GPIOx_CLK_ENABLE() + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Configure these ADC pins in analog mode + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_GPIO_Init() + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Optionally, in case of usage of ADC with interruptions: + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Configure the NVIC for ADC + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(ADCx_IRQn) + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** into the function of corresponding ADC interruption vector + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADCx_IRQHandler(). + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Optionally, in case of usage of DMA: + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Configure the DMA (DMA channel, mode normal or circular, ...) + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_DMA_Init(). + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Configure the NVIC for DMA + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** into the function of corresponding DMA interruption vector + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** DMAx_Channelx_IRQHandler(). + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** *** Configuration of ADC, group regular, channels parameters *** + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ================================================================ + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Configure the ADC parameters (resolution, data alignment, ...) + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** and regular group parameters (conversion trigger, sequencer, ...) + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Init(). + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Configure the channels for regular group parameters (channel number, + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** channel rank into sequencer, ..., into regular group) + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_ConfigChannel(). + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Optionally, configure the analog watchdog parameters (channels + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** monitored, thresholds, ...) + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_AnalogWDGConfig(). + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** *** Execution of ADC conversions *** + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ==================================== + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 107 + + + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Optionally, perform an automatic ADC calibration to improve the + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** conversion accuracy + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADCEx_Calibration_Start(). + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) ADC driver can be used among three modes: polling, interruption, + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** transfer by DMA. + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) ADC conversion by polling: + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Start() + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Wait for ADC conversion completion + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_PollForConversion() + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Retrieve conversion results + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_GetValue() + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Stop() + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) ADC conversion by interruption: + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Start_IT() + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Wait for ADC conversion completion by call of function + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ConvCpltCallback() + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (this function must be implemented in user program) + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Retrieve conversion results + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_GetValue() + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Stop_IT() + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) ADC conversion with transfer by DMA: + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Start_DMA() + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Wait for ADC conversion completion by call of function + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (these functions must be implemented in user program) + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Conversion results are automatically transferred by DMA into + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** destination variable address. + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_ADC_Stop_DMA() + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (@) Callback functions must be implemented in user program: + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+@) HAL_ADC_ErrorCallback() + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+@) HAL_ADC_LevelOutOfWindowCallback() (callback of analog watchdog) + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+@) HAL_ADC_ConvCpltCallback() + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+@) HAL_ADC_ConvHalfCpltCallback + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** *** Deinitialization of ADC *** + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ============================================================ + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Disable the ADC interface + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) ADC clock can be hard reset and disabled at RCC top level. + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Hard reset of ADC peripherals + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using macro __ADCx_FORCE_RESET(), __ADCx_RELEASE_RESET(). + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) ADC clock disable + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using the equivalent macro/functions as configuration step. + ARM GAS /tmp/ccICigVb.s page 108 + + + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) Example: + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Into HAL_ADC_MspDeInit() (recommended code location) or with + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** other device clock parameters configuration: + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSI14; + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSI14State = RCC_HSI14_OFF; (if not used for system clock + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+++) HAL_RCC_OscConfig(&RCC_OscInitStructure); + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) ADC pins configuration + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Disable the clock for the ADC GPIOs + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using macro __HAL_RCC_GPIOx_CLK_DISABLE() + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Optionally, in case of usage of ADC with interruptions: + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Disable the NVIC for ADC + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(ADCx_IRQn) + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (#) Optionally, in case of usage of DMA: + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Deinitialize the DMA + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_DMA_Init(). + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (++) Disable the NVIC for DMA + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** *** Callback registration *** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ============================================= + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** The compilation flag USE_HAL_ADC_REGISTER_CALLBACKS, when set to 1, + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** allows the user to configure dynamically the driver callbacks. + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Use Functions HAL_ADC_RegisterCallback() + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** to register an interrupt callback. + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Function HAL_ADC_RegisterCallback() allows to register following callbacks: + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ConvCpltCallback : ADC conversion complete callback + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ConvHalfCpltCallback : ADC conversion DMA half-transfer callback + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) LevelOutOfWindowCallback : ADC analog watchdog 1 callback + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ErrorCallback : ADC error callback + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) InjectedConvCpltCallback : ADC group injected conversion complete callback + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) InjectedQueueOverflowCallback : ADC group injected context queue overflow callback + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) LevelOutOfWindow2Callback : ADC analog watchdog 2 callback + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) LevelOutOfWindow3Callback : ADC analog watchdog 3 callback + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) EndOfSamplingCallback : ADC end of sampling callback + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) MspInitCallback : ADC Msp Init callback + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) MspDeInitCallback : ADC Msp DeInit callback + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** This function takes as parameters the HAL peripheral handle, the Callback ID + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** and a pointer to the user callback function. + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Use function HAL_ADC_UnRegisterCallback to reset a callback to the default + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** weak function. + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_UnRegisterCallback takes as parameters the HAL peripheral handle, + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** and the Callback ID. + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** This function allows to reset following callbacks: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ConvCpltCallback : ADC conversion complete callback + ARM GAS /tmp/ccICigVb.s page 109 + + + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ConvHalfCpltCallback : ADC conversion DMA half-transfer callback + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) LevelOutOfWindowCallback : ADC analog watchdog 1 callback + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) ErrorCallback : ADC error callback + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) InjectedConvCpltCallback : ADC group injected conversion complete callback + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) InjectedQueueOverflowCallback : ADC group injected context queue overflow callback + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) LevelOutOfWindow2Callback : ADC analog watchdog 2 callback + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) LevelOutOfWindow3Callback : ADC analog watchdog 3 callback + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) EndOfSamplingCallback : ADC end of sampling callback + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) MspInitCallback : ADC Msp Init callback + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) MspDeInitCallback : ADC Msp DeInit callback + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** By default, after the HAL_ADC_Init() and when the state is HAL_ADC_STATE_RESET + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** all callbacks are set to the corresponding weak functions: + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** examples HAL_ADC_ConvCpltCallback(), HAL_ADC_ErrorCallback(). + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Exception done for MspInit and MspDeInit functions that are + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** reset to the legacy weak functions in the HAL_ADC_Init()/ HAL_ADC_DeInit() only when + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** these callbacks are null (not registered beforehand). + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** If MspInit or MspDeInit are not null, the HAL_ADC_Init()/ HAL_ADC_DeInit() + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Callbacks can be registered/unregistered in HAL_ADC_STATE_READY state only. + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** in HAL_ADC_STATE_READY or HAL_ADC_STATE_RESET state, + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Then, the user first registers the MspInit/MspDeInit user callbacks + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** using HAL_ADC_RegisterCallback() before calling HAL_ADC_DeInit() + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** or HAL_ADC_Init() function. + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** When the compilation flag USE_HAL_ADC_REGISTER_CALLBACKS is set to 0 or + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** not defined, the callback registration feature is not available and all callbacks + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** are set to the corresponding weak functions. + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @endverbatim + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ****************************************************************************** + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Includes ------------------------------------------------------------------*/ + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #include "stm32g4xx_hal.h" + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @addtogroup STM32G4xx_HAL_Driver + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC ADC + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief ADC HAL module driver + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #ifdef HAL_ADC_MODULE_ENABLED + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 110 + + + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Private typedef -----------------------------------------------------------*/ + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Private define ------------------------------------------------------------*/ + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Private_Constants ADC Private Constants + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #define ADC_CFGR_FIELDS_1 ((ADC_CFGR_RES | ADC_CFGR_ALIGN |\ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_CONT | ADC_CFGR_OVRMOD |\ + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM |\ + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL)) /*!< ADC_CFGR fields of paramete + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Timeout values for ADC operations (enable settling time, */ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* disable settling time, ...). */ + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Values defined to be higher than worst cases: low clock frequency, */ + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* maximum prescalers. */ + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #define ADC_ENABLE_TIMEOUT (2UL) /*!< ADC enable time-out value */ + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #define ADC_DISABLE_TIMEOUT (2UL) /*!< ADC disable time-out value */ + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Timeout to wait for current conversion on going to be completed. */ + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Timeout fixed to longest ADC conversion possible, for 1 channel: */ + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - maximum sampling time (640.5 adc_clk) */ + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - ADC resolution (Tsar 12 bits= 12.5 adc_clk) */ + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - System clock / ADC clock <= 4096 (hypothesis of maximum clock ratio) */ + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - ADC oversampling ratio 256 */ + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Calculation: 653 * 4096 * 256 CPU clock cycles max */ + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Unit: cycles of CPU clock. */ + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #define ADC_CONVERSION_TIME_MAX_CPU_CYCLES (653UL * 4096UL * 256UL) /*!< ADC conversion completion + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @} + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Private macro -------------------------------------------------------------*/ + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Private variables ---------------------------------------------------------*/ + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Private function prototypes -----------------------------------------------*/ + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Exported functions --------------------------------------------------------*/ + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions ADC Exported Functions + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group1 Initialization and de-initialization functions + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief ADC Initialization and Configuration functions + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @verbatim + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ##### Initialization and de-initialization functions ##### + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] This section provides functions allowing to: + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Initialize and configure the ADC. + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) De-initialize the ADC. + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @endverbatim + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 111 + + + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Initialize the ADC peripheral and regular group according to + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * parameters specified in structure "ADC_InitTypeDef". + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note As prerequisite, ADC clock must be configured at RCC top level + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (refer to description of RCC configuration for ADC + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * in header of this file). + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Possibility to update parameters on the fly: + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This function initializes the ADC MSP (HAL_ADC_MspInit()) only when + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * coming from ADC state reset. Following calls to this function can + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * be used to reconfigure some parameters of ADC_InitTypeDef + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * structure on the fly, without modifying MSP configuration. If ADC + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * MSP has to be modified again, HAL_ADC_DeInit() must be called + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * before HAL_ADC_Init(). + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * The setting of these parameters is conditioned to ADC state. + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * For parameters constraints, see comments of structure + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * "ADC_InitTypeDef". + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note This function configures the ADC within 2 scopes: scope of entire + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * ADC and scope of regular group. For parameters details, see comments + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * of structure "ADC_InitTypeDef". + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Parameters related to common ADC registers (ADC clock mode) are set + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * only if all ADCs are disabled. + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * If this is not the case, these common parameters setting are + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * bypassed without error reporting: it can be the intended behaviour in + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * case of update of a parameter of ADC_InitTypeDef on the fly, + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * without disabling the other ADCs. + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpCFGR; + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_reg_is_conversion_on_going; + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0UL; + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check ADC handle */ + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc == NULL) + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_GAIN_COMPENSATION(hadc->Init.GainCompensation)); + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SCAN_MODE(hadc->Init.ScanConvMode)); + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EXTTRIG(hadc, hadc->Init.ExternalTrigConv)); + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SAMPLINGMODE(hadc->Init.SamplingMode)); + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_OVERRUN(hadc->Init.Overrun)); + ARM GAS /tmp/ccICigVb.s page 112 + + + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoWait)); + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.OversamplingMode)); + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.ScanConvMode != ADC_SCAN_DISABLE) + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_REGULAR_NB_CONV(hadc->Init.NbrOfConversion)); + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.DiscontinuousConvMode == ENABLE) + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_REGULAR_DISCONT_NUMBER(hadc->Init.NbrOfDiscConversion)); + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* DISCEN and CONT bits cannot be set at the same time */ + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(!((hadc->Init.DiscontinuousConvMode == ENABLE) && (hadc->Init.ContinuousConvMode == + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Actions performed only if ADC is coming from state reset: */ + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Initialization of ADC MSP */ + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->State == HAL_ADC_STATE_RESET) + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Init the ADC Callback settings */ + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; /* Legacy weak + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedQueueOverflowCallback = HAL_ADCEx_InjectedQueueOverflowCallback; /* Legacy weak + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow2Callback = HAL_ADCEx_LevelOutOfWindow2Callback; /* Legacy weak + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow3Callback = HAL_ADCEx_LevelOutOfWindow3Callback; /* Legacy weak + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->EndOfSamplingCallback = HAL_ADCEx_EndOfSamplingCallback; /* Legacy weak + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->MspInitCallback == NULL) + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Init the low level hardware */ + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspInitCallback(hadc); + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Init the low level hardware */ + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_MspInit(hadc); + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to none */ + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Initialize Lock */ + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Lock = HAL_UNLOCKED; + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Exit from deep-power-down mode and ADC voltage regulator enable */ + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsDeepPowerDownEnabled(hadc->Instance) != 0UL) + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC deep power down mode */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_DisableDeepPowerDown(hadc->Instance); + ARM GAS /tmp/ccICigVb.s page 113 + + + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* System was in deep power down mode, calibration must + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** be relaunched or a previously saved calibration factor + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** re-applied once the ADC voltage regulator is enabled */ + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL) + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable ADC internal voltage regulator */ + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_EnableInternalRegulator(hadc->Instance); + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Variable divided by 2 to compensate partially */ + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* CPU processing cycles, scaling in us split to not */ + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* exceed 32 bits register capacity and handle low frequency. */ + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** wait_loop_index = ((LL_ADC_DELAY_INTERNAL_REGUL_STAB_US / 10UL) * ((SystemCoreClock / (100000UL + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** wait_loop_index--; + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verification that ADC voltage regulator is correctly enabled, whether */ + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* or not ADC is coming from state reset (if any potential problem of */ + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* clocking, voltage regulator would not be enabled). */ + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL) + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of ADC parameters if previous preliminary actions are */ + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* correctly completed and if there is no conversion on going on regular */ + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* group (ADC may already be enabled at this point if HAL_ADC_Init() is */ + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* called to update a parameter on the fly). */ + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_reg_is_conversion_on_going = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_reg_is_conversion_on_going == 0UL) + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_BUSY_INTERNAL); + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of common ADC parameters */ + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters that can be updated only when ADC is disabled: */ + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - clock configuration */ + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 114 + + + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset configuration of ADC common register CCR: */ + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* */ + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - ADC clock mode and ACC prescaler (CKMODE and PRESC bits)are set */ + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* according to adc->Init.ClockPrescaler. It selects the clock */ + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* source and sets the clock division factor. */ + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* */ + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Some parameters of this register are not reset, since they are set */ + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* by other functions and must be kept in case of usage of this */ + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* function on the fly (update of a parameter of ADC_InitTypeDef */ + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* without needing to reconfigure all other ADC groups/channels */ + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* parameters): */ + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - when multimode feature is available, multimode-related */ + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* parameters: MDMA, DMACFG, DELAY, DUAL (set by API */ + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* HAL_ADCEx_MultiModeConfigChannel() ) */ + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - internal measurement paths: Vbat, temperature sensor, Vref */ + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (set into HAL_ADC_ConfigChannel() or */ + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* HAL_ADCEx_InjectedConfigChannel() ) */ + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetCommonClock(__LL_ADC_COMMON_INSTANCE(hadc->Instance), hadc->Init.ClockPrescaler); + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of ADC: */ + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - resolution Init.Resolution */ + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - data alignment Init.DataAlign */ + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - external trigger to start conversion Init.ExternalTrigConv */ + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - external trigger polarity Init.ExternalTrigConvEdge */ + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - continuous conversion mode Init.ContinuousConvMode */ + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - overrun Init.Overrun */ + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - discontinuous mode Init.DiscontinuousConvMode */ + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - discontinuous mode channel count Init.NbrOfDiscConversion */ + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpCFGR = (ADC_CFGR_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Overrun | + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.DataAlign | + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Resolution | + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_REG_DISCONTINUOUS((uint32_t)hadc->Init.DiscontinuousConvMode)); + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.DiscontinuousConvMode == ENABLE) + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpCFGR |= ADC_CFGR_DISCONTINUOUS_NUM(hadc->Init.NbrOfDiscConversion); + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable external trigger if trigger selection is different of software */ + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* start. */ + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: This configuration keeps the hardware feature of parameter */ + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ExternalTrigConvEdge "trigger edge none" equivalent to */ + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* software start. */ + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpCFGR |= ((hadc->Init.ExternalTrigConv & ADC_CFGR_EXTSEL) + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | hadc->Init.ExternalTrigConvEdge + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ); + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update Configuration Register CFGR */ + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->CFGR, ADC_CFGR_FIELDS_1, tmpCFGR); + ARM GAS /tmp/ccICigVb.s page 115 + + + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of sampling mode */ + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG, hadc->Init.SamplingMode); + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* conversion on going on regular and injected groups: */ + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Gain Compensation Init.GainCompensation */ + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - DMA continuous request Init.DMAContinuousRequests */ + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - LowPowerAutoWait feature Init.LowPowerAutoWait */ + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Oversampling parameters Init.Oversampling */ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpCFGR = (ADC_CFGR_DFSDM(hadc) | + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait) | + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests)); + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->CFGR, ADC_CFGR_FIELDS_2, tmpCFGR); + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.GainCompensation != 0UL) + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CFGR2, ADC_CFGR2_GCOMP); + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, hadc->Init.GainCompensation); + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_GCOMP); + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, 0UL); + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.OversamplingMode == ENABLE) + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_OVERSAMPLING_RATIO(hadc->Init.Oversampling.Ratio)); + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RIGHT_BIT_SHIFT(hadc->Init.Oversampling.RightBitShift)); + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_TRIGGERED_OVERSAMPLING_MODE(hadc->Init.Oversampling.TriggeredMode)); + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_REGOVERSAMPLING_MODE(hadc->Init.Oversampling.OversamplingStopReset)); + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of Oversampler: */ + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Oversampling Ratio */ + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Right bit shift */ + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Triggered mode */ + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Oversampling mode (continued/resumed) */ + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->CFGR2, + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_OVSR | + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_OVSS | + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_TROVS | + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_ROVSM, + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_ROVSE | + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Oversampling.Ratio | + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Oversampling.RightBitShift | + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Oversampling.TriggeredMode | + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Oversampling.OversamplingStopReset + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ); + ARM GAS /tmp/ccICigVb.s page 116 + + + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC oversampling scope on ADC group regular */ + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSE); + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of regular group sequencer: */ + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - if scan mode is disabled, regular channels sequence length is set to */ + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 0x00: 1 channel converted (channel on regular rank 1) */ + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameter "NbrOfConversion" is discarded. */ + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Scan mode is not present by hardware on this device, but */ + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* emulated by software for alignment over all STM32 devices. */ + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - if scan mode is enabled, regular channels sequence length is set to */ + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* parameter "NbrOfConversion". */ + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.ScanConvMode == ADC_SCAN_ENABLE) + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set number of ranks in regular group sequencer */ + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->SQR1, ADC_SQR1_L, (hadc->Init.NbrOfConversion - (uint8_t)1)); + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SQR1, ADC_SQR1_L); + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Initialize the ADC state */ + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear HAL_ADC_STATE_BUSY_INTERNAL bit, set HAL_ADC_STATE_READY bit */ + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL, HAL_ADC_STATE_READY); + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Deinitialize the ADC peripheral registers to their default reset + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * values, with deinitialization of the ADC MSP. + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note For devices with several ADCs: reset of ADC common registers is done + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * only if all ADCs sharing the same common group are disabled. + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (function "HAL_ADC_MspDeInit()" is also called under the same conditions: + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * all ADC instances use the same core clock at RCC level, disabling + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * the core clock reset all ADC instances). + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * If this is not the case, reset of these common parameters reset is + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * bypassed without error reporting: it can be the intended behavior in + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * case of reset of a single ADC while the other ADCs sharing the same + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * common group is still running. + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note By default, HAL_ADC_DeInit() set ADC in mode deep power-down: + ARM GAS /tmp/ccICigVb.s page 117 + + + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * this saves more power by reducing leakage currents + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * and is particularly interesting before entering MCU low-power modes. + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check ADC handle */ + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc == NULL) + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Stop potential conversion on going */ + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Flush register JSQR: reset the queue sequencer when injected */ + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* queue sequencer is enabled and ADC disabled. */ + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* The software and hardware triggers of the injected sequence are both */ + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* internally disabled just after the completion of the last valid */ + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* injected sequence. */ + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JQM); + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable the ADC peripheral */ + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if ADC is effectively disabled */ + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Change ADC state */ + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->State = HAL_ADC_STATE_READY; + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: HAL ADC deInit is done independently of ADC conversion stop */ + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* and disable return status. In case of status fail, attempt to */ + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* perform deinitialization anyway and it is up user code in */ + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* in HAL_ADC_MspDeInit() to reset the ADC peripheral using */ + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* system RCC hard reset. */ + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Reset ADC registers ========== */ + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register IER */ + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_AWD3 | ADC_IT_AWD2 | ADC_IT_AWD1 | + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_JQOVF | ADC_IT_OVR | + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_JEOS | ADC_IT_JEOC | + ARM GAS /tmp/ccICigVb.s page 118 + + + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_EOS | ADC_IT_EOC | + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_EOSMP | ADC_IT_RDY)); + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register ISR */ + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_AWD3 | ADC_FLAG_AWD2 | ADC_FLAG_AWD1 | + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_FLAG_JQOVF | ADC_FLAG_OVR | + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_FLAG_JEOS | ADC_FLAG_JEOC | + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_FLAG_EOS | ADC_FLAG_EOC | + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_FLAG_EOSMP | ADC_FLAG_RDY)); + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register CR */ + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Bits ADC_CR_JADSTP, ADC_CR_ADSTP, ADC_CR_JADSTART, ADC_CR_ADSTART, + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CR_ADCAL, ADC_CR_ADDIS and ADC_CR_ADEN are in access mode "read-set": + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** no direct reset applicable. + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Update CR register to reset value where doable by software */ + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CR, ADC_CR_ADVREGEN | ADC_CR_ADCALDIF); + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CR, ADC_CR_DEEPPWD); + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register CFGR */ + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_FIELDS); + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register CFGR2 */ + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSM | ADC_CFGR2_TROVS | ADC_CFGR2_OVSS | + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_OVSR | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE); + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register SMPR1 */ + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SMPR1, ADC_SMPR1_FIELDS); + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register SMPR2 */ + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SMPR2, ADC_SMPR2_SMP18 | ADC_SMPR2_SMP17 | ADC_SMPR2_SMP16 | + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SMPR2_SMP15 | ADC_SMPR2_SMP14 | ADC_SMPR2_SMP13 | + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SMPR2_SMP12 | ADC_SMPR2_SMP11 | ADC_SMPR2_SMP10); + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register TR1 */ + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->TR1, ADC_TR1_HT1 | ADC_TR1_LT1); + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register TR2 */ + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->TR2, ADC_TR2_HT2 | ADC_TR2_LT2); + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register TR3 */ + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->TR3, ADC_TR3_HT3 | ADC_TR3_LT3); + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register SQR1 */ + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SQR1, ADC_SQR1_SQ4 | ADC_SQR1_SQ3 | ADC_SQR1_SQ2 | + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SQR1_SQ1 | ADC_SQR1_L); + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register SQR2 */ + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SQR2, ADC_SQR2_SQ9 | ADC_SQR2_SQ8 | ADC_SQR2_SQ7 | + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SQR2_SQ6 | ADC_SQR2_SQ5); + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register SQR3 */ + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SQR3, ADC_SQR3_SQ14 | ADC_SQR3_SQ13 | ADC_SQR3_SQ12 | + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SQR3_SQ11 | ADC_SQR3_SQ10); + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register SQR4 */ + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->SQR4, ADC_SQR4_SQ16 | ADC_SQR4_SQ15); + ARM GAS /tmp/ccICigVb.s page 119 + + + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Register JSQR was reset when the ADC was disabled */ + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register DR */ + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* bits in access mode read only, no direct reset applicable*/ + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR1 */ + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->OFR1, ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1); + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR2 */ + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->OFR2, ADC_OFR2_OFFSET2_EN | ADC_OFR2_OFFSET2_CH | ADC_OFR2_OFFSET2); + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR3 */ + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->OFR3, ADC_OFR3_OFFSET3_EN | ADC_OFR3_OFFSET3_CH | ADC_OFR3_OFFSET3); + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR4 */ + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->OFR4, ADC_OFR4_OFFSET4_EN | ADC_OFR4_OFFSET4_CH | ADC_OFR4_OFFSET4); + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset registers JDR1, JDR2, JDR3, JDR4 */ + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* bits in access mode read only, no direct reset applicable*/ + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register AWD2CR */ + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->AWD2CR, ADC_AWD2CR_AWD2CH); + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register AWD3CR */ + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->AWD3CR, ADC_AWD3CR_AWD3CH); + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register DIFSEL */ + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->DIFSEL, ADC_DIFSEL_DIFSEL); + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register CALFACT */ + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CALFACT, ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S); + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Reset common ADC registers ========== */ + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Software is allowed to change common parameters only when all the other + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADCs are disabled. */ + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset configuration of ADC common register CCR: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - clock mode: CKMODE, PRESCEN + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - multimode related parameters (when this feature is available): MDMA, + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** DMACFG, DELAY, DUAL (set by HAL_ADCEx_MultiModeConfigChannel() API) + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - internal measurement paths: Vbat, temperature sensor, Vref (set into + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ConfigChannel() or HAL_ADCEx_InjectedConfigChannel() ) + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CLEAR_COMMON_CONTROL_REGISTER(hadc); + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Hard reset ADC peripheral ========== */ + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Performs a global reset of the entire ADC peripherals instances */ + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* sharing the same common ADC instance: ADC state is forced to */ + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* a similar state as after device power-on. */ + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: A possible implementation is to add RCC bus reset of ADC */ + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (for example, using macro */ + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* __HAL_RCC_ADC..._FORCE_RESET()/..._RELEASE_RESET()/..._CLK_DISABLE()) */ + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* in function "void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)": */ + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->MspDeInitCallback == NULL) + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 120 + + + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* DeInit the low level hardware */ + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspDeInitCallback(hadc); + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* DeInit the low level hardware */ + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_MspDeInit(hadc); + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to none */ + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset injected channel configuration parameters */ + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectionConfig.ContextQueue = 0; + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectionConfig.ChannelCount = 0; + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->State = HAL_ADC_STATE_RESET; + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Initialize the ADC MSP. + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __weak void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 175 .loc 1 914 1 is_stmt 1 view -0 + 176 .cfi_startproc + 177 @ args = 0, pretend = 0, frame = 0 + 178 @ frame_needed = 0, uses_anonymous_args = 0 + 179 @ link register save eliminated. + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** UNUSED(hadc); + 180 .loc 1 916 3 view .LVU27 + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** function HAL_ADC_MspInit must be implemented in the user file. + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 181 .loc 1 921 1 is_stmt 0 view .LVU28 + 182 0000 7047 bx lr + 183 .cfi_endproc + 184 .LFE331: + 186 .section .text.HAL_ADC_Init,"ax",%progbits + 187 .align 1 + 188 .global HAL_ADC_Init + 189 .syntax unified + 190 .thumb + ARM GAS /tmp/ccICigVb.s page 121 + + + 191 .thumb_func + 193 HAL_ADC_Init: + 194 .LVL15: + 195 .LFB329: + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 196 .loc 1 396 1 is_stmt 1 view -0 + 197 .cfi_startproc + 198 @ args = 0, pretend = 0, frame = 8 + 199 @ frame_needed = 0, uses_anonymous_args = 0 + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 200 .loc 1 396 1 is_stmt 0 view .LVU30 + 201 0000 30B5 push {r4, r5, lr} + 202 .LCFI5: + 203 .cfi_def_cfa_offset 12 + 204 .cfi_offset 4, -12 + 205 .cfi_offset 5, -8 + 206 .cfi_offset 14, -4 + 207 0002 83B0 sub sp, sp, #12 + 208 .LCFI6: + 209 .cfi_def_cfa_offset 24 + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpCFGR; + 210 .loc 1 397 3 is_stmt 1 view .LVU31 + 211 .LVL16: + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_reg_is_conversion_on_going; + 212 .loc 1 398 3 view .LVU32 + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0UL; + 213 .loc 1 399 3 view .LVU33 + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 214 .loc 1 400 3 view .LVU34 + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 215 .loc 1 400 17 is_stmt 0 view .LVU35 + 216 0004 0023 movs r3, #0 + 217 0006 0193 str r3, [sp, #4] + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 218 .loc 1 401 3 is_stmt 1 view .LVU36 + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 219 .loc 1 402 3 view .LVU37 + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 220 .loc 1 405 3 view .LVU38 + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 221 .loc 1 405 6 is_stmt 0 view .LVU39 + 222 0008 0028 cmp r0, #0 + 223 000a 00F00D81 beq .L31 + 224 000e 0446 mov r4, r0 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); + 225 .loc 1 411 3 is_stmt 1 view .LVU40 + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); + 226 .loc 1 412 3 view .LVU41 + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); + 227 .loc 1 413 3 view .LVU42 + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_GAIN_COMPENSATION(hadc->Init.GainCompensation)); + 228 .loc 1 414 3 view .LVU43 + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SCAN_MODE(hadc->Init.ScanConvMode)); + 229 .loc 1 415 3 view .LVU44 + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); + 230 .loc 1 416 3 view .LVU45 + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); + ARM GAS /tmp/ccICigVb.s page 122 + + + 231 .loc 1 417 3 view .LVU46 + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EXTTRIG(hadc, hadc->Init.ExternalTrigConv)); + 232 .loc 1 418 3 view .LVU47 + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SAMPLINGMODE(hadc->Init.SamplingMode)); + 233 .loc 1 419 3 view .LVU48 + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); + 234 .loc 1 420 3 view .LVU49 + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); + 235 .loc 1 421 3 view .LVU50 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_OVERRUN(hadc->Init.Overrun)); + 236 .loc 1 422 3 view .LVU51 + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoWait)); + 237 .loc 1 423 3 view .LVU52 + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.OversamplingMode)); + 238 .loc 1 424 3 view .LVU53 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 239 .loc 1 425 3 view .LVU54 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 240 .loc 1 427 3 view .LVU55 + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 241 .loc 1 434 7 view .LVU56 + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 242 .loc 1 439 3 view .LVU57 + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 243 .loc 1 443 3 view .LVU58 + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 244 .loc 1 443 11 is_stmt 0 view .LVU59 + 245 0010 C36D ldr r3, [r0, #92] + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 246 .loc 1 443 6 view .LVU60 + 247 0012 13B3 cbz r3, .L34 + 248 .LVL17: + 249 .L10: + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 250 .loc 1 477 3 is_stmt 1 view .LVU61 + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 251 .loc 1 477 7 is_stmt 0 view .LVU62 + 252 0014 2368 ldr r3, [r4] + 253 .LVL18: + 254 .LBB334: + 255 .LBI334: +5738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC analog watchdog monitored channel. +5741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +5742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +5743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +5744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +5745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +5746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +5747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +5748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +5749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +5750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +5751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +5752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Applicable only when the analog watchdog is set to monitor +5753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * one channel. + ARM GAS /tmp/ccICigVb.s page 123 + + +5754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +5766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +5767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +5768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +5769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +5770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +5771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +5772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +5773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +5774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +5775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +5778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +5779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AWD1CH LL_ADC_GetAnalogWDMonitChannels\n +5780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n +5781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1EN LL_ADC_GetAnalogWDMonitChannels\n +5782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JAWD1EN LL_ADC_GetAnalogWDMonitChannels\n +5783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD2CR AWD2CH LL_ADC_GetAnalogWDMonitChannels\n +5784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD3CR AWD3CH LL_ADC_GetAnalogWDMonitChannels +5785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +5787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +5788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 (1) +5789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 (1) +5790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On this AWD number, monitored channel can be retrieved +5792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * if only 1 channel is programmed (or none or all channels). +5793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function cannot retrieve monitored channel if +5794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * multiple channels are programmed simultaneously +5795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * by bitfield. +5796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +5797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_DISABLE +5798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) +5799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) +5800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ +5801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) +5802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) +5803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ +5804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) +5805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) +5806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ +5807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) +5808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) +5809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ +5810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) + ARM GAS /tmp/ccICigVb.s page 124 + + +5811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) +5812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ +5813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) +5814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) +5815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ +5816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) +5817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) +5818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ +5819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) +5820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) +5821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ +5822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) +5823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) +5824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ +5825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) +5826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) +5827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ +5828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) +5829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) +5830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ +5831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) +5832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) +5833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ +5834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) +5835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) +5836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ +5837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) +5838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) +5839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ +5840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) +5841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) +5842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ +5843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) +5844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) +5845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ +5846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) +5847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) +5848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ +5849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) +5850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) +5851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ +5852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) +5853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) +5854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ +5855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) +5856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) +5857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ +5858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (0) On STM32G4, parameter available only on analog watchdog number: AWD1. +5860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy) +5862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) +5864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC +5865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AnalogWDMonitChannels = (READ_BIT(*preg, AWDy) & ADC_AWD_CR_ALL_CHANNEL_MASK); +5867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/ccICigVb.s page 125 + + +5868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* If "AnalogWDMonitChannels" == 0, then the selected AWD is disabled */ +5869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (parameter value LL_ADC_AWD_DISABLE). */ +5870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Else, the selected AWD is enabled and is monitoring a group of channels */ +5871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* or a single channel. */ +5872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (AnalogWDMonitChannels != 0UL) +5873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (AWDy == LL_ADC_AWD1) +5875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if ((AnalogWDMonitChannels & ADC_CFGR_AWD1SGL) == 0UL) +5877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a group of channels */ +5879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = ((AnalogWDMonitChannels +5880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (ADC_AWD_CR23_CHANNEL_MASK) +5881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +5882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & (~(ADC_CFGR_AWD1CH)) +5883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a single channel */ +5888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = (AnalogWDMonitChannels +5889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (ADC_AWD2CR_AWD2CH_0 << (AnalogWDMonitChannels >> ADC_CFGR_AWD1C +5890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if ((AnalogWDMonitChannels & ADC_AWD_CR23_CHANNEL_MASK) == ADC_AWD_CR23_CHANNEL_MASK) +5896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a group of channels */ +5898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = (ADC_AWD_CR23_CHANNEL_MASK +5899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ((ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN)) +5900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a single channel */ +5905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a group of channels */ +5906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = (AnalogWDMonitChannels +5907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +5908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (__LL_ADC_CHANNEL_TO_DECIMAL_NB(AnalogWDMonitChannels) << ADC_CF +5909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return AnalogWDMonitChannels; +5915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog thresholds value of both thresholds +5919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * high and low. +5920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If value of only one threshold high or low must be set, +5921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_SetAnalogWDThresholds(). +5922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC resolution different of 12 bits, +5923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog thresholds data require a specific shift. +5924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(). + ARM GAS /tmp/ccICigVb.s page 126 + + +5925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +5937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +5938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +5939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +5940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +5941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +5942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +5943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +5944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +5945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +5946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC oversampling is enabled, ADC analog watchdog thresholds are +5947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * impacted: the comparison of analog watchdog thresholds is done on +5948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * oversampling final computation (after ratio and shift application): +5949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC data register bitfield [15:4] (12 most significant bits). +5950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 HT1 LL_ADC_ConfigAnalogWDThresholds\n +5951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 HT2 LL_ADC_ConfigAnalogWDThresholds\n +5952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 HT3 LL_ADC_ConfigAnalogWDThresholds\n +5953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR1 LT1 LL_ADC_ConfigAnalogWDThresholds\n +5954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 LT2 LL_ADC_ConfigAnalogWDThresholds\n +5955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 LT3 LL_ADC_ConfigAnalogWDThresholds +5956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +5958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +5959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +5960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +5961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdHighValue Value between Min_Data=0x000 and Max_Data=0xFFF +5962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdLowValue Value between Min_Data=0x000 and Max_Data=0xFFF +5963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ConfigAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWD +5966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AWDThresholdLowValue) +5967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "AWDThresholdxxxValue" with bits */ +5969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* position in register and register position depending on parameter */ +5970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "AWDy". */ +5971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "AWDy" and "AWDThresholdxxxValue" are used with masks because */ +5972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +5973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC +5974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +5976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_TR1_HT1 | ADC_TR1_LT1, +5977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDThresholdHighValue << ADC_TR1_HT1_BITOFFSET_POS) | AWDThresholdLowValue); +5978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog threshold value of threshold + ARM GAS /tmp/ccICigVb.s page 127 + + +5982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * high or low. +5983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If values of both thresholds high or low must be set, +5984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_ConfigAnalogWDThresholds(). +5985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC resolution different of 12 bits, +5986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog thresholds data require a specific shift. +5987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(). +5988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +6000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +6001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +6002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +6003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +6004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +6005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +6006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +6007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +6008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +6009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC oversampling is enabled, ADC analog watchdog thresholds are +6010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * impacted: the comparison of analog watchdog thresholds is done on +6011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * oversampling final computation (after ratio and shift application): +6012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC data register bitfield [15:4] (12 most significant bits). +6013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is not conditioned to +6014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC can be disabled, enabled with or without conversion on going +6016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either ADC groups regular or injected. +6017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 HT1 LL_ADC_SetAnalogWDThresholds\n +6018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 HT2 LL_ADC_SetAnalogWDThresholds\n +6019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 HT3 LL_ADC_SetAnalogWDThresholds\n +6020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR1 LT1 LL_ADC_SetAnalogWDThresholds\n +6021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 LT2 LL_ADC_SetAnalogWDThresholds\n +6022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 LT3 LL_ADC_SetAnalogWDThresholds +6023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +6027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +6028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdsHighLow This parameter can be one of the following values: +6029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH +6030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_LOW +6031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF +6032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThr +6035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AWDThresholdValue) +6036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "AWDThresholdValue" with bits */ +6038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* position in register and register position depending on parameters */ + ARM GAS /tmp/ccICigVb.s page 128 + + +6039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "AWDThresholdsHighLow" and "AWDy". */ +6040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "AWDy" and "AWDThresholdValue" are used with masks because */ +6041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +6042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, +6043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_RE +6044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +6046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AWDThresholdsHighLow, +6047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AWDThresholdValue << ((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TR +6048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC analog watchdog threshold value of threshold high, +6052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * threshold low or raw data with ADC thresholds high and low +6053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * concatenated. +6054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If raw data with ADC thresholds high and low is retrieved, +6055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the data of each threshold high or low can be isolated +6056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro: +6057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(). +6058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC resolution different of 12 bits, +6059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog thresholds data require a specific shift. +6060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(). +6061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 HT1 LL_ADC_GetAnalogWDThresholds\n +6062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 HT2 LL_ADC_GetAnalogWDThresholds\n +6063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 HT3 LL_ADC_GetAnalogWDThresholds\n +6064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR1 LT1 LL_ADC_GetAnalogWDThresholds\n +6065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 LT2 LL_ADC_GetAnalogWDThresholds\n +6066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 LT3 LL_ADC_GetAnalogWDThresholds +6067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +6071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +6072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdsHighLow This parameter can be one of the following values: +6073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH +6074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_LOW +6075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLDS_HIGH_LOW +6076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +6077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AW +6079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, +6081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_ +6082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(*preg, +6084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDThresholdsHighLow | ADC_TR1_LT1)) +6085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH +6086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & ~(AWDThresholdsHighLow & ADC_TR1_LT1))); +6087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog filtering configuration +6091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this feature is only available on first + ARM GAS /tmp/ccICigVb.s page 129 + + +6096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog (AWD1) +6097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 AWDFILT LL_ADC_SetAWDFilteringConfiguration +6098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param FilteringConfig This parameter can be one of the following values: +6102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_NONE +6103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_2SAMPLES +6104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_3SAMPLES +6105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_4SAMPLES +6106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_5SAMPLES +6107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_6SAMPLES +6108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_7SAMPLES +6109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_8SAMPLES +6110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetAWDFilteringConfiguration(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t +6113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Prevent unused argument(s) compilation warning */ +6115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (void)(AWDy); +6116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->TR1, ADC_TR1_AWDFILT, FilteringConfig); +6117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC analog watchdog filtering configuration +6121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this feature is only available on first +6122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog (AWD1) +6123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 AWDFILT LL_ADC_GetAWDFilteringConfiguration +6124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be: +6128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_NONE +6129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_2SAMPLES +6130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_3SAMPLES +6131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_4SAMPLES +6132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_5SAMPLES +6133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_6SAMPLES +6134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_7SAMPLES +6135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_8SAMPLES +6136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetAWDFilteringConfiguration(ADC_TypeDef *ADCx, uint32_t AWDy) +6138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Prevent unused argument(s) compilation warning */ +6140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (void)(AWDy); +6141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->TR1, ADC_TR1_AWDFILT)); +6142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_oversampling Configuration of ADC transversal scope: over +6149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 130 + + +6153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC oversampling scope: ADC groups regular and-or injected +6154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (availability of ADC group injected depends on STM32 families). +6155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If both groups regular and injected are selected, +6156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * specify behavior of ADC group injected interrupting +6157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * group regular: when ADC group injected is triggered, +6158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the oversampling on ADC group regular is either +6159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temporary stopped and continued, or resumed from start +6160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (oversampler buffer reset). +6161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 ROVSE LL_ADC_SetOverSamplingScope\n +6166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 JOVSE LL_ADC_SetOverSamplingScope\n +6167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 ROVSM LL_ADC_SetOverSamplingScope +6168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OvsScope This parameter can be one of the following values: +6170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_DISABLE +6171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED +6172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED +6173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJECTED +6174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED +6175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOverSamplingScope(ADC_TypeDef *ADCx, uint32_t OvsScope) +6178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM, OvsScope); +6180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling scope: ADC groups regular and-or injected +6184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (availability of ADC group injected depends on STM32 families). +6185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If both groups regular and injected are selected, +6186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * specify behavior of ADC group injected interrupting +6187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * group regular: when ADC group injected is triggered, +6188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the oversampling on ADC group regular is either +6189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temporary stopped and continued, or resumed from start +6190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (oversampler buffer reset). +6191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 ROVSE LL_ADC_GetOverSamplingScope\n +6192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 JOVSE LL_ADC_GetOverSamplingScope\n +6193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 ROVSM LL_ADC_GetOverSamplingScope +6194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_DISABLE +6197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED +6198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED +6199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJECTED +6200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED +6201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingScope(ADC_TypeDef *ADCx) +6203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM)); +6205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC oversampling discontinuous mode (triggered mode) +6209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on the selected ADC group. + ARM GAS /tmp/ccICigVb.s page 131 + + +6210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Number of oversampled conversions are done either in: +6211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode (all conversions of oversampling ratio +6212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are done from 1 trigger) +6213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - discontinuous mode (each conversion of oversampling ratio +6214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * needs a trigger) +6215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +6219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, oversampling discontinuous mode +6220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (triggered mode) can be used only when oversampling is +6221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * set on group regular only and in resumed mode. +6222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 TROVS LL_ADC_SetOverSamplingDiscont +6223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OverSamplingDiscont This parameter can be one of the following values: +6225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_CONT +6226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_DISCONT +6227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOverSamplingDiscont(ADC_TypeDef *ADCx, uint32_t OverSamplingDiscont) +6230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_TROVS, OverSamplingDiscont); +6232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling discontinuous mode (triggered mode) +6236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on the selected ADC group. +6237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Number of oversampled conversions are done either in: +6238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode (all conversions of oversampling ratio +6239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are done from 1 trigger) +6240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - discontinuous mode (each conversion of oversampling ratio +6241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * needs a trigger) +6242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 TROVS LL_ADC_GetOverSamplingDiscont +6243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_CONT +6246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_DISCONT +6247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingDiscont(ADC_TypeDef *ADCx) +6249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_TROVS)); +6251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC oversampling +6255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (impacting both ADC groups regular and injected) +6256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the 2 items of oversampling configuration: +6257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ratio +6258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - shift +6259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 OVSS LL_ADC_ConfigOverSamplingRatioShift\n +6264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 OVSR LL_ADC_ConfigOverSamplingRatioShift +6265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Ratio This parameter can be one of the following values: + ARM GAS /tmp/ccICigVb.s page 132 + + +6267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_2 +6268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_4 +6269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_8 +6270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_16 +6271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_32 +6272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_64 +6273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_128 +6274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_256 +6275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Shift This parameter can be one of the following values: +6276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_NONE +6277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1 +6278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2 +6279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3 +6280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4 +6281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5 +6282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6 +6283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7 +6284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8 +6285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ConfigOverSamplingRatioShift(ADC_TypeDef *ADCx, uint32_t Ratio, uint32_ +6288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, (ADC_CFGR2_OVSS | ADC_CFGR2_OVSR), (Shift | Ratio)); +6290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling ratio +6294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (impacting both ADC groups regular and injected) +6295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 OVSR LL_ADC_GetOverSamplingRatio +6296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Ratio This parameter can be one of the following values: +6298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_2 +6299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_4 +6300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_8 +6301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_16 +6302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_32 +6303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_64 +6304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_128 +6305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_256 +6306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingRatio(ADC_TypeDef *ADCx) +6308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSR)); +6310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling shift +6314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (impacting both ADC groups regular and injected) +6315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 OVSS LL_ADC_GetOverSamplingShift +6316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Shift This parameter can be one of the following values: +6318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_NONE +6319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1 +6320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2 +6321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3 +6322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4 +6323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5 + ARM GAS /tmp/ccICigVb.s page 133 + + +6324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6 +6325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7 +6326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8 +6327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingShift(ADC_TypeDef *ADCx) +6329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSS)); +6331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multim +6338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +6342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC multimode configuration to operate in independent mode +6344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or multimode (for devices with several ADC instances). +6345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If multimode configuration: the selected ADC instance is +6346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * either master or slave depending on hardware. +6347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual. +6348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +6351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This check can be done with function @ref LL_ADC_IsEnabled() for each +6352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance or by using helper macro +6353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). +6354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DUAL LL_ADC_SetMultimode +6355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Multimode This parameter can be one of the following values: +6358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_INDEPENDENT +6359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT +6360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL +6361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT +6362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN +6363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM +6364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT +6365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM +6366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode) +6369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DUAL, Multimode); +6371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode configuration to operate in independent mode +6375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or multimode (for devices with several ADC instances). +6376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If multimode configuration: the selected ADC instance is +6377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * either master or slave depending on hardware. +6378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual. +6379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DUAL LL_ADC_GetMultimode +6380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance + ARM GAS /tmp/ccICigVb.s page 134 + + +6381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_INDEPENDENT +6384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT +6385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL +6386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT +6387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN +6388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM +6389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT +6390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM +6391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetMultimode(ADC_Common_TypeDef *ADCxy_COMMON) +6393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DUAL)); +6395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC multimode conversion data transfer: no transfer +6399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or transfer by DMA. +6400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC multimode transfer by DMA is not selected: +6401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * each ADC uses its own DMA channel, with its individual +6402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * DMA transfer settings. +6403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: +6404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * One DMA channel is used for both ADC (DMA of ADC master) +6405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specifies the DMA requests mode: +6406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +6407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +6408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +6409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +6410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +6411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +6412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +6413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +6414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +6415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +6416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +6417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +6418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). +6419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note How to retrieve multimode conversion data: +6420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Whatever multimode transfer by DMA setting: using function +6421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref LL_ADC_REG_ReadMultiConversionData32(). +6422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: conversion data +6423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is a raw data with ADC master and slave concatenated. +6424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * A macro is available to get the conversion data of +6425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC master or ADC slave: see helper macro +6426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). +6427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled +6430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or enabled without conversion on going on group regular. +6431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR MDMA LL_ADC_SetMultiDMATransfer\n +6432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR DMACFG LL_ADC_SetMultiDMATransfer +6433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param MultiDMATransfer This parameter can be one of the following values: +6436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC +6437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B + ARM GAS /tmp/ccICigVb.s page 135 + + +6438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B +6439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B +6440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B +6441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMA +6444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, MultiDMATransfer); +6446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode conversion data transfer: no transfer +6450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or transfer by DMA. +6451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC multimode transfer by DMA is not selected: +6452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * each ADC uses its own DMA channel, with its individual +6453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * DMA transfer settings. +6454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: +6455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * One DMA channel is used for both ADC (DMA of ADC master) +6456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specifies the DMA requests mode: +6457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +6458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +6459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +6460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +6461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +6462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +6463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +6464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +6465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +6466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +6467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +6468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +6469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). +6470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note How to retrieve multimode conversion data: +6471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Whatever multimode transfer by DMA setting: using function +6472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref LL_ADC_REG_ReadMultiConversionData32(). +6473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: conversion data +6474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is a raw data with ADC master and slave concatenated. +6475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * A macro is available to get the conversion data of +6476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC master or ADC slave: see helper macro +6477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). +6478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR MDMA LL_ADC_GetMultiDMATransfer\n +6479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR DMACFG LL_ADC_GetMultiDMATransfer +6480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC +6484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B +6485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B +6486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B +6487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B +6488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON) +6490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG)); +6492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 136 + + +6495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC multimode delay between 2 sampling phases. +6496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The sampling delay range depends on ADC resolution: +6497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 12 bits can have maximum delay of 12 cycles. +6498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 10 bits can have maximum delay of 10 cycles. +6499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 8 bits can have maximum delay of 8 cycles. +6500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 6 bits can have maximum delay of 6 cycles. +6501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +6504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This check can be done with function @ref LL_ADC_IsEnabled() for each +6505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance or by using helper macro helper macro +6506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). +6507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DELAY LL_ADC_SetMultiTwoSamplingDelay +6508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param MultiTwoSamplingDelay This parameter can be one of the following values: +6511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE +6512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES +6513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES +6514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES +6515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES +6516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1) +6517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1) +6518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2) +6519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2) +6520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2) +6521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3) +6522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3) +6523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +6524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n +6525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n +6526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) Parameter available only if ADC resolution is 12 bits. +6527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Mul +6530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay); +6532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode delay between 2 sampling phases. +6536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DELAY LL_ADC_GetMultiTwoSamplingDelay +6537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE +6541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES +6542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES +6543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES +6544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES +6545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1) +6546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1) +6547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2) +6548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2) +6549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2) +6550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3) +6551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3) + ARM GAS /tmp/ccICigVb.s page 137 + + +6552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +6553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n +6554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n +6555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) Parameter available only if ADC resolution is 12 bits. +6556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON) +6558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY)); +6560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +6562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance +6567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Put ADC instance in deep power down state. +6572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC calibration necessary: When ADC is in deep-power-down +6573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * state, the internal analog calibration is lost. After exiting from +6574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * deep power down, calibration must be relaunched or calibration factor +6575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (preliminarily saved) must be set back into calibration register. +6576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR DEEPPWD LL_ADC_EnableDeepPowerDown +6580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableDeepPowerDown(ADC_TypeDef *ADCx) +6584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_DEEPPWD); +6591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable ADC deep power down mode. +6595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC calibration necessary: When ADC is in deep-power-down +6596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * state, the internal analog calibration is lost. After exiting from +6597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * deep power down, calibration must be relaunched or calibration factor +6598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (preliminarily saved) must be set back into calibration register. +6599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR DEEPPWD LL_ADC_DisableDeepPowerDown +6603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableDeepPowerDown(ADC_TypeDef *ADCx) +6607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ + ARM GAS /tmp/ccICigVb.s page 138 + + +6609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->CR, (ADC_CR_DEEPPWD | ADC_CR_BITS_PROPERTY_RS)); +6612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance deep power down state. +6616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR DEEPPWD LL_ADC_IsDeepPowerDownEnabled +6617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: deep power down is disabled, 1: deep power down is enabled. +6619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsDeepPowerDownEnabled(ADC_TypeDef *ADCx) + 256 .loc 2 6620 26 is_stmt 1 view .LVU63 + 257 .LBB335: +6621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_DEEPPWD) == (ADC_CR_DEEPPWD)) ? 1UL : 0UL); + 258 .loc 2 6622 3 view .LVU64 + 259 .loc 2 6622 12 is_stmt 0 view .LVU65 + 260 0016 9A68 ldr r2, [r3, #8] + 261 .loc 2 6622 74 view .LVU66 + 262 0018 12F0005F tst r2, #536870912 + 263 001c 05D0 beq .L11 + 264 .LVL19: + 265 .loc 2 6622 74 view .LVU67 + 266 .LBE335: + 267 .LBE334: + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 268 .loc 1 480 5 is_stmt 1 view .LVU68 + 269 .LBB336: + 270 .LBI336: +6606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 271 .loc 2 6606 22 view .LVU69 + 272 .LBB337: +6611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 273 .loc 2 6611 3 view .LVU70 + 274 001e 9A68 ldr r2, [r3, #8] + 275 0020 22F02042 bic r2, r2, #-1610612736 + 276 0024 22F03F02 bic r2, r2, #63 + 277 0028 9A60 str r2, [r3, #8] + 278 .LVL20: + 279 .L11: +6611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 280 .loc 2 6611 3 is_stmt 0 view .LVU71 + 281 .LBE337: + 282 .LBE336: + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 283 .loc 1 487 3 is_stmt 1 view .LVU72 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 284 .loc 1 487 7 is_stmt 0 view .LVU73 + 285 002a 2268 ldr r2, [r4] + 286 .LVL21: + 287 .LBB338: + 288 .LBI338: +6623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable ADC instance internal voltage regulator. + ARM GAS /tmp/ccICigVb.s page 139 + + +6627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, after ADC internal voltage regulator enable, +6628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a delay for ADC internal voltage regulator stabilization +6629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is required before performing a ADC calibration or ADC enable. +6630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet, parameter tADCVREG_STUP. +6631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_INTERNAL_REGUL_STAB_US. +6632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADVREGEN LL_ADC_EnableInternalRegulator +6636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx) +6640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADVREGEN); +6647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable ADC internal voltage regulator. +6651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADVREGEN LL_ADC_DisableInternalRegulator +6655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableInternalRegulator(ADC_TypeDef *ADCx) +6659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN | ADC_CR_BITS_PROPERTY_RS)); +6661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance internal voltage regulator state. +6665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADVREGEN LL_ADC_IsInternalRegulatorEnabled +6666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: internal regulator is disabled, 1: internal regulator is enabled. +6668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(ADC_TypeDef *ADCx) + 289 .loc 2 6669 26 is_stmt 1 view .LVU74 + 290 .LBB339: +6670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN)) ? 1UL : 0UL); + 291 .loc 2 6671 3 view .LVU75 + 292 .loc 2 6671 12 is_stmt 0 view .LVU76 + 293 002c 9368 ldr r3, [r2, #8] + 294 .loc 2 6671 76 view .LVU77 + 295 002e 13F0805F tst r3, #268435456 + 296 0032 1FD1 bne .L12 + 297 .LVL22: + 298 .loc 2 6671 76 view .LVU78 + 299 .LBE339: + 300 .LBE338: + ARM GAS /tmp/ccICigVb.s page 140 + + + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 301 .loc 1 490 5 is_stmt 1 view .LVU79 + 302 .LBB340: + 303 .LBI340: +6639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 304 .loc 2 6639 22 view .LVU80 + 305 .LBB341: +6644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 306 .loc 2 6644 3 view .LVU81 + 307 0034 9368 ldr r3, [r2, #8] + 308 0036 23F01043 bic r3, r3, #-1879048192 + 309 003a 23F03F03 bic r3, r3, #63 + 310 003e 43F08053 orr r3, r3, #268435456 + 311 0042 9360 str r3, [r2, #8] + 312 .LVL23: +6644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 313 .loc 2 6644 3 is_stmt 0 view .LVU82 + 314 .LBE341: + 315 .LBE340: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 316 .loc 1 495 5 is_stmt 1 view .LVU83 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 317 .loc 1 495 89 is_stmt 0 view .LVU84 + 318 0044 794B ldr r3, .L38 + 319 0046 1B68 ldr r3, [r3] + 320 0048 9B09 lsrs r3, r3, #6 + 321 004a 794A ldr r2, .L38+4 + 322 004c A2FB0323 umull r2, r3, r2, r3 + 323 0050 9B09 lsrs r3, r3, #6 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 324 .loc 1 495 109 view .LVU85 + 325 0052 0133 adds r3, r3, #1 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 326 .loc 1 495 69 view .LVU86 + 327 0054 5B00 lsls r3, r3, #1 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 328 .loc 1 495 21 view .LVU87 + 329 0056 0193 str r3, [sp, #4] + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 330 .loc 1 496 5 is_stmt 1 view .LVU88 + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 331 .loc 1 496 11 is_stmt 0 view .LVU89 + 332 0058 09E0 b .L13 + 333 .LVL24: + 334 .L34: + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 335 .loc 1 466 5 is_stmt 1 view .LVU90 + 336 005a FFF7FEFF bl HAL_ADC_MspInit + 337 .LVL25: + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 338 .loc 1 470 5 view .LVU91 + 339 005e 0023 movs r3, #0 + 340 0060 2366 str r3, [r4, #96] + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 341 .loc 1 473 5 view .LVU92 + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 342 .loc 1 473 16 is_stmt 0 view .LVU93 + ARM GAS /tmp/ccICigVb.s page 141 + + + 343 0062 84F85830 strb r3, [r4, #88] + 344 0066 D5E7 b .L10 + 345 .L14: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 346 .loc 1 498 7 is_stmt 1 view .LVU94 + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 347 .loc 1 498 22 is_stmt 0 view .LVU95 + 348 0068 019B ldr r3, [sp, #4] + 349 006a 013B subs r3, r3, #1 + 350 006c 0193 str r3, [sp, #4] + 351 .L13: + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 352 .loc 1 496 28 is_stmt 1 view .LVU96 + 353 006e 019B ldr r3, [sp, #4] + 354 0070 002B cmp r3, #0 + 355 0072 F9D1 bne .L14 + 356 .L12: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 357 .loc 1 505 3 view .LVU97 + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 358 .loc 1 505 7 is_stmt 0 view .LVU98 + 359 0074 2268 ldr r2, [r4] + 360 .LVL26: + 361 .LBB342: + 362 .LBI342: +6669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 363 .loc 2 6669 26 is_stmt 1 view .LVU99 + 364 .LBB343: + 365 .loc 2 6671 3 view .LVU100 + 366 .loc 2 6671 12 is_stmt 0 view .LVU101 + 367 0076 9368 ldr r3, [r2, #8] + 368 .loc 2 6671 76 view .LVU102 + 369 0078 13F0805F tst r3, #268435456 + 370 007c 40F09C80 bne .L32 + 371 .LVL27: + 372 .loc 2 6671 76 view .LVU103 + 373 .LBE343: + 374 .LBE342: + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 375 .loc 1 508 5 is_stmt 1 view .LVU104 + 376 0080 E36D ldr r3, [r4, #92] + 377 0082 43F01003 orr r3, r3, #16 + 378 0086 E365 str r3, [r4, #92] + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 379 .loc 1 511 5 view .LVU105 + 380 0088 236E ldr r3, [r4, #96] + 381 008a 43F00103 orr r3, r3, #1 + 382 008e 2366 str r3, [r4, #96] + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 383 .loc 1 513 5 view .LVU106 + 384 .LVL28: + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 385 .loc 1 513 20 is_stmt 0 view .LVU107 + 386 0090 0120 movs r0, #1 + 387 .LVL29: + 388 .L15: + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 142 + + + 389 .loc 1 520 3 is_stmt 1 view .LVU108 + 390 .LBB344: + 391 .LBI344: +6672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable the selected ADC instance. +6676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, after ADC enable, a delay for +6677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC internal analog stabilization is required before performing a +6678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion start. +6679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet, parameter tSTAB. +6680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC +6681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled and when conversion clock is active. +6682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (not only core clock: this ADC has a dual clock domain) +6683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled and ADC internal voltage regulator enabled. +6686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADEN LL_ADC_Enable +6687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx) +6691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADEN); +6698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable the selected ADC instance. +6702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be not disabled. Must be enabled without conversion on going +6705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADDIS LL_ADC_Disable +6707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx) +6711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADDIS); +6718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance enable state. +6722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC +6723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled and when conversion clock is active. +6724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (not only core clock: this ADC has a dual clock domain) +6725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADEN LL_ADC_IsEnabled + ARM GAS /tmp/ccICigVb.s page 143 + + +6726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: ADC is disabled, 1: ADC is enabled. +6728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx) +6730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL); +6732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance disable state. +6736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADDIS LL_ADC_IsDisableOngoing +6737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no ADC disable command on going. +6739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsDisableOngoing(ADC_TypeDef *ADCx) +6741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS)) ? 1UL : 0UL); +6743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC calibration in the mode single-ended +6747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or differential (for devices with differential mode available). +6748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, a minimum number of ADC clock cycles +6749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are required between ADC end of calibration and ADC enable. +6750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES. +6751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with differential mode available: +6752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Calibration of offset is specific to each of +6753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * single-ended and differential modes +6754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (calibration run must be performed for each of these +6755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * differential modes, if used afterwards and if the application +6756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * requires their calibration). +6757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADCAL LL_ADC_StartCalibration\n +6761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CR ADCALDIF LL_ADC_StartCalibration +6762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be one of the following values: +6764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +6765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +6766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_StartCalibration(ADC_TypeDef *ADCx, uint32_t SingleDiff) +6769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADCALDIF | ADC_CR_BITS_PROPERTY_RS, +6775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADCAL | (SingleDiff & ADC_SINGLEDIFF_CALIB_START_MASK)); +6776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC calibration state. +6780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADCAL LL_ADC_IsCalibrationOnGoing +6781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: calibration complete, 1: calibration in progress. + ARM GAS /tmp/ccICigVb.s page 144 + + +6783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsCalibrationOnGoing(ADC_TypeDef *ADCx) +6785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADCAL) == (ADC_CR_ADCAL)) ? 1UL : 0UL); +6787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regu +6794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC group regular conversion. +6799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this function is relevant for both +6800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal trigger (SW start) and external trigger: +6801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to software start, ADC conversion +6802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * starts immediately. +6803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to external trigger, ADC conversion +6804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will start at next trigger event (on the selected trigger edge) +6805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * following the ADC start conversion command. +6806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group regular, +6809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group regular, +6810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTART LL_ADC_REG_StartConversion +6812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx) +6816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADSTART); +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Stop ADC group regular conversion. +6827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled with conversion on going on group regular, +6830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTP LL_ADC_REG_StopConversion +6832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx) +6836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ + ARM GAS /tmp/ccICigVb.s page 145 + + +6840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADSTP); +6843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion state. +6847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTART LL_ADC_REG_IsConversionOngoing +6848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no conversion is on going on ADC group regular. +6850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(ADC_TypeDef *ADCx) + 392 .loc 2 6851 26 view .LVU109 + 393 .LBB345: +6852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL); + 394 .loc 2 6853 3 view .LVU110 + 395 .loc 2 6853 12 is_stmt 0 view .LVU111 + 396 0092 9368 ldr r3, [r2, #8] + 397 .loc 2 6853 74 view .LVU112 + 398 0094 13F00403 ands r3, r3, #4 + 399 0098 00D0 beq .L16 + 400 009a 0123 movs r3, #1 + 401 .L16: + 402 .LVL30: + 403 .loc 2 6853 74 view .LVU113 + 404 .LBE345: + 405 .LBE344: + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_reg_is_conversion_on_going == 0UL) + 406 .loc 1 522 3 is_stmt 1 view .LVU114 + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_reg_is_conversion_on_going == 0UL) + 407 .loc 1 522 13 is_stmt 0 view .LVU115 + 408 009c E16D ldr r1, [r4, #92] + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_reg_is_conversion_on_going == 0UL) + 409 .loc 1 522 6 view .LVU116 + 410 009e 11F0100F tst r1, #16 + 411 00a2 40F0BA80 bne .L17 + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 412 .loc 1 523 7 view .LVU117 + 413 00a6 002B cmp r3, #0 + 414 00a8 40F0B780 bne .L17 + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, + 415 .loc 1 527 5 is_stmt 1 view .LVU118 + 416 00ac E36D ldr r3, [r4, #92] + 417 .LVL31: + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, + 418 .loc 1 527 5 is_stmt 0 view .LVU119 + 419 00ae 23F48173 bic r3, r3, #258 + 420 00b2 43F00203 orr r3, r3, #2 + 421 00b6 E365 str r3, [r4, #92] + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 422 .loc 1 536 5 is_stmt 1 view .LVU120 + 423 .LVL32: + 424 .LBB346: + 425 .LBI346: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 426 .loc 2 6729 26 view .LVU121 + ARM GAS /tmp/ccICigVb.s page 146 + + + 427 .LBB347: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 428 .loc 2 6731 3 view .LVU122 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 429 .loc 2 6731 12 is_stmt 0 view .LVU123 + 430 00b8 9368 ldr r3, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 431 .loc 2 6731 68 view .LVU124 + 432 00ba 13F0010F tst r3, #1 + 433 00be 15D1 bne .L18 + 434 .LVL33: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 435 .loc 2 6731 68 view .LVU125 + 436 .LBE347: + 437 .LBE346: + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 438 .loc 1 538 7 is_stmt 1 view .LVU126 + 439 .LBB348: + 440 .LBI348: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 441 .loc 2 6729 26 view .LVU127 + 442 .LBB349: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 443 .loc 2 6731 3 view .LVU128 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 444 .loc 2 6731 12 is_stmt 0 view .LVU129 + 445 00c0 4FF0A043 mov r3, #1342177280 + 446 00c4 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 447 .loc 2 6731 68 view .LVU130 + 448 00c6 12F00102 ands r2, r2, #1 + 449 00ca 00D0 beq .L19 + 450 00cc 0122 movs r2, #1 + 451 .L19: + 452 .LVL34: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 453 .loc 2 6731 68 view .LVU131 + 454 .LBE349: + 455 .LBE348: + 456 .LBB350: + 457 .LBI350: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 458 .loc 2 6729 26 is_stmt 1 view .LVU132 + 459 .LBB351: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 460 .loc 2 6731 3 view .LVU133 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 461 .loc 2 6731 12 is_stmt 0 view .LVU134 + 462 00ce 594B ldr r3, .L38+8 + 463 00d0 9B68 ldr r3, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 464 .loc 2 6731 68 view .LVU135 + 465 00d2 13F00103 ands r3, r3, #1 + 466 00d6 00D0 beq .L20 + 467 00d8 0123 movs r3, #1 + 468 .L20: + 469 .LVL35: + ARM GAS /tmp/ccICigVb.s page 147 + + +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 470 .loc 2 6731 68 view .LVU136 + 471 .LBE351: + 472 .LBE350: + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 473 .loc 1 538 10 view .LVU137 + 474 00da 1343 orrs r3, r3, r2 + 475 00dc 06D1 bne .L18 + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 476 .loc 1 557 9 is_stmt 1 view .LVU138 + 477 00de 6368 ldr r3, [r4, #4] + 478 .LVL36: + 479 .LBB352: + 480 .LBI352: +2732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 481 .loc 2 2732 22 view .LVU139 + 482 .LBB353: +2734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 483 .loc 2 2734 3 view .LVU140 + 484 00e0 5549 ldr r1, .L38+12 + 485 00e2 8A68 ldr r2, [r1, #8] + 486 00e4 22F47C12 bic r2, r2, #4128768 + 487 00e8 1343 orrs r3, r3, r2 + 488 .LVL37: +2734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 489 .loc 2 2734 3 is_stmt 0 view .LVU141 + 490 00ea 8B60 str r3, [r1, #8] + 491 .LVL38: + 492 .L18: +2734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 493 .loc 2 2734 3 view .LVU142 + 494 .LBE353: + 495 .LBE352: + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Overrun | + 496 .loc 1 570 5 is_stmt 1 view .LVU143 + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Overrun | + 497 .loc 1 570 17 is_stmt 0 view .LVU144 + 498 00ec 627F ldrb r2, [r4, #29] @ zero_extendqisi2 + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.DataAlign | + 499 .loc 1 571 27 view .LVU145 + 500 00ee E36B ldr r3, [r4, #60] + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Overrun | + 501 .loc 1 570 88 view .LVU146 + 502 00f0 43EA4233 orr r3, r3, r2, lsl #13 + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Resolution | + 503 .loc 1 572 27 view .LVU147 + 504 00f4 E268 ldr r2, [r4, #12] + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.DataAlign | + 505 .loc 1 571 88 view .LVU148 + 506 00f6 1343 orrs r3, r3, r2 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_REG_DISCONTINUOUS((uint32_t)hadc->Init.DiscontinuousConvMode)); + 507 .loc 1 573 27 view .LVU149 + 508 00f8 A268 ldr r2, [r4, #8] + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Resolution | + 509 .loc 1 572 88 view .LVU150 + 510 00fa 1343 orrs r3, r3, r2 + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 148 + + + 511 .loc 1 574 17 view .LVU151 + 512 00fc 94F82420 ldrb r2, [r4, #36] @ zero_extendqisi2 + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Overrun | + 513 .loc 1 570 14 view .LVU152 + 514 0100 43EA0243 orr r3, r3, r2, lsl #16 + 515 .LVL39: + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 516 .loc 1 576 5 is_stmt 1 view .LVU153 + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 517 .loc 1 576 8 is_stmt 0 view .LVU154 + 518 0104 012A cmp r2, #1 + 519 0106 59D0 beq .L35 + 520 .L21: + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 521 .loc 1 586 5 is_stmt 1 view .LVU155 + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 522 .loc 1 586 19 is_stmt 0 view .LVU156 + 523 0108 E26A ldr r2, [r4, #44] + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 524 .loc 1 586 8 view .LVU157 + 525 010a 22B1 cbz r2, .L22 + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | hadc->Init.ExternalTrigConvEdge + 526 .loc 1 588 7 is_stmt 1 view .LVU158 + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | hadc->Init.ExternalTrigConvEdge + 527 .loc 1 588 48 is_stmt 0 view .LVU159 + 528 010c 02F47872 and r2, r2, #992 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ); + 529 .loc 1 589 31 view .LVU160 + 530 0110 216B ldr r1, [r4, #48] + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ); + 531 .loc 1 589 19 view .LVU161 + 532 0112 0A43 orrs r2, r2, r1 + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | hadc->Init.ExternalTrigConvEdge + 533 .loc 1 588 15 view .LVU162 + 534 0114 1343 orrs r3, r3, r2 + 535 .LVL40: + 536 .L22: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 537 .loc 1 594 5 is_stmt 1 view .LVU163 + 538 0116 2168 ldr r1, [r4] + 539 0118 CD68 ldr r5, [r1, #12] + 540 011a 484A ldr r2, .L38+16 + 541 011c 2A40 ands r2, r2, r5 + 542 011e 1A43 orrs r2, r2, r3 + 543 0120 CA60 str r2, [r1, #12] + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 544 .loc 1 597 5 view .LVU164 + 545 0122 2268 ldr r2, [r4] + 546 0124 1369 ldr r3, [r2, #16] + 547 .LVL41: + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 548 .loc 1 597 5 is_stmt 0 view .LVU165 + 549 0126 23F04063 bic r3, r3, #201326592 + 550 012a 616B ldr r1, [r4, #52] + 551 012c 0B43 orrs r3, r3, r1 + 552 012e 1361 str r3, [r2, #16] + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + ARM GAS /tmp/ccICigVb.s page 149 + + + 553 .loc 1 606 5 is_stmt 1 view .LVU166 + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 554 .loc 1 606 46 is_stmt 0 view .LVU167 + 555 0130 2168 ldr r1, [r4] + 556 .LVL42: + 557 .LBB354: + 558 .LBI354: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 559 .loc 2 6851 26 is_stmt 1 view .LVU168 + 560 .LBB355: + 561 .loc 2 6853 3 view .LVU169 + 562 .loc 2 6853 12 is_stmt 0 view .LVU170 + 563 0132 8B68 ldr r3, [r1, #8] + 564 .loc 2 6853 74 view .LVU171 + 565 0134 13F00403 ands r3, r3, #4 + 566 0138 00D0 beq .L23 + 567 013a 0123 movs r3, #1 + 568 .L23: + 569 .LVL43: + 570 .loc 2 6853 74 view .LVU172 + 571 .LBE355: + 572 .LBE354: + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 573 .loc 1 607 5 is_stmt 1 view .LVU173 + 574 .LBB356: + 575 .LBI356: +6854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular command of conversion stop state +6858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTP LL_ADC_REG_IsStopConversionOngoing +6859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no command of conversion stop is on going on ADC group regular. +6861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_IsStopConversionOngoing(ADC_TypeDef *ADCx) +6863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADSTP) == (ADC_CR_ADSTP)) ? 1UL : 0UL); +6865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC sampling phase for sampling time trigger mode +6869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function is relevant only when +6870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED has been set +6871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using @ref LL_ADC_REG_SetSamplingMode +6872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_TRIG_SOFTWARE is used as trigger source +6873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group regular, +6876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group regular, +6877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 SWTRIG LL_ADC_REG_StartSamplingPhase +6879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StartSamplingPhase(ADC_TypeDef *ADCx) +6883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->CFGR2, ADC_CFGR2_SWTRIG); + ARM GAS /tmp/ccICigVb.s page 150 + + +6885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Stop ADC sampling phase for sampling time trigger mode and start conversion +6889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function is relevant only when +6890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED has been set +6891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using @ref LL_ADC_REG_SetSamplingMode +6892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_TRIG_SOFTWARE is used as trigger source +6893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_StartSamplingPhase has been called to start +6894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the sampling phase +6895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group regular, +6898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group regular, +6899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 SWTRIG LL_ADC_REG_StopSamplingPhase +6901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StopSamplingPhase(ADC_TypeDef *ADCx) +6905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->CFGR2, ADC_CFGR2_SWTRIG); +6907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * all ADC configurations: all ADC resolutions and +6912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * all oversampling increased data width (for devices +6913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with feature oversampling). +6914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32 +6915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +6917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx) +6919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 12 bits. +6926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12 +6930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +6932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx) +6934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 10 bits. +6941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling + ARM GAS /tmp/ccICigVb.s page 151 + + +6942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10 +6945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0x3FF +6947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx) +6949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 8 bits. +6956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8 +6960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0xFF +6962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx) +6964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 6 bits. +6971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6 +6975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0x3F +6977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx) +6979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +6984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode conversion data of ADC master, ADC slave +6986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or raw data with ADC master and slave concatenated. +6987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If raw data with ADC master and slave concatenated is retrieved, +6988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a macro is available to get the conversion data of +6989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC master or ADC slave: see helper macro +6990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). +6991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (however this macro is mainly intended for multimode +6992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * transfer by DMA, because this function can do the same +6993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * by getting multimode conversion data of ADC master or ADC slave +6994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * separately). +6995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CDR RDATA_MST LL_ADC_REG_ReadMultiConversionData32\n +6996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CDR RDATA_SLV LL_ADC_REG_ReadMultiConversionData32 +6997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO + ARM GAS /tmp/ccICigVb.s page 152 + + +6999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ConversionData This parameter can be one of the following values: +7000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_MASTER +7001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_SLAVE +7002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_MASTER_SLAVE +7003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +7004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(ADC_Common_TypeDef *ADCxy_COMMON, uin +7006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR, +7008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ConversionData) +7009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (POSITION_VAL(ConversionData) & 0x1FUL) +7010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +7013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +7016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group inj +7019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +7020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC group injected conversion. +7024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this function is relevant for both +7025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal trigger (SW start) and external trigger: +7026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to software start, ADC conversion +7027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * starts immediately. +7028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to external trigger, ADC conversion +7029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will start at next trigger event (on the selected trigger edge) +7030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * following the ADC start conversion command. +7031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +7032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +7033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group injected, +7034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group injected, +7035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +7036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTART LL_ADC_INJ_StartConversion +7037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx) +7041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +7043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +7044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +7045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +7046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +7047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_JADSTART); +7048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Stop ADC group injected conversion. +7052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +7053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +7054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled with conversion on going on group injected, +7055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. + ARM GAS /tmp/ccICigVb.s page 153 + + +7056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTP LL_ADC_INJ_StopConversion +7057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx) +7061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +7063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +7064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +7065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +7066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +7067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_JADSTP); +7068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion state. +7072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTART LL_ADC_INJ_IsConversionOngoing +7073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no conversion is on going on ADC group injected. +7075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_IsConversionOngoing(ADC_TypeDef *ADCx) + 576 .loc 2 7076 26 view .LVU174 + 577 .LBB357: +7077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART)) ? 1UL : 0UL); + 578 .loc 2 7078 3 view .LVU175 + 579 .loc 2 7078 12 is_stmt 0 view .LVU176 + 580 013c 8A68 ldr r2, [r1, #8] + 581 .loc 2 7078 76 view .LVU177 + 582 013e 12F00802 ands r2, r2, #8 + 583 0142 00D0 beq .L24 + 584 0144 0122 movs r2, #1 + 585 .L24: + 586 .LVL44: + 587 .loc 2 7078 76 view .LVU178 + 588 .LBE357: + 589 .LBE356: + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 590 .loc 1 608 5 is_stmt 1 view .LVU179 + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 591 .loc 1 608 8 is_stmt 0 view .LVU180 + 592 0146 43BB cbnz r3, .L25 + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 593 .loc 1 609 9 view .LVU181 + 594 0148 3ABB cbnz r2, .L25 + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait) | + 595 .loc 1 612 7 is_stmt 1 view .LVU182 + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests)); + 596 .loc 1 613 18 is_stmt 0 view .LVU183 + 597 014a 237F ldrb r3, [r4, #28] @ zero_extendqisi2 + 598 .LVL45: + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 599 .loc 1 614 18 view .LVU184 + 600 014c 94F83820 ldrb r2, [r4, #56] @ zero_extendqisi2 + 601 .LVL46: + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 602 .loc 1 614 18 view .LVU185 + ARM GAS /tmp/ccICigVb.s page 154 + + + 603 0150 5200 lsls r2, r2, #1 + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait) | + 604 .loc 1 612 15 view .LVU186 + 605 0152 42EA8332 orr r2, r2, r3, lsl #14 + 606 .LVL47: + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 607 .loc 1 616 7 is_stmt 1 view .LVU187 + 608 0156 CB68 ldr r3, [r1, #12] + 609 0158 23F48043 bic r3, r3, #16384 + 610 015c 23F00203 bic r3, r3, #2 + 611 0160 1343 orrs r3, r3, r2 + 612 0162 CB60 str r3, [r1, #12] + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 613 .loc 1 618 7 view .LVU188 + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 614 .loc 1 618 21 is_stmt 0 view .LVU189 + 615 0164 2369 ldr r3, [r4, #16] + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 616 .loc 1 618 10 view .LVU190 + 617 0166 73B3 cbz r3, .L26 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, hadc->Init.GainCompensation); + 618 .loc 1 620 9 is_stmt 1 view .LVU191 + 619 0168 2268 ldr r2, [r4] + 620 .LVL48: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, hadc->Init.GainCompensation); + 621 .loc 1 620 9 is_stmt 0 view .LVU192 + 622 016a 1369 ldr r3, [r2, #16] + 623 016c 43F48033 orr r3, r3, #65536 + 624 0170 1361 str r3, [r2, #16] + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 625 .loc 1 621 9 is_stmt 1 view .LVU193 + 626 0172 2268 ldr r2, [r4] + 627 0174 D2F8C030 ldr r3, [r2, #192] + 628 0178 23F47F53 bic r3, r3, #16320 + 629 017c 23F03F03 bic r3, r3, #63 + 630 0180 2169 ldr r1, [r4, #16] + 631 0182 0B43 orrs r3, r3, r1 + 632 0184 C2F8C030 str r3, [r2, #192] + 633 .L27: + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 634 .loc 1 629 7 view .LVU194 + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 635 .loc 1 629 21 is_stmt 0 view .LVU195 + 636 0188 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 637 .loc 1 629 10 view .LVU196 + 638 018c 012B cmp r3, #1 + 639 018e 29D0 beq .L36 + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 640 .loc 1 656 9 is_stmt 1 view .LVU197 + 641 0190 2268 ldr r2, [r4] + 642 0192 1369 ldr r3, [r2, #16] + 643 0194 23F00103 bic r3, r3, #1 + 644 0198 1361 str r3, [r2, #16] + 645 .LVL49: + 646 .L25: + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 155 + + + 647 .loc 1 670 5 view .LVU198 + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 648 .loc 1 670 19 is_stmt 0 view .LVU199 + 649 019a 6369 ldr r3, [r4, #20] + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 650 .loc 1 670 8 view .LVU200 + 651 019c 012B cmp r3, #1 + 652 019e 33D0 beq .L37 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 653 .loc 1 677 7 is_stmt 1 view .LVU201 + 654 01a0 2268 ldr r2, [r4] + 655 01a2 136B ldr r3, [r2, #48] + 656 01a4 23F00F03 bic r3, r3, #15 + 657 01a8 1363 str r3, [r2, #48] + 658 .L30: + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 659 .loc 1 682 5 view .LVU202 + 660 01aa E36D ldr r3, [r4, #92] + 661 01ac 23F00303 bic r3, r3, #3 + 662 01b0 43F00103 orr r3, r3, #1 + 663 01b4 E365 str r3, [r4, #92] + 664 01b6 35E0 b .L9 + 665 .LVL50: + 666 .L32: + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpCFGR; + 667 .loc 1 397 21 is_stmt 0 view .LVU203 + 668 01b8 0020 movs r0, #0 + 669 01ba 6AE7 b .L15 + 670 .LVL51: + 671 .L35: + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 672 .loc 1 578 7 is_stmt 1 view .LVU204 + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 673 .loc 1 578 18 is_stmt 0 view .LVU205 + 674 01bc A26A ldr r2, [r4, #40] + 675 01be 013A subs r2, r2, #1 + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 676 .loc 1 578 15 view .LVU206 + 677 01c0 43EA4243 orr r3, r3, r2, lsl #17 + 678 .LVL52: + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 679 .loc 1 578 15 view .LVU207 + 680 01c4 A0E7 b .L21 + 681 .LVL53: + 682 .L26: + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, 0UL); + 683 .loc 1 625 9 is_stmt 1 view .LVU208 + 684 01c6 2268 ldr r2, [r4] + 685 .LVL54: + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->GCOMP, ADC_GCOMP_GCOMPCOEFF, 0UL); + 686 .loc 1 625 9 is_stmt 0 view .LVU209 + 687 01c8 1369 ldr r3, [r2, #16] + 688 01ca 23F48033 bic r3, r3, #65536 + 689 01ce 1361 str r3, [r2, #16] + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 690 .loc 1 626 9 is_stmt 1 view .LVU210 + 691 01d0 2268 ldr r2, [r4] + ARM GAS /tmp/ccICigVb.s page 156 + + + 692 01d2 D2F8C030 ldr r3, [r2, #192] + 693 01d6 23F47F53 bic r3, r3, #16320 + 694 01da 23F03F03 bic r3, r3, #63 + 695 01de C2F8C030 str r3, [r2, #192] + 696 01e2 D1E7 b .L27 + 697 .L36: + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RIGHT_BIT_SHIFT(hadc->Init.Oversampling.RightBitShift)); + 698 .loc 1 631 9 view .LVU211 + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_TRIGGERED_OVERSAMPLING_MODE(hadc->Init.Oversampling.TriggeredMode)); + 699 .loc 1 632 9 view .LVU212 + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_REGOVERSAMPLING_MODE(hadc->Init.Oversampling.OversamplingStopReset)); + 700 .loc 1 633 9 view .LVU213 + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 701 .loc 1 634 9 view .LVU214 + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_OVSR | + 702 .loc 1 641 9 view .LVU215 + 703 01e4 2168 ldr r1, [r4] + 704 01e6 0B69 ldr r3, [r1, #16] + 705 01e8 23F4FF63 bic r3, r3, #2040 + 706 01ec 23F00403 bic r3, r3, #4 + 707 01f0 626C ldr r2, [r4, #68] + 708 01f2 A56C ldr r5, [r4, #72] + 709 01f4 2A43 orrs r2, r2, r5 + 710 01f6 E56C ldr r5, [r4, #76] + 711 01f8 2A43 orrs r2, r2, r5 + 712 01fa 256D ldr r5, [r4, #80] + 713 01fc 2A43 orrs r2, r2, r5 + 714 01fe 1343 orrs r3, r3, r2 + 715 0200 43F00103 orr r3, r3, #1 + 716 0204 0B61 str r3, [r1, #16] + 717 0206 C8E7 b .L25 + 718 .LVL55: + 719 .L37: + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 720 .loc 1 673 7 view .LVU216 + 721 0208 2168 ldr r1, [r4] + 722 020a 0B6B ldr r3, [r1, #48] + 723 020c 23F00F03 bic r3, r3, #15 + 724 0210 226A ldr r2, [r4, #32] + 725 0212 013A subs r2, r2, #1 + 726 0214 1343 orrs r3, r3, r2 + 727 0216 0B63 str r3, [r1, #48] + 728 0218 C7E7 b .L30 + 729 .LVL56: + 730 .L17: + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 731 .loc 1 687 5 view .LVU217 + 732 021a E36D ldr r3, [r4, #92] + 733 .LVL57: + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 734 .loc 1 687 5 is_stmt 0 view .LVU218 + 735 021c 43F01003 orr r3, r3, #16 + 736 0220 E365 str r3, [r4, #92] + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 737 .loc 1 689 5 is_stmt 1 view .LVU219 + 738 .LVL58: + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 157 + + + 739 .loc 1 689 20 is_stmt 0 view .LVU220 + 740 0222 0120 movs r0, #1 + 741 .LVL59: + 742 .L9: + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 743 .loc 1 694 1 view .LVU221 + 744 0224 03B0 add sp, sp, #12 + 745 .LCFI7: + 746 .cfi_remember_state + 747 .cfi_def_cfa_offset 12 + 748 @ sp needed + 749 0226 30BD pop {r4, r5, pc} + 750 .LVL60: + 751 .L31: + 752 .LCFI8: + 753 .cfi_restore_state + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 754 .loc 1 407 12 view .LVU222 + 755 0228 0120 movs r0, #1 + 756 .LVL61: + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 757 .loc 1 407 12 view .LVU223 + 758 022a FBE7 b .L9 + 759 .L39: + 760 .align 2 + 761 .L38: + 762 022c 00000000 .word SystemCoreClock + 763 0230 632D3E05 .word 87960931 + 764 0234 00010050 .word 1342177536 + 765 0238 00030050 .word 1342178048 + 766 023c 0740F0FF .word -1032185 + 767 .cfi_endproc + 768 .LFE329: + 770 .section .text.HAL_ADC_MspDeInit,"ax",%progbits + 771 .align 1 + 772 .weak HAL_ADC_MspDeInit + 773 .syntax unified + 774 .thumb + 775 .thumb_func + 777 HAL_ADC_MspDeInit: + 778 .LVL62: + 779 .LFB332: + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief DeInitialize the ADC MSP. + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note All ADC instances use the same core clock at RCC level, disabling + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * the core clock reset all ADC instances). + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc) + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 780 .loc 1 931 1 is_stmt 1 view -0 + 781 .cfi_startproc + 782 @ args = 0, pretend = 0, frame = 0 + 783 @ frame_needed = 0, uses_anonymous_args = 0 + 784 @ link register save eliminated. + ARM GAS /tmp/ccICigVb.s page 158 + + + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** UNUSED(hadc); + 785 .loc 1 933 3 view .LVU225 + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** function HAL_ADC_MspDeInit must be implemented in the user file. + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 786 .loc 1 938 1 is_stmt 0 view .LVU226 + 787 0000 7047 bx lr + 788 .cfi_endproc + 789 .LFE332: + 791 .section .text.HAL_ADC_PollForConversion,"ax",%progbits + 792 .align 1 + 793 .global HAL_ADC_PollForConversion + 794 .syntax unified + 795 .thumb + 796 .thumb_func + 798 HAL_ADC_PollForConversion: + 799 .LVL63: + 800 .LFB335: + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Register a User ADC Callback + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * To be used instead of the weak predefined callback + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc Pointer to a ADC_HandleTypeDef structure that contains + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * the configuration information for the specified ADC. + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param CallbackID ID of the callback to be registered + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This parameter can be one of the following values: + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_COMPLETE_CB_ID ADC conversion complete callback ID + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_HALF_CB_ID ADC conversion DMA half-transfer call + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID ADC analog watchdog 1 callback ID + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_ERROR_CB_ID ADC error callback ID + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID ADC group injected conversion complet + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID ADC group injected context queue over + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID ADC analog watchdog 2 callback ID + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID ADC analog watchdog 3 callback ID + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_END_OF_SAMPLING_CB_ID ADC end of sampling callback ID + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID ADC Msp Init callback ID + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID ADC Msp DeInit callback ID + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID MspInit callback ID + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID MspDeInit callback ID + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param pCallback pointer to the Callback function + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Callb + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** pADC_CallbackTypeDef pCallback) + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef status = HAL_OK; + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (pCallback == NULL) + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; + ARM GAS /tmp/ccICigVb.s page 159 + + + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (CallbackID) + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_CONVERSION_COMPLETE_CB_ID : + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvCpltCallback = pCallback; + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_CONVERSION_HALF_CB_ID : + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvHalfCpltCallback = pCallback; + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID : + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindowCallback = pCallback; + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_ERROR_CB_ID : + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCallback = pCallback; + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID : + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedConvCpltCallback = pCallback; + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID : +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedQueueOverflowCallback = pCallback; +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID : +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow2Callback = pCallback; +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID : +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow3Callback = pCallback; +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_END_OF_SAMPLING_CB_ID : +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->EndOfSamplingCallback = pCallback; +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspInitCallback = pCallback; +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspDeInitCallback = pCallback; +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default : +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return error status */ +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** status = HAL_ERROR; +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + ARM GAS /tmp/ccICigVb.s page 160 + + +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else if (HAL_ADC_STATE_RESET == hadc->State) +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (CallbackID) +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspInitCallback = pCallback; +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspDeInitCallback = pCallback; +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default : +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return error status */ +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** status = HAL_ERROR; +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return error status */ +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** status = HAL_ERROR; +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return status; +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Unregister a ADC Callback +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * ADC callback is redirected to the weak predefined callback +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc Pointer to a ADC_HandleTypeDef structure that contains +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * the configuration information for the specified ADC. +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param CallbackID ID of the callback to be unregistered +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This parameter can be one of the following values: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_COMPLETE_CB_ID ADC conversion complete callback ID +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_HALF_CB_ID ADC conversion DMA half-transfer call +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID ADC analog watchdog 1 callback ID +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_ERROR_CB_ID ADC error callback ID +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID ADC group injected conversion complet +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID ADC group injected context queue over +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID ADC analog watchdog 2 callback ID +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID ADC analog watchdog 3 callback ID +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_END_OF_SAMPLING_CB_ID ADC end of sampling callback ID +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID ADC Msp Init callback ID +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID ADC Msp DeInit callback ID +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID MspInit callback ID +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID MspDeInit callback ID +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ + ARM GAS /tmp/ccICigVb.s page 161 + + +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Cal +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef status = HAL_OK; +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (CallbackID) +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_CONVERSION_COMPLETE_CB_ID : +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_CONVERSION_HALF_CB_ID : +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID : +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_ERROR_CB_ID : +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCallback = HAL_ADC_ErrorCallback; +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID : +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_INJ_QUEUE_OVEFLOW_CB_ID : +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedQueueOverflowCallback = HAL_ADCEx_InjectedQueueOverflowCallback; +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_2_CB_ID : +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow2Callback = HAL_ADCEx_LevelOutOfWindow2Callback; +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_3_CB_ID : +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow3Callback = HAL_ADCEx_LevelOutOfWindow3Callback; +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_END_OF_SAMPLING_CB_ID : +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->EndOfSamplingCallback = HAL_ADCEx_EndOfSamplingCallback; +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default : +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return error status */ + ARM GAS /tmp/ccICigVb.s page 162 + + +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** status = HAL_ERROR; +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else if (HAL_ADC_STATE_RESET == hadc->State) +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (CallbackID) +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default : +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return error status */ +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** status = HAL_ERROR; +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update the error code */ +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return error status */ +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** status = HAL_ERROR; +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return status; +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @} +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group2 ADC Input and Output operation functions +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief ADC IO operation functions +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @verbatim +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ##### IO operation functions ##### +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] This section provides functions allowing to: +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Start conversion of regular group. +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Stop conversion of regular group. +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Poll for conversion complete on regular group. +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Poll for conversion event. +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Get result of regular channel conversion. +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Start conversion of regular group and enable interruptions. + ARM GAS /tmp/ccICigVb.s page 163 + + +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Stop conversion of regular group and disable interruptions. +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Handle ADC interrupt request +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Start conversion of regular group and enable DMA transfer. +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Stop conversion of regular group and disable ADC DMA transfer. +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @endverbatim +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Enable ADC, start conversion of regular group. +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Interruptions enabled in this function: None. +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Case of multimode enabled (when multimode feature is available): +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * if ADC is Slave, ADC is enabled but conversion is not started, +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * if ADC is master, ADC is enabled and multimode conversion is started. +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** const ADC_TypeDef *tmpADC_Master; +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Perform ADC enable and conversion start if no conversion is on going */ +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable the ADC peripheral */ +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Enable(hadc); +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start conversion if ADC is effectively enabled */ +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Clear state bitfield related to regular group conversion results */ +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Set state bitfield related to regular operation */ +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY); +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - if ADC instance is master or if multimode feature is not available +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - if multimode setting is disabled (ADC instance slave in independent mode) */ +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 164 + + +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code */ +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if a conversion is on going on ADC group injected */ +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset ADC error code fields related to regular conversions only */ +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset all ADC error code fields */ +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC group regular conversion flag and overrun flag */ +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (To ensure of no unknown state from potential previous ADC operations) */ +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Unlock before starting ADC conversions: in case of potential */ +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* interruption, to let the process to ADC IRQ Handler. */ +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable conversion of regular group. */ +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If software start has been selected, conversion starts immediately. */ +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If external trigger has been selected, conversion will start at next */ +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* trigger event. */ +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Case of multimode enabled (when multimode feature is available): */ +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - if ADC is slave and dual regular conversions are enabled, ADC is */ +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* enabled only (conversion is not started), */ +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - if ADC is master, ADC is enabled and conversion is started. */ +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC instance is not a multimode slave instance with multimode regular conversions enable +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start ADC group regular conversion */ +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_StartConversion(hadc->Instance); +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC instance is a multimode slave instance with multimode regular conversions enabled */ +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* if Master ADC JAUTO bit is set, update Slave State in setting +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_INJ_BUSY bit and in resetting HAL_ADC_STATE_INJ_EOC bit */ +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 165 + + +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start ADC group regular conversion */ +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_StartConversion(hadc->Instance); +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_BUSY; +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Stop ADC conversion of regular group (and injected channels in +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * case of auto_injection mode), disable ADC peripheral. +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note: ADC peripheral disable is forcing stop of potential +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * conversion on injected group. If injected group is under use, it +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * should be preliminarily stopped using HAL_ADCEx_InjectedStop function. +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 1. Stop potential conversion on going, on ADC groups regular and injected */ +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 2. Disable the ADC peripheral */ +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 166 + + +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if ADC is effectively disabled */ +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY); +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Wait for regular group conversion to be completed. +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note ADC conversion flags EOS (end of sequence) and EOC (end of +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * conversion) are cleared by this function, with an exception: +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * if low power feature "LowPowerAutoWait" is enabled, flags are +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * not cleared to not interfere with this feature until data register +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * is read using function HAL_ADC_GetValue(). +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note This function cannot be used in a particular setup: ADC configured +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * in DMA mode and polling for end of each conversion (ADC init +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * parameter "EOCSelection" set to ADC_EOC_SINGLE_CONV). +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * In this case, DMA resets the flag EOC and polling cannot be +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * performed on each conversion. Nevertheless, polling can still +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * be performed on the complete sequence (ADC init +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * parameter "EOCSelection" set to ADC_EOC_SEQ_CONV). +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param Timeout Timeout value in millisecond. +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 801 .loc 1 1410 1 is_stmt 1 view -0 + 802 .cfi_startproc + 803 @ args = 0, pretend = 0, frame = 0 + 804 @ frame_needed = 0, uses_anonymous_args = 0 + 805 .loc 1 1410 1 is_stmt 0 view .LVU228 + 806 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 807 .LCFI9: + 808 .cfi_def_cfa_offset 24 + 809 .cfi_offset 4, -24 + 810 .cfi_offset 5, -20 + 811 .cfi_offset 6, -16 + 812 .cfi_offset 7, -12 + 813 .cfi_offset 8, -8 + 814 .cfi_offset 14, -4 + 815 0004 0446 mov r4, r0 + 816 0006 0E46 mov r6, r1 +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 817 .loc 1 1411 3 is_stmt 1 view .LVU229 +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_Flag_End; + 818 .loc 1 1412 3 view .LVU230 + ARM GAS /tmp/ccICigVb.s page 167 + + +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_cfgr; + 819 .loc 1 1413 3 view .LVU231 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** const ADC_TypeDef *tmpADC_Master; + 820 .loc 1 1415 3 view .LVU232 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 821 .loc 1 1416 3 view .LVU233 + 822 .LVL64: + 823 .LBB358: + 824 .LBI358: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 825 .loc 2 6392 26 view .LVU234 + 826 .LBB359: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 827 .loc 2 6394 3 view .LVU235 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 828 .loc 2 6394 21 is_stmt 0 view .LVU236 + 829 0008 424B ldr r3, .L66 + 830 000a 9F68 ldr r7, [r3, #8] +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 831 .loc 2 6394 10 view .LVU237 + 832 000c 07F01F07 and r7, r7, #31 + 833 .LVL65: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 834 .loc 2 6394 10 view .LVU238 + 835 .LBE359: + 836 .LBE358: +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 837 .loc 1 1420 3 is_stmt 1 view .LVU239 +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If end of conversion selected to end of sequence conversions */ +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) + 838 .loc 1 1423 3 view .LVU240 + 839 .loc 1 1423 17 is_stmt 0 view .LVU241 + 840 0010 8569 ldr r5, [r0, #24] + 841 .loc 1 1423 6 view .LVU242 + 842 0012 082D cmp r5, #8 + 843 0014 14D0 beq .L42 +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_Flag_End = ADC_FLAG_EOS; +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If end of conversion selected to end of unitary conversion */ +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else /* ADC_EOC_SINGLE_CONV */ +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verification that ADC configuration is compliant with polling for */ +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* each conversion: */ +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Particular case is ADC configured in DMA mode and ADC sequencer with */ +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* several ranks and polling for end of each conversion. */ +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* For code simplicity sake, this particular case is generalized to */ +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC configured in DMA mode and and polling for end of each conversion. */ +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 844 .loc 1 1437 5 is_stmt 1 view .LVU243 + 845 0016 092F cmp r7, #9 + ARM GAS /tmp/ccICigVb.s page 168 + + + 846 0018 05D8 bhi .L43 + 847 001a 40F22123 movw r3, #545 + 848 001e FB40 lsrs r3, r3, r7 + 849 0020 13F0010F tst r3, #1 + 850 0024 06D1 bne .L60 + 851 .L43: +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check ADC DMA mode in independent mode on ADC group regular */ +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN) != 0UL) +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_Flag_End = (ADC_FLAG_EOC); +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check ADC DMA mode in multimode on ADC group regular */ +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_GetMultiDMATransfer(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) != LL_ADC_MULTI_REG_ + 852 .loc 1 1456 7 view .LVU244 + 853 .LVL66: + 854 .LBB360: + 855 .LBI360: +6489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 856 .loc 2 6489 26 view .LVU245 + 857 .LBB361: +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 858 .loc 2 6491 3 view .LVU246 +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 859 .loc 2 6491 21 is_stmt 0 view .LVU247 + 860 0026 3B4B ldr r3, .L66 + 861 0028 9B68 ldr r3, [r3, #8] + 862 .LVL67: +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 863 .loc 2 6491 21 view .LVU248 + 864 .LBE361: + 865 .LBE360: + 866 .loc 1 1456 10 view .LVU249 + 867 002a 13F4604F tst r3, #57344 + 868 002e 2CD1 bne .L61 +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_Flag_End = (ADC_FLAG_EOC); + 869 .loc 1 1463 22 view .LVU250 + 870 0030 0425 movs r5, #4 + 871 0032 05E0 b .L42 + 872 .L60: + ARM GAS /tmp/ccICigVb.s page 169 + + +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 873 .loc 1 1443 7 is_stmt 1 view .LVU251 +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 874 .loc 1 1443 11 is_stmt 0 view .LVU252 + 875 0034 0368 ldr r3, [r0] + 876 0036 DB68 ldr r3, [r3, #12] +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 877 .loc 1 1443 10 view .LVU253 + 878 0038 13F0010F tst r3, #1 + 879 003c 1FD1 bne .L62 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 880 .loc 1 1450 22 view .LVU254 + 881 003e 0425 movs r5, #4 + 882 .L42: + 883 .LVL68: +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check ADC DMA mode */ +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN) != 0UL) +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_Flag_End = (ADC_FLAG_EOC); +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get tick count */ +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tickstart = HAL_GetTick(); + 884 .loc 1 1481 3 is_stmt 1 view .LVU255 + 885 .loc 1 1481 15 is_stmt 0 view .LVU256 + 886 0040 FFF7FEFF bl HAL_GetTick + 887 .LVL69: + 888 .loc 1 1481 15 view .LVU257 + 889 0044 8046 mov r8, r0 + 890 .LVL70: +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Wait until End of unitary conversion or sequence conversions flag is raised */ +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 891 .loc 1 1484 3 is_stmt 1 view .LVU258 + 892 .L46: + 893 .loc 1 1484 47 view .LVU259 + 894 .loc 1 1484 15 is_stmt 0 view .LVU260 + 895 0046 2368 ldr r3, [r4] + 896 .loc 1 1484 25 view .LVU261 + 897 0048 1A68 ldr r2, [r3] + 898 .loc 1 1484 47 view .LVU262 + 899 004a 2A42 tst r2, r5 + 900 004c 23D1 bne .L63 +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if timeout is disabled (set to infinite wait) */ +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (Timeout != HAL_MAX_DELAY) + 901 .loc 1 1487 5 is_stmt 1 view .LVU263 + ARM GAS /tmp/ccICigVb.s page 170 + + + 902 .loc 1 1487 8 is_stmt 0 view .LVU264 + 903 004e B6F1FF3F cmp r6, #-1 + 904 0052 F8D0 beq .L46 +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + 905 .loc 1 1489 7 is_stmt 1 view .LVU265 + 906 .loc 1 1489 13 is_stmt 0 view .LVU266 + 907 0054 FFF7FEFF bl HAL_GetTick + 908 .LVL71: + 909 .loc 1 1489 27 view .LVU267 + 910 0058 A0EB0800 sub r0, r0, r8 + 911 .loc 1 1489 10 view .LVU268 + 912 005c B042 cmp r0, r6 + 913 005e 01D8 bhi .L47 + 914 .loc 1 1489 51 discriminator 1 view .LVU269 + 915 0060 002E cmp r6, #0 + 916 0062 F0D1 bne .L46 + 917 .L47: +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* New check to avoid false timeout detection in case of preemption */ +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 918 .loc 1 1492 9 is_stmt 1 view .LVU270 + 919 .loc 1 1492 18 is_stmt 0 view .LVU271 + 920 0064 2368 ldr r3, [r4] + 921 .loc 1 1492 28 view .LVU272 + 922 0066 1B68 ldr r3, [r3] + 923 .loc 1 1492 12 view .LVU273 + 924 0068 2B42 tst r3, r5 + 925 006a ECD1 bne .L46 +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to timeout */ +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + 926 .loc 1 1495 11 is_stmt 1 view .LVU274 + 927 006c E36D ldr r3, [r4, #92] + 928 006e 43F00403 orr r3, r3, #4 + 929 0072 E365 str r3, [r4, #92] +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); + 930 .loc 1 1498 11 view .LVU275 + 931 .loc 1 1498 11 view .LVU276 + 932 0074 0023 movs r3, #0 + 933 0076 84F85830 strb r3, [r4, #88] + 934 .loc 1 1498 11 view .LVU277 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_TIMEOUT; + 935 .loc 1 1500 11 view .LVU278 + 936 .loc 1 1500 18 is_stmt 0 view .LVU279 + 937 007a 0320 movs r0, #3 + 938 007c 45E0 b .L44 + 939 .LVL72: + 940 .L62: +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; + 941 .loc 1 1445 9 is_stmt 1 view .LVU280 + 942 007e C36D ldr r3, [r0, #92] + 943 0080 43F02003 orr r3, r3, #32 + 944 0084 C365 str r3, [r0, #92] + ARM GAS /tmp/ccICigVb.s page 171 + + +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 945 .loc 1 1446 9 view .LVU281 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 946 .loc 1 1446 16 is_stmt 0 view .LVU282 + 947 0086 0120 movs r0, #1 + 948 .LVL73: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 949 .loc 1 1446 16 view .LVU283 + 950 0088 3FE0 b .L44 + 951 .LVL74: + 952 .L61: +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; + 953 .loc 1 1458 9 is_stmt 1 view .LVU284 + 954 008a E36D ldr r3, [r4, #92] + 955 008c 43F02003 orr r3, r3, #32 + 956 0090 E365 str r3, [r4, #92] +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 957 .loc 1 1459 9 view .LVU285 +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 958 .loc 1 1459 16 is_stmt 0 view .LVU286 + 959 0092 0120 movs r0, #1 + 960 .LVL75: +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 961 .loc 1 1459 16 view .LVU287 + 962 0094 39E0 b .L44 + 963 .LVL76: + 964 .L63: +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine */ +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); + 965 .loc 1 1507 3 is_stmt 1 view .LVU288 + 966 0096 E26D ldr r2, [r4, #92] + 967 0098 42F40072 orr r2, r2, #512 + 968 009c E265 str r2, [r4, #92] +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Determine whether any further conversion upcoming on group regular */ +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* by external trigger, continuous mode or scan sequence on going. */ +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) + 969 .loc 1 1511 3 view .LVU289 + 970 .LVL77: + 971 .LBB362: + 972 .LBI362: +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 973 .loc 2 3747 26 view .LVU290 + 974 .LBB363: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 975 .loc 2 3749 3 view .LVU291 +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 976 .loc 2 3749 12 is_stmt 0 view .LVU292 + 977 009e DA68 ldr r2, [r3, #12] +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 978 .loc 2 3749 103 view .LVU293 + 979 00a0 12F4406F tst r2, #3072 + ARM GAS /tmp/ccICigVb.s page 172 + + + 980 00a4 11D1 bne .L49 + 981 .LVL78: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 982 .loc 2 3749 103 view .LVU294 + 983 .LBE363: + 984 .LBE362: +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (hadc->Init.ContinuousConvMode == DISABLE) + 985 .loc 1 1512 21 view .LVU295 + 986 00a6 627F ldrb r2, [r4, #29] @ zero_extendqisi2 + 987 .loc 1 1512 7 view .LVU296 + 988 00a8 7AB9 cbnz r2, .L49 +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check whether end of sequence is reached */ +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) + 989 .loc 1 1516 5 is_stmt 1 view .LVU297 + 990 .loc 1 1516 9 is_stmt 0 view .LVU298 + 991 00aa 1A68 ldr r2, [r3] + 992 .loc 1 1516 8 view .LVU299 + 993 00ac 12F0080F tst r2, #8 + 994 00b0 0BD0 beq .L49 +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + 995 .loc 1 1519 7 is_stmt 1 view .LVU300 + 996 00b2 E26D ldr r2, [r4, #92] + 997 00b4 22F48072 bic r2, r2, #256 + 998 00b8 E265 str r2, [r4, #92] +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + 999 .loc 1 1521 7 view .LVU301 + 1000 .loc 1 1521 16 is_stmt 0 view .LVU302 + 1001 00ba E26D ldr r2, [r4, #92] + 1002 .loc 1 1521 10 view .LVU303 + 1003 00bc 12F4805F tst r2, #4096 + 1004 00c0 03D1 bne .L49 +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_READY); + 1005 .loc 1 1523 9 is_stmt 1 view .LVU304 + 1006 00c2 E26D ldr r2, [r4, #92] + 1007 00c4 42F00102 orr r2, r2, #1 + 1008 00c8 E265 str r2, [r4, #92] + 1009 .L49: +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get relevant register CFGR in ADC instance of ADC master or slave */ +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* in function of multimode state (for devices with multimode */ +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* available). */ +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 1010 .loc 1 1532 3 view .LVU305 + 1011 .loc 1 1532 8 is_stmt 0 view .LVU306 + 1012 00ca 134A ldr r2, .L66+4 + 1013 00cc 9342 cmp r3, r2 + 1014 00ce 0CD0 beq .L64 + ARM GAS /tmp/ccICigVb.s page 173 + + + 1015 00d0 1A46 mov r2, r3 + 1016 .L50: + 1017 .loc 1 1532 6 discriminator 4 view .LVU307 + 1018 00d2 9342 cmp r3, r2 + 1019 00d4 0CD0 beq .L51 + 1020 00d6 092F cmp r7, #9 + 1021 00d8 05D8 bhi .L52 + 1022 00da 40F22121 movw r1, #545 + 1023 00de F940 lsrs r1, r1, r7 + 1024 00e0 11F0010F tst r1, #1 + 1025 00e4 04D1 bne .L51 + 1026 .L52: +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve handle ADC CFGR register */ +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve Master ADC CFGR register */ +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + 1027 .loc 1 1544 5 is_stmt 1 discriminator 4 view .LVU308 + 1028 .LVL79: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + 1029 .loc 1 1545 5 discriminator 4 view .LVU309 + 1030 .loc 1 1545 14 is_stmt 0 discriminator 4 view .LVU310 + 1031 00e6 D268 ldr r2, [r2, #12] + 1032 .LVL80: + 1033 .loc 1 1545 14 discriminator 4 view .LVU311 + 1034 00e8 03E0 b .L53 + 1035 .LVL81: + 1036 .L64: +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1037 .loc 1 1532 8 view .LVU312 + 1038 00ea 4FF0A042 mov r2, #1342177280 + 1039 00ee F0E7 b .L50 + 1040 .L51: +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1041 .loc 1 1539 5 is_stmt 1 view .LVU313 +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1042 .loc 1 1539 14 is_stmt 0 view .LVU314 + 1043 00f0 DA68 ldr r2, [r3, #12] + 1044 .LVL82: + 1045 .L53: +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve handle ADC CFGR register */ +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear polled flag */ +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_Flag_End == ADC_FLAG_EOS) + 1046 .loc 1 1553 3 is_stmt 1 view .LVU315 + 1047 .loc 1 1553 6 is_stmt 0 view .LVU316 + ARM GAS /tmp/ccICigVb.s page 174 + + + 1048 00f2 082D cmp r5, #8 + 1049 00f4 06D0 beq .L65 +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOS); +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear end of conversion EOC flag of regular group if low power feature */ +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* "LowPowerAutoWait " is disabled, to not interfere with this feature */ +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* until data register is read using function HAL_ADC_GetValue(). */ +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmp_cfgr, ADC_CFGR_AUTDLY) == 0UL) + 1050 .loc 1 1562 5 is_stmt 1 view .LVU317 + 1051 .loc 1 1562 8 is_stmt 0 view .LVU318 + 1052 00f6 12F4804F tst r2, #16384 + 1053 00fa 08D1 bne .L58 +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); + 1054 .loc 1 1564 7 is_stmt 1 view .LVU319 + 1055 00fc 0C22 movs r2, #12 + 1056 .LVL83: + 1057 .loc 1 1564 7 is_stmt 0 view .LVU320 + 1058 00fe 1A60 str r2, [r3] +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; + 1059 .loc 1 1569 10 view .LVU321 + 1060 0100 0020 movs r0, #0 + 1061 0102 02E0 b .L44 + 1062 .LVL84: + 1063 .L65: +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1064 .loc 1 1555 5 is_stmt 1 view .LVU322 + 1065 0104 0822 movs r2, #8 + 1066 .LVL85: +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1067 .loc 1 1555 5 is_stmt 0 view .LVU323 + 1068 0106 1A60 str r2, [r3] + 1069 .loc 1 1569 10 view .LVU324 + 1070 0108 0020 movs r0, #0 + 1071 .LVL86: + 1072 .L44: +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1073 .loc 1 1570 1 view .LVU325 + 1074 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1075 .LVL87: + 1076 .L58: +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1077 .loc 1 1569 10 view .LVU326 + 1078 010e 0020 movs r0, #0 + 1079 0110 FBE7 b .L44 + 1080 .L67: + 1081 0112 00BF .align 2 + 1082 .L66: + 1083 0114 00030050 .word 1342178048 + 1084 0118 00010050 .word 1342177536 + ARM GAS /tmp/ccICigVb.s page 175 + + + 1085 .cfi_endproc + 1086 .LFE335: + 1088 .section .text.HAL_ADC_PollForEvent,"ax",%progbits + 1089 .align 1 + 1090 .global HAL_ADC_PollForEvent + 1091 .syntax unified + 1092 .thumb + 1093 .thumb_func + 1095 HAL_ADC_PollForEvent: + 1096 .LVL88: + 1097 .LFB336: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Poll for ADC event. +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param EventType the ADC event type. +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This parameter can be one of the following values: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_EOSMP_EVENT ADC End of Sampling event +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_AWD1_EVENT ADC Analog watchdog 1 event (main analog watchdog, presen +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_AWD2_EVENT ADC Analog watchdog 2 event (additional analog watchdog, +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_AWD3_EVENT ADC Analog watchdog 3 event (additional analog watchdog, +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_OVR_EVENT ADC Overrun event +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_JQOVF_EVENT ADC Injected context queue overflow event +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param Timeout Timeout value in millisecond. +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note The relevant flag is cleared if found to be set, except for ADC_FLAG_OVR. +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Indeed, the latter is reset only if hadc->Init.Overrun field is set +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * to ADC_OVR_DATA_OVERWRITTEN. Otherwise, data register may be potentially overwritten +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * by a new converted data as soon as OVR is cleared. +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * To reset OVR flag once the preserved data is retrieved, the user can resort +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * to macro __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeou +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1098 .loc 1 1593 1 is_stmt 1 view -0 + 1099 .cfi_startproc + 1100 @ args = 0, pretend = 0, frame = 0 + 1101 @ frame_needed = 0, uses_anonymous_args = 0 + 1102 .loc 1 1593 1 is_stmt 0 view .LVU328 + 1103 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 1104 .LCFI10: + 1105 .cfi_def_cfa_offset 24 + 1106 .cfi_offset 4, -24 + 1107 .cfi_offset 5, -20 + 1108 .cfi_offset 6, -16 + 1109 .cfi_offset 7, -12 + 1110 .cfi_offset 8, -8 + 1111 .cfi_offset 14, -4 + 1112 0004 0646 mov r6, r0 + 1113 0006 0D46 mov r5, r1 + 1114 0008 1746 mov r7, r2 +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 1115 .loc 1 1594 3 is_stmt 1 view .LVU329 +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 1116 .loc 1 1597 3 view .LVU330 + ARM GAS /tmp/ccICigVb.s page 176 + + +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EVENT_TYPE(EventType)); + 1117 .loc 1 1598 3 view .LVU331 +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get tick count */ +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tickstart = HAL_GetTick(); + 1118 .loc 1 1601 3 view .LVU332 + 1119 .loc 1 1601 15 is_stmt 0 view .LVU333 + 1120 000a FFF7FEFF bl HAL_GetTick + 1121 .LVL89: + 1122 .loc 1 1601 15 view .LVU334 + 1123 000e 8046 mov r8, r0 + 1124 .LVL90: +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check selected event flag */ +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (__HAL_ADC_GET_FLAG(hadc, EventType) == 0UL) + 1125 .loc 1 1604 3 is_stmt 1 view .LVU335 + 1126 .L70: + 1127 .loc 1 1604 46 view .LVU336 + 1128 .loc 1 1604 10 is_stmt 0 view .LVU337 + 1129 0010 3468 ldr r4, [r6] + 1130 0012 2368 ldr r3, [r4] + 1131 .loc 1 1604 46 view .LVU338 + 1132 0014 35EA0303 bics r3, r5, r3 + 1133 0018 18D0 beq .L83 +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if timeout is disabled (set to infinite wait) */ +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (Timeout != HAL_MAX_DELAY) + 1134 .loc 1 1607 5 is_stmt 1 view .LVU339 + 1135 .loc 1 1607 8 is_stmt 0 view .LVU340 + 1136 001a B7F1FF3F cmp r7, #-1 + 1137 001e F7D0 beq .L70 +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + 1138 .loc 1 1609 7 is_stmt 1 view .LVU341 + 1139 .loc 1 1609 13 is_stmt 0 view .LVU342 + 1140 0020 FFF7FEFF bl HAL_GetTick + 1141 .LVL91: + 1142 .loc 1 1609 27 view .LVU343 + 1143 0024 A0EB0800 sub r0, r0, r8 + 1144 .loc 1 1609 10 view .LVU344 + 1145 0028 B842 cmp r0, r7 + 1146 002a 01D8 bhi .L71 + 1147 .loc 1 1609 51 discriminator 1 view .LVU345 + 1148 002c 002F cmp r7, #0 + 1149 002e EFD1 bne .L70 + 1150 .L71: +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* New check to avoid false timeout detection in case of preemption */ +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(hadc, EventType) == 0UL) + 1151 .loc 1 1612 9 is_stmt 1 view .LVU346 + 1152 .loc 1 1612 13 is_stmt 0 view .LVU347 + 1153 0030 3368 ldr r3, [r6] + 1154 0032 1B68 ldr r3, [r3] + 1155 .loc 1 1612 12 view .LVU348 + 1156 0034 35EA0303 bics r3, r5, r3 + 1157 0038 EAD0 beq .L70 +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 177 + + +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to timeout */ +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + 1158 .loc 1 1615 11 is_stmt 1 view .LVU349 + 1159 003a F36D ldr r3, [r6, #92] + 1160 003c 43F00403 orr r3, r3, #4 + 1161 0040 F365 str r3, [r6, #92] +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); + 1162 .loc 1 1618 11 view .LVU350 + 1163 .loc 1 1618 11 view .LVU351 + 1164 0042 0023 movs r3, #0 + 1165 0044 86F85830 strb r3, [r6, #88] + 1166 .loc 1 1618 11 view .LVU352 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_TIMEOUT; + 1167 .loc 1 1620 11 view .LVU353 + 1168 .loc 1 1620 18 is_stmt 0 view .LVU354 + 1169 0048 0320 movs r0, #3 + 1170 004a 29E0 b .L72 + 1171 .L83: +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (EventType) + 1172 .loc 1 1626 3 is_stmt 1 view .LVU355 + 1173 004c B5F5807F cmp r5, #256 + 1174 0050 28D0 beq .L74 + 1175 0052 0BD8 bhi .L75 + 1176 0054 022D cmp r5, #2 + 1177 0056 1CD0 beq .L76 + 1178 0058 802D cmp r5, #128 + 1179 005a 35D1 bne .L78 +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* End Of Sampling event */ +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_EOSMP_EVENT: +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOSMP); +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear the End Of Sampling flag */ +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOSMP); +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Analog watchdog (level out of window) event */ +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: In case of several analog watchdog enabled, if needed to know */ +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* which one triggered and on which ADCx, test ADC state of analog watchdog */ +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* flags HAL_ADC_STATE_AWD1/2/3 using function "HAL_ADC_GetState()". */ +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* For example: */ +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD1) != 0UL) " */ +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD2) != 0UL) " */ +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD3) != 0UL) " */ +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check analog watchdog 1 flag */ +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_AWD_EVENT: + ARM GAS /tmp/ccICigVb.s page 178 + + +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); + 1180 .loc 1 1650 7 view .LVU356 + 1181 005c F36D ldr r3, [r6, #92] + 1182 005e 43F48033 orr r3, r3, #65536 + 1183 0062 F365 str r3, [r6, #92] +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD1); + 1184 .loc 1 1653 7 view .LVU357 + 1185 0064 8023 movs r3, #128 + 1186 0066 2360 str r3, [r4] +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 1187 .loc 1 1655 7 view .LVU358 +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check analog watchdog 2 flag */ +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_AWD2_EVENT: +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD2); +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD2); +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check analog watchdog 3 flag */ +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_AWD3_EVENT: +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD3); +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD3); +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Injected context queue overflow event */ +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_JQOVF_EVENT: +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_JQOVF); +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to Injected context queue overflow */ +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC Injected context queue overflow flag */ +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JQOVF); +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Overrun event */ +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: /* Case ADC_OVR_EVENT */ +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If overrun is set to overwrite previous data, overrun event is not */ +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* considered as an error. */ +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (cf ref manual "Managing conversions without using the DMA and without */ +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* overrun ") */ +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 179 + + +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to overrun */ +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC Overrun flag only if Overrun is set to ADC_OVR_DATA_OVERWRITTEN +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** otherwise, data register is potentially overwritten by new converted data as soon +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** as OVR is cleared. */ +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; + 1188 .loc 1 1715 10 is_stmt 0 view .LVU359 + 1189 0068 0020 movs r0, #0 +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1190 .loc 1 1655 7 view .LVU360 + 1191 006a 19E0 b .L72 + 1192 .L75: +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1193 .loc 1 1626 3 view .LVU361 + 1194 006c B5F5007F cmp r5, #512 + 1195 0070 21D0 beq .L79 + 1196 0072 B5F5806F cmp r5, #1024 + 1197 0076 27D1 bne .L78 +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1198 .loc 1 1680 7 is_stmt 1 view .LVU362 + 1199 0078 F36D ldr r3, [r6, #92] + 1200 007a 43F48043 orr r3, r3, #16384 + 1201 007e F365 str r3, [r6, #92] +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1202 .loc 1 1683 7 view .LVU363 + 1203 0080 336E ldr r3, [r6, #96] + 1204 0082 43F00803 orr r3, r3, #8 + 1205 0086 3366 str r3, [r6, #96] +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1206 .loc 1 1686 7 view .LVU364 + 1207 0088 4FF48063 mov r3, #1024 + 1208 008c 2360 str r3, [r4] +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1209 .loc 1 1688 7 view .LVU365 + 1210 .loc 1 1715 10 is_stmt 0 view .LVU366 + 1211 008e 0020 movs r0, #0 +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1212 .loc 1 1688 7 view .LVU367 + 1213 0090 06E0 b .L72 + 1214 .L76: +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1215 .loc 1 1631 7 is_stmt 1 view .LVU368 + 1216 0092 F36D ldr r3, [r6, #92] + 1217 0094 43F40063 orr r3, r3, #2048 + 1218 0098 F365 str r3, [r6, #92] + ARM GAS /tmp/ccICigVb.s page 180 + + +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1219 .loc 1 1634 7 view .LVU369 + 1220 009a 0223 movs r3, #2 + 1221 009c 2360 str r3, [r4] +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1222 .loc 1 1636 7 view .LVU370 + 1223 .loc 1 1715 10 is_stmt 0 view .LVU371 + 1224 009e 0020 movs r0, #0 + 1225 .L72: +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1226 .loc 1 1716 1 view .LVU372 + 1227 00a0 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1228 .LVL92: + 1229 .L74: +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1230 .loc 1 1660 7 is_stmt 1 view .LVU373 + 1231 00a4 F36D ldr r3, [r6, #92] + 1232 00a6 43F40033 orr r3, r3, #131072 + 1233 00aa F365 str r3, [r6, #92] +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1234 .loc 1 1663 7 view .LVU374 + 1235 00ac 4FF48073 mov r3, #256 + 1236 00b0 2360 str r3, [r4] +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1237 .loc 1 1665 7 view .LVU375 +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1238 .loc 1 1715 10 is_stmt 0 view .LVU376 + 1239 00b2 0020 movs r0, #0 +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1240 .loc 1 1665 7 view .LVU377 + 1241 00b4 F4E7 b .L72 + 1242 .L79: +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1243 .loc 1 1670 7 is_stmt 1 view .LVU378 + 1244 00b6 F36D ldr r3, [r6, #92] + 1245 00b8 43F48023 orr r3, r3, #262144 + 1246 00bc F365 str r3, [r6, #92] +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1247 .loc 1 1673 7 view .LVU379 + 1248 00be 4FF40073 mov r3, #512 + 1249 00c2 2360 str r3, [r4] +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1250 .loc 1 1675 7 view .LVU380 +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1251 .loc 1 1715 10 is_stmt 0 view .LVU381 + 1252 00c4 0020 movs r0, #0 +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1253 .loc 1 1675 7 view .LVU382 + 1254 00c6 EBE7 b .L72 + 1255 .L78: +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1256 .loc 1 1696 7 is_stmt 1 view .LVU383 +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1257 .loc 1 1696 21 is_stmt 0 view .LVU384 + 1258 00c8 F36B ldr r3, [r6, #60] +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1259 .loc 1 1696 10 view .LVU385 + ARM GAS /tmp/ccICigVb.s page 181 + + + 1260 00ca 4BB9 cbnz r3, .L81 +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1261 .loc 1 1699 9 is_stmt 1 view .LVU386 + 1262 00cc F36D ldr r3, [r6, #92] + 1263 00ce 43F48063 orr r3, r3, #1024 + 1264 00d2 F365 str r3, [r6, #92] +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1265 .loc 1 1702 9 view .LVU387 + 1266 00d4 336E ldr r3, [r6, #96] + 1267 00d6 43F00203 orr r3, r3, #2 + 1268 00da 3366 str r3, [r6, #96] +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1269 .loc 1 1715 10 is_stmt 0 view .LVU388 + 1270 00dc 0020 movs r0, #0 + 1271 00de DFE7 b .L72 + 1272 .L81: +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1273 .loc 1 1709 9 is_stmt 1 view .LVU389 + 1274 00e0 1023 movs r3, #16 + 1275 00e2 2360 str r3, [r4] +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1276 .loc 1 1715 10 is_stmt 0 view .LVU390 + 1277 00e4 0020 movs r0, #0 + 1278 00e6 DBE7 b .L72 + 1279 .cfi_endproc + 1280 .LFE336: + 1282 .section .text.HAL_ADC_GetValue,"ax",%progbits + 1283 .align 1 + 1284 .global HAL_ADC_GetValue + 1285 .syntax unified + 1286 .thumb + 1287 .thumb_func + 1289 HAL_ADC_GetValue: + 1290 .LVL93: + 1291 .LFB341: +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Enable ADC, start conversion of regular group with interruption. +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Interruptions enabled in this function according to initialization +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * setting : EOC (end of conversion), EOS (end of sequence), +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * OVR overrun. +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Each of these interruptions has its dedicated callback function. +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Case of multimode enabled (when multimode feature is available): +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * HAL_ADC_Start_IT() must be called for ADC Slave first, then for +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * ADC Master. +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * For ADC Slave, ADC is enabled only (conversion is not started). +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * For ADC Master, ADC is enabled and multimode conversion is started. +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note To guarantee a proper reset of all interruptions once all the needed +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * conversions are obtained, HAL_ADC_Stop_IT() must be called to ensure +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * a correct stop of the IT-based conversions. +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note By default, HAL_ADC_Start_IT() does not enable the End Of Sampling +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * interruption. If required (e.g. in case of oversampling with trigger +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * mode), the user must: +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * 1. first clear the EOSMP flag if set with macro __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EO +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * 2. then enable the EOSMP interrupt with macro __HAL_ADC_ENABLE_IT(hadc, ADC_IT_EOSMP) +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * before calling HAL_ADC_Start_IT(). +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle + ARM GAS /tmp/ccICigVb.s page 182 + + +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc) +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** const ADC_TypeDef *tmpADC_Master; +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Perform ADC enable and conversion start if no conversion is on going */ +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable the ADC peripheral */ +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Enable(hadc); +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start conversion if ADC is effectively enabled */ +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Clear state bitfield related to regular group conversion results */ +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Set state bitfield related to regular operation */ +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY); +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - if ADC instance is master or if multimode feature is not available +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - if multimode setting is disabled (ADC instance slave in independent mode) */ +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code */ +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if a conversion is on going on ADC group injected */ +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) != 0UL) +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset ADC error code fields related to regular conversions only */ +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset all ADC error code fields */ +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 183 + + +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC group regular conversion flag and overrun flag */ +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (To ensure of no unknown state from potential previous ADC operations) */ +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Unlock before starting ADC conversions: in case of potential */ +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* interruption, to let the process to ADC IRQ Handler. */ +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable all interruptions before enabling the desired ones */ +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable ADC end of conversion interrupt */ +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (hadc->Init.EOCSelection) +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_EOC_SEQ_CONV: +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_EOS); +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_EOC); +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable ADC overrun interrupt */ +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If hadc->Init.Overrun is set to ADC_OVR_DATA_PRESERVED, only then is +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_OVR enabled; otherwise data overwrite is considered as normal +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** behavior and no CPU time is lost for a non-processed interruption */ +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable conversion of regular group. */ +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If software start has been selected, conversion starts immediately. */ +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If external trigger has been selected, conversion will start at next */ +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* trigger event. */ +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Case of multimode enabled (when multimode feature is available): */ +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - if ADC is slave and dual regular conversions are enabled, ADC is */ +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* enabled only (conversion is not started), */ +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - if ADC is master, ADC is enabled and conversion is started. */ +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC instance is not a multimode slave instance with multimode regular conversions enable +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable as well injected interruptions in case +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_InjectedStart_IT() has not been called beforehand. This +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** allows to start regular and injected conversions when JAUTO is +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** set with a single call to HAL_ADC_Start_IT() */ + ARM GAS /tmp/ccICigVb.s page 184 + + +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (hadc->Init.EOCSelection) +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_EOC_SEQ_CONV: +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start ADC group regular conversion */ +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_StartConversion(hadc->Instance); +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC instance is a multimode slave instance with multimode regular conversions enabled */ +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* if Master ADC JAUTO bit is set, Slave injected interruptions +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** are enabled nevertheless (for same reason as above) */ +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* First, update Slave State in setting HAL_ADC_STATE_INJ_BUSY bit +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** and in resetting HAL_ADC_STATE_INJ_EOC bit */ +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Next, set Slave injected interruptions */ +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (hadc->Init.EOCSelection) +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_EOC_SEQ_CONV: +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC instance is not a multimode slave instance with multimode regular conversions enabled +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO) != 0UL) +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable as well injected interruptions in case +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_InjectedStart_IT() has not been called beforehand. This +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** allows to start regular and injected conversions when JAUTO is +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** set with a single call to HAL_ADC_Start_IT() */ +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (hadc->Init.EOCSelection) +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_EOC_SEQ_CONV: + ARM GAS /tmp/ccICigVb.s page 185 + + +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start ADC group regular conversion */ +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_StartConversion(hadc->Instance); +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_BUSY; +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Stop ADC conversion of regular group (and injected group in +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * case of auto_injection mode), disable interrution of +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * end-of-conversion, disable ADC peripheral. +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc) +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 1. Stop potential conversion on going, on ADC groups regular and injected */ +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC end of conversion interrupt for regular group */ +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC overrun interrupt */ +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); + ARM GAS /tmp/ccICigVb.s page 186 + + +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 2. Disable the ADC peripheral */ +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if ADC is effectively disabled */ +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY); +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Enable ADC, start conversion of regular group and transfer result through DMA. +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Interruptions enabled in this function: +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * overrun (if applicable), DMA half transfer, DMA transfer complete. +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Each of these interruptions has its dedicated callback function. +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Case of multimode enabled (when multimode feature is available): HAL_ADC_Start_DMA() +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * is designed for single-ADC mode only. For multimode, the dedicated +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * HAL_ADCEx_MultiModeStart_DMA() function must be used. +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param pData Destination Buffer address. +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param Length Number of data to be transferred from ADC peripheral to memory +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length) +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Perform ADC enable and conversion start if no conversion is on going */ +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Ensure that multimode regular conversions are not enabled. */ +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Otherwise, dedicated API HAL_ADCEx_MultiModeStart_DMA() must be used. */ +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((ADC_IS_INDEPENDENT(hadc) != RESET) +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + ARM GAS /tmp/ccICigVb.s page 187 + + +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* ADC_MULTIMODE_SUPPORT */ +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable the ADC peripheral */ +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Enable(hadc); +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start conversion if ADC is effectively enabled */ +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Clear state bitfield related to regular group conversion results */ +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Set state bitfield related to regular operation */ +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY); +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - if ADC instance is master or if multimode feature is not available +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** - if multimode setting is disabled (ADC instance slave in independent mode) */ +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if a conversion is on going on ADC group injected */ +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) != 0UL) +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset ADC error code fields related to regular conversions only */ +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset all ADC error code fields */ +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set the DMA transfer complete callback */ +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set the DMA half transfer complete callback */ +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set the DMA error callback */ +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Manage ADC and DMA start: ADC overrun interruption, DMA start, */ +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC start (in case of SW start): */ +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear regular group conversion flag and overrun flag */ +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (To ensure of no unknown state from potential previous ADC */ +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* operations) */ +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + ARM GAS /tmp/ccICigVb.s page 188 + + +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Unlock before starting ADC conversions: in case of potential */ +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* interruption, to let the process to ADC IRQ Handler. */ +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* With DMA, overrun event is always considered as an error even if +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->Init.Overrun is set to ADC_OVR_DATA_OVERWRITTEN. Therefore, +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_OVR is enabled. */ +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable ADC DMA mode */ +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN); +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start the DMA channel */ +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_ +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable conversion of regular group. */ +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If software start has been selected, conversion starts immediately. */ +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If external trigger has been selected, conversion will start at next */ +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* trigger event. */ +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start ADC group regular conversion */ +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_StartConversion(hadc->Instance); +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_BUSY; +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Stop ADC conversion of regular group (and injected group in +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * case of auto_injection mode), disable ADC DMA transfer, disable +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * ADC peripheral. +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note: ADC peripheral disable is forcing stop of potential +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * conversion on ADC group injected. If ADC group injected is under use, it +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * should be preliminarily stopped using HAL_ADCEx_InjectedStop function. +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Case of multimode enabled (when multimode feature is available): + ARM GAS /tmp/ccICigVb.s page 189 + + +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * HAL_ADC_Stop_DMA() function is dedicated to single-ADC mode only. +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * For multimode, the dedicated HAL_ADCEx_MultiModeStop_DMA() API must be used. +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc) +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 1. Stop potential ADC group regular conversion on going */ +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC DMA (ADC DMA configuration of continuous requests is kept) */ +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN); +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable the DMA channel (in case of DMA in circular mode or stop */ +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* while DMA transfer is on going) */ +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->DMA_Handle->State == HAL_DMA_STATE_BUSY) +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if DMA channel effectively disabled */ +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status != HAL_OK) +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC overrun interrupt */ +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* 2. Disable the ADC peripheral */ +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update "tmp_hal_status" only if DMA channel disabling passed, */ +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to keep in memory a potential failing status. */ +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (void)ADC_Disable(hadc); +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if ADC is effectively disabled */ +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ + ARM GAS /tmp/ccICigVb.s page 190 + + +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY); +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Get ADC regular group conversion result. +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Reading register DR automatically clears ADC flag EOC +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (ADC group regular end of unitary conversion). +2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note This function does not clear ADC flag EOS +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (ADC group regular end of sequence conversion). +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Occurrence of flag EOS rising: +2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - If sequencer is composed of 1 rank, flag EOS is equivalent +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * to flag EOC. +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - If sequencer is composed of several ranks, during the scan +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * sequence flag EOC only is raised, at the end of the scan sequence +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * both flags EOC and EOS are raised. +2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * To clear this flag, either use function: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * in programming model IT: @ref HAL_ADC_IRQHandler(), in programming +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * model polling: @ref HAL_ADC_PollForConversion() +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * or @ref __HAL_ADC_CLEAR_FLAG(&hadc, ADC_FLAG_EOS). +2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval ADC group regular conversion data +2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1292 .loc 1 2229 1 is_stmt 1 view -0 + 1293 .cfi_startproc + 1294 @ args = 0, pretend = 0, frame = 0 + 1295 @ frame_needed = 0, uses_anonymous_args = 0 + 1296 @ link register save eliminated. +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 1297 .loc 1 2231 3 view .LVU392 +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: EOC flag is not cleared here by software because automatically */ +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* cleared by hardware when reading register DR. */ +2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return ADC converted value */ +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return hadc->Instance->DR; + 1298 .loc 1 2237 3 view .LVU393 + 1299 .loc 1 2237 14 is_stmt 0 view .LVU394 + 1300 0000 0368 ldr r3, [r0] + 1301 .loc 1 2237 24 view .LVU395 + 1302 0002 186C ldr r0, [r3, #64] + 1303 .LVL94: +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1304 .loc 1 2238 1 view .LVU396 + ARM GAS /tmp/ccICigVb.s page 191 + + + 1305 0004 7047 bx lr + 1306 .cfi_endproc + 1307 .LFE341: + 1309 .section .text.HAL_ADC_StartSampling,"ax",%progbits + 1310 .align 1 + 1311 .global HAL_ADC_StartSampling + 1312 .syntax unified + 1313 .thumb + 1314 .thumb_func + 1316 HAL_ADC_StartSampling: + 1317 .LVL95: + 1318 .LFB342: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Start ADC conversion sampling phase of regular group +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note: This function should only be called to start sampling when +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - @ref ADC_SAMPLING_MODE_TRIGGER_CONTROLED sampling +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * mode has been selected +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - @ref ADC_SOFTWARE_START has been selected as trigger source +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_StartSampling(ADC_HandleTypeDef *hadc) +2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1319 .loc 1 2250 1 is_stmt 1 view -0 + 1320 .cfi_startproc + 1321 @ args = 0, pretend = 0, frame = 0 + 1322 @ frame_needed = 0, uses_anonymous_args = 0 + 1323 @ link register save eliminated. +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 1324 .loc 1 2252 3 view .LVU398 +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start sampling */ +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CFGR2, ADC_CFGR2_SWTRIG); + 1325 .loc 1 2255 3 view .LVU399 + 1326 0000 0268 ldr r2, [r0] + 1327 0002 1369 ldr r3, [r2, #16] + 1328 0004 43F00073 orr r3, r3, #33554432 + 1329 0008 1361 str r3, [r2, #16] +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; + 1330 .loc 1 2258 3 view .LVU400 +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1331 .loc 1 2259 1 is_stmt 0 view .LVU401 + 1332 000a 0020 movs r0, #0 + 1333 .LVL96: + 1334 .loc 1 2259 1 view .LVU402 + 1335 000c 7047 bx lr + 1336 .cfi_endproc + 1337 .LFE342: + 1339 .section .text.HAL_ADC_StopSampling,"ax",%progbits + 1340 .align 1 + 1341 .global HAL_ADC_StopSampling + 1342 .syntax unified + 1343 .thumb + ARM GAS /tmp/ccICigVb.s page 192 + + + 1344 .thumb_func + 1346 HAL_ADC_StopSampling: + 1347 .LVL97: + 1348 .LFB343: +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Stop ADC conversion sampling phase of regular group and start conversion +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note: This function should only be called to stop sampling when +2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - @ref ADC_SAMPLING_MODE_TRIGGER_CONTROLED sampling +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * mode has been selected +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - @ref ADC_SOFTWARE_START has been selected as trigger source +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - after sampling has been started using @ref HAL_ADC_StartSampling. +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_StopSampling(ADC_HandleTypeDef *hadc) +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1349 .loc 1 2272 1 is_stmt 1 view -0 + 1350 .cfi_startproc + 1351 @ args = 0, pretend = 0, frame = 0 + 1352 @ frame_needed = 0, uses_anonymous_args = 0 + 1353 @ link register save eliminated. +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 1354 .loc 1 2274 3 view .LVU404 +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Start sampling */ +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_SWTRIG); + 1355 .loc 1 2277 3 view .LVU405 + 1356 0000 0268 ldr r2, [r0] + 1357 0002 1369 ldr r3, [r2, #16] + 1358 0004 23F00073 bic r3, r3, #33554432 + 1359 0008 1361 str r3, [r2, #16] +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; + 1360 .loc 1 2280 3 view .LVU406 +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1361 .loc 1 2281 1 is_stmt 0 view .LVU407 + 1362 000a 0020 movs r0, #0 + 1363 .LVL98: + 1364 .loc 1 2281 1 view .LVU408 + 1365 000c 7047 bx lr + 1366 .cfi_endproc + 1367 .LFE343: + 1369 .section .text.HAL_ADC_ConvCpltCallback,"ax",%progbits + 1370 .align 1 + 1371 .weak HAL_ADC_ConvCpltCallback + 1372 .syntax unified + 1373 .thumb + 1374 .thumb_func + 1376 HAL_ADC_ConvCpltCallback: + 1377 .LVL99: + 1378 .LFB345: +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Handle ADC interrupt request. + ARM GAS /tmp/ccICigVb.s page 193 + + +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc) +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t overrun_error = 0UL; /* flag set if overrun occurrence has to be considered as an error +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_isr = hadc->Instance->ISR; +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_ier = hadc->Instance->IER; +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_inj_is_trigger_source_sw_start; +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_reg_is_trigger_source_sw_start; +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_cfgr; +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** const ADC_TypeDef *tmpADC_Master; +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Check End of Sampling flag for ADC group regular ========== */ +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((tmp_isr & ADC_FLAG_EOSMP) == ADC_FLAG_EOSMP) && ((tmp_ier & ADC_IT_EOSMP) == ADC_IT_EOSMP)) +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state machine on end of sampling status if not in error state */ +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOSMP); +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* End Of Sampling callback */ +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->EndOfSamplingCallback(hadc); +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_EndOfSamplingCallback(hadc); +2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear regular group conversion flag */ +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOSMP); +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ====== Check ADC group regular end of unitary conversion sequence conversions ===== */ +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((((tmp_isr & ADC_FLAG_EOC) == ADC_FLAG_EOC) && ((tmp_ier & ADC_IT_EOC) == ADC_IT_EOC)) || +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_EOS) == ADC_FLAG_EOS) && ((tmp_ier & ADC_IT_EOS) == ADC_IT_EOS))) +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state machine on conversion status if not in error state */ +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) +2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Determine whether any further conversion upcoming on group regular */ +2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* by external trigger, continuous mode or scan sequence on going */ +2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to disable interruption. */ +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 194 + + +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get relevant register CFGR in ADC instance of ADC master or slave */ +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* in function of multimode state (for devices with multimode */ +2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* available). */ +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_SIMULT) +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* check CONT bit directly in handle ADC CFGR register */ +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* else need to check Master ADC CONT bit */ +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(tmpADC_Master->CFGR); +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Carry on if continuous mode is disabled */ +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) != ADC_CFGR_CONT) +2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If End of Sequence is reached, disable interrupts */ +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) +2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Allowed to modify bits ADC_IT_EOC/ADC_IT_EOS only if bit */ +2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADSTART==0 (no conversion on going) */ +2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) +2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC end of sequence conversion interrupt */ +2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Overrun interrupt was enabled with EOC interrupt in */ +2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* HAL_Start_IT(), but is not disabled here because can be used */ +2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* by overrun IRQ process below. */ +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_READY); +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Change ADC state to error state */ +2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 195 + + +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Conversion complete callback */ +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Into callback function "HAL_ADC_ConvCpltCallback()", */ +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to determine if conversion has been triggered from EOC or EOS, */ +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* possibility to use: */ +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* " if ( __HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_EOS)) " */ +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvCpltCallback(hadc); +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ConvCpltCallback(hadc); +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear regular group conversion flag */ +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: in case of overrun set to ADC_OVR_DATA_PRESERVED, end of */ +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* conversion flags clear induces the release of the preserved data.*/ +2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Therefore, if the preserved data value is needed, it must be */ +2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* read preliminarily into HAL_ADC_ConvCpltCallback(). */ +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ====== Check ADC group injected end of unitary conversion sequence conversions ===== */ +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((((tmp_isr & ADC_FLAG_JEOC) == ADC_FLAG_JEOC) && ((tmp_ier & ADC_IT_JEOC) == ADC_IT_JEOC)) || +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_JEOS) == ADC_FLAG_JEOS) && ((tmp_ier & ADC_IT_JEOS) == ADC_IT_JEOS))) +2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state machine on conversion status if not in error state */ +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL) +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve ADC configuration */ +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_inj_is_trigger_source_sw_start = LL_ADC_INJ_IsTriggerSourceSWStart(hadc->Instance); +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_reg_is_trigger_source_sw_start = LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance); +2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get relevant register CFGR in ADC instance of ADC master or slave */ +2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* in function of multimode state (for devices with multimode */ +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* available). */ +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(tmpADC_Master->CFGR); +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable interruption if no further conversion upcoming by injected */ + ARM GAS /tmp/ccICigVb.s page 196 + + +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* external trigger or by automatic injected conversion with regular */ +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* group having no further conversion upcoming (same conditions as */ +2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* regular group interruption disabling above), */ +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* and if injected scan sequence is completed. */ +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_adc_inj_is_trigger_source_sw_start != 0UL) +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((READ_BIT(tmp_cfgr, ADC_CFGR_JAUTO) == 0UL) || +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) == 0UL))) +2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If End of Sequence is reached, disable interrupts */ +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS)) +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Particular case if injected contexts queue is enabled: */ +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* when the last context has been fully processed, JSQR is reset */ +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* by the hardware. Even if no injected conversion is planned to come */ +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (queue empty, triggers are ignored), it can start again */ +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* immediately after setting a new context (JADSTART is still set). */ +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Therefore, state of HAL ADC injected group is kept to busy. */ +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmp_cfgr, ADC_CFGR_JQM) == 0UL) +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Allowed to modify bits ADC_IT_JEOC/ADC_IT_JEOS only if bit */ +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* JADSTART==0 (no conversion on going) */ +2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) +2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable ADC end of sequence conversion interrupt */ +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC | ADC_IT_JEOS); +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); +2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_REG_BUSY) == 0UL) +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_READY); +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Injected Conversion complete callback */ +2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: HAL_ADCEx_InjectedConvCpltCallback can resort to +2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_JEOS)) or +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_JEOC)) to determine whether +2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** interruption has been triggered by end of conversion or end of +2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sequence. */ +2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedConvCpltCallback(hadc); + ARM GAS /tmp/ccICigVb.s page 197 + + +2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_InjectedConvCpltCallback(hadc); +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear injected group conversion flag */ +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOC | ADC_FLAG_JEOS); +2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Check Analog watchdog 1 flag ========== */ +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((tmp_isr & ADC_FLAG_AWD1) == ADC_FLAG_AWD1) && ((tmp_ier & ADC_IT_AWD1) == ADC_IT_AWD1)) +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Level out of window 1 callback */ +2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindowCallback(hadc); +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_LevelOutOfWindowCallback(hadc); +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ +2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD1); +2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Check analog watchdog 2 flag ========== */ +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((tmp_isr & ADC_FLAG_AWD2) == ADC_FLAG_AWD2) && ((tmp_ier & ADC_IT_AWD2) == ADC_IT_AWD2)) +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD2); +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Level out of window 2 callback */ +2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow2Callback(hadc); +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_LevelOutOfWindow2Callback(hadc); +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ +2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD2); +2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Check analog watchdog 3 flag ========== */ +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((tmp_isr & ADC_FLAG_AWD3) == ADC_FLAG_AWD3) && ((tmp_ier & ADC_IT_AWD3) == ADC_IT_AWD3)) +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD3); +2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Level out of window 3 callback */ +2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->LevelOutOfWindow3Callback(hadc); +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_LevelOutOfWindow3Callback(hadc); +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD3); + ARM GAS /tmp/ccICigVb.s page 198 + + +2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Check Overrun flag ========== */ +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((tmp_isr & ADC_FLAG_OVR) == ADC_FLAG_OVR) && ((tmp_ier & ADC_IT_OVR) == ADC_IT_OVR)) +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If overrun is set to overwrite previous data (default setting), */ +2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* overrun event is not considered as an error. */ +2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (cf ref manual "Managing conversions without using the DMA and without */ +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* overrun ") */ +2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Exception for usage with DMA overrun event always considered as an */ +2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* error. */ +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) +2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** overrun_error = 1UL; +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check DMA configuration */ +2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (tmp_multimode_config != LL_ADC_MULTI_INDEPENDENT) +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Multimode (when feature is available) is enabled, +2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Common Control Register MDMA bits must be checked. */ +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_GetMultiDMATransfer(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) != LL_ADC_MULTI_RE +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** overrun_error = 1UL; +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif +2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Multimode not set or feature not available or ADC independent */ +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->CFGR & ADC_CFGR_DMAEN) != 0UL) +2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** overrun_error = 1UL; +2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (overrun_error == 1UL) +2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Change ADC state to error state */ +2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to overrun */ +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); +2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Error callback */ +2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: In case of overrun, ADC conversion data is preserved until */ +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* flag OVR is reset. */ +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Therefore, old ADC conversion data can be retrieved in */ +2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* function "HAL_ADC_ErrorCallback()". */ +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCallback(hadc); +2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ErrorCallback(hadc); +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + ARM GAS /tmp/ccICigVb.s page 199 + + +2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear ADC overrun flag */ +2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); +2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ========== Check Injected context queue overflow flag ========== */ +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((tmp_isr & ADC_FLAG_JQOVF) == ADC_FLAG_JQOVF) && ((tmp_ier & ADC_IT_JQOVF) == ADC_IT_JQOVF)) +2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Change ADC state to overrun state */ +2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_JQOVF); +2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to Injected context queue overflow */ +2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); +2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear the Injected context queue overflow flag */ +2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JQOVF); +2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Injected context queue overflow callback */ +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectedQueueOverflowCallback(hadc); +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADCEx_InjectedQueueOverflowCallback(hadc); +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Conversion complete callback in non-blocking mode. +2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1379 .loc 1 2661 1 is_stmt 1 view -0 + 1380 .cfi_startproc + 1381 @ args = 0, pretend = 0, frame = 0 + 1382 @ frame_needed = 0, uses_anonymous_args = 0 + 1383 @ link register save eliminated. +2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** UNUSED(hadc); + 1384 .loc 1 2663 3 view .LVU410 +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** function HAL_ADC_ConvCpltCallback must be implemented in the user file. +2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1385 .loc 1 2668 1 is_stmt 0 view .LVU411 + 1386 0000 7047 bx lr + 1387 .cfi_endproc + 1388 .LFE345: + 1390 .section .text.HAL_ADC_ConvHalfCpltCallback,"ax",%progbits + 1391 .align 1 + 1392 .weak HAL_ADC_ConvHalfCpltCallback + 1393 .syntax unified + 1394 .thumb + ARM GAS /tmp/ccICigVb.s page 200 + + + 1395 .thumb_func + 1397 HAL_ADC_ConvHalfCpltCallback: + 1398 .LVL100: + 1399 .LFB346: +2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Conversion DMA half-transfer callback in non-blocking mode. +2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc) +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1400 .loc 1 2676 1 is_stmt 1 view -0 + 1401 .cfi_startproc + 1402 @ args = 0, pretend = 0, frame = 0 + 1403 @ frame_needed = 0, uses_anonymous_args = 0 + 1404 @ link register save eliminated. +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ +2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** UNUSED(hadc); + 1405 .loc 1 2678 3 view .LVU413 +2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** function HAL_ADC_ConvHalfCpltCallback must be implemented in the user file. +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1406 .loc 1 2683 1 is_stmt 0 view .LVU414 + 1407 0000 7047 bx lr + 1408 .cfi_endproc + 1409 .LFE346: + 1411 .section .text.ADC_DMAHalfConvCplt,"ax",%progbits + 1412 .align 1 + 1413 .global ADC_DMAHalfConvCplt + 1414 .syntax unified + 1415 .thumb + 1416 .thumb_func + 1418 ADC_DMAHalfConvCplt: + 1419 .LVL101: + 1420 .LFB357: +2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Analog watchdog 1 callback in non-blocking mode. +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc) +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** UNUSED(hadc); +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, +2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** function HAL_ADC_LevelOutOfWindowCallback must be implemented in the user file. +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief ADC error callback in non-blocking mode +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (ADC conversion with interruption or transfer by DMA). + ARM GAS /tmp/ccICigVb.s page 201 + + +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note In case of error due to overrun when using ADC with DMA transfer +2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (HAL ADC handle parameter "ErrorCode" to state "HAL_ADC_ERROR_OVR"): +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - Reinitialize the DMA using function "HAL_ADC_Stop_DMA()". +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * - If needed, restart a new ADC conversion using function +2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * "HAL_ADC_Start_DMA()" +2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * (this function is also clearing overrun flag) +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) +2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ +2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** UNUSED(hadc); +2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** function HAL_ADC_ErrorCallback must be implemented in the user file. +2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @} +2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group3 Peripheral Control functions +2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Peripheral Control functions +2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * +2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @verbatim +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== +2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ##### Peripheral Control functions ##### +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] This section provides functions allowing to: +2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Configure channels on regular group +2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Configure the analog watchdog +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @endverbatim +2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ +2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Configure a channel to be assigned to ADC group regular. +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note In case of usage of internal measurement channels: +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Vbat/VrefInt/TempSensor. +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * These internal paths can be disabled using function +2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * HAL_ADC_DeInit(). +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Possibility to update parameters on the fly: +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This function initializes channel into ADC group regular, +2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * following calls to this function can be used to reconfigure +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * some parameters of structure "ADC_ChannelConfTypeDef" on the fly, +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * without resetting the ADC. +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * The setting of these parameters is conditioned to ADC state: +2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Refer to comments of structure "ADC_ChannelConfTypeDef". +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param sConfig Structure of ADC channel assigned to ADC group regular. +2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig) +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 202 + + +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_config_internal_channel; +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0UL; +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; +2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_REGULAR_RANK(sConfig->Rank)); +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SAMPLE_TIME(sConfig->SamplingTime)); +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SINGLE_DIFFERENTIAL(sConfig->SingleDiff)); +2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_OFFSET_NUMBER(sConfig->OffsetNumber)); +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), sConfig->Offset)); +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* if ROVSE is set, the value of the OFFSETy_EN bit in ADCx_OFRy register is +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ignored (considered as reset) */ +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(!((sConfig->OffsetNumber != ADC_OFFSET_NONE) && (hadc->Init.OversamplingMode == ENAB +2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verification of channel number */ +2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (sConfig->SingleDiff != ADC_DIFFERENTIAL_ENDED) +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_CHANNEL(hadc, sConfig->Channel)); +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_DIFF_CHANNEL(hadc, sConfig->Channel)); +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ +2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* conversion on going on regular group: */ +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Channel number */ +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Channel rank */ +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC group regular sequence: channel on the selected scan sequence rank */ +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_SetSequencerRanks(hadc->Instance, sConfig->Rank, sConfig->Channel); +2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ +2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* conversion on going on regular group: */ +2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Channel sampling time */ +2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Channel offset */ +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Manage specific case of sampling time 3.5 cycles replacing 2.5 cyles */ +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (sConfig->SamplingTime == ADC_SAMPLETIME_3CYCLES_5) +2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set sampling time of the selected ADC channel */ + ARM GAS /tmp/ccICigVb.s page 203 + + +2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetChannelSamplingTime(hadc->Instance, sConfig->Channel, LL_ADC_SAMPLINGTIME_2CYCLES +2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC sampling time common configuration */ +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5) +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set sampling time of the selected ADC channel */ +2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetChannelSamplingTime(hadc->Instance, sConfig->Channel, sConfig->SamplingTime); +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC sampling time common configuration */ +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_DEFAULT); +2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configure the offset: offset enable/disable, channel, offset value */ +2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Shift the offset with respect to the selected ADC resolution. */ +2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0 */ +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpOffsetShifted = ADC_OFFSET_SHIFT_RESOLUTION(hadc, (uint32_t)sConfig->Offset); +2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (sConfig->OffsetNumber != ADC_OFFSET_NONE) +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC selected offset number */ +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffset(hadc->Instance, sConfig->OffsetNumber, sConfig->Channel, tmpOffsetShifted) +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_OFFSET_SIGN(sConfig->OffsetSign)); +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(sConfig->OffsetSaturation)); +2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC selected offset sign & saturation */ +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetSign(hadc->Instance, sConfig->OffsetNumber, sConfig->OffsetSign); +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetSaturation(hadc->Instance, sConfig->OffsetNumber, (sConfig->OffsetSaturatio +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Scan each offset register to check if the selected channel is targeted. */ +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If this is the case, the corresponding offset number is disabled. */ +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_1) +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_1, LL_ADC_OFFSET_DISABLE); +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_2) +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_2, LL_ADC_OFFSET_DISABLE); +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_3) +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_3, LL_ADC_OFFSET_DISABLE); +2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_4) +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_4, LL_ADC_OFFSET_DISABLE); +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 204 + + +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters that can be updated only when ADC is disabled: */ +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Single or differential mode */ +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set mode single-ended or differential input of the selected ADC channel */ +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetChannelSingleDiff(hadc->Instance, sConfig->Channel, sConfig->SingleDiff); +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of differential mode */ +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (sConfig->SingleDiff == ADC_DIFFERENTIAL_ENDED) +2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set sampling time of the selected ADC channel */ +2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: ADC channel number masked with value "0x1F" to ensure shift value within 32 bits r +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetChannelSamplingTime(hadc->Instance, +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_T +2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); +2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Management of internal measurement channels: Vbat/VrefInt/TempSensor. */ +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If internal channel selected, enable dedicated internal buffers and */ +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* paths. */ +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: these internal measurement paths can be disabled using */ +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* HAL_ADC_DeInit(). */ +2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__LL_ADC_IS_CHANNEL_INTERNAL(sConfig->Channel)) +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_config_internal_channel = LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->I +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If the requested internal measurement path has already been enabled, */ +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* bypass the configuration processing. */ +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR_ADC1) || (sConfig->Channel == ADC_CHANNEL_TE +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (ADC_TEMPERATURE_SENSOR_INSTANCE(hadc)) +2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_PATH_INTERNAL_TEMPSENSOR | tmp_config_internal_chan +2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Delay for temperature sensor stabilization time */ +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Wait loop initialization and execution */ +2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Variable divided by 2 to compensate partially */ +2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* CPU processing cycles, scaling in us split to not */ +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* exceed 32 bits register capacity and handle low frequency. */ +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * ((SystemCoreClock / (100000 +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) +2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** wait_loop_index--; +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else if ((sConfig->Channel == ADC_CHANNEL_VBAT) && ((tmp_config_internal_channel & LL_ADC_PAT +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (ADC_BATTERY_VOLTAGE_INSTANCE(hadc)) +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 205 + + +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else if ((sConfig->Channel == ADC_CHANNEL_VREFINT) +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) +2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (ADC_VREFINT_INSTANCE(hadc)) +2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), +2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_PATH_INTERNAL_VREFINT | tmp_config_internal_channel +2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* nothing to do */ +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If a conversion is on going on regular group, no update on regular */ +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* channel could be done on neither of the channel configuration structure */ +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* parameters. */ +2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Configure the analog watchdog. +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Possibility to update parameters on the fly: +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This function initializes the selected analog watchdog, successive +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * calls to this function can be used to reconfigure some parameters +2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * of structure "ADC_AnalogWDGConfTypeDef" on the fly, without resetting +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * the ADC. +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * The setting of these parameters is conditioned to ADC state. +2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * For parameters constraints, see comments of structure +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * "ADC_AnalogWDGConfTypeDef". +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note On this STM32 series, analog watchdog thresholds can be modified +2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * while ADC conversion is on going. +2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * In this case, some constraints must be taken into account: +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * the programmed threshold values are effective from the next +2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * ADC EOC (end of unitary conversion). +2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * Considering that registers write delay may happen due to +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * bus activity, this might cause an uncertainty on the +2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * effective timing of the new programmed threshold values. +2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle + ARM GAS /tmp/ccICigVb.s page 206 + + +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param AnalogWDGConfig Structure of ADC analog watchdog configuration +2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *Analog +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpAWDHighThresholdShifted; +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpAWDLowThresholdShifted; +2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; +2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_NUMBER(AnalogWDGConfig->WatchdogNumber)); +3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_MODE(AnalogWDGConfig->WatchdogMode)); +3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_FILTERING_MODE(AnalogWDGConfig->FilteringConfig)); +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(AnalogWDGConfig->ITMode)); +3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REG) || +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || +3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC)) +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_CHANNEL(hadc, AnalogWDGConfig->Channel)); +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verify thresholds range */ +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (hadc->Init.OversamplingMode == ENABLE) +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Case of oversampling enabled: depending on ratio and shift configuration, +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** analog watchdog thresholds can be higher than ADC resolution. +3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Verify if thresholds are within maximum thresholds range. */ +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_RESOLUTION_12B, AnalogWDGConfig->HighThreshold)); +3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_RESOLUTION_12B, AnalogWDGConfig->LowThreshold)); +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verify if thresholds are within the selected ADC resolution */ +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->HighThreshold)); +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->LowThreshold)); +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process locked */ +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_LOCK(hadc); +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ +3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* conversion on going on ADC groups regular and injected: */ +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Analog watchdog channels */ +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) +3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Analog watchdog configuration */ +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_1) +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 207 + + +3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configuration of analog watchdog: */ +3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* - Set the analog watchdog enable mode: one or overall group of */ +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* channels, on groups regular and-or injected. */ +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (AnalogWDGConfig->WatchdogMode) +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_SINGLE_REG: +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, __LL_ADC_ANALOGWD_CHANNEL_GR +3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_REGULAR)); +3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_SINGLE_INJEC: +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, __LL_ADC_ANALOGWD_CHANNEL_GR +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_INJECTED)); +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_SINGLE_REGINJEC: +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, __LL_ADC_ANALOGWD_CHANNEL_GR +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_REGULAR_INJECTED)); +3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_ALL_REG: +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_ALL_CHANNELS_REG) +3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_ALL_INJEC: +3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_ALL_CHANNELS_INJ) +3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_ALL_REGINJEC: +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_ALL_CHANNELS_REG_ +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: /* ADC_ANALOGWATCHDOG_NONE */ +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, LL_ADC_AWD1, LL_ADC_AWD_DISABLE); +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set the filtering configuration */ +3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** MODIFY_REG(hadc->Instance->TR1, +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_TR1_AWDFILT, +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** AnalogWDGConfig->FilteringConfig); +3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state, clear previous result related to AWD1 */ +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_AWD1); +3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear flag ADC analog watchdog */ +3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Flag cleared Clear the ADC Analog watchdog flag to be ready */ +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to use for HAL_ADC_IRQHandler() or HAL_ADC_PollForEvent() */ +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (in case left enabled by previous ADC operations). */ +3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_ClearFlag_AWD1(hadc->Instance); +3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configure ADC analog watchdog interrupt */ +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->ITMode == ENABLE) +3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_EnableIT_AWD1(hadc->Instance); +3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else + ARM GAS /tmp/ccICigVb.s page 208 + + +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_DisableIT_AWD1(hadc->Instance); +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Case of ADC_ANALOGWATCHDOG_2 or ADC_ANALOGWATCHDOG_3 */ +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (AnalogWDGConfig->WatchdogMode) +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_SINGLE_REG: +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_SINGLE_INJEC: +3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_SINGLE_REGINJEC: +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update AWD by bitfield to keep the possibility to monitor */ +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* several channels by successive calls of this function. */ +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_2) +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->AWD2CR, (1UL << (__LL_ADC_CHANNEL_TO_DECIMAL_NB(AnalogWDGConfig +3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->AWD3CR, (1UL << (__LL_ADC_CHANNEL_TO_DECIMAL_NB(AnalogWDGConfig +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_ALL_REG: +3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_ALL_INJEC: +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_ANALOGWATCHDOG_ALL_REGINJEC: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, AnalogWDGConfig->WatchdogNumber, LL_ADC_A +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: /* ADC_ANALOGWATCHDOG_NONE */ +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetAnalogWDMonitChannels(hadc->Instance, AnalogWDGConfig->WatchdogNumber, LL_ADC_A +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_2) +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state, clear previous result related to AWD2 */ +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_AWD2); +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear flag ADC analog watchdog */ +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Flag cleared Clear the ADC Analog watchdog flag to be ready */ +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to use for HAL_ADC_IRQHandler() or HAL_ADC_PollForEvent() */ +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (in case left enabled by previous ADC operations). */ +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_ClearFlag_AWD2(hadc->Instance); +3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configure ADC analog watchdog interrupt */ +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->ITMode == ENABLE) +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_EnableIT_AWD2(hadc->Instance); +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_DisableIT_AWD2(hadc->Instance); +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (AnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_3) */ + ARM GAS /tmp/ccICigVb.s page 209 + + +3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state, clear previous result related to AWD3 */ +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_AWD3); +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear flag ADC analog watchdog */ +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Flag cleared Clear the ADC Analog watchdog flag to be ready */ +3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to use for HAL_ADC_IRQHandler() or HAL_ADC_PollForEvent() */ +3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (in case left enabled by previous ADC operations). */ +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_ClearFlag_AWD3(hadc->Instance); +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Configure ADC analog watchdog interrupt */ +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->ITMode == ENABLE) +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_EnableIT_AWD3(hadc->Instance); +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_DisableIT_AWD3(hadc->Instance); +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Analog watchdog thresholds configuration */ +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (AnalogWDGConfig->WatchdogNumber == ADC_ANALOGWATCHDOG_1) +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Shift the offset with respect to the selected ADC resolution: */ +3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Thresholds have to be left-aligned on bit 11, the LSB (right bits) */ +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* are set to 0. */ +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDHighThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->HighThre +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThres +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Case of ADC_ANALOGWATCHDOG_2 and ADC_ANALOGWATCHDOG_3 */ +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Shift the offset with respect to the selected ADC resolution: */ +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Thresholds have to be left-aligned on bit 7, the LSB (right bits) */ +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* are set to 0. */ +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDHighThresholdShifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->HighThr +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThre +3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC analog watchdog thresholds value of both thresholds high and low */ +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_ConfigAnalogWDThresholds(hadc->Instance, AnalogWDGConfig->WatchdogNumber, tmpAWDHighThresh +3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted); +3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_UNLOCK(hadc); +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return function status */ +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return tmp_hal_status; +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + ARM GAS /tmp/ccICigVb.s page 210 + + +3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @} +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group4 Peripheral State functions +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief ADC Peripheral State functions +3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * +3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @verbatim +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== +3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ##### Peripheral state and errors functions ##### +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** =============================================================================== +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** [..] +3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** This subsection provides functions to get in run-time the status of the +3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** peripheral. +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Check the ADC state +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (+) Check the ADC error code +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** @endverbatim +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Return the ADC handle state. +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note ADC state machine is managed by bitfields, ADC status must be +3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * compared with states bits. +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * For example: +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_REG_BUSY) != 0UL) " +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD1) != 0UL) " +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval ADC handle state (bitfield on 32 bits) +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc) +3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return ADC handle state */ +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return hadc->State; +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Return the ADC error code. +3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval ADC error code (bitfield on 32 bits) +3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) +3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return hadc->ErrorCode; +3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @} +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** + ARM GAS /tmp/ccICigVb.s page 211 + + +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @} +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** @defgroup ADC_Private_Functions ADC Private Functions +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @{ +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Stop ADC conversion. +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param ConversionGroup ADC group regular and/or injected. +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * This parameter can be one of the following values: +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_REGULAR_GROUP ADC regular conversion type. +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_INJECTED_GROUP ADC injected conversion type. +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @arg @ref ADC_REGULAR_INJECTED_GROUP ADC regular and injected conversion type. +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup) +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t Conversion_Timeout_CPU_cycles = 0UL; +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t conversion_group_reassigned = ConversionGroup; +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_ADC_CR_ADSTART_JADSTART; +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ +3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_CONVERSION_GROUP(ConversionGroup)); +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verification if ADC is not already stopped (on regular and injected */ +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* groups) to bypass this function if not needed. */ +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular != 0UL) +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_adc_is_conversion_on_going_injected != 0UL) +3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Particular case of continuous auto-injection mode combined with */ +3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* auto-delay mode. */ +3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* In auto-injection mode, regular group stop ADC_CR_ADSTP is used (not */ +3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* injected group stop ADC_CR_JADSTP). */ +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Procedure to be followed: Wait until JEOS=1, clear JEOS, set ADSTP=1 */ +3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* (see reference manual). */ +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (((hadc->Instance->CFGR & ADC_CFGR_JAUTO) != 0UL) +3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (hadc->Init.ContinuousConvMode == ENABLE) +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (hadc->Init.LowPowerAutoWait == ENABLE) +3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Use stop of regular group */ +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** conversion_group_reassigned = ADC_REGULAR_GROUP; +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Wait until JEOS=1 (maximum Timeout: 4 injected conversions) */ +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS) == 0UL) +3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (Conversion_Timeout_CPU_cycles >= (ADC_CONVERSION_TIME_MAX_CPU_CYCLES * 4UL)) +3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 212 + + +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Conversion_Timeout_CPU_cycles ++; +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Clear JEOS */ +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOS); +3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Stop potential conversion on going on ADC group regular */ +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (conversion_group_reassigned != ADC_INJECTED_GROUP) +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Software is allowed to set ADSTP only when ADSTART=1 and ADDIS=0 */ +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) != 0UL) +3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsDisableOngoing(hadc->Instance) == 0UL) +3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Stop ADC group regular conversion */ +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_REG_StopConversion(hadc->Instance); +3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Stop potential conversion on going on ADC group injected */ +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (conversion_group_reassigned != ADC_REGULAR_GROUP) +3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Software is allowed to set JADSTP only when JADSTART=1 and ADDIS=0 */ +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) +3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsDisableOngoing(hadc->Instance) == 0UL) +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Stop ADC group injected conversion */ +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_INJ_StopConversion(hadc->Instance); +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Selection of start and stop bits with respect to the regular or injected group */ +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** switch (conversion_group_reassigned) +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_REGULAR_INJECTED_GROUP: +3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_ADC_CR_ADSTART_JADSTART = (ADC_CR_ADSTART | ADC_CR_JADSTART); +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** case ADC_INJECTED_GROUP: +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_ADC_CR_ADSTART_JADSTART = ADC_CR_JADSTART; +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Case ADC_REGULAR_GROUP only*/ +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** default: +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_ADC_CR_ADSTART_JADSTART = ADC_CR_ADSTART; +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 213 + + +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Wait for conversion effectively stopped */ +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tickstart = HAL_GetTick(); +3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* New check to avoid false timeout detection in case of preemption */ +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->CR & tmp_ADC_CR_ADSTART_JADSTART) != 0UL) +3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return HAL status */ +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Enable the selected ADC. +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Prerequisite condition to use this function: ADC must be disabled +3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * and voltage regulator must be enabled (done into HAL_ADC_Init()). +3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc) +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; +3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* ADC enable and wait for ADC ready (in case of ADC is disabled or */ +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* enabling phase not yet completed: flag ADC ready not yet set). */ +3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Timeout implemented to not be stuck if ADC cannot be enabled (possible */ +3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* causes: ADC clock not running, ...). */ +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if conditions to enable the ADC are fulfilled */ +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->CR & (ADC_CR_ADCAL | ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | ADC_ +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL) +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 214 + + +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Enable the ADC peripheral */ +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_Enable(hadc->Instance); +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Wait for ADC effectively enabled */ +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tickstart = HAL_GetTick(); +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* If ADEN bit is set less than 4 ADC clock cycles after the ADCAL bit +3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** has been cleared (after a calibration), ADEN bit is reset by the +3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** calibration logic. +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** The workaround is to continue setting ADEN until ADRDY is becomes 1. +3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** Additionally, ADC_ENABLE_TIMEOUT is defined to encompass this +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** 4 ADC clock cycle duration */ +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: Test of ADC enabled required due to hardware constraint to */ +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* not enable ADC if already enabled. */ +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_Enable(hadc->Instance); +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((HAL_GetTick() - tickstart) > ADC_ENABLE_TIMEOUT) +3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* New check to avoid false timeout detection in case of preemption */ +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL) +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return HAL status */ +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief Disable the selected ADC. +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @note Prerequisite condition to use this function: ADC conversions must be +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * stopped. +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hadc ADC handle +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval HAL status. +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc) +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** const uint32_t tmp_adc_is_disable_on_going = LL_ADC_IsDisableOngoing(hadc->Instance); +3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Verification if ADC is not already disabled: */ +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Note: forbidden to disable ADC (set bit ADC_CR_ADDIS) if ADC is already */ + ARM GAS /tmp/ccICigVb.s page 215 + + +3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* disabled. */ +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((LL_ADC_IsEnabled(hadc->Instance) != 0UL) +3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_disable_on_going == 0UL) +3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) +3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check if conditions to disable the ADC are fulfilled */ +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->CR & (ADC_CR_JADSTART | ADC_CR_ADSTART | ADC_CR_ADEN)) == ADC_CR_ADEN) +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Disable the ADC peripheral */ +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_Disable(hadc->Instance); +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOSMP | ADC_FLAG_RDY)); +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Wait for ADC effectively disabled */ +3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get tick count */ +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tickstart = HAL_GetTick(); +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT) +3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* New check to avoid false timeout detection in case of preemption */ +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL) +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update ADC state machine to error */ +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to ADC peripheral internal error */ +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_ERROR; +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Return HAL status */ +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** return HAL_OK; +3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief DMA transfer complete callback. +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hdma pointer to DMA handle. +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma) +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 216 + + +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Update state machine on conversion status if not in error state */ +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & (HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) == 0UL) +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); +3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Determine whether any further conversion upcoming on group regular */ +3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* by external trigger, continuous mode or scan sequence on going */ +3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* to disable interruption. */ +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Is it the end of the regular sequence ? */ +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->Instance->ISR & ADC_FLAG_EOS) != 0UL) +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Are conversions software-triggered ? */ +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL) +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Is CONT bit set ? */ +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_CONT) == 0UL) +3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* CONT bit is not set, no more conversions expected */ +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) +3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_READY); +3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* DMA End of Transfer interrupt was triggered but conversions sequence +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** is not over. If DMACFG is set to 0, conversions are stopped. */ +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(hadc->Instance->CFGR, ADC_CFGR_DMACFG) == 0UL) +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* DMACFG bit is not set, conversions are stopped. */ +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_READY); +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Conversion complete callback */ +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvCpltCallback(hadc); +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ConvCpltCallback(hadc); +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else /* DMA and-or internal error occurred */ +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) != 0UL) +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Call HAL ADC Error Callback function */ + ARM GAS /tmp/ccICigVb.s page 217 + + +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCallback(hadc); +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ErrorCallback(hadc); +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** else +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Call ADC DMA error callback */ +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->DMA_Handle->XferErrorCallback(hdma); +3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief DMA half transfer complete callback. +3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hdma pointer to DMA handle. +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma) +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1421 .loc 1 3635 1 is_stmt 1 view -0 + 1422 .cfi_startproc + 1423 @ args = 0, pretend = 0, frame = 0 + 1424 @ frame_needed = 0, uses_anonymous_args = 0 + 1425 .loc 1 3635 1 is_stmt 0 view .LVU416 + 1426 0000 08B5 push {r3, lr} + 1427 .LCFI11: + 1428 .cfi_def_cfa_offset 8 + 1429 .cfi_offset 3, -8 + 1430 .cfi_offset 14, -4 +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ +3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 1431 .loc 1 3637 3 is_stmt 1 view .LVU417 + 1432 .LVL102: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Half conversion callback */ +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ConvHalfCpltCallback(hadc); +3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ConvHalfCpltCallback(hadc); + 1433 .loc 1 3643 3 view .LVU418 + 1434 0002 806A ldr r0, [r0, #40] + 1435 .LVL103: + 1436 .loc 1 3643 3 is_stmt 0 view .LVU419 + 1437 0004 FFF7FEFF bl HAL_ADC_ConvHalfCpltCallback + 1438 .LVL104: +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1439 .loc 1 3645 1 view .LVU420 + 1440 0008 08BD pop {r3, pc} + 1441 .cfi_endproc + 1442 .LFE357: + 1444 .section .text.HAL_ADC_LevelOutOfWindowCallback,"ax",%progbits + 1445 .align 1 + 1446 .weak HAL_ADC_LevelOutOfWindowCallback + 1447 .syntax unified + ARM GAS /tmp/ccICigVb.s page 218 + + + 1448 .thumb + 1449 .thumb_func + 1451 HAL_ADC_LevelOutOfWindowCallback: + 1452 .LVL105: + 1453 .LFB347: +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ + 1454 .loc 1 2691 1 is_stmt 1 view -0 + 1455 .cfi_startproc + 1456 @ args = 0, pretend = 0, frame = 0 + 1457 @ frame_needed = 0, uses_anonymous_args = 0 + 1458 @ link register save eliminated. +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1459 .loc 1 2693 3 view .LVU422 +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1460 .loc 1 2698 1 is_stmt 0 view .LVU423 + 1461 0000 7047 bx lr + 1462 .cfi_endproc + 1463 .LFE347: + 1465 .section .text.HAL_ADC_ErrorCallback,"ax",%progbits + 1466 .align 1 + 1467 .weak HAL_ADC_ErrorCallback + 1468 .syntax unified + 1469 .thumb + 1470 .thumb_func + 1472 HAL_ADC_ErrorCallback: + 1473 .LVL106: + 1474 .LFB348: +2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ + 1475 .loc 1 2713 1 is_stmt 1 view -0 + 1476 .cfi_startproc + 1477 @ args = 0, pretend = 0, frame = 0 + 1478 @ frame_needed = 0, uses_anonymous_args = 0 + 1479 @ link register save eliminated. +2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1480 .loc 1 2715 3 view .LVU425 +2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1481 .loc 1 2720 1 is_stmt 0 view .LVU426 + 1482 0000 7047 bx lr + 1483 .cfi_endproc + 1484 .LFE348: + 1486 .section .text.HAL_ADC_IRQHandler,"ax",%progbits + 1487 .align 1 + 1488 .global HAL_ADC_IRQHandler + 1489 .syntax unified + 1490 .thumb + 1491 .thumb_func + 1493 HAL_ADC_IRQHandler: + 1494 .LVL107: + 1495 .LFB344: +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t overrun_error = 0UL; /* flag set if overrun occurrence has to be considered as an error + 1496 .loc 1 2289 1 is_stmt 1 view -0 + 1497 .cfi_startproc + 1498 @ args = 0, pretend = 0, frame = 0 + 1499 @ frame_needed = 0, uses_anonymous_args = 0 +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t overrun_error = 0UL; /* flag set if overrun occurrence has to be considered as an error + 1500 .loc 1 2289 1 is_stmt 0 view .LVU428 + 1501 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + ARM GAS /tmp/ccICigVb.s page 219 + + + 1502 .LCFI12: + 1503 .cfi_def_cfa_offset 24 + 1504 .cfi_offset 3, -24 + 1505 .cfi_offset 4, -20 + 1506 .cfi_offset 5, -16 + 1507 .cfi_offset 6, -12 + 1508 .cfi_offset 7, -8 + 1509 .cfi_offset 14, -4 + 1510 0002 0446 mov r4, r0 +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_isr = hadc->Instance->ISR; + 1511 .loc 1 2290 3 is_stmt 1 view .LVU429 + 1512 .LVL108: +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_ier = hadc->Instance->IER; + 1513 .loc 1 2291 3 view .LVU430 +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_ier = hadc->Instance->IER; + 1514 .loc 1 2291 26 is_stmt 0 view .LVU431 + 1515 0004 0368 ldr r3, [r0] +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_ier = hadc->Instance->IER; + 1516 .loc 1 2291 12 view .LVU432 + 1517 0006 1F68 ldr r7, [r3] + 1518 .LVL109: +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_inj_is_trigger_source_sw_start; + 1519 .loc 1 2292 3 is_stmt 1 view .LVU433 +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_inj_is_trigger_source_sw_start; + 1520 .loc 1 2292 12 is_stmt 0 view .LVU434 + 1521 0008 5D68 ldr r5, [r3, #4] + 1522 .LVL110: +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_reg_is_trigger_source_sw_start; + 1523 .loc 1 2293 3 is_stmt 1 view .LVU435 +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_cfgr; + 1524 .loc 1 2294 3 view .LVU436 +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 1525 .loc 1 2295 3 view .LVU437 +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 1526 .loc 1 2297 3 view .LVU438 +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif + 1527 .loc 1 2298 3 view .LVU439 + 1528 .LBB364: + 1529 .LBI364: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1530 .loc 2 6392 26 view .LVU440 + 1531 .LBB365: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1532 .loc 2 6394 3 view .LVU441 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1533 .loc 2 6394 21 is_stmt 0 view .LVU442 + 1534 000a 9A4B ldr r3, .L140 + 1535 000c 9E68 ldr r6, [r3, #8] +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1536 .loc 2 6394 10 view .LVU443 + 1537 000e 06F01F06 and r6, r6, #31 + 1538 .LVL111: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1539 .loc 2 6394 10 view .LVU444 + 1540 .LBE365: + 1541 .LBE364: +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); + ARM GAS /tmp/ccICigVb.s page 220 + + + 1542 .loc 1 2302 3 is_stmt 1 view .LVU445 +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1543 .loc 1 2303 3 view .LVU446 +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1544 .loc 1 2306 3 view .LVU447 +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1545 .loc 1 2306 6 is_stmt 0 view .LVU448 + 1546 0012 17F0020F tst r7, #2 + 1547 0016 10D0 beq .L94 +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1548 .loc 1 2306 54 discriminator 1 view .LVU449 + 1549 0018 15F0020F tst r5, #2 + 1550 001c 0DD0 beq .L94 +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1551 .loc 1 2309 5 is_stmt 1 view .LVU450 +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1552 .loc 1 2309 14 is_stmt 0 view .LVU451 + 1553 001e C36D ldr r3, [r0, #92] +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1554 .loc 1 2309 8 view .LVU452 + 1555 0020 13F0100F tst r3, #16 + 1556 0024 03D1 bne .L95 +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1557 .loc 1 2312 7 is_stmt 1 view .LVU453 + 1558 0026 C36D ldr r3, [r0, #92] + 1559 0028 43F40063 orr r3, r3, #2048 + 1560 002c C365 str r3, [r0, #92] + 1561 .L95: +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 1562 .loc 1 2319 5 view .LVU454 + 1563 002e 2046 mov r0, r4 + 1564 .LVL112: +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 1565 .loc 1 2319 5 is_stmt 0 view .LVU455 + 1566 0030 FFF7FEFF bl HAL_ADCEx_EndOfSamplingCallback + 1567 .LVL113: +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1568 .loc 1 2323 5 is_stmt 1 view .LVU456 + 1569 0034 2368 ldr r3, [r4] + 1570 0036 0222 movs r2, #2 + 1571 0038 1A60 str r2, [r3] + 1572 .L94: +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_EOS) == ADC_FLAG_EOS) && ((tmp_ier & ADC_IT_EOS) == ADC_IT_EOS))) + 1573 .loc 1 2327 3 view .LVU457 +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_EOS) == ADC_FLAG_EOS) && ((tmp_ier & ADC_IT_EOS) == ADC_IT_EOS))) + 1574 .loc 1 2327 6 is_stmt 0 view .LVU458 + 1575 003a 17F0040F tst r7, #4 + 1576 003e 02D0 beq .L96 +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_EOS) == ADC_FLAG_EOS) && ((tmp_ier & ADC_IT_EOS) == ADC_IT_EOS))) + 1577 .loc 1 2327 51 discriminator 1 view .LVU459 + 1578 0040 15F0040F tst r5, #4 + 1579 0044 05D1 bne .L97 + 1580 .L96: +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_EOS) == ADC_FLAG_EOS) && ((tmp_ier & ADC_IT_EOS) == ADC_IT_EOS))) + 1581 .loc 1 2327 94 discriminator 3 view .LVU460 + 1582 0046 17F0080F tst r7, #8 + 1583 004a 4DD0 beq .L98 + ARM GAS /tmp/ccICigVb.s page 221 + + +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1584 .loc 1 2328 51 view .LVU461 + 1585 004c 15F0080F tst r5, #8 + 1586 0050 4AD0 beq .L98 + 1587 .L97: +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1588 .loc 1 2331 5 is_stmt 1 view .LVU462 +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1589 .loc 1 2331 14 is_stmt 0 view .LVU463 + 1590 0052 E36D ldr r3, [r4, #92] +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1591 .loc 1 2331 8 view .LVU464 + 1592 0054 13F0100F tst r3, #16 + 1593 0058 03D1 bne .L99 +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1594 .loc 1 2334 7 is_stmt 1 view .LVU465 + 1595 005a E36D ldr r3, [r4, #92] + 1596 005c 43F40073 orr r3, r3, #512 + 1597 0060 E365 str r3, [r4, #92] + 1598 .L99: +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1599 .loc 1 2340 5 view .LVU466 +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1600 .loc 1 2340 9 is_stmt 0 view .LVU467 + 1601 0062 2368 ldr r3, [r4] + 1602 .LVL114: + 1603 .LBB366: + 1604 .LBI366: +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1605 .loc 2 3747 26 is_stmt 1 view .LVU468 + 1606 .LBB367: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1607 .loc 2 3749 3 view .LVU469 +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1608 .loc 2 3749 12 is_stmt 0 view .LVU470 + 1609 0064 DA68 ldr r2, [r3, #12] +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1610 .loc 2 3749 103 view .LVU471 + 1611 0066 12F4406F tst r2, #3072 + 1612 006a 37D1 bne .L100 + 1613 .LVL115: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1614 .loc 2 3749 103 view .LVU472 + 1615 .LBE367: + 1616 .LBE366: +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1617 .loc 1 2346 7 is_stmt 1 view .LVU473 +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1618 .loc 1 2346 12 is_stmt 0 view .LVU474 + 1619 006c 824A ldr r2, .L140+4 + 1620 006e 9342 cmp r3, r2 + 1621 0070 0CD0 beq .L134 + 1622 0072 1A46 mov r2, r3 + 1623 .L101: +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1624 .loc 1 2346 10 discriminator 4 view .LVU475 + 1625 0074 9342 cmp r3, r2 + ARM GAS /tmp/ccICigVb.s page 222 + + + 1626 0076 0CD0 beq .L102 + 1627 0078 092E cmp r6, #9 + 1628 007a 05D8 bhi .L103 + 1629 007c 40F22121 movw r1, #545 + 1630 0080 F140 lsrs r1, r1, r6 + 1631 0082 11F0010F tst r1, #1 + 1632 0086 04D1 bne .L102 + 1633 .L103: +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + 1634 .loc 1 2358 9 is_stmt 1 discriminator 4 view .LVU476 + 1635 .LVL116: +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1636 .loc 1 2359 9 discriminator 4 view .LVU477 +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1637 .loc 1 2359 18 is_stmt 0 discriminator 4 view .LVU478 + 1638 0088 D268 ldr r2, [r2, #12] + 1639 .LVL117: +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1640 .loc 1 2359 18 discriminator 4 view .LVU479 + 1641 008a 03E0 b .L104 + 1642 .LVL118: + 1643 .L134: +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1644 .loc 1 2346 12 view .LVU480 + 1645 008c 4FF0A042 mov r2, #1342177280 + 1646 0090 F0E7 b .L101 + 1647 .L102: +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1648 .loc 1 2353 9 is_stmt 1 view .LVU481 +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1649 .loc 1 2353 18 is_stmt 0 view .LVU482 + 1650 0092 DA68 ldr r2, [r3, #12] + 1651 .LVL119: + 1652 .L104: +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1653 .loc 1 2366 7 is_stmt 1 view .LVU483 +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1654 .loc 1 2366 10 is_stmt 0 view .LVU484 + 1655 0094 12F4005F tst r2, #8192 + 1656 0098 20D1 bne .L100 +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1657 .loc 1 2369 9 is_stmt 1 view .LVU485 +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1658 .loc 1 2369 13 is_stmt 0 view .LVU486 + 1659 009a 1A68 ldr r2, [r3] + 1660 .LVL120: +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1661 .loc 1 2369 12 view .LVU487 + 1662 009c 12F0080F tst r2, #8 + 1663 00a0 1CD0 beq .L100 +2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1664 .loc 1 2373 11 is_stmt 1 view .LVU488 + 1665 .LVL121: + 1666 .LBB368: + 1667 .LBI368: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1668 .loc 2 6851 26 view .LVU489 + ARM GAS /tmp/ccICigVb.s page 223 + + + 1669 .LBB369: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1670 .loc 2 6853 3 view .LVU490 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1671 .loc 2 6853 12 is_stmt 0 view .LVU491 + 1672 00a2 9A68 ldr r2, [r3, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1673 .loc 2 6853 74 view .LVU492 + 1674 00a4 12F0040F tst r2, #4 + 1675 00a8 10D1 bne .L105 + 1676 .LVL122: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1677 .loc 2 6853 74 view .LVU493 + 1678 .LBE369: + 1679 .LBE368: +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1680 .loc 1 2379 13 is_stmt 1 view .LVU494 + 1681 00aa 5A68 ldr r2, [r3, #4] + 1682 00ac 22F00C02 bic r2, r2, #12 + 1683 00b0 5A60 str r2, [r3, #4] +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1684 .loc 1 2382 13 view .LVU495 + 1685 00b2 E36D ldr r3, [r4, #92] + 1686 00b4 23F48073 bic r3, r3, #256 + 1687 00b8 E365 str r3, [r4, #92] +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1688 .loc 1 2384 13 view .LVU496 +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1689 .loc 1 2384 22 is_stmt 0 view .LVU497 + 1690 00ba E36D ldr r3, [r4, #92] +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1691 .loc 1 2384 16 view .LVU498 + 1692 00bc 13F4805F tst r3, #4096 + 1693 00c0 0CD1 bne .L100 +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1694 .loc 1 2386 15 is_stmt 1 view .LVU499 + 1695 00c2 E36D ldr r3, [r4, #92] + 1696 00c4 43F00103 orr r3, r3, #1 + 1697 00c8 E365 str r3, [r4, #92] + 1698 00ca 07E0 b .L100 + 1699 .LVL123: + 1700 .L105: +2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1701 .loc 1 2392 13 view .LVU500 + 1702 00cc E36D ldr r3, [r4, #92] + 1703 00ce 43F01003 orr r3, r3, #16 + 1704 00d2 E365 str r3, [r4, #92] +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1705 .loc 1 2395 13 view .LVU501 + 1706 00d4 236E ldr r3, [r4, #96] + 1707 00d6 43F00103 orr r3, r3, #1 + 1708 00da 2366 str r3, [r4, #96] + 1709 .LVL124: + 1710 .L100: +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 1711 .loc 1 2409 5 view .LVU502 + 1712 00dc 2046 mov r0, r4 + ARM GAS /tmp/ccICigVb.s page 224 + + + 1713 00de FFF7FEFF bl HAL_ADC_ConvCpltCallback + 1714 .LVL125: +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1715 .loc 1 2417 5 view .LVU503 + 1716 00e2 2368 ldr r3, [r4] + 1717 00e4 0C22 movs r2, #12 + 1718 00e6 1A60 str r2, [r3] + 1719 .L98: +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_JEOS) == ADC_FLAG_JEOS) && ((tmp_ier & ADC_IT_JEOS) == ADC_IT_JEOS))) + 1720 .loc 1 2421 3 view .LVU504 +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_JEOS) == ADC_FLAG_JEOS) && ((tmp_ier & ADC_IT_JEOS) == ADC_IT_JEOS))) + 1721 .loc 1 2421 6 is_stmt 0 view .LVU505 + 1722 00e8 17F0200F tst r7, #32 + 1723 00ec 02D0 beq .L107 +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_JEOS) == ADC_FLAG_JEOS) && ((tmp_ier & ADC_IT_JEOS) == ADC_IT_JEOS))) + 1724 .loc 1 2421 53 discriminator 1 view .LVU506 + 1725 00ee 15F0200F tst r5, #32 + 1726 00f2 05D1 bne .L108 + 1727 .L107: +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (((tmp_isr & ADC_FLAG_JEOS) == ADC_FLAG_JEOS) && ((tmp_ier & ADC_IT_JEOS) == ADC_IT_JEOS))) + 1728 .loc 1 2421 98 discriminator 3 view .LVU507 + 1729 00f4 17F0400F tst r7, #64 + 1730 00f8 5CD0 beq .L109 +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1731 .loc 1 2422 53 view .LVU508 + 1732 00fa 15F0400F tst r5, #64 + 1733 00fe 59D0 beq .L109 + 1734 .L108: +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1735 .loc 1 2425 5 is_stmt 1 view .LVU509 +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1736 .loc 1 2425 14 is_stmt 0 view .LVU510 + 1737 0100 E36D ldr r3, [r4, #92] +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1738 .loc 1 2425 8 view .LVU511 + 1739 0102 13F0100F tst r3, #16 + 1740 0106 03D1 bne .L110 +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1741 .loc 1 2428 7 is_stmt 1 view .LVU512 + 1742 0108 E36D ldr r3, [r4, #92] + 1743 010a 43F40053 orr r3, r3, #8192 + 1744 010e E365 str r3, [r4, #92] + 1745 .L110: +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_reg_is_trigger_source_sw_start = LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance); + 1746 .loc 1 2432 5 view .LVU513 +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_reg_is_trigger_source_sw_start = LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance); + 1747 .loc 1 2432 46 is_stmt 0 view .LVU514 + 1748 0110 2368 ldr r3, [r4] + 1749 .LVL126: + 1750 .LBB370: + 1751 .LBI370: +4534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1752 .loc 2 4534 26 is_stmt 1 view .LVU515 + 1753 .LBB371: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1754 .loc 2 4536 3 view .LVU516 +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/ccICigVb.s page 225 + + + 1755 .loc 2 4536 12 is_stmt 0 view .LVU517 + 1756 0112 DA6C ldr r2, [r3, #76] +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1757 .loc 2 4536 105 view .LVU518 + 1758 0114 12F4C07F tst r2, #384 + 1759 0118 12D1 bne .L130 + 1760 011a 0121 movs r1, #1 + 1761 .L111: + 1762 .LVL127: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1763 .loc 2 4536 105 view .LVU519 + 1764 .LBE371: + 1765 .LBE370: +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Get relevant register CFGR in ADC instance of ADC master or slave */ + 1766 .loc 1 2433 5 is_stmt 1 view .LVU520 + 1767 .LBB373: + 1768 .LBI373: +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1769 .loc 2 3747 26 view .LVU521 + 1770 .LBB374: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1771 .loc 2 3749 3 view .LVU522 +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1772 .loc 2 3749 12 is_stmt 0 view .LVU523 + 1773 011c DA68 ldr r2, [r3, #12] +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1774 .loc 2 3749 103 view .LVU524 + 1775 011e 12F4406F tst r2, #3072 + 1776 0122 0FD1 bne .L131 + 1777 0124 0120 movs r0, #1 + 1778 .L112: + 1779 .LVL128: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1780 .loc 2 3749 103 view .LVU525 + 1781 .LBE374: + 1782 .LBE373: +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1783 .loc 1 2438 5 is_stmt 1 view .LVU526 +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1784 .loc 1 2438 10 is_stmt 0 view .LVU527 + 1785 0126 544A ldr r2, .L140+4 + 1786 0128 9342 cmp r3, r2 + 1787 012a 0DD0 beq .L135 + 1788 012c 1A46 mov r2, r3 + 1789 .L113: +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1790 .loc 1 2438 8 discriminator 4 view .LVU528 + 1791 012e 9342 cmp r3, r2 + 1792 0130 0DD0 beq .L114 +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + 1793 .loc 1 2439 9 view .LVU529 + 1794 0132 66B1 cbz r6, .L114 +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + 1795 .loc 1 2440 9 view .LVU530 + 1796 0134 062E cmp r6, #6 + 1797 0136 0AD0 beq .L114 +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + ARM GAS /tmp/ccICigVb.s page 226 + + + 1798 .loc 1 2441 9 view .LVU531 + 1799 0138 072E cmp r6, #7 + 1800 013a 08D0 beq .L114 +2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + 1801 .loc 1 2448 7 is_stmt 1 discriminator 4 view .LVU532 + 1802 .LVL129: +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1803 .loc 1 2449 7 discriminator 4 view .LVU533 +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1804 .loc 1 2449 16 is_stmt 0 discriminator 4 view .LVU534 + 1805 013c D268 ldr r2, [r2, #12] + 1806 .LVL130: +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1807 .loc 1 2449 16 discriminator 4 view .LVU535 + 1808 013e 07E0 b .L116 + 1809 .LVL131: + 1810 .L130: + 1811 .LBB376: + 1812 .LBB372: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1813 .loc 2 4536 105 view .LVU536 + 1814 0140 0021 movs r1, #0 + 1815 0142 EBE7 b .L111 + 1816 .LVL132: + 1817 .L131: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1818 .loc 2 4536 105 view .LVU537 + 1819 .LBE372: + 1820 .LBE376: + 1821 .LBB377: + 1822 .LBB375: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1823 .loc 2 3749 103 view .LVU538 + 1824 0144 0020 movs r0, #0 + 1825 0146 EEE7 b .L112 + 1826 .LVL133: + 1827 .L135: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1828 .loc 2 3749 103 view .LVU539 + 1829 .LBE375: + 1830 .LBE377: +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1831 .loc 1 2438 10 view .LVU540 + 1832 0148 4FF0A042 mov r2, #1342177280 + 1833 014c EFE7 b .L113 + 1834 .L114: +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1835 .loc 1 2444 7 is_stmt 1 view .LVU541 +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1836 .loc 1 2444 16 is_stmt 0 view .LVU542 + 1837 014e DA68 ldr r2, [r3, #12] + 1838 .LVL134: + 1839 .L116: +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1840 .loc 1 2460 5 is_stmt 1 view .LVU543 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1841 .loc 1 2460 8 is_stmt 0 view .LVU544 + ARM GAS /tmp/ccICigVb.s page 227 + + + 1842 0150 51B3 cbz r1, .L117 +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && + 1843 .loc 1 2462 7 is_stmt 1 view .LVU545 +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && + 1844 .loc 1 2462 10 is_stmt 0 view .LVU546 + 1845 0152 12F0007F tst r2, #33554432 + 1846 0156 03D0 beq .L118 +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && + 1847 .loc 1 2462 55 discriminator 1 view .LVU547 + 1848 0158 30B3 cbz r0, .L117 +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) == 0UL))) + 1849 .loc 1 2463 60 view .LVU548 + 1850 015a 12F4005F tst r2, #8192 + 1851 015e 23D1 bne .L117 + 1852 .L118: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1853 .loc 1 2467 9 is_stmt 1 view .LVU549 +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1854 .loc 1 2467 13 is_stmt 0 view .LVU550 + 1855 0160 1968 ldr r1, [r3] + 1856 .LVL135: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1857 .loc 1 2467 12 view .LVU551 + 1858 0162 11F0400F tst r1, #64 + 1859 0166 1FD0 beq .L117 +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1860 .loc 1 2475 11 is_stmt 1 view .LVU552 +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1861 .loc 1 2475 14 is_stmt 0 view .LVU553 + 1862 0168 12F4001F tst r2, #2097152 + 1863 016c 1CD1 bne .L117 +2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1864 .loc 1 2479 13 is_stmt 1 view .LVU554 + 1865 .LVL136: + 1866 .LBB378: + 1867 .LBI378: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1868 .loc 2 7076 26 view .LVU555 + 1869 .LBB379: + 1870 .loc 2 7078 3 view .LVU556 + 1871 .loc 2 7078 12 is_stmt 0 view .LVU557 + 1872 016e 9A68 ldr r2, [r3, #8] + 1873 .LVL137: + 1874 .loc 2 7078 76 view .LVU558 + 1875 0170 12F0080F tst r2, #8 + 1876 0174 10D1 bne .L119 + 1877 .LVL138: + 1878 .loc 2 7078 76 view .LVU559 + 1879 .LBE379: + 1880 .LBE378: +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1881 .loc 1 2482 15 is_stmt 1 view .LVU560 + 1882 0176 5A68 ldr r2, [r3, #4] + 1883 0178 22F06002 bic r2, r2, #96 + 1884 017c 5A60 str r2, [r3, #4] +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1885 .loc 1 2485 15 view .LVU561 + ARM GAS /tmp/ccICigVb.s page 228 + + + 1886 017e E36D ldr r3, [r4, #92] + 1887 0180 23F48053 bic r3, r3, #4096 + 1888 0184 E365 str r3, [r4, #92] +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1889 .loc 1 2487 15 view .LVU562 +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1890 .loc 1 2487 24 is_stmt 0 view .LVU563 + 1891 0186 E36D ldr r3, [r4, #92] +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1892 .loc 1 2487 18 view .LVU564 + 1893 0188 13F4807F tst r3, #256 + 1894 018c 0CD1 bne .L117 +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1895 .loc 1 2489 17 is_stmt 1 view .LVU565 + 1896 018e E36D ldr r3, [r4, #92] + 1897 0190 43F00103 orr r3, r3, #1 + 1898 0194 E365 str r3, [r4, #92] + 1899 0196 07E0 b .L117 + 1900 .LVL139: + 1901 .L119: +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1902 .loc 1 2495 15 view .LVU566 + 1903 0198 E36D ldr r3, [r4, #92] + 1904 019a 43F01003 orr r3, r3, #16 + 1905 019e E365 str r3, [r4, #92] +2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1906 .loc 1 2498 15 view .LVU567 + 1907 01a0 236E ldr r3, [r4, #96] + 1908 01a2 43F00103 orr r3, r3, #1 + 1909 01a6 2366 str r3, [r4, #96] + 1910 .L117: +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 1911 .loc 1 2514 5 view .LVU568 + 1912 01a8 2046 mov r0, r4 + 1913 .LVL140: +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 1914 .loc 1 2514 5 is_stmt 0 view .LVU569 + 1915 01aa FFF7FEFF bl HAL_ADCEx_InjectedConvCpltCallback + 1916 .LVL141: +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1917 .loc 1 2518 5 is_stmt 1 view .LVU570 + 1918 01ae 2368 ldr r3, [r4] + 1919 01b0 6022 movs r2, #96 + 1920 01b2 1A60 str r2, [r3] + 1921 .LVL142: + 1922 .L109: +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1923 .loc 1 2522 3 view .LVU571 +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1924 .loc 1 2522 6 is_stmt 0 view .LVU572 + 1925 01b4 17F0800F tst r7, #128 + 1926 01b8 02D0 beq .L121 +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1927 .loc 1 2522 52 discriminator 1 view .LVU573 + 1928 01ba 15F0800F tst r5, #128 + 1929 01be 2FD1 bne .L136 + 1930 .L121: + ARM GAS /tmp/ccICigVb.s page 229 + + +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1931 .loc 1 2539 3 is_stmt 1 view .LVU574 +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1932 .loc 1 2539 6 is_stmt 0 view .LVU575 + 1933 01c0 17F4807F tst r7, #256 + 1934 01c4 02D0 beq .L122 +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1935 .loc 1 2539 52 discriminator 1 view .LVU576 + 1936 01c6 15F4807F tst r5, #256 + 1937 01ca 34D1 bne .L137 + 1938 .L122: +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1939 .loc 1 2556 3 is_stmt 1 view .LVU577 +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1940 .loc 1 2556 6 is_stmt 0 view .LVU578 + 1941 01cc 17F4007F tst r7, #512 + 1942 01d0 02D0 beq .L123 +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1943 .loc 1 2556 52 discriminator 1 view .LVU579 + 1944 01d2 15F4007F tst r5, #512 + 1945 01d6 3AD1 bne .L138 + 1946 .L123: +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1947 .loc 1 2573 3 is_stmt 1 view .LVU580 +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1948 .loc 1 2573 6 is_stmt 0 view .LVU581 + 1949 01d8 17F0100F tst r7, #16 + 1950 01dc 19D0 beq .L124 +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1951 .loc 1 2573 50 discriminator 1 view .LVU582 + 1952 01de 15F0100F tst r5, #16 + 1953 01e2 16D0 beq .L124 +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1954 .loc 1 2581 5 is_stmt 1 view .LVU583 +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1955 .loc 1 2581 19 is_stmt 0 view .LVU584 + 1956 01e4 E36B ldr r3, [r4, #60] +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1957 .loc 1 2581 8 view .LVU585 + 1958 01e6 33B1 cbz r3, .L125 +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1959 .loc 1 2589 7 is_stmt 1 view .LVU586 +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1960 .loc 1 2589 10 is_stmt 0 view .LVU587 + 1961 01e8 002E cmp r6, #0 + 1962 01ea 3CD0 beq .L126 +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1963 .loc 1 2593 9 is_stmt 1 view .LVU588 + 1964 .LVL143: + 1965 .LBB380: + 1966 .LBI380: +6489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1967 .loc 2 6489 26 view .LVU589 + 1968 .LBB381: +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1969 .loc 2 6491 3 view .LVU590 +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/ccICigVb.s page 230 + + + 1970 .loc 2 6491 21 is_stmt 0 view .LVU591 + 1971 01ec 214B ldr r3, .L140 + 1972 01ee 9B68 ldr r3, [r3, #8] + 1973 .LVL144: +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1974 .loc 2 6491 21 view .LVU592 + 1975 .LBE381: + 1976 .LBE380: +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 1977 .loc 1 2593 12 view .LVU593 + 1978 01f0 13F4604F tst r3, #57344 + 1979 01f4 0AD0 beq .L127 + 1980 .L125: + 1981 .LVL145: +2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1982 .loc 1 2612 7 is_stmt 1 view .LVU594 + 1983 01f6 E36D ldr r3, [r4, #92] + 1984 01f8 43F48063 orr r3, r3, #1024 + 1985 01fc E365 str r3, [r4, #92] +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 1986 .loc 1 2615 7 view .LVU595 + 1987 01fe 236E ldr r3, [r4, #96] + 1988 0200 43F00203 orr r3, r3, #2 + 1989 0204 2366 str r3, [r4, #96] +2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 1990 .loc 1 2625 7 view .LVU596 + 1991 0206 2046 mov r0, r4 + 1992 0208 FFF7FEFF bl HAL_ADC_ErrorCallback + 1993 .LVL146: + 1994 .L127: +2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 1995 .loc 1 2630 5 view .LVU597 + 1996 020c 2368 ldr r3, [r4] + 1997 020e 1022 movs r2, #16 + 1998 0210 1A60 str r2, [r3] + 1999 .L124: +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2000 .loc 1 2634 3 view .LVU598 +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2001 .loc 1 2634 6 is_stmt 0 view .LVU599 + 2002 0212 17F4806F tst r7, #1024 + 2003 0216 02D0 beq .L93 +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2004 .loc 1 2634 54 discriminator 1 view .LVU600 + 2005 0218 15F4806F tst r5, #1024 + 2006 021c 2ED1 bne .L139 + 2007 .L93: +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2008 .loc 1 2653 1 view .LVU601 + 2009 021e F8BD pop {r3, r4, r5, r6, r7, pc} + 2010 .LVL147: + 2011 .L136: +2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2012 .loc 1 2525 5 is_stmt 1 view .LVU602 + 2013 0220 E36D ldr r3, [r4, #92] + 2014 0222 43F48033 orr r3, r3, #65536 + 2015 0226 E365 str r3, [r4, #92] + ARM GAS /tmp/ccICigVb.s page 231 + + +2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2016 .loc 1 2531 5 view .LVU603 + 2017 0228 2046 mov r0, r4 + 2018 022a FFF7FEFF bl HAL_ADC_LevelOutOfWindowCallback + 2019 .LVL148: +2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2020 .loc 1 2535 5 view .LVU604 + 2021 022e 2368 ldr r3, [r4] + 2022 0230 8022 movs r2, #128 + 2023 0232 1A60 str r2, [r3] + 2024 0234 C4E7 b .L121 + 2025 .L137: +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2026 .loc 1 2542 5 view .LVU605 + 2027 0236 E36D ldr r3, [r4, #92] + 2028 0238 43F40033 orr r3, r3, #131072 + 2029 023c E365 str r3, [r4, #92] +2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2030 .loc 1 2548 5 view .LVU606 + 2031 023e 2046 mov r0, r4 + 2032 0240 FFF7FEFF bl HAL_ADCEx_LevelOutOfWindow2Callback + 2033 .LVL149: +2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2034 .loc 1 2552 5 view .LVU607 + 2035 0244 2368 ldr r3, [r4] + 2036 0246 4FF48072 mov r2, #256 + 2037 024a 1A60 str r2, [r3] + 2038 024c BEE7 b .L122 + 2039 .L138: +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2040 .loc 1 2559 5 view .LVU608 + 2041 024e E36D ldr r3, [r4, #92] + 2042 0250 43F48023 orr r3, r3, #262144 + 2043 0254 E365 str r3, [r4, #92] +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2044 .loc 1 2565 5 view .LVU609 + 2045 0256 2046 mov r0, r4 + 2046 0258 FFF7FEFF bl HAL_ADCEx_LevelOutOfWindow3Callback + 2047 .LVL150: +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2048 .loc 1 2569 5 view .LVU610 + 2049 025c 2368 ldr r3, [r4] + 2050 025e 4FF40072 mov r2, #512 + 2051 0262 1A60 str r2, [r3] + 2052 0264 B8E7 b .L123 + 2053 .L126: +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2054 .loc 1 2602 9 view .LVU611 +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2055 .loc 1 2602 18 is_stmt 0 view .LVU612 + 2056 0266 2368 ldr r3, [r4] +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2057 .loc 1 2602 28 view .LVU613 + 2058 0268 DB68 ldr r3, [r3, #12] +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2059 .loc 1 2602 12 view .LVU614 + 2060 026a 13F0010F tst r3, #1 + ARM GAS /tmp/ccICigVb.s page 232 + + + 2061 026e CDD0 beq .L127 + 2062 0270 C1E7 b .L125 + 2063 .L141: + 2064 0272 00BF .align 2 + 2065 .L140: + 2066 0274 00030050 .word 1342178048 + 2067 0278 00010050 .word 1342177536 + 2068 .LVL151: + 2069 .L139: +2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2070 .loc 1 2637 5 is_stmt 1 view .LVU615 + 2071 027c E36D ldr r3, [r4, #92] + 2072 027e 43F48043 orr r3, r3, #16384 + 2073 0282 E365 str r3, [r4, #92] +2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2074 .loc 1 2640 5 view .LVU616 + 2075 0284 236E ldr r3, [r4, #96] + 2076 0286 43F00803 orr r3, r3, #8 + 2077 028a 2366 str r3, [r4, #96] +2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2078 .loc 1 2643 5 view .LVU617 + 2079 028c 2368 ldr r3, [r4] + 2080 028e 4FF48062 mov r2, #1024 + 2081 0292 1A60 str r2, [r3] +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2082 .loc 1 2649 5 view .LVU618 + 2083 0294 2046 mov r0, r4 + 2084 0296 FFF7FEFF bl HAL_ADCEx_InjectedQueueOverflowCallback + 2085 .LVL152: +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2086 .loc 1 2653 1 is_stmt 0 view .LVU619 + 2087 029a C0E7 b .L93 + 2088 .cfi_endproc + 2089 .LFE344: + 2091 .section .text.ADC_DMAConvCplt,"ax",%progbits + 2092 .align 1 + 2093 .global ADC_DMAConvCplt + 2094 .syntax unified + 2095 .thumb + 2096 .thumb_func + 2098 ADC_DMAConvCplt: + 2099 .LVL153: + 2100 .LFB356: +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ + 2101 .loc 1 3557 1 is_stmt 1 view -0 + 2102 .cfi_startproc + 2103 @ args = 0, pretend = 0, frame = 0 + 2104 @ frame_needed = 0, uses_anonymous_args = 0 +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ + 2105 .loc 1 3557 1 is_stmt 0 view .LVU621 + 2106 0000 08B5 push {r3, lr} + 2107 .LCFI13: + 2108 .cfi_def_cfa_offset 8 + 2109 .cfi_offset 3, -8 + 2110 .cfi_offset 14, -4 + 2111 0002 0346 mov r3, r0 +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 233 + + + 2112 .loc 1 3559 3 is_stmt 1 view .LVU622 +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2113 .loc 1 3559 22 is_stmt 0 view .LVU623 + 2114 0004 806A ldr r0, [r0, #40] + 2115 .LVL154: +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2116 .loc 1 3562 3 is_stmt 1 view .LVU624 +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2117 .loc 1 3562 12 is_stmt 0 view .LVU625 + 2118 0006 C26D ldr r2, [r0, #92] +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2119 .loc 1 3562 6 view .LVU626 + 2120 0008 12F0500F tst r2, #80 + 2121 000c 30D1 bne .L143 +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2122 .loc 1 3565 5 is_stmt 1 view .LVU627 + 2123 000e C36D ldr r3, [r0, #92] + 2124 .LVL155: +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2125 .loc 1 3565 5 is_stmt 0 view .LVU628 + 2126 0010 43F40073 orr r3, r3, #512 + 2127 0014 C365 str r3, [r0, #92] +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2128 .loc 1 3571 5 is_stmt 1 view .LVU629 +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2129 .loc 1 3571 14 is_stmt 0 view .LVU630 + 2130 0016 0368 ldr r3, [r0] +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2131 .loc 1 3571 24 view .LVU631 + 2132 0018 1A68 ldr r2, [r3] +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2133 .loc 1 3571 8 view .LVU632 + 2134 001a 12F0080F tst r2, #8 + 2135 001e 14D0 beq .L144 +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2136 .loc 1 3574 7 is_stmt 1 view .LVU633 + 2137 .LVL156: + 2138 .LBB382: + 2139 .LBI382: +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2140 .loc 2 3747 26 view .LVU634 + 2141 .LBB383: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2142 .loc 2 3749 3 view .LVU635 +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2143 .loc 2 3749 12 is_stmt 0 view .LVU636 + 2144 0020 DA68 ldr r2, [r3, #12] +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2145 .loc 2 3749 103 view .LVU637 + 2146 0022 12F4406F tst r2, #3072 + 2147 0026 20D1 bne .L145 + 2148 .LVL157: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2149 .loc 2 3749 103 view .LVU638 + 2150 .LBE383: + 2151 .LBE382: +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 234 + + + 2152 .loc 1 3577 9 is_stmt 1 view .LVU639 +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2153 .loc 1 3577 13 is_stmt 0 view .LVU640 + 2154 0028 DB68 ldr r3, [r3, #12] +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2155 .loc 1 3577 12 view .LVU641 + 2156 002a 13F4005F tst r3, #8192 + 2157 002e 1CD1 bne .L145 +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + 2158 .loc 1 3580 11 is_stmt 1 view .LVU642 + 2159 0030 C36D ldr r3, [r0, #92] + 2160 0032 23F48073 bic r3, r3, #256 + 2161 0036 C365 str r3, [r0, #92] +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2162 .loc 1 3581 11 view .LVU643 +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2163 .loc 1 3581 20 is_stmt 0 view .LVU644 + 2164 0038 C36D ldr r3, [r0, #92] +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2165 .loc 1 3581 14 view .LVU645 + 2166 003a 13F4805F tst r3, #4096 + 2167 003e 14D1 bne .L145 +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2168 .loc 1 3583 13 is_stmt 1 view .LVU646 + 2169 0040 C36D ldr r3, [r0, #92] + 2170 0042 43F00103 orr r3, r3, #1 + 2171 0046 C365 str r3, [r0, #92] + 2172 0048 0FE0 b .L145 + 2173 .L144: +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2174 .loc 1 3592 7 view .LVU647 +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2175 .loc 1 3592 11 is_stmt 0 view .LVU648 + 2176 004a DB68 ldr r3, [r3, #12] +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2177 .loc 1 3592 10 view .LVU649 + 2178 004c 13F0020F tst r3, #2 + 2179 0050 0BD1 bne .L145 +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_INJ_BUSY) == 0UL) + 2180 .loc 1 3595 9 is_stmt 1 view .LVU650 + 2181 0052 C36D ldr r3, [r0, #92] + 2182 0054 23F48073 bic r3, r3, #256 + 2183 0058 C365 str r3, [r0, #92] +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2184 .loc 1 3596 9 view .LVU651 +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2185 .loc 1 3596 18 is_stmt 0 view .LVU652 + 2186 005a C36D ldr r3, [r0, #92] +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2187 .loc 1 3596 12 view .LVU653 + 2188 005c 13F4805F tst r3, #4096 + 2189 0060 03D1 bne .L145 +3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2190 .loc 1 3598 11 is_stmt 1 view .LVU654 + 2191 0062 C36D ldr r3, [r0, #92] + 2192 0064 43F00103 orr r3, r3, #1 + 2193 0068 C365 str r3, [r0, #92] + ARM GAS /tmp/ccICigVb.s page 235 + + + 2194 .L145: +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2195 .loc 1 3607 5 view .LVU655 + 2196 006a FFF7FEFF bl HAL_ADC_ConvCpltCallback + 2197 .LVL158: + 2198 .L142: +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2199 .loc 1 3627 1 is_stmt 0 view .LVU656 + 2200 006e 08BD pop {r3, pc} + 2201 .LVL159: + 2202 .L143: +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2203 .loc 1 3612 5 is_stmt 1 view .LVU657 +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2204 .loc 1 3612 14 is_stmt 0 view .LVU658 + 2205 0070 C26D ldr r2, [r0, #92] +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2206 .loc 1 3612 8 view .LVU659 + 2207 0072 12F0100F tst r2, #16 + 2208 0076 04D1 bne .L149 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2209 .loc 1 3624 7 is_stmt 1 view .LVU660 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2210 .loc 1 3624 11 is_stmt 0 view .LVU661 + 2211 0078 426D ldr r2, [r0, #84] +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2212 .loc 1 3624 23 view .LVU662 + 2213 007a 526B ldr r2, [r2, #52] +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2214 .loc 1 3624 7 view .LVU663 + 2215 007c 1846 mov r0, r3 + 2216 .LVL160: +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2217 .loc 1 3624 7 view .LVU664 + 2218 007e 9047 blx r2 + 2219 .LVL161: +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2220 .loc 1 3627 1 view .LVU665 + 2221 0080 F5E7 b .L142 + 2222 .LVL162: + 2223 .L149: +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2224 .loc 1 3618 7 is_stmt 1 view .LVU666 + 2225 0082 FFF7FEFF bl HAL_ADC_ErrorCallback + 2226 .LVL163: +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 2227 .loc 1 3618 7 is_stmt 0 view .LVU667 + 2228 0086 F2E7 b .L142 + 2229 .cfi_endproc + 2230 .LFE356: + 2232 .section .text.ADC_DMAError,"ax",%progbits + 2233 .align 1 + 2234 .global ADC_DMAError + 2235 .syntax unified + 2236 .thumb + 2237 .thumb_func + 2239 ADC_DMAError: + ARM GAS /tmp/ccICigVb.s page 236 + + + 2240 .LVL164: + 2241 .LFB358: +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /** +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @brief DMA error callback. +3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @param hdma pointer to DMA handle. +3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** * @retval None +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** */ +3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** void ADC_DMAError(DMA_HandleTypeDef *hdma) +3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2242 .loc 1 3653 1 is_stmt 1 view -0 + 2243 .cfi_startproc + 2244 @ args = 0, pretend = 0, frame = 0 + 2245 @ frame_needed = 0, uses_anonymous_args = 0 + 2246 .loc 1 3653 1 is_stmt 0 view .LVU669 + 2247 0000 08B5 push {r3, lr} + 2248 .LCFI14: + 2249 .cfi_def_cfa_offset 8 + 2250 .cfi_offset 3, -8 + 2251 .cfi_offset 14, -4 +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ +3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 2252 .loc 1 3655 3 is_stmt 1 view .LVU670 + 2253 .loc 1 3655 22 is_stmt 0 view .LVU671 + 2254 0002 806A ldr r0, [r0, #40] + 2255 .LVL165: +3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC state */ +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + 2256 .loc 1 3658 3 is_stmt 1 view .LVU672 + 2257 0004 C36D ldr r3, [r0, #92] + 2258 0006 43F04003 orr r3, r3, #64 + 2259 000a C365 str r3, [r0, #92] +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC error code to DMA error */ +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_DMA); + 2260 .loc 1 3661 3 view .LVU673 + 2261 000c 036E ldr r3, [r0, #96] + 2262 000e 43F00403 orr r3, r3, #4 + 2263 0012 0366 str r3, [r0, #96] +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** +3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Error callback */ +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->ErrorCallback(hadc); +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #else +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_ErrorCallback(hadc); + 2264 .loc 1 3667 3 view .LVU674 + 2265 0014 FFF7FEFF bl HAL_ADC_ErrorCallback + 2266 .LVL166: +3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2267 .loc 1 3669 1 is_stmt 0 view .LVU675 + 2268 0018 08BD pop {r3, pc} + 2269 .cfi_endproc + 2270 .LFE358: + 2272 .section .text.HAL_ADC_ConfigChannel,"ax",%progbits + 2273 .align 1 + ARM GAS /tmp/ccICigVb.s page 237 + + + 2274 .global HAL_ADC_ConfigChannel + 2275 .syntax unified + 2276 .thumb + 2277 .thumb_func + 2279 HAL_ADC_ConfigChannel: + 2280 .LVL167: + 2281 .LFB349: +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 2282 .loc 1 2759 1 is_stmt 1 view -0 + 2283 .cfi_startproc + 2284 @ args = 0, pretend = 0, frame = 8 + 2285 @ frame_needed = 0, uses_anonymous_args = 0 +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 2286 .loc 1 2759 1 is_stmt 0 view .LVU677 + 2287 0000 F0B5 push {r4, r5, r6, r7, lr} + 2288 .LCFI15: + 2289 .cfi_def_cfa_offset 20 + 2290 .cfi_offset 4, -20 + 2291 .cfi_offset 5, -16 + 2292 .cfi_offset 6, -12 + 2293 .cfi_offset 7, -8 + 2294 .cfi_offset 14, -4 + 2295 0002 83B0 sub sp, sp, #12 + 2296 .LCFI16: + 2297 .cfi_def_cfa_offset 32 +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 2298 .loc 1 2760 3 is_stmt 1 view .LVU678 + 2299 .LVL168: +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_config_internal_channel; + 2300 .loc 1 2761 3 view .LVU679 +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0UL; + 2301 .loc 1 2762 3 view .LVU680 +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 2302 .loc 1 2763 3 view .LVU681 +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 2303 .loc 1 2763 17 is_stmt 0 view .LVU682 + 2304 0004 0023 movs r3, #0 + 2305 0006 0193 str r3, [sp, #4] +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 2306 .loc 1 2764 3 is_stmt 1 view .LVU683 +2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2307 .loc 1 2765 3 view .LVU684 +2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_REGULAR_RANK(sConfig->Rank)); + 2308 .loc 1 2768 3 view .LVU685 +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SAMPLE_TIME(sConfig->SamplingTime)); + 2309 .loc 1 2769 3 view .LVU686 +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_SINGLE_DIFFERENTIAL(sConfig->SingleDiff)); + 2310 .loc 1 2770 3 view .LVU687 +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_OFFSET_NUMBER(sConfig->OffsetNumber)); + 2311 .loc 1 2771 3 view .LVU688 +2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), sConfig->Offset)); + 2312 .loc 1 2772 3 view .LVU689 +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2313 .loc 1 2773 3 view .LVU690 +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2314 .loc 1 2777 3 view .LVU691 +2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 238 + + + 2315 .loc 1 2780 3 view .LVU692 +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2316 .loc 1 2786 5 view .LVU693 +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2317 .loc 1 2790 3 view .LVU694 +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2318 .loc 1 2790 3 view .LVU695 + 2319 0008 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 2320 000c 012B cmp r3, #1 + 2321 000e 00F01E82 beq .L209 + 2322 0012 0446 mov r4, r0 + 2323 0014 0D46 mov r5, r1 +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2324 .loc 1 2790 3 discriminator 2 view .LVU696 + 2325 0016 0123 movs r3, #1 + 2326 0018 80F85830 strb r3, [r0, #88] +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2327 .loc 1 2790 3 discriminator 2 view .LVU697 +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2328 .loc 1 2797 3 discriminator 2 view .LVU698 +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2329 .loc 1 2797 7 is_stmt 0 discriminator 2 view .LVU699 + 2330 001c 0068 ldr r0, [r0] + 2331 .LVL169: + 2332 .LBB384: + 2333 .LBI384: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2334 .loc 2 6851 26 is_stmt 1 discriminator 2 view .LVU700 + 2335 .LBB385: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2336 .loc 2 6853 3 discriminator 2 view .LVU701 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2337 .loc 2 6853 12 is_stmt 0 discriminator 2 view .LVU702 + 2338 001e 8368 ldr r3, [r0, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2339 .loc 2 6853 74 discriminator 2 view .LVU703 + 2340 0020 13F0040F tst r3, #4 + 2341 0024 09D0 beq .L154 + 2342 .LVL170: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2343 .loc 2 6853 74 discriminator 2 view .LVU704 + 2344 .LBE385: + 2345 .LBE384: +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2346 .loc 1 2957 5 is_stmt 1 view .LVU705 + 2347 0026 E36D ldr r3, [r4, #92] + 2348 0028 43F02003 orr r3, r3, #32 + 2349 002c E365 str r3, [r4, #92] +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2350 .loc 1 2959 5 view .LVU706 + 2351 .LVL171: +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2352 .loc 1 2959 20 is_stmt 0 view .LVU707 + 2353 002e 0120 movs r0, #1 + 2354 .LVL172: + 2355 .L155: +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 239 + + + 2356 .loc 1 2963 3 is_stmt 1 view .LVU708 +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2357 .loc 1 2963 3 view .LVU709 + 2358 0030 0023 movs r3, #0 + 2359 0032 84F85830 strb r3, [r4, #88] +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2360 .loc 1 2963 3 view .LVU710 +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2361 .loc 1 2966 3 view .LVU711 + 2362 .LVL173: + 2363 .L153: +2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2364 .loc 1 2967 1 is_stmt 0 view .LVU712 + 2365 0036 03B0 add sp, sp, #12 + 2366 .LCFI17: + 2367 .cfi_remember_state + 2368 .cfi_def_cfa_offset 20 + 2369 @ sp needed + 2370 0038 F0BD pop {r4, r5, r6, r7, pc} + 2371 .LVL174: + 2372 .L154: + 2373 .LCFI18: + 2374 .cfi_restore_state +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2375 .loc 1 2800 5 is_stmt 1 view .LVU713 + 2376 003a 0A68 ldr r2, [r1] + 2377 003c 4968 ldr r1, [r1, #4] + 2378 .LVL175: +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2379 .loc 1 2800 5 is_stmt 0 view .LVU714 + 2380 003e FFF7FEFF bl LL_ADC_REG_SetSequencerRanks + 2381 .LVL176: +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 2382 .loc 1 2807 5 is_stmt 1 view .LVU715 +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 2383 .loc 1 2807 46 is_stmt 0 view .LVU716 + 2384 0042 2068 ldr r0, [r4] + 2385 .LVL177: + 2386 .LBB386: + 2387 .LBI386: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2388 .loc 2 6851 26 is_stmt 1 view .LVU717 + 2389 .LBB387: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2390 .loc 2 6853 3 view .LVU718 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2391 .loc 2 6853 12 is_stmt 0 view .LVU719 + 2392 0044 8368 ldr r3, [r0, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2393 .loc 2 6853 74 view .LVU720 + 2394 0046 13F00403 ands r3, r3, #4 + 2395 004a 00D0 beq .L156 + 2396 004c 0123 movs r3, #1 + 2397 .L156: + 2398 .LVL178: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2399 .loc 2 6853 74 view .LVU721 + ARM GAS /tmp/ccICigVb.s page 240 + + + 2400 .LBE387: + 2401 .LBE386: +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 2402 .loc 1 2808 5 is_stmt 1 view .LVU722 + 2403 .LBB388: + 2404 .LBI388: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2405 .loc 2 7076 26 view .LVU723 + 2406 .LBB389: + 2407 .loc 2 7078 3 view .LVU724 + 2408 .loc 2 7078 12 is_stmt 0 view .LVU725 + 2409 004e 8668 ldr r6, [r0, #8] + 2410 .loc 2 7078 76 view .LVU726 + 2411 0050 16F00806 ands r6, r6, #8 + 2412 0054 00D0 beq .L157 + 2413 0056 0126 movs r6, #1 + 2414 .L157: + 2415 .LVL179: + 2416 .loc 2 7078 76 view .LVU727 + 2417 .LBE389: + 2418 .LBE388: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 2419 .loc 1 2809 5 is_stmt 1 view .LVU728 +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 2420 .loc 1 2809 8 is_stmt 0 view .LVU729 + 2421 0058 002B cmp r3, #0 + 2422 005a 3ED1 bne .L158 +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 2423 .loc 1 2810 9 view .LVU730 + 2424 005c 002E cmp r6, #0 + 2425 005e 3CD1 bne .L158 +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2426 .loc 1 2814 7 is_stmt 1 view .LVU731 +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2427 .loc 1 2814 18 is_stmt 0 view .LVU732 + 2428 0060 AA68 ldr r2, [r5, #8] +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2429 .loc 1 2814 10 view .LVU733 + 2430 0062 B2F1004F cmp r2, #-2147483648 + 2431 0066 6BD0 beq .L228 +2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2432 .loc 1 2825 9 is_stmt 1 view .LVU734 + 2433 0068 2968 ldr r1, [r5] + 2434 006a FFF7FEFF bl LL_ADC_SetChannelSamplingTime + 2435 .LVL180: +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2436 .loc 1 2828 9 view .LVU735 + 2437 006e 2268 ldr r2, [r4] + 2438 .LVL181: + 2439 .LBB390: + 2440 .LBI390: +3560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2441 .loc 2 3560 22 view .LVU736 + 2442 .LBB391: +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2443 .loc 2 3562 3 view .LVU737 + 2444 0070 5369 ldr r3, [r2, #20] + ARM GAS /tmp/ccICigVb.s page 241 + + + 2445 0072 23F00043 bic r3, r3, #-2147483648 + 2446 0076 5361 str r3, [r2, #20] + 2447 .LVL182: + 2448 .L160: +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2449 .loc 2 3562 3 is_stmt 0 view .LVU738 + 2450 .LBE391: + 2451 .LBE390: +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2452 .loc 1 2835 7 is_stmt 1 view .LVU739 +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2453 .loc 1 2835 26 is_stmt 0 view .LVU740 + 2454 0078 6969 ldr r1, [r5, #20] + 2455 007a 2268 ldr r2, [r4] + 2456 007c D368 ldr r3, [r2, #12] + 2457 007e C3F3C103 ubfx r3, r3, #3, #2 + 2458 0082 5B00 lsls r3, r3, #1 +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2459 .loc 1 2835 24 view .LVU741 + 2460 0084 9940 lsls r1, r1, r3 + 2461 .LVL183: +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2462 .loc 1 2837 7 is_stmt 1 view .LVU742 +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2463 .loc 1 2837 18 is_stmt 0 view .LVU743 + 2464 0086 2869 ldr r0, [r5, #16] +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2465 .loc 1 2837 10 view .LVU744 + 2466 0088 0428 cmp r0, #4 + 2467 008a 66D0 beq .L161 +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2468 .loc 1 2840 9 is_stmt 1 view .LVU745 + 2469 .LVL184: + 2470 .LBB392: + 2471 .LBI392: +3220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2472 .loc 2 3220 22 view .LVU746 + 2473 .LBB393: +3222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2474 .loc 2 3222 3 view .LVU747 +3222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2475 .loc 2 3222 25 is_stmt 0 view .LVU748 + 2476 008c 6032 adds r2, r2, #96 + 2477 .LVL185: +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + 2478 .loc 2 3224 3 is_stmt 1 view .LVU749 + 2479 008e 52F82070 ldr r7, [r2, r0, lsl #2] + 2480 0092 A84B ldr r3, .L239 + 2481 0094 3B40 ands r3, r3, r7 + 2482 0096 2F68 ldr r7, [r5] + 2483 0098 07F0F84C and ip, r7, #2080374784 + 2484 009c 41EA0C01 orr r1, r1, ip + 2485 .LVL186: +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + 2486 .loc 2 3224 3 is_stmt 0 view .LVU750 + 2487 00a0 0B43 orrs r3, r3, r1 + 2488 00a2 43F00043 orr r3, r3, #-2147483648 + ARM GAS /tmp/ccICigVb.s page 242 + + + 2489 00a6 42F82030 str r3, [r2, r0, lsl #2] + 2490 .LVL187: +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + 2491 .loc 2 3224 3 view .LVU751 + 2492 .LBE393: + 2493 .LBE392: +2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(sConfig->OffsetSaturation)); + 2494 .loc 1 2842 9 is_stmt 1 view .LVU752 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Set ADC selected offset sign & saturation */ + 2495 .loc 1 2843 9 view .LVU753 +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_SetOffsetSaturation(hadc->Instance, sConfig->OffsetNumber, (sConfig->OffsetSaturatio + 2496 .loc 1 2845 9 view .LVU754 + 2497 00aa 2368 ldr r3, [r4] + 2498 00ac 2869 ldr r0, [r5, #16] + 2499 00ae AA69 ldr r2, [r5, #24] + 2500 .LVL188: + 2501 .LBB394: + 2502 .LBI394: +3417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2503 .loc 2 3417 22 view .LVU755 + 2504 .LBB395: +3419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2505 .loc 2 3419 3 view .LVU756 +3419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2506 .loc 2 3419 25 is_stmt 0 view .LVU757 + 2507 00b0 6033 adds r3, r3, #96 + 2508 .LVL189: +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, + 2509 .loc 2 3421 3 is_stmt 1 view .LVU758 + 2510 00b2 53F82010 ldr r1, [r3, r0, lsl #2] + 2511 00b6 21F08071 bic r1, r1, #16777216 + 2512 00ba 0A43 orrs r2, r2, r1 + 2513 .LVL190: +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, + 2514 .loc 2 3421 3 is_stmt 0 view .LVU759 + 2515 00bc 43F82020 str r2, [r3, r0, lsl #2] + 2516 .LVL191: +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, + 2517 .loc 2 3421 3 view .LVU760 + 2518 .LBE395: + 2519 .LBE394: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2520 .loc 1 2846 9 is_stmt 1 view .LVU761 + 2521 00c0 2368 ldr r3, [r4] + 2522 00c2 2969 ldr r1, [r5, #16] +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2523 .loc 1 2846 83 is_stmt 0 view .LVU762 + 2524 00c4 2A7F ldrb r2, [r5, #28] @ zero_extendqisi2 +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2525 .loc 1 2846 9 view .LVU763 + 2526 00c6 012A cmp r2, #1 + 2527 00c8 44D0 beq .L229 + 2528 .LVL192: + 2529 .L162: + 2530 .LBB396: + 2531 .LBI396: +3472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/ccICigVb.s page 243 + + + 2532 .loc 2 3472 22 is_stmt 1 discriminator 4 view .LVU764 + 2533 .LBB397: +3474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2534 .loc 2 3474 3 discriminator 4 view .LVU765 +3474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2535 .loc 2 3474 25 is_stmt 0 discriminator 4 view .LVU766 + 2536 00ca 6033 adds r3, r3, #96 + 2537 .LVL193: +3476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_SATEN, + 2538 .loc 2 3476 3 is_stmt 1 discriminator 4 view .LVU767 + 2539 00cc 53F82120 ldr r2, [r3, r1, lsl #2] + 2540 00d0 22F00072 bic r2, r2, #33554432 + 2541 00d4 3243 orrs r2, r2, r6 + 2542 00d6 43F82120 str r2, [r3, r1, lsl #2] + 2543 .LVL194: + 2544 .L158: +3476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_SATEN, + 2545 .loc 2 3476 3 is_stmt 0 discriminator 4 view .LVU768 + 2546 .LBE397: + 2547 .LBE396: +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2548 .loc 1 2878 5 is_stmt 1 view .LVU769 +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2549 .loc 1 2878 9 is_stmt 0 view .LVU770 + 2550 00da 2368 ldr r3, [r4] + 2551 .LVL195: + 2552 .LBB398: + 2553 .LBI398: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2554 .loc 2 6729 26 is_stmt 1 view .LVU771 + 2555 .LBB399: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2556 .loc 2 6731 3 view .LVU772 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2557 .loc 2 6731 12 is_stmt 0 view .LVU773 + 2558 00dc 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2559 .loc 2 6731 68 view .LVU774 + 2560 00de 12F0010F tst r2, #1 + 2561 00e2 12D1 bne .L178 + 2562 .LVL196: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2563 .loc 2 6731 68 view .LVU775 + 2564 .LBE399: + 2565 .LBE398: +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2566 .loc 1 2881 7 is_stmt 1 view .LVU776 + 2567 00e4 2A68 ldr r2, [r5] + 2568 00e6 E868 ldr r0, [r5, #12] + 2569 .LVL197: + 2570 .LBB400: + 2571 .LBI400: +5495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2572 .loc 2 5495 22 view .LVU777 + 2573 .LBB401: +5501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2574 .loc 2 5501 3 view .LVU778 + ARM GAS /tmp/ccICigVb.s page 244 + + +5501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2575 .loc 2 5501 6 is_stmt 0 view .LVU779 + 2576 00e8 9349 ldr r1, .L239+4 + 2577 00ea 8842 cmp r0, r1 + 2578 00ec 00F09C80 beq .L230 +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 2579 .loc 2 5508 5 is_stmt 1 view .LVU780 + 2580 00f0 D3F8B010 ldr r1, [r3, #176] + 2581 00f4 C2F31202 ubfx r2, r2, #0, #19 + 2582 .LVL198: +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 2583 .loc 2 5508 5 is_stmt 0 view .LVU781 + 2584 00f8 21EA0202 bic r2, r1, r2 + 2585 00fc C3F8B020 str r2, [r3, #176] + 2586 .LVL199: + 2587 .L180: +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 2588 .loc 2 5508 5 view .LVU782 + 2589 .LBE401: + 2590 .LBE400: +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2591 .loc 1 2884 7 is_stmt 1 view .LVU783 +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2592 .loc 1 2884 18 is_stmt 0 view .LVU784 + 2593 0100 EA68 ldr r2, [r5, #12] +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2594 .loc 1 2884 10 view .LVU785 + 2595 0102 8D4B ldr r3, .L239+4 + 2596 0104 9A42 cmp r2, r3 + 2597 0106 00F09780 beq .L231 + 2598 .L178: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2599 .loc 1 2901 5 is_stmt 1 view .LVU786 +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2600 .loc 1 2901 9 is_stmt 0 view .LVU787 + 2601 010a 2B68 ldr r3, [r5] +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2602 .loc 1 2901 8 view .LVU788 + 2603 010c 8B4A ldr r2, .L239+8 + 2604 010e 1342 tst r3, r2 + 2605 0110 00F09581 beq .L221 +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2606 .loc 1 2903 7 is_stmt 1 view .LVU789 + 2607 .LVL200: + 2608 .LBB403: + 2609 .LBI403: +2877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2610 .loc 2 2877 26 view .LVU790 + 2611 .LBB404: +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2612 .loc 2 2879 3 view .LVU791 +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2613 .loc 2 2879 21 is_stmt 0 view .LVU792 + 2614 0114 8A4A ldr r2, .L239+12 + 2615 0116 9268 ldr r2, [r2, #8] +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2616 .loc 2 2879 10 view .LVU793 + ARM GAS /tmp/ccICigVb.s page 245 + + + 2617 0118 02F0E071 and r1, r2, #29360128 + 2618 .LVL201: +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2619 .loc 2 2879 10 view .LVU794 + 2620 .LBE404: + 2621 .LBE403: +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) + 2622 .loc 1 2907 7 is_stmt 1 view .LVU795 +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) + 2623 .loc 1 2907 10 is_stmt 0 view .LVU796 + 2624 011c 8948 ldr r0, .L239+16 + 2625 011e 8342 cmp r3, r0 + 2626 0120 00F04481 beq .L204 +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) + 2627 .loc 1 2907 62 discriminator 1 view .LVU797 + 2628 0124 8848 ldr r0, .L239+20 + 2629 0126 8342 cmp r3, r0 + 2630 0128 00F04081 beq .L204 + 2631 .L205: +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2632 .loc 1 2927 12 is_stmt 1 view .LVU798 +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2633 .loc 1 2927 15 is_stmt 0 view .LVU799 + 2634 012c 8748 ldr r0, .L239+24 + 2635 012e 8342 cmp r3, r0 + 2636 0130 00F06281 beq .L232 + 2637 .L208: +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) + 2638 .loc 1 2935 12 is_stmt 1 view .LVU800 +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) + 2639 .loc 1 2935 15 is_stmt 0 view .LVU801 + 2640 0134 8648 ldr r0, .L239+28 + 2641 0136 8342 cmp r3, r0 + 2642 0138 00F07081 beq .L233 +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 2643 .loc 1 2760 21 view .LVU802 + 2644 013c 0020 movs r0, #0 + 2645 013e 77E7 b .L155 + 2646 .LVL202: + 2647 .L228: +2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 2648 .loc 1 2817 9 is_stmt 1 view .LVU803 + 2649 0140 0022 movs r2, #0 + 2650 0142 2968 ldr r1, [r5] + 2651 0144 FFF7FEFF bl LL_ADC_SetChannelSamplingTime + 2652 .LVL203: +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2653 .loc 1 2820 9 view .LVU804 + 2654 0148 2268 ldr r2, [r4] + 2655 .LVL204: + 2656 .LBB405: + 2657 .LBI405: +3560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2658 .loc 2 3560 22 view .LVU805 + 2659 .LBB406: +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2660 .loc 2 3562 3 view .LVU806 + ARM GAS /tmp/ccICigVb.s page 246 + + + 2661 014a 5369 ldr r3, [r2, #20] + 2662 014c 43F00043 orr r3, r3, #-2147483648 + 2663 0150 5361 str r3, [r2, #20] +3563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2664 .loc 2 3563 1 is_stmt 0 view .LVU807 + 2665 0152 91E7 b .L160 + 2666 .LVL205: + 2667 .L229: +3563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2668 .loc 2 3563 1 view .LVU808 + 2669 .LBE406: + 2670 .LBE405: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2671 .loc 1 2846 9 view .LVU809 + 2672 0154 4FF00076 mov r6, #33554432 + 2673 .LVL206: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2674 .loc 1 2846 9 view .LVU810 + 2675 0158 B7E7 b .L162 + 2676 .LVL207: + 2677 .L161: +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2678 .loc 1 2852 9 is_stmt 1 view .LVU811 + 2679 .LBB407: + 2680 .LBI407: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2681 .loc 2 3303 26 view .LVU812 + 2682 .LBB408: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2683 .loc 2 3305 3 view .LVU813 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2684 .loc 2 3307 3 view .LVU814 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2685 .loc 2 3307 10 is_stmt 0 view .LVU815 + 2686 015a 136E ldr r3, [r2, #96] + 2687 .LVL208: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2688 .loc 2 3307 10 view .LVU816 + 2689 .LBE408: + 2690 .LBE407: + 2691 .LBB409: + 2692 .LBI409: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2693 .loc 2 3303 26 is_stmt 1 view .LVU817 + 2694 .LBB410: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2695 .loc 2 3305 3 view .LVU818 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2696 .loc 2 3307 3 view .LVU819 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2697 .loc 2 3307 10 is_stmt 0 view .LVU820 + 2698 015c 116E ldr r1, [r2, #96] + 2699 .LVL209: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2700 .loc 2 3307 10 view .LVU821 + 2701 .LBE410: + 2702 .LBE409: + ARM GAS /tmp/ccICigVb.s page 247 + + +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2703 .loc 1 2852 13 view .LVU822 + 2704 015e C1F38461 ubfx r1, r1, #26, #5 +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2705 .loc 1 2853 16 view .LVU823 + 2706 0162 2B68 ldr r3, [r5] + 2707 0164 C3F31200 ubfx r0, r3, #0, #19 + 2708 0168 78BB cbnz r0, .L163 +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2709 .loc 1 2853 16 discriminator 1 view .LVU824 + 2710 016a C3F38463 ubfx r3, r3, #26, #5 + 2711 .L164: +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2712 .loc 1 2852 12 view .LVU825 + 2713 016e 9942 cmp r1, r3 + 2714 0170 33D0 beq .L234 + 2715 .L166: +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2716 .loc 1 2857 9 is_stmt 1 view .LVU826 +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2717 .loc 1 2857 13 is_stmt 0 view .LVU827 + 2718 0172 2168 ldr r1, [r4] + 2719 .LVL210: + 2720 .LBB411: + 2721 .LBI411: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2722 .loc 2 3303 26 is_stmt 1 view .LVU828 + 2723 .LBB412: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2724 .loc 2 3305 3 view .LVU829 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2725 .loc 2 3307 3 view .LVU830 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2726 .loc 2 3307 10 is_stmt 0 view .LVU831 + 2727 0174 4B6E ldr r3, [r1, #100] + 2728 .LVL211: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2729 .loc 2 3307 10 view .LVU832 + 2730 .LBE412: + 2731 .LBE411: + 2732 .LBB413: + 2733 .LBI413: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2734 .loc 2 3303 26 is_stmt 1 view .LVU833 + 2735 .LBB414: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2736 .loc 2 3305 3 view .LVU834 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2737 .loc 2 3307 3 view .LVU835 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2738 .loc 2 3307 10 is_stmt 0 view .LVU836 + 2739 0176 4A6E ldr r2, [r1, #100] + 2740 .LVL212: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2741 .loc 2 3307 10 view .LVU837 + 2742 .LBE414: + 2743 .LBE413: + ARM GAS /tmp/ccICigVb.s page 248 + + +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2744 .loc 1 2857 13 view .LVU838 + 2745 0178 C2F38462 ubfx r2, r2, #26, #5 +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2746 .loc 1 2858 16 view .LVU839 + 2747 017c 2B68 ldr r3, [r5] + 2748 017e C3F31200 ubfx r0, r3, #0, #19 + 2749 0182 78BB cbnz r0, .L167 +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2750 .loc 1 2858 16 discriminator 1 view .LVU840 + 2751 0184 C3F38463 ubfx r3, r3, #26, #5 + 2752 .L168: +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2753 .loc 1 2857 12 view .LVU841 + 2754 0188 9A42 cmp r2, r3 + 2755 018a 33D0 beq .L235 + 2756 .L170: +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2757 .loc 1 2862 9 is_stmt 1 view .LVU842 +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2758 .loc 1 2862 13 is_stmt 0 view .LVU843 + 2759 018c 2168 ldr r1, [r4] + 2760 .LVL213: + 2761 .LBB415: + 2762 .LBI415: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2763 .loc 2 3303 26 is_stmt 1 view .LVU844 + 2764 .LBB416: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2765 .loc 2 3305 3 view .LVU845 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2766 .loc 2 3307 3 view .LVU846 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2767 .loc 2 3307 10 is_stmt 0 view .LVU847 + 2768 018e 8B6E ldr r3, [r1, #104] + 2769 .LVL214: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2770 .loc 2 3307 10 view .LVU848 + 2771 .LBE416: + 2772 .LBE415: + 2773 .LBB417: + 2774 .LBI417: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2775 .loc 2 3303 26 is_stmt 1 view .LVU849 + 2776 .LBB418: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2777 .loc 2 3305 3 view .LVU850 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2778 .loc 2 3307 3 view .LVU851 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2779 .loc 2 3307 10 is_stmt 0 view .LVU852 + 2780 0190 8A6E ldr r2, [r1, #104] + 2781 .LVL215: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2782 .loc 2 3307 10 view .LVU853 + 2783 .LBE418: + 2784 .LBE417: + ARM GAS /tmp/ccICigVb.s page 249 + + +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2785 .loc 1 2862 13 view .LVU854 + 2786 0192 C2F38462 ubfx r2, r2, #26, #5 +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2787 .loc 1 2863 16 view .LVU855 + 2788 0196 2B68 ldr r3, [r5] + 2789 0198 C3F31200 ubfx r0, r3, #0, #19 + 2790 019c 78BB cbnz r0, .L171 +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2791 .loc 1 2863 16 discriminator 1 view .LVU856 + 2792 019e C3F38463 ubfx r3, r3, #26, #5 + 2793 .L172: +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2794 .loc 1 2862 12 view .LVU857 + 2795 01a2 9A42 cmp r2, r3 + 2796 01a4 33D0 beq .L236 + 2797 .L174: +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2798 .loc 1 2867 9 is_stmt 1 view .LVU858 +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2799 .loc 1 2867 13 is_stmt 0 view .LVU859 + 2800 01a6 2168 ldr r1, [r4] + 2801 .LVL216: + 2802 .LBB419: + 2803 .LBI419: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2804 .loc 2 3303 26 is_stmt 1 view .LVU860 + 2805 .LBB420: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2806 .loc 2 3305 3 view .LVU861 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2807 .loc 2 3307 3 view .LVU862 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2808 .loc 2 3307 10 is_stmt 0 view .LVU863 + 2809 01a8 CB6E ldr r3, [r1, #108] + 2810 .LVL217: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2811 .loc 2 3307 10 view .LVU864 + 2812 .LBE420: + 2813 .LBE419: + 2814 .LBB421: + 2815 .LBI421: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2816 .loc 2 3303 26 is_stmt 1 view .LVU865 + 2817 .LBB422: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2818 .loc 2 3305 3 view .LVU866 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2819 .loc 2 3307 3 view .LVU867 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2820 .loc 2 3307 10 is_stmt 0 view .LVU868 + 2821 01aa CA6E ldr r2, [r1, #108] + 2822 .LVL218: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2823 .loc 2 3307 10 view .LVU869 + 2824 .LBE422: + 2825 .LBE421: + ARM GAS /tmp/ccICigVb.s page 250 + + +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2826 .loc 1 2867 13 view .LVU870 + 2827 01ac C2F38462 ubfx r2, r2, #26, #5 +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2828 .loc 1 2868 16 view .LVU871 + 2829 01b0 2B68 ldr r3, [r5] + 2830 01b2 C3F31200 ubfx r0, r3, #0, #19 + 2831 01b6 78BB cbnz r0, .L175 +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 2832 .loc 1 2868 16 discriminator 1 view .LVU872 + 2833 01b8 C3F38463 ubfx r3, r3, #26, #5 + 2834 .L176: +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfig->Channel)) + 2835 .loc 1 2867 12 view .LVU873 + 2836 01bc 9A42 cmp r2, r3 + 2837 01be 8CD1 bne .L158 +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2838 .loc 1 2870 11 is_stmt 1 view .LVU874 + 2839 .LVL219: + 2840 .LBB423: + 2841 .LBI423: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2842 .loc 2 3362 22 view .LVU875 + 2843 .LBB424: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2844 .loc 2 3364 3 view .LVU876 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 2845 .loc 2 3366 3 view .LVU877 + 2846 01c0 CB6E ldr r3, [r1, #108] + 2847 01c2 23F00043 bic r3, r3, #-2147483648 + 2848 01c6 CB66 str r3, [r1, #108] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2849 .loc 2 3369 1 is_stmt 0 view .LVU878 + 2850 01c8 87E7 b .L158 + 2851 .LVL220: + 2852 .L163: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2853 .loc 2 3369 1 view .LVU879 + 2854 .LBE424: + 2855 .LBE423: + 2856 .LBB425: + 2857 .LBI425: + 2858 .file 3 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + ARM GAS /tmp/ccICigVb.s page 251 + + + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + ARM GAS /tmp/ccICigVb.s page 252 + + + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + ARM GAS /tmp/ccICigVb.s page 253 + + + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + ARM GAS /tmp/ccICigVb.s page 254 + + + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccICigVb.s page 255 + + + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + ARM GAS /tmp/ccICigVb.s page 256 + + + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + ARM GAS /tmp/ccICigVb.s page 257 + + + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + ARM GAS /tmp/ccICigVb.s page 258 + + + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + ARM GAS /tmp/ccICigVb.s page 259 + + + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + ARM GAS /tmp/ccICigVb.s page 260 + + + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccICigVb.s page 261 + + + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccICigVb.s page 262 + + + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + ARM GAS /tmp/ccICigVb.s page 263 + + + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + ARM GAS /tmp/ccICigVb.s page 264 + + + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + ARM GAS /tmp/ccICigVb.s page 265 + + + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + ARM GAS /tmp/ccICigVb.s page 266 + + + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccICigVb.s page 267 + + + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 937:Drivers/CMSIS/Include/cmsis_gcc.h **** + 938:Drivers/CMSIS/Include/cmsis_gcc.h **** + 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier + 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. + 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. + 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) + 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); + 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 948:Drivers/CMSIS/Include/cmsis_gcc.h **** + 949:Drivers/CMSIS/Include/cmsis_gcc.h **** + 950:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier + 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before + 953:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. + 954:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 955:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) + 956:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 957:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); + 958:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 959:Drivers/CMSIS/Include/cmsis_gcc.h **** + 960:Drivers/CMSIS/Include/cmsis_gcc.h **** + 961:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 962:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) + 963:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 + 964:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 965:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 966:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 967:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) + 968:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 969:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + 970:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); + 971:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 972:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 973:Drivers/CMSIS/Include/cmsis_gcc.h **** + 974:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 975:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 976:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 977:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 978:Drivers/CMSIS/Include/cmsis_gcc.h **** + 979:Drivers/CMSIS/Include/cmsis_gcc.h **** + 980:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 981:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 982:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes + 983:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + ARM GAS /tmp/ccICigVb.s page 268 + + + 984:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 985:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 986:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) + 987:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 988:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 989:Drivers/CMSIS/Include/cmsis_gcc.h **** + 990:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 991:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 992:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 993:Drivers/CMSIS/Include/cmsis_gcc.h **** + 994:Drivers/CMSIS/Include/cmsis_gcc.h **** + 995:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 996:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 997:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam + 998:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 999:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1000:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1001:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +1002:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1003:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1004:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); +1005:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1006:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; +1007:Drivers/CMSIS/Include/cmsis_gcc.h **** +1008:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); +1009:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1010:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1011:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1012:Drivers/CMSIS/Include/cmsis_gcc.h **** +1013:Drivers/CMSIS/Include/cmsis_gcc.h **** +1014:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1015:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) +1016:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v +1017:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate +1018:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate +1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value +1020:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1021:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +1022:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1023:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; +1024:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) +1025:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1026:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; +1027:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1028:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); +1029:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1030:Drivers/CMSIS/Include/cmsis_gcc.h **** +1031:Drivers/CMSIS/Include/cmsis_gcc.h **** +1032:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1033:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint +1034:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. +1035:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula +1036:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. +1037:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break +1038:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1039:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) +1040:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccICigVb.s page 269 + + +1041:Drivers/CMSIS/Include/cmsis_gcc.h **** +1042:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value +1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. +1045:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse +1046:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1047:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) + 2859 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU880 + 2860 .LBB426: +1049:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 2861 .loc 3 1050 3 discriminator 2 view .LVU881 +1051:Drivers/CMSIS/Include/cmsis_gcc.h **** +1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1053:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1054:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 2862 .loc 3 1055 4 discriminator 2 view .LVU882 + 2863 .syntax unified + 2864 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2865 01ca 93FAA3F3 rbit r3, r3 + 2866 @ 0 "" 2 + 2867 .LVL221: +1056:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1057:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ +1058:Drivers/CMSIS/Include/cmsis_gcc.h **** +1059:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ +1060:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) +1061:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1062:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; +1063:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; +1064:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; +1065:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1066:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ +1067:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 2868 .loc 3 1068 3 discriminator 2 view .LVU883 + 2869 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU884 + 2870 .thumb + 2871 .syntax unified + 2872 .LBE426: + 2873 .LBE425: + 2874 .LBB427: + 2875 .LBI427: +1069:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1070:Drivers/CMSIS/Include/cmsis_gcc.h **** +1071:Drivers/CMSIS/Include/cmsis_gcc.h **** +1072:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1073:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros +1074:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. +1075:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros +1076:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value +1077:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) + 2876 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU885 + 2877 .LBB428: + ARM GAS /tmp/ccICigVb.s page 270 + + +1079:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1080:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Even though __builtin_clz produces a CLZ instruction on ARM, formally +1081:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_clz(0) is undefined behaviour, so handle this case specially. +1082:Drivers/CMSIS/Include/cmsis_gcc.h **** This guarantees ARM-compatible results if happening to compile on a non-ARM +1083:Drivers/CMSIS/Include/cmsis_gcc.h **** target, and ensures the compiler doesn't decide to activate any +1084:Drivers/CMSIS/Include/cmsis_gcc.h **** optimisations using the logic "value was passed to __builtin_clz, so it +1085:Drivers/CMSIS/Include/cmsis_gcc.h **** is non-zero". +1086:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a +1087:Drivers/CMSIS/Include/cmsis_gcc.h **** single CLZ instruction. +1088:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** if (value == 0U) + 2878 .loc 3 1089 3 discriminator 2 view .LVU886 + 2879 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU887 + 2880 01ce 13B1 cbz r3, .L210 +1090:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** return 32U; +1092:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1093:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_clz(value); + 2881 .loc 3 1093 3 is_stmt 1 view .LVU888 + 2882 .loc 3 1093 10 is_stmt 0 view .LVU889 + 2883 01d0 B3FA83F3 clz r3, r3 + 2884 .LVL222: + 2885 .loc 3 1093 10 view .LVU890 + 2886 01d4 CBE7 b .L164 + 2887 .LVL223: + 2888 .L210: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2889 .loc 3 1091 12 view .LVU891 + 2890 01d6 2023 movs r3, #32 + 2891 .LVL224: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2892 .loc 3 1091 12 view .LVU892 + 2893 01d8 C9E7 b .L164 + 2894 .L234: + 2895 .LBE428: + 2896 .LBE427: +2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2897 .loc 1 2855 11 is_stmt 1 view .LVU893 + 2898 .LVL225: + 2899 .LBB429: + 2900 .LBI429: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2901 .loc 2 3362 22 view .LVU894 + 2902 .LBB430: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2903 .loc 2 3364 3 view .LVU895 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 2904 .loc 2 3366 3 view .LVU896 + 2905 01da 136E ldr r3, [r2, #96] + 2906 01dc 23F00043 bic r3, r3, #-2147483648 + 2907 01e0 1366 str r3, [r2, #96] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2908 .loc 2 3369 1 is_stmt 0 view .LVU897 + 2909 01e2 C6E7 b .L166 + 2910 .LVL226: + 2911 .L167: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/ccICigVb.s page 271 + + + 2912 .loc 2 3369 1 view .LVU898 + 2913 .LBE430: + 2914 .LBE429: + 2915 .LBB431: + 2916 .LBI431: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2917 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU899 + 2918 .LBB432: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2919 .loc 3 1050 3 discriminator 2 view .LVU900 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 2920 .loc 3 1055 4 discriminator 2 view .LVU901 + 2921 .syntax unified + 2922 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2923 01e4 93FAA3F3 rbit r3, r3 + 2924 @ 0 "" 2 + 2925 .LVL227: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2926 .loc 3 1068 3 discriminator 2 view .LVU902 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2927 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU903 + 2928 .thumb + 2929 .syntax unified + 2930 .LBE432: + 2931 .LBE431: + 2932 .LBB433: + 2933 .LBI433: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2934 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU904 + 2935 .LBB434: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2936 .loc 3 1089 3 discriminator 2 view .LVU905 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2937 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU906 + 2938 01e8 13B1 cbz r3, .L211 + 2939 .loc 3 1093 3 is_stmt 1 view .LVU907 + 2940 .loc 3 1093 10 is_stmt 0 view .LVU908 + 2941 01ea B3FA83F3 clz r3, r3 + 2942 .LVL228: + 2943 .loc 3 1093 10 view .LVU909 + 2944 01ee CBE7 b .L168 + 2945 .LVL229: + 2946 .L211: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2947 .loc 3 1091 12 view .LVU910 + 2948 01f0 2023 movs r3, #32 + 2949 .LVL230: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2950 .loc 3 1091 12 view .LVU911 + 2951 01f2 C9E7 b .L168 + 2952 .L235: + 2953 .LBE434: + 2954 .LBE433: +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 2955 .loc 1 2860 11 is_stmt 1 view .LVU912 + 2956 .LVL231: + 2957 .LBB435: + ARM GAS /tmp/ccICigVb.s page 272 + + + 2958 .LBI435: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2959 .loc 2 3362 22 view .LVU913 + 2960 .LBB436: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2961 .loc 2 3364 3 view .LVU914 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 2962 .loc 2 3366 3 view .LVU915 + 2963 01f4 4B6E ldr r3, [r1, #100] + 2964 01f6 23F00043 bic r3, r3, #-2147483648 + 2965 01fa 4B66 str r3, [r1, #100] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2966 .loc 2 3369 1 is_stmt 0 view .LVU916 + 2967 01fc C6E7 b .L170 + 2968 .LVL232: + 2969 .L171: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 2970 .loc 2 3369 1 view .LVU917 + 2971 .LBE436: + 2972 .LBE435: + 2973 .LBB437: + 2974 .LBI437: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2975 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU918 + 2976 .LBB438: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2977 .loc 3 1050 3 discriminator 2 view .LVU919 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 2978 .loc 3 1055 4 discriminator 2 view .LVU920 + 2979 .syntax unified + 2980 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2981 01fe 93FAA3F3 rbit r3, r3 + 2982 @ 0 "" 2 + 2983 .LVL233: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2984 .loc 3 1068 3 discriminator 2 view .LVU921 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2985 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU922 + 2986 .thumb + 2987 .syntax unified + 2988 .LBE438: + 2989 .LBE437: + 2990 .LBB439: + 2991 .LBI439: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2992 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU923 + 2993 .LBB440: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2994 .loc 3 1089 3 discriminator 2 view .LVU924 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2995 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU925 + 2996 0202 13B1 cbz r3, .L212 + 2997 .loc 3 1093 3 is_stmt 1 view .LVU926 + 2998 .loc 3 1093 10 is_stmt 0 view .LVU927 + 2999 0204 B3FA83F3 clz r3, r3 + 3000 .LVL234: + 3001 .loc 3 1093 10 view .LVU928 + ARM GAS /tmp/ccICigVb.s page 273 + + + 3002 0208 CBE7 b .L172 + 3003 .LVL235: + 3004 .L212: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3005 .loc 3 1091 12 view .LVU929 + 3006 020a 2023 movs r3, #32 + 3007 .LVL236: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3008 .loc 3 1091 12 view .LVU930 + 3009 020c C9E7 b .L172 + 3010 .L236: + 3011 .LBE440: + 3012 .LBE439: +2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 3013 .loc 1 2865 11 is_stmt 1 view .LVU931 + 3014 .LVL237: + 3015 .LBB441: + 3016 .LBI441: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3017 .loc 2 3362 22 view .LVU932 + 3018 .LBB442: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3019 .loc 2 3364 3 view .LVU933 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 3020 .loc 2 3366 3 view .LVU934 + 3021 020e 8B6E ldr r3, [r1, #104] + 3022 0210 23F00043 bic r3, r3, #-2147483648 + 3023 0214 8B66 str r3, [r1, #104] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3024 .loc 2 3369 1 is_stmt 0 view .LVU935 + 3025 0216 C6E7 b .L174 + 3026 .LVL238: + 3027 .L175: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3028 .loc 2 3369 1 view .LVU936 + 3029 .LBE442: + 3030 .LBE441: + 3031 .LBB443: + 3032 .LBI443: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3033 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU937 + 3034 .LBB444: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3035 .loc 3 1050 3 discriminator 2 view .LVU938 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3036 .loc 3 1055 4 discriminator 2 view .LVU939 + 3037 .syntax unified + 3038 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3039 0218 93FAA3F3 rbit r3, r3 + 3040 @ 0 "" 2 + 3041 .LVL239: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3042 .loc 3 1068 3 discriminator 2 view .LVU940 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3043 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU941 + 3044 .thumb + 3045 .syntax unified + ARM GAS /tmp/ccICigVb.s page 274 + + + 3046 .LBE444: + 3047 .LBE443: + 3048 .LBB445: + 3049 .LBI445: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3050 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU942 + 3051 .LBB446: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3052 .loc 3 1089 3 discriminator 2 view .LVU943 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3053 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU944 + 3054 021c 13B1 cbz r3, .L213 + 3055 .loc 3 1093 3 is_stmt 1 view .LVU945 + 3056 .loc 3 1093 10 is_stmt 0 view .LVU946 + 3057 021e B3FA83F3 clz r3, r3 + 3058 .LVL240: + 3059 .loc 3 1093 10 view .LVU947 + 3060 0222 CBE7 b .L176 + 3061 .LVL241: + 3062 .L213: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3063 .loc 3 1091 12 view .LVU948 + 3064 0224 2023 movs r3, #32 + 3065 .LVL242: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3066 .loc 3 1091 12 view .LVU949 + 3067 0226 C9E7 b .L176 + 3068 .LVL243: + 3069 .L230: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3070 .loc 3 1091 12 view .LVU950 + 3071 .LBE446: + 3072 .LBE445: + 3073 .LBB447: + 3074 .LBB402: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 3075 .loc 2 5503 5 is_stmt 1 view .LVU951 + 3076 0228 D3F8B010 ldr r1, [r3, #176] + 3077 022c C2F31202 ubfx r2, r2, #0, #19 + 3078 .LVL244: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 3079 .loc 2 5503 5 is_stmt 0 view .LVU952 + 3080 0230 0A43 orrs r2, r2, r1 + 3081 0232 C3F8B020 str r2, [r3, #176] + 3082 .LVL245: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 3083 .loc 2 5503 5 view .LVU953 + 3084 0236 63E7 b .L180 + 3085 .LVL246: + 3086 .L231: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 3087 .loc 2 5503 5 view .LVU954 + 3088 .LBE402: + 3089 .LBE447: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_T + 3090 .loc 1 2888 9 is_stmt 1 view .LVU955 + 3091 0238 2068 ldr r0, [r4] + ARM GAS /tmp/ccICigVb.s page 275 + + +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3092 .loc 1 2889 50 is_stmt 0 view .LVU956 + 3093 023a 2B68 ldr r3, [r5] + 3094 023c C3F31206 ubfx r6, r3, #0, #19 + 3095 0240 26BB cbnz r6, .L181 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3096 .loc 1 2889 50 discriminator 1 view .LVU957 + 3097 0242 9A0E lsrs r2, r3, #26 + 3098 0244 0132 adds r2, r2, #1 + 3099 0246 02F01F02 and r2, r2, #31 + 3100 024a 092A cmp r2, #9 + 3101 024c 8CBF ite hi + 3102 024e 0022 movhi r2, #0 + 3103 0250 0122 movls r2, #1 + 3104 .L182: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_T + 3105 .loc 1 2888 9 view .LVU958 + 3106 0252 002A cmp r2, #0 + 3107 0254 52D0 beq .L184 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3108 .loc 1 2889 50 view .LVU959 + 3109 0256 46BB cbnz r6, .L185 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3110 .loc 1 2889 50 discriminator 3 view .LVU960 + 3111 0258 990E lsrs r1, r3, #26 + 3112 025a 0131 adds r1, r1, #1 + 3113 025c 8906 lsls r1, r1, #26 + 3114 025e 01F0F841 and r1, r1, #2080374784 + 3115 .L186: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3116 .loc 1 2889 50 discriminator 6 view .LVU961 + 3117 0262 76BB cbnz r6, .L188 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3118 .loc 1 2889 50 discriminator 7 view .LVU962 + 3119 0264 9F0E lsrs r7, r3, #26 + 3120 0266 0137 adds r7, r7, #1 + 3121 0268 07F01F07 and r7, r7, #31 + 3122 026c 0122 movs r2, #1 + 3123 026e BA40 lsls r2, r2, r7 + 3124 .L189: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3125 .loc 1 2889 50 discriminator 10 view .LVU963 + 3126 0270 1143 orrs r1, r1, r2 + 3127 0272 AEBB cbnz r6, .L191 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3128 .loc 1 2889 50 discriminator 11 view .LVU964 + 3129 0274 9B0E lsrs r3, r3, #26 + 3130 0276 0133 adds r3, r3, #1 + 3131 0278 03F01F03 and r3, r3, #31 + 3132 027c 03EB4303 add r3, r3, r3, lsl #1 + 3133 0280 1B05 lsls r3, r3, #20 + 3134 .L192: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_T + 3135 .loc 1 2888 9 view .LVU965 + 3136 0282 1943 orrs r1, r1, r3 + 3137 .L194: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_T + ARM GAS /tmp/ccICigVb.s page 276 + + + 3138 .loc 1 2888 9 discriminator 1 view .LVU966 + 3139 0284 AA68 ldr r2, [r5, #8] + 3140 0286 FFF7FEFF bl LL_ADC_SetChannelSamplingTime + 3141 .LVL247: + 3142 028a 3EE7 b .L178 + 3143 .L181: + 3144 .LVL248: + 3145 .LBB448: + 3146 .LBI448: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3147 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU967 + 3148 .LBB449: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3149 .loc 3 1050 3 discriminator 2 view .LVU968 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3150 .loc 3 1055 4 discriminator 2 view .LVU969 + 3151 .syntax unified + 3152 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3153 028c 93FAA3F2 rbit r2, r3 + 3154 @ 0 "" 2 + 3155 .LVL249: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3156 .loc 3 1068 3 discriminator 2 view .LVU970 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3157 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU971 + 3158 .thumb + 3159 .syntax unified + 3160 .LBE449: + 3161 .LBE448: + 3162 .LBB450: + 3163 .LBI450: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3164 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU972 + 3165 .LBB451: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3166 .loc 3 1089 3 discriminator 2 view .LVU973 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3167 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU974 + 3168 0290 4AB1 cbz r2, .L214 + 3169 .loc 3 1093 3 is_stmt 1 view .LVU975 + 3170 .loc 3 1093 10 is_stmt 0 view .LVU976 + 3171 0292 B2FA82F2 clz r2, r2 + 3172 .LVL250: + 3173 .L183: + 3174 .loc 3 1093 10 view .LVU977 + 3175 .LBE451: + 3176 .LBE450: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3177 .loc 1 2889 50 view .LVU978 + 3178 0296 0132 adds r2, r2, #1 + 3179 0298 02F01F02 and r2, r2, #31 + 3180 029c 092A cmp r2, #9 + 3181 029e 8CBF ite hi + 3182 02a0 0022 movhi r2, #0 + 3183 02a2 0122 movls r2, #1 + 3184 02a4 D5E7 b .L182 + 3185 .LVL251: + ARM GAS /tmp/ccICigVb.s page 277 + + + 3186 .L214: + 3187 .LBB453: + 3188 .LBB452: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3189 .loc 3 1091 12 view .LVU979 + 3190 02a6 2022 movs r2, #32 + 3191 .LVL252: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3192 .loc 3 1091 12 view .LVU980 + 3193 02a8 F5E7 b .L183 + 3194 .LVL253: + 3195 .L185: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3196 .loc 3 1091 12 view .LVU981 + 3197 .LBE452: + 3198 .LBE453: + 3199 .LBB454: + 3200 .LBI454: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3201 .loc 3 1048 31 is_stmt 1 discriminator 4 view .LVU982 + 3202 .LBB455: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3203 .loc 3 1050 3 discriminator 4 view .LVU983 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3204 .loc 3 1055 4 discriminator 4 view .LVU984 + 3205 .syntax unified + 3206 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3207 02aa 93FAA3F1 rbit r1, r3 + 3208 @ 0 "" 2 + 3209 .LVL254: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3210 .loc 3 1068 3 discriminator 4 view .LVU985 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3211 .loc 3 1068 3 is_stmt 0 discriminator 4 view .LVU986 + 3212 .thumb + 3213 .syntax unified + 3214 .LBE455: + 3215 .LBE454: + 3216 .LBB456: + 3217 .LBI456: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3218 .loc 3 1078 30 is_stmt 1 discriminator 4 view .LVU987 + 3219 .LBB457: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3220 .loc 3 1089 3 discriminator 4 view .LVU988 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3221 .loc 3 1089 6 is_stmt 0 discriminator 4 view .LVU989 + 3222 02ae 31B1 cbz r1, .L215 + 3223 .loc 3 1093 3 is_stmt 1 view .LVU990 + 3224 .loc 3 1093 10 is_stmt 0 view .LVU991 + 3225 02b0 B1FA81F1 clz r1, r1 + 3226 .LVL255: + 3227 .L187: + 3228 .loc 3 1093 10 view .LVU992 + 3229 .LBE457: + 3230 .LBE456: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + ARM GAS /tmp/ccICigVb.s page 278 + + + 3231 .loc 1 2889 50 view .LVU993 + 3232 02b4 0131 adds r1, r1, #1 + 3233 02b6 8906 lsls r1, r1, #26 + 3234 02b8 01F0F841 and r1, r1, #2080374784 + 3235 02bc D1E7 b .L186 + 3236 .LVL256: + 3237 .L215: + 3238 .LBB459: + 3239 .LBB458: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3240 .loc 3 1091 12 view .LVU994 + 3241 02be 2021 movs r1, #32 + 3242 .LVL257: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3243 .loc 3 1091 12 view .LVU995 + 3244 02c0 F8E7 b .L187 + 3245 .LVL258: + 3246 .L188: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3247 .loc 3 1091 12 view .LVU996 + 3248 .LBE458: + 3249 .LBE459: + 3250 .LBB460: + 3251 .LBI460: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3252 .loc 3 1048 31 is_stmt 1 discriminator 8 view .LVU997 + 3253 .LBB461: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3254 .loc 3 1050 3 discriminator 8 view .LVU998 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3255 .loc 3 1055 4 discriminator 8 view .LVU999 + 3256 .syntax unified + 3257 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3258 02c2 93FAA3F2 rbit r2, r3 + 3259 @ 0 "" 2 + 3260 .LVL259: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3261 .loc 3 1068 3 discriminator 8 view .LVU1000 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3262 .loc 3 1068 3 is_stmt 0 discriminator 8 view .LVU1001 + 3263 .thumb + 3264 .syntax unified + 3265 .LBE461: + 3266 .LBE460: + 3267 .LBB462: + 3268 .LBI462: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3269 .loc 3 1078 30 is_stmt 1 discriminator 8 view .LVU1002 + 3270 .LBB463: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3271 .loc 3 1089 3 discriminator 8 view .LVU1003 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3272 .loc 3 1089 6 is_stmt 0 discriminator 8 view .LVU1004 + 3273 02c6 4AB1 cbz r2, .L216 + 3274 .loc 3 1093 3 is_stmt 1 view .LVU1005 + 3275 .loc 3 1093 10 is_stmt 0 view .LVU1006 + 3276 02c8 B2FA82F2 clz r2, r2 + ARM GAS /tmp/ccICigVb.s page 279 + + + 3277 .LVL260: + 3278 .L190: + 3279 .loc 3 1093 10 view .LVU1007 + 3280 .LBE463: + 3281 .LBE462: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3282 .loc 1 2889 50 view .LVU1008 + 3283 02cc 0132 adds r2, r2, #1 + 3284 02ce 02F01F02 and r2, r2, #31 + 3285 02d2 4FF0010C mov ip, #1 + 3286 02d6 0CFA02F2 lsl r2, ip, r2 + 3287 02da C9E7 b .L189 + 3288 .LVL261: + 3289 .L216: + 3290 .LBB465: + 3291 .LBB464: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3292 .loc 3 1091 12 view .LVU1009 + 3293 02dc 2022 movs r2, #32 + 3294 .LVL262: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3295 .loc 3 1091 12 view .LVU1010 + 3296 02de F5E7 b .L190 + 3297 .LVL263: + 3298 .L191: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3299 .loc 3 1091 12 view .LVU1011 + 3300 .LBE464: + 3301 .LBE465: + 3302 .LBB466: + 3303 .LBI466: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3304 .loc 3 1048 31 is_stmt 1 discriminator 12 view .LVU1012 + 3305 .LBB467: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3306 .loc 3 1050 3 discriminator 12 view .LVU1013 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3307 .loc 3 1055 4 discriminator 12 view .LVU1014 + 3308 .syntax unified + 3309 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3310 02e0 93FAA3F3 rbit r3, r3 + 3311 @ 0 "" 2 + 3312 .LVL264: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3313 .loc 3 1068 3 discriminator 12 view .LVU1015 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3314 .loc 3 1068 3 is_stmt 0 discriminator 12 view .LVU1016 + 3315 .thumb + 3316 .syntax unified + 3317 .LBE467: + 3318 .LBE466: + 3319 .LBB468: + 3320 .LBI468: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3321 .loc 3 1078 30 is_stmt 1 discriminator 12 view .LVU1017 + 3322 .LBB469: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccICigVb.s page 280 + + + 3323 .loc 3 1089 3 discriminator 12 view .LVU1018 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3324 .loc 3 1089 6 is_stmt 0 discriminator 12 view .LVU1019 + 3325 02e4 43B1 cbz r3, .L217 + 3326 .loc 3 1093 3 is_stmt 1 view .LVU1020 + 3327 .loc 3 1093 10 is_stmt 0 view .LVU1021 + 3328 02e6 B3FA83F3 clz r3, r3 + 3329 .LVL265: + 3330 .L193: + 3331 .loc 3 1093 10 view .LVU1022 + 3332 .LBE469: + 3333 .LBE468: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3334 .loc 1 2889 50 view .LVU1023 + 3335 02ea 0133 adds r3, r3, #1 + 3336 02ec 03F01F03 and r3, r3, #31 + 3337 02f0 03EB4303 add r3, r3, r3, lsl #1 + 3338 02f4 1B05 lsls r3, r3, #20 + 3339 02f6 C4E7 b .L192 + 3340 .LVL266: + 3341 .L217: + 3342 .LBB471: + 3343 .LBB470: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3344 .loc 3 1091 12 view .LVU1024 + 3345 02f8 2023 movs r3, #32 + 3346 .LVL267: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3347 .loc 3 1091 12 view .LVU1025 + 3348 02fa F6E7 b .L193 + 3349 .LVL268: + 3350 .L184: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3351 .loc 3 1091 12 view .LVU1026 + 3352 .LBE470: + 3353 .LBE471: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3354 .loc 1 2889 50 view .LVU1027 + 3355 02fc 56BB cbnz r6, .L195 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3356 .loc 1 2889 50 discriminator 13 view .LVU1028 + 3357 02fe 990E lsrs r1, r3, #26 + 3358 0300 0131 adds r1, r1, #1 + 3359 0302 8906 lsls r1, r1, #26 + 3360 0304 01F0F841 and r1, r1, #2080374784 + 3361 .L196: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3362 .loc 1 2889 50 discriminator 16 view .LVU1029 + 3363 0308 86BB cbnz r6, .L198 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3364 .loc 1 2889 50 discriminator 17 view .LVU1030 + 3365 030a 9F0E lsrs r7, r3, #26 + 3366 030c 0137 adds r7, r7, #1 + 3367 030e 07F01F07 and r7, r7, #31 + 3368 0312 0122 movs r2, #1 + 3369 0314 BA40 lsls r2, r2, r7 + 3370 .L199: + ARM GAS /tmp/ccICigVb.s page 281 + + +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3371 .loc 1 2889 50 discriminator 20 view .LVU1031 + 3372 0316 1143 orrs r1, r1, r2 + 3373 0318 BEBB cbnz r6, .L201 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3374 .loc 1 2889 50 discriminator 21 view .LVU1032 + 3375 031a 9B0E lsrs r3, r3, #26 + 3376 031c 0133 adds r3, r3, #1 + 3377 031e 03F01F03 and r3, r3, #31 + 3378 0322 03EB4303 add r3, r3, r3, lsl #1 + 3379 0326 1E3B subs r3, r3, #30 + 3380 0328 1B05 lsls r3, r3, #20 + 3381 032a 43F00073 orr r3, r3, #33554432 + 3382 .L202: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_T + 3383 .loc 1 2888 9 discriminator 2 view .LVU1033 + 3384 032e 1943 orrs r1, r1, r3 + 3385 0330 A8E7 b .L194 + 3386 .L240: + 3387 0332 00BF .align 2 + 3388 .L239: + 3389 0334 00F0FF03 .word 67104768 + 3390 0338 00007F40 .word 1082064896 + 3391 033c 00000880 .word -2146959360 + 3392 0340 00030050 .word 1342178048 + 3393 0344 000021C3 .word -1021247488 + 3394 0348 1000C090 .word -1866465264 + 3395 034c 000052C7 .word -950927360 + 3396 0350 000084CB .word -880541696 + 3397 .L195: + 3398 .LVL269: + 3399 .LBB472: + 3400 .LBI472: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3401 .loc 3 1048 31 is_stmt 1 discriminator 14 view .LVU1034 + 3402 .LBB473: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3403 .loc 3 1050 3 discriminator 14 view .LVU1035 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3404 .loc 3 1055 4 discriminator 14 view .LVU1036 + 3405 .syntax unified + 3406 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3407 0354 93FAA3F1 rbit r1, r3 + 3408 @ 0 "" 2 + 3409 .LVL270: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3410 .loc 3 1068 3 discriminator 14 view .LVU1037 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3411 .loc 3 1068 3 is_stmt 0 discriminator 14 view .LVU1038 + 3412 .thumb + 3413 .syntax unified + 3414 .LBE473: + 3415 .LBE472: + 3416 .LBB474: + 3417 .LBI474: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3418 .loc 3 1078 30 is_stmt 1 discriminator 14 view .LVU1039 + ARM GAS /tmp/ccICigVb.s page 282 + + + 3419 .LBB475: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3420 .loc 3 1089 3 discriminator 14 view .LVU1040 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3421 .loc 3 1089 6 is_stmt 0 discriminator 14 view .LVU1041 + 3422 0358 31B1 cbz r1, .L218 + 3423 .loc 3 1093 3 is_stmt 1 view .LVU1042 + 3424 .loc 3 1093 10 is_stmt 0 view .LVU1043 + 3425 035a B1FA81F1 clz r1, r1 + 3426 .LVL271: + 3427 .L197: + 3428 .loc 3 1093 10 view .LVU1044 + 3429 .LBE475: + 3430 .LBE474: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3431 .loc 1 2889 50 view .LVU1045 + 3432 035e 0131 adds r1, r1, #1 + 3433 0360 8906 lsls r1, r1, #26 + 3434 0362 01F0F841 and r1, r1, #2080374784 + 3435 0366 CFE7 b .L196 + 3436 .LVL272: + 3437 .L218: + 3438 .LBB477: + 3439 .LBB476: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3440 .loc 3 1091 12 view .LVU1046 + 3441 0368 2021 movs r1, #32 + 3442 .LVL273: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3443 .loc 3 1091 12 view .LVU1047 + 3444 036a F8E7 b .L197 + 3445 .LVL274: + 3446 .L198: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3447 .loc 3 1091 12 view .LVU1048 + 3448 .LBE476: + 3449 .LBE477: + 3450 .LBB478: + 3451 .LBI478: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3452 .loc 3 1048 31 is_stmt 1 discriminator 18 view .LVU1049 + 3453 .LBB479: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3454 .loc 3 1050 3 discriminator 18 view .LVU1050 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3455 .loc 3 1055 4 discriminator 18 view .LVU1051 + 3456 .syntax unified + 3457 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3458 036c 93FAA3F2 rbit r2, r3 + 3459 @ 0 "" 2 + 3460 .LVL275: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3461 .loc 3 1068 3 discriminator 18 view .LVU1052 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3462 .loc 3 1068 3 is_stmt 0 discriminator 18 view .LVU1053 + 3463 .thumb + 3464 .syntax unified + ARM GAS /tmp/ccICigVb.s page 283 + + + 3465 .LBE479: + 3466 .LBE478: + 3467 .LBB480: + 3468 .LBI480: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3469 .loc 3 1078 30 is_stmt 1 discriminator 18 view .LVU1054 + 3470 .LBB481: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3471 .loc 3 1089 3 discriminator 18 view .LVU1055 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3472 .loc 3 1089 6 is_stmt 0 discriminator 18 view .LVU1056 + 3473 0370 4AB1 cbz r2, .L219 + 3474 .loc 3 1093 3 is_stmt 1 view .LVU1057 + 3475 .loc 3 1093 10 is_stmt 0 view .LVU1058 + 3476 0372 B2FA82F2 clz r2, r2 + 3477 .LVL276: + 3478 .L200: + 3479 .loc 3 1093 10 view .LVU1059 + 3480 .LBE481: + 3481 .LBE480: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3482 .loc 1 2889 50 view .LVU1060 + 3483 0376 0132 adds r2, r2, #1 + 3484 0378 02F01F02 and r2, r2, #31 + 3485 037c 4FF0010C mov ip, #1 + 3486 0380 0CFA02F2 lsl r2, ip, r2 + 3487 0384 C7E7 b .L199 + 3488 .LVL277: + 3489 .L219: + 3490 .LBB483: + 3491 .LBB482: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3492 .loc 3 1091 12 view .LVU1061 + 3493 0386 2022 movs r2, #32 + 3494 .LVL278: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3495 .loc 3 1091 12 view .LVU1062 + 3496 0388 F5E7 b .L200 + 3497 .LVL279: + 3498 .L201: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3499 .loc 3 1091 12 view .LVU1063 + 3500 .LBE482: + 3501 .LBE483: + 3502 .LBB484: + 3503 .LBI484: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3504 .loc 3 1048 31 is_stmt 1 discriminator 22 view .LVU1064 + 3505 .LBB485: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3506 .loc 3 1050 3 discriminator 22 view .LVU1065 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3507 .loc 3 1055 4 discriminator 22 view .LVU1066 + 3508 .syntax unified + 3509 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3510 038a 93FAA3F3 rbit r3, r3 + 3511 @ 0 "" 2 + ARM GAS /tmp/ccICigVb.s page 284 + + + 3512 .LVL280: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3513 .loc 3 1068 3 discriminator 22 view .LVU1067 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3514 .loc 3 1068 3 is_stmt 0 discriminator 22 view .LVU1068 + 3515 .thumb + 3516 .syntax unified + 3517 .LBE485: + 3518 .LBE484: + 3519 .LBB486: + 3520 .LBI486: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3521 .loc 3 1078 30 is_stmt 1 discriminator 22 view .LVU1069 + 3522 .LBB487: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3523 .loc 3 1089 3 discriminator 22 view .LVU1070 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3524 .loc 3 1089 6 is_stmt 0 discriminator 22 view .LVU1071 + 3525 038e 5BB1 cbz r3, .L220 + 3526 .loc 3 1093 3 is_stmt 1 view .LVU1072 + 3527 .loc 3 1093 10 is_stmt 0 view .LVU1073 + 3528 0390 B3FA83F3 clz r3, r3 + 3529 .LVL281: + 3530 .L203: + 3531 .loc 3 1093 10 view .LVU1074 + 3532 .LBE487: + 3533 .LBE486: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** sConfig->SamplingTime); + 3534 .loc 1 2889 50 view .LVU1075 + 3535 0394 0133 adds r3, r3, #1 + 3536 0396 03F01F03 and r3, r3, #31 + 3537 039a 03EB4303 add r3, r3, r3, lsl #1 + 3538 039e 1E3B subs r3, r3, #30 + 3539 03a0 1B05 lsls r3, r3, #20 + 3540 03a2 43F00073 orr r3, r3, #33554432 + 3541 03a6 C2E7 b .L202 + 3542 .LVL282: + 3543 .L220: + 3544 .LBB489: + 3545 .LBB488: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3546 .loc 3 1091 12 view .LVU1076 + 3547 03a8 2023 movs r3, #32 + 3548 .LVL283: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3549 .loc 3 1091 12 view .LVU1077 + 3550 03aa F3E7 b .L203 + 3551 .LVL284: + 3552 .L204: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3553 .loc 3 1091 12 view .LVU1078 + 3554 .LBE488: + 3555 .LBE489: +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3556 .loc 1 2908 11 view .LVU1079 + 3557 03ac 12F4000F tst r2, #8388608 + 3558 03b0 7FF4BCAE bne .L205 + ARM GAS /tmp/ccICigVb.s page 285 + + +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3559 .loc 1 2910 9 is_stmt 1 view .LVU1080 +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3560 .loc 1 2910 13 is_stmt 0 view .LVU1081 + 3561 03b4 2368 ldr r3, [r4] +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3562 .loc 1 2910 12 view .LVU1082 + 3563 03b6 B3F1A04F cmp r3, #1342177280 + 3564 03ba 01D0 beq .L237 +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3565 .loc 1 2760 21 view .LVU1083 + 3566 03bc 0020 movs r0, #0 + 3567 03be 37E6 b .L155 + 3568 .L237: +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_PATH_INTERNAL_TEMPSENSOR | tmp_config_internal_chan + 3569 .loc 1 2912 11 is_stmt 1 view .LVU1084 + 3570 03c0 41F40001 orr r1, r1, #8388608 + 3571 .LVL285: + 3572 .LBB490: + 3573 .LBI490: +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3574 .loc 2 2796 22 view .LVU1085 + 3575 .LBB491: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3576 .loc 2 2798 3 view .LVU1086 + 3577 03c4 234A ldr r2, .L241 + 3578 .LVL286: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3579 .loc 2 2798 3 is_stmt 0 view .LVU1087 + 3580 03c6 9368 ldr r3, [r2, #8] + 3581 03c8 23F0E073 bic r3, r3, #29360128 + 3582 03cc 1943 orrs r1, r1, r3 + 3583 .LVL287: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3584 .loc 2 2798 3 view .LVU1088 + 3585 03ce 9160 str r1, [r2, #8] + 3586 .LVL288: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3587 .loc 2 2798 3 view .LVU1089 + 3588 .LBE491: + 3589 .LBE490: +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 3590 .loc 1 2920 11 is_stmt 1 view .LVU1090 +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 3591 .loc 1 2920 91 is_stmt 0 view .LVU1091 + 3592 03d0 214B ldr r3, .L241+4 + 3593 03d2 1B68 ldr r3, [r3] + 3594 03d4 9B09 lsrs r3, r3, #6 + 3595 03d6 214A ldr r2, .L241+8 + 3596 03d8 A2FB0323 umull r2, r3, r2, r3 + 3597 03dc 9B09 lsrs r3, r3, #6 +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + 3598 .loc 1 2920 71 view .LVU1092 + 3599 03de 0133 adds r3, r3, #1 + 3600 03e0 03EB4303 add r3, r3, r3, lsl #1 + 3601 03e4 9B00 lsls r3, r3, #2 +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** while (wait_loop_index != 0UL) + ARM GAS /tmp/ccICigVb.s page 286 + + + 3602 .loc 1 2920 27 view .LVU1093 + 3603 03e6 0193 str r3, [sp, #4] +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3604 .loc 1 2921 11 is_stmt 1 view .LVU1094 + 3605 .L206: +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3606 .loc 1 2921 34 view .LVU1095 + 3607 03e8 019B ldr r3, [sp, #4] + 3608 03ea 1BB1 cbz r3, .L238 +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 3609 .loc 1 2923 13 view .LVU1096 +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 3610 .loc 1 2923 28 is_stmt 0 view .LVU1097 + 3611 03ec 019B ldr r3, [sp, #4] + 3612 03ee 013B subs r3, r3, #1 + 3613 03f0 0193 str r3, [sp, #4] + 3614 03f2 F9E7 b .L206 + 3615 .L238: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3616 .loc 1 2760 21 view .LVU1098 + 3617 03f4 0020 movs r0, #0 + 3618 03f6 1BE6 b .L155 + 3619 .LVL289: + 3620 .L232: +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3621 .loc 1 2927 55 discriminator 1 view .LVU1099 + 3622 03f8 12F0807F tst r2, #16777216 + 3623 03fc 7FF49AAE bne .L208 +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3624 .loc 1 2929 9 is_stmt 1 view .LVU1100 +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3625 .loc 1 2929 13 is_stmt 0 view .LVU1101 + 3626 0400 2268 ldr r2, [r4] +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3627 .loc 1 2929 12 view .LVU1102 + 3628 0402 174B ldr r3, .L241+12 + 3629 0404 9A42 cmp r2, r3 + 3630 0406 1CD0 beq .L223 +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); + 3631 .loc 1 2931 11 is_stmt 1 view .LVU1103 + 3632 0408 41F08071 orr r1, r1, #16777216 + 3633 .LVL290: + 3634 .LBB492: + 3635 .LBI492: +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3636 .loc 2 2796 22 view .LVU1104 + 3637 .LBB493: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3638 .loc 2 2798 3 view .LVU1105 + 3639 040c 114A ldr r2, .L241 + 3640 040e 9368 ldr r3, [r2, #8] + 3641 0410 23F0E073 bic r3, r3, #29360128 + 3642 0414 1943 orrs r1, r1, r3 + 3643 .LVL291: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3644 .loc 2 2798 3 is_stmt 0 view .LVU1106 + 3645 0416 9160 str r1, [r2, #8] + ARM GAS /tmp/ccICigVb.s page 287 + + + 3646 .LBE493: + 3647 .LBE492: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3648 .loc 1 2760 21 view .LVU1107 + 3649 0418 0020 movs r0, #0 + 3650 .LBB495: + 3651 .LBB494: +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3652 .loc 2 2799 1 view .LVU1108 + 3653 041a 09E6 b .L155 + 3654 .LVL292: + 3655 .L233: +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3656 .loc 2 2799 1 view .LVU1109 + 3657 .LBE494: + 3658 .LBE495: +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3659 .loc 1 2936 16 view .LVU1110 + 3660 041c 12F4800F tst r2, #4194304 + 3661 0420 11D1 bne .L225 +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3662 .loc 1 2938 9 is_stmt 1 view .LVU1111 +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3663 .loc 1 2938 13 is_stmt 0 view .LVU1112 + 3664 0422 2268 ldr r2, [r4] +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3665 .loc 1 2938 12 view .LVU1113 + 3666 0424 0E4B ldr r3, .L241+12 + 3667 0426 9A42 cmp r2, r3 + 3668 0428 0FD0 beq .L226 +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_PATH_INTERNAL_VREFINT | tmp_config_internal_channel + 3669 .loc 1 2940 11 is_stmt 1 view .LVU1114 + 3670 042a 41F48003 orr r3, r1, #4194304 + 3671 .LVL293: + 3672 .LBB496: + 3673 .LBI496: +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3674 .loc 2 2796 22 view .LVU1115 + 3675 .LBB497: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3676 .loc 2 2798 3 view .LVU1116 + 3677 042e 0949 ldr r1, .L241 + 3678 .LVL294: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3679 .loc 2 2798 3 is_stmt 0 view .LVU1117 + 3680 0430 8A68 ldr r2, [r1, #8] + 3681 0432 22F0E072 bic r2, r2, #29360128 + 3682 0436 1343 orrs r3, r3, r2 + 3683 .LVL295: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3684 .loc 2 2798 3 view .LVU1118 + 3685 0438 8B60 str r3, [r1, #8] + 3686 .LBE497: + 3687 .LBE496: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3688 .loc 1 2760 21 view .LVU1119 + 3689 043a 0020 movs r0, #0 + ARM GAS /tmp/ccICigVb.s page 288 + + + 3690 .LBB499: + 3691 .LBB498: +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3692 .loc 2 2799 1 view .LVU1120 + 3693 043c F8E5 b .L155 + 3694 .LVL296: + 3695 .L221: +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3696 .loc 2 2799 1 view .LVU1121 + 3697 .LBE498: + 3698 .LBE499: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3699 .loc 1 2760 21 view .LVU1122 + 3700 043e 0020 movs r0, #0 + 3701 0440 F6E5 b .L155 + 3702 .LVL297: + 3703 .L223: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3704 .loc 1 2760 21 view .LVU1123 + 3705 0442 0020 movs r0, #0 + 3706 0444 F4E5 b .L155 + 3707 .L225: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3708 .loc 1 2760 21 view .LVU1124 + 3709 0446 0020 movs r0, #0 + 3710 0448 F2E5 b .L155 + 3711 .L226: +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpOffsetShifted; + 3712 .loc 1 2760 21 view .LVU1125 + 3713 044a 0020 movs r0, #0 + 3714 044c F0E5 b .L155 + 3715 .LVL298: + 3716 .L209: +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3717 .loc 1 2790 3 view .LVU1126 + 3718 044e 0220 movs r0, #2 + 3719 .LVL299: +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3720 .loc 1 2790 3 view .LVU1127 + 3721 0450 F1E5 b .L153 + 3722 .L242: + 3723 0452 00BF .align 2 + 3724 .L241: + 3725 0454 00030050 .word 1342178048 + 3726 0458 00000000 .word SystemCoreClock + 3727 045c 632D3E05 .word 87960931 + 3728 0460 00010050 .word 1342177536 + 3729 .cfi_endproc + 3730 .LFE349: + 3732 .section .text.HAL_ADC_AnalogWDGConfig,"ax",%progbits + 3733 .align 1 + 3734 .global HAL_ADC_AnalogWDGConfig + 3735 .syntax unified + 3736 .thumb + 3737 .thumb_func + 3739 HAL_ADC_AnalogWDGConfig: + 3740 .LVL300: + ARM GAS /tmp/ccICigVb.s page 289 + + + 3741 .LFB350: +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 3742 .loc 1 2992 1 is_stmt 1 view -0 + 3743 .cfi_startproc + 3744 @ args = 0, pretend = 0, frame = 0 + 3745 @ frame_needed = 0, uses_anonymous_args = 0 +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 3746 .loc 1 2992 1 is_stmt 0 view .LVU1129 + 3747 0000 38B5 push {r3, r4, r5, lr} + 3748 .LCFI19: + 3749 .cfi_def_cfa_offset 16 + 3750 .cfi_offset 3, -16 + 3751 .cfi_offset 4, -12 + 3752 .cfi_offset 5, -8 + 3753 .cfi_offset 14, -4 +2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpAWDHighThresholdShifted; + 3754 .loc 1 2993 3 is_stmt 1 view .LVU1130 + 3755 .LVL301: +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmpAWDLowThresholdShifted; + 3756 .loc 1 2994 3 view .LVU1131 +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 3757 .loc 1 2995 3 view .LVU1132 +2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 3758 .loc 1 2996 3 view .LVU1133 +2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3759 .loc 1 2997 3 view .LVU1134 +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_NUMBER(AnalogWDGConfig->WatchdogNumber)); + 3760 .loc 1 3000 3 view .LVU1135 +3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_MODE(AnalogWDGConfig->WatchdogMode)); + 3761 .loc 1 3001 3 view .LVU1136 +3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_FILTERING_MODE(AnalogWDGConfig->FilteringConfig)); + 3762 .loc 1 3002 3 view .LVU1137 +3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(AnalogWDGConfig->ITMode)); + 3763 .loc 1 3003 3 view .LVU1138 +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3764 .loc 1 3004 3 view .LVU1139 +3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** (AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || + 3765 .loc 1 3006 3 view .LVU1140 +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 3766 .loc 1 3010 5 view .LVU1141 +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3767 .loc 1 3014 3 view .LVU1142 +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->LowThreshold)); + 3768 .loc 1 3025 5 view .LVU1143 +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 3769 .loc 1 3026 5 view .LVU1144 +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3770 .loc 1 3030 3 view .LVU1145 +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3771 .loc 1 3030 3 view .LVU1146 + 3772 0002 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 3773 0006 012B cmp r3, #1 + 3774 0008 00F06781 beq .L279 + 3775 000c 0446 mov r4, r0 + 3776 000e 0D46 mov r5, r1 +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3777 .loc 1 3030 3 discriminator 2 view .LVU1147 + ARM GAS /tmp/ccICigVb.s page 290 + + + 3778 0010 0123 movs r3, #1 + 3779 0012 80F85830 strb r3, [r0, #88] +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3780 .loc 1 3030 3 discriminator 2 view .LVU1148 +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 3781 .loc 1 3036 3 discriminator 2 view .LVU1149 +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 3782 .loc 1 3036 44 is_stmt 0 discriminator 2 view .LVU1150 + 3783 0016 0068 ldr r0, [r0] + 3784 .LVL302: + 3785 .LBB500: + 3786 .LBI500: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3787 .loc 2 6851 26 is_stmt 1 discriminator 2 view .LVU1151 + 3788 .LBB501: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3789 .loc 2 6853 3 discriminator 2 view .LVU1152 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3790 .loc 2 6853 12 is_stmt 0 discriminator 2 view .LVU1153 + 3791 0018 8368 ldr r3, [r0, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3792 .loc 2 6853 74 discriminator 2 view .LVU1154 + 3793 001a 13F00403 ands r3, r3, #4 + 3794 001e 00D0 beq .L245 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3795 .loc 2 6853 74 view .LVU1155 + 3796 0020 0123 movs r3, #1 + 3797 .L245: + 3798 .LVL303: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3799 .loc 2 6853 74 view .LVU1156 + 3800 .LBE501: + 3801 .LBE500: +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 3802 .loc 1 3037 3 is_stmt 1 view .LVU1157 + 3803 .LBB502: + 3804 .LBI502: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3805 .loc 2 7076 26 view .LVU1158 + 3806 .LBB503: + 3807 .loc 2 7078 3 view .LVU1159 + 3808 .loc 2 7078 12 is_stmt 0 view .LVU1160 + 3809 0022 8268 ldr r2, [r0, #8] + 3810 .loc 2 7078 76 view .LVU1161 + 3811 0024 12F00802 ands r2, r2, #8 + 3812 0028 00D0 beq .L246 + 3813 002a 0122 movs r2, #1 + 3814 .L246: + 3815 .LVL304: + 3816 .loc 2 7078 76 view .LVU1162 + 3817 .LBE503: + 3818 .LBE502: +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 3819 .loc 1 3038 3 is_stmt 1 view .LVU1163 +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 3820 .loc 1 3038 6 is_stmt 0 view .LVU1164 + 3821 002c 002B cmp r3, #0 + ARM GAS /tmp/ccICigVb.s page 291 + + + 3822 002e 40F0EC80 bne .L247 +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 3823 .loc 1 3039 7 view .LVU1165 + 3824 0032 002A cmp r2, #0 + 3825 0034 40F0E980 bne .L247 +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3826 .loc 1 3043 5 is_stmt 1 view .LVU1166 +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3827 .loc 1 3043 24 is_stmt 0 view .LVU1167 + 3828 0038 2968 ldr r1, [r5] + 3829 .LVL305: +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3830 .loc 1 3043 8 view .LVU1168 + 3831 003a A94B ldr r3, .L291 + 3832 .LVL306: +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3833 .loc 1 3043 8 view .LVU1169 + 3834 003c 9942 cmp r1, r3 + 3835 003e 16D0 beq .L283 +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3836 .loc 1 3109 7 is_stmt 1 view .LVU1170 +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3837 .loc 1 3109 30 is_stmt 0 view .LVU1171 + 3838 0040 6B68 ldr r3, [r5, #4] +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3839 .loc 1 3109 7 view .LVU1172 + 3840 0042 B3F1A07F cmp r3, #20971520 + 3841 0046 00F09280 beq .L259 + 3842 004a 00F28980 bhi .L260 + 3843 004e B3F5400F cmp r3, #12582912 + 3844 0052 00F08C80 beq .L259 + 3845 0056 B3F1807F cmp r3, #16777216 + 3846 005a 00F0BF80 beq .L261 + 3847 005e B3F5000F cmp r3, #8388608 + 3848 0062 00F0BB80 beq .L261 + 3849 .L262: +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 3850 .loc 1 3133 11 is_stmt 1 view .LVU1173 + 3851 0066 0022 movs r2, #0 + 3852 .LVL307: +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 3853 .loc 1 3133 11 is_stmt 0 view .LVU1174 + 3854 0068 FFF7FEFF bl LL_ADC_SetAnalogWDMonitChannels + 3855 .LVL308: +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 3856 .loc 1 3134 11 is_stmt 1 view .LVU1175 + 3857 006c B9E0 b .L267 + 3858 .LVL309: + 3859 .L283: +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3860 .loc 1 3048 7 view .LVU1176 +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3861 .loc 1 3048 30 is_stmt 0 view .LVU1177 + 3862 006e 6B68 ldr r3, [r5, #4] +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3863 .loc 1 3048 7 view .LVU1178 + 3864 0070 B3F1A07F cmp r3, #20971520 + ARM GAS /tmp/ccICigVb.s page 292 + + + 3865 0074 51D0 beq .L249 + 3866 0076 1AD8 bhi .L250 + 3867 0078 B3F5400F cmp r3, #12582912 + 3868 007c 2AD0 beq .L251 + 3869 007e B3F1807F cmp r3, #16777216 + 3870 0082 08D1 bne .L284 +3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 3871 .loc 1 3070 11 is_stmt 1 view .LVU1179 + 3872 .LVL310: + 3873 .LBB504: + 3874 .LBI504: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3875 .loc 2 5725 22 view .LVU1180 + 3876 .LBB505: +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 3877 .loc 2 5731 3 view .LVU1181 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3878 .loc 2 5734 3 view .LVU1182 + 3879 0084 C368 ldr r3, [r0, #12] + 3880 0086 23F0FB43 bic r3, r3, #2105540608 + 3881 008a 23F48003 bic r3, r3, #4194304 + 3882 008e 43F08073 orr r3, r3, #16777216 + 3883 0092 C360 str r3, [r0, #12] +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3884 .loc 2 5737 1 is_stmt 0 view .LVU1183 + 3885 0094 2AE0 b .L257 + 3886 .LVL311: + 3887 .L284: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3888 .loc 2 5737 1 view .LVU1184 + 3889 .LBE505: + 3890 .LBE504: +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3891 .loc 1 3048 7 view .LVU1185 + 3892 0096 B3F5000F cmp r3, #8388608 + 3893 009a 54D1 bne .L254 +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 3894 .loc 1 3066 11 is_stmt 1 view .LVU1186 + 3895 .LVL312: + 3896 .LBB506: + 3897 .LBI506: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3898 .loc 2 5725 22 view .LVU1187 + 3899 .LBB507: +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 3900 .loc 2 5731 3 view .LVU1188 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3901 .loc 2 5734 3 view .LVU1189 + 3902 009c C368 ldr r3, [r0, #12] + 3903 009e 23F0FB43 bic r3, r3, #2105540608 + 3904 00a2 23F48003 bic r3, r3, #4194304 + 3905 00a6 43F40003 orr r3, r3, #8388608 + 3906 00aa C360 str r3, [r0, #12] +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3907 .loc 2 5737 1 is_stmt 0 view .LVU1190 + 3908 00ac 1EE0 b .L257 + 3909 .LVL313: + ARM GAS /tmp/ccICigVb.s page 293 + + + 3910 .L250: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3911 .loc 2 5737 1 view .LVU1191 + 3912 .LBE507: + 3913 .LBE506: +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3914 .loc 1 3048 7 view .LVU1192 + 3915 00ae B3F1C07F cmp r3, #25165824 + 3916 00b2 3FD0 beq .L255 + 3917 00b4 B3F1E07F cmp r3, #29360128 + 3918 00b8 45D1 bne .L254 +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_REGULAR_INJECTED)); + 3919 .loc 1 3061 11 is_stmt 1 view .LVU1193 +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_REGULAR_INJECTED)); + 3920 .loc 1 3061 72 is_stmt 0 view .LVU1194 + 3921 00ba AA68 ldr r2, [r5, #8] + 3922 .LVL314: + 3923 .LBB508: + 3924 .LBI508: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3925 .loc 2 5725 22 is_stmt 1 view .LVU1195 + 3926 .LBB509: +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 3927 .loc 2 5731 3 view .LVU1196 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3928 .loc 2 5734 3 view .LVU1197 + 3929 00bc C368 ldr r3, [r0, #12] + 3930 00be 23F0FB43 bic r3, r3, #2105540608 + 3931 00c2 23F48003 bic r3, r3, #4194304 + 3932 00c6 02F0F842 and r2, r2, #2080374784 + 3933 .LVL315: +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3934 .loc 2 5734 3 is_stmt 0 view .LVU1198 + 3935 00ca 42F0E072 orr r2, r2, #29360128 + 3936 00ce 1343 orrs r3, r3, r2 + 3937 00d0 C360 str r3, [r0, #12] + 3938 .LVL316: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3939 .loc 2 5737 1 view .LVU1199 + 3940 00d2 0BE0 b .L257 + 3941 .LVL317: + 3942 .L251: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3943 .loc 2 5737 1 view .LVU1200 + 3944 .LBE509: + 3945 .LBE508: +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_REGULAR)); + 3946 .loc 1 3051 11 is_stmt 1 view .LVU1201 +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_REGULAR)); + 3947 .loc 1 3051 72 is_stmt 0 view .LVU1202 + 3948 00d4 AA68 ldr r2, [r5, #8] + 3949 .LVL318: + 3950 .LBB510: + 3951 .LBI510: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3952 .loc 2 5725 22 is_stmt 1 view .LVU1203 + 3953 .LBB511: + ARM GAS /tmp/ccICigVb.s page 294 + + +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 3954 .loc 2 5731 3 view .LVU1204 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3955 .loc 2 5734 3 view .LVU1205 + 3956 00d6 C368 ldr r3, [r0, #12] + 3957 00d8 23F0FB43 bic r3, r3, #2105540608 + 3958 00dc 23F48003 bic r3, r3, #4194304 + 3959 00e0 02F0F842 and r2, r2, #2080374784 + 3960 .LVL319: +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3961 .loc 2 5734 3 is_stmt 0 view .LVU1206 + 3962 00e4 42F44002 orr r2, r2, #12582912 + 3963 00e8 1343 orrs r3, r3, r2 + 3964 00ea C360 str r3, [r0, #12] + 3965 .LVL320: + 3966 .L257: +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 3967 .loc 2 5734 3 view .LVU1207 + 3968 .LBE511: + 3969 .LBE510: +3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_TR1_AWDFILT, + 3970 .loc 1 3083 7 is_stmt 1 view .LVU1208 + 3971 00ec 2268 ldr r2, [r4] + 3972 00ee 136A ldr r3, [r2, #32] + 3973 00f0 23F4E043 bic r3, r3, #28672 + 3974 00f4 A969 ldr r1, [r5, #24] + 3975 00f6 0B43 orrs r3, r3, r1 + 3976 00f8 1362 str r3, [r2, #32] +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3977 .loc 1 3088 7 view .LVU1209 + 3978 00fa E36D ldr r3, [r4, #92] + 3979 00fc 23F48033 bic r3, r3, #65536 + 3980 0100 E365 str r3, [r4, #92] +3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 3981 .loc 1 3094 7 view .LVU1210 + 3982 0102 2368 ldr r3, [r4] + 3983 .LVL321: + 3984 .LBB512: + 3985 .LBI512: +7079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected command of conversion stop state +7083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTP LL_ADC_INJ_IsStopConversionOngoing +7084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no command of conversion stop is on going on ADC group injected. +7086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_IsStopConversionOngoing(ADC_TypeDef *ADCx) +7088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_JADSTP) == (ADC_CR_JADSTP)) ? 1UL : 0UL); +7090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion data, range fit for +7094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * all ADC configurations: all ADC resolutions and +7095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * all oversampling increased data width (for devices +7096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with feature oversampling). + ARM GAS /tmp/ccICigVb.s page 295 + + +7097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n +7098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n +7099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n +7100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR4 JDATA LL_ADC_INJ_ReadConversionData32 +7101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +7103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +7104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +7105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +7106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +7107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +7108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank) +7110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK +7112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(*preg, +7114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JDR1_JDATA) +7115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion data, range fit for +7120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 12 bits. +7121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +7122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +7123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_INJ_ReadConversionData32. +7124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n +7125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n +7126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n +7127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR4 JDATA LL_ADC_INJ_ReadConversionData12 +7128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +7130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +7131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +7132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +7133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +7134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +7135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank) +7137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK +7139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint16_t)(READ_BIT(*preg, +7141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JDR1_JDATA) +7142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion data, range fit for +7147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 10 bits. +7148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +7149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +7150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_INJ_ReadConversionData32. +7151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData10\n +7152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR2 JDATA LL_ADC_INJ_ReadConversionData10\n +7153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR3 JDATA LL_ADC_INJ_ReadConversionData10\n + ARM GAS /tmp/ccICigVb.s page 296 + + +7154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR4 JDATA LL_ADC_INJ_ReadConversionData10 +7155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +7157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +7158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +7159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +7160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +7161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0x3FF +7162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(ADC_TypeDef *ADCx, uint32_t Rank) +7164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK +7166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint16_t)(READ_BIT(*preg, +7168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JDR1_JDATA) +7169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion data, range fit for +7174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 8 bits. +7175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +7176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +7177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_INJ_ReadConversionData32. +7178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData8\n +7179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR2 JDATA LL_ADC_INJ_ReadConversionData8\n +7180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR3 JDATA LL_ADC_INJ_ReadConversionData8\n +7181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR4 JDATA LL_ADC_INJ_ReadConversionData8 +7182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +7184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +7185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +7186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +7187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +7188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0xFF +7189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(ADC_TypeDef *ADCx, uint32_t Rank) +7191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK +7193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint8_t)(READ_BIT(*preg, +7195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JDR1_JDATA) +7196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion data, range fit for +7201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 6 bits. +7202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +7203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +7204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_INJ_ReadConversionData32. +7205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData6\n +7206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR2 JDATA LL_ADC_INJ_ReadConversionData6\n +7207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR3 JDATA LL_ADC_INJ_ReadConversionData6\n +7208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JDR4 JDATA LL_ADC_INJ_ReadConversionData6 +7209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: + ARM GAS /tmp/ccICigVb.s page 297 + + +7211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +7212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +7213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +7214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +7215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0x3F +7216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(ADC_TypeDef *ADCx, uint32_t Rank) +7218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK +7220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint8_t)(READ_BIT(*preg, +7222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JDR1_JDATA) +7223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +7228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_FLAG_Management ADC flag management +7231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +7232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC ready. +7236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC +7237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled and when conversion clock is active. +7238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (not only core clock: this ADC has a dual clock domain) +7239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR ADRDY LL_ADC_IsActiveFlag_ADRDY +7240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_ADRDY(ADC_TypeDef *ADCx) +7244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_ADRDY) == (LL_ADC_FLAG_ADRDY)) ? 1UL : 0UL); +7246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group regular end of unitary conversion. +7250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR EOC LL_ADC_IsActiveFlag_EOC +7251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOC(ADC_TypeDef *ADCx) +7255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, ADC_ISR_EOC) == (ADC_ISR_EOC)) ? 1UL : 0UL); +7257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group regular end of sequence conversions. +7261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR EOS LL_ADC_IsActiveFlag_EOS +7262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOS(ADC_TypeDef *ADCx) +7266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOS) == (LL_ADC_FLAG_EOS)) ? 1UL : 0UL); + ARM GAS /tmp/ccICigVb.s page 298 + + +7268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group regular overrun. +7272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR OVR LL_ADC_IsActiveFlag_OVR +7273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(ADC_TypeDef *ADCx) +7277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR)) ? 1UL : 0UL); +7279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group regular end of sampling phase. +7283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR EOSMP LL_ADC_IsActiveFlag_EOSMP +7284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOSMP(ADC_TypeDef *ADCx) +7288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOSMP) == (LL_ADC_FLAG_EOSMP)) ? 1UL : 0UL); +7290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group injected end of unitary conversion. +7294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR JEOC LL_ADC_IsActiveFlag_JEOC +7295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOC(ADC_TypeDef *ADCx) +7299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOC) == (LL_ADC_FLAG_JEOC)) ? 1UL : 0UL); +7301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group injected end of sequence conversions. +7305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR JEOS LL_ADC_IsActiveFlag_JEOS +7306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx) +7310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS)) ? 1UL : 0UL); +7312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC group injected contexts queue overflow. +7316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR JQOVF LL_ADC_IsActiveFlag_JQOVF +7317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JQOVF(ADC_TypeDef *ADCx) +7321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_JQOVF) == (LL_ADC_FLAG_JQOVF)) ? 1UL : 0UL); +7323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/ccICigVb.s page 299 + + +7325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC analog watchdog 1 flag +7327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR AWD1 LL_ADC_IsActiveFlag_AWD1 +7328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx) +7332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1)) ? 1UL : 0UL); +7334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC analog watchdog 2. +7338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR AWD2 LL_ADC_IsActiveFlag_AWD2 +7339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD2(ADC_TypeDef *ADCx) +7343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD2) == (LL_ADC_FLAG_AWD2)) ? 1UL : 0UL); +7345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag ADC analog watchdog 3. +7349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR AWD3 LL_ADC_IsActiveFlag_AWD3 +7350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD3(ADC_TypeDef *ADCx) +7354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD3) == (LL_ADC_FLAG_AWD3)) ? 1UL : 0UL); +7356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC ready. +7360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC +7361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled and when conversion clock is active. +7362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (not only core clock: this ADC has a dual clock domain) +7363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR ADRDY LL_ADC_ClearFlag_ADRDY +7364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_ADRDY(ADC_TypeDef *ADCx) +7368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_ADRDY); +7370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group regular end of unitary conversion. +7374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR EOC LL_ADC_ClearFlag_EOC +7375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_EOC(ADC_TypeDef *ADCx) +7379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOC); +7381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/ccICigVb.s page 300 + + +7382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group regular end of sequence conversions. +7385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR EOS LL_ADC_ClearFlag_EOS +7386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_EOS(ADC_TypeDef *ADCx) +7390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOS); +7392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group regular overrun. +7396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR OVR LL_ADC_ClearFlag_OVR +7397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx) +7401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_OVR); +7403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group regular end of sampling phase. +7407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR EOSMP LL_ADC_ClearFlag_EOSMP +7408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_EOSMP(ADC_TypeDef *ADCx) +7412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOSMP); +7414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group injected end of unitary conversion. +7418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR JEOC LL_ADC_ClearFlag_JEOC +7419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_JEOC(ADC_TypeDef *ADCx) +7423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOC); +7425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group injected end of sequence conversions. +7429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR JEOS LL_ADC_ClearFlag_JEOS +7430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx) +7434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOS); +7436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 301 + + +7439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC group injected contexts queue overflow. +7440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR JQOVF LL_ADC_ClearFlag_JQOVF +7441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_JQOVF(ADC_TypeDef *ADCx) +7445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JQOVF); +7447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC analog watchdog 1. +7451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR AWD1 LL_ADC_ClearFlag_AWD1 +7452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx) + 3986 .loc 2 7455 22 view .LVU1211 + 3987 .LBB513: +7456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD1); + 3988 .loc 2 7457 3 view .LVU1212 + 3989 0104 8022 movs r2, #128 + 3990 0106 1A60 str r2, [r3] + 3991 .LVL322: + 3992 .loc 2 7457 3 is_stmt 0 view .LVU1213 + 3993 .LBE513: + 3994 .LBE512: +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3995 .loc 1 3097 7 is_stmt 1 view .LVU1214 +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3996 .loc 1 3097 26 is_stmt 0 view .LVU1215 + 3997 0108 2B7B ldrb r3, [r5, #12] @ zero_extendqisi2 +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 3998 .loc 1 3097 10 view .LVU1216 + 3999 010a 012B cmp r3, #1 + 4000 010c 22D0 beq .L285 +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4001 .loc 1 3103 9 is_stmt 1 view .LVU1217 + 4002 010e 2268 ldr r2, [r4] + 4003 .LVL323: + 4004 .LBB514: + 4005 .LBI514: +7458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC analog watchdog 2. +7462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR AWD2 LL_ADC_ClearFlag_AWD2 +7463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_AWD2(ADC_TypeDef *ADCx) +7467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD2); +7469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 302 + + +7472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Clear flag ADC analog watchdog 3. +7473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll ISR AWD3 LL_ADC_ClearFlag_AWD3 +7474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ClearFlag_AWD3(ADC_TypeDef *ADCx) +7478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD3); +7480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +7483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC ready of the ADC master. +7485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR ADRDY_MST LL_ADC_IsActiveFlag_MST_ADRDY +7486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_ADRDY(ADC_Common_TypeDef *ADCxy_COMMON) +7491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_MST) == (LL_ADC_FLAG_ADRDY_MST)) ? 1UL : 0 +7493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC ready of the ADC slave. +7497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR ADRDY_SLV LL_ADC_IsActiveFlag_SLV_ADRDY +7498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_ADRDY(ADC_Common_TypeDef *ADCxy_COMMON) +7503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_SLV) == (LL_ADC_FLAG_ADRDY_SLV)) ? 1UL : 0 +7505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC master. +7509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR EOC_MST LL_ADC_IsActiveFlag_MST_EOC +7510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOC(ADC_Common_TypeDef *ADCxy_COMMON) +7515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV)) ? 1UL : 0UL); +7517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC slave. +7521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR EOC_SLV LL_ADC_IsActiveFlag_SLV_EOC +7522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOC(ADC_Common_TypeDef *ADCxy_COMMON) +7527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV)) ? 1UL : 0UL); + ARM GAS /tmp/ccICigVb.s page 303 + + +7529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC master. +7533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR EOS_MST LL_ADC_IsActiveFlag_MST_EOS +7534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOS(ADC_Common_TypeDef *ADCxy_COMMON) +7539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_MST) == (LL_ADC_FLAG_EOS_MST)) ? 1UL : 0UL); +7541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC slave. +7545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR EOS_SLV LL_ADC_IsActiveFlag_SLV_EOS +7546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOS(ADC_Common_TypeDef *ADCxy_COMMON) +7551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_SLV) == (LL_ADC_FLAG_EOS_SLV)) ? 1UL : 0UL); +7553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular overrun of the ADC master. +7557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR OVR_MST LL_ADC_IsActiveFlag_MST_OVR +7558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_OVR(ADC_Common_TypeDef *ADCxy_COMMON) +7563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_MST) == (LL_ADC_FLAG_OVR_MST)) ? 1UL : 0UL); +7565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular overrun of the ADC slave. +7569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR OVR_SLV LL_ADC_IsActiveFlag_SLV_OVR +7570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_OVR(ADC_Common_TypeDef *ADCxy_COMMON) +7575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV) == (LL_ADC_FLAG_OVR_SLV)) ? 1UL : 0UL); +7577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular end of sampling of the ADC master. +7581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR EOSMP_MST LL_ADC_IsActiveFlag_MST_EOSMP +7582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + ARM GAS /tmp/ccICigVb.s page 304 + + +7586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOSMP(ADC_Common_TypeDef *ADCxy_COMMON) +7587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_MST) == (LL_ADC_FLAG_EOSMP_MST)) ? 1UL : 0 +7589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group regular end of sampling of the ADC slave. +7593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR EOSMP_SLV LL_ADC_IsActiveFlag_SLV_EOSMP +7594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOSMP(ADC_Common_TypeDef *ADCxy_COMMON) +7599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_SLV) == (LL_ADC_FLAG_EOSMP_SLV)) ? 1UL : 0 +7601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC master. +7605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR JEOC_MST LL_ADC_IsActiveFlag_MST_JEOC +7606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOC(ADC_Common_TypeDef *ADCxy_COMMON) +7611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_MST) == (LL_ADC_FLAG_JEOC_MST)) ? 1UL : 0UL +7613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC slave. +7617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR JEOC_SLV LL_ADC_IsActiveFlag_SLV_JEOC +7618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOC(ADC_Common_TypeDef *ADCxy_COMMON) +7623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_SLV) == (LL_ADC_FLAG_JEOC_SLV)) ? 1UL : 0UL +7625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC master. +7629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR JEOS_MST LL_ADC_IsActiveFlag_MST_JEOS +7630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOS(ADC_Common_TypeDef *ADCxy_COMMON) +7635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_MST) == (LL_ADC_FLAG_JEOS_MST)) ? 1UL : 0UL +7637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC slave. +7641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR JEOS_SLV LL_ADC_IsActiveFlag_SLV_JEOS +7642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance + ARM GAS /tmp/ccICigVb.s page 305 + + +7643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOS(ADC_Common_TypeDef *ADCxy_COMMON) +7647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_SLV) == (LL_ADC_FLAG_JEOS_SLV)) ? 1UL : 0UL +7649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group injected context queue overflow of the ADC master. +7653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR JQOVF_MST LL_ADC_IsActiveFlag_MST_JQOVF +7654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JQOVF(ADC_Common_TypeDef *ADCxy_COMMON) +7659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_MST) == (LL_ADC_FLAG_JQOVF_MST)) ? 1UL : 0 +7661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC group injected context queue overflow of the ADC slave. +7665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR JQOVF_SLV LL_ADC_IsActiveFlag_SLV_JQOVF +7666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JQOVF(ADC_Common_TypeDef *ADCxy_COMMON) +7671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_SLV) == (LL_ADC_FLAG_JQOVF_SLV)) ? 1UL : 0 +7673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC analog watchdog 1 of the ADC master. +7677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR AWD1_MST LL_ADC_IsActiveFlag_MST_AWD1 +7678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD1(ADC_Common_TypeDef *ADCxy_COMMON) +7683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_MST) == (LL_ADC_FLAG_AWD1_MST)) ? 1UL : 0UL +7685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode analog watchdog 1 of the ADC slave. +7689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR AWD1_SLV LL_ADC_IsActiveFlag_SLV_AWD1 +7690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD1(ADC_Common_TypeDef *ADCxy_COMMON) +7695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV) == (LL_ADC_FLAG_AWD1_SLV)) ? 1UL : 0UL +7697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 306 + + +7700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC analog watchdog 2 of the ADC master. +7701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR AWD2_MST LL_ADC_IsActiveFlag_MST_AWD2 +7702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD2(ADC_Common_TypeDef *ADCxy_COMMON) +7707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_MST) == (LL_ADC_FLAG_AWD2_MST)) ? 1UL : 0UL +7709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC analog watchdog 2 of the ADC slave. +7713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR AWD2_SLV LL_ADC_IsActiveFlag_SLV_AWD2 +7714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD2(ADC_Common_TypeDef *ADCxy_COMMON) +7719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_SLV) == (LL_ADC_FLAG_AWD2_SLV)) ? 1UL : 0UL +7721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC analog watchdog 3 of the ADC master. +7725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR AWD3_MST LL_ADC_IsActiveFlag_MST_AWD3 +7726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD3(ADC_Common_TypeDef *ADCxy_COMMON) +7731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_MST) == (LL_ADC_FLAG_AWD3_MST)) ? 1UL : 0UL +7733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get flag multimode ADC analog watchdog 3 of the ADC slave. +7737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CSR AWD3_SLV LL_ADC_IsActiveFlag_SLV_AWD3 +7738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +7739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +7740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval State of bit (1 or 0). +7741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD3(ADC_Common_TypeDef *ADCxy_COMMON) +7743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_SLV) == (LL_ADC_FLAG_AWD3_SLV)) ? 1UL : 0UL +7745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +7747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +7750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_IT_Management ADC IT management +7753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +7754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/ccICigVb.s page 307 + + +7757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable ADC ready. +7758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER ADRDYIE LL_ADC_EnableIT_ADRDY +7759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_ADRDY(ADC_TypeDef *ADCx) +7763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_ADRDY); +7765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC group regular end of unitary conversion. +7769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER EOCIE LL_ADC_EnableIT_EOC +7770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_EOC(ADC_TypeDef *ADCx) +7774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_EOC); +7776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC group regular end of sequence conversions. +7780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER EOSIE LL_ADC_EnableIT_EOS +7781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_EOS(ADC_TypeDef *ADCx) +7785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_EOS); +7787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable ADC group regular interruption overrun. +7791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER OVRIE LL_ADC_EnableIT_OVR +7792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx) +7796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_OVR); +7798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC group regular end of sampling. +7802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER EOSMPIE LL_ADC_EnableIT_EOSMP +7803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_EOSMP(ADC_TypeDef *ADCx) +7807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_EOSMP); +7809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC group injected end of unitary conversion. +7813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER JEOCIE LL_ADC_EnableIT_JEOC + ARM GAS /tmp/ccICigVb.s page 308 + + +7814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_JEOC(ADC_TypeDef *ADCx) +7818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_JEOC); +7820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC group injected end of sequence conversions. +7824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER JEOSIE LL_ADC_EnableIT_JEOS +7825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx) +7829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_JEOS); +7831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC group injected context queue overflow. +7835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER JQOVFIE LL_ADC_EnableIT_JQOVF +7836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_JQOVF(ADC_TypeDef *ADCx) +7840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_JQOVF); +7842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC analog watchdog 1. +7846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER AWD1IE LL_ADC_EnableIT_AWD1 +7847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx) +7851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_AWD1); +7853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC analog watchdog 2. +7857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER AWD2IE LL_ADC_EnableIT_AWD2 +7858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_AWD2(ADC_TypeDef *ADCx) +7862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_AWD2); +7864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable interruption ADC analog watchdog 3. +7868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER AWD3IE LL_ADC_EnableIT_AWD3 +7869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None + ARM GAS /tmp/ccICigVb.s page 309 + + +7871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableIT_AWD3(ADC_TypeDef *ADCx) +7873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->IER, LL_ADC_IT_AWD3); +7875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC ready. +7879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER ADRDYIE LL_ADC_DisableIT_ADRDY +7880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_ADRDY(ADC_TypeDef *ADCx) +7884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_ADRDY); +7886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group regular end of unitary conversion. +7890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER EOCIE LL_ADC_DisableIT_EOC +7891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_EOC(ADC_TypeDef *ADCx) +7895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOC); +7897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group regular end of sequence conversions. +7901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER EOSIE LL_ADC_DisableIT_EOS +7902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_EOS(ADC_TypeDef *ADCx) +7906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOS); +7908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group regular overrun. +7912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER OVRIE LL_ADC_DisableIT_OVR +7913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx) +7917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_OVR); +7919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group regular end of sampling. +7923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER EOSMPIE LL_ADC_DisableIT_EOSMP +7924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_EOSMP(ADC_TypeDef *ADCx) + ARM GAS /tmp/ccICigVb.s page 310 + + +7928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOSMP); +7930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group regular end of unitary conversion. +7934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER JEOCIE LL_ADC_DisableIT_JEOC +7935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_JEOC(ADC_TypeDef *ADCx) +7939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOC); +7941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group injected end of sequence conversions. +7945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER JEOSIE LL_ADC_DisableIT_JEOS +7946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx) +7950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOS); +7952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC group injected context queue overflow. +7956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER JQOVFIE LL_ADC_DisableIT_JQOVF +7957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_JQOVF(ADC_TypeDef *ADCx) +7961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_JQOVF); +7963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC analog watchdog 1. +7967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER AWD1IE LL_ADC_DisableIT_AWD1 +7968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx) + 4006 .loc 2 7971 22 view .LVU1218 + 4007 .LBB515: +7972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD1); + 4008 .loc 2 7973 3 view .LVU1219 + 4009 0110 5368 ldr r3, [r2, #4] + 4010 0112 23F08003 bic r3, r3, #128 + 4011 0116 5360 str r3, [r2, #4] +7974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4012 .loc 2 7974 1 is_stmt 0 view .LVU1220 + 4013 0118 77E0 b .L247 + 4014 .LVL324: + 4015 .L249: + ARM GAS /tmp/ccICigVb.s page 311 + + + 4016 .loc 2 7974 1 view .LVU1221 + 4017 .LBE515: + 4018 .LBE514: +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_INJECTED)); + 4019 .loc 1 3056 11 is_stmt 1 view .LVU1222 +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** LL_ADC_GROUP_INJECTED)); + 4020 .loc 1 3056 72 is_stmt 0 view .LVU1223 + 4021 011a AA68 ldr r2, [r5, #8] + 4022 .LVL325: + 4023 .LBB516: + 4024 .LBI516: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4025 .loc 2 5725 22 is_stmt 1 view .LVU1224 + 4026 .LBB517: +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 4027 .loc 2 5731 3 view .LVU1225 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 4028 .loc 2 5734 3 view .LVU1226 + 4029 011c C368 ldr r3, [r0, #12] + 4030 011e 23F0FB43 bic r3, r3, #2105540608 + 4031 0122 23F48003 bic r3, r3, #4194304 + 4032 0126 02F0F842 and r2, r2, #2080374784 + 4033 .LVL326: +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 4034 .loc 2 5734 3 is_stmt 0 view .LVU1227 + 4035 012a 42F0A072 orr r2, r2, #20971520 + 4036 012e 1343 orrs r3, r3, r2 + 4037 0130 C360 str r3, [r0, #12] + 4038 .LVL327: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4039 .loc 2 5737 1 view .LVU1228 + 4040 0132 DBE7 b .L257 + 4041 .LVL328: + 4042 .L255: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4043 .loc 2 5737 1 view .LVU1229 + 4044 .LBE517: + 4045 .LBE516: +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4046 .loc 1 3074 11 is_stmt 1 view .LVU1230 + 4047 .LBB518: + 4048 .LBI518: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4049 .loc 2 5725 22 view .LVU1231 + 4050 .LBB519: +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 4051 .loc 2 5731 3 view .LVU1232 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 4052 .loc 2 5734 3 view .LVU1233 + 4053 0134 C368 ldr r3, [r0, #12] + 4054 0136 23F0FB43 bic r3, r3, #2105540608 + 4055 013a 23F48003 bic r3, r3, #4194304 + 4056 013e 43F0C073 orr r3, r3, #25165824 + 4057 0142 C360 str r3, [r0, #12] +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4058 .loc 2 5737 1 is_stmt 0 view .LVU1234 + 4059 0144 D2E7 b .L257 + ARM GAS /tmp/ccICigVb.s page 312 + + + 4060 .LVL329: + 4061 .L254: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4062 .loc 2 5737 1 view .LVU1235 + 4063 .LBE519: + 4064 .LBE518: +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4065 .loc 1 3078 11 is_stmt 1 view .LVU1236 + 4066 .LBB520: + 4067 .LBI520: +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4068 .loc 2 5725 22 view .LVU1237 + 4069 .LBB521: +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C + 4070 .loc 2 5731 3 view .LVU1238 +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), + 4071 .loc 2 5734 3 view .LVU1239 + 4072 0146 C368 ldr r3, [r0, #12] + 4073 0148 23F0FB43 bic r3, r3, #2105540608 + 4074 014c 23F48003 bic r3, r3, #4194304 + 4075 0150 C360 str r3, [r0, #12] +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4076 .loc 2 5737 1 is_stmt 0 view .LVU1240 + 4077 0152 CBE7 b .L257 + 4078 .LVL330: + 4079 .L285: +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4080 .loc 2 5737 1 view .LVU1241 + 4081 .LBE521: + 4082 .LBE520: +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4083 .loc 1 3099 9 is_stmt 1 view .LVU1242 + 4084 0154 2268 ldr r2, [r4] + 4085 .LVL331: + 4086 .LBB522: + 4087 .LBI522: +7850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4088 .loc 2 7850 22 view .LVU1243 + 4089 .LBB523: +7852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4090 .loc 2 7852 3 view .LVU1244 + 4091 0156 5368 ldr r3, [r2, #4] + 4092 0158 43F08003 orr r3, r3, #128 + 4093 015c 5360 str r3, [r2, #4] +7853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4094 .loc 2 7853 1 is_stmt 0 view .LVU1245 + 4095 015e 54E0 b .L247 + 4096 .LVL332: + 4097 .L260: +7853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4098 .loc 2 7853 1 view .LVU1246 + 4099 .LBE523: + 4100 .LBE522: +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4101 .loc 1 3109 7 view .LVU1247 + 4102 0160 B3F1C07F cmp r3, #25165824 + 4103 0164 3AD0 beq .L261 + ARM GAS /tmp/ccICigVb.s page 313 + + + 4104 0166 B3F1E07F cmp r3, #29360128 + 4105 016a 7FF47CAF bne .L262 + 4106 .L259: +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4107 .loc 1 3116 11 is_stmt 1 view .LVU1248 +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4108 .loc 1 3116 14 is_stmt 0 view .LVU1249 + 4109 016e 5D4B ldr r3, .L291+4 + 4110 0170 9942 cmp r1, r3 + 4111 0172 0DD0 beq .L286 +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4112 .loc 1 3122 13 is_stmt 1 view .LVU1250 + 4113 0174 AB68 ldr r3, [r5, #8] + 4114 0176 C3F31202 ubfx r2, r3, #0, #19 + 4115 .LVL333: +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4116 .loc 1 3122 13 is_stmt 0 view .LVU1251 + 4117 017a 1ABB cbnz r2, .L268 +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4118 .loc 1 3122 13 discriminator 1 view .LVU1252 + 4119 017c C3F38463 ubfx r3, r3, #26, #5 + 4120 0180 0122 movs r2, #1 + 4121 0182 9A40 lsls r2, r2, r3 + 4122 .L269: +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4123 .loc 1 3122 13 discriminator 4 view .LVU1253 + 4124 0184 D0F8A430 ldr r3, [r0, #164] + 4125 0188 1343 orrs r3, r3, r2 + 4126 018a C0F8A430 str r3, [r0, #164] + 4127 018e 28E0 b .L267 + 4128 .LVL334: + 4129 .L286: +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4130 .loc 1 3118 13 is_stmt 1 view .LVU1254 + 4131 0190 AB68 ldr r3, [r5, #8] + 4132 0192 C3F31202 ubfx r2, r3, #0, #19 + 4133 .LVL335: +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4134 .loc 1 3118 13 is_stmt 0 view .LVU1255 + 4135 0196 4AB9 cbnz r2, .L264 +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4136 .loc 1 3118 13 discriminator 1 view .LVU1256 + 4137 0198 C3F38463 ubfx r3, r3, #26, #5 + 4138 019c 0122 movs r2, #1 + 4139 019e 9A40 lsls r2, r2, r3 + 4140 .L265: +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4141 .loc 1 3118 13 discriminator 4 view .LVU1257 + 4142 01a0 D0F8A030 ldr r3, [r0, #160] + 4143 01a4 1343 orrs r3, r3, r2 + 4144 01a6 C0F8A030 str r3, [r0, #160] + 4145 01aa 1AE0 b .L267 + 4146 .L264: + 4147 .LVL336: + 4148 .LBB524: + 4149 .LBI524: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccICigVb.s page 314 + + + 4150 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1258 + 4151 .LBB525: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4152 .loc 3 1050 3 discriminator 2 view .LVU1259 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4153 .loc 3 1055 4 discriminator 2 view .LVU1260 + 4154 .syntax unified + 4155 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4156 01ac 93FAA3F3 rbit r3, r3 + 4157 @ 0 "" 2 + 4158 .LVL337: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4159 .loc 3 1068 3 discriminator 2 view .LVU1261 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4160 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1262 + 4161 .thumb + 4162 .syntax unified + 4163 .LBE525: + 4164 .LBE524: + 4165 .LBB526: + 4166 .LBI526: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4167 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1263 + 4168 .LBB527: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4169 .loc 3 1089 3 discriminator 2 view .LVU1264 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4170 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1265 + 4171 01b0 33B1 cbz r3, .L280 + 4172 .loc 3 1093 3 is_stmt 1 view .LVU1266 + 4173 .loc 3 1093 10 is_stmt 0 view .LVU1267 + 4174 01b2 B3FA83F3 clz r3, r3 + 4175 .LVL338: + 4176 .L266: + 4177 .loc 3 1093 10 view .LVU1268 + 4178 .LBE527: + 4179 .LBE526: +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4180 .loc 1 3118 13 view .LVU1269 + 4181 01b6 03F01F03 and r3, r3, #31 + 4182 01ba 0122 movs r2, #1 + 4183 01bc 9A40 lsls r2, r2, r3 + 4184 01be EFE7 b .L265 + 4185 .LVL339: + 4186 .L280: + 4187 .LBB529: + 4188 .LBB528: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4189 .loc 3 1091 12 view .LVU1270 + 4190 01c0 2023 movs r3, #32 + 4191 .LVL340: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4192 .loc 3 1091 12 view .LVU1271 + 4193 01c2 F8E7 b .L266 + 4194 .LVL341: + 4195 .L268: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + ARM GAS /tmp/ccICigVb.s page 315 + + + 4196 .loc 3 1091 12 view .LVU1272 + 4197 .LBE528: + 4198 .LBE529: + 4199 .LBB530: + 4200 .LBI530: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4201 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1273 + 4202 .LBB531: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4203 .loc 3 1050 3 discriminator 2 view .LVU1274 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4204 .loc 3 1055 4 discriminator 2 view .LVU1275 + 4205 .syntax unified + 4206 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4207 01c4 93FAA3F3 rbit r3, r3 + 4208 @ 0 "" 2 + 4209 .LVL342: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4210 .loc 3 1068 3 discriminator 2 view .LVU1276 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4211 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1277 + 4212 .thumb + 4213 .syntax unified + 4214 .LBE531: + 4215 .LBE530: + 4216 .LBB532: + 4217 .LBI532: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4218 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1278 + 4219 .LBB533: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4220 .loc 3 1089 3 discriminator 2 view .LVU1279 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4221 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1280 + 4222 01c8 33B1 cbz r3, .L281 + 4223 .loc 3 1093 3 is_stmt 1 view .LVU1281 + 4224 .loc 3 1093 10 is_stmt 0 view .LVU1282 + 4225 01ca B3FA83F3 clz r3, r3 + 4226 .LVL343: + 4227 .L270: + 4228 .loc 3 1093 10 view .LVU1283 + 4229 .LBE533: + 4230 .LBE532: +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4231 .loc 1 3122 13 view .LVU1284 + 4232 01ce 03F01F03 and r3, r3, #31 + 4233 01d2 0122 movs r2, #1 + 4234 01d4 9A40 lsls r2, r2, r3 + 4235 01d6 D5E7 b .L269 + 4236 .LVL344: + 4237 .L281: + 4238 .LBB535: + 4239 .LBB534: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4240 .loc 3 1091 12 view .LVU1285 + 4241 01d8 2023 movs r3, #32 + 4242 .LVL345: + ARM GAS /tmp/ccICigVb.s page 316 + + +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4243 .loc 3 1091 12 view .LVU1286 + 4244 01da F8E7 b .L270 + 4245 .LVL346: + 4246 .L261: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4247 .loc 3 1091 12 view .LVU1287 + 4248 .LBE534: + 4249 .LBE535: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4250 .loc 1 3129 11 is_stmt 1 view .LVU1288 + 4251 01dc 424A ldr r2, .L291+8 + 4252 .LVL347: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4253 .loc 1 3129 11 is_stmt 0 view .LVU1289 + 4254 01de FFF7FEFF bl LL_ADC_SetAnalogWDMonitChannels + 4255 .LVL348: +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4256 .loc 1 3130 11 is_stmt 1 view .LVU1290 + 4257 .L267: +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4258 .loc 1 3137 7 view .LVU1291 +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4259 .loc 1 3137 26 is_stmt 0 view .LVU1292 + 4260 01e2 2A68 ldr r2, [r5] +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4261 .loc 1 3137 10 view .LVU1293 + 4262 01e4 3F4B ldr r3, .L291+4 + 4263 01e6 9A42 cmp r2, r3 + 4264 01e8 44D0 beq .L287 +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4265 .loc 1 3162 9 is_stmt 1 view .LVU1294 + 4266 01ea E36D ldr r3, [r4, #92] + 4267 01ec 23F48023 bic r3, r3, #262144 + 4268 01f0 E365 str r3, [r4, #92] +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4269 .loc 1 3168 9 view .LVU1295 + 4270 01f2 2368 ldr r3, [r4] + 4271 .LVL349: + 4272 .LBB536: + 4273 .LBI536: +7477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4274 .loc 2 7477 22 view .LVU1296 + 4275 .LBB537: +7479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4276 .loc 2 7479 3 view .LVU1297 + 4277 01f4 4FF40072 mov r2, #512 + 4278 01f8 1A60 str r2, [r3] + 4279 .LVL350: +7479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4280 .loc 2 7479 3 is_stmt 0 view .LVU1298 + 4281 .LBE537: + 4282 .LBE536: +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4283 .loc 1 3171 9 is_stmt 1 view .LVU1299 +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4284 .loc 1 3171 28 is_stmt 0 view .LVU1300 + ARM GAS /tmp/ccICigVb.s page 317 + + + 4285 01fa 2B7B ldrb r3, [r5, #12] @ zero_extendqisi2 +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4286 .loc 1 3171 12 view .LVU1301 + 4287 01fc 012B cmp r3, #1 + 4288 01fe 50D0 beq .L288 +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4289 .loc 1 3177 11 is_stmt 1 view .LVU1302 + 4290 0200 2268 ldr r2, [r4] + 4291 .LVL351: + 4292 .LBB538: + 4293 .LBI538: +7975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC analog watchdog 2. +7978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER AWD2IE LL_ADC_DisableIT_AWD2 +7979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_AWD2(ADC_TypeDef *ADCx) +7983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD2); +7985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable interruption ADC analog watchdog 3. +7989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll IER AWD3IE LL_ADC_DisableIT_AWD3 +7990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableIT_AWD3(ADC_TypeDef *ADCx) + 4294 .loc 2 7993 22 view .LVU1303 + 4295 .LBB539: +7994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD3); + 4296 .loc 2 7995 3 view .LVU1304 + 4297 0202 5368 ldr r3, [r2, #4] + 4298 0204 23F40073 bic r3, r3, #512 + 4299 0208 5360 str r3, [r2, #4] + 4300 .LVL352: + 4301 .L247: + 4302 .loc 2 7995 3 is_stmt 0 view .LVU1305 + 4303 .LBE539: + 4304 .LBE538: +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4305 .loc 1 3185 3 is_stmt 1 view .LVU1306 +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4306 .loc 1 3185 22 is_stmt 0 view .LVU1307 + 4307 020a 2B68 ldr r3, [r5] +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4308 .loc 1 3185 6 view .LVU1308 + 4309 020c 344A ldr r2, .L291 + 4310 020e 9342 cmp r3, r2 + 4311 0210 4DD0 beq .L289 +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThre + 4312 .loc 1 3199 5 is_stmt 1 view .LVU1309 +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThre + 4313 .loc 1 3199 34 is_stmt 0 view .LVU1310 + ARM GAS /tmp/ccICigVb.s page 318 + + + 4314 0212 2068 ldr r0, [r4] + 4315 0214 C268 ldr r2, [r0, #12] + 4316 0216 02F01802 and r2, r2, #24 + 4317 021a 182A cmp r2, #24 + 4318 021c 56D0 beq .L276 +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThre + 4319 .loc 1 3199 34 discriminator 1 view .LVU1311 + 4320 021e 2969 ldr r1, [r5, #16] + 4321 0220 C268 ldr r2, [r0, #12] + 4322 0222 C2F3C102 ubfx r2, r2, #3, #2 + 4323 0226 C2F10202 rsb r2, r2, #2 + 4324 022a 5200 lsls r2, r2, #1 + 4325 022c 02F01E02 and r2, r2, #30 + 4326 0230 21FA02FC lsr ip, r1, r2 + 4327 .L277: + 4328 .LVL353: +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4329 .loc 1 3200 5 is_stmt 1 discriminator 4 view .LVU1312 +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4330 .loc 1 3200 34 is_stmt 0 discriminator 4 view .LVU1313 + 4331 0234 C268 ldr r2, [r0, #12] + 4332 0236 02F01802 and r2, r2, #24 + 4333 023a 182A cmp r2, #24 + 4334 023c 4AD0 beq .L278 +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4335 .loc 1 3200 34 discriminator 1 view .LVU1314 + 4336 023e 6969 ldr r1, [r5, #20] + 4337 0240 C268 ldr r2, [r0, #12] + 4338 0242 C2F3C102 ubfx r2, r2, #3, #2 + 4339 0246 C2F10202 rsb r2, r2, #2 + 4340 024a 5200 lsls r2, r2, #1 + 4341 024c 02F01E02 and r2, r2, #30 + 4342 0250 D140 lsrs r1, r1, r2 + 4343 .L275: + 4344 .LVL354: +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted); + 4345 .loc 1 3204 3 is_stmt 1 view .LVU1315 + 4346 0252 2068 ldr r0, [r4] + 4347 .LVL355: + 4348 .LBB540: + 4349 .LBI540: +5965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AWDThresholdLowValue) + 4350 .loc 2 5965 22 view .LVU1316 + 4351 .LBB541: +5973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4352 .loc 2 5973 3 view .LVU1317 +5973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4353 .loc 2 5973 25 is_stmt 0 view .LVU1318 + 4354 0254 2030 adds r0, r0, #32 + 4355 .LVL356: +5973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4356 .loc 2 5973 25 view .LVU1319 + 4357 0256 1B0D lsrs r3, r3, #20 + 4358 .LVL357: +5973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4359 .loc 2 5973 25 view .LVU1320 + 4360 0258 9B00 lsls r3, r3, #2 + ARM GAS /tmp/ccICigVb.s page 319 + + + 4361 025a 03F00C03 and r3, r3, #12 + 4362 .LVL358: +5975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_TR1_HT1 | ADC_TR1_LT1, + 4363 .loc 2 5975 3 is_stmt 1 view .LVU1321 + 4364 025e C258 ldr r2, [r0, r3] + 4365 0260 02F0F022 and r2, r2, #-268374016 + 4366 0264 41EA0C41 orr r1, r1, ip, lsl #16 + 4367 .LVL359: +5975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_TR1_HT1 | ADC_TR1_LT1, + 4368 .loc 2 5975 3 is_stmt 0 view .LVU1322 + 4369 0268 0A43 orrs r2, r2, r1 + 4370 026a C250 str r2, [r0, r3] + 4371 .LVL360: +5975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_TR1_HT1 | ADC_TR1_LT1, + 4372 .loc 2 5975 3 view .LVU1323 + 4373 .LBE541: + 4374 .LBE540: +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4375 .loc 1 3208 3 is_stmt 1 view .LVU1324 +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4376 .loc 1 3208 3 view .LVU1325 + 4377 026c 0020 movs r0, #0 + 4378 026e 84F85800 strb r0, [r4, #88] +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4379 .loc 1 3208 3 view .LVU1326 +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4380 .loc 1 3211 3 view .LVU1327 + 4381 .LVL361: + 4382 .L244: +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4383 .loc 1 3212 1 is_stmt 0 view .LVU1328 + 4384 0272 38BD pop {r3, r4, r5, pc} + 4385 .LVL362: + 4386 .L287: +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4387 .loc 1 3140 9 is_stmt 1 view .LVU1329 + 4388 0274 E36D ldr r3, [r4, #92] + 4389 0276 23F40033 bic r3, r3, #131072 + 4390 027a E365 str r3, [r4, #92] +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4391 .loc 1 3146 9 view .LVU1330 + 4392 027c 2368 ldr r3, [r4] + 4393 .LVL363: + 4394 .LBB542: + 4395 .LBI542: +7466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4396 .loc 2 7466 22 view .LVU1331 + 4397 .LBB543: +7468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4398 .loc 2 7468 3 view .LVU1332 + 4399 027e 4FF48072 mov r2, #256 + 4400 0282 1A60 str r2, [r3] + 4401 .LVL364: +7468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4402 .loc 2 7468 3 is_stmt 0 view .LVU1333 + 4403 .LBE543: + 4404 .LBE542: + ARM GAS /tmp/ccICigVb.s page 320 + + +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4405 .loc 1 3149 9 is_stmt 1 view .LVU1334 +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4406 .loc 1 3149 28 is_stmt 0 view .LVU1335 + 4407 0284 2B7B ldrb r3, [r5, #12] @ zero_extendqisi2 +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4408 .loc 1 3149 12 view .LVU1336 + 4409 0286 012B cmp r3, #1 + 4410 0288 05D0 beq .L290 +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4411 .loc 1 3155 11 is_stmt 1 view .LVU1337 + 4412 028a 2268 ldr r2, [r4] + 4413 .LVL365: + 4414 .LBB544: + 4415 .LBI544: +7982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4416 .loc 2 7982 22 view .LVU1338 + 4417 .LBB545: +7984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4418 .loc 2 7984 3 view .LVU1339 + 4419 028c 5368 ldr r3, [r2, #4] + 4420 028e 23F48073 bic r3, r3, #256 + 4421 0292 5360 str r3, [r2, #4] +7985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4422 .loc 2 7985 1 is_stmt 0 view .LVU1340 + 4423 0294 B9E7 b .L247 + 4424 .LVL366: + 4425 .L290: +7985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4426 .loc 2 7985 1 view .LVU1341 + 4427 .LBE545: + 4428 .LBE544: +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4429 .loc 1 3151 11 is_stmt 1 view .LVU1342 + 4430 0296 2268 ldr r2, [r4] + 4431 .LVL367: + 4432 .LBB546: + 4433 .LBI546: +7861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4434 .loc 2 7861 22 view .LVU1343 + 4435 .LBB547: +7863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4436 .loc 2 7863 3 view .LVU1344 + 4437 0298 5368 ldr r3, [r2, #4] + 4438 029a 43F48073 orr r3, r3, #256 + 4439 029e 5360 str r3, [r2, #4] +7864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4440 .loc 2 7864 1 is_stmt 0 view .LVU1345 + 4441 02a0 B3E7 b .L247 + 4442 .LVL368: + 4443 .L288: +7864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4444 .loc 2 7864 1 view .LVU1346 + 4445 .LBE547: + 4446 .LBE546: +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4447 .loc 1 3173 11 is_stmt 1 view .LVU1347 + ARM GAS /tmp/ccICigVb.s page 321 + + + 4448 02a2 2268 ldr r2, [r4] + 4449 .LVL369: + 4450 .LBB548: + 4451 .LBI548: +7872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4452 .loc 2 7872 22 view .LVU1348 + 4453 .LBB549: +7874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4454 .loc 2 7874 3 view .LVU1349 + 4455 02a4 5368 ldr r3, [r2, #4] + 4456 02a6 43F40073 orr r3, r3, #512 + 4457 02aa 5360 str r3, [r2, #4] +7875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4458 .loc 2 7875 1 is_stmt 0 view .LVU1350 + 4459 02ac ADE7 b .L247 + 4460 .LVL370: + 4461 .L289: +7875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4462 .loc 2 7875 1 view .LVU1351 + 4463 .LBE549: + 4464 .LBE548: +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThres + 4465 .loc 1 3190 5 is_stmt 1 view .LVU1352 +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThres + 4466 .loc 1 3190 34 is_stmt 0 view .LVU1353 + 4467 02ae 2969 ldr r1, [r5, #16] + 4468 02b0 2068 ldr r0, [r4] + 4469 02b2 C268 ldr r2, [r0, #12] + 4470 02b4 C2F3C102 ubfx r2, r2, #3, #2 + 4471 02b8 5200 lsls r2, r2, #1 +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThres + 4472 .loc 1 3190 32 view .LVU1354 + 4473 02ba 01FA02FC lsl ip, r1, r2 + 4474 .LVL371: +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4475 .loc 1 3191 5 is_stmt 1 view .LVU1355 +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4476 .loc 1 3191 34 is_stmt 0 view .LVU1356 + 4477 02be 6969 ldr r1, [r5, #20] + 4478 02c0 C268 ldr r2, [r0, #12] + 4479 02c2 C2F3C102 ubfx r2, r2, #3, #2 + 4480 02c6 5200 lsls r2, r2, #1 +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4481 .loc 1 3191 32 view .LVU1357 + 4482 02c8 9140 lsls r1, r1, r2 + 4483 .LVL372: +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4484 .loc 1 3191 32 view .LVU1358 + 4485 02ca C2E7 b .L275 + 4486 .LVL373: + 4487 .L276: +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThre + 4488 .loc 1 3199 34 discriminator 2 view .LVU1359 + 4489 02cc 2A69 ldr r2, [r5, #16] + 4490 02ce 4FEA820C lsl ip, r2, #2 + 4491 02d2 AFE7 b .L277 + 4492 .LVL374: + ARM GAS /tmp/ccICigVb.s page 322 + + + 4493 .L278: +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4494 .loc 1 3200 34 discriminator 2 view .LVU1360 + 4495 02d4 6969 ldr r1, [r5, #20] + 4496 02d6 8900 lsls r1, r1, #2 + 4497 02d8 BBE7 b .L275 + 4498 .LVL375: + 4499 .L279: +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4500 .loc 1 3030 3 view .LVU1361 + 4501 02da 0220 movs r0, #2 + 4502 .LVL376: +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4503 .loc 1 3030 3 view .LVU1362 + 4504 02dc C9E7 b .L244 + 4505 .L292: + 4506 02de 00BF .align 2 + 4507 .L291: + 4508 02e0 0000C07D .word 2109734912 + 4509 02e4 FFFF1700 .word 1572863 + 4510 02e8 FFFF8701 .word 25690111 + 4511 .cfi_endproc + 4512 .LFE350: + 4514 .section .text.HAL_ADC_GetState,"ax",%progbits + 4515 .align 1 + 4516 .global HAL_ADC_GetState + 4517 .syntax unified + 4518 .thumb + 4519 .thumb_func + 4521 HAL_ADC_GetState: + 4522 .LVL377: + 4523 .LFB351: +3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ + 4524 .loc 1 3247 1 is_stmt 1 view -0 + 4525 .cfi_startproc + 4526 @ args = 0, pretend = 0, frame = 0 + 4527 @ frame_needed = 0, uses_anonymous_args = 0 + 4528 @ link register save eliminated. +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4529 .loc 1 3249 3 view .LVU1364 +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4530 .loc 1 3252 3 view .LVU1365 +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4531 .loc 1 3252 14 is_stmt 0 view .LVU1366 + 4532 0000 C06D ldr r0, [r0, #92] + 4533 .LVL378: +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4534 .loc 1 3253 1 view .LVU1367 + 4535 0002 7047 bx lr + 4536 .cfi_endproc + 4537 .LFE351: + 4539 .section .text.HAL_ADC_GetError,"ax",%progbits + 4540 .align 1 + 4541 .global HAL_ADC_GetError + 4542 .syntax unified + 4543 .thumb + 4544 .thumb_func + ARM GAS /tmp/ccICigVb.s page 323 + + + 4546 HAL_ADC_GetError: + 4547 .LVL379: + 4548 .LFB352: +3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Check the parameters */ + 4549 .loc 1 3261 1 is_stmt 1 view -0 + 4550 .cfi_startproc + 4551 @ args = 0, pretend = 0, frame = 0 + 4552 @ frame_needed = 0, uses_anonymous_args = 0 + 4553 @ link register save eliminated. +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4554 .loc 1 3263 3 view .LVU1369 +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4555 .loc 1 3265 3 view .LVU1370 +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4556 .loc 1 3265 14 is_stmt 0 view .LVU1371 + 4557 0000 006E ldr r0, [r0, #96] + 4558 .LVL380: +3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4559 .loc 1 3266 1 view .LVU1372 + 4560 0002 7047 bx lr + 4561 .cfi_endproc + 4562 .LFE352: + 4564 .section .text.ADC_ConversionStop,"ax",%progbits + 4565 .align 1 + 4566 .global ADC_ConversionStop + 4567 .syntax unified + 4568 .thumb + 4569 .thumb_func + 4571 ADC_ConversionStop: + 4572 .LVL381: + 4573 .LFB353: +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 4574 .loc 1 3291 1 is_stmt 1 view -0 + 4575 .cfi_startproc + 4576 @ args = 0, pretend = 0, frame = 0 + 4577 @ frame_needed = 0, uses_anonymous_args = 0 +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 4578 .loc 1 3291 1 is_stmt 0 view .LVU1374 + 4579 0000 70B5 push {r4, r5, r6, lr} + 4580 .LCFI20: + 4581 .cfi_def_cfa_offset 16 + 4582 .cfi_offset 4, -16 + 4583 .cfi_offset 5, -12 + 4584 .cfi_offset 6, -8 + 4585 .cfi_offset 14, -4 + 4586 0002 0446 mov r4, r0 +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t Conversion_Timeout_CPU_cycles = 0UL; + 4587 .loc 1 3292 3 is_stmt 1 view .LVU1375 +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t conversion_group_reassigned = ConversionGroup; + 4588 .loc 1 3293 3 view .LVU1376 + 4589 .LVL382: +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_ADC_CR_ADSTART_JADSTART; + 4590 .loc 1 3294 3 view .LVU1377 +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 4591 .loc 1 3295 3 view .LVU1378 +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 4592 .loc 1 3296 3 view .LVU1379 + ARM GAS /tmp/ccICigVb.s page 324 + + +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4593 .loc 1 3297 3 view .LVU1380 +3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** assert_param(IS_ADC_CONVERSION_GROUP(ConversionGroup)); + 4594 .loc 1 3300 3 view .LVU1381 +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4595 .loc 1 3301 3 view .LVU1382 +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 4596 .loc 1 3305 3 view .LVU1383 +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 4597 .loc 1 3305 44 is_stmt 0 view .LVU1384 + 4598 0004 0368 ldr r3, [r0] + 4599 .LVL383: + 4600 .LBB550: + 4601 .LBI550: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4602 .loc 2 6851 26 is_stmt 1 view .LVU1385 + 4603 .LBB551: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4604 .loc 2 6853 3 view .LVU1386 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4605 .loc 2 6853 12 is_stmt 0 view .LVU1387 + 4606 0006 9A68 ldr r2, [r3, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4607 .loc 2 6853 74 view .LVU1388 + 4608 0008 12F00402 ands r2, r2, #4 + 4609 000c 00D0 beq .L296 + 4610 000e 0122 movs r2, #1 + 4611 .L296: + 4612 .LVL384: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4613 .loc 2 6853 74 view .LVU1389 + 4614 .LBE551: + 4615 .LBE550: +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if ((tmp_adc_is_conversion_on_going_regular != 0UL) + 4616 .loc 1 3306 3 is_stmt 1 view .LVU1390 + 4617 .LBB552: + 4618 .LBI552: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4619 .loc 2 7076 26 view .LVU1391 + 4620 .LBB553: +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4621 .loc 2 7078 3 view .LVU1392 +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4622 .loc 2 7078 12 is_stmt 0 view .LVU1393 + 4623 0010 9868 ldr r0, [r3, #8] + 4624 .LVL385: +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4625 .loc 2 7078 76 view .LVU1394 + 4626 0012 10F00800 ands r0, r0, #8 + 4627 0016 00D0 beq .L297 + 4628 0018 0120 movs r0, #1 + 4629 .L297: + 4630 .LVL386: +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4631 .loc 2 7078 76 view .LVU1395 + 4632 .LBE553: + 4633 .LBE552: + ARM GAS /tmp/ccICigVb.s page 325 + + +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_adc_is_conversion_on_going_injected != 0UL) + 4634 .loc 1 3307 3 is_stmt 1 view .LVU1396 +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_adc_is_conversion_on_going_injected != 0UL) + 4635 .loc 1 3307 6 is_stmt 0 view .LVU1397 + 4636 001a 0AB9 cbnz r2, .L298 +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 4637 .loc 1 3308 7 view .LVU1398 + 4638 001c 0028 cmp r0, #0 + 4639 001e 6DD0 beq .L311 + 4640 .L298: +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (hadc->Init.ContinuousConvMode == ENABLE) + 4641 .loc 1 3317 5 is_stmt 1 view .LVU1399 +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (hadc->Init.ContinuousConvMode == ENABLE) + 4642 .loc 1 3317 25 is_stmt 0 view .LVU1400 + 4643 0020 DA68 ldr r2, [r3, #12] + 4644 .LVL387: +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (hadc->Init.ContinuousConvMode == ENABLE) + 4645 .loc 1 3317 8 view .LVU1401 + 4646 0022 12F0007F tst r2, #33554432 + 4647 0026 04D0 beq .L300 +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 4648 .loc 1 3319 9 view .LVU1402 + 4649 0028 A08B ldrh r0, [r4, #28] + 4650 .LVL388: +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 4651 .loc 1 3319 9 view .LVU1403 + 4652 002a 40F20112 movw r2, #257 + 4653 002e 9042 cmp r0, r2 + 4654 0030 4ED0 beq .L317 + 4655 .L300: +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4656 .loc 1 3346 5 is_stmt 1 view .LVU1404 +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4657 .loc 1 3346 8 is_stmt 0 view .LVU1405 + 4658 0032 0229 cmp r1, #2 + 4659 0034 12D0 beq .L305 + 4660 .LVL389: + 4661 .L304: +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4662 .loc 1 3349 7 is_stmt 1 view .LVU1406 +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4663 .loc 1 3349 11 is_stmt 0 view .LVU1407 + 4664 0036 2368 ldr r3, [r4] + 4665 .LVL390: + 4666 .LBB554: + 4667 .LBI554: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4668 .loc 2 6851 26 is_stmt 1 view .LVU1408 + 4669 .LBB555: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4670 .loc 2 6853 3 view .LVU1409 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4671 .loc 2 6853 12 is_stmt 0 view .LVU1410 + 4672 0038 9A68 ldr r2, [r3, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4673 .loc 2 6853 74 view .LVU1411 + 4674 003a 12F0040F tst r2, #4 + ARM GAS /tmp/ccICigVb.s page 326 + + + 4675 003e 0BD0 beq .L306 + 4676 .LVL391: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4677 .loc 2 6853 74 view .LVU1412 + 4678 .LBE555: + 4679 .LBE554: +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4680 .loc 1 3351 9 is_stmt 1 view .LVU1413 + 4681 .LBB556: + 4682 .LBI556: +6740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4683 .loc 2 6740 26 view .LVU1414 + 4684 .LBB557: +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4685 .loc 2 6742 3 view .LVU1415 +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4686 .loc 2 6742 12 is_stmt 0 view .LVU1416 + 4687 0040 9A68 ldr r2, [r3, #8] +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4688 .loc 2 6742 70 view .LVU1417 + 4689 0042 12F0020F tst r2, #2 + 4690 0046 07D1 bne .L306 + 4691 .LVL392: +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4692 .loc 2 6742 70 view .LVU1418 + 4693 .LBE557: + 4694 .LBE556: +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4695 .loc 1 3354 11 is_stmt 1 view .LVU1419 + 4696 .LBB558: + 4697 .LBI558: +6835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4698 .loc 2 6835 22 view .LVU1420 + 4699 .LBB559: +6840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 4700 .loc 2 6840 3 view .LVU1421 + 4701 0048 9A68 ldr r2, [r3, #8] + 4702 004a 22F00042 bic r2, r2, #-2147483648 + 4703 004e 22F03F02 bic r2, r2, #63 + 4704 0052 42F01002 orr r2, r2, #16 + 4705 0056 9A60 str r2, [r3, #8] + 4706 .LVL393: + 4707 .L306: +6840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 4708 .loc 2 6840 3 is_stmt 0 view .LVU1422 + 4709 .LBE559: + 4710 .LBE558: +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4711 .loc 1 3360 5 is_stmt 1 view .LVU1423 +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4712 .loc 1 3360 8 is_stmt 0 view .LVU1424 + 4713 0058 0129 cmp r1, #1 + 4714 005a 47D0 beq .L313 + 4715 .L305: +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4716 .loc 1 3363 7 is_stmt 1 view .LVU1425 +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 327 + + + 4717 .loc 1 3363 11 is_stmt 0 view .LVU1426 + 4718 005c 2368 ldr r3, [r4] + 4719 .LVL394: + 4720 .LBB560: + 4721 .LBI560: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4722 .loc 2 7076 26 is_stmt 1 view .LVU1427 + 4723 .LBB561: +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4724 .loc 2 7078 3 view .LVU1428 +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4725 .loc 2 7078 12 is_stmt 0 view .LVU1429 + 4726 005e 9A68 ldr r2, [r3, #8] +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4727 .loc 2 7078 76 view .LVU1430 + 4728 0060 12F0080F tst r2, #8 + 4729 0064 0BD0 beq .L308 + 4730 .LVL395: +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4731 .loc 2 7078 76 view .LVU1431 + 4732 .LBE561: + 4733 .LBE560: +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4734 .loc 1 3365 9 is_stmt 1 view .LVU1432 + 4735 .LBB562: + 4736 .LBI562: +6740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4737 .loc 2 6740 26 view .LVU1433 + 4738 .LBB563: +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4739 .loc 2 6742 3 view .LVU1434 +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4740 .loc 2 6742 12 is_stmt 0 view .LVU1435 + 4741 0066 9A68 ldr r2, [r3, #8] +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4742 .loc 2 6742 70 view .LVU1436 + 4743 0068 12F0020F tst r2, #2 + 4744 006c 07D1 bne .L308 + 4745 .LVL396: +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4746 .loc 2 6742 70 view .LVU1437 + 4747 .LBE563: + 4748 .LBE562: +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4749 .loc 1 3368 11 is_stmt 1 view .LVU1438 + 4750 .LBB564: + 4751 .LBI564: +7060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4752 .loc 2 7060 22 view .LVU1439 + 4753 .LBB565: +7065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 4754 .loc 2 7065 3 view .LVU1440 + 4755 006e 9A68 ldr r2, [r3, #8] + 4756 0070 22F00042 bic r2, r2, #-2147483648 + 4757 0074 22F03F02 bic r2, r2, #63 + 4758 0078 42F02002 orr r2, r2, #32 + 4759 007c 9A60 str r2, [r3, #8] + ARM GAS /tmp/ccICigVb.s page 328 + + + 4760 .LVL397: + 4761 .L308: +7065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 4762 .loc 2 7065 3 is_stmt 0 view .LVU1441 + 4763 .LBE565: + 4764 .LBE564: +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4765 .loc 1 3374 5 is_stmt 1 view .LVU1442 + 4766 007e 0229 cmp r1, #2 + 4767 0080 36D0 beq .L314 + 4768 0082 0329 cmp r1, #3 + 4769 0084 36D1 bne .L315 + 4770 0086 0C25 movs r5, #12 + 4771 .L307: + 4772 .LVL398: +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4773 .loc 1 3389 5 view .LVU1443 +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4774 .loc 1 3389 17 is_stmt 0 view .LVU1444 + 4775 0088 FFF7FEFF bl HAL_GetTick + 4776 .LVL399: + 4777 008c 0646 mov r6, r0 + 4778 .LVL400: +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4779 .loc 1 3391 5 is_stmt 1 view .LVU1445 + 4780 .L309: +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4781 .loc 1 3391 63 view .LVU1446 +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4782 .loc 1 3391 17 is_stmt 0 view .LVU1447 + 4783 008e 2368 ldr r3, [r4] +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4784 .loc 1 3391 27 view .LVU1448 + 4785 0090 9B68 ldr r3, [r3, #8] +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4786 .loc 1 3391 63 view .LVU1449 + 4787 0092 2B42 tst r3, r5 + 4788 0094 30D0 beq .L318 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4789 .loc 1 3393 7 is_stmt 1 view .LVU1450 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4790 .loc 1 3393 12 is_stmt 0 view .LVU1451 + 4791 0096 FFF7FEFF bl HAL_GetTick + 4792 .LVL401: +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4793 .loc 1 3393 26 view .LVU1452 + 4794 009a 801B subs r0, r0, r6 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4795 .loc 1 3393 10 view .LVU1453 + 4796 009c 0528 cmp r0, #5 + 4797 009e F6D9 bls .L309 +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4798 .loc 1 3396 9 is_stmt 1 view .LVU1454 +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4799 .loc 1 3396 18 is_stmt 0 view .LVU1455 + 4800 00a0 2368 ldr r3, [r4] +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 329 + + + 4801 .loc 1 3396 28 view .LVU1456 + 4802 00a2 9B68 ldr r3, [r3, #8] +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4803 .loc 1 3396 12 view .LVU1457 + 4804 00a4 2B42 tst r3, r5 + 4805 00a6 F2D0 beq .L309 +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4806 .loc 1 3399 11 is_stmt 1 view .LVU1458 + 4807 00a8 E36D ldr r3, [r4, #92] + 4808 00aa 43F01003 orr r3, r3, #16 + 4809 00ae E365 str r3, [r4, #92] +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4810 .loc 1 3402 11 view .LVU1459 + 4811 00b0 236E ldr r3, [r4, #96] + 4812 00b2 43F00103 orr r3, r3, #1 + 4813 00b6 2366 str r3, [r4, #96] +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4814 .loc 1 3404 11 view .LVU1460 +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4815 .loc 1 3404 18 is_stmt 0 view .LVU1461 + 4816 00b8 0120 movs r0, #1 + 4817 00ba 1EE0 b .L299 + 4818 .LVL402: + 4819 .L320: +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4820 .loc 1 3331 11 is_stmt 1 view .LVU1462 + 4821 00bc E36D ldr r3, [r4, #92] + 4822 00be 43F01003 orr r3, r3, #16 + 4823 00c2 E365 str r3, [r4, #92] +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4824 .loc 1 3334 11 view .LVU1463 + 4825 00c4 236E ldr r3, [r4, #96] + 4826 00c6 43F00103 orr r3, r3, #1 + 4827 00ca 2366 str r3, [r4, #96] +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4828 .loc 1 3336 11 view .LVU1464 +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4829 .loc 1 3336 18 is_stmt 0 view .LVU1465 + 4830 00cc 0120 movs r0, #1 + 4831 00ce 14E0 b .L299 + 4832 .LVL403: + 4833 .L317: +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t conversion_group_reassigned = ConversionGroup; + 4834 .loc 1 3293 12 view .LVU1466 + 4835 00d0 0022 movs r2, #0 + 4836 .LVL404: + 4837 .L301: +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4838 .loc 1 3326 54 is_stmt 1 view .LVU1467 +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4839 .loc 1 3326 14 is_stmt 0 view .LVU1468 + 4840 00d2 1968 ldr r1, [r3] +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4841 .loc 1 3326 54 view .LVU1469 + 4842 00d4 11F0400F tst r1, #64 + 4843 00d8 04D1 bne .L319 +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + ARM GAS /tmp/ccICigVb.s page 330 + + + 4844 .loc 1 3328 9 is_stmt 1 view .LVU1470 +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4845 .loc 1 3328 12 is_stmt 0 view .LVU1471 + 4846 00da 0949 ldr r1, .L321 + 4847 00dc 8A42 cmp r2, r1 + 4848 00de EDD8 bhi .L320 +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4849 .loc 1 3338 9 is_stmt 1 view .LVU1472 +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4850 .loc 1 3338 39 is_stmt 0 view .LVU1473 + 4851 00e0 0132 adds r2, r2, #1 + 4852 .LVL405: +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4853 .loc 1 3338 39 view .LVU1474 + 4854 00e2 F6E7 b .L301 + 4855 .L319: +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4856 .loc 1 3342 7 is_stmt 1 view .LVU1475 + 4857 00e4 4022 movs r2, #64 + 4858 .LVL406: +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4859 .loc 1 3342 7 is_stmt 0 view .LVU1476 + 4860 00e6 1A60 str r2, [r3] + 4861 .LVL407: +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4862 .loc 1 3346 5 is_stmt 1 view .LVU1477 +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4863 .loc 1 3323 35 is_stmt 0 view .LVU1478 + 4864 00e8 0121 movs r1, #1 + 4865 00ea A4E7 b .L304 + 4866 .LVL408: + 4867 .L313: +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4868 .loc 1 3384 37 view .LVU1479 + 4869 00ec 0425 movs r5, #4 + 4870 00ee CBE7 b .L307 + 4871 .L314: +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4872 .loc 1 3380 37 view .LVU1480 + 4873 00f0 0825 movs r5, #8 + 4874 00f2 C9E7 b .L307 + 4875 .L315: +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 4876 .loc 1 3384 37 view .LVU1481 + 4877 00f4 0425 movs r5, #4 + 4878 00f6 C7E7 b .L307 + 4879 .LVL409: + 4880 .L318: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4881 .loc 1 3412 10 view .LVU1482 + 4882 00f8 0020 movs r0, #0 + 4883 .LVL410: + 4884 .L299: +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4885 .loc 1 3413 1 view .LVU1483 + 4886 00fa 70BD pop {r4, r5, r6, pc} + 4887 .LVL411: + ARM GAS /tmp/ccICigVb.s page 331 + + + 4888 .L311: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4889 .loc 1 3412 10 view .LVU1484 + 4890 00fc 0020 movs r0, #0 + 4891 .LVL412: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4892 .loc 1 3412 10 view .LVU1485 + 4893 00fe FCE7 b .L299 + 4894 .L322: + 4895 .align 2 + 4896 .L321: + 4897 0100 FFFF3FA3 .word -1556086785 + 4898 .cfi_endproc + 4899 .LFE353: + 4901 .section .text.ADC_Enable,"ax",%progbits + 4902 .align 1 + 4903 .global ADC_Enable + 4904 .syntax unified + 4905 .thumb + 4906 .thumb_func + 4908 ADC_Enable: + 4909 .LVL413: + 4910 .LFB354: +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 4911 .loc 1 3423 1 is_stmt 1 view -0 + 4912 .cfi_startproc + 4913 @ args = 0, pretend = 0, frame = 0 + 4914 @ frame_needed = 0, uses_anonymous_args = 0 +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 4915 .loc 1 3423 1 is_stmt 0 view .LVU1487 + 4916 0000 38B5 push {r3, r4, r5, lr} + 4917 .LCFI21: + 4918 .cfi_def_cfa_offset 16 + 4919 .cfi_offset 3, -16 + 4920 .cfi_offset 4, -12 + 4921 .cfi_offset 5, -8 + 4922 .cfi_offset 14, -4 +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4923 .loc 1 3424 3 is_stmt 1 view .LVU1488 +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4924 .loc 1 3430 3 view .LVU1489 +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4925 .loc 1 3430 7 is_stmt 0 view .LVU1490 + 4926 0002 0368 ldr r3, [r0] + 4927 .LVL414: + 4928 .LBB566: + 4929 .LBI566: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4930 .loc 2 6729 26 is_stmt 1 view .LVU1491 + 4931 .LBB567: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4932 .loc 2 6731 3 view .LVU1492 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4933 .loc 2 6731 12 is_stmt 0 view .LVU1493 + 4934 0004 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4935 .loc 2 6731 68 view .LVU1494 + ARM GAS /tmp/ccICigVb.s page 332 + + + 4936 0006 12F0010F tst r2, #1 + 4937 000a 40D1 bne .L329 + 4938 000c 0446 mov r4, r0 + 4939 .LVL415: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4940 .loc 2 6731 68 view .LVU1495 + 4941 .LBE567: + 4942 .LBE566: +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL) + 4943 .loc 1 3433 5 is_stmt 1 view .LVU1496 +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL) + 4944 .loc 1 3433 24 is_stmt 0 view .LVU1497 + 4945 000e 9968 ldr r1, [r3, #8] +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL) + 4946 .loc 1 3433 8 view .LVU1498 + 4947 0010 204A ldr r2, .L332 + 4948 0012 1142 tst r1, r2 + 4949 0014 09D0 beq .L325 +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4950 .loc 1 3437 7 is_stmt 1 view .LVU1499 + 4951 0016 C36D ldr r3, [r0, #92] + 4952 0018 43F01003 orr r3, r3, #16 + 4953 001c C365 str r3, [r0, #92] +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4954 .loc 1 3440 7 view .LVU1500 + 4955 001e 036E ldr r3, [r0, #96] + 4956 0020 43F00103 orr r3, r3, #1 + 4957 0024 0366 str r3, [r0, #96] +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4958 .loc 1 3442 7 view .LVU1501 +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4959 .loc 1 3442 14 is_stmt 0 view .LVU1502 + 4960 0026 0120 movs r0, #1 + 4961 .LVL416: +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 4962 .loc 1 3442 14 view .LVU1503 + 4963 0028 32E0 b .L324 + 4964 .LVL417: + 4965 .L325: +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4966 .loc 1 3446 5 is_stmt 1 view .LVU1504 + 4967 .LBB568: + 4968 .LBI568: +6690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4969 .loc 2 6690 22 view .LVU1505 + 4970 .LBB569: +6695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 4971 .loc 2 6695 3 view .LVU1506 + 4972 002a 9A68 ldr r2, [r3, #8] + 4973 002c 22F00042 bic r2, r2, #-2147483648 + 4974 0030 22F03F02 bic r2, r2, #63 + 4975 0034 42F00102 orr r2, r2, #1 + 4976 0038 9A60 str r2, [r3, #8] + 4977 .LVL418: +6695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 4978 .loc 2 6695 3 is_stmt 0 view .LVU1507 + 4979 .LBE569: + ARM GAS /tmp/ccICigVb.s page 333 + + + 4980 .LBE568: +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4981 .loc 1 3449 5 is_stmt 1 view .LVU1508 +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4982 .loc 1 3449 17 is_stmt 0 view .LVU1509 + 4983 003a FFF7FEFF bl HAL_GetTick + 4984 .LVL419: +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 4985 .loc 1 3449 17 view .LVU1510 + 4986 003e 0546 mov r5, r0 + 4987 .LVL420: +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4988 .loc 1 3451 5 is_stmt 1 view .LVU1511 + 4989 .L326: +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4990 .loc 1 3451 51 view .LVU1512 +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4991 .loc 1 3451 12 is_stmt 0 view .LVU1513 + 4992 0040 2368 ldr r3, [r4] + 4993 0042 1A68 ldr r2, [r3] +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4994 .loc 1 3451 51 view .LVU1514 + 4995 0044 12F0010F tst r2, #1 + 4996 0048 1FD1 bne .L331 +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 4997 .loc 1 3461 7 is_stmt 1 view .LVU1515 + 4998 .LVL421: + 4999 .LBB570: + 5000 .LBI570: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5001 .loc 2 6729 26 view .LVU1516 + 5002 .LBB571: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5003 .loc 2 6731 3 view .LVU1517 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5004 .loc 2 6731 12 is_stmt 0 view .LVU1518 + 5005 004a 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5006 .loc 2 6731 68 view .LVU1519 + 5007 004c 12F0010F tst r2, #1 + 5008 0050 07D1 bne .L327 + 5009 .LVL422: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5010 .loc 2 6731 68 view .LVU1520 + 5011 .LBE571: + 5012 .LBE570: +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5013 .loc 1 3463 9 is_stmt 1 view .LVU1521 + 5014 .LBB572: + 5015 .LBI572: +6690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5016 .loc 2 6690 22 view .LVU1522 + 5017 .LBB573: +6695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5018 .loc 2 6695 3 view .LVU1523 + 5019 0052 9A68 ldr r2, [r3, #8] + 5020 0054 22F00042 bic r2, r2, #-2147483648 + ARM GAS /tmp/ccICigVb.s page 334 + + + 5021 0058 22F03F02 bic r2, r2, #63 + 5022 005c 42F00102 orr r2, r2, #1 + 5023 0060 9A60 str r2, [r3, #8] + 5024 .LVL423: + 5025 .L327: +6695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5026 .loc 2 6695 3 is_stmt 0 view .LVU1524 + 5027 .LBE573: + 5028 .LBE572: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5029 .loc 1 3466 7 is_stmt 1 view .LVU1525 +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5030 .loc 1 3466 12 is_stmt 0 view .LVU1526 + 5031 0062 FFF7FEFF bl HAL_GetTick + 5032 .LVL424: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5033 .loc 1 3466 26 view .LVU1527 + 5034 0066 431B subs r3, r0, r5 +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5035 .loc 1 3466 10 view .LVU1528 + 5036 0068 022B cmp r3, #2 + 5037 006a E9D9 bls .L326 +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5038 .loc 1 3469 9 is_stmt 1 view .LVU1529 +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5039 .loc 1 3469 13 is_stmt 0 view .LVU1530 + 5040 006c 2368 ldr r3, [r4] + 5041 006e 1B68 ldr r3, [r3] +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5042 .loc 1 3469 12 view .LVU1531 + 5043 0070 13F0010F tst r3, #1 + 5044 0074 E4D1 bne .L326 +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5045 .loc 1 3472 11 is_stmt 1 view .LVU1532 + 5046 0076 E36D ldr r3, [r4, #92] + 5047 0078 43F01003 orr r3, r3, #16 + 5048 007c E365 str r3, [r4, #92] +3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5049 .loc 1 3475 11 view .LVU1533 + 5050 007e 236E ldr r3, [r4, #96] + 5051 0080 43F00103 orr r3, r3, #1 + 5052 0084 2366 str r3, [r4, #96] +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5053 .loc 1 3477 11 view .LVU1534 +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5054 .loc 1 3477 18 is_stmt 0 view .LVU1535 + 5055 0086 0120 movs r0, #1 + 5056 0088 02E0 b .L324 + 5057 .L331: +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5058 .loc 1 3484 10 view .LVU1536 + 5059 008a 0020 movs r0, #0 + 5060 008c 00E0 b .L324 + 5061 .LVL425: + 5062 .L329: +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5063 .loc 1 3484 10 view .LVU1537 + ARM GAS /tmp/ccICigVb.s page 335 + + + 5064 008e 0020 movs r0, #0 + 5065 .LVL426: + 5066 .L324: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5067 .loc 1 3485 1 view .LVU1538 + 5068 0090 38BD pop {r3, r4, r5, pc} + 5069 .L333: + 5070 0092 00BF .align 2 + 5071 .L332: + 5072 0094 3F000080 .word -2147483585 + 5073 .cfi_endproc + 5074 .LFE354: + 5076 .section .text.HAL_ADC_Start,"ax",%progbits + 5077 .align 1 + 5078 .global HAL_ADC_Start + 5079 .syntax unified + 5080 .thumb + 5081 .thumb_func + 5083 HAL_ADC_Start: + 5084 .LVL427: + 5085 .LFB333: +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 5086 .loc 1 1221 1 is_stmt 1 view -0 + 5087 .cfi_startproc + 5088 @ args = 0, pretend = 0, frame = 0 + 5089 @ frame_needed = 0, uses_anonymous_args = 0 +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 5090 .loc 1 1221 1 is_stmt 0 view .LVU1540 + 5091 0000 38B5 push {r3, r4, r5, lr} + 5092 .LCFI22: + 5093 .cfi_def_cfa_offset 16 + 5094 .cfi_offset 3, -16 + 5095 .cfi_offset 4, -12 + 5096 .cfi_offset 5, -8 + 5097 .cfi_offset 14, -4 +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 5098 .loc 1 1222 3 is_stmt 1 view .LVU1541 +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 5099 .loc 1 1224 3 view .LVU1542 +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif + 5100 .loc 1 1225 3 view .LVU1543 + 5101 .LVL428: + 5102 .LBB574: + 5103 .LBI574: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5104 .loc 2 6392 26 view .LVU1544 + 5105 .LBB575: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5106 .loc 2 6394 3 view .LVU1545 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5107 .loc 2 6394 21 is_stmt 0 view .LVU1546 + 5108 0002 3C4B ldr r3, .L353 + 5109 0004 9D68 ldr r5, [r3, #8] + 5110 .LVL429: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5111 .loc 2 6394 21 view .LVU1547 + 5112 .LBE575: + ARM GAS /tmp/ccICigVb.s page 336 + + + 5113 .LBE574: +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5114 .loc 1 1229 3 is_stmt 1 view .LVU1548 +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5115 .loc 1 1232 3 view .LVU1549 +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5116 .loc 1 1232 7 is_stmt 0 view .LVU1550 + 5117 0006 0368 ldr r3, [r0] + 5118 .LVL430: + 5119 .LBB576: + 5120 .LBI576: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5121 .loc 2 6851 26 is_stmt 1 view .LVU1551 + 5122 .LBB577: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5123 .loc 2 6853 3 view .LVU1552 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5124 .loc 2 6853 12 is_stmt 0 view .LVU1553 + 5125 0008 9B68 ldr r3, [r3, #8] + 5126 .LVL431: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5127 .loc 2 6853 74 view .LVU1554 + 5128 000a 13F0040F tst r3, #4 + 5129 000e 6CD1 bne .L346 + 5130 0010 0446 mov r4, r0 + 5131 0012 05F01F05 and r5, r5, #31 + 5132 .LVL432: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5133 .loc 2 6853 74 view .LVU1555 + 5134 .LBE577: + 5135 .LBE576: +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5136 .loc 1 1235 5 is_stmt 1 view .LVU1556 +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5137 .loc 1 1235 5 view .LVU1557 + 5138 0016 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 5139 001a 012B cmp r3, #1 + 5140 001c 67D0 beq .L347 +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5141 .loc 1 1235 5 discriminator 2 view .LVU1558 + 5142 001e 0123 movs r3, #1 + 5143 0020 80F85830 strb r3, [r0, #88] +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5144 .loc 1 1235 5 discriminator 2 view .LVU1559 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5145 .loc 1 1238 5 discriminator 2 view .LVU1560 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5146 .loc 1 1238 22 is_stmt 0 discriminator 2 view .LVU1561 + 5147 0024 FFF7FEFF bl ADC_Enable + 5148 .LVL433: +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5149 .loc 1 1241 5 is_stmt 1 discriminator 2 view .LVU1562 +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5150 .loc 1 1241 8 is_stmt 0 discriminator 2 view .LVU1563 + 5151 0028 0028 cmp r0, #0 + 5152 002a 5AD1 bne .L336 +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A + ARM GAS /tmp/ccICigVb.s page 337 + + + 5153 .loc 1 1246 7 is_stmt 1 view .LVU1564 + 5154 002c E36D ldr r3, [r4, #92] + 5155 002e 23F47063 bic r3, r3, #3840 + 5156 0032 23F00103 bic r3, r3, #1 + 5157 0036 43F48073 orr r3, r3, #256 + 5158 003a E365 str r3, [r4, #92] +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5159 .loc 1 1254 7 view .LVU1565 +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5160 .loc 1 1254 12 is_stmt 0 view .LVU1566 + 5161 003c 2368 ldr r3, [r4] + 5162 003e 2E4A ldr r2, .L353+4 + 5163 0040 9342 cmp r3, r2 + 5164 0042 32D0 beq .L351 + 5165 0044 1A46 mov r2, r3 + 5166 .L337: +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5167 .loc 1 1254 10 discriminator 4 view .LVU1567 + 5168 0046 9342 cmp r3, r2 + 5169 0048 00D0 beq .L338 +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 5170 .loc 1 1255 11 view .LVU1568 + 5171 004a 1DB9 cbnz r5, .L339 + 5172 .L338: +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5173 .loc 1 1258 9 is_stmt 1 view .LVU1569 + 5174 004c E26D ldr r2, [r4, #92] + 5175 004e 22F48012 bic r2, r2, #1048576 + 5176 0052 E265 str r2, [r4, #92] + 5177 .L339: +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5178 .loc 1 1264 7 view .LVU1570 +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5179 .loc 1 1264 11 is_stmt 0 view .LVU1571 + 5180 0054 E26D ldr r2, [r4, #92] +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5181 .loc 1 1264 10 view .LVU1572 + 5182 0056 12F4805F tst r2, #4096 + 5183 005a 29D0 beq .L340 +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5184 .loc 1 1267 9 is_stmt 1 view .LVU1573 + 5185 005c 226E ldr r2, [r4, #96] + 5186 005e 22F00602 bic r2, r2, #6 + 5187 0062 2266 str r2, [r4, #96] + 5188 .L341: +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5189 .loc 1 1277 7 view .LVU1574 + 5190 0064 1C22 movs r2, #28 + 5191 0066 1A60 str r2, [r3] +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5192 .loc 1 1282 7 view .LVU1575 +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5193 .loc 1 1282 7 view .LVU1576 + 5194 0068 0023 movs r3, #0 + 5195 006a 84F85830 strb r3, [r4, #88] +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5196 .loc 1 1282 7 view .LVU1577 + ARM GAS /tmp/ccICigVb.s page 338 + + +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5197 .loc 1 1293 7 view .LVU1578 +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5198 .loc 1 1293 12 is_stmt 0 view .LVU1579 + 5199 006e 2368 ldr r3, [r4] + 5200 0070 214A ldr r2, .L353+4 + 5201 0072 9342 cmp r3, r2 + 5202 0074 1FD0 beq .L352 + 5203 0076 1A46 mov r2, r3 + 5204 .L342: +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5205 .loc 1 1293 10 discriminator 4 view .LVU1580 + 5206 0078 9342 cmp r3, r2 + 5207 007a 1FD0 beq .L343 + 5208 007c 092D cmp r5, #9 + 5209 007e 05D8 bhi .L344 + 5210 0080 40F22121 movw r1, #545 + 5211 0084 E940 lsrs r1, r1, r5 + 5212 0086 11F0010F tst r1, #1 + 5213 008a 17D1 bne .L343 + 5214 .L344: +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* if Master ADC JAUTO bit is set, update Slave State in setting + 5215 .loc 1 1311 9 is_stmt 1 view .LVU1581 + 5216 008c E36D ldr r3, [r4, #92] + 5217 008e 43F48013 orr r3, r3, #1048576 + 5218 0092 E365 str r3, [r4, #92] +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) + 5219 .loc 1 1314 9 view .LVU1582 + 5220 .LVL434: +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5221 .loc 1 1315 9 view .LVU1583 +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5222 .loc 1 1315 13 is_stmt 0 view .LVU1584 + 5223 0094 D368 ldr r3, [r2, #12] +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5224 .loc 1 1315 12 view .LVU1585 + 5225 0096 13F0007F tst r3, #33554432 + 5226 009a 27D0 beq .L335 +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5227 .loc 1 1317 11 is_stmt 1 view .LVU1586 + 5228 009c E36D ldr r3, [r4, #92] + 5229 009e 23F44053 bic r3, r3, #12288 + 5230 00a2 43F48053 orr r3, r3, #4096 + 5231 00a6 E365 str r3, [r4, #92] + 5232 00a8 20E0 b .L335 + 5233 .LVL435: + 5234 .L351: +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5235 .loc 1 1254 12 is_stmt 0 view .LVU1587 + 5236 00aa 4FF0A042 mov r2, #1342177280 + 5237 00ae CAE7 b .L337 + 5238 .L340: +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5239 .loc 1 1272 9 is_stmt 1 view .LVU1588 + 5240 00b0 0022 movs r2, #0 + 5241 00b2 2266 str r2, [r4, #96] + 5242 00b4 D6E7 b .L341 + ARM GAS /tmp/ccICigVb.s page 339 + + + 5243 .L352: +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5244 .loc 1 1293 12 is_stmt 0 view .LVU1589 + 5245 00b6 4FF0A042 mov r2, #1342177280 + 5246 00ba DDE7 b .L342 + 5247 .L343: +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5248 .loc 1 1300 9 is_stmt 1 view .LVU1590 +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5249 .loc 1 1300 13 is_stmt 0 view .LVU1591 + 5250 00bc DA68 ldr r2, [r3, #12] +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5251 .loc 1 1300 12 view .LVU1592 + 5252 00be 12F0007F tst r2, #33554432 + 5253 00c2 05D0 beq .L345 +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5254 .loc 1 1302 11 is_stmt 1 view .LVU1593 + 5255 00c4 E26D ldr r2, [r4, #92] + 5256 00c6 22F44052 bic r2, r2, #12288 + 5257 00ca 42F48052 orr r2, r2, #4096 + 5258 00ce E265 str r2, [r4, #92] + 5259 .L345: +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5260 .loc 1 1306 9 view .LVU1594 + 5261 .LVL436: + 5262 .LBB578: + 5263 .LBI578: +6815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5264 .loc 2 6815 22 view .LVU1595 + 5265 .LBB579: +6820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5266 .loc 2 6820 3 view .LVU1596 + 5267 00d0 9A68 ldr r2, [r3, #8] + 5268 00d2 22F00042 bic r2, r2, #-2147483648 + 5269 00d6 22F03F02 bic r2, r2, #63 + 5270 00da 42F00402 orr r2, r2, #4 + 5271 00de 9A60 str r2, [r3, #8] +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 5272 .loc 2 6823 1 is_stmt 0 view .LVU1597 + 5273 00e0 04E0 b .L335 + 5274 .LVL437: + 5275 .L336: +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 5276 .loc 2 6823 1 view .LVU1598 + 5277 .LBE579: + 5278 .LBE578: +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5279 .loc 1 1334 7 is_stmt 1 discriminator 1 view .LVU1599 +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5280 .loc 1 1334 7 discriminator 1 view .LVU1600 + 5281 00e2 0023 movs r3, #0 + 5282 00e4 84F85830 strb r3, [r4, #88] + 5283 00e8 00E0 b .L335 + 5284 .LVL438: + 5285 .L346: +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5286 .loc 1 1339 20 is_stmt 0 view .LVU1601 + ARM GAS /tmp/ccICigVb.s page 340 + + + 5287 00ea 0220 movs r0, #2 + 5288 .LVL439: + 5289 .L335: +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5290 .loc 1 1344 1 view .LVU1602 + 5291 00ec 38BD pop {r3, r4, r5, pc} + 5292 .LVL440: + 5293 .L347: +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5294 .loc 1 1235 5 view .LVU1603 + 5295 00ee 0220 movs r0, #2 + 5296 .LVL441: +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5297 .loc 1 1235 5 view .LVU1604 + 5298 00f0 FCE7 b .L335 + 5299 .L354: + 5300 00f2 00BF .align 2 + 5301 .L353: + 5302 00f4 00030050 .word 1342178048 + 5303 00f8 00010050 .word 1342177536 + 5304 .cfi_endproc + 5305 .LFE333: + 5307 .section .text.HAL_ADC_Start_IT,"ax",%progbits + 5308 .align 1 + 5309 .global HAL_ADC_Start_IT + 5310 .syntax unified + 5311 .thumb + 5312 .thumb_func + 5314 HAL_ADC_Start_IT: + 5315 .LVL442: + 5316 .LFB337: +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 5317 .loc 1 1742 1 is_stmt 1 view -0 + 5318 .cfi_startproc + 5319 @ args = 0, pretend = 0, frame = 0 + 5320 @ frame_needed = 0, uses_anonymous_args = 0 +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 5321 .loc 1 1742 1 is_stmt 0 view .LVU1606 + 5322 0000 38B5 push {r3, r4, r5, lr} + 5323 .LCFI23: + 5324 .cfi_def_cfa_offset 16 + 5325 .cfi_offset 3, -16 + 5326 .cfi_offset 4, -12 + 5327 .cfi_offset 5, -8 + 5328 .cfi_offset 14, -4 +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 5329 .loc 1 1743 3 is_stmt 1 view .LVU1607 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 5330 .loc 1 1745 3 view .LVU1608 +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif + 5331 .loc 1 1746 3 view .LVU1609 + 5332 .LVL443: + 5333 .LBB580: + 5334 .LBI580: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5335 .loc 2 6392 26 view .LVU1610 + 5336 .LBB581: + ARM GAS /tmp/ccICigVb.s page 341 + + +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5337 .loc 2 6394 3 view .LVU1611 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5338 .loc 2 6394 21 is_stmt 0 view .LVU1612 + 5339 0002 614B ldr r3, .L382 + 5340 0004 9D68 ldr r5, [r3, #8] + 5341 .LVL444: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5342 .loc 2 6394 21 view .LVU1613 + 5343 .LBE581: + 5344 .LBE580: +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5345 .loc 1 1750 3 is_stmt 1 view .LVU1614 +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5346 .loc 1 1753 3 view .LVU1615 +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5347 .loc 1 1753 7 is_stmt 0 view .LVU1616 + 5348 0006 0368 ldr r3, [r0] + 5349 .LVL445: + 5350 .LBB582: + 5351 .LBI582: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5352 .loc 2 6851 26 is_stmt 1 view .LVU1617 + 5353 .LBB583: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5354 .loc 2 6853 3 view .LVU1618 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5355 .loc 2 6853 12 is_stmt 0 view .LVU1619 + 5356 0008 9B68 ldr r3, [r3, #8] + 5357 .LVL446: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5358 .loc 2 6853 74 view .LVU1620 + 5359 000a 13F0040F tst r3, #4 + 5360 000e 40F0B680 bne .L372 + 5361 0012 0446 mov r4, r0 + 5362 0014 05F01F05 and r5, r5, #31 + 5363 .LVL447: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5364 .loc 2 6853 74 view .LVU1621 + 5365 .LBE583: + 5366 .LBE582: +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5367 .loc 1 1756 5 is_stmt 1 view .LVU1622 +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5368 .loc 1 1756 5 view .LVU1623 + 5369 0018 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 5370 001c 012B cmp r3, #1 + 5371 001e 00F0B080 beq .L373 +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5372 .loc 1 1756 5 discriminator 2 view .LVU1624 + 5373 0022 0123 movs r3, #1 + 5374 0024 80F85830 strb r3, [r0, #88] +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5375 .loc 1 1756 5 discriminator 2 view .LVU1625 +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5376 .loc 1 1759 5 discriminator 2 view .LVU1626 +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 342 + + + 5377 .loc 1 1759 22 is_stmt 0 discriminator 2 view .LVU1627 + 5378 0028 FFF7FEFF bl ADC_Enable + 5379 .LVL448: +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5380 .loc 1 1762 5 is_stmt 1 discriminator 2 view .LVU1628 +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5381 .loc 1 1762 8 is_stmt 0 discriminator 2 view .LVU1629 + 5382 002c 0028 cmp r0, #0 + 5383 002e 40F0A280 bne .L357 +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A + 5384 .loc 1 1767 7 is_stmt 1 view .LVU1630 + 5385 0032 E36D ldr r3, [r4, #92] + 5386 0034 23F47063 bic r3, r3, #3840 + 5387 0038 23F00103 bic r3, r3, #1 + 5388 003c 43F48073 orr r3, r3, #256 + 5389 0040 E365 str r3, [r4, #92] +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5390 .loc 1 1775 7 view .LVU1631 +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5391 .loc 1 1775 12 is_stmt 0 view .LVU1632 + 5392 0042 2368 ldr r3, [r4] + 5393 0044 514A ldr r2, .L382+4 + 5394 0046 9342 cmp r3, r2 + 5395 0048 52D0 beq .L377 + 5396 004a 1A46 mov r2, r3 + 5397 .L358: +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5398 .loc 1 1775 10 discriminator 4 view .LVU1633 + 5399 004c 9342 cmp r3, r2 + 5400 004e 00D0 beq .L359 +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 5401 .loc 1 1776 11 view .LVU1634 + 5402 0050 1DB9 cbnz r5, .L360 + 5403 .L359: +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5404 .loc 1 1779 9 is_stmt 1 view .LVU1635 + 5405 0052 E26D ldr r2, [r4, #92] + 5406 0054 22F48012 bic r2, r2, #1048576 + 5407 0058 E265 str r2, [r4, #92] + 5408 .L360: +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5409 .loc 1 1785 7 view .LVU1636 +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5410 .loc 1 1785 16 is_stmt 0 view .LVU1637 + 5411 005a E26D ldr r2, [r4, #92] +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5412 .loc 1 1785 10 view .LVU1638 + 5413 005c 12F4805F tst r2, #4096 + 5414 0060 49D0 beq .L361 +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5415 .loc 1 1788 9 is_stmt 1 view .LVU1639 + 5416 0062 226E ldr r2, [r4, #96] + 5417 0064 22F00602 bic r2, r2, #6 + 5418 0068 2266 str r2, [r4, #96] + 5419 .L362: +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5420 .loc 1 1798 7 view .LVU1640 + ARM GAS /tmp/ccICigVb.s page 343 + + + 5421 006a 1C22 movs r2, #28 + 5422 006c 1A60 str r2, [r3] +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5423 .loc 1 1803 7 view .LVU1641 +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5424 .loc 1 1803 7 view .LVU1642 + 5425 006e 0023 movs r3, #0 + 5426 0070 84F85830 strb r3, [r4, #88] +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5427 .loc 1 1803 7 view .LVU1643 +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5428 .loc 1 1806 7 view .LVU1644 + 5429 0074 2268 ldr r2, [r4] + 5430 0076 5368 ldr r3, [r2, #4] + 5431 0078 23F01C03 bic r3, r3, #28 + 5432 007c 5360 str r3, [r2, #4] +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5433 .loc 1 1809 7 view .LVU1645 +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5434 .loc 1 1809 25 is_stmt 0 view .LVU1646 + 5435 007e A369 ldr r3, [r4, #24] +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5436 .loc 1 1809 7 view .LVU1647 + 5437 0080 082B cmp r3, #8 + 5438 0082 3BD0 beq .L378 +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 5439 .loc 1 1816 11 is_stmt 1 view .LVU1648 + 5440 0084 2268 ldr r2, [r4] + 5441 0086 5368 ldr r3, [r2, #4] + 5442 0088 43F00403 orr r3, r3, #4 + 5443 008c 5360 str r3, [r2, #4] +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5444 .loc 1 1817 11 view .LVU1649 + 5445 .L364: +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5446 .loc 1 1824 7 view .LVU1650 +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5447 .loc 1 1824 21 is_stmt 0 view .LVU1651 + 5448 008e E36B ldr r3, [r4, #60] +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5449 .loc 1 1824 10 view .LVU1652 + 5450 0090 23B9 cbnz r3, .L365 +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5451 .loc 1 1826 9 is_stmt 1 view .LVU1653 + 5452 0092 2268 ldr r2, [r4] + 5453 0094 5368 ldr r3, [r2, #4] + 5454 0096 43F01003 orr r3, r3, #16 + 5455 009a 5360 str r3, [r2, #4] + 5456 .L365: +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5457 .loc 1 1838 7 view .LVU1654 +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5458 .loc 1 1838 12 is_stmt 0 view .LVU1655 + 5459 009c 2368 ldr r3, [r4] + 5460 009e 3B4A ldr r2, .L382+4 + 5461 00a0 9342 cmp r3, r2 + 5462 00a2 31D0 beq .L379 + ARM GAS /tmp/ccICigVb.s page 344 + + + 5463 00a4 1A46 mov r2, r3 + 5464 .L366: +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5465 .loc 1 1838 10 discriminator 4 view .LVU1656 + 5466 00a6 9342 cmp r3, r2 + 5467 00a8 31D0 beq .L367 + 5468 00aa 092D cmp r5, #9 + 5469 00ac 05D8 bhi .L368 + 5470 00ae 40F22121 movw r1, #545 + 5471 00b2 E940 lsrs r1, r1, r5 + 5472 00b4 11F0010F tst r1, #1 + 5473 00b8 29D1 bne .L367 + 5474 .L368: +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* if Master ADC JAUTO bit is set, Slave injected interruptions + 5475 .loc 1 1873 9 is_stmt 1 view .LVU1657 + 5476 00ba E16D ldr r1, [r4, #92] + 5477 00bc 41F48011 orr r1, r1, #1048576 + 5478 00c0 E165 str r1, [r4, #92] +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** if (READ_BIT(tmpADC_Master->CFGR, ADC_CFGR_JAUTO) != 0UL) + 5479 .loc 1 1876 9 view .LVU1658 + 5480 .LVL449: +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5481 .loc 1 1877 9 view .LVU1659 +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5482 .loc 1 1877 13 is_stmt 0 view .LVU1660 + 5483 00c2 D268 ldr r2, [r2, #12] + 5484 .LVL450: +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5485 .loc 1 1877 12 view .LVU1661 + 5486 00c4 12F0007F tst r2, #33554432 + 5487 00c8 5AD0 beq .L356 +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Next, set Slave injected interruptions */ + 5488 .loc 1 1881 11 is_stmt 1 view .LVU1662 + 5489 00ca E26D ldr r2, [r4, #92] + 5490 00cc 22F44052 bic r2, r2, #12288 + 5491 00d0 42F48052 orr r2, r2, #4096 + 5492 00d4 E265 str r2, [r4, #92] +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5493 .loc 1 1883 11 view .LVU1663 +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5494 .loc 1 1883 29 is_stmt 0 view .LVU1664 + 5495 00d6 A269 ldr r2, [r4, #24] +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5496 .loc 1 1883 11 view .LVU1665 + 5497 00d8 082A cmp r2, #8 + 5498 00da 42D0 beq .L380 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + 5499 .loc 1 1891 15 is_stmt 1 view .LVU1666 + 5500 00dc 5A68 ldr r2, [r3, #4] + 5501 00de 22F04002 bic r2, r2, #64 + 5502 00e2 5A60 str r2, [r3, #4] +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 5503 .loc 1 1892 15 view .LVU1667 + 5504 00e4 2268 ldr r2, [r4] + 5505 00e6 5368 ldr r3, [r2, #4] + 5506 00e8 43F02003 orr r3, r3, #32 + 5507 00ec 5360 str r3, [r2, #4] + ARM GAS /tmp/ccICigVb.s page 345 + + +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5508 .loc 1 1893 15 view .LVU1668 + 5509 00ee 47E0 b .L356 + 5510 .LVL451: + 5511 .L377: +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5512 .loc 1 1775 12 is_stmt 0 view .LVU1669 + 5513 00f0 4FF0A042 mov r2, #1342177280 + 5514 00f4 AAE7 b .L358 + 5515 .L361: +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5516 .loc 1 1793 9 is_stmt 1 view .LVU1670 + 5517 00f6 0022 movs r2, #0 + 5518 00f8 2266 str r2, [r4, #96] + 5519 00fa B6E7 b .L362 + 5520 .L378: +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 5521 .loc 1 1812 11 view .LVU1671 + 5522 00fc 2268 ldr r2, [r4] + 5523 00fe 5368 ldr r3, [r2, #4] + 5524 0100 43F00803 orr r3, r3, #8 + 5525 0104 5360 str r3, [r2, #4] +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ + 5526 .loc 1 1813 11 view .LVU1672 + 5527 0106 C2E7 b .L364 + 5528 .L379: +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5529 .loc 1 1838 12 is_stmt 0 view .LVU1673 + 5530 0108 4FF0A042 mov r2, #1342177280 + 5531 010c CBE7 b .L366 + 5532 .L367: +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5533 .loc 1 1845 9 is_stmt 1 view .LVU1674 +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5534 .loc 1 1845 13 is_stmt 0 view .LVU1675 + 5535 010e DA68 ldr r2, [r3, #12] +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5536 .loc 1 1845 12 view .LVU1676 + 5537 0110 12F0007F tst r2, #33554432 + 5538 0114 11D0 beq .L369 +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5539 .loc 1 1847 11 is_stmt 1 view .LVU1677 + 5540 0116 E26D ldr r2, [r4, #92] + 5541 0118 22F44052 bic r2, r2, #12288 + 5542 011c 42F48052 orr r2, r2, #4096 + 5543 0120 E265 str r2, [r4, #92] +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5544 .loc 1 1853 11 view .LVU1678 +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5545 .loc 1 1853 29 is_stmt 0 view .LVU1679 + 5546 0122 A269 ldr r2, [r4, #24] +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5547 .loc 1 1853 11 view .LVU1680 + 5548 0124 082A cmp r2, #8 + 5549 0126 12D0 beq .L381 +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + 5550 .loc 1 1861 15 is_stmt 1 view .LVU1681 + ARM GAS /tmp/ccICigVb.s page 346 + + + 5551 0128 5A68 ldr r2, [r3, #4] + 5552 012a 22F04002 bic r2, r2, #64 + 5553 012e 5A60 str r2, [r3, #4] +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 5554 .loc 1 1862 15 view .LVU1682 + 5555 0130 2268 ldr r2, [r4] + 5556 0132 5368 ldr r3, [r2, #4] + 5557 0134 43F02003 orr r3, r3, #32 + 5558 0138 5360 str r3, [r2, #4] +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5559 .loc 1 1863 15 view .LVU1683 + 5560 .L369: +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5561 .loc 1 1868 9 view .LVU1684 + 5562 013a 2268 ldr r2, [r4] + 5563 .LVL452: + 5564 .LBB584: + 5565 .LBI584: +6815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5566 .loc 2 6815 22 view .LVU1685 + 5567 .LBB585: +6820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5568 .loc 2 6820 3 view .LVU1686 + 5569 013c 9368 ldr r3, [r2, #8] + 5570 013e 23F00043 bic r3, r3, #-2147483648 + 5571 0142 23F03F03 bic r3, r3, #63 + 5572 0146 43F00403 orr r3, r3, #4 + 5573 014a 9360 str r3, [r2, #8] +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 5574 .loc 2 6823 1 is_stmt 0 view .LVU1687 + 5575 014c 18E0 b .L356 + 5576 .LVL453: + 5577 .L381: +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 5578 .loc 2 6823 1 view .LVU1688 + 5579 .LBE585: + 5580 .LBE584: +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + 5581 .loc 1 1856 15 is_stmt 1 view .LVU1689 + 5582 014e 5A68 ldr r2, [r3, #4] + 5583 0150 22F02002 bic r2, r2, #32 + 5584 0154 5A60 str r2, [r3, #4] +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 5585 .loc 1 1857 15 view .LVU1690 + 5586 0156 2268 ldr r2, [r4] + 5587 0158 5368 ldr r3, [r2, #4] + 5588 015a 43F04003 orr r3, r3, #64 + 5589 015e 5360 str r3, [r2, #4] +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ + 5590 .loc 1 1858 15 view .LVU1691 + 5591 0160 EBE7 b .L369 + 5592 .LVL454: + 5593 .L380: +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + 5594 .loc 1 1886 15 view .LVU1692 + 5595 0162 5A68 ldr r2, [r3, #4] + 5596 0164 22F02002 bic r2, r2, #32 + ARM GAS /tmp/ccICigVb.s page 347 + + + 5597 0168 5A60 str r2, [r3, #4] +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** break; + 5598 .loc 1 1887 15 view .LVU1693 + 5599 016a 2268 ldr r2, [r4] + 5600 016c 5368 ldr r3, [r2, #4] + 5601 016e 43F04003 orr r3, r3, #64 + 5602 0172 5360 str r3, [r2, #4] +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ + 5603 .loc 1 1888 15 view .LVU1694 + 5604 0174 04E0 b .L356 + 5605 .LVL455: + 5606 .L357: +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5607 .loc 1 1928 7 discriminator 1 view .LVU1695 +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5608 .loc 1 1928 7 discriminator 1 view .LVU1696 + 5609 0176 0023 movs r3, #0 + 5610 0178 84F85830 strb r3, [r4, #88] + 5611 017c 00E0 b .L356 + 5612 .LVL456: + 5613 .L372: +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5614 .loc 1 1934 20 is_stmt 0 view .LVU1697 + 5615 017e 0220 movs r0, #2 + 5616 .LVL457: + 5617 .L356: +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5618 .loc 1 1939 1 view .LVU1698 + 5619 0180 38BD pop {r3, r4, r5, pc} + 5620 .LVL458: + 5621 .L373: +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5622 .loc 1 1756 5 view .LVU1699 + 5623 0182 0220 movs r0, #2 + 5624 .LVL459: +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5625 .loc 1 1756 5 view .LVU1700 + 5626 0184 FCE7 b .L356 + 5627 .L383: + 5628 0186 00BF .align 2 + 5629 .L382: + 5630 0188 00030050 .word 1342178048 + 5631 018c 00010050 .word 1342177536 + 5632 .cfi_endproc + 5633 .LFE337: + 5635 .section .text.HAL_ADC_Start_DMA,"ax",%progbits + 5636 .align 1 + 5637 .global HAL_ADC_Start_DMA + 5638 .syntax unified + 5639 .thumb + 5640 .thumb_func + 5642 HAL_ADC_Start_DMA: + 5643 .LVL460: + 5644 .LFB339: +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 5645 .loc 1 2002 1 is_stmt 1 view -0 + 5646 .cfi_startproc + ARM GAS /tmp/ccICigVb.s page 348 + + + 5647 @ args = 0, pretend = 0, frame = 0 + 5648 @ frame_needed = 0, uses_anonymous_args = 0 +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 5649 .loc 1 2002 1 is_stmt 0 view .LVU1702 + 5650 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 5651 .LCFI24: + 5652 .cfi_def_cfa_offset 24 + 5653 .cfi_offset 3, -24 + 5654 .cfi_offset 4, -20 + 5655 .cfi_offset 5, -16 + 5656 .cfi_offset 6, -12 + 5657 .cfi_offset 7, -8 + 5658 .cfi_offset 14, -4 + 5659 0002 0446 mov r4, r0 +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 5660 .loc 1 2003 3 is_stmt 1 view .LVU1703 +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif + 5661 .loc 1 2005 3 view .LVU1704 + 5662 .LVL461: + 5663 .LBB586: + 5664 .LBI586: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5665 .loc 2 6392 26 view .LVU1705 + 5666 .LBB587: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5667 .loc 2 6394 3 view .LVU1706 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5668 .loc 2 6394 21 is_stmt 0 view .LVU1707 + 5669 0004 3A4B ldr r3, .L399 + 5670 0006 9D68 ldr r5, [r3, #8] + 5671 .LVL462: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5672 .loc 2 6394 21 view .LVU1708 + 5673 .LBE587: + 5674 .LBE586: +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5675 .loc 1 2009 3 is_stmt 1 view .LVU1709 +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5676 .loc 1 2012 3 view .LVU1710 +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5677 .loc 1 2012 7 is_stmt 0 view .LVU1711 + 5678 0008 0068 ldr r0, [r0] + 5679 .LVL463: + 5680 .LBB588: + 5681 .LBI588: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5682 .loc 2 6851 26 is_stmt 1 view .LVU1712 + 5683 .LBB589: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5684 .loc 2 6853 3 view .LVU1713 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5685 .loc 2 6853 12 is_stmt 0 view .LVU1714 + 5686 000a 8068 ldr r0, [r0, #8] + 5687 .LVL464: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5688 .loc 2 6853 74 view .LVU1715 + 5689 000c 10F0040F tst r0, #4 + ARM GAS /tmp/ccICigVb.s page 349 + + + 5690 0010 69D1 bne .L394 + 5691 0012 0E46 mov r6, r1 + 5692 0014 1746 mov r7, r2 + 5693 0016 05F01F05 and r5, r5, #31 + 5694 .LVL465: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5695 .loc 2 6853 74 view .LVU1716 + 5696 .LBE589: + 5697 .LBE588: +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5698 .loc 1 2015 5 is_stmt 1 view .LVU1717 +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5699 .loc 1 2015 5 view .LVU1718 + 5700 001a 94F85830 ldrb r3, [r4, #88] @ zero_extendqisi2 + 5701 001e 012B cmp r3, #1 + 5702 0020 63D0 beq .L395 +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5703 .loc 1 2015 5 discriminator 2 view .LVU1719 + 5704 0022 0123 movs r3, #1 + 5705 0024 84F85830 strb r3, [r4, #88] +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5706 .loc 1 2015 5 discriminator 2 view .LVU1720 +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5707 .loc 1 2020 5 discriminator 2 view .LVU1721 +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5708 .loc 1 2020 8 is_stmt 0 discriminator 2 view .LVU1722 + 5709 0028 45B1 cbz r5, .L386 +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_INJ_ALTERN) + 5710 .loc 1 2022 9 view .LVU1723 + 5711 002a 052D cmp r5, #5 + 5712 002c 06D0 beq .L386 +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 5713 .loc 1 2023 9 view .LVU1724 + 5714 002e 092D cmp r5, #9 + 5715 0030 04D0 beq .L386 +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ + 5716 .loc 1 2115 7 is_stmt 1 discriminator 1 view .LVU1725 + 5717 .LVL466: +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5718 .loc 1 2117 7 discriminator 1 view .LVU1726 +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5719 .loc 1 2117 7 discriminator 1 view .LVU1727 + 5720 0032 0023 movs r3, #0 + 5721 0034 84F85830 strb r3, [r4, #88] +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Process unlocked */ + 5722 .loc 1 2115 22 is_stmt 0 discriminator 1 view .LVU1728 + 5723 0038 0120 movs r0, #1 + 5724 003a 55E0 b .L385 + 5725 .LVL467: + 5726 .L386: +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5727 .loc 1 2028 7 is_stmt 1 view .LVU1729 +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5728 .loc 1 2028 24 is_stmt 0 view .LVU1730 + 5729 003c 2046 mov r0, r4 + 5730 003e FFF7FEFF bl ADC_Enable + 5731 .LVL468: + ARM GAS /tmp/ccICigVb.s page 350 + + +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5732 .loc 1 2031 7 is_stmt 1 view .LVU1731 +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5733 .loc 1 2031 10 is_stmt 0 view .LVU1732 + 5734 0042 0028 cmp r0, #0 + 5735 0044 4BD1 bne .L388 +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL + 5736 .loc 1 2036 9 is_stmt 1 view .LVU1733 + 5737 0046 E36D ldr r3, [r4, #92] + 5738 0048 23F47063 bic r3, r3, #3840 + 5739 004c 23F00103 bic r3, r3, #1 + 5740 0050 43F48073 orr r3, r3, #256 + 5741 0054 E365 str r3, [r4, #92] +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5742 .loc 1 2044 9 view .LVU1734 +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5743 .loc 1 2044 14 is_stmt 0 view .LVU1735 + 5744 0056 2368 ldr r3, [r4] + 5745 0058 264A ldr r2, .L399+4 + 5746 005a 9342 cmp r3, r2 + 5747 005c 39D0 beq .L398 + 5748 005e 1A46 mov r2, r3 + 5749 .L389: +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5750 .loc 1 2044 12 discriminator 4 view .LVU1736 + 5751 0060 9342 cmp r3, r2 + 5752 0062 00D0 beq .L390 +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 5753 .loc 1 2045 13 view .LVU1737 + 5754 0064 1DB9 cbnz r5, .L391 + 5755 .L390: +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5756 .loc 1 2048 11 is_stmt 1 view .LVU1738 + 5757 0066 E36D ldr r3, [r4, #92] + 5758 0068 23F48013 bic r3, r3, #1048576 + 5759 006c E365 str r3, [r4, #92] + 5760 .L391: +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5761 .loc 1 2053 9 view .LVU1739 +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5762 .loc 1 2053 18 is_stmt 0 view .LVU1740 + 5763 006e E36D ldr r3, [r4, #92] +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5764 .loc 1 2053 12 view .LVU1741 + 5765 0070 13F4805F tst r3, #4096 + 5766 0074 30D0 beq .L392 +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5767 .loc 1 2056 11 is_stmt 1 view .LVU1742 + 5768 0076 236E ldr r3, [r4, #96] + 5769 0078 23F00603 bic r3, r3, #6 + 5770 007c 2366 str r3, [r4, #96] + 5771 .L393: +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5772 .loc 1 2065 9 view .LVU1743 +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5773 .loc 1 2065 13 is_stmt 0 view .LVU1744 + 5774 007e 636D ldr r3, [r4, #84] + ARM GAS /tmp/ccICigVb.s page 351 + + +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5775 .loc 1 2065 44 view .LVU1745 + 5776 0080 1D4A ldr r2, .L399+8 + 5777 0082 DA62 str r2, [r3, #44] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5778 .loc 1 2068 9 is_stmt 1 view .LVU1746 +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5779 .loc 1 2068 13 is_stmt 0 view .LVU1747 + 5780 0084 636D ldr r3, [r4, #84] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5781 .loc 1 2068 48 view .LVU1748 + 5782 0086 1D4A ldr r2, .L399+12 + 5783 0088 1A63 str r2, [r3, #48] +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5784 .loc 1 2071 9 is_stmt 1 view .LVU1749 +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5785 .loc 1 2071 13 is_stmt 0 view .LVU1750 + 5786 008a 636D ldr r3, [r4, #84] +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5787 .loc 1 2071 45 view .LVU1751 + 5788 008c 1C4A ldr r2, .L399+16 + 5789 008e 5A63 str r2, [r3, #52] +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5790 .loc 1 2080 9 is_stmt 1 view .LVU1752 + 5791 0090 2368 ldr r3, [r4] + 5792 0092 1C22 movs r2, #28 + 5793 0094 1A60 str r2, [r3] +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5794 .loc 1 2085 9 view .LVU1753 +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5795 .loc 1 2085 9 view .LVU1754 + 5796 0096 0023 movs r3, #0 + 5797 0098 84F85830 strb r3, [r4, #88] +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5798 .loc 1 2085 9 view .LVU1755 +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5799 .loc 1 2090 9 view .LVU1756 + 5800 009c 2268 ldr r2, [r4] + 5801 009e 5368 ldr r3, [r2, #4] + 5802 00a0 43F01003 orr r3, r3, #16 + 5803 00a4 5360 str r3, [r2, #4] +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5804 .loc 1 2093 9 view .LVU1757 + 5805 00a6 2268 ldr r2, [r4] + 5806 00a8 D368 ldr r3, [r2, #12] + 5807 00aa 43F00103 orr r3, r3, #1 + 5808 00ae D360 str r3, [r2, #12] +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5809 .loc 1 2096 9 view .LVU1758 +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5810 .loc 1 2096 76 is_stmt 0 view .LVU1759 + 5811 00b0 2168 ldr r1, [r4] +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5812 .loc 1 2096 26 view .LVU1760 + 5813 00b2 3B46 mov r3, r7 + 5814 00b4 3246 mov r2, r6 + 5815 00b6 4031 adds r1, r1, #64 + ARM GAS /tmp/ccICigVb.s page 352 + + + 5816 00b8 606D ldr r0, [r4, #84] + 5817 .LVL469: +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5818 .loc 1 2096 26 view .LVU1761 + 5819 00ba FFF7FEFF bl HAL_DMA_Start_IT + 5820 .LVL470: +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5821 .loc 1 2103 9 is_stmt 1 view .LVU1762 + 5822 00be 2268 ldr r2, [r4] + 5823 .LVL471: + 5824 .LBB590: + 5825 .LBI590: +6815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5826 .loc 2 6815 22 view .LVU1763 + 5827 .LBB591: +6820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5828 .loc 2 6820 3 view .LVU1764 + 5829 00c0 9368 ldr r3, [r2, #8] + 5830 00c2 23F00043 bic r3, r3, #-2147483648 + 5831 00c6 23F03F03 bic r3, r3, #63 + 5832 00ca 43F00403 orr r3, r3, #4 + 5833 00ce 9360 str r3, [r2, #8] +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 5834 .loc 2 6823 1 is_stmt 0 view .LVU1765 + 5835 00d0 0AE0 b .L385 + 5836 .LVL472: + 5837 .L398: +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 5838 .loc 2 6823 1 view .LVU1766 + 5839 .LBE591: + 5840 .LBE590: +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 5841 .loc 1 2044 14 view .LVU1767 + 5842 00d2 4FF0A042 mov r2, #1342177280 + 5843 00d6 C3E7 b .L389 + 5844 .L392: +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5845 .loc 1 2061 11 is_stmt 1 view .LVU1768 + 5846 00d8 0023 movs r3, #0 + 5847 00da 2366 str r3, [r4, #96] + 5848 00dc CFE7 b .L393 + 5849 .L388: +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5850 .loc 1 2108 9 view .LVU1769 +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5851 .loc 1 2108 9 view .LVU1770 + 5852 00de 0023 movs r3, #0 + 5853 00e0 84F85830 strb r3, [r4, #88] + 5854 00e4 00E0 b .L385 + 5855 .LVL473: + 5856 .L394: +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5857 .loc 1 2123 20 is_stmt 0 view .LVU1771 + 5858 00e6 0220 movs r0, #2 + 5859 .LVL474: + 5860 .L385: +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 353 + + + 5861 .loc 1 2128 1 view .LVU1772 + 5862 00e8 F8BD pop {r3, r4, r5, r6, r7, pc} + 5863 .LVL475: + 5864 .L395: +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5865 .loc 1 2015 5 view .LVU1773 + 5866 00ea 0220 movs r0, #2 + 5867 00ec FCE7 b .L385 + 5868 .L400: + 5869 00ee 00BF .align 2 + 5870 .L399: + 5871 00f0 00030050 .word 1342178048 + 5872 00f4 00010050 .word 1342177536 + 5873 00f8 00000000 .word ADC_DMAConvCplt + 5874 00fc 00000000 .word ADC_DMAHalfConvCplt + 5875 0100 00000000 .word ADC_DMAError + 5876 .cfi_endproc + 5877 .LFE339: + 5879 .section .text.ADC_Disable,"ax",%progbits + 5880 .align 1 + 5881 .global ADC_Disable + 5882 .syntax unified + 5883 .thumb + 5884 .thumb_func + 5886 ADC_Disable: + 5887 .LVL476: + 5888 .LFB355: +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 5889 .loc 1 3495 1 is_stmt 1 view -0 + 5890 .cfi_startproc + 5891 @ args = 0, pretend = 0, frame = 0 + 5892 @ frame_needed = 0, uses_anonymous_args = 0 +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** uint32_t tickstart; + 5893 .loc 1 3495 1 is_stmt 0 view .LVU1775 + 5894 0000 38B5 push {r3, r4, r5, lr} + 5895 .LCFI25: + 5896 .cfi_def_cfa_offset 16 + 5897 .cfi_offset 3, -16 + 5898 .cfi_offset 4, -12 + 5899 .cfi_offset 5, -8 + 5900 .cfi_offset 14, -4 + 5901 0002 0446 mov r4, r0 +3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** const uint32_t tmp_adc_is_disable_on_going = LL_ADC_IsDisableOngoing(hadc->Instance); + 5902 .loc 1 3496 3 is_stmt 1 view .LVU1776 +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5903 .loc 1 3497 3 view .LVU1777 +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5904 .loc 1 3497 48 is_stmt 0 view .LVU1778 + 5905 0004 0268 ldr r2, [r0] + 5906 .LVL477: + 5907 .LBB592: + 5908 .LBI592: +6740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5909 .loc 2 6740 26 is_stmt 1 view .LVU1779 + 5910 .LBB593: +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5911 .loc 2 6742 3 view .LVU1780 + ARM GAS /tmp/ccICigVb.s page 354 + + +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5912 .loc 2 6742 12 is_stmt 0 view .LVU1781 + 5913 0006 9368 ldr r3, [r2, #8] +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5914 .loc 2 6742 70 view .LVU1782 + 5915 0008 13F00203 ands r3, r3, #2 + 5916 000c 00D0 beq .L402 + 5917 000e 0123 movs r3, #1 + 5918 .L402: + 5919 .LVL478: +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5920 .loc 2 6742 70 view .LVU1783 + 5921 .LBE593: + 5922 .LBE592: +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** && (tmp_adc_is_disable_on_going == 0UL) + 5923 .loc 1 3502 3 is_stmt 1 view .LVU1784 + 5924 .LBB594: + 5925 .LBI594: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5926 .loc 2 6729 26 view .LVU1785 + 5927 .LBB595: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5928 .loc 2 6731 3 view .LVU1786 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5929 .loc 2 6731 12 is_stmt 0 view .LVU1787 + 5930 0010 9168 ldr r1, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5931 .loc 2 6731 68 view .LVU1788 + 5932 0012 11F0010F tst r1, #1 + 5933 0016 39D0 beq .L407 + 5934 .LVL479: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5935 .loc 2 6731 68 view .LVU1789 + 5936 .LBE595: + 5937 .LBE594: +3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ) + 5938 .loc 1 3503 7 view .LVU1790 + 5939 0018 002B cmp r3, #0 + 5940 001a 39D1 bne .L408 +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5941 .loc 1 3507 5 is_stmt 1 view .LVU1791 +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5942 .loc 1 3507 24 is_stmt 0 view .LVU1792 + 5943 001c 9368 ldr r3, [r2, #8] + 5944 .LVL480: +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5945 .loc 1 3507 29 view .LVU1793 + 5946 001e 03F00D03 and r3, r3, #13 +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5947 .loc 1 3507 8 view .LVU1794 + 5948 0022 012B cmp r3, #1 + 5949 0024 09D0 beq .L410 +3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5950 .loc 1 3516 7 is_stmt 1 view .LVU1795 + 5951 0026 E36D ldr r3, [r4, #92] + 5952 0028 43F01003 orr r3, r3, #16 + 5953 002c E365 str r3, [r4, #92] + ARM GAS /tmp/ccICigVb.s page 355 + + +3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5954 .loc 1 3519 7 view .LVU1796 + 5955 002e 236E ldr r3, [r4, #96] + 5956 0030 43F00103 orr r3, r3, #1 + 5957 0034 2366 str r3, [r4, #96] +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5958 .loc 1 3521 7 view .LVU1797 +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5959 .loc 1 3521 14 is_stmt 0 view .LVU1798 + 5960 0036 0120 movs r0, #1 + 5961 .LVL481: +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5962 .loc 1 3521 14 view .LVU1799 + 5963 0038 29E0 b .L403 + 5964 .LVL482: + 5965 .L410: +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOSMP | ADC_FLAG_RDY)); + 5966 .loc 1 3510 7 is_stmt 1 view .LVU1800 + 5967 .LBB596: + 5968 .LBI596: +6710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5969 .loc 2 6710 22 view .LVU1801 + 5970 .LBB597: +6715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5971 .loc 2 6715 3 view .LVU1802 + 5972 003a 9368 ldr r3, [r2, #8] + 5973 003c 23F00043 bic r3, r3, #-2147483648 + 5974 0040 23F03F03 bic r3, r3, #63 + 5975 0044 43F00203 orr r3, r3, #2 + 5976 0048 9360 str r3, [r2, #8] + 5977 .LVL483: +6715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5978 .loc 2 6715 3 is_stmt 0 view .LVU1803 + 5979 .LBE597: + 5980 .LBE596: +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 5981 .loc 1 3511 7 is_stmt 1 view .LVU1804 + 5982 004a 2368 ldr r3, [r4] + 5983 004c 0322 movs r2, #3 + 5984 004e 1A60 str r2, [r3] +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5985 .loc 1 3526 5 view .LVU1805 +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5986 .loc 1 3526 17 is_stmt 0 view .LVU1806 + 5987 0050 FFF7FEFF bl HAL_GetTick + 5988 .LVL484: +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 5989 .loc 1 3526 17 view .LVU1807 + 5990 0054 0546 mov r5, r0 + 5991 .LVL485: +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5992 .loc 1 3528 5 is_stmt 1 view .LVU1808 + 5993 .L405: +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5994 .loc 1 3528 47 view .LVU1809 +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5995 .loc 1 3528 17 is_stmt 0 view .LVU1810 + ARM GAS /tmp/ccICigVb.s page 356 + + + 5996 0056 2368 ldr r3, [r4] +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5997 .loc 1 3528 27 view .LVU1811 + 5998 0058 9B68 ldr r3, [r3, #8] +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 5999 .loc 1 3528 47 view .LVU1812 + 6000 005a 13F0010F tst r3, #1 + 6001 005e 13D0 beq .L411 +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6002 .loc 1 3530 7 is_stmt 1 view .LVU1813 +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6003 .loc 1 3530 12 is_stmt 0 view .LVU1814 + 6004 0060 FFF7FEFF bl HAL_GetTick + 6005 .LVL486: +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6006 .loc 1 3530 26 view .LVU1815 + 6007 0064 401B subs r0, r0, r5 +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6008 .loc 1 3530 10 view .LVU1816 + 6009 0066 0228 cmp r0, #2 + 6010 0068 F5D9 bls .L405 +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6011 .loc 1 3533 9 is_stmt 1 view .LVU1817 +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6012 .loc 1 3533 18 is_stmt 0 view .LVU1818 + 6013 006a 2368 ldr r3, [r4] +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6014 .loc 1 3533 28 view .LVU1819 + 6015 006c 9B68 ldr r3, [r3, #8] +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6016 .loc 1 3533 12 view .LVU1820 + 6017 006e 13F0010F tst r3, #1 + 6018 0072 F0D0 beq .L405 +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6019 .loc 1 3536 11 is_stmt 1 view .LVU1821 + 6020 0074 E36D ldr r3, [r4, #92] + 6021 0076 43F01003 orr r3, r3, #16 + 6022 007a E365 str r3, [r4, #92] +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6023 .loc 1 3539 11 view .LVU1822 + 6024 007c 236E ldr r3, [r4, #96] + 6025 007e 43F00103 orr r3, r3, #1 + 6026 0082 2366 str r3, [r4, #96] +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6027 .loc 1 3541 11 view .LVU1823 +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6028 .loc 1 3541 18 is_stmt 0 view .LVU1824 + 6029 0084 0120 movs r0, #1 + 6030 0086 02E0 b .L403 + 6031 .L411: +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6032 .loc 1 3548 10 view .LVU1825 + 6033 0088 0020 movs r0, #0 + 6034 008a 00E0 b .L403 + 6035 .LVL487: + 6036 .L407: +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 357 + + + 6037 .loc 1 3548 10 view .LVU1826 + 6038 008c 0020 movs r0, #0 + 6039 .LVL488: + 6040 .L403: +3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6041 .loc 1 3549 1 view .LVU1827 + 6042 008e 38BD pop {r3, r4, r5, pc} + 6043 .LVL489: + 6044 .L408: +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6045 .loc 1 3548 10 view .LVU1828 + 6046 0090 0020 movs r0, #0 + 6047 .LVL490: +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6048 .loc 1 3548 10 view .LVU1829 + 6049 0092 FCE7 b .L403 + 6050 .cfi_endproc + 6051 .LFE355: + 6053 .section .text.HAL_ADC_DeInit,"ax",%progbits + 6054 .align 1 + 6055 .global HAL_ADC_DeInit + 6056 .syntax unified + 6057 .thumb + 6058 .thumb_func + 6060 HAL_ADC_DeInit: + 6061 .LVL491: + 6062 .LFB330: + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6063 .loc 1 715 1 is_stmt 1 view -0 + 6064 .cfi_startproc + 6065 @ args = 0, pretend = 0, frame = 0 + 6066 @ frame_needed = 0, uses_anonymous_args = 0 + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6067 .loc 1 715 1 is_stmt 0 view .LVU1831 + 6068 0000 38B5 push {r3, r4, r5, lr} + 6069 .LCFI26: + 6070 .cfi_def_cfa_offset 16 + 6071 .cfi_offset 3, -16 + 6072 .cfi_offset 4, -12 + 6073 .cfi_offset 5, -8 + 6074 .cfi_offset 14, -4 + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6075 .loc 1 716 3 is_stmt 1 view .LVU1832 + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6076 .loc 1 719 3 view .LVU1833 + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6077 .loc 1 719 6 is_stmt 0 view .LVU1834 + 6078 0002 0028 cmp r0, #0 + 6079 0004 00F0C980 beq .L418 + 6080 0008 0446 mov r4, r0 + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6081 .loc 1 725 3 is_stmt 1 view .LVU1835 + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6082 .loc 1 728 3 view .LVU1836 + 6083 000a C36D ldr r3, [r0, #92] + 6084 000c 43F00203 orr r3, r3, #2 + 6085 0010 C365 str r3, [r0, #92] + ARM GAS /tmp/ccICigVb.s page 358 + + + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6086 .loc 1 731 3 view .LVU1837 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6087 .loc 1 731 20 is_stmt 0 view .LVU1838 + 6088 0012 0321 movs r1, #3 + 6089 0014 FFF7FEFF bl ADC_ConversionStop + 6090 .LVL492: + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6091 .loc 1 739 3 is_stmt 1 view .LVU1839 + 6092 0018 2268 ldr r2, [r4] + 6093 001a D368 ldr r3, [r2, #12] + 6094 001c 43F40013 orr r3, r3, #2097152 + 6095 0020 D360 str r3, [r2, #12] + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6096 .loc 1 742 3 view .LVU1840 + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6097 .loc 1 742 6 is_stmt 0 view .LVU1841 + 6098 0022 0546 mov r5, r0 + 6099 0024 0028 cmp r0, #0 + 6100 0026 00F09F80 beq .L420 + 6101 .L414: + 6102 .LVL493: + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_IT_JQOVF | ADC_IT_OVR | + 6103 .loc 1 763 3 is_stmt 1 view .LVU1842 + 6104 002a 2268 ldr r2, [r4] + 6105 002c 5368 ldr r3, [r2, #4] + 6106 002e 23F4FF63 bic r3, r3, #2040 + 6107 0032 23F00703 bic r3, r3, #7 + 6108 0036 5360 str r3, [r2, #4] + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_FLAG_JQOVF | ADC_FLAG_OVR | + 6109 .loc 1 770 3 view .LVU1843 + 6110 0038 2368 ldr r3, [r4] + 6111 003a 40F2FF72 movw r2, #2047 + 6112 003e 1A60 str r2, [r3] + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CR, ADC_CR_DEEPPWD); + 6113 .loc 1 781 3 view .LVU1844 + 6114 0040 2268 ldr r2, [r4] + 6115 0042 9368 ldr r3, [r2, #8] + 6116 0044 23F0A043 bic r3, r3, #1342177280 + 6117 0048 9360 str r3, [r2, #8] + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6118 .loc 1 782 3 view .LVU1845 + 6119 004a 2268 ldr r2, [r4] + 6120 004c 9368 ldr r3, [r2, #8] + 6121 004e 43F00053 orr r3, r3, #536870912 + 6122 0052 9360 str r3, [r2, #8] + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + 6123 .loc 1 785 3 view .LVU1846 + 6124 0054 2268 ldr r2, [r4] + 6125 0056 D368 ldr r3, [r2, #12] + 6126 0058 23F0FF43 bic r3, r3, #2139095040 + 6127 005c 23F4FF03 bic r3, r3, #8355840 + 6128 0060 23F4FF43 bic r3, r3, #32640 + 6129 0064 23F07B03 bic r3, r3, #123 + 6130 0068 D360 str r3, [r2, #12] + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6131 .loc 1 786 3 view .LVU1847 + ARM GAS /tmp/ccICigVb.s page 359 + + + 6132 006a 2268 ldr r2, [r4] + 6133 006c D368 ldr r3, [r2, #12] + 6134 006e 43F00043 orr r3, r3, #-2147483648 + 6135 0072 D360 str r3, [r2, #12] + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_CFGR2_OVSR | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE); + 6136 .loc 1 789 3 view .LVU1848 + 6137 0074 2268 ldr r2, [r4] + 6138 0076 1369 ldr r3, [r2, #16] + 6139 0078 23F4FF63 bic r3, r3, #2040 + 6140 007c 23F00703 bic r3, r3, #7 + 6141 0080 1361 str r3, [r2, #16] + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6142 .loc 1 793 3 view .LVU1849 + 6143 0082 2268 ldr r2, [r4] + 6144 0084 5369 ldr r3, [r2, #20] + 6145 0086 03F08043 and r3, r3, #1073741824 + 6146 008a 5361 str r3, [r2, #20] + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SMPR2_SMP15 | ADC_SMPR2_SMP14 | ADC_SMPR2_SMP13 | + 6147 .loc 1 796 3 view .LVU1850 + 6148 008c 2268 ldr r2, [r4] + 6149 008e 9369 ldr r3, [r2, #24] + 6150 0090 03F07843 and r3, r3, #-134217728 + 6151 0094 9361 str r3, [r2, #24] + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6152 .loc 1 801 3 view .LVU1851 + 6153 0096 2268 ldr r2, [r4] + 6154 0098 136A ldr r3, [r2, #32] + 6155 009a 03F0F023 and r3, r3, #-268374016 + 6156 009e 1362 str r3, [r2, #32] + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6157 .loc 1 804 3 view .LVU1852 + 6158 00a0 2268 ldr r2, [r4] + 6159 00a2 536A ldr r3, [r2, #36] + 6160 00a4 03F0FF23 and r3, r3, #-16711936 + 6161 00a8 5362 str r3, [r2, #36] + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6162 .loc 1 807 3 view .LVU1853 + 6163 00aa 2268 ldr r2, [r4] + 6164 00ac 936A ldr r3, [r2, #40] + 6165 00ae 03F0FF23 and r3, r3, #-16711936 + 6166 00b2 9362 str r3, [r2, #40] + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SQR1_SQ1 | ADC_SQR1_L); + 6167 .loc 1 810 3 view .LVU1854 + 6168 00b4 2268 ldr r2, [r4] + 6169 00b6 116B ldr r1, [r2, #48] + 6170 00b8 394B ldr r3, .L422 + 6171 00ba 0B40 ands r3, r3, r1 + 6172 00bc 1363 str r3, [r2, #48] + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SQR2_SQ6 | ADC_SQR2_SQ5); + 6173 .loc 1 814 3 view .LVU1855 + 6174 00be 2268 ldr r2, [r4] + 6175 00c0 536B ldr r3, [r2, #52] + 6176 00c2 3849 ldr r1, .L422+4 + 6177 00c4 0B40 ands r3, r3, r1 + 6178 00c6 5363 str r3, [r2, #52] + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** ADC_SQR3_SQ11 | ADC_SQR3_SQ10); + 6179 .loc 1 818 3 view .LVU1856 + ARM GAS /tmp/ccICigVb.s page 360 + + + 6180 00c8 2268 ldr r2, [r4] + 6181 00ca 936B ldr r3, [r2, #56] + 6182 00cc 0B40 ands r3, r3, r1 + 6183 00ce 9363 str r3, [r2, #56] + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6184 .loc 1 822 3 view .LVU1857 + 6185 00d0 2268 ldr r2, [r4] + 6186 00d2 D36B ldr r3, [r2, #60] + 6187 00d4 23F4FB63 bic r3, r3, #2008 + 6188 00d8 23F00703 bic r3, r3, #7 + 6189 00dc D363 str r3, [r2, #60] + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR2 */ + 6190 .loc 1 830 3 view .LVU1858 + 6191 00de 2168 ldr r1, [r4] + 6192 00e0 0A6E ldr r2, [r1, #96] + 6193 00e2 314B ldr r3, .L422+8 + 6194 00e4 1A40 ands r2, r2, r3 + 6195 00e6 0A66 str r2, [r1, #96] + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR3 */ + 6196 .loc 1 832 3 view .LVU1859 + 6197 00e8 2168 ldr r1, [r4] + 6198 00ea 4A6E ldr r2, [r1, #100] + 6199 00ec 1A40 ands r2, r2, r3 + 6200 00ee 4A66 str r2, [r1, #100] + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** /* Reset register OFR4 */ + 6201 .loc 1 834 3 view .LVU1860 + 6202 00f0 2168 ldr r1, [r4] + 6203 00f2 8A6E ldr r2, [r1, #104] + 6204 00f4 1A40 ands r2, r2, r3 + 6205 00f6 8A66 str r2, [r1, #104] + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6206 .loc 1 836 3 view .LVU1861 + 6207 00f8 2168 ldr r1, [r4] + 6208 00fa CA6E ldr r2, [r1, #108] + 6209 00fc 1340 ands r3, r3, r2 + 6210 00fe CB66 str r3, [r1, #108] + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6211 .loc 1 842 3 view .LVU1862 + 6212 0100 2268 ldr r2, [r4] + 6213 0102 D2F8A030 ldr r3, [r2, #160] + 6214 0106 DB0C lsrs r3, r3, #19 + 6215 0108 DB04 lsls r3, r3, #19 + 6216 010a C2F8A030 str r3, [r2, #160] + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6217 .loc 1 845 3 view .LVU1863 + 6218 010e 2268 ldr r2, [r4] + 6219 0110 D2F8A430 ldr r3, [r2, #164] + 6220 0114 DB0C lsrs r3, r3, #19 + 6221 0116 DB04 lsls r3, r3, #19 + 6222 0118 C2F8A430 str r3, [r2, #164] + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6223 .loc 1 848 3 view .LVU1864 + 6224 011c 2268 ldr r2, [r4] + 6225 011e D2F8B030 ldr r3, [r2, #176] + 6226 0122 DB0C lsrs r3, r3, #19 + 6227 0124 DB04 lsls r3, r3, #19 + 6228 0126 C2F8B030 str r3, [r2, #176] + ARM GAS /tmp/ccICigVb.s page 361 + + + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6229 .loc 1 851 3 view .LVU1865 + 6230 012a 2268 ldr r2, [r4] + 6231 012c D2F8B430 ldr r3, [r2, #180] + 6232 0130 23F07F13 bic r3, r3, #8323199 + 6233 0134 C2F8B430 str r3, [r2, #180] + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6234 .loc 1 858 3 view .LVU1866 + 6235 .LVL494: + 6236 .LBB598: + 6237 .LBI598: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 6238 .loc 2 6729 26 view .LVU1867 + 6239 .LBB599: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6240 .loc 2 6731 3 view .LVU1868 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6241 .loc 2 6731 12 is_stmt 0 view .LVU1869 + 6242 0138 4FF0A043 mov r3, #1342177280 + 6243 013c 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6244 .loc 2 6731 68 view .LVU1870 + 6245 013e 12F00102 ands r2, r2, #1 + 6246 0142 00D0 beq .L415 + 6247 0144 0122 movs r2, #1 + 6248 .L415: + 6249 .LVL495: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6250 .loc 2 6731 68 view .LVU1871 + 6251 .LBE599: + 6252 .LBE598: + 6253 .LBB600: + 6254 .LBI600: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 6255 .loc 2 6729 26 is_stmt 1 view .LVU1872 + 6256 .LBB601: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6257 .loc 2 6731 3 view .LVU1873 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6258 .loc 2 6731 12 is_stmt 0 view .LVU1874 + 6259 0146 194B ldr r3, .L422+12 + 6260 0148 9B68 ldr r3, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6261 .loc 2 6731 68 view .LVU1875 + 6262 014a 13F00103 ands r3, r3, #1 + 6263 014e 00D0 beq .L416 + 6264 0150 0123 movs r3, #1 + 6265 .L416: + 6266 .LVL496: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 6267 .loc 2 6731 68 view .LVU1876 + 6268 .LBE601: + 6269 .LBE600: + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6270 .loc 1 858 6 view .LVU1877 + 6271 0152 1343 orrs r3, r3, r2 + 6272 0154 12D0 beq .L421 + ARM GAS /tmp/ccICigVb.s page 362 + + + 6273 .L417: + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6274 .loc 1 892 3 is_stmt 1 view .LVU1878 + 6275 0156 0023 movs r3, #0 + 6276 0158 2366 str r3, [r4, #96] + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectionConfig.ChannelCount = 0; + 6277 .loc 1 895 3 view .LVU1879 + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** hadc->InjectionConfig.ChannelCount = 0; + 6278 .loc 1 895 38 is_stmt 0 view .LVU1880 + 6279 015a 6366 str r3, [r4, #100] + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6280 .loc 1 896 3 is_stmt 1 view .LVU1881 + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6281 .loc 1 896 38 is_stmt 0 view .LVU1882 + 6282 015c A366 str r3, [r4, #104] + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6283 .loc 1 899 3 is_stmt 1 view .LVU1883 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6284 .loc 1 899 15 is_stmt 0 view .LVU1884 + 6285 015e E365 str r3, [r4, #92] + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6286 .loc 1 902 3 is_stmt 1 view .LVU1885 + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6287 .loc 1 902 3 view .LVU1886 + 6288 0160 84F85830 strb r3, [r4, #88] + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6289 .loc 1 902 3 view .LVU1887 + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6290 .loc 1 905 3 view .LVU1888 + 6291 .LVL497: + 6292 .L413: + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6293 .loc 1 906 1 is_stmt 0 view .LVU1889 + 6294 0164 2846 mov r0, r5 + 6295 0166 38BD pop {r3, r4, r5, pc} + 6296 .LVL498: + 6297 .L420: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6298 .loc 1 745 5 is_stmt 1 view .LVU1890 + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6299 .loc 1 745 22 is_stmt 0 view .LVU1891 + 6300 0168 2046 mov r0, r4 + 6301 .LVL499: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6302 .loc 1 745 22 view .LVU1892 + 6303 016a FFF7FEFF bl ADC_Disable + 6304 .LVL500: + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6305 .loc 1 748 5 is_stmt 1 view .LVU1893 + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6306 .loc 1 748 8 is_stmt 0 view .LVU1894 + 6307 016e 0546 mov r5, r0 + 6308 0170 0028 cmp r0, #0 + 6309 0172 7FF45AAF bne .L414 + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6310 .loc 1 751 7 is_stmt 1 view .LVU1895 + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + ARM GAS /tmp/ccICigVb.s page 363 + + + 6311 .loc 1 751 19 is_stmt 0 view .LVU1896 + 6312 0176 0123 movs r3, #1 + 6313 0178 E365 str r3, [r4, #92] + 6314 017a 56E7 b .L414 + 6315 .LVL501: + 6316 .L421: + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6317 .loc 1 867 5 is_stmt 1 view .LVU1897 + 6318 017c 0C4A ldr r2, .L422+16 + 6319 017e 9368 ldr r3, [r2, #8] + 6320 0180 23F0FF73 bic r3, r3, #33423360 + 6321 0184 23F4F733 bic r3, r3, #126464 + 6322 0188 23F48F73 bic r3, r3, #286 + 6323 018c 23F00103 bic r3, r3, #1 + 6324 0190 9360 str r3, [r2, #8] + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ + 6325 .loc 1 887 5 view .LVU1898 + 6326 0192 2046 mov r0, r4 + 6327 0194 FFF7FEFF bl HAL_ADC_MspDeInit + 6328 .LVL502: + 6329 0198 DDE7 b .L417 + 6330 .LVL503: + 6331 .L418: + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6332 .loc 1 721 12 is_stmt 0 view .LVU1899 + 6333 019a 0125 movs r5, #1 + 6334 019c E2E7 b .L413 + 6335 .L423: + 6336 019e 00BF .align 2 + 6337 .L422: + 6338 01a0 300882E0 .word -528349136 + 6339 01a4 200882E0 .word -528349152 + 6340 01a8 00F0FF03 .word 67104768 + 6341 01ac 00010050 .word 1342177536 + 6342 01b0 00030050 .word 1342178048 + 6343 .cfi_endproc + 6344 .LFE330: + 6346 .section .text.HAL_ADC_Stop,"ax",%progbits + 6347 .align 1 + 6348 .global HAL_ADC_Stop + 6349 .syntax unified + 6350 .thumb + 6351 .thumb_func + 6353 HAL_ADC_Stop: + 6354 .LVL504: + 6355 .LFB334: +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6356 .loc 1 1356 1 is_stmt 1 view -0 + 6357 .cfi_startproc + 6358 @ args = 0, pretend = 0, frame = 0 + 6359 @ frame_needed = 0, uses_anonymous_args = 0 +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6360 .loc 1 1357 3 view .LVU1901 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6361 .loc 1 1360 3 view .LVU1902 +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6362 .loc 1 1363 3 view .LVU1903 + ARM GAS /tmp/ccICigVb.s page 364 + + +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6363 .loc 1 1363 3 view .LVU1904 + 6364 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 6365 0004 012B cmp r3, #1 + 6366 0006 1AD0 beq .L427 +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6367 .loc 1 1356 1 is_stmt 0 discriminator 2 view .LVU1905 + 6368 0008 10B5 push {r4, lr} + 6369 .LCFI27: + 6370 .cfi_def_cfa_offset 8 + 6371 .cfi_offset 4, -8 + 6372 .cfi_offset 14, -4 + 6373 000a 0446 mov r4, r0 +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6374 .loc 1 1363 3 is_stmt 1 discriminator 2 view .LVU1906 + 6375 000c 0123 movs r3, #1 + 6376 000e 80F85830 strb r3, [r0, #88] +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6377 .loc 1 1363 3 discriminator 2 view .LVU1907 +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6378 .loc 1 1366 3 discriminator 2 view .LVU1908 +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6379 .loc 1 1366 20 is_stmt 0 discriminator 2 view .LVU1909 + 6380 0012 0321 movs r1, #3 + 6381 0014 FFF7FEFF bl ADC_ConversionStop + 6382 .LVL505: +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6383 .loc 1 1369 3 is_stmt 1 discriminator 2 view .LVU1910 +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6384 .loc 1 1369 6 is_stmt 0 discriminator 2 view .LVU1911 + 6385 0018 18B1 cbz r0, .L432 + 6386 .L426: +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6387 .loc 1 1385 3 is_stmt 1 view .LVU1912 +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6388 .loc 1 1385 3 view .LVU1913 + 6389 001a 0023 movs r3, #0 + 6390 001c 84F85830 strb r3, [r4, #88] +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6391 .loc 1 1385 3 view .LVU1914 +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6392 .loc 1 1388 3 view .LVU1915 +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6393 .loc 1 1389 1 is_stmt 0 view .LVU1916 + 6394 0020 10BD pop {r4, pc} + 6395 .LVL506: + 6396 .L432: +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6397 .loc 1 1372 5 is_stmt 1 view .LVU1917 +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6398 .loc 1 1372 22 is_stmt 0 view .LVU1918 + 6399 0022 2046 mov r0, r4 + 6400 .LVL507: +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6401 .loc 1 1372 22 view .LVU1919 + 6402 0024 FFF7FEFF bl ADC_Disable + 6403 .LVL508: + ARM GAS /tmp/ccICigVb.s page 365 + + +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6404 .loc 1 1375 5 is_stmt 1 view .LVU1920 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6405 .loc 1 1375 8 is_stmt 0 view .LVU1921 + 6406 0028 0028 cmp r0, #0 + 6407 002a F6D1 bne .L426 +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 6408 .loc 1 1378 7 is_stmt 1 view .LVU1922 + 6409 002c E36D ldr r3, [r4, #92] + 6410 002e 23F48853 bic r3, r3, #4352 + 6411 0032 23F00103 bic r3, r3, #1 + 6412 0036 43F00103 orr r3, r3, #1 + 6413 003a E365 str r3, [r4, #92] + 6414 003c EDE7 b .L426 + 6415 .LVL509: + 6416 .L427: + 6417 .LCFI28: + 6418 .cfi_def_cfa_offset 0 + 6419 .cfi_restore 4 + 6420 .cfi_restore 14 +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6421 .loc 1 1363 3 is_stmt 0 view .LVU1923 + 6422 003e 0220 movs r0, #2 + 6423 .LVL510: +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6424 .loc 1 1389 1 view .LVU1924 + 6425 0040 7047 bx lr + 6426 .cfi_endproc + 6427 .LFE334: + 6429 .section .text.HAL_ADC_Stop_IT,"ax",%progbits + 6430 .align 1 + 6431 .global HAL_ADC_Stop_IT + 6432 .syntax unified + 6433 .thumb + 6434 .thumb_func + 6436 HAL_ADC_Stop_IT: + 6437 .LVL511: + 6438 .LFB338: +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6439 .loc 1 1949 1 is_stmt 1 view -0 + 6440 .cfi_startproc + 6441 @ args = 0, pretend = 0, frame = 0 + 6442 @ frame_needed = 0, uses_anonymous_args = 0 +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6443 .loc 1 1950 3 view .LVU1926 +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6444 .loc 1 1953 3 view .LVU1927 +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6445 .loc 1 1956 3 view .LVU1928 +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6446 .loc 1 1956 3 view .LVU1929 + 6447 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 6448 0004 012B cmp r3, #1 + 6449 0006 1FD0 beq .L436 +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6450 .loc 1 1949 1 is_stmt 0 discriminator 2 view .LVU1930 + 6451 0008 10B5 push {r4, lr} + ARM GAS /tmp/ccICigVb.s page 366 + + + 6452 .LCFI29: + 6453 .cfi_def_cfa_offset 8 + 6454 .cfi_offset 4, -8 + 6455 .cfi_offset 14, -4 + 6456 000a 0446 mov r4, r0 +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6457 .loc 1 1956 3 is_stmt 1 discriminator 2 view .LVU1931 + 6458 000c 0123 movs r3, #1 + 6459 000e 80F85830 strb r3, [r0, #88] +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6460 .loc 1 1956 3 discriminator 2 view .LVU1932 +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6461 .loc 1 1959 3 discriminator 2 view .LVU1933 +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6462 .loc 1 1959 20 is_stmt 0 discriminator 2 view .LVU1934 + 6463 0012 0321 movs r1, #3 + 6464 0014 FFF7FEFF bl ADC_ConversionStop + 6465 .LVL512: +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6466 .loc 1 1962 3 is_stmt 1 discriminator 2 view .LVU1935 +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6467 .loc 1 1962 6 is_stmt 0 discriminator 2 view .LVU1936 + 6468 0018 18B1 cbz r0, .L441 + 6469 .L435: +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6470 .loc 1 1982 3 is_stmt 1 view .LVU1937 +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6471 .loc 1 1982 3 view .LVU1938 + 6472 001a 0023 movs r3, #0 + 6473 001c 84F85830 strb r3, [r4, #88] +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6474 .loc 1 1982 3 view .LVU1939 +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6475 .loc 1 1985 3 view .LVU1940 +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6476 .loc 1 1986 1 is_stmt 0 view .LVU1941 + 6477 0020 10BD pop {r4, pc} + 6478 .LVL513: + 6479 .L441: +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6480 .loc 1 1966 5 is_stmt 1 view .LVU1942 + 6481 0022 2268 ldr r2, [r4] + 6482 0024 5368 ldr r3, [r2, #4] + 6483 0026 23F01C03 bic r3, r3, #28 + 6484 002a 5360 str r3, [r2, #4] +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6485 .loc 1 1969 5 view .LVU1943 +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6486 .loc 1 1969 22 is_stmt 0 view .LVU1944 + 6487 002c 2046 mov r0, r4 + 6488 .LVL514: +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6489 .loc 1 1969 22 view .LVU1945 + 6490 002e FFF7FEFF bl ADC_Disable + 6491 .LVL515: +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6492 .loc 1 1972 5 is_stmt 1 view .LVU1946 + ARM GAS /tmp/ccICigVb.s page 367 + + +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6493 .loc 1 1972 8 is_stmt 0 view .LVU1947 + 6494 0032 0028 cmp r0, #0 + 6495 0034 F1D1 bne .L435 +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 6496 .loc 1 1975 7 is_stmt 1 view .LVU1948 + 6497 0036 E36D ldr r3, [r4, #92] + 6498 0038 23F48853 bic r3, r3, #4352 + 6499 003c 23F00103 bic r3, r3, #1 + 6500 0040 43F00103 orr r3, r3, #1 + 6501 0044 E365 str r3, [r4, #92] + 6502 0046 E8E7 b .L435 + 6503 .LVL516: + 6504 .L436: + 6505 .LCFI30: + 6506 .cfi_def_cfa_offset 0 + 6507 .cfi_restore 4 + 6508 .cfi_restore 14 +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6509 .loc 1 1956 3 is_stmt 0 view .LVU1949 + 6510 0048 0220 movs r0, #2 + 6511 .LVL517: +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6512 .loc 1 1986 1 view .LVU1950 + 6513 004a 7047 bx lr + 6514 .cfi_endproc + 6515 .LFE338: + 6517 .section .text.HAL_ADC_Stop_DMA,"ax",%progbits + 6518 .align 1 + 6519 .global HAL_ADC_Stop_DMA + 6520 .syntax unified + 6521 .thumb + 6522 .thumb_func + 6524 HAL_ADC_Stop_DMA: + 6525 .LVL518: + 6526 .LFB340: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6527 .loc 1 2144 1 is_stmt 1 view -0 + 6528 .cfi_startproc + 6529 @ args = 0, pretend = 0, frame = 0 + 6530 @ frame_needed = 0, uses_anonymous_args = 0 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status; + 6531 .loc 1 2144 1 is_stmt 0 view .LVU1952 + 6532 0000 38B5 push {r3, r4, r5, lr} + 6533 .LCFI31: + 6534 .cfi_def_cfa_offset 16 + 6535 .cfi_offset 3, -16 + 6536 .cfi_offset 4, -12 + 6537 .cfi_offset 5, -8 + 6538 .cfi_offset 14, -4 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6539 .loc 1 2145 3 is_stmt 1 view .LVU1953 +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6540 .loc 1 2148 3 view .LVU1954 +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6541 .loc 1 2151 3 view .LVU1955 +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + ARM GAS /tmp/ccICigVb.s page 368 + + + 6542 .loc 1 2151 3 view .LVU1956 + 6543 0002 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 6544 0006 012B cmp r3, #1 + 6545 0008 39D0 beq .L448 + 6546 000a 0446 mov r4, r0 +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6547 .loc 1 2151 3 discriminator 2 view .LVU1957 + 6548 000c 0123 movs r3, #1 + 6549 000e 80F85830 strb r3, [r0, #88] +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6550 .loc 1 2151 3 discriminator 2 view .LVU1958 +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6551 .loc 1 2154 3 discriminator 2 view .LVU1959 +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6552 .loc 1 2154 20 is_stmt 0 discriminator 2 view .LVU1960 + 6553 0012 0321 movs r1, #3 + 6554 0014 FFF7FEFF bl ADC_ConversionStop + 6555 .LVL519: +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6556 .loc 1 2157 3 is_stmt 1 discriminator 2 view .LVU1961 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6557 .loc 1 2157 6 is_stmt 0 discriminator 2 view .LVU1962 + 6558 0018 0546 mov r5, r0 + 6559 001a E8B9 cbnz r0, .L444 +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6560 .loc 1 2160 5 is_stmt 1 view .LVU1963 + 6561 001c 2268 ldr r2, [r4] + 6562 001e D368 ldr r3, [r2, #12] + 6563 0020 23F00103 bic r3, r3, #1 + 6564 0024 D360 str r3, [r2, #12] +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6565 .loc 1 2164 5 view .LVU1964 +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6566 .loc 1 2164 13 is_stmt 0 view .LVU1965 + 6567 0026 606D ldr r0, [r4, #84] + 6568 .LVL520: +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6569 .loc 1 2164 25 view .LVU1966 + 6570 0028 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 6571 002c DBB2 uxtb r3, r3 +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6572 .loc 1 2164 8 view .LVU1967 + 6573 002e 022B cmp r3, #2 + 6574 0030 17D0 beq .L450 + 6575 .LVL521: + 6576 .L445: +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6577 .loc 1 2177 5 is_stmt 1 view .LVU1968 + 6578 0032 2268 ldr r2, [r4] + 6579 0034 5368 ldr r3, [r2, #4] + 6580 0036 23F01003 bic r3, r3, #16 + 6581 003a 5360 str r3, [r2, #4] +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6582 .loc 1 2182 5 view .LVU1969 +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6583 .loc 1 2182 8 is_stmt 0 view .LVU1970 + 6584 003c DDB9 cbnz r5, .L446 + ARM GAS /tmp/ccICigVb.s page 369 + + +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6585 .loc 1 2184 7 is_stmt 1 view .LVU1971 +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6586 .loc 1 2184 24 is_stmt 0 view .LVU1972 + 6587 003e 2046 mov r0, r4 + 6588 0040 FFF7FEFF bl ADC_Disable + 6589 .LVL522: + 6590 0044 0546 mov r5, r0 + 6591 .LVL523: + 6592 .L447: +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6593 .loc 1 2192 5 is_stmt 1 view .LVU1973 +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6594 .loc 1 2192 8 is_stmt 0 view .LVU1974 + 6595 0046 3DB9 cbnz r5, .L444 +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 6596 .loc 1 2195 7 is_stmt 1 view .LVU1975 + 6597 0048 E36D ldr r3, [r4, #92] + 6598 004a 23F48853 bic r3, r3, #4352 + 6599 004e 23F00103 bic r3, r3, #1 + 6600 0052 43F00103 orr r3, r3, #1 + 6601 0056 E365 str r3, [r4, #92] + 6602 .LVL524: + 6603 .L444: +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6604 .loc 1 2203 3 view .LVU1976 +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6605 .loc 1 2203 3 view .LVU1977 + 6606 0058 0023 movs r3, #0 + 6607 005a 84F85830 strb r3, [r4, #88] +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6608 .loc 1 2203 3 view .LVU1978 +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6609 .loc 1 2206 3 view .LVU1979 + 6610 .LVL525: + 6611 .L443: +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6612 .loc 1 2207 1 is_stmt 0 view .LVU1980 + 6613 005e 2846 mov r0, r5 + 6614 0060 38BD pop {r3, r4, r5, pc} + 6615 .LVL526: + 6616 .L450: +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6617 .loc 1 2166 7 is_stmt 1 view .LVU1981 +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6618 .loc 1 2166 24 is_stmt 0 view .LVU1982 + 6619 0062 FFF7FEFF bl HAL_DMA_Abort + 6620 .LVL527: +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6621 .loc 1 2169 7 is_stmt 1 view .LVU1983 +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** { + 6622 .loc 1 2169 10 is_stmt 0 view .LVU1984 + 6623 0066 0546 mov r5, r0 + 6624 0068 0028 cmp r0, #0 + 6625 006a E2D0 beq .L445 +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6626 .loc 1 2172 9 is_stmt 1 view .LVU1985 + ARM GAS /tmp/ccICigVb.s page 370 + + + 6627 006c E36D ldr r3, [r4, #92] + 6628 006e 43F04003 orr r3, r3, #64 + 6629 0072 E365 str r3, [r4, #92] + 6630 0074 DDE7 b .L445 + 6631 .LVL528: + 6632 .L446: +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6633 .loc 1 2188 7 view .LVU1986 +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** } + 6634 .loc 1 2188 13 is_stmt 0 view .LVU1987 + 6635 0076 2046 mov r0, r4 + 6636 0078 FFF7FEFF bl ADC_Disable + 6637 .LVL529: + 6638 007c E3E7 b .L447 + 6639 .LVL530: + 6640 .L448: +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc.c **** + 6641 .loc 1 2151 3 view .LVU1988 + 6642 007e 0225 movs r5, #2 + 6643 0080 EDE7 b .L443 + 6644 .cfi_endproc + 6645 .LFE340: + 6647 .text + 6648 .Letext0: + 6649 .file 4 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 6650 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 6651 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 6652 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 6653 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 6654 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h" + 6655 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h" + 6656 .file 11 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" + 6657 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccICigVb.s page 371 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_adc.c + /tmp/ccICigVb.s:21 .text.LL_ADC_REG_SetSequencerRanks:00000000 $t + /tmp/ccICigVb.s:26 .text.LL_ADC_REG_SetSequencerRanks:00000000 LL_ADC_REG_SetSequencerRanks + /tmp/ccICigVb.s:73 .text.LL_ADC_SetChannelSamplingTime:00000000 $t + /tmp/ccICigVb.s:78 .text.LL_ADC_SetChannelSamplingTime:00000000 LL_ADC_SetChannelSamplingTime + /tmp/ccICigVb.s:123 .text.LL_ADC_SetAnalogWDMonitChannels:00000000 $t + /tmp/ccICigVb.s:128 .text.LL_ADC_SetAnalogWDMonitChannels:00000000 LL_ADC_SetAnalogWDMonitChannels + /tmp/ccICigVb.s:166 .text.HAL_ADC_MspInit:00000000 $t + /tmp/ccICigVb.s:172 .text.HAL_ADC_MspInit:00000000 HAL_ADC_MspInit + /tmp/ccICigVb.s:187 .text.HAL_ADC_Init:00000000 $t + /tmp/ccICigVb.s:193 .text.HAL_ADC_Init:00000000 HAL_ADC_Init + /tmp/ccICigVb.s:762 .text.HAL_ADC_Init:0000022c $d + /tmp/ccICigVb.s:771 .text.HAL_ADC_MspDeInit:00000000 $t + /tmp/ccICigVb.s:777 .text.HAL_ADC_MspDeInit:00000000 HAL_ADC_MspDeInit + /tmp/ccICigVb.s:792 .text.HAL_ADC_PollForConversion:00000000 $t + /tmp/ccICigVb.s:798 .text.HAL_ADC_PollForConversion:00000000 HAL_ADC_PollForConversion + /tmp/ccICigVb.s:1083 .text.HAL_ADC_PollForConversion:00000114 $d + /tmp/ccICigVb.s:1089 .text.HAL_ADC_PollForEvent:00000000 $t + /tmp/ccICigVb.s:1095 .text.HAL_ADC_PollForEvent:00000000 HAL_ADC_PollForEvent + /tmp/ccICigVb.s:1283 .text.HAL_ADC_GetValue:00000000 $t + /tmp/ccICigVb.s:1289 .text.HAL_ADC_GetValue:00000000 HAL_ADC_GetValue + /tmp/ccICigVb.s:1310 .text.HAL_ADC_StartSampling:00000000 $t + /tmp/ccICigVb.s:1316 .text.HAL_ADC_StartSampling:00000000 HAL_ADC_StartSampling + /tmp/ccICigVb.s:1340 .text.HAL_ADC_StopSampling:00000000 $t + /tmp/ccICigVb.s:1346 .text.HAL_ADC_StopSampling:00000000 HAL_ADC_StopSampling + /tmp/ccICigVb.s:1370 .text.HAL_ADC_ConvCpltCallback:00000000 $t + /tmp/ccICigVb.s:1376 .text.HAL_ADC_ConvCpltCallback:00000000 HAL_ADC_ConvCpltCallback + /tmp/ccICigVb.s:1391 .text.HAL_ADC_ConvHalfCpltCallback:00000000 $t + /tmp/ccICigVb.s:1397 .text.HAL_ADC_ConvHalfCpltCallback:00000000 HAL_ADC_ConvHalfCpltCallback + /tmp/ccICigVb.s:1412 .text.ADC_DMAHalfConvCplt:00000000 $t + /tmp/ccICigVb.s:1418 .text.ADC_DMAHalfConvCplt:00000000 ADC_DMAHalfConvCplt + /tmp/ccICigVb.s:1445 .text.HAL_ADC_LevelOutOfWindowCallback:00000000 $t + /tmp/ccICigVb.s:1451 .text.HAL_ADC_LevelOutOfWindowCallback:00000000 HAL_ADC_LevelOutOfWindowCallback + /tmp/ccICigVb.s:1466 .text.HAL_ADC_ErrorCallback:00000000 $t + /tmp/ccICigVb.s:1472 .text.HAL_ADC_ErrorCallback:00000000 HAL_ADC_ErrorCallback + /tmp/ccICigVb.s:1487 .text.HAL_ADC_IRQHandler:00000000 $t + /tmp/ccICigVb.s:1493 .text.HAL_ADC_IRQHandler:00000000 HAL_ADC_IRQHandler + /tmp/ccICigVb.s:2066 .text.HAL_ADC_IRQHandler:00000274 $d + /tmp/ccICigVb.s:2071 .text.HAL_ADC_IRQHandler:0000027c $t + /tmp/ccICigVb.s:2092 .text.ADC_DMAConvCplt:00000000 $t + /tmp/ccICigVb.s:2098 .text.ADC_DMAConvCplt:00000000 ADC_DMAConvCplt + /tmp/ccICigVb.s:2233 .text.ADC_DMAError:00000000 $t + /tmp/ccICigVb.s:2239 .text.ADC_DMAError:00000000 ADC_DMAError + /tmp/ccICigVb.s:2273 .text.HAL_ADC_ConfigChannel:00000000 $t + /tmp/ccICigVb.s:2279 .text.HAL_ADC_ConfigChannel:00000000 HAL_ADC_ConfigChannel + /tmp/ccICigVb.s:3389 .text.HAL_ADC_ConfigChannel:00000334 $d + /tmp/ccICigVb.s:3407 .text.HAL_ADC_ConfigChannel:00000354 $t + /tmp/ccICigVb.s:3725 .text.HAL_ADC_ConfigChannel:00000454 $d + /tmp/ccICigVb.s:3733 .text.HAL_ADC_AnalogWDGConfig:00000000 $t + /tmp/ccICigVb.s:3739 .text.HAL_ADC_AnalogWDGConfig:00000000 HAL_ADC_AnalogWDGConfig + /tmp/ccICigVb.s:4508 .text.HAL_ADC_AnalogWDGConfig:000002e0 $d + /tmp/ccICigVb.s:4515 .text.HAL_ADC_GetState:00000000 $t + /tmp/ccICigVb.s:4521 .text.HAL_ADC_GetState:00000000 HAL_ADC_GetState + /tmp/ccICigVb.s:4540 .text.HAL_ADC_GetError:00000000 $t + /tmp/ccICigVb.s:4546 .text.HAL_ADC_GetError:00000000 HAL_ADC_GetError + /tmp/ccICigVb.s:4565 .text.ADC_ConversionStop:00000000 $t + ARM GAS /tmp/ccICigVb.s page 372 + + + /tmp/ccICigVb.s:4571 .text.ADC_ConversionStop:00000000 ADC_ConversionStop + /tmp/ccICigVb.s:4897 .text.ADC_ConversionStop:00000100 $d + /tmp/ccICigVb.s:4902 .text.ADC_Enable:00000000 $t + /tmp/ccICigVb.s:4908 .text.ADC_Enable:00000000 ADC_Enable + /tmp/ccICigVb.s:5072 .text.ADC_Enable:00000094 $d + /tmp/ccICigVb.s:5077 .text.HAL_ADC_Start:00000000 $t + /tmp/ccICigVb.s:5083 .text.HAL_ADC_Start:00000000 HAL_ADC_Start + /tmp/ccICigVb.s:5302 .text.HAL_ADC_Start:000000f4 $d + /tmp/ccICigVb.s:5308 .text.HAL_ADC_Start_IT:00000000 $t + /tmp/ccICigVb.s:5314 .text.HAL_ADC_Start_IT:00000000 HAL_ADC_Start_IT + /tmp/ccICigVb.s:5630 .text.HAL_ADC_Start_IT:00000188 $d + /tmp/ccICigVb.s:5636 .text.HAL_ADC_Start_DMA:00000000 $t + /tmp/ccICigVb.s:5642 .text.HAL_ADC_Start_DMA:00000000 HAL_ADC_Start_DMA + /tmp/ccICigVb.s:5871 .text.HAL_ADC_Start_DMA:000000f0 $d + /tmp/ccICigVb.s:5880 .text.ADC_Disable:00000000 $t + /tmp/ccICigVb.s:5886 .text.ADC_Disable:00000000 ADC_Disable + /tmp/ccICigVb.s:6054 .text.HAL_ADC_DeInit:00000000 $t + /tmp/ccICigVb.s:6060 .text.HAL_ADC_DeInit:00000000 HAL_ADC_DeInit + /tmp/ccICigVb.s:6338 .text.HAL_ADC_DeInit:000001a0 $d + /tmp/ccICigVb.s:6347 .text.HAL_ADC_Stop:00000000 $t + /tmp/ccICigVb.s:6353 .text.HAL_ADC_Stop:00000000 HAL_ADC_Stop + /tmp/ccICigVb.s:6430 .text.HAL_ADC_Stop_IT:00000000 $t + /tmp/ccICigVb.s:6436 .text.HAL_ADC_Stop_IT:00000000 HAL_ADC_Stop_IT + /tmp/ccICigVb.s:6518 .text.HAL_ADC_Stop_DMA:00000000 $t + /tmp/ccICigVb.s:6524 .text.HAL_ADC_Stop_DMA:00000000 HAL_ADC_Stop_DMA + +UNDEFINED SYMBOLS +SystemCoreClock +HAL_GetTick +HAL_ADCEx_EndOfSamplingCallback +HAL_ADCEx_InjectedConvCpltCallback +HAL_ADCEx_LevelOutOfWindow2Callback +HAL_ADCEx_LevelOutOfWindow3Callback +HAL_ADCEx_InjectedQueueOverflowCallback +HAL_DMA_Start_IT +HAL_DMA_Abort diff --git a/squeow_sw/build/stm32g4xx_hal_adc.o b/squeow_sw/build/stm32g4xx_hal_adc.o new file mode 100644 index 0000000000000000000000000000000000000000..b5b14b92ce2133060c9e90745e393e1565f09fb6 GIT binary patch literal 78924 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%0Ay7i(% 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_adc_ex.d b/squeow_sw/build/stm32g4xx_hal_adc_ex.d new file mode 100644 index 0000000..e2b3ce6 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_adc_ex.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_adc_ex.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_adc_ex.lst b/squeow_sw/build/stm32g4xx_hal_adc_ex.lst new file mode 100644 index 0000000..a250384 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_adc_ex.lst @@ -0,0 +1,17638 @@ +ARM GAS /tmp/cc3JIfda.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_adc_ex.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c" + 20 .section .text.LL_ADC_SetCalibrationFactor,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 LL_ADC_SetCalibrationFactor: + 27 .LVL0: + 28 .LFB139: + 29 .file 2 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h" + 1:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @file stm32g4xx_ll_adc.h + 4:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Header file of ADC LL module. + 6:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ****************************************************************************** + 7:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @attention + 8:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * + 9:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Copyright (c) 2019 STMicroelectronics. + 10:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All rights reserved. + 11:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * + 12:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This software is licensed under terms that can be found in the LICENSE file + 13:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in the root directory of this software component. + 14:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If no LICENSE file comes with this software, it is provided AS-IS. + 15:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * + 16:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ****************************************************************************** + 17:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 18:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 19:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Define to prevent recursive inclusion -------------------------------------*/ + 20:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #ifndef STM32G4xx_LL_ADC_H + 21:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define STM32G4xx_LL_ADC_H + 22:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 23:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #ifdef __cplusplus + 24:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** extern "C" { + 25:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif + 26:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 27:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Includes ------------------------------------------------------------------*/ + 28:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #include "stm32g4xx.h" + 29:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/cc3JIfda.s page 2 + + + 30:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @addtogroup STM32G4xx_LL_Driver + 31:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 32:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 33:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 34:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined (ADC1) || defined (ADC2) || defined (ADC3) || defined (ADC4) || defined (ADC5) + 35:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 36:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL ADC + 37:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 38:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 39:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 40:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Private types -------------------------------------------------------------*/ + 41:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Private variables ---------------------------------------------------------*/ + 42:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 43:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Private constants ---------------------------------------------------------*/ + 44:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_Private_Constants ADC Private Constants + 45:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 46:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 47:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 48:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC group regular sequencer: */ + 49:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */ + 50:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - sequencer register offset */ + 51:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - sequencer rank bits position into the selected register */ + 52:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 53:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal register offset for ADC group regular sequencer configuration */ + 54:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (offset placed into a spare area of literal definition) */ + 55:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SQR1_REGOFFSET (0x00000000UL) + 56:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SQR2_REGOFFSET (0x00000100UL) + 57:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SQR3_REGOFFSET (0x00000200UL) + 58:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SQR4_REGOFFSET (0x00000300UL) + 59:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 60:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET \ + 61:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET) + 62:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SQRX_REGOFFSET_POS (8UL) /* Position of bits ADC_SQRx_REGOFFSET in ADC_REG_ + 63:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0) + 64:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 65:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of ADC group regular sequencer bits information to be inserted */ + 66:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* into ADC group regular sequencer ranks literals definition. */ + 67:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_1_SQRX_BITOFFSET_POS (ADC_SQR1_SQ1_Pos) + 68:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_2_SQRX_BITOFFSET_POS (ADC_SQR1_SQ2_Pos) + 69:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_3_SQRX_BITOFFSET_POS (ADC_SQR1_SQ3_Pos) + 70:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_4_SQRX_BITOFFSET_POS (ADC_SQR1_SQ4_Pos) + 71:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_5_SQRX_BITOFFSET_POS (ADC_SQR2_SQ5_Pos) + 72:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_6_SQRX_BITOFFSET_POS (ADC_SQR2_SQ6_Pos) + 73:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_7_SQRX_BITOFFSET_POS (ADC_SQR2_SQ7_Pos) + 74:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_8_SQRX_BITOFFSET_POS (ADC_SQR2_SQ8_Pos) + 75:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_9_SQRX_BITOFFSET_POS (ADC_SQR2_SQ9_Pos) + 76:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_10_SQRX_BITOFFSET_POS (ADC_SQR3_SQ10_Pos) + 77:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_11_SQRX_BITOFFSET_POS (ADC_SQR3_SQ11_Pos) + 78:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (ADC_SQR3_SQ12_Pos) + 79:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_13_SQRX_BITOFFSET_POS (ADC_SQR3_SQ13_Pos) + 80:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_14_SQRX_BITOFFSET_POS (ADC_SQR3_SQ14_Pos) + 81:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_15_SQRX_BITOFFSET_POS (ADC_SQR4_SQ15_Pos) + 82:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_RANK_16_SQRX_BITOFFSET_POS (ADC_SQR4_SQ16_Pos) + 83:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 84:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 85:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 86:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC group injected sequencer: */ + ARM GAS /tmp/cc3JIfda.s page 3 + + + 87:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */ + 88:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - data register offset */ + 89:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - sequencer rank bits position into the selected register */ + 90:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 91:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal register offset for ADC group injected data register */ + 92:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (offset placed into a spare area of literal definition) */ + 93:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_JDR1_REGOFFSET (0x00000000UL) + 94:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_JDR2_REGOFFSET (0x00000100UL) + 95:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_JDR3_REGOFFSET (0x00000200UL) + 96:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_JDR4_REGOFFSET (0x00000300UL) + 97:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 98:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET \ + 99:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET) + 100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0) + 101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_JDRX_REGOFFSET_POS (8UL) /* Position of bits ADC_JDRx_REGOFFSET in ADC_INJ_ + 102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of ADC group injected sequencer bits information to be inserted */ + 104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* into ADC group injected sequencer ranks literals definition. */ + 105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ1_Pos) + 106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ2_Pos) + 107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ3_Pos) + 108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ4_Pos) + 109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC group regular trigger: */ + 113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literal LL_ADC_REG_TRIG_x the relevant bits for: */ + 114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - regular trigger source */ + 115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - regular trigger edge */ + 116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_TRIG_EXT_EDGE_DEFAULT (ADC_CFGR_EXTEN_0) /* Trigger edge set to rising edge ( + 117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Mask containing trigger source masks for each of possible */ + 119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ + 120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ + 121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTSEL) << (4U * + 122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_CFGR_EXTSEL) << (4U * + 123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_CFGR_EXTSEL) << (4U * + 124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_CFGR_EXTSEL) << (4U * + 125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Mask containing trigger edge masks for each of possible */ + 127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ + 128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ + 129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_TRIG_EDGE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN) << (4U * + 130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * + 131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * + 132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * + 133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of ADC group regular trigger bits information. */ + 135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS (ADC_CFGR_EXTSEL_Pos) + 136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_REG_TRIG_EXTEN_BITOFFSET_POS (ADC_CFGR_EXTEN_Pos) + 137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC group injected trigger: */ + 141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for: */ + 142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - injected trigger source */ + 143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - injected trigger edge */ + ARM GAS /tmp/cc3JIfda.s page 4 + + + 144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_TRIG_EXT_EDGE_DEFAULT (ADC_JSQR_JEXTEN_0) /* Trigger edge set to rising edge ( + 145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Mask containing trigger source masks for each of possible */ + 147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ + 148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ + 149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_TRIG_SOURCE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTSEL) << (4U + 150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_JSQR_JEXTSEL) << (4U + 151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_JSQR_JEXTSEL) << (4U + 152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_JSQR_JEXTSEL) << (4U + 153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Mask containing trigger edge masks for each of possible */ + 155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */ + 156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */ + 157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_TRIG_EDGE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN) << (4U * + 158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * + 159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * + 160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * + 161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of ADC group injected trigger bits information. */ + 163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS (ADC_JSQR_JEXTSEL_Pos) + 164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS (ADC_JSQR_JEXTEN_Pos) + 165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC channel: */ + 172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */ + 173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - channel identifier defined by number */ + 174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - channel identifier defined by bitfield */ + 175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - channel differentiation between external channels (connected to */ + 176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* GPIO pins) and internal channels (connected to internal paths) */ + 177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - channel sampling time defined by SMPRx register offset */ + 178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* and SMPx bits positions into SMPRx register */ + 179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CFGR_AWD1CH) + 180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_BITFIELD_MASK (ADC_AWD2CR_AWD2CH) + 181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS (ADC_CFGR_AWD1CH_Pos) + 182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_BITFIELD_MA + 183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ADC_CHANNEL_ID_INTERNAL_CH_MASK) + 184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */ + 185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 (ADC_SQR2_SQ5) /* Equivalent to shift: (ADC_CHANNEL_NUMB + 186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Channel differentiation between external and internal channels */ + 188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_INTERNAL_CH (0x80000000UL) /* Marker of internal channel */ + 189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_INTERNAL_CH_2 (0x00080000UL) /* Marker of internal channel for other A + 190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH + 191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal register offset for ADC channel sampling time configuration */ + 193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (offset placed into a spare area of literal definition) */ + 194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SMPR1_REGOFFSET (0x00000000UL) + 195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SMPR2_REGOFFSET (0x02000000UL) + 196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET) + 197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SMPRX_REGOFFSET_POS (25UL) /* Position of bits ADC_SMPRx_REGOFFSET in ADC_CH + 198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_SMPx_BITOFFSET_MASK (0x01F00000UL) + 200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_SMPx_BITOFFSET_POS (20UL) /* Value equivalent to bitfield "ADC_CH + ARM GAS /tmp/cc3JIfda.s page 5 + + + 201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of channels ID number information to be inserted into */ + 203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* channels literals definition. */ + 204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_0_NUMBER (0x00000000UL) + 205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_1_NUMBER (ADC_CFGR_AWD1CH_0) + 206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_2_NUMBER (ADC_CFGR_AWD1CH_1) + 207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_3_NUMBER (ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0) + 208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_4_NUMBER (ADC_CFGR_AWD1CH_2) + 209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_5_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0) + 210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_6_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1) + 211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_7_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH + 212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_8_NUMBER (ADC_CFGR_AWD1CH_3) + 213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_9_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_0) + 214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_10_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1) + 215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_11_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH + 216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_12_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2) + 217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_13_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH + 218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_14_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH + 219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_15_NUMBER (ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | \ + 220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0) + 221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_16_NUMBER (ADC_CFGR_AWD1CH_4) + 222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_17_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_0) + 223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_18_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_1) + 224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of channels ID bitfield information to be inserted into */ + 226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* channels literals definition. */ + 227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_0_BITFIELD (ADC_AWD2CR_AWD2CH_0) + 228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_1_BITFIELD (ADC_AWD2CR_AWD2CH_1) + 229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_2_BITFIELD (ADC_AWD2CR_AWD2CH_2) + 230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_3_BITFIELD (ADC_AWD2CR_AWD2CH_3) + 231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_4_BITFIELD (ADC_AWD2CR_AWD2CH_4) + 232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_5_BITFIELD (ADC_AWD2CR_AWD2CH_5) + 233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_6_BITFIELD (ADC_AWD2CR_AWD2CH_6) + 234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_7_BITFIELD (ADC_AWD2CR_AWD2CH_7) + 235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_8_BITFIELD (ADC_AWD2CR_AWD2CH_8) + 236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_9_BITFIELD (ADC_AWD2CR_AWD2CH_9) + 237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_10_BITFIELD (ADC_AWD2CR_AWD2CH_10) + 238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_11_BITFIELD (ADC_AWD2CR_AWD2CH_11) + 239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_12_BITFIELD (ADC_AWD2CR_AWD2CH_12) + 240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_13_BITFIELD (ADC_AWD2CR_AWD2CH_13) + 241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_14_BITFIELD (ADC_AWD2CR_AWD2CH_14) + 242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_15_BITFIELD (ADC_AWD2CR_AWD2CH_15) + 243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_16_BITFIELD (ADC_AWD2CR_AWD2CH_16) + 244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_17_BITFIELD (ADC_AWD2CR_AWD2CH_17) + 245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_18_BITFIELD (ADC_AWD2CR_AWD2CH_18) + 246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Definition of channels sampling time information to be inserted into */ + 248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* channels literals definition. */ + 249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_0_SMP (ADC_SMPR1_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOF + 250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_1_SMP (ADC_SMPR1_REGOFFSET | (( 3UL) << ADC_CHANNEL_SMPx_BITOF + 251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_2_SMP (ADC_SMPR1_REGOFFSET | (( 6UL) << ADC_CHANNEL_SMPx_BITOF + 252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_3_SMP (ADC_SMPR1_REGOFFSET | (( 9UL) << ADC_CHANNEL_SMPx_BITOF + 253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_4_SMP (ADC_SMPR1_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOF + 254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_5_SMP (ADC_SMPR1_REGOFFSET | ((15UL) << ADC_CHANNEL_SMPx_BITOF + 255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_6_SMP (ADC_SMPR1_REGOFFSET | ((18UL) << ADC_CHANNEL_SMPx_BITOF + 256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_7_SMP (ADC_SMPR1_REGOFFSET | ((21UL) << ADC_CHANNEL_SMPx_BITOF + 257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_8_SMP (ADC_SMPR1_REGOFFSET | ((24UL) << ADC_CHANNEL_SMPx_BITOF + ARM GAS /tmp/cc3JIfda.s page 6 + + + 258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_9_SMP (ADC_SMPR1_REGOFFSET | ((27UL) << ADC_CHANNEL_SMPx_BITOF + 259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_10_SMP (ADC_SMPR2_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOF + 260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_11_SMP (ADC_SMPR2_REGOFFSET | (( 3UL) << ADC_CHANNEL_SMPx_BITOF + 261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_12_SMP (ADC_SMPR2_REGOFFSET | (( 6UL) << ADC_CHANNEL_SMPx_BITOF + 262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_13_SMP (ADC_SMPR2_REGOFFSET | (( 9UL) << ADC_CHANNEL_SMPx_BITOF + 263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_14_SMP (ADC_SMPR2_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOF + 264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_15_SMP (ADC_SMPR2_REGOFFSET | ((15UL) << ADC_CHANNEL_SMPx_BITOF + 265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_16_SMP (ADC_SMPR2_REGOFFSET | ((18UL) << ADC_CHANNEL_SMPx_BITOF + 266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_17_SMP (ADC_SMPR2_REGOFFSET | ((21UL) << ADC_CHANNEL_SMPx_BITOF + 267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CHANNEL_18_SMP (ADC_SMPR2_REGOFFSET | ((24UL) << ADC_CHANNEL_SMPx_BITOF + 268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC mode single or differential ended: */ + 271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literals LL_ADC_SINGLE_ENDED or LL_ADC_SINGLE_DIFFERENTIAL */ + 272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* the relevant bits for: */ + 273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (concatenation of multiple bits used in different registers) */ + 274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC calibration: calibration start, calibration factor get or set */ + 275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC channels: set each ADC channel ending mode */ + 276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CALIB_START_MASK (ADC_CR_ADCALDIF) + 277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CALIB_FACTOR_MASK (ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S) + 278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CHANNEL_MASK (ADC_CHANNEL_ID_BITFIELD_MASK) /* Equivalent to ADC_DIFS + 279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK (ADC_CALFACT_CALFACT_S_4 | ADC_CALFACT_CALFACT_S_3) /* B + 280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK (0x00010000UL) /* Selection o + 281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CALIB_F_BIT_D_POS (16UL) /* Selection o + 282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4 (ADC_SINGLEDIFF_CALIB_F_BIT_D_POS - 4UL) /* Shift of bi + 283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC analog watchdog: */ + 285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */ + 286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (concatenation of multiple bits used in different analog watchdogs, */ + 287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (feature of several watchdogs not available on all STM32 families)). */ + 288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - analog watchdog 1: monitored channel defined by number, */ + 289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* selection of ADC group (ADC groups regular and-or injected). */ + 290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - analog watchdog 2 and 3: monitored channel defined by bitfield, no */ + 291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* selection on groups. */ + 292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal register offset for ADC analog watchdog channel configuration */ + 294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR1_REGOFFSET (0x00000000UL) + 295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR2_REGOFFSET (0x00100000UL) + 296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR3_REGOFFSET (0x00200000UL) + 297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Register offset gap between AWD1 and AWD2-AWD3 configuration registers */ + 299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (Set separately as ADC_AWD_CRX_REGOFFSET to spare 32 bits space */ + 300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR12_REGOFFSETGAP_MASK (ADC_AWD2CR_AWD2CH_0) + 301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR12_REGOFFSETGAP_VAL (0x00000024UL) + 302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET | ADC_AWD_CR2_REGOFFSET | ADC_AWD + 304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR1_CHANNEL_MASK (ADC_CFGR_AWD1CH | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | + 306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR23_CHANNEL_MASK (ADC_AWD2CR_AWD2CH) + 307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR23_CHANNEL_MASK) + 308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_CRX_REGOFFSET_POS (20UL) /* Position of bits ADC_AWD_CRx_REGOFFSET in ADC_ + 310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal register offset for ADC analog watchdog threshold configuration */ + 312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TR1_REGOFFSET (ADC_AWD_CR1_REGOFFSET) + 313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TR2_REGOFFSET (ADC_AWD_CR2_REGOFFSET) + 314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TR3_REGOFFSET (ADC_AWD_CR3_REGOFFSET) + ARM GAS /tmp/cc3JIfda.s page 7 + + + 315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_REGOFFSET | ADC_AWD_TR2_REGOFFSET | ADC_AWD + 316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TRX_REGOFFSET_POS (ADC_AWD_CRX_REGOFFSET_POS) /* Position of bits ADC_ + 317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TRX_BIT_HIGH_MASK (0x00010000UL) /* Selection of 1 bit t + 318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TRX_BIT_HIGH_POS (16UL) /* Selection of 1 bit t + 319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_AWD_TRX_BIT_HIGH_SHIFT4 (ADC_AWD_TRX_BIT_HIGH_POS - 4UL) /* Shift of bit ADC_AWD + 320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal mask for ADC offset: */ + 322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal register offset for ADC offset number configuration */ + 323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_OFR1_REGOFFSET (0x00000000UL) + 324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_OFR2_REGOFFSET (0x00000001UL) + 325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_OFR3_REGOFFSET (0x00000002UL) + 326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_OFR4_REGOFFSET (0x00000003UL) + 327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_OFRx_REGOFFSET_MASK (ADC_OFR1_REGOFFSET | ADC_OFR2_REGOFFSET \ + 328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ADC_OFR3_REGOFFSET | ADC_OFR4_REGOFFSET) + 329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* ADC registers bits positions */ + 332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CFGR_RES_BITOFFSET_POS (ADC_CFGR_RES_Pos) + 333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CFGR_AWD1SGL_BITOFFSET_POS (ADC_CFGR_AWD1SGL_Pos) + 334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CFGR_AWD1EN_BITOFFSET_POS (ADC_CFGR_AWD1EN_Pos) + 335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CFGR_JAWD1EN_BITOFFSET_POS (ADC_CFGR_JAWD1EN_Pos) + 336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_TR1_HT1_BITOFFSET_POS (ADC_TR1_HT1_Pos) + 337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* ADC registers bits groups */ + 340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define ADC_CR_BITS_PROPERTY_RS (ADC_CR_ADCAL | ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JA + 341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* ADC internal channels related definitions */ + 344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Internal voltage reference VrefInt */ + 345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define VREFINT_CAL_ADDR ((uint16_t*) (0x1FFF75AAUL)) /* Internal voltage referen + 346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define VREFINT_CAL_VREF (3000UL) /* Analog voltage reference + 347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Temperature sensor */ + 348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) (0x1FFF75A8UL)) /* Internal temperature sen + 349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1FFF75CAUL)) /* Internal temperature sen + 350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define TEMPSENSOR_CAL1_TEMP (30L) /* Internal temperature sen + 351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define TEMPSENSOR_CAL2_TEMP (130L) /* Internal temperature sen + 352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define TEMPSENSOR_CAL_VREFANALOG (3000UL) /* Analog voltage reference + 353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Private macros ------------------------------------------------------------*/ + 360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_Private_Macros ADC Private Macros + 361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Driver macro reserved for internal use: set a pointer to + 366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a register from a register basis from which an offset + 367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is applied. + 368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __REG__ Register basis from which the offset is applied. + 369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers). + 370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Pointer to register address + 371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + ARM GAS /tmp/cc3JIfda.s page 8 + + + 372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \ + 373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__IO uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2UL)))) + 374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Exported types ------------------------------------------------------------*/ + 381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(USE_FULL_LL_DRIVER) + 382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_ES_INIT ADC Exported Init structure + 383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Structure definition of some features of ADC common parameters + 388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and multimode + 389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (all ADC instances belonging to the same ADC common instance). + 390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The setting of these parameters by function @ref LL_ADC_CommonInit() + 391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is conditioned to ADC instances state (all ADC instances + 392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sharing the same ADC common instance): + 393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances sharing the same ADC common instance must be + 394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * disabled. + 395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** typedef struct + 397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and + 399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_COMMON + 400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** @note On this STM32 series, if ADC group injected is u + 401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** clock ratio constraints between ADC clock and AH + 402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** must be respected. Refer to reference manual. + 403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) + 407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Multimode; /*!< Set ADC multimode configuration to operate in independ + 408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_MULTI_ + 409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t MultiDMATransfer; /*!< Set ADC multimode conversion data transfer: no transfe + 413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_MULTI_ + 414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t MultiTwoSamplingDelay; /*!< Set ADC multimode delay between 2 sampling phases. + 418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_MULTI_ + 419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ + 422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } LL_ADC_CommonInitTypeDef; + 424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Structure definition of some features of ADC instance. + 427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note These parameters have an impact on ADC scope: ADC instance. + 428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Affects both group regular and group injected (availability + ARM GAS /tmp/cc3JIfda.s page 9 + + + 429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of ADC group injected depends on STM32 families). + 430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to corresponding unitary functions into + 431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref ADC_LL_EF_Configuration_ADC_Instance . + 432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The setting of these parameters by function @ref LL_ADC_Init() + 433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is conditioned to ADC state: + 434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance must be disabled. + 435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This condition is applied to all ADC features, for efficiency + 436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and compatibility over all STM32 families. However, the different + 437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * features can be set under different ADC state conditions + 438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (setting possible with ADC enabled without conversion on going, + 439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC enabled with conversion on going, ...) + 440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Each feature can be updated afterwards with a unitary function + 441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and potentially with ADC in a different state than disabled, + 442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * refer to description of each function for setting + 443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conditioned to ADC state. + 444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** typedef struct + 446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Resolution; /*!< Set ADC resolution. + 448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_RESOLU + 449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t DataAlignment; /*!< Set ADC conversion data alignment. + 453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_DATA_A + 454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t LowPowerMode; /*!< Set ADC low power mode. + 458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_LP_MOD + 459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } LL_ADC_InitTypeDef; + 463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Structure definition of some features of ADC group regular. + 466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note These parameters have an impact on ADC scope: ADC group regular. + 467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to corresponding unitary functions into + 468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref ADC_LL_EF_Configuration_ADC_Group_Regular + 469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (functions with prefix "REG"). + 470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The setting of these parameters by function @ref LL_ADC_REG_Init() + 471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is conditioned to ADC state: + 472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance must be disabled. + 473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This condition is applied to all ADC features, for efficiency + 474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and compatibility over all STM32 families. However, the different + 475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * features can be set under different ADC state conditions + 476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (setting possible with ADC enabled without conversion on going, + 477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC enabled with conversion on going, ...) + 478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Each feature can be updated afterwards with a unitary function + 479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and potentially with ADC in a different state than disabled, + 480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * refer to description of each function for setting + 481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conditioned to ADC state. + 482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** typedef struct + 484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: inter + ARM GAS /tmp/cc3JIfda.s page 10 + + + 486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_REG_TR + 487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** @note On this STM32 series, setting trigger source to + 488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (default setting for compatibility with some ADC + 489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** In case of need to modify trigger edge, use func + 490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t SequencerLength; /*!< Set ADC group regular sequencer length. + 494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_REG_SE + 495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: se + 499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_REG_SE + 500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** @note This parameter has an effect only if group regul + 501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (scan length of 2 ranks or more). + 502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ContinuousMode; /*!< Set ADC continuous conversion mode on ADC group regula + 506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_REG_CO + 507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: It is not possible to enable both ADC group regu + 508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no tra + 512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_REG_DM + 513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Overrun; /*!< Set ADC group regular behavior in case of overrun: + 517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** data preserved or overwritten. + 518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_REG_OV + 519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } LL_ADC_REG_InitTypeDef; + 523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Structure definition of some features of ADC group injected. + 526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note These parameters have an impact on ADC scope: ADC group injected. + 527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to corresponding unitary functions into + 528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref ADC_LL_EF_Configuration_ADC_Group_Regular + 529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (functions with prefix "INJ"). + 530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The setting of these parameters by function @ref LL_ADC_INJ_Init() + 531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is conditioned to ADC state: + 532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance must be disabled. + 533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This condition is applied to all ADC features, for efficiency + 534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and compatibility over all STM32 families. However, the different + 535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * features can be set under different ADC state conditions + 536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (setting possible with ADC enabled without conversion on going, + 537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC enabled with conversion on going, ...) + 538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Each feature can be updated afterwards with a unitary function + 539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and potentially with ADC in a different state than disabled, + 540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * refer to description of each function for setting + 541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conditioned to ADC state. + 542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + ARM GAS /tmp/cc3JIfda.s page 11 + + + 543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** typedef struct + 544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: inte + 546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_INJ_TR + 547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** @note On this STM32 series, setting trigger source to + 548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (default setting for compatibility with some ADC + 549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** In case of need to modify trigger edge, use func + 550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t SequencerLength; /*!< Set ADC group injected sequencer length. + 554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_INJ_SE + 555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: s + 559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_INJ_SE + 560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** @note This parameter has an effect only if group injec + 561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (scan length of 2 ranks or more). + 562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent + 566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This parameter can be a value of @ref ADC_LL_EC_INJ_TR + 567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: This parameter must be set to set to independent + 568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** This feature can be modified afterwards using unitary + 570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } LL_ADC_INJ_InitTypeDef; + 572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* USE_FULL_LL_DRIVER */ + 577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Exported constants --------------------------------------------------------*/ + 579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_Exported_Constants ADC Exported Constants + 580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_FLAG ADC flags + 584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Flags defines which can be used with LL_ADC_ReadReg function + 585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_ADRDY ADC_ISR_ADRDY /*!< ADC flag ADC instance ready */ + 588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOC ADC_ISR_EOC /*!< ADC flag ADC group regular end o + 589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOS ADC_ISR_EOS /*!< ADC flag ADC group regular end o + 590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_OVR ADC_ISR_OVR /*!< ADC flag ADC group regular overr + 591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOSMP ADC_ISR_EOSMP /*!< ADC flag ADC group regular end o + 592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JEOC ADC_ISR_JEOC /*!< ADC flag ADC group injected end + 593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JEOS ADC_ISR_JEOS /*!< ADC flag ADC group injected end + 594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JQOVF ADC_ISR_JQOVF /*!< ADC flag ADC group injected cont + 595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD1 ADC_ISR_AWD1 /*!< ADC flag ADC analog watchdog 1 * + 596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD2 ADC_ISR_AWD2 /*!< ADC flag ADC analog watchdog 2 * + 597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD3 ADC_ISR_AWD3 /*!< ADC flag ADC analog watchdog 3 * + 598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) + 599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_ADRDY_MST ADC_CSR_ADRDY_MST /*!< ADC flag ADC multimode master in + ARM GAS /tmp/cc3JIfda.s page 12 + + + 600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_ADRDY_SLV ADC_CSR_ADRDY_SLV /*!< ADC flag ADC multimode slave ins + 601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOC_MST ADC_CSR_EOC_MST /*!< ADC flag ADC multimode master gr + 602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOC_SLV ADC_CSR_EOC_SLV /*!< ADC flag ADC multimode slave gro + 603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOS_MST ADC_CSR_EOS_MST /*!< ADC flag ADC multimode master gr + 604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOS_SLV ADC_CSR_EOS_SLV /*!< ADC flag ADC multimode slave gro + 605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_OVR_MST ADC_CSR_OVR_MST /*!< ADC flag ADC multimode master gr + 606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_OVR_SLV ADC_CSR_OVR_SLV /*!< ADC flag ADC multimode slave gro + 607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOSMP_MST ADC_CSR_EOSMP_MST /*!< ADC flag ADC multimode master gr + 608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_EOSMP_SLV ADC_CSR_EOSMP_SLV /*!< ADC flag ADC multimode slave gro + 609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JEOC_MST ADC_CSR_JEOC_MST /*!< ADC flag ADC multimode master gr + 610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JEOC_SLV ADC_CSR_JEOC_SLV /*!< ADC flag ADC multimode slave gro + 611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JEOS_MST ADC_CSR_JEOS_MST /*!< ADC flag ADC multimode master gr + 612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JEOS_SLV ADC_CSR_JEOS_SLV /*!< ADC flag ADC multimode slave gro + 613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JQOVF_MST ADC_CSR_JQOVF_MST /*!< ADC flag ADC multimode master gr + 614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_JQOVF_SLV ADC_CSR_JQOVF_SLV /*!< ADC flag ADC multimode slave gro + 615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD1_MST ADC_CSR_AWD1_MST /*!< ADC flag ADC multimode master an + 616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD1_SLV ADC_CSR_AWD1_SLV /*!< ADC flag ADC multimode slave ana + 617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD2_MST ADC_CSR_AWD2_MST /*!< ADC flag ADC multimode master an + 618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD2_SLV ADC_CSR_AWD2_SLV /*!< ADC flag ADC multimode slave ana + 619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD3_MST ADC_CSR_AWD3_MST /*!< ADC flag ADC multimode master an + 620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_FLAG_AWD3_SLV ADC_CSR_AWD3_SLV /*!< ADC flag ADC multimode slave ana + 621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ + 622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable) + 627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions + 628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_ADRDY ADC_IER_ADRDYIE /*!< ADC interruption ADC instance re + 631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_EOC ADC_IER_EOCIE /*!< ADC interruption ADC group regul + 632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_EOS ADC_IER_EOSIE /*!< ADC interruption ADC group regul + 633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_OVR ADC_IER_OVRIE /*!< ADC interruption ADC group regul + 634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_EOSMP ADC_IER_EOSMPIE /*!< ADC interruption ADC group regul + 635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_JEOC ADC_IER_JEOCIE /*!< ADC interruption ADC group injec + 636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_JEOS ADC_IER_JEOSIE /*!< ADC interruption ADC group injec + 637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_JQOVF ADC_IER_JQOVFIE /*!< ADC interruption ADC group injec + 638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_AWD1 ADC_IER_AWD1IE /*!< ADC interruption ADC analog watc + 639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_AWD2 ADC_IER_AWD2IE /*!< ADC interruption ADC analog watc + 640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_IT_AWD3 ADC_IER_AWD3IE /*!< ADC interruption ADC analog watc + 641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose + 646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* List of ADC registers intended to be used (most commonly) with */ + 649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* DMA transfer. */ + 650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */ + 651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DMA_REG_REGULAR_DATA (0x00000000UL) /* ADC group regular conversion data re + 652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) + 653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DMA_REG_REGULAR_DATA_MULTI (0x00000001UL) /* ADC group regular conversion data re + 654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ + 655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + ARM GAS /tmp/cc3JIfda.s page 13 + + + 657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source + 660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_SYNC_PCLK_DIV1 (ADC_CCR_CKMODE_0) /* + 663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_SYNC_PCLK_DIV2 (ADC_CCR_CKMODE_1 ) /* + 664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_SYNC_PCLK_DIV4 (ADC_CCR_CKMODE_1 | ADC_CCR_CKMODE_0) /* + 665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV1 (0x00000000UL) /* + 666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV2 (ADC_CCR_PRESC_0) /* + 667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV4 (ADC_CCR_PRESC_1 ) /* + 668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV6 (ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /* + 669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV8 (ADC_CCR_PRESC_2 ) /* + 670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV10 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_0) /* + 671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV12 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_1 ) /* + 672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV16 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /* + 673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV32 (ADC_CCR_PRESC_3) /* + 674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV64 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_0) /* + 675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV128 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_1) /* + 676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CLOCK_ASYNC_DIV256 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /* + 677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels + 682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Other measurement paths to internal channels may be available */ + 685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (connections to other peripherals). */ + 686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* If they are not listed below, they do not require any specific */ + 687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* path enable. In this case, Access to measurement path is done */ + 688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* only by selecting the corresponding ADC internal channel. */ + 689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_PATH_INTERNAL_NONE (0x00000000UL) /*!< ADC measurement paths all di + 690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CCR_VREFEN) /*!< ADC measurement path to inte + 691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CCR_VSENSESEL) /*!< ADC measurement path to inte + 692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_PATH_INTERNAL_VBAT (ADC_CCR_VBATSEL) /*!< ADC measurement path to inte + 693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution + 698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_RESOLUTION_12B (0x00000000UL) /*!< ADC resolution + 701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_RESOLUTION_10B ( ADC_CFGR_RES_0) /*!< ADC resolution + 702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_RESOLUTION_8B (ADC_CFGR_RES_1 ) /*!< ADC resolution + 703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_RESOLUTION_6B (ADC_CFGR_RES_1 | ADC_CFGR_RES_0) /*!< ADC resolution + 704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment + 709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DATA_ALIGN_RIGHT (0x00000000UL) /*!< ADC conversion data alignmen + 712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DATA_ALIGN_LEFT (ADC_CFGR_ALIGN) /*!< ADC conversion data alignmen + 713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/cc3JIfda.s page 14 + + + 714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_LP_MODE ADC instance - Low power mode + 718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_LP_MODE_NONE (0x00000000UL) /*!< No ADC low powe + 721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_LP_AUTOWAIT (ADC_CFGR_AUTDLY) /*!< ADC low power m + 722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OFFSET_NB ADC instance - Offset number + 727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_1 ADC_OFR1_REGOFFSET /*!< ADC offset number 1: ADC channel + 730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_2 ADC_OFR2_REGOFFSET /*!< ADC offset number 2: ADC channel + 731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_3 ADC_OFR3_REGOFFSET /*!< ADC offset number 3: ADC channel + 732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_4 ADC_OFR4_REGOFFSET /*!< ADC offset number 4: ADC channel + 733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OFFSET_STATE ADC instance - Offset state + 738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_DISABLE (0x00000000UL) /*!< ADC offset disabled (among A + 741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_ENABLE (ADC_OFR1_OFFSET1_EN) /*!< ADC offset enabled (among AD + 742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OFFSET_SIGN ADC instance - Offset sign + 747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_SIGN_NEGATIVE (0x00000000UL) /*!< ADC offset is negative (among + 750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_SIGN_POSITIVE (ADC_OFR1_OFFSETPOS) /*!< ADC offset is positive (among + 751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OFFSET_SATURATION ADC instance - Offset saturation mode + 756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_SATURATION_DISABLE (0x00000000UL) /*!< ADC offset saturation is di + 759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OFFSET_SATURATION_ENABLE (ADC_OFR1_SATEN) /*!< ADC offset saturation is en + 760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups + 764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_GROUP_REGULAR (0x00000001UL) /*!< ADC group regular (available on all + 767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_GROUP_INJECTED (0x00000002UL) /*!< ADC group injected (not available on + 768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_GROUP_REGULAR_INJECTED (0x00000003UL) /*!< ADC both groups regular and injected + 769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + ARM GAS /tmp/cc3JIfda.s page 15 + + + 771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number + 774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP | ADC_CHANNE + 777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP | ADC_CHANNE + 778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP | ADC_CHANNE + 779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP | ADC_CHANNE + 780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP | ADC_CHANNE + 781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP | ADC_CHANNE + 782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_6 (ADC_CHANNEL_6_NUMBER | ADC_CHANNEL_6_SMP | ADC_CHANNE + 783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_7 (ADC_CHANNEL_7_NUMBER | ADC_CHANNEL_7_SMP | ADC_CHANNE + 784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_8 (ADC_CHANNEL_8_NUMBER | ADC_CHANNEL_8_SMP | ADC_CHANNE + 785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_9 (ADC_CHANNEL_9_NUMBER | ADC_CHANNEL_9_SMP | ADC_CHANNE + 786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_10 (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP | ADC_CHANNE + 787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_11 (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP | ADC_CHANNE + 788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_12 (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP | ADC_CHANNE + 789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_13 (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP | ADC_CHANNE + 790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_14 (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP | ADC_CHANNE + 791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_15 (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP | ADC_CHANNE + 792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_16 (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP | ADC_CHANNE + 793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_17 (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP | ADC_CHANNE + 794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_18 (ADC_CHANNEL_18_NUMBER | ADC_CHANNEL_18_SMP | ADC_CHANNE + 795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (LL_ADC_CHANNEL_4 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP1 (LL_ADC_CHANNEL_13 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP2 (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CH + 801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP3_ADC2 (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CH + 802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP3_ADC3 (LL_ADC_CHANNEL_13 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CH + 803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP4 (LL_ADC_CHANNEL_5 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP5 (LL_ADC_CHANNEL_3 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< AD + 805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_CHANNEL_VOPAMP6 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CH + 806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source + 811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_SOFTWARE (0x00000000UL) + 814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger internal: SW start. + 815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EX + 816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EX + 818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM1_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL + ARM GAS /tmp/cc3JIfda.s page 16 + + + 828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM2_CH1 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EX + 833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM2_CH3 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM3_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EX + 847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM4_CH1 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EX + 849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM4_CH4 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EX + 852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM7_TRGO (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL + 857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL + 859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM8_CH1 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EX + 863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM20_TRGO (ADC_CFGR_EXTSEL_4 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) + 868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, TIM20 is not available on al + 870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EX + 871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, TIM20 is not available on al + 873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM20_CH1 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EX + 874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, TIM20 is not available on al + 876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM20_CH2 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL + 877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_TIM20_CH3 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EX + 880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + ARM GAS /tmp/cc3JIfda.s page 17 + + + 885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL + 886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EX + 892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL + 895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EX + 898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL + 901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL + 904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL + 907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL + 910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al + 912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EX + 913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EX + 916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on + 918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_LPTIM_OUT (ADC_CFGR_EXTSEL_4 | ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL + 919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group regular conversion trigger from external perip + 920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge + 925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_RISING ( ADC_CFGR_EXTEN_0) /*!< ADC group r + 928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_FALLING (ADC_CFGR_EXTEN_1 ) /*!< ADC group r + 929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_TRIG_EXT_RISINGFALLING (ADC_CFGR_EXTEN_1 | ADC_CFGR_EXTEN_0) /*!< ADC group r + 930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_SAMPLING_MODE ADC group regular - Sampling mode + 935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SAMPLING_MODE_NORMAL (0x00000000UL) /*!< ADC conversions sam + 938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SAMPLING_MODE_BULB (ADC_CFGR2_BULB) /*!< ADC conversions sam + 939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: First convers + 940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED (ADC_CFGR2_SMPTRIG) /*!< ADC conversions sam + 941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Trigger rising edg + ARM GAS /tmp/cc3JIfda.s page 18 + + + 942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Trigger falling ed + 943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode + 948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_CONV_SINGLE (0x00000000UL) /*!< ADC conversions are perform + 951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_CONV_CONTINUOUS (ADC_CFGR_CONT) /*!< ADC conversions are perform + 952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer of ADC conversion data + 957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_DMA_TRANSFER_NONE (0x00000000UL) /*!< ADC conversio + 960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_DMA_TRANSFER_LIMITED ( ADC_CFGR_DMAEN) /*!< ADC conversio + 961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_DMA_TRANSFER_UNLIMITED (ADC_CFGR_DMACFG | ADC_CFGR_DMAEN) /*!< ADC conversio + 962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_SMPR1_SMPPLUS) + 967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_SAMPLINGTIME_COMMON_CONFIG ADC instance - ADC sampling time common configur + 968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_COMMON_DEFAULT (0x00000000UL) /*!< ADC sampling time let to d + 971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 (ADC_SMPR1_SMPPLUS) /*!< ADC additional sampling ti + 972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif + 976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_OVR_DATA_BEHAVIOR ADC group regular - Overrun behavior on conversion d + 978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_OVR_DATA_PRESERVED (0x00000000UL) /*!< ADC group regular behavior i + 981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_OVR_DATA_OVERWRITTEN (ADC_CFGR_OVRMOD) /*!< ADC group regular behavior i + 982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + 983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + 984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length + 987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + 988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + 989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_DISABLE (0x00000000UL) + 990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_L + 991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_L_1 + 992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS ( ADC_SQR1_L_1 | ADC_SQR1_L + 993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_L_2 + 994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L + 995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 + 996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L + 997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3 + 998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_L_3 | ADC_SQR1_L + ARM GAS /tmp/cc3JIfda.s page 19 + + + 999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 +1000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 | ADC_SQR1_L +1001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 +1002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L +1003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 +1004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L +1005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode +1010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_DISABLE (0x00000000UL) +1013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_1RANK ( +1014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_2RANKS ( ADC_CFGR_DISC +1015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_3RANKS ( ADC_CFGR_DISCNUM_1 +1016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_4RANKS ( ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISC +1017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_5RANKS (ADC_CFGR_DISCNUM_2 +1018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_6RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISC +1019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_7RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_1 +1020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_SEQ_DISCONT_8RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISC +1021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks +1026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_1 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) +1029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_2 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) +1030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_3 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) +1031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_4 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) +1032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_5 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) +1033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_6 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) +1034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_7 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) +1035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) +1036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) +1037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_10 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS +1038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_11 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS +1039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_12 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS +1040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_13 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS +1041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_14 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS +1042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_15 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS +1043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_REG_RANK_16 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS +1044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source +1049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_SOFTWARE (0x00000000UL) +1052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger internal: SW start +1053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) +1054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) + ARM GAS /tmp/cc3JIfda.s page 20 + + +1056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXT +1058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) +1061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) +1063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_ +1065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_ +1068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXT +1073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) +1076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_ +1079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) +1081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_ +1084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM7_TRGO (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_ +1091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_ +1093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_ +1095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM8_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXT +1098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM20_TRGO (ADC_JSQR_JEXTSEL_4 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) +1105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, TIM20 is not available on al +1107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_ +1108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, TIM20 is not available on al +1110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_ +1111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Trigger available only on ADC3/4/5 instances. On this ST + ARM GAS /tmp/cc3JIfda.s page 21 + + +1113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_ +1114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Trigger available only on ADC1/2 instances. On this STM3 +1116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXT +1120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_ +1126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_ +1138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, HRTIM is not available on al +1146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXT +1147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_ +1150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Note: On this STM32 series, this trigger is available on +1152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_LPTIM_OUT (ADC_JSQR_JEXTSEL_4 | ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXT +1153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC group injected conversion trigger from external peri +1154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge +1159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_RISING ( ADC_JSQR_JEXTEN_0) /*!< ADC group i +1162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_FALLING (ADC_JSQR_JEXTEN_1 ) /*!< ADC group i +1163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_EXT_RISINGFALLING (ADC_JSQR_JEXTEN_1 | ADC_JSQR_JEXTEN_0) /*!< ADC group i +1164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode +1169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ + ARM GAS /tmp/cc3JIfda.s page 22 + + +1170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_INDEPENDENT (0x00000000UL) /*!< ADC group injected conversio +1172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR (ADC_CFGR_JAUTO) /*!< ADC group injected conversio +1173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_CONTEXT_QUEUE ADC group injected - Context queue mode +1178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE (0x00000000UL) /* Group injected sequence co +1181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY (ADC_CFGR_JQM) /* Group injected sequence co +1182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_QUEUE_DISABLE (ADC_CFGR_JQDIS) /* Group injected sequence co +1183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length +1188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_SEQ_SCAN_DISABLE (0x00000000UL) /*!< ADC group injected +1191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected +1192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected +1193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS (ADC_JSQR_JL_1 | ADC_JSQR_JL_0) /*!< ADC group injected +1194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode +1199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_SEQ_DISCONT_DISABLE (0x00000000UL) /*!< ADC group injected sequencer +1202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CFGR_JDISCEN) /*!< ADC group injected sequencer +1203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks +1208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) +1211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) +1212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) +1213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) +1214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time +1219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_2CYCLES_5 (0x00000000UL) +1222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_6CYCLES_5 ( ADC_SMPR2_SMP10 +1223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_12CYCLES_5 ( ADC_SMPR2_SMP10_1 +1224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_24CYCLES_5 ( ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10 +1225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_47CYCLES_5 (ADC_SMPR2_SMP10_2 +1226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_92CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10 + ARM GAS /tmp/cc3JIfda.s page 23 + + +1227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_247CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1 +1228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SAMPLINGTIME_640CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10 +1229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_CHANNEL_SINGLE_DIFF_ENDING Channel - Single or differential ending +1234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_SINGLE_ENDED ( ADC_CALFACT_CALFACT_S) /*!< A +1237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DIFFERENTIAL_ENDED (ADC_CR_ADCALDIF | ADC_CALFACT_CALFACT_D) /*!< A +1238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_BOTH_SINGLE_DIFF_ENDED (LL_ADC_SINGLE_ENDED | LL_ADC_DIFFERENTIAL_ENDED) /*!< A +1239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number +1244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET) /*!< +1247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD2 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR2_REGOFFSET) /*!< +1248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD3 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR3_REGOFFSET) /*!< +1249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels +1254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_DISABLE (0x00000000UL) +1257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_ALL_CHANNELS_REG (ADC_AWD_CR23_CHANNEL_MASK +1258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_ALL_CHANNELS_INJ (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_JA +1259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_ALL_CHANNELS_REG_INJ (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_JA +1260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_0_REG ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) +1261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_0_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_0_REG_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_1_REG ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) +1264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_1_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_1_REG_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_2_REG ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) +1267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_2_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_2_REG_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_3_REG ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) +1270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_3_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_3_REG_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_4_REG ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) +1273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_4_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_4_REG_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_5_REG ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) +1276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_5_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_5_REG_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_6_REG ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) +1279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_6_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_6_REG_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_7_REG ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) +1282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_7_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_7_REG_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA + ARM GAS /tmp/cc3JIfda.s page 24 + + +1284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_8_REG ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) +1285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_8_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_8_REG_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_9_REG ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) +1288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_9_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_9_REG_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_10_REG ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) +1291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_10_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_10_REG_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_11_REG ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) +1294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_11_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_11_REG_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_12_REG ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) +1297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_12_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_12_REG_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_13_REG ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) +1300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_13_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_13_REG_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_14_REG ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) +1303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_14_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_14_REG_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_15_REG ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) +1306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_15_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_15_REG_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_16_REG ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) +1309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_16_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_16_REG_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_17_REG ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) +1312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_17_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_17_REG_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_18_REG ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) +1315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_18_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CHANNEL_18_REG_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JA +1317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VREFINT_REG ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) +1318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VREFINT_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | +1319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VREFINT_REG_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | +1320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG ((LL_ADC_CHANNEL_TEMPSENSOR_ADC1 & ADC_CHANNEL_ID_M +1321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC1 & ADC_CHANNEL_ID_M +1322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC1 & ADC_CHANNEL_ID_M +1323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG ((LL_ADC_CHANNEL_TEMPSENSOR_ADC5 & ADC_CHANNEL_ID_M +1324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC5 & ADC_CHANNEL_ID_M +1325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR_ADC5 & ADC_CHANNEL_ID_M +1326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VBAT_REG ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) +1327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VBAT_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | +1328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VBAT_REG_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | +1329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP1_REG ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) +1330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP1_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | +1331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP1_REG_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | +1332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP2_REG ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) +1333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP2_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | +1334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP2_REG_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | +1335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP3_ADC2_REG ((LL_ADC_CHANNEL_VOPAMP3_ADC2 & ADC_CHANNEL_ID_MASK) +1336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC2 & ADC_CHANNEL_ID_MASK) | +1337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC2 & ADC_CHANNEL_ID_MASK) | +1338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP3_ADC3_REG ((LL_ADC_CHANNEL_VOPAMP3_ADC3 & ADC_CHANNEL_ID_MASK) +1339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC3 & ADC_CHANNEL_ID_MASK) | +1340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ ((LL_ADC_CHANNEL_VOPAMP3_ADC3 & ADC_CHANNEL_ID_MASK) | + ARM GAS /tmp/cc3JIfda.s page 25 + + +1341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP4_REG ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) +1342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP4_INJ ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) | +1343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP4_REG_INJ ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) | +1344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP5_REG ((LL_ADC_CHANNEL_VOPAMP5 & ADC_CHANNEL_ID_MASK) +1345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP5_INJ ((LL_ADC_CHANNEL_VOPAMP5 & ADC_CHANNEL_ID_MASK) | +1346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP5_REG_INJ ((LL_ADC_CHANNEL_VOPAMP5 & ADC_CHANNEL_ID_MASK) | +1347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP6_REG ((LL_ADC_CHANNEL_VOPAMP6 & ADC_CHANNEL_ID_MASK) +1348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP6_INJ ((LL_ADC_CHANNEL_VOPAMP6 & ADC_CHANNEL_ID_MASK) | +1349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_CH_VOPAMP6_REG_INJ ((LL_ADC_CHANNEL_VOPAMP6 & ADC_CHANNEL_ID_MASK) | +1350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds +1355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_THRESHOLD_HIGH (ADC_TR1_HT1 ) /*!< ADC analog watchdog thr +1358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_THRESHOLD_LOW ( ADC_TR1_LT1) /*!< ADC analog watchdog thr +1359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_THRESHOLDS_HIGH_LOW (ADC_TR1_HT1 | ADC_TR1_LT1) /*!< ADC analog watchdog bot +1360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_AWD_FILTERING_CONFIG Analog watchdog - filtering config +1365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_NONE (0x00000000UL) +1368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_2SAMPLES ( ADC_TR1_AWDFILT +1369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_3SAMPLES ( ADC_TR1_AWDFILT_1 +1370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_4SAMPLES ( ADC_TR1_AWDFILT_1 | ADC_TR1_AWDFILT +1371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_5SAMPLES (ADC_TR1_AWDFILT_2 +1372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_6SAMPLES (ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT +1373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_7SAMPLES (ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_1 +1374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_AWD_FILTERING_8SAMPLES (ADC_TR1_AWDFILT_2 | ADC_TR1_AWDFILT_1 | ADC_TR1_AWDFILT +1375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OVS_SCOPE Oversampling - Oversampling scope +1380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_DISABLE (0x00000000UL) /* +1383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_GRP_REGULAR_CONTINUED ( ADC_CFGR2_ROVSE) /* +1384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_GRP_REGULAR_RESUMED (ADC_CFGR2_ROVSM | ADC_CFGR2_ROVSE) /* +1385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_GRP_INJECTED ( ADC_CFGR2_JOVSE ) /* +1386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_GRP_INJ_REG_RESUMED ( ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE) /* +1387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OVS_DISCONT_MODE Oversampling - Discontinuous mode +1392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_REG_CONT (0x00000000UL) /*!< ADC oversampling discontinuo +1395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_REG_DISCONT (ADC_CFGR2_TROVS) /*!< ADC oversampling discontinuo +1396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} + ARM GAS /tmp/cc3JIfda.s page 26 + + +1398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OVS_RATIO Oversampling - Ratio +1401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_2 (0x00000000UL) +1404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_4 ( ADC_CFGR2_OVSR_0) +1405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_8 ( ADC_CFGR2_OVSR_1 ) +1406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_16 ( ADC_CFGR2_OVSR_1 | ADC_CFGR2_OVSR_0) +1407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_32 (ADC_CFGR2_OVSR_2 ) +1408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_64 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_0) +1409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_128 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_1 ) +1410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_RATIO_256 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_1 | ADC_CFGR2_OVSR_0) +1411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_OVS_SHIFT Oversampling - Data shift +1416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_NONE (0x00000000UL) +1419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_1 ( +1420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_2 ( ADC_CFGR2_OVSS_1 +1421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_3 ( ADC_CFGR2_OVSS_1 +1422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_4 ( ADC_CFGR2_OVSS_2 +1423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_5 ( ADC_CFGR2_OVSS_2 +1424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_6 ( ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_1 +1425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_7 ( ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_1 +1426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_OVS_SHIFT_RIGHT_8 (ADC_CFGR2_OVSS_3 +1427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +1432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_MULTI_MODE Multimode - Mode +1433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_INDEPENDENT (0x00000000UL) +1436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_REG_SIMULT ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1 +1437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_REG_INTERL ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1 | ADC_ +1438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_INJ_SIMULT ( ADC_CCR_DUAL_2 | ADC_ +1439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_INJ_ALTERN (ADC_CCR_DUAL_3 | ADC_ +1440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM ( ADC_ +1441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT ( ADC_CCR_DUAL_1 +1442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM ( ADC_CCR_DUAL_1 | ADC_ +1443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER Multimode - DMA transfer +1448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_REG_DMA_EACH_ADC (0x00000000UL) /*! +1451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B ( ADC_CCR_MDMA_1 ) /*! +1452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B ( ADC_CCR_MDMA_1 | ADC_CCR_MDMA_0) /*! +1453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B (ADC_CCR_DMACFG | ADC_CCR_MDMA_1 ) /*! +1454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B (ADC_CCR_DMACFG | ADC_CCR_MDMA_1 | ADC_CCR_MDMA_0) /*! + ARM GAS /tmp/cc3JIfda.s page 27 + + +1455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY Multimode - Delay between two sampling phases +1460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE (0x00000000UL) +1463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES ( A +1464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES ( ADC_CCR_DELAY_1 +1465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES ( ADC_CCR_DELAY_1 | A +1466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES ( ADC_CCR_DELAY_2 +1467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES ( ADC_CCR_DELAY_2 | A +1468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 +1469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | A +1470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (ADC_CCR_DELAY_3 +1471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (ADC_CCR_DELAY_3 | A +1472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 +1473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 | A +1474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE Multimode - ADC master or slave +1479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_MASTER ( ADC_CDR_RDATA_MST) /*!< In multimod +1482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_SLAVE (ADC_CDR_RDATA_SLV ) /*!< In multimod +1483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_MULTI_MASTER_SLAVE (ADC_CDR_RDATA_SLV | ADC_CDR_RDATA_MST) /*!< In multimod +1484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +1489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays +1492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Only ADC peripheral HW delays are defined in ADC LL driver driver, +1493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * not timeout values. +1494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For details on delays values, refer to descriptions in source code +1495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * above each literal definition. +1496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Only ADC peripheral HW delays are defined in ADC LL driver driver, */ +1500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* not timeout values. */ +1501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Timeout values for ADC operations are dependent to device clock */ +1502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* configuration (system clock versus ADC clock), */ +1503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* and therefore must be defined in user application. */ +1504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Indications for estimation of ADC timeout delays, for this */ +1505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* STM32 series: */ +1506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC calibration time: maximum delay is 112/fADC. */ +1507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (refer to device datasheet, parameter "tCAL") */ +1508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC enable time: maximum delay is 1 conversion cycle. */ +1509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (refer to device datasheet, parameter "tSTAB") */ +1510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC disable time: maximum delay should be a few ADC clock cycles */ +1511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC stop conversion time: maximum delay should be a few ADC clock */ + ARM GAS /tmp/cc3JIfda.s page 28 + + +1512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* cycles */ +1513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* - ADC conversion time: duration depending on ADC clock and ADC */ +1514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* configuration. */ +1515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (refer to device reference manual, section "Timing") */ +1516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Delay for ADC stabilization time (ADC voltage regulator start-up time) */ +1518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Delay set to maximum value (refer to device datasheet, */ +1519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* parameter "tADCVREG_STUP"). */ +1520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Unit: us */ +1521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DELAY_INTERNAL_REGUL_STAB_US ( 20UL) /*!< Delay for ADC stabilization time (ADC vol +1522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Delay for internal voltage reference stabilization time. */ +1524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Delay set to maximum value (refer to device datasheet, */ +1525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* parameter "tstart_vrefint"). */ +1526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Unit: us */ +1527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DELAY_VREFINT_STAB_US ( 12UL) /*!< Delay for internal voltage reference s +1528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Delay for temperature sensor stabilization time. */ +1530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Literal set to maximum value (refer to device datasheet, */ +1531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* parameter "tSTART"). */ +1532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Unit: us */ +1533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DELAY_TEMPSENSOR_STAB_US (120UL) /*!< Delay for temperature sensor stabiliza +1534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Delay required between ADC end of calibration and ADC enable. */ +1536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: On this STM32 series, a minimum number of ADC clock cycles */ +1537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* are required between ADC end of calibration and ADC enable. */ +1538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Wait time can be computed in user application by waiting for the */ +1539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* equivalent number of CPU cycles, by taking into account */ +1540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* ratio of CPU clock versus ADC clock prescalers. */ +1541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Unit: ADC clock cycles. */ +1542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES ( 4UL) /*!< Delay required between ADC end of cali +1543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Exported macro ------------------------------------------------------------*/ +1554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_Exported_Macros ADC Exported Macros +1555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros +1559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Write a value in ADC register +1564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __INSTANCE__ ADC Instance +1565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __REG__ Register to be written +1566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VALUE__ Value to be written in the register +1567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +1568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + ARM GAS /tmp/cc3JIfda.s page 29 + + +1569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE +1570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Read a value in ADC register +1573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __INSTANCE__ ADC Instance +1574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __REG__ Register to be read +1575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Register value +1576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +1578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +1580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro +1583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +1584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get ADC channel number in decimal format +1588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from literals LL_ADC_CHANNEL_x. +1589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Example: +1590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4) +1591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will return decimal number "4". +1592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The input can be a value from functions where a channel +1593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number is returned, either defined with number +1594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or with bitfield (only one bit must be set). +1595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: +1596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +1600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + ARM GAS /tmp/cc3JIfda.s page 30 + + +1626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0 and Max_Data=18 +1638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \ +1640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__CHANNEL__) & ADC_CHANNEL_ID_BITFIELD_MASK) == 0UL) ? \ +1641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +1642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS \ +1643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +1645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +1646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (uint32_t)POSITION_VAL((__CHANNEL__)) \ +1647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x +1652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from number in decimal format. +1653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Example: +1654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4) +1655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will return a data equivalent to "LL_ADC_CHANNEL_4". +1656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18 +1657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +1658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +1662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) + ARM GAS /tmp/cc3JIfda.s page 31 + + +1683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +1700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +1701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +1702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) +1704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__DECIMAL_NB__) <= 9UL) ? +1705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( +1706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | +1707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | +1708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_SMPR1_REGOFFSET | (((3UL * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) +1709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : +1711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( +1712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +1713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) +1714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_SMPR2_REGOFFSET | (((3UL * ((__DECIMAL_NB__) - 10UL))) << ADC_CHANNEL_SMPx_BITOFFSET_PO +1715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to determine whether the selected channel +1720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * corresponds to literal definitions of driver. +1721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The different literal definitions of ADC channels are: +1722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC internal channel: +1723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ... +1724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC external channel (channel connected to a GPIO pin): +1725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ... +1726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The channel parameter must be a value defined from literal +1727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, +1728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_TEMPSENSOR, ...), +1729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...), +1730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * must not be a value from functions where a channel number is +1731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * returned from ADC registers, +1732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * because internal and external channels share the same channel +1733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number in ADC registers. The differentiation is made only with +1734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameters definitions of driver. +1735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: +1736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) + ARM GAS /tmp/cc3JIfda.s page 32 + + +1740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channe +1778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if the channel corresponds to a parameter definition of a ADC internal channe +1779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \ +1781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0UL) +1782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to convert a channel defined from parameter +1785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, +1786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_TEMPSENSOR, ...), +1787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to its equivalent parameter definition of a ADC external channel +1788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...). +1789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The channel parameter can be, additionally to a value +1790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined from parameter definition of a ADC internal channel +1791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...), +1792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a value defined from parameter definition of +1793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...) +1794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or a value from functions where a channel number is returned +1795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC registers. +1796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: + ARM GAS /tmp/cc3JIfda.s page 33 + + +1797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +1799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +1800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +1801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +1802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +1803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +1812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +1837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +1838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +1839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +1840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 +1841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 +1842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 +1843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 +1844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 +1845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +1846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +1847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +1848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +1849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +1850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +1851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +1852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +1853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 + ARM GAS /tmp/cc3JIfda.s page 34 + + +1854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +1855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +1856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +1857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +1858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \ +1860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK) +1861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +1862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +1863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to determine whether the internal channel +1864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * selected is available on the ADC instance selected. +1865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The channel parameter must be a value defined from parameter +1866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT, +1867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_CHANNEL_TEMPSENSOR, ...), +1868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * must not be a value defined from parameter definition of +1869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...) +1870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or a value from functions where a channel number is +1871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * returned from ADC registers, +1872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * because internal and external channels share the same channel +1873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number in ADC registers. The differentiation is made only with +1874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameters definitions of driver. +1875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_INSTANCE__ ADC instance +1876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: +1877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +1878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +1879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +1880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +1881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +1882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +1883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +1884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +1885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +1886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +1887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +1888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +1889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +1890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +1891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +1892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +1893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +1894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +1895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +1896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +1897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if the internal channel selected is not available on the ADC instance selecte +1898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if the internal channel selected is available on the ADC instance selected. +1899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +1900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(STM32G474xx) || defined(STM32G484xx) || defined(STM32G473xx) || defined(STM32G483xx) +1901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ + ARM GAS /tmp/cc3JIfda.s page 35 + + +1911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +1914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +1915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC3) \ +1919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ +1921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC4) \ +1927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP6) || \ +1929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC5) \ +1934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP5) || \ +1936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC5) || \ +1937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP4) || \ +1938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #elif defined(STM32G471xx) +1944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +1957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +1958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC3) \ +1962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ +1964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ + ARM GAS /tmp/cc3JIfda.s page 36 + + +1968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #elif defined(STM32GBK1CB) || defined(STM32G431xx) || defined(STM32G441xx) +1970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +1983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +1984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +1987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #elif defined(STM32G491xx) || defined(STM32G4A1xx) +1988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \ +1989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADC_INSTANCE__) == ADC1) \ +1990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +1991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \ +1992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR_ADC1) || \ +1993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \ +1994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +1995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +1997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +1998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC2) \ +1999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +2000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \ +2001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC2) \ +2002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** || \ +2005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_INSTANCE__) == ADC3) \ +2006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** &&( \ +2007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3_ADC3) || \ +2008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP6) || \ +2009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \ +2010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif +2014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to define ADC analog watchdog parameter: +2017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * define a single channel to monitor with analog watchdog +2018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from sequencer channel and groups definition. +2019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels(). +2020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: +2021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_SetAnalogWDMonitChannels( +2022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC1, LL_ADC_AWD1, +2023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR)) +2024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CHANNEL__ This parameter can be one of the following values: + ARM GAS /tmp/cc3JIfda.s page 37 + + +2025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +2026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +2027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +2028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +2029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +2030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +2031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +2032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +2033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +2034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +2035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +2036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +2037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +2038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +2039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +2040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +2041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +2042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +2043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +2044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +2045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +2046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +2047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +2048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +2049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +2050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +2051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +2052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +2053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +2054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +2055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +2056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +2057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +2058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +2059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +2060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +2061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +2062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +2063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +2064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +2065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +2066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +2067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +2068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +2069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __GROUP__ This parameter can be one of the following values: +2070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_GROUP_REGULAR +2071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_GROUP_INJECTED +2072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED +2073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +2074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_DISABLE +2075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) +2076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) +2077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ +2078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) +2079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) +2080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ +2081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) + ARM GAS /tmp/cc3JIfda.s page 38 + + +2082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) +2083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ +2084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) +2085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) +2086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ +2087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) +2088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) +2089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ +2090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) +2091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) +2092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ +2093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) +2094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) +2095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ +2096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) +2097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) +2098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ +2099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) +2100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) +2101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ +2102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) +2103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) +2104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ +2105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) +2106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) +2107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ +2108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) +2109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) +2110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ +2111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) +2112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) +2113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ +2114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) +2115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) +2116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ +2117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) +2118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) +2119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ +2120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) +2121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) +2122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ +2123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) +2124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) +2125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ +2126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) +2127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) +2128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ +2129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) +2130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) +2131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ +2132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) +2133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) +2134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ +2135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0) +2136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0) +2137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ +2138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG (0)(1) + ARM GAS /tmp/cc3JIfda.s page 39 + + +2139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ (0)(1) +2140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ (1) +2141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG (0)(5) +2142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ (0)(5) +2143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ (5) +2144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(6) +2145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(6) +2146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (6) +2147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1) +2148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1) +2149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1) +2150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2) +2151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2) +2152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2) +2153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG (0)(2) +2154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ (0)(2) +2155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ (2) +2156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG (0)(3) +2157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ (0)(3) +2158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ (3) +2159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(5) +2160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(5) +2161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (5) +2162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG (0)(5) +2163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_INJ (0)(5) +2164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG_INJ (5) +2165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG (0)(4) +2166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_INJ (0)(4) +2167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG_INJ (4) +2168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +2169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (0) On STM32G4, parameter available only on analog watchdog number: AWD1.\n +2170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +2171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +2172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +2173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +2174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +2175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +2176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +2177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +2178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) +2180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__GROUP__) == LL_ADC_GROUP_REGULAR) +2181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +2182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : +2183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__GROUP__) == LL_ADC_GROUP_INJECTED) +2184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) +2185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : +2186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +2187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to set the value of ADC analog watchdog threshold high +2191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or low in function of ADC resolution, when ADC resolution is +2192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * different of 12 bits. +2193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_ConfigAnalogWDThresholds() +2194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or @ref LL_ADC_SetAnalogWDThresholds(). +2195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, with a ADC resolution of 8 bits, to set the value of + ARM GAS /tmp/cc3JIfda.s page 40 + + +2196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog threshold high (on 8 bits): +2197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_SetAnalogWDThresholds +2198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (< ADCx param >, +2199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, > (ADC_CFGR_RES_BITOFFSET_POS - 1U ))) +2211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get the value of ADC analog watchdog threshold high +2214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or low in function of ADC resolution, when ADC resolution is +2215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * different of 12 bits. +2216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds(). +2217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, with a ADC resolution of 8 bits, to get the value of +2218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog threshold high (on 8 bits): +2219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION +2220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_RESOLUTION_8B, +2221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_GetAnalogWDThresholds(, LL_ADC_AWD_THRESHOLD_HIGH) +2222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ); +2223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF +2229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +2230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \ +2232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U ))) +2233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get the ADC analog watchdog threshold high +2236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or low from raw value containing both thresholds concatenated. +2237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds(). +2238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, to get analog watchdog threshold high from the register raw value: +2239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(LL_ADC_AWD_THRESHOLD_HIGH, > (((__AWD_THRESHOLD_TYPE__) & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_ +2248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to set the ADC calibration value with both single ended +2251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and differential modes calibration factors concatenated. +2252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To be used with function @ref LL_ADC_SetCalibrationFactor(). + ARM GAS /tmp/cc3JIfda.s page 41 + + +2253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example, to set calibration factors single ended to 0x55 +2254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and differential ended to 0x2A: +2255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_SetCalibrationFactor( +2256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC1, +2257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(0x55, 0x2A)) +2258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CALIB_FACTOR_SINGLE_ENDED__ Value between Min_Data=0x00 and Max_Data=0x7F +2259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __CALIB_FACTOR_DIFFERENTIAL__ Value between Min_Data=0x00 and Max_Data=0x7F +2260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +2261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(__CALIB_FACTOR_SINGLE_ENDED__, __CALIB_FACTOR_DIFFERENTIA +2263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__CALIB_FACTOR_DIFFERENTIAL__) << ADC_CALFACT_CALFACT_D_Pos) | (__CALIB_FACTOR_SINGLE_ENDED__) +2264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +2266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to get the ADC multimode conversion data of ADC master +2268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or ADC slave from raw value with both ADC conversion data concatenated. +2269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This macro is intended to be used when multimode transfer by DMA +2270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer(). +2271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In this case the transferred data need to processed with this macro +2272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to separate the conversion data of ADC master and ADC slave. +2273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values: +2274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_MASTER +2275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_SLAVE +2276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF +2277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +2278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) +2280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADC_MULTI_CONV_DATA__) >> ((ADC_CDR_RDATA_SLV_Pos) & ~(__ADC_MULTI_MASTER_SLAVE__))) & ADC_C +2281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +2282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +2284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to select, from a ADC instance, to which ADC instance +2286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * it has a dependence in multimode (ADC master of the corresponding +2287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC common instance). +2288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of device with multimode available and a mix of +2289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instances compliant and not compliant with multimode feature, +2290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instances not compliant with multimode feature are +2291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * considered as master instances (do not depend to +2292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * any other ADC instance). +2293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADCx__ ADC instance +2294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval __ADCx__ ADC instance master of the corresponding ADC common instance +2295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC5) +2297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_MULTI_INSTANCE_MASTER(__ADCx__) \ +2298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( ( ((__ADCx__) == ADC2) \ +2299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** )? \ +2300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC1) \ +2301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( ( ((__ADCx__) == ADC4) \ +2303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** )? \ +2304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC3) \ +2305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADCx__) \ +2307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else + ARM GAS /tmp/cc3JIfda.s page 42 + + +2310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_MULTI_INSTANCE_MASTER(__ADCx__) \ +2311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( ( ((__ADCx__) == ADC2) \ +2312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** )? \ +2313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC1) \ +2314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADCx__) \ +2316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC5 */ +2318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +2319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to select the ADC common instance +2322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to which is belonging the selected ADC instance. +2323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC common register instance can be used for: +2324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Set parameters common to several ADC instances +2325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Multimode (for devices with several ADC instances) +2326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to functions having argument "ADCxy_COMMON" as parameter. +2327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADCx__ ADC instance +2328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC common register instance +2329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC345_COMMON) +2331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \ +2332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((((__ADCx__) == ADC1) || ((__ADCx__) == ADC2)) \ +2333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? ( \ +2334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC12_COMMON) \ +2335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +2338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC345_COMMON) \ +2339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_COMMON_INSTANCE(__ADCx__) (ADC12_COMMON) +2343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC345_COMMON */ +2344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to check if all ADC instances sharing the same +2346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC common instance are disabled. +2347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This check is required by functions with setting conditioned to +2348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +2350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to functions having argument "ADCxy_COMMON" as parameter. +2351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On devices with only 1 ADC common instance, parameter of this macro +2352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is useless and can be ignored (parameter kept for compatibility +2353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with devices featuring several ADC common instances). +2354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADCXY_COMMON__ ADC common instance +2355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if all ADC instances sharing the same ADC common instance +2357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are disabled. +2358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if at least one ADC instance sharing the same ADC common instance +2359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled. +2360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC345_COMMON) +2362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC4) && defined(ADC5) +2363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ +2364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADCXY_COMMON__) == ADC12_COMMON) \ +2365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? ( \ +2366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC1) | \ + ARM GAS /tmp/cc3JIfda.s page 43 + + +2367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC2) ) \ +2368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ( \ +2371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC3) | \ +2372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC4) | \ +2373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC5) ) \ +2374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ +2378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__ADCXY_COMMON__) == ADC12_COMMON) \ +2379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ? ( \ +2380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC1) | \ +2381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_IsEnabled(ADC2) ) \ +2382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** : \ +2384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC3)) \ +2385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC4 && ADC5 */ +2387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \ +2389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (LL_ADC_IsEnabled(ADC1) | LL_ADC_IsEnabled(ADC2)) +2390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif +2391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to define the ADC conversion data full-scale digital +2394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * value corresponding to the selected ADC resolution. +2395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC conversion data full-scale corresponds to voltage range +2396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * determined by analog voltage references Vref+ and Vref- +2397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (refer to reference manual). +2398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC conversion data full-scale digital value (unit: digital value of ADC conversion dat +2404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ +2406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (0xFFFUL >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL))) +2407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to convert the ADC conversion data from +2410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a resolution to another resolution. +2411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __DATA__ ADC conversion data to be converted +2412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION_CURRENT__ Resolution of the data to be converted +2413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion +2419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B + ARM GAS /tmp/cc3JIfda.s page 44 + + +2424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC conversion data to the requested resolution +2425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\ +2427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION_CURRENT__,\ +2428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION_TARGET__) \ +2429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((__DATA__) \ +2430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL))) \ +2431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1UL)) \ +2432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate the voltage (unit: mVolt) +2436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * corresponding to a ADC conversion data (unit: digital value). +2437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Analog reference voltage (Vref+) must be either known from +2438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * user board environment or can be calculated using ADC measurement +2439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). +2440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) +2441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_DATA__ ADC conversion data (resolution 12 bits) +2442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: digital value). +2443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC conversion data equivalent voltage value (unit: mVolt) +2449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\ +2451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_DATA__,\ +2452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ +2453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \ +2454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \ +2455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate analog reference voltage (Vref+) +2459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: mVolt) from ADC conversion data of internal voltage +2460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * reference VrefInt. +2461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Computation is using VrefInt calibration value +2462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * stored in system memory for each device during production. +2463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This voltage depends on user board environment: voltage level +2464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * connected to pin Vref+. +2465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On devices with small package, the pin Vref+ is not present +2466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and internally bonded to pin Vdda. +2467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, calibration data of internal voltage reference +2468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * VrefInt corresponds to a resolution of 12 bits, +2469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this is the recommended ADC resolution to convert voltage of +2470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal voltage reference VrefInt. +2471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Otherwise, this macro performs the processing to scale +2472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion data to 12 bits. +2473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits) +2474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of internal voltage reference VrefInt (unit: digital value). +2475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ This parameter can be one of the following values: +2476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Analog reference voltage (unit: mV) + ARM GAS /tmp/cc3JIfda.s page 45 + + +2481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\ +2483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ +2484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \ +2485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \ +2486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADC_RESOLUTION__), \ +2487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_RESOLUTION_12B) \ +2488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate the temperature (unit: degree Celsius) +2492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC conversion data of internal temperature sensor. +2493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Computation is using temperature sensor calibration values +2494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * stored in system memory for each device during production. +2495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Calculation formula: +2496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Temperature = ((TS_ADC_DATA - TS_CAL1) +2497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * * (TS_CAL2_TEMP - TS_CAL1_TEMP)) +2498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP +2499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with TS_ADC_DATA = temperature sensor raw data measured by ADC +2500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Avg_Slope = (TS_CAL2 - TS_CAL1) +2501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * / (TS_CAL2_TEMP - TS_CAL1_TEMP) +2502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_CAL1 = equivalent TS_ADC_DATA at temperature +2503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TEMP_DEGC_CAL1 (calibrated in factory) +2504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_CAL2 = equivalent TS_ADC_DATA at temperature +2505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TEMP_DEGC_CAL2 (calibrated in factory) +2506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Caution: Calculation relevancy under reserve that calibration +2507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameters are correct (address and data). +2508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * To calculate temperature using temperature sensor +2509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * datasheet typical values (generic values less, therefore +2510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * less accurate than calibrated values), +2511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(). +2512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note As calculation input, the analog reference voltage (Vref+) must be +2513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined as it impacts the ADC LSB equivalent voltage. +2514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Analog reference voltage (Vref+) must be either known from +2515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * user board environment or can be calculated using ADC measurement +2516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). +2517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, calibration data of temperature sensor +2518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * corresponds to a resolution of 12 bits, +2519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this is the recommended ADC resolution to convert voltage of +2520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor. +2521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Otherwise, this macro performs the processing to scale +2522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion data to 12 bits. +2523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) +2524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal +2525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor (unit: digital value). +2526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature +2527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sensor voltage has been measured. +2528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Temperature (unit: degree Celsius) +2534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\ +2536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_ADC_DATA__,\ +2537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ + ARM GAS /tmp/cc3JIfda.s page 46 + + +2538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \ +2539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (__ADC_RESOLUTION__), \ +2540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** LL_ADC_RESOLUTION_12B) \ +2541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (__VREFANALOG_VOLTAGE__)) \ +2542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / TEMPSENSOR_CAL_VREFANALOG) \ +2543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** - (int32_t) *TEMPSENSOR_CAL1_ADDR) \ +2544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \ +2545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \ +2546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) + TEMPSENSOR_CAL1_TEMP \ +2547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Helper macro to calculate the temperature (unit: degree Celsius) +2551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC conversion data of internal temperature sensor. +2552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Computation is using temperature sensor typical values +2553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (refer to device datasheet). +2554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Calculation formula: +2555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV) +2556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * / Avg_Slope + CALx_TEMP +2557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with TS_ADC_DATA = temperature sensor raw data measured by ADC +2558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: digital value) +2559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Avg_Slope = temperature sensor slope +2560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (unit: uV/Degree Celsius) +2561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_TYP_CALx_VOLT = temperature sensor digital value at +2562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature CALx_TEMP (unit: mV) +2563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Caution: Calculation relevancy under reserve the temperature sensor +2564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of the current device has characteristics in line with +2565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * datasheet typical values. +2566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If temperature sensor calibration values are available on +2567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()), +2568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature calculation will be more accurate using +2569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CALC_TEMPERATURE(). +2570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note As calculation input, the analog reference voltage (Vref+) must be +2571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined as it impacts the ADC LSB equivalent voltage. +2572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Analog reference voltage (Vref+) must be either known from +2573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * user board environment or can be calculated using ADC measurement +2574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). +2575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC measurement data must correspond to a resolution of 12 bits +2576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (full scale digital value 4095). If not the case, the data must be +2577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * preliminarily rescaled to an equivalent resolution of 12 bits. +2578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical v +2579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On STM32G4, refer to device datasheet parameter "Avg_Slop +2580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical +2581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On STM32G4, refer to device datasheet parameter "V30" (co +2582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature s +2583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV) +2584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: +2585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor volta +2586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This parameter can be one of the following values: +2587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Temperature (unit: degree Celsius) +2592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\ +2594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_TYP_CALX_V__,\ + ARM GAS /tmp/cc3JIfda.s page 47 + + +2595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_CALX_TEMP__,\ +2596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __VREFANALOG_VOLTAGE__,\ +2597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __TEMPSENSOR_ADC_DATA__,\ +2598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __ADC_RESOLUTION__) \ +2599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((((int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \ +2600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \ +2601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1000UL) \ +2602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** - \ +2603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \ +2604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1000UL) \ +2605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) \ +2606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) / (int32_t)(__TEMPSENSOR_TYP_AVGSLOPE__) \ +2607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) + (int32_t)(__TEMPSENSOR_CALX_TEMP__) \ +2608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +2609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Exported functions --------------------------------------------------------*/ +2620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions +2621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management +2625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: LL ADC functions to set DMA transfer are located into sections of */ +2628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* configuration of ADC instance, groups and multimode (if available): */ +2629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* @ref LL_ADC_REG_SetDMATransfer(), ... */ +2630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Function to help to configure DMA transfer from ADC: retrieve the +2633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC register address from ADC instance and a list of ADC registers +2634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * intended to be used (most commonly) with DMA transfer. +2635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note These ADC registers are data registers: +2636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when ADC conversion data is available in ADC data registers, +2637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC generates a DMA transfer request. +2638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This macro is intended to be used with LL DMA driver, refer to +2639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_DMA_ConfigAddresses()". +2640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: +2641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_DMA_ConfigAddresses(DMA1, +2642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_DMA_CHANNEL_1, +2643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA), +2644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (uint32_t)&< array or variable >, +2645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_DMA_DIRECTION_PERIPH_TO_MEMORY); +2646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with several ADC: in multimode, some devices +2647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use a different data register outside of ADC instance scope +2648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (common data register). This macro manages this register difference, +2649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * only ADC instance has to be set as parameter. +2650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_DMA_GetRegAddr\n +2651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CDR RDATA_MST LL_ADC_DMA_GetRegAddr\n + ARM GAS /tmp/cc3JIfda.s page 48 + + +2652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CDR RDATA_SLV LL_ADC_DMA_GetRegAddr +2653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Register This parameter can be one of the following values: +2655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA +2656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1) +2657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +2658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) Available on devices with several ADC instances. +2659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval ADC register address +2660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +2662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register) +2663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t data_reg_addr; +2665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (Register == LL_ADC_DMA_REG_REGULAR_DATA) +2667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve address of register DR */ +2669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** data_reg_addr = (uint32_t) &(ADCx->DR); +2670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */ +2672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve address of register CDR */ +2674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** data_reg_addr = (uint32_t) &((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR); +2675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return data_reg_addr; +2678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #else +2680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register) +2681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Prevent unused argument(s) compilation warning */ +2683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (void)(Register); +2684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve address of register DR */ +2686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) &(ADCx->DR); +2687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +2689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to +2695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: Clock source and prescaler. +2700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, if ADC group injected is used, some +2701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * clock ratio constraints between ADC clock and AHB clock +2702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * must be respected. +2703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual. +2704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +2707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This check can be done with function @ref LL_ADC_IsEnabled() for each +2708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance or by using helper macro helper macro + ARM GAS /tmp/cc3JIfda.s page 49 + + +2709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). +2710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR CKMODE LL_ADC_SetCommonClock\n +2711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR PRESC LL_ADC_SetCommonClock +2712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param CommonClock This parameter can be one of the following values: +2715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1 +2716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2 +2717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4 +2718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1 +2719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2 +2720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4 +2721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6 +2722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8 +2723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10 +2724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12 +2725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16 +2726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32 +2727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64 +2728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 +2729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 +2730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock) +2733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC, CommonClock); +2735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get parameter common to several ADC: Clock source and prescaler. +2739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR CKMODE LL_ADC_GetCommonClock\n +2740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR PRESC LL_ADC_GetCommonClock +2741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +2744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1 +2745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2 +2746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4 +2747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1 +2748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2 +2749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4 +2750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6 +2751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8 +2752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10 +2753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12 +2754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16 +2755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32 +2756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64 +2757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128 +2758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256 +2759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON) +2761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC)); +2763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/cc3JIfda.s page 50 + + +2766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: measurement path to +2767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal channels (VrefInt, temperature sensor, ...). +2768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Configure all paths (overwrite current configuration). +2769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * The values not selected are removed from configuration. +2773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Stabilization time of measurement path to internal channel: +2774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * After enabling internal paths, before starting ADC conversion, +2775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a delay is required for internal voltage reference and +2776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor stabilization time. +2777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US. +2779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US. +2780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC internal channel sampling time constraint: +2781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For ADC conversion of internal channels, +2782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a sampling time minimum value is required. +2783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalCh\n +2785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_SetCommonPathInternalCh\n +2786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_SetCommonPathInternalCh +2787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param PathInternal This parameter can be a combination of the following values: +2790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Path +2797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSEL, PathInternal) +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: measurement path to +2803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal channels (VrefInt, temperature sensor, ...). +2804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Add paths to the current configuration. +2805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Stabilization time of measurement path to internal channel: +2809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * After enabling internal paths, before starting ADC conversion, +2810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a delay is required for internal voltage reference and +2811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor stabilization time. +2812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US. +2814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US. +2815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note ADC internal channel sampling time constraint: +2816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For ADC conversion of internal channels, +2817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a sampling time minimum value is required. +2818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +2819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalChAdd\n +2820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_SetCommonPathInternalChAdd\n +2821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_SetCommonPathInternalChAdd +2822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance + ARM GAS /tmp/cc3JIfda.s page 51 + + +2823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param PathInternal This parameter can be a combination of the following values: +2825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonPathInternalChAdd(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t P +2832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCxy_COMMON->CCR, PathInternal); +2834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set parameter common to several ADC: measurement path to +2838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal channels (VrefInt, temperature sensor, ...). +2839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Remove paths to the current configuration. +2840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalChRem\n +2844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_SetCommonPathInternalChRem\n +2845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_SetCommonPathInternalChRem +2846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param PathInternal This parameter can be a combination of the following values: +2849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCommonPathInternalChRem(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t P +2856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCxy_COMMON->CCR, PathInternal); +2858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get parameter common to several ADC: measurement path to internal +2862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channels (VrefInt, temperature sensor, ...). +2863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +2864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_PATH_INTERNAL_VREFINT | +2865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_PATH_INTERNAL_TEMPSENSOR) +2866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR VREFEN LL_ADC_GetCommonPathInternalCh\n +2867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VSENSESEL LL_ADC_GetCommonPathInternalCh\n +2868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR VBATSEL LL_ADC_GetCommonPathInternalCh +2869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +2870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +2871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be a combination of the following values: +2872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_NONE +2873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT +2874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR +2875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_PATH_INTERNAL_VBAT +2876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON) +2878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_VSENSESEL | ADC_CCR_VBATSE + ARM GAS /tmp/cc3JIfda.s page 52 + + +2880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +2884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC ins +2887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +2888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC calibration factor in the mode single-ended +2892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or differential (for devices with differential mode available). +2893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function is intended to set calibration parameters +2894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without having to perform a new calibration using +2895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref LL_ADC_StartCalibration(). +2896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with differential mode available: +2897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Calibration of offset is specific to each of +2898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * single-ended and differential modes +2899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (calibration factor must be specified for each of these +2900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * differential modes, if used afterwards and if the application +2901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * requires their calibration). +2902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of setting calibration factors of both modes single ended +2903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and differential (parameter LL_ADC_BOTH_SINGLE_DIFF_ENDED): +2904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * both calibration factors must be concatenated. +2905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * To perform this processing, use helper macro +2906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(). +2907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled, without calibration on going, without conversion +2910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on group regular. +2911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CALFACT CALFACT_S LL_ADC_SetCalibrationFactor\n +2912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CALFACT CALFACT_D LL_ADC_SetCalibrationFactor +2913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be one of the following values: +2915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +2916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +2917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_BOTH_SINGLE_DIFF_ENDED +2918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x7F +2919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff, uint32_t C +2922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 30 .loc 2 2922 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 @ link register save eliminated. +2923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CALFACT, + 35 .loc 2 2923 3 view .LVU1 + 36 0000 D0F8B430 ldr r3, [r0, #180] + 37 0004 01F07F1C and ip, r1, #8323199 + 38 0008 23EA0C0C bic ip, r3, ip + 39 000c 01F07F03 and r3, r1, #127 + 40 0010 DB43 mvns r3, r3 + 41 0012 03EA1133 and r3, r3, r1, lsr #12 + 42 0016 03F01003 and r3, r3, #16 + ARM GAS /tmp/cc3JIfda.s page 53 + + + 43 001a 9A40 lsls r2, r2, r3 + 44 .LVL1: + 45 .loc 2 2923 3 is_stmt 0 view .LVU2 + 46 001c 4CEA0202 orr r2, ip, r2 + 47 0020 C0F8B420 str r2, [r0, #180] +2924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK, +2925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CalibrationFactor << (((SingleDiff & ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK) >> ADC_SINGLED +2926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 48 .loc 2 2926 1 view .LVU3 + 49 0024 7047 bx lr + 50 .cfi_endproc + 51 .LFE139: + 53 .section .text.LL_ADC_SetChannelSamplingTime,"ax",%progbits + 54 .align 1 + 55 .syntax unified + 56 .thumb + 57 .thumb_func + 59 LL_ADC_SetChannelSamplingTime: + 60 .LVL2: + 61 .LFB195: +2927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC calibration factor in the mode single-ended +2930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or differential (for devices with differential mode available). +2931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Calibration factors are set by hardware after performing +2932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a calibration run using function @ref LL_ADC_StartCalibration(). +2933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with differential mode available: +2934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Calibration of offset is specific to each of +2935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * single-ended and differential modes +2936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CALFACT CALFACT_S LL_ADC_GetCalibrationFactor\n +2937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CALFACT CALFACT_D LL_ADC_GetCalibrationFactor +2938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be one of the following values: +2940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +2941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +2942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0x7F +2943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff) +2945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Retrieve bits with position in register depending on parameter */ +2947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "SingleDiff". */ +2948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameter used with mask "ADC_SINGLEDIFF_CALIB_FACTOR_MASK" because */ +2949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +2950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CALFACT, +2951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> ((SingleDiff & ADC +2952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SINGLEDIFF_CA +2953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC resolution. +2957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual for alignments formats +2958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +2959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +2961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +2962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +2963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR RES LL_ADC_SetResolution + ARM GAS /tmp/cc3JIfda.s page 54 + + +2964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Resolution This parameter can be one of the following values: +2966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +2971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution) +2973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_RES, Resolution); +2975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC resolution. +2979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual for alignments formats +2980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +2981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR RES LL_ADC_GetResolution +2982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +2983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +2984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_12B +2985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_10B +2986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_8B +2987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_RESOLUTION_6B +2988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +2989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx) +2990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +2991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_RES)); +2992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +2993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +2994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +2995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC conversion data alignment. +2996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to reference manual for alignments formats +2997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +2998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +2999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR ALIGN LL_ADC_SetDataAlignment +3003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param DataAlignment This parameter can be one of the following values: +3005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_RIGHT +3006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_LEFT +3007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment) +3010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_ALIGN, DataAlignment); +3012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC conversion data alignment. +3016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to reference manual for alignments formats +3017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * dependencies to ADC resolutions. +3018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR ALIGN LL_ADC_GetDataAlignment +3019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: + ARM GAS /tmp/cc3JIfda.s page 55 + + +3021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_RIGHT +3022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DATA_ALIGN_LEFT +3023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx) +3025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_ALIGN)); +3027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC low power mode. +3031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC low power modes: +3032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto wait": Dynamic low power mode, +3033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions occurrences are limited to the minimum necessary +3034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in order to reduce power consumption. +3035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * New ADC conversion starts only when the previous +3036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * unitary conversion data (for ADC group regular) +3037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or previous sequence conversions data (for ADC group injected) +3038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * has been retrieved by user software. +3039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In the meantime, ADC remains idle: does not performs any +3040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * other conversion. +3041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This mode allows to automatically adapt the ADC conversions +3042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * triggers to the speed of the software that reads the data. +3043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Moreover, this avoids risk of overrun for low frequency +3044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * applications. +3045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * How to use this low power mode: +3046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - It is not recommended to use with interruption or DMA +3047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * since these modes have to clear immediately the EOC flag +3048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (by CPU to free the IRQ pending event or by DMA). +3049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Auto wait will work but fort a very short time, discarding +3050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * its intended benefit (except specific case of high load of CPU +3051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or DMA transfers which can justify usage of auto wait). +3052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Do use with polling: 1. Start conversion, +3053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 2. Later on, when conversion data is needed: poll for end of +3054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversion to ensure that conversion is completed and +3055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * retrieve ADC conversion data. This will trig another +3056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion start. +3057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto power-off" (feature available on +3058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this device if parameter LL_ADC_LP_AUTOPOWEROFF is available): +3059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the ADC automatically powers-off after a conversion and +3060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * automatically wakes up when a new conversion is triggered +3061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (with startup time between trigger and start of sampling). +3062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This feature can be combined with low power mode "auto wait". +3063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note With ADC low power mode "auto wait", the ADC conversion data read +3064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is corresponding to previous ADC conversion start, independently +3065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of delay during which ADC was idle. +3066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, the ADC conversion data may be outdated: does not +3067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * correspond to the current voltage level on the selected +3068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +3069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AUTDLY LL_ADC_SetLowPowerMode +3074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param LowPowerMode This parameter can be one of the following values: +3076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_MODE_NONE +3077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_AUTOWAIT + ARM GAS /tmp/cc3JIfda.s page 56 + + +3078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetLowPowerMode(ADC_TypeDef *ADCx, uint32_t LowPowerMode) +3081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_AUTDLY, LowPowerMode); +3083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC low power mode: +3087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC low power modes: +3088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto wait": Dynamic low power mode, +3089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions occurrences are limited to the minimum necessary +3090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in order to reduce power consumption. +3091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * New ADC conversion starts only when the previous +3092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * unitary conversion data (for ADC group regular) +3093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or previous sequence conversions data (for ADC group injected) +3094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * has been retrieved by user software. +3095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In the meantime, ADC remains idle: does not performs any +3096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * other conversion. +3097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This mode allows to automatically adapt the ADC conversions +3098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * triggers to the speed of the software that reads the data. +3099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Moreover, this avoids risk of overrun for low frequency +3100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * applications. +3101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * How to use this low power mode: +3102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - It is not recommended to use with interruption or DMA +3103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * since these modes have to clear immediately the EOC flag +3104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (by CPU to free the IRQ pending event or by DMA). +3105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Auto wait will work but fort a very short time, discarding +3106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * its intended benefit (except specific case of high load of CPU +3107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or DMA transfers which can justify usage of auto wait). +3108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Do use with polling: 1. Start conversion, +3109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 2. Later on, when conversion data is needed: poll for end of +3110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversion to ensure that conversion is completed and +3111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * retrieve ADC conversion data. This will trig another +3112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion start. +3113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC low power mode "auto power-off" (feature available on +3114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * this device if parameter LL_ADC_LP_AUTOPOWEROFF is available): +3115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the ADC automatically powers-off after a conversion and +3116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * automatically wakes up when a new conversion is triggered +3117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (with startup time between trigger and start of sampling). +3118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This feature can be combined with low power mode "auto wait". +3119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note With ADC low power mode "auto wait", the ADC conversion data read +3120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is corresponding to previous ADC conversion start, independently +3121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of delay during which ADC was idle. +3122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, the ADC conversion data may be outdated: does not +3123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * correspond to the current voltage level on the selected +3124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +3125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AUTDLY LL_ADC_GetLowPowerMode +3126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_MODE_NONE +3129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_LP_AUTOWAIT +3130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetLowPowerMode(ADC_TypeDef *ADCx) +3132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_AUTDLY)); +3134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 57 + + +3135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC selected offset number 1, 2, 3 or 4. +3138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the 2 items of offset configuration: +3139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC channel to which the offset programmed will be applied +3140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (independently of channel mapped on ADC group regular +3141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or group injected) +3142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Offset level (offset to be subtracted from the raw +3143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * converted data). +3144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Caution: Offset format is dependent to ADC resolution: +3145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset has to be left-aligned on bit 11, the LSB (right bits) +3146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are set to 0. +3147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function enables the offset, by default. It can be forced +3148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to disable state using function LL_ADC_SetOffsetState(). +3149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If a channel is mapped on several offsets numbers, only the offset +3150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with the lowest value is considered for the subtraction. +3151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +3156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +3157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_CH LL_ADC_SetOffset\n +3158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR1 OFFSET1 LL_ADC_SetOffset\n +3159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR1 OFFSET1_EN LL_ADC_SetOffset\n +3160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_CH LL_ADC_SetOffset\n +3161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2 LL_ADC_SetOffset\n +3162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_EN LL_ADC_SetOffset\n +3163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_CH LL_ADC_SetOffset\n +3164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3 LL_ADC_SetOffset\n +3165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_EN LL_ADC_SetOffset\n +3166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_CH LL_ADC_SetOffset\n +3167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4 LL_ADC_SetOffset\n +3168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_EN LL_ADC_SetOffset +3169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +3176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +3177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +3178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +3179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +3180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +3181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +3182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +3183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +3184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +3185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +3186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +3187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +3188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +3189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +3190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +3191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 + ARM GAS /tmp/cc3JIfda.s page 58 + + +3192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +3193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +3194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +3195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +3196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +3197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +3198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +3199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +3200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +3201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +3202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +3203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +3204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +3205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +3206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +3208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +3209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +3210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +3211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +3212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +3213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +3214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +3215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +3216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +3217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF +3218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32 +3221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, +3226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | (Channel & ADC_CHANNEL_ID_NUMBER_MASK) | OffsetLevel); +3227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channel to which the offset programmed will be applied +3232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (independently of channel mapped on ADC group regular +3233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or group injected) +3234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +3235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +3236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +3237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +3238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +3239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +3240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +3241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +3242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +3243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +3244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +3245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +3246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +3247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_CH LL_ADC_GetOffsetChannel\n +3248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_CH LL_ADC_GetOffsetChannel\n + ARM GAS /tmp/cc3JIfda.s page 59 + + +3249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_CH LL_ADC_GetOffsetChannel\n +3250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_CH LL_ADC_GetOffsetChannel +3251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +3259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +3260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +3261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +3262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +3263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +3264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +3265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +3266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +3267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +3268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +3269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +3270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +3271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +3272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +3273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +3274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +3275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +3276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +3277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +3278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +3279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +3280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +3281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +3282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +3283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +3284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +3285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +3286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +3287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +3288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +3290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +3291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +3292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +3293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +3294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +3295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +3296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +3297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +3298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +3299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +3300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +3301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +3302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetChannel(ADC_TypeDef *ADCx, uint32_t Offsety) +3304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + ARM GAS /tmp/cc3JIfda.s page 60 + + +3306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_CH); +3308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Offset level (offset to be subtracted from the raw +3313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * converted data). +3314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Caution: Offset format is dependent to ADC resolution: +3315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset has to be left-aligned on bit 11, the LSB (right bits) +3316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are set to 0. +3317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1 LL_ADC_GetOffsetLevel\n +3318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2 LL_ADC_GetOffsetLevel\n +3319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3 LL_ADC_GetOffsetLevel\n +3320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4 LL_ADC_GetOffsetLevel +3321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +3328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetLevel(ADC_TypeDef *ADCx, uint32_t Offsety) +3330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1); +3334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set for the ADC selected offset number 1, 2, 3 or 4: +3338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * force offset state disable or enable +3339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without modifying offset channel or offset value. +3340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function should be needed only in case of offset to be +3341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled-disabled dynamically, and should not be needed in other cases: +3342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function LL_ADC_SetOffset() automatically enables the offset. +3343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_EN LL_ADC_SetOffsetState\n +3348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_EN LL_ADC_SetOffsetState\n +3349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_EN LL_ADC_SetOffsetState\n +3350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_EN LL_ADC_SetOffsetState +3351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetState This parameter can be one of the following values: +3358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_DISABLE +3359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_ENABLE +3360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetStat + ARM GAS /tmp/cc3JIfda.s page 61 + + +3363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, +3368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** OffsetState); +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset state disabled or enabled. +3374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSET1_EN LL_ADC_GetOffsetState\n +3375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSET2_EN LL_ADC_GetOffsetState\n +3376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSET3_EN LL_ADC_GetOffsetState\n +3377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSET4_EN LL_ADC_GetOffsetState +3378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_DISABLE +3386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_ENABLE +3387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety) +3389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_EN); +3393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set for the ADC selected offset number 1, 2, 3 or 4: +3397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * choose offset sign. +3398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSETPOS LL_ADC_SetOffsetSign\n +3403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSETPOS LL_ADC_SetOffsetSign\n +3404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSETPOS LL_ADC_SetOffsetSign\n +3405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSETPOS LL_ADC_SetOffsetSign +3406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetSign This parameter can be one of the following values: +3413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE +3414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE +3415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffsetSign(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSign) +3418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); + ARM GAS /tmp/cc3JIfda.s page 62 + + +3420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +3422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, +3423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** OffsetSign); +3424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset sign if positive or negative. +3429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 OFFSETPOS LL_ADC_GetOffsetSign\n +3430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 OFFSETPOS LL_ADC_GetOffsetSign\n +3431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 OFFSETPOS LL_ADC_GetOffsetSign\n +3432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 OFFSETPOS LL_ADC_GetOffsetSign +3433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_NEGATIVE +3441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SIGN_POSITIVE +3442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetSign(ADC_TypeDef *ADCx, uint32_t Offsety) +3444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSETPOS); +3448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set for the ADC selected offset number 1, 2, 3 or 4: +3452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * choose offset saturation mode. +3453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 SATEN LL_ADC_SetOffsetSaturation\n +3458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 SATEN LL_ADC_SetOffsetSaturation\n +3459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 SATEN LL_ADC_SetOffsetSaturation\n +3460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 SATEN LL_ADC_SetOffsetSaturation +3461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OffsetSaturation This parameter can be one of the following values: +3468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE +3469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE +3470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOffsetSaturation(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Offse +3473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, + ARM GAS /tmp/cc3JIfda.s page 63 + + +3477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_SATEN, +3478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** OffsetSaturation); +3479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get for the ADC selected offset number 1, 2, 3 or 4: +3483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * offset saturation if enabled or disabled. +3484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll OFR1 SATEN LL_ADC_GetOffsetSaturation\n +3485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR2 SATEN LL_ADC_GetOffsetSaturation\n +3486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR3 SATEN LL_ADC_GetOffsetSaturation\n +3487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * OFR4 SATEN LL_ADC_GetOffsetSaturation +3488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Offsety This parameter can be one of the following values: +3490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_1 +3491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_2 +3492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_3 +3493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_4 +3494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_ENABLE +3496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OFFSET_SATURATION_DISABLE +3497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOffsetSaturation(ADC_TypeDef *ADCx, uint32_t Offsety) +3499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety); +3501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t) READ_BIT(*preg, ADC_OFR1_SATEN); +3503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC gain compensation. +3507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the gain compensation coefficient +3508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * that is applied to raw converted data using the formula: +3509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * DATA = DATA(raw) * (gain compensation coef) / 4096 +3510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function enables the gain compensation if given +3511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coefficient is above 0, otherwise it disables it. +3512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Gain compensation when enabled is applied to all channels. +3513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll GCOMP GCOMPCOEFF LL_ADC_SetGainCompensation\n +3518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 GCOMP LL_ADC_SetGainCompensation +3519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param GainCompensation This parameter can be: +3521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 0 Gain compensation will be disabled and value set to 0 +3522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1 -> 16393 Gain compensation will be enabled with specified value +3523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetGainCompensation(ADC_TypeDef *ADCx, uint32_t GainCompensation) +3526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->GCOMP, ADC_GCOMP_GCOMPCOEFF, GainCompensation); +3528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_GCOMP, ((GainCompensation == 0UL) ? 0UL : 1UL) << ADC_CFGR2_GCO +3529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the ADC gain compensation value +3533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll GCOMP GCOMPCOEFF LL_ADC_GetGainCompensation\n + ARM GAS /tmp/cc3JIfda.s page 64 + + +3534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 GCOMP LL_ADC_GetGainCompensation +3535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be: +3537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 0 Gain compensation is disabled +3538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1 -> 16393 Gain compensation is enabled with returned value +3539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetGainCompensation(ADC_TypeDef *ADCx) +3541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CFGR2, ADC_CFGR2_GCOMP) == ADC_CFGR2_GCOMP) ? READ_BIT(ADCx->GCOMP, ADC_G +3543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_SMPR1_SMPPLUS) +3546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC sampling time common configuration impacting +3548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings of sampling time channel wise. +3549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +3553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMPPLUS LL_ADC_SetSamplingTimeCommonConfig +3554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SamplingTimeCommonConfig This parameter can be one of the following values: +3556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT +3557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 +3558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetSamplingTimeCommonConfig(ADC_TypeDef *ADCx, uint32_t SamplingTimeCom +3561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->SMPR1, ADC_SMPR1_SMPPLUS, SamplingTimeCommonConfig); +3563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC sampling time common configuration impacting +3567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings of sampling time channel wise. +3568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMPPLUS LL_ADC_GetSamplingTimeCommonConfig +3569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT +3572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 +3573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetSamplingTimeCommonConfig(ADC_TypeDef *ADCx) +3575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->SMPR1, ADC_SMPR1_SMPPLUS)); +3577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_SMPR1_SMPPLUS */ +3579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +3582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: gr +3585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +3586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular conversion trigger source: +3590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, + ARM GAS /tmp/cc3JIfda.s page 65 + + +3591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +3592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting trigger source to external trigger +3593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * also set trigger polarity to rising edge +3594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (default setting for compatibility with some ADC on other +3595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * STM32 families having this setting set by HW default value). +3596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In case of need to modify trigger edge, use +3597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function @ref LL_ADC_REG_SetTriggerEdge(). +3598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +3599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +3600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTSEL LL_ADC_REG_SetTriggerSource\n +3605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR EXTEN LL_ADC_REG_SetTriggerSource +3606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TriggerSource This parameter can be one of the following values: +3608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_SOFTWARE +3609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO +3610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 +3611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (1) +3612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (1) +3613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3 +3614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO +3615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1 (2) +3616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2 (1) +3617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3 (2) +3618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO +3619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1 (2) +3620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (1) +3621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO +3622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1 (2) +3623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (1) +3624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO +3625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO +3626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO +3627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 +3628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1 (2) +3629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO +3630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO +3631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 +3632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1 +3633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2 (1) +3634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3 (1) +3635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 +3636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (2) +3637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 +3638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (2) +3639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 +3640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 +3641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 +3642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 +3643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 +3644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 +3645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (1) +3646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (2) +3647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM_OUT + ARM GAS /tmp/cc3JIfda.s page 66 + + +3648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +3650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +3651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +3652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource) +3655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL, TriggerSource); +3657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion trigger source: +3661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +3662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +3663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To determine whether group regular trigger source is +3664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or external, without detail +3665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of which peripheral is selected as external trigger, +3666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (equivalent to +3667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)") +3668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_REG_IsTriggerSourceSWStart. +3669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +3670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +3671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTSEL LL_ADC_REG_GetTriggerSource\n +3672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR EXTEN LL_ADC_REG_GetTriggerSource +3673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_SOFTWARE +3676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO +3677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 +3678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (1) +3679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (1) +3680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3 +3681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO +3682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1 (2) +3683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2 (1) +3684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3 (2) +3685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO +3686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1 (2) +3687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (1) +3688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO +3689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1 (2) +3690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (1) +3691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO +3692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO +3693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO +3694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 +3695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1 (2) +3696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO +3697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO +3698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRGO2 +3699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1 +3700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2 (1) +3701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3 (1) +3702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 +3703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG2 (2) +3704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 + ARM GAS /tmp/cc3JIfda.s page 67 + + +3705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG4 (2) +3706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG5 +3707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG6 +3708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG7 +3709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG8 +3710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG9 +3711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG10 +3712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (1) +3713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2 (2) +3714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM_OUT +3715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +3716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +3717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +3718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +3719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx) +3721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t TriggerSource = READ_BIT(ADCx->CFGR, ADC_CFGR_EXTSEL | ADC_CFGR_EXTEN); +3723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */ +3725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to ADC_CFGR_EXTEN {0; 1; 2; 3}. */ +3726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ShiftExten = ((TriggerSource & ADC_CFGR_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2U +3727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bitfield corresponding to ADC_CFGR_EXTEN and ADC_CFGR_EXTSEL */ +3729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to match with triggers literals definition. */ +3730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((TriggerSource +3731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & (ADC_REG_TRIG_SOURCE_MASK >> ShiftExten) & ADC_CFGR_EXTSEL) +3732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ((ADC_REG_TRIG_EDGE_MASK >> ShiftExten) & ADC_CFGR_EXTEN) +3733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +3734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion trigger source internal (SW start) +3738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or external. +3739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of group regular trigger source set to external trigger, +3740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to determine which peripheral is selected as external trigger, +3741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_REG_GetTriggerSource(). +3742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTEN LL_ADC_REG_IsTriggerSourceSWStart +3743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if trigger source external trigger +3745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if trigger source SW start. +3746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx) +3748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN)) ? 1 +3750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular conversion trigger polarity. +3754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Applicable only for trigger source set to external trigger. +3755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTEN LL_ADC_REG_SetTriggerEdge +3760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ExternalTriggerEdge This parameter can be one of the following values: + ARM GAS /tmp/cc3JIfda.s page 68 + + +3762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISING +3763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING +3764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING +3765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge) +3768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN, ExternalTriggerEdge); +3770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion trigger polarity. +3774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Applicable only for trigger source set to external trigger. +3775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR EXTEN LL_ADC_REG_GetTriggerEdge +3776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISING +3779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING +3780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING +3781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx) +3783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN)); +3785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC sampling mode. +3789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the ADC conversion sampling mode +3790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This mode applies to regular group only. +3791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Set sampling mode is applied to all conversion of regular group. +3792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 BULB LL_ADC_REG_SetSamplingMode\n +3797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 SMPTRIG LL_ADC_REG_SetSamplingMode +3798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SamplingMode This parameter can be one of the following values: +3800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_NORMAL +3801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_BULB +3802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED +3803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSamplingMode(ADC_TypeDef *ADCx, uint32_t SamplingMode) +3806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG, SamplingMode); +3808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the ADC sampling mode +3812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 BULB LL_ADC_REG_GetSamplingMode\n +3813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 SMPTRIG LL_ADC_REG_GetSamplingMode +3814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_NORMAL +3817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_BULB +3818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED + ARM GAS /tmp/cc3JIfda.s page 69 + + +3819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSamplingMode(ADC_TypeDef *ADCx) +3821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_BULB | ADC_CFGR2_SMPTRIG)); +3823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular sequencer length and scan direction. +3827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC group regular sequencer features: +3828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer fully configurable +3829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerRanks()" available): +3830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are configurable. +3832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function performs configuration of: +3833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +3834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +3836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerRanks()". +3838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer not fully configurable +3839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerChannels()" available): +3840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are defined by channel number. +3842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function performs configuration of: +3843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence is +3844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined by number of channels set in the sequence, +3845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * rank of each channel is fixed by channel HW number. +3846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...). +3847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from lowest channel number to +3849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * highest channel number). +3850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerChannels()". +3852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +3853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +3854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength +3859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SequencerNbRanks This parameter can be one of the following values: +3861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE +3862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS +3863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS +3864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS +3865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS +3866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS +3867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS +3868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS +3869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS +3870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS +3871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS +3872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS +3873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS +3874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS +3875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS + ARM GAS /tmp/cc3JIfda.s page 70 + + +3876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS +3877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks) +3880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks); +3882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular sequencer length and scan direction. +3886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC group regular sequencer features: +3887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer fully configurable +3888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerRanks()" available): +3889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are configurable. +3891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function retrieves: +3892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +3893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +3895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerRanks()". +3897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - For devices with sequencer not fully configurable +3898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (function "LL_ADC_REG_SetSequencerChannels()" available): +3899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer length and each rank affectation to a channel +3900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are defined by channel number. +3901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function retrieves: +3902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence is +3903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * defined by number of channels set in the sequence, +3904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * rank of each channel is fixed by channel HW number. +3905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...). +3906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +3907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from lowest channel number to +3908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * highest channel number). +3909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Sequencer ranks are selected using +3910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function "LL_ADC_REG_SetSequencerChannels()". +3911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +3912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +3913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 L LL_ADC_REG_GetSequencerLength +3914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE +3917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS +3918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS +3919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS +3920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS +3921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS +3922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS +3923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS +3924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS +3925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS +3926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS +3927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS +3928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS +3929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS +3930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS +3931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS +3932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + ARM GAS /tmp/cc3JIfda.s page 71 + + +3933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx) +3934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L)); +3936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular sequencer discontinuous mode: +3940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +3941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +3942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group regular +3943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * continuous mode and sequencer discontinuous mode. +3944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC auto-injected mode +3945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and ADC group regular sequencer discontinuous mode. +3946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +3947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +3948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +3949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +3950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DISCEN LL_ADC_REG_SetSequencerDiscont\n +3951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DISCNUM LL_ADC_REG_SetSequencerDiscont +3952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SeqDiscont This parameter can be one of the following values: +3954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE +3955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK +3956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS +3957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS +3958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS +3959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS +3960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS +3961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS +3962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS +3963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +3964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont) +3966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +3967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM, SeqDiscont); +3968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular sequencer discontinuous mode: +3972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +3973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +3974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DISCEN LL_ADC_REG_GetSequencerDiscont\n +3975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DISCNUM LL_ADC_REG_GetSequencerDiscont +3976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +3977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +3978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE +3979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK +3980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS +3981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS +3982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS +3983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS +3984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS +3985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS +3986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS +3987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +3988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx) +3989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/cc3JIfda.s page 72 + + +3990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM)); +3991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +3992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +3993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +3994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular sequence: channel on the selected +3995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan sequence rank. +3996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function performs configuration of: +3997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Channels ordering into each rank of scan sequence: +3998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever channel can be placed into whatever rank. +3999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, ADC group regular sequencer is +4000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * fully configurable: sequencer length and each rank +4001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * affectation to a channel are configurable. +4002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to description of function @ref LL_ADC_REG_SetSequencerLength(). +4003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, to measure internal channels (VrefInt, +4006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TempSensor, ...), measurement paths to internal channels must be +4007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled separately. +4008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). +4009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +4013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 SQ1 LL_ADC_REG_SetSequencerRanks\n +4014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ2 LL_ADC_REG_SetSequencerRanks\n +4015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ3 LL_ADC_REG_SetSequencerRanks\n +4016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ4 LL_ADC_REG_SetSequencerRanks\n +4017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ5 LL_ADC_REG_SetSequencerRanks\n +4018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ6 LL_ADC_REG_SetSequencerRanks\n +4019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n +4020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n +4021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n +4022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ10 LL_ADC_REG_SetSequencerRanks\n +4023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ11 LL_ADC_REG_SetSequencerRanks\n +4024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ12 LL_ADC_REG_SetSequencerRanks\n +4025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ13 LL_ADC_REG_SetSequencerRanks\n +4026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ14 LL_ADC_REG_SetSequencerRanks\n +4027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ15 LL_ADC_REG_SetSequencerRanks\n +4028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ16 LL_ADC_REG_SetSequencerRanks +4029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_1 +4032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_2 +4033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_3 +4034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_4 +4035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_5 +4036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_6 +4037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_7 +4038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_8 +4039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_9 +4040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_10 +4041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_11 +4042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_12 +4043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_13 +4044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_14 +4045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_15 +4046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_16 + ARM GAS /tmp/cc3JIfda.s page 73 + + +4047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +4048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channe +4092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "Channel" with bits position */ +4094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register and register position depending on parameter "Rank". */ +4095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "Rank" and "Channel" are used with masks because containing */ +4096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* other bits reserved for other purpose. */ +4097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> A +4098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +4100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK), +4101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Ra +4102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/cc3JIfda.s page 74 + + +4104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular sequence: channel on the selected +4106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan sequence rank. +4107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, ADC group regular sequencer is +4108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * fully configurable: sequencer length and each rank +4109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * affectation to a channel are configurable. +4110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to description of function @ref LL_ADC_REG_SetSequencerLength(). +4111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +4114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +4115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +4116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +4117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +4118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +4120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +4121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +4122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +4123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SQR1 SQ1 LL_ADC_REG_GetSequencerRanks\n +4125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ2 LL_ADC_REG_GetSequencerRanks\n +4126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ3 LL_ADC_REG_GetSequencerRanks\n +4127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR1 SQ4 LL_ADC_REG_GetSequencerRanks\n +4128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ5 LL_ADC_REG_GetSequencerRanks\n +4129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ6 LL_ADC_REG_GetSequencerRanks\n +4130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n +4131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n +4132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n +4133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ10 LL_ADC_REG_GetSequencerRanks\n +4134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ11 LL_ADC_REG_GetSequencerRanks\n +4135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ12 LL_ADC_REG_GetSequencerRanks\n +4136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ13 LL_ADC_REG_GetSequencerRanks\n +4137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR3 SQ14 LL_ADC_REG_GetSequencerRanks\n +4138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ15 LL_ADC_REG_GetSequencerRanks\n +4139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SQR4 SQ16 LL_ADC_REG_GetSequencerRanks +4140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_1 +4143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_2 +4144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_3 +4145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_4 +4146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_5 +4147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_6 +4148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_7 +4149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_8 +4150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_9 +4151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_10 +4152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_11 +4153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_12 +4154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_13 +4155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_14 +4156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_15 +4157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_RANK_16 +4158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) + ARM GAS /tmp/cc3JIfda.s page 75 + + +4161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +4201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +4202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +4203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank) +4205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, ((Rank & ADC_REG_SQRX_REGOFFSET_MASK +4207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)((READ_BIT(*preg, +4209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MA +4210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS +4211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +4212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC continuous conversion mode on ADC group regular. +4216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC continuous conversion mode: +4217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - single mode: one conversion per trigger + ARM GAS /tmp/cc3JIfda.s page 76 + + +4218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode: after the first trigger, following +4219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversions launched successively automatically. +4220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group regular +4221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * continuous mode and sequencer discontinuous mode. +4222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +4226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR CONT LL_ADC_REG_SetContinuousMode +4227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Continuous This parameter can be one of the following values: +4229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_SINGLE +4230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_CONTINUOUS +4231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous) +4234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_CONT, Continuous); +4236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC continuous conversion mode on ADC group regular. +4240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Description of ADC continuous conversion mode: +4241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - single mode: one conversion per trigger +4242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode: after the first trigger, following +4243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * conversions launched successively automatically. +4244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR CONT LL_ADC_REG_GetContinuousMode +4245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_SINGLE +4248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_CONV_CONTINUOUS +4249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx) +4251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_CONT)); +4253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular conversion data transfer: no transfer or +4257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * transfer by DMA, and DMA requests mode. +4258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If transfer by DMA selected, specifies the DMA requests +4259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode: +4260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +4261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +4262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +4263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +4264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +4265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +4266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +4267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +4268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +4269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +4270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +4271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +4272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). +4273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with several ADC instances: ADC multimode DMA +4274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings are available using function @ref LL_ADC_SetMultiDMATransfer(). + ARM GAS /tmp/cc3JIfda.s page 77 + + +4275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To configure DMA source address (peripheral address), +4276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_DMA_GetRegAddr(). +4277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DMAEN LL_ADC_REG_SetDMATransfer\n +4282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DMACFG LL_ADC_REG_SetDMATransfer +4283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param DMATransfer This parameter can be one of the following values: +4285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE +4286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED +4287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED +4288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer) +4291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG, DMATransfer); +4293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data transfer: no transfer or +4297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * transfer by DMA, and DMA requests mode. +4298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If transfer by DMA selected, specifies the DMA requests +4299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode: +4300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +4301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +4302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +4303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +4304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +4305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +4306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +4307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +4308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +4309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +4310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +4311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +4312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). +4313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with several ADC instances: ADC multimode DMA +4314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * settings are available using function @ref LL_ADC_GetMultiDMATransfer(). +4315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To configure DMA source address (peripheral address), +4316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_DMA_GetRegAddr(). +4317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR DMAEN LL_ADC_REG_GetDMATransfer\n +4318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR DMACFG LL_ADC_REG_GetDMATransfer +4319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE +4322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED +4323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED +4324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx) +4326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG)); +4328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group regular behavior in case of overrun: + ARM GAS /tmp/cc3JIfda.s page 78 + + +4332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * data preserved or overwritten. +4333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Compatibility with devices without feature overrun: +4334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * other devices without this feature have a behavior +4335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * equivalent to data overwritten. +4336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * The default setting of overrun is data preserved. +4337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, for compatibility with all devices, parameter +4338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * overrun should be set to data overwritten. +4339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +4343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR OVRMOD LL_ADC_REG_SetOverrun +4344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Overrun This parameter can be one of the following values: +4346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED +4347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN +4348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_SetOverrun(ADC_TypeDef *ADCx, uint32_t Overrun) +4351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_OVRMOD, Overrun); +4353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular behavior in case of overrun: +4357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * data preserved or overwritten. +4358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR OVRMOD LL_ADC_REG_GetOverrun +4359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED +4362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN +4363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_GetOverrun(ADC_TypeDef *ADCx) +4365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_OVRMOD)); +4367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +4371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: g +4374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +4375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected conversion trigger source: +4379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +4380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +4381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting trigger source to external trigger +4382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * also set trigger polarity to rising edge +4383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (default setting for compatibility with some ADC on other +4384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * STM32 families having this setting set by HW default value). +4385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In case of need to modify trigger edge, use +4386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * function @ref LL_ADC_INJ_SetTriggerEdge(). +4387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +4388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. + ARM GAS /tmp/cc3JIfda.s page 79 + + +4389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTSEL LL_ADC_INJ_SetTriggerSource\n +4394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JEXTEN LL_ADC_INJ_SetTriggerSource +4395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TriggerSource This parameter can be one of the following values: +4397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE +4398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO +4399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 +4400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) +4401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 +4402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO +4403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) +4404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO +4405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) +4406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) +4407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) +4408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO +4409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) +4410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) +4411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO +4412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO +4413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO +4414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 +4415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) +4416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 +4417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO +4418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) +4419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO +4420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 +4421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) +4422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) +4423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) +4424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 +4425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) +4426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 +4427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 +4428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 +4429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 +4430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 +4431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 +4432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 +4433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) +4434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) +4435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT +4436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +4438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +4439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +4440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource) +4443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN, TriggerSource); +4445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 80 + + +4446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger source: +4449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or from external peripheral (timer event, +4450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external interrupt line). +4451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note To determine whether group injected trigger source is +4452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal (SW start) or external, without detail +4453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of which peripheral is selected as external trigger, +4454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (equivalent to +4455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)") +4456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart. +4457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Availability of parameters of trigger sources from timer +4458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * depends on timers availability on the selected device. +4459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTSEL LL_ADC_INJ_GetTriggerSource\n +4460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JEXTEN LL_ADC_INJ_GetTriggerSource +4461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE +4464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO +4465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 +4466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) +4467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 +4468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO +4469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) +4470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO +4471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) +4472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) +4473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) +4474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO +4475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) +4476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) +4477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO +4478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO +4479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO +4480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 +4481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) +4482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 +4483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO +4484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) +4485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO +4486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 +4487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) +4488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) +4489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) +4490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 +4491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) +4492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 +4493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 +4494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 +4495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 +4496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 +4497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 +4498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 +4499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) +4500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) +4501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT +4502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * + ARM GAS /tmp/cc3JIfda.s page 81 + + +4503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +4504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +4505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +4506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx) +4508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t TriggerSource = READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN); +4510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */ +4512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* corresponding to ADC_JSQR_JEXTEN {0; 1; 2; 3}. */ +4513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ShiftJexten = ((TriggerSource & ADC_JSQR_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - +4514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bitfield corresponding to ADC_JSQR_JEXTEN and ADC_JSQR_JEXTSEL */ +4516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to match with triggers literals definition. */ +4517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((TriggerSource +4518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & (ADC_INJ_TRIG_SOURCE_MASK >> ShiftJexten) & ADC_JSQR_JEXTSEL) +4519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ((ADC_INJ_TRIG_EDGE_MASK >> ShiftJexten) & ADC_JSQR_JEXTEN) +4520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +4521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger source internal (SW start) +4525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** or external +4526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of group injected trigger source set to external trigger, +4527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * to determine which peripheral is selected as external trigger, +4528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_INJ_GetTriggerSource. +4529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart +4530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value "0" if trigger source external trigger +4532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Value "1" if trigger source SW start. +4533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx) +4535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN)) ? +4537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected conversion trigger polarity. +4541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Applicable only for trigger source set to external trigger. +4542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTEN LL_ADC_INJ_SetTriggerEdge +4547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ExternalTriggerEdge This parameter can be one of the following values: +4549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING +4550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING +4551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING +4552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge) +4555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTEN, ExternalTriggerEdge); +4557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/cc3JIfda.s page 82 + + +4560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger polarity. +4561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Applicable only for trigger source set to external trigger. +4562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTEN LL_ADC_INJ_GetTriggerEdge +4563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING +4566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING +4567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING +4568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx) +4570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN)); +4572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected sequencer length and scan direction. +4576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function performs configuration of: +4577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +4578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +4579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +4580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +4581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +4582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength +4587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SequencerNbRanks This parameter can be one of the following values: +4589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE +4590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS +4591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS +4592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS +4593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks) +4596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks); +4598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected sequencer length and scan direction. +4602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function retrieves: +4603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence length: Number of ranks in the scan sequence. +4604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Sequence direction: Unless specified in parameters, sequencer +4605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * scan direction is forward (from rank 1 to rank n). +4606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Sequencer disabled is equivalent to sequencer of 1 rank: +4607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion on only 1 channel. +4608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength +4609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE +4612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS +4613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS +4614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS +4615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx) + ARM GAS /tmp/cc3JIfda.s page 83 + + +4617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL)); +4619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected sequencer discontinuous mode: +4623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +4624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +4625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group injected +4626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * auto-injected mode and sequencer discontinuous mode. +4627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JDISCEN LL_ADC_INJ_SetSequencerDiscont +4628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SeqDiscont This parameter can be one of the following values: +4630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE +4631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK +4632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont) +4635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_JDISCEN, SeqDiscont); +4637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected sequencer discontinuous mode: +4641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence subdivided and scan conversions interrupted every selected +4642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * number of ranks. +4643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JDISCEN LL_ADC_INJ_GetSequencerDiscont +4644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE +4647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK +4648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx) +4650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JDISCEN)); +4652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected sequence: channel on the selected +4656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence rank. +4657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, to measure internal channels (VrefInt, +4660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TempSensor, ...), measurement paths to internal channels must be +4661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled separately. +4662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). +4663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +4664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +4665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n +4670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n +4671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n +4672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks +4673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance + ARM GAS /tmp/cc3JIfda.s page 84 + + +4674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +4676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +4677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +4678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +4679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +4680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +4707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channe +4724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "Channel" with bits position */ +4726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register depending on parameter "Rank". */ +4727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "Rank" and "Channel" are used with masks because containing */ +4728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* other bits reserved for other purpose. */ +4729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, +4730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Rank & ADC_INJ + ARM GAS /tmp/cc3JIfda.s page 85 + + +4731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Ra +4732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected sequence: channel on the selected +4736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequence rank. +4737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Depending on devices and packages, some channels may not be available. +4738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for channels availability. +4739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +4740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +4741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +4742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +4743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +4744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +4746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +4747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +4748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +4749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +4750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JSQ1 LL_ADC_INJ_GetSequencerRanks\n +4751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ2 LL_ADC_INJ_GetSequencerRanks\n +4752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ3 LL_ADC_INJ_GetSequencerRanks\n +4753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ4 LL_ADC_INJ_GetSequencerRanks +4754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank This parameter can be one of the following values: +4756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_1 +4757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_2 +4758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_3 +4759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_RANK_4 +4760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +4762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +4763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +4764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +4765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +4766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +4767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +4768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +4769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +4770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +4771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +4772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +4773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +4774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +4775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +4776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +4777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +4778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +4779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +4780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +4781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +4782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +4783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +4784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +4785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +4786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +4787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + ARM GAS /tmp/cc3JIfda.s page 86 + + +4788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +4789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +4790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +4791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +4792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +4793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +4794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +4795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +4796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +4797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +4798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +4799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +4800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +4801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +4802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1, 2, 3, 4, 5, 7) For ADC channel read back from ADC register, +4803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * comparison with internal channel parameter to be done +4804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(). +4805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank) +4807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)((READ_BIT(ADCx->JSQR, +4809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) < +4810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS +4811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +4812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected conversion trigger: +4816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * independent or from ADC group regular. +4817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This mode can be used to extend number of data registers +4818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * updated after one ADC conversion trigger and with data +4819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * permanently kept (not erased by successive conversions of scan of +4820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC sequencer ranks), up to 5 data registers: +4821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 1 data register on ADC group regular, 4 data registers +4822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on ADC group injected. +4823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC group injected injected trigger source is set to an +4824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * external trigger, this feature must be must be set to +4825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * independent trigger. +4826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC group injected automatic trigger is compliant only with +4827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * group injected trigger source set to SW start, without any +4828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * further action on ADC group injected conversion start or stop: +4829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * in this case, ADC group injected is controlled only +4830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * from ADC group regular. +4831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note It is not possible to enable both ADC group injected +4832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * auto-injected mode and sequencer discontinuous mode. +4833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JAUTO LL_ADC_INJ_SetTrigAuto +4838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TrigAuto This parameter can be one of the following values: +4840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT +4841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR +4842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto) + ARM GAS /tmp/cc3JIfda.s page 87 + + +4845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_JAUTO, TrigAuto); +4847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion trigger: +4851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * independent or from ADC group regular. +4852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JAUTO LL_ADC_INJ_GetTrigAuto +4853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT +4856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR +4857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx) +4859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JAUTO)); +4861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC group injected contexts queue mode. +4865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note A context is a setting of group injected sequencer: +4866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - group injected trigger +4867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer length +4868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer ranks +4869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If contexts queue is disabled: +4870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - only 1 sequence can be configured +4871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and is active perpetually. +4872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If contexts queue is enabled: +4873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - up to 2 contexts can be queued +4874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * and are checked in and out as a FIFO stack (first-in, first-out). +4875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If a new context is set when queues is full, error is triggered +4876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * by interruption "Injected Queue Overflow". +4877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Two behaviors are possible when all contexts have been processed: +4878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the contexts queue can maintain the last context active perpetually +4879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or can be empty and injected group triggers are disabled. +4880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Triggers can be only external (not internal SW start) +4881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Caution: The sequence must be fully configured in one time +4882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (one write of register JSQR makes a check-in of a new context +4883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * into the queue). +4884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore functions to set separately injected trigger and +4885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sequencer channels cannot be used, register JSQR must be set +4886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using function @ref LL_ADC_INJ_ConfigQueueContext(). +4887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This parameter can be modified only when no conversion is on going +4888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note A modification of the context mode (bit JQDIS) causes the contexts +4890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * queue to be flushed and the register JSQR is cleared. +4891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +4894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +4895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JQM LL_ADC_INJ_SetQueueMode\n +4896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JQDIS LL_ADC_INJ_SetQueueMode +4897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param QueueMode This parameter can be one of the following values: +4899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_DISABLE +4900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE +4901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY + ARM GAS /tmp/cc3JIfda.s page 88 + + +4902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +4903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_SetQueueMode(ADC_TypeDef *ADCx, uint32_t QueueMode) +4905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS, QueueMode); +4907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected context queue mode. +4911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR JQM LL_ADC_INJ_GetQueueMode\n +4912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JQDIS LL_ADC_INJ_GetQueueMode +4913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +4914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +4915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_DISABLE +4916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE +4917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY +4918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +4919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_GetQueueMode(ADC_TypeDef *ADCx) +4920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +4921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS)); +4922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +4923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +4924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +4925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set one context on ADC group injected that will be checked in +4926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * contexts queue. +4927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note A context is a setting of group injected sequencer: +4928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - group injected trigger +4929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer length +4930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - sequencer ranks +4931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function is intended to be used when contexts queue is enabled, +4932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * because the sequence must be fully configured in one time +4933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (functions to set separately injected trigger and sequencer channels +4934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * cannot be used): +4935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to function @ref LL_ADC_INJ_SetQueueMode(). +4936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In the contexts queue, only the active context can be read. +4937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * The parameters of this function can be read using functions: +4938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_GetTriggerSource() +4939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_GetTriggerEdge() +4940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_GetSequencerRanks() +4941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, to measure internal channels (VrefInt, +4942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TempSensor, ...), measurement paths to internal channels must be +4943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * enabled separately. +4944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This can be done using function @ref LL_ADC_SetCommonPathInternalCh(). +4945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some fast channels are available: fast analog inputs +4946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * coming from GPIO pads (ADC_IN1..5). +4947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +4948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +4949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must not be disabled. Can be enabled with or without conversion +4950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on going on either groups regular or injected. +4951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll JSQR JEXTSEL LL_ADC_INJ_ConfigQueueContext\n +4952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JEXTEN LL_ADC_INJ_ConfigQueueContext\n +4953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JL LL_ADC_INJ_ConfigQueueContext\n +4954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ1 LL_ADC_INJ_ConfigQueueContext\n +4955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ2 LL_ADC_INJ_ConfigQueueContext\n +4956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ3 LL_ADC_INJ_ConfigQueueContext\n +4957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * JSQR JSQ4 LL_ADC_INJ_ConfigQueueContext +4958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance + ARM GAS /tmp/cc3JIfda.s page 89 + + +4959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param TriggerSource This parameter can be one of the following values: +4960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE +4961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO +4962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 +4963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3 (2) +4964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4 +4965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO +4966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (1) +4967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO +4968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (1) +4969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (1) +4970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (1) +4971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO +4972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (2) +4973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4 (2) +4974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO +4975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO +4976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO +4977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 +4978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2 (2) +4979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4 +4980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO +4981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM16_CH1 (1) +4982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO +4983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2 +4984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (2) +4985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4 (1) +4986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG1 (2) +4987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 +4988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG3 (2) +4989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 +4990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG5 +4991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG6 +4992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG7 +4993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG8 +4994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG9 +4995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG10 +4996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE3 (2) +4997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (1) +4998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM_OUT +4999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4 series, parameter not available on all ADC instances: ADC1, ADC2.\n +5001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4 series, parameter not available on all ADC instances: ADC3, ADC4, ADC5. +5002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, all ADCx are not available on all devices. Refer to device da +5003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ExternalTriggerEdge This parameter can be one of the following values: +5004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING +5005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING +5006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING +5007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Note: This parameter is discarded in case of SW start: +5009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * parameter "TriggerSource" set to "LL_ADC_INJ_TRIG_SOFTWARE". +5010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SequencerNbRanks This parameter can be one of the following values: +5011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE +5012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS +5013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS +5014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS +5015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank1_Channel This parameter can be one of the following values: + ARM GAS /tmp/cc3JIfda.s page 90 + + +5016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank2_Channel This parameter can be one of the following values: +5058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 + ARM GAS /tmp/cc3JIfda.s page 91 + + +5073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank3_Channel This parameter can be one of the following values: +5100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) + ARM GAS /tmp/cc3JIfda.s page 92 + + +5130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Rank4_Channel This parameter can be one of the following values: +5142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_ConfigQueueContext(ADC_TypeDef *ADCx, +5186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t TriggerSource, + ARM GAS /tmp/cc3JIfda.s page 93 + + +5187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t ExternalTriggerEdge, +5188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t SequencerNbRanks, +5189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank1_Channel, +5190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank2_Channel, +5191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank3_Channel, +5192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t Rank4_Channel) +5193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "Rankx_Channel" with bits position */ +5195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register depending on literal "LL_ADC_INJ_RANK_x". */ +5196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "Rankx_Channel" and "LL_ADC_INJ_RANK_x" are used with masks */ +5197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* because containing other bits reserved for other purpose. */ +5198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* If parameter "TriggerSource" is set to SW start, then parameter */ +5199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "ExternalTriggerEdge" is discarded. */ +5200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t is_trigger_not_sw = (uint32_t)((TriggerSource != LL_ADC_INJ_TRIG_SOFTWARE) ? 1UL : 0UL); +5201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->JSQR, +5202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JEXTSEL | +5203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JEXTEN | +5204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ4 | +5205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ3 | +5206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ2 | +5207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JSQ1 | +5208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_JSQR_JL, +5209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (TriggerSource & ADC_JSQR_JEXTSEL) | +5210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (ExternalTriggerEdge * (is_trigger_not_sw)) | +5211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank4_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank3_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank2_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (((Rank1_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) +5215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SequencerNbRanks +5216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +5221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels +5224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +5225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set sampling time of the selected ADC channel +5229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Unit: ADC clock cycles. +5230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this device, sampling time is on channel scope: independently +5231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of channel mapped on ADC group regular or injected. +5232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of internal channel (VrefInt, TempSensor, ...) to be +5233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * converted: +5234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * sampling time constraints must be respected (sampling time can be +5235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * adjusted in function of ADC clock frequency and sampling time +5236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * setting). +5237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet for timings values (parameters TS_vrefint, +5238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TS_temp, ...). +5239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Conversion time is the addition of sampling time and processing time. +5240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, ADC processing time is: +5241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 12.5 ADC clock cycles at ADC resolution 12 bits +5242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 10.5 ADC clock cycles at ADC resolution 10 bits +5243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 8.5 ADC clock cycles at ADC resolution 8 bits + ARM GAS /tmp/cc3JIfda.s page 94 + + +5244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 6.5 ADC clock cycles at ADC resolution 6 bits +5245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC conversion of internal channel (VrefInt, +5246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temperature sensor, ...), a sampling time minimum value +5247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is required. +5248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet. +5249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +5252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +5253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMP0 LL_ADC_SetChannelSamplingTime\n +5254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP1 LL_ADC_SetChannelSamplingTime\n +5255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP2 LL_ADC_SetChannelSamplingTime\n +5256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP3 LL_ADC_SetChannelSamplingTime\n +5257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP4 LL_ADC_SetChannelSamplingTime\n +5258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP5 LL_ADC_SetChannelSamplingTime\n +5259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP6 LL_ADC_SetChannelSamplingTime\n +5260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP7 LL_ADC_SetChannelSamplingTime\n +5261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP8 LL_ADC_SetChannelSamplingTime\n +5262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP9 LL_ADC_SetChannelSamplingTime\n +5263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP10 LL_ADC_SetChannelSamplingTime\n +5264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP11 LL_ADC_SetChannelSamplingTime\n +5265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP12 LL_ADC_SetChannelSamplingTime\n +5266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP13 LL_ADC_SetChannelSamplingTime\n +5267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP14 LL_ADC_SetChannelSamplingTime\n +5268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP15 LL_ADC_SetChannelSamplingTime\n +5269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP16 LL_ADC_SetChannelSamplingTime\n +5270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP17 LL_ADC_SetChannelSamplingTime\n +5271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP18 LL_ADC_SetChannelSamplingTime +5272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +5274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 +5292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) + ARM GAS /tmp/cc3JIfda.s page 95 + + +5301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SamplingTime This parameter can be one of the following values: +5316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1) +5317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5 +5318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5 +5319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5 +5320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5 +5321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5 +5322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5 +5323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5 +5324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On some devices, ADC sampling time 2.5 ADC clock cycles +5326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can be replaced by 3.5 ADC clock cycles. +5327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). +5328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t Sa +5331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 62 .loc 2 5331 1 is_stmt 1 view -0 + 63 .cfi_startproc + 64 @ args = 0, pretend = 0, frame = 0 + 65 @ frame_needed = 0, uses_anonymous_args = 0 + 66 @ link register save eliminated. + 67 .loc 2 5331 1 is_stmt 0 view .LVU5 + 68 0000 10B4 push {r4} + 69 .LCFI0: + 70 .cfi_def_cfa_offset 4 + 71 .cfi_offset 4, -4 +5332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "SamplingTime" with bits position */ +5333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register and register position depending on parameter "Channel". */ +5334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameter "Channel" is used with masks because containing */ +5335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* other bits reserved for other purpose. */ +5336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_M + 72 .loc 2 5336 3 is_stmt 1 view .LVU6 + 73 .loc 2 5336 25 is_stmt 0 view .LVU7 + 74 0002 1430 adds r0, r0, #20 + 75 .LVL3: + 76 .loc 2 5336 25 view .LVU8 + 77 0004 4B0E lsrs r3, r1, #25 + 78 0006 9B00 lsls r3, r3, #2 + 79 0008 03F00403 and r3, r3, #4 + 80 .LVL4: +5337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, + ARM GAS /tmp/cc3JIfda.s page 96 + + + 81 .loc 2 5338 3 is_stmt 1 view .LVU9 + 82 000c C458 ldr r4, [r0, r3] + 83 000e C1F30451 ubfx r1, r1, #20, #5 + 84 .LVL5: + 85 .loc 2 5338 3 is_stmt 0 view .LVU10 + 86 0012 4FF0070C mov ip, #7 + 87 0016 0CFA01FC lsl ip, ip, r1 + 88 001a 24EA0C0C bic ip, r4, ip + 89 001e 8A40 lsls r2, r2, r1 + 90 .LVL6: + 91 .loc 2 5338 3 view .LVU11 + 92 0020 4CEA0202 orr r2, ip, r2 + 93 0024 C250 str r2, [r0, r3] +5339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BIT +5340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SamplingTime << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BIT +5341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 94 .loc 2 5341 1 view .LVU12 + 95 0026 5DF8044B ldr r4, [sp], #4 + 96 .LCFI1: + 97 .cfi_restore 4 + 98 .cfi_def_cfa_offset 0 + 99 002a 7047 bx lr + 100 .cfi_endproc + 101 .LFE195: + 103 .section .text.HAL_ADCEx_Calibration_Start,"ax",%progbits + 104 .align 1 + 105 .global HAL_ADCEx_Calibration_Start + 106 .syntax unified + 107 .thumb + 108 .thumb_func + 110 HAL_ADCEx_Calibration_Start: + 111 .LVL7: + 112 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @file stm32g4xx_hal_adc_ex.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief This file provides firmware functions to manage the following + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * functionalities of the Analog to Digital Converter (ADC) + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * + Peripheral Control functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Other functions (generic functions) are available in file + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * "stm32g4xx_hal_adc.c". + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ****************************************************************************** + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @attention + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Copyright (c) 2019 STMicroelectronics. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * All rights reserved. + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * This software is licensed under terms that can be found in the LICENSE file + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * in the root directory of this software component. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ****************************************************************************** + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** @verbatim + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** [..] + ARM GAS /tmp/cc3JIfda.s page 97 + + + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (@) Sections "ADC peripheral features" and "How to use this driver" are + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** available in file of generic functions "stm32g4xx_hal_adc.c". + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** [..] + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** @endverbatim + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ****************************************************************************** + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Includes ------------------------------------------------------------------*/ + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #include "stm32g4xx_hal.h" + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @{ + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** @defgroup ADCEx ADCEx + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief ADC Extended HAL module driver + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @{ + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #ifdef HAL_ADC_MODULE_ENABLED + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Private typedef -----------------------------------------------------------*/ + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Private define ------------------------------------------------------------*/ + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** @defgroup ADCEx_Private_Constants ADC Extended Private Constants + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @{ + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #define ADC_JSQR_FIELDS ((ADC_JSQR_JL | ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN |\ + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_JSQR_JSQ1 | ADC_JSQR_JSQ2 |\ + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_JSQR_JSQ3 | ADC_JSQR_JSQ4 )) /*!< ADC_JSQR fields of parameters tha + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Fixed timeout value for ADC calibration. */ + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Values defined to be higher than worst cases: low clock frequency, */ + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* maximum prescalers. */ + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Ex of profile low frequency : f_ADC at f_CPU/3968 (minimum value */ + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* considering both possible ADC clocking scheme: */ + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - ADC clock from synchronous clock with AHB prescaler 512, */ + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ADC prescaler 4. */ + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Ratio max = 512 *4 = 2048 */ + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - ADC clock from asynchronous clock (PLLP) with prescaler 256. */ + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Highest CPU clock PLL (PLLR). */ + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Ratio max = PLLRmax /PPLPmin * 256 = (VCO/2) / (VCO/31) * 256 */ + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* = 3968 ) */ + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Calibration_time MAX = 81 / f_ADC */ + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* = 81 / (f_CPU/3938) = 318978 CPU cycles */ + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #define ADC_CALIBRATION_TIMEOUT (318978UL) /*!< ADC calibration time-out value (unit: CPU + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @} + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Private macro -------------------------------------------------------------*/ + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Private variables ---------------------------------------------------------*/ + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Private function prototypes -----------------------------------------------*/ + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Exported functions --------------------------------------------------------*/ + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + ARM GAS /tmp/cc3JIfda.s page 98 + + + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** @defgroup ADCEx_Exported_Functions ADC Extended Exported Functions + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @{ + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** @defgroup ADCEx_Exported_Functions_Group1 Extended Input and Output operation functions + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Extended IO operation functions + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** @verbatim + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** =============================================================================== + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ##### IO operation functions ##### + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** =============================================================================== + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** [..] This section provides functions allowing to: + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Perform the ADC self-calibration for single or differential ending. + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Get calibration factors for single or differential ending. + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Set calibration factors for single or differential ending. + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Start conversion of ADC group injected. + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Stop conversion of ADC group injected. + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Poll for conversion complete on ADC group injected. + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Get result of ADC group injected channel conversion. + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Start conversion of ADC group injected and enable interruptions. + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Stop conversion of ADC group injected and disable interruptions. + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) When multimode feature is available, start multimode and enable DMA transfer. + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Stop multimode and disable ADC DMA transfer. + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Get result of multimode conversion. + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** @endverbatim + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @{ + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Perform an ADC automatic self-calibration + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Calibration prerequisite: ADC must be disabled (execute this + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * function before HAL_ADC_Start() or after HAL_ADC_Stop() ). + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param SingleDiff Selection of single-ended or differential input + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * This parameter can be one of the following values: + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_SINGLE_ENDED Channel in mode input single ended + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_DIFFERENTIAL_ENDED Channel in mode input differential ended + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc, uint32_t SingleDiff) + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 113 .loc 1 126 1 is_stmt 1 view -0 + 114 .cfi_startproc + 115 @ args = 0, pretend = 0, frame = 8 + 116 @ frame_needed = 0, uses_anonymous_args = 0 + 117 .loc 1 126 1 is_stmt 0 view .LVU14 + 118 0000 30B5 push {r4, r5, lr} + 119 .LCFI2: + 120 .cfi_def_cfa_offset 12 + 121 .cfi_offset 4, -12 + 122 .cfi_offset 5, -8 + 123 .cfi_offset 14, -4 + 124 0002 83B0 sub sp, sp, #12 + ARM GAS /tmp/cc3JIfda.s page 99 + + + 125 .LCFI3: + 126 .cfi_def_cfa_offset 24 + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 127 .loc 1 127 3 is_stmt 1 view .LVU15 + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __IO uint32_t wait_loop_index = 0UL; + 128 .loc 1 128 3 view .LVU16 + 129 .loc 1 128 17 is_stmt 0 view .LVU17 + 130 0004 0023 movs r3, #0 + 131 0006 0193 str r3, [sp, #4] + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 132 .loc 1 131 3 is_stmt 1 view .LVU18 + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_SINGLE_DIFFERENTIAL(SingleDiff)); + 133 .loc 1 132 3 view .LVU19 + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 134 .loc 1 135 3 view .LVU20 + 135 .loc 1 135 3 view .LVU21 + 136 0008 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 137 000c 012B cmp r3, #1 + 138 000e 41D0 beq .L11 + 139 0010 0446 mov r4, r0 + 140 0012 0D46 mov r5, r1 + 141 .loc 1 135 3 discriminator 2 view .LVU22 + 142 0014 0123 movs r3, #1 + 143 0016 80F85830 strb r3, [r0, #88] + 144 .loc 1 135 3 discriminator 2 view .LVU23 + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Calibration prerequisite: ADC must be disabled. */ + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable the ADC (if not already disabled) */ + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); + 145 .loc 1 140 3 discriminator 2 view .LVU24 + 146 .loc 1 140 20 is_stmt 0 discriminator 2 view .LVU25 + 147 001a FFF7FEFF bl ADC_Disable + 148 .LVL8: + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if ADC is effectively disabled */ + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 149 .loc 1 143 3 is_stmt 1 discriminator 2 view .LVU26 + 150 .loc 1 143 6 is_stmt 0 discriminator 2 view .LVU27 + 151 001e 80BB cbnz r0, .L6 + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 152 .loc 1 146 5 is_stmt 1 view .LVU28 + 153 0020 E36D ldr r3, [r4, #92] + 154 0022 23F48853 bic r3, r3, #4352 + 155 0026 23F00203 bic r3, r3, #2 + 156 002a 43F00203 orr r3, r3, #2 + 157 002e E365 str r3, [r4, #92] + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_BUSY_INTERNAL); + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start ADC calibration in mode single-ended or differential */ + ARM GAS /tmp/cc3JIfda.s page 100 + + + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_StartCalibration(hadc->Instance, SingleDiff); + 158 .loc 1 151 5 view .LVU29 + 159 0030 2268 ldr r2, [r4] + 160 .LVL9: + 161 .LBB284: + 162 .LBI284: +5342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get sampling time of the selected ADC channel +5345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Unit: ADC clock cycles. +5346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this device, sampling time is on channel scope: independently +5347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of channel mapped on ADC group regular or injected. +5348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Conversion time is the addition of sampling time and processing time. +5349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * On this STM32 series, ADC processing time is: +5350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 12.5 ADC clock cycles at ADC resolution 12 bits +5351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 10.5 ADC clock cycles at ADC resolution 10 bits +5352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 8.5 ADC clock cycles at ADC resolution 8 bits +5353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - 6.5 ADC clock cycles at ADC resolution 6 bits +5354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll SMPR1 SMP0 LL_ADC_GetChannelSamplingTime\n +5355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP1 LL_ADC_GetChannelSamplingTime\n +5356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP2 LL_ADC_GetChannelSamplingTime\n +5357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP3 LL_ADC_GetChannelSamplingTime\n +5358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP4 LL_ADC_GetChannelSamplingTime\n +5359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP5 LL_ADC_GetChannelSamplingTime\n +5360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP6 LL_ADC_GetChannelSamplingTime\n +5361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP7 LL_ADC_GetChannelSamplingTime\n +5362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP8 LL_ADC_GetChannelSamplingTime\n +5363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR1 SMP9 LL_ADC_GetChannelSamplingTime\n +5364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP10 LL_ADC_GetChannelSamplingTime\n +5365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP11 LL_ADC_GetChannelSamplingTime\n +5366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP12 LL_ADC_GetChannelSamplingTime\n +5367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP13 LL_ADC_GetChannelSamplingTime\n +5368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP14 LL_ADC_GetChannelSamplingTime\n +5369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP15 LL_ADC_GetChannelSamplingTime\n +5370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP16 LL_ADC_GetChannelSamplingTime\n +5371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP17 LL_ADC_GetChannelSamplingTime\n +5372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * SMPR2 SMP18 LL_ADC_GetChannelSamplingTime +5373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +5375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_0 +5376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 (8) +5377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 (8) +5378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 (8) +5379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 (8) +5380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 (8) +5381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_16 +5392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_17 + ARM GAS /tmp/cc3JIfda.s page 101 + + +5393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_18 +5394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VREFINT (7) +5395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC1 (1) +5396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR_ADC5 (5) +5397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VBAT (6) +5398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1) +5399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2) +5400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC2 (2) +5401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP3_ADC3 (3) +5402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (5) +5403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP5 (5) +5404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_VOPAMP6 (4) +5405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (8) On STM32G4, fast channel allows: 2.5 (sampling) + 12.5 (conversion) = 15 ADC clock +5415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Other channels are slow channels allows: 6.5 (sampling) + 12.5 (conversion) = 19 A +5416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +5417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1) +5418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5 +5419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5 +5420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5 +5421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5 +5422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5 +5423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5 +5424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5 +5425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On some devices, ADC sampling time 2.5 ADC clock cycles +5427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can be replaced by 3.5 ADC clock cycles. +5428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig(). +5429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel) +5431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOF +5433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(*preg, +5435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_ +5436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_P +5437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set mode single-ended or differential input of the selected +5442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +5443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Channel ending is on channel scope: independently of channel mapped +5444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on ADC group regular or injected. +5445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * In differential mode: Differential measurement is carried out +5446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * between the selected channel 'i' (positive input) and +5447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel 'i+1' (negative input). Only channel 'i' has to be +5448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configured, channel 'i+1' is configured automatically. +5449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to Reference Manual to ensure the selected channel is + ARM GAS /tmp/cc3JIfda.s page 102 + + +5450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * available in differential mode. +5451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For example, internal channels (VrefInt, TempSensor, ...) are +5452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * not available in differential mode. +5453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note When configuring a channel 'i' in differential mode, +5454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the channel 'i+1' is not usable separately. +5455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some channels are internally fixed to single-ended inputs +5456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configuration: +5457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC1: Channels 12, 15, 16, 17 and 18 +5458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC2: Channels 15, 17 and 18 +5459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC3: Channels 12, 16, 17 and 18 (1) +5460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC4: Channels 16, 17 and 18 (1) +5461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC5: Channels 2, 3, 4, 16, 17 and 18 (1) +5462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) ADC3/4/5 are not available on all devices, refer to device datasheet +5463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * for more details. +5464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For ADC channels configured in differential mode, both inputs +5465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * should be biased at (Vref+)/2 +/-200mV. +5466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (Vref+ is the analog voltage reference) +5467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +5470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. +5471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...) +5472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DIFSEL DIFSEL LL_ADC_SetChannelSingleDiff +5473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be one of the following values: +5475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 +5476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 +5477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 +5478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 +5479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 +5480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be a combination of the following values: +5491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +5492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +5493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t Sing +5496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Bits for single or differential mode selection for each channel are set */ +5498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to 1 only when the differential mode is selected, and to 0 when the */ +5499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* single mode is selected. */ +5500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (SingleDiff == LL_ADC_DIFFERENTIAL_ENDED) +5502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->DIFSEL, +5504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); +5505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else + ARM GAS /tmp/cc3JIfda.s page 103 + + +5507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->DIFSEL, +5509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); +5510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get mode single-ended or differential input of the selected +5515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC channel. +5516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note When configuring a channel 'i' in differential mode, +5517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the channel 'i+1' is not usable separately. +5518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Therefore, to ensure a channel is configured in single-ended mode, +5519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the configuration of channel itself and the channel 'i-1' must be +5520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * read back (to ensure that the selected channel channel has not been +5521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configured in differential mode by the previous channel). +5522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Refer to Reference Manual to ensure the selected channel is +5523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * available in differential mode. +5524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * For example, internal channels (VrefInt, TempSensor, ...) are +5525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * not available in differential mode. +5526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note When configuring a channel 'i' in differential mode, +5527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the channel 'i+1' is not usable separately. +5528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On STM32G4, some channels are internally fixed to single-ended inputs +5529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * configuration: +5530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC1: Channels 12, 15, 16, 17 and 18 +5531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC2: Channels 15, 17 and 18 +5532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC3: Channels 12, 16, 17 and 18 (1) +5533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC4: Channels 16, 17 and 18 (1) +5534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC5: Channels 2, 3, 4, 16, 17 and 18 (1) +5535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) ADC3/4/5 are not available on all devices, refer to device datasheet +5536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * for more details. +5537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note One or several values can be selected. In this case, the value +5538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * returned is null if all channels are in single ended-mode. +5539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...) +5540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DIFSEL DIFSEL LL_ADC_GetChannelSingleDiff +5541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Channel This parameter can be a combination of the following values: +5543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_1 +5544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_2 +5545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_3 +5546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_4 +5547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_5 +5548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_6 +5549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_7 +5550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_8 +5551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_9 +5552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_10 +5553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_11 +5554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_12 +5555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_13 +5556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_14 +5557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_CHANNEL_15 +5558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: channel in single-ended mode, else: channel in differential mode +5559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel) +5561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->DIFSEL, (Channel & ADC_SINGLEDIFF_CHANNEL_MASK))); +5563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 104 + + +5564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +5567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: an +5570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +5571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog monitored channels: +5575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a single channel, multiple channels or all channels, +5576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on ADC groups regular and-or injected. +5577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Once monitored channels are selected, analog watchdog +5578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled. +5579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of need to define a single channel to monitor +5580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with analog watchdog from sequencer channel definition, +5581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP(). +5582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +5594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +5595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +5596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +5597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +5598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +5599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +5600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +5601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +5602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +5603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +5606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +5607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AWD1CH LL_ADC_SetAnalogWDMonitChannels\n +5608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n +5609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1EN LL_ADC_SetAnalogWDMonitChannels\n +5610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JAWD1EN LL_ADC_SetAnalogWDMonitChannels\n +5611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD2CR AWD2CH LL_ADC_SetAnalogWDMonitChannels\n +5612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD3CR AWD3CH LL_ADC_SetAnalogWDMonitChannels +5613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +5615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +5616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +5617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +5618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDChannelGroup This parameter can be one of the following values: +5619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_DISABLE +5620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) + ARM GAS /tmp/cc3JIfda.s page 105 + + +5621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) +5622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ +5623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) +5624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) +5625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ +5626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) +5627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) +5628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ +5629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) +5630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) +5631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ +5632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) +5633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) +5634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ +5635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) +5636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) +5637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ +5638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) +5639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) +5640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ +5641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) +5642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) +5643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ +5644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) +5645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) +5646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ +5647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) +5648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) +5649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ +5650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) +5651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) +5652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ +5653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) +5654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) +5655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ +5656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) +5657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) +5658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ +5659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) +5660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) +5661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ +5662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) +5663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) +5664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ +5665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) +5666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) +5667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ +5668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) +5669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) +5670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ +5671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) +5672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) +5673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ +5674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) +5675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) +5676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ +5677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) + ARM GAS /tmp/cc3JIfda.s page 106 + + +5678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) +5679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ +5680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0) +5681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0) +5682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ +5683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG (0)(1) +5684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_INJ (0)(1) +5685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC1_REG_INJ (1) +5686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG (0)(5) +5687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_INJ (0)(5) +5688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_ADC5_REG_INJ (5) +5689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(6) +5690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(6) +5691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (6) +5692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1) +5693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1) +5694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1) +5695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2) +5696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2) +5697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2) +5698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG (0)(2) +5699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_INJ (0)(2) +5700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC2_REG_INJ (2) +5701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG (0)(3) +5702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_INJ (0)(3) +5703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP3_ADC3_REG_INJ (3) +5704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(5) +5705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(5) +5706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (5) +5707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG (0)(5) +5708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_INJ (0)(5) +5709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP5_REG_INJ (5) +5710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG (0)(4) +5711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_INJ (0)(4) +5712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CH_VOPAMP6_REG_INJ (4) +5713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (0) On STM32G4, parameter available only on analog watchdog number: AWD1.\n +5715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On STM32G4, parameter available only on ADC instance: ADC1.\n +5716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) On STM32G4, parameter available only on ADC instance: ADC2.\n +5717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) On STM32G4, parameter available only on ADC instance: ADC3.\n +5718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (4) On STM32G4, parameter available only on ADC instance: ADC4.\n +5719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (5) On STM32G4, parameter available only on ADC instance: ADC5.\n +5720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (6) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC5.\n +5721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (7) On STM32G4, parameter available only on ADC instances: ADC1, ADC3, ADC4, ADC5.\n +5722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - On this STM32 series, all ADCx are not available on all devices. Refer to device da +5723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWD +5726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "AWDChannelGroup" with bits position */ +5728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* in register and register position depending on parameter "AWDy". */ +5729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "AWDChannelGroup" and "AWDy" are used with masks because */ +5730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +5731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) >> AD +5732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_C +5733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, + ARM GAS /tmp/cc3JIfda.s page 107 + + +5735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK), +5736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AWDChannelGroup & AWDy); +5737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC analog watchdog monitored channel. +5741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Usage of the returned channel number: +5742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To reinject this channel into another function LL_ADC_xxx: +5743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the returned channel number is only partly formatted on definition +5744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared +5745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with parts of literals LL_ADC_CHANNEL_x or using +5746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +5747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Then the selected literal LL_ADC_CHANNEL_x can be used +5748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * as parameter for another function. +5749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - To get the channel number in decimal format: +5750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * process the returned value with the helper macro +5751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB(). +5752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Applicable only when the analog watchdog is set to monitor +5753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * one channel. +5754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +5766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +5767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +5768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +5769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +5770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +5771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +5772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +5773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +5774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +5775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +5776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +5777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +5778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +5779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR AWD1CH LL_ADC_GetAnalogWDMonitChannels\n +5780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n +5781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR AWD1EN LL_ADC_GetAnalogWDMonitChannels\n +5782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR JAWD1EN LL_ADC_GetAnalogWDMonitChannels\n +5783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD2CR AWD2CH LL_ADC_GetAnalogWDMonitChannels\n +5784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * AWD3CR AWD3CH LL_ADC_GetAnalogWDMonitChannels +5785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +5787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +5788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 (1) +5789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 (1) +5790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) On this AWD number, monitored channel can be retrieved + ARM GAS /tmp/cc3JIfda.s page 108 + + +5792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * if only 1 channel is programmed (or none or all channels). +5793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This function cannot retrieve monitored channel if +5794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * multiple channels are programmed simultaneously +5795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * by bitfield. +5796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +5797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_DISABLE +5798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0) +5799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0) +5800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ +5801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0) +5802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0) +5803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ +5804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0) +5805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0) +5806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ +5807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0) +5808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0) +5809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ +5810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0) +5811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0) +5812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ +5813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0) +5814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0) +5815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ +5816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0) +5817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0) +5818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ +5819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0) +5820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0) +5821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ +5822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0) +5823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0) +5824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ +5825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0) +5826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0) +5827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ +5828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0) +5829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0) +5830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ +5831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0) +5832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0) +5833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ +5834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0) +5835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0) +5836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ +5837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0) +5838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0) +5839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ +5840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0) +5841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0) +5842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ +5843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0) +5844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0) +5845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ +5846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0) +5847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0) +5848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ + ARM GAS /tmp/cc3JIfda.s page 109 + + +5849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0) +5850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0) +5851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ +5852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0) +5853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0) +5854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ +5855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0) +5856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0) +5857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ +5858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +5859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (0) On STM32G4, parameter available only on analog watchdog number: AWD1. +5860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy) +5862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) +5864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC +5865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AnalogWDMonitChannels = (READ_BIT(*preg, AWDy) & ADC_AWD_CR_ALL_CHANNEL_MASK); +5867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* If "AnalogWDMonitChannels" == 0, then the selected AWD is disabled */ +5869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* (parameter value LL_ADC_AWD_DISABLE). */ +5870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Else, the selected AWD is enabled and is monitoring a group of channels */ +5871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* or a single channel. */ +5872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (AnalogWDMonitChannels != 0UL) +5873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if (AWDy == LL_ADC_AWD1) +5875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if ((AnalogWDMonitChannels & ADC_CFGR_AWD1SGL) == 0UL) +5877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a group of channels */ +5879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = ((AnalogWDMonitChannels +5880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (ADC_AWD_CR23_CHANNEL_MASK) +5881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ) +5882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & (~(ADC_CFGR_AWD1CH)) +5883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a single channel */ +5888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = (AnalogWDMonitChannels +5889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (ADC_AWD2CR_AWD2CH_0 << (AnalogWDMonitChannels >> ADC_CFGR_AWD1C +5890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** if ((AnalogWDMonitChannels & ADC_AWD_CR23_CHANNEL_MASK) == ADC_AWD_CR23_CHANNEL_MASK) +5896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a group of channels */ +5898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = (ADC_AWD_CR23_CHANNEL_MASK +5899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | ((ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN)) +5900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** else +5903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a single channel */ +5905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* AWD monitoring a group of channels */ + ARM GAS /tmp/cc3JIfda.s page 110 + + +5906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AnalogWDMonitChannels = (AnalogWDMonitChannels +5907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) +5908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** | (__LL_ADC_CHANNEL_TO_DECIMAL_NB(AnalogWDMonitChannels) << ADC_CF +5909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +5910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return AnalogWDMonitChannels; +5915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog thresholds value of both thresholds +5919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * high and low. +5920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If value of only one threshold high or low must be set, +5921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_SetAnalogWDThresholds(). +5922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC resolution different of 12 bits, +5923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog thresholds data require a specific shift. +5924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(). +5925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +5937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +5938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +5939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +5940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +5941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +5942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +5943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +5944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +5945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +5946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC oversampling is enabled, ADC analog watchdog thresholds are +5947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * impacted: the comparison of analog watchdog thresholds is done on +5948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * oversampling final computation (after ratio and shift application): +5949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC data register bitfield [15:4] (12 most significant bits). +5950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 HT1 LL_ADC_ConfigAnalogWDThresholds\n +5951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 HT2 LL_ADC_ConfigAnalogWDThresholds\n +5952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 HT3 LL_ADC_ConfigAnalogWDThresholds\n +5953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR1 LT1 LL_ADC_ConfigAnalogWDThresholds\n +5954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 LT2 LL_ADC_ConfigAnalogWDThresholds\n +5955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 LT3 LL_ADC_ConfigAnalogWDThresholds +5956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +5957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +5958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +5959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +5960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +5961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdHighValue Value between Min_Data=0x000 and Max_Data=0xFFF +5962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdLowValue Value between Min_Data=0x000 and Max_Data=0xFFF + ARM GAS /tmp/cc3JIfda.s page 111 + + +5963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +5964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +5965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ConfigAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWD +5966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AWDThresholdLowValue) +5967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +5968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "AWDThresholdxxxValue" with bits */ +5969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* position in register and register position depending on parameter */ +5970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "AWDy". */ +5971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "AWDy" and "AWDThresholdxxxValue" are used with masks because */ +5972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +5973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC +5974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +5976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_TR1_HT1 | ADC_TR1_LT1, +5977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDThresholdHighValue << ADC_TR1_HT1_BITOFFSET_POS) | AWDThresholdLowValue); +5978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +5979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +5980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +5981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog threshold value of threshold +5982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * high or low. +5983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If values of both thresholds high or low must be set, +5984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * use function @ref LL_ADC_ConfigAnalogWDThresholds(). +5985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC resolution different of 12 bits, +5986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog thresholds data require a specific shift. +5987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(). +5988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, there are 2 kinds of analog watchdog +5989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * instance: +5990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD standard (instance AWD1): +5991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: can monitor 1 channel or all channels. +5992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: ADC groups regular and-or injected. +5993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is not limited (corresponds to +5994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution configured). +5995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - AWD flexible (instances AWD2, AWD3): +5996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - channels monitored: flexible on channels monitored, selection is +5997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * channel wise, from from 1 to all channels. +5998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specificity of this analog watchdog: Multiple channels can +5999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * be selected. For example: +6000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...) +6001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - groups monitored: not selection possible (monitoring on both +6002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * groups regular and injected). +6003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Channels selected are monitored on groups regular and injected: +6004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters +6005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ) +6006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - resolution: resolution is limited to 8 bits: if ADC resolution is +6007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits +6008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the 2 LSB are ignored. +6009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC oversampling is enabled, ADC analog watchdog thresholds are +6010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * impacted: the comparison of analog watchdog thresholds is done on +6011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * oversampling final computation (after ratio and shift application): +6012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC data register bitfield [15:4] (12 most significant bits). +6013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is not conditioned to +6014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC can be disabled, enabled with or without conversion on going +6016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either ADC groups regular or injected. +6017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 HT1 LL_ADC_SetAnalogWDThresholds\n +6018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 HT2 LL_ADC_SetAnalogWDThresholds\n +6019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 HT3 LL_ADC_SetAnalogWDThresholds\n + ARM GAS /tmp/cc3JIfda.s page 112 + + +6020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR1 LT1 LL_ADC_SetAnalogWDThresholds\n +6021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 LT2 LL_ADC_SetAnalogWDThresholds\n +6022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 LT3 LL_ADC_SetAnalogWDThresholds +6023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +6027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +6028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdsHighLow This parameter can be one of the following values: +6029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH +6030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_LOW +6031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF +6032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThr +6035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** uint32_t AWDThresholdValue) +6036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Set bits with content of parameter "AWDThresholdValue" with bits */ +6038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* position in register and register position depending on parameters */ +6039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* "AWDThresholdsHighLow" and "AWDy". */ +6040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Parameters "AWDy" and "AWDThresholdValue" are used with masks because */ +6041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* containing other bits reserved for other purpose. */ +6042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, +6043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_RE +6044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(*preg, +6046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AWDThresholdsHighLow, +6047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** AWDThresholdValue << ((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TR +6048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC analog watchdog threshold value of threshold high, +6052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * threshold low or raw data with ADC thresholds high and low +6053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * concatenated. +6054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If raw data with ADC thresholds high and low is retrieved, +6055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the data of each threshold high or low can be isolated +6056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using helper macro: +6057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(). +6058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC resolution different of 12 bits, +6059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog thresholds data require a specific shift. +6060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(). +6061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 HT1 LL_ADC_GetAnalogWDThresholds\n +6062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 HT2 LL_ADC_GetAnalogWDThresholds\n +6063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 HT3 LL_ADC_GetAnalogWDThresholds\n +6064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR1 LT1 LL_ADC_GetAnalogWDThresholds\n +6065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR2 LT2 LL_ADC_GetAnalogWDThresholds\n +6066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * TR3 LT3 LL_ADC_GetAnalogWDThresholds +6067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD2 +6071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD3 +6072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDThresholdsHighLow This parameter can be one of the following values: +6073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH +6074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLD_LOW +6075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_THRESHOLDS_HIGH_LOW +6076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF + ARM GAS /tmp/cc3JIfda.s page 113 + + +6077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AW +6079:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6080:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** const __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, +6081:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_ +6082:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6083:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(*preg, +6084:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (AWDThresholdsHighLow | ADC_TR1_LT1)) +6085:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH +6086:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** & ~(AWDThresholdsHighLow & ADC_TR1_LT1))); +6087:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6088:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6089:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6090:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC analog watchdog filtering configuration +6091:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6092:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6093:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6094:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6095:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this feature is only available on first +6096:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog (AWD1) +6097:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 AWDFILT LL_ADC_SetAWDFilteringConfiguration +6098:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6099:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6100:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6101:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param FilteringConfig This parameter can be one of the following values: +6102:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_NONE +6103:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_2SAMPLES +6104:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_3SAMPLES +6105:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_4SAMPLES +6106:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_5SAMPLES +6107:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_6SAMPLES +6108:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_7SAMPLES +6109:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_8SAMPLES +6110:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6111:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6112:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetAWDFilteringConfiguration(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t +6113:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6114:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Prevent unused argument(s) compilation warning */ +6115:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (void)(AWDy); +6116:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->TR1, ADC_TR1_AWDFILT, FilteringConfig); +6117:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6118:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6119:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6120:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC analog watchdog filtering configuration +6121:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this feature is only available on first +6122:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * analog watchdog (AWD1) +6123:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll TR1 AWDFILT LL_ADC_GetAWDFilteringConfiguration +6124:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6125:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param AWDy This parameter can be one of the following values: +6126:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD1 +6127:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be: +6128:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_NONE +6129:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_2SAMPLES +6130:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_3SAMPLES +6131:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_4SAMPLES +6132:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_5SAMPLES +6133:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_6SAMPLES + ARM GAS /tmp/cc3JIfda.s page 114 + + +6134:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_7SAMPLES +6135:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_AWD_FILTERING_8SAMPLES +6136:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6137:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetAWDFilteringConfiguration(ADC_TypeDef *ADCx, uint32_t AWDy) +6138:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6139:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Prevent unused argument(s) compilation warning */ +6140:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (void)(AWDy); +6141:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->TR1, ADC_TR1_AWDFILT)); +6142:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6143:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6144:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6145:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6146:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6147:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6148:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_oversampling Configuration of ADC transversal scope: over +6149:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6150:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6151:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6152:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6153:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC oversampling scope: ADC groups regular and-or injected +6154:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (availability of ADC group injected depends on STM32 families). +6155:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If both groups regular and injected are selected, +6156:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * specify behavior of ADC group injected interrupting +6157:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * group regular: when ADC group injected is triggered, +6158:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the oversampling on ADC group regular is either +6159:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temporary stopped and continued, or resumed from start +6160:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (oversampler buffer reset). +6161:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6162:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6163:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6164:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6165:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 ROVSE LL_ADC_SetOverSamplingScope\n +6166:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 JOVSE LL_ADC_SetOverSamplingScope\n +6167:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 ROVSM LL_ADC_SetOverSamplingScope +6168:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6169:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OvsScope This parameter can be one of the following values: +6170:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_DISABLE +6171:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED +6172:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED +6173:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJECTED +6174:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED +6175:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6176:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6177:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOverSamplingScope(ADC_TypeDef *ADCx, uint32_t OvsScope) +6178:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6179:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM, OvsScope); +6180:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6181:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6182:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6183:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling scope: ADC groups regular and-or injected +6184:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (availability of ADC group injected depends on STM32 families). +6185:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If both groups regular and injected are selected, +6186:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * specify behavior of ADC group injected interrupting +6187:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * group regular: when ADC group injected is triggered, +6188:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the oversampling on ADC group regular is either +6189:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * temporary stopped and continued, or resumed from start +6190:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (oversampler buffer reset). + ARM GAS /tmp/cc3JIfda.s page 115 + + +6191:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 ROVSE LL_ADC_GetOverSamplingScope\n +6192:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 JOVSE LL_ADC_GetOverSamplingScope\n +6193:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 ROVSM LL_ADC_GetOverSamplingScope +6194:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6195:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6196:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_DISABLE +6197:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED +6198:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED +6199:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJECTED +6200:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED +6201:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6202:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingScope(ADC_TypeDef *ADCx) +6203:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6204:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM)); +6205:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6206:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6207:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6208:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC oversampling discontinuous mode (triggered mode) +6209:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on the selected ADC group. +6210:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Number of oversampled conversions are done either in: +6211:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode (all conversions of oversampling ratio +6212:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are done from 1 trigger) +6213:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - discontinuous mode (each conversion of oversampling ratio +6214:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * needs a trigger) +6215:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6216:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6217:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6218:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on group regular. +6219:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, oversampling discontinuous mode +6220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (triggered mode) can be used only when oversampling is +6221:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * set on group regular only and in resumed mode. +6222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 TROVS LL_ADC_SetOverSamplingDiscont +6223:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param OverSamplingDiscont This parameter can be one of the following values: +6225:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_CONT +6226:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_DISCONT +6227:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6228:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6229:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetOverSamplingDiscont(ADC_TypeDef *ADCx, uint32_t OverSamplingDiscont) +6230:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6231:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_TROVS, OverSamplingDiscont); +6232:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6233:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6234:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6235:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling discontinuous mode (triggered mode) +6236:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on the selected ADC group. +6237:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note Number of oversampled conversions are done either in: +6238:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - continuous mode (all conversions of oversampling ratio +6239:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are done from 1 trigger) +6240:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - discontinuous mode (each conversion of oversampling ratio +6241:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * needs a trigger) +6242:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 TROVS LL_ADC_GetOverSamplingDiscont +6243:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6244:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6245:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_CONT +6246:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_REG_DISCONT +6247:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ + ARM GAS /tmp/cc3JIfda.s page 116 + + +6248:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingDiscont(ADC_TypeDef *ADCx) +6249:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6250:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_TROVS)); +6251:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6252:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6253:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6254:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC oversampling +6255:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (impacting both ADC groups regular and injected) +6256:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function set the 2 items of oversampling configuration: +6257:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ratio +6258:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - shift +6259:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6260:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6261:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be disabled or enabled without conversion on going +6262:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6263:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 OVSS LL_ADC_ConfigOverSamplingRatioShift\n +6264:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CFGR2 OVSR LL_ADC_ConfigOverSamplingRatioShift +6265:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6266:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Ratio This parameter can be one of the following values: +6267:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_2 +6268:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_4 +6269:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_8 +6270:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_16 +6271:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_32 +6272:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_64 +6273:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_128 +6274:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_256 +6275:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Shift This parameter can be one of the following values: +6276:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_NONE +6277:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1 +6278:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2 +6279:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3 +6280:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4 +6281:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5 +6282:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6 +6283:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7 +6284:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8 +6285:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6286:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6287:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_ConfigOverSamplingRatioShift(ADC_TypeDef *ADCx, uint32_t Ratio, uint32_ +6288:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6289:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CFGR2, (ADC_CFGR2_OVSS | ADC_CFGR2_OVSR), (Shift | Ratio)); +6290:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6291:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6292:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6293:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling ratio +6294:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (impacting both ADC groups regular and injected) +6295:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 OVSR LL_ADC_GetOverSamplingRatio +6296:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6297:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Ratio This parameter can be one of the following values: +6298:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_2 +6299:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_4 +6300:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_8 +6301:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_16 +6302:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_32 +6303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_64 +6304:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_128 + ARM GAS /tmp/cc3JIfda.s page 117 + + +6305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_RATIO_256 +6306:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingRatio(ADC_TypeDef *ADCx) +6308:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6309:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSR)); +6310:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6311:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6312:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6313:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC oversampling shift +6314:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (impacting both ADC groups regular and injected) +6315:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 OVSS LL_ADC_GetOverSamplingShift +6316:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6317:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Shift This parameter can be one of the following values: +6318:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_NONE +6319:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1 +6320:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2 +6321:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3 +6322:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4 +6323:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5 +6324:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6 +6325:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7 +6326:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8 +6327:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6328:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingShift(ADC_TypeDef *ADCx) +6329:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6330:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSS)); +6331:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6332:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6333:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6334:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6335:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6336:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6337:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multim +6338:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6339:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6340:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6341:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +6342:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6343:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC multimode configuration to operate in independent mode +6344:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or multimode (for devices with several ADC instances). +6345:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If multimode configuration: the selected ADC instance is +6346:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * either master or slave depending on hardware. +6347:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual. +6348:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6349:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6350:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +6351:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This check can be done with function @ref LL_ADC_IsEnabled() for each +6352:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance or by using helper macro +6353:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). +6354:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DUAL LL_ADC_SetMultimode +6355:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6356:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6357:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param Multimode This parameter can be one of the following values: +6358:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_INDEPENDENT +6359:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT +6360:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL +6361:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT + ARM GAS /tmp/cc3JIfda.s page 118 + + +6362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN +6363:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM +6364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT +6365:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM +6366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6367:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6368:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode) +6369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6370:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DUAL, Multimode); +6371:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6372:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6373:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6374:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode configuration to operate in independent mode +6375:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or multimode (for devices with several ADC instances). +6376:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If multimode configuration: the selected ADC instance is +6377:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * either master or slave depending on hardware. +6378:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to reference manual. +6379:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DUAL LL_ADC_GetMultimode +6380:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6381:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6382:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6383:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_INDEPENDENT +6384:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT +6385:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL +6386:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT +6387:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN +6388:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM +6389:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT +6390:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM +6391:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetMultimode(ADC_Common_TypeDef *ADCxy_COMMON) +6393:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DUAL)); +6395:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6396:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6397:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6398:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC multimode conversion data transfer: no transfer +6399:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or transfer by DMA. +6400:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC multimode transfer by DMA is not selected: +6401:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * each ADC uses its own DMA channel, with its individual +6402:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * DMA transfer settings. +6403:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: +6404:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * One DMA channel is used for both ADC (DMA of ADC master) +6405:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specifies the DMA requests mode: +6406:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +6407:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +6408:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +6409:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +6410:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +6411:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +6412:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +6413:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +6414:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +6415:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +6416:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +6417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +6418:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). + ARM GAS /tmp/cc3JIfda.s page 119 + + +6419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note How to retrieve multimode conversion data: +6420:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Whatever multimode transfer by DMA setting: using function +6421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref LL_ADC_REG_ReadMultiConversionData32(). +6422:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: conversion data +6423:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is a raw data with ADC master and slave concatenated. +6424:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * A macro is available to get the conversion data of +6425:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC master or ADC slave: see helper macro +6426:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). +6427:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6428:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6429:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled +6430:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or enabled without conversion on going on group regular. +6431:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR MDMA LL_ADC_SetMultiDMATransfer\n +6432:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR DMACFG LL_ADC_SetMultiDMATransfer +6433:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6434:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6435:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param MultiDMATransfer This parameter can be one of the following values: +6436:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC +6437:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B +6438:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B +6439:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B +6440:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B +6441:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6442:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6443:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMA +6444:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6445:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, MultiDMATransfer); +6446:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6447:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6448:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6449:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode conversion data transfer: no transfer +6450:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or transfer by DMA. +6451:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC multimode transfer by DMA is not selected: +6452:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * each ADC uses its own DMA channel, with its individual +6453:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * DMA transfer settings. +6454:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: +6455:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * One DMA channel is used for both ADC (DMA of ADC master) +6456:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Specifies the DMA requests mode: +6457:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Limited mode (One shot mode): DMA transfer requests are stopped +6458:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when number of DMA data transfers (number of +6459:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions) is reached. +6460:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode non-circular. +6461:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - Unlimited mode: DMA transfer requests are unlimited, +6462:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * whatever number of DMA data transfers (number of +6463:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions). +6464:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This ADC mode is intended to be used with DMA mode circular. +6465:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If ADC DMA requests mode is set to unlimited and DMA is set to +6466:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * mode non-circular: +6467:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * when DMA transfers size will be reached, DMA will stop transfers of +6468:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversions data ADC will raise an overrun error +6469:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (overrun flag and interruption if enabled). +6470:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note How to retrieve multimode conversion data: +6471:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Whatever multimode transfer by DMA setting: using function +6472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref LL_ADC_REG_ReadMultiConversionData32(). +6473:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * If ADC multimode transfer by DMA is selected: conversion data +6474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is a raw data with ADC master and slave concatenated. +6475:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * A macro is available to get the conversion data of + ARM GAS /tmp/cc3JIfda.s page 120 + + +6476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC master or ADC slave: see helper macro +6477:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). +6478:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR MDMA LL_ADC_GetMultiDMATransfer\n +6479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CCR DMACFG LL_ADC_GetMultiDMATransfer +6480:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6481:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6482:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6483:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC +6484:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B +6485:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B +6486:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B +6487:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B +6488:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6489:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON) +6490:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6491:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG)); +6492:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6493:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6494:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Set ADC multimode delay between 2 sampling phases. +6496:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note The sampling delay range depends on ADC resolution: +6497:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 12 bits can have maximum delay of 12 cycles. +6498:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 10 bits can have maximum delay of 10 cycles. +6499:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 8 bits can have maximum delay of 8 cycles. +6500:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - ADC resolution 6 bits can have maximum delay of 6 cycles. +6501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6502:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * All ADC instances of the ADC common group must be disabled. +6504:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * This check can be done with function @ref LL_ADC_IsEnabled() for each +6505:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC instance or by using helper macro helper macro +6506:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(). +6507:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DELAY LL_ADC_SetMultiTwoSamplingDelay +6508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6509:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6510:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param MultiTwoSamplingDelay This parameter can be one of the following values: +6511:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE +6512:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES +6513:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES +6514:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES +6515:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES +6516:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1) +6517:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1) +6518:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2) +6519:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2) +6520:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2) +6521:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3) +6522:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3) +6523:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +6524:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n +6525:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n +6526:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) Parameter available only if ADC resolution is 12 bits. +6527:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6528:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6529:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Mul +6530:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6531:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay); +6532:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 121 + + +6533:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6535:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode delay between 2 sampling phases. +6536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CCR DELAY LL_ADC_GetMultiTwoSamplingDelay +6537:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6538:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6539:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Returned value can be one of the following values: +6540:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE +6541:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES +6542:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES +6543:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES +6544:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES +6545:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1) +6546:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1) +6547:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2) +6548:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2) +6549:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2) +6550:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3) +6551:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3) +6552:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * +6553:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n +6554:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n +6555:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (3) Parameter available only if ADC resolution is 12 bits. +6556:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6557:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON) +6558:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6559:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY)); +6560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6561:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +6562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6564:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6565:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6566:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance +6567:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6568:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6569:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6570:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6571:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Put ADC instance in deep power down state. +6572:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC calibration necessary: When ADC is in deep-power-down +6573:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * state, the internal analog calibration is lost. After exiting from +6574:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * deep power down, calibration must be relaunched or calibration factor +6575:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (preliminarily saved) must be set back into calibration register. +6576:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6577:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6578:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6579:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR DEEPPWD LL_ADC_EnableDeepPowerDown +6580:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6581:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6582:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableDeepPowerDown(ADC_TypeDef *ADCx) +6584:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6585:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6586:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6587:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6589:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + ARM GAS /tmp/cc3JIfda.s page 122 + + +6590:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_DEEPPWD); +6591:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6592:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6593:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6594:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable ADC deep power down mode. +6595:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note In case of ADC calibration necessary: When ADC is in deep-power-down +6596:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * state, the internal analog calibration is lost. After exiting from +6597:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * deep power down, calibration must be relaunched or calibration factor +6598:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (preliminarily saved) must be set back into calibration register. +6599:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6600:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6601:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6602:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR DEEPPWD LL_ADC_DisableDeepPowerDown +6603:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6604:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6605:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6606:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableDeepPowerDown(ADC_TypeDef *ADCx) +6607:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6608:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6609:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6610:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6611:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->CR, (ADC_CR_DEEPPWD | ADC_CR_BITS_PROPERTY_RS)); +6612:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6613:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6614:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6615:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance deep power down state. +6616:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR DEEPPWD LL_ADC_IsDeepPowerDownEnabled +6617:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6618:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: deep power down is disabled, 1: deep power down is enabled. +6619:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6620:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsDeepPowerDownEnabled(ADC_TypeDef *ADCx) +6621:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6622:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_DEEPPWD) == (ADC_CR_DEEPPWD)) ? 1UL : 0UL); +6623:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6624:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6625:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6626:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable ADC instance internal voltage regulator. +6627:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, after ADC internal voltage regulator enable, +6628:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a delay for ADC internal voltage regulator stabilization +6629:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is required before performing a ADC calibration or ADC enable. +6630:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet, parameter tADCVREG_STUP. +6631:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_INTERNAL_REGUL_STAB_US. +6632:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6633:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6634:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6635:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADVREGEN LL_ADC_EnableInternalRegulator +6636:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6637:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6638:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6639:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx) +6640:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6641:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6642:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6643:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6644:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6645:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6646:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADVREGEN); + ARM GAS /tmp/cc3JIfda.s page 123 + + +6647:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6648:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6649:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6650:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable ADC internal voltage regulator. +6651:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6652:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6653:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6654:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADVREGEN LL_ADC_DisableInternalRegulator +6655:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6656:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6657:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_DisableInternalRegulator(ADC_TypeDef *ADCx) +6659:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN | ADC_CR_BITS_PROPERTY_RS)); +6661:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6662:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6663:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6664:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance internal voltage regulator state. +6665:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADVREGEN LL_ADC_IsInternalRegulatorEnabled +6666:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6667:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: internal regulator is disabled, 1: internal regulator is enabled. +6668:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6669:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(ADC_TypeDef *ADCx) +6670:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6671:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN)) ? 1UL : 0UL); +6672:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6673:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6674:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6675:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Enable the selected ADC instance. +6676:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, after ADC enable, a delay for +6677:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC internal analog stabilization is required before performing a +6678:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC conversion start. +6679:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to device datasheet, parameter tSTAB. +6680:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC +6681:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled and when conversion clock is active. +6682:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (not only core clock: this ADC has a dual clock domain) +6683:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6684:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6685:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled and ADC internal voltage regulator enabled. +6686:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADEN LL_ADC_Enable +6687:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6688:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6689:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6690:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx) +6691:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6692:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6693:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6694:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6695:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6696:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6697:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADEN); +6698:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6699:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6700:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6701:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Disable the selected ADC instance. +6702:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6703:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: + ARM GAS /tmp/cc3JIfda.s page 124 + + +6704:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be not disabled. Must be enabled without conversion on going +6705:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * on either groups regular or injected. +6706:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADDIS LL_ADC_Disable +6707:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6708:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6709:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6710:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx) +6711:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6712:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6713:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6714:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6715:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6716:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6717:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADDIS); +6718:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6719:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6720:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6721:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance enable state. +6722:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC +6723:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * is enabled and when conversion clock is active. +6724:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (not only core clock: this ADC has a dual clock domain) +6725:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADEN LL_ADC_IsEnabled +6726:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6727:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: ADC is disabled, 1: ADC is enabled. +6728:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx) +6730:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL); +6732:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6733:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6734:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6735:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get the selected ADC instance disable state. +6736:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADDIS LL_ADC_IsDisableOngoing +6737:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6738:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no ADC disable command on going. +6739:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6740:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsDisableOngoing(ADC_TypeDef *ADCx) +6741:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6742:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS)) ? 1UL : 0UL); +6743:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6744:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6745:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6746:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC calibration in the mode single-ended +6747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or differential (for devices with differential mode available). +6748:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, a minimum number of ADC clock cycles +6749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * are required between ADC end of calibration and ADC enable. +6750:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES. +6751:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with differential mode available: +6752:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * Calibration of offset is specific to each of +6753:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * single-ended and differential modes +6754:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (calibration run must be performed for each of these +6755:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * differential modes, if used afterwards and if the application +6756:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * requires their calibration). +6757:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6758:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6759:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be ADC disabled. +6760:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADCAL LL_ADC_StartCalibration\n + ARM GAS /tmp/cc3JIfda.s page 125 + + +6761:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CR ADCALDIF LL_ADC_StartCalibration +6762:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6763:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param SingleDiff This parameter can be one of the following values: +6764:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_SINGLE_ENDED +6765:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_DIFFERENTIAL_ENDED +6766:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6767:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6768:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_StartCalibration(ADC_TypeDef *ADCx, uint32_t SingleDiff) + 163 .loc 2 6768 22 view .LVU30 + 164 .LBB285: +6769:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6770:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6771:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6772:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6773:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, + 165 .loc 2 6773 3 view .LVU31 + 166 0032 9368 ldr r3, [r2, #8] + 167 0034 23F04043 bic r3, r3, #-1073741824 + 168 0038 23F03F03 bic r3, r3, #63 + 169 003c 05F08045 and r5, r5, #1073741824 + 170 .LVL10: + 171 .loc 2 6773 3 is_stmt 0 view .LVU32 + 172 0040 2B43 orrs r3, r3, r5 + 173 0042 43F00043 orr r3, r3, #-2147483648 + 174 0046 9360 str r3, [r2, #8] + 175 .LVL11: + 176 .L7: + 177 .loc 2 6773 3 view .LVU33 + 178 .LBE285: + 179 .LBE284: + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Wait for calibration completion */ + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while (LL_ADC_IsCalibrationOnGoing(hadc->Instance) != 0UL) + 180 .loc 1 154 56 is_stmt 1 view .LVU34 + 181 .loc 1 154 12 is_stmt 0 view .LVU35 + 182 0048 2368 ldr r3, [r4] + 183 .LVL12: + 184 .LBB286: + 185 .LBI286: +6774:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADCALDIF | ADC_CR_BITS_PROPERTY_RS, +6775:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADCAL | (SingleDiff & ADC_SINGLEDIFF_CALIB_START_MASK)); +6776:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6777:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6778:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6779:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC calibration state. +6780:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADCAL LL_ADC_IsCalibrationOnGoing +6781:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6782:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: calibration complete, 1: calibration in progress. +6783:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6784:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_IsCalibrationOnGoing(ADC_TypeDef *ADCx) + 186 .loc 2 6784 26 is_stmt 1 view .LVU36 + 187 .LBB287: +6785:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6786:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADCAL) == (ADC_CR_ADCAL)) ? 1UL : 0UL); + 188 .loc 2 6786 3 view .LVU37 + 189 .loc 2 6786 12 is_stmt 0 view .LVU38 + 190 004a 9B68 ldr r3, [r3, #8] + ARM GAS /tmp/cc3JIfda.s page 126 + + + 191 .LVL13: + 192 .loc 2 6786 70 view .LVU39 + 193 004c 002B cmp r3, #0 + 194 004e 06DB blt .L13 + 195 .LVL14: + 196 .loc 2 6786 70 view .LVU40 + 197 .LBE287: + 198 .LBE286: + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** wait_loop_index++; + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (wait_loop_index >= ADC_CALIBRATION_TIMEOUT) + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_BUSY_INTERNAL, + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_ERROR_INTERNAL); + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 199 .loc 1 172 5 is_stmt 1 view .LVU41 + 200 0050 E36D ldr r3, [r4, #92] + 201 0052 23F00303 bic r3, r3, #3 + 202 0056 43F00103 orr r3, r3, #1 + 203 005a E365 str r3, [r4, #92] + 204 005c 15E0 b .L10 + 205 .LVL15: + 206 .L13: + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (wait_loop_index >= ADC_CALIBRATION_TIMEOUT) + 207 .loc 1 156 7 view .LVU42 + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (wait_loop_index >= ADC_CALIBRATION_TIMEOUT) + 208 .loc 1 156 22 is_stmt 0 view .LVU43 + 209 005e 019B ldr r3, [sp, #4] + 210 0060 0133 adds r3, r3, #1 + 211 0062 0193 str r3, [sp, #4] + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 212 .loc 1 157 7 is_stmt 1 view .LVU44 + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 213 .loc 1 157 27 is_stmt 0 view .LVU45 + 214 0064 019A ldr r2, [sp, #4] + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 215 .loc 1 157 10 view .LVU46 + 216 0066 0C4B ldr r3, .L14 + 217 0068 9A42 cmp r2, r3 + 218 006a EDD9 bls .L7 + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_BUSY_INTERNAL, + 219 .loc 1 160 9 is_stmt 1 view .LVU47 + 220 006c E36D ldr r3, [r4, #92] + 221 006e 23F01203 bic r3, r3, #18 + 222 0072 43F01003 orr r3, r3, #16 + 223 0076 E365 str r3, [r4, #92] + ARM GAS /tmp/cc3JIfda.s page 127 + + + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 224 .loc 1 165 9 view .LVU48 + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 225 .loc 1 165 9 view .LVU49 + 226 0078 0023 movs r3, #0 + 227 007a 84F85830 strb r3, [r4, #88] + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 228 .loc 1 165 9 view .LVU50 + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 229 .loc 1 167 9 view .LVU51 + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 230 .loc 1 167 16 is_stmt 0 view .LVU52 + 231 007e 0120 movs r0, #1 + 232 .LVL16: + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 233 .loc 1 167 16 view .LVU53 + 234 0080 06E0 b .L5 + 235 .LVL17: + 236 .L6: + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_BUSY_INTERNAL, + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); + 237 .loc 1 178 5 is_stmt 1 view .LVU54 + 238 0082 E36D ldr r3, [r4, #92] + 239 0084 43F01003 orr r3, r3, #16 + 240 0088 E365 str r3, [r4, #92] + 241 .LVL18: + 242 .L10: + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: No need to update variable "tmp_hal_status" here: already set */ + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* to state "HAL_ERROR" by function disabling the ADC. */ + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 243 .loc 1 185 3 view .LVU55 + 244 .loc 1 185 3 view .LVU56 + 245 008a 0023 movs r3, #0 + 246 008c 84F85830 strb r3, [r4, #88] + 247 .loc 1 185 3 view .LVU57 + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 248 .loc 1 188 3 view .LVU58 + 249 .LVL19: + 250 .L5: + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 251 .loc 1 189 1 is_stmt 0 view .LVU59 + 252 0090 03B0 add sp, sp, #12 + 253 .LCFI4: + 254 .cfi_remember_state + 255 .cfi_def_cfa_offset 12 + 256 @ sp needed + 257 0092 30BD pop {r4, r5, pc} + ARM GAS /tmp/cc3JIfda.s page 128 + + + 258 .LVL20: + 259 .L11: + 260 .LCFI5: + 261 .cfi_restore_state + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 262 .loc 1 135 3 view .LVU60 + 263 0094 0220 movs r0, #2 + 264 .LVL21: + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 265 .loc 1 135 3 view .LVU61 + 266 0096 FBE7 b .L5 + 267 .L15: + 268 .align 2 + 269 .L14: + 270 0098 01DE0400 .word 318977 + 271 .cfi_endproc + 272 .LFE329: + 274 .section .text.HAL_ADCEx_Calibration_GetValue,"ax",%progbits + 275 .align 1 + 276 .global HAL_ADCEx_Calibration_GetValue + 277 .syntax unified + 278 .thumb + 279 .thumb_func + 281 HAL_ADCEx_Calibration_GetValue: + 282 .LVL22: + 283 .LFB330: + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Get the calibration factor. + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle. + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param SingleDiff This parameter can be only: + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_SINGLE_ENDED Channel in mode input single ended + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_DIFFERENTIAL_ENDED Channel in mode input differential ended + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval Calibration value. + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t HAL_ADCEx_Calibration_GetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff) + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 284 .loc 1 200 1 is_stmt 1 view -0 + 285 .cfi_startproc + 286 @ args = 0, pretend = 0, frame = 0 + 287 @ frame_needed = 0, uses_anonymous_args = 0 + 288 @ link register save eliminated. + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 289 .loc 1 202 3 view .LVU63 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_SINGLE_DIFFERENTIAL(SingleDiff)); + 290 .loc 1 203 3 view .LVU64 + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return the selected ADC calibration value */ + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return LL_ADC_GetCalibrationFactor(hadc->Instance, SingleDiff); + 291 .loc 1 206 3 view .LVU65 + 292 .loc 1 206 10 is_stmt 0 view .LVU66 + 293 0000 0368 ldr r3, [r0] + 294 .LVL23: + 295 .LBB288: + 296 .LBI288: +2944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/cc3JIfda.s page 129 + + + 297 .loc 2 2944 26 is_stmt 1 view .LVU67 + 298 .LBB289: +2950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> ((SingleDiff & ADC + 299 .loc 2 2950 3 view .LVU68 +2950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> ((SingleDiff & ADC + 300 .loc 2 2950 21 is_stmt 0 view .LVU69 + 301 0002 D3F8B400 ldr r0, [r3, #180] + 302 .LVL24: +2950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> ((SingleDiff & ADC + 303 .loc 2 2950 21 view .LVU70 + 304 0006 0840 ands r0, r0, r1 + 305 0008 00F07F10 and r0, r0, #8323199 +2951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SINGLEDIFF_CA + 306 .loc 2 2951 132 view .LVU71 + 307 000c 090B lsrs r1, r1, #12 + 308 .LVL25: +2951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SINGLEDIFF_CA + 309 .loc 2 2951 132 view .LVU72 + 310 000e 01F01001 and r1, r1, #16 + 311 .LVL26: +2951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_SINGLEDIFF_CA + 312 .loc 2 2951 132 view .LVU73 + 313 .LBE289: + 314 .LBE288: + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 315 .loc 1 207 1 view .LVU74 + 316 0012 C840 lsrs r0, r0, r1 + 317 0014 7047 bx lr + 318 .cfi_endproc + 319 .LFE330: + 321 .section .text.HAL_ADCEx_Calibration_SetValue,"ax",%progbits + 322 .align 1 + 323 .global HAL_ADCEx_Calibration_SetValue + 324 .syntax unified + 325 .thumb + 326 .thumb_func + 328 HAL_ADCEx_Calibration_SetValue: + 329 .LVL27: + 330 .LFB331: + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Set the calibration factor to overwrite automatic conversion result. + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * ADC must be enabled and no conversion is ongoing. + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param SingleDiff This parameter can be only: + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_SINGLE_ENDED Channel in mode input single ended + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_DIFFERENTIAL_ENDED Channel in mode input differential ended + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param CalibrationFactor Calibration factor (coded on 7 bits maximum) + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL state + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_Calibration_SetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff, + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t CalibrationFactor) + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 331 .loc 1 221 1 is_stmt 1 view -0 + 332 .cfi_startproc + 333 @ args = 0, pretend = 0, frame = 0 + 334 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cc3JIfda.s page 130 + + + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 335 .loc 1 222 3 view .LVU76 + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 336 .loc 1 223 3 view .LVU77 + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 337 .loc 1 224 3 view .LVU78 + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 338 .loc 1 227 3 view .LVU79 + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_SINGLE_DIFFERENTIAL(SingleDiff)); + 339 .loc 1 228 3 view .LVU80 + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_CALFACT(CalibrationFactor)); + 340 .loc 1 229 3 view .LVU81 + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 341 .loc 1 232 3 view .LVU82 + 342 .loc 1 232 3 view .LVU83 + 343 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 344 0004 012B cmp r3, #1 + 345 0006 26D0 beq .L23 + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 346 .loc 1 221 1 is_stmt 0 discriminator 2 view .LVU84 + 347 0008 70B5 push {r4, r5, r6, lr} + 348 .LCFI6: + 349 .cfi_def_cfa_offset 16 + 350 .cfi_offset 4, -16 + 351 .cfi_offset 5, -12 + 352 .cfi_offset 6, -8 + 353 .cfi_offset 14, -4 + 354 000a 0446 mov r4, r0 + 355 .loc 1 232 3 is_stmt 1 discriminator 2 view .LVU85 + 356 000c 0123 movs r3, #1 + 357 000e 80F85830 strb r3, [r0, #88] + 358 .loc 1 232 3 discriminator 2 view .LVU86 + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Verification of hardware constraints before modifying the calibration */ + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* factors register: ADC must be enabled, no conversion on going. */ + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 359 .loc 1 236 3 discriminator 2 view .LVU87 + 360 .loc 1 236 44 is_stmt 0 discriminator 2 view .LVU88 + 361 0012 0068 ldr r0, [r0] + 362 .LVL28: + 363 .LBB290: + 364 .LBI290: +6787:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6788:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6789:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6790:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +6791:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6792:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6793:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regu +6794:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +6795:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6797:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** + ARM GAS /tmp/cc3JIfda.s page 131 + + +6798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC group regular conversion. +6799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this function is relevant for both +6800:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal trigger (SW start) and external trigger: +6801:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to software start, ADC conversion +6802:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * starts immediately. +6803:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to external trigger, ADC conversion +6804:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will start at next trigger event (on the selected trigger edge) +6805:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * following the ADC start conversion command. +6806:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6807:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6808:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group regular, +6809:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group regular, +6810:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6811:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTART LL_ADC_REG_StartConversion +6812:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6813:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6814:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx) +6816:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6817:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6818:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6819:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6821:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6822:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADSTART); +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6824:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6825:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6826:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Stop ADC group regular conversion. +6827:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6828:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6829:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled with conversion on going on group regular, +6830:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6831:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTP LL_ADC_REG_StopConversion +6832:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6833:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6834:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6835:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx) +6836:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6837:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +6838:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +6839:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +6840:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +6841:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +6842:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_ADSTP); +6843:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6844:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6845:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6846:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion state. +6847:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTART LL_ADC_REG_IsConversionOngoing +6848:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6849:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no conversion is on going on ADC group regular. +6850:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(ADC_TypeDef *ADCx) + 365 .loc 2 6851 26 is_stmt 1 discriminator 2 view .LVU89 + 366 .LBB291: +6852:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/cc3JIfda.s page 132 + + +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL); + 367 .loc 2 6853 3 discriminator 2 view .LVU90 + 368 .loc 2 6853 12 is_stmt 0 discriminator 2 view .LVU91 + 369 0014 8368 ldr r3, [r0, #8] + 370 .loc 2 6853 74 discriminator 2 view .LVU92 + 371 0016 13F00403 ands r3, r3, #4 + 372 001a 00D0 beq .L19 + 373 .loc 2 6853 74 view .LVU93 + 374 001c 0123 movs r3, #1 + 375 .L19: + 376 .LVL29: + 377 .loc 2 6853 74 view .LVU94 + 378 .LBE291: + 379 .LBE290: + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 380 .loc 1 237 3 is_stmt 1 view .LVU95 + 381 .LBB292: + 382 .LBI292: +6854:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6855:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6856:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6857:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular command of conversion stop state +6858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR ADSTP LL_ADC_REG_IsStopConversionOngoing +6859:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no command of conversion stop is on going on ADC group regular. +6861:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6862:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_IsStopConversionOngoing(ADC_TypeDef *ADCx) +6863:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6864:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_ADSTP) == (ADC_CR_ADSTP)) ? 1UL : 0UL); +6865:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6866:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6867:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6868:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC sampling phase for sampling time trigger mode +6869:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function is relevant only when +6870:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED has been set +6871:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using @ref LL_ADC_REG_SetSamplingMode +6872:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_TRIG_SOFTWARE is used as trigger source +6873:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6874:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6875:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group regular, +6876:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group regular, +6877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6878:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 SWTRIG LL_ADC_REG_StartSamplingPhase +6879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6880:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6881:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6882:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StartSamplingPhase(ADC_TypeDef *ADCx) +6883:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6884:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** SET_BIT(ADCx->CFGR2, ADC_CFGR2_SWTRIG); +6885:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6886:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6887:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6888:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Stop ADC sampling phase for sampling time trigger mode and start conversion +6889:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note This function is relevant only when +6890:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_SAMPLING_MODE_TRIGGER_CONTROLED has been set +6891:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * using @ref LL_ADC_REG_SetSamplingMode +6892:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_TRIG_SOFTWARE is used as trigger source + ARM GAS /tmp/cc3JIfda.s page 133 + + +6893:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - @ref LL_ADC_REG_StartSamplingPhase has been called to start +6894:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * the sampling phase +6895:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +6896:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +6897:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group regular, +6898:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group regular, +6899:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +6900:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CFGR2 SWTRIG LL_ADC_REG_StopSamplingPhase +6901:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6902:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +6903:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_REG_StopSamplingPhase(ADC_TypeDef *ADCx) +6905:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** CLEAR_BIT(ADCx->CFGR2, ADC_CFGR2_SWTRIG); +6907:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6908:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6909:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6910:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6911:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * all ADC configurations: all ADC resolutions and +6912:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * all oversampling increased data width (for devices +6913:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * with feature oversampling). +6914:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32 +6915:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6916:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +6917:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6918:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx) +6919:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6920:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6921:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6922:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6923:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6924:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6925:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 12 bits. +6926:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6927:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6928:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6929:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12 +6930:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6931:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0xFFF +6932:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6933:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx) +6934:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6935:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6936:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6937:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6938:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6939:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6940:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 10 bits. +6941:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6942:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6943:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6944:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10 +6945:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6946:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x000 and Max_Data=0x3FF +6947:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6948:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx) +6949:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/cc3JIfda.s page 134 + + +6950:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6951:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6952:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6953:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6954:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6955:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 8 bits. +6956:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6957:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6958:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6959:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8 +6960:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6961:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0xFF +6962:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6963:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx) +6964:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6965:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6966:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6967:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6968:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6969:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group regular conversion data, range fit for +6970:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC resolution 6 bits. +6971:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note For devices with feature oversampling: Oversampling +6972:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * can increase data width, function for extended range +6973:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * may be needed: @ref LL_ADC_REG_ReadConversionData32. +6974:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6 +6975:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +6976:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00 and Max_Data=0x3F +6977:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +6978:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx) +6979:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +6980:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA)); +6981:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +6982:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +6983:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #if defined(ADC_MULTIMODE_SUPPORT) +6984:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +6985:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC multimode conversion data of ADC master, ADC slave +6986:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * or raw data with ADC master and slave concatenated. +6987:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note If raw data with ADC master and slave concatenated is retrieved, +6988:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * a macro is available to get the conversion data of +6989:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC master or ADC slave: see helper macro +6990:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(). +6991:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (however this macro is mainly intended for multimode +6992:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * transfer by DMA, because this function can do the same +6993:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * by getting multimode conversion data of ADC master or ADC slave +6994:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * separately). +6995:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CDR RDATA_MST LL_ADC_REG_ReadMultiConversionData32\n +6996:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * CDR RDATA_SLV LL_ADC_REG_ReadMultiConversionData32 +6997:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCxy_COMMON ADC common instance +6998:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMO +6999:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ConversionData This parameter can be one of the following values: +7000:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_MASTER +7001:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_SLAVE +7002:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @arg @ref LL_ADC_MULTI_MASTER_SLAVE +7003:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF +7004:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7005:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(ADC_Common_TypeDef *ADCxy_COMMON, uin +7006:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + ARM GAS /tmp/cc3JIfda.s page 135 + + +7007:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR, +7008:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ConversionData) +7009:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** >> (POSITION_VAL(ConversionData) & 0x1FUL) +7010:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ); +7011:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7012:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** #endif /* ADC_MULTIMODE_SUPPORT */ +7013:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7014:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7015:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @} +7016:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7017:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7018:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group inj +7019:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @{ +7020:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7021:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7022:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7023:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Start ADC group injected conversion. +7024:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, this function is relevant for both +7025:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * internal trigger (SW start) and external trigger: +7026:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to software start, ADC conversion +7027:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * starts immediately. +7028:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * - If ADC trigger has been set to external trigger, ADC conversion +7029:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * will start at next trigger event (on the selected trigger edge) +7030:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * following the ADC start conversion command. +7031:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +7032:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +7033:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled without conversion on going on group injected, +7034:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without conversion stop command on going on group injected, +7035:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +7036:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTART LL_ADC_INJ_StartConversion +7037:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7038:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7039:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx) +7041:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7042:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +7043:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ +7044:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +7045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +7046:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +7047:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_JADSTART); +7048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7049:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7050:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7051:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Stop ADC group injected conversion. +7052:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @note On this STM32 series, setting of this feature is conditioned to +7053:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC state: +7054:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * ADC must be enabled with conversion on going on group injected, +7055:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * without ADC disable command on going. +7056:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTP LL_ADC_INJ_StopConversion +7057:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7058:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval None +7059:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7060:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx) +7061:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7062:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* Note: Write register with some additional bits forced to state reset */ +7063:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* instead of modifying only the selected bit for this function, */ + ARM GAS /tmp/cc3JIfda.s page 136 + + +7064:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /* to not interfere with bits with HW property "rs". */ +7065:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** MODIFY_REG(ADCx->CR, +7066:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, +7067:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_JADSTP); +7068:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } +7069:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** +7070:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** /** +7071:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @brief Get ADC group injected conversion state. +7072:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @rmtoll CR JADSTART LL_ADC_INJ_IsConversionOngoing +7073:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @param ADCx ADC instance +7074:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** * @retval 0: no conversion is on going on ADC group injected. +7075:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** */ +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** __STATIC_INLINE uint32_t LL_ADC_INJ_IsConversionOngoing(ADC_TypeDef *ADCx) + 383 .loc 2 7076 26 view .LVU96 + 384 .LBB293: +7077:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { +7078:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** return ((READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART)) ? 1UL : 0UL); + 385 .loc 2 7078 3 view .LVU97 + 386 .loc 2 7078 12 is_stmt 0 view .LVU98 + 387 001e 8568 ldr r5, [r0, #8] + 388 .loc 2 7078 76 view .LVU99 + 389 0020 15F00805 ands r5, r5, #8 + 390 0024 00D0 beq .L20 + 391 0026 0125 movs r5, #1 + 392 .L20: + 393 .LVL30: + 394 .loc 2 7078 76 view .LVU100 + 395 .LBE293: + 396 .LBE292: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_IsEnabled(hadc->Instance) != 0UL) + 397 .loc 1 239 3 is_stmt 1 view .LVU101 + 398 .LBB294: + 399 .LBI294: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 400 .loc 2 6729 26 view .LVU102 + 401 .LBB295: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 402 .loc 2 6731 3 view .LVU103 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 403 .loc 2 6731 12 is_stmt 0 view .LVU104 + 404 0028 8668 ldr r6, [r0, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 405 .loc 2 6731 68 view .LVU105 + 406 002a 16F0010F tst r6, #1 + 407 002e 01D0 beq .L21 + 408 .LVL31: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 409 .loc 2 6731 68 view .LVU106 + 410 .LBE295: + 411 .LBE294: + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_adc_is_conversion_on_going_regular == 0UL) + 412 .loc 1 240 7 view .LVU107 + 413 0030 03B9 cbnz r3, .L21 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 414 .loc 1 241 7 view .LVU108 + 415 0032 65B1 cbz r5, .L28 + ARM GAS /tmp/cc3JIfda.s page 137 + + + 416 .L21: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set the selected ADC calibration value */ + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetCalibrationFactor(hadc->Instance, SingleDiff, CalibrationFactor); + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine */ + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 417 .loc 1 250 5 is_stmt 1 view .LVU109 + 418 0034 E36D ldr r3, [r4, #92] + 419 .LVL32: + 420 .loc 1 250 5 is_stmt 0 view .LVU110 + 421 0036 43F02003 orr r3, r3, #32 + 422 003a E365 str r3, [r4, #92] + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC error code */ + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); + 423 .loc 1 252 5 is_stmt 1 view .LVU111 + 424 003c 236E ldr r3, [r4, #96] + 425 003e 43F00103 orr r3, r3, #1 + 426 0042 2366 str r3, [r4, #96] + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; + 427 .loc 1 255 5 view .LVU112 + 428 .LVL33: + 429 .loc 1 255 20 is_stmt 0 view .LVU113 + 430 0044 0120 movs r0, #1 + 431 .LVL34: + 432 .L22: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 433 .loc 1 259 3 is_stmt 1 view .LVU114 + 434 .loc 1 259 3 view .LVU115 + 435 0046 0023 movs r3, #0 + 436 0048 84F85830 strb r3, [r4, #88] + 437 .loc 1 259 3 view .LVU116 + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 438 .loc 1 262 3 view .LVU117 + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 439 .loc 1 263 1 is_stmt 0 view .LVU118 + 440 004c 70BD pop {r4, r5, r6, pc} + 441 .LVL35: + 442 .L28: + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 443 .loc 1 245 5 is_stmt 1 view .LVU119 + 444 004e FFF7FEFF bl LL_ADC_SetCalibrationFactor + 445 .LVL36: + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 446 .loc 1 222 21 is_stmt 0 view .LVU120 + 447 0052 0020 movs r0, #0 + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + ARM GAS /tmp/cc3JIfda.s page 138 + + + 448 .loc 1 245 5 view .LVU121 + 449 0054 F7E7 b .L22 + 450 .LVL37: + 451 .L23: + 452 .LCFI7: + 453 .cfi_def_cfa_offset 0 + 454 .cfi_restore 4 + 455 .cfi_restore 5 + 456 .cfi_restore 6 + 457 .cfi_restore 14 + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 458 .loc 1 232 3 view .LVU122 + 459 0056 0220 movs r0, #2 + 460 .LVL38: + 461 .loc 1 263 1 view .LVU123 + 462 0058 7047 bx lr + 463 .cfi_endproc + 464 .LFE331: + 466 .section .text.HAL_ADCEx_InjectedStart,"ax",%progbits + 467 .align 1 + 468 .global HAL_ADCEx_InjectedStart + 469 .syntax unified + 470 .thumb + 471 .thumb_func + 473 HAL_ADCEx_InjectedStart: + 474 .LVL39: + 475 .LFB332: + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Enable ADC, start conversion of injected group. + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Interruptions enabled in this function: None. + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Case of multimode enabled when multimode feature is available: + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedStart() API must be called for ADC slave first, + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * then for ADC master. + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC slave, ADC is enabled only (conversion is not started). + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC master, ADC is enabled and multimode conversion is started. + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle. + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc) + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 476 .loc 1 277 1 is_stmt 1 view -0 + 477 .cfi_startproc + 478 @ args = 0, pretend = 0, frame = 0 + 479 @ frame_needed = 0, uses_anonymous_args = 0 + 480 .loc 1 277 1 is_stmt 0 view .LVU125 + 481 0000 38B5 push {r3, r4, r5, lr} + 482 .LCFI8: + 483 .cfi_def_cfa_offset 16 + 484 .cfi_offset 3, -16 + 485 .cfi_offset 4, -12 + 486 .cfi_offset 5, -8 + 487 .cfi_offset 14, -4 + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 488 .loc 1 278 3 is_stmt 1 view .LVU126 + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_config_injected_queue; + 489 .loc 1 279 3 view .LVU127 + ARM GAS /tmp/cc3JIfda.s page 139 + + + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 490 .loc 1 281 3 view .LVU128 + 491 .LVL40: + 492 .LBB296: + 493 .LBI296: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 494 .loc 2 6392 26 view .LVU129 + 495 .LBB297: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 496 .loc 2 6394 3 view .LVU130 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 497 .loc 2 6394 21 is_stmt 0 view .LVU131 + 498 0002 394B ldr r3, .L50 + 499 0004 9D68 ldr r5, [r3, #8] + 500 .LVL41: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 501 .loc 2 6394 21 view .LVU132 + 502 .LBE297: + 503 .LBE296: + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 504 .loc 1 285 3 is_stmt 1 view .LVU133 + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) + 505 .loc 1 287 3 view .LVU134 + 506 .loc 1 287 7 is_stmt 0 view .LVU135 + 507 0006 0368 ldr r3, [r0] + 508 .LVL42: + 509 .LBB298: + 510 .LBI298: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 511 .loc 2 7076 26 is_stmt 1 view .LVU136 + 512 .LBB299: + 513 .loc 2 7078 3 view .LVU137 + 514 .loc 2 7078 12 is_stmt 0 view .LVU138 + 515 0008 9A68 ldr r2, [r3, #8] + 516 .loc 2 7078 76 view .LVU139 + 517 000a 12F0080F tst r2, #8 + 518 000e 67D1 bne .L42 + 519 0010 0446 mov r4, r0 + 520 0012 05F01F05 and r5, r5, #31 + 521 .LVL43: + 522 .loc 2 7078 76 view .LVU140 + 523 .LBE299: + 524 .LBE298: + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_BUSY; + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* In case of software trigger detection enabled, JQDIS must be set + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (which can be done only if ADSTART and JADSTART are both cleared). + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** If JQDIS is not set at that point, returns an error + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - since software trigger detection is disabled. User needs to + ARM GAS /tmp/cc3JIfda.s page 140 + + + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** resort to HAL_ADCEx_DisableInjectedQueue() API to set JQDIS. + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - or (if JQDIS is intentionally reset) since JEXTEN = 0 which means + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** the queue is empty */ + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_config_injected_queue = READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + 525 .loc 1 300 5 is_stmt 1 view .LVU141 + 526 .loc 1 300 33 is_stmt 0 view .LVU142 + 527 0016 DA68 ldr r2, [r3, #12] + 528 .LVL44: + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((READ_BIT(hadc->Instance->JSQR, ADC_JSQR_JEXTEN) == 0UL) + 529 .loc 1 302 5 is_stmt 1 view .LVU143 + 530 .loc 1 302 10 is_stmt 0 view .LVU144 + 531 0018 DB6C ldr r3, [r3, #76] + 532 .loc 1 302 8 view .LVU145 + 533 001a 13F4C07F tst r3, #384 + 534 001e 01D1 bne .L31 + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_config_injected_queue == 0UL) + 535 .loc 1 303 9 view .LVU146 + 536 0020 002A cmp r2, #0 + 537 0022 3DDA bge .L47 + 538 .L31: + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 539 .loc 1 311 5 is_stmt 1 view .LVU147 + 540 .loc 1 311 5 view .LVU148 + 541 0024 94F85830 ldrb r3, [r4, #88] @ zero_extendqisi2 + 542 0028 012B cmp r3, #1 + 543 002a 5BD0 beq .L43 + 544 .loc 1 311 5 discriminator 2 view .LVU149 + 545 002c 0123 movs r3, #1 + 546 002e 84F85830 strb r3, [r4, #88] + 547 .loc 1 311 5 discriminator 2 view .LVU150 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable the ADC peripheral */ + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Enable(hadc); + 548 .loc 1 314 5 discriminator 2 view .LVU151 + 549 .loc 1 314 22 is_stmt 0 discriminator 2 view .LVU152 + 550 0032 2046 mov r0, r4 + 551 .LVL45: + 552 .loc 1 314 22 discriminator 2 view .LVU153 + 553 0034 FFF7FEFF bl ADC_Enable + 554 .LVL46: + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start conversion if ADC is effectively enabled */ + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 555 .loc 1 317 5 is_stmt 1 discriminator 2 view .LVU154 + 556 .loc 1 317 8 is_stmt 0 discriminator 2 view .LVU155 + 557 0038 0028 cmp r0, #0 + 558 003a 4DD1 bne .L32 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if a regular conversion is ongoing */ + ARM GAS /tmp/cc3JIfda.s page 141 + + + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((hadc->State & HAL_ADC_STATE_REG_BUSY) != 0UL) + 559 .loc 1 320 7 is_stmt 1 view .LVU156 + 560 .loc 1 320 16 is_stmt 0 view .LVU157 + 561 003c E36D ldr r3, [r4, #92] + 562 .loc 1 320 10 view .LVU158 + 563 003e 13F4807F tst r3, #256 + 564 0042 33D0 beq .L33 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Reset ADC error code field related to injected conversions only */ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); + 565 .loc 1 323 9 is_stmt 1 view .LVU159 + 566 0044 236E ldr r3, [r4, #96] + 567 0046 23F00803 bic r3, r3, #8 + 568 004a 2366 str r3, [r4, #96] + 569 .L34: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC error code to none */ + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(hadc); + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Clear state bitfield related to injected group conversion results */ + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Set state bitfield related to injected operation */ + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 570 .loc 1 334 7 view .LVU160 + 571 004c E36D ldr r3, [r4, #92] + 572 004e 23F44053 bic r3, r3, #12288 + 573 0052 23F00103 bic r3, r3, #1 + 574 0056 43F48053 orr r3, r3, #4096 + 575 005a E365 str r3, [r4, #92] + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_INJ_EOC, + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY); + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - if ADC instance is master or if multimode feature is not available + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - if multimode setting is disabled (ADC instance slave in independent mode) */ + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 576 .loc 1 342 7 view .LVU161 + 577 .loc 1 342 12 is_stmt 0 view .LVU162 + 578 005c 2368 ldr r3, [r4] + 579 005e 234A ldr r2, .L50+4 + 580 0060 9342 cmp r3, r2 + 581 0062 26D0 beq .L48 + 582 0064 1A46 mov r2, r3 + 583 .L35: + 584 .loc 1 342 10 discriminator 4 view .LVU163 + 585 0066 9342 cmp r3, r2 + 586 0068 00D0 beq .L36 + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 587 .loc 1 343 11 view .LVU164 + 588 006a 1DB9 cbnz r5, .L37 + 589 .L36: + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + ARM GAS /tmp/cc3JIfda.s page 142 + + + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + 590 .loc 1 346 9 is_stmt 1 view .LVU165 + 591 006c E26D ldr r2, [r4, #92] + 592 006e 22F48012 bic r2, r2, #1048576 + 593 0072 E265 str r2, [r4, #92] + 594 .L37: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear ADC group injected group conversion flag */ + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* (To ensure of no unknown state from potential previous ADC operations) */ + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JEOC | ADC_FLAG_JEOS)); + 595 .loc 1 352 7 view .LVU166 + 596 0074 6022 movs r2, #96 + 597 0076 1A60 str r2, [r3] + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Unlock before starting ADC conversions: in case of potential */ + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* interruption, to let the process to ADC IRQ Handler. */ + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 598 .loc 1 357 7 view .LVU167 + 599 .loc 1 357 7 view .LVU168 + 600 0078 0023 movs r3, #0 + 601 007a 84F85830 strb r3, [r4, #88] + 602 .loc 1 357 7 view .LVU169 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable conversion of injected group, if automatic injected conversion */ + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* is disabled. */ + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If software start has been selected, conversion starts immediately. */ + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If external trigger has been selected, conversion will start at next */ + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* trigger event. */ + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Case of multimode enabled (when multimode feature is available): */ + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if ADC is slave, */ + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - ADC is enabled only (conversion is not started), */ + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - if multimode only concerns regular conversion, ADC is enabled */ + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* and conversion is started. */ + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If ADC is master or independent, */ + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - ADC is enabled and conversion is started. */ + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 603 .loc 1 372 7 view .LVU170 + 604 .loc 1 372 12 is_stmt 0 view .LVU171 + 605 007e 2368 ldr r3, [r4] + 606 0080 1A4A ldr r2, .L50+4 + 607 0082 9342 cmp r3, r2 + 608 0084 18D0 beq .L49 + 609 0086 1A46 mov r2, r3 + 610 .L38: + 611 .loc 1 372 10 discriminator 4 view .LVU172 + 612 0088 9342 cmp r3, r2 + 613 008a 18D0 beq .L39 + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 614 .loc 1 373 11 view .LVU173 + 615 008c BDB1 cbz r5, .L39 + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + 616 .loc 1 374 11 view .LVU174 + 617 008e 062D cmp r5, #6 + ARM GAS /tmp/cc3JIfda.s page 143 + + + 618 0090 15D0 beq .L39 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + 619 .loc 1 375 11 view .LVU175 + 620 0092 072D cmp r5, #7 + 621 0094 13D0 beq .L39 + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ADC instance is not a multimode slave instance with multimode injected conversions enabl + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_INJ_StartConversion(hadc->Instance); + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ADC instance is not a multimode slave instance with multimode injected conversions enabl + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + 622 .loc 1 387 9 is_stmt 1 view .LVU176 + 623 0096 E36D ldr r3, [r4, #92] + 624 0098 43F48013 orr r3, r3, #1048576 + 625 009c E365 str r3, [r4, #92] + 626 009e 20E0 b .L30 + 627 .LVL47: + 628 .L47: + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; + 629 .loc 1 306 7 view .LVU177 + 630 00a0 C36D ldr r3, [r0, #92] + 631 00a2 43F02003 orr r3, r3, #32 + 632 00a6 C365 str r3, [r0, #92] + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 633 .loc 1 307 7 view .LVU178 + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 634 .loc 1 307 14 is_stmt 0 view .LVU179 + 635 00a8 0120 movs r0, #1 + 636 .LVL48: + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 637 .loc 1 307 14 view .LVU180 + 638 00aa 1AE0 b .L30 + 639 .LVL49: + 640 .L33: + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 641 .loc 1 328 9 is_stmt 1 view .LVU181 + 642 00ac 0023 movs r3, #0 + 643 00ae 2366 str r3, [r4, #96] + 644 00b0 CCE7 b .L34 + 645 .L48: + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 646 .loc 1 342 12 is_stmt 0 view .LVU182 + 647 00b2 4FF0A042 mov r2, #1342177280 + 648 00b6 D6E7 b .L35 + 649 .L49: + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 650 .loc 1 372 12 view .LVU183 + 651 00b8 4FF0A042 mov r2, #1342177280 + 652 00bc E4E7 b .L38 + 653 .L39: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + ARM GAS /tmp/cc3JIfda.s page 144 + + + 654 .loc 1 379 9 is_stmt 1 view .LVU184 + 655 .LVL50: + 656 .LBB300: + 657 .LBI300: +4858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 658 .loc 2 4858 26 view .LVU185 + 659 .LBB301: +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 660 .loc 2 4860 3 view .LVU186 +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 661 .loc 2 4860 21 is_stmt 0 view .LVU187 + 662 00be DA68 ldr r2, [r3, #12] + 663 .LVL51: +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 664 .loc 2 4860 21 view .LVU188 + 665 .LBE301: + 666 .LBE300: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 667 .loc 1 379 12 view .LVU189 + 668 00c0 12F0007F tst r2, #33554432 + 669 00c4 0DD1 bne .L30 + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 670 .loc 1 381 11 is_stmt 1 view .LVU190 + 671 .LVL52: + 672 .LBB302: + 673 .LBI302: +7040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 674 .loc 2 7040 22 view .LVU191 + 675 .LBB303: +7045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 676 .loc 2 7045 3 view .LVU192 + 677 00c6 9A68 ldr r2, [r3, #8] + 678 00c8 22F00042 bic r2, r2, #-2147483648 + 679 00cc 22F03F02 bic r2, r2, #63 + 680 00d0 42F00802 orr r2, r2, #8 + 681 00d4 9A60 str r2, [r3, #8] +7048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 682 .loc 2 7048 1 is_stmt 0 view .LVU193 + 683 00d6 04E0 b .L30 + 684 .LVL53: + 685 .L32: +7048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 686 .loc 2 7048 1 view .LVU194 + 687 .LBE303: + 688 .LBE302: + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #else + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start ADC group injected conversion */ + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_INJ_StartConversion(hadc->Instance); + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + ARM GAS /tmp/cc3JIfda.s page 145 + + + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 689 .loc 1 401 7 is_stmt 1 view .LVU195 + 690 .loc 1 401 7 view .LVU196 + 691 00d8 0023 movs r3, #0 + 692 00da 84F85830 strb r3, [r4, #88] + 693 .loc 1 401 7 view .LVU197 + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 694 .loc 1 405 5 view .LVU198 + 695 .loc 1 405 12 is_stmt 0 view .LVU199 + 696 00de 00E0 b .L30 + 697 .LVL54: + 698 .L42: + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 699 .loc 1 289 12 view .LVU200 + 700 00e0 0220 movs r0, #2 + 701 .LVL55: + 702 .L30: + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 703 .loc 1 407 1 view .LVU201 + 704 00e2 38BD pop {r3, r4, r5, pc} + 705 .LVL56: + 706 .L43: + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 707 .loc 1 311 5 view .LVU202 + 708 00e4 0220 movs r0, #2 + 709 .LVL57: + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 710 .loc 1 311 5 view .LVU203 + 711 00e6 FCE7 b .L30 + 712 .L51: + 713 .align 2 + 714 .L50: + 715 00e8 00030050 .word 1342178048 + 716 00ec 00010050 .word 1342177536 + 717 .cfi_endproc + 718 .LFE332: + 720 .section .text.HAL_ADCEx_InjectedStop,"ax",%progbits + 721 .align 1 + 722 .global HAL_ADCEx_InjectedStop + 723 .syntax unified + 724 .thumb + 725 .thumb_func + 727 HAL_ADCEx_InjectedStop: + 728 .LVL58: + 729 .LFB333: + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop conversion of injected channels. Disable ADC peripheral if + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * no regular conversion is on going. + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note If ADC must be disabled and if conversion is on going on + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * regular group, function HAL_ADC_Stop must be used to stop both + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * injected and regular groups, and disable the ADC. + ARM GAS /tmp/cc3JIfda.s page 146 + + + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note If injected group mode auto-injection is enabled, + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * function HAL_ADC_Stop must be used. + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note In case of multimode enabled (when multimode feature is available), + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedStop() must be called for ADC master first, then for ADC slave. + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC master, conversion is stopped and ADC is disabled. + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC slave, ADC is disabled only (conversion stop of ADC master + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * has already stopped conversion of ADC slave). + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle. + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc) + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 730 .loc 1 426 1 is_stmt 1 view -0 + 731 .cfi_startproc + 732 @ args = 0, pretend = 0, frame = 0 + 733 @ frame_needed = 0, uses_anonymous_args = 0 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 734 .loc 1 427 3 view .LVU205 + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 735 .loc 1 430 3 view .LVU206 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 736 .loc 1 433 3 view .LVU207 + 737 .loc 1 433 3 view .LVU208 + 738 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 739 0004 012B cmp r3, #1 + 740 0006 23D0 beq .L56 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 741 .loc 1 426 1 is_stmt 0 discriminator 2 view .LVU209 + 742 0008 10B5 push {r4, lr} + 743 .LCFI9: + 744 .cfi_def_cfa_offset 8 + 745 .cfi_offset 4, -8 + 746 .cfi_offset 14, -4 + 747 000a 0446 mov r4, r0 + 748 .loc 1 433 3 is_stmt 1 discriminator 2 view .LVU210 + 749 000c 0123 movs r3, #1 + 750 000e 80F85830 strb r3, [r0, #88] + 751 .loc 1 433 3 discriminator 2 view .LVU211 + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential conversion on going on injected group only. */ + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_INJECTED_GROUP); + 752 .loc 1 436 3 discriminator 2 view .LVU212 + 753 .loc 1 436 20 is_stmt 0 discriminator 2 view .LVU213 + 754 0012 0221 movs r1, #2 + 755 0014 FFF7FEFF bl ADC_ConversionStop + 756 .LVL59: + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if injected conversions are effectively stopped */ + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* and if no conversion on regular group is on-going */ + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 757 .loc 1 440 3 is_stmt 1 discriminator 2 view .LVU214 + 758 .loc 1 440 6 is_stmt 0 discriminator 2 view .LVU215 + 759 0018 40B9 cbnz r0, .L54 + ARM GAS /tmp/cc3JIfda.s page 147 + + + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + 760 .loc 1 442 5 is_stmt 1 view .LVU216 + 761 .loc 1 442 9 is_stmt 0 view .LVU217 + 762 001a 2368 ldr r3, [r4] + 763 .LVL60: + 764 .LBB304: + 765 .LBI304: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 766 .loc 2 6851 26 is_stmt 1 view .LVU218 + 767 .LBB305: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 768 .loc 2 6853 3 view .LVU219 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 769 .loc 2 6853 12 is_stmt 0 view .LVU220 + 770 001c 9B68 ldr r3, [r3, #8] + 771 .LVL61: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 772 .loc 2 6853 74 view .LVU221 + 773 001e 13F0040F tst r3, #4 + 774 0022 07D0 beq .L55 + 775 .LVL62: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 776 .loc 2 6853 74 view .LVU222 + 777 .LBE305: + 778 .LBE304: + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable the ADC peripheral */ + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if ADC is effectively disabled */ + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Conversion on injected group is stopped, but ADC not disabled since */ + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion on regular group is still running. */ + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + 779 .loc 1 461 7 is_stmt 1 view .LVU223 + 780 0024 E36D ldr r3, [r4, #92] + 781 0026 23F48053 bic r3, r3, #4096 + 782 002a E365 str r3, [r4, #92] + 783 .L54: + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 784 .loc 1 466 3 view .LVU224 + 785 .loc 1 466 3 view .LVU225 + ARM GAS /tmp/cc3JIfda.s page 148 + + + 786 002c 0023 movs r3, #0 + 787 002e 84F85830 strb r3, [r4, #88] + 788 .loc 1 466 3 view .LVU226 + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 789 .loc 1 469 3 view .LVU227 + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 790 .loc 1 470 1 is_stmt 0 view .LVU228 + 791 0032 10BD pop {r4, pc} + 792 .LVL63: + 793 .L55: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 794 .loc 1 445 7 is_stmt 1 view .LVU229 + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 795 .loc 1 445 24 is_stmt 0 view .LVU230 + 796 0034 2046 mov r0, r4 + 797 .LVL64: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 798 .loc 1 445 24 view .LVU231 + 799 0036 FFF7FEFF bl ADC_Disable + 800 .LVL65: + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 801 .loc 1 448 7 is_stmt 1 view .LVU232 + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 802 .loc 1 448 10 is_stmt 0 view .LVU233 + 803 003a 0028 cmp r0, #0 + 804 003c F6D1 bne .L54 + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 805 .loc 1 451 9 is_stmt 1 view .LVU234 + 806 003e E36D ldr r3, [r4, #92] + 807 0040 23F48853 bic r3, r3, #4352 + 808 0044 23F00103 bic r3, r3, #1 + 809 0048 43F00103 orr r3, r3, #1 + 810 004c E365 str r3, [r4, #92] + 811 004e EDE7 b .L54 + 812 .LVL66: + 813 .L56: + 814 .LCFI10: + 815 .cfi_def_cfa_offset 0 + 816 .cfi_restore 4 + 817 .cfi_restore 14 + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 818 .loc 1 433 3 is_stmt 0 view .LVU235 + 819 0050 0220 movs r0, #2 + 820 .LVL67: + 821 .loc 1 470 1 view .LVU236 + 822 0052 7047 bx lr + 823 .cfi_endproc + 824 .LFE333: + 826 .section .text.HAL_ADCEx_InjectedPollForConversion,"ax",%progbits + 827 .align 1 + 828 .global HAL_ADCEx_InjectedPollForConversion + 829 .syntax unified + 830 .thumb + 831 .thumb_func + 833 HAL_ADCEx_InjectedPollForConversion: + ARM GAS /tmp/cc3JIfda.s page 149 + + + 834 .LVL68: + 835 .LFB334: + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Wait for injected group conversion to be completed. + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param Timeout Timeout value in millisecond. + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Depending on hadc->Init.EOCSelection, JEOS or JEOC is + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * checked and cleared depending on AUTDLY bit status. + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 836 .loc 1 481 1 is_stmt 1 view -0 + 837 .cfi_startproc + 838 @ args = 0, pretend = 0, frame = 0 + 839 @ frame_needed = 0, uses_anonymous_args = 0 + 840 .loc 1 481 1 is_stmt 0 view .LVU238 + 841 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 842 .LCFI11: + 843 .cfi_def_cfa_offset 24 + 844 .cfi_offset 4, -24 + 845 .cfi_offset 5, -20 + 846 .cfi_offset 6, -16 + 847 .cfi_offset 7, -12 + 848 .cfi_offset 8, -8 + 849 .cfi_offset 14, -4 + 850 0004 0446 mov r4, r0 + 851 0006 0D46 mov r5, r1 + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tickstart; + 852 .loc 1 482 3 is_stmt 1 view .LVU239 + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_Flag_End; + 853 .loc 1 483 3 view .LVU240 + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_inj_is_trigger_source_sw_start; + 854 .loc 1 484 3 view .LVU241 + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_reg_is_trigger_source_sw_start; + 855 .loc 1 485 3 view .LVU242 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_cfgr; + 856 .loc 1 486 3 view .LVU243 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** const ADC_TypeDef *tmpADC_Master; + 857 .loc 1 488 3 view .LVU244 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 858 .loc 1 489 3 view .LVU245 + 859 .LVL69: + 860 .LBB306: + 861 .LBI306: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 862 .loc 2 6392 26 view .LVU246 + 863 .LBB307: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 864 .loc 2 6394 3 view .LVU247 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 865 .loc 2 6394 21 is_stmt 0 view .LVU248 + 866 0008 3B4B ldr r3, .L87 + 867 000a 9F68 ldr r7, [r3, #8] +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 150 + + + 868 .loc 2 6394 10 view .LVU249 + 869 000c 07F01F07 and r7, r7, #31 + 870 .LVL70: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 871 .loc 2 6394 10 view .LVU250 + 872 .LBE307: + 873 .LBE306: + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 874 .loc 1 493 3 is_stmt 1 view .LVU251 + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If end of sequence selected */ + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) + 875 .loc 1 496 3 view .LVU252 + 876 .loc 1 496 17 is_stmt 0 view .LVU253 + 877 0010 8369 ldr r3, [r0, #24] + 878 .loc 1 496 6 view .LVU254 + 879 0012 082B cmp r3, #8 + 880 0014 1FD0 beq .L83 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_Flag_End = ADC_FLAG_JEOS; + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else /* end of conversion selected */ + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_Flag_End = ADC_FLAG_JEOC; + 881 .loc 1 502 18 view .LVU255 + 882 0016 2026 movs r6, #32 + 883 .L62: + 884 .LVL71: + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Get timeout */ + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tickstart = HAL_GetTick(); + 885 .loc 1 506 3 is_stmt 1 view .LVU256 + 886 .loc 1 506 15 is_stmt 0 view .LVU257 + 887 0018 FFF7FEFF bl HAL_GetTick + 888 .LVL72: + 889 .loc 1 506 15 view .LVU258 + 890 001c 8046 mov r8, r0 + 891 .LVL73: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Wait until End of Conversion or Sequence flag is raised */ + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 892 .loc 1 509 3 is_stmt 1 view .LVU259 + 893 .L64: + 894 .loc 1 509 47 view .LVU260 + 895 .loc 1 509 15 is_stmt 0 view .LVU261 + 896 001e 2368 ldr r3, [r4] + 897 .loc 1 509 25 view .LVU262 + 898 0020 1A68 ldr r2, [r3] + 899 .loc 1 509 47 view .LVU263 + 900 0022 3242 tst r2, r6 + 901 0024 19D1 bne .L84 + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if timeout is disabled (set to infinite wait) */ + ARM GAS /tmp/cc3JIfda.s page 151 + + + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (Timeout != HAL_MAX_DELAY) + 902 .loc 1 512 5 is_stmt 1 view .LVU264 + 903 .loc 1 512 8 is_stmt 0 view .LVU265 + 904 0026 B5F1FF3F cmp r5, #-1 + 905 002a F8D0 beq .L64 + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL)) + 906 .loc 1 514 7 is_stmt 1 view .LVU266 + 907 .loc 1 514 13 is_stmt 0 view .LVU267 + 908 002c FFF7FEFF bl HAL_GetTick + 909 .LVL74: + 910 .loc 1 514 27 view .LVU268 + 911 0030 A0EB0800 sub r0, r0, r8 + 912 .loc 1 514 10 view .LVU269 + 913 0034 A842 cmp r0, r5 + 914 0036 01D8 bhi .L65 + 915 .loc 1 514 51 discriminator 1 view .LVU270 + 916 0038 002D cmp r5, #0 + 917 003a F0D1 bne .L64 + 918 .L65: + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* New check to avoid false timeout detection in case of preemption */ + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((hadc->Instance->ISR & tmp_Flag_End) == 0UL) + 919 .loc 1 517 9 is_stmt 1 view .LVU271 + 920 .loc 1 517 18 is_stmt 0 view .LVU272 + 921 003c 2368 ldr r3, [r4] + 922 .loc 1 517 28 view .LVU273 + 923 003e 1B68 ldr r3, [r3] + 924 .loc 1 517 12 view .LVU274 + 925 0040 3342 tst r3, r6 + 926 0042 ECD1 bne .L64 + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to timeout */ + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); + 927 .loc 1 520 11 is_stmt 1 view .LVU275 + 928 0044 E36D ldr r3, [r4, #92] + 929 0046 43F00403 orr r3, r3, #4 + 930 004a E365 str r3, [r4, #92] + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 931 .loc 1 523 11 view .LVU276 + 932 .loc 1 523 11 view .LVU277 + 933 004c 0023 movs r3, #0 + 934 004e 84F85830 strb r3, [r4, #88] + 935 .loc 1 523 11 view .LVU278 + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_TIMEOUT; + 936 .loc 1 525 11 view .LVU279 + 937 .loc 1 525 18 is_stmt 0 view .LVU280 + 938 0052 0320 movs r0, #3 + 939 0054 44E0 b .L66 + 940 .LVL75: + 941 .L83: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 942 .loc 1 498 18 view .LVU281 + 943 0056 4026 movs r6, #64 + ARM GAS /tmp/cc3JIfda.s page 152 + + + 944 0058 DEE7 b .L62 + 945 .LVL76: + 946 .L84: + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Retrieve ADC configuration */ + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_inj_is_trigger_source_sw_start = LL_ADC_INJ_IsTriggerSourceSWStart(hadc->Instance); + 947 .loc 1 532 3 is_stmt 1 view .LVU282 + 948 .LBB308: + 949 .LBI308: +4534:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 950 .loc 2 4534 26 view .LVU283 + 951 .LBB309: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 952 .loc 2 4536 3 view .LVU284 +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 953 .loc 2 4536 12 is_stmt 0 view .LVU285 + 954 005a DA6C ldr r2, [r3, #76] +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 955 .loc 2 4536 105 view .LVU286 + 956 005c 12F4C07F tst r2, #384 + 957 0060 12D1 bne .L78 + 958 0062 0120 movs r0, #1 + 959 .L68: + 960 .LVL77: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 961 .loc 2 4536 105 view .LVU287 + 962 .LBE309: + 963 .LBE308: + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_reg_is_trigger_source_sw_start = LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance); + 964 .loc 1 533 3 is_stmt 1 view .LVU288 + 965 .LBB311: + 966 .LBI311: +3747:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 967 .loc 2 3747 26 view .LVU289 + 968 .LBB312: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 969 .loc 2 3749 3 view .LVU290 +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 970 .loc 2 3749 12 is_stmt 0 view .LVU291 + 971 0064 DA68 ldr r2, [r3, #12] +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 972 .loc 2 3749 103 view .LVU292 + 973 0066 12F4406F tst r2, #3072 + 974 006a 0FD1 bne .L79 + 975 006c 0125 movs r5, #1 + 976 .LVL78: + 977 .L69: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 978 .loc 2 3749 103 view .LVU293 + 979 .LBE312: + 980 .LBE311: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Get relevant register CFGR in ADC instance of ADC master or slave */ + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* in function of multimode state (for devices with multimode */ + ARM GAS /tmp/cc3JIfda.s page 153 + + + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* available). */ + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 981 .loc 1 538 3 is_stmt 1 view .LVU294 + 982 .loc 1 538 8 is_stmt 0 view .LVU295 + 983 006e 234A ldr r2, .L87+4 + 984 0070 9342 cmp r3, r2 + 985 0072 0DD0 beq .L85 + 986 0074 1A46 mov r2, r3 + 987 .L70: + 988 .loc 1 538 6 discriminator 4 view .LVU296 + 989 0076 9342 cmp r3, r2 + 990 0078 0DD0 beq .L71 + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 991 .loc 1 539 7 view .LVU297 + 992 007a 67B1 cbz r7, .L71 + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + 993 .loc 1 540 7 view .LVU298 + 994 007c 062F cmp r7, #6 + 995 007e 0AD0 beq .L71 + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + 996 .loc 1 541 7 view .LVU299 + 997 0080 072F cmp r7, #7 + 998 0082 08D0 beq .L71 + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmpADC_Master = __LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance); + 999 .loc 1 548 5 is_stmt 1 discriminator 4 view .LVU300 + 1000 .LVL79: + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_cfgr = READ_REG(tmpADC_Master->CFGR); + 1001 .loc 1 549 5 discriminator 4 view .LVU301 + 1002 .loc 1 549 14 is_stmt 0 discriminator 4 view .LVU302 + 1003 0084 D168 ldr r1, [r2, #12] + 1004 .LVL80: + 1005 .loc 1 549 14 discriminator 4 view .LVU303 + 1006 0086 07E0 b .L73 + 1007 .LVL81: + 1008 .L78: + 1009 .LBB314: + 1010 .LBB310: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1011 .loc 2 4536 105 view .LVU304 + 1012 0088 0020 movs r0, #0 + 1013 008a EBE7 b .L68 + 1014 .LVL82: + 1015 .L79: +4536:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1016 .loc 2 4536 105 view .LVU305 + 1017 .LBE310: + 1018 .LBE314: + 1019 .LBB315: + 1020 .LBB313: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 154 + + + 1021 .loc 2 3749 103 view .LVU306 + 1022 008c 0025 movs r5, #0 + 1023 .LVL83: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1024 .loc 2 3749 103 view .LVU307 + 1025 008e EEE7 b .L69 + 1026 .LVL84: + 1027 .L85: +3749:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1028 .loc 2 3749 103 view .LVU308 + 1029 .LBE313: + 1030 .LBE315: + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1031 .loc 1 538 8 view .LVU309 + 1032 0090 4FF0A042 mov r2, #1342177280 + 1033 0094 EFE7 b .L70 + 1034 .L71: + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1035 .loc 1 544 5 is_stmt 1 view .LVU310 + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1036 .loc 1 544 14 is_stmt 0 view .LVU311 + 1037 0096 D968 ldr r1, [r3, #12] + 1038 .LVL85: + 1039 .L73: + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #else + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_cfgr = READ_REG(hadc->Instance->CFGR); + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine */ + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); + 1040 .loc 1 556 3 is_stmt 1 view .LVU312 + 1041 0098 E26D ldr r2, [r4, #92] + 1042 009a 42F40052 orr r2, r2, #8192 + 1043 009e E265 str r2, [r4, #92] + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Determine whether any further conversion upcoming on group injected */ + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* by external trigger or by automatic injected conversion */ + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* from group regular. */ + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((tmp_adc_inj_is_trigger_source_sw_start != 0UL) || + 1044 .loc 1 561 3 view .LVU313 + 1045 .loc 1 561 6 is_stmt 0 view .LVU314 + 1046 00a0 30B9 cbnz r0, .L74 + 1047 .loc 1 561 66 discriminator 1 view .LVU315 + 1048 00a2 11F0007F tst r1, #33554432 + 1049 00a6 16D1 bne .L75 + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ((READ_BIT(tmp_cfgr, ADC_CFGR_JAUTO) == 0UL) && + 1050 .loc 1 562 57 view .LVU316 + 1051 00a8 ADB1 cbz r5, .L75 + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ((tmp_adc_reg_is_trigger_source_sw_start != 0UL) && + 1052 .loc 1 563 58 view .LVU317 + 1053 00aa 11F4005F tst r1, #8192 + 1054 00ae 12D1 bne .L75 + 1055 .L74: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (READ_BIT(tmp_cfgr, ADC_CFGR_CONT) == 0UL)))) + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check whether end of sequence is reached */ + ARM GAS /tmp/cc3JIfda.s page 155 + + + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOS)) + 1056 .loc 1 567 5 is_stmt 1 view .LVU318 + 1057 .loc 1 567 9 is_stmt 0 view .LVU319 + 1058 00b0 1A68 ldr r2, [r3] + 1059 .loc 1 567 8 view .LVU320 + 1060 00b2 12F0400F tst r2, #64 + 1061 00b6 0ED0 beq .L75 + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Particular case if injected contexts queue is enabled: */ + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* when the last context has been fully processed, JSQR is reset */ + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* by the hardware. Even if no injected conversion is planned to come */ + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* (queue empty, triggers are ignored), it can start again */ + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* immediately after setting a new context (JADSTART is still set). */ + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Therefore, state of HAL ADC injected group is kept to busy. */ + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (READ_BIT(tmp_cfgr, ADC_CFGR_JQM) == 0UL) + 1062 .loc 1 575 7 is_stmt 1 view .LVU321 + 1063 .loc 1 575 10 is_stmt 0 view .LVU322 + 1064 00b8 11F4001F tst r1, #2097152 + 1065 00bc 0BD1 bne .L75 + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + 1066 .loc 1 578 9 is_stmt 1 view .LVU323 + 1067 00be E26D ldr r2, [r4, #92] + 1068 00c0 22F48052 bic r2, r2, #4096 + 1069 00c4 E265 str r2, [r4, #92] + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((hadc->State & HAL_ADC_STATE_REG_BUSY) == 0UL) + 1070 .loc 1 580 9 view .LVU324 + 1071 .loc 1 580 18 is_stmt 0 view .LVU325 + 1072 00c6 E26D ldr r2, [r4, #92] + 1073 .loc 1 580 12 view .LVU326 + 1074 00c8 12F4807F tst r2, #256 + 1075 00cc 03D1 bne .L75 + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_READY); + 1076 .loc 1 582 11 is_stmt 1 view .LVU327 + 1077 00ce E26D ldr r2, [r4, #92] + 1078 00d0 42F00102 orr r2, r2, #1 + 1079 00d4 E265 str r2, [r4, #92] + 1080 .L75: + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear polled flag */ + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_Flag_End == ADC_FLAG_JEOS) + 1081 .loc 1 589 3 view .LVU328 + 1082 .loc 1 589 6 is_stmt 0 view .LVU329 + 1083 00d6 402E cmp r6, #64 + 1084 00d8 04D0 beq .L86 + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear end of sequence JEOS flag of injected group if low power feature */ + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* "LowPowerAutoWait " is disabled, to not interfere with this feature. */ + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* For injected groups, no new conversion will start before JEOS is */ + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* cleared. */ + ARM GAS /tmp/cc3JIfda.s page 156 + + + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (READ_BIT(tmp_cfgr, ADC_CFGR_AUTDLY) == 0UL) + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JEOC | ADC_FLAG_JEOS)); + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_JEOC); + 1085 .loc 1 602 5 is_stmt 1 view .LVU330 + 1086 00da 2022 movs r2, #32 + 1087 00dc 1A60 str r2, [r3] + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return API HAL status */ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_OK; + 1088 .loc 1 606 10 is_stmt 0 view .LVU331 + 1089 00de 0020 movs r0, #0 + 1090 .LVL86: + 1091 .L66: + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1092 .loc 1 607 1 view .LVU332 + 1093 00e0 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1094 .LVL87: + 1095 .L86: + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1096 .loc 1 595 5 is_stmt 1 view .LVU333 + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1097 .loc 1 595 8 is_stmt 0 view .LVU334 + 1098 00e4 11F4804F tst r1, #16384 + 1099 00e8 03D1 bne .L81 + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1100 .loc 1 597 7 is_stmt 1 view .LVU335 + 1101 00ea 6022 movs r2, #96 + 1102 00ec 1A60 str r2, [r3] + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1103 .loc 1 606 10 is_stmt 0 view .LVU336 + 1104 00ee 0020 movs r0, #0 + 1105 .LVL88: + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1106 .loc 1 606 10 view .LVU337 + 1107 00f0 F6E7 b .L66 + 1108 .LVL89: + 1109 .L81: + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1110 .loc 1 606 10 view .LVU338 + 1111 00f2 0020 movs r0, #0 + 1112 .LVL90: + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1113 .loc 1 606 10 view .LVU339 + 1114 00f4 F4E7 b .L66 + 1115 .L88: + 1116 00f6 00BF .align 2 + 1117 .L87: + 1118 00f8 00030050 .word 1342178048 + 1119 00fc 00010050 .word 1342177536 + 1120 .cfi_endproc + 1121 .LFE334: + ARM GAS /tmp/cc3JIfda.s page 157 + + + 1123 .section .text.HAL_ADCEx_InjectedStart_IT,"ax",%progbits + 1124 .align 1 + 1125 .global HAL_ADCEx_InjectedStart_IT + 1126 .syntax unified + 1127 .thumb + 1128 .thumb_func + 1130 HAL_ADCEx_InjectedStart_IT: + 1131 .LVL91: + 1132 .LFB335: + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Enable ADC, start conversion of injected group with interruption. + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Interruptions enabled in this function according to initialization + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * setting : JEOC (end of conversion) or JEOS (end of sequence) + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Case of multimode enabled (when multimode feature is enabled): + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedStart_IT() API must be called for ADC slave first, + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * then for ADC master. + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC slave, ADC is enabled only (conversion is not started). + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC master, ADC is enabled and multimode conversion is started. + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle. + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status. + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc) + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1133 .loc 1 622 1 is_stmt 1 view -0 + 1134 .cfi_startproc + 1135 @ args = 0, pretend = 0, frame = 0 + 1136 @ frame_needed = 0, uses_anonymous_args = 0 + 1137 .loc 1 622 1 is_stmt 0 view .LVU341 + 1138 0000 38B5 push {r3, r4, r5, lr} + 1139 .LCFI12: + 1140 .cfi_def_cfa_offset 16 + 1141 .cfi_offset 3, -16 + 1142 .cfi_offset 4, -12 + 1143 .cfi_offset 5, -8 + 1144 .cfi_offset 14, -4 + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 1145 .loc 1 623 3 is_stmt 1 view .LVU342 + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_config_injected_queue; + 1146 .loc 1 624 3 view .LVU343 + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_multimode_config = LL_ADC_GetMultimode(__LL_ADC_COMMON_INSTANCE(hadc->Instance)); + 1147 .loc 1 626 3 view .LVU344 + 1148 .LVL92: + 1149 .LBB316: + 1150 .LBI316: +6392:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1151 .loc 2 6392 26 view .LVU345 + 1152 .LBB317: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1153 .loc 2 6394 3 view .LVU346 +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1154 .loc 2 6394 21 is_stmt 0 view .LVU347 + 1155 0002 4A4B ldr r3, .L114 + 1156 0004 9D68 ldr r5, [r3, #8] + 1157 .LVL93: +6394:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 158 + + + 1158 .loc 2 6394 21 view .LVU348 + 1159 .LBE317: + 1160 .LBE316: + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 1161 .loc 1 630 3 is_stmt 1 view .LVU349 + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) != 0UL) + 1162 .loc 1 632 3 view .LVU350 + 1163 .loc 1 632 7 is_stmt 0 view .LVU351 + 1164 0006 0368 ldr r3, [r0] + 1165 .LVL94: + 1166 .LBB318: + 1167 .LBI318: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1168 .loc 2 7076 26 is_stmt 1 view .LVU352 + 1169 .LBB319: + 1170 .loc 2 7078 3 view .LVU353 + 1171 .loc 2 7078 12 is_stmt 0 view .LVU354 + 1172 0008 9A68 ldr r2, [r3, #8] + 1173 .loc 2 7078 76 view .LVU355 + 1174 000a 12F0080F tst r2, #8 + 1175 000e 40F08980 bne .L105 + 1176 0012 0446 mov r4, r0 + 1177 0014 05F01F05 and r5, r5, #31 + 1178 .LVL95: + 1179 .loc 2 7078 76 view .LVU356 + 1180 .LBE319: + 1181 .LBE318: + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_BUSY; + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* In case of software trigger detection enabled, JQDIS must be set + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (which can be done only if ADSTART and JADSTART are both cleared). + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** If JQDIS is not set at that point, returns an error + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - since software trigger detection is disabled. User needs to + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** resort to HAL_ADCEx_DisableInjectedQueue() API to set JQDIS. + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - or (if JQDIS is intentionally reset) since JEXTEN = 0 which means + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** the queue is empty */ + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_config_injected_queue = READ_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + 1182 .loc 1 645 5 is_stmt 1 view .LVU357 + 1183 .loc 1 645 33 is_stmt 0 view .LVU358 + 1184 0018 DA68 ldr r2, [r3, #12] + 1185 .LVL96: + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((READ_BIT(hadc->Instance->JSQR, ADC_JSQR_JEXTEN) == 0UL) + 1186 .loc 1 647 5 is_stmt 1 view .LVU359 + 1187 .loc 1 647 10 is_stmt 0 view .LVU360 + 1188 001a DB6C ldr r3, [r3, #76] + 1189 .loc 1 647 8 view .LVU361 + 1190 001c 13F4C07F tst r3, #384 + 1191 0020 01D1 bne .L91 + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_config_injected_queue == 0UL) + ARM GAS /tmp/cc3JIfda.s page 159 + + + 1192 .loc 1 648 9 view .LVU362 + 1193 0022 002A cmp r2, #0 + 1194 0024 53DA bge .L110 + 1195 .L91: + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 1196 .loc 1 656 5 is_stmt 1 view .LVU363 + 1197 .loc 1 656 5 view .LVU364 + 1198 0026 94F85830 ldrb r3, [r4, #88] @ zero_extendqisi2 + 1199 002a 012B cmp r3, #1 + 1200 002c 7CD0 beq .L106 + 1201 .loc 1 656 5 discriminator 2 view .LVU365 + 1202 002e 0123 movs r3, #1 + 1203 0030 84F85830 strb r3, [r4, #88] + 1204 .loc 1 656 5 discriminator 2 view .LVU366 + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable the ADC peripheral */ + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Enable(hadc); + 1205 .loc 1 659 5 discriminator 2 view .LVU367 + 1206 .loc 1 659 22 is_stmt 0 discriminator 2 view .LVU368 + 1207 0034 2046 mov r0, r4 + 1208 .LVL97: + 1209 .loc 1 659 22 discriminator 2 view .LVU369 + 1210 0036 FFF7FEFF bl ADC_Enable + 1211 .LVL98: + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start conversion if ADC is effectively enabled */ + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 1212 .loc 1 662 5 is_stmt 1 discriminator 2 view .LVU370 + 1213 .loc 1 662 8 is_stmt 0 discriminator 2 view .LVU371 + 1214 003a 0028 cmp r0, #0 + 1215 003c 6ED1 bne .L92 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if a regular conversion is ongoing */ + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((hadc->State & HAL_ADC_STATE_REG_BUSY) != 0UL) + 1216 .loc 1 665 7 is_stmt 1 view .LVU372 + 1217 .loc 1 665 16 is_stmt 0 view .LVU373 + 1218 003e E36D ldr r3, [r4, #92] + 1219 .loc 1 665 10 view .LVU374 + 1220 0040 13F4807F tst r3, #256 + 1221 0044 49D0 beq .L93 + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Reset ADC error code field related to injected conversions only */ + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->ErrorCode, HAL_ADC_ERROR_JQOVF); + 1222 .loc 1 668 9 is_stmt 1 view .LVU375 + 1223 0046 236E ldr r3, [r4, #96] + 1224 0048 23F00803 bic r3, r3, #8 + 1225 004c 2366 str r3, [r4, #96] + 1226 .L94: + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + ARM GAS /tmp/cc3JIfda.s page 160 + + + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC error code to none */ + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(hadc); + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Clear state bitfield related to injected group conversion results */ + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Set state bitfield related to injected operation */ + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 1227 .loc 1 679 7 view .LVU376 + 1228 004e E36D ldr r3, [r4, #92] + 1229 0050 23F44053 bic r3, r3, #12288 + 1230 0054 23F00103 bic r3, r3, #1 + 1231 0058 43F48053 orr r3, r3, #4096 + 1232 005c E365 str r3, [r4, #92] + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_INJ_EOC, + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY); + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Reset HAL_ADC_STATE_MULTIMODE_SLAVE bit + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - if ADC instance is master or if multimode feature is not available + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** - if multimode setting is disabled (ADC instance slave in independent mode) */ + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 1233 .loc 1 687 7 view .LVU377 + 1234 .loc 1 687 12 is_stmt 0 view .LVU378 + 1235 005e 2368 ldr r3, [r4] + 1236 0060 334A ldr r2, .L114+4 + 1237 0062 9342 cmp r3, r2 + 1238 0064 3CD0 beq .L111 + 1239 0066 1A46 mov r2, r3 + 1240 .L95: + 1241 .loc 1 687 10 discriminator 4 view .LVU379 + 1242 0068 9342 cmp r3, r2 + 1243 006a 00D0 beq .L96 + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1244 .loc 1 688 11 view .LVU380 + 1245 006c 1DB9 cbnz r5, .L97 + 1246 .L96: + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + 1247 .loc 1 691 9 is_stmt 1 view .LVU381 + 1248 006e E26D ldr r2, [r4, #92] + 1249 0070 22F48012 bic r2, r2, #1048576 + 1250 0074 E265 str r2, [r4, #92] + 1251 .L97: + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear ADC group injected group conversion flag */ + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* (To ensure of no unknown state from potential previous ADC operations) */ + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JEOC | ADC_FLAG_JEOS)); + 1252 .loc 1 697 7 view .LVU382 + 1253 0076 6022 movs r2, #96 + 1254 0078 1A60 str r2, [r3] + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + ARM GAS /tmp/cc3JIfda.s page 161 + + + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Unlock before starting ADC conversions: in case of potential */ + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* interruption, to let the process to ADC IRQ Handler. */ + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 1255 .loc 1 702 7 view .LVU383 + 1256 .loc 1 702 7 view .LVU384 + 1257 007a 0023 movs r3, #0 + 1258 007c 84F85830 strb r3, [r4, #88] + 1259 .loc 1 702 7 view .LVU385 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable ADC Injected context queue overflow interrupt if this feature */ + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* is enabled. */ + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((hadc->Instance->CFGR & ADC_CFGR_JQM) != 0UL) + 1260 .loc 1 706 7 view .LVU386 + 1261 .loc 1 706 16 is_stmt 0 view .LVU387 + 1262 0080 2368 ldr r3, [r4] + 1263 .loc 1 706 26 view .LVU388 + 1264 0082 DA68 ldr r2, [r3, #12] + 1265 .loc 1 706 10 view .LVU389 + 1266 0084 12F4001F tst r2, #2097152 + 1267 0088 03D0 beq .L98 + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_FLAG_JQOVF); + 1268 .loc 1 708 9 is_stmt 1 view .LVU390 + 1269 008a 5A68 ldr r2, [r3, #4] + 1270 008c 42F48062 orr r2, r2, #1024 + 1271 0090 5A60 str r2, [r3, #4] + 1272 .L98: + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable ADC end of conversion interrupt */ + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** switch (hadc->Init.EOCSelection) + 1273 .loc 1 712 7 view .LVU391 + 1274 .loc 1 712 25 is_stmt 0 view .LVU392 + 1275 0092 A369 ldr r3, [r4, #24] + 1276 .loc 1 712 7 view .LVU393 + 1277 0094 082B cmp r3, #8 + 1278 0096 26D0 beq .L112 + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_EOC_SEQ_CONV: + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* case ADC_EOC_SINGLE_CONV */ + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** default: + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOS); + 1279 .loc 1 720 11 is_stmt 1 view .LVU394 + 1280 0098 2268 ldr r2, [r4] + 1281 009a 5368 ldr r3, [r2, #4] + 1282 009c 23F04003 bic r3, r3, #64 + 1283 00a0 5360 str r3, [r2, #4] + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOC); + 1284 .loc 1 721 11 view .LVU395 + 1285 00a2 2268 ldr r2, [r4] + 1286 00a4 5368 ldr r3, [r2, #4] + 1287 00a6 43F02003 orr r3, r3, #32 + 1288 00aa 5360 str r3, [r2, #4] + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + ARM GAS /tmp/cc3JIfda.s page 162 + + + 1289 .loc 1 722 11 view .LVU396 + 1290 .L100: + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable conversion of injected group, if automatic injected conversion */ + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* is disabled. */ + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If software start has been selected, conversion starts immediately. */ + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If external trigger has been selected, conversion will start at next */ + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* trigger event. */ + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Case of multimode enabled (when multimode feature is available): */ + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if ADC is slave, */ + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - ADC is enabled only (conversion is not started), */ + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - if multimode only concerns regular conversion, ADC is enabled */ + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* and conversion is started. */ + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If ADC is master or independent, */ + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - ADC is enabled and conversion is started. */ + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((__LL_ADC_MULTI_INSTANCE_MASTER(hadc->Instance) == hadc->Instance) + 1291 .loc 1 738 7 view .LVU397 + 1292 .loc 1 738 12 is_stmt 0 view .LVU398 + 1293 00ac 2368 ldr r3, [r4] + 1294 00ae 204A ldr r2, .L114+4 + 1295 00b0 9342 cmp r3, r2 + 1296 00b2 23D0 beq .L113 + 1297 00b4 1A46 mov r2, r3 + 1298 .L101: + 1299 .loc 1 738 10 discriminator 4 view .LVU399 + 1300 00b6 9342 cmp r3, r2 + 1301 00b8 23D0 beq .L102 + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1302 .loc 1 739 11 view .LVU400 + 1303 00ba 15B3 cbz r5, .L102 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_SIMULT) + 1304 .loc 1 740 11 view .LVU401 + 1305 00bc 062D cmp r5, #6 + 1306 00be 20D0 beq .L102 + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_DUAL_REG_INTERL) + 1307 .loc 1 741 11 view .LVU402 + 1308 00c0 072D cmp r5, #7 + 1309 00c2 1ED0 beq .L102 + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ADC instance is not a multimode slave instance with multimode injected conversions enabl + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_INJ_StartConversion(hadc->Instance); + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ADC instance is not a multimode slave instance with multimode injected conversions enabl + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_MULTIMODE_SLAVE); + 1310 .loc 1 753 9 is_stmt 1 view .LVU403 + 1311 00c4 E36D ldr r3, [r4, #92] + 1312 00c6 43F48013 orr r3, r3, #1048576 + 1313 00ca E365 str r3, [r4, #92] + 1314 00cc 2BE0 b .L90 + ARM GAS /tmp/cc3JIfda.s page 163 + + + 1315 .LVL99: + 1316 .L110: + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; + 1317 .loc 1 651 7 view .LVU404 + 1318 00ce C36D ldr r3, [r0, #92] + 1319 00d0 43F02003 orr r3, r3, #32 + 1320 00d4 C365 str r3, [r0, #92] + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1321 .loc 1 652 7 view .LVU405 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1322 .loc 1 652 14 is_stmt 0 view .LVU406 + 1323 00d6 0120 movs r0, #1 + 1324 .LVL100: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1325 .loc 1 652 14 view .LVU407 + 1326 00d8 25E0 b .L90 + 1327 .LVL101: + 1328 .L93: + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1329 .loc 1 673 9 is_stmt 1 view .LVU408 + 1330 00da 0023 movs r3, #0 + 1331 00dc 2366 str r3, [r4, #96] + 1332 00de B6E7 b .L94 + 1333 .L111: + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1334 .loc 1 687 12 is_stmt 0 view .LVU409 + 1335 00e0 4FF0A042 mov r2, #1342177280 + 1336 00e4 C0E7 b .L95 + 1337 .L112: + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_JEOS); + 1338 .loc 1 715 11 is_stmt 1 view .LVU410 + 1339 00e6 2268 ldr r2, [r4] + 1340 00e8 5368 ldr r3, [r2, #4] + 1341 00ea 23F02003 bic r3, r3, #32 + 1342 00ee 5360 str r3, [r2, #4] + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 1343 .loc 1 716 11 view .LVU411 + 1344 00f0 2268 ldr r2, [r4] + 1345 00f2 5368 ldr r3, [r2, #4] + 1346 00f4 43F04003 orr r3, r3, #64 + 1347 00f8 5360 str r3, [r2, #4] + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* case ADC_EOC_SINGLE_CONV */ + 1348 .loc 1 717 11 view .LVU412 + 1349 00fa D7E7 b .L100 + 1350 .L113: + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmp_multimode_config == LL_ADC_MULTI_INDEPENDENT) + 1351 .loc 1 738 12 is_stmt 0 view .LVU413 + 1352 00fc 4FF0A042 mov r2, #1342177280 + 1353 0100 D9E7 b .L101 + 1354 .L102: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1355 .loc 1 745 9 is_stmt 1 view .LVU414 + 1356 .LVL102: + 1357 .LBB320: + 1358 .LBI320: +4858:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1359 .loc 2 4858 26 view .LVU415 + ARM GAS /tmp/cc3JIfda.s page 164 + + + 1360 .LBB321: +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1361 .loc 2 4860 3 view .LVU416 +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1362 .loc 2 4860 21 is_stmt 0 view .LVU417 + 1363 0102 DA68 ldr r2, [r3, #12] + 1364 .LVL103: +4860:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1365 .loc 2 4860 21 view .LVU418 + 1366 .LBE321: + 1367 .LBE320: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1368 .loc 1 745 12 view .LVU419 + 1369 0104 12F0007F tst r2, #33554432 + 1370 0108 0DD1 bne .L90 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1371 .loc 1 747 11 is_stmt 1 view .LVU420 + 1372 .LVL104: + 1373 .LBB322: + 1374 .LBI322: +7040:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1375 .loc 2 7040 22 view .LVU421 + 1376 .LBB323: +7045:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 1377 .loc 2 7045 3 view .LVU422 + 1378 010a 9A68 ldr r2, [r3, #8] + 1379 010c 22F00042 bic r2, r2, #-2147483648 + 1380 0110 22F03F02 bic r2, r2, #63 + 1381 0114 42F00802 orr r2, r2, #8 + 1382 0118 9A60 str r2, [r3, #8] +7048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 1383 .loc 2 7048 1 is_stmt 0 view .LVU423 + 1384 011a 04E0 b .L90 + 1385 .LVL105: + 1386 .L92: +7048:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 1387 .loc 2 7048 1 view .LVU424 + 1388 .LBE323: + 1389 .LBE322: + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #else + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_GetTrigAuto(hadc->Instance) == LL_ADC_INJ_TRIG_INDEPENDENT) + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start ADC group injected conversion */ + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_INJ_StartConversion(hadc->Instance); + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 1390 .loc 1 767 7 is_stmt 1 view .LVU425 + 1391 .loc 1 767 7 view .LVU426 + 1392 011c 0023 movs r3, #0 + 1393 011e 84F85830 strb r3, [r4, #88] + ARM GAS /tmp/cc3JIfda.s page 165 + + + 1394 .loc 1 767 7 view .LVU427 + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 1395 .loc 1 771 5 view .LVU428 + 1396 .loc 1 771 12 is_stmt 0 view .LVU429 + 1397 0122 00E0 b .L90 + 1398 .LVL106: + 1399 .L105: + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1400 .loc 1 634 12 view .LVU430 + 1401 0124 0220 movs r0, #2 + 1402 .LVL107: + 1403 .L90: + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1404 .loc 1 773 1 view .LVU431 + 1405 0126 38BD pop {r3, r4, r5, pc} + 1406 .LVL108: + 1407 .L106: + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1408 .loc 1 656 5 view .LVU432 + 1409 0128 0220 movs r0, #2 + 1410 .LVL109: + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1411 .loc 1 656 5 view .LVU433 + 1412 012a FCE7 b .L90 + 1413 .L115: + 1414 .align 2 + 1415 .L114: + 1416 012c 00030050 .word 1342178048 + 1417 0130 00010050 .word 1342177536 + 1418 .cfi_endproc + 1419 .LFE335: + 1421 .section .text.HAL_ADCEx_InjectedStop_IT,"ax",%progbits + 1422 .align 1 + 1423 .global HAL_ADCEx_InjectedStop_IT + 1424 .syntax unified + 1425 .thumb + 1426 .thumb_func + 1428 HAL_ADCEx_InjectedStop_IT: + 1429 .LVL110: + 1430 .LFB336: + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop conversion of injected channels, disable interruption of + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * end-of-conversion. Disable ADC peripheral if no regular conversion + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * is on going. + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note If ADC must be disabled and if conversion is on going on + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * regular group, function HAL_ADC_Stop must be used to stop both + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * injected and regular groups, and disable the ADC. + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note If injected group mode auto-injection is enabled, + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * function HAL_ADC_Stop must be used. + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Case of multimode enabled (when multimode feature is available): + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedStop_IT() API must be called for ADC master first, + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * then for ADC slave. + ARM GAS /tmp/cc3JIfda.s page 166 + + + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC master, conversion is stopped and ADC is disabled. + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For ADC slave, ADC is disabled only (conversion stop of ADC master + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * has already stopped conversion of ADC slave). + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note In case of auto-injection mode, HAL_ADC_Stop() must be used. + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc) + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1431 .loc 1 795 1 is_stmt 1 view -0 + 1432 .cfi_startproc + 1433 @ args = 0, pretend = 0, frame = 0 + 1434 @ frame_needed = 0, uses_anonymous_args = 0 + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 1435 .loc 1 796 3 view .LVU435 + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 1436 .loc 1 799 3 view .LVU436 + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 1437 .loc 1 802 3 view .LVU437 + 1438 .loc 1 802 3 view .LVU438 + 1439 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 1440 0004 012B cmp r3, #1 + 1441 0006 28D0 beq .L120 + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 1442 .loc 1 795 1 is_stmt 0 discriminator 2 view .LVU439 + 1443 0008 10B5 push {r4, lr} + 1444 .LCFI13: + 1445 .cfi_def_cfa_offset 8 + 1446 .cfi_offset 4, -8 + 1447 .cfi_offset 14, -4 + 1448 000a 0446 mov r4, r0 + 1449 .loc 1 802 3 is_stmt 1 discriminator 2 view .LVU440 + 1450 000c 0123 movs r3, #1 + 1451 000e 80F85830 strb r3, [r0, #88] + 1452 .loc 1 802 3 discriminator 2 view .LVU441 + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential conversion on going on injected group only. */ + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_INJECTED_GROUP); + 1453 .loc 1 805 3 discriminator 2 view .LVU442 + 1454 .loc 1 805 20 is_stmt 0 discriminator 2 view .LVU443 + 1455 0012 0221 movs r1, #2 + 1456 0014 FFF7FEFF bl ADC_ConversionStop + 1457 .LVL111: + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if injected conversions are effectively stopped */ + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* and if no conversion on the other group (regular group) is intended to */ + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* continue. */ + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 1458 .loc 1 810 3 is_stmt 1 discriminator 2 view .LVU444 + 1459 .loc 1 810 6 is_stmt 0 discriminator 2 view .LVU445 + 1460 0018 68B9 cbnz r0, .L118 + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC end of conversion interrupt for injected channels */ + ARM GAS /tmp/cc3JIfda.s page 167 + + + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_JEOC | ADC_IT_JEOS | ADC_FLAG_JQOVF)); + 1461 .loc 1 813 5 is_stmt 1 view .LVU446 + 1462 001a 2268 ldr r2, [r4] + 1463 001c 5368 ldr r3, [r2, #4] + 1464 001e 23F48C63 bic r3, r3, #1120 + 1465 0022 5360 str r3, [r2, #4] + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + 1466 .loc 1 815 5 view .LVU447 + 1467 .loc 1 815 9 is_stmt 0 view .LVU448 + 1468 0024 2368 ldr r3, [r4] + 1469 .LVL112: + 1470 .LBB324: + 1471 .LBI324: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1472 .loc 2 6851 26 is_stmt 1 view .LVU449 + 1473 .LBB325: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1474 .loc 2 6853 3 view .LVU450 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1475 .loc 2 6853 12 is_stmt 0 view .LVU451 + 1476 0026 9B68 ldr r3, [r3, #8] + 1477 .LVL113: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1478 .loc 2 6853 74 view .LVU452 + 1479 0028 13F0040F tst r3, #4 + 1480 002c 07D0 beq .L119 + 1481 .LVL114: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1482 .loc 2 6853 74 view .LVU453 + 1483 .LBE325: + 1484 .LBE324: + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable the ADC peripheral */ + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if ADC is effectively disabled */ + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Conversion on injected group is stopped, but ADC not disabled since */ + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion on regular group is still running. */ + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + 1485 .loc 1 834 7 is_stmt 1 view .LVU454 + 1486 002e E36D ldr r3, [r4, #92] + 1487 0030 23F48053 bic r3, r3, #4096 + 1488 0034 E365 str r3, [r4, #92] + 1489 .L118: + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + ARM GAS /tmp/cc3JIfda.s page 168 + + + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 1490 .loc 1 839 3 view .LVU455 + 1491 .loc 1 839 3 view .LVU456 + 1492 0036 0023 movs r3, #0 + 1493 0038 84F85830 strb r3, [r4, #88] + 1494 .loc 1 839 3 view .LVU457 + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 1495 .loc 1 842 3 view .LVU458 + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1496 .loc 1 843 1 is_stmt 0 view .LVU459 + 1497 003c 10BD pop {r4, pc} + 1498 .LVL115: + 1499 .L119: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1500 .loc 1 818 7 is_stmt 1 view .LVU460 + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1501 .loc 1 818 24 is_stmt 0 view .LVU461 + 1502 003e 2046 mov r0, r4 + 1503 .LVL116: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1504 .loc 1 818 24 view .LVU462 + 1505 0040 FFF7FEFF bl ADC_Disable + 1506 .LVL117: + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1507 .loc 1 821 7 is_stmt 1 view .LVU463 + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1508 .loc 1 821 10 is_stmt 0 view .LVU464 + 1509 0044 0028 cmp r0, #0 + 1510 0046 F6D1 bne .L118 + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, + 1511 .loc 1 824 9 is_stmt 1 view .LVU465 + 1512 0048 E36D ldr r3, [r4, #92] + 1513 004a 23F48853 bic r3, r3, #4352 + 1514 004e 23F00103 bic r3, r3, #1 + 1515 0052 43F00103 orr r3, r3, #1 + 1516 0056 E365 str r3, [r4, #92] + 1517 0058 EDE7 b .L118 + 1518 .LVL118: + 1519 .L120: + 1520 .LCFI14: + 1521 .cfi_def_cfa_offset 0 + 1522 .cfi_restore 4 + 1523 .cfi_restore 14 + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1524 .loc 1 802 3 is_stmt 0 view .LVU466 + 1525 005a 0220 movs r0, #2 + 1526 .LVL119: + 1527 .loc 1 843 1 view .LVU467 + 1528 005c 7047 bx lr + 1529 .cfi_endproc + 1530 .LFE336: + 1532 .section .text.HAL_ADCEx_MultiModeStart_DMA,"ax",%progbits + ARM GAS /tmp/cc3JIfda.s page 169 + + + 1533 .align 1 + 1534 .global HAL_ADCEx_MultiModeStart_DMA + 1535 .syntax unified + 1536 .thumb + 1537 .thumb_func + 1539 HAL_ADCEx_MultiModeStart_DMA: + 1540 .LVL120: + 1541 .LFB337: + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Enable ADC, start MultiMode conversion and transfer regular results through DMA. + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Multimode must have been previously configured using + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_MultiModeConfigChannel() function. + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Interruptions enabled in this function: + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * overrun, DMA half transfer, DMA transfer complete. + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Each of these interruptions has its dedicated callback function. + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note State field of Slave ADC handle is not updated in this configuration: + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * user should not rely on it for information related to Slave regular + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * conversions. + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle of ADC master (handle of ADC slave must not be used) + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param pData Destination Buffer address. + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param Length Length of data to be transferred from ADC peripheral to memory (in bytes). + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t L + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1542 .loc 1 862 1 is_stmt 1 view -0 + 1543 .cfi_startproc + 1544 @ args = 0, pretend = 0, frame = 112 + 1545 @ frame_needed = 0, uses_anonymous_args = 0 + 1546 .loc 1 862 1 is_stmt 0 view .LVU469 + 1547 0000 70B5 push {r4, r5, r6, lr} + 1548 .LCFI15: + 1549 .cfi_def_cfa_offset 16 + 1550 .cfi_offset 4, -16 + 1551 .cfi_offset 5, -12 + 1552 .cfi_offset 6, -8 + 1553 .cfi_offset 14, -4 + 1554 0002 9CB0 sub sp, sp, #112 + 1555 .LCFI16: + 1556 .cfi_def_cfa_offset 128 + 1557 0004 0446 mov r4, r0 + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 1558 .loc 1 863 3 is_stmt 1 view .LVU470 + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_HandleTypeDef tmphadcSlave; + 1559 .loc 1 864 3 view .LVU471 + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_Common_TypeDef *tmpADC_Common; + 1560 .loc 1 865 3 view .LVU472 + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + 1561 .loc 1 868 3 view .LVU473 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); + 1562 .loc 1 869 3 view .LVU474 + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); + 1563 .loc 1 870 3 view .LVU475 + ARM GAS /tmp/cc3JIfda.s page 170 + + + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); + 1564 .loc 1 871 3 view .LVU476 + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) != 0UL) + 1565 .loc 1 873 3 view .LVU477 + 1566 .loc 1 873 7 is_stmt 0 view .LVU478 + 1567 0006 0068 ldr r0, [r0] + 1568 .LVL121: + 1569 .LBB326: + 1570 .LBI326: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1571 .loc 2 6851 26 is_stmt 1 view .LVU479 + 1572 .LBB327: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1573 .loc 2 6853 3 view .LVU480 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1574 .loc 2 6853 12 is_stmt 0 view .LVU481 + 1575 0008 8068 ldr r0, [r0, #8] + 1576 .LVL122: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1577 .loc 2 6853 74 view .LVU482 + 1578 000a 10F0040F tst r0, #4 + 1579 000e 5AD1 bne .L132 + 1580 0010 0E46 mov r6, r1 + 1581 0012 1546 mov r5, r2 + 1582 .LVL123: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1583 .loc 2 6853 74 view .LVU483 + 1584 .LBE327: + 1585 .LBE326: + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_BUSY; + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 1586 .loc 1 880 5 is_stmt 1 view .LVU484 + 1587 .loc 1 880 5 view .LVU485 + 1588 0014 94F85830 ldrb r3, [r4, #88] @ zero_extendqisi2 + 1589 0018 012B cmp r3, #1 + 1590 001a 57D0 beq .L133 + 1591 .loc 1 880 5 discriminator 2 view .LVU486 + 1592 001c 0123 movs r3, #1 + 1593 001e 84F85830 strb r3, [r4, #88] + 1594 .loc 1 880 5 discriminator 2 view .LVU487 + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Temporary handle minimum initialization */ + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_RESET_HANDLE_STATE(&tmphadcSlave); + 1595 .loc 1 883 5 discriminator 2 view .LVU488 + 1596 0022 0023 movs r3, #0 + 1597 0024 1893 str r3, [sp, #96] + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(&tmphadcSlave); + 1598 .loc 1 884 5 discriminator 2 view .LVU489 + 1599 0026 1993 str r3, [sp, #100] + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set a temporary handle of the ADC slave associated to the ADC master */ + ARM GAS /tmp/cc3JIfda.s page 171 + + + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_MULTI_SLAVE(hadc, &tmphadcSlave); + 1600 .loc 1 887 5 discriminator 2 view .LVU490 + 1601 0028 2368 ldr r3, [r4] + 1602 002a B3F1A04F cmp r3, #1342177280 + 1603 002e 0BD0 beq .L135 + 1604 0030 0023 movs r3, #0 + 1605 0032 0193 str r3, [sp, #4] + 1606 .L128: + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmphadcSlave.Instance == NULL) + 1607 .loc 1 889 5 view .LVU491 + 1608 .loc 1 889 21 is_stmt 0 view .LVU492 + 1609 0034 019B ldr r3, [sp, #4] + 1610 .loc 1 889 8 view .LVU493 + 1611 0036 5BB1 cbz r3, .L136 + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable the ADC peripherals: master and slave (in case if not already */ + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* enabled previously) */ + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Enable(hadc); + 1612 .loc 1 902 5 is_stmt 1 view .LVU494 + 1613 .loc 1 902 22 is_stmt 0 view .LVU495 + 1614 0038 2046 mov r0, r4 + 1615 003a FFF7FEFF bl ADC_Enable + 1616 .LVL124: + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 1617 .loc 1 903 5 is_stmt 1 view .LVU496 + 1618 .loc 1 903 8 is_stmt 0 view .LVU497 + 1619 003e 80B1 cbz r0, .L137 + 1620 .L130: + 1621 .LVL125: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Enable(&tmphadcSlave); + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start multimode conversion of ADCs pair */ + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_ + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY); + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC error code to none */ + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(hadc); + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set the DMA transfer complete callback */ + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + ARM GAS /tmp/cc3JIfda.s page 172 + + + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set the DMA half transfer complete callback */ + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set the DMA error callback */ + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->DMA_Handle->XferErrorCallback = ADC_DMAError ; + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Pointer to the common control register */ + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Manage ADC and DMA start: ADC overrun interruption, DMA start, ADC */ + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* start (in case of SW start): */ + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear regular group conversion flag and overrun flag */ + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* (To ensure of no unknown state from potential previous ADC operations) */ + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Unlock before starting ADC conversions: in case of potential */ + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* interruption, to let the process to ADC IRQ Handler. */ + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable ADC overrun interrupt */ + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start the DMA channel */ + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&tmpADC_Common->CDR, (uint32_t) + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable conversion of regular group. */ + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If software start has been selected, conversion starts immediately. */ + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If external trigger has been selected, conversion will start at next */ + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* trigger event. */ + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Start ADC group regular conversion */ + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_REG_StartConversion(hadc->Instance); + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 1622 .loc 1 959 7 is_stmt 1 view .LVU498 + 1623 .loc 1 959 7 view .LVU499 + 1624 0040 0023 movs r3, #0 + 1625 0042 84F85830 strb r3, [r4, #88] + 1626 .LVL126: + 1627 .loc 1 959 7 view .LVU500 + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 1628 .loc 1 963 5 view .LVU501 + 1629 .loc 1 963 12 is_stmt 0 view .LVU502 + 1630 0046 3FE0 b .L126 + 1631 .LVL127: + 1632 .L135: + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1633 .loc 1 887 5 discriminator 1 view .LVU503 + 1634 0048 03F58073 add r3, r3, #256 + 1635 004c 0193 str r3, [sp, #4] + ARM GAS /tmp/cc3JIfda.s page 173 + + + 1636 004e F1E7 b .L128 + 1637 .L136: + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1638 .loc 1 892 7 is_stmt 1 view .LVU504 + 1639 0050 E36D ldr r3, [r4, #92] + 1640 0052 43F02003 orr r3, r3, #32 + 1641 0056 E365 str r3, [r4, #92] + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1642 .loc 1 895 7 view .LVU505 + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1643 .loc 1 895 7 view .LVU506 + 1644 0058 0023 movs r3, #0 + 1645 005a 84F85830 strb r3, [r4, #88] + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1646 .loc 1 895 7 view .LVU507 + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1647 .loc 1 897 7 view .LVU508 + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1648 .loc 1 897 14 is_stmt 0 view .LVU509 + 1649 005e 0120 movs r0, #1 + 1650 0060 32E0 b .L126 + 1651 .LVL128: + 1652 .L137: + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1653 .loc 1 905 7 is_stmt 1 view .LVU510 + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1654 .loc 1 905 24 is_stmt 0 view .LVU511 + 1655 0062 01A8 add r0, sp, #4 + 1656 .LVL129: + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1657 .loc 1 905 24 view .LVU512 + 1658 0064 FFF7FEFF bl ADC_Enable + 1659 .LVL130: + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1660 .loc 1 909 5 is_stmt 1 view .LVU513 + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1661 .loc 1 909 8 is_stmt 0 view .LVU514 + 1662 0068 0028 cmp r0, #0 + 1663 006a E9D1 bne .L130 + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_ + 1664 .loc 1 912 7 is_stmt 1 view .LVU515 + 1665 006c E36D ldr r3, [r4, #92] + 1666 006e 23F47063 bic r3, r3, #3840 + 1667 0072 23F00103 bic r3, r3, #1 + 1668 0076 43F48073 orr r3, r3, #256 + 1669 007a E365 str r3, [r4, #92] + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1670 .loc 1 917 7 view .LVU516 + 1671 007c 0023 movs r3, #0 + 1672 007e 2366 str r3, [r4, #96] + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1673 .loc 1 920 7 view .LVU517 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1674 .loc 1 920 11 is_stmt 0 view .LVU518 + 1675 0080 626D ldr r2, [r4, #84] + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1676 .loc 1 920 42 view .LVU519 + ARM GAS /tmp/cc3JIfda.s page 174 + + + 1677 0082 1349 ldr r1, .L138 + 1678 0084 D162 str r1, [r2, #44] + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1679 .loc 1 923 7 is_stmt 1 view .LVU520 + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1680 .loc 1 923 11 is_stmt 0 view .LVU521 + 1681 0086 626D ldr r2, [r4, #84] + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1682 .loc 1 923 46 view .LVU522 + 1683 0088 1249 ldr r1, .L138+4 + 1684 008a 1163 str r1, [r2, #48] + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1685 .loc 1 926 7 is_stmt 1 view .LVU523 + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1686 .loc 1 926 11 is_stmt 0 view .LVU524 + 1687 008c 626D ldr r2, [r4, #84] + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1688 .loc 1 926 43 view .LVU525 + 1689 008e 1249 ldr r1, .L138+8 + 1690 0090 5163 str r1, [r2, #52] + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1691 .loc 1 929 7 is_stmt 1 view .LVU526 + 1692 .LVL131: + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1693 .loc 1 936 7 view .LVU527 + 1694 0092 2268 ldr r2, [r4] + 1695 0094 1C21 movs r1, #28 + 1696 0096 1160 str r1, [r2] + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1697 .loc 1 941 7 view .LVU528 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1698 .loc 1 941 7 view .LVU529 + 1699 0098 84F85830 strb r3, [r4, #88] + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1700 .loc 1 941 7 view .LVU530 + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1701 .loc 1 944 7 view .LVU531 + 1702 009c 2268 ldr r2, [r4] + 1703 009e 5368 ldr r3, [r2, #4] + 1704 00a0 43F01003 orr r3, r3, #16 + 1705 00a4 5360 str r3, [r2, #4] + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1706 .loc 1 947 7 view .LVU532 + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1707 .loc 1 947 24 is_stmt 0 view .LVU533 + 1708 00a6 2B46 mov r3, r5 + 1709 00a8 3246 mov r2, r6 + 1710 00aa 0C49 ldr r1, .L138+12 + 1711 00ac 606D ldr r0, [r4, #84] + 1712 .LVL132: + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1713 .loc 1 947 24 view .LVU534 + 1714 00ae FFF7FEFF bl HAL_DMA_Start_IT + 1715 .LVL133: + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1716 .loc 1 954 7 is_stmt 1 view .LVU535 + 1717 00b2 2268 ldr r2, [r4] + ARM GAS /tmp/cc3JIfda.s page 175 + + + 1718 .LVL134: + 1719 .LBB328: + 1720 .LBI328: +6815:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1721 .loc 2 6815 22 view .LVU536 + 1722 .LBB329: +6820:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 1723 .loc 2 6820 3 view .LVU537 + 1724 00b4 9368 ldr r3, [r2, #8] + 1725 00b6 23F00043 bic r3, r3, #-2147483648 + 1726 00ba 23F03F03 bic r3, r3, #63 + 1727 00be 43F00403 orr r3, r3, #4 + 1728 00c2 9360 str r3, [r2, #8] +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 1729 .loc 2 6823 1 is_stmt 0 view .LVU538 + 1730 00c4 00E0 b .L126 + 1731 .LVL135: + 1732 .L132: +6823:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 1733 .loc 2 6823 1 view .LVU539 + 1734 .LBE329: + 1735 .LBE328: + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1736 .loc 1 875 12 view .LVU540 + 1737 00c6 0220 movs r0, #2 + 1738 .LVL136: + 1739 .L126: + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1740 .loc 1 965 1 view .LVU541 + 1741 00c8 1CB0 add sp, sp, #112 + 1742 .LCFI17: + 1743 .cfi_remember_state + 1744 .cfi_def_cfa_offset 16 + 1745 @ sp needed + 1746 00ca 70BD pop {r4, r5, r6, pc} + 1747 .LVL137: + 1748 .L133: + 1749 .LCFI18: + 1750 .cfi_restore_state + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1751 .loc 1 880 5 view .LVU542 + 1752 00cc 0220 movs r0, #2 + 1753 00ce FBE7 b .L126 + 1754 .L139: + 1755 .align 2 + 1756 .L138: + 1757 00d0 00000000 .word ADC_DMAConvCplt + 1758 00d4 00000000 .word ADC_DMAHalfConvCplt + 1759 00d8 00000000 .word ADC_DMAError + 1760 00dc 0C030050 .word 1342178060 + 1761 .cfi_endproc + 1762 .LFE337: + 1764 .section .text.HAL_ADCEx_MultiModeStop_DMA,"ax",%progbits + 1765 .align 1 + 1766 .global HAL_ADCEx_MultiModeStop_DMA + 1767 .syntax unified + ARM GAS /tmp/cc3JIfda.s page 176 + + + 1768 .thumb + 1769 .thumb_func + 1771 HAL_ADCEx_MultiModeStop_DMA: + 1772 .LVL138: + 1773 .LFB338: + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop multimode ADC conversion, disable ADC DMA transfer, disable ADC peripheral. + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Multimode is kept enabled after this function. MultiMode DMA bits + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * (MDMA and DMACFG bits of common CCR register) are maintained. To disable + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Multimode (set with HAL_ADCEx_MultiModeConfigChannel()), ADC must be + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * reinitialized using HAL_ADC_Init() or HAL_ADC_DeInit(), or the user can + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * resort to HAL_ADCEx_DisableMultiMode() API. + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note In case of DMA configured in circular mode, function + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADC_Stop_DMA() must be called after this function with handle of + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * ADC slave, to properly disable the DMA channel. + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle of ADC master (handle of ADC slave must not be used) + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc) + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1774 .loc 1 981 1 is_stmt 1 view -0 + 1775 .cfi_startproc + 1776 @ args = 0, pretend = 0, frame = 112 + 1777 @ frame_needed = 0, uses_anonymous_args = 0 + 1778 .loc 1 981 1 is_stmt 0 view .LVU544 + 1779 0000 70B5 push {r4, r5, r6, lr} + 1780 .LCFI19: + 1781 .cfi_def_cfa_offset 16 + 1782 .cfi_offset 4, -16 + 1783 .cfi_offset 5, -12 + 1784 .cfi_offset 6, -8 + 1785 .cfi_offset 14, -4 + 1786 0002 9CB0 sub sp, sp, #112 + 1787 .LCFI20: + 1788 .cfi_def_cfa_offset 128 + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 1789 .loc 1 982 3 is_stmt 1 view .LVU545 + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tickstart; + 1790 .loc 1 983 3 view .LVU546 + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_HandleTypeDef tmphadcSlave; + 1791 .loc 1 984 3 view .LVU547 + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmphadcSlave_conversion_on_going; + 1792 .loc 1 985 3 view .LVU548 + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmphadcSlave_disable_status; + 1793 .loc 1 986 3 view .LVU549 + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + 1794 .loc 1 989 3 view .LVU550 + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 1795 .loc 1 992 3 view .LVU551 + 1796 .loc 1 992 3 view .LVU552 + 1797 0004 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 1798 0008 012B cmp r3, #1 + ARM GAS /tmp/cc3JIfda.s page 177 + + + 1799 000a 00F08580 beq .L158 + 1800 000e 0446 mov r4, r0 + 1801 .loc 1 992 3 discriminator 2 view .LVU553 + 1802 0010 0123 movs r3, #1 + 1803 0012 80F85830 strb r3, [r0, #88] + 1804 .loc 1 992 3 discriminator 2 view .LVU554 + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential multimode conversion on going, on regular and injected groups */ + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_INJECTED_GROUP); + 1805 .loc 1 996 3 discriminator 2 view .LVU555 + 1806 .loc 1 996 20 is_stmt 0 discriminator 2 view .LVU556 + 1807 0016 0321 movs r1, #3 + 1808 0018 FFF7FEFF bl ADC_ConversionStop + 1809 .LVL139: + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if conversions are effectively stopped */ + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 1810 .loc 1 999 3 is_stmt 1 discriminator 2 view .LVU557 + 1811 .loc 1 999 6 is_stmt 0 discriminator 2 view .LVU558 + 1812 001c 0546 mov r5, r0 + 1813 001e 0028 cmp r0, #0 + 1814 0020 74D1 bne .L142 +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Temporary handle minimum initialization */ +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_RESET_HANDLE_STATE(&tmphadcSlave); + 1815 .loc 1 1002 5 is_stmt 1 view .LVU559 + 1816 0022 0023 movs r3, #0 + 1817 0024 1893 str r3, [sp, #96] +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(&tmphadcSlave); + 1818 .loc 1 1003 5 view .LVU560 + 1819 0026 1993 str r3, [sp, #100] +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set a temporary handle of the ADC slave associated to the ADC master */ +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_MULTI_SLAVE(hadc, &tmphadcSlave); + 1820 .loc 1 1006 5 view .LVU561 + 1821 0028 2368 ldr r3, [r4] + 1822 002a B3F1A04F cmp r3, #1342177280 + 1823 002e 0DD0 beq .L161 + 1824 .loc 1 1006 5 is_stmt 0 discriminator 2 view .LVU562 + 1825 0030 0023 movs r3, #0 + 1826 0032 0193 str r3, [sp, #4] + 1827 .L144: +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmphadcSlave.Instance == NULL) + 1828 .loc 1 1008 5 is_stmt 1 view .LVU563 + 1829 .loc 1 1008 21 is_stmt 0 view .LVU564 + 1830 0034 019B ldr r3, [sp, #4] + 1831 .loc 1 1008 8 view .LVU565 + 1832 0036 6BB1 cbz r3, .L162 +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + ARM GAS /tmp/cc3JIfda.s page 178 + + +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Procedure to disable the ADC peripheral: wait for conversions */ +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* effectively stopped (ADC master and ADC slave), then disable ADC */ +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Wait for ADC conversion completion for ADC master and ADC slave */ +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tickstart = HAL_GetTick(); + 1833 .loc 1 1023 5 is_stmt 1 view .LVU566 + 1834 .loc 1 1023 17 is_stmt 0 view .LVU567 + 1835 0038 FFF7FEFF bl HAL_GetTick + 1836 .LVL140: + 1837 .loc 1 1023 17 view .LVU568 + 1838 003c 0546 mov r5, r0 + 1839 .LVL141: +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance); + 1840 .loc 1 1025 5 is_stmt 1 view .LVU569 + 1841 .loc 1 1025 40 is_stmt 0 view .LVU570 + 1842 003e 019B ldr r3, [sp, #4] + 1843 .LVL142: + 1844 .LBB330: + 1845 .LBI330: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1846 .loc 2 6851 26 is_stmt 1 view .LVU571 + 1847 .LBB331: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1848 .loc 2 6853 3 view .LVU572 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1849 .loc 2 6853 12 is_stmt 0 view .LVU573 + 1850 0040 9B68 ldr r3, [r3, #8] + 1851 .LVL143: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1852 .loc 2 6853 74 view .LVU574 + 1853 0042 13F00403 ands r3, r3, #4 + 1854 0046 13D0 beq .L153 + 1855 0048 0123 movs r3, #1 + 1856 004a 11E0 b .L153 + 1857 .LVL144: + 1858 .L161: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1859 .loc 2 6853 74 view .LVU575 + 1860 .LBE331: + 1861 .LBE330: +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1862 .loc 1 1006 5 discriminator 1 view .LVU576 + 1863 004c 03F58073 add r3, r3, #256 + 1864 0050 0193 str r3, [sp, #4] + 1865 0052 EFE7 b .L144 + 1866 .L162: +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1867 .loc 1 1011 7 is_stmt 1 view .LVU577 + 1868 0054 E36D ldr r3, [r4, #92] + 1869 0056 43F02003 orr r3, r3, #32 + 1870 005a E365 str r3, [r4, #92] +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1871 .loc 1 1014 7 view .LVU578 + ARM GAS /tmp/cc3JIfda.s page 179 + + +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1872 .loc 1 1014 7 view .LVU579 + 1873 005c 0023 movs r3, #0 + 1874 005e 84F85830 strb r3, [r4, #88] +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1875 .loc 1 1014 7 view .LVU580 +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1876 .loc 1 1016 7 view .LVU581 +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1877 .loc 1 1016 14 is_stmt 0 view .LVU582 + 1878 0062 0125 movs r5, #1 + 1879 0064 55E0 b .L141 + 1880 .LVL145: + 1881 .L148: +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* New check to avoid false timeout detection in case of preemption */ +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance); + 1882 .loc 1 1048 7 is_stmt 1 view .LVU583 + 1883 .loc 1 1048 42 is_stmt 0 view .LVU584 + 1884 0066 019B ldr r3, [sp, #4] + 1885 .LVL146: + 1886 .LBB332: + 1887 .LBI332: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1888 .loc 2 6851 26 is_stmt 1 view .LVU585 + 1889 .LBB333: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1890 .loc 2 6853 3 view .LVU586 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1891 .loc 2 6853 12 is_stmt 0 view .LVU587 + 1892 0068 9B68 ldr r3, [r3, #8] + 1893 .LVL147: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1894 .loc 2 6853 74 view .LVU588 + 1895 006a 13F00403 ands r3, r3, #4 + 1896 006e 21D1 bne .L151 + 1897 .LVL148: + ARM GAS /tmp/cc3JIfda.s page 180 + + + 1898 .L153: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1899 .loc 2 6853 74 view .LVU589 + 1900 .LBE333: + 1901 .LBE332: +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 1902 .loc 1 1027 12 is_stmt 1 view .LVU590 +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + 1903 .loc 1 1026 13 is_stmt 0 view .LVU591 + 1904 0070 2268 ldr r2, [r4] + 1905 .LVL149: + 1906 .LBB335: + 1907 .LBI335: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1908 .loc 2 6851 26 is_stmt 1 view .LVU592 + 1909 .LBB336: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1910 .loc 2 6853 3 view .LVU593 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1911 .loc 2 6853 12 is_stmt 0 view .LVU594 + 1912 0072 9268 ldr r2, [r2, #8] + 1913 .LVL150: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1914 .loc 2 6853 74 view .LVU595 + 1915 0074 12F0040F tst r2, #4 + 1916 0078 01D1 bne .L154 + 1917 .LVL151: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1918 .loc 2 6853 74 view .LVU596 + 1919 .LBE336: + 1920 .LBE335: +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 1921 .loc 1 1027 12 view .LVU597 + 1922 007a 012B cmp r3, #1 + 1923 007c 1CD1 bne .L163 + 1924 .L154: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1925 .loc 1 1030 7 is_stmt 1 view .LVU598 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1926 .loc 1 1030 12 is_stmt 0 view .LVU599 + 1927 007e FFF7FEFF bl HAL_GetTick + 1928 .LVL152: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1929 .loc 1 1030 26 view .LVU600 + 1930 0082 431B subs r3, r0, r5 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 1931 .loc 1 1030 10 view .LVU601 + 1932 0084 052B cmp r3, #5 + 1933 0086 EED9 bls .L148 +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + 1934 .loc 1 1033 9 is_stmt 1 view .LVU602 +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + 1935 .loc 1 1033 44 is_stmt 0 view .LVU603 + 1936 0088 019B ldr r3, [sp, #4] + 1937 .LVL153: + 1938 .LBB337: + 1939 .LBI337: + ARM GAS /tmp/cc3JIfda.s page 181 + + +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1940 .loc 2 6851 26 is_stmt 1 view .LVU604 + 1941 .LBB338: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1942 .loc 2 6853 3 view .LVU605 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1943 .loc 2 6853 12 is_stmt 0 view .LVU606 + 1944 008a 9B68 ldr r3, [r3, #8] + 1945 .LVL154: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1946 .loc 2 6853 74 view .LVU607 + 1947 008c 13F00403 ands r3, r3, #4 + 1948 0090 00D0 beq .L149 + 1949 0092 0123 movs r3, #1 + 1950 .L149: + 1951 .LVL155: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1952 .loc 2 6853 74 view .LVU608 + 1953 .LBE338: + 1954 .LBE337: +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + 1955 .loc 1 1034 9 is_stmt 1 view .LVU609 +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + 1956 .loc 1 1034 14 is_stmt 0 view .LVU610 + 1957 0094 2268 ldr r2, [r4] + 1958 .LVL156: + 1959 .LBB339: + 1960 .LBI339: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 1961 .loc 2 6851 26 is_stmt 1 view .LVU611 + 1962 .LBB340: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1963 .loc 2 6853 3 view .LVU612 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1964 .loc 2 6853 12 is_stmt 0 view .LVU613 + 1965 0096 9268 ldr r2, [r2, #8] + 1966 .LVL157: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1967 .loc 2 6853 74 view .LVU614 + 1968 0098 12F0040F tst r2, #4 + 1969 009c 01D1 bne .L150 + 1970 .LVL158: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1971 .loc 2 6853 74 view .LVU615 + 1972 .LBE340: + 1973 .LBE339: +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 1974 .loc 1 1035 13 view .LVU616 + 1975 009e 012B cmp r3, #1 + 1976 00a0 E1D1 bne .L148 + 1977 .L150: +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1978 .loc 1 1039 11 is_stmt 1 view .LVU617 + 1979 00a2 E36D ldr r3, [r4, #92] + 1980 .LVL159: +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1981 .loc 1 1039 11 is_stmt 0 view .LVU618 + ARM GAS /tmp/cc3JIfda.s page 182 + + + 1982 00a4 43F01003 orr r3, r3, #16 + 1983 00a8 E365 str r3, [r4, #92] +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1984 .loc 1 1042 11 is_stmt 1 view .LVU619 +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1985 .loc 1 1042 11 view .LVU620 + 1986 00aa 0023 movs r3, #0 + 1987 00ac 84F85830 strb r3, [r4, #88] +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1988 .loc 1 1042 11 view .LVU621 +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1989 .loc 1 1044 11 view .LVU622 +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1990 .loc 1 1044 18 is_stmt 0 view .LVU623 + 1991 00b0 0125 movs r5, #1 + 1992 .LVL160: +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 1993 .loc 1 1044 18 view .LVU624 + 1994 00b2 2EE0 b .L141 + 1995 .LVL161: + 1996 .L151: + 1997 .LBB341: + 1998 .LBB334: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 1999 .loc 2 6853 74 view .LVU625 + 2000 00b4 0123 movs r3, #1 + 2001 00b6 DBE7 b .L153 + 2002 .LVL162: + 2003 .L163: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2004 .loc 2 6853 74 view .LVU626 + 2005 .LBE334: + 2006 .LBE341: +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable the DMA channel (in case of DMA in circular mode or stop */ +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* while DMA transfer is on going) */ +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: DMA channel of ADC slave should be stopped after this function */ +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* with HAL_ADC_Stop_DMA() API. */ +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); + 2007 .loc 1 1055 5 is_stmt 1 view .LVU627 + 2008 .loc 1 1055 22 is_stmt 0 view .LVU628 + 2009 00b8 606D ldr r0, [r4, #84] + 2010 00ba FFF7FEFF bl HAL_DMA_Abort + 2011 .LVL163: + 2012 .loc 1 1055 22 view .LVU629 + 2013 00be 0546 mov r5, r0 + 2014 .LVL164: +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if DMA channel effectively disabled */ +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_ERROR) + 2015 .loc 1 1058 5 is_stmt 1 view .LVU630 + 2016 .loc 1 1058 8 is_stmt 0 view .LVU631 + 2017 00c0 0128 cmp r0, #1 + 2018 00c2 10D0 beq .L164 + 2019 .L155: +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + ARM GAS /tmp/cc3JIfda.s page 183 + + +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC overrun interrupt */ +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); + 2020 .loc 1 1065 5 is_stmt 1 view .LVU632 + 2021 00c4 2268 ldr r2, [r4] + 2022 00c6 5368 ldr r3, [r2, #4] + 2023 00c8 23F01003 bic r3, r3, #16 + 2024 00cc 5360 str r3, [r2, #4] +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable the ADC peripherals: master and slave */ +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update "tmp_hal_status" only if DMA channel disabling passed, to keep in */ +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* memory a potential failing status. */ +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2025 .loc 1 1070 5 view .LVU633 + 2026 .loc 1 1070 8 is_stmt 0 view .LVU634 + 2027 00ce 7DB9 cbnz r5, .L156 +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_disable_status = ADC_Disable(&tmphadcSlave); + 2028 .loc 1 1072 7 is_stmt 1 view .LVU635 + 2029 .loc 1 1072 37 is_stmt 0 view .LVU636 + 2030 00d0 01A8 add r0, sp, #4 + 2031 .LVL165: + 2032 .loc 1 1072 37 view .LVU637 + 2033 00d2 FFF7FEFF bl ADC_Disable + 2034 .LVL166: + 2035 00d6 0646 mov r6, r0 + 2036 .LVL167: +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((ADC_Disable(hadc) == HAL_OK) && + 2037 .loc 1 1073 7 is_stmt 1 view .LVU638 + 2038 .loc 1 1073 12 is_stmt 0 view .LVU639 + 2039 00d8 2046 mov r0, r4 + 2040 00da FFF7FEFF bl ADC_Disable + 2041 .LVL168: + 2042 .loc 1 1073 10 view .LVU640 + 2043 00de 68B9 cbnz r0, .L157 + 2044 .loc 1 1073 51 discriminator 1 view .LVU641 + 2045 00e0 66B9 cbnz r6, .L157 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (tmphadcSlave_disable_status == HAL_OK)) +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_OK; + 2046 .loc 1 1076 24 view .LVU642 + 2047 00e2 3546 mov r5, r6 + 2048 00e4 0AE0 b .L157 + 2049 .LVL169: + 2050 .L164: +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2051 .loc 1 1061 7 is_stmt 1 view .LVU643 + 2052 00e6 E36D ldr r3, [r4, #92] + 2053 00e8 43F04003 orr r3, r3, #64 + 2054 00ec E365 str r3, [r4, #92] + 2055 00ee E9E7 b .L155 + 2056 .L156: +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + ARM GAS /tmp/cc3JIfda.s page 184 + + +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* In case of error, attempt to disable ADC master and slave without status assert */ +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (void) ADC_Disable(hadc); + 2057 .loc 1 1082 7 view .LVU644 + 2058 .loc 1 1082 14 is_stmt 0 view .LVU645 + 2059 00f0 2046 mov r0, r4 + 2060 .LVL170: + 2061 .loc 1 1082 14 view .LVU646 + 2062 00f2 FFF7FEFF bl ADC_Disable + 2063 .LVL171: +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (void) ADC_Disable(&tmphadcSlave); + 2064 .loc 1 1083 7 is_stmt 1 view .LVU647 + 2065 .loc 1 1083 14 is_stmt 0 view .LVU648 + 2066 00f6 01A8 add r0, sp, #4 + 2067 00f8 FFF7FEFF bl ADC_Disable + 2068 .LVL172: + 2069 .L157: +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state (ADC master) */ +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, + 2070 .loc 1 1087 5 is_stmt 1 view .LVU649 + 2071 00fc E36D ldr r3, [r4, #92] + 2072 00fe 23F48853 bic r3, r3, #4352 + 2073 0102 23F00103 bic r3, r3, #1 + 2074 0106 43F00103 orr r3, r3, #1 + 2075 010a E365 str r3, [r4, #92] + 2076 .LVL173: + 2077 .L142: +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 2078 .loc 1 1093 3 view .LVU650 + 2079 .loc 1 1093 3 view .LVU651 + 2080 010c 0023 movs r3, #0 + 2081 010e 84F85830 strb r3, [r4, #88] + 2082 .loc 1 1093 3 view .LVU652 +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 2083 .loc 1 1096 3 view .LVU653 + 2084 .LVL174: + 2085 .L141: +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2086 .loc 1 1097 1 is_stmt 0 view .LVU654 + 2087 0112 2846 mov r0, r5 + 2088 0114 1CB0 add sp, sp, #112 + 2089 .LCFI21: + 2090 .cfi_remember_state + 2091 .cfi_def_cfa_offset 16 + 2092 @ sp needed + 2093 0116 70BD pop {r4, r5, r6, pc} + 2094 .LVL175: + ARM GAS /tmp/cc3JIfda.s page 185 + + + 2095 .L158: + 2096 .LCFI22: + 2097 .cfi_restore_state + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2098 .loc 1 992 3 view .LVU655 + 2099 0118 0225 movs r5, #2 + 2100 011a FAE7 b .L141 + 2101 .cfi_endproc + 2102 .LFE338: + 2104 .section .text.HAL_ADCEx_MultiModeGetValue,"ax",%progbits + 2105 .align 1 + 2106 .global HAL_ADCEx_MultiModeGetValue + 2107 .syntax unified + 2108 .thumb + 2109 .thumb_func + 2111 HAL_ADCEx_MultiModeGetValue: + 2112 .LVL176: + 2113 .LFB339: +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Return the last ADC Master and Slave regular conversions results when in multimode conf +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle of ADC Master (handle of ADC Slave must not be used) +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval The converted data values. +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc) +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2114 .loc 1 1105 1 is_stmt 1 view -0 + 2115 .cfi_startproc + 2116 @ args = 0, pretend = 0, frame = 0 + 2117 @ frame_needed = 0, uses_anonymous_args = 0 + 2118 @ link register save eliminated. +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** const ADC_Common_TypeDef *tmpADC_Common; + 2119 .loc 1 1106 3 view .LVU657 +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + 2120 .loc 1 1109 3 view .LVU658 +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Prevent unused argument(s) compilation warning if no assert_param check */ +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* and possible no usage in __LL_ADC_COMMON_INSTANCE() below */ +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** UNUSED(hadc); + 2121 .loc 1 1113 3 view .LVU659 +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Pointer to the common control register */ +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + 2122 .loc 1 1116 3 view .LVU660 +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return the multi mode conversion value */ +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmpADC_Common->CDR; + 2123 .loc 1 1119 3 view .LVU661 + 2124 .loc 1 1119 23 is_stmt 0 view .LVU662 + 2125 0000 014B ldr r3, .L166 + 2126 0002 D868 ldr r0, [r3, #12] + 2127 .LVL177: +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2128 .loc 1 1120 1 view .LVU663 + 2129 0004 7047 bx lr + ARM GAS /tmp/cc3JIfda.s page 186 + + + 2130 .L167: + 2131 0006 00BF .align 2 + 2132 .L166: + 2133 0008 00030050 .word 1342178048 + 2134 .cfi_endproc + 2135 .LFE339: + 2137 .section .text.HAL_ADCEx_InjectedGetValue,"ax",%progbits + 2138 .align 1 + 2139 .global HAL_ADCEx_InjectedGetValue + 2140 .syntax unified + 2141 .thumb + 2142 .thumb_func + 2144 HAL_ADCEx_InjectedGetValue: + 2145 .LVL178: + 2146 .LFB340: +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif /* ADC_MULTIMODE_SUPPORT */ +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Get ADC injected group conversion result. +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Reading register JDRx automatically clears ADC flag JEOC +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * (ADC group injected end of unitary conversion). +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note This function does not clear ADC flag JEOS +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * (ADC group injected end of sequence conversion) +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Occurrence of flag JEOS rising: +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * - If sequencer is composed of 1 rank, flag JEOS is equivalent +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * to flag JEOC. +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * - If sequencer is composed of several ranks, during the scan +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * sequence flag JEOC only is raised, at the end of the scan sequence +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * both flags JEOC and EOS are raised. +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Flag JEOS must not be cleared by this function because +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * it would not be compliant with low power features +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * (feature low power auto-wait, not available on all STM32 families). +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * To clear this flag, either use function: +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * in programming model IT: @ref HAL_ADC_IRQHandler(), in programming +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * model polling: @ref HAL_ADCEx_InjectedPollForConversion() +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * or @ref __HAL_ADC_CLEAR_FLAG(&hadc, ADC_FLAG_JEOS). +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param InjectedRank the converted ADC injected rank. +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * This parameter can be one of the following values: +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_INJECTED_RANK_1 ADC group injected rank 1 +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_INJECTED_RANK_2 ADC group injected rank 2 +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_INJECTED_RANK_3 ADC group injected rank 3 +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @arg @ref ADC_INJECTED_RANK_4 ADC group injected rank 4 +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval ADC group injected conversion data +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef *hadc, uint32_t InjectedRank) +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2147 .loc 1 1152 1 is_stmt 1 view -0 + 2148 .cfi_startproc + 2149 @ args = 0, pretend = 0, frame = 0 + 2150 @ frame_needed = 0, uses_anonymous_args = 0 + 2151 @ link register save eliminated. +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_jdr; + 2152 .loc 1 1153 3 view .LVU665 +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + ARM GAS /tmp/cc3JIfda.s page 187 + + + 2153 .loc 1 1156 3 view .LVU666 +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_INJECTED_RANK(InjectedRank)); + 2154 .loc 1 1157 3 view .LVU667 +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Get ADC converted value */ +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** switch (InjectedRank) + 2155 .loc 1 1160 3 view .LVU668 + 2156 0000 40F21523 movw r3, #533 + 2157 0004 9942 cmp r1, r3 + 2158 0006 0FD0 beq .L169 + 2159 0008 40F21B33 movw r3, #795 + 2160 000c 9942 cmp r1, r3 + 2161 000e 07D0 beq .L170 + 2162 0010 40F20F13 movw r3, #271 + 2163 0014 9942 cmp r1, r3 + 2164 0016 0BD0 beq .L175 +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_4: +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_jdr = hadc->Instance->JDR4; +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_3: +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_jdr = hadc->Instance->JDR3; +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_2: +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_jdr = hadc->Instance->JDR2; +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_1: +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** default: +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_jdr = hadc->Instance->JDR1; + 2165 .loc 1 1173 7 view .LVU669 + 2166 .loc 1 1173 21 is_stmt 0 view .LVU670 + 2167 0018 0368 ldr r3, [r0] + 2168 .loc 1 1173 15 view .LVU671 + 2169 001a D3F88000 ldr r0, [r3, #128] + 2170 .LVL179: +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2171 .loc 1 1174 7 is_stmt 1 view .LVU672 +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return ADC converted value */ +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_jdr; + 2172 .loc 1 1178 3 view .LVU673 +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2173 .loc 1 1179 1 is_stmt 0 view .LVU674 + 2174 001e 7047 bx lr + 2175 .LVL180: + 2176 .L170: +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2177 .loc 1 1163 7 is_stmt 1 view .LVU675 +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2178 .loc 1 1163 21 is_stmt 0 view .LVU676 + 2179 0020 0368 ldr r3, [r0] +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2180 .loc 1 1163 15 view .LVU677 + 2181 0022 D3F88C00 ldr r0, [r3, #140] + 2182 .LVL181: +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_3: + ARM GAS /tmp/cc3JIfda.s page 188 + + + 2183 .loc 1 1164 7 is_stmt 1 view .LVU678 + 2184 0026 7047 bx lr + 2185 .LVL182: + 2186 .L169: +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2187 .loc 1 1166 7 view .LVU679 +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2188 .loc 1 1166 21 is_stmt 0 view .LVU680 + 2189 0028 0368 ldr r3, [r0] +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2190 .loc 1 1166 15 view .LVU681 + 2191 002a D3F88800 ldr r0, [r3, #136] + 2192 .LVL183: +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_2: + 2193 .loc 1 1167 7 is_stmt 1 view .LVU682 + 2194 002e 7047 bx lr + 2195 .LVL184: + 2196 .L175: +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2197 .loc 1 1169 7 view .LVU683 +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2198 .loc 1 1169 21 is_stmt 0 view .LVU684 + 2199 0030 0368 ldr r3, [r0] +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** break; + 2200 .loc 1 1169 15 view .LVU685 + 2201 0032 D3F88400 ldr r0, [r3, #132] + 2202 .LVL185: +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** case ADC_INJECTED_RANK_1: + 2203 .loc 1 1170 7 is_stmt 1 view .LVU686 + 2204 0036 7047 bx lr + 2205 .cfi_endproc + 2206 .LFE340: + 2208 .section .text.HAL_ADCEx_InjectedConvCpltCallback,"ax",%progbits + 2209 .align 1 + 2210 .weak HAL_ADCEx_InjectedConvCpltCallback + 2211 .syntax unified + 2212 .thumb + 2213 .thumb_func + 2215 HAL_ADCEx_InjectedConvCpltCallback: + 2216 .LVL186: + 2217 .LFB341: +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Injected conversion complete callback in non-blocking mode. +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval None +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __weak void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2218 .loc 1 1187 1 view -0 + 2219 .cfi_startproc + 2220 @ args = 0, pretend = 0, frame = 0 + 2221 @ frame_needed = 0, uses_anonymous_args = 0 + 2222 @ link register save eliminated. +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Prevent unused argument(s) compilation warning */ +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** UNUSED(hadc); + 2223 .loc 1 1189 3 view .LVU688 + ARM GAS /tmp/cc3JIfda.s page 189 + + +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* NOTE : This function should not be modified. When the callback is needed, +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** function HAL_ADCEx_InjectedConvCpltCallback must be implemented in the user file. +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2224 .loc 1 1194 1 is_stmt 0 view .LVU689 + 2225 0000 7047 bx lr + 2226 .cfi_endproc + 2227 .LFE341: + 2229 .section .text.HAL_ADCEx_InjectedQueueOverflowCallback,"ax",%progbits + 2230 .align 1 + 2231 .weak HAL_ADCEx_InjectedQueueOverflowCallback + 2232 .syntax unified + 2233 .thumb + 2234 .thumb_func + 2236 HAL_ADCEx_InjectedQueueOverflowCallback: + 2237 .LVL187: + 2238 .LFB342: +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Injected context queue overflow callback. +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note This callback is called if injected context queue is enabled +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (parameter "QueueInjectedContext" in injected channel configuration) +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** and if a new injected context is set when queue is full (maximum 2 +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** contexts). +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval None +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __weak void HAL_ADCEx_InjectedQueueOverflowCallback(ADC_HandleTypeDef *hadc) +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2239 .loc 1 1206 1 is_stmt 1 view -0 + 2240 .cfi_startproc + 2241 @ args = 0, pretend = 0, frame = 0 + 2242 @ frame_needed = 0, uses_anonymous_args = 0 + 2243 @ link register save eliminated. +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Prevent unused argument(s) compilation warning */ +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** UNUSED(hadc); + 2244 .loc 1 1208 3 view .LVU691 +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* NOTE : This function should not be modified. When the callback is needed, +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** function HAL_ADCEx_InjectedQueueOverflowCallback must be implemented in the user file. +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2245 .loc 1 1213 1 is_stmt 0 view .LVU692 + 2246 0000 7047 bx lr + 2247 .cfi_endproc + 2248 .LFE342: + 2250 .section .text.HAL_ADCEx_LevelOutOfWindow2Callback,"ax",%progbits + 2251 .align 1 + 2252 .weak HAL_ADCEx_LevelOutOfWindow2Callback + 2253 .syntax unified + 2254 .thumb + 2255 .thumb_func + 2257 HAL_ADCEx_LevelOutOfWindow2Callback: + 2258 .LVL188: + 2259 .LFB343: +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + ARM GAS /tmp/cc3JIfda.s page 190 + + +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Analog watchdog 2 callback in non-blocking mode. +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval None +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __weak void HAL_ADCEx_LevelOutOfWindow2Callback(ADC_HandleTypeDef *hadc) +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2260 .loc 1 1221 1 is_stmt 1 view -0 + 2261 .cfi_startproc + 2262 @ args = 0, pretend = 0, frame = 0 + 2263 @ frame_needed = 0, uses_anonymous_args = 0 + 2264 @ link register save eliminated. +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Prevent unused argument(s) compilation warning */ +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** UNUSED(hadc); + 2265 .loc 1 1223 3 view .LVU694 +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* NOTE : This function should not be modified. When the callback is needed, +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** function HAL_ADCEx_LevelOutOfWindow2Callback must be implemented in the user file. +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2266 .loc 1 1228 1 is_stmt 0 view .LVU695 + 2267 0000 7047 bx lr + 2268 .cfi_endproc + 2269 .LFE343: + 2271 .section .text.HAL_ADCEx_LevelOutOfWindow3Callback,"ax",%progbits + 2272 .align 1 + 2273 .weak HAL_ADCEx_LevelOutOfWindow3Callback + 2274 .syntax unified + 2275 .thumb + 2276 .thumb_func + 2278 HAL_ADCEx_LevelOutOfWindow3Callback: + 2279 .LVL189: + 2280 .LFB344: +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Analog watchdog 3 callback in non-blocking mode. +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval None +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __weak void HAL_ADCEx_LevelOutOfWindow3Callback(ADC_HandleTypeDef *hadc) +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2281 .loc 1 1236 1 is_stmt 1 view -0 + 2282 .cfi_startproc + 2283 @ args = 0, pretend = 0, frame = 0 + 2284 @ frame_needed = 0, uses_anonymous_args = 0 + 2285 @ link register save eliminated. +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Prevent unused argument(s) compilation warning */ +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** UNUSED(hadc); + 2286 .loc 1 1238 3 view .LVU697 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* NOTE : This function should not be modified. When the callback is needed, +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** function HAL_ADCEx_LevelOutOfWindow3Callback must be implemented in the user file. +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2287 .loc 1 1243 1 is_stmt 0 view .LVU698 + 2288 0000 7047 bx lr + 2289 .cfi_endproc + ARM GAS /tmp/cc3JIfda.s page 191 + + + 2290 .LFE344: + 2292 .section .text.HAL_ADCEx_EndOfSamplingCallback,"ax",%progbits + 2293 .align 1 + 2294 .weak HAL_ADCEx_EndOfSamplingCallback + 2295 .syntax unified + 2296 .thumb + 2297 .thumb_func + 2299 HAL_ADCEx_EndOfSamplingCallback: + 2300 .LVL190: + 2301 .LFB345: +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief End Of Sampling callback in non-blocking mode. +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval None +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __weak void HAL_ADCEx_EndOfSamplingCallback(ADC_HandleTypeDef *hadc) +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2302 .loc 1 1252 1 is_stmt 1 view -0 + 2303 .cfi_startproc + 2304 @ args = 0, pretend = 0, frame = 0 + 2305 @ frame_needed = 0, uses_anonymous_args = 0 + 2306 @ link register save eliminated. +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Prevent unused argument(s) compilation warning */ +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** UNUSED(hadc); + 2307 .loc 1 1254 3 view .LVU700 +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* NOTE : This function should not be modified. When the callback is needed, +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** function HAL_ADCEx_EndOfSamplingCallback must be implemented in the user file. +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2308 .loc 1 1259 1 is_stmt 0 view .LVU701 + 2309 0000 7047 bx lr + 2310 .cfi_endproc + 2311 .LFE345: + 2313 .section .text.HAL_ADCEx_RegularStop,"ax",%progbits + 2314 .align 1 + 2315 .global HAL_ADCEx_RegularStop + 2316 .syntax unified + 2317 .thumb + 2318 .thumb_func + 2320 HAL_ADCEx_RegularStop: + 2321 .LVL191: + 2322 .LFB346: +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop ADC conversion of regular group (and injected channels in +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * case of auto_injection mode), disable ADC peripheral if no +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * conversion is on going on injected group. +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status. +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_RegularStop(ADC_HandleTypeDef *hadc) +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2323 .loc 1 1269 1 is_stmt 1 view -0 + 2324 .cfi_startproc + ARM GAS /tmp/cc3JIfda.s page 192 + + + 2325 @ args = 0, pretend = 0, frame = 0 + 2326 @ frame_needed = 0, uses_anonymous_args = 0 +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2327 .loc 1 1270 3 view .LVU703 +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 2328 .loc 1 1273 3 view .LVU704 +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 2329 .loc 1 1276 3 view .LVU705 + 2330 .loc 1 1276 3 view .LVU706 + 2331 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 2332 0004 012B cmp r3, #1 + 2333 0006 26D0 beq .L185 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2334 .loc 1 1269 1 is_stmt 0 discriminator 2 view .LVU707 + 2335 0008 10B5 push {r4, lr} + 2336 .LCFI23: + 2337 .cfi_def_cfa_offset 8 + 2338 .cfi_offset 4, -8 + 2339 .cfi_offset 14, -4 + 2340 000a 0446 mov r4, r0 + 2341 .loc 1 1276 3 is_stmt 1 discriminator 2 view .LVU708 + 2342 000c 0121 movs r1, #1 + 2343 000e 80F85810 strb r1, [r0, #88] + 2344 .loc 1 1276 3 discriminator 2 view .LVU709 +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential regular conversion on going */ +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + 2345 .loc 1 1279 3 discriminator 2 view .LVU710 + 2346 .loc 1 1279 20 is_stmt 0 discriminator 2 view .LVU711 + 2347 0012 FFF7FEFF bl ADC_ConversionStop + 2348 .LVL192: +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if regular conversions are effectively stopped +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** and if no injected conversions are on-going */ +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2349 .loc 1 1283 3 is_stmt 1 discriminator 2 view .LVU712 + 2350 .loc 1 1283 6 is_stmt 0 discriminator 2 view .LVU713 + 2351 0016 60B9 cbnz r0, .L183 +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear HAL_ADC_STATE_REG_BUSY bit */ +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + 2352 .loc 1 1286 5 is_stmt 1 view .LVU714 + 2353 0018 E36D ldr r3, [r4, #92] + 2354 001a 23F48073 bic r3, r3, #256 + 2355 001e E365 str r3, [r4, #92] +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + 2356 .loc 1 1288 5 view .LVU715 + 2357 .loc 1 1288 9 is_stmt 0 view .LVU716 + 2358 0020 2368 ldr r3, [r4] + 2359 .LVL193: + 2360 .LBB342: + 2361 .LBI342: + ARM GAS /tmp/cc3JIfda.s page 193 + + +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2362 .loc 2 7076 26 is_stmt 1 view .LVU717 + 2363 .LBB343: + 2364 .loc 2 7078 3 view .LVU718 + 2365 .loc 2 7078 12 is_stmt 0 view .LVU719 + 2366 0022 9B68 ldr r3, [r3, #8] + 2367 .LVL194: + 2368 .loc 2 7078 76 view .LVU720 + 2369 0024 13F0080F tst r3, #8 + 2370 0028 07D0 beq .L184 + 2371 .LVL195: + 2372 .loc 2 7078 76 view .LVU721 + 2373 .LBE343: + 2374 .LBE342: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable the ADC peripheral */ +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if ADC is effectively disabled */ +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY, +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Conversion on injected group is stopped, but ADC not disabled since */ +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion on regular group is still running. */ +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + 2375 .loc 1 1306 7 is_stmt 1 view .LVU722 + 2376 002a E36D ldr r3, [r4, #92] + 2377 002c 43F48053 orr r3, r3, #4096 + 2378 0030 E365 str r3, [r4, #92] + 2379 .L183: +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 2380 .loc 1 1311 3 view .LVU723 + 2381 .loc 1 1311 3 view .LVU724 + 2382 0032 0023 movs r3, #0 + 2383 0034 84F85830 strb r3, [r4, #88] + 2384 .loc 1 1311 3 view .LVU725 +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 2385 .loc 1 1314 3 view .LVU726 +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2386 .loc 1 1315 1 is_stmt 0 view .LVU727 + 2387 0038 10BD pop {r4, pc} + 2388 .LVL196: + 2389 .L184: +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + ARM GAS /tmp/cc3JIfda.s page 194 + + + 2390 .loc 1 1291 7 is_stmt 1 view .LVU728 +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2391 .loc 1 1291 24 is_stmt 0 view .LVU729 + 2392 003a 2046 mov r0, r4 + 2393 .LVL197: +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2394 .loc 1 1291 24 view .LVU730 + 2395 003c FFF7FEFF bl ADC_Disable + 2396 .LVL198: +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2397 .loc 1 1294 7 is_stmt 1 view .LVU731 +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2398 .loc 1 1294 10 is_stmt 0 view .LVU732 + 2399 0040 0028 cmp r0, #0 + 2400 0042 F6D1 bne .L183 +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY, + 2401 .loc 1 1297 9 is_stmt 1 view .LVU733 + 2402 0044 E36D ldr r3, [r4, #92] + 2403 0046 23F48053 bic r3, r3, #4096 + 2404 004a 23F00103 bic r3, r3, #1 + 2405 004e 43F00103 orr r3, r3, #1 + 2406 0052 E365 str r3, [r4, #92] + 2407 0054 EDE7 b .L183 + 2408 .LVL199: + 2409 .L185: + 2410 .LCFI24: + 2411 .cfi_def_cfa_offset 0 + 2412 .cfi_restore 4 + 2413 .cfi_restore 14 +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2414 .loc 1 1276 3 is_stmt 0 view .LVU734 + 2415 0056 0220 movs r0, #2 + 2416 .LVL200: + 2417 .loc 1 1315 1 view .LVU735 + 2418 0058 7047 bx lr + 2419 .cfi_endproc + 2420 .LFE346: + 2422 .section .text.HAL_ADCEx_RegularStop_IT,"ax",%progbits + 2423 .align 1 + 2424 .global HAL_ADCEx_RegularStop_IT + 2425 .syntax unified + 2426 .thumb + 2427 .thumb_func + 2429 HAL_ADCEx_RegularStop_IT: + 2430 .LVL201: + 2431 .LFB347: +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop ADC conversion of ADC groups regular and injected, +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * disable interrution of end-of-conversion, +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * disable ADC peripheral if no conversion is on going +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * on injected group. +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status. +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_RegularStop_IT(ADC_HandleTypeDef *hadc) + ARM GAS /tmp/cc3JIfda.s page 195 + + +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2432 .loc 1 1327 1 is_stmt 1 view -0 + 2433 .cfi_startproc + 2434 @ args = 0, pretend = 0, frame = 0 + 2435 @ frame_needed = 0, uses_anonymous_args = 0 +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2436 .loc 1 1328 3 view .LVU737 +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 2437 .loc 1 1331 3 view .LVU738 +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 2438 .loc 1 1334 3 view .LVU739 + 2439 .loc 1 1334 3 view .LVU740 + 2440 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 2441 0004 012B cmp r3, #1 + 2442 0006 2BD0 beq .L194 +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2443 .loc 1 1327 1 is_stmt 0 discriminator 2 view .LVU741 + 2444 0008 10B5 push {r4, lr} + 2445 .LCFI25: + 2446 .cfi_def_cfa_offset 8 + 2447 .cfi_offset 4, -8 + 2448 .cfi_offset 14, -4 + 2449 000a 0446 mov r4, r0 + 2450 .loc 1 1334 3 is_stmt 1 discriminator 2 view .LVU742 + 2451 000c 0121 movs r1, #1 + 2452 000e 80F85810 strb r1, [r0, #88] + 2453 .loc 1 1334 3 discriminator 2 view .LVU743 +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential regular conversion on going */ +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + 2454 .loc 1 1337 3 discriminator 2 view .LVU744 + 2455 .loc 1 1337 20 is_stmt 0 discriminator 2 view .LVU745 + 2456 0012 FFF7FEFF bl ADC_ConversionStop + 2457 .LVL202: +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if conversions are effectively stopped +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** and if no injected conversion is on-going */ +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2458 .loc 1 1341 3 is_stmt 1 discriminator 2 view .LVU746 + 2459 .loc 1 1341 6 is_stmt 0 discriminator 2 view .LVU747 + 2460 0016 88B9 cbnz r0, .L192 +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear HAL_ADC_STATE_REG_BUSY bit */ +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + 2461 .loc 1 1344 5 is_stmt 1 view .LVU748 + 2462 0018 E36D ldr r3, [r4, #92] + 2463 001a 23F48073 bic r3, r3, #256 + 2464 001e E365 str r3, [r4, #92] +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable all regular-related interrupts */ +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); + 2465 .loc 1 1347 5 view .LVU749 + 2466 0020 2268 ldr r2, [r4] + ARM GAS /tmp/cc3JIfda.s page 196 + + + 2467 0022 5368 ldr r3, [r2, #4] + 2468 0024 23F01C03 bic r3, r3, #28 + 2469 0028 5360 str r3, [r2, #4] +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable ADC peripheral if no injected conversions are on-going */ +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + 2470 .loc 1 1350 5 view .LVU750 + 2471 .loc 1 1350 9 is_stmt 0 view .LVU751 + 2472 002a 2368 ldr r3, [r4] + 2473 .LVL203: + 2474 .LBB344: + 2475 .LBI344: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2476 .loc 2 7076 26 is_stmt 1 view .LVU752 + 2477 .LBB345: + 2478 .loc 2 7078 3 view .LVU753 + 2479 .loc 2 7078 12 is_stmt 0 view .LVU754 + 2480 002c 9B68 ldr r3, [r3, #8] + 2481 .LVL204: + 2482 .loc 2 7078 76 view .LVU755 + 2483 002e 13F0080F tst r3, #8 + 2484 0032 07D0 beq .L193 + 2485 .LVL205: + 2486 .loc 2 7078 76 view .LVU756 + 2487 .LBE345: + 2488 .LBE344: +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if no issue reported */ +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY, +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); + 2489 .loc 1 1364 7 is_stmt 1 view .LVU757 + 2490 0034 E36D ldr r3, [r4, #92] + 2491 0036 43F48053 orr r3, r3, #4096 + 2492 003a E365 str r3, [r4, #92] + 2493 .L192: +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 2494 .loc 1 1369 3 view .LVU758 + 2495 .loc 1 1369 3 view .LVU759 + 2496 003c 0023 movs r3, #0 + 2497 003e 84F85830 strb r3, [r4, #88] + 2498 .loc 1 1369 3 view .LVU760 +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ + ARM GAS /tmp/cc3JIfda.s page 197 + + +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 2499 .loc 1 1372 3 view .LVU761 +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2500 .loc 1 1373 1 is_stmt 0 view .LVU762 + 2501 0042 10BD pop {r4, pc} + 2502 .LVL206: + 2503 .L193: +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if no issue reported */ + 2504 .loc 1 1352 7 is_stmt 1 view .LVU763 +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if no issue reported */ + 2505 .loc 1 1352 24 is_stmt 0 view .LVU764 + 2506 0044 2046 mov r0, r4 + 2507 .LVL207: +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if no issue reported */ + 2508 .loc 1 1352 24 view .LVU765 + 2509 0046 FFF7FEFF bl ADC_Disable + 2510 .LVL208: +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2511 .loc 1 1354 7 is_stmt 1 view .LVU766 +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2512 .loc 1 1354 10 is_stmt 0 view .LVU767 + 2513 004a 0028 cmp r0, #0 + 2514 004c F6D1 bne .L192 +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY, + 2515 .loc 1 1357 9 is_stmt 1 view .LVU768 + 2516 004e E36D ldr r3, [r4, #92] + 2517 0050 23F48053 bic r3, r3, #4096 + 2518 0054 23F00103 bic r3, r3, #1 + 2519 0058 43F00103 orr r3, r3, #1 + 2520 005c E365 str r3, [r4, #92] + 2521 005e EDE7 b .L192 + 2522 .LVL209: + 2523 .L194: + 2524 .LCFI26: + 2525 .cfi_def_cfa_offset 0 + 2526 .cfi_restore 4 + 2527 .cfi_restore 14 +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2528 .loc 1 1334 3 is_stmt 0 view .LVU769 + 2529 0060 0220 movs r0, #2 + 2530 .LVL210: + 2531 .loc 1 1373 1 view .LVU770 + 2532 0062 7047 bx lr + 2533 .cfi_endproc + 2534 .LFE347: + 2536 .section .text.HAL_ADCEx_RegularStop_DMA,"ax",%progbits + 2537 .align 1 + 2538 .global HAL_ADCEx_RegularStop_DMA + 2539 .syntax unified + 2540 .thumb + 2541 .thumb_func + 2543 HAL_ADCEx_RegularStop_DMA: + 2544 .LVL211: + 2545 .LFB348: +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop ADC conversion of regular group (and injected group in + ARM GAS /tmp/cc3JIfda.s page 198 + + +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * case of auto_injection mode), disable ADC DMA transfer, disable +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * ADC peripheral if no conversion is on going +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * on injected group. +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note HAL_ADCEx_RegularStop_DMA() function is dedicated to single-ADC mode only. +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For multimode (when multimode feature is available), +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_RegularMultiModeStop_DMA() API must be used. +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status. +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_RegularStop_DMA(ADC_HandleTypeDef *hadc) +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2546 .loc 1 1387 1 is_stmt 1 view -0 + 2547 .cfi_startproc + 2548 @ args = 0, pretend = 0, frame = 0 + 2549 @ frame_needed = 0, uses_anonymous_args = 0 + 2550 .loc 1 1387 1 is_stmt 0 view .LVU772 + 2551 0000 38B5 push {r3, r4, r5, lr} + 2552 .LCFI27: + 2553 .cfi_def_cfa_offset 16 + 2554 .cfi_offset 3, -16 + 2555 .cfi_offset 4, -12 + 2556 .cfi_offset 5, -8 + 2557 .cfi_offset 14, -4 +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2558 .loc 1 1388 3 is_stmt 1 view .LVU773 +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 2559 .loc 1 1391 3 view .LVU774 +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 2560 .loc 1 1394 3 view .LVU775 + 2561 .loc 1 1394 3 view .LVU776 + 2562 0002 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 2563 0006 012B cmp r3, #1 + 2564 0008 41D0 beq .L206 + 2565 000a 0446 mov r4, r0 + 2566 .loc 1 1394 3 discriminator 2 view .LVU777 + 2567 000c 0121 movs r1, #1 + 2568 000e 80F85810 strb r1, [r0, #88] + 2569 .loc 1 1394 3 discriminator 2 view .LVU778 +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential regular conversion on going */ +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + 2570 .loc 1 1397 3 discriminator 2 view .LVU779 + 2571 .loc 1 1397 20 is_stmt 0 discriminator 2 view .LVU780 + 2572 0012 FFF7FEFF bl ADC_ConversionStop + 2573 .LVL212: +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if conversions are effectively stopped +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** and if no injected conversion is on-going */ +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2574 .loc 1 1401 3 is_stmt 1 discriminator 2 view .LVU781 + 2575 .loc 1 1401 6 is_stmt 0 discriminator 2 view .LVU782 + 2576 0016 0546 mov r5, r0 + 2577 0018 20B1 cbz r0, .L208 + ARM GAS /tmp/cc3JIfda.s page 199 + + + 2578 .LVL213: + 2579 .L201: +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear HAL_ADC_STATE_REG_BUSY bit */ +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC DMA (ADC DMA configuration ADC_CFGR_DMACFG is kept) */ +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_DMAEN); +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable the DMA channel (in case of DMA in circular mode or stop while */ +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* while DMA transfer is on going) */ +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if DMA channel effectively disabled */ +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status != HAL_OK) +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC overrun interrupt */ +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable the ADC peripheral */ +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update "tmp_hal_status" only if DMA channel disabling passed, */ +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* to keep in memory a potential failing status. */ +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (void)ADC_Disable(hadc); +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if ADC is effectively disabled */ +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC state */ +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY, +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_READY); +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 2580 .loc 1 1453 3 is_stmt 1 view .LVU783 + 2581 .loc 1 1453 3 view .LVU784 + 2582 001a 0023 movs r3, #0 + ARM GAS /tmp/cc3JIfda.s page 200 + + + 2583 001c 84F85830 strb r3, [r4, #88] + 2584 .loc 1 1453 3 view .LVU785 +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 2585 .loc 1 1456 3 view .LVU786 + 2586 .LVL214: + 2587 .L200: +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2588 .loc 1 1457 1 is_stmt 0 view .LVU787 + 2589 0020 2846 mov r0, r5 + 2590 0022 38BD pop {r3, r4, r5, pc} + 2591 .LVL215: + 2592 .L208: +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2593 .loc 1 1404 5 is_stmt 1 view .LVU788 + 2594 0024 E36D ldr r3, [r4, #92] + 2595 0026 23F48073 bic r3, r3, #256 + 2596 002a E365 str r3, [r4, #92] +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2597 .loc 1 1407 5 view .LVU789 + 2598 002c 2268 ldr r2, [r4] + 2599 002e D368 ldr r3, [r2, #12] + 2600 0030 23F00103 bic r3, r3, #1 + 2601 0034 D360 str r3, [r2, #12] +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2602 .loc 1 1411 5 view .LVU790 +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2603 .loc 1 1411 22 is_stmt 0 view .LVU791 + 2604 0036 606D ldr r0, [r4, #84] + 2605 .LVL216: +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2606 .loc 1 1411 22 view .LVU792 + 2607 0038 FFF7FEFF bl HAL_DMA_Abort + 2608 .LVL217: +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2609 .loc 1 1414 5 is_stmt 1 view .LVU793 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2610 .loc 1 1414 8 is_stmt 0 view .LVU794 + 2611 003c 0546 mov r5, r0 + 2612 003e 18B1 cbz r0, .L202 +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2613 .loc 1 1417 7 is_stmt 1 view .LVU795 + 2614 0040 E36D ldr r3, [r4, #92] + 2615 0042 43F04003 orr r3, r3, #64 + 2616 0046 E365 str r3, [r4, #92] + 2617 .L202: +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2618 .loc 1 1421 5 view .LVU796 + 2619 0048 2268 ldr r2, [r4] + 2620 004a 5368 ldr r3, [r2, #4] + 2621 004c 23F01003 bic r3, r3, #16 + 2622 0050 5360 str r3, [r2, #4] +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2623 .loc 1 1426 5 view .LVU797 +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2624 .loc 1 1426 9 is_stmt 0 view .LVU798 + ARM GAS /tmp/cc3JIfda.s page 201 + + + 2625 0052 2368 ldr r3, [r4] + 2626 .LVL218: + 2627 .LBB346: + 2628 .LBI346: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2629 .loc 2 7076 26 is_stmt 1 view .LVU799 + 2630 .LBB347: + 2631 .loc 2 7078 3 view .LVU800 + 2632 .loc 2 7078 12 is_stmt 0 view .LVU801 + 2633 0054 9B68 ldr r3, [r3, #8] + 2634 .LVL219: + 2635 .loc 2 7078 76 view .LVU802 + 2636 0056 13F0080F tst r3, #8 + 2637 005a 04D0 beq .L203 + 2638 .LVL220: + 2639 .loc 2 7078 76 view .LVU803 + 2640 .LBE347: + 2641 .LBE346: +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2642 .loc 1 1448 7 is_stmt 1 view .LVU804 + 2643 005c E36D ldr r3, [r4, #92] + 2644 005e 43F48053 orr r3, r3, #4096 + 2645 0062 E365 str r3, [r4, #92] + 2646 0064 D9E7 b .L201 + 2647 .LVL221: + 2648 .L203: +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2649 .loc 1 1428 7 view .LVU805 +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2650 .loc 1 1428 10 is_stmt 0 view .LVU806 + 2651 0066 75B9 cbnz r5, .L204 +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2652 .loc 1 1430 9 is_stmt 1 view .LVU807 +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2653 .loc 1 1430 26 is_stmt 0 view .LVU808 + 2654 0068 2046 mov r0, r4 + 2655 .LVL222: +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2656 .loc 1 1430 26 view .LVU809 + 2657 006a FFF7FEFF bl ADC_Disable + 2658 .LVL223: + 2659 006e 0546 mov r5, r0 + 2660 .LVL224: + 2661 .L205: +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2662 .loc 1 1438 7 is_stmt 1 view .LVU810 +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2663 .loc 1 1438 10 is_stmt 0 view .LVU811 + 2664 0070 002D cmp r5, #0 + 2665 0072 D2D1 bne .L201 +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADC_STATE_INJ_BUSY, + 2666 .loc 1 1441 9 is_stmt 1 view .LVU812 + 2667 0074 E36D ldr r3, [r4, #92] + 2668 0076 23F48053 bic r3, r3, #4096 + 2669 007a 23F00103 bic r3, r3, #1 + 2670 007e 43F00103 orr r3, r3, #1 + 2671 0082 E365 str r3, [r4, #92] + ARM GAS /tmp/cc3JIfda.s page 202 + + + 2672 0084 C9E7 b .L201 + 2673 .LVL225: + 2674 .L204: +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2675 .loc 1 1434 9 view .LVU813 +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2676 .loc 1 1434 15 is_stmt 0 view .LVU814 + 2677 0086 2046 mov r0, r4 + 2678 .LVL226: +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2679 .loc 1 1434 15 view .LVU815 + 2680 0088 FFF7FEFF bl ADC_Disable + 2681 .LVL227: + 2682 008c F0E7 b .L205 + 2683 .LVL228: + 2684 .L206: +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2685 .loc 1 1394 3 view .LVU816 + 2686 008e 0225 movs r5, #2 + 2687 0090 C6E7 b .L200 + 2688 .cfi_endproc + 2689 .LFE348: + 2691 .section .text.HAL_ADCEx_RegularMultiModeStop_DMA,"ax",%progbits + 2692 .align 1 + 2693 .global HAL_ADCEx_RegularMultiModeStop_DMA + 2694 .syntax unified + 2695 .thumb + 2696 .thumb_func + 2698 HAL_ADCEx_RegularMultiModeStop_DMA: + 2699 .LVL229: + 2700 .LFB349: +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Stop DMA-based multimode ADC conversion, disable ADC DMA transfer, disable ADC peripher +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Multimode is kept enabled after this function. Multimode DMA bits +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * (MDMA and DMACFG bits of common CCR register) are maintained. To disable +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * multimode (set with HAL_ADCEx_MultiModeConfigChannel()), ADC must be +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * reinitialized using HAL_ADC_Init() or HAL_ADC_DeInit(), or the user can +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * resort to HAL_ADCEx_DisableMultiMode() API. +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note In case of DMA configured in circular mode, function +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_RegularStop_DMA() must be called after this function with handle of +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * ADC slave, to properly disable the DMA channel. +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle of ADC master (handle of ADC slave must not be used) +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_RegularMultiModeStop_DMA(ADC_HandleTypeDef *hadc) +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2701 .loc 1 1474 1 is_stmt 1 view -0 + 2702 .cfi_startproc + 2703 @ args = 0, pretend = 0, frame = 112 + 2704 @ frame_needed = 0, uses_anonymous_args = 0 +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2705 .loc 1 1475 3 view .LVU818 +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tickstart; + 2706 .loc 1 1476 3 view .LVU819 +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_HandleTypeDef tmphadcSlave; + ARM GAS /tmp/cc3JIfda.s page 203 + + + 2707 .loc 1 1477 3 view .LVU820 +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmphadcSlave_conversion_on_going; + 2708 .loc 1 1478 3 view .LVU821 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + 2709 .loc 1 1481 3 view .LVU822 +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 2710 .loc 1 1484 3 view .LVU823 + 2711 .loc 1 1484 3 view .LVU824 + 2712 0000 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 2713 0004 012B cmp r3, #1 + 2714 0006 00F08680 beq .L226 +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 2715 .loc 1 1474 1 is_stmt 0 discriminator 2 view .LVU825 + 2716 000a 30B5 push {r4, r5, lr} + 2717 .LCFI28: + 2718 .cfi_def_cfa_offset 12 + 2719 .cfi_offset 4, -12 + 2720 .cfi_offset 5, -8 + 2721 .cfi_offset 14, -4 + 2722 000c 9DB0 sub sp, sp, #116 + 2723 .LCFI29: + 2724 .cfi_def_cfa_offset 128 + 2725 000e 0446 mov r4, r0 + 2726 .loc 1 1484 3 is_stmt 1 discriminator 2 view .LVU826 + 2727 0010 0121 movs r1, #1 + 2728 0012 80F85810 strb r1, [r0, #88] + 2729 .loc 1 1484 3 discriminator 2 view .LVU827 +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Stop potential multimode conversion on going, on regular groups */ +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_ConversionStop(hadc, ADC_REGULAR_GROUP); + 2730 .loc 1 1488 3 discriminator 2 view .LVU828 + 2731 .loc 1 1488 20 is_stmt 0 discriminator 2 view .LVU829 + 2732 0016 FFF7FEFF bl ADC_ConversionStop + 2733 .LVL230: +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC peripheral if conversions are effectively stopped */ +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2734 .loc 1 1491 3 is_stmt 1 discriminator 2 view .LVU830 + 2735 .loc 1 1491 6 is_stmt 0 discriminator 2 view .LVU831 + 2736 001a 0028 cmp r0, #0 + 2737 001c 76D1 bne .L211 +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear HAL_ADC_STATE_REG_BUSY bit */ +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); + 2738 .loc 1 1494 5 is_stmt 1 view .LVU832 + 2739 001e E36D ldr r3, [r4, #92] + 2740 0020 23F48073 bic r3, r3, #256 + 2741 0024 E365 str r3, [r4, #92] +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Temporary handle minimum initialization */ +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_RESET_HANDLE_STATE(&tmphadcSlave); + 2742 .loc 1 1497 5 view .LVU833 + ARM GAS /tmp/cc3JIfda.s page 204 + + + 2743 0026 0023 movs r3, #0 + 2744 0028 1893 str r3, [sp, #96] +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(&tmphadcSlave); + 2745 .loc 1 1498 5 view .LVU834 + 2746 002a 1993 str r3, [sp, #100] +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set a temporary handle of the ADC slave associated to the ADC master */ +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_MULTI_SLAVE(hadc, &tmphadcSlave); + 2747 .loc 1 1501 5 view .LVU835 + 2748 002c 2368 ldr r3, [r4] + 2749 002e B3F1A04F cmp r3, #1342177280 + 2750 0032 0DD0 beq .L231 + 2751 .loc 1 1501 5 is_stmt 0 discriminator 2 view .LVU836 + 2752 0034 0023 movs r3, #0 + 2753 0036 0193 str r3, [sp, #4] + 2754 .L213: +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmphadcSlave.Instance == NULL) + 2755 .loc 1 1503 5 is_stmt 1 view .LVU837 + 2756 .loc 1 1503 21 is_stmt 0 view .LVU838 + 2757 0038 019B ldr r3, [sp, #4] + 2758 .loc 1 1503 8 view .LVU839 + 2759 003a 6BB1 cbz r3, .L232 +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Procedure to disable the ADC peripheral: wait for conversions */ +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* effectively stopped (ADC master and ADC slave), then disable ADC */ +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Wait for ADC conversion completion for ADC master and ADC slave */ +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tickstart = HAL_GetTick(); + 2760 .loc 1 1518 5 is_stmt 1 view .LVU840 + 2761 .loc 1 1518 17 is_stmt 0 view .LVU841 + 2762 003c FFF7FEFF bl HAL_GetTick + 2763 .LVL231: + 2764 .loc 1 1518 17 view .LVU842 + 2765 0040 0546 mov r5, r0 + 2766 .LVL232: +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance); + 2767 .loc 1 1520 5 is_stmt 1 view .LVU843 + 2768 .loc 1 1520 40 is_stmt 0 view .LVU844 + 2769 0042 019B ldr r3, [sp, #4] + 2770 .LVL233: + 2771 .LBB348: + 2772 .LBI348: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2773 .loc 2 6851 26 is_stmt 1 view .LVU845 + 2774 .LBB349: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 205 + + + 2775 .loc 2 6853 3 view .LVU846 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2776 .loc 2 6853 12 is_stmt 0 view .LVU847 + 2777 0044 9B68 ldr r3, [r3, #8] + 2778 .LVL234: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2779 .loc 2 6853 74 view .LVU848 + 2780 0046 13F00403 ands r3, r3, #4 + 2781 004a 13D0 beq .L222 + 2782 004c 0123 movs r3, #1 + 2783 004e 11E0 b .L222 + 2784 .LVL235: + 2785 .L231: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2786 .loc 2 6853 74 view .LVU849 + 2787 .LBE349: + 2788 .LBE348: +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2789 .loc 1 1501 5 discriminator 1 view .LVU850 + 2790 0050 03F58073 add r3, r3, #256 + 2791 0054 0193 str r3, [sp, #4] + 2792 0056 EFE7 b .L213 + 2793 .L232: +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2794 .loc 1 1506 7 is_stmt 1 view .LVU851 + 2795 0058 E36D ldr r3, [r4, #92] + 2796 005a 43F02003 orr r3, r3, #32 + 2797 005e E365 str r3, [r4, #92] +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2798 .loc 1 1509 7 view .LVU852 +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2799 .loc 1 1509 7 view .LVU853 + 2800 0060 0023 movs r3, #0 + 2801 0062 84F85830 strb r3, [r4, #88] +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2802 .loc 1 1509 7 view .LVU854 +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2803 .loc 1 1511 7 view .LVU855 +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2804 .loc 1 1511 14 is_stmt 0 view .LVU856 + 2805 0066 0120 movs r0, #1 + 2806 .LVL236: +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2807 .loc 1 1511 14 view .LVU857 + 2808 0068 53E0 b .L210 + 2809 .LVL237: + 2810 .L217: +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* New check to avoid false timeout detection in case of preemption */ +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + ARM GAS /tmp/cc3JIfda.s page 206 + + +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance); + 2811 .loc 1 1543 7 is_stmt 1 view .LVU858 + 2812 .loc 1 1543 42 is_stmt 0 view .LVU859 + 2813 006a 019B ldr r3, [sp, #4] + 2814 .LVL238: + 2815 .LBB350: + 2816 .LBI350: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2817 .loc 2 6851 26 is_stmt 1 view .LVU860 + 2818 .LBB351: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2819 .loc 2 6853 3 view .LVU861 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2820 .loc 2 6853 12 is_stmt 0 view .LVU862 + 2821 006c 9B68 ldr r3, [r3, #8] + 2822 .LVL239: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2823 .loc 2 6853 74 view .LVU863 + 2824 006e 13F00403 ands r3, r3, #4 + 2825 0072 21D1 bne .L220 + 2826 .LVL240: + 2827 .L222: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2828 .loc 2 6853 74 view .LVU864 + 2829 .LBE351: + 2830 .LBE350: +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 2831 .loc 1 1522 12 is_stmt 1 view .LVU865 +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + 2832 .loc 1 1521 13 is_stmt 0 view .LVU866 + 2833 0074 2268 ldr r2, [r4] + 2834 .LVL241: + 2835 .LBB353: + 2836 .LBI353: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2837 .loc 2 6851 26 is_stmt 1 view .LVU867 + 2838 .LBB354: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2839 .loc 2 6853 3 view .LVU868 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2840 .loc 2 6853 12 is_stmt 0 view .LVU869 + 2841 0076 9268 ldr r2, [r2, #8] + 2842 .LVL242: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2843 .loc 2 6853 74 view .LVU870 + ARM GAS /tmp/cc3JIfda.s page 207 + + + 2844 0078 12F0040F tst r2, #4 + 2845 007c 01D1 bne .L223 + 2846 .LVL243: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2847 .loc 2 6853 74 view .LVU871 + 2848 .LBE354: + 2849 .LBE353: +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 2850 .loc 1 1522 12 view .LVU872 + 2851 007e 012B cmp r3, #1 + 2852 0080 1CD1 bne .L233 + 2853 .L223: +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2854 .loc 1 1525 7 is_stmt 1 view .LVU873 +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2855 .loc 1 1525 12 is_stmt 0 view .LVU874 + 2856 0082 FFF7FEFF bl HAL_GetTick + 2857 .LVL244: +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2858 .loc 1 1525 26 view .LVU875 + 2859 0086 431B subs r3, r0, r5 +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 2860 .loc 1 1525 10 view .LVU876 + 2861 0088 052B cmp r3, #5 + 2862 008a EED9 bls .L217 +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + 2863 .loc 1 1528 9 is_stmt 1 view .LVU877 +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 1UL) + 2864 .loc 1 1528 44 is_stmt 0 view .LVU878 + 2865 008c 019B ldr r3, [sp, #4] + 2866 .LVL245: + 2867 .LBB355: + 2868 .LBI355: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2869 .loc 2 6851 26 is_stmt 1 view .LVU879 + 2870 .LBB356: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2871 .loc 2 6853 3 view .LVU880 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2872 .loc 2 6853 12 is_stmt 0 view .LVU881 + 2873 008e 9B68 ldr r3, [r3, #8] + 2874 .LVL246: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2875 .loc 2 6853 74 view .LVU882 + 2876 0090 13F00403 ands r3, r3, #4 + 2877 0094 00D0 beq .L218 + 2878 0096 0123 movs r3, #1 + 2879 .L218: + 2880 .LVL247: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2881 .loc 2 6853 74 view .LVU883 + 2882 .LBE356: + 2883 .LBE355: +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + 2884 .loc 1 1529 9 is_stmt 1 view .LVU884 +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (tmphadcSlave_conversion_on_going == 1UL) + 2885 .loc 1 1529 14 is_stmt 0 view .LVU885 + ARM GAS /tmp/cc3JIfda.s page 208 + + + 2886 0098 2268 ldr r2, [r4] + 2887 .LVL248: + 2888 .LBB357: + 2889 .LBI357: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2890 .loc 2 6851 26 is_stmt 1 view .LVU886 + 2891 .LBB358: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2892 .loc 2 6853 3 view .LVU887 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2893 .loc 2 6853 12 is_stmt 0 view .LVU888 + 2894 009a 9268 ldr r2, [r2, #8] + 2895 .LVL249: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2896 .loc 2 6853 74 view .LVU889 + 2897 009c 12F0040F tst r2, #4 + 2898 00a0 01D1 bne .L219 + 2899 .LVL250: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2900 .loc 2 6853 74 view .LVU890 + 2901 .LBE358: + 2902 .LBE357: +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) + 2903 .loc 1 1530 13 view .LVU891 + 2904 00a2 012B cmp r3, #1 + 2905 00a4 E1D1 bne .L217 + 2906 .L219: +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2907 .loc 1 1534 11 is_stmt 1 view .LVU892 + 2908 00a6 E36D ldr r3, [r4, #92] + 2909 .LVL251: +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2910 .loc 1 1534 11 is_stmt 0 view .LVU893 + 2911 00a8 43F01003 orr r3, r3, #16 + 2912 00ac E365 str r3, [r4, #92] +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2913 .loc 1 1537 11 is_stmt 1 view .LVU894 +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2914 .loc 1 1537 11 view .LVU895 + 2915 00ae 0023 movs r3, #0 + 2916 00b0 84F85830 strb r3, [r4, #88] +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 2917 .loc 1 1537 11 view .LVU896 +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2918 .loc 1 1539 11 view .LVU897 +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 2919 .loc 1 1539 18 is_stmt 0 view .LVU898 + 2920 00b4 0120 movs r0, #1 + 2921 00b6 2CE0 b .L210 + 2922 .LVL252: + 2923 .L220: + 2924 .LBB359: + 2925 .LBB352: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2926 .loc 2 6853 74 view .LVU899 + 2927 00b8 0123 movs r3, #1 + 2928 00ba DBE7 b .L222 + ARM GAS /tmp/cc3JIfda.s page 209 + + + 2929 .LVL253: + 2930 .L233: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 2931 .loc 2 6853 74 view .LVU900 + 2932 .LBE352: + 2933 .LBE359: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable the DMA channel (in case of DMA in circular mode or stop */ +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* while DMA transfer is on going) */ +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: DMA channel of ADC slave should be stopped after this function */ +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* with HAL_ADCEx_RegularStop_DMA() API. */ +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); + 2934 .loc 1 1550 5 is_stmt 1 view .LVU901 + 2935 .loc 1 1550 22 is_stmt 0 view .LVU902 + 2936 00bc 606D ldr r0, [r4, #84] + 2937 00be FFF7FEFF bl HAL_DMA_Abort + 2938 .LVL254: +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check if DMA channel effectively disabled */ +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status != HAL_OK) + 2939 .loc 1 1553 5 is_stmt 1 view .LVU903 + 2940 .loc 1 1553 8 is_stmt 0 view .LVU904 + 2941 00c2 18B1 cbz r0, .L224 +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); + 2942 .loc 1 1556 7 is_stmt 1 view .LVU905 + 2943 00c4 E36D ldr r3, [r4, #92] + 2944 00c6 43F04003 orr r3, r3, #64 + 2945 00ca E365 str r3, [r4, #92] + 2946 .L224: +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable ADC overrun interrupt */ +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); + 2947 .loc 1 1560 5 view .LVU906 + 2948 00cc 2268 ldr r2, [r4] + 2949 00ce 5368 ldr r3, [r2, #4] + 2950 00d0 23F01003 bic r3, r3, #16 + 2951 00d4 5360 str r3, [r2, #4] +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Disable the ADC peripherals: master and slave if no injected */ +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion is on-going. */ +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update "tmp_hal_status" only if DMA channel disabling passed, to keep in */ +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* memory a potential failing status. */ +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2952 .loc 1 1566 5 view .LVU907 + 2953 .loc 1 1566 8 is_stmt 0 view .LVU908 + 2954 00d6 C8B9 cbnz r0, .L211 +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + 2955 .loc 1 1568 7 is_stmt 1 view .LVU909 + 2956 .loc 1 1568 11 is_stmt 0 view .LVU910 + 2957 00d8 2368 ldr r3, [r4] + 2958 .LVL255: + 2959 .LBB360: + ARM GAS /tmp/cc3JIfda.s page 210 + + + 2960 .LBI360: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2961 .loc 2 7076 26 is_stmt 1 view .LVU911 + 2962 .LBB361: + 2963 .loc 2 7078 3 view .LVU912 + 2964 .loc 2 7078 12 is_stmt 0 view .LVU913 + 2965 00da 9B68 ldr r3, [r3, #8] + 2966 .LVL256: + 2967 .loc 2 7078 76 view .LVU914 + 2968 00dc 13F0080F tst r3, #8 + 2969 00e0 0BD1 bne .L225 + 2970 .LVL257: + 2971 .loc 2 7078 76 view .LVU915 + 2972 .LBE361: + 2973 .LBE360: +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(hadc); + 2974 .loc 1 1570 9 is_stmt 1 view .LVU916 + 2975 .loc 1 1570 27 is_stmt 0 view .LVU917 + 2976 00e2 2046 mov r0, r4 + 2977 .LVL258: + 2978 .loc 1 1570 27 view .LVU918 + 2979 00e4 FFF7FEFF bl ADC_Disable + 2980 .LVL259: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 2981 .loc 1 1571 9 is_stmt 1 view .LVU919 + 2982 .loc 1 1571 12 is_stmt 0 view .LVU920 + 2983 00e8 80B9 cbnz r0, .L211 +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing((&tmphadcSlave)->Instance) == 0UL) + 2984 .loc 1 1573 11 is_stmt 1 view .LVU921 + 2985 .loc 1 1573 15 is_stmt 0 view .LVU922 + 2986 00ea 019B ldr r3, [sp, #4] + 2987 .LVL260: + 2988 .LBB362: + 2989 .LBI362: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 2990 .loc 2 7076 26 is_stmt 1 view .LVU923 + 2991 .LBB363: + 2992 .loc 2 7078 3 view .LVU924 + 2993 .loc 2 7078 12 is_stmt 0 view .LVU925 + 2994 00ec 9B68 ldr r3, [r3, #8] + 2995 .LVL261: + 2996 .loc 2 7078 76 view .LVU926 + 2997 00ee 13F0080F tst r3, #8 + 2998 00f2 02D1 bne .L225 + 2999 .LVL262: + 3000 .loc 2 7078 76 view .LVU927 + 3001 .LBE363: + 3002 .LBE362: +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = ADC_Disable(&tmphadcSlave); + 3003 .loc 1 1575 13 is_stmt 1 view .LVU928 + 3004 .loc 1 1575 31 is_stmt 0 view .LVU929 + 3005 00f4 01A8 add r0, sp, #4 + 3006 .LVL263: + 3007 .loc 1 1575 31 view .LVU930 + ARM GAS /tmp/cc3JIfda.s page 211 + + + 3008 00f6 FFF7FEFF bl ADC_Disable + 3009 .LVL264: + 3010 .L225: +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmp_hal_status == HAL_OK) + 3011 .loc 1 1580 7 is_stmt 1 view .LVU931 + 3012 .loc 1 1580 10 is_stmt 0 view .LVU932 + 3013 00fa 38B9 cbnz r0, .L211 +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Both Master and Slave ADC's could be disabled. Update Master State */ +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear HAL_ADC_STATE_INJ_BUSY bit, set HAL_ADC_STATE_READY bit */ +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_READY); + 3014 .loc 1 1584 9 is_stmt 1 view .LVU933 + 3015 00fc E36D ldr r3, [r4, #92] + 3016 00fe 23F48053 bic r3, r3, #4096 + 3017 0102 23F00103 bic r3, r3, #1 + 3018 0106 43F00103 orr r3, r3, #1 + 3019 010a E365 str r3, [r4, #92] + 3020 .LVL265: + 3021 .L211: +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* injected (Master or Slave) conversions are still on-going, +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** no Master State change */ +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3022 .loc 1 1590 7 view .LVU934 +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 3023 .loc 1 1595 3 view .LVU935 + 3024 .loc 1 1595 3 view .LVU936 + 3025 010c 0023 movs r3, #0 + 3026 010e 84F85830 strb r3, [r4, #88] + 3027 .loc 1 1595 3 view .LVU937 +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 3028 .loc 1 1598 3 view .LVU938 + 3029 .LVL266: + 3030 .L210: +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3031 .loc 1 1599 1 is_stmt 0 view .LVU939 + 3032 0112 1DB0 add sp, sp, #116 + 3033 .LCFI30: + 3034 .cfi_def_cfa_offset 12 + 3035 @ sp needed + 3036 0114 30BD pop {r4, r5, pc} + 3037 .LVL267: + 3038 .L226: + 3039 .LCFI31: + 3040 .cfi_def_cfa_offset 0 + ARM GAS /tmp/cc3JIfda.s page 212 + + + 3041 .cfi_restore 4 + 3042 .cfi_restore 5 + 3043 .cfi_restore 14 +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3044 .loc 1 1484 3 view .LVU940 + 3045 0116 0220 movs r0, #2 + 3046 .LVL268: + 3047 .loc 1 1599 1 view .LVU941 + 3048 0118 7047 bx lr + 3049 .cfi_endproc + 3050 .LFE349: + 3052 .section .text.HAL_ADCEx_InjectedConfigChannel,"ax",%progbits + 3053 .align 1 + 3054 .global HAL_ADCEx_InjectedConfigChannel + 3055 .syntax unified + 3056 .thumb + 3057 .thumb_func + 3059 HAL_ADCEx_InjectedConfigChannel: + 3060 .LVL269: + 3061 .LFB350: +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif /* ADC_MULTIMODE_SUPPORT */ +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @} +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** @defgroup ADCEx_Exported_Functions_Group2 ADC Extended Peripheral Control functions +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief ADC Extended Peripheral Control functions +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** @verbatim +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** =============================================================================== +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ##### Peripheral Control functions ##### +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** =============================================================================== +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** [..] This section provides functions allowing to: +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Configure channels on injected group +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Configure multimode when multimode feature is available +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Enable or Disable Injected Queue +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Disable ADC voltage regulator +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (+) Enter ADC deep-power-down mode +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** @endverbatim +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @{ +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Configure a channel to be assigned to ADC group injected. +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Possibility to update parameters on the fly: +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * This function initializes injected group, following calls to this +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * function can be used to reconfigure some parameters of structure +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * "ADC_InjectionConfTypeDef" on the fly, without resetting the ADC. +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * The setting of these parameters is conditioned to ADC state: +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Refer to comments of structure "ADC_InjectionConfTypeDef". +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note In case of usage of internal measurement channels: +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Vbat/VrefInt/TempSensor. +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * These internal paths can be disabled using function +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADC_DeInit(). +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Caution: For Injected Context Queue use, a context must be fully + ARM GAS /tmp/cc3JIfda.s page 213 + + +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * defined before start of injected conversion. All channels are configured +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * consecutively for the same ADC instance. Therefore, the number of calls to +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedConfigChannel() must be equal to the value of parameter +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * InjectedNbrOfConversion for each context. +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * - Example 1: If 1 context is intended to be used (or if there is no use of the +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Injected Queue Context feature) and if the context contains 3 injected ranks +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * (InjectedNbrOfConversion = 3), HAL_ADCEx_InjectedConfigChannel() must be +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * called once for each channel (i.e. 3 times) before starting a conversion. +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * This function must not be called to configure a 4th injected channel: +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * it would start a new context into context queue. +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * - Example 2: If 2 contexts are intended to be used and each of them contains +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * 3 injected ranks (InjectedNbrOfConversion = 3), +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedConfigChannel() must be called once for each channel and +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * for each context (3 channels x 2 contexts = 6 calls). Conversion can +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * start once the 1st context is set, that is after the first three +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_InjectedConfigChannel() calls. The 2nd context can be set on the fly. +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param sConfigInjected Structure of ADC injected group and ADC channel for +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * injected group. +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, ADC_InjectionConfTypeDef +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3062 .loc 1 1659 1 is_stmt 1 view -0 + 3063 .cfi_startproc + 3064 @ args = 0, pretend = 0, frame = 8 + 3065 @ frame_needed = 0, uses_anonymous_args = 0 + 3066 .loc 1 1659 1 is_stmt 0 view .LVU943 + 3067 0000 F0B5 push {r4, r5, r6, r7, lr} + 3068 .LCFI32: + 3069 .cfi_def_cfa_offset 20 + 3070 .cfi_offset 4, -20 + 3071 .cfi_offset 5, -16 + 3072 .cfi_offset 6, -12 + 3073 .cfi_offset 7, -8 + 3074 .cfi_offset 14, -4 + 3075 0002 83B0 sub sp, sp, #12 + 3076 .LCFI33: + 3077 .cfi_def_cfa_offset 32 +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 3078 .loc 1 1660 3 is_stmt 1 view .LVU944 + 3079 .LVL270: +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmpOffsetShifted; + 3080 .loc 1 1661 3 view .LVU945 +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_config_internal_channel; + 3081 .loc 1 1662 3 view .LVU946 +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 3082 .loc 1 1663 3 view .LVU947 +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 3083 .loc 1 1664 3 view .LVU948 +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __IO uint32_t wait_loop_index = 0; + 3084 .loc 1 1665 3 view .LVU949 + 3085 .loc 1 1665 17 is_stmt 0 view .LVU950 + 3086 0004 0023 movs r3, #0 + 3087 0006 0193 str r3, [sp, #4] +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_JSQR_ContextQueueBeingBuilt = 0U; + ARM GAS /tmp/cc3JIfda.s page 214 + + + 3088 .loc 1 1667 3 is_stmt 1 view .LVU951 + 3089 .LVL271: +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 3090 .loc 1 1670 3 view .LVU952 +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_SAMPLE_TIME(sConfigInjected->InjectedSamplingTime)); + 3091 .loc 1 1671 3 view .LVU953 +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_SINGLE_DIFFERENTIAL(sConfigInjected->InjectedSingleDiff)); + 3092 .loc 1 1672 3 view .LVU954 +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sConfigInjected->AutoInjectedConv)); + 3093 .loc 1 1673 3 view .LVU955 +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sConfigInjected->QueueInjectedContext)); + 3094 .loc 1 1674 3 view .LVU956 +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_EXTTRIGINJEC_EDGE(sConfigInjected->ExternalTrigInjecConvEdge)); + 3095 .loc 1 1675 3 view .LVU957 +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_EXTTRIGINJEC(hadc, sConfigInjected->ExternalTrigInjecConv)); + 3096 .loc 1 1676 3 view .LVU958 +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_OFFSET_NUMBER(sConfigInjected->InjectedOffsetNumber)); + 3097 .loc 1 1677 3 view .LVU959 +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), sConfigInjected->InjectedOffset)); + 3098 .loc 1 1678 3 view .LVU960 +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_OFFSET_SIGN(sConfigInjected->InjectedOffsetSign)); + 3099 .loc 1 1679 3 view .LVU961 +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sConfigInjected->InjectedOffsetSaturation)); + 3100 .loc 1 1680 3 view .LVU962 +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sConfigInjected->InjecOversamplingMode)); + 3101 .loc 1 1681 3 view .LVU963 +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (hadc->Init.ScanConvMode != ADC_SCAN_DISABLE) + 3102 .loc 1 1683 3 view .LVU964 + 3103 .loc 1 1683 17 is_stmt 0 view .LVU965 + 3104 0008 4269 ldr r2, [r0, #20] +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_INJECTED_RANK(sConfigInjected->InjectedRank)); + 3105 .loc 1 1685 5 is_stmt 1 view .LVU966 +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_INJECTED_NB_CONV(sConfigInjected->InjectedNbrOfConversion)); + 3106 .loc 1 1686 5 view .LVU967 +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sConfigInjected->InjectedDiscontinuousConvMode)); + 3107 .loc 1 1687 5 view .LVU968 +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if JOVSE is set, the value of the OFFSETy_EN bit in ADCx_OFRy register is +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ignored (considered as reset) */ +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(!((sConfigInjected->InjectedOffsetNumber != ADC_OFFSET_NONE) && (sConfigInjected->In + 3108 .loc 1 1693 3 view .LVU969 +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* JDISCEN and JAUTO bits can't be set at the same time */ +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(!((sConfigInjected->InjectedDiscontinuousConvMode == ENABLE) && (sConfigInjected->Au + 3109 .loc 1 1696 3 view .LVU970 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* DISCEN and JAUTO bits can't be set at the same time */ +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(!((hadc->Init.DiscontinuousConvMode == ENABLE) && (sConfigInjected->AutoInjectedConv + 3110 .loc 1 1699 3 view .LVU971 +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Verification of channel number */ + ARM GAS /tmp/cc3JIfda.s page 215 + + +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->InjectedSingleDiff != ADC_DIFFERENTIAL_ENDED) + 3111 .loc 1 1702 3 view .LVU972 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_CHANNEL(hadc, sConfigInjected->InjectedChannel)); +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_DIFF_CHANNEL(hadc, sConfigInjected->InjectedChannel)); + 3112 .loc 1 1708 5 view .LVU973 +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 3113 .loc 1 1712 3 view .LVU974 + 3114 .loc 1 1712 3 view .LVU975 + 3115 000a 90F85830 ldrb r3, [r0, #88] @ zero_extendqisi2 + 3116 000e 012B cmp r3, #1 + 3117 0010 00F0CC82 beq .L306 + 3118 0014 0446 mov r4, r0 + 3119 0016 0D46 mov r5, r1 + 3120 .loc 1 1712 3 discriminator 2 view .LVU976 + 3121 0018 0123 movs r3, #1 + 3122 001a 80F85830 strb r3, [r0, #88] + 3123 .loc 1 1712 3 discriminator 2 view .LVU977 +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Configuration of injected group sequencer: */ +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Hardware constraint: Must fully define injected context register JSQR */ +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* before make it entering into injected sequencer queue. */ +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* */ +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - if scan mode is disabled: */ +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* * Injected channels sequence length is set to 0x00: 1 channel */ +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* converted (channel on injected rank 1) */ +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameter "InjectedNbrOfConversion" is discarded. */ +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* * Injected context register JSQR setting is simple: register is fully */ +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* defined on one call of this function (for injected rank 1) and can */ +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* be entered into queue directly. */ +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - if scan mode is enabled: */ +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* * Injected channels sequence length is set to parameter */ +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* "InjectedNbrOfConversion". */ +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* * Injected context register JSQR setting more complex: register is */ +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* fully defined over successive calls of this function, for each */ +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* injected channel rank. It is entered into queue only when all */ +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* injected ranks have been set. */ +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: Scan mode is not present by hardware on this device, but used */ +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* by software for alignment over all STM32 devices. */ +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((hadc->Init.ScanConvMode == ADC_SCAN_DISABLE) || + 3124 .loc 1 1735 3 discriminator 2 view .LVU978 + 3125 .loc 1 1735 6 is_stmt 0 discriminator 2 view .LVU979 + 3126 001e AAB1 cbz r2, .L236 +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (sConfigInjected->InjectedNbrOfConversion == 1U)) + 3127 .loc 1 1736 23 discriminator 1 view .LVU980 + 3128 0020 0B6A ldr r3, [r1, #32] +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (sConfigInjected->InjectedNbrOfConversion == 1U)) + 3129 .loc 1 1735 54 discriminator 1 view .LVU981 + 3130 0022 012B cmp r3, #1 + 3131 0024 12D0 beq .L236 + ARM GAS /tmp/cc3JIfda.s page 216 + + +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Configuration of context register JSQR: */ +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - number of ranks in injected group sequencer: fixed to 1st rank */ +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* (scan mode disabled, only rank 1 used) */ +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - external trigger to start conversion */ +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - external trigger polarity */ +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - channel set to rank 1 (scan mode disabled, only rank 1 can be used) */ +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->InjectedRank == ADC_INJECTED_RANK_1) +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable external trigger if trigger selection is different of */ +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* software start. */ +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: This configuration keeps the hardware feature of parameter */ +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ExternalTrigInjecConvEdge "trigger edge none" equivalent to */ +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* software start. */ +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->ExternalTrigInjecConv != ADC_INJECTED_SOFTWARE_START) +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_JSQR_ContextQueueBeingBuilt = (ADC_JSQR_RK(sConfigInjected->InjectedChannel, ADC_INJECT +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | sConfigInjected->ExternalTrigInjecConvEdge +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ); +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_JSQR_ContextQueueBeingBuilt = (ADC_JSQR_RK(sConfigInjected->InjectedChannel, ADC_INJECT +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(hadc->Instance->JSQR, ADC_JSQR_FIELDS, tmp_JSQR_ContextQueueBeingBuilt); +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* For debug and informative reasons, hadc handle saves JSQR setting */ +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->InjectionConfig.ContextQueue = tmp_JSQR_ContextQueueBeingBuilt; +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Case of scan mode enabled, several channels to set into injected group */ +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* sequencer. */ +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* */ +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Procedure to define injected context register JSQR over successive */ +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* calls of this function, for each injected channel rank: */ +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 1. Start new context and set parameters related to all injected */ +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* channels: injected sequence length and trigger. */ +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* if hadc->InjectionConfig.ChannelCount is equal to 0, this is the first */ +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* call of the context under setting */ +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (hadc->InjectionConfig.ChannelCount == 0U) + 3132 .loc 1 1782 5 is_stmt 1 view .LVU982 + 3133 .loc 1 1782 30 is_stmt 0 view .LVU983 + 3134 0026 826E ldr r2, [r0, #104] + 3135 .loc 1 1782 8 view .LVU984 + 3136 0028 002A cmp r2, #0 + 3137 002a 40F0B980 bne .L307 +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Initialize number of channels that will be configured on the context */ +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* being built */ +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->InjectionConfig.ChannelCount = sConfigInjected->InjectedNbrOfConversion; + 3138 .loc 1 1786 7 is_stmt 1 view .LVU985 + ARM GAS /tmp/cc3JIfda.s page 217 + + + 3139 .loc 1 1786 42 is_stmt 0 view .LVU986 + 3140 002e 8366 str r3, [r0, #104] +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Handle hadc saves the context under build up over each HAL_ADCEx_InjectedConfigChannel() +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** call, this context will be written in JSQR register at the last call. +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** At this point, the context is merely reset */ +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->InjectionConfig.ContextQueue = 0x00000000U; + 3141 .loc 1 1790 7 is_stmt 1 view .LVU987 + 3142 .loc 1 1790 42 is_stmt 0 view .LVU988 + 3143 0030 0023 movs r3, #0 + 3144 0032 4366 str r3, [r0, #100] +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Configuration of context register JSQR: */ +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - number of ranks in injected group sequencer */ +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - external trigger to start conversion */ +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - external trigger polarity */ +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable external trigger if trigger selection is different of */ +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* software start. */ +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: This configuration keeps the hardware feature of parameter */ +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* ExternalTrigInjecConvEdge "trigger edge none" equivalent to */ +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* software start. */ +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->ExternalTrigInjecConv != ADC_INJECTED_SOFTWARE_START) + 3145 .loc 1 1802 7 is_stmt 1 view .LVU989 + 3146 .loc 1 1802 26 is_stmt 0 view .LVU990 + 3147 0034 8B6A ldr r3, [r1, #40] + 3148 .loc 1 1802 10 view .LVU991 + 3149 0036 002B cmp r3, #0 + 3150 0038 00F0AF80 beq .L242 +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_JSQR_ContextQueueBeingBuilt = ((sConfigInjected->InjectedNbrOfConversion - 1U) + 3151 .loc 1 1804 9 is_stmt 1 view .LVU992 + 3152 .loc 1 1804 60 is_stmt 0 view .LVU993 + 3153 003c 0A6A ldr r2, [r1, #32] + 3154 .loc 1 1804 86 view .LVU994 + 3155 003e 013A subs r2, r2, #1 +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX + 3156 .loc 1 1805 86 view .LVU995 + 3157 0040 03F07C03 and r3, r3, #124 + 3158 .loc 1 1805 44 view .LVU996 + 3159 0044 1A43 orrs r2, r2, r3 +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | sConfigInjected->ExternalTrigInjecConvEdge + 3160 .loc 1 1806 61 view .LVU997 + 3161 0046 CB6A ldr r3, [r1, #44] +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX + 3162 .loc 1 1804 41 view .LVU998 + 3163 0048 1A43 orrs r2, r2, r3 + 3164 .LVL272: +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX + 3165 .loc 1 1804 41 view .LVU999 + 3166 004a AAE0 b .L241 + 3167 .LVL273: + 3168 .L236: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3169 .loc 1 1745 5 is_stmt 1 view .LVU1000 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3170 .loc 1 1745 24 is_stmt 0 view .LVU1001 + 3171 004c 6B68 ldr r3, [r5, #4] + ARM GAS /tmp/cc3JIfda.s page 218 + + +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3172 .loc 1 1745 8 view .LVU1002 + 3173 004e 092B cmp r3, #9 + 3174 0050 00F08380 beq .L322 + 3175 .LVL274: + 3176 .L238: +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ); +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_JSQR_ContextQueueBeingBuilt = ((sConfigInjected->InjectedNbrOfConversion - 1U)); +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 2. Continue setting of context under definition with parameter */ +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* related to each channel: channel rank sequence */ +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Clear the old JSQx bits for the selected rank */ +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_JSQR_ContextQueueBeingBuilt &= ~ADC_JSQR_RK(ADC_SQR3_SQ10, sConfigInjected->InjectedRank); +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set the JSQx bits for the selected rank */ +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_JSQR_ContextQueueBeingBuilt |= ADC_JSQR_RK(sConfigInjected->InjectedChannel, sConfigInjecte +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Decrease channel count */ +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->InjectionConfig.ChannelCount--; +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 3. tmp_JSQR_ContextQueueBeingBuilt is fully built for this HAL_ADCEx_InjectedConfigChannel() +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** call, aggregate the setting to those already built during the previous +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_ADCEx_InjectedConfigChannel() calls (for the same context of course) */ +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** hadc->InjectionConfig.ContextQueue |= tmp_JSQR_ContextQueueBeingBuilt; +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* 4. End of context setting: if this is the last channel set, then write context +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** into register JSQR and make it enter into queue */ +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (hadc->InjectionConfig.ChannelCount == 0U) +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(hadc->Instance->JSQR, ADC_JSQR_FIELDS, hadc->InjectionConfig.ContextQueue); +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters update conditioned to ADC state: */ +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion on going on injected group: */ +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Injected context queue: Queue disable (active context is kept) or */ +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* enable (context decremented, up to 2 contexts queued) */ +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Injected discontinuous mode: can be enabled only if auto-injected */ +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* mode is disabled. */ +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_INJ_IsConversionOngoing(hadc->Instance) == 0UL) + 3177 .loc 1 1847 3 is_stmt 1 view .LVU1003 + 3178 .loc 1 1847 7 is_stmt 0 view .LVU1004 + 3179 0054 2368 ldr r3, [r4] + 3180 .LVL275: + 3181 .LBB364: + 3182 .LBI364: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3183 .loc 2 7076 26 is_stmt 1 view .LVU1005 + 3184 .LBB365: + 3185 .loc 2 7078 3 view .LVU1006 + ARM GAS /tmp/cc3JIfda.s page 219 + + + 3186 .loc 2 7078 12 is_stmt 0 view .LVU1007 + 3187 0056 9A68 ldr r2, [r3, #8] + 3188 .loc 2 7078 76 view .LVU1008 + 3189 0058 12F0080F tst r2, #8 + 3190 005c 10D1 bne .L243 + 3191 .LVL276: + 3192 .loc 2 7078 76 view .LVU1009 + 3193 .LBE365: + 3194 .LBE364: +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If auto-injected mode is disabled: no constraint */ +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->AutoInjectedConv == DISABLE) + 3195 .loc 1 1850 5 is_stmt 1 view .LVU1010 + 3196 .loc 1 1850 24 is_stmt 0 view .LVU1011 + 3197 005e 95F82520 ldrb r2, [r5, #37] @ zero_extendqisi2 + 3198 .loc 1 1850 8 view .LVU1012 + 3199 0062 002A cmp r2, #0 + 3200 0064 40F0BB80 bne .L244 +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(hadc->Instance->CFGR, + 3201 .loc 1 1852 7 is_stmt 1 view .LVU1013 + 3202 0068 DA68 ldr r2, [r3, #12] + 3203 006a 22F44012 bic r2, r2, #3145728 + 3204 006e 95F82600 ldrb r0, [r5, #38] @ zero_extendqisi2 + 3205 .LVL277: + 3206 .loc 1 1852 7 is_stmt 0 view .LVU1014 + 3207 0072 95F82410 ldrb r1, [r5, #36] @ zero_extendqisi2 + 3208 0076 0905 lsls r1, r1, #20 + 3209 0078 41EA4051 orr r1, r1, r0, lsl #21 + 3210 007c 0A43 orrs r2, r2, r1 + 3211 007e DA60 str r2, [r3, #12] + 3212 .L243: +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR_JQM | ADC_CFGR_JDISCEN, +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR_INJECT_CONTEXT_QUEUE((uint32_t)sConfigInjected->QueueInjectedContext) +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR_INJECT_DISCCONTINUOUS((uint32_t)sConfigInjected->InjectedDiscontinuousCon +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If auto-injected mode is enabled: Injected discontinuous setting is */ +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* discarded. */ +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(hadc->Instance->CFGR, +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR_JQM | ADC_CFGR_JDISCEN, +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR_INJECT_CONTEXT_QUEUE((uint32_t)sConfigInjected->QueueInjectedContext)); +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters update conditioned to ADC state: */ +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion on going on regular and injected groups: */ +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Automatic injected conversion: can be enabled if injected group */ +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* external triggers are disabled. */ +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Channel sampling time */ +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Channel offset */ +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 3213 .loc 1 1875 3 is_stmt 1 view .LVU1015 + 3214 .loc 1 1875 44 is_stmt 0 view .LVU1016 + ARM GAS /tmp/cc3JIfda.s page 220 + + + 3215 0080 2268 ldr r2, [r4] + 3216 .LVL278: + 3217 .LBB366: + 3218 .LBI366: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3219 .loc 2 6851 26 is_stmt 1 view .LVU1017 + 3220 .LBB367: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3221 .loc 2 6853 3 view .LVU1018 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3222 .loc 2 6853 12 is_stmt 0 view .LVU1019 + 3223 0082 9368 ldr r3, [r2, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3224 .loc 2 6853 74 view .LVU1020 + 3225 0084 13F00403 ands r3, r3, #4 + 3226 0088 00D0 beq .L245 + 3227 008a 0123 movs r3, #1 + 3228 .L245: + 3229 .LVL279: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3230 .loc 2 6853 74 view .LVU1021 + 3231 .LBE367: + 3232 .LBE366: +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 3233 .loc 1 1876 3 is_stmt 1 view .LVU1022 + 3234 .LBB368: + 3235 .LBI368: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3236 .loc 2 7076 26 view .LVU1023 + 3237 .LBB369: + 3238 .loc 2 7078 3 view .LVU1024 + 3239 .loc 2 7078 12 is_stmt 0 view .LVU1025 + 3240 008c 9668 ldr r6, [r2, #8] + 3241 .loc 2 7078 76 view .LVU1026 + 3242 008e 16F00806 ands r6, r6, #8 + 3243 0092 00D0 beq .L246 + 3244 0094 0126 movs r6, #1 + 3245 .L246: + 3246 .LVL280: + 3247 .loc 2 7078 76 view .LVU1027 + 3248 .LBE369: + 3249 .LBE368: +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 3250 .loc 1 1878 3 is_stmt 1 view .LVU1028 + 3251 .loc 1 1878 6 is_stmt 0 view .LVU1029 + 3252 0096 002B cmp r3, #0 + 3253 0098 40F04081 bne .L308 +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 3254 .loc 1 1879 7 view .LVU1030 + 3255 009c 002E cmp r6, #0 + 3256 009e 40F07281 bne .L309 +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If injected group external triggers are disabled (set to injected */ +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* software start): no constraint */ +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((sConfigInjected->ExternalTrigInjecConv == ADC_INJECTED_SOFTWARE_START) + ARM GAS /tmp/cc3JIfda.s page 221 + + + 3257 .loc 1 1884 5 is_stmt 1 view .LVU1031 + 3258 .loc 1 1884 25 is_stmt 0 view .LVU1032 + 3259 00a2 AB6A ldr r3, [r5, #40] + 3260 .LVL281: + 3261 .loc 1 1884 8 view .LVU1033 + 3262 00a4 1BB1 cbz r3, .L248 +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (sConfigInjected->ExternalTrigInjecConvEdge == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE)) + 3263 .loc 1 1885 28 view .LVU1034 + 3264 00a6 EB6A ldr r3, [r5, #44] + 3265 .loc 1 1885 9 view .LVU1035 + 3266 00a8 002B cmp r3, #0 + 3267 00aa 40F0A780 bne .L249 + 3268 .L248: +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->AutoInjectedConv == ENABLE) + 3269 .loc 1 1887 7 is_stmt 1 view .LVU1036 + 3270 .loc 1 1887 26 is_stmt 0 view .LVU1037 + 3271 00ae 95F82530 ldrb r3, [r5, #37] @ zero_extendqisi2 + 3272 .loc 1 1887 10 view .LVU1038 + 3273 00b2 012B cmp r3, #1 + 3274 00b4 00F09C80 beq .L323 +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO); +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO); + 3275 .loc 1 1893 9 is_stmt 1 view .LVU1039 + 3276 00b8 D368 ldr r3, [r2, #12] + 3277 00ba 23F00073 bic r3, r3, #33554432 + 3278 00be D360 str r3, [r2, #12] +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmpOffsetShifted; + 3279 .loc 1 1660 21 is_stmt 0 view .LVU1040 + 3280 00c0 0027 movs r7, #0 + 3281 .LVL282: + 3282 .L251: +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If Automatic injected conversion was intended to be set and could not */ +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* due to injected group external triggers enabled, error is reported. */ +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->AutoInjectedConv == ENABLE) +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_JAUTO); +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->InjecOversamplingMode == ENABLE) + 3283 .loc 1 1913 5 is_stmt 1 view .LVU1041 + ARM GAS /tmp/cc3JIfda.s page 222 + + + 3284 .loc 1 1913 24 is_stmt 0 view .LVU1042 + 3285 00c2 95F83030 ldrb r3, [r5, #48] @ zero_extendqisi2 + 3286 .loc 1 1913 8 view .LVU1043 + 3287 00c6 012B cmp r3, #1 + 3288 00c8 00F0A780 beq .L324 +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_OVERSAMPLING_RATIO(sConfigInjected->InjecOversampling.Ratio)); +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_RIGHT_BIT_SHIFT(sConfigInjected->InjecOversampling.RightBitShift)); +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* JOVSE must be reset in case of triggered regular mode */ +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(!(READ_BIT(hadc->Instance->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_TROVS) == (ADC_CFG +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Configuration of Injected Oversampler: */ +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Oversampling Ratio */ +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Right bit shift */ +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Enable OverSampling mode */ +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(hadc->Instance->CFGR2, +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR2_JOVSE | +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR2_OVSR | +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR2_OVSS, +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR2_JOVSE | +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** sConfigInjected->InjecOversampling.Ratio | +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** sConfigInjected->InjecOversampling.RightBitShift +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ); +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Disable Regular OverSampling */ +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->Instance->CFGR2, ADC_CFGR2_JOVSE); + 3289 .loc 1 1938 7 is_stmt 1 view .LVU1044 + 3290 00cc 2268 ldr r2, [r4] + 3291 00ce 1369 ldr r3, [r2, #16] + 3292 00d0 23F00203 bic r3, r3, #2 + 3293 00d4 1361 str r3, [r2, #16] + 3294 .L254: +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Manage specific case of sampling time 3.5 cycles replacing 2.5 cyles */ +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->InjectedSamplingTime == ADC_SAMPLETIME_3CYCLES_5) + 3295 .loc 1 1942 5 view .LVU1045 + 3296 .loc 1 1942 24 is_stmt 0 view .LVU1046 + 3297 00d6 AA68 ldr r2, [r5, #8] + 3298 .loc 1 1942 8 view .LVU1047 + 3299 00d8 B2F1004F cmp r2, #-2147483648 + 3300 00dc 00F0A980 beq .L325 +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set sampling time of the selected ADC channel */ +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetChannelSamplingTime(hadc->Instance, sConfigInjected->InjectedChannel, LL_ADC_SAMPLI +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC sampling time common configuration */ +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5); +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set sampling time of the selected ADC channel */ +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetChannelSamplingTime(hadc->Instance, sConfigInjected->InjectedChannel, sConfigInject + ARM GAS /tmp/cc3JIfda.s page 223 + + + 3301 .loc 1 1953 7 is_stmt 1 view .LVU1048 + 3302 00e0 2968 ldr r1, [r5] + 3303 00e2 2068 ldr r0, [r4] + 3304 00e4 FFF7FEFF bl LL_ADC_SetChannelSamplingTime + 3305 .LVL283: +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC sampling time common configuration */ +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetSamplingTimeCommonConfig(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_DEFAULT); + 3306 .loc 1 1956 7 view .LVU1049 + 3307 00e8 2268 ldr r2, [r4] + 3308 .LVL284: + 3309 .LBB370: + 3310 .LBI370: +3560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3311 .loc 2 3560 22 view .LVU1050 + 3312 .LBB371: +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3313 .loc 2 3562 3 view .LVU1051 + 3314 00ea 5369 ldr r3, [r2, #20] + 3315 00ec 23F00043 bic r3, r3, #-2147483648 + 3316 00f0 5361 str r3, [r2, #20] + 3317 .LVL285: + 3318 .L256: +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3319 .loc 2 3562 3 is_stmt 0 view .LVU1052 + 3320 .LBE371: + 3321 .LBE370: +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Configure the offset: offset enable/disable, channel, offset value */ +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Shift the offset with respect to the selected ADC resolution. */ +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0 */ +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmpOffsetShifted = ADC_OFFSET_SHIFT_RESOLUTION(hadc, sConfigInjected->InjectedOffset); + 3322 .loc 1 1963 5 is_stmt 1 view .LVU1053 + 3323 .loc 1 1963 24 is_stmt 0 view .LVU1054 + 3324 00f2 6A69 ldr r2, [r5, #20] + 3325 00f4 2168 ldr r1, [r4] + 3326 00f6 CB68 ldr r3, [r1, #12] + 3327 00f8 C3F3C103 ubfx r3, r3, #3, #2 + 3328 00fc 5B00 lsls r3, r3, #1 + 3329 .loc 1 1963 22 view .LVU1055 + 3330 00fe 9A40 lsls r2, r2, r3 + 3331 .LVL286: +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->InjectedOffsetNumber != ADC_OFFSET_NONE) + 3332 .loc 1 1965 5 is_stmt 1 view .LVU1056 + 3333 .loc 1 1965 24 is_stmt 0 view .LVU1057 + 3334 0100 D5F810C0 ldr ip, [r5, #16] + 3335 .loc 1 1965 8 view .LVU1058 + 3336 0104 BCF1040F cmp ip, #4 + 3337 0108 00F0A180 beq .L257 +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC selected offset number */ +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffset(hadc->Instance, sConfigInjected->InjectedOffsetNumber, sConfigInjected->Inje + 3338 .loc 1 1968 7 is_stmt 1 view .LVU1059 + 3339 .LVL287: + ARM GAS /tmp/cc3JIfda.s page 224 + + + 3340 .LBB372: + 3341 .LBI372: +3220:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3342 .loc 2 3220 22 view .LVU1060 + 3343 .LBB373: +3222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3344 .loc 2 3222 3 view .LVU1061 +3222:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3345 .loc 2 3222 25 is_stmt 0 view .LVU1062 + 3346 010c 6031 adds r1, r1, #96 + 3347 .LVL288: +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + 3348 .loc 2 3224 3 is_stmt 1 view .LVU1063 + 3349 010e 51F82C00 ldr r0, [r1, ip, lsl #2] + 3350 0112 A24B ldr r3, .L335 + 3351 0114 0340 ands r3, r3, r0 + 3352 0116 2868 ldr r0, [r5] + 3353 0118 00F0F840 and r0, r0, #2080374784 + 3354 011c 0243 orrs r2, r2, r0 + 3355 .LVL289: +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + 3356 .loc 2 3224 3 is_stmt 0 view .LVU1064 + 3357 011e 1343 orrs r3, r3, r2 + 3358 0120 43F00043 orr r3, r3, #-2147483648 + 3359 0124 41F82C30 str r3, [r1, ip, lsl #2] + 3360 .LVL290: +3224:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1, + 3361 .loc 2 3224 3 view .LVU1065 + 3362 .LBE373: + 3363 .LBE372: +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmpOffsetShifted); +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set ADC selected offset sign & saturation */ +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetSign(hadc->Instance, sConfigInjected->InjectedOffsetNumber, sConfigInjected-> + 3364 .loc 1 1972 7 is_stmt 1 view .LVU1066 + 3365 0128 2368 ldr r3, [r4] + 3366 012a 2869 ldr r0, [r5, #16] + 3367 012c AA69 ldr r2, [r5, #24] + 3368 .LVL291: + 3369 .LBB374: + 3370 .LBI374: +3417:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3371 .loc 2 3417 22 view .LVU1067 + 3372 .LBB375: +3419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3373 .loc 2 3419 3 view .LVU1068 +3419:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3374 .loc 2 3419 25 is_stmt 0 view .LVU1069 + 3375 012e 6033 adds r3, r3, #96 + 3376 .LVL292: +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, + 3377 .loc 2 3421 3 is_stmt 1 view .LVU1070 + 3378 0130 53F82010 ldr r1, [r3, r0, lsl #2] + 3379 0134 21F08071 bic r1, r1, #16777216 + 3380 0138 0A43 orrs r2, r2, r1 + 3381 .LVL293: +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, + ARM GAS /tmp/cc3JIfda.s page 225 + + + 3382 .loc 2 3421 3 is_stmt 0 view .LVU1071 + 3383 013a 43F82020 str r2, [r3, r0, lsl #2] + 3384 .LVL294: +3421:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSETPOS, + 3385 .loc 2 3421 3 view .LVU1072 + 3386 .LBE375: + 3387 .LBE374: +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetSaturation(hadc->Instance, sConfigInjected->InjectedOffsetNumber, + 3388 .loc 1 1973 7 is_stmt 1 view .LVU1073 + 3389 013e 2368 ldr r3, [r4] + 3390 0140 2869 ldr r0, [r5, #16] +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (sConfigInjected->InjectedOffsetSaturation == ENABLE) ? LL_ADC_OFF + 3391 .loc 1 1974 50 is_stmt 0 view .LVU1074 + 3392 0142 2A7F ldrb r2, [r5, #28] @ zero_extendqisi2 +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetSaturation(hadc->Instance, sConfigInjected->InjectedOffsetNumber, + 3393 .loc 1 1973 7 view .LVU1075 + 3394 0144 012A cmp r2, #1 + 3395 0146 7FD0 beq .L326 + 3396 .LVL295: + 3397 .L258: + 3398 .LBB376: + 3399 .LBI376: +3472:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3400 .loc 2 3472 22 is_stmt 1 discriminator 4 view .LVU1076 + 3401 .LBB377: +3474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3402 .loc 2 3474 3 discriminator 4 view .LVU1077 +3474:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3403 .loc 2 3474 25 is_stmt 0 discriminator 4 view .LVU1078 + 3404 0148 6033 adds r3, r3, #96 + 3405 .LVL296: +3476:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_SATEN, + 3406 .loc 2 3476 3 is_stmt 1 discriminator 4 view .LVU1079 + 3407 014a 53F82020 ldr r2, [r3, r0, lsl #2] + 3408 014e 22F00072 bic r2, r2, #33554432 + 3409 0152 3243 orrs r2, r2, r6 + 3410 0154 43F82020 str r2, [r3, r0, lsl #2] + 3411 .LVL297: +3479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3412 .loc 2 3479 1 is_stmt 0 discriminator 4 view .LVU1080 + 3413 0158 E1E0 b .L247 + 3414 .LVL298: + 3415 .L322: +3479:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3416 .loc 2 3479 1 discriminator 4 view .LVU1081 + 3417 .LBE377: + 3418 .LBE376: +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3419 .loc 1 1752 7 is_stmt 1 view .LVU1082 +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3420 .loc 1 1752 26 is_stmt 0 view .LVU1083 + 3421 015a AA6A ldr r2, [r5, #40] +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3422 .loc 1 1752 10 view .LVU1084 + 3423 015c BAB1 cbz r2, .L239 +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX + 3424 .loc 1 1754 9 is_stmt 1 view .LVU1085 + ARM GAS /tmp/cc3JIfda.s page 226 + + +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX + 3425 .loc 1 1754 44 is_stmt 0 view .LVU1086 + 3426 015e 2B68 ldr r3, [r5] + 3427 0160 9B0E lsrs r3, r3, #26 + 3428 0162 5B02 lsls r3, r3, #9 + 3429 0164 03F47853 and r3, r3, #15872 +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | sConfigInjected->ExternalTrigInjecConvEdge + 3430 .loc 1 1755 86 view .LVU1087 + 3431 0168 02F07C02 and r2, r2, #124 +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | sConfigInjected->ExternalTrigInjecConvEdge + 3432 .loc 1 1755 44 view .LVU1088 + 3433 016c 1343 orrs r3, r3, r2 +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ); + 3434 .loc 1 1756 61 view .LVU1089 + 3435 016e EA6A ldr r2, [r5, #44] +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** | (sConfigInjected->ExternalTrigInjecConv & ADC_JSQR_JEX + 3436 .loc 1 1754 41 view .LVU1090 + 3437 0170 1343 orrs r3, r3, r2 + 3438 .LVL299: + 3439 .L240: +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* For debug and informative reasons, hadc handle saves JSQR setting */ + 3440 .loc 1 1764 7 is_stmt 1 view .LVU1091 + 3441 0172 2168 ldr r1, [r4] + 3442 .LVL300: +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* For debug and informative reasons, hadc handle saves JSQR setting */ + 3443 .loc 1 1764 7 is_stmt 0 view .LVU1092 + 3444 0174 CA6C ldr r2, [r1, #76] + 3445 0176 22F07B42 bic r2, r2, #-83886080 + 3446 017a 22F46F02 bic r2, r2, #15663104 + 3447 017e 22F43F42 bic r2, r2, #48896 + 3448 0182 22F0FF02 bic r2, r2, #255 + 3449 0186 1A43 orrs r2, r2, r3 + 3450 0188 CA64 str r2, [r1, #76] +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3451 .loc 1 1766 7 is_stmt 1 view .LVU1093 +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3452 .loc 1 1766 42 is_stmt 0 view .LVU1094 + 3453 018a 6366 str r3, [r4, #100] + 3454 018c 62E7 b .L238 + 3455 .LVL301: + 3456 .L239: +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3457 .loc 1 1761 9 is_stmt 1 view .LVU1095 +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3458 .loc 1 1761 44 is_stmt 0 view .LVU1096 + 3459 018e 2B68 ldr r3, [r5] + 3460 0190 9B0E lsrs r3, r3, #26 + 3461 0192 5B02 lsls r3, r3, #9 +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3462 .loc 1 1761 41 view .LVU1097 + 3463 0194 03F47853 and r3, r3, #15872 + 3464 .LVL302: +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3465 .loc 1 1761 41 view .LVU1098 + 3466 0198 EBE7 b .L240 + 3467 .LVL303: + 3468 .L242: + ARM GAS /tmp/cc3JIfda.s page 227 + + +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3469 .loc 1 1811 9 is_stmt 1 view .LVU1099 +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3470 .loc 1 1811 60 is_stmt 0 view .LVU1100 + 3471 019a 0A6A ldr r2, [r1, #32] +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3472 .loc 1 1811 41 view .LVU1101 + 3473 019c 013A subs r2, r2, #1 + 3474 .LVL304: +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3475 .loc 1 1811 41 view .LVU1102 + 3476 019e 00E0 b .L241 + 3477 .LVL305: + 3478 .L307: +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3479 .loc 1 1667 12 view .LVU1103 + 3480 01a0 0022 movs r2, #0 + 3481 .LVL306: + 3482 .L241: +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3483 .loc 1 1819 5 is_stmt 1 view .LVU1104 +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3484 .loc 1 1822 5 view .LVU1105 +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3485 .loc 1 1822 40 is_stmt 0 view .LVU1106 + 3486 01a2 2B68 ldr r3, [r5] + 3487 01a4 C3F38463 ubfx r3, r3, #26, #5 + 3488 01a8 6968 ldr r1, [r5, #4] + 3489 .LVL307: +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3490 .loc 1 1822 40 view .LVU1107 + 3491 01aa 01F01F01 and r1, r1, #31 + 3492 01ae 8B40 lsls r3, r3, r1 +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3493 .loc 1 1822 37 view .LVU1108 + 3494 01b0 1343 orrs r3, r3, r2 + 3495 .LVL308: +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3496 .loc 1 1825 5 is_stmt 1 view .LVU1109 +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3497 .loc 1 1825 26 is_stmt 0 view .LVU1110 + 3498 01b2 A16E ldr r1, [r4, #104] +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3499 .loc 1 1825 39 view .LVU1111 + 3500 01b4 0139 subs r1, r1, #1 + 3501 01b6 A166 str r1, [r4, #104] +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3502 .loc 1 1830 5 is_stmt 1 view .LVU1112 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3503 .loc 1 1830 26 is_stmt 0 view .LVU1113 + 3504 01b8 626E ldr r2, [r4, #100] +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3505 .loc 1 1830 40 view .LVU1114 + 3506 01ba 1343 orrs r3, r3, r2 + 3507 .LVL309: +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3508 .loc 1 1830 40 view .LVU1115 + ARM GAS /tmp/cc3JIfda.s page 228 + + + 3509 01bc 6366 str r3, [r4, #100] +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3510 .loc 1 1834 5 is_stmt 1 view .LVU1116 +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3511 .loc 1 1834 8 is_stmt 0 view .LVU1117 + 3512 01be 0029 cmp r1, #0 + 3513 01c0 7FF448AF bne .L238 +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3514 .loc 1 1836 7 is_stmt 1 view .LVU1118 + 3515 01c4 2168 ldr r1, [r4] + 3516 01c6 CA6C ldr r2, [r1, #76] + 3517 01c8 22F07B42 bic r2, r2, #-83886080 + 3518 01cc 22F46F02 bic r2, r2, #15663104 + 3519 01d0 22F43F42 bic r2, r2, #48896 + 3520 01d4 22F0FF02 bic r2, r2, #255 + 3521 01d8 1343 orrs r3, r3, r2 + 3522 01da CB64 str r3, [r1, #76] + 3523 01dc 3AE7 b .L238 + 3524 .LVL310: + 3525 .L244: +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR_JQM | ADC_CFGR_JDISCEN, + 3526 .loc 1 1861 7 view .LVU1119 + 3527 01de DA68 ldr r2, [r3, #12] + 3528 01e0 22F44012 bic r2, r2, #3145728 + 3529 01e4 95F82610 ldrb r1, [r5, #38] @ zero_extendqisi2 + 3530 01e8 42EA4152 orr r2, r2, r1, lsl #21 + 3531 01ec DA60 str r2, [r3, #12] + 3532 01ee 47E7 b .L243 + 3533 .LVL311: + 3534 .L323: +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3535 .loc 1 1889 9 view .LVU1120 + 3536 01f0 D368 ldr r3, [r2, #12] + 3537 01f2 43F00073 orr r3, r3, #33554432 + 3538 01f6 D360 str r3, [r2, #12] +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmpOffsetShifted; + 3539 .loc 1 1660 21 is_stmt 0 view .LVU1121 + 3540 01f8 0027 movs r7, #0 + 3541 01fa 62E7 b .L251 + 3542 .L249: +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3543 .loc 1 1900 7 is_stmt 1 view .LVU1122 +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3544 .loc 1 1900 26 is_stmt 0 view .LVU1123 + 3545 01fc 95F82570 ldrb r7, [r5, #37] @ zero_extendqisi2 +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 3546 .loc 1 1900 10 view .LVU1124 + 3547 0200 012F cmp r7, #1 + 3548 0202 05D0 beq .L327 +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3549 .loc 1 1909 9 is_stmt 1 view .LVU1125 + 3550 0204 D368 ldr r3, [r2, #12] + 3551 0206 23F00073 bic r3, r3, #33554432 + 3552 020a D360 str r3, [r2, #12] +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmpOffsetShifted; + 3553 .loc 1 1660 21 is_stmt 0 view .LVU1126 + 3554 020c 0027 movs r7, #0 + ARM GAS /tmp/cc3JIfda.s page 229 + + + 3555 020e 58E7 b .L251 + 3556 .L327: +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3557 .loc 1 1903 9 is_stmt 1 view .LVU1127 + 3558 0210 E36D ldr r3, [r4, #92] + 3559 0212 43F02003 orr r3, r3, #32 + 3560 0216 E365 str r3, [r4, #92] +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3561 .loc 1 1905 9 view .LVU1128 + 3562 .LVL312: +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3563 .loc 1 1905 9 is_stmt 0 view .LVU1129 + 3564 0218 53E7 b .L251 + 3565 .LVL313: + 3566 .L324: +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_RIGHT_BIT_SHIFT(sConfigInjected->InjecOversampling.RightBitShift)); + 3567 .loc 1 1915 7 is_stmt 1 view .LVU1130 +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3568 .loc 1 1916 7 view .LVU1131 +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3569 .loc 1 1919 7 view .LVU1132 +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CFGR2_JOVSE | + 3570 .loc 1 1926 7 view .LVU1133 + 3571 021a 2168 ldr r1, [r4] + 3572 021c 0B69 ldr r3, [r1, #16] + 3573 021e 23F4FF73 bic r3, r3, #510 + 3574 0222 6A6B ldr r2, [r5, #52] + 3575 0224 A86B ldr r0, [r5, #56] + 3576 0226 0243 orrs r2, r2, r0 + 3577 0228 1343 orrs r3, r3, r2 + 3578 022a 43F00203 orr r3, r3, #2 + 3579 022e 0B61 str r3, [r1, #16] + 3580 0230 51E7 b .L254 + 3581 .L325: +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 3582 .loc 1 1945 7 view .LVU1134 + 3583 0232 0022 movs r2, #0 + 3584 0234 2968 ldr r1, [r5] + 3585 0236 2068 ldr r0, [r4] + 3586 0238 FFF7FEFF bl LL_ADC_SetChannelSamplingTime + 3587 .LVL314: +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3588 .loc 1 1948 7 view .LVU1135 + 3589 023c 2268 ldr r2, [r4] + 3590 .LVL315: + 3591 .LBB378: + 3592 .LBI378: +3560:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3593 .loc 2 3560 22 view .LVU1136 + 3594 .LBB379: +3562:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3595 .loc 2 3562 3 view .LVU1137 + 3596 023e 5369 ldr r3, [r2, #20] + 3597 0240 43F00043 orr r3, r3, #-2147483648 + 3598 0244 5361 str r3, [r2, #20] +3563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3599 .loc 2 3563 1 is_stmt 0 view .LVU1138 + ARM GAS /tmp/cc3JIfda.s page 230 + + + 3600 0246 54E7 b .L256 + 3601 .LVL316: + 3602 .L326: +3563:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3603 .loc 2 3563 1 view .LVU1139 + 3604 .LBE379: + 3605 .LBE378: +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (sConfigInjected->InjectedOffsetSaturation == ENABLE) ? LL_ADC_OFF + 3606 .loc 1 1973 7 view .LVU1140 + 3607 0248 4FF00076 mov r6, #33554432 + 3608 .LVL317: +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (sConfigInjected->InjectedOffsetSaturation == ENABLE) ? LL_ADC_OFF + 3609 .loc 1 1973 7 view .LVU1141 + 3610 024c 7CE7 b .L258 + 3611 .LVL318: + 3612 .L257: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Scan each offset register to check if the selected channel is targeted. */ +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If this is the case, the corresponding offset number is disabled. */ +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_1)) + 3613 .loc 1 1980 7 is_stmt 1 view .LVU1142 + 3614 .LBB380: + 3615 .LBI380: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3616 .loc 2 3303 26 view .LVU1143 + 3617 .LBB381: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3618 .loc 2 3305 3 view .LVU1144 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3619 .loc 2 3307 3 view .LVU1145 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3620 .loc 2 3307 10 is_stmt 0 view .LVU1146 + 3621 024e 0B6E ldr r3, [r1, #96] + 3622 .LVL319: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3623 .loc 2 3307 10 view .LVU1147 + 3624 .LBE381: + 3625 .LBE380: + 3626 .LBB382: + 3627 .LBI382: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3628 .loc 2 3303 26 is_stmt 1 view .LVU1148 + 3629 .LBB383: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3630 .loc 2 3305 3 view .LVU1149 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3631 .loc 2 3307 3 view .LVU1150 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3632 .loc 2 3307 10 is_stmt 0 view .LVU1151 + 3633 0250 0A6E ldr r2, [r1, #96] + 3634 .LVL320: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3635 .loc 2 3307 10 view .LVU1152 + 3636 .LBE383: + 3637 .LBE382: + ARM GAS /tmp/cc3JIfda.s page 231 + + + 3638 .loc 1 1980 11 view .LVU1153 + 3639 0252 C2F38462 ubfx r2, r2, #26, #5 +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3640 .loc 1 1981 14 view .LVU1154 + 3641 0256 2B68 ldr r3, [r5] + 3642 0258 C3F31200 ubfx r0, r3, #0, #19 + 3643 025c 78BB cbnz r0, .L259 + 3644 .loc 1 1981 14 discriminator 1 view .LVU1155 + 3645 025e C3F38463 ubfx r3, r3, #26, #5 + 3646 .L260: +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3647 .loc 1 1980 10 view .LVU1156 + 3648 0262 9A42 cmp r2, r3 + 3649 0264 33D0 beq .L328 + 3650 .L262: +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_1, LL_ADC_OFFSET_DISABLE); +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_2)) + 3651 .loc 1 1985 7 is_stmt 1 view .LVU1157 + 3652 .loc 1 1985 11 is_stmt 0 view .LVU1158 + 3653 0266 2168 ldr r1, [r4] + 3654 .LVL321: + 3655 .LBB384: + 3656 .LBI384: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3657 .loc 2 3303 26 is_stmt 1 view .LVU1159 + 3658 .LBB385: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3659 .loc 2 3305 3 view .LVU1160 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3660 .loc 2 3307 3 view .LVU1161 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3661 .loc 2 3307 10 is_stmt 0 view .LVU1162 + 3662 0268 4B6E ldr r3, [r1, #100] + 3663 .LVL322: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3664 .loc 2 3307 10 view .LVU1163 + 3665 .LBE385: + 3666 .LBE384: + 3667 .LBB386: + 3668 .LBI386: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3669 .loc 2 3303 26 is_stmt 1 view .LVU1164 + 3670 .LBB387: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3671 .loc 2 3305 3 view .LVU1165 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3672 .loc 2 3307 3 view .LVU1166 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3673 .loc 2 3307 10 is_stmt 0 view .LVU1167 + 3674 026a 4A6E ldr r2, [r1, #100] + 3675 .LVL323: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3676 .loc 2 3307 10 view .LVU1168 + 3677 .LBE387: + 3678 .LBE386: + ARM GAS /tmp/cc3JIfda.s page 232 + + + 3679 .loc 1 1985 11 view .LVU1169 + 3680 026c C2F38462 ubfx r2, r2, #26, #5 +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3681 .loc 1 1986 14 view .LVU1170 + 3682 0270 2B68 ldr r3, [r5] + 3683 0272 C3F31200 ubfx r0, r3, #0, #19 + 3684 0276 78BB cbnz r0, .L263 + 3685 .loc 1 1986 14 discriminator 1 view .LVU1171 + 3686 0278 C3F38463 ubfx r3, r3, #26, #5 + 3687 .L264: +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3688 .loc 1 1985 10 view .LVU1172 + 3689 027c 9A42 cmp r2, r3 + 3690 027e 33D0 beq .L329 + 3691 .L266: +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_2, LL_ADC_OFFSET_DISABLE); +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_3)) + 3692 .loc 1 1990 7 is_stmt 1 view .LVU1173 + 3693 .loc 1 1990 11 is_stmt 0 view .LVU1174 + 3694 0280 2168 ldr r1, [r4] + 3695 .LVL324: + 3696 .LBB388: + 3697 .LBI388: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3698 .loc 2 3303 26 is_stmt 1 view .LVU1175 + 3699 .LBB389: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3700 .loc 2 3305 3 view .LVU1176 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3701 .loc 2 3307 3 view .LVU1177 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3702 .loc 2 3307 10 is_stmt 0 view .LVU1178 + 3703 0282 8B6E ldr r3, [r1, #104] + 3704 .LVL325: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3705 .loc 2 3307 10 view .LVU1179 + 3706 .LBE389: + 3707 .LBE388: + 3708 .LBB390: + 3709 .LBI390: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3710 .loc 2 3303 26 is_stmt 1 view .LVU1180 + 3711 .LBB391: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3712 .loc 2 3305 3 view .LVU1181 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3713 .loc 2 3307 3 view .LVU1182 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3714 .loc 2 3307 10 is_stmt 0 view .LVU1183 + 3715 0284 8A6E ldr r2, [r1, #104] + 3716 .LVL326: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3717 .loc 2 3307 10 view .LVU1184 + 3718 .LBE391: + 3719 .LBE390: + ARM GAS /tmp/cc3JIfda.s page 233 + + + 3720 .loc 1 1990 11 view .LVU1185 + 3721 0286 C2F38462 ubfx r2, r2, #26, #5 +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3722 .loc 1 1991 14 view .LVU1186 + 3723 028a 2B68 ldr r3, [r5] + 3724 028c C3F31200 ubfx r0, r3, #0, #19 + 3725 0290 78BB cbnz r0, .L267 + 3726 .loc 1 1991 14 discriminator 1 view .LVU1187 + 3727 0292 C3F38463 ubfx r3, r3, #26, #5 + 3728 .L268: +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3729 .loc 1 1990 10 view .LVU1188 + 3730 0296 9A42 cmp r2, r3 + 3731 0298 33D0 beq .L330 + 3732 .L270: +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_3, LL_ADC_OFFSET_DISABLE); +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_GetOffsetChannel(hadc->Instance, LL_ADC_OFFSET_4)) + 3733 .loc 1 1995 7 is_stmt 1 view .LVU1189 + 3734 .loc 1 1995 11 is_stmt 0 view .LVU1190 + 3735 029a 2168 ldr r1, [r4] + 3736 .LVL327: + 3737 .LBB392: + 3738 .LBI392: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3739 .loc 2 3303 26 is_stmt 1 view .LVU1191 + 3740 .LBB393: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3741 .loc 2 3305 3 view .LVU1192 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3742 .loc 2 3307 3 view .LVU1193 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3743 .loc 2 3307 10 is_stmt 0 view .LVU1194 + 3744 029c CB6E ldr r3, [r1, #108] + 3745 .LVL328: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3746 .loc 2 3307 10 view .LVU1195 + 3747 .LBE393: + 3748 .LBE392: + 3749 .LBB394: + 3750 .LBI394: +3303:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3751 .loc 2 3303 26 is_stmt 1 view .LVU1196 + 3752 .LBB395: +3305:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3753 .loc 2 3305 3 view .LVU1197 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3754 .loc 2 3307 3 view .LVU1198 +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3755 .loc 2 3307 10 is_stmt 0 view .LVU1199 + 3756 029e CA6E ldr r2, [r1, #108] + 3757 .LVL329: +3307:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 3758 .loc 2 3307 10 view .LVU1200 + 3759 .LBE395: + 3760 .LBE394: + ARM GAS /tmp/cc3JIfda.s page 234 + + + 3761 .loc 1 1995 11 view .LVU1201 + 3762 02a0 C2F38462 ubfx r2, r2, #26, #5 +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3763 .loc 1 1996 14 view .LVU1202 + 3764 02a4 2B68 ldr r3, [r5] + 3765 02a6 C3F31200 ubfx r0, r3, #0, #19 + 3766 02aa 78BB cbnz r0, .L271 + 3767 .loc 1 1996 14 discriminator 1 view .LVU1203 + 3768 02ac C3F38463 ubfx r3, r3, #26, #5 + 3769 .L272: +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** == __LL_ADC_CHANNEL_TO_DECIMAL_NB(sConfigInjected->InjectedChannel)) + 3770 .loc 1 1995 10 view .LVU1204 + 3771 02b0 9A42 cmp r2, r3 + 3772 02b2 34D1 bne .L247 +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetOffsetState(hadc->Instance, LL_ADC_OFFSET_4, LL_ADC_OFFSET_DISABLE); + 3773 .loc 1 1998 9 is_stmt 1 view .LVU1205 + 3774 .LVL330: + 3775 .LBB396: + 3776 .LBI396: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3777 .loc 2 3362 22 view .LVU1206 + 3778 .LBB397: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3779 .loc 2 3364 3 view .LVU1207 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 3780 .loc 2 3366 3 view .LVU1208 + 3781 02b4 CB6E ldr r3, [r1, #108] + 3782 02b6 23F00043 bic r3, r3, #-2147483648 + 3783 02ba CB66 str r3, [r1, #108] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3784 .loc 2 3369 1 is_stmt 0 view .LVU1209 + 3785 02bc 2FE0 b .L247 + 3786 .LVL331: + 3787 .L259: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3788 .loc 2 3369 1 view .LVU1210 + 3789 .LBE397: + 3790 .LBE396: + 3791 .LBB398: + 3792 .LBI398: + 3793 .file 3 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + ARM GAS /tmp/cc3JIfda.s page 235 + + + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + ARM GAS /tmp/cc3JIfda.s page 236 + + + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cc3JIfda.s page 237 + + + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + ARM GAS /tmp/cc3JIfda.s page 238 + + + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/cc3JIfda.s page 239 + + + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + ARM GAS /tmp/cc3JIfda.s page 240 + + + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cc3JIfda.s page 241 + + + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/cc3JIfda.s page 242 + + + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/cc3JIfda.s page 243 + + + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + ARM GAS /tmp/cc3JIfda.s page 244 + + + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + ARM GAS /tmp/cc3JIfda.s page 245 + + + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + ARM GAS /tmp/cc3JIfda.s page 246 + + + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + ARM GAS /tmp/cc3JIfda.s page 247 + + + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/cc3JIfda.s page 248 + + + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + ARM GAS /tmp/cc3JIfda.s page 249 + + + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/cc3JIfda.s page 250 + + + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/cc3JIfda.s page 251 + + + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 937:Drivers/CMSIS/Include/cmsis_gcc.h **** + 938:Drivers/CMSIS/Include/cmsis_gcc.h **** + 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier + 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. + 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. + 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) + 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); + 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 948:Drivers/CMSIS/Include/cmsis_gcc.h **** + 949:Drivers/CMSIS/Include/cmsis_gcc.h **** + 950:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier + 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before + 953:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. + 954:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 955:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) + 956:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 957:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); + 958:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 959:Drivers/CMSIS/Include/cmsis_gcc.h **** + 960:Drivers/CMSIS/Include/cmsis_gcc.h **** + 961:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 962:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) + 963:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 + 964:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 965:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 966:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 967:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) + 968:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 969:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + 970:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); + 971:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 972:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 973:Drivers/CMSIS/Include/cmsis_gcc.h **** + 974:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 975:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 976:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 977:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 978:Drivers/CMSIS/Include/cmsis_gcc.h **** + 979:Drivers/CMSIS/Include/cmsis_gcc.h **** + 980:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 981:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 982:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes + 983:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 984:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + ARM GAS /tmp/cc3JIfda.s page 252 + + + 985:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 986:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) + 987:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 988:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 989:Drivers/CMSIS/Include/cmsis_gcc.h **** + 990:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 991:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 992:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 993:Drivers/CMSIS/Include/cmsis_gcc.h **** + 994:Drivers/CMSIS/Include/cmsis_gcc.h **** + 995:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 996:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 997:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam + 998:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 999:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1000:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1001:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +1002:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1003:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1004:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); +1005:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1006:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; +1007:Drivers/CMSIS/Include/cmsis_gcc.h **** +1008:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); +1009:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1010:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1011:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1012:Drivers/CMSIS/Include/cmsis_gcc.h **** +1013:Drivers/CMSIS/Include/cmsis_gcc.h **** +1014:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1015:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) +1016:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v +1017:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate +1018:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate +1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value +1020:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1021:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +1022:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1023:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; +1024:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) +1025:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1026:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; +1027:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1028:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); +1029:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1030:Drivers/CMSIS/Include/cmsis_gcc.h **** +1031:Drivers/CMSIS/Include/cmsis_gcc.h **** +1032:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1033:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint +1034:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. +1035:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula +1036:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. +1037:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break +1038:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1039:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) +1040:Drivers/CMSIS/Include/cmsis_gcc.h **** +1041:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cc3JIfda.s page 253 + + +1042:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value +1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. +1045:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse +1046:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1047:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) + 3794 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1211 + 3795 .LBB399: +1049:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 3796 .loc 3 1050 3 discriminator 2 view .LVU1212 +1051:Drivers/CMSIS/Include/cmsis_gcc.h **** +1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1053:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1054:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 3797 .loc 3 1055 4 discriminator 2 view .LVU1213 + 3798 .syntax unified + 3799 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3800 02be 93FAA3F3 rbit r3, r3 + 3801 @ 0 "" 2 + 3802 .LVL332: +1056:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1057:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ +1058:Drivers/CMSIS/Include/cmsis_gcc.h **** +1059:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ +1060:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) +1061:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1062:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; +1063:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; +1064:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; +1065:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1066:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ +1067:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 3803 .loc 3 1068 3 discriminator 2 view .LVU1214 + 3804 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1215 + 3805 .thumb + 3806 .syntax unified + 3807 .LBE399: + 3808 .LBE398: + 3809 .LBB400: + 3810 .LBI400: +1069:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1070:Drivers/CMSIS/Include/cmsis_gcc.h **** +1071:Drivers/CMSIS/Include/cmsis_gcc.h **** +1072:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1073:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros +1074:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. +1075:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros +1076:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value +1077:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) + 3811 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1216 + 3812 .LBB401: +1079:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cc3JIfda.s page 254 + + +1080:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Even though __builtin_clz produces a CLZ instruction on ARM, formally +1081:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_clz(0) is undefined behaviour, so handle this case specially. +1082:Drivers/CMSIS/Include/cmsis_gcc.h **** This guarantees ARM-compatible results if happening to compile on a non-ARM +1083:Drivers/CMSIS/Include/cmsis_gcc.h **** target, and ensures the compiler doesn't decide to activate any +1084:Drivers/CMSIS/Include/cmsis_gcc.h **** optimisations using the logic "value was passed to __builtin_clz, so it +1085:Drivers/CMSIS/Include/cmsis_gcc.h **** is non-zero". +1086:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a +1087:Drivers/CMSIS/Include/cmsis_gcc.h **** single CLZ instruction. +1088:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** if (value == 0U) + 3813 .loc 3 1089 3 discriminator 2 view .LVU1217 + 3814 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1218 + 3815 02c2 13B1 cbz r3, .L310 +1090:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** return 32U; +1092:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1093:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_clz(value); + 3816 .loc 3 1093 3 is_stmt 1 view .LVU1219 + 3817 .loc 3 1093 10 is_stmt 0 view .LVU1220 + 3818 02c4 B3FA83F3 clz r3, r3 + 3819 .LVL333: + 3820 .loc 3 1093 10 view .LVU1221 + 3821 02c8 CBE7 b .L260 + 3822 .LVL334: + 3823 .L310: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3824 .loc 3 1091 12 view .LVU1222 + 3825 02ca 2023 movs r3, #32 + 3826 .LVL335: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3827 .loc 3 1091 12 view .LVU1223 + 3828 02cc C9E7 b .L260 + 3829 .L328: + 3830 .LBE401: + 3831 .LBE400: +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3832 .loc 1 1983 9 is_stmt 1 view .LVU1224 + 3833 .LVL336: + 3834 .LBB402: + 3835 .LBI402: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3836 .loc 2 3362 22 view .LVU1225 + 3837 .LBB403: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3838 .loc 2 3364 3 view .LVU1226 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 3839 .loc 2 3366 3 view .LVU1227 + 3840 02ce 0B6E ldr r3, [r1, #96] + 3841 02d0 23F00043 bic r3, r3, #-2147483648 + 3842 02d4 0B66 str r3, [r1, #96] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3843 .loc 2 3369 1 is_stmt 0 view .LVU1228 + 3844 02d6 C6E7 b .L262 + 3845 .LVL337: + 3846 .L263: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3847 .loc 2 3369 1 view .LVU1229 + ARM GAS /tmp/cc3JIfda.s page 255 + + + 3848 .LBE403: + 3849 .LBE402: + 3850 .LBB404: + 3851 .LBI404: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3852 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1230 + 3853 .LBB405: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3854 .loc 3 1050 3 discriminator 2 view .LVU1231 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3855 .loc 3 1055 4 discriminator 2 view .LVU1232 + 3856 .syntax unified + 3857 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3858 02d8 93FAA3F3 rbit r3, r3 + 3859 @ 0 "" 2 + 3860 .LVL338: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3861 .loc 3 1068 3 discriminator 2 view .LVU1233 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3862 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1234 + 3863 .thumb + 3864 .syntax unified + 3865 .LBE405: + 3866 .LBE404: + 3867 .LBB406: + 3868 .LBI406: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3869 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1235 + 3870 .LBB407: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3871 .loc 3 1089 3 discriminator 2 view .LVU1236 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3872 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1237 + 3873 02dc 13B1 cbz r3, .L311 + 3874 .loc 3 1093 3 is_stmt 1 view .LVU1238 + 3875 .loc 3 1093 10 is_stmt 0 view .LVU1239 + 3876 02de B3FA83F3 clz r3, r3 + 3877 .LVL339: + 3878 .loc 3 1093 10 view .LVU1240 + 3879 02e2 CBE7 b .L264 + 3880 .LVL340: + 3881 .L311: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3882 .loc 3 1091 12 view .LVU1241 + 3883 02e4 2023 movs r3, #32 + 3884 .LVL341: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3885 .loc 3 1091 12 view .LVU1242 + 3886 02e6 C9E7 b .L264 + 3887 .L329: + 3888 .LBE407: + 3889 .LBE406: +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3890 .loc 1 1988 9 is_stmt 1 view .LVU1243 + 3891 .LVL342: + 3892 .LBB408: + 3893 .LBI408: + ARM GAS /tmp/cc3JIfda.s page 256 + + +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3894 .loc 2 3362 22 view .LVU1244 + 3895 .LBB409: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3896 .loc 2 3364 3 view .LVU1245 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 3897 .loc 2 3366 3 view .LVU1246 + 3898 02e8 4B6E ldr r3, [r1, #100] + 3899 02ea 23F00043 bic r3, r3, #-2147483648 + 3900 02ee 4B66 str r3, [r1, #100] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3901 .loc 2 3369 1 is_stmt 0 view .LVU1247 + 3902 02f0 C6E7 b .L266 + 3903 .LVL343: + 3904 .L267: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3905 .loc 2 3369 1 view .LVU1248 + 3906 .LBE409: + 3907 .LBE408: + 3908 .LBB410: + 3909 .LBI410: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3910 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1249 + 3911 .LBB411: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3912 .loc 3 1050 3 discriminator 2 view .LVU1250 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3913 .loc 3 1055 4 discriminator 2 view .LVU1251 + 3914 .syntax unified + 3915 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3916 02f2 93FAA3F3 rbit r3, r3 + 3917 @ 0 "" 2 + 3918 .LVL344: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3919 .loc 3 1068 3 discriminator 2 view .LVU1252 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3920 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1253 + 3921 .thumb + 3922 .syntax unified + 3923 .LBE411: + 3924 .LBE410: + 3925 .LBB412: + 3926 .LBI412: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3927 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1254 + 3928 .LBB413: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3929 .loc 3 1089 3 discriminator 2 view .LVU1255 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3930 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1256 + 3931 02f6 13B1 cbz r3, .L312 + 3932 .loc 3 1093 3 is_stmt 1 view .LVU1257 + 3933 .loc 3 1093 10 is_stmt 0 view .LVU1258 + 3934 02f8 B3FA83F3 clz r3, r3 + 3935 .LVL345: + 3936 .loc 3 1093 10 view .LVU1259 + 3937 02fc CBE7 b .L268 + ARM GAS /tmp/cc3JIfda.s page 257 + + + 3938 .LVL346: + 3939 .L312: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3940 .loc 3 1091 12 view .LVU1260 + 3941 02fe 2023 movs r3, #32 + 3942 .LVL347: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3943 .loc 3 1091 12 view .LVU1261 + 3944 0300 C9E7 b .L268 + 3945 .L330: + 3946 .LBE413: + 3947 .LBE412: +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 3948 .loc 1 1993 9 is_stmt 1 view .LVU1262 + 3949 .LVL348: + 3950 .LBB414: + 3951 .LBI414: +3362:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 3952 .loc 2 3362 22 view .LVU1263 + 3953 .LBB415: +3364:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3954 .loc 2 3364 3 view .LVU1264 +3366:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_OFR1_OFFSET1_EN, + 3955 .loc 2 3366 3 view .LVU1265 + 3956 0302 8B6E ldr r3, [r1, #104] + 3957 0304 23F00043 bic r3, r3, #-2147483648 + 3958 0308 8B66 str r3, [r1, #104] +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3959 .loc 2 3369 1 is_stmt 0 view .LVU1266 + 3960 030a C6E7 b .L270 + 3961 .LVL349: + 3962 .L271: +3369:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 3963 .loc 2 3369 1 view .LVU1267 + 3964 .LBE415: + 3965 .LBE414: + 3966 .LBB416: + 3967 .LBI416: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3968 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1268 + 3969 .LBB417: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3970 .loc 3 1050 3 discriminator 2 view .LVU1269 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 3971 .loc 3 1055 4 discriminator 2 view .LVU1270 + 3972 .syntax unified + 3973 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3974 030c 93FAA3F3 rbit r3, r3 + 3975 @ 0 "" 2 + 3976 .LVL350: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3977 .loc 3 1068 3 discriminator 2 view .LVU1271 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3978 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1272 + 3979 .thumb + 3980 .syntax unified + 3981 .LBE417: + ARM GAS /tmp/cc3JIfda.s page 258 + + + 3982 .LBE416: + 3983 .LBB418: + 3984 .LBI418: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3985 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1273 + 3986 .LBB419: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3987 .loc 3 1089 3 discriminator 2 view .LVU1274 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3988 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1275 + 3989 0310 13B1 cbz r3, .L313 + 3990 .loc 3 1093 3 is_stmt 1 view .LVU1276 + 3991 .loc 3 1093 10 is_stmt 0 view .LVU1277 + 3992 0312 B3FA83F3 clz r3, r3 + 3993 .LVL351: + 3994 .loc 3 1093 10 view .LVU1278 + 3995 0316 CBE7 b .L272 + 3996 .LVL352: + 3997 .L313: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3998 .loc 3 1091 12 view .LVU1279 + 3999 0318 2023 movs r3, #32 + 4000 .LVL353: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4001 .loc 3 1091 12 view .LVU1280 + 4002 031a C9E7 b .L272 + 4003 .LVL354: + 4004 .L308: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4005 .loc 3 1091 12 view .LVU1281 + 4006 .LBE419: + 4007 .LBE418: +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmpOffsetShifted; + 4008 .loc 1 1660 21 view .LVU1282 + 4009 031c 0027 movs r7, #0 + 4010 .LVL355: + 4011 .L247: +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters update conditioned to ADC state: */ +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters that can be updated only when ADC is disabled: */ +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Single or differential mode */ +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 4012 .loc 1 2007 3 is_stmt 1 view .LVU1283 + 4013 .loc 1 2007 7 is_stmt 0 view .LVU1284 + 4014 031e 2368 ldr r3, [r4] + 4015 .LVL356: + 4016 .LBB420: + 4017 .LBI420: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4018 .loc 2 6729 26 is_stmt 1 view .LVU1285 + 4019 .LBB421: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4020 .loc 2 6731 3 view .LVU1286 + ARM GAS /tmp/cc3JIfda.s page 259 + + +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4021 .loc 2 6731 12 is_stmt 0 view .LVU1287 + 4022 0320 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4023 .loc 2 6731 68 view .LVU1288 + 4024 0322 12F0010F tst r2, #1 + 4025 0326 10D1 bne .L274 + 4026 .LVL357: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4027 .loc 2 6731 68 view .LVU1289 + 4028 .LBE421: + 4029 .LBE420: +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set mode single-ended or differential input of the selected ADC channel */ +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetChannelSingleDiff(hadc->Instance, sConfigInjected->InjectedChannel, sConfigInjected-> + 4030 .loc 1 2010 5 is_stmt 1 view .LVU1290 + 4031 0328 2A68 ldr r2, [r5] + 4032 032a E868 ldr r0, [r5, #12] + 4033 .LVL358: + 4034 .LBB422: + 4035 .LBI422: +5495:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4036 .loc 2 5495 22 view .LVU1291 + 4037 .LBB423: +5501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4038 .loc 2 5501 3 view .LVU1292 +5501:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4039 .loc 2 5501 6 is_stmt 0 view .LVU1293 + 4040 032c 1C49 ldr r1, .L335+4 + 4041 032e 8842 cmp r0, r1 + 4042 0330 2BD0 beq .L331 +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4043 .loc 2 5508 5 is_stmt 1 view .LVU1294 + 4044 0332 D3F8B010 ldr r1, [r3, #176] + 4045 0336 C2F31202 ubfx r2, r2, #0, #19 + 4046 .LVL359: +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4047 .loc 2 5508 5 is_stmt 0 view .LVU1295 + 4048 033a 21EA0202 bic r2, r1, r2 + 4049 033e C3F8B020 str r2, [r3, #176] + 4050 .LVL360: + 4051 .L276: +5508:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4052 .loc 2 5508 5 view .LVU1296 + 4053 .LBE423: + 4054 .LBE422: +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Configuration of differential mode */ +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: ADC channel number masked with value "0x1F" to ensure shift value within 32 bits range +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (sConfigInjected->InjectedSingleDiff == ADC_DIFFERENTIAL_ENDED) + 4055 .loc 1 2014 5 is_stmt 1 view .LVU1297 + 4056 .loc 1 2014 24 is_stmt 0 view .LVU1298 + 4057 0342 EA68 ldr r2, [r5, #12] + 4058 .loc 1 2014 8 view .LVU1299 + 4059 0344 164B ldr r3, .L335+4 + 4060 0346 9A42 cmp r2, r3 + 4061 0348 38D0 beq .L332 + ARM GAS /tmp/cc3JIfda.s page 260 + + + 4062 .L274: +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Set sampling time of the selected ADC channel */ +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetChannelSamplingTime(hadc->Instance, +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_TO_ +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Management of internal measurement channels: Vbat/VrefInt/TempSensor */ +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* internal measurement paths enable: If internal channel selected, */ +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* enable dedicated internal buffers and path. */ +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: these internal measurement paths can be disabled using */ +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* HAL_ADC_DeInit(). */ +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_IS_CHANNEL_INTERNAL(sConfigInjected->InjectedChannel)) + 4063 .loc 1 2030 3 is_stmt 1 view .LVU1300 + 4064 .loc 1 2030 7 is_stmt 0 view .LVU1301 + 4065 034a 2B68 ldr r3, [r5] + 4066 .loc 1 2030 6 view .LVU1302 + 4067 034c 154A ldr r2, .L335+8 + 4068 034e 1342 tst r3, r2 + 4069 0350 13D0 beq .L300 +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_config_internal_channel = LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Ins + 4070 .loc 1 2032 5 is_stmt 1 view .LVU1303 + 4071 .LVL361: + 4072 .LBB425: + 4073 .LBI425: +2877:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4074 .loc 2 2877 26 view .LVU1304 + 4075 .LBB426: +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4076 .loc 2 2879 3 view .LVU1305 +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4077 .loc 2 2879 21 is_stmt 0 view .LVU1306 + 4078 0352 154A ldr r2, .L335+12 + 4079 0354 9268 ldr r2, [r2, #8] +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4080 .loc 2 2879 10 view .LVU1307 + 4081 0356 02F0E071 and r1, r2, #29360128 + 4082 .LVL362: +2879:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4083 .loc 2 2879 10 view .LVU1308 + 4084 .LBE426: + 4085 .LBE425: +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If the requested internal measurement path has already been enabled, */ +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* bypass the configuration processing. */ +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (((sConfigInjected->InjectedChannel == ADC_CHANNEL_TEMPSENSOR_ADC1) + 4086 .loc 1 2036 5 is_stmt 1 view .LVU1309 + 4087 .loc 1 2036 8 is_stmt 0 view .LVU1310 + 4088 035a 1448 ldr r0, .L335+16 + 4089 035c 8342 cmp r3, r0 + 4090 035e 00F0DC80 beq .L301 +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** || (sConfigInjected->InjectedChannel == ADC_CHANNEL_TEMPSENSOR_ADC5)) + ARM GAS /tmp/cc3JIfda.s page 261 + + + 4091 .loc 1 2037 10 view .LVU1311 + 4092 0362 1348 ldr r0, .L335+20 + 4093 0364 8342 cmp r3, r0 + 4094 0366 00F0D880 beq .L301 + 4095 .L302: +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_TEMPSENSOR) == 0UL)) +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (ADC_TEMPERATURE_SENSOR_INSTANCE(hadc)) +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_PATH_INTERNAL_TEMPSENSOR | tmp_config_internal_channe +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Delay for temperature sensor stabilization time */ +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Wait loop initialization and execution */ +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: Variable divided by 2 to compensate partially */ +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* CPU processing cycles, scaling in us split to not */ +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* exceed 32 bits register capacity and handle low frequency. */ +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * (((SystemCoreClock / (100000U +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while (wait_loop_index != 0UL) +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** wait_loop_index--; +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else if ((sConfigInjected->InjectedChannel == ADC_CHANNEL_VBAT) + 4096 .loc 1 2057 10 is_stmt 1 view .LVU1312 + 4097 .loc 1 2057 13 is_stmt 0 view .LVU1313 + 4098 036a 1248 ldr r0, .L335+24 + 4099 036c 8342 cmp r3, r0 + 4100 036e 00F0F980 beq .L333 + 4101 .L305: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VBAT) == 0UL)) +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (ADC_BATTERY_VOLTAGE_INSTANCE(hadc)) +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else if ((sConfigInjected->InjectedChannel == ADC_CHANNEL_VREFINT) + 4102 .loc 1 2066 10 is_stmt 1 view .LVU1314 + 4103 .loc 1 2066 13 is_stmt 0 view .LVU1315 + 4104 0372 1148 ldr r0, .L335+28 + 4105 0374 8342 cmp r3, r0 + 4106 0376 00F00781 beq .L334 + 4107 .LVL363: + 4108 .L300: +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VREFINT) == 0UL)) +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (ADC_VREFINT_INSTANCE(hadc)) +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance), +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_PATH_INTERNAL_VREFINT | tmp_config_internal_channel); +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + ARM GAS /tmp/cc3JIfda.s page 262 + + +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* nothing to do */ +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 4109 .loc 1 2078 5 is_stmt 1 view .LVU1316 +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 4110 .loc 1 2082 3 view .LVU1317 + 4111 .loc 1 2082 3 view .LVU1318 + 4112 037a 0023 movs r3, #0 + 4113 037c 84F85830 strb r3, [r4, #88] + 4114 .loc 1 2082 3 view .LVU1319 +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 4115 .loc 1 2085 3 view .LVU1320 + 4116 .LVL364: + 4117 .L235: +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 4118 .loc 1 2086 1 is_stmt 0 view .LVU1321 + 4119 0380 3846 mov r0, r7 + 4120 0382 03B0 add sp, sp, #12 + 4121 .LCFI34: + 4122 .cfi_remember_state + 4123 .cfi_def_cfa_offset 20 + 4124 @ sp needed + 4125 0384 F0BD pop {r4, r5, r6, r7, pc} + 4126 .LVL365: + 4127 .L309: + 4128 .LCFI35: + 4129 .cfi_restore_state +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmpOffsetShifted; + 4130 .loc 1 1660 21 view .LVU1322 + 4131 0386 0027 movs r7, #0 + 4132 0388 C9E7 b .L247 + 4133 .LVL366: + 4134 .L331: + 4135 .LBB427: + 4136 .LBB424: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4137 .loc 2 5503 5 is_stmt 1 view .LVU1323 + 4138 038a D3F8B010 ldr r1, [r3, #176] + 4139 038e C2F31202 ubfx r2, r2, #0, #19 + 4140 .LVL367: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4141 .loc 2 5503 5 is_stmt 0 view .LVU1324 + 4142 0392 0A43 orrs r2, r2, r1 + 4143 0394 C3F8B020 str r2, [r3, #176] + 4144 .LVL368: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4145 .loc 2 5503 5 view .LVU1325 + 4146 0398 D3E7 b .L276 + 4147 .L336: + 4148 039a 00BF .align 2 + 4149 .L335: + 4150 039c 00F0FF03 .word 67104768 + 4151 03a0 00007F40 .word 1082064896 + ARM GAS /tmp/cc3JIfda.s page 263 + + + 4152 03a4 00000880 .word -2146959360 + 4153 03a8 00030050 .word 1342178048 + 4154 03ac 000021C3 .word -1021247488 + 4155 03b0 1000C090 .word -1866465264 + 4156 03b4 000052C7 .word -950927360 + 4157 03b8 000084CB .word -880541696 + 4158 .LVL369: + 4159 .L332: +5503:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** Channel & ADC_SINGLEDIFF_CHANNEL_MASK); + 4160 .loc 2 5503 5 view .LVU1326 + 4161 .LBE424: + 4162 .LBE427: +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_TO_ + 4163 .loc 1 2017 7 is_stmt 1 view .LVU1327 + 4164 03bc 2068 ldr r0, [r4] +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4165 .loc 1 2018 48 is_stmt 0 view .LVU1328 + 4166 03be 2B68 ldr r3, [r5] + 4167 03c0 C3F31206 ubfx r6, r3, #0, #19 + 4168 03c4 3EBB cbnz r6, .L277 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4169 .loc 1 2018 48 discriminator 1 view .LVU1329 + 4170 03c6 9A0E lsrs r2, r3, #26 + 4171 03c8 0132 adds r2, r2, #1 + 4172 03ca 02F01F02 and r2, r2, #31 + 4173 03ce 092A cmp r2, #9 + 4174 03d0 8CBF ite hi + 4175 03d2 0022 movhi r2, #0 + 4176 03d4 0122 movls r2, #1 + 4177 .L278: +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_TO_ + 4178 .loc 1 2017 7 view .LVU1330 + 4179 03d6 002A cmp r2, #0 + 4180 03d8 55D0 beq .L280 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4181 .loc 1 2018 48 view .LVU1331 + 4182 03da 5EBB cbnz r6, .L281 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4183 .loc 1 2018 48 discriminator 3 view .LVU1332 + 4184 03dc 990E lsrs r1, r3, #26 + 4185 03de 0131 adds r1, r1, #1 + 4186 03e0 8906 lsls r1, r1, #26 + 4187 03e2 01F0F841 and r1, r1, #2080374784 + 4188 .L282: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4189 .loc 1 2018 48 discriminator 6 view .LVU1333 + 4190 03e6 8EBB cbnz r6, .L284 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4191 .loc 1 2018 48 discriminator 7 view .LVU1334 + 4192 03e8 4FEA936C lsr ip, r3, #26 + 4193 03ec 0CF1010C add ip, ip, #1 + 4194 03f0 0CF01F0C and ip, ip, #31 + 4195 03f4 0122 movs r2, #1 + 4196 03f6 02FA0CF2 lsl r2, r2, ip + 4197 .L285: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4198 .loc 1 2018 48 discriminator 10 view .LVU1335 + ARM GAS /tmp/cc3JIfda.s page 264 + + + 4199 03fa 1143 orrs r1, r1, r2 + 4200 03fc AEBB cbnz r6, .L287 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4201 .loc 1 2018 48 discriminator 11 view .LVU1336 + 4202 03fe 9B0E lsrs r3, r3, #26 + 4203 0400 0133 adds r3, r3, #1 + 4204 0402 03F01F03 and r3, r3, #31 + 4205 0406 03EB4303 add r3, r3, r3, lsl #1 + 4206 040a 1B05 lsls r3, r3, #20 + 4207 .L288: +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_TO_ + 4208 .loc 1 2017 7 view .LVU1337 + 4209 040c 1943 orrs r1, r1, r3 + 4210 .L290: +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_TO_ + 4211 .loc 1 2017 7 discriminator 1 view .LVU1338 + 4212 040e AA68 ldr r2, [r5, #8] + 4213 0410 FFF7FEFF bl LL_ADC_SetChannelSamplingTime + 4214 .LVL370: + 4215 0414 99E7 b .L274 + 4216 .L277: + 4217 .LVL371: + 4218 .LBB428: + 4219 .LBI428: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4220 .loc 3 1048 31 is_stmt 1 discriminator 2 view .LVU1339 + 4221 .LBB429: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4222 .loc 3 1050 3 discriminator 2 view .LVU1340 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4223 .loc 3 1055 4 discriminator 2 view .LVU1341 + 4224 .syntax unified + 4225 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4226 0416 93FAA3F2 rbit r2, r3 + 4227 @ 0 "" 2 + 4228 .LVL372: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4229 .loc 3 1068 3 discriminator 2 view .LVU1342 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4230 .loc 3 1068 3 is_stmt 0 discriminator 2 view .LVU1343 + 4231 .thumb + 4232 .syntax unified + 4233 .LBE429: + 4234 .LBE428: + 4235 .LBB430: + 4236 .LBI430: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4237 .loc 3 1078 30 is_stmt 1 discriminator 2 view .LVU1344 + 4238 .LBB431: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4239 .loc 3 1089 3 discriminator 2 view .LVU1345 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4240 .loc 3 1089 6 is_stmt 0 discriminator 2 view .LVU1346 + 4241 041a 4AB1 cbz r2, .L314 + 4242 .loc 3 1093 3 is_stmt 1 view .LVU1347 + 4243 .loc 3 1093 10 is_stmt 0 view .LVU1348 + 4244 041c B2FA82F2 clz r2, r2 + ARM GAS /tmp/cc3JIfda.s page 265 + + + 4245 .LVL373: + 4246 .L279: + 4247 .loc 3 1093 10 view .LVU1349 + 4248 .LBE431: + 4249 .LBE430: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4250 .loc 1 2018 48 view .LVU1350 + 4251 0420 0132 adds r2, r2, #1 + 4252 0422 02F01F02 and r2, r2, #31 + 4253 0426 092A cmp r2, #9 + 4254 0428 8CBF ite hi + 4255 042a 0022 movhi r2, #0 + 4256 042c 0122 movls r2, #1 + 4257 042e D2E7 b .L278 + 4258 .LVL374: + 4259 .L314: + 4260 .LBB433: + 4261 .LBB432: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4262 .loc 3 1091 12 view .LVU1351 + 4263 0430 2022 movs r2, #32 + 4264 .LVL375: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4265 .loc 3 1091 12 view .LVU1352 + 4266 0432 F5E7 b .L279 + 4267 .LVL376: + 4268 .L281: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4269 .loc 3 1091 12 view .LVU1353 + 4270 .LBE432: + 4271 .LBE433: + 4272 .LBB434: + 4273 .LBI434: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4274 .loc 3 1048 31 is_stmt 1 discriminator 4 view .LVU1354 + 4275 .LBB435: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4276 .loc 3 1050 3 discriminator 4 view .LVU1355 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4277 .loc 3 1055 4 discriminator 4 view .LVU1356 + 4278 .syntax unified + 4279 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4280 0434 93FAA3F1 rbit r1, r3 + 4281 @ 0 "" 2 + 4282 .LVL377: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4283 .loc 3 1068 3 discriminator 4 view .LVU1357 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4284 .loc 3 1068 3 is_stmt 0 discriminator 4 view .LVU1358 + 4285 .thumb + 4286 .syntax unified + 4287 .LBE435: + 4288 .LBE434: + 4289 .LBB436: + 4290 .LBI436: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4291 .loc 3 1078 30 is_stmt 1 discriminator 4 view .LVU1359 + ARM GAS /tmp/cc3JIfda.s page 266 + + + 4292 .LBB437: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4293 .loc 3 1089 3 discriminator 4 view .LVU1360 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4294 .loc 3 1089 6 is_stmt 0 discriminator 4 view .LVU1361 + 4295 0438 31B1 cbz r1, .L315 + 4296 .loc 3 1093 3 is_stmt 1 view .LVU1362 + 4297 .loc 3 1093 10 is_stmt 0 view .LVU1363 + 4298 043a B1FA81F1 clz r1, r1 + 4299 .LVL378: + 4300 .L283: + 4301 .loc 3 1093 10 view .LVU1364 + 4302 .LBE437: + 4303 .LBE436: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4304 .loc 1 2018 48 view .LVU1365 + 4305 043e 0131 adds r1, r1, #1 + 4306 0440 8906 lsls r1, r1, #26 + 4307 0442 01F0F841 and r1, r1, #2080374784 + 4308 0446 CEE7 b .L282 + 4309 .LVL379: + 4310 .L315: + 4311 .LBB439: + 4312 .LBB438: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4313 .loc 3 1091 12 view .LVU1366 + 4314 0448 2021 movs r1, #32 + 4315 .LVL380: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4316 .loc 3 1091 12 view .LVU1367 + 4317 044a F8E7 b .L283 + 4318 .LVL381: + 4319 .L284: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4320 .loc 3 1091 12 view .LVU1368 + 4321 .LBE438: + 4322 .LBE439: + 4323 .LBB440: + 4324 .LBI440: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4325 .loc 3 1048 31 is_stmt 1 discriminator 8 view .LVU1369 + 4326 .LBB441: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4327 .loc 3 1050 3 discriminator 8 view .LVU1370 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4328 .loc 3 1055 4 discriminator 8 view .LVU1371 + 4329 .syntax unified + 4330 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4331 044c 93FAA3F2 rbit r2, r3 + 4332 @ 0 "" 2 + 4333 .LVL382: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4334 .loc 3 1068 3 discriminator 8 view .LVU1372 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4335 .loc 3 1068 3 is_stmt 0 discriminator 8 view .LVU1373 + 4336 .thumb + 4337 .syntax unified + ARM GAS /tmp/cc3JIfda.s page 267 + + + 4338 .LBE441: + 4339 .LBE440: + 4340 .LBB442: + 4341 .LBI442: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4342 .loc 3 1078 30 is_stmt 1 discriminator 8 view .LVU1374 + 4343 .LBB443: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4344 .loc 3 1089 3 discriminator 8 view .LVU1375 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4345 .loc 3 1089 6 is_stmt 0 discriminator 8 view .LVU1376 + 4346 0450 4AB1 cbz r2, .L316 + 4347 .loc 3 1093 3 is_stmt 1 view .LVU1377 + 4348 .loc 3 1093 10 is_stmt 0 view .LVU1378 + 4349 0452 B2FA82F2 clz r2, r2 + 4350 .LVL383: + 4351 .L286: + 4352 .loc 3 1093 10 view .LVU1379 + 4353 .LBE443: + 4354 .LBE442: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4355 .loc 1 2018 48 view .LVU1380 + 4356 0456 0132 adds r2, r2, #1 + 4357 0458 02F01F02 and r2, r2, #31 + 4358 045c 4FF0010C mov ip, #1 + 4359 0460 0CFA02F2 lsl r2, ip, r2 + 4360 0464 C9E7 b .L285 + 4361 .LVL384: + 4362 .L316: + 4363 .LBB445: + 4364 .LBB444: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4365 .loc 3 1091 12 view .LVU1381 + 4366 0466 2022 movs r2, #32 + 4367 .LVL385: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4368 .loc 3 1091 12 view .LVU1382 + 4369 0468 F5E7 b .L286 + 4370 .LVL386: + 4371 .L287: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4372 .loc 3 1091 12 view .LVU1383 + 4373 .LBE444: + 4374 .LBE445: + 4375 .LBB446: + 4376 .LBI446: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4377 .loc 3 1048 31 is_stmt 1 discriminator 12 view .LVU1384 + 4378 .LBB447: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4379 .loc 3 1050 3 discriminator 12 view .LVU1385 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4380 .loc 3 1055 4 discriminator 12 view .LVU1386 + 4381 .syntax unified + 4382 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4383 046a 93FAA3F3 rbit r3, r3 + 4384 @ 0 "" 2 + ARM GAS /tmp/cc3JIfda.s page 268 + + + 4385 .LVL387: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4386 .loc 3 1068 3 discriminator 12 view .LVU1387 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4387 .loc 3 1068 3 is_stmt 0 discriminator 12 view .LVU1388 + 4388 .thumb + 4389 .syntax unified + 4390 .LBE447: + 4391 .LBE446: + 4392 .LBB448: + 4393 .LBI448: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4394 .loc 3 1078 30 is_stmt 1 discriminator 12 view .LVU1389 + 4395 .LBB449: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4396 .loc 3 1089 3 discriminator 12 view .LVU1390 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4397 .loc 3 1089 6 is_stmt 0 discriminator 12 view .LVU1391 + 4398 046e 43B1 cbz r3, .L317 + 4399 .loc 3 1093 3 is_stmt 1 view .LVU1392 + 4400 .loc 3 1093 10 is_stmt 0 view .LVU1393 + 4401 0470 B3FA83F3 clz r3, r3 + 4402 .LVL388: + 4403 .L289: + 4404 .loc 3 1093 10 view .LVU1394 + 4405 .LBE449: + 4406 .LBE448: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4407 .loc 1 2018 48 view .LVU1395 + 4408 0474 0133 adds r3, r3, #1 + 4409 0476 03F01F03 and r3, r3, #31 + 4410 047a 03EB4303 add r3, r3, r3, lsl #1 + 4411 047e 1B05 lsls r3, r3, #20 + 4412 0480 C4E7 b .L288 + 4413 .LVL389: + 4414 .L317: + 4415 .LBB451: + 4416 .LBB450: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4417 .loc 3 1091 12 view .LVU1396 + 4418 0482 2023 movs r3, #32 + 4419 .LVL390: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4420 .loc 3 1091 12 view .LVU1397 + 4421 0484 F6E7 b .L289 + 4422 .LVL391: + 4423 .L280: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4424 .loc 3 1091 12 view .LVU1398 + 4425 .LBE450: + 4426 .LBE451: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4427 .loc 1 2018 48 view .LVU1399 + 4428 0486 E6B9 cbnz r6, .L291 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4429 .loc 1 2018 48 discriminator 13 view .LVU1400 + 4430 0488 990E lsrs r1, r3, #26 + ARM GAS /tmp/cc3JIfda.s page 269 + + + 4431 048a 0131 adds r1, r1, #1 + 4432 048c 8906 lsls r1, r1, #26 + 4433 048e 01F0F841 and r1, r1, #2080374784 + 4434 .L292: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4435 .loc 1 2018 48 discriminator 16 view .LVU1401 + 4436 0492 16BB cbnz r6, .L294 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4437 .loc 1 2018 48 discriminator 17 view .LVU1402 + 4438 0494 4FEA936C lsr ip, r3, #26 + 4439 0498 0CF1010C add ip, ip, #1 + 4440 049c 0CF01F0C and ip, ip, #31 + 4441 04a0 0122 movs r2, #1 + 4442 04a2 02FA0CF2 lsl r2, r2, ip + 4443 .L295: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4444 .loc 1 2018 48 discriminator 20 view .LVU1403 + 4445 04a6 1143 orrs r1, r1, r2 + 4446 04a8 36BB cbnz r6, .L297 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4447 .loc 1 2018 48 discriminator 21 view .LVU1404 + 4448 04aa 9B0E lsrs r3, r3, #26 + 4449 04ac 0133 adds r3, r3, #1 + 4450 04ae 03F01F03 and r3, r3, #31 + 4451 04b2 03EB4303 add r3, r3, r3, lsl #1 + 4452 04b6 1E3B subs r3, r3, #30 + 4453 04b8 1B05 lsls r3, r3, #20 + 4454 04ba 43F00073 orr r3, r3, #33554432 + 4455 .L298: +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** (uint32_t)(__LL_ADC_DECIMAL_NB_TO_CHANNEL((__LL_ADC_CHANNEL_TO_ + 4456 .loc 1 2017 7 discriminator 2 view .LVU1405 + 4457 04be 1943 orrs r1, r1, r3 + 4458 04c0 A5E7 b .L290 + 4459 .L291: + 4460 .LVL392: + 4461 .LBB452: + 4462 .LBI452: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4463 .loc 3 1048 31 is_stmt 1 discriminator 14 view .LVU1406 + 4464 .LBB453: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4465 .loc 3 1050 3 discriminator 14 view .LVU1407 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4466 .loc 3 1055 4 discriminator 14 view .LVU1408 + 4467 .syntax unified + 4468 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4469 04c2 93FAA3F1 rbit r1, r3 + 4470 @ 0 "" 2 + 4471 .LVL393: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4472 .loc 3 1068 3 discriminator 14 view .LVU1409 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4473 .loc 3 1068 3 is_stmt 0 discriminator 14 view .LVU1410 + 4474 .thumb + 4475 .syntax unified + 4476 .LBE453: + 4477 .LBE452: + ARM GAS /tmp/cc3JIfda.s page 270 + + + 4478 .LBB454: + 4479 .LBI454: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4480 .loc 3 1078 30 is_stmt 1 discriminator 14 view .LVU1411 + 4481 .LBB455: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4482 .loc 3 1089 3 discriminator 14 view .LVU1412 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4483 .loc 3 1089 6 is_stmt 0 discriminator 14 view .LVU1413 + 4484 04c6 31B1 cbz r1, .L318 + 4485 .loc 3 1093 3 is_stmt 1 view .LVU1414 + 4486 .loc 3 1093 10 is_stmt 0 view .LVU1415 + 4487 04c8 B1FA81F1 clz r1, r1 + 4488 .LVL394: + 4489 .L293: + 4490 .loc 3 1093 10 view .LVU1416 + 4491 .LBE455: + 4492 .LBE454: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4493 .loc 1 2018 48 view .LVU1417 + 4494 04cc 0131 adds r1, r1, #1 + 4495 04ce 8906 lsls r1, r1, #26 + 4496 04d0 01F0F841 and r1, r1, #2080374784 + 4497 04d4 DDE7 b .L292 + 4498 .LVL395: + 4499 .L318: + 4500 .LBB457: + 4501 .LBB456: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4502 .loc 3 1091 12 view .LVU1418 + 4503 04d6 2021 movs r1, #32 + 4504 .LVL396: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4505 .loc 3 1091 12 view .LVU1419 + 4506 04d8 F8E7 b .L293 + 4507 .LVL397: + 4508 .L294: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4509 .loc 3 1091 12 view .LVU1420 + 4510 .LBE456: + 4511 .LBE457: + 4512 .LBB458: + 4513 .LBI458: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4514 .loc 3 1048 31 is_stmt 1 discriminator 18 view .LVU1421 + 4515 .LBB459: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4516 .loc 3 1050 3 discriminator 18 view .LVU1422 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4517 .loc 3 1055 4 discriminator 18 view .LVU1423 + 4518 .syntax unified + 4519 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4520 04da 93FAA3F2 rbit r2, r3 + 4521 @ 0 "" 2 + 4522 .LVL398: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4523 .loc 3 1068 3 discriminator 18 view .LVU1424 + ARM GAS /tmp/cc3JIfda.s page 271 + + +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4524 .loc 3 1068 3 is_stmt 0 discriminator 18 view .LVU1425 + 4525 .thumb + 4526 .syntax unified + 4527 .LBE459: + 4528 .LBE458: + 4529 .LBB460: + 4530 .LBI460: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4531 .loc 3 1078 30 is_stmt 1 discriminator 18 view .LVU1426 + 4532 .LBB461: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4533 .loc 3 1089 3 discriminator 18 view .LVU1427 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4534 .loc 3 1089 6 is_stmt 0 discriminator 18 view .LVU1428 + 4535 04de 4AB1 cbz r2, .L319 + 4536 .loc 3 1093 3 is_stmt 1 view .LVU1429 + 4537 .loc 3 1093 10 is_stmt 0 view .LVU1430 + 4538 04e0 B2FA82F2 clz r2, r2 + 4539 .LVL399: + 4540 .L296: + 4541 .loc 3 1093 10 view .LVU1431 + 4542 .LBE461: + 4543 .LBE460: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4544 .loc 1 2018 48 view .LVU1432 + 4545 04e4 0132 adds r2, r2, #1 + 4546 04e6 02F01F02 and r2, r2, #31 + 4547 04ea 4FF0010C mov ip, #1 + 4548 04ee 0CFA02F2 lsl r2, ip, r2 + 4549 04f2 D8E7 b .L295 + 4550 .LVL400: + 4551 .L319: + 4552 .LBB463: + 4553 .LBB462: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4554 .loc 3 1091 12 view .LVU1433 + 4555 04f4 2022 movs r2, #32 + 4556 .LVL401: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4557 .loc 3 1091 12 view .LVU1434 + 4558 04f6 F5E7 b .L296 + 4559 .LVL402: + 4560 .L297: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4561 .loc 3 1091 12 view .LVU1435 + 4562 .LBE462: + 4563 .LBE463: + 4564 .LBB464: + 4565 .LBI464: +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4566 .loc 3 1048 31 is_stmt 1 discriminator 22 view .LVU1436 + 4567 .LBB465: +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4568 .loc 3 1050 3 discriminator 22 view .LVU1437 +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 4569 .loc 3 1055 4 discriminator 22 view .LVU1438 + ARM GAS /tmp/cc3JIfda.s page 272 + + + 4570 .syntax unified + 4571 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4572 04f8 93FAA3F3 rbit r3, r3 + 4573 @ 0 "" 2 + 4574 .LVL403: +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4575 .loc 3 1068 3 discriminator 22 view .LVU1439 +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4576 .loc 3 1068 3 is_stmt 0 discriminator 22 view .LVU1440 + 4577 .thumb + 4578 .syntax unified + 4579 .LBE465: + 4580 .LBE464: + 4581 .LBB466: + 4582 .LBI466: +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4583 .loc 3 1078 30 is_stmt 1 discriminator 22 view .LVU1441 + 4584 .LBB467: +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4585 .loc 3 1089 3 discriminator 22 view .LVU1442 +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4586 .loc 3 1089 6 is_stmt 0 discriminator 22 view .LVU1443 + 4587 04fc 5BB1 cbz r3, .L320 + 4588 .loc 3 1093 3 is_stmt 1 view .LVU1444 + 4589 .loc 3 1093 10 is_stmt 0 view .LVU1445 + 4590 04fe B3FA83F3 clz r3, r3 + 4591 .LVL404: + 4592 .L299: + 4593 .loc 3 1093 10 view .LVU1446 + 4594 .LBE467: + 4595 .LBE466: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 1UL) & 0x1FUL)), s + 4596 .loc 1 2018 48 view .LVU1447 + 4597 0502 0133 adds r3, r3, #1 + 4598 0504 03F01F03 and r3, r3, #31 + 4599 0508 03EB4303 add r3, r3, r3, lsl #1 + 4600 050c 1E3B subs r3, r3, #30 + 4601 050e 1B05 lsls r3, r3, #20 + 4602 0510 43F00073 orr r3, r3, #33554432 + 4603 0514 D3E7 b .L298 + 4604 .LVL405: + 4605 .L320: + 4606 .LBB469: + 4607 .LBB468: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4608 .loc 3 1091 12 view .LVU1448 + 4609 0516 2023 movs r3, #32 + 4610 .LVL406: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4611 .loc 3 1091 12 view .LVU1449 + 4612 0518 F3E7 b .L299 + 4613 .LVL407: + 4614 .L301: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4615 .loc 3 1091 12 view .LVU1450 + 4616 .LBE468: + 4617 .LBE469: + ARM GAS /tmp/cc3JIfda.s page 273 + + +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4618 .loc 1 2038 9 view .LVU1451 + 4619 051a 12F4000F tst r2, #8388608 + 4620 051e 7FF424AF bne .L302 +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4621 .loc 1 2040 7 is_stmt 1 view .LVU1452 +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4622 .loc 1 2040 11 is_stmt 0 view .LVU1453 + 4623 0522 2368 ldr r3, [r4] +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4624 .loc 1 2040 10 view .LVU1454 + 4625 0524 B3F1A04F cmp r3, #1342177280 + 4626 0528 7FF427AF bne .L300 +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_PATH_INTERNAL_TEMPSENSOR | tmp_config_internal_channe + 4627 .loc 1 2042 9 is_stmt 1 view .LVU1455 + 4628 052c 41F40001 orr r1, r1, #8388608 + 4629 .LVL408: + 4630 .LBB470: + 4631 .LBI470: +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4632 .loc 2 2796 22 view .LVU1456 + 4633 .LBB471: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4634 .loc 2 2798 3 view .LVU1457 + 4635 0530 1F4A ldr r2, .L337 + 4636 .LVL409: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4637 .loc 2 2798 3 is_stmt 0 view .LVU1458 + 4638 0532 9368 ldr r3, [r2, #8] + 4639 0534 23F0E073 bic r3, r3, #29360128 + 4640 0538 1943 orrs r1, r1, r3 + 4641 .LVL410: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4642 .loc 2 2798 3 view .LVU1459 + 4643 053a 9160 str r1, [r2, #8] + 4644 .LVL411: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4645 .loc 2 2798 3 view .LVU1460 + 4646 .LBE471: + 4647 .LBE470: +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while (wait_loop_index != 0UL) + 4648 .loc 1 2050 9 is_stmt 1 view .LVU1461 +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while (wait_loop_index != 0UL) + 4649 .loc 1 2050 90 is_stmt 0 view .LVU1462 + 4650 053c 1D4B ldr r3, .L337+4 + 4651 053e 1B68 ldr r3, [r3] + 4652 0540 9B09 lsrs r3, r3, #6 + 4653 0542 1D4A ldr r2, .L337+8 + 4654 0544 A2FB0323 umull r2, r3, r2, r3 + 4655 0548 9B09 lsrs r3, r3, #6 +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while (wait_loop_index != 0UL) + 4656 .loc 1 2050 69 view .LVU1463 + 4657 054a 03EB4303 add r3, r3, r3, lsl #1 + 4658 054e 9B00 lsls r3, r3, #2 + 4659 0550 1833 adds r3, r3, #24 +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** while (wait_loop_index != 0UL) + 4660 .loc 1 2050 25 view .LVU1464 + ARM GAS /tmp/cc3JIfda.s page 274 + + + 4661 0552 0193 str r3, [sp, #4] +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4662 .loc 1 2051 9 is_stmt 1 view .LVU1465 +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4663 .loc 1 2051 15 is_stmt 0 view .LVU1466 + 4664 0554 02E0 b .L303 + 4665 .L304: +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 4666 .loc 1 2053 11 is_stmt 1 view .LVU1467 +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 4667 .loc 1 2053 26 is_stmt 0 view .LVU1468 + 4668 0556 019B ldr r3, [sp, #4] + 4669 0558 013B subs r3, r3, #1 + 4670 055a 0193 str r3, [sp, #4] + 4671 .L303: +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4672 .loc 1 2051 32 is_stmt 1 view .LVU1469 + 4673 055c 019B ldr r3, [sp, #4] + 4674 055e 002B cmp r3, #0 + 4675 0560 F9D1 bne .L304 + 4676 0562 0AE7 b .L300 + 4677 .LVL412: + 4678 .L333: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4679 .loc 1 2058 14 is_stmt 0 view .LVU1470 + 4680 0564 12F0807F tst r2, #16777216 + 4681 0568 7FF403AF bne .L305 +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4682 .loc 1 2060 7 is_stmt 1 view .LVU1471 +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4683 .loc 1 2060 11 is_stmt 0 view .LVU1472 + 4684 056c 2268 ldr r2, [r4] +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4685 .loc 1 2060 10 view .LVU1473 + 4686 056e 134B ldr r3, .L337+12 + 4687 0570 9A42 cmp r2, r3 + 4688 0572 3FF402AF beq .L300 +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_PATH_INTERNAL_VBAT | tmp_config_internal_channel); + 4689 .loc 1 2062 9 is_stmt 1 view .LVU1474 + 4690 0576 41F08071 orr r1, r1, #16777216 + 4691 .LVL413: + 4692 .LBB472: + 4693 .LBI472: +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4694 .loc 2 2796 22 view .LVU1475 + 4695 .LBB473: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4696 .loc 2 2798 3 view .LVU1476 + 4697 057a 0D4A ldr r2, .L337 + 4698 057c 9368 ldr r3, [r2, #8] + 4699 057e 23F0E073 bic r3, r3, #29360128 + 4700 0582 1943 orrs r1, r1, r3 + 4701 .LVL414: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4702 .loc 2 2798 3 is_stmt 0 view .LVU1477 + 4703 0584 9160 str r1, [r2, #8] +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + ARM GAS /tmp/cc3JIfda.s page 275 + + + 4704 .loc 2 2799 1 view .LVU1478 + 4705 0586 F8E6 b .L300 + 4706 .LVL415: + 4707 .L334: +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4708 .loc 2 2799 1 view .LVU1479 + 4709 .LBE473: + 4710 .LBE472: +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4711 .loc 1 2067 14 view .LVU1480 + 4712 0588 12F4800F tst r2, #4194304 + 4713 058c 7FF4F5AE bne .L300 +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4714 .loc 1 2069 7 is_stmt 1 view .LVU1481 +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4715 .loc 1 2069 11 is_stmt 0 view .LVU1482 + 4716 0590 2268 ldr r2, [r4] +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4717 .loc 1 2069 10 view .LVU1483 + 4718 0592 0A4B ldr r3, .L337+12 + 4719 0594 9A42 cmp r2, r3 + 4720 0596 3FF4F0AE beq .L300 +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_PATH_INTERNAL_VREFINT | tmp_config_internal_channel); + 4721 .loc 1 2071 9 is_stmt 1 view .LVU1484 + 4722 059a 41F48001 orr r1, r1, #4194304 + 4723 .LVL416: + 4724 .LBB474: + 4725 .LBI474: +2796:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4726 .loc 2 2796 22 view .LVU1485 + 4727 .LBB475: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4728 .loc 2 2798 3 view .LVU1486 + 4729 059e 044A ldr r2, .L337 + 4730 05a0 9368 ldr r3, [r2, #8] + 4731 05a2 23F0E073 bic r3, r3, #29360128 + 4732 05a6 1943 orrs r1, r1, r3 + 4733 .LVL417: +2798:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4734 .loc 2 2798 3 is_stmt 0 view .LVU1487 + 4735 05a8 9160 str r1, [r2, #8] +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4736 .loc 2 2799 1 view .LVU1488 + 4737 05aa E6E6 b .L300 + 4738 .LVL418: + 4739 .L306: +2799:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** + 4740 .loc 2 2799 1 view .LVU1489 + 4741 .LBE475: + 4742 .LBE474: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 4743 .loc 1 1712 3 view .LVU1490 + 4744 05ac 0227 movs r7, #2 + 4745 05ae E7E6 b .L235 + 4746 .L338: + 4747 .align 2 + 4748 .L337: + ARM GAS /tmp/cc3JIfda.s page 276 + + + 4749 05b0 00030050 .word 1342178048 + 4750 05b4 00000000 .word SystemCoreClock + 4751 05b8 632D3E05 .word 87960931 + 4752 05bc 00010050 .word 1342177536 + 4753 .cfi_endproc + 4754 .LFE350: + 4756 .section .text.HAL_ADCEx_MultiModeConfigChannel,"ax",%progbits + 4757 .align 1 + 4758 .global HAL_ADCEx_MultiModeConfigChannel + 4759 .syntax unified + 4760 .thumb + 4761 .thumb_func + 4763 HAL_ADCEx_MultiModeConfigChannel: + 4764 .LVL419: + 4765 .LFB351: +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #if defined(ADC_MULTIMODE_SUPPORT) +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Enable ADC multimode and configure multimode parameters +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Possibility to update parameters on the fly: +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * This function initializes multimode parameters, following +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * calls to this function can be used to reconfigure some parameters +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * of structure "ADC_MultiModeTypeDef" on the fly, without resetting +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * the ADCs. +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * The setting of these parameters is conditioned to ADC state. +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * For parameters constraints, see comments of structure +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * "ADC_MultiModeTypeDef". +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note To move back configuration from multimode to single mode, ADC must +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * be reset (using function HAL_ADC_Init() ). +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc Master ADC handle +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param multimode Structure of ADC multimode configuration +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *m +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 4766 .loc 1 2106 1 is_stmt 1 view -0 + 4767 .cfi_startproc + 4768 @ args = 0, pretend = 0, frame = 112 + 4769 @ frame_needed = 0, uses_anonymous_args = 0 + 4770 @ link register save eliminated. +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 4771 .loc 1 2107 3 view .LVU1492 +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_Common_TypeDef *tmpADC_Common; + 4772 .loc 1 2108 3 view .LVU1493 +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_HandleTypeDef tmphadcSlave; + 4773 .loc 1 2109 3 view .LVU1494 +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmphadcSlave_conversion_on_going; + 4774 .loc 1 2110 3 view .LVU1495 +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_MULTIMODE_MASTER_INSTANCE(hadc->Instance)); + 4775 .loc 1 2113 3 view .LVU1496 +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_MULTIMODE(multimode->Mode)); + 4776 .loc 1 2114 3 view .LVU1497 +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (multimode->Mode != ADC_MODE_INDEPENDENT) + 4777 .loc 1 2115 3 view .LVU1498 +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + ARM GAS /tmp/cc3JIfda.s page 277 + + +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_DMA_ACCESS_MULTIMODE(multimode->DMAAccessMode)); + 4778 .loc 1 2117 5 view .LVU1499 +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_SAMPLING_DELAY(multimode->TwoSamplingDelay)); + 4779 .loc 1 2118 5 view .LVU1500 +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process locked */ +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_LOCK(hadc); + 4780 .loc 1 2122 3 view .LVU1501 + 4781 .loc 1 2122 3 view .LVU1502 + 4782 0000 90F85820 ldrb r2, [r0, #88] @ zero_extendqisi2 + 4783 0004 012A cmp r2, #1 + 4784 0006 7FD0 beq .L352 +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; + 4785 .loc 1 2106 1 is_stmt 0 discriminator 2 view .LVU1503 + 4786 0008 10B4 push {r4} + 4787 .LCFI36: + 4788 .cfi_def_cfa_offset 4 + 4789 .cfi_offset 4, -4 + 4790 000a 9DB0 sub sp, sp, #116 + 4791 .LCFI37: + 4792 .cfi_def_cfa_offset 120 + 4793 000c 0346 mov r3, r0 + 4794 .loc 1 2122 3 is_stmt 1 discriminator 2 view .LVU1504 + 4795 000e 0122 movs r2, #1 + 4796 0010 80F85820 strb r2, [r0, #88] + 4797 .loc 1 2122 3 discriminator 2 view .LVU1505 +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Temporary handle minimum initialization */ +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_ADC_RESET_HANDLE_STATE(&tmphadcSlave); + 4798 .loc 1 2125 3 discriminator 2 view .LVU1506 + 4799 0014 0022 movs r2, #0 + 4800 0016 1892 str r2, [sp, #96] +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CLEAR_ERRORCODE(&tmphadcSlave); + 4801 .loc 1 2126 3 discriminator 2 view .LVU1507 + 4802 0018 1992 str r2, [sp, #100] +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_MULTI_SLAVE(hadc, &tmphadcSlave); + 4803 .loc 1 2128 3 discriminator 2 view .LVU1508 + 4804 001a 0068 ldr r0, [r0] + 4805 .LVL420: + 4806 .loc 1 2128 3 is_stmt 0 discriminator 2 view .LVU1509 + 4807 001c B0F1A04F cmp r0, #1342177280 + 4808 0020 39D0 beq .L359 + 4809 0022 0022 movs r2, #0 + 4810 0024 0192 str r2, [sp, #4] + 4811 .L342: +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (tmphadcSlave.Instance == NULL) + 4812 .loc 1 2130 3 is_stmt 1 view .LVU1510 + 4813 .loc 1 2130 19 is_stmt 0 view .LVU1511 + 4814 0026 019A ldr r2, [sp, #4] + 4815 .loc 1 2130 6 view .LVU1512 + 4816 0028 002A cmp r2, #0 + 4817 002a 37D0 beq .L360 +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ + ARM GAS /tmp/cc3JIfda.s page 278 + + +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return HAL_ERROR; +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters update conditioned to ADC state: */ +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* conversion on going on regular group: */ +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Multimode DMA configuration */ +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Multimode DMA mode */ +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmphadcSlave_conversion_on_going = LL_ADC_REG_IsConversionOngoing((&tmphadcSlave)->Instance); + 4818 .loc 1 2146 3 is_stmt 1 view .LVU1513 + 4819 .LVL421: + 4820 .LBB476: + 4821 .LBI476: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4822 .loc 2 6851 26 view .LVU1514 + 4823 .LBB477: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4824 .loc 2 6853 3 view .LVU1515 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4825 .loc 2 6853 12 is_stmt 0 view .LVU1516 + 4826 002c 9268 ldr r2, [r2, #8] + 4827 .LVL422: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4828 .loc 2 6853 74 view .LVU1517 + 4829 002e 12F00402 ands r2, r2, #4 + 4830 0032 00D0 beq .L344 + 4831 0034 0122 movs r2, #1 + 4832 .L344: + 4833 .LVL423: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4834 .loc 2 6853 74 view .LVU1518 + 4835 .LBE477: + 4836 .LBE476: +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL) + 4837 .loc 1 2147 3 is_stmt 1 view .LVU1519 + 4838 .LBB478: + 4839 .LBI478: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4840 .loc 2 6851 26 view .LVU1520 + 4841 .LBB479: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4842 .loc 2 6853 3 view .LVU1521 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4843 .loc 2 6853 12 is_stmt 0 view .LVU1522 + 4844 0036 8068 ldr r0, [r0, #8] + 4845 .LVL424: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4846 .loc 2 6853 74 view .LVU1523 + 4847 0038 10F0040F tst r0, #4 + 4848 003c 54D1 bne .L345 + 4849 .LVL425: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 279 + + + 4850 .loc 2 6853 74 view .LVU1524 + 4851 .LBE479: + 4852 .LBE478: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmphadcSlave_conversion_on_going == 0UL)) + 4853 .loc 1 2148 7 view .LVU1525 + 4854 003e 002A cmp r2, #0 + 4855 0040 52D1 bne .L345 +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Pointer to the common control register */ +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmpADC_Common = __LL_ADC_COMMON_INSTANCE(hadc->Instance); + 4856 .loc 1 2151 5 is_stmt 1 view .LVU1526 + 4857 .LVL426: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If multimode is selected, configure all multimode parameters. */ +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Otherwise, reset multimode parameters (can be used in case of */ +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* transition from multimode to independent mode). */ +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (multimode->Mode != ADC_MODE_INDEPENDENT) + 4858 .loc 1 2156 5 view .LVU1527 + 4859 .loc 1 2156 18 is_stmt 0 view .LVU1528 + 4860 0042 0A68 ldr r2, [r1] + 4861 .LVL427: + 4862 .loc 1 2156 8 view .LVU1529 + 4863 0044 002A cmp r2, #0 + 4864 0046 32D0 beq .L346 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(tmpADC_Common->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, + 4865 .loc 1 2158 7 is_stmt 1 view .LVU1530 + 4866 0048 304C ldr r4, .L361 + 4867 004a A268 ldr r2, [r4, #8] + 4868 004c 22F46042 bic r2, r2, #57344 + 4869 0050 4868 ldr r0, [r1, #4] + 4870 0052 93F838C0 ldrb ip, [r3, #56] @ zero_extendqisi2 + 4871 0056 40EA4C30 orr r0, r0, ip, lsl #13 + 4872 005a 0243 orrs r2, r2, r0 + 4873 005c A260 str r2, [r4, #8] +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** multimode->DMAAccessMode | +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CCR_MULTI_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests)); +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters that can be updated only when ADC is disabled: */ +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Multimode mode selection */ +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Multimode delay */ +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Note: Delay range depends on selected resolution: */ +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* from 1 to 12 clock cycles for 12 bits */ +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* from 1 to 10 clock cycles for 10 bits, */ +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* from 1 to 8 clock cycles for 8 bits */ +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* from 1 to 6 clock cycles for 6 bits */ +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If a higher delay is selected, it will be clipped to maximum delay */ +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* range */ +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 4874 .loc 1 2172 7 view .LVU1531 + 4875 .LVL428: + 4876 .LBB480: + 4877 .LBI480: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4878 .loc 2 6729 26 view .LVU1532 + 4879 .LBB481: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + ARM GAS /tmp/cc3JIfda.s page 280 + + + 4880 .loc 2 6731 3 view .LVU1533 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4881 .loc 2 6731 12 is_stmt 0 view .LVU1534 + 4882 005e 4FF0A042 mov r2, #1342177280 + 4883 0062 9068 ldr r0, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4884 .loc 2 6731 68 view .LVU1535 + 4885 0064 10F00100 ands r0, r0, #1 + 4886 0068 00D0 beq .L347 + 4887 006a 0120 movs r0, #1 + 4888 .L347: + 4889 .LVL429: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4890 .loc 2 6731 68 view .LVU1536 + 4891 .LBE481: + 4892 .LBE480: + 4893 .LBB482: + 4894 .LBI482: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4895 .loc 2 6729 26 is_stmt 1 view .LVU1537 + 4896 .LBB483: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4897 .loc 2 6731 3 view .LVU1538 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4898 .loc 2 6731 12 is_stmt 0 view .LVU1539 + 4899 006c 284A ldr r2, .L361+4 + 4900 006e 9268 ldr r2, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4901 .loc 2 6731 68 view .LVU1540 + 4902 0070 12F00102 ands r2, r2, #1 + 4903 0074 00D0 beq .L348 + 4904 0076 0122 movs r2, #1 + 4905 .L348: + 4906 .LVL430: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4907 .loc 2 6731 68 view .LVU1541 + 4908 .LBE483: + 4909 .LBE482: + 4910 .loc 1 2172 10 view .LVU1542 + 4911 0078 0243 orrs r2, r2, r0 + 4912 007a 41D1 bne .L353 +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** MODIFY_REG(tmpADC_Common->CCR, + 4913 .loc 1 2174 9 is_stmt 1 view .LVU1543 + 4914 007c 234C ldr r4, .L361 + 4915 007e A268 ldr r2, [r4, #8] + 4916 0080 22F47162 bic r2, r2, #3856 + 4917 0084 22F00F02 bic r2, r2, #15 + 4918 0088 0868 ldr r0, [r1] + 4919 008a 8968 ldr r1, [r1, #8] + 4920 .LVL431: + 4921 .loc 1 2174 9 is_stmt 0 view .LVU1544 + 4922 008c 0143 orrs r1, r1, r0 + 4923 008e 0A43 orrs r2, r2, r1 + 4924 0090 A260 str r2, [r4, #8] +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_Common_TypeDef *tmpADC_Common; + 4925 .loc 1 2107 21 view .LVU1545 + ARM GAS /tmp/cc3JIfda.s page 281 + + + 4926 0092 0020 movs r0, #0 + 4927 0094 2DE0 b .L349 + 4928 .LVL432: + 4929 .L359: +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 4930 .loc 1 2128 3 discriminator 1 view .LVU1546 + 4931 0096 1E4A ldr r2, .L361+4 + 4932 0098 0192 str r2, [sp, #4] + 4933 009a C4E7 b .L342 + 4934 .L360: +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 4935 .loc 1 2133 5 is_stmt 1 view .LVU1547 + 4936 009c DA6D ldr r2, [r3, #92] + 4937 009e 42F02002 orr r2, r2, #32 + 4938 00a2 DA65 str r2, [r3, #92] +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 4939 .loc 1 2136 5 view .LVU1548 +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 4940 .loc 1 2136 5 view .LVU1549 + 4941 00a4 0022 movs r2, #0 + 4942 00a6 83F85820 strb r2, [r3, #88] +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 4943 .loc 1 2136 5 view .LVU1550 +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 4944 .loc 1 2138 5 view .LVU1551 +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 4945 .loc 1 2138 12 is_stmt 0 view .LVU1552 + 4946 00aa 0120 movs r0, #1 + 4947 00ac 24E0 b .L340 + 4948 .LVL433: + 4949 .L346: +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CCR_DUAL | +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_CCR_DELAY, +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** multimode->Mode | +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** multimode->TwoSamplingDelay +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ); +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else /* ADC_MODE_INDEPENDENT */ +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(tmpADC_Common->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG); + 4950 .loc 1 2184 7 is_stmt 1 view .LVU1553 + 4951 00ae 1749 ldr r1, .L361 + 4952 .LVL434: + 4953 .loc 1 2184 7 is_stmt 0 view .LVU1554 + 4954 00b0 8A68 ldr r2, [r1, #8] + 4955 00b2 22F46042 bic r2, r2, #57344 + 4956 00b6 8A60 str r2, [r1, #8] +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameters that can be updated only when ADC is disabled: */ +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Multimode mode selection */ +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* - Multimode delay */ +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) == 0UL) + 4957 .loc 1 2189 7 is_stmt 1 view .LVU1555 + 4958 .LVL435: + 4959 .LBB484: + 4960 .LBI484: + ARM GAS /tmp/cc3JIfda.s page 282 + + +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4961 .loc 2 6729 26 view .LVU1556 + 4962 .LBB485: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4963 .loc 2 6731 3 view .LVU1557 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4964 .loc 2 6731 12 is_stmt 0 view .LVU1558 + 4965 00b8 4FF0A042 mov r2, #1342177280 + 4966 00bc 9168 ldr r1, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4967 .loc 2 6731 68 view .LVU1559 + 4968 00be 11F00101 ands r1, r1, #1 + 4969 00c2 00D0 beq .L350 + 4970 00c4 0121 movs r1, #1 + 4971 .L350: + 4972 .LVL436: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4973 .loc 2 6731 68 view .LVU1560 + 4974 .LBE485: + 4975 .LBE484: + 4976 .LBB486: + 4977 .LBI486: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 4978 .loc 2 6729 26 is_stmt 1 view .LVU1561 + 4979 .LBB487: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4980 .loc 2 6731 3 view .LVU1562 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4981 .loc 2 6731 12 is_stmt 0 view .LVU1563 + 4982 00c6 124A ldr r2, .L361+4 + 4983 00c8 9268 ldr r2, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4984 .loc 2 6731 68 view .LVU1564 + 4985 00ca 12F00102 ands r2, r2, #1 + 4986 00ce 00D0 beq .L351 + 4987 00d0 0122 movs r2, #1 + 4988 .L351: + 4989 .LVL437: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 4990 .loc 2 6731 68 view .LVU1565 + 4991 .LBE487: + 4992 .LBE486: + 4993 .loc 1 2189 10 view .LVU1566 + 4994 00d2 0A43 orrs r2, r2, r1 + 4995 00d4 16D1 bne .L354 +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(tmpADC_Common->CCR, ADC_CCR_DUAL | ADC_CCR_DELAY); + 4996 .loc 1 2191 9 is_stmt 1 view .LVU1567 + 4997 00d6 0D49 ldr r1, .L361 + 4998 00d8 8A68 ldr r2, [r1, #8] + 4999 00da 22F47162 bic r2, r2, #3856 + 5000 00de 22F00F02 bic r2, r2, #15 + 5001 00e2 8A60 str r2, [r1, #8] +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_Common_TypeDef *tmpADC_Common; + 5002 .loc 1 2107 21 is_stmt 0 view .LVU1568 + 5003 00e4 0020 movs r0, #0 + 5004 00e6 04E0 b .L349 + ARM GAS /tmp/cc3JIfda.s page 283 + + + 5005 .LVL438: + 5006 .L345: +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* If one of the ADC sharing the same common group is enabled, no update */ +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* could be done on neither of the multimode structure parameters. */ +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update ADC state machine to error */ +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); + 5007 .loc 1 2200 5 is_stmt 1 view .LVU1569 + 5008 00e8 DA6D ldr r2, [r3, #92] + 5009 .LVL439: + 5010 .loc 1 2200 5 is_stmt 0 view .LVU1570 + 5011 00ea 42F02002 orr r2, r2, #32 + 5012 00ee DA65 str r2, [r3, #92] +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; + 5013 .loc 1 2202 5 is_stmt 1 view .LVU1571 + 5014 .LVL440: + 5015 .loc 1 2202 20 is_stmt 0 view .LVU1572 + 5016 00f0 0120 movs r0, #1 + 5017 .LVL441: + 5018 .L349: +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Process unlocked */ +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** __HAL_UNLOCK(hadc); + 5019 .loc 1 2206 3 is_stmt 1 view .LVU1573 + 5020 .loc 1 2206 3 view .LVU1574 + 5021 00f2 0022 movs r2, #0 + 5022 00f4 83F85820 strb r2, [r3, #88] + 5023 .loc 1 2206 3 view .LVU1575 +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Return function status */ +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 5024 .loc 1 2209 3 view .LVU1576 + 5025 .LVL442: + 5026 .L340: +2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 5027 .loc 1 2210 1 is_stmt 0 view .LVU1577 + 5028 00f8 1DB0 add sp, sp, #116 + 5029 .LCFI38: + 5030 .cfi_remember_state + 5031 .cfi_def_cfa_offset 4 + 5032 @ sp needed + 5033 00fa 5DF8044B ldr r4, [sp], #4 + 5034 .LCFI39: + 5035 .cfi_restore 4 + 5036 .cfi_def_cfa_offset 0 + 5037 00fe 7047 bx lr + 5038 .LVL443: + 5039 .L353: + 5040 .LCFI40: + 5041 .cfi_restore_state +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_Common_TypeDef *tmpADC_Common; + ARM GAS /tmp/cc3JIfda.s page 284 + + + 5042 .loc 1 2107 21 view .LVU1578 + 5043 0100 0020 movs r0, #0 + 5044 0102 F6E7 b .L349 + 5045 .LVL444: + 5046 .L354: +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ADC_Common_TypeDef *tmpADC_Common; + 5047 .loc 1 2107 21 view .LVU1579 + 5048 0104 0020 movs r0, #0 + 5049 0106 F4E7 b .L349 + 5050 .LVL445: + 5051 .L352: + 5052 .LCFI41: + 5053 .cfi_def_cfa_offset 0 + 5054 .cfi_restore 4 +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** + 5055 .loc 1 2122 3 view .LVU1580 + 5056 0108 0220 movs r0, #2 + 5057 .LVL446: + 5058 .loc 1 2210 1 view .LVU1581 + 5059 010a 7047 bx lr + 5060 .L362: + 5061 .align 2 + 5062 .L361: + 5063 010c 00030050 .word 1342178048 + 5064 0110 00010050 .word 1342177536 + 5065 .cfi_endproc + 5066 .LFE351: + 5068 .section .text.HAL_ADCEx_EnableInjectedQueue,"ax",%progbits + 5069 .align 1 + 5070 .global HAL_ADCEx_EnableInjectedQueue + 5071 .syntax unified + 5072 .thumb + 5073 .thumb_func + 5075 HAL_ADCEx_EnableInjectedQueue: + 5076 .LVL447: + 5077 .LFB352: +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** #endif /* ADC_MULTIMODE_SUPPORT */ +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Enable Injected Queue +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note This function resets CFGR register JQDIS bit in order to enable the +2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Injected Queue. JQDIS can be written only when ADSTART and JDSTART +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * are both equal to 0 to ensure that no regular nor injected +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * conversion is ongoing. +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_EnableInjectedQueue(ADC_HandleTypeDef *hadc) +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 5078 .loc 1 2223 1 is_stmt 1 view -0 + 5079 .cfi_startproc + 5080 @ args = 0, pretend = 0, frame = 0 + 5081 @ frame_needed = 0, uses_anonymous_args = 0 + 5082 @ link register save eliminated. +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 5083 .loc 1 2224 3 view .LVU1583 +2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + ARM GAS /tmp/cc3JIfda.s page 285 + + + 5084 .loc 1 2225 3 view .LVU1584 +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 5085 .loc 1 2226 3 view .LVU1585 +2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 5086 .loc 1 2229 3 view .LVU1586 +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 5087 .loc 1 2231 3 view .LVU1587 + 5088 .loc 1 2231 44 is_stmt 0 view .LVU1588 + 5089 0000 0168 ldr r1, [r0] + 5090 .LVL448: + 5091 .LBB488: + 5092 .LBI488: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5093 .loc 2 6851 26 is_stmt 1 view .LVU1589 + 5094 .LBB489: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5095 .loc 2 6853 3 view .LVU1590 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5096 .loc 2 6853 12 is_stmt 0 view .LVU1591 + 5097 0002 8B68 ldr r3, [r1, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5098 .loc 2 6853 74 view .LVU1592 + 5099 0004 13F00403 ands r3, r3, #4 + 5100 0008 00D0 beq .L364 + 5101 000a 0123 movs r3, #1 + 5102 .L364: + 5103 .LVL449: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5104 .loc 2 6853 74 view .LVU1593 + 5105 .LBE489: + 5106 .LBE488: +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 5107 .loc 1 2232 3 is_stmt 1 view .LVU1594 + 5108 .LBB490: + 5109 .LBI490: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5110 .loc 2 7076 26 view .LVU1595 + 5111 .LBB491: + 5112 .loc 2 7078 3 view .LVU1596 + 5113 .loc 2 7078 12 is_stmt 0 view .LVU1597 + 5114 000c 8A68 ldr r2, [r1, #8] + 5115 .loc 2 7078 76 view .LVU1598 + 5116 000e 12F00802 ands r2, r2, #8 + 5117 0012 00D0 beq .L365 + 5118 0014 0122 movs r2, #1 + 5119 .L365: + 5120 .LVL450: + 5121 .loc 2 7078 76 view .LVU1599 + 5122 .LBE491: + 5123 .LBE490: +2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameter can be set only if no conversion is on-going */ +2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 5124 .loc 1 2235 3 is_stmt 1 view .LVU1600 + ARM GAS /tmp/cc3JIfda.s page 286 + + + 5125 .loc 1 2235 6 is_stmt 0 view .LVU1601 + 5126 0016 53B9 cbnz r3, .L367 +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 5127 .loc 1 2236 7 view .LVU1602 + 5128 0018 5AB9 cbnz r2, .L368 +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->Instance->CFGR, ADC_CFGR_JQDIS); + 5129 .loc 1 2239 5 is_stmt 1 view .LVU1603 + 5130 001a CB68 ldr r3, [r1, #12] + 5131 .LVL451: + 5132 .loc 1 2239 5 is_stmt 0 view .LVU1604 + 5133 001c 23F00043 bic r3, r3, #-2147483648 + 5134 0020 CB60 str r3, [r1, #12] +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Update state, clear previous result related to injected queue overflow */ +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_JQOVF); + 5135 .loc 1 2242 5 is_stmt 1 view .LVU1605 + 5136 0022 C36D ldr r3, [r0, #92] + 5137 0024 23F48043 bic r3, r3, #16384 + 5138 0028 C365 str r3, [r0, #92] +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_OK; + 5139 .loc 1 2244 5 view .LVU1606 + 5140 .LVL452: + 5141 .loc 1 2244 20 is_stmt 0 view .LVU1607 + 5142 002a 0020 movs r0, #0 + 5143 .LVL453: + 5144 .loc 1 2244 20 view .LVU1608 + 5145 002c 7047 bx lr + 5146 .LVL454: + 5147 .L367: +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; + 5148 .loc 1 2248 20 view .LVU1609 + 5149 002e 0120 movs r0, #1 + 5150 .LVL455: + 5151 .loc 1 2248 20 view .LVU1610 + 5152 0030 7047 bx lr + 5153 .LVL456: + 5154 .L368: + 5155 .loc 1 2248 20 view .LVU1611 + 5156 0032 0120 movs r0, #1 + 5157 .LVL457: +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 5158 .loc 1 2251 3 is_stmt 1 view .LVU1612 +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 5159 .loc 1 2252 1 is_stmt 0 view .LVU1613 + 5160 0034 7047 bx lr + 5161 .cfi_endproc + 5162 .LFE352: + 5164 .section .text.HAL_ADCEx_DisableInjectedQueue,"ax",%progbits + 5165 .align 1 + ARM GAS /tmp/cc3JIfda.s page 287 + + + 5166 .global HAL_ADCEx_DisableInjectedQueue + 5167 .syntax unified + 5168 .thumb + 5169 .thumb_func + 5171 HAL_ADCEx_DisableInjectedQueue: + 5172 .LVL458: + 5173 .LFB353: +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Disable Injected Queue +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note This function sets CFGR register JQDIS bit in order to disable the +2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * Injected Queue. JQDIS can be written only when ADSTART and JDSTART +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * are both equal to 0 to ensure that no regular nor injected +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * conversion is ongoing. +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_DisableInjectedQueue(ADC_HandleTypeDef *hadc) +2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 5174 .loc 1 2264 1 is_stmt 1 view -0 + 5175 .cfi_startproc + 5176 @ args = 0, pretend = 0, frame = 0 + 5177 @ frame_needed = 0, uses_anonymous_args = 0 + 5178 @ link register save eliminated. +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 5179 .loc 1 2265 3 view .LVU1615 +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_regular; + 5180 .loc 1 2266 3 view .LVU1616 +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** uint32_t tmp_adc_is_conversion_on_going_injected; + 5181 .loc 1 2267 3 view .LVU1617 +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 5182 .loc 1 2270 3 view .LVU1618 +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_regular = LL_ADC_REG_IsConversionOngoing(hadc->Instance); + 5183 .loc 1 2272 3 view .LVU1619 + 5184 .loc 1 2272 44 is_stmt 0 view .LVU1620 + 5185 0000 0168 ldr r1, [r0] + 5186 .LVL459: + 5187 .LBB492: + 5188 .LBI492: +6851:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5189 .loc 2 6851 26 is_stmt 1 view .LVU1621 + 5190 .LBB493: +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5191 .loc 2 6853 3 view .LVU1622 +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5192 .loc 2 6853 12 is_stmt 0 view .LVU1623 + 5193 0002 8B68 ldr r3, [r1, #8] +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5194 .loc 2 6853 74 view .LVU1624 + 5195 0004 13F00403 ands r3, r3, #4 + 5196 0008 00D0 beq .L370 + 5197 000a 0123 movs r3, #1 + 5198 .L370: + 5199 .LVL460: + ARM GAS /tmp/cc3JIfda.s page 288 + + +6853:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5200 .loc 2 6853 74 view .LVU1625 + 5201 .LBE493: + 5202 .LBE492: +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_adc_is_conversion_on_going_injected = LL_ADC_INJ_IsConversionOngoing(hadc->Instance); + 5203 .loc 1 2273 3 is_stmt 1 view .LVU1626 + 5204 .LBB494: + 5205 .LBI494: +7076:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5206 .loc 2 7076 26 view .LVU1627 + 5207 .LBB495: + 5208 .loc 2 7078 3 view .LVU1628 + 5209 .loc 2 7078 12 is_stmt 0 view .LVU1629 + 5210 000c 8A68 ldr r2, [r1, #8] + 5211 .loc 2 7078 76 view .LVU1630 + 5212 000e 12F00802 ands r2, r2, #8 + 5213 0012 00D0 beq .L371 + 5214 0014 0122 movs r2, #1 + 5215 .L371: + 5216 .LVL461: + 5217 .loc 2 7078 76 view .LVU1631 + 5218 .LBE495: + 5219 .LBE494: +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Parameter can be set only if no conversion is on-going */ +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if ((tmp_adc_is_conversion_on_going_regular == 0UL) + 5220 .loc 1 2276 3 is_stmt 1 view .LVU1632 + 5221 .loc 1 2276 6 is_stmt 0 view .LVU1633 + 5222 0016 53B9 cbnz r3, .L373 +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** && (tmp_adc_is_conversion_on_going_injected == 0UL) + 5223 .loc 1 2277 7 view .LVU1634 + 5224 0018 5AB9 cbnz r2, .L374 +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** ) +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_INJ_SetQueueMode(hadc->Instance, LL_ADC_INJ_QUEUE_DISABLE); + 5225 .loc 1 2280 5 is_stmt 1 view .LVU1635 + 5226 .LVL462: + 5227 .LBB496: + 5228 .LBI496: +4904:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5229 .loc 2 4904 22 view .LVU1636 + 5230 .LBB497: +4906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5231 .loc 2 4906 3 view .LVU1637 + 5232 001a CB68 ldr r3, [r1, #12] + 5233 .LVL463: +4906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5234 .loc 2 4906 3 is_stmt 0 view .LVU1638 + 5235 001c 23F00043 bic r3, r3, #-2147483648 + 5236 0020 23F40013 bic r3, r3, #2097152 + 5237 0024 43F00043 orr r3, r3, #-2147483648 + 5238 0028 CB60 str r3, [r1, #12] + 5239 .LVL464: +4906:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5240 .loc 2 4906 3 view .LVU1639 + 5241 .LBE497: + 5242 .LBE496: + ARM GAS /tmp/cc3JIfda.s page 289 + + +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_OK; + 5243 .loc 1 2281 5 is_stmt 1 view .LVU1640 + 5244 .loc 1 2281 20 is_stmt 0 view .LVU1641 + 5245 002a 0020 movs r0, #0 + 5246 .LVL465: + 5247 .loc 1 2281 20 view .LVU1642 + 5248 002c 7047 bx lr + 5249 .LVL466: + 5250 .L373: +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; + 5251 .loc 1 2285 20 view .LVU1643 + 5252 002e 0120 movs r0, #1 + 5253 .LVL467: + 5254 .loc 1 2285 20 view .LVU1644 + 5255 0030 7047 bx lr + 5256 .LVL468: + 5257 .L374: + 5258 .loc 1 2285 20 view .LVU1645 + 5259 0032 0120 movs r0, #1 + 5260 .LVL469: +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 5261 .loc 1 2288 3 is_stmt 1 view .LVU1646 +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 5262 .loc 1 2289 1 is_stmt 0 view .LVU1647 + 5263 0034 7047 bx lr + 5264 .cfi_endproc + 5265 .LFE353: + 5267 .section .text.HAL_ADCEx_DisableVoltageRegulator,"ax",%progbits + 5268 .align 1 + 5269 .global HAL_ADCEx_DisableVoltageRegulator + 5270 .syntax unified + 5271 .thumb + 5272 .thumb_func + 5274 HAL_ADCEx_DisableVoltageRegulator: + 5275 .LVL470: + 5276 .LFB354: +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Disable ADC voltage regulator. +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Disabling voltage regulator allows to save power. This operation can +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * be carried out only when ADC is disabled. +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note To enable again the voltage regulator, the user is expected to +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * resort to HAL_ADC_Init() API. +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_DisableVoltageRegulator(ADC_HandleTypeDef *hadc) +2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 5277 .loc 1 2301 1 is_stmt 1 view -0 + 5278 .cfi_startproc + 5279 @ args = 0, pretend = 0, frame = 0 + 5280 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cc3JIfda.s page 290 + + + 5281 @ link register save eliminated. +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 5282 .loc 1 2302 3 view .LVU1649 +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ +2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 5283 .loc 1 2305 3 view .LVU1650 +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Setting of this feature is conditioned to ADC state: ADC must be ADC disabled */ +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 5284 .loc 1 2308 3 view .LVU1651 + 5285 .loc 1 2308 7 is_stmt 0 view .LVU1652 + 5286 0000 0368 ldr r3, [r0] + 5287 .LVL471: + 5288 .LBB498: + 5289 .LBI498: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5290 .loc 2 6729 26 is_stmt 1 view .LVU1653 + 5291 .LBB499: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5292 .loc 2 6731 3 view .LVU1654 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5293 .loc 2 6731 12 is_stmt 0 view .LVU1655 + 5294 0002 9A68 ldr r2, [r3, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5295 .loc 2 6731 68 view .LVU1656 + 5296 0004 12F0010F tst r2, #1 + 5297 0008 07D1 bne .L377 + 5298 .LVL472: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5299 .loc 2 6731 68 view .LVU1657 + 5300 .LBE499: + 5301 .LBE498: +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_DisableInternalRegulator(hadc->Instance); + 5302 .loc 1 2310 5 is_stmt 1 view .LVU1658 + 5303 .LBB500: + 5304 .LBI500: +6658:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5305 .loc 2 6658 22 view .LVU1659 + 5306 .LBB501: +6660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5307 .loc 2 6660 3 view .LVU1660 + 5308 000a 9A68 ldr r2, [r3, #8] + 5309 000c 22F01042 bic r2, r2, #-1879048192 + 5310 0010 22F03F02 bic r2, r2, #63 + 5311 0014 9A60 str r2, [r3, #8] + 5312 .LVL473: +6660:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5313 .loc 2 6660 3 is_stmt 0 view .LVU1661 + 5314 .LBE501: + 5315 .LBE500: +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_OK; + 5316 .loc 1 2311 5 is_stmt 1 view .LVU1662 + 5317 .loc 1 2311 20 is_stmt 0 view .LVU1663 + 5318 0016 0020 movs r0, #0 + 5319 .LVL474: + ARM GAS /tmp/cc3JIfda.s page 291 + + + 5320 .loc 1 2311 20 view .LVU1664 + 5321 0018 7047 bx lr + 5322 .LVL475: + 5323 .L377: +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; + 5324 .loc 1 2315 20 view .LVU1665 + 5325 001a 0120 movs r0, #1 + 5326 .LVL476: +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 5327 .loc 1 2318 3 is_stmt 1 view .LVU1666 +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 5328 .loc 1 2319 1 is_stmt 0 view .LVU1667 + 5329 001c 7047 bx lr + 5330 .cfi_endproc + 5331 .LFE354: + 5333 .section .text.HAL_ADCEx_EnterADCDeepPowerDownMode,"ax",%progbits + 5334 .align 1 + 5335 .global HAL_ADCEx_EnterADCDeepPowerDownMode + 5336 .syntax unified + 5337 .thumb + 5338 .thumb_func + 5340 HAL_ADCEx_EnterADCDeepPowerDownMode: + 5341 .LVL477: + 5342 .LFB355: +2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /** +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @brief Enter ADC deep-power-down mode +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note This mode is achieved in setting DEEPPWD bit and allows to save power +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * in reducing leakage currents. It is particularly interesting before +2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * entering stop modes. +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note Setting DEEPPWD automatically clears ADVREGEN bit and disables the +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * ADC voltage regulator. This means that this API encompasses +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * HAL_ADCEx_DisableVoltageRegulator(). Additionally, the internal +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * calibration is lost. +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @note To exit the ADC deep-power-down mode, the user is expected to +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * resort to HAL_ADC_Init() API as well as to relaunch a calibration +2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * with HAL_ADCEx_Calibration_Start() API or to re-apply a previously +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * saved calibration factor. +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @param hadc ADC handle +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** * @retval HAL status +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** */ +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef HAL_ADCEx_EnterADCDeepPowerDownMode(ADC_HandleTypeDef *hadc) +2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { + 5343 .loc 1 2338 1 is_stmt 1 view -0 + 5344 .cfi_startproc + 5345 @ args = 0, pretend = 0, frame = 0 + 5346 @ frame_needed = 0, uses_anonymous_args = 0 + 5347 @ link register save eliminated. +2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** HAL_StatusTypeDef tmp_hal_status; + 5348 .loc 1 2339 3 view .LVU1669 +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Check the parameters */ + ARM GAS /tmp/cc3JIfda.s page 292 + + +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); + 5349 .loc 1 2342 3 view .LVU1670 +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** /* Setting of this feature is conditioned to ADC state: ADC must be ADC disabled */ +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** if (LL_ADC_IsEnabled(hadc->Instance) == 0UL) + 5350 .loc 1 2345 3 view .LVU1671 + 5351 .loc 1 2345 7 is_stmt 0 view .LVU1672 + 5352 0000 0268 ldr r2, [r0] + 5353 .LVL478: + 5354 .LBB502: + 5355 .LBI502: +6729:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5356 .loc 2 6729 26 is_stmt 1 view .LVU1673 + 5357 .LBB503: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5358 .loc 2 6731 3 view .LVU1674 +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5359 .loc 2 6731 12 is_stmt 0 view .LVU1675 + 5360 0002 9368 ldr r3, [r2, #8] +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5361 .loc 2 6731 68 view .LVU1676 + 5362 0004 13F0010F tst r3, #1 + 5363 0008 09D1 bne .L380 + 5364 .LVL479: +6731:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** } + 5365 .loc 2 6731 68 view .LVU1677 + 5366 .LBE503: + 5367 .LBE502: +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** LL_ADC_EnableDeepPowerDown(hadc->Instance); + 5368 .loc 1 2347 5 is_stmt 1 view .LVU1678 + 5369 .LBB504: + 5370 .LBI504: +6583:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** { + 5371 .loc 2 6583 22 view .LVU1679 + 5372 .LBB505: +6588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5373 .loc 2 6588 3 view .LVU1680 + 5374 000a 9368 ldr r3, [r2, #8] + 5375 000c 23F02043 bic r3, r3, #-1610612736 + 5376 0010 23F03F03 bic r3, r3, #63 + 5377 0014 43F00053 orr r3, r3, #536870912 + 5378 0018 9360 str r3, [r2, #8] + 5379 .LVL480: +6588:Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h **** ADC_CR_BITS_PROPERTY_RS, + 5380 .loc 2 6588 3 is_stmt 0 view .LVU1681 + 5381 .LBE505: + 5382 .LBE504: +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_OK; + 5383 .loc 1 2348 5 is_stmt 1 view .LVU1682 + 5384 .loc 1 2348 20 is_stmt 0 view .LVU1683 + 5385 001a 0020 movs r0, #0 + 5386 .LVL481: + 5387 .loc 1 2348 20 view .LVU1684 + 5388 001c 7047 bx lr + 5389 .LVL482: + 5390 .L380: + ARM GAS /tmp/cc3JIfda.s page 293 + + +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** else +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** { +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** tmp_hal_status = HAL_ERROR; + 5391 .loc 1 2352 20 view .LVU1685 + 5392 001e 0120 movs r0, #1 + 5393 .LVL483: +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** +2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** return tmp_hal_status; + 5394 .loc 1 2355 3 is_stmt 1 view .LVU1686 +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_adc_ex.c **** } + 5395 .loc 1 2356 1 is_stmt 0 view .LVU1687 + 5396 0020 7047 bx lr + 5397 .cfi_endproc + 5398 .LFE355: + 5400 .text + 5401 .Letext0: + 5402 .file 4 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 5403 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 5404 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 5405 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 5406 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 5407 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h" + 5408 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h" + 5409 .file 11 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" + 5410 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/cc3JIfda.s page 294 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_adc_ex.c + /tmp/cc3JIfda.s:21 .text.LL_ADC_SetCalibrationFactor:00000000 $t + /tmp/cc3JIfda.s:26 .text.LL_ADC_SetCalibrationFactor:00000000 LL_ADC_SetCalibrationFactor + /tmp/cc3JIfda.s:54 .text.LL_ADC_SetChannelSamplingTime:00000000 $t + /tmp/cc3JIfda.s:59 .text.LL_ADC_SetChannelSamplingTime:00000000 LL_ADC_SetChannelSamplingTime + /tmp/cc3JIfda.s:104 .text.HAL_ADCEx_Calibration_Start:00000000 $t + /tmp/cc3JIfda.s:110 .text.HAL_ADCEx_Calibration_Start:00000000 HAL_ADCEx_Calibration_Start + /tmp/cc3JIfda.s:270 .text.HAL_ADCEx_Calibration_Start:00000098 $d + /tmp/cc3JIfda.s:275 .text.HAL_ADCEx_Calibration_GetValue:00000000 $t + /tmp/cc3JIfda.s:281 .text.HAL_ADCEx_Calibration_GetValue:00000000 HAL_ADCEx_Calibration_GetValue + /tmp/cc3JIfda.s:322 .text.HAL_ADCEx_Calibration_SetValue:00000000 $t + /tmp/cc3JIfda.s:328 .text.HAL_ADCEx_Calibration_SetValue:00000000 HAL_ADCEx_Calibration_SetValue + /tmp/cc3JIfda.s:467 .text.HAL_ADCEx_InjectedStart:00000000 $t + /tmp/cc3JIfda.s:473 .text.HAL_ADCEx_InjectedStart:00000000 HAL_ADCEx_InjectedStart + /tmp/cc3JIfda.s:715 .text.HAL_ADCEx_InjectedStart:000000e8 $d + /tmp/cc3JIfda.s:721 .text.HAL_ADCEx_InjectedStop:00000000 $t + /tmp/cc3JIfda.s:727 .text.HAL_ADCEx_InjectedStop:00000000 HAL_ADCEx_InjectedStop + /tmp/cc3JIfda.s:827 .text.HAL_ADCEx_InjectedPollForConversion:00000000 $t + /tmp/cc3JIfda.s:833 .text.HAL_ADCEx_InjectedPollForConversion:00000000 HAL_ADCEx_InjectedPollForConversion + /tmp/cc3JIfda.s:1118 .text.HAL_ADCEx_InjectedPollForConversion:000000f8 $d + /tmp/cc3JIfda.s:1124 .text.HAL_ADCEx_InjectedStart_IT:00000000 $t + /tmp/cc3JIfda.s:1130 .text.HAL_ADCEx_InjectedStart_IT:00000000 HAL_ADCEx_InjectedStart_IT + /tmp/cc3JIfda.s:1416 .text.HAL_ADCEx_InjectedStart_IT:0000012c $d + /tmp/cc3JIfda.s:1422 .text.HAL_ADCEx_InjectedStop_IT:00000000 $t + /tmp/cc3JIfda.s:1428 .text.HAL_ADCEx_InjectedStop_IT:00000000 HAL_ADCEx_InjectedStop_IT + /tmp/cc3JIfda.s:1533 .text.HAL_ADCEx_MultiModeStart_DMA:00000000 $t + /tmp/cc3JIfda.s:1539 .text.HAL_ADCEx_MultiModeStart_DMA:00000000 HAL_ADCEx_MultiModeStart_DMA + /tmp/cc3JIfda.s:1757 .text.HAL_ADCEx_MultiModeStart_DMA:000000d0 $d + /tmp/cc3JIfda.s:1765 .text.HAL_ADCEx_MultiModeStop_DMA:00000000 $t + /tmp/cc3JIfda.s:1771 .text.HAL_ADCEx_MultiModeStop_DMA:00000000 HAL_ADCEx_MultiModeStop_DMA + /tmp/cc3JIfda.s:2105 .text.HAL_ADCEx_MultiModeGetValue:00000000 $t + /tmp/cc3JIfda.s:2111 .text.HAL_ADCEx_MultiModeGetValue:00000000 HAL_ADCEx_MultiModeGetValue + /tmp/cc3JIfda.s:2133 .text.HAL_ADCEx_MultiModeGetValue:00000008 $d + /tmp/cc3JIfda.s:2138 .text.HAL_ADCEx_InjectedGetValue:00000000 $t + /tmp/cc3JIfda.s:2144 .text.HAL_ADCEx_InjectedGetValue:00000000 HAL_ADCEx_InjectedGetValue + /tmp/cc3JIfda.s:2209 .text.HAL_ADCEx_InjectedConvCpltCallback:00000000 $t + /tmp/cc3JIfda.s:2215 .text.HAL_ADCEx_InjectedConvCpltCallback:00000000 HAL_ADCEx_InjectedConvCpltCallback + /tmp/cc3JIfda.s:2230 .text.HAL_ADCEx_InjectedQueueOverflowCallback:00000000 $t + /tmp/cc3JIfda.s:2236 .text.HAL_ADCEx_InjectedQueueOverflowCallback:00000000 HAL_ADCEx_InjectedQueueOverflowCallback + /tmp/cc3JIfda.s:2251 .text.HAL_ADCEx_LevelOutOfWindow2Callback:00000000 $t + /tmp/cc3JIfda.s:2257 .text.HAL_ADCEx_LevelOutOfWindow2Callback:00000000 HAL_ADCEx_LevelOutOfWindow2Callback + /tmp/cc3JIfda.s:2272 .text.HAL_ADCEx_LevelOutOfWindow3Callback:00000000 $t + /tmp/cc3JIfda.s:2278 .text.HAL_ADCEx_LevelOutOfWindow3Callback:00000000 HAL_ADCEx_LevelOutOfWindow3Callback + /tmp/cc3JIfda.s:2293 .text.HAL_ADCEx_EndOfSamplingCallback:00000000 $t + /tmp/cc3JIfda.s:2299 .text.HAL_ADCEx_EndOfSamplingCallback:00000000 HAL_ADCEx_EndOfSamplingCallback + /tmp/cc3JIfda.s:2314 .text.HAL_ADCEx_RegularStop:00000000 $t + /tmp/cc3JIfda.s:2320 .text.HAL_ADCEx_RegularStop:00000000 HAL_ADCEx_RegularStop + /tmp/cc3JIfda.s:2423 .text.HAL_ADCEx_RegularStop_IT:00000000 $t + /tmp/cc3JIfda.s:2429 .text.HAL_ADCEx_RegularStop_IT:00000000 HAL_ADCEx_RegularStop_IT + /tmp/cc3JIfda.s:2537 .text.HAL_ADCEx_RegularStop_DMA:00000000 $t + /tmp/cc3JIfda.s:2543 .text.HAL_ADCEx_RegularStop_DMA:00000000 HAL_ADCEx_RegularStop_DMA + /tmp/cc3JIfda.s:2692 .text.HAL_ADCEx_RegularMultiModeStop_DMA:00000000 $t + /tmp/cc3JIfda.s:2698 .text.HAL_ADCEx_RegularMultiModeStop_DMA:00000000 HAL_ADCEx_RegularMultiModeStop_DMA + /tmp/cc3JIfda.s:3053 .text.HAL_ADCEx_InjectedConfigChannel:00000000 $t + /tmp/cc3JIfda.s:3059 .text.HAL_ADCEx_InjectedConfigChannel:00000000 HAL_ADCEx_InjectedConfigChannel + /tmp/cc3JIfda.s:4150 .text.HAL_ADCEx_InjectedConfigChannel:0000039c $d + ARM GAS /tmp/cc3JIfda.s page 295 + + + /tmp/cc3JIfda.s:4164 .text.HAL_ADCEx_InjectedConfigChannel:000003bc $t + /tmp/cc3JIfda.s:4749 .text.HAL_ADCEx_InjectedConfigChannel:000005b0 $d + /tmp/cc3JIfda.s:4757 .text.HAL_ADCEx_MultiModeConfigChannel:00000000 $t + /tmp/cc3JIfda.s:4763 .text.HAL_ADCEx_MultiModeConfigChannel:00000000 HAL_ADCEx_MultiModeConfigChannel + /tmp/cc3JIfda.s:5063 .text.HAL_ADCEx_MultiModeConfigChannel:0000010c $d + /tmp/cc3JIfda.s:5069 .text.HAL_ADCEx_EnableInjectedQueue:00000000 $t + /tmp/cc3JIfda.s:5075 .text.HAL_ADCEx_EnableInjectedQueue:00000000 HAL_ADCEx_EnableInjectedQueue + /tmp/cc3JIfda.s:5165 .text.HAL_ADCEx_DisableInjectedQueue:00000000 $t + /tmp/cc3JIfda.s:5171 .text.HAL_ADCEx_DisableInjectedQueue:00000000 HAL_ADCEx_DisableInjectedQueue + /tmp/cc3JIfda.s:5268 .text.HAL_ADCEx_DisableVoltageRegulator:00000000 $t + /tmp/cc3JIfda.s:5274 .text.HAL_ADCEx_DisableVoltageRegulator:00000000 HAL_ADCEx_DisableVoltageRegulator + /tmp/cc3JIfda.s:5334 .text.HAL_ADCEx_EnterADCDeepPowerDownMode:00000000 $t + /tmp/cc3JIfda.s:5340 .text.HAL_ADCEx_EnterADCDeepPowerDownMode:00000000 HAL_ADCEx_EnterADCDeepPowerDownMode + +UNDEFINED SYMBOLS +ADC_Disable +ADC_Enable +ADC_ConversionStop +HAL_GetTick +HAL_DMA_Start_IT +ADC_DMAConvCplt +ADC_DMAHalfConvCplt +ADC_DMAError +HAL_DMA_Abort +SystemCoreClock diff --git a/squeow_sw/build/stm32g4xx_hal_adc_ex.o b/squeow_sw/build/stm32g4xx_hal_adc_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..db2bd398fdf40a2749ba8bdbd31adc0b4f093e01 GIT binary patch literal 71060 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≧N7aCNY4&wSd@>hya&PJl*`^81i{7O+=vQRhY<_fOUK@GHTCf~iE*=hc;br(70S*7~7u zxzH~a%p^MX(f)dtflm-2|B=XjBdE)XuotmE5y(HMNxUC1-P6H8_6MA8?yo%f>pt97 z6S*5Eau@5FtJE-Jh1{Ef&f72YCkqw{vLB?+7d%aHvEW+4b%Iw4-X{1r!2^Oet}WEZ zKd(s~BKQ-*Cc$$AFBkl|;DdtC3cfD*q2O177RHDAQv?SK<_Vr4I7jd&g3W^G30^7q z3&GzBJ}&r2!S@8e5d62G{wHQ&#|&H>Y0oM_URzn-Cb&~@x8Om+1k5kx#t1eFb_!lC zc!%J_f-eg4&v~={e!(vVe-KQi-+<4*$W0t1I8<n@Na?# z1Z~77+LbCeM6f{ce8Fo4Zxh@uxKpr8@Na?#1Z~`CYW;#k1PcVG37#bQ6Tv3Ia|ACJ z{JG#Af)5EkC-{coM}h|g6YvU@FT$kf(eLS zY_Ff-(Sj2Nrwh&(tQBk%yg+c1;8wwV1RocCS@0df{ep)Cd*ks3?HD9DTJQwHa>1p7 zR|?)PxI^$yf`1Y8;^si>6`UkEoj6menSu+2zJxdje@94gh0xbX`5eIwMAW}r@G8Nr z!oOYccS8TY;6sAX2>%7aE+YE>9&rZl)dc@8^g~40^}V3o%gE#3UDfn7!GT27&lVgm zc&zY`7o0BiS%Px~PZ$1T!3HAiT1A|$)LDWT3;i169Q@%k!JCBs8!6u zvqIl364!E1%SRm!&u-XZk+rTnnq<3fK?%6}AmlZf`-71aM|I?7)P z|DS?C2;awlPZ|6K!Av6T$`Z^bq96IhLhLsLj}?BA@aIT*p5Q{EFOhP+;0mFyk@7i$ zokHIzsi4U1@{R5eZfzJ{&zwB@3o_zjT>n8Hz3%D2zp<^ z0fM81Um!SH=!Jr%f(wLyieRnK8wHyM&lmoB!Hq({M(_r~+lBud!AFUhj~9q|6!fxS zm+y&!Rv+pbHUpLe=T^g;O_+=CqmCI!RH0v68^h_e-r#v z@GHS@1bJgiJ$}JN!2v{!&tSn^!BK(}1dkIeAwthg!8w9w2!Dy-3c*&vwSwmgUQC3Z zje?s5Zx#Np1n&{NPw-K}Ck0<5LeHNBUlaUD_@4-VDfmyp?*%=$L1q6#MCeHs%oIFY z_#*|!3r-R&5}YnLmk2!z1WyrMF8mh3HG<~|ZV?b%-aG2mRf@1|I3KkO4ewkpo;Az6I7Hkk~5?oD0y>kUS1+NzV^@3Z4{wu-X z3O*wICj_4td`a+i!M6neD)=|Se-P3BKLx)POzdaIBU!Mo-~hp4MARE8m@il;{8GV_ zgg#$zkzk|nn+4Yhoqvs=&yTJW`Za<#3G&|+;5^+Sc(>q#MA-9~;7-Ba!hb{XFGByD z;HQFzg#W!@01vX*PLf~-5&8!ZVc#gB7YI%kexYEg-~!>FBDh4bUT`H5dRG&n_Y$FB zA$Yy;ZxY-pxJ~%?3qCIRl;BH5=-o|(-VcQSv0%6GzY#nnn3M&1t^>h-f&&GI6QOq$ z5qeJ$dXeBP;m;FXAXqQ_<$~>kYXmPKLhmI+=)F6ue02HwfM)^j{0! zOGNwsPh)oiXH)(Eas0{{*61{6-;b_#tcYkF428 zO(^suK&pr1&`~W|r z-HN|#{d>qCFm*i6l0T1s(VkUh4mRGMSjg1vi(*;w6|oA|r@b+@BHtFD!k)AzVlw%m zI0C29J_F~IUxF)e1MO+}DfxqV0)N3jFmG{hKTDcAj?rcfT_GK-o7(Ssw6`F(uM@F+ zTk;9ST`|$rI7yg{<7l6V)5xdbd$TjoZAWpls@~ti%H-=|Q?s&OzhQgwy)enFq%S(e(d1vpxn_kxU?HZG--w@? z<@Gp%`^cZh%VxPi;4jQoQn9xCUQ_c`1WS;Q#+u~oU}N%+nUQ+@z|Q3Rni}r~OeQ}C z=a{AR^^3UJRR2`kHxQ>`I{BT%U*lf#$B0kjS@L$Vc-z0+rpC{Y;p9sam%(UL|Hoh~ zHZ^toIDC@)Go~J|63O?+!L*OSS8xXHvv3jl75EOO(Y_hKB)=Q?;7_#wjOWScF753{ zI2OlpSPNTY7yOs0`5I;F93P7lOzr>cv@alDj4Q~mC0>tdfEyRTA`^~(A0Jn!Qxn%_G(z0d_!!4?P!n3PUHvTcwA*_9zHhpn7j$MnA(n=w0}?h z10Ey)EAj7m&D1#A%6R6)BBsVGj*;YRV=GhJ5pU`_Pe<%x>UN2=zeqe3N0OgJJPl`( ze~Wl2t|b2f@rU@Ssr6>y4*Y@kqj;A5Z+IDVmG!nWFBUR2UU4ji)o8DQ^~pEE<`_?V zN9;yE+0;CZHuV~498NSfPcvv=NW277$gd;bfE&qwLA(>cA%B?o7@i`3k@!yx=&{ze zE4Qib$dBRVOA?pC`^i@)u8DQYHz#g|?M&_Ov)Bn=p#5JsoctJ5k5@Cv&&I{Hr_lZ( z`Hi@R_8s_xsr@=*>OF~H@pn`EY2QKW_S>}m#&Gf_iOXQLsc~X37Ms!@hxXll)~`1X zHMJe%O}&>m38$G_@0+wQBVLKC$bUrq32q_(74f&YpZp2p)A*aI_5O+1Fu#5W+xiP) zaZ~*wF$y1|y*4%>ABX?MPPBK!e&h$@i#VS4N%$K1C8p+SwW;^y*W!9p+nG-L4&vST z9r+`~C-7(Tmx!-mmixW+tN;;z%q{K883J>zmrnCfFRGro96`N4_t^uy)}0rrHyTyJAoB1BeIVQ1au5C*oA{i_E(Mffe`;er#%en=k`+ z;9m2tK;RG_!3(BtcL}eO&sR}-ZFecGf^{(tJ7OXZ!SOf;Q*b?Q#c%K@yolK=dFwBT zrLihD!pATH6Y(V+hf~cQdR~NYm~r|pUsL;;O1uU?AfHaW4ZkG6m-qnwNd7GGdAvqG zZ?w0b`>;IL!e;mk_QIh!0cYV-d>_+s7aqjZ_y^|HYZ}|%d$Ba?ih(X)2jj3kcE=Ay==F8};WP7wcEMQ!i(ndRpbw>Fm^S&PT8rK88==bJz!yFd4_; zM10F^qW5X>9bAnc;zrzx8F(0v;TilDby-?BeooAfR$FfCEraE;k=a;}gV+imM^_)H z_5|V{=;{TPA4vQn4#&|r3+LhzT!9~f2kR1!o znhgVir?4Y-!9?tjgK!9r!SOg1U&jK0iVM@I1pdNsrWj+iSuzOrr>H^i~H~(9>bG(0bL!Y_RBuo zVEdOf%rg((jfJo%mc{$g)o<$d4-(hKhS(mT#ctRW`{O_yg2QnJ&cY?Q0@vbt{0hHC z``$U*zr*+&UdBK+uRRP4V=;8~qPl$)aZRj)u3l8_PZ0OUemDxp;%rmzd(XqAn1Zg} zS?%kH({M9ppsO=gzca+Y;${2`!?Jtp%YpgO)t&10MTm=I6jsD)SOeQ(Ja)$Jn27yx z5DvjnI2I@2G<0>W+O9doOECpk<67K{2k;o4#9#0?{0p<(>CH<{%!3875Jq4mR=~P6oQP9!CeFrXxDwakI{X56;vU?OKjLw`iuPR4&dZ#b2Mb~$ zEP}K?JNCsF(AD>9y)P5Lg09|I`KiROn37|-KH%z2l${dv&U zHEaG$5m(2W*aBN)0(QkgI0Pr*G<*w};s#8^UHAv+4=5-M_-IFy4>R*Z?2F zb{LO+@Od1K<8T(bdTFgMm3R%hx@hGyh!5alJdYRgt~}m$yLxEdt|W08boI~5yZUF@ zf_!W2hCT6lbal__KZbZb&cOw^3|Hbu_zCXDJ@^y;j9K$~+wba`wZ6Q>_h2MO;lo%L zAHin$Gz5u6|hK)F*C? zu3lLAc;e339S5PS8&_%VKppW#mY8eKiF z)^~{bIG)0*c!$-ms$WjbgQc)6R>G>e;I0YBua(oxx zLsze>alatmjeGECboILGcZv84=GWh7Y`+WQeOLmkVGXQ<4e)WZMj-GccEHX!1c#%m z$5sCc#M5vF&c{WVf~n~0aCQ6b#NXgv`~i=mtH)LUbHo?%PrSqGQq`Uv3u7^i#3+n4 zAJpfBu@OFst+5UE#(wxOdxBdeXiECgm?w6!uN3-x_Vso-%Y#+Pngy8_Yb^) zmr$3(aP48}>TuORg18)3Kv$2ec2|!pYm={!Pok^GReLAmZa4^s;3yo6OU-hDKnkwL zwYU+}F#~ttUOa%V{#N7tM0_4E;#IuE>QU9NC`Mp8boIAte}K3;*2eni>Te?h0at%3 zJ6K+J#sOxjKwuCK$I&}`ao7giVF&Dt$v7BCqN~rL_IZi#!NOP!BQXje!0PxoK8eqwtIyT= z&k^^*BuvJaaU}j5Uqx51t8rYtu6&RD2bhMN@pIgc-{4;S0gvME=<0PfenG2em4&bb zmc|NL8S7(XY-6gPs2z61F4!Ag-LCqLC7yuOa0bpnSHG+N%ZOLvCftIqZdd(w5g)~$ z@El&iF!i;%pB$JU3t|k$VqI*A&9Ei9x?PRu>UL#E@?EeO_QgRs1V`amoP~37F)qiC zaTD&uuklAbj`|KNx4${DAQr+BSQ=e@ulB>$_sWLkn_vg*j6KoS^Q!;L#3OM!&cr3A zekZNK)wmY7<5##B58zS!307>IuI7Z>7kd>c1nI%ePwJZS2`l$GNx=m*d;`0e*;I z;x0UiXYeU}=27)O$14u?{xCX4n$DVNZM>2jE~FhGTF%En?XLb`|%i_ z#9z?WE9>?J%6i-P4|Mg(%DehxS)P0)bal$gKTO;JAHmkx2D@V~?2iL+98SdPI1^o+ zveuVMya~79m$(aEeX{=c=IWE>8OzIG@ejO;_vkgKwcm@yuq3*AWVO3`WLcklV|*Gr zU^ncELvaMYVP@0cr*RQ3!|VaIH&^|rseXD{>9$Y5ZrphkW$JvaVyaWDsmH~7rhb1s zYU=lLYg5mU+L?N8*3s1O>K>*Z+xnTh4U`~u{Y;&=NtkTv zcn`*5W~4s1gJVsd&l7O6sq=a|&NOv?&&GMC&hxi$sj2fl1yfC(_iJ#Ssq=pWrkT1Q zY{spo?hhHb!_@h=8~2!+_x*Uttf%WK;R#dsm(zI8)cxiHUNUw6xq^W^6zhHzhMO#} z<9X23am;Rc9lvx_$L*S_^+gqH|K00h?YDcKs{Jh(Q2sF zQ|nG5cK2_s+ud(9p1a>_Uflgt@jC0L`Po7L-KOU09PtHH+nn3xTmAE!nztz8il*kT zHE|nL^O#IL*wn_4C7xhvUS|@|HZ{LXiBn9?^E%=UrsjJqafYdR-$T6L)cl_yK5gna zxbsEZ>*_OgJRP@!m6LDX$-9Q~jrwF>KKJ_7lyB3Gt0IR^YUV)KXVe|y>j%c4q}z7*+m(?+*X56N z^^U$vg^~S604JXMg_w z_mat>`+*IEwkck?SQyM67_wbKB7cW7d_zJX}( z=Y&q3`ga}ZO`Dg|_g)5v3H=iiyLZ)tl0BSwJ^r52H*ijq+ff*c3Xe(`wdhgc)YQS?RT=jgz-avnN$DQBd+zX zx4m^0+Z{@7+P;4GS4B zx1QrY>klUV{k7*$!P_@DX!{BTjc3pA^CydHPzIi=eD#oxYs8rW82=eR9N z>KE(%=>GNBTP37liu(C&*3tjjK4%j=-rG0nXP>JH?w5L#e(#3#TXmCu`$GD;I`kXt zM>d^D!RvirR zY*jz^S@5+2^Q&HYd>gdHoGZuaEu3Z?n%`1 z-~91@WIQ|9ZRs>gf4jWL``P}r@$COIA^j>W@Sf9HA6xu>f6~v(>UXO8oeSDuTdyq_ z^+WLX#fN1H*n2y+eYNzz^|Qy99J+658v5x+w=`Pxzt6>Ny|$P^s|h5l-#k6G)l + 35:Drivers/CMSIS/Include/core_cm4.h **** + 36:Drivers/CMSIS/Include/core_cm4.h **** #ifdef __cplusplus + 37:Drivers/CMSIS/Include/core_cm4.h **** extern "C" { + 38:Drivers/CMSIS/Include/core_cm4.h **** #endif + 39:Drivers/CMSIS/Include/core_cm4.h **** + 40:Drivers/CMSIS/Include/core_cm4.h **** /** + 41:Drivers/CMSIS/Include/core_cm4.h **** \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + 42:Drivers/CMSIS/Include/core_cm4.h **** CMSIS violates the following MISRA-C:2004 rules: + 43:Drivers/CMSIS/Include/core_cm4.h **** + 44:Drivers/CMSIS/Include/core_cm4.h **** \li Required Rule 8.5, object/function definition in header file.
+ 45:Drivers/CMSIS/Include/core_cm4.h **** Function definitions in header files are used to allow 'inlining'. + 46:Drivers/CMSIS/Include/core_cm4.h **** + 47:Drivers/CMSIS/Include/core_cm4.h **** \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ 48:Drivers/CMSIS/Include/core_cm4.h **** Unions are used for effective representation of core registers. + 49:Drivers/CMSIS/Include/core_cm4.h **** + 50:Drivers/CMSIS/Include/core_cm4.h **** \li Advisory Rule 19.7, Function-like macro defined.
+ 51:Drivers/CMSIS/Include/core_cm4.h **** Function-like macros are used to allow more efficient code. + 52:Drivers/CMSIS/Include/core_cm4.h **** */ + 53:Drivers/CMSIS/Include/core_cm4.h **** + 54:Drivers/CMSIS/Include/core_cm4.h **** + 55:Drivers/CMSIS/Include/core_cm4.h **** /******************************************************************************* + 56:Drivers/CMSIS/Include/core_cm4.h **** * CMSIS definitions + 57:Drivers/CMSIS/Include/core_cm4.h **** ******************************************************************************/ + 58:Drivers/CMSIS/Include/core_cm4.h **** /** + 59:Drivers/CMSIS/Include/core_cm4.h **** \ingroup Cortex_M4 + 60:Drivers/CMSIS/Include/core_cm4.h **** @{ + 61:Drivers/CMSIS/Include/core_cm4.h **** */ + 62:Drivers/CMSIS/Include/core_cm4.h **** + 63:Drivers/CMSIS/Include/core_cm4.h **** #include "cmsis_version.h" + 64:Drivers/CMSIS/Include/core_cm4.h **** + 65:Drivers/CMSIS/Include/core_cm4.h **** /* CMSIS CM4 definitions */ + 66:Drivers/CMSIS/Include/core_cm4.h **** #define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] C + 67:Drivers/CMSIS/Include/core_cm4.h **** #define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] C + 68:Drivers/CMSIS/Include/core_cm4.h **** #define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + 69:Drivers/CMSIS/Include/core_cm4.h **** __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL + 70:Drivers/CMSIS/Include/core_cm4.h **** + 71:Drivers/CMSIS/Include/core_cm4.h **** #define __CORTEX_M (4U) /*!< Cortex-M Core */ + 72:Drivers/CMSIS/Include/core_cm4.h **** + 73:Drivers/CMSIS/Include/core_cm4.h **** /** __FPU_USED indicates whether an FPU is used or not. + 74:Drivers/CMSIS/Include/core_cm4.h **** For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and fun + 75:Drivers/CMSIS/Include/core_cm4.h **** */ + 76:Drivers/CMSIS/Include/core_cm4.h **** #if defined ( __CC_ARM ) + 77:Drivers/CMSIS/Include/core_cm4.h **** #if defined __TARGET_FPU_VFP + 78:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 79:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 80:Drivers/CMSIS/Include/core_cm4.h **** #else + 81:Drivers/CMSIS/Include/core_cm4.h **** #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) + 82:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 83:Drivers/CMSIS/Include/core_cm4.h **** #endif + 84:Drivers/CMSIS/Include/core_cm4.h **** #else + 85:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 86:Drivers/CMSIS/Include/core_cm4.h **** #endif + ARM GAS /tmp/ccVsbRnC.s page 3 + + + 87:Drivers/CMSIS/Include/core_cm4.h **** + 88:Drivers/CMSIS/Include/core_cm4.h **** #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + 89:Drivers/CMSIS/Include/core_cm4.h **** #if defined __ARM_FP + 90:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 91:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 92:Drivers/CMSIS/Include/core_cm4.h **** #else + 93:Drivers/CMSIS/Include/core_cm4.h **** #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESEN + 94:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 95:Drivers/CMSIS/Include/core_cm4.h **** #endif + 96:Drivers/CMSIS/Include/core_cm4.h **** #else + 97:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 98:Drivers/CMSIS/Include/core_cm4.h **** #endif + 99:Drivers/CMSIS/Include/core_cm4.h **** + 100:Drivers/CMSIS/Include/core_cm4.h **** #elif defined ( __GNUC__ ) + 101:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__VFP_FP__) && !defined(__SOFTFP__) + 102:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 103:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 104:Drivers/CMSIS/Include/core_cm4.h **** #else + 105:Drivers/CMSIS/Include/core_cm4.h **** #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) + 106:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 107:Drivers/CMSIS/Include/core_cm4.h **** #endif + 108:Drivers/CMSIS/Include/core_cm4.h **** #else + 109:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 110:Drivers/CMSIS/Include/core_cm4.h **** #endif + 111:Drivers/CMSIS/Include/core_cm4.h **** + 112:Drivers/CMSIS/Include/core_cm4.h **** #elif defined ( __ICCARM__ ) + 113:Drivers/CMSIS/Include/core_cm4.h **** #if defined __ARMVFP__ + 114:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 115:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 116:Drivers/CMSIS/Include/core_cm4.h **** #else + 117:Drivers/CMSIS/Include/core_cm4.h **** #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) + 118:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 119:Drivers/CMSIS/Include/core_cm4.h **** #endif + 120:Drivers/CMSIS/Include/core_cm4.h **** #else + 121:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 122:Drivers/CMSIS/Include/core_cm4.h **** #endif + 123:Drivers/CMSIS/Include/core_cm4.h **** + 124:Drivers/CMSIS/Include/core_cm4.h **** #elif defined ( __TI_ARM__ ) + 125:Drivers/CMSIS/Include/core_cm4.h **** #if defined __TI_VFP_SUPPORT__ + 126:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 127:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 128:Drivers/CMSIS/Include/core_cm4.h **** #else + 129:Drivers/CMSIS/Include/core_cm4.h **** #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) + 130:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 131:Drivers/CMSIS/Include/core_cm4.h **** #endif + 132:Drivers/CMSIS/Include/core_cm4.h **** #else + 133:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 134:Drivers/CMSIS/Include/core_cm4.h **** #endif + 135:Drivers/CMSIS/Include/core_cm4.h **** + 136:Drivers/CMSIS/Include/core_cm4.h **** #elif defined ( __TASKING__ ) + 137:Drivers/CMSIS/Include/core_cm4.h **** #if defined __FPU_VFP__ + 138:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 139:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 140:Drivers/CMSIS/Include/core_cm4.h **** #else + 141:Drivers/CMSIS/Include/core_cm4.h **** #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) + 142:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 143:Drivers/CMSIS/Include/core_cm4.h **** #endif + ARM GAS /tmp/ccVsbRnC.s page 4 + + + 144:Drivers/CMSIS/Include/core_cm4.h **** #else + 145:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 146:Drivers/CMSIS/Include/core_cm4.h **** #endif + 147:Drivers/CMSIS/Include/core_cm4.h **** + 148:Drivers/CMSIS/Include/core_cm4.h **** #elif defined ( __CSMC__ ) + 149:Drivers/CMSIS/Include/core_cm4.h **** #if ( __CSMC__ & 0x400U) + 150:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + 151:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 1U + 152:Drivers/CMSIS/Include/core_cm4.h **** #else + 153:Drivers/CMSIS/Include/core_cm4.h **** #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) + 154:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 155:Drivers/CMSIS/Include/core_cm4.h **** #endif + 156:Drivers/CMSIS/Include/core_cm4.h **** #else + 157:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_USED 0U + 158:Drivers/CMSIS/Include/core_cm4.h **** #endif + 159:Drivers/CMSIS/Include/core_cm4.h **** + 160:Drivers/CMSIS/Include/core_cm4.h **** #endif + 161:Drivers/CMSIS/Include/core_cm4.h **** + 162:Drivers/CMSIS/Include/core_cm4.h **** #include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + 163:Drivers/CMSIS/Include/core_cm4.h **** + 164:Drivers/CMSIS/Include/core_cm4.h **** + 165:Drivers/CMSIS/Include/core_cm4.h **** #ifdef __cplusplus + 166:Drivers/CMSIS/Include/core_cm4.h **** } + 167:Drivers/CMSIS/Include/core_cm4.h **** #endif + 168:Drivers/CMSIS/Include/core_cm4.h **** + 169:Drivers/CMSIS/Include/core_cm4.h **** #endif /* __CORE_CM4_H_GENERIC */ + 170:Drivers/CMSIS/Include/core_cm4.h **** + 171:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __CMSIS_GENERIC + 172:Drivers/CMSIS/Include/core_cm4.h **** + 173:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __CORE_CM4_H_DEPENDANT + 174:Drivers/CMSIS/Include/core_cm4.h **** #define __CORE_CM4_H_DEPENDANT + 175:Drivers/CMSIS/Include/core_cm4.h **** + 176:Drivers/CMSIS/Include/core_cm4.h **** #ifdef __cplusplus + 177:Drivers/CMSIS/Include/core_cm4.h **** extern "C" { + 178:Drivers/CMSIS/Include/core_cm4.h **** #endif + 179:Drivers/CMSIS/Include/core_cm4.h **** + 180:Drivers/CMSIS/Include/core_cm4.h **** /* check device defines and use defaults */ + 181:Drivers/CMSIS/Include/core_cm4.h **** #if defined __CHECK_DEVICE_DEFINES + 182:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __CM4_REV + 183:Drivers/CMSIS/Include/core_cm4.h **** #define __CM4_REV 0x0000U + 184:Drivers/CMSIS/Include/core_cm4.h **** #warning "__CM4_REV not defined in device header file; using default!" + 185:Drivers/CMSIS/Include/core_cm4.h **** #endif + 186:Drivers/CMSIS/Include/core_cm4.h **** + 187:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __FPU_PRESENT + 188:Drivers/CMSIS/Include/core_cm4.h **** #define __FPU_PRESENT 0U + 189:Drivers/CMSIS/Include/core_cm4.h **** #warning "__FPU_PRESENT not defined in device header file; using default!" + 190:Drivers/CMSIS/Include/core_cm4.h **** #endif + 191:Drivers/CMSIS/Include/core_cm4.h **** + 192:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __MPU_PRESENT + 193:Drivers/CMSIS/Include/core_cm4.h **** #define __MPU_PRESENT 0U + 194:Drivers/CMSIS/Include/core_cm4.h **** #warning "__MPU_PRESENT not defined in device header file; using default!" + 195:Drivers/CMSIS/Include/core_cm4.h **** #endif + 196:Drivers/CMSIS/Include/core_cm4.h **** + 197:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __NVIC_PRIO_BITS + 198:Drivers/CMSIS/Include/core_cm4.h **** #define __NVIC_PRIO_BITS 3U + 199:Drivers/CMSIS/Include/core_cm4.h **** #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + 200:Drivers/CMSIS/Include/core_cm4.h **** #endif + ARM GAS /tmp/ccVsbRnC.s page 5 + + + 201:Drivers/CMSIS/Include/core_cm4.h **** + 202:Drivers/CMSIS/Include/core_cm4.h **** #ifndef __Vendor_SysTickConfig + 203:Drivers/CMSIS/Include/core_cm4.h **** #define __Vendor_SysTickConfig 0U + 204:Drivers/CMSIS/Include/core_cm4.h **** #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + 205:Drivers/CMSIS/Include/core_cm4.h **** #endif + 206:Drivers/CMSIS/Include/core_cm4.h **** #endif + 207:Drivers/CMSIS/Include/core_cm4.h **** + 208:Drivers/CMSIS/Include/core_cm4.h **** /* IO definitions (access restrictions to peripheral registers) */ + 209:Drivers/CMSIS/Include/core_cm4.h **** /** + 210:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_glob_defs CMSIS Global Defines + 211:Drivers/CMSIS/Include/core_cm4.h **** + 212:Drivers/CMSIS/Include/core_cm4.h **** IO Type Qualifiers are used + 213:Drivers/CMSIS/Include/core_cm4.h **** \li to specify the access to peripheral variables. + 214:Drivers/CMSIS/Include/core_cm4.h **** \li for automatic generation of peripheral register debug information. + 215:Drivers/CMSIS/Include/core_cm4.h **** */ + 216:Drivers/CMSIS/Include/core_cm4.h **** #ifdef __cplusplus + 217:Drivers/CMSIS/Include/core_cm4.h **** #define __I volatile /*!< Defines 'read only' permissions */ + 218:Drivers/CMSIS/Include/core_cm4.h **** #else + 219:Drivers/CMSIS/Include/core_cm4.h **** #define __I volatile const /*!< Defines 'read only' permissions */ + 220:Drivers/CMSIS/Include/core_cm4.h **** #endif + 221:Drivers/CMSIS/Include/core_cm4.h **** #define __O volatile /*!< Defines 'write only' permissions */ + 222:Drivers/CMSIS/Include/core_cm4.h **** #define __IO volatile /*!< Defines 'read / write' permissions */ + 223:Drivers/CMSIS/Include/core_cm4.h **** + 224:Drivers/CMSIS/Include/core_cm4.h **** /* following defines should be used for structure members */ + 225:Drivers/CMSIS/Include/core_cm4.h **** #define __IM volatile const /*! Defines 'read only' structure member permissions */ + 226:Drivers/CMSIS/Include/core_cm4.h **** #define __OM volatile /*! Defines 'write only' structure member permissions */ + 227:Drivers/CMSIS/Include/core_cm4.h **** #define __IOM volatile /*! Defines 'read / write' structure member permissions */ + 228:Drivers/CMSIS/Include/core_cm4.h **** + 229:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group Cortex_M4 */ + 230:Drivers/CMSIS/Include/core_cm4.h **** + 231:Drivers/CMSIS/Include/core_cm4.h **** + 232:Drivers/CMSIS/Include/core_cm4.h **** + 233:Drivers/CMSIS/Include/core_cm4.h **** /******************************************************************************* + 234:Drivers/CMSIS/Include/core_cm4.h **** * Register Abstraction + 235:Drivers/CMSIS/Include/core_cm4.h **** Core Register contain: + 236:Drivers/CMSIS/Include/core_cm4.h **** - Core Register + 237:Drivers/CMSIS/Include/core_cm4.h **** - Core NVIC Register + 238:Drivers/CMSIS/Include/core_cm4.h **** - Core SCB Register + 239:Drivers/CMSIS/Include/core_cm4.h **** - Core SysTick Register + 240:Drivers/CMSIS/Include/core_cm4.h **** - Core Debug Register + 241:Drivers/CMSIS/Include/core_cm4.h **** - Core MPU Register + 242:Drivers/CMSIS/Include/core_cm4.h **** - Core FPU Register + 243:Drivers/CMSIS/Include/core_cm4.h **** ******************************************************************************/ + 244:Drivers/CMSIS/Include/core_cm4.h **** /** + 245:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_core_register Defines and Type Definitions + 246:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions and defines for Cortex-M processor based devices. + 247:Drivers/CMSIS/Include/core_cm4.h **** */ + 248:Drivers/CMSIS/Include/core_cm4.h **** + 249:Drivers/CMSIS/Include/core_cm4.h **** /** + 250:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 251:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_CORE Status and Control Registers + 252:Drivers/CMSIS/Include/core_cm4.h **** \brief Core Register type definitions. + 253:Drivers/CMSIS/Include/core_cm4.h **** @{ + 254:Drivers/CMSIS/Include/core_cm4.h **** */ + 255:Drivers/CMSIS/Include/core_cm4.h **** + 256:Drivers/CMSIS/Include/core_cm4.h **** /** + 257:Drivers/CMSIS/Include/core_cm4.h **** \brief Union type to access the Application Program Status Register (APSR). + ARM GAS /tmp/ccVsbRnC.s page 6 + + + 258:Drivers/CMSIS/Include/core_cm4.h **** */ + 259:Drivers/CMSIS/Include/core_cm4.h **** typedef union + 260:Drivers/CMSIS/Include/core_cm4.h **** { + 261:Drivers/CMSIS/Include/core_cm4.h **** struct + 262:Drivers/CMSIS/Include/core_cm4.h **** { + 263:Drivers/CMSIS/Include/core_cm4.h **** uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + 264:Drivers/CMSIS/Include/core_cm4.h **** uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + 265:Drivers/CMSIS/Include/core_cm4.h **** uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + 266:Drivers/CMSIS/Include/core_cm4.h **** uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + 267:Drivers/CMSIS/Include/core_cm4.h **** uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + 268:Drivers/CMSIS/Include/core_cm4.h **** uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + 269:Drivers/CMSIS/Include/core_cm4.h **** uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + 270:Drivers/CMSIS/Include/core_cm4.h **** uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + 271:Drivers/CMSIS/Include/core_cm4.h **** } b; /*!< Structure used for bit access */ + 272:Drivers/CMSIS/Include/core_cm4.h **** uint32_t w; /*!< Type used for word access */ + 273:Drivers/CMSIS/Include/core_cm4.h **** } APSR_Type; + 274:Drivers/CMSIS/Include/core_cm4.h **** + 275:Drivers/CMSIS/Include/core_cm4.h **** /* APSR Register Definitions */ + 276:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_N_Pos 31U /*!< APSR + 277:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR + 278:Drivers/CMSIS/Include/core_cm4.h **** + 279:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_Z_Pos 30U /*!< APSR + 280:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR + 281:Drivers/CMSIS/Include/core_cm4.h **** + 282:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_C_Pos 29U /*!< APSR + 283:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR + 284:Drivers/CMSIS/Include/core_cm4.h **** + 285:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_V_Pos 28U /*!< APSR + 286:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR + 287:Drivers/CMSIS/Include/core_cm4.h **** + 288:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_Q_Pos 27U /*!< APSR + 289:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR + 290:Drivers/CMSIS/Include/core_cm4.h **** + 291:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_GE_Pos 16U /*!< APSR + 292:Drivers/CMSIS/Include/core_cm4.h **** #define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR + 293:Drivers/CMSIS/Include/core_cm4.h **** + 294:Drivers/CMSIS/Include/core_cm4.h **** + 295:Drivers/CMSIS/Include/core_cm4.h **** /** + 296:Drivers/CMSIS/Include/core_cm4.h **** \brief Union type to access the Interrupt Program Status Register (IPSR). + 297:Drivers/CMSIS/Include/core_cm4.h **** */ + 298:Drivers/CMSIS/Include/core_cm4.h **** typedef union + 299:Drivers/CMSIS/Include/core_cm4.h **** { + 300:Drivers/CMSIS/Include/core_cm4.h **** struct + 301:Drivers/CMSIS/Include/core_cm4.h **** { + 302:Drivers/CMSIS/Include/core_cm4.h **** uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + 303:Drivers/CMSIS/Include/core_cm4.h **** uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + 304:Drivers/CMSIS/Include/core_cm4.h **** } b; /*!< Structure used for bit access */ + 305:Drivers/CMSIS/Include/core_cm4.h **** uint32_t w; /*!< Type used for word access */ + 306:Drivers/CMSIS/Include/core_cm4.h **** } IPSR_Type; + 307:Drivers/CMSIS/Include/core_cm4.h **** + 308:Drivers/CMSIS/Include/core_cm4.h **** /* IPSR Register Definitions */ + 309:Drivers/CMSIS/Include/core_cm4.h **** #define IPSR_ISR_Pos 0U /*!< IPSR + 310:Drivers/CMSIS/Include/core_cm4.h **** #define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR + 311:Drivers/CMSIS/Include/core_cm4.h **** + 312:Drivers/CMSIS/Include/core_cm4.h **** + 313:Drivers/CMSIS/Include/core_cm4.h **** /** + 314:Drivers/CMSIS/Include/core_cm4.h **** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + ARM GAS /tmp/ccVsbRnC.s page 7 + + + 315:Drivers/CMSIS/Include/core_cm4.h **** */ + 316:Drivers/CMSIS/Include/core_cm4.h **** typedef union + 317:Drivers/CMSIS/Include/core_cm4.h **** { + 318:Drivers/CMSIS/Include/core_cm4.h **** struct + 319:Drivers/CMSIS/Include/core_cm4.h **** { + 320:Drivers/CMSIS/Include/core_cm4.h **** uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + 321:Drivers/CMSIS/Include/core_cm4.h **** uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + 322:Drivers/CMSIS/Include/core_cm4.h **** uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + 323:Drivers/CMSIS/Include/core_cm4.h **** uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + 324:Drivers/CMSIS/Include/core_cm4.h **** uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + 325:Drivers/CMSIS/Include/core_cm4.h **** uint32_t T:1; /*!< bit: 24 Thumb bit */ + 326:Drivers/CMSIS/Include/core_cm4.h **** uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + 327:Drivers/CMSIS/Include/core_cm4.h **** uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + 328:Drivers/CMSIS/Include/core_cm4.h **** uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + 329:Drivers/CMSIS/Include/core_cm4.h **** uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + 330:Drivers/CMSIS/Include/core_cm4.h **** uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + 331:Drivers/CMSIS/Include/core_cm4.h **** uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + 332:Drivers/CMSIS/Include/core_cm4.h **** } b; /*!< Structure used for bit access */ + 333:Drivers/CMSIS/Include/core_cm4.h **** uint32_t w; /*!< Type used for word access */ + 334:Drivers/CMSIS/Include/core_cm4.h **** } xPSR_Type; + 335:Drivers/CMSIS/Include/core_cm4.h **** + 336:Drivers/CMSIS/Include/core_cm4.h **** /* xPSR Register Definitions */ + 337:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_N_Pos 31U /*!< xPSR + 338:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR + 339:Drivers/CMSIS/Include/core_cm4.h **** + 340:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_Z_Pos 30U /*!< xPSR + 341:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR + 342:Drivers/CMSIS/Include/core_cm4.h **** + 343:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_C_Pos 29U /*!< xPSR + 344:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR + 345:Drivers/CMSIS/Include/core_cm4.h **** + 346:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_V_Pos 28U /*!< xPSR + 347:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR + 348:Drivers/CMSIS/Include/core_cm4.h **** + 349:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_Q_Pos 27U /*!< xPSR + 350:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR + 351:Drivers/CMSIS/Include/core_cm4.h **** + 352:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_ICI_IT_2_Pos 25U /*!< xPSR + 353:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR + 354:Drivers/CMSIS/Include/core_cm4.h **** + 355:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_T_Pos 24U /*!< xPSR + 356:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR + 357:Drivers/CMSIS/Include/core_cm4.h **** + 358:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_GE_Pos 16U /*!< xPSR + 359:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR + 360:Drivers/CMSIS/Include/core_cm4.h **** + 361:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_ICI_IT_1_Pos 10U /*!< xPSR + 362:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR + 363:Drivers/CMSIS/Include/core_cm4.h **** + 364:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_ISR_Pos 0U /*!< xPSR + 365:Drivers/CMSIS/Include/core_cm4.h **** #define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR + 366:Drivers/CMSIS/Include/core_cm4.h **** + 367:Drivers/CMSIS/Include/core_cm4.h **** + 368:Drivers/CMSIS/Include/core_cm4.h **** /** + 369:Drivers/CMSIS/Include/core_cm4.h **** \brief Union type to access the Control Registers (CONTROL). + 370:Drivers/CMSIS/Include/core_cm4.h **** */ + 371:Drivers/CMSIS/Include/core_cm4.h **** typedef union + ARM GAS /tmp/ccVsbRnC.s page 8 + + + 372:Drivers/CMSIS/Include/core_cm4.h **** { + 373:Drivers/CMSIS/Include/core_cm4.h **** struct + 374:Drivers/CMSIS/Include/core_cm4.h **** { + 375:Drivers/CMSIS/Include/core_cm4.h **** uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + 376:Drivers/CMSIS/Include/core_cm4.h **** uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + 377:Drivers/CMSIS/Include/core_cm4.h **** uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + 378:Drivers/CMSIS/Include/core_cm4.h **** uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + 379:Drivers/CMSIS/Include/core_cm4.h **** } b; /*!< Structure used for bit access */ + 380:Drivers/CMSIS/Include/core_cm4.h **** uint32_t w; /*!< Type used for word access */ + 381:Drivers/CMSIS/Include/core_cm4.h **** } CONTROL_Type; + 382:Drivers/CMSIS/Include/core_cm4.h **** + 383:Drivers/CMSIS/Include/core_cm4.h **** /* CONTROL Register Definitions */ + 384:Drivers/CMSIS/Include/core_cm4.h **** #define CONTROL_FPCA_Pos 2U /*!< CONT + 385:Drivers/CMSIS/Include/core_cm4.h **** #define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONT + 386:Drivers/CMSIS/Include/core_cm4.h **** + 387:Drivers/CMSIS/Include/core_cm4.h **** #define CONTROL_SPSEL_Pos 1U /*!< CONT + 388:Drivers/CMSIS/Include/core_cm4.h **** #define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONT + 389:Drivers/CMSIS/Include/core_cm4.h **** + 390:Drivers/CMSIS/Include/core_cm4.h **** #define CONTROL_nPRIV_Pos 0U /*!< CONT + 391:Drivers/CMSIS/Include/core_cm4.h **** #define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONT + 392:Drivers/CMSIS/Include/core_cm4.h **** + 393:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_CORE */ + 394:Drivers/CMSIS/Include/core_cm4.h **** + 395:Drivers/CMSIS/Include/core_cm4.h **** + 396:Drivers/CMSIS/Include/core_cm4.h **** /** + 397:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 398:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + 399:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the NVIC Registers + 400:Drivers/CMSIS/Include/core_cm4.h **** @{ + 401:Drivers/CMSIS/Include/core_cm4.h **** */ + 402:Drivers/CMSIS/Include/core_cm4.h **** + 403:Drivers/CMSIS/Include/core_cm4.h **** /** + 404:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + 405:Drivers/CMSIS/Include/core_cm4.h **** */ + 406:Drivers/CMSIS/Include/core_cm4.h **** typedef struct + 407:Drivers/CMSIS/Include/core_cm4.h **** { + 408:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + 409:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[24U]; + 410:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register + 411:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED1[24U]; + 412:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register * + 413:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED2[24U]; + 414:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register + 415:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED3[24U]; + 416:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + 417:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED4[56U]; + 418:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bi + 419:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED5[644U]; + 420:Drivers/CMSIS/Include/core_cm4.h **** __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Regis + 421:Drivers/CMSIS/Include/core_cm4.h **** } NVIC_Type; + 422:Drivers/CMSIS/Include/core_cm4.h **** + 423:Drivers/CMSIS/Include/core_cm4.h **** /* Software Triggered Interrupt Register Definitions */ + 424:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_STIR_INTID_Pos 0U /*!< STIR: I + 425:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: I + 426:Drivers/CMSIS/Include/core_cm4.h **** + 427:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_NVIC */ + 428:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 9 + + + 429:Drivers/CMSIS/Include/core_cm4.h **** + 430:Drivers/CMSIS/Include/core_cm4.h **** /** + 431:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 432:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_SCB System Control Block (SCB) + 433:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the System Control Block Registers + 434:Drivers/CMSIS/Include/core_cm4.h **** @{ + 435:Drivers/CMSIS/Include/core_cm4.h **** */ + 436:Drivers/CMSIS/Include/core_cm4.h **** + 437:Drivers/CMSIS/Include/core_cm4.h **** /** + 438:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the System Control Block (SCB). + 439:Drivers/CMSIS/Include/core_cm4.h **** */ + 440:Drivers/CMSIS/Include/core_cm4.h **** typedef struct + 441:Drivers/CMSIS/Include/core_cm4.h **** { + 442:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + 443:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Regi + 444:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + 445:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset + 446:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + 447:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register * + 448:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registe + 449:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State + 450:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Regist + 451:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + 452:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + 453:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register + 454:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + 455:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register + 456:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + 457:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + 458:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + 459:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + 460:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Regis + 461:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[5U]; + 462:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Regis + 463:Drivers/CMSIS/Include/core_cm4.h **** } SCB_Type; + 464:Drivers/CMSIS/Include/core_cm4.h **** + 465:Drivers/CMSIS/Include/core_cm4.h **** /* SCB CPUID Register Definitions */ + 466:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB + 467:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB + 468:Drivers/CMSIS/Include/core_cm4.h **** + 469:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_VARIANT_Pos 20U /*!< SCB + 470:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB + 471:Drivers/CMSIS/Include/core_cm4.h **** + 472:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB + 473:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB + 474:Drivers/CMSIS/Include/core_cm4.h **** + 475:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_PARTNO_Pos 4U /*!< SCB + 476:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB + 477:Drivers/CMSIS/Include/core_cm4.h **** + 478:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_REVISION_Pos 0U /*!< SCB + 479:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB + 480:Drivers/CMSIS/Include/core_cm4.h **** + 481:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Interrupt Control State Register Definitions */ + 482:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB + 483:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB + 484:Drivers/CMSIS/Include/core_cm4.h **** + 485:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB + ARM GAS /tmp/ccVsbRnC.s page 10 + + + 486:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB + 487:Drivers/CMSIS/Include/core_cm4.h **** + 488:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB + 489:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB + 490:Drivers/CMSIS/Include/core_cm4.h **** + 491:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB + 492:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB + 493:Drivers/CMSIS/Include/core_cm4.h **** + 494:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB + 495:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB + 496:Drivers/CMSIS/Include/core_cm4.h **** + 497:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB + 498:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB + 499:Drivers/CMSIS/Include/core_cm4.h **** + 500:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB + 501:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB + 502:Drivers/CMSIS/Include/core_cm4.h **** + 503:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB + 504:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB + 505:Drivers/CMSIS/Include/core_cm4.h **** + 506:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB + 507:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB + 508:Drivers/CMSIS/Include/core_cm4.h **** + 509:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB + 510:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB + 511:Drivers/CMSIS/Include/core_cm4.h **** + 512:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Vector Table Offset Register Definitions */ + 513:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB + 514:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB + 515:Drivers/CMSIS/Include/core_cm4.h **** + 516:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Application Interrupt and Reset Control Register Definitions */ + 517:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB + 518:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB + 519:Drivers/CMSIS/Include/core_cm4.h **** + 520:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB + 521:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB + 522:Drivers/CMSIS/Include/core_cm4.h **** + 523:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB + 524:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB + 525:Drivers/CMSIS/Include/core_cm4.h **** + 526:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB + 527:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB + 528:Drivers/CMSIS/Include/core_cm4.h **** + 529:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB + 530:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB + 531:Drivers/CMSIS/Include/core_cm4.h **** + 532:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB + 533:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB + 534:Drivers/CMSIS/Include/core_cm4.h **** + 535:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB + 536:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB + 537:Drivers/CMSIS/Include/core_cm4.h **** + 538:Drivers/CMSIS/Include/core_cm4.h **** /* SCB System Control Register Definitions */ + 539:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB + 540:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB + 541:Drivers/CMSIS/Include/core_cm4.h **** + 542:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB + ARM GAS /tmp/ccVsbRnC.s page 11 + + + 543:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB + 544:Drivers/CMSIS/Include/core_cm4.h **** + 545:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB + 546:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB + 547:Drivers/CMSIS/Include/core_cm4.h **** + 548:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Configuration Control Register Definitions */ + 549:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_STKALIGN_Pos 9U /*!< SCB + 550:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB + 551:Drivers/CMSIS/Include/core_cm4.h **** + 552:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB + 553:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB + 554:Drivers/CMSIS/Include/core_cm4.h **** + 555:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB + 556:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB + 557:Drivers/CMSIS/Include/core_cm4.h **** + 558:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB + 559:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB + 560:Drivers/CMSIS/Include/core_cm4.h **** + 561:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB + 562:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB + 563:Drivers/CMSIS/Include/core_cm4.h **** + 564:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB + 565:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB + 566:Drivers/CMSIS/Include/core_cm4.h **** + 567:Drivers/CMSIS/Include/core_cm4.h **** /* SCB System Handler Control and State Register Definitions */ + 568:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB + 569:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB + 570:Drivers/CMSIS/Include/core_cm4.h **** + 571:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB + 572:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB + 573:Drivers/CMSIS/Include/core_cm4.h **** + 574:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB + 575:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB + 576:Drivers/CMSIS/Include/core_cm4.h **** + 577:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB + 578:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB + 579:Drivers/CMSIS/Include/core_cm4.h **** + 580:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB + 581:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB + 582:Drivers/CMSIS/Include/core_cm4.h **** + 583:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB + 584:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB + 585:Drivers/CMSIS/Include/core_cm4.h **** + 586:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB + 587:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB + 588:Drivers/CMSIS/Include/core_cm4.h **** + 589:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB + 590:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB + 591:Drivers/CMSIS/Include/core_cm4.h **** + 592:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB + 593:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB + 594:Drivers/CMSIS/Include/core_cm4.h **** + 595:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB + 596:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB + 597:Drivers/CMSIS/Include/core_cm4.h **** + 598:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB + 599:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB + ARM GAS /tmp/ccVsbRnC.s page 12 + + + 600:Drivers/CMSIS/Include/core_cm4.h **** + 601:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB + 602:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB + 603:Drivers/CMSIS/Include/core_cm4.h **** + 604:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB + 605:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB + 606:Drivers/CMSIS/Include/core_cm4.h **** + 607:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB + 608:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB + 609:Drivers/CMSIS/Include/core_cm4.h **** + 610:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Configurable Fault Status Register Definitions */ + 611:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB + 612:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB + 613:Drivers/CMSIS/Include/core_cm4.h **** + 614:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB + 615:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB + 616:Drivers/CMSIS/Include/core_cm4.h **** + 617:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB + 618:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB + 619:Drivers/CMSIS/Include/core_cm4.h **** + 620:Drivers/CMSIS/Include/core_cm4.h **** /* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ + 621:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB + 622:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB + 623:Drivers/CMSIS/Include/core_cm4.h **** + 624:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB + 625:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB + 626:Drivers/CMSIS/Include/core_cm4.h **** + 627:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB + 628:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB + 629:Drivers/CMSIS/Include/core_cm4.h **** + 630:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB + 631:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB + 632:Drivers/CMSIS/Include/core_cm4.h **** + 633:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB + 634:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB + 635:Drivers/CMSIS/Include/core_cm4.h **** + 636:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB + 637:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB + 638:Drivers/CMSIS/Include/core_cm4.h **** + 639:Drivers/CMSIS/Include/core_cm4.h **** /* BusFault Status Register (part of SCB Configurable Fault Status Register) */ + 640:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB + 641:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB + 642:Drivers/CMSIS/Include/core_cm4.h **** + 643:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB + 644:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB + 645:Drivers/CMSIS/Include/core_cm4.h **** + 646:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB + 647:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB + 648:Drivers/CMSIS/Include/core_cm4.h **** + 649:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB + 650:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB + 651:Drivers/CMSIS/Include/core_cm4.h **** + 652:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB + 653:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB + 654:Drivers/CMSIS/Include/core_cm4.h **** + 655:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB + 656:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB + ARM GAS /tmp/ccVsbRnC.s page 13 + + + 657:Drivers/CMSIS/Include/core_cm4.h **** + 658:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB + 659:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB + 660:Drivers/CMSIS/Include/core_cm4.h **** + 661:Drivers/CMSIS/Include/core_cm4.h **** /* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ + 662:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB + 663:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB + 664:Drivers/CMSIS/Include/core_cm4.h **** + 665:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB + 666:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB + 667:Drivers/CMSIS/Include/core_cm4.h **** + 668:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB + 669:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB + 670:Drivers/CMSIS/Include/core_cm4.h **** + 671:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB + 672:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB + 673:Drivers/CMSIS/Include/core_cm4.h **** + 674:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB + 675:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB + 676:Drivers/CMSIS/Include/core_cm4.h **** + 677:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB + 678:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB + 679:Drivers/CMSIS/Include/core_cm4.h **** + 680:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Hard Fault Status Register Definitions */ + 681:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB + 682:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB + 683:Drivers/CMSIS/Include/core_cm4.h **** + 684:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_HFSR_FORCED_Pos 30U /*!< SCB + 685:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB + 686:Drivers/CMSIS/Include/core_cm4.h **** + 687:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB + 688:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB + 689:Drivers/CMSIS/Include/core_cm4.h **** + 690:Drivers/CMSIS/Include/core_cm4.h **** /* SCB Debug Fault Status Register Definitions */ + 691:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB + 692:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB + 693:Drivers/CMSIS/Include/core_cm4.h **** + 694:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_VCATCH_Pos 3U /*!< SCB + 695:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB + 696:Drivers/CMSIS/Include/core_cm4.h **** + 697:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB + 698:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB + 699:Drivers/CMSIS/Include/core_cm4.h **** + 700:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_BKPT_Pos 1U /*!< SCB + 701:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB + 702:Drivers/CMSIS/Include/core_cm4.h **** + 703:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_HALTED_Pos 0U /*!< SCB + 704:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB + 705:Drivers/CMSIS/Include/core_cm4.h **** + 706:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_SCB */ + 707:Drivers/CMSIS/Include/core_cm4.h **** + 708:Drivers/CMSIS/Include/core_cm4.h **** + 709:Drivers/CMSIS/Include/core_cm4.h **** /** + 710:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 711:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + 712:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the System Control and ID Register not in the SCB + 713:Drivers/CMSIS/Include/core_cm4.h **** @{ + ARM GAS /tmp/ccVsbRnC.s page 14 + + + 714:Drivers/CMSIS/Include/core_cm4.h **** */ + 715:Drivers/CMSIS/Include/core_cm4.h **** + 716:Drivers/CMSIS/Include/core_cm4.h **** /** + 717:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the System Control and ID Register not in the SCB. + 718:Drivers/CMSIS/Include/core_cm4.h **** */ + 719:Drivers/CMSIS/Include/core_cm4.h **** typedef struct + 720:Drivers/CMSIS/Include/core_cm4.h **** { + 721:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[1U]; + 722:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Regist + 723:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + 724:Drivers/CMSIS/Include/core_cm4.h **** } SCnSCB_Type; + 725:Drivers/CMSIS/Include/core_cm4.h **** + 726:Drivers/CMSIS/Include/core_cm4.h **** /* Interrupt Controller Type Register Definitions */ + 727:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: I + 728:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: I + 729:Drivers/CMSIS/Include/core_cm4.h **** + 730:Drivers/CMSIS/Include/core_cm4.h **** /* Auxiliary Control Register Definitions */ + 731:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: + 732:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: + 733:Drivers/CMSIS/Include/core_cm4.h **** + 734:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: + 735:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: + 736:Drivers/CMSIS/Include/core_cm4.h **** + 737:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: + 738:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: + 739:Drivers/CMSIS/Include/core_cm4.h **** + 740:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: + 741:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: + 742:Drivers/CMSIS/Include/core_cm4.h **** + 743:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: + 744:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: + 745:Drivers/CMSIS/Include/core_cm4.h **** + 746:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_SCnotSCB */ + 747:Drivers/CMSIS/Include/core_cm4.h **** + 748:Drivers/CMSIS/Include/core_cm4.h **** + 749:Drivers/CMSIS/Include/core_cm4.h **** /** + 750:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 751:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_SysTick System Tick Timer (SysTick) + 752:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the System Timer Registers. + 753:Drivers/CMSIS/Include/core_cm4.h **** @{ + 754:Drivers/CMSIS/Include/core_cm4.h **** */ + 755:Drivers/CMSIS/Include/core_cm4.h **** + 756:Drivers/CMSIS/Include/core_cm4.h **** /** + 757:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the System Timer (SysTick). + 758:Drivers/CMSIS/Include/core_cm4.h **** */ + 759:Drivers/CMSIS/Include/core_cm4.h **** typedef struct + 760:Drivers/CMSIS/Include/core_cm4.h **** { + 761:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Regis + 762:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + 763:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register * + 764:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ + 765:Drivers/CMSIS/Include/core_cm4.h **** } SysTick_Type; + 766:Drivers/CMSIS/Include/core_cm4.h **** + 767:Drivers/CMSIS/Include/core_cm4.h **** /* SysTick Control / Status Register Definitions */ + 768:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysT + 769:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysT + 770:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 15 + + + 771:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysT + 772:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysT + 773:Drivers/CMSIS/Include/core_cm4.h **** + 774:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_TICKINT_Pos 1U /*!< SysT + 775:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysT + 776:Drivers/CMSIS/Include/core_cm4.h **** + 777:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_ENABLE_Pos 0U /*!< SysT + 778:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysT + 779:Drivers/CMSIS/Include/core_cm4.h **** + 780:Drivers/CMSIS/Include/core_cm4.h **** /* SysTick Reload Register Definitions */ + 781:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_LOAD_RELOAD_Pos 0U /*!< SysT + 782:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysT + 783:Drivers/CMSIS/Include/core_cm4.h **** + 784:Drivers/CMSIS/Include/core_cm4.h **** /* SysTick Current Register Definitions */ + 785:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_VAL_CURRENT_Pos 0U /*!< SysT + 786:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysT + 787:Drivers/CMSIS/Include/core_cm4.h **** + 788:Drivers/CMSIS/Include/core_cm4.h **** /* SysTick Calibration Register Definitions */ + 789:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CALIB_NOREF_Pos 31U /*!< SysT + 790:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysT + 791:Drivers/CMSIS/Include/core_cm4.h **** + 792:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CALIB_SKEW_Pos 30U /*!< SysT + 793:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysT + 794:Drivers/CMSIS/Include/core_cm4.h **** + 795:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CALIB_TENMS_Pos 0U /*!< SysT + 796:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysT + 797:Drivers/CMSIS/Include/core_cm4.h **** + 798:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_SysTick */ + 799:Drivers/CMSIS/Include/core_cm4.h **** + 800:Drivers/CMSIS/Include/core_cm4.h **** + 801:Drivers/CMSIS/Include/core_cm4.h **** /** + 802:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 803:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + 804:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + 805:Drivers/CMSIS/Include/core_cm4.h **** @{ + 806:Drivers/CMSIS/Include/core_cm4.h **** */ + 807:Drivers/CMSIS/Include/core_cm4.h **** + 808:Drivers/CMSIS/Include/core_cm4.h **** /** + 809:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + 810:Drivers/CMSIS/Include/core_cm4.h **** */ + 811:Drivers/CMSIS/Include/core_cm4.h **** typedef struct + 812:Drivers/CMSIS/Include/core_cm4.h **** { + 813:Drivers/CMSIS/Include/core_cm4.h **** __OM union + 814:Drivers/CMSIS/Include/core_cm4.h **** { + 815:Drivers/CMSIS/Include/core_cm4.h **** __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + 816:Drivers/CMSIS/Include/core_cm4.h **** __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + 817:Drivers/CMSIS/Include/core_cm4.h **** __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + 818:Drivers/CMSIS/Include/core_cm4.h **** } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + 819:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[864U]; + 820:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + 821:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED1[15U]; + 822:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + 823:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED2[15U]; + 824:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + 825:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED3[32U]; + 826:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED4[43U]; + 827:Drivers/CMSIS/Include/core_cm4.h **** __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + ARM GAS /tmp/ccVsbRnC.s page 16 + + + 828:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + 829:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED5[6U]; + 830:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Re + 831:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Re + 832:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Re + 833:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Re + 834:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Re + 835:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Re + 836:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Re + 837:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Re + 838:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Re + 839:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Re + 840:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Re + 841:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Re + 842:Drivers/CMSIS/Include/core_cm4.h **** } ITM_Type; + 843:Drivers/CMSIS/Include/core_cm4.h **** + 844:Drivers/CMSIS/Include/core_cm4.h **** /* ITM Trace Privilege Register Definitions */ + 845:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM + 846:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM + 847:Drivers/CMSIS/Include/core_cm4.h **** + 848:Drivers/CMSIS/Include/core_cm4.h **** /* ITM Trace Control Register Definitions */ + 849:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_BUSY_Pos 23U /*!< ITM + 850:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM + 851:Drivers/CMSIS/Include/core_cm4.h **** + 852:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_TraceBusID_Pos 16U /*!< ITM + 853:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM + 854:Drivers/CMSIS/Include/core_cm4.h **** + 855:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM + 856:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM + 857:Drivers/CMSIS/Include/core_cm4.h **** + 858:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_TSPrescale_Pos 8U /*!< ITM + 859:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM + 860:Drivers/CMSIS/Include/core_cm4.h **** + 861:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_SWOENA_Pos 4U /*!< ITM + 862:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM + 863:Drivers/CMSIS/Include/core_cm4.h **** + 864:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_DWTENA_Pos 3U /*!< ITM + 865:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM + 866:Drivers/CMSIS/Include/core_cm4.h **** + 867:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_SYNCENA_Pos 2U /*!< ITM + 868:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM + 869:Drivers/CMSIS/Include/core_cm4.h **** + 870:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_TSENA_Pos 1U /*!< ITM + 871:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM + 872:Drivers/CMSIS/Include/core_cm4.h **** + 873:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_ITMENA_Pos 0U /*!< ITM + 874:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM + 875:Drivers/CMSIS/Include/core_cm4.h **** + 876:Drivers/CMSIS/Include/core_cm4.h **** /* ITM Lock Status Register Definitions */ + 877:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_LSR_ByteAcc_Pos 2U /*!< ITM + 878:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM + 879:Drivers/CMSIS/Include/core_cm4.h **** + 880:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_LSR_Access_Pos 1U /*!< ITM + 881:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM + 882:Drivers/CMSIS/Include/core_cm4.h **** + 883:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_LSR_Present_Pos 0U /*!< ITM + 884:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM + ARM GAS /tmp/ccVsbRnC.s page 17 + + + 885:Drivers/CMSIS/Include/core_cm4.h **** + 886:Drivers/CMSIS/Include/core_cm4.h **** /*@}*/ /* end of group CMSIS_ITM */ + 887:Drivers/CMSIS/Include/core_cm4.h **** + 888:Drivers/CMSIS/Include/core_cm4.h **** + 889:Drivers/CMSIS/Include/core_cm4.h **** /** + 890:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register + 891:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + 892:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the Data Watchpoint and Trace (DWT) + 893:Drivers/CMSIS/Include/core_cm4.h **** @{ + 894:Drivers/CMSIS/Include/core_cm4.h **** */ + 895:Drivers/CMSIS/Include/core_cm4.h **** + 896:Drivers/CMSIS/Include/core_cm4.h **** /** + 897:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + 898:Drivers/CMSIS/Include/core_cm4.h **** */ + 899:Drivers/CMSIS/Include/core_cm4.h **** typedef struct + 900:Drivers/CMSIS/Include/core_cm4.h **** { + 901:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + 902:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + 903:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + 904:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Registe + 905:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + 906:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + 907:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Registe + 908:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register + 909:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + 910:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + 911:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + 912:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[1U]; + 913:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + 914:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + 915:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + 916:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED1[1U]; + 917:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + 918:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + 919:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + 920:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED2[1U]; + 921:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + 922:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + 923:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + 924:Drivers/CMSIS/Include/core_cm4.h **** } DWT_Type; + 925:Drivers/CMSIS/Include/core_cm4.h **** + 926:Drivers/CMSIS/Include/core_cm4.h **** /* DWT Control Register Definitions */ + 927:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTR + 928:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTR + 929:Drivers/CMSIS/Include/core_cm4.h **** + 930:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTR + 931:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTR + 932:Drivers/CMSIS/Include/core_cm4.h **** + 933:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTR + 934:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTR + 935:Drivers/CMSIS/Include/core_cm4.h **** + 936:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTR + 937:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTR + 938:Drivers/CMSIS/Include/core_cm4.h **** + 939:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTR + 940:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTR + 941:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 18 + + + 942:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTR + 943:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTR + 944:Drivers/CMSIS/Include/core_cm4.h **** + 945:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTR + 946:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTR + 947:Drivers/CMSIS/Include/core_cm4.h **** + 948:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTR + 949:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTR + 950:Drivers/CMSIS/Include/core_cm4.h **** + 951:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTR + 952:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTR + 953:Drivers/CMSIS/Include/core_cm4.h **** + 954:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTR + 955:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTR + 956:Drivers/CMSIS/Include/core_cm4.h **** + 957:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTR + 958:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTR + 959:Drivers/CMSIS/Include/core_cm4.h **** + 960:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTR + 961:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTR + 962:Drivers/CMSIS/Include/core_cm4.h **** + 963:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTR + 964:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTR + 965:Drivers/CMSIS/Include/core_cm4.h **** + 966:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTR + 967:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTR + 968:Drivers/CMSIS/Include/core_cm4.h **** + 969:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTR + 970:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTR + 971:Drivers/CMSIS/Include/core_cm4.h **** + 972:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTR + 973:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTR + 974:Drivers/CMSIS/Include/core_cm4.h **** + 975:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTR + 976:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTR + 977:Drivers/CMSIS/Include/core_cm4.h **** + 978:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTR + 979:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTR + 980:Drivers/CMSIS/Include/core_cm4.h **** + 981:Drivers/CMSIS/Include/core_cm4.h **** /* DWT CPI Count Register Definitions */ + 982:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPI + 983:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPI + 984:Drivers/CMSIS/Include/core_cm4.h **** + 985:Drivers/CMSIS/Include/core_cm4.h **** /* DWT Exception Overhead Count Register Definitions */ + 986:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXC + 987:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXC + 988:Drivers/CMSIS/Include/core_cm4.h **** + 989:Drivers/CMSIS/Include/core_cm4.h **** /* DWT Sleep Count Register Definitions */ + 990:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLE + 991:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLE + 992:Drivers/CMSIS/Include/core_cm4.h **** + 993:Drivers/CMSIS/Include/core_cm4.h **** /* DWT LSU Count Register Definitions */ + 994:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSU + 995:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSU + 996:Drivers/CMSIS/Include/core_cm4.h **** + 997:Drivers/CMSIS/Include/core_cm4.h **** /* DWT Folded-instruction Count Register Definitions */ + 998:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOL + ARM GAS /tmp/ccVsbRnC.s page 19 + + + 999:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOL +1000:Drivers/CMSIS/Include/core_cm4.h **** +1001:Drivers/CMSIS/Include/core_cm4.h **** /* DWT Comparator Mask Register Definitions */ +1002:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_MASK_MASK_Pos 0U /*!< DWT MAS +1003:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MAS +1004:Drivers/CMSIS/Include/core_cm4.h **** +1005:Drivers/CMSIS/Include/core_cm4.h **** /* DWT Comparator Function Register Definitions */ +1006:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUN +1007:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUN +1008:Drivers/CMSIS/Include/core_cm4.h **** +1009:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUN +1010:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUN +1011:Drivers/CMSIS/Include/core_cm4.h **** +1012:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUN +1013:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUN +1014:Drivers/CMSIS/Include/core_cm4.h **** +1015:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUN +1016:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUN +1017:Drivers/CMSIS/Include/core_cm4.h **** +1018:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUN +1019:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUN +1020:Drivers/CMSIS/Include/core_cm4.h **** +1021:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUN +1022:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUN +1023:Drivers/CMSIS/Include/core_cm4.h **** +1024:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUN +1025:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUN +1026:Drivers/CMSIS/Include/core_cm4.h **** +1027:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUN +1028:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUN +1029:Drivers/CMSIS/Include/core_cm4.h **** +1030:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUN +1031:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUN +1032:Drivers/CMSIS/Include/core_cm4.h **** +1033:Drivers/CMSIS/Include/core_cm4.h **** /*@}*/ /* end of group CMSIS_DWT */ +1034:Drivers/CMSIS/Include/core_cm4.h **** +1035:Drivers/CMSIS/Include/core_cm4.h **** +1036:Drivers/CMSIS/Include/core_cm4.h **** /** +1037:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register +1038:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_TPI Trace Port Interface (TPI) +1039:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the Trace Port Interface (TPI) +1040:Drivers/CMSIS/Include/core_cm4.h **** @{ +1041:Drivers/CMSIS/Include/core_cm4.h **** */ +1042:Drivers/CMSIS/Include/core_cm4.h **** +1043:Drivers/CMSIS/Include/core_cm4.h **** /** +1044:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Trace Port Interface Register (TPI). +1045:Drivers/CMSIS/Include/core_cm4.h **** */ +1046:Drivers/CMSIS/Include/core_cm4.h **** typedef struct +1047:Drivers/CMSIS/Include/core_cm4.h **** { +1048:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Reg +1049:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Regis +1050:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[2U]; +1051:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Reg +1052:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED1[55U]; +1053:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register * +1054:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED2[131U]; +1055:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Regis + ARM GAS /tmp/ccVsbRnC.s page 20 + + +1056:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Regi +1057:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counte +1058:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED3[759U]; +1059:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ +1060:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ +1061:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ +1062:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED4[1U]; +1063:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ +1064:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ +1065:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ +1066:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED5[39U]; +1067:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ +1068:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ +1069:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED7[8U]; +1070:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ +1071:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +1072:Drivers/CMSIS/Include/core_cm4.h **** } TPI_Type; +1073:Drivers/CMSIS/Include/core_cm4.h **** +1074:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Asynchronous Clock Prescaler Register Definitions */ +1075:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACP +1076:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACP +1077:Drivers/CMSIS/Include/core_cm4.h **** +1078:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Selected Pin Protocol Register Definitions */ +1079:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPP +1080:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPP +1081:Drivers/CMSIS/Include/core_cm4.h **** +1082:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Formatter and Flush Status Register Definitions */ +1083:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFS +1084:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFS +1085:Drivers/CMSIS/Include/core_cm4.h **** +1086:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFS +1087:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFS +1088:Drivers/CMSIS/Include/core_cm4.h **** +1089:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFS +1090:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFS +1091:Drivers/CMSIS/Include/core_cm4.h **** +1092:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFS +1093:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFS +1094:Drivers/CMSIS/Include/core_cm4.h **** +1095:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Formatter and Flush Control Register Definitions */ +1096:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFC +1097:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFC +1098:Drivers/CMSIS/Include/core_cm4.h **** +1099:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFC +1100:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFC +1101:Drivers/CMSIS/Include/core_cm4.h **** +1102:Drivers/CMSIS/Include/core_cm4.h **** /* TPI TRIGGER Register Definitions */ +1103:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRI +1104:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRI +1105:Drivers/CMSIS/Include/core_cm4.h **** +1106:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Integration ETM Data Register Definitions (FIFO0) */ +1107:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIF +1108:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIF +1109:Drivers/CMSIS/Include/core_cm4.h **** +1110:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIF +1111:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIF +1112:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 21 + + +1113:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIF +1114:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIF +1115:Drivers/CMSIS/Include/core_cm4.h **** +1116:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIF +1117:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIF +1118:Drivers/CMSIS/Include/core_cm4.h **** +1119:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIF +1120:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIF +1121:Drivers/CMSIS/Include/core_cm4.h **** +1122:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIF +1123:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIF +1124:Drivers/CMSIS/Include/core_cm4.h **** +1125:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIF +1126:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIF +1127:Drivers/CMSIS/Include/core_cm4.h **** +1128:Drivers/CMSIS/Include/core_cm4.h **** /* TPI ITATBCTR2 Register Definitions */ +1129:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITA +1130:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITA +1131:Drivers/CMSIS/Include/core_cm4.h **** +1132:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITA +1133:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITA +1134:Drivers/CMSIS/Include/core_cm4.h **** +1135:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Integration ITM Data Register Definitions (FIFO1) */ +1136:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIF +1137:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIF +1138:Drivers/CMSIS/Include/core_cm4.h **** +1139:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIF +1140:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIF +1141:Drivers/CMSIS/Include/core_cm4.h **** +1142:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIF +1143:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIF +1144:Drivers/CMSIS/Include/core_cm4.h **** +1145:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIF +1146:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIF +1147:Drivers/CMSIS/Include/core_cm4.h **** +1148:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIF +1149:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIF +1150:Drivers/CMSIS/Include/core_cm4.h **** +1151:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIF +1152:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIF +1153:Drivers/CMSIS/Include/core_cm4.h **** +1154:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIF +1155:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIF +1156:Drivers/CMSIS/Include/core_cm4.h **** +1157:Drivers/CMSIS/Include/core_cm4.h **** /* TPI ITATBCTR0 Register Definitions */ +1158:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITA +1159:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITA +1160:Drivers/CMSIS/Include/core_cm4.h **** +1161:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITA +1162:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITA +1163:Drivers/CMSIS/Include/core_cm4.h **** +1164:Drivers/CMSIS/Include/core_cm4.h **** /* TPI Integration Mode Control Register Definitions */ +1165:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITC +1166:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITC +1167:Drivers/CMSIS/Include/core_cm4.h **** +1168:Drivers/CMSIS/Include/core_cm4.h **** /* TPI DEVID Register Definitions */ +1169:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEV + ARM GAS /tmp/ccVsbRnC.s page 22 + + +1170:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEV +1171:Drivers/CMSIS/Include/core_cm4.h **** +1172:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEV +1173:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEV +1174:Drivers/CMSIS/Include/core_cm4.h **** +1175:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEV +1176:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEV +1177:Drivers/CMSIS/Include/core_cm4.h **** +1178:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEV +1179:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEV +1180:Drivers/CMSIS/Include/core_cm4.h **** +1181:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEV +1182:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEV +1183:Drivers/CMSIS/Include/core_cm4.h **** +1184:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEV +1185:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEV +1186:Drivers/CMSIS/Include/core_cm4.h **** +1187:Drivers/CMSIS/Include/core_cm4.h **** /* TPI DEVTYPE Register Definitions */ +1188:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEV +1189:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEV +1190:Drivers/CMSIS/Include/core_cm4.h **** +1191:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEV +1192:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEV +1193:Drivers/CMSIS/Include/core_cm4.h **** +1194:Drivers/CMSIS/Include/core_cm4.h **** /*@}*/ /* end of group CMSIS_TPI */ +1195:Drivers/CMSIS/Include/core_cm4.h **** +1196:Drivers/CMSIS/Include/core_cm4.h **** +1197:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +1198:Drivers/CMSIS/Include/core_cm4.h **** /** +1199:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register +1200:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_MPU Memory Protection Unit (MPU) +1201:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the Memory Protection Unit (MPU) +1202:Drivers/CMSIS/Include/core_cm4.h **** @{ +1203:Drivers/CMSIS/Include/core_cm4.h **** */ +1204:Drivers/CMSIS/Include/core_cm4.h **** +1205:Drivers/CMSIS/Include/core_cm4.h **** /** +1206:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Memory Protection Unit (MPU). +1207:Drivers/CMSIS/Include/core_cm4.h **** */ +1208:Drivers/CMSIS/Include/core_cm4.h **** typedef struct +1209:Drivers/CMSIS/Include/core_cm4.h **** { +1210:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ +1211:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ +1212:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ +1213:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register +1214:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Re +1215:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address +1216:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and +1217:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address +1218:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and +1219:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address +1220:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and +1221:Drivers/CMSIS/Include/core_cm4.h **** } MPU_Type; +1222:Drivers/CMSIS/Include/core_cm4.h **** +1223:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_RALIASES 4U +1224:Drivers/CMSIS/Include/core_cm4.h **** +1225:Drivers/CMSIS/Include/core_cm4.h **** /* MPU Type Register Definitions */ +1226:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_IREGION_Pos 16U /*!< MPU + ARM GAS /tmp/ccVsbRnC.s page 23 + + +1227:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU +1228:Drivers/CMSIS/Include/core_cm4.h **** +1229:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_DREGION_Pos 8U /*!< MPU +1230:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU +1231:Drivers/CMSIS/Include/core_cm4.h **** +1232:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU +1233:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU +1234:Drivers/CMSIS/Include/core_cm4.h **** +1235:Drivers/CMSIS/Include/core_cm4.h **** /* MPU Control Register Definitions */ +1236:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU +1237:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU +1238:Drivers/CMSIS/Include/core_cm4.h **** +1239:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU +1240:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU +1241:Drivers/CMSIS/Include/core_cm4.h **** +1242:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_CTRL_ENABLE_Pos 0U /*!< MPU +1243:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU +1244:Drivers/CMSIS/Include/core_cm4.h **** +1245:Drivers/CMSIS/Include/core_cm4.h **** /* MPU Region Number Register Definitions */ +1246:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RNR_REGION_Pos 0U /*!< MPU +1247:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU +1248:Drivers/CMSIS/Include/core_cm4.h **** +1249:Drivers/CMSIS/Include/core_cm4.h **** /* MPU Region Base Address Register Definitions */ +1250:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RBAR_ADDR_Pos 5U /*!< MPU +1251:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU +1252:Drivers/CMSIS/Include/core_cm4.h **** +1253:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RBAR_VALID_Pos 4U /*!< MPU +1254:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU +1255:Drivers/CMSIS/Include/core_cm4.h **** +1256:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RBAR_REGION_Pos 0U /*!< MPU +1257:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU +1258:Drivers/CMSIS/Include/core_cm4.h **** +1259:Drivers/CMSIS/Include/core_cm4.h **** /* MPU Region Attribute and Size Register Definitions */ +1260:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_ATTRS_Pos 16U /*!< MPU +1261:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU +1262:Drivers/CMSIS/Include/core_cm4.h **** +1263:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_XN_Pos 28U /*!< MPU +1264:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU +1265:Drivers/CMSIS/Include/core_cm4.h **** +1266:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_AP_Pos 24U /*!< MPU +1267:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU +1268:Drivers/CMSIS/Include/core_cm4.h **** +1269:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_TEX_Pos 19U /*!< MPU +1270:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU +1271:Drivers/CMSIS/Include/core_cm4.h **** +1272:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_S_Pos 18U /*!< MPU +1273:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU +1274:Drivers/CMSIS/Include/core_cm4.h **** +1275:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_C_Pos 17U /*!< MPU +1276:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU +1277:Drivers/CMSIS/Include/core_cm4.h **** +1278:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_B_Pos 16U /*!< MPU +1279:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU +1280:Drivers/CMSIS/Include/core_cm4.h **** +1281:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_SRD_Pos 8U /*!< MPU +1282:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU +1283:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 24 + + +1284:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_SIZE_Pos 1U /*!< MPU +1285:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU +1286:Drivers/CMSIS/Include/core_cm4.h **** +1287:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_ENABLE_Pos 0U /*!< MPU +1288:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU +1289:Drivers/CMSIS/Include/core_cm4.h **** +1290:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_MPU */ +1291:Drivers/CMSIS/Include/core_cm4.h **** #endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ +1292:Drivers/CMSIS/Include/core_cm4.h **** +1293:Drivers/CMSIS/Include/core_cm4.h **** +1294:Drivers/CMSIS/Include/core_cm4.h **** /** +1295:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register +1296:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_FPU Floating Point Unit (FPU) +1297:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the Floating Point Unit (FPU) +1298:Drivers/CMSIS/Include/core_cm4.h **** @{ +1299:Drivers/CMSIS/Include/core_cm4.h **** */ +1300:Drivers/CMSIS/Include/core_cm4.h **** +1301:Drivers/CMSIS/Include/core_cm4.h **** /** +1302:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Floating Point Unit (FPU). +1303:Drivers/CMSIS/Include/core_cm4.h **** */ +1304:Drivers/CMSIS/Include/core_cm4.h **** typedef struct +1305:Drivers/CMSIS/Include/core_cm4.h **** { +1306:Drivers/CMSIS/Include/core_cm4.h **** uint32_t RESERVED0[1U]; +1307:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control R +1308:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address R +1309:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Co +1310:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 +1311:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 +1312:Drivers/CMSIS/Include/core_cm4.h **** __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 +1313:Drivers/CMSIS/Include/core_cm4.h **** } FPU_Type; +1314:Drivers/CMSIS/Include/core_cm4.h **** +1315:Drivers/CMSIS/Include/core_cm4.h **** /* Floating-Point Context Control Register Definitions */ +1316:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCC +1317:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCC +1318:Drivers/CMSIS/Include/core_cm4.h **** +1319:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCC +1320:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCC +1321:Drivers/CMSIS/Include/core_cm4.h **** +1322:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCC +1323:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCC +1324:Drivers/CMSIS/Include/core_cm4.h **** +1325:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCC +1326:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCC +1327:Drivers/CMSIS/Include/core_cm4.h **** +1328:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCC +1329:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCC +1330:Drivers/CMSIS/Include/core_cm4.h **** +1331:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCC +1332:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCC +1333:Drivers/CMSIS/Include/core_cm4.h **** +1334:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_THREAD_Pos 3U /*!< FPCC +1335:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCC +1336:Drivers/CMSIS/Include/core_cm4.h **** +1337:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_USER_Pos 1U /*!< FPCC +1338:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCC +1339:Drivers/CMSIS/Include/core_cm4.h **** +1340:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCC + ARM GAS /tmp/ccVsbRnC.s page 25 + + +1341:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCC +1342:Drivers/CMSIS/Include/core_cm4.h **** +1343:Drivers/CMSIS/Include/core_cm4.h **** /* Floating-Point Context Address Register Definitions */ +1344:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCA +1345:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCA +1346:Drivers/CMSIS/Include/core_cm4.h **** +1347:Drivers/CMSIS/Include/core_cm4.h **** /* Floating-Point Default Status Control Register Definitions */ +1348:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_AHP_Pos 26U /*!< FPDS +1349:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDS +1350:Drivers/CMSIS/Include/core_cm4.h **** +1351:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_DN_Pos 25U /*!< FPDS +1352:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDS +1353:Drivers/CMSIS/Include/core_cm4.h **** +1354:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_FZ_Pos 24U /*!< FPDS +1355:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDS +1356:Drivers/CMSIS/Include/core_cm4.h **** +1357:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_RMode_Pos 22U /*!< FPDS +1358:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDS +1359:Drivers/CMSIS/Include/core_cm4.h **** +1360:Drivers/CMSIS/Include/core_cm4.h **** /* Media and FP Feature Register 0 Definitions */ +1361:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR +1362:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR +1363:Drivers/CMSIS/Include/core_cm4.h **** +1364:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR +1365:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR +1366:Drivers/CMSIS/Include/core_cm4.h **** +1367:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR +1368:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR +1369:Drivers/CMSIS/Include/core_cm4.h **** +1370:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Divide_Pos 16U /*!< MVFR +1371:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR +1372:Drivers/CMSIS/Include/core_cm4.h **** +1373:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR +1374:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR +1375:Drivers/CMSIS/Include/core_cm4.h **** +1376:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR +1377:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR +1378:Drivers/CMSIS/Include/core_cm4.h **** +1379:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR +1380:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR +1381:Drivers/CMSIS/Include/core_cm4.h **** +1382:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR +1383:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR +1384:Drivers/CMSIS/Include/core_cm4.h **** +1385:Drivers/CMSIS/Include/core_cm4.h **** /* Media and FP Feature Register 1 Definitions */ +1386:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR +1387:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR +1388:Drivers/CMSIS/Include/core_cm4.h **** +1389:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR +1390:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR +1391:Drivers/CMSIS/Include/core_cm4.h **** +1392:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR +1393:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR +1394:Drivers/CMSIS/Include/core_cm4.h **** +1395:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR +1396:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR +1397:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 26 + + +1398:Drivers/CMSIS/Include/core_cm4.h **** /* Media and FP Feature Register 2 Definitions */ +1399:Drivers/CMSIS/Include/core_cm4.h **** +1400:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR2_VFP_Misc_Pos 4U /*!< MVFR +1401:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos) /*!< MVFR +1402:Drivers/CMSIS/Include/core_cm4.h **** +1403:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_FPU */ +1404:Drivers/CMSIS/Include/core_cm4.h **** +1405:Drivers/CMSIS/Include/core_cm4.h **** +1406:Drivers/CMSIS/Include/core_cm4.h **** /** +1407:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register +1408:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) +1409:Drivers/CMSIS/Include/core_cm4.h **** \brief Type definitions for the Core Debug Registers +1410:Drivers/CMSIS/Include/core_cm4.h **** @{ +1411:Drivers/CMSIS/Include/core_cm4.h **** */ +1412:Drivers/CMSIS/Include/core_cm4.h **** +1413:Drivers/CMSIS/Include/core_cm4.h **** /** +1414:Drivers/CMSIS/Include/core_cm4.h **** \brief Structure type to access the Core Debug Register (CoreDebug). +1415:Drivers/CMSIS/Include/core_cm4.h **** */ +1416:Drivers/CMSIS/Include/core_cm4.h **** typedef struct +1417:Drivers/CMSIS/Include/core_cm4.h **** { +1418:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status +1419:Drivers/CMSIS/Include/core_cm4.h **** __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Reg +1420:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Registe +1421:Drivers/CMSIS/Include/core_cm4.h **** __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Cont +1422:Drivers/CMSIS/Include/core_cm4.h **** } CoreDebug_Type; +1423:Drivers/CMSIS/Include/core_cm4.h **** +1424:Drivers/CMSIS/Include/core_cm4.h **** /* Debug Halting Control and Status Register Definitions */ +1425:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< Core +1426:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< Core +1427:Drivers/CMSIS/Include/core_cm4.h **** +1428:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< Core +1429:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< Core +1430:Drivers/CMSIS/Include/core_cm4.h **** +1431:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< Core +1432:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< Core +1433:Drivers/CMSIS/Include/core_cm4.h **** +1434:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< Core +1435:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< Core +1436:Drivers/CMSIS/Include/core_cm4.h **** +1437:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< Core +1438:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< Core +1439:Drivers/CMSIS/Include/core_cm4.h **** +1440:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< Core +1441:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< Core +1442:Drivers/CMSIS/Include/core_cm4.h **** +1443:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< Core +1444:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< Core +1445:Drivers/CMSIS/Include/core_cm4.h **** +1446:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< Core +1447:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< Core +1448:Drivers/CMSIS/Include/core_cm4.h **** +1449:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< Core +1450:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< Core +1451:Drivers/CMSIS/Include/core_cm4.h **** +1452:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< Core +1453:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< Core +1454:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 27 + + +1455:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< Core +1456:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< Core +1457:Drivers/CMSIS/Include/core_cm4.h **** +1458:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< Core +1459:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< Core +1460:Drivers/CMSIS/Include/core_cm4.h **** +1461:Drivers/CMSIS/Include/core_cm4.h **** /* Debug Core Register Selector Register Definitions */ +1462:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< Core +1463:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< Core +1464:Drivers/CMSIS/Include/core_cm4.h **** +1465:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< Core +1466:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< Core +1467:Drivers/CMSIS/Include/core_cm4.h **** +1468:Drivers/CMSIS/Include/core_cm4.h **** /* Debug Exception and Monitor Control Register Definitions */ +1469:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< Core +1470:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< Core +1471:Drivers/CMSIS/Include/core_cm4.h **** +1472:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< Core +1473:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< Core +1474:Drivers/CMSIS/Include/core_cm4.h **** +1475:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< Core +1476:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< Core +1477:Drivers/CMSIS/Include/core_cm4.h **** +1478:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< Core +1479:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< Core +1480:Drivers/CMSIS/Include/core_cm4.h **** +1481:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< Core +1482:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< Core +1483:Drivers/CMSIS/Include/core_cm4.h **** +1484:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< Core +1485:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< Core +1486:Drivers/CMSIS/Include/core_cm4.h **** +1487:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< Core +1488:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< Core +1489:Drivers/CMSIS/Include/core_cm4.h **** +1490:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< Core +1491:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< Core +1492:Drivers/CMSIS/Include/core_cm4.h **** +1493:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< Core +1494:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< Core +1495:Drivers/CMSIS/Include/core_cm4.h **** +1496:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< Core +1497:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< Core +1498:Drivers/CMSIS/Include/core_cm4.h **** +1499:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< Core +1500:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< Core +1501:Drivers/CMSIS/Include/core_cm4.h **** +1502:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< Core +1503:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< Core +1504:Drivers/CMSIS/Include/core_cm4.h **** +1505:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< Core +1506:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< Core +1507:Drivers/CMSIS/Include/core_cm4.h **** +1508:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_CoreDebug */ +1509:Drivers/CMSIS/Include/core_cm4.h **** +1510:Drivers/CMSIS/Include/core_cm4.h **** +1511:Drivers/CMSIS/Include/core_cm4.h **** /** + ARM GAS /tmp/ccVsbRnC.s page 28 + + +1512:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register +1513:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_core_bitfield Core register bit field macros +1514:Drivers/CMSIS/Include/core_cm4.h **** \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). +1515:Drivers/CMSIS/Include/core_cm4.h **** @{ +1516:Drivers/CMSIS/Include/core_cm4.h **** */ +1517:Drivers/CMSIS/Include/core_cm4.h **** +1518:Drivers/CMSIS/Include/core_cm4.h **** /** +1519:Drivers/CMSIS/Include/core_cm4.h **** \brief Mask and shift a bit field value for use in a register bit range. +1520:Drivers/CMSIS/Include/core_cm4.h **** \param[in] field Name of the register bit field. +1521:Drivers/CMSIS/Include/core_cm4.h **** \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. +1522:Drivers/CMSIS/Include/core_cm4.h **** \return Masked and shifted value. +1523:Drivers/CMSIS/Include/core_cm4.h **** */ +1524:Drivers/CMSIS/Include/core_cm4.h **** #define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) +1525:Drivers/CMSIS/Include/core_cm4.h **** +1526:Drivers/CMSIS/Include/core_cm4.h **** /** +1527:Drivers/CMSIS/Include/core_cm4.h **** \brief Mask and shift a register value to extract a bit filed value. +1528:Drivers/CMSIS/Include/core_cm4.h **** \param[in] field Name of the register bit field. +1529:Drivers/CMSIS/Include/core_cm4.h **** \param[in] value Value of register. This parameter is interpreted as an uint32_t type. +1530:Drivers/CMSIS/Include/core_cm4.h **** \return Masked and shifted bit field value. +1531:Drivers/CMSIS/Include/core_cm4.h **** */ +1532:Drivers/CMSIS/Include/core_cm4.h **** #define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) +1533:Drivers/CMSIS/Include/core_cm4.h **** +1534:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of group CMSIS_core_bitfield */ +1535:Drivers/CMSIS/Include/core_cm4.h **** +1536:Drivers/CMSIS/Include/core_cm4.h **** +1537:Drivers/CMSIS/Include/core_cm4.h **** /** +1538:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_core_register +1539:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_core_base Core Definitions +1540:Drivers/CMSIS/Include/core_cm4.h **** \brief Definitions for base addresses, unions, and structures. +1541:Drivers/CMSIS/Include/core_cm4.h **** @{ +1542:Drivers/CMSIS/Include/core_cm4.h **** */ +1543:Drivers/CMSIS/Include/core_cm4.h **** +1544:Drivers/CMSIS/Include/core_cm4.h **** /* Memory mapping of Core Hardware */ +1545:Drivers/CMSIS/Include/core_cm4.h **** #define SCS_BASE (0xE000E000UL) /*!< System Control Space Bas +1546:Drivers/CMSIS/Include/core_cm4.h **** #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +1547:Drivers/CMSIS/Include/core_cm4.h **** #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +1548:Drivers/CMSIS/Include/core_cm4.h **** #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +1549:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address +1550:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +1551:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +1552:Drivers/CMSIS/Include/core_cm4.h **** #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Bas +1553:Drivers/CMSIS/Include/core_cm4.h **** +1554:Drivers/CMSIS/Include/core_cm4.h **** #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register +1555:Drivers/CMSIS/Include/core_cm4.h **** #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct +1556:Drivers/CMSIS/Include/core_cm4.h **** #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration st +1557:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struc +1558:Drivers/CMSIS/Include/core_cm4.h **** #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct +1559:Drivers/CMSIS/Include/core_cm4.h **** #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct +1560:Drivers/CMSIS/Include/core_cm4.h **** #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct +1561:Drivers/CMSIS/Include/core_cm4.h **** #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration +1562:Drivers/CMSIS/Include/core_cm4.h **** +1563:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +1564:Drivers/CMSIS/Include/core_cm4.h **** #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit * +1565:Drivers/CMSIS/Include/core_cm4.h **** #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit * +1566:Drivers/CMSIS/Include/core_cm4.h **** #endif +1567:Drivers/CMSIS/Include/core_cm4.h **** +1568:Drivers/CMSIS/Include/core_cm4.h **** #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + ARM GAS /tmp/ccVsbRnC.s page 29 + + +1569:Drivers/CMSIS/Include/core_cm4.h **** #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ +1570:Drivers/CMSIS/Include/core_cm4.h **** +1571:Drivers/CMSIS/Include/core_cm4.h **** /*@} */ +1572:Drivers/CMSIS/Include/core_cm4.h **** +1573:Drivers/CMSIS/Include/core_cm4.h **** +1574:Drivers/CMSIS/Include/core_cm4.h **** +1575:Drivers/CMSIS/Include/core_cm4.h **** /******************************************************************************* +1576:Drivers/CMSIS/Include/core_cm4.h **** * Hardware Abstraction Layer +1577:Drivers/CMSIS/Include/core_cm4.h **** Core Function Interface contains: +1578:Drivers/CMSIS/Include/core_cm4.h **** - Core NVIC Functions +1579:Drivers/CMSIS/Include/core_cm4.h **** - Core SysTick Functions +1580:Drivers/CMSIS/Include/core_cm4.h **** - Core Debug Functions +1581:Drivers/CMSIS/Include/core_cm4.h **** - Core Register Access Functions +1582:Drivers/CMSIS/Include/core_cm4.h **** ******************************************************************************/ +1583:Drivers/CMSIS/Include/core_cm4.h **** /** +1584:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +1585:Drivers/CMSIS/Include/core_cm4.h **** */ +1586:Drivers/CMSIS/Include/core_cm4.h **** +1587:Drivers/CMSIS/Include/core_cm4.h **** +1588:Drivers/CMSIS/Include/core_cm4.h **** +1589:Drivers/CMSIS/Include/core_cm4.h **** /* ########################## NVIC functions #################################### */ +1590:Drivers/CMSIS/Include/core_cm4.h **** /** +1591:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_Core_FunctionInterface +1592:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_Core_NVICFunctions NVIC Functions +1593:Drivers/CMSIS/Include/core_cm4.h **** \brief Functions that manage interrupts and exceptions via the NVIC. +1594:Drivers/CMSIS/Include/core_cm4.h **** @{ +1595:Drivers/CMSIS/Include/core_cm4.h **** */ +1596:Drivers/CMSIS/Include/core_cm4.h **** +1597:Drivers/CMSIS/Include/core_cm4.h **** #ifdef CMSIS_NVIC_VIRTUAL +1598:Drivers/CMSIS/Include/core_cm4.h **** #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE +1599:Drivers/CMSIS/Include/core_cm4.h **** #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" +1600:Drivers/CMSIS/Include/core_cm4.h **** #endif +1601:Drivers/CMSIS/Include/core_cm4.h **** #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +1602:Drivers/CMSIS/Include/core_cm4.h **** #else +1603:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping +1604:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping +1605:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_EnableIRQ __NVIC_EnableIRQ +1606:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ +1607:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_DisableIRQ __NVIC_DisableIRQ +1608:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ +1609:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ +1610:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +1611:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_GetActive __NVIC_GetActive +1612:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_SetPriority __NVIC_SetPriority +1613:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_GetPriority __NVIC_GetPriority +1614:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_SystemReset __NVIC_SystemReset +1615:Drivers/CMSIS/Include/core_cm4.h **** #endif /* CMSIS_NVIC_VIRTUAL */ +1616:Drivers/CMSIS/Include/core_cm4.h **** +1617:Drivers/CMSIS/Include/core_cm4.h **** #ifdef CMSIS_VECTAB_VIRTUAL +1618:Drivers/CMSIS/Include/core_cm4.h **** #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE +1619:Drivers/CMSIS/Include/core_cm4.h **** #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" +1620:Drivers/CMSIS/Include/core_cm4.h **** #endif +1621:Drivers/CMSIS/Include/core_cm4.h **** #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +1622:Drivers/CMSIS/Include/core_cm4.h **** #else +1623:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_SetVector __NVIC_SetVector +1624:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_GetVector __NVIC_GetVector +1625:Drivers/CMSIS/Include/core_cm4.h **** #endif /* (CMSIS_VECTAB_VIRTUAL) */ + ARM GAS /tmp/ccVsbRnC.s page 30 + + +1626:Drivers/CMSIS/Include/core_cm4.h **** +1627:Drivers/CMSIS/Include/core_cm4.h **** #define NVIC_USER_IRQ_OFFSET 16 +1628:Drivers/CMSIS/Include/core_cm4.h **** +1629:Drivers/CMSIS/Include/core_cm4.h **** +1630:Drivers/CMSIS/Include/core_cm4.h **** /* The following EXC_RETURN values are saved the LR on exception entry */ +1631:Drivers/CMSIS/Include/core_cm4.h **** #define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after ret +1632:Drivers/CMSIS/Include/core_cm4.h **** #define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after retu +1633:Drivers/CMSIS/Include/core_cm4.h **** #define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after retu +1634:Drivers/CMSIS/Include/core_cm4.h **** #define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after ret +1635:Drivers/CMSIS/Include/core_cm4.h **** #define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after retu +1636:Drivers/CMSIS/Include/core_cm4.h **** #define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after retu +1637:Drivers/CMSIS/Include/core_cm4.h **** +1638:Drivers/CMSIS/Include/core_cm4.h **** +1639:Drivers/CMSIS/Include/core_cm4.h **** /** +1640:Drivers/CMSIS/Include/core_cm4.h **** \brief Set Priority Grouping +1641:Drivers/CMSIS/Include/core_cm4.h **** \details Sets the priority grouping field using the required unlock sequence. +1642:Drivers/CMSIS/Include/core_cm4.h **** The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. +1643:Drivers/CMSIS/Include/core_cm4.h **** Only values from 0..7 are used. +1644:Drivers/CMSIS/Include/core_cm4.h **** In case of a conflict between priority grouping and available +1645:Drivers/CMSIS/Include/core_cm4.h **** priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. +1646:Drivers/CMSIS/Include/core_cm4.h **** \param [in] PriorityGroup Priority grouping field. +1647:Drivers/CMSIS/Include/core_cm4.h **** */ +1648:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +1649:Drivers/CMSIS/Include/core_cm4.h **** { +1650:Drivers/CMSIS/Include/core_cm4.h **** uint32_t reg_value; +1651:Drivers/CMSIS/Include/core_cm4.h **** uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 a +1652:Drivers/CMSIS/Include/core_cm4.h **** +1653:Drivers/CMSIS/Include/core_cm4.h **** reg_value = SCB->AIRCR; /* read old register +1654:Drivers/CMSIS/Include/core_cm4.h **** reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to chan +1655:Drivers/CMSIS/Include/core_cm4.h **** reg_value = (reg_value | +1656:Drivers/CMSIS/Include/core_cm4.h **** ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | +1657:Drivers/CMSIS/Include/core_cm4.h **** (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key a +1658:Drivers/CMSIS/Include/core_cm4.h **** SCB->AIRCR = reg_value; +1659:Drivers/CMSIS/Include/core_cm4.h **** } +1660:Drivers/CMSIS/Include/core_cm4.h **** +1661:Drivers/CMSIS/Include/core_cm4.h **** +1662:Drivers/CMSIS/Include/core_cm4.h **** /** +1663:Drivers/CMSIS/Include/core_cm4.h **** \brief Get Priority Grouping +1664:Drivers/CMSIS/Include/core_cm4.h **** \details Reads the priority grouping field from the NVIC Interrupt Controller. +1665:Drivers/CMSIS/Include/core_cm4.h **** \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). +1666:Drivers/CMSIS/Include/core_cm4.h **** */ +1667:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +1668:Drivers/CMSIS/Include/core_cm4.h **** { +1669:Drivers/CMSIS/Include/core_cm4.h **** return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +1670:Drivers/CMSIS/Include/core_cm4.h **** } +1671:Drivers/CMSIS/Include/core_cm4.h **** +1672:Drivers/CMSIS/Include/core_cm4.h **** +1673:Drivers/CMSIS/Include/core_cm4.h **** /** +1674:Drivers/CMSIS/Include/core_cm4.h **** \brief Enable Interrupt +1675:Drivers/CMSIS/Include/core_cm4.h **** \details Enables a device specific interrupt in the NVIC interrupt controller. +1676:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1677:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1678:Drivers/CMSIS/Include/core_cm4.h **** */ +1679:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +1680:Drivers/CMSIS/Include/core_cm4.h **** { + 30 .loc 2 1680 1 view -0 + 31 .cfi_startproc + ARM GAS /tmp/ccVsbRnC.s page 31 + + + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 @ link register save eliminated. +1681:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) + 35 .loc 2 1681 3 view .LVU1 + 36 .loc 2 1681 6 is_stmt 0 view .LVU2 + 37 0000 0028 cmp r0, #0 + 38 .LVL1: + 39 .loc 2 1681 6 view .LVU3 + 40 0002 07DB blt .L1 +1682:Drivers/CMSIS/Include/core_cm4.h **** { +1683:Drivers/CMSIS/Include/core_cm4.h **** __COMPILER_BARRIER(); + 41 .loc 2 1683 5 is_stmt 1 view .LVU4 +1684:Drivers/CMSIS/Include/core_cm4.h **** NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + 42 .loc 2 1684 5 view .LVU5 + 43 .loc 2 1684 81 is_stmt 0 view .LVU6 + 44 0004 00F01F02 and r2, r0, #31 + 45 .loc 2 1684 34 view .LVU7 + 46 0008 4009 lsrs r0, r0, #5 + 47 .loc 2 1684 45 view .LVU8 + 48 000a 0123 movs r3, #1 + 49 000c 9340 lsls r3, r3, r2 + 50 .loc 2 1684 43 view .LVU9 + 51 000e 024A ldr r2, .L3 + 52 0010 42F82030 str r3, [r2, r0, lsl #2] +1685:Drivers/CMSIS/Include/core_cm4.h **** __COMPILER_BARRIER(); + 53 .loc 2 1685 5 is_stmt 1 view .LVU10 + 54 .L1: +1686:Drivers/CMSIS/Include/core_cm4.h **** } +1687:Drivers/CMSIS/Include/core_cm4.h **** } + 55 .loc 2 1687 1 is_stmt 0 view .LVU11 + 56 0014 7047 bx lr + 57 .L4: + 58 0016 00BF .align 2 + 59 .L3: + 60 0018 00E100E0 .word -536813312 + 61 .cfi_endproc + 62 .LFE106: + 64 .section .text.__NVIC_DisableIRQ,"ax",%progbits + 65 .align 1 + 66 .syntax unified + 67 .thumb + 68 .thumb_func + 70 __NVIC_DisableIRQ: + 71 .LVL2: + 72 .LFB108: +1688:Drivers/CMSIS/Include/core_cm4.h **** +1689:Drivers/CMSIS/Include/core_cm4.h **** +1690:Drivers/CMSIS/Include/core_cm4.h **** /** +1691:Drivers/CMSIS/Include/core_cm4.h **** \brief Get Interrupt Enable status +1692:Drivers/CMSIS/Include/core_cm4.h **** \details Returns a device specific interrupt enable status from the NVIC interrupt controller. +1693:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1694:Drivers/CMSIS/Include/core_cm4.h **** \return 0 Interrupt is not enabled. +1695:Drivers/CMSIS/Include/core_cm4.h **** \return 1 Interrupt is enabled. +1696:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1697:Drivers/CMSIS/Include/core_cm4.h **** */ +1698:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) + ARM GAS /tmp/ccVsbRnC.s page 32 + + +1699:Drivers/CMSIS/Include/core_cm4.h **** { +1700:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) +1701:Drivers/CMSIS/Include/core_cm4.h **** { +1702:Drivers/CMSIS/Include/core_cm4.h **** return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL) +1703:Drivers/CMSIS/Include/core_cm4.h **** } +1704:Drivers/CMSIS/Include/core_cm4.h **** else +1705:Drivers/CMSIS/Include/core_cm4.h **** { +1706:Drivers/CMSIS/Include/core_cm4.h **** return(0U); +1707:Drivers/CMSIS/Include/core_cm4.h **** } +1708:Drivers/CMSIS/Include/core_cm4.h **** } +1709:Drivers/CMSIS/Include/core_cm4.h **** +1710:Drivers/CMSIS/Include/core_cm4.h **** +1711:Drivers/CMSIS/Include/core_cm4.h **** /** +1712:Drivers/CMSIS/Include/core_cm4.h **** \brief Disable Interrupt +1713:Drivers/CMSIS/Include/core_cm4.h **** \details Disables a device specific interrupt in the NVIC interrupt controller. +1714:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1715:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1716:Drivers/CMSIS/Include/core_cm4.h **** */ +1717:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +1718:Drivers/CMSIS/Include/core_cm4.h **** { + 73 .loc 2 1718 1 is_stmt 1 view -0 + 74 .cfi_startproc + 75 @ args = 0, pretend = 0, frame = 0 + 76 @ frame_needed = 0, uses_anonymous_args = 0 + 77 @ link register save eliminated. +1719:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) + 78 .loc 2 1719 3 view .LVU13 + 79 .loc 2 1719 6 is_stmt 0 view .LVU14 + 80 0000 0028 cmp r0, #0 + 81 .LVL3: + 82 .loc 2 1719 6 view .LVU15 + 83 0002 0CDB blt .L5 +1720:Drivers/CMSIS/Include/core_cm4.h **** { +1721:Drivers/CMSIS/Include/core_cm4.h **** NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + 84 .loc 2 1721 5 is_stmt 1 view .LVU16 + 85 .loc 2 1721 81 is_stmt 0 view .LVU17 + 86 0004 00F01F02 and r2, r0, #31 + 87 .loc 2 1721 34 view .LVU18 + 88 0008 4009 lsrs r0, r0, #5 + 89 .loc 2 1721 45 view .LVU19 + 90 000a 0123 movs r3, #1 + 91 000c 9340 lsls r3, r3, r2 + 92 .loc 2 1721 43 view .LVU20 + 93 000e 2030 adds r0, r0, #32 + 94 0010 034A ldr r2, .L7 + 95 0012 42F82030 str r3, [r2, r0, lsl #2] +1722:Drivers/CMSIS/Include/core_cm4.h **** __DSB(); + 96 .loc 2 1722 5 is_stmt 1 view .LVU21 + 97 .LBB36: + 98 .LBI36: + 99 .file 3 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + ARM GAS /tmp/ccVsbRnC.s page 33 + + + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccVsbRnC.s page 34 + + + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + ARM GAS /tmp/ccVsbRnC.s page 35 + + + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + ARM GAS /tmp/ccVsbRnC.s page 36 + + + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccVsbRnC.s page 37 + + + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + ARM GAS /tmp/ccVsbRnC.s page 38 + + + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccVsbRnC.s page 39 + + + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/ccVsbRnC.s page 40 + + + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + ARM GAS /tmp/ccVsbRnC.s page 41 + + + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + ARM GAS /tmp/ccVsbRnC.s page 42 + + + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccVsbRnC.s page 43 + + + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + ARM GAS /tmp/ccVsbRnC.s page 44 + + + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccVsbRnC.s page 45 + + + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccVsbRnC.s page 46 + + + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + ARM GAS /tmp/ccVsbRnC.s page 47 + + + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + ARM GAS /tmp/ccVsbRnC.s page 48 + + + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccVsbRnC.s page 49 + + + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 937:Drivers/CMSIS/Include/cmsis_gcc.h **** + 938:Drivers/CMSIS/Include/cmsis_gcc.h **** + 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier + 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. + 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. + 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) + 100 .loc 3 944 27 view .LVU22 + 101 .LBB37: + 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); + 102 .loc 3 946 3 view .LVU23 + 103 .syntax unified + 104 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 105 0016 BFF34F8F dsb 0xF + 106 @ 0 "" 2 + 107 .thumb + 108 .syntax unified + 109 .LBE37: + 110 .LBE36: +1723:Drivers/CMSIS/Include/core_cm4.h **** __ISB(); + 111 .loc 2 1723 5 view .LVU24 + 112 .LBB38: + 113 .LBI38: + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 114 .loc 3 933 27 view .LVU25 + 115 .LBB39: + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 116 .loc 3 935 3 view .LVU26 + 117 .syntax unified + 118 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 119 001a BFF36F8F isb 0xF + 120 @ 0 "" 2 + 121 .thumb + 122 .syntax unified + 123 .L5: + 124 .LBE39: + 125 .LBE38: + ARM GAS /tmp/ccVsbRnC.s page 50 + + +1724:Drivers/CMSIS/Include/core_cm4.h **** } +1725:Drivers/CMSIS/Include/core_cm4.h **** } + 126 .loc 2 1725 1 is_stmt 0 view .LVU27 + 127 001e 7047 bx lr + 128 .L8: + 129 .align 2 + 130 .L7: + 131 0020 00E100E0 .word -536813312 + 132 .cfi_endproc + 133 .LFE108: + 135 .section .text.__NVIC_SetPriority,"ax",%progbits + 136 .align 1 + 137 .syntax unified + 138 .thumb + 139 .thumb_func + 141 __NVIC_SetPriority: + 142 .LVL4: + 143 .LFB113: +1726:Drivers/CMSIS/Include/core_cm4.h **** +1727:Drivers/CMSIS/Include/core_cm4.h **** +1728:Drivers/CMSIS/Include/core_cm4.h **** /** +1729:Drivers/CMSIS/Include/core_cm4.h **** \brief Get Pending Interrupt +1730:Drivers/CMSIS/Include/core_cm4.h **** \details Reads the NVIC pending register and returns the pending bit for the specified device spe +1731:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1732:Drivers/CMSIS/Include/core_cm4.h **** \return 0 Interrupt status is not pending. +1733:Drivers/CMSIS/Include/core_cm4.h **** \return 1 Interrupt status is pending. +1734:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1735:Drivers/CMSIS/Include/core_cm4.h **** */ +1736:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +1737:Drivers/CMSIS/Include/core_cm4.h **** { +1738:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) +1739:Drivers/CMSIS/Include/core_cm4.h **** { +1740:Drivers/CMSIS/Include/core_cm4.h **** return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL) +1741:Drivers/CMSIS/Include/core_cm4.h **** } +1742:Drivers/CMSIS/Include/core_cm4.h **** else +1743:Drivers/CMSIS/Include/core_cm4.h **** { +1744:Drivers/CMSIS/Include/core_cm4.h **** return(0U); +1745:Drivers/CMSIS/Include/core_cm4.h **** } +1746:Drivers/CMSIS/Include/core_cm4.h **** } +1747:Drivers/CMSIS/Include/core_cm4.h **** +1748:Drivers/CMSIS/Include/core_cm4.h **** +1749:Drivers/CMSIS/Include/core_cm4.h **** /** +1750:Drivers/CMSIS/Include/core_cm4.h **** \brief Set Pending Interrupt +1751:Drivers/CMSIS/Include/core_cm4.h **** \details Sets the pending bit of a device specific interrupt in the NVIC pending register. +1752:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1753:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1754:Drivers/CMSIS/Include/core_cm4.h **** */ +1755:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +1756:Drivers/CMSIS/Include/core_cm4.h **** { +1757:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) +1758:Drivers/CMSIS/Include/core_cm4.h **** { +1759:Drivers/CMSIS/Include/core_cm4.h **** NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); +1760:Drivers/CMSIS/Include/core_cm4.h **** } +1761:Drivers/CMSIS/Include/core_cm4.h **** } +1762:Drivers/CMSIS/Include/core_cm4.h **** +1763:Drivers/CMSIS/Include/core_cm4.h **** +1764:Drivers/CMSIS/Include/core_cm4.h **** /** + ARM GAS /tmp/ccVsbRnC.s page 51 + + +1765:Drivers/CMSIS/Include/core_cm4.h **** \brief Clear Pending Interrupt +1766:Drivers/CMSIS/Include/core_cm4.h **** \details Clears the pending bit of a device specific interrupt in the NVIC pending register. +1767:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1768:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1769:Drivers/CMSIS/Include/core_cm4.h **** */ +1770:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +1771:Drivers/CMSIS/Include/core_cm4.h **** { +1772:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) +1773:Drivers/CMSIS/Include/core_cm4.h **** { +1774:Drivers/CMSIS/Include/core_cm4.h **** NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); +1775:Drivers/CMSIS/Include/core_cm4.h **** } +1776:Drivers/CMSIS/Include/core_cm4.h **** } +1777:Drivers/CMSIS/Include/core_cm4.h **** +1778:Drivers/CMSIS/Include/core_cm4.h **** +1779:Drivers/CMSIS/Include/core_cm4.h **** /** +1780:Drivers/CMSIS/Include/core_cm4.h **** \brief Get Active Interrupt +1781:Drivers/CMSIS/Include/core_cm4.h **** \details Reads the active register in the NVIC and returns the active bit for the device specific +1782:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Device specific interrupt number. +1783:Drivers/CMSIS/Include/core_cm4.h **** \return 0 Interrupt status is not active. +1784:Drivers/CMSIS/Include/core_cm4.h **** \return 1 Interrupt status is active. +1785:Drivers/CMSIS/Include/core_cm4.h **** \note IRQn must not be negative. +1786:Drivers/CMSIS/Include/core_cm4.h **** */ +1787:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +1788:Drivers/CMSIS/Include/core_cm4.h **** { +1789:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) +1790:Drivers/CMSIS/Include/core_cm4.h **** { +1791:Drivers/CMSIS/Include/core_cm4.h **** return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL) +1792:Drivers/CMSIS/Include/core_cm4.h **** } +1793:Drivers/CMSIS/Include/core_cm4.h **** else +1794:Drivers/CMSIS/Include/core_cm4.h **** { +1795:Drivers/CMSIS/Include/core_cm4.h **** return(0U); +1796:Drivers/CMSIS/Include/core_cm4.h **** } +1797:Drivers/CMSIS/Include/core_cm4.h **** } +1798:Drivers/CMSIS/Include/core_cm4.h **** +1799:Drivers/CMSIS/Include/core_cm4.h **** +1800:Drivers/CMSIS/Include/core_cm4.h **** /** +1801:Drivers/CMSIS/Include/core_cm4.h **** \brief Set Interrupt Priority +1802:Drivers/CMSIS/Include/core_cm4.h **** \details Sets the priority of a device specific interrupt or a processor exception. +1803:Drivers/CMSIS/Include/core_cm4.h **** The interrupt number can be positive to specify a device specific interrupt, +1804:Drivers/CMSIS/Include/core_cm4.h **** or negative to specify a processor exception. +1805:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Interrupt number. +1806:Drivers/CMSIS/Include/core_cm4.h **** \param [in] priority Priority to set. +1807:Drivers/CMSIS/Include/core_cm4.h **** \note The priority cannot be set for every processor exception. +1808:Drivers/CMSIS/Include/core_cm4.h **** */ +1809:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +1810:Drivers/CMSIS/Include/core_cm4.h **** { + 144 .loc 2 1810 1 is_stmt 1 view -0 + 145 .cfi_startproc + 146 @ args = 0, pretend = 0, frame = 0 + 147 @ frame_needed = 0, uses_anonymous_args = 0 + 148 @ link register save eliminated. +1811:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) + 149 .loc 2 1811 3 view .LVU29 + 150 .loc 2 1811 6 is_stmt 0 view .LVU30 + 151 0000 0028 cmp r0, #0 + 152 .LVL5: + 153 .loc 2 1811 6 view .LVU31 + ARM GAS /tmp/ccVsbRnC.s page 52 + + + 154 0002 08DB blt .L10 +1812:Drivers/CMSIS/Include/core_cm4.h **** { +1813:Drivers/CMSIS/Include/core_cm4.h **** NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (u + 155 .loc 2 1813 5 is_stmt 1 view .LVU32 + 156 .loc 2 1813 48 is_stmt 0 view .LVU33 + 157 0004 0901 lsls r1, r1, #4 + 158 .LVL6: + 159 .loc 2 1813 48 view .LVU34 + 160 0006 C9B2 uxtb r1, r1 + 161 .loc 2 1813 46 view .LVU35 + 162 0008 00F16040 add r0, r0, #-536870912 + 163 000c 00F56140 add r0, r0, #57600 + 164 0010 80F80013 strb r1, [r0, #768] + 165 0014 7047 bx lr + 166 .LVL7: + 167 .L10: +1814:Drivers/CMSIS/Include/core_cm4.h **** } +1815:Drivers/CMSIS/Include/core_cm4.h **** else +1816:Drivers/CMSIS/Include/core_cm4.h **** { +1817:Drivers/CMSIS/Include/core_cm4.h **** SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (u + 168 .loc 2 1817 5 is_stmt 1 view .LVU36 + 169 .loc 2 1817 32 is_stmt 0 view .LVU37 + 170 0016 00F00F00 and r0, r0, #15 + 171 .loc 2 1817 48 view .LVU38 + 172 001a 0901 lsls r1, r1, #4 + 173 .LVL8: + 174 .loc 2 1817 48 view .LVU39 + 175 001c C9B2 uxtb r1, r1 + 176 .loc 2 1817 46 view .LVU40 + 177 001e 014B ldr r3, .L12 + 178 0020 1954 strb r1, [r3, r0] +1818:Drivers/CMSIS/Include/core_cm4.h **** } +1819:Drivers/CMSIS/Include/core_cm4.h **** } + 179 .loc 2 1819 1 view .LVU41 + 180 0022 7047 bx lr + 181 .L13: + 182 .align 2 + 183 .L12: + 184 0024 14ED00E0 .word -536810220 + 185 .cfi_endproc + 186 .LFE113: + 188 .section .text.__NVIC_GetPriority,"ax",%progbits + 189 .align 1 + 190 .syntax unified + 191 .thumb + 192 .thumb_func + 194 __NVIC_GetPriority: + 195 .LVL9: + 196 .LFB114: +1820:Drivers/CMSIS/Include/core_cm4.h **** +1821:Drivers/CMSIS/Include/core_cm4.h **** +1822:Drivers/CMSIS/Include/core_cm4.h **** /** +1823:Drivers/CMSIS/Include/core_cm4.h **** \brief Get Interrupt Priority +1824:Drivers/CMSIS/Include/core_cm4.h **** \details Reads the priority of a device specific interrupt or a processor exception. +1825:Drivers/CMSIS/Include/core_cm4.h **** The interrupt number can be positive to specify a device specific interrupt, +1826:Drivers/CMSIS/Include/core_cm4.h **** or negative to specify a processor exception. +1827:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Interrupt number. + ARM GAS /tmp/ccVsbRnC.s page 53 + + +1828:Drivers/CMSIS/Include/core_cm4.h **** \return Interrupt Priority. +1829:Drivers/CMSIS/Include/core_cm4.h **** Value is aligned automatically to the implemented priority bits of the microc +1830:Drivers/CMSIS/Include/core_cm4.h **** */ +1831:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +1832:Drivers/CMSIS/Include/core_cm4.h **** { + 197 .loc 2 1832 1 is_stmt 1 view -0 + 198 .cfi_startproc + 199 @ args = 0, pretend = 0, frame = 0 + 200 @ frame_needed = 0, uses_anonymous_args = 0 + 201 @ link register save eliminated. +1833:Drivers/CMSIS/Include/core_cm4.h **** +1834:Drivers/CMSIS/Include/core_cm4.h **** if ((int32_t)(IRQn) >= 0) + 202 .loc 2 1834 3 view .LVU43 + 203 .loc 2 1834 6 is_stmt 0 view .LVU44 + 204 0000 0028 cmp r0, #0 + 205 .LVL10: + 206 .loc 2 1834 6 view .LVU45 + 207 0002 07DB blt .L15 +1835:Drivers/CMSIS/Include/core_cm4.h **** { +1836:Drivers/CMSIS/Include/core_cm4.h **** return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + 208 .loc 2 1836 5 is_stmt 1 view .LVU46 + 209 .loc 2 1836 31 is_stmt 0 view .LVU47 + 210 0004 00F16040 add r0, r0, #-536870912 + 211 0008 00F56140 add r0, r0, #57600 + 212 000c 90F80003 ldrb r0, [r0, #768] @ zero_extendqisi2 + 213 .loc 2 1836 64 view .LVU48 + 214 0010 0009 lsrs r0, r0, #4 + 215 0012 7047 bx lr + 216 .L15: +1837:Drivers/CMSIS/Include/core_cm4.h **** } +1838:Drivers/CMSIS/Include/core_cm4.h **** else +1839:Drivers/CMSIS/Include/core_cm4.h **** { +1840:Drivers/CMSIS/Include/core_cm4.h **** return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + 217 .loc 2 1840 5 is_stmt 1 view .LVU49 + 218 .loc 2 1840 50 is_stmt 0 view .LVU50 + 219 0014 00F00F00 and r0, r0, #15 + 220 .loc 2 1840 31 view .LVU51 + 221 0018 014B ldr r3, .L17 + 222 001a 185C ldrb r0, [r3, r0] @ zero_extendqisi2 + 223 .loc 2 1840 64 view .LVU52 + 224 001c 0009 lsrs r0, r0, #4 +1841:Drivers/CMSIS/Include/core_cm4.h **** } +1842:Drivers/CMSIS/Include/core_cm4.h **** } + 225 .loc 2 1842 1 view .LVU53 + 226 001e 7047 bx lr + 227 .L18: + 228 .align 2 + 229 .L17: + 230 0020 14ED00E0 .word -536810220 + 231 .cfi_endproc + 232 .LFE114: + 234 .section .text.NVIC_EncodePriority,"ax",%progbits + 235 .align 1 + 236 .syntax unified + 237 .thumb + 238 .thumb_func + 240 NVIC_EncodePriority: + ARM GAS /tmp/ccVsbRnC.s page 54 + + + 241 .LVL11: + 242 .LFB115: +1843:Drivers/CMSIS/Include/core_cm4.h **** +1844:Drivers/CMSIS/Include/core_cm4.h **** +1845:Drivers/CMSIS/Include/core_cm4.h **** /** +1846:Drivers/CMSIS/Include/core_cm4.h **** \brief Encode Priority +1847:Drivers/CMSIS/Include/core_cm4.h **** \details Encodes the priority for an interrupt with the given priority group, +1848:Drivers/CMSIS/Include/core_cm4.h **** preemptive priority value, and subpriority value. +1849:Drivers/CMSIS/Include/core_cm4.h **** In case of a conflict between priority grouping and available +1850:Drivers/CMSIS/Include/core_cm4.h **** priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. +1851:Drivers/CMSIS/Include/core_cm4.h **** \param [in] PriorityGroup Used priority group. +1852:Drivers/CMSIS/Include/core_cm4.h **** \param [in] PreemptPriority Preemptive priority value (starting from 0). +1853:Drivers/CMSIS/Include/core_cm4.h **** \param [in] SubPriority Subpriority value (starting from 0). +1854:Drivers/CMSIS/Include/core_cm4.h **** \return Encoded priority. Value can be used in the function \ref NVIC_SetP +1855:Drivers/CMSIS/Include/core_cm4.h **** */ +1856:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uin +1857:Drivers/CMSIS/Include/core_cm4.h **** { + 243 .loc 2 1857 1 is_stmt 1 view -0 + 244 .cfi_startproc + 245 @ args = 0, pretend = 0, frame = 0 + 246 @ frame_needed = 0, uses_anonymous_args = 0 + 247 .loc 2 1857 1 is_stmt 0 view .LVU55 + 248 0000 00B5 push {lr} + 249 .LCFI0: + 250 .cfi_def_cfa_offset 4 + 251 .cfi_offset 14, -4 +1858:Drivers/CMSIS/Include/core_cm4.h **** uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used + 252 .loc 2 1858 3 is_stmt 1 view .LVU56 + 253 .loc 2 1858 12 is_stmt 0 view .LVU57 + 254 0002 00F00700 and r0, r0, #7 + 255 .LVL12: +1859:Drivers/CMSIS/Include/core_cm4.h **** uint32_t PreemptPriorityBits; + 256 .loc 2 1859 3 is_stmt 1 view .LVU58 +1860:Drivers/CMSIS/Include/core_cm4.h **** uint32_t SubPriorityBits; + 257 .loc 2 1860 3 view .LVU59 +1861:Drivers/CMSIS/Include/core_cm4.h **** +1862:Drivers/CMSIS/Include/core_cm4.h **** PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NV + 258 .loc 2 1862 3 view .LVU60 + 259 .loc 2 1862 31 is_stmt 0 view .LVU61 + 260 0006 C0F1070C rsb ip, r0, #7 + 261 .loc 2 1862 23 view .LVU62 + 262 000a BCF1040F cmp ip, #4 + 263 000e 28BF it cs + 264 0010 4FF0040C movcs ip, #4 + 265 .LVL13: +1863:Drivers/CMSIS/Include/core_cm4.h **** SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint + 266 .loc 2 1863 3 is_stmt 1 view .LVU63 + 267 .loc 2 1863 44 is_stmt 0 view .LVU64 + 268 0014 031D adds r3, r0, #4 + 269 .loc 2 1863 109 view .LVU65 + 270 0016 062B cmp r3, #6 + 271 0018 0FD9 bls .L21 + 272 .loc 2 1863 109 discriminator 1 view .LVU66 + 273 001a C31E subs r3, r0, #3 + 274 .L20: + 275 .LVL14: +1864:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 55 + + +1865:Drivers/CMSIS/Include/core_cm4.h **** return ( + 276 .loc 2 1865 3 is_stmt 1 discriminator 4 view .LVU67 +1866:Drivers/CMSIS/Include/core_cm4.h **** ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits + 277 .loc 2 1866 30 is_stmt 0 discriminator 4 view .LVU68 + 278 001c 4FF0FF3E mov lr, #-1 + 279 0020 0EFA0CF0 lsl r0, lr, ip + 280 .LVL15: + 281 .loc 2 1866 30 discriminator 4 view .LVU69 + 282 0024 21EA0001 bic r1, r1, r0 + 283 .LVL16: + 284 .loc 2 1866 82 discriminator 4 view .LVU70 + 285 0028 9940 lsls r1, r1, r3 +1867:Drivers/CMSIS/Include/core_cm4.h **** ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 286 .loc 2 1867 30 discriminator 4 view .LVU71 + 287 002a 0EFA03FE lsl lr, lr, r3 + 288 002e 22EA0E02 bic r2, r2, lr + 289 .LVL17: +1868:Drivers/CMSIS/Include/core_cm4.h **** ); +1869:Drivers/CMSIS/Include/core_cm4.h **** } + 290 .loc 2 1869 1 discriminator 4 view .LVU72 + 291 0032 41EA0200 orr r0, r1, r2 + 292 0036 5DF804FB ldr pc, [sp], #4 + 293 .LVL18: + 294 .L21: +1863:Drivers/CMSIS/Include/core_cm4.h **** + 295 .loc 2 1863 109 view .LVU73 + 296 003a 0023 movs r3, #0 + 297 003c EEE7 b .L20 + 298 .cfi_endproc + 299 .LFE115: + 301 .section .text.NVIC_DecodePriority,"ax",%progbits + 302 .align 1 + 303 .syntax unified + 304 .thumb + 305 .thumb_func + 307 NVIC_DecodePriority: + 308 .LVL19: + 309 .LFB116: +1870:Drivers/CMSIS/Include/core_cm4.h **** +1871:Drivers/CMSIS/Include/core_cm4.h **** +1872:Drivers/CMSIS/Include/core_cm4.h **** /** +1873:Drivers/CMSIS/Include/core_cm4.h **** \brief Decode Priority +1874:Drivers/CMSIS/Include/core_cm4.h **** \details Decodes an interrupt priority value with a given priority group to +1875:Drivers/CMSIS/Include/core_cm4.h **** preemptive priority value and subpriority value. +1876:Drivers/CMSIS/Include/core_cm4.h **** In case of a conflict between priority grouping and available +1877:Drivers/CMSIS/Include/core_cm4.h **** priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. +1878:Drivers/CMSIS/Include/core_cm4.h **** \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC +1879:Drivers/CMSIS/Include/core_cm4.h **** \param [in] PriorityGroup Used priority group. +1880:Drivers/CMSIS/Include/core_cm4.h **** \param [out] pPreemptPriority Preemptive priority value (starting from 0). +1881:Drivers/CMSIS/Include/core_cm4.h **** \param [out] pSubPriority Subpriority value (starting from 0). +1882:Drivers/CMSIS/Include/core_cm4.h **** */ +1883:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* cons +1884:Drivers/CMSIS/Include/core_cm4.h **** { + 310 .loc 2 1884 1 is_stmt 1 view -0 + 311 .cfi_startproc + 312 @ args = 0, pretend = 0, frame = 0 + 313 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/ccVsbRnC.s page 56 + + + 314 .loc 2 1884 1 is_stmt 0 view .LVU75 + 315 0000 10B5 push {r4, lr} + 316 .LCFI1: + 317 .cfi_def_cfa_offset 8 + 318 .cfi_offset 4, -8 + 319 .cfi_offset 14, -4 +1885:Drivers/CMSIS/Include/core_cm4.h **** uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used + 320 .loc 2 1885 3 is_stmt 1 view .LVU76 + 321 .loc 2 1885 12 is_stmt 0 view .LVU77 + 322 0002 01F00701 and r1, r1, #7 + 323 .LVL20: +1886:Drivers/CMSIS/Include/core_cm4.h **** uint32_t PreemptPriorityBits; + 324 .loc 2 1886 3 is_stmt 1 view .LVU78 +1887:Drivers/CMSIS/Include/core_cm4.h **** uint32_t SubPriorityBits; + 325 .loc 2 1887 3 view .LVU79 +1888:Drivers/CMSIS/Include/core_cm4.h **** +1889:Drivers/CMSIS/Include/core_cm4.h **** PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NV + 326 .loc 2 1889 3 view .LVU80 + 327 .loc 2 1889 31 is_stmt 0 view .LVU81 + 328 0006 C1F1070C rsb ip, r1, #7 + 329 .loc 2 1889 23 view .LVU82 + 330 000a BCF1040F cmp ip, #4 + 331 000e 28BF it cs + 332 0010 4FF0040C movcs ip, #4 + 333 .LVL21: +1890:Drivers/CMSIS/Include/core_cm4.h **** SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint + 334 .loc 2 1890 3 is_stmt 1 view .LVU83 + 335 .loc 2 1890 44 is_stmt 0 view .LVU84 + 336 0014 0C1D adds r4, r1, #4 + 337 .loc 2 1890 109 view .LVU85 + 338 0016 062C cmp r4, #6 + 339 0018 0FD9 bls .L25 + 340 .loc 2 1890 109 discriminator 1 view .LVU86 + 341 001a 0339 subs r1, r1, #3 + 342 .LVL22: + 343 .L24: +1891:Drivers/CMSIS/Include/core_cm4.h **** +1892:Drivers/CMSIS/Include/core_cm4.h **** *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1 + 344 .loc 2 1892 3 is_stmt 1 discriminator 4 view .LVU87 + 345 .loc 2 1892 33 is_stmt 0 discriminator 4 view .LVU88 + 346 001c 20FA01F4 lsr r4, r0, r1 + 347 .LVL23: + 348 .loc 2 1892 53 discriminator 4 view .LVU89 + 349 0020 4FF0FF3E mov lr, #-1 + 350 0024 0EFA0CFC lsl ip, lr, ip + 351 .LVL24: + 352 .loc 2 1892 53 discriminator 4 view .LVU90 + 353 0028 24EA0C04 bic r4, r4, ip + 354 .loc 2 1892 21 discriminator 4 view .LVU91 + 355 002c 1460 str r4, [r2] +1893:Drivers/CMSIS/Include/core_cm4.h **** *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1 + 356 .loc 2 1893 3 is_stmt 1 discriminator 4 view .LVU92 + 357 .loc 2 1893 53 is_stmt 0 discriminator 4 view .LVU93 + 358 002e 0EFA01FE lsl lr, lr, r1 + 359 0032 20EA0E00 bic r0, r0, lr + 360 .LVL25: + 361 .loc 2 1893 21 discriminator 4 view .LVU94 + ARM GAS /tmp/ccVsbRnC.s page 57 + + + 362 0036 1860 str r0, [r3] +1894:Drivers/CMSIS/Include/core_cm4.h **** } + 363 .loc 2 1894 1 discriminator 4 view .LVU95 + 364 0038 10BD pop {r4, pc} + 365 .LVL26: + 366 .L25: +1890:Drivers/CMSIS/Include/core_cm4.h **** + 367 .loc 2 1890 109 view .LVU96 + 368 003a 0021 movs r1, #0 + 369 .LVL27: +1890:Drivers/CMSIS/Include/core_cm4.h **** + 370 .loc 2 1890 109 view .LVU97 + 371 003c EEE7 b .L24 + 372 .cfi_endproc + 373 .LFE116: + 375 .section .text.__NVIC_SystemReset,"ax",%progbits + 376 .align 1 + 377 .syntax unified + 378 .thumb + 379 .thumb_func + 381 __NVIC_SystemReset: + 382 .LFB119: +1895:Drivers/CMSIS/Include/core_cm4.h **** +1896:Drivers/CMSIS/Include/core_cm4.h **** +1897:Drivers/CMSIS/Include/core_cm4.h **** /** +1898:Drivers/CMSIS/Include/core_cm4.h **** \brief Set Interrupt Vector +1899:Drivers/CMSIS/Include/core_cm4.h **** \details Sets an interrupt vector in SRAM based interrupt vector table. +1900:Drivers/CMSIS/Include/core_cm4.h **** The interrupt number can be positive to specify a device specific interrupt, +1901:Drivers/CMSIS/Include/core_cm4.h **** or negative to specify a processor exception. +1902:Drivers/CMSIS/Include/core_cm4.h **** VTOR must been relocated to SRAM before. +1903:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Interrupt number +1904:Drivers/CMSIS/Include/core_cm4.h **** \param [in] vector Address of interrupt handler function +1905:Drivers/CMSIS/Include/core_cm4.h **** */ +1906:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +1907:Drivers/CMSIS/Include/core_cm4.h **** { +1908:Drivers/CMSIS/Include/core_cm4.h **** uint32_t vectors = (uint32_t )SCB->VTOR; +1909:Drivers/CMSIS/Include/core_cm4.h **** (* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)) = vector; +1910:Drivers/CMSIS/Include/core_cm4.h **** /* ARM Application Note 321 states that the M4 does not require the architectural barrier */ +1911:Drivers/CMSIS/Include/core_cm4.h **** } +1912:Drivers/CMSIS/Include/core_cm4.h **** +1913:Drivers/CMSIS/Include/core_cm4.h **** +1914:Drivers/CMSIS/Include/core_cm4.h **** /** +1915:Drivers/CMSIS/Include/core_cm4.h **** \brief Get Interrupt Vector +1916:Drivers/CMSIS/Include/core_cm4.h **** \details Reads an interrupt vector from interrupt vector table. +1917:Drivers/CMSIS/Include/core_cm4.h **** The interrupt number can be positive to specify a device specific interrupt, +1918:Drivers/CMSIS/Include/core_cm4.h **** or negative to specify a processor exception. +1919:Drivers/CMSIS/Include/core_cm4.h **** \param [in] IRQn Interrupt number. +1920:Drivers/CMSIS/Include/core_cm4.h **** \return Address of interrupt handler function +1921:Drivers/CMSIS/Include/core_cm4.h **** */ +1922:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +1923:Drivers/CMSIS/Include/core_cm4.h **** { +1924:Drivers/CMSIS/Include/core_cm4.h **** uint32_t vectors = (uint32_t )SCB->VTOR; +1925:Drivers/CMSIS/Include/core_cm4.h **** return (uint32_t)(* (int *) (vectors + ((int32_t)IRQn + NVIC_USER_IRQ_OFFSET) * 4)); +1926:Drivers/CMSIS/Include/core_cm4.h **** } +1927:Drivers/CMSIS/Include/core_cm4.h **** +1928:Drivers/CMSIS/Include/core_cm4.h **** +1929:Drivers/CMSIS/Include/core_cm4.h **** /** + ARM GAS /tmp/ccVsbRnC.s page 58 + + +1930:Drivers/CMSIS/Include/core_cm4.h **** \brief System Reset +1931:Drivers/CMSIS/Include/core_cm4.h **** \details Initiates a system reset request to reset the MCU. +1932:Drivers/CMSIS/Include/core_cm4.h **** */ +1933:Drivers/CMSIS/Include/core_cm4.h **** __NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +1934:Drivers/CMSIS/Include/core_cm4.h **** { + 383 .loc 2 1934 1 is_stmt 1 view -0 + 384 .cfi_startproc + 385 @ Volatile: function does not return. + 386 @ args = 0, pretend = 0, frame = 0 + 387 @ frame_needed = 0, uses_anonymous_args = 0 + 388 @ link register save eliminated. +1935:Drivers/CMSIS/Include/core_cm4.h **** __DSB(); /* Ensure all outstanding memor + 389 .loc 2 1935 3 view .LVU99 + 390 .LBB40: + 391 .LBI40: + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 392 .loc 3 944 27 view .LVU100 + 393 .LBB41: + 394 .loc 3 946 3 view .LVU101 + 395 .syntax unified + 396 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 397 0000 BFF34F8F dsb 0xF + 398 @ 0 "" 2 + 399 .thumb + 400 .syntax unified + 401 .LBE41: + 402 .LBE40: +1936:Drivers/CMSIS/Include/core_cm4.h **** buffered write are completed +1937:Drivers/CMSIS/Include/core_cm4.h **** SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 403 .loc 2 1937 3 view .LVU102 +1938:Drivers/CMSIS/Include/core_cm4.h **** (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + 404 .loc 2 1938 32 is_stmt 0 view .LVU103 + 405 0004 0549 ldr r1, .L29 + 406 0006 CA68 ldr r2, [r1, #12] + 407 .loc 2 1938 40 view .LVU104 + 408 0008 02F4E062 and r2, r2, #1792 +1937:Drivers/CMSIS/Include/core_cm4.h **** (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + 409 .loc 2 1937 17 view .LVU105 + 410 000c 044B ldr r3, .L29+4 + 411 000e 1343 orrs r3, r3, r2 +1937:Drivers/CMSIS/Include/core_cm4.h **** (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + 412 .loc 2 1937 15 view .LVU106 + 413 0010 CB60 str r3, [r1, #12] +1939:Drivers/CMSIS/Include/core_cm4.h **** SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchange +1940:Drivers/CMSIS/Include/core_cm4.h **** __DSB(); /* Ensure completion of memory + 414 .loc 2 1940 3 is_stmt 1 view .LVU107 + 415 .LBB42: + 416 .LBI42: + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 417 .loc 3 944 27 view .LVU108 + 418 .LBB43: + 419 .loc 3 946 3 view .LVU109 + 420 .syntax unified + 421 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 422 0012 BFF34F8F dsb 0xF + 423 @ 0 "" 2 + 424 .thumb + ARM GAS /tmp/ccVsbRnC.s page 59 + + + 425 .syntax unified + 426 .L28: + 427 .LBE43: + 428 .LBE42: +1941:Drivers/CMSIS/Include/core_cm4.h **** +1942:Drivers/CMSIS/Include/core_cm4.h **** for(;;) /* wait until reset */ + 429 .loc 2 1942 3 discriminator 1 view .LVU110 +1943:Drivers/CMSIS/Include/core_cm4.h **** { +1944:Drivers/CMSIS/Include/core_cm4.h **** __NOP(); + 430 .loc 2 1944 5 discriminator 1 view .LVU111 + 431 .syntax unified + 432 @ 1944 "Drivers/CMSIS/Include/core_cm4.h" 1 + 433 0016 00BF nop + 434 @ 0 "" 2 +1942:Drivers/CMSIS/Include/core_cm4.h **** { + 435 .loc 2 1942 3 discriminator 1 view .LVU112 + 436 .thumb + 437 .syntax unified + 438 0018 FDE7 b .L28 + 439 .L30: + 440 001a 00BF .align 2 + 441 .L29: + 442 001c 00ED00E0 .word -536810240 + 443 0020 0400FA05 .word 100270084 + 444 .cfi_endproc + 445 .LFE119: + 447 .section .text.HAL_NVIC_SetPriorityGrouping,"ax",%progbits + 448 .align 1 + 449 .global HAL_NVIC_SetPriorityGrouping + 450 .syntax unified + 451 .thumb + 452 .thumb_func + 454 HAL_NVIC_SetPriorityGrouping: + 455 .LVL28: + 456 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @file stm32g4xx_hal_cortex.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief CORTEX HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * functionalities of the CORTEX: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + Initialization and Configuration functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + Peripheral Control functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ****************************************************************************** + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @attention + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * Copyright (c) 2019 STMicroelectronics. + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * All rights reserved. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This software is licensed under terms that can be found in the LICENSE file + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * in the root directory of this software component. + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ****************************************************************************** + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** @verbatim + ARM GAS /tmp/ccVsbRnC.s page 60 + + + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ============================================================================== + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ##### How to use this driver ##### + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ============================================================================== + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** [..] + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** *** How to configure Interrupts using CORTEX HAL driver *** + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** =========================================================== + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** [..] + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** This section provides functions allowing to configure the NVIC interrupts (IRQ). + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** The Cortex-M4 exceptions are managed by CMSIS functions. + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (#) Configure the NVIC Priority Grouping using HAL_NVIC_SetPriorityGrouping() function. + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (#) Configure the priority of the selected IRQ Channels using HAL_NVIC_SetPriority(). + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (#) Enable the selected IRQ Channels using HAL_NVIC_EnableIRQ(). + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** -@- When the NVIC_PRIORITYGROUP_0 is selected, IRQ pre-emption is no more possible. + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** The pending IRQ priority will be managed only by the sub priority. + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** -@- IRQ priority order (sorted by highest to lowest priority): + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+@) Lowest pre-emption priority + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+@) Lowest sub priority + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+@) Lowest hardware priority (IRQ number) + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** [..] + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** *** How to configure SysTick using CORTEX HAL driver *** + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ======================================================== + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** [..] + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** Setup SysTick Timer for time base. + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+) The HAL_SYSTICK_Config() function calls the SysTick_Config() function which + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** is a CMSIS function that: + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Configures the SysTick Reload register with value passed as function parameter. + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Configures the SysTick IRQ priority to the lowest value (0x0F). + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Resets the SysTick Counter register. + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Configures the SysTick Counter clock source to be Core Clock Source (HCLK). + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Enables the SysTick Interrupt. + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Starts the SysTick Counter. + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+) You can change the SysTick Clock source to be HCLK_Div8 by calling the macro + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** __HAL_CORTEX_SYSTICKCLK_CONFIG(SYSTICK_CLKSOURCE_HCLK_DIV8) just after the + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** HAL_SYSTICK_Config() function call. The __HAL_CORTEX_SYSTICKCLK_CONFIG() macro is defined + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** inside the stm32g4xx_hal_cortex.h file. + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+) You can change the SysTick IRQ priority by calling the + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** HAL_NVIC_SetPriority(SysTick_IRQn,...) function just after the HAL_SYSTICK_Config() function + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** call. The HAL_NVIC_SetPriority() call the NVIC_SetPriority() function which is a CMSIS funct + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (+) To adjust the SysTick time base, use the following formula: + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** Reload Value = SysTick Counter Clock (Hz) x Desired Time base (s) + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Reload Value is the parameter to be passed for HAL_SYSTICK_Config() function + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (++) Reload Value should not exceed 0xFFFFFF + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** @endverbatim + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ****************************************************************************** + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** The table below gives the allowed values of the pre-emption priority and subpriority according + ARM GAS /tmp/ccVsbRnC.s page 61 + + + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** to the Priority Grouping configuration performed by HAL_NVIC_SetPriorityGrouping() function. + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** =============================================================================================== + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** =============================================================================================== + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_PRIORITYGROUP_0 | 0 | 0-15 | 0 bi + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** | | | 4 bi + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ----------------------------------------------------------------------------------------------- + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_PRIORITYGROUP_1 | 0-1 | 0-7 | 1 bi + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** | | | 3 bi + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ----------------------------------------------------------------------------------------------- + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_PRIORITYGROUP_2 | 0-3 | 0-3 | 2 bi + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** | | | 2 bi + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ----------------------------------------------------------------------------------------------- + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_PRIORITYGROUP_3 | 0-7 | 0-1 | 3 bi + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** | | | 1 bi + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ----------------------------------------------------------------------------------------------- + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_PRIORITYGROUP_4 | 0-15 | 0 | 4 bi + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** | | | 0 bi + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** =============================================================================================== + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Includes ------------------------------------------------------------------*/ + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** #include "stm32g4xx_hal.h" + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** @addtogroup STM32G4xx_HAL_Driver + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @{ + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** @addtogroup CORTEX + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @{ + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** #ifdef HAL_CORTEX_MODULE_ENABLED + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Private types -------------------------------------------------------------*/ + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Private variables ---------------------------------------------------------*/ + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Private constants ---------------------------------------------------------*/ + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Private macros ------------------------------------------------------------*/ + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Private functions ---------------------------------------------------------*/ + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Exported functions --------------------------------------------------------*/ + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** @addtogroup CORTEX_Exported_Functions + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @{ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** @addtogroup CORTEX_Exported_Functions_Group1 + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Initialization and Configuration functions + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** @verbatim + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ============================================================================== + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ##### Initialization and Configuration functions ##### + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ============================================================================== + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** [..] + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** This section provides the CORTEX HAL driver functions allowing to configure Interrupts + ARM GAS /tmp/ccVsbRnC.s page 62 + + + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** SysTick functionalities + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** @endverbatim + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @{ + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Set the priority grouping field (pre-emption priority and subpriority) + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * using the required unlock sequence. + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param PriorityGroup: The priority grouping bits length. + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be one of the following values: + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_0: 0 bit for pre-emption priority, + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 4 bits for subpriority + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_1: 1 bit for pre-emption priority, + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 3 bits for subpriority + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_2: 2 bits for pre-emption priority, + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 2 bits for subpriority + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_3: 3 bits for pre-emption priority, + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 1 bit for subpriority + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority, + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 0 bit for subpriority + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * The pending IRQ priority will be managed only by the subpriority. + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 457 .loc 1 164 1 view -0 + 458 .cfi_startproc + 459 @ args = 0, pretend = 0, frame = 0 + 460 @ frame_needed = 0, uses_anonymous_args = 0 + 461 @ link register save eliminated. + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + 462 .loc 1 166 3 view .LVU114 + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_SetPriorityGrouping(PriorityGroup); + 463 .loc 1 169 3 view .LVU115 + 464 .LBB44: + 465 .LBI44: +1648:Drivers/CMSIS/Include/core_cm4.h **** { + 466 .loc 2 1648 22 view .LVU116 + 467 .LBB45: +1650:Drivers/CMSIS/Include/core_cm4.h **** uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 a + 468 .loc 2 1650 3 view .LVU117 +1651:Drivers/CMSIS/Include/core_cm4.h **** + 469 .loc 2 1651 3 view .LVU118 +1653:Drivers/CMSIS/Include/core_cm4.h **** reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to chan + 470 .loc 2 1653 3 view .LVU119 +1653:Drivers/CMSIS/Include/core_cm4.h **** reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to chan + 471 .loc 2 1653 14 is_stmt 0 view .LVU120 + 472 0000 074A ldr r2, .L32 + 473 0002 D368 ldr r3, [r2, #12] + 474 .LVL29: +1654:Drivers/CMSIS/Include/core_cm4.h **** reg_value = (reg_value | + ARM GAS /tmp/ccVsbRnC.s page 63 + + + 475 .loc 2 1654 3 is_stmt 1 view .LVU121 +1654:Drivers/CMSIS/Include/core_cm4.h **** reg_value = (reg_value | + 476 .loc 2 1654 13 is_stmt 0 view .LVU122 + 477 0004 23F4E063 bic r3, r3, #1792 + 478 .LVL30: +1654:Drivers/CMSIS/Include/core_cm4.h **** reg_value = (reg_value | + 479 .loc 2 1654 13 view .LVU123 + 480 0008 1B04 lsls r3, r3, #16 + 481 000a 1B0C lsrs r3, r3, #16 + 482 .LVL31: +1655:Drivers/CMSIS/Include/core_cm4.h **** ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 483 .loc 2 1655 3 is_stmt 1 view .LVU124 +1657:Drivers/CMSIS/Include/core_cm4.h **** SCB->AIRCR = reg_value; + 484 .loc 2 1657 35 is_stmt 0 view .LVU125 + 485 000c 0002 lsls r0, r0, #8 + 486 .LVL32: +1657:Drivers/CMSIS/Include/core_cm4.h **** SCB->AIRCR = reg_value; + 487 .loc 2 1657 35 view .LVU126 + 488 000e 00F4E060 and r0, r0, #1792 +1656:Drivers/CMSIS/Include/core_cm4.h **** (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key a + 489 .loc 2 1656 62 view .LVU127 + 490 0012 0343 orrs r3, r3, r0 + 491 .LVL33: +1655:Drivers/CMSIS/Include/core_cm4.h **** ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 492 .loc 2 1655 14 view .LVU128 + 493 0014 43F0BF63 orr r3, r3, #100139008 + 494 0018 43F40033 orr r3, r3, #131072 + 495 .LVL34: +1658:Drivers/CMSIS/Include/core_cm4.h **** } + 496 .loc 2 1658 3 is_stmt 1 view .LVU129 +1658:Drivers/CMSIS/Include/core_cm4.h **** } + 497 .loc 2 1658 14 is_stmt 0 view .LVU130 + 498 001c D360 str r3, [r2, #12] + 499 .LVL35: +1658:Drivers/CMSIS/Include/core_cm4.h **** } + 500 .loc 2 1658 14 view .LVU131 + 501 .LBE45: + 502 .LBE44: + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 503 .loc 1 170 1 view .LVU132 + 504 001e 7047 bx lr + 505 .L33: + 506 .align 2 + 507 .L32: + 508 0020 00ED00E0 .word -536810240 + 509 .cfi_endproc + 510 .LFE329: + 512 .section .text.HAL_NVIC_SetPriority,"ax",%progbits + 513 .align 1 + 514 .global HAL_NVIC_SetPriority + 515 .syntax unified + 516 .thumb + 517 .thumb_func + 519 HAL_NVIC_SetPriority: + 520 .LVL36: + 521 .LFB330: + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + ARM GAS /tmp/ccVsbRnC.s page 64 + + + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Set the priority of an interrupt. + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn: External interrupt number. + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param PreemptPriority: The pre-emption priority for the IRQn channel. + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be a value between 0 and 15 + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * A lower priority value indicates a higher priority + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param SubPriority: the subpriority level for the IRQ channel. + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be a value between 0 and 15 + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * A lower priority value indicates a higher priority. + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 522 .loc 1 186 1 is_stmt 1 view -0 + 523 .cfi_startproc + 524 @ args = 0, pretend = 0, frame = 0 + 525 @ frame_needed = 0, uses_anonymous_args = 0 + 526 .loc 1 186 1 is_stmt 0 view .LVU134 + 527 0000 10B5 push {r4, lr} + 528 .LCFI2: + 529 .cfi_def_cfa_offset 8 + 530 .cfi_offset 4, -8 + 531 .cfi_offset 14, -4 + 532 0002 0446 mov r4, r0 + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** uint32_t prioritygroup; + 533 .loc 1 187 3 is_stmt 1 view .LVU135 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); + 534 .loc 1 190 3 view .LVU136 + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); + 535 .loc 1 191 3 view .LVU137 + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** prioritygroup = NVIC_GetPriorityGrouping(); + 536 .loc 1 193 3 view .LVU138 + 537 .LBB46: + 538 .LBI46: +1667:Drivers/CMSIS/Include/core_cm4.h **** { + 539 .loc 2 1667 26 view .LVU139 + 540 .LBB47: +1669:Drivers/CMSIS/Include/core_cm4.h **** } + 541 .loc 2 1669 3 view .LVU140 +1669:Drivers/CMSIS/Include/core_cm4.h **** } + 542 .loc 2 1669 26 is_stmt 0 view .LVU141 + 543 0004 054B ldr r3, .L36 + 544 0006 D868 ldr r0, [r3, #12] + 545 .LVL37: +1669:Drivers/CMSIS/Include/core_cm4.h **** } + 546 .loc 2 1669 26 view .LVU142 + 547 .LBE47: + 548 .LBE46: + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 549 .loc 1 195 3 is_stmt 1 view .LVU143 + 550 0008 C0F30220 ubfx r0, r0, #8, #3 + ARM GAS /tmp/ccVsbRnC.s page 65 + + + 551 .LVL38: + 552 .loc 1 195 3 is_stmt 0 view .LVU144 + 553 000c FFF7FEFF bl NVIC_EncodePriority + 554 .LVL39: + 555 .loc 1 195 3 view .LVU145 + 556 0010 0146 mov r1, r0 + 557 0012 2046 mov r0, r4 + 558 0014 FFF7FEFF bl __NVIC_SetPriority + 559 .LVL40: + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 560 .loc 1 196 1 view .LVU146 + 561 0018 10BD pop {r4, pc} + 562 .L37: + 563 001a 00BF .align 2 + 564 .L36: + 565 001c 00ED00E0 .word -536810240 + 566 .cfi_endproc + 567 .LFE330: + 569 .section .text.HAL_NVIC_EnableIRQ,"ax",%progbits + 570 .align 1 + 571 .global HAL_NVIC_EnableIRQ + 572 .syntax unified + 573 .thumb + 574 .thumb_func + 576 HAL_NVIC_EnableIRQ: + 577 .LVL41: + 578 .LFB331: + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Enable a device specific interrupt in the NVIC interrupt controller. + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @note To configure interrupts priority correctly, the NVIC_PriorityGroupConfig() + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * function should be called before. + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn External interrupt number. + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 579 .loc 1 208 1 is_stmt 1 view -0 + 580 .cfi_startproc + 581 @ args = 0, pretend = 0, frame = 0 + 582 @ frame_needed = 0, uses_anonymous_args = 0 + 583 .loc 1 208 1 is_stmt 0 view .LVU148 + 584 0000 08B5 push {r3, lr} + 585 .LCFI3: + 586 .cfi_def_cfa_offset 8 + 587 .cfi_offset 3, -8 + 588 .cfi_offset 14, -4 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + 589 .loc 1 210 3 is_stmt 1 view .LVU149 + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Enable interrupt */ + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_EnableIRQ(IRQn); + 590 .loc 1 213 3 view .LVU150 + 591 0002 FFF7FEFF bl __NVIC_EnableIRQ + ARM GAS /tmp/ccVsbRnC.s page 66 + + + 592 .LVL42: + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 593 .loc 1 214 1 is_stmt 0 view .LVU151 + 594 0006 08BD pop {r3, pc} + 595 .cfi_endproc + 596 .LFE331: + 598 .section .text.HAL_NVIC_DisableIRQ,"ax",%progbits + 599 .align 1 + 600 .global HAL_NVIC_DisableIRQ + 601 .syntax unified + 602 .thumb + 603 .thumb_func + 605 HAL_NVIC_DisableIRQ: + 606 .LVL43: + 607 .LFB332: + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Disable a device specific interrupt in the NVIC interrupt controller. + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn External interrupt number. + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 608 .loc 1 224 1 is_stmt 1 view -0 + 609 .cfi_startproc + 610 @ args = 0, pretend = 0, frame = 0 + 611 @ frame_needed = 0, uses_anonymous_args = 0 + 612 .loc 1 224 1 is_stmt 0 view .LVU153 + 613 0000 08B5 push {r3, lr} + 614 .LCFI4: + 615 .cfi_def_cfa_offset 8 + 616 .cfi_offset 3, -8 + 617 .cfi_offset 14, -4 + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + 618 .loc 1 226 3 is_stmt 1 view .LVU154 + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Disable interrupt */ + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_DisableIRQ(IRQn); + 619 .loc 1 229 3 view .LVU155 + 620 0002 FFF7FEFF bl __NVIC_DisableIRQ + 621 .LVL44: + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 622 .loc 1 230 1 is_stmt 0 view .LVU156 + 623 0006 08BD pop {r3, pc} + 624 .cfi_endproc + 625 .LFE332: + 627 .section .text.HAL_NVIC_SystemReset,"ax",%progbits + 628 .align 1 + 629 .global HAL_NVIC_SystemReset + 630 .syntax unified + 631 .thumb + 632 .thumb_func + 634 HAL_NVIC_SystemReset: + 635 .LFB333: + ARM GAS /tmp/ccVsbRnC.s page 67 + + + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Initiate a system reset request to reset the MCU. + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_SystemReset(void) + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 636 .loc 1 237 1 is_stmt 1 view -0 + 637 .cfi_startproc + 638 @ Volatile: function does not return. + 639 @ args = 0, pretend = 0, frame = 0 + 640 @ frame_needed = 0, uses_anonymous_args = 0 + 641 0000 08B5 push {r3, lr} + 642 .LCFI5: + 643 .cfi_def_cfa_offset 8 + 644 .cfi_offset 3, -8 + 645 .cfi_offset 14, -4 + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* System Reset */ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_SystemReset(); + 646 .loc 1 239 3 view .LVU158 + 647 0002 FFF7FEFF bl __NVIC_SystemReset + 648 .LVL45: + 649 .cfi_endproc + 650 .LFE333: + 652 .section .text.HAL_SYSTICK_Config,"ax",%progbits + 653 .align 1 + 654 .global HAL_SYSTICK_Config + 655 .syntax unified + 656 .thumb + 657 .thumb_func + 659 HAL_SYSTICK_Config: + 660 .LVL46: + 661 .LFB334: + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Initialize the System Timer with interrupt enabled and start the System Tick Timer (Sys + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * Counter is in free running mode to generate periodic interrupts. + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param TicksNumb: Specifies the ticks Number of ticks between two interrupts. + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval status: - 0 Function succeeded. + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * - 1 Function failed. + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 662 .loc 1 250 1 view -0 + 663 .cfi_startproc + 664 @ args = 0, pretend = 0, frame = 0 + 665 @ frame_needed = 0, uses_anonymous_args = 0 + 666 @ link register save eliminated. + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** return SysTick_Config(TicksNumb); + 667 .loc 1 251 4 view .LVU160 + 668 .LBB48: + 669 .LBI48: +1945:Drivers/CMSIS/Include/core_cm4.h **** } +1946:Drivers/CMSIS/Include/core_cm4.h **** } +1947:Drivers/CMSIS/Include/core_cm4.h **** +1948:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of CMSIS_Core_NVICFunctions */ + ARM GAS /tmp/ccVsbRnC.s page 68 + + +1949:Drivers/CMSIS/Include/core_cm4.h **** +1950:Drivers/CMSIS/Include/core_cm4.h **** +1951:Drivers/CMSIS/Include/core_cm4.h **** /* ########################## MPU functions #################################### */ +1952:Drivers/CMSIS/Include/core_cm4.h **** +1953:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +1954:Drivers/CMSIS/Include/core_cm4.h **** +1955:Drivers/CMSIS/Include/core_cm4.h **** #include "mpu_armv7.h" +1956:Drivers/CMSIS/Include/core_cm4.h **** +1957:Drivers/CMSIS/Include/core_cm4.h **** #endif +1958:Drivers/CMSIS/Include/core_cm4.h **** +1959:Drivers/CMSIS/Include/core_cm4.h **** +1960:Drivers/CMSIS/Include/core_cm4.h **** /* ########################## FPU functions #################################### */ +1961:Drivers/CMSIS/Include/core_cm4.h **** /** +1962:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_Core_FunctionInterface +1963:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_Core_FpuFunctions FPU Functions +1964:Drivers/CMSIS/Include/core_cm4.h **** \brief Function that provides FPU type. +1965:Drivers/CMSIS/Include/core_cm4.h **** @{ +1966:Drivers/CMSIS/Include/core_cm4.h **** */ +1967:Drivers/CMSIS/Include/core_cm4.h **** +1968:Drivers/CMSIS/Include/core_cm4.h **** /** +1969:Drivers/CMSIS/Include/core_cm4.h **** \brief get FPU type +1970:Drivers/CMSIS/Include/core_cm4.h **** \details returns the FPU type +1971:Drivers/CMSIS/Include/core_cm4.h **** \returns +1972:Drivers/CMSIS/Include/core_cm4.h **** - \b 0: No FPU +1973:Drivers/CMSIS/Include/core_cm4.h **** - \b 1: Single precision FPU +1974:Drivers/CMSIS/Include/core_cm4.h **** - \b 2: Double + Single precision FPU +1975:Drivers/CMSIS/Include/core_cm4.h **** */ +1976:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t SCB_GetFPUType(void) +1977:Drivers/CMSIS/Include/core_cm4.h **** { +1978:Drivers/CMSIS/Include/core_cm4.h **** uint32_t mvfr0; +1979:Drivers/CMSIS/Include/core_cm4.h **** +1980:Drivers/CMSIS/Include/core_cm4.h **** mvfr0 = FPU->MVFR0; +1981:Drivers/CMSIS/Include/core_cm4.h **** if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) +1982:Drivers/CMSIS/Include/core_cm4.h **** { +1983:Drivers/CMSIS/Include/core_cm4.h **** return 1U; /* Single precision FPU */ +1984:Drivers/CMSIS/Include/core_cm4.h **** } +1985:Drivers/CMSIS/Include/core_cm4.h **** else +1986:Drivers/CMSIS/Include/core_cm4.h **** { +1987:Drivers/CMSIS/Include/core_cm4.h **** return 0U; /* No FPU */ +1988:Drivers/CMSIS/Include/core_cm4.h **** } +1989:Drivers/CMSIS/Include/core_cm4.h **** } +1990:Drivers/CMSIS/Include/core_cm4.h **** +1991:Drivers/CMSIS/Include/core_cm4.h **** +1992:Drivers/CMSIS/Include/core_cm4.h **** /*@} end of CMSIS_Core_FpuFunctions */ +1993:Drivers/CMSIS/Include/core_cm4.h **** +1994:Drivers/CMSIS/Include/core_cm4.h **** +1995:Drivers/CMSIS/Include/core_cm4.h **** +1996:Drivers/CMSIS/Include/core_cm4.h **** /* ################################## SysTick function ######################################## +1997:Drivers/CMSIS/Include/core_cm4.h **** /** +1998:Drivers/CMSIS/Include/core_cm4.h **** \ingroup CMSIS_Core_FunctionInterface +1999:Drivers/CMSIS/Include/core_cm4.h **** \defgroup CMSIS_Core_SysTickFunctions SysTick Functions +2000:Drivers/CMSIS/Include/core_cm4.h **** \brief Functions that configure the System. +2001:Drivers/CMSIS/Include/core_cm4.h **** @{ +2002:Drivers/CMSIS/Include/core_cm4.h **** */ +2003:Drivers/CMSIS/Include/core_cm4.h **** +2004:Drivers/CMSIS/Include/core_cm4.h **** #if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) +2005:Drivers/CMSIS/Include/core_cm4.h **** + ARM GAS /tmp/ccVsbRnC.s page 69 + + +2006:Drivers/CMSIS/Include/core_cm4.h **** /** +2007:Drivers/CMSIS/Include/core_cm4.h **** \brief System Tick Configuration +2008:Drivers/CMSIS/Include/core_cm4.h **** \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. +2009:Drivers/CMSIS/Include/core_cm4.h **** Counter is in free running mode to generate periodic interrupts. +2010:Drivers/CMSIS/Include/core_cm4.h **** \param [in] ticks Number of ticks between two interrupts. +2011:Drivers/CMSIS/Include/core_cm4.h **** \return 0 Function succeeded. +2012:Drivers/CMSIS/Include/core_cm4.h **** \return 1 Function failed. +2013:Drivers/CMSIS/Include/core_cm4.h **** \note When the variable __Vendor_SysTickConfig is set to 1, then the +2014:Drivers/CMSIS/Include/core_cm4.h **** function SysTick_Config is not included. In this case, the file device. +2015:Drivers/CMSIS/Include/core_cm4.h **** must contain a vendor-specific implementation of this function. +2016:Drivers/CMSIS/Include/core_cm4.h **** */ +2017:Drivers/CMSIS/Include/core_cm4.h **** __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) + 670 .loc 2 2017 26 view .LVU161 + 671 .LBB49: +2018:Drivers/CMSIS/Include/core_cm4.h **** { +2019:Drivers/CMSIS/Include/core_cm4.h **** if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 672 .loc 2 2019 3 view .LVU162 + 673 .loc 2 2019 14 is_stmt 0 view .LVU163 + 674 0000 0138 subs r0, r0, #1 + 675 .LVL47: + 676 .loc 2 2019 6 view .LVU164 + 677 0002 B0F1807F cmp r0, #16777216 + 678 0006 0BD2 bcs .L46 +2020:Drivers/CMSIS/Include/core_cm4.h **** { +2021:Drivers/CMSIS/Include/core_cm4.h **** return (1UL); /* Reload value impossible */ +2022:Drivers/CMSIS/Include/core_cm4.h **** } +2023:Drivers/CMSIS/Include/core_cm4.h **** +2024:Drivers/CMSIS/Include/core_cm4.h **** SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 679 .loc 2 2024 3 is_stmt 1 view .LVU165 + 680 .loc 2 2024 18 is_stmt 0 view .LVU166 + 681 0008 4FF0E023 mov r3, #-536813568 + 682 000c 5861 str r0, [r3, #20] +2025:Drivers/CMSIS/Include/core_cm4.h **** NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Int + 683 .loc 2 2025 3 is_stmt 1 view .LVU167 + 684 .LVL48: + 685 .LBB50: + 686 .LBI50: +1809:Drivers/CMSIS/Include/core_cm4.h **** { + 687 .loc 2 1809 22 view .LVU168 + 688 .LBB51: +1811:Drivers/CMSIS/Include/core_cm4.h **** { + 689 .loc 2 1811 3 view .LVU169 +1817:Drivers/CMSIS/Include/core_cm4.h **** } + 690 .loc 2 1817 5 view .LVU170 +1817:Drivers/CMSIS/Include/core_cm4.h **** } + 691 .loc 2 1817 46 is_stmt 0 view .LVU171 + 692 000e 054A ldr r2, .L47 + 693 0010 F021 movs r1, #240 + 694 0012 82F82310 strb r1, [r2, #35] + 695 .LVL49: +1817:Drivers/CMSIS/Include/core_cm4.h **** } + 696 .loc 2 1817 46 view .LVU172 + 697 .LBE51: + 698 .LBE50: +2026:Drivers/CMSIS/Include/core_cm4.h **** SysTick->VAL = 0UL; /* Load the SysTick Counter Val + 699 .loc 2 2026 3 is_stmt 1 view .LVU173 + 700 .loc 2 2026 18 is_stmt 0 view .LVU174 + ARM GAS /tmp/ccVsbRnC.s page 70 + + + 701 0016 0020 movs r0, #0 + 702 .LVL50: + 703 .loc 2 2026 18 view .LVU175 + 704 0018 9861 str r0, [r3, #24] +2027:Drivers/CMSIS/Include/core_cm4.h **** SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 705 .loc 2 2027 3 is_stmt 1 view .LVU176 + 706 .loc 2 2027 18 is_stmt 0 view .LVU177 + 707 001a 0722 movs r2, #7 + 708 001c 1A61 str r2, [r3, #16] +2028:Drivers/CMSIS/Include/core_cm4.h **** SysTick_CTRL_TICKINT_Msk | +2029:Drivers/CMSIS/Include/core_cm4.h **** SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTi +2030:Drivers/CMSIS/Include/core_cm4.h **** return (0UL); /* Function successful */ + 709 .loc 2 2030 3 is_stmt 1 view .LVU178 + 710 .loc 2 2030 10 is_stmt 0 view .LVU179 + 711 001e 7047 bx lr + 712 .L46: +2021:Drivers/CMSIS/Include/core_cm4.h **** } + 713 .loc 2 2021 12 view .LVU180 + 714 0020 0120 movs r0, #1 + 715 .LVL51: +2021:Drivers/CMSIS/Include/core_cm4.h **** } + 716 .loc 2 2021 12 view .LVU181 + 717 .LBE49: + 718 .LBE48: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 719 .loc 1 252 1 view .LVU182 + 720 0022 7047 bx lr + 721 .L48: + 722 .align 2 + 723 .L47: + 724 0024 00ED00E0 .word -536810240 + 725 .cfi_endproc + 726 .LFE334: + 728 .section .text.HAL_NVIC_GetPriorityGrouping,"ax",%progbits + 729 .align 1 + 730 .global HAL_NVIC_GetPriorityGrouping + 731 .syntax unified + 732 .thumb + 733 .thumb_func + 735 HAL_NVIC_GetPriorityGrouping: + 736 .LFB335: + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @} + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** @addtogroup CORTEX_Exported_Functions_Group2 + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Cortex control functions + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** @verbatim + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ============================================================================== + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ##### Peripheral Control functions ##### + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ============================================================================== + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** [..] + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** This subsection provides a set of functions allowing to control the CORTEX + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** (NVIC, SYSTICK, MPU) functionalities. + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + ARM GAS /tmp/ccVsbRnC.s page 71 + + + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** @endverbatim + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @{ + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Get the priority grouping field from the NVIC Interrupt Controller. + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field) + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** uint32_t HAL_NVIC_GetPriorityGrouping(void) + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 737 .loc 1 278 1 is_stmt 1 view -0 + 738 .cfi_startproc + 739 @ args = 0, pretend = 0, frame = 0 + 740 @ frame_needed = 0, uses_anonymous_args = 0 + 741 @ link register save eliminated. + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Get the PRIGROUP[10:8] field value */ + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** return NVIC_GetPriorityGrouping(); + 742 .loc 1 280 3 view .LVU184 + 743 .LBB52: + 744 .LBI52: +1667:Drivers/CMSIS/Include/core_cm4.h **** { + 745 .loc 2 1667 26 view .LVU185 + 746 .LBB53: +1669:Drivers/CMSIS/Include/core_cm4.h **** } + 747 .loc 2 1669 3 view .LVU186 +1669:Drivers/CMSIS/Include/core_cm4.h **** } + 748 .loc 2 1669 26 is_stmt 0 view .LVU187 + 749 0000 024B ldr r3, .L50 + 750 0002 D868 ldr r0, [r3, #12] + 751 .LBE53: + 752 .LBE52: + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 753 .loc 1 281 1 view .LVU188 + 754 0004 C0F30220 ubfx r0, r0, #8, #3 + 755 0008 7047 bx lr + 756 .L51: + 757 000a 00BF .align 2 + 758 .L50: + 759 000c 00ED00E0 .word -536810240 + 760 .cfi_endproc + 761 .LFE335: + 763 .section .text.HAL_NVIC_GetPriority,"ax",%progbits + 764 .align 1 + 765 .global HAL_NVIC_GetPriority + 766 .syntax unified + 767 .thumb + 768 .thumb_func + 770 HAL_NVIC_GetPriority: + 771 .LVL52: + 772 .LFB336: + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Get the priority of an interrupt. + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn: External interrupt number. + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param PriorityGroup: the priority grouping bits length. + ARM GAS /tmp/ccVsbRnC.s page 72 + + + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be one of the following values: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_0: 0 bit for pre-emption priority, + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 4 bits for subpriority + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_1: 1 bit for pre-emption priority, + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 3 bits for subpriority + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_2: 2 bits for pre-emption priority, + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 2 bits for subpriority + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_3: 3 bits for pre-emption priority, + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 1 bit for subpriority + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority, + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * 0 bit for subpriority + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param pPreemptPriority: Pointer on the Preemptive priority value (starting from 0). + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param pSubPriority: Pointer on the Subpriority value (starting from 0). + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t *pPreemptPriority, uint3 + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 773 .loc 1 305 1 is_stmt 1 view -0 + 774 .cfi_startproc + 775 @ args = 0, pretend = 0, frame = 0 + 776 @ frame_needed = 0, uses_anonymous_args = 0 + 777 .loc 1 305 1 is_stmt 0 view .LVU190 + 778 0000 70B5 push {r4, r5, r6, lr} + 779 .LCFI6: + 780 .cfi_def_cfa_offset 16 + 781 .cfi_offset 4, -16 + 782 .cfi_offset 5, -12 + 783 .cfi_offset 6, -8 + 784 .cfi_offset 14, -4 + 785 0002 0C46 mov r4, r1 + 786 0004 1546 mov r5, r2 + 787 0006 1E46 mov r6, r3 + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + 788 .loc 1 307 3 is_stmt 1 view .LVU191 + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Get priority for Cortex-M system or device specific interrupts */ + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_DecodePriority(NVIC_GetPriority(IRQn), PriorityGroup, pPreemptPriority, pSubPriority); + 789 .loc 1 309 3 view .LVU192 + 790 0008 FFF7FEFF bl __NVIC_GetPriority + 791 .LVL53: + 792 .loc 1 309 3 is_stmt 0 view .LVU193 + 793 000c 3346 mov r3, r6 + 794 000e 2A46 mov r2, r5 + 795 0010 2146 mov r1, r4 + 796 0012 FFF7FEFF bl NVIC_DecodePriority + 797 .LVL54: + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 798 .loc 1 310 1 view .LVU194 + 799 0016 70BD pop {r4, r5, r6, pc} + 800 .loc 1 310 1 view .LVU195 + 801 .cfi_endproc + 802 .LFE336: + 804 .section .text.HAL_NVIC_SetPendingIRQ,"ax",%progbits + 805 .align 1 + 806 .global HAL_NVIC_SetPendingIRQ + 807 .syntax unified + 808 .thumb + ARM GAS /tmp/ccVsbRnC.s page 73 + + + 809 .thumb_func + 811 HAL_NVIC_SetPendingIRQ: + 812 .LVL55: + 813 .LFB337: + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Set Pending bit of an external interrupt. + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn External interrupt number + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 814 .loc 1 320 1 is_stmt 1 view -0 + 815 .cfi_startproc + 816 @ args = 0, pretend = 0, frame = 0 + 817 @ frame_needed = 0, uses_anonymous_args = 0 + 818 @ link register save eliminated. + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + 819 .loc 1 322 3 view .LVU197 + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Set interrupt pending */ + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_SetPendingIRQ(IRQn); + 820 .loc 1 325 3 view .LVU198 + 821 .LBB54: + 822 .LBI54: +1755:Drivers/CMSIS/Include/core_cm4.h **** { + 823 .loc 2 1755 22 view .LVU199 + 824 .LBB55: +1757:Drivers/CMSIS/Include/core_cm4.h **** { + 825 .loc 2 1757 3 view .LVU200 +1757:Drivers/CMSIS/Include/core_cm4.h **** { + 826 .loc 2 1757 6 is_stmt 0 view .LVU201 + 827 0000 0028 cmp r0, #0 + 828 .LVL56: +1757:Drivers/CMSIS/Include/core_cm4.h **** { + 829 .loc 2 1757 6 view .LVU202 + 830 0002 08DB blt .L54 +1759:Drivers/CMSIS/Include/core_cm4.h **** } + 831 .loc 2 1759 5 is_stmt 1 view .LVU203 +1759:Drivers/CMSIS/Include/core_cm4.h **** } + 832 .loc 2 1759 81 is_stmt 0 view .LVU204 + 833 0004 00F01F02 and r2, r0, #31 +1759:Drivers/CMSIS/Include/core_cm4.h **** } + 834 .loc 2 1759 34 view .LVU205 + 835 0008 4009 lsrs r0, r0, #5 +1759:Drivers/CMSIS/Include/core_cm4.h **** } + 836 .loc 2 1759 45 view .LVU206 + 837 000a 0123 movs r3, #1 + 838 000c 9340 lsls r3, r3, r2 +1759:Drivers/CMSIS/Include/core_cm4.h **** } + 839 .loc 2 1759 43 view .LVU207 + 840 000e 4030 adds r0, r0, #64 + 841 0010 014A ldr r2, .L56 + 842 0012 42F82030 str r3, [r2, r0, lsl #2] + ARM GAS /tmp/ccVsbRnC.s page 74 + + + 843 .LVL57: + 844 .L54: +1759:Drivers/CMSIS/Include/core_cm4.h **** } + 845 .loc 2 1759 43 view .LVU208 + 846 .LBE55: + 847 .LBE54: + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 848 .loc 1 326 1 view .LVU209 + 849 0016 7047 bx lr + 850 .L57: + 851 .align 2 + 852 .L56: + 853 0018 00E100E0 .word -536813312 + 854 .cfi_endproc + 855 .LFE337: + 857 .section .text.HAL_NVIC_GetPendingIRQ,"ax",%progbits + 858 .align 1 + 859 .global HAL_NVIC_GetPendingIRQ + 860 .syntax unified + 861 .thumb + 862 .thumb_func + 864 HAL_NVIC_GetPendingIRQ: + 865 .LVL58: + 866 .LFB338: + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Get Pending Interrupt (read the pending register in the NVIC + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * and return the pending bit for the specified interrupt). + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn External interrupt number. + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval status: - 0 Interrupt status is not pending. + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * - 1 Interrupt status is pending. + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 867 .loc 1 338 1 is_stmt 1 view -0 + 868 .cfi_startproc + 869 @ args = 0, pretend = 0, frame = 0 + 870 @ frame_needed = 0, uses_anonymous_args = 0 + 871 @ link register save eliminated. + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + 872 .loc 1 340 3 view .LVU211 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Return 1 if pending else 0 */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** return NVIC_GetPendingIRQ(IRQn); + 873 .loc 1 343 3 view .LVU212 + 874 .LBB56: + 875 .LBI56: +1736:Drivers/CMSIS/Include/core_cm4.h **** { + 876 .loc 2 1736 26 view .LVU213 + 877 .LBB57: +1738:Drivers/CMSIS/Include/core_cm4.h **** { + 878 .loc 2 1738 3 view .LVU214 +1738:Drivers/CMSIS/Include/core_cm4.h **** { + 879 .loc 2 1738 6 is_stmt 0 view .LVU215 + ARM GAS /tmp/ccVsbRnC.s page 75 + + + 880 0000 0028 cmp r0, #0 + 881 .LVL59: +1738:Drivers/CMSIS/Include/core_cm4.h **** { + 882 .loc 2 1738 6 view .LVU216 + 883 0002 0BDB blt .L60 +1740:Drivers/CMSIS/Include/core_cm4.h **** } + 884 .loc 2 1740 5 is_stmt 1 view .LVU217 +1740:Drivers/CMSIS/Include/core_cm4.h **** } + 885 .loc 2 1740 54 is_stmt 0 view .LVU218 + 886 0004 4309 lsrs r3, r0, #5 +1740:Drivers/CMSIS/Include/core_cm4.h **** } + 887 .loc 2 1740 35 view .LVU219 + 888 0006 4033 adds r3, r3, #64 + 889 0008 054A ldr r2, .L61 + 890 000a 52F82330 ldr r3, [r2, r3, lsl #2] +1740:Drivers/CMSIS/Include/core_cm4.h **** } + 891 .loc 2 1740 91 view .LVU220 + 892 000e 00F01F00 and r0, r0, #31 +1740:Drivers/CMSIS/Include/core_cm4.h **** } + 893 .loc 2 1740 103 view .LVU221 + 894 0012 23FA00F0 lsr r0, r3, r0 +1740:Drivers/CMSIS/Include/core_cm4.h **** } + 895 .loc 2 1740 12 view .LVU222 + 896 0016 00F00100 and r0, r0, #1 + 897 001a 7047 bx lr + 898 .L60: +1744:Drivers/CMSIS/Include/core_cm4.h **** } + 899 .loc 2 1744 11 view .LVU223 + 900 001c 0020 movs r0, #0 + 901 .LVL60: +1744:Drivers/CMSIS/Include/core_cm4.h **** } + 902 .loc 2 1744 11 view .LVU224 + 903 .LBE57: + 904 .LBE56: + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 905 .loc 1 344 1 view .LVU225 + 906 001e 7047 bx lr + 907 .L62: + 908 .align 2 + 909 .L61: + 910 0020 00E100E0 .word -536813312 + 911 .cfi_endproc + 912 .LFE338: + 914 .section .text.HAL_NVIC_ClearPendingIRQ,"ax",%progbits + 915 .align 1 + 916 .global HAL_NVIC_ClearPendingIRQ + 917 .syntax unified + 918 .thumb + 919 .thumb_func + 921 HAL_NVIC_ClearPendingIRQ: + 922 .LVL61: + 923 .LFB339: + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Clear the pending bit of an external interrupt. + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn External interrupt number. + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + ARM GAS /tmp/ccVsbRnC.s page 76 + + + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 924 .loc 1 354 1 is_stmt 1 view -0 + 925 .cfi_startproc + 926 @ args = 0, pretend = 0, frame = 0 + 927 @ frame_needed = 0, uses_anonymous_args = 0 + 928 @ link register save eliminated. + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + 929 .loc 1 356 3 view .LVU227 + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Clear pending interrupt */ + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** NVIC_ClearPendingIRQ(IRQn); + 930 .loc 1 359 3 view .LVU228 + 931 .LBB58: + 932 .LBI58: +1770:Drivers/CMSIS/Include/core_cm4.h **** { + 933 .loc 2 1770 22 view .LVU229 + 934 .LBB59: +1772:Drivers/CMSIS/Include/core_cm4.h **** { + 935 .loc 2 1772 3 view .LVU230 +1772:Drivers/CMSIS/Include/core_cm4.h **** { + 936 .loc 2 1772 6 is_stmt 0 view .LVU231 + 937 0000 0028 cmp r0, #0 + 938 .LVL62: +1772:Drivers/CMSIS/Include/core_cm4.h **** { + 939 .loc 2 1772 6 view .LVU232 + 940 0002 08DB blt .L63 +1774:Drivers/CMSIS/Include/core_cm4.h **** } + 941 .loc 2 1774 5 is_stmt 1 view .LVU233 +1774:Drivers/CMSIS/Include/core_cm4.h **** } + 942 .loc 2 1774 81 is_stmt 0 view .LVU234 + 943 0004 00F01F02 and r2, r0, #31 +1774:Drivers/CMSIS/Include/core_cm4.h **** } + 944 .loc 2 1774 34 view .LVU235 + 945 0008 4009 lsrs r0, r0, #5 +1774:Drivers/CMSIS/Include/core_cm4.h **** } + 946 .loc 2 1774 45 view .LVU236 + 947 000a 0123 movs r3, #1 + 948 000c 9340 lsls r3, r3, r2 +1774:Drivers/CMSIS/Include/core_cm4.h **** } + 949 .loc 2 1774 43 view .LVU237 + 950 000e 6030 adds r0, r0, #96 + 951 0010 014A ldr r2, .L65 + 952 0012 42F82030 str r3, [r2, r0, lsl #2] + 953 .LVL63: + 954 .L63: +1774:Drivers/CMSIS/Include/core_cm4.h **** } + 955 .loc 2 1774 43 view .LVU238 + 956 .LBE59: + 957 .LBE58: + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 958 .loc 1 360 1 view .LVU239 + 959 0016 7047 bx lr + ARM GAS /tmp/ccVsbRnC.s page 77 + + + 960 .L66: + 961 .align 2 + 962 .L65: + 963 0018 00E100E0 .word -536813312 + 964 .cfi_endproc + 965 .LFE339: + 967 .section .text.HAL_NVIC_GetActive,"ax",%progbits + 968 .align 1 + 969 .global HAL_NVIC_GetActive + 970 .syntax unified + 971 .thumb + 972 .thumb_func + 974 HAL_NVIC_GetActive: + 975 .LVL64: + 976 .LFB340: + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Get active interrupt (read the active register in NVIC and return the active bit). + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param IRQn External interrupt number + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be an enumerator of IRQn_Type enumeration + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSI + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval status: - 0 Interrupt status is not pending. + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * - 1 Interrupt status is pending. + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn) + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 977 .loc 1 371 1 is_stmt 1 view -0 + 978 .cfi_startproc + 979 @ args = 0, pretend = 0, frame = 0 + 980 @ frame_needed = 0, uses_anonymous_args = 0 + 981 @ link register save eliminated. + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Return 1 if active else 0 */ + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** return NVIC_GetActive(IRQn); + 982 .loc 1 373 3 view .LVU241 + 983 .LBB60: + 984 .LBI60: +1787:Drivers/CMSIS/Include/core_cm4.h **** { + 985 .loc 2 1787 26 view .LVU242 + 986 .LBB61: +1789:Drivers/CMSIS/Include/core_cm4.h **** { + 987 .loc 2 1789 3 view .LVU243 +1789:Drivers/CMSIS/Include/core_cm4.h **** { + 988 .loc 2 1789 6 is_stmt 0 view .LVU244 + 989 0000 0028 cmp r0, #0 + 990 .LVL65: +1789:Drivers/CMSIS/Include/core_cm4.h **** { + 991 .loc 2 1789 6 view .LVU245 + 992 0002 0BDB blt .L69 +1791:Drivers/CMSIS/Include/core_cm4.h **** } + 993 .loc 2 1791 5 is_stmt 1 view .LVU246 +1791:Drivers/CMSIS/Include/core_cm4.h **** } + 994 .loc 2 1791 54 is_stmt 0 view .LVU247 + 995 0004 4309 lsrs r3, r0, #5 +1791:Drivers/CMSIS/Include/core_cm4.h **** } + 996 .loc 2 1791 35 view .LVU248 + 997 0006 8033 adds r3, r3, #128 + 998 0008 054A ldr r2, .L70 + ARM GAS /tmp/ccVsbRnC.s page 78 + + + 999 000a 52F82330 ldr r3, [r2, r3, lsl #2] +1791:Drivers/CMSIS/Include/core_cm4.h **** } + 1000 .loc 2 1791 91 view .LVU249 + 1001 000e 00F01F00 and r0, r0, #31 +1791:Drivers/CMSIS/Include/core_cm4.h **** } + 1002 .loc 2 1791 103 view .LVU250 + 1003 0012 23FA00F0 lsr r0, r3, r0 +1791:Drivers/CMSIS/Include/core_cm4.h **** } + 1004 .loc 2 1791 12 view .LVU251 + 1005 0016 00F00100 and r0, r0, #1 + 1006 001a 7047 bx lr + 1007 .L69: +1795:Drivers/CMSIS/Include/core_cm4.h **** } + 1008 .loc 2 1795 11 view .LVU252 + 1009 001c 0020 movs r0, #0 + 1010 .LVL66: +1795:Drivers/CMSIS/Include/core_cm4.h **** } + 1011 .loc 2 1795 11 view .LVU253 + 1012 .LBE61: + 1013 .LBE60: + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1014 .loc 1 374 1 view .LVU254 + 1015 001e 7047 bx lr + 1016 .L71: + 1017 .align 2 + 1018 .L70: + 1019 0020 00E100E0 .word -536813312 + 1020 .cfi_endproc + 1021 .LFE340: + 1023 .section .text.HAL_SYSTICK_CLKSourceConfig,"ax",%progbits + 1024 .align 1 + 1025 .global HAL_SYSTICK_CLKSourceConfig + 1026 .syntax unified + 1027 .thumb + 1028 .thumb_func + 1030 HAL_SYSTICK_CLKSourceConfig: + 1031 .LVL67: + 1032 .LFB341: + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Configure the SysTick clock source. + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param CLKSource: specifies the SysTick clock source. + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be one of the following values: + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg SYSTICK_CLKSOURCE_HCLK_DIV8: AHB clock divided by 8 selected as SysTick clock + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg SYSTICK_CLKSOURCE_HCLK: AHB clock selected as SysTick clock source. + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource) + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 1033 .loc 1 385 1 is_stmt 1 view -0 + 1034 .cfi_startproc + 1035 @ args = 0, pretend = 0, frame = 0 + 1036 @ frame_needed = 0, uses_anonymous_args = 0 + 1037 @ link register save eliminated. + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_SYSTICK_CLK_SOURCE(CLKSource)); + 1038 .loc 1 387 3 view .LVU256 + ARM GAS /tmp/ccVsbRnC.s page 79 + + + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** if (CLKSource == SYSTICK_CLKSOURCE_HCLK) + 1039 .loc 1 388 3 view .LVU257 + 1040 .loc 1 388 6 is_stmt 0 view .LVU258 + 1041 0000 0428 cmp r0, #4 + 1042 0002 06D0 beq .L75 + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** SysTick->CTRL |= SYSTICK_CLKSOURCE_HCLK; + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** else + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** SysTick->CTRL &= ~SYSTICK_CLKSOURCE_HCLK; + 1043 .loc 1 394 5 is_stmt 1 view .LVU259 + 1044 .loc 1 394 12 is_stmt 0 view .LVU260 + 1045 0004 4FF0E022 mov r2, #-536813568 + 1046 0008 1369 ldr r3, [r2, #16] + 1047 .loc 1 394 19 view .LVU261 + 1048 000a 23F00403 bic r3, r3, #4 + 1049 000e 1361 str r3, [r2, #16] + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1050 .loc 1 396 1 view .LVU262 + 1051 0010 7047 bx lr + 1052 .L75: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1053 .loc 1 390 5 is_stmt 1 view .LVU263 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1054 .loc 1 390 12 is_stmt 0 view .LVU264 + 1055 0012 4FF0E022 mov r2, #-536813568 + 1056 0016 1369 ldr r3, [r2, #16] + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1057 .loc 1 390 19 view .LVU265 + 1058 0018 43F00403 orr r3, r3, #4 + 1059 001c 1361 str r3, [r2, #16] + 1060 001e 7047 bx lr + 1061 .cfi_endproc + 1062 .LFE341: + 1064 .section .text.HAL_SYSTICK_Callback,"ax",%progbits + 1065 .align 1 + 1066 .weak HAL_SYSTICK_Callback + 1067 .syntax unified + 1068 .thumb + 1069 .thumb_func + 1071 HAL_SYSTICK_Callback: + 1072 .LFB343: + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Handle SYSTICK interrupt request. + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_SYSTICK_IRQHandler(void) + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** HAL_SYSTICK_Callback(); + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief SYSTICK callback. + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + ARM GAS /tmp/ccVsbRnC.s page 80 + + + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** __weak void HAL_SYSTICK_Callback(void) + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 1073 .loc 1 412 1 is_stmt 1 view -0 + 1074 .cfi_startproc + 1075 @ args = 0, pretend = 0, frame = 0 + 1076 @ frame_needed = 0, uses_anonymous_args = 0 + 1077 @ link register save eliminated. + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** the HAL_SYSTICK_Callback could be implemented in the user file + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1078 .loc 1 416 1 view .LVU267 + 1079 0000 7047 bx lr + 1080 .cfi_endproc + 1081 .LFE343: + 1083 .section .text.HAL_SYSTICK_IRQHandler,"ax",%progbits + 1084 .align 1 + 1085 .global HAL_SYSTICK_IRQHandler + 1086 .syntax unified + 1087 .thumb + 1088 .thumb_func + 1090 HAL_SYSTICK_IRQHandler: + 1091 .LFB342: + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** HAL_SYSTICK_Callback(); + 1092 .loc 1 403 1 view -0 + 1093 .cfi_startproc + 1094 @ args = 0, pretend = 0, frame = 0 + 1095 @ frame_needed = 0, uses_anonymous_args = 0 + 1096 0000 08B5 push {r3, lr} + 1097 .LCFI7: + 1098 .cfi_def_cfa_offset 8 + 1099 .cfi_offset 3, -8 + 1100 .cfi_offset 14, -4 + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1101 .loc 1 404 3 view .LVU269 + 1102 0002 FFF7FEFF bl HAL_SYSTICK_Callback + 1103 .LVL68: + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 1104 .loc 1 405 1 is_stmt 0 view .LVU270 + 1105 0006 08BD pop {r3, pc} + 1106 .cfi_endproc + 1107 .LFE342: + 1109 .section .text.HAL_MPU_Enable,"ax",%progbits + 1110 .align 1 + 1111 .global HAL_MPU_Enable + 1112 .syntax unified + 1113 .thumb + 1114 .thumb_func + 1116 HAL_MPU_Enable: + 1117 .LVL69: + 1118 .LFB344: + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** #if (__MPU_PRESENT == 1) + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Enable the MPU. + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param MPU_Control: Specifies the control mode of the MPU during hard fault, + ARM GAS /tmp/ccVsbRnC.s page 81 + + + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * NMI, FAULTMASK and privileged accessto the default memory + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * This parameter can be one of the following values: + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg MPU_HFNMI_PRIVDEF_NONE + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg MPU_HARDFAULT_NMI + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg MPU_PRIVILEGED_DEFAULT + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @arg MPU_HFNMI_PRIVDEF + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_MPU_Enable(uint32_t MPU_Control) + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 1119 .loc 1 431 1 is_stmt 1 view -0 + 1120 .cfi_startproc + 1121 @ args = 0, pretend = 0, frame = 0 + 1122 @ frame_needed = 0, uses_anonymous_args = 0 + 1123 @ link register save eliminated. + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Enable the MPU */ + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->CTRL = (MPU_Control | MPU_CTRL_ENABLE_Msk); + 1124 .loc 1 433 3 view .LVU272 + 1125 .loc 1 433 28 is_stmt 0 view .LVU273 + 1126 0000 40F00100 orr r0, r0, #1 + 1127 .LVL70: + 1128 .loc 1 433 13 view .LVU274 + 1129 0004 034B ldr r3, .L80 + 1130 0006 C3F89400 str r0, [r3, #148] + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Ensure MPU setting take effects */ + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** __DSB(); + 1131 .loc 1 436 3 is_stmt 1 view .LVU275 + 1132 .LBB62: + 1133 .LBI62: + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1134 .loc 3 944 27 view .LVU276 + 1135 .LBB63: + 1136 .loc 3 946 3 view .LVU277 + 1137 .syntax unified + 1138 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1139 000a BFF34F8F dsb 0xF + 1140 @ 0 "" 2 + 1141 .thumb + 1142 .syntax unified + 1143 .LBE63: + 1144 .LBE62: + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** __ISB(); + 1145 .loc 1 437 3 view .LVU278 + 1146 .LBB64: + 1147 .LBI64: + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1148 .loc 3 933 27 view .LVU279 + 1149 .LBB65: + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1150 .loc 3 935 3 view .LVU280 + 1151 .syntax unified + 1152 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1153 000e BFF36F8F isb 0xF + 1154 @ 0 "" 2 + 1155 .thumb + 1156 .syntax unified + ARM GAS /tmp/ccVsbRnC.s page 82 + + + 1157 .LBE65: + 1158 .LBE64: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1159 .loc 1 438 1 is_stmt 0 view .LVU281 + 1160 0012 7047 bx lr + 1161 .L81: + 1162 .align 2 + 1163 .L80: + 1164 0014 00ED00E0 .word -536810240 + 1165 .cfi_endproc + 1166 .LFE344: + 1168 .section .text.HAL_MPU_Disable,"ax",%progbits + 1169 .align 1 + 1170 .global HAL_MPU_Disable + 1171 .syntax unified + 1172 .thumb + 1173 .thumb_func + 1175 HAL_MPU_Disable: + 1176 .LFB345: + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Disable the MPU. + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_MPU_Disable(void) + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 1177 .loc 1 446 1 is_stmt 1 view -0 + 1178 .cfi_startproc + 1179 @ args = 0, pretend = 0, frame = 0 + 1180 @ frame_needed = 0, uses_anonymous_args = 0 + 1181 @ link register save eliminated. + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Make sure outstanding transfers are done */ + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** __DMB(); + 1182 .loc 1 448 3 view .LVU283 + 1183 .LBB66: + 1184 .LBI66: + 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 948:Drivers/CMSIS/Include/cmsis_gcc.h **** + 949:Drivers/CMSIS/Include/cmsis_gcc.h **** + 950:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier + 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before + 953:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. + 954:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 955:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) + 1185 .loc 3 955 27 view .LVU284 + 1186 .LBB67: + 956:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 957:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); + 1187 .loc 3 957 3 view .LVU285 + 1188 .syntax unified + 1189 @ 957 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1190 0000 BFF35F8F dmb 0xF + 1191 @ 0 "" 2 + 1192 .thumb + 1193 .syntax unified + ARM GAS /tmp/ccVsbRnC.s page 83 + + + 1194 .LBE67: + 1195 .LBE66: + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Disable the MPU and clear the control register*/ + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->CTRL = 0; + 1196 .loc 1 451 3 view .LVU286 + 1197 .loc 1 451 14 is_stmt 0 view .LVU287 + 1198 0004 024B ldr r3, .L83 + 1199 0006 0022 movs r2, #0 + 1200 0008 C3F89420 str r2, [r3, #148] + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1201 .loc 1 452 1 view .LVU288 + 1202 000c 7047 bx lr + 1203 .L84: + 1204 000e 00BF .align 2 + 1205 .L83: + 1206 0010 00ED00E0 .word -536810240 + 1207 .cfi_endproc + 1208 .LFE345: + 1210 .section .text.HAL_MPU_ConfigRegion,"ax",%progbits + 1211 .align 1 + 1212 .global HAL_MPU_ConfigRegion + 1213 .syntax unified + 1214 .thumb + 1215 .thumb_func + 1217 HAL_MPU_ConfigRegion: + 1218 .LVL71: + 1219 .LFB346: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /** + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @brief Initialize and configure the Region and the memory to be protected. + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @param MPU_Init: Pointer to a MPU_Region_InitTypeDef structure that contains + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * the initialization and configuration information. + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** * @retval None + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** */ + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init) + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 1220 .loc 1 462 1 is_stmt 1 view -0 + 1221 .cfi_startproc + 1222 @ args = 0, pretend = 0, frame = 0 + 1223 @ frame_needed = 0, uses_anonymous_args = 0 + 1224 @ link register save eliminated. + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_REGION_NUMBER(MPU_Init->Number)); + 1225 .loc 1 464 3 view .LVU290 + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_REGION_ENABLE(MPU_Init->Enable)); + 1226 .loc 1 465 3 view .LVU291 + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Set the Region number */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->RNR = MPU_Init->Number; + 1227 .loc 1 468 3 view .LVU292 + 1228 .loc 1 468 22 is_stmt 0 view .LVU293 + 1229 0000 4278 ldrb r2, [r0, #1] @ zero_extendqisi2 + 1230 .loc 1 468 12 view .LVU294 + 1231 0002 164B ldr r3, .L88 + 1232 0004 C3F89820 str r2, [r3, #152] + ARM GAS /tmp/ccVsbRnC.s page 84 + + + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** if ((MPU_Init->Enable) != 0U) + 1233 .loc 1 470 3 is_stmt 1 view .LVU295 + 1234 .loc 1 470 16 is_stmt 0 view .LVU296 + 1235 0008 0378 ldrb r3, [r0] @ zero_extendqisi2 + 1236 .loc 1 470 6 view .LVU297 + 1237 000a FBB1 cbz r3, .L86 + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** /* Check the parameters */ + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_INSTRUCTION_ACCESS(MPU_Init->DisableExec)); + 1238 .loc 1 473 5 is_stmt 1 view .LVU298 + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_REGION_PERMISSION_ATTRIBUTE(MPU_Init->AccessPermission)); + 1239 .loc 1 474 5 view .LVU299 + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_TEX_LEVEL(MPU_Init->TypeExtField)); + 1240 .loc 1 475 5 view .LVU300 + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_ACCESS_SHAREABLE(MPU_Init->IsShareable)); + 1241 .loc 1 476 5 view .LVU301 + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_ACCESS_CACHEABLE(MPU_Init->IsCacheable)); + 1242 .loc 1 477 5 view .LVU302 + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_ACCESS_BUFFERABLE(MPU_Init->IsBufferable)); + 1243 .loc 1 478 5 view .LVU303 + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_SUB_REGION_DISABLE(MPU_Init->SubRegionDisable)); + 1244 .loc 1 479 5 view .LVU304 + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** assert_param(IS_MPU_REGION_SIZE(MPU_Init->Size)); + 1245 .loc 1 480 5 view .LVU305 + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->RBAR = MPU_Init->BaseAddress; + 1246 .loc 1 482 5 view .LVU306 + 1247 .loc 1 482 25 is_stmt 0 view .LVU307 + 1248 000c 4368 ldr r3, [r0, #4] + 1249 .loc 1 482 15 view .LVU308 + 1250 000e 134A ldr r2, .L88 + 1251 0010 C2F89C30 str r3, [r2, #156] + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) | + 1252 .loc 1 483 5 is_stmt 1 view .LVU309 + 1253 .loc 1 483 36 is_stmt 0 view .LVU310 + 1254 0014 017B ldrb r1, [r0, #12] @ zero_extendqisi2 + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | + 1255 .loc 1 484 36 view .LVU311 + 1256 0016 C37A ldrb r3, [r0, #11] @ zero_extendqisi2 + 1257 .loc 1 484 57 view .LVU312 + 1258 0018 1B06 lsls r3, r3, #24 + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) | + 1259 .loc 1 483 79 view .LVU313 + 1260 001a 43EA0173 orr r3, r3, r1, lsl #28 + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos) | + 1261 .loc 1 485 36 view .LVU314 + 1262 001e 817A ldrb r1, [r0, #10] @ zero_extendqisi2 + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | + 1263 .loc 1 484 79 view .LVU315 + 1264 0020 43EAC143 orr r3, r3, r1, lsl #19 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) | + 1265 .loc 1 486 36 view .LVU316 + 1266 0024 417B ldrb r1, [r0, #13] @ zero_extendqisi2 + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos) | + 1267 .loc 1 485 79 view .LVU317 + 1268 0026 43EA8143 orr r3, r3, r1, lsl #18 + ARM GAS /tmp/ccVsbRnC.s page 85 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) | + 1269 .loc 1 487 36 view .LVU318 + 1270 002a 817B ldrb r1, [r0, #14] @ zero_extendqisi2 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) | + 1271 .loc 1 486 79 view .LVU319 + 1272 002c 43EA4143 orr r3, r3, r1, lsl #17 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos) | + 1273 .loc 1 488 36 view .LVU320 + 1274 0030 C17B ldrb r1, [r0, #15] @ zero_extendqisi2 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) | + 1275 .loc 1 487 79 view .LVU321 + 1276 0032 43EA0143 orr r3, r3, r1, lsl #16 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) | + 1277 .loc 1 489 36 view .LVU322 + 1278 0036 417A ldrb r1, [r0, #9] @ zero_extendqisi2 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos) | + 1279 .loc 1 488 79 view .LVU323 + 1280 0038 43EA0123 orr r3, r3, r1, lsl #8 + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) | + 1281 .loc 1 490 36 view .LVU324 + 1282 003c 017A ldrb r1, [r0, #8] @ zero_extendqisi2 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) | + 1283 .loc 1 489 79 view .LVU325 + 1284 003e 43EA4103 orr r3, r3, r1, lsl #1 + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->Enable << MPU_RASR_ENABLE_Pos); + 1285 .loc 1 491 36 view .LVU326 + 1286 0042 0178 ldrb r1, [r0] @ zero_extendqisi2 + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) | + 1287 .loc 1 490 79 view .LVU327 + 1288 0044 0B43 orrs r3, r3, r1 + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | + 1289 .loc 1 483 15 view .LVU328 + 1290 0046 C2F8A030 str r3, [r2, #160] + 1291 004a 7047 bx lr + 1292 .L86: + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** else + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** { + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->RBAR = 0x00; + 1293 .loc 1 495 5 is_stmt 1 view .LVU329 + 1294 .loc 1 495 15 is_stmt 0 view .LVU330 + 1295 004c 034B ldr r3, .L88 + 1296 004e 0022 movs r2, #0 + 1297 0050 C3F89C20 str r2, [r3, #156] + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** MPU->RASR = 0x00; + 1298 .loc 1 496 5 is_stmt 1 view .LVU331 + 1299 .loc 1 496 15 is_stmt 0 view .LVU332 + 1300 0054 C3F8A020 str r2, [r3, #160] + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cortex.c **** } + 1301 .loc 1 498 1 view .LVU333 + 1302 0058 7047 bx lr + 1303 .L89: + 1304 005a 00BF .align 2 + 1305 .L88: + 1306 005c 00ED00E0 .word -536810240 + 1307 .cfi_endproc + ARM GAS /tmp/ccVsbRnC.s page 86 + + + 1308 .LFE346: + 1310 .text + 1311 .Letext0: + 1312 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1313 .file 5 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1314 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h" + ARM GAS /tmp/ccVsbRnC.s page 87 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_cortex.c + /tmp/ccVsbRnC.s:21 .text.__NVIC_EnableIRQ:00000000 $t + /tmp/ccVsbRnC.s:26 .text.__NVIC_EnableIRQ:00000000 __NVIC_EnableIRQ + /tmp/ccVsbRnC.s:60 .text.__NVIC_EnableIRQ:00000018 $d + /tmp/ccVsbRnC.s:65 .text.__NVIC_DisableIRQ:00000000 $t + /tmp/ccVsbRnC.s:70 .text.__NVIC_DisableIRQ:00000000 __NVIC_DisableIRQ + /tmp/ccVsbRnC.s:131 .text.__NVIC_DisableIRQ:00000020 $d + /tmp/ccVsbRnC.s:136 .text.__NVIC_SetPriority:00000000 $t + /tmp/ccVsbRnC.s:141 .text.__NVIC_SetPriority:00000000 __NVIC_SetPriority + /tmp/ccVsbRnC.s:184 .text.__NVIC_SetPriority:00000024 $d + /tmp/ccVsbRnC.s:189 .text.__NVIC_GetPriority:00000000 $t + /tmp/ccVsbRnC.s:194 .text.__NVIC_GetPriority:00000000 __NVIC_GetPriority + /tmp/ccVsbRnC.s:230 .text.__NVIC_GetPriority:00000020 $d + /tmp/ccVsbRnC.s:235 .text.NVIC_EncodePriority:00000000 $t + /tmp/ccVsbRnC.s:240 .text.NVIC_EncodePriority:00000000 NVIC_EncodePriority + /tmp/ccVsbRnC.s:302 .text.NVIC_DecodePriority:00000000 $t + /tmp/ccVsbRnC.s:307 .text.NVIC_DecodePriority:00000000 NVIC_DecodePriority + /tmp/ccVsbRnC.s:376 .text.__NVIC_SystemReset:00000000 $t + /tmp/ccVsbRnC.s:381 .text.__NVIC_SystemReset:00000000 __NVIC_SystemReset + /tmp/ccVsbRnC.s:442 .text.__NVIC_SystemReset:0000001c $d + /tmp/ccVsbRnC.s:448 .text.HAL_NVIC_SetPriorityGrouping:00000000 $t + /tmp/ccVsbRnC.s:454 .text.HAL_NVIC_SetPriorityGrouping:00000000 HAL_NVIC_SetPriorityGrouping + /tmp/ccVsbRnC.s:508 .text.HAL_NVIC_SetPriorityGrouping:00000020 $d + /tmp/ccVsbRnC.s:513 .text.HAL_NVIC_SetPriority:00000000 $t + /tmp/ccVsbRnC.s:519 .text.HAL_NVIC_SetPriority:00000000 HAL_NVIC_SetPriority + /tmp/ccVsbRnC.s:565 .text.HAL_NVIC_SetPriority:0000001c $d + /tmp/ccVsbRnC.s:570 .text.HAL_NVIC_EnableIRQ:00000000 $t + /tmp/ccVsbRnC.s:576 .text.HAL_NVIC_EnableIRQ:00000000 HAL_NVIC_EnableIRQ + /tmp/ccVsbRnC.s:599 .text.HAL_NVIC_DisableIRQ:00000000 $t + /tmp/ccVsbRnC.s:605 .text.HAL_NVIC_DisableIRQ:00000000 HAL_NVIC_DisableIRQ + /tmp/ccVsbRnC.s:628 .text.HAL_NVIC_SystemReset:00000000 $t + /tmp/ccVsbRnC.s:634 .text.HAL_NVIC_SystemReset:00000000 HAL_NVIC_SystemReset + /tmp/ccVsbRnC.s:653 .text.HAL_SYSTICK_Config:00000000 $t + /tmp/ccVsbRnC.s:659 .text.HAL_SYSTICK_Config:00000000 HAL_SYSTICK_Config + /tmp/ccVsbRnC.s:724 .text.HAL_SYSTICK_Config:00000024 $d + /tmp/ccVsbRnC.s:729 .text.HAL_NVIC_GetPriorityGrouping:00000000 $t + /tmp/ccVsbRnC.s:735 .text.HAL_NVIC_GetPriorityGrouping:00000000 HAL_NVIC_GetPriorityGrouping + /tmp/ccVsbRnC.s:759 .text.HAL_NVIC_GetPriorityGrouping:0000000c $d + /tmp/ccVsbRnC.s:764 .text.HAL_NVIC_GetPriority:00000000 $t + /tmp/ccVsbRnC.s:770 .text.HAL_NVIC_GetPriority:00000000 HAL_NVIC_GetPriority + /tmp/ccVsbRnC.s:805 .text.HAL_NVIC_SetPendingIRQ:00000000 $t + /tmp/ccVsbRnC.s:811 .text.HAL_NVIC_SetPendingIRQ:00000000 HAL_NVIC_SetPendingIRQ + /tmp/ccVsbRnC.s:853 .text.HAL_NVIC_SetPendingIRQ:00000018 $d + /tmp/ccVsbRnC.s:858 .text.HAL_NVIC_GetPendingIRQ:00000000 $t + /tmp/ccVsbRnC.s:864 .text.HAL_NVIC_GetPendingIRQ:00000000 HAL_NVIC_GetPendingIRQ + /tmp/ccVsbRnC.s:910 .text.HAL_NVIC_GetPendingIRQ:00000020 $d + /tmp/ccVsbRnC.s:915 .text.HAL_NVIC_ClearPendingIRQ:00000000 $t + /tmp/ccVsbRnC.s:921 .text.HAL_NVIC_ClearPendingIRQ:00000000 HAL_NVIC_ClearPendingIRQ + /tmp/ccVsbRnC.s:963 .text.HAL_NVIC_ClearPendingIRQ:00000018 $d + /tmp/ccVsbRnC.s:968 .text.HAL_NVIC_GetActive:00000000 $t + /tmp/ccVsbRnC.s:974 .text.HAL_NVIC_GetActive:00000000 HAL_NVIC_GetActive + /tmp/ccVsbRnC.s:1019 .text.HAL_NVIC_GetActive:00000020 $d + /tmp/ccVsbRnC.s:1024 .text.HAL_SYSTICK_CLKSourceConfig:00000000 $t + /tmp/ccVsbRnC.s:1030 .text.HAL_SYSTICK_CLKSourceConfig:00000000 HAL_SYSTICK_CLKSourceConfig + /tmp/ccVsbRnC.s:1065 .text.HAL_SYSTICK_Callback:00000000 $t + /tmp/ccVsbRnC.s:1071 .text.HAL_SYSTICK_Callback:00000000 HAL_SYSTICK_Callback + ARM GAS /tmp/ccVsbRnC.s page 88 + + + /tmp/ccVsbRnC.s:1084 .text.HAL_SYSTICK_IRQHandler:00000000 $t + /tmp/ccVsbRnC.s:1090 .text.HAL_SYSTICK_IRQHandler:00000000 HAL_SYSTICK_IRQHandler + /tmp/ccVsbRnC.s:1110 .text.HAL_MPU_Enable:00000000 $t + /tmp/ccVsbRnC.s:1116 .text.HAL_MPU_Enable:00000000 HAL_MPU_Enable + /tmp/ccVsbRnC.s:1164 .text.HAL_MPU_Enable:00000014 $d + /tmp/ccVsbRnC.s:1169 .text.HAL_MPU_Disable:00000000 $t + /tmp/ccVsbRnC.s:1175 .text.HAL_MPU_Disable:00000000 HAL_MPU_Disable + /tmp/ccVsbRnC.s:1206 .text.HAL_MPU_Disable:00000010 $d + /tmp/ccVsbRnC.s:1211 .text.HAL_MPU_ConfigRegion:00000000 $t + /tmp/ccVsbRnC.s:1217 .text.HAL_MPU_ConfigRegion:00000000 HAL_MPU_ConfigRegion + /tmp/ccVsbRnC.s:1306 .text.HAL_MPU_ConfigRegion:0000005c $d + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_hal_cortex.o b/squeow_sw/build/stm32g4xx_hal_cortex.o new file mode 100644 index 0000000000000000000000000000000000000000..38bad6156ca8e4fe395f654e7c7f7aebceb2a4e8 GIT binary patch literal 25756 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_dma.d b/squeow_sw/build/stm32g4xx_hal_dma.d new file mode 100644 index 0000000..e4464a4 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_dma.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_dma.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_dma.lst b/squeow_sw/build/stm32g4xx_hal_dma.lst new file mode 100644 index 0000000..238971c --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_dma.lst @@ -0,0 +1,3886 @@ +ARM GAS /tmp/ccCGP7ew.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_dma.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c" + 20 .section .text.DMA_SetConfig,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 DMA_SetConfig: + 27 .LVL0: + 28 .LFB341: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @file stm32g4xx_hal_dma.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief DMA HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * functionalities of the Direct Memory Access (DMA) peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + IO operation functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + Peripheral State and errors functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ****************************************************************************** + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @attention + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * Copyright (c) 2019 STMicroelectronics. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * All rights reserved. + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * This software is licensed under terms that can be found in the LICENSE file + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * in the root directory of this software component. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ****************************************************************************** + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @verbatim + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ============================================================================== + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ##### How to use this driver ##### + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ============================================================================== + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (#) Enable and configure the peripheral to be connected to the DMA Channel + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (except for internal SRAM / FLASH memories: no initialization is + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** necessary). Please refer to the Reference manual for connection between peripherals + ARM GAS /tmp/ccCGP7ew.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** and DMA requests. + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (#) For a given Channel, program the required configuration through the following parameters: + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** Channel request, Transfer Direction, Source and Destination data formats, + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** Circular or Normal mode, Channel Priority level, Source and Destination Increment mode + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** using HAL_DMA_Init() function. + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** Prior to HAL_DMA_Init the peripheral clock shall be enabled for both DMA & DMAMUX + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** thanks to: + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (##) DMA1 or DMA2: __HAL_RCC_DMA1_CLK_ENABLE() or __HAL_RCC_DMA2_CLK_ENABLE() ; + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (##) DMAMUX1: __HAL_RCC_DMAMUX1_CLK_ENABLE(); + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of er + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** detection. + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (#) Use HAL_DMA_Abort() function to abort the current transfer + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** -@- In Memory-to-Memory transfer mode, Circular mode is not allowed. + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** *** Polling mode IO operation *** + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ================================= + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** address and destination address and the Length of data to be transferred + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case a fixed Timeout can be configured by User depending from his application. + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** *** Interrupt mode IO operation *** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =================================== + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority() + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ() + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** Source address and destination address and the Length of data to be transferred. + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** In this case the DMA interrupt is configured + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** add his own function to register callbacks with HAL_DMA_RegisterCallback(). + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** *** DMA HAL driver macros list *** + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ============================================= + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** Below the list of macros in DMA HAL driver. + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_ENABLE: Enable the specified DMA Channel. + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_DISABLE: Disable the specified DMA Channel. + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_GET_FLAG: Get the DMA Channel pending flags. + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_CLEAR_FLAG: Clear the DMA Channel pending flags. + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Channel interrupts. + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Channel interrupts. + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Channel interrupt has occurred + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (@) You can refer to the DMA HAL driver header file for more useful macros + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @endverbatim + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + ARM GAS /tmp/ccCGP7ew.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Includes ------------------------------------------------------------------*/ + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #include "stm32g4xx_hal.h" + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @addtogroup STM32G4xx_HAL_Driver + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @defgroup DMA DMA + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief DMA HAL module driver + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #ifdef HAL_DMA_MODULE_ENABLED + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Private typedef -----------------------------------------------------------*/ + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Private define ------------------------------------------------------------*/ + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Private macro -------------------------------------------------------------*/ + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Private variables ---------------------------------------------------------*/ + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Private function prototypes -----------------------------------------------*/ + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @defgroup DMA_Private_Functions DMA Private Functions + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32 + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma); + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma); + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @} + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Exported functions ---------------------------------------------------------*/ + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @defgroup DMA_Exported_Functions DMA Exported Functions + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @defgroup DMA_Exported_Functions_Group1 Initialization and de-initialization functions + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Initialization and de-initialization functions + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @verbatim + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =============================================================================== + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ##### Initialization and de-initialization functions ##### + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =============================================================================== + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** This section provides functions allowing to initialize the DMA Channel source + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** and destination addresses, incrementation and data sizes, transfer direction, + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** circular/normal mode selection, memory-to-memory mode selection and Channel priority value. + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** The HAL_DMA_Init() function follows the DMA configuration procedures as described in + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** reference manual. + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @endverbatim + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Initialize the DMA according to the specified + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * parameters in the DMA_InitTypeDef and initialize the associated handle. + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t tmp; + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check the DMA handle allocation */ + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma == NULL) + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check the parameters */ + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc)); + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc)); + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment)); + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment)); + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_MODE(hdma->Init.Mode)); + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_ALL_REQUEST(hdma->Init.Request)); + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Compute the channel index */ + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA1 */ + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Ch + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA2 */ + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Ch + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change DMA peripheral state */ + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY; + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Get the CR register value */ + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** tmp = hdma->Instance->CCR; + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR and MEM2MEM bits */ + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CCR_DIR | DMA_CCR_MEM2MEM)); + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Prepare the DMA Channel configuration */ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** tmp |= hdma->Init.Direction | + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | + ARM GAS /tmp/ccCGP7ew.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Write to DMA Channel CR register */ + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CCR = tmp; + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize parameters for DMAMUX channel : + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAmuxChannel, DMAmuxChannelStatus and DMAmuxChannelStatusMask + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CalcDMAMUXChannelBaseAndMask(hdma); + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->Init.Direction == DMA_MEMORY_TO_MEMORY) + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* if memory to memory force the request to 0*/ + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.Request = DMA_REQUEST_MEM2MEM; + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Set peripheral request to DMAMUX channel */ + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannel->CCR = (hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID); + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX synchro overrun flag */ + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (((hdma->Init.Request > 0U) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR3))) + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize parameters for DMAMUX request generator : + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAmuxRequestGen, DMAmuxRequestGenStatus and DMAmuxRequestGenStatusMask + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CalcDMAMUXRequestGenBaseAndMask(hdma); + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Reset the DMAMUX request generator register*/ + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen->RGCR = 0U; + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX request generator overrun flag */ + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen = 0U; + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = 0U; + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 0U; + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize the error code */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize the DMA state*/ + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Allocate lock resource and initialize it */ + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Lock = HAL_UNLOCKED; + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_OK; + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief DeInitialize the DMA peripheral. + ARM GAS /tmp/ccCGP7ew.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma) + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check the DMA handle allocation */ + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (NULL == hdma) + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check the parameters */ + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the selected DMA Channelx */ + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Compute the channel index */ + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA1 */ + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Ch + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA2 */ + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Ch + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Reset DMA Channel control register */ + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CCR = 0; + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear all flags */ + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize parameters for DMAMUX channel : + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAmuxChannel, DMAmuxChannelStatus and DMAmuxChannelStatusMask */ + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CalcDMAMUXChannelBaseAndMask(hdma); + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Reset the DMAMUX channel that corresponds to the DMA channel */ + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannel->CCR = 0; + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX synchro overrun flag */ + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Reset Request generator parameters if any */ + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (((hdma->Init.Request > 0U) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR3))) + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize parameters for DMAMUX request generator : + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAmuxRequestGen, DMAmuxRequestGenStatus and DMAmuxRequestGenStatusMask + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CalcDMAMUXRequestGenBaseAndMask(hdma); + ARM GAS /tmp/ccCGP7ew.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Reset the DMAMUX request generator register*/ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen->RGCR = 0U; + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX request generator overrun flag */ + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen = 0U; + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = 0U; + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 0U; + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clean callbacks */ + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferCpltCallback = NULL; + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize the error code */ + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Initialize the DMA state */ + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_RESET; + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Release Lock */ + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_OK; + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @} + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @defgroup DMA_Exported_Functions_Group2 Input and Output operation functions + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Input and Output operation functions + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @verbatim + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =============================================================================== + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ##### IO operation functions ##### + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =============================================================================== + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] This section provides functions allowing to: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Configure the source, destination address and data length and Start DMA transfer + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Configure the source, destination address and data length and + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** Start DMA transfer with interrupt + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Abort DMA transfer + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Poll for transfer complete + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Handle DMA interrupt request + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @endverbatim + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Start the DMA Transfer. + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + ARM GAS /tmp/ccCGP7ew.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination (up to 256Kb + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check the parameters */ + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process locked */ + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_LOCK(hdma); + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_STATE_READY == hdma->State) + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change DMA peripheral state */ + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY; + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the peripheral */ + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure the source, destination address and the data length & clear flags*/ + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Enable the Peripheral */ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_ENABLE(hdma); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_BUSY; + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return status; + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Start the DMA Transfer with interrupt enabled. + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination (up to 256Kb + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddres + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t DataLength) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check the parameters */ + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process locked */ + ARM GAS /tmp/ccCGP7ew.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_LOCK(hdma); + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_STATE_READY == hdma->State) + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change DMA peripheral state */ + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY; + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the peripheral */ + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure the source, destination address and the data length & clear flags*/ + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Enable the transfer complete interrupt */ + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Enable the transfer Error interrupt */ + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (NULL != hdma->XferHalfCpltCallback) + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Enable the Half transfer complete interrupt as well */ + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_TE)); + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check if DMAMUX Synchronization is enabled*/ + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((hdma->DMAmuxChannel->CCR & DMAMUX_CxCR_SE) != 0U) + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Enable DMAMUX sync overrun IT*/ + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannel->CCR |= DMAMUX_CxCR_SOIE; + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->DMAmuxRequestGen != 0U) + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* if using DMAMUX request generator, enable the DMAMUX request generator overrun IT*/ + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* enable the request gen overrun IT*/ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_OIE; + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Enable the Peripheral */ + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_ENABLE(hdma); + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Remain BUSY */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_BUSY; + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return status; + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Abort the DMA Transfer. + ARM GAS /tmp/ccCGP7ew.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY) + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* no transfer ongoing */ + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_ERROR; + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable DMA IT */ + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* disable the DMAMUX sync overrun IT*/ + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the channel */ + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear all flags */ + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX synchro overrun flag */ + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->DMAmuxRequestGen != 0U) + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/ + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* disable the request gen overrun IT*/ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX request generator overrun flag */ + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return status; + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Aborts the DMA Transfer in Interrupt mode. + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + ARM GAS /tmp/ccCGP7ew.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_STATE_BUSY != hdma->State) + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* no transfer ongoing */ + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_ERROR; + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable DMA IT */ + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the channel */ + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* disable the DMAMUX sync overrun IT*/ + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear all flags */ + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX synchro overrun flag */ + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->DMAmuxRequestGen != 0U) + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* if using DMAMUX request generator, disable the DMAMUX request generator overrun IT*/ + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* disable the request gen overrun IT*/ + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX request generator overrun flag */ + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Call User Abort callback */ + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->XferAbortCallback != NULL) + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback(hdma); + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return status; + ARM GAS /tmp/ccCGP7ew.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Polling for transfer complete. + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param CompleteLevel Specifies the DMA level complete. + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param Timeout Timeout duration. + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef Com + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t Timeout) + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t temp; + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t tickstart; + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_STATE_BUSY != hdma->State) + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* no transfer ongoing */ + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Polling mode not supported in circular mode */ + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (0U != (hdma->Instance->CCR & DMA_CCR_CIRC)) + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Get the level transfer complete flag */ + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_FULL_TRANSFER == CompleteLevel) + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Transfer Complete flag */ + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** temp = (uint32_t)DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1FU); + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Half Transfer Complete flag */ + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** temp = (uint32_t)DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1FU); + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Get tick */ + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** tickstart = HAL_GetTick(); + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** while (0U == (hdma->DmaBaseAddress->ISR & temp)) + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((0U != (hdma->DmaBaseAddress->ISR & ((uint32_t)DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1FU) + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* When a DMA transfer error occurs */ + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* A hardware clear of its EN bits is performed */ + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear all flags */ + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Update error code */ + ARM GAS /tmp/ccCGP7ew.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TE; + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check for the Timeout */ + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (Timeout != HAL_MAX_DELAY) + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Update error code */ + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /*Check for DMAMUX Request generator (if used) overrun status */ + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->DMAmuxRequestGen != 0U) + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* if using DMAMUX request generator Check for DMAMUX request generator overrun */ + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((hdma->DMAmuxRequestGenStatus->RGSR & hdma->DMAmuxRequestGenStatusMask) != 0U) + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the request gen overrun interrupt */ + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_OIE; + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX request generator overrun flag */ + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Update error code */ + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_REQGEN; + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Check for DMAMUX Synchronization overrun */ + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((hdma->DMAmuxChannelStatus->CSR & hdma->DMAmuxChannelStatusMask) != 0U) + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX synchro overrun flag */ + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Update error code */ + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_SYNC; + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_FULL_TRANSFER == CompleteLevel) + ARM GAS /tmp/ccCGP7ew.s page 14 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the transfer complete flag */ + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1FU)); + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* The selected Channelx EN bit is cleared (DMA is disabled and + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** all transfers are complete) */ + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the half transfer complete flag */ + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1FU)); + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process unlocked */ + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_OK; + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Handle DMA interrupt request. + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval None + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t flag_it = hdma->DmaBaseAddress->ISR; + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t source_it = hdma->Instance->CCR; + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Half Transfer Complete Interrupt management ******************************/ + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((0U != (flag_it & ((uint32_t)DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1FU)))) && (0U != (sourc + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the half transfer interrupt */ + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the half transfer complete flag */ + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_HTIF1 << (hdma->ChannelIndex & 0x1FU)); + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA peripheral state is not updated in Half Transfer */ + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* but in Transfer Complete case */ + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->XferHalfCpltCallback != NULL) + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Half transfer callback */ + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback(hdma); + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Transfer Complete Interrupt management ***********************************/ + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else if ((0U != (flag_it & ((uint32_t)DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1FU)))) + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TC))) + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + ARM GAS /tmp/ccCGP7ew.s page 15 + + + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable the transfer complete and error interrupt */ + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC); + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the transfer complete flag */ + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_TCIF1 << (hdma->ChannelIndex & 0x1FU)); + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->XferCpltCallback != NULL) + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Transfer complete callback */ + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferCpltCallback(hdma); + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Transfer Error Interrupt management **************************************/ + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else if ((0U != (flag_it & ((uint32_t)DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1FU)))) + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TE))) + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* When a DMA transfer error occurs */ + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* A hardware clear of its EN bits is performed */ + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Disable ALL DMA IT */ + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear all flags */ + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = ((uint32_t)DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Update error code */ + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TE; + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Change the DMA state */ + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process Unlocked */ + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->XferErrorCallback != NULL) + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Transfer error callback */ + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback(hdma); + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Nothing To Do */ + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return; + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Register callbacks + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + ARM GAS /tmp/ccCGP7ew.s page 16 + + + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param CallbackID User Callback identifier + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param pCallback pointer to private callbacsk function which has pointer to + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * a DMA_HandleTypeDef structure as parameter. + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef Callb + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process locked */ + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_LOCK(hdma); + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_STATE_READY == hdma->State) + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** switch (CallbackID) + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_CPLT_CB_ID: + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferCpltCallback = pCallback; + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_HALFCPLT_CB_ID: + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = pCallback; + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_ERROR_CB_ID: + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = pCallback; + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_ABORT_CB_ID: + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = pCallback; + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** default: + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_ERROR; + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_ERROR; + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Release Lock */ + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return status; + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief UnRegister callbacks + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param CallbackID User Callback identifier + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + ARM GAS /tmp/ccCGP7ew.s page 17 + + + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef Cal + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Process locked */ + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_LOCK(hdma); + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (HAL_DMA_STATE_READY == hdma->State) + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** switch (CallbackID) + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_CPLT_CB_ID: + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferCpltCallback = NULL; + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_HALFCPLT_CB_ID: + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_ERROR_CB_ID: + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_ABORT_CB_ID: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** case HAL_DMA_XFER_ALL_CB_ID: + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferCpltCallback = NULL; + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** default: + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_ERROR; + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_ERROR; + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Release Lock */ + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return status; + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @} + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @defgroup DMA_Exported_Functions_Group3 Peripheral State and Errors functions + ARM GAS /tmp/ccCGP7ew.s page 18 + + + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Peripheral State and Errors functions + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @verbatim + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =============================================================================== + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** ##### Peripheral State and Errors functions ##### + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** =============================================================================== + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** [..] + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** This subsection provides functions allowing to + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Check the DMA state + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** (+) Get error code + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** @endverbatim + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Return the DMA hande state. + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL state + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Return DMA handle state */ + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return hdma->State; + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Return the DMA error code. + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma : pointer to a DMA_HandleTypeDef structure that contains + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval DMA Error Code + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma) + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return hdma->ErrorCode; + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @} + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @} + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** @addtogroup DMA_Private_Functions + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @{ + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Sets the DMA Transfer parameter. + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination + ARM GAS /tmp/ccCGP7ew.s page 19 + + +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval HAL status +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32 +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 29 .loc 1 1003 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 34 .loc 1 1003 1 is_stmt 0 view .LVU1 + 35 0000 30B4 push {r4, r5} + 36 .LCFI0: + 37 .cfi_def_cfa_offset 8 + 38 .cfi_offset 4, -8 + 39 .cfi_offset 5, -4 +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX synchro overrun flag */ +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 40 .loc 1 1005 3 is_stmt 1 view .LVU2 + 41 .loc 1 1005 7 is_stmt 0 view .LVU3 + 42 0002 C46C ldr r4, [r0, #76] + 43 .loc 1 1005 34 view .LVU4 + 44 0004 056D ldr r5, [r0, #80] + 45 0006 6560 str r5, [r4, #4] +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if (hdma->DMAmuxRequestGen != 0U) + 46 .loc 1 1007 3 is_stmt 1 view .LVU5 + 47 .loc 1 1007 11 is_stmt 0 view .LVU6 + 48 0008 446D ldr r4, [r0, #84] + 49 .loc 1 1007 6 view .LVU7 + 50 000a 14B1 cbz r4, .L2 +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear the DMAMUX request generator overrun flag */ +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 51 .loc 1 1010 5 is_stmt 1 view .LVU8 + 52 .loc 1 1010 9 is_stmt 0 view .LVU9 + 53 000c 846D ldr r4, [r0, #88] + 54 .loc 1 1010 41 view .LVU10 + 55 000e C56D ldr r5, [r0, #92] + 56 0010 6560 str r5, [r4, #4] + 57 .L2: +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Clear all flags */ +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1FU)); + 58 .loc 1 1014 3 is_stmt 1 view .LVU11 + 59 .loc 1 1014 54 is_stmt 0 view .LVU12 + 60 0012 446C ldr r4, [r0, #68] + 61 .loc 1 1014 69 view .LVU13 + 62 0014 04F01F0C and ip, r4, #31 + 63 .loc 1 1014 46 view .LVU14 + 64 0018 0124 movs r4, #1 + 65 001a 04FA0CF4 lsl r4, r4, ip + 66 .loc 1 1014 30 view .LVU15 + 67 001e 056C ldr r5, [r0, #64] + 68 0020 6C60 str r4, [r5, #4] +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure DMA Channel data length */ + ARM GAS /tmp/ccCGP7ew.s page 20 + + +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CNDTR = DataLength; + 69 .loc 1 1017 3 is_stmt 1 view .LVU16 + 70 .loc 1 1017 7 is_stmt 0 view .LVU17 + 71 0022 0468 ldr r4, [r0] + 72 .loc 1 1017 25 view .LVU18 + 73 0024 6360 str r3, [r4, #4] +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Memory to Peripheral */ +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) + 74 .loc 1 1020 3 is_stmt 1 view .LVU19 + 75 .loc 1 1020 18 is_stmt 0 view .LVU20 + 76 0026 8368 ldr r3, [r0, #8] + 77 .LVL1: + 78 .loc 1 1020 6 view .LVU21 + 79 0028 102B cmp r3, #16 + 80 002a 05D0 beq .L6 +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure DMA Channel destination address */ +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CPAR = DstAddress; +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure DMA Channel source address */ +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CMAR = SrcAddress; +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Peripheral to Memory */ +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure DMA Channel source address */ +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CPAR = SrcAddress; + 81 .loc 1 1032 5 is_stmt 1 view .LVU22 + 82 .loc 1 1032 9 is_stmt 0 view .LVU23 + 83 002c 0368 ldr r3, [r0] + 84 .loc 1 1032 26 view .LVU24 + 85 002e 9960 str r1, [r3, #8] + 86 .LVL2: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Configure DMA Channel destination address */ +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Instance->CMAR = DstAddress; + 87 .loc 1 1035 5 is_stmt 1 view .LVU25 + 88 .loc 1 1035 9 is_stmt 0 view .LVU26 + 89 0030 0368 ldr r3, [r0] + 90 .loc 1 1035 26 view .LVU27 + 91 0032 DA60 str r2, [r3, #12] + 92 .L1: +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 93 .loc 1 1037 1 view .LVU28 + 94 0034 30BC pop {r4, r5} + 95 .LCFI1: + 96 .cfi_remember_state + 97 .cfi_restore 5 + 98 .cfi_restore 4 + 99 .cfi_def_cfa_offset 0 + 100 0036 7047 bx lr + 101 .LVL3: + 102 .L6: + 103 .LCFI2: + 104 .cfi_restore_state + ARM GAS /tmp/ccCGP7ew.s page 21 + + +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 105 .loc 1 1023 5 is_stmt 1 view .LVU29 +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 106 .loc 1 1023 9 is_stmt 0 view .LVU30 + 107 0038 0368 ldr r3, [r0] +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 108 .loc 1 1023 26 view .LVU31 + 109 003a 9A60 str r2, [r3, #8] + 110 .LVL4: +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 111 .loc 1 1026 5 is_stmt 1 view .LVU32 +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 112 .loc 1 1026 9 is_stmt 0 view .LVU33 + 113 003c 0368 ldr r3, [r0] +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 114 .loc 1 1026 26 view .LVU34 + 115 003e D960 str r1, [r3, #12] + 116 0040 F8E7 b .L1 + 117 .cfi_endproc + 118 .LFE341: + 120 .section .text.DMA_CalcDMAMUXChannelBaseAndMask,"ax",%progbits + 121 .align 1 + 122 .syntax unified + 123 .thumb + 124 .thumb_func + 126 DMA_CalcDMAMUXChannelBaseAndMask: + 127 .LVL5: + 128 .LFB342: +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Updates the DMA handle with the DMAMUX channel and status mask depending on stream num +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval None +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma) +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 129 .loc 1 1046 1 is_stmt 1 view -0 + 130 .cfi_startproc + 131 @ args = 0, pretend = 0, frame = 0 + 132 @ frame_needed = 0, uses_anonymous_args = 0 + 133 @ link register save eliminated. +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t dmamux_base_addr; + 134 .loc 1 1047 3 view .LVU36 +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t channel_number; + 135 .loc 1 1048 3 view .LVU37 +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAMUX_Channel_TypeDef *DMAMUX1_ChannelBase; + 136 .loc 1 1049 3 view .LVU38 +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* check if instance is not outside the DMA channel range */ +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** if ((uint32_t)hdma->Instance < (uint32_t)DMA2_Channel1) + 137 .loc 1 1052 3 view .LVU39 + 138 .loc 1 1052 21 is_stmt 0 view .LVU40 + 139 0000 0368 ldr r3, [r0] + 140 .loc 1 1052 6 view .LVU41 + 141 0002 0C4A ldr r2, .L10 + 142 0004 9342 cmp r3, r2 + ARM GAS /tmp/ccCGP7ew.s page 22 + + + 143 0006 13D8 bhi .L9 +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA1 */ +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAMUX1_ChannelBase = DMAMUX1_Channel0; + 144 .loc 1 1055 25 view .LVU42 + 145 0008 0B49 ldr r1, .L10+4 + 146 .L8: + 147 .LVL6: +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** else +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA2 */ +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #if defined (STM32G471xx) || defined (STM32G473xx) || defined (STM32G474xx) || defined (STM32G483xx +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAMUX1_ChannelBase = DMAMUX1_Channel8; +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #elif defined (STM32G431xx) || defined (STM32G441xx) || defined (STM32GBK1CB) +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAMUX1_ChannelBase = DMAMUX1_Channel6; +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #else +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMAMUX1_ChannelBase = DMAMUX1_Channel7; +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #endif /* STM32G4x1xx) */ +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** dmamux_base_addr = (uint32_t)DMAMUX1_ChannelBase; + 148 .loc 1 1068 3 is_stmt 1 view .LVU43 +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** channel_number = (((uint32_t)hdma->Instance & 0xFFU) - 8U) / 20U; + 149 .loc 1 1069 3 view .LVU44 + 150 .loc 1 1069 47 is_stmt 0 view .LVU45 + 151 000a DBB2 uxtb r3, r3 + 152 .loc 1 1069 56 view .LVU46 + 153 000c 083B subs r3, r3, #8 + 154 .loc 1 1069 18 view .LVU47 + 155 000e 0B4A ldr r2, .L10+8 + 156 0010 A2FB0323 umull r2, r3, r2, r3 + 157 .LVL7: +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannel = (DMAMUX_Channel_TypeDef *)(uint32_t)(dmamux_base_addr + ((hdma->ChannelInde + 158 .loc 1 1070 3 is_stmt 1 view .LVU48 + 159 .loc 1 1070 87 is_stmt 0 view .LVU49 + 160 0014 426C ldr r2, [r0, #68] + 161 .loc 1 1070 109 view .LVU50 + 162 0016 22F00302 bic r2, r2, #3 + 163 .loc 1 1070 51 view .LVU51 + 164 001a 0A44 add r2, r2, r1 + 165 .loc 1 1070 23 view .LVU52 + 166 001c 8264 str r2, [r0, #72] +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatus = DMAMUX1_ChannelStatus; + 167 .loc 1 1071 3 is_stmt 1 view .LVU53 + 168 .loc 1 1071 29 is_stmt 0 view .LVU54 + 169 001e 084A ldr r2, .L10+12 + 170 0020 C264 str r2, [r0, #76] +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxChannelStatusMask = 1UL << (channel_number & 0x1FU); + 171 .loc 1 1072 3 is_stmt 1 view .LVU55 + 172 .loc 1 1072 58 is_stmt 0 view .LVU56 + 173 0022 C3F30413 ubfx r3, r3, #4, #5 + 174 .LVL8: + 175 .loc 1 1072 39 view .LVU57 + 176 0026 0122 movs r2, #1 + 177 0028 02FA03F3 lsl r3, r2, r3 + 178 .loc 1 1072 33 view .LVU58 + 179 002c 0365 str r3, [r0, #80] + ARM GAS /tmp/ccCGP7ew.s page 23 + + +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 180 .loc 1 1073 1 view .LVU59 + 181 002e 7047 bx lr + 182 .LVL9: + 183 .L9: +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** #else + 184 .loc 1 1063 25 view .LVU60 + 185 0030 0449 ldr r1, .L10+16 + 186 0032 EAE7 b .L8 + 187 .L11: + 188 .align 2 + 189 .L10: + 190 0034 07040240 .word 1073873927 + 191 0038 00080240 .word 1073874944 + 192 003c CDCCCCCC .word -858993459 + 193 0040 80080240 .word 1073875072 + 194 0044 20080240 .word 1073874976 + 195 .cfi_endproc + 196 .LFE342: + 198 .section .text.DMA_CalcDMAMUXRequestGenBaseAndMask,"ax",%progbits + 199 .align 1 + 200 .syntax unified + 201 .thumb + 202 .thumb_func + 204 DMA_CalcDMAMUXRequestGenBaseAndMask: + 205 .LVL10: + 206 .LFB343: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /** +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @brief Updates the DMA handle with the DMAMUX request generator params +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * the configuration information for the specified DMA Channel. +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** * @retval None +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** */ +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma) +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 207 .loc 1 1083 1 is_stmt 1 view -0 + 208 .cfi_startproc + 209 @ args = 0, pretend = 0, frame = 0 + 210 @ frame_needed = 0, uses_anonymous_args = 0 + 211 @ link register save eliminated. +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t request = hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID; + 212 .loc 1 1084 3 view .LVU62 + 213 .loc 1 1084 12 is_stmt 0 view .LVU63 + 214 0000 0379 ldrb r3, [r0, #4] @ zero_extendqisi2 + 215 .LVL11: +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* DMA Channels are connected to DMAMUX1 request generator blocks*/ +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGen = (DMAMUX_RequestGen_TypeDef *)((uint32_t)(((uint32_t)DMAMUX1_RequestGener + 216 .loc 1 1087 3 is_stmt 1 view .LVU64 + 217 .loc 1 1087 58 is_stmt 0 view .LVU65 + 218 0002 074A ldr r2, .L13 + 219 0004 1A44 add r2, r2, r3 + 220 0006 9200 lsls r2, r2, #2 + 221 .loc 1 1087 26 view .LVU66 + 222 0008 4265 str r2, [r0, #84] + ARM GAS /tmp/ccCGP7ew.s page 24 + + +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = DMAMUX1_RequestGenStatus; + 223 .loc 1 1089 3 is_stmt 1 view .LVU67 + 224 .loc 1 1089 32 is_stmt 0 view .LVU68 + 225 000a 064A ldr r2, .L13+4 + 226 000c 8265 str r2, [r0, #88] +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 1UL << ((request - 1U) & 0x1FU); + 227 .loc 1 1091 3 is_stmt 1 view .LVU69 + 228 .loc 1 1091 55 is_stmt 0 view .LVU70 + 229 000e 013B subs r3, r3, #1 + 230 .LVL12: + 231 .loc 1 1091 61 view .LVU71 + 232 0010 03F01F03 and r3, r3, #31 + 233 .LVL13: + 234 .loc 1 1091 42 view .LVU72 + 235 0014 0122 movs r2, #1 + 236 0016 02FA03F3 lsl r3, r2, r3 + 237 .loc 1 1091 36 view .LVU73 + 238 001a C365 str r3, [r0, #92] +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 239 .loc 1 1092 1 view .LVU74 + 240 001c 7047 bx lr + 241 .L14: + 242 001e 00BF .align 2 + 243 .L13: + 244 0020 3F820010 .word 268468799 + 245 0024 40090240 .word 1073875264 + 246 .cfi_endproc + 247 .LFE343: + 249 .section .text.HAL_DMA_Init,"ax",%progbits + 250 .align 1 + 251 .global HAL_DMA_Init + 252 .syntax unified + 253 .thumb + 254 .thumb_func + 256 HAL_DMA_Init: + 257 .LVL14: + 258 .LFB329: + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t tmp; + 259 .loc 1 153 1 is_stmt 1 view -0 + 260 .cfi_startproc + 261 @ args = 0, pretend = 0, frame = 0 + 262 @ frame_needed = 0, uses_anonymous_args = 0 + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 263 .loc 1 154 3 view .LVU76 + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 264 .loc 1 157 3 view .LVU77 + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 265 .loc 1 157 6 is_stmt 0 view .LVU78 + 266 0000 0028 cmp r0, #0 + 267 0002 5BD0 beq .L22 + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t tmp; + 268 .loc 1 153 1 view .LVU79 + 269 0004 10B5 push {r4, lr} + 270 .LCFI3: + 271 .cfi_def_cfa_offset 8 + ARM GAS /tmp/ccCGP7ew.s page 25 + + + 272 .cfi_offset 4, -8 + 273 .cfi_offset 14, -4 + 274 0006 0446 mov r4, r0 + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); + 275 .loc 1 163 3 is_stmt 1 view .LVU80 + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc)); + 276 .loc 1 164 3 view .LVU81 + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc)); + 277 .loc 1 165 3 view .LVU82 + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment)); + 278 .loc 1 166 3 view .LVU83 + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment)); + 279 .loc 1 167 3 view .LVU84 + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_MODE(hdma->Init.Mode)); + 280 .loc 1 168 3 view .LVU85 + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); + 281 .loc 1 169 3 view .LVU86 + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 282 .loc 1 170 3 view .LVU87 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 283 .loc 1 172 3 view .LVU88 + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 284 .loc 1 175 3 view .LVU89 + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 285 .loc 1 175 22 is_stmt 0 view .LVU90 + 286 0008 0168 ldr r1, [r0] + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 287 .loc 1 175 6 view .LVU91 + 288 000a 2D4B ldr r3, .L29 + 289 000c 9942 cmp r1, r3 + 290 000e 3DD8 bhi .L17 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 291 .loc 1 178 5 is_stmt 1 view .LVU92 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 292 .loc 1 178 53 is_stmt 0 view .LVU93 + 293 0010 2C4B ldr r3, .L29+4 + 294 0012 0B44 add r3, r3, r1 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 295 .loc 1 178 80 view .LVU94 + 296 0014 2C4A ldr r2, .L29+8 + 297 0016 A2FB0323 umull r2, r3, r2, r3 + 298 001a 1B09 lsrs r3, r3, #4 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 299 .loc 1 178 135 view .LVU95 + 300 001c 9B00 lsls r3, r3, #2 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 301 .loc 1 178 24 view .LVU96 + 302 001e 4364 str r3, [r0, #68] + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 303 .loc 1 179 5 is_stmt 1 view .LVU97 + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 304 .loc 1 179 26 is_stmt 0 view .LVU98 + 305 0020 2A4B ldr r3, .L29+12 + 306 0022 0364 str r3, [r0, #64] + 307 .L18: + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 308 .loc 1 189 3 is_stmt 1 view .LVU99 + ARM GAS /tmp/ccCGP7ew.s page 26 + + + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 309 .loc 1 189 15 is_stmt 0 view .LVU100 + 310 0024 0223 movs r3, #2 + 311 0026 84F82530 strb r3, [r4, #37] + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 312 .loc 1 192 3 is_stmt 1 view .LVU101 + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 313 .loc 1 192 7 is_stmt 0 view .LVU102 + 314 002a 0A68 ldr r2, [r1] + 315 .LVL15: + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | + 316 .loc 1 195 3 is_stmt 1 view .LVU103 + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | + 317 .loc 1 195 7 is_stmt 0 view .LVU104 + 318 002c 22F4FF42 bic r2, r2, #32640 + 319 .LVL16: + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | + 320 .loc 1 195 7 view .LVU105 + 321 0030 22F07002 bic r2, r2, #112 + 322 .LVL17: + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | + 323 .loc 1 200 3 is_stmt 1 view .LVU106 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | + 324 .loc 1 200 21 is_stmt 0 view .LVU107 + 325 0034 A368 ldr r3, [r4, #8] + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 326 .loc 1 201 21 view .LVU108 + 327 0036 E068 ldr r0, [r4, #12] + 328 .LVL18: + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | + 329 .loc 1 200 39 view .LVU109 + 330 0038 0343 orrs r3, r3, r0 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 331 .loc 1 201 54 view .LVU110 + 332 003a 2069 ldr r0, [r4, #16] + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 333 .loc 1 201 42 view .LVU111 + 334 003c 0343 orrs r3, r3, r0 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; + 335 .loc 1 202 21 view .LVU112 + 336 003e 6069 ldr r0, [r4, #20] + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 337 .loc 1 201 72 view .LVU113 + 338 0040 0343 orrs r3, r3, r0 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; + 339 .loc 1 202 54 view .LVU114 + 340 0042 A069 ldr r0, [r4, #24] + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; + 341 .loc 1 202 42 view .LVU115 + 342 0044 0343 orrs r3, r3, r0 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 343 .loc 1 203 21 view .LVU116 + 344 0046 E069 ldr r0, [r4, #28] + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; + 345 .loc 1 202 72 view .LVU117 + 346 0048 0343 orrs r3, r3, r0 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 27 + + + 347 .loc 1 203 54 view .LVU118 + 348 004a 206A ldr r0, [r4, #32] + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 349 .loc 1 203 42 view .LVU119 + 350 004c 0343 orrs r3, r3, r0 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | + 351 .loc 1 200 7 view .LVU120 + 352 004e 1343 orrs r3, r3, r2 + 353 .LVL19: + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 354 .loc 1 206 3 is_stmt 1 view .LVU121 + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 355 .loc 1 206 23 is_stmt 0 view .LVU122 + 356 0050 0B60 str r3, [r1] + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 357 .loc 1 211 3 is_stmt 1 view .LVU123 + 358 0052 2046 mov r0, r4 + 359 0054 FFF7FEFF bl DMA_CalcDMAMUXChannelBaseAndMask + 360 .LVL20: + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 361 .loc 1 213 3 view .LVU124 + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 362 .loc 1 213 17 is_stmt 0 view .LVU125 + 363 0058 A368 ldr r3, [r4, #8] + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 364 .loc 1 213 6 view .LVU126 + 365 005a B3F5804F cmp r3, #16384 + 366 005e 20D0 beq .L27 + 367 .L19: + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 368 .loc 1 220 3 is_stmt 1 view .LVU127 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 369 .loc 1 220 7 is_stmt 0 view .LVU128 + 370 0060 A36C ldr r3, [r4, #72] + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 371 .loc 1 220 50 view .LVU129 + 372 0062 2279 ldrb r2, [r4, #4] @ zero_extendqisi2 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 373 .loc 1 220 28 view .LVU130 + 374 0064 1A60 str r2, [r3] + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 375 .loc 1 223 3 is_stmt 1 view .LVU131 + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 376 .loc 1 223 7 is_stmt 0 view .LVU132 + 377 0066 E36C ldr r3, [r4, #76] + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 378 .loc 1 223 40 view .LVU133 + 379 0068 226D ldr r2, [r4, #80] + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 380 .loc 1 223 34 view .LVU134 + 381 006a 5A60 str r2, [r3, #4] + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 382 .loc 1 225 3 is_stmt 1 view .LVU135 + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 383 .loc 1 225 19 is_stmt 0 view .LVU136 + 384 006c 6368 ldr r3, [r4, #4] + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + ARM GAS /tmp/ccCGP7ew.s page 28 + + + 385 .loc 1 225 35 view .LVU137 + 386 006e 013B subs r3, r3, #1 + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 387 .loc 1 225 6 view .LVU138 + 388 0070 032B cmp r3, #3 + 389 0072 19D9 bls .L28 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = 0U; + 390 .loc 1 240 5 is_stmt 1 view .LVU139 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = 0U; + 391 .loc 1 240 28 is_stmt 0 view .LVU140 + 392 0074 0023 movs r3, #0 + 393 0076 6365 str r3, [r4, #84] + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 0U; + 394 .loc 1 241 5 is_stmt 1 view .LVU141 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 0U; + 395 .loc 1 241 34 is_stmt 0 view .LVU142 + 396 0078 A365 str r3, [r4, #88] + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 397 .loc 1 242 5 is_stmt 1 view .LVU143 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 398 .loc 1 242 38 is_stmt 0 view .LVU144 + 399 007a E365 str r3, [r4, #92] + 400 .L21: + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 401 .loc 1 246 3 is_stmt 1 view .LVU145 + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 402 .loc 1 246 19 is_stmt 0 view .LVU146 + 403 007c 0020 movs r0, #0 + 404 007e E063 str r0, [r4, #60] + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 405 .loc 1 249 3 is_stmt 1 view .LVU147 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 406 .loc 1 249 16 is_stmt 0 view .LVU148 + 407 0080 0123 movs r3, #1 + 408 0082 84F82530 strb r3, [r4, #37] + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 409 .loc 1 252 3 is_stmt 1 view .LVU149 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 410 .loc 1 252 14 is_stmt 0 view .LVU150 + 411 0086 84F82400 strb r0, [r4, #36] + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 412 .loc 1 254 3 is_stmt 1 view .LVU151 + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 413 .loc 1 255 1 is_stmt 0 view .LVU152 + 414 008a 10BD pop {r4, pc} + 415 .LVL21: + 416 .L17: + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 417 .loc 1 184 5 is_stmt 1 view .LVU153 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 418 .loc 1 184 53 is_stmt 0 view .LVU154 + 419 008c 104B ldr r3, .L29+16 + 420 008e 0B44 add r3, r3, r1 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 421 .loc 1 184 80 view .LVU155 + 422 0090 0D4A ldr r2, .L29+8 + 423 0092 A2FB0323 umull r2, r3, r2, r3 + ARM GAS /tmp/ccCGP7ew.s page 29 + + + 424 0096 1B09 lsrs r3, r3, #4 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 425 .loc 1 184 135 view .LVU156 + 426 0098 9B00 lsls r3, r3, #2 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 427 .loc 1 184 24 view .LVU157 + 428 009a 4364 str r3, [r0, #68] + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 429 .loc 1 185 5 is_stmt 1 view .LVU158 + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 430 .loc 1 185 26 is_stmt 0 view .LVU159 + 431 009c 0D4B ldr r3, .L29+20 + 432 009e 0364 str r3, [r0, #64] + 433 00a0 C0E7 b .L18 + 434 .LVL22: + 435 .L27: + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 436 .loc 1 216 5 is_stmt 1 view .LVU160 + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 437 .loc 1 216 24 is_stmt 0 view .LVU161 + 438 00a2 0023 movs r3, #0 + 439 00a4 6360 str r3, [r4, #4] + 440 00a6 DBE7 b .L19 + 441 .L28: + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 442 .loc 1 230 5 is_stmt 1 view .LVU162 + 443 00a8 2046 mov r0, r4 + 444 00aa FFF7FEFF bl DMA_CalcDMAMUXRequestGenBaseAndMask + 445 .LVL23: + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 446 .loc 1 233 5 view .LVU163 + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 447 .loc 1 233 9 is_stmt 0 view .LVU164 + 448 00ae 636D ldr r3, [r4, #84] + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 449 .loc 1 233 34 view .LVU165 + 450 00b0 0022 movs r2, #0 + 451 00b2 1A60 str r2, [r3] + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 452 .loc 1 236 5 is_stmt 1 view .LVU166 + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 453 .loc 1 236 9 is_stmt 0 view .LVU167 + 454 00b4 A36D ldr r3, [r4, #88] + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 455 .loc 1 236 47 view .LVU168 + 456 00b6 E26D ldr r2, [r4, #92] + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 457 .loc 1 236 41 view .LVU169 + 458 00b8 5A60 str r2, [r3, #4] + 459 00ba DFE7 b .L21 + 460 .LVL24: + 461 .L22: + 462 .LCFI4: + 463 .cfi_def_cfa_offset 0 + 464 .cfi_restore 4 + 465 .cfi_restore 14 + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + ARM GAS /tmp/ccCGP7ew.s page 30 + + + 466 .loc 1 159 12 view .LVU170 + 467 00bc 0120 movs r0, #1 + 468 .LVL25: + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 469 .loc 1 255 1 view .LVU171 + 470 00be 7047 bx lr + 471 .L30: + 472 .align 2 + 473 .L29: + 474 00c0 07040240 .word 1073873927 + 475 00c4 F8FFFDBF .word -1073872904 + 476 00c8 CDCCCCCC .word -858993459 + 477 00cc 00000240 .word 1073872896 + 478 00d0 F8FBFDBF .word -1073873928 + 479 00d4 00040240 .word 1073873920 + 480 .cfi_endproc + 481 .LFE329: + 483 .section .text.HAL_DMA_DeInit,"ax",%progbits + 484 .align 1 + 485 .global HAL_DMA_DeInit + 486 .syntax unified + 487 .thumb + 488 .thumb_func + 490 HAL_DMA_DeInit: + 491 .LVL26: + 492 .LFB330: + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 493 .loc 1 264 1 is_stmt 1 view -0 + 494 .cfi_startproc + 495 @ args = 0, pretend = 0, frame = 0 + 496 @ frame_needed = 0, uses_anonymous_args = 0 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 497 .loc 1 267 3 view .LVU173 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 498 .loc 1 267 6 is_stmt 0 view .LVU174 + 499 0000 0028 cmp r0, #0 + 500 0002 4BD0 beq .L36 + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 501 .loc 1 264 1 view .LVU175 + 502 0004 38B5 push {r3, r4, r5, lr} + 503 .LCFI5: + 504 .cfi_def_cfa_offset 16 + 505 .cfi_offset 3, -16 + 506 .cfi_offset 4, -12 + 507 .cfi_offset 5, -8 + 508 .cfi_offset 14, -4 + 509 0006 0446 mov r4, r0 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 510 .loc 1 273 3 is_stmt 1 view .LVU176 + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 511 .loc 1 276 3 view .LVU177 + 512 0008 0268 ldr r2, [r0] + 513 000a 1368 ldr r3, [r2] + 514 000c 23F00103 bic r3, r3, #1 + 515 0010 1360 str r3, [r2] + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 516 .loc 1 279 3 view .LVU178 + ARM GAS /tmp/ccCGP7ew.s page 31 + + + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 517 .loc 1 279 22 is_stmt 0 view .LVU179 + 518 0012 0268 ldr r2, [r0] + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 519 .loc 1 279 6 view .LVU180 + 520 0014 224B ldr r3, .L42 + 521 0016 9A42 cmp r2, r3 + 522 0018 2CD8 bhi .L33 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 523 .loc 1 282 5 is_stmt 1 view .LVU181 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 524 .loc 1 282 53 is_stmt 0 view .LVU182 + 525 001a 224B ldr r3, .L42+4 + 526 001c 1344 add r3, r3, r2 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 527 .loc 1 282 80 view .LVU183 + 528 001e 2249 ldr r1, .L42+8 + 529 0020 A1FB0313 umull r1, r3, r1, r3 + 530 0024 1B09 lsrs r3, r3, #4 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 531 .loc 1 282 135 view .LVU184 + 532 0026 9B00 lsls r3, r3, #2 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA1; + 533 .loc 1 282 24 view .LVU185 + 534 0028 4364 str r3, [r0, #68] + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 535 .loc 1 283 5 is_stmt 1 view .LVU186 + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 536 .loc 1 283 26 is_stmt 0 view .LVU187 + 537 002a 204B ldr r3, .L42+12 + 538 002c 0364 str r3, [r0, #64] + 539 .L34: + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 540 .loc 1 293 3 is_stmt 1 view .LVU188 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 541 .loc 1 293 24 is_stmt 0 view .LVU189 + 542 002e 0025 movs r5, #0 + 543 0030 1560 str r5, [r2] + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 544 .loc 1 296 3 is_stmt 1 view .LVU190 + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 545 .loc 1 296 54 is_stmt 0 view .LVU191 + 546 0032 636C ldr r3, [r4, #68] + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 547 .loc 1 296 69 view .LVU192 + 548 0034 03F01F02 and r2, r3, #31 + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 549 .loc 1 296 7 view .LVU193 + 550 0038 216C ldr r1, [r4, #64] + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 551 .loc 1 296 46 view .LVU194 + 552 003a 0123 movs r3, #1 + 553 003c 9340 lsls r3, r3, r2 + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 554 .loc 1 296 30 view .LVU195 + 555 003e 4B60 str r3, [r1, #4] + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 32 + + + 556 .loc 1 301 3 is_stmt 1 view .LVU196 + 557 0040 2046 mov r0, r4 + 558 .LVL27: + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 559 .loc 1 301 3 is_stmt 0 view .LVU197 + 560 0042 FFF7FEFF bl DMA_CalcDMAMUXChannelBaseAndMask + 561 .LVL28: + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 562 .loc 1 304 3 is_stmt 1 view .LVU198 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 563 .loc 1 304 7 is_stmt 0 view .LVU199 + 564 0046 A36C ldr r3, [r4, #72] + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 565 .loc 1 304 28 view .LVU200 + 566 0048 1D60 str r5, [r3] + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 567 .loc 1 307 3 is_stmt 1 view .LVU201 + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 568 .loc 1 307 7 is_stmt 0 view .LVU202 + 569 004a E36C ldr r3, [r4, #76] + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 570 .loc 1 307 40 view .LVU203 + 571 004c 226D ldr r2, [r4, #80] + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 572 .loc 1 307 34 view .LVU204 + 573 004e 5A60 str r2, [r3, #4] + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 574 .loc 1 310 3 is_stmt 1 view .LVU205 + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 575 .loc 1 310 19 is_stmt 0 view .LVU206 + 576 0050 6368 ldr r3, [r4, #4] + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 577 .loc 1 310 35 view .LVU207 + 578 0052 013B subs r3, r3, #1 + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 579 .loc 1 310 6 view .LVU208 + 580 0054 032B cmp r3, #3 + 581 0056 18D9 bls .L41 + 582 .L35: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = 0U; + 583 .loc 1 324 3 is_stmt 1 view .LVU209 + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatus = 0U; + 584 .loc 1 324 26 is_stmt 0 view .LVU210 + 585 0058 0020 movs r0, #0 + 586 005a 6065 str r0, [r4, #84] + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 0U; + 587 .loc 1 325 3 is_stmt 1 view .LVU211 + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DMAmuxRequestGenStatusMask = 0U; + 588 .loc 1 325 32 is_stmt 0 view .LVU212 + 589 005c A065 str r0, [r4, #88] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 590 .loc 1 326 3 is_stmt 1 view .LVU213 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 591 .loc 1 326 36 is_stmt 0 view .LVU214 + 592 005e E065 str r0, [r4, #92] + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 593 .loc 1 329 3 is_stmt 1 view .LVU215 + ARM GAS /tmp/ccCGP7ew.s page 33 + + + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 594 .loc 1 329 26 is_stmt 0 view .LVU216 + 595 0060 E062 str r0, [r4, #44] + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 596 .loc 1 330 3 is_stmt 1 view .LVU217 + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 597 .loc 1 330 30 is_stmt 0 view .LVU218 + 598 0062 2063 str r0, [r4, #48] + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 599 .loc 1 331 3 is_stmt 1 view .LVU219 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 600 .loc 1 331 27 is_stmt 0 view .LVU220 + 601 0064 6063 str r0, [r4, #52] + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 602 .loc 1 332 3 is_stmt 1 view .LVU221 + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 603 .loc 1 332 27 is_stmt 0 view .LVU222 + 604 0066 A063 str r0, [r4, #56] + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 605 .loc 1 335 3 is_stmt 1 view .LVU223 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 606 .loc 1 335 19 is_stmt 0 view .LVU224 + 607 0068 E063 str r0, [r4, #60] + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 608 .loc 1 338 3 is_stmt 1 view .LVU225 + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 609 .loc 1 338 15 is_stmt 0 view .LVU226 + 610 006a 84F82500 strb r0, [r4, #37] + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 611 .loc 1 341 3 is_stmt 1 view .LVU227 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 612 .loc 1 341 3 view .LVU228 + 613 006e 84F82400 strb r0, [r4, #36] + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 614 .loc 1 341 3 view .LVU229 + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 615 .loc 1 343 3 view .LVU230 + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 616 .loc 1 344 1 is_stmt 0 view .LVU231 + 617 0072 38BD pop {r3, r4, r5, pc} + 618 .LVL29: + 619 .L33: + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 620 .loc 1 288 5 is_stmt 1 view .LVU232 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 621 .loc 1 288 53 is_stmt 0 view .LVU233 + 622 0074 0E4B ldr r3, .L42+16 + 623 0076 1344 add r3, r3, r2 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 624 .loc 1 288 80 view .LVU234 + 625 0078 0B49 ldr r1, .L42+8 + 626 007a A1FB0313 umull r1, r3, r1, r3 + 627 007e 1B09 lsrs r3, r3, #4 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + 628 .loc 1 288 135 view .LVU235 + 629 0080 9B00 lsls r3, r3, #2 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->DmaBaseAddress = DMA2; + ARM GAS /tmp/ccCGP7ew.s page 34 + + + 630 .loc 1 288 24 view .LVU236 + 631 0082 4364 str r3, [r0, #68] + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 632 .loc 1 289 5 is_stmt 1 view .LVU237 + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 633 .loc 1 289 26 is_stmt 0 view .LVU238 + 634 0084 0B4B ldr r3, .L42+20 + 635 0086 0364 str r3, [r0, #64] + 636 0088 D1E7 b .L34 + 637 .LVL30: + 638 .L41: + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 639 .loc 1 315 5 is_stmt 1 view .LVU239 + 640 008a 2046 mov r0, r4 + 641 008c FFF7FEFF bl DMA_CalcDMAMUXRequestGenBaseAndMask + 642 .LVL31: + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 643 .loc 1 318 5 view .LVU240 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 644 .loc 1 318 9 is_stmt 0 view .LVU241 + 645 0090 636D ldr r3, [r4, #84] + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 646 .loc 1 318 34 view .LVU242 + 647 0092 1D60 str r5, [r3] + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 648 .loc 1 321 5 is_stmt 1 view .LVU243 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 649 .loc 1 321 9 is_stmt 0 view .LVU244 + 650 0094 A36D ldr r3, [r4, #88] + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 651 .loc 1 321 47 view .LVU245 + 652 0096 E26D ldr r2, [r4, #92] + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 653 .loc 1 321 41 view .LVU246 + 654 0098 5A60 str r2, [r3, #4] + 655 009a DDE7 b .L35 + 656 .LVL32: + 657 .L36: + 658 .LCFI6: + 659 .cfi_def_cfa_offset 0 + 660 .cfi_restore 3 + 661 .cfi_restore 4 + 662 .cfi_restore 5 + 663 .cfi_restore 14 + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 664 .loc 1 269 12 view .LVU247 + 665 009c 0120 movs r0, #1 + 666 .LVL33: + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 667 .loc 1 344 1 view .LVU248 + 668 009e 7047 bx lr + 669 .L43: + 670 .align 2 + 671 .L42: + 672 00a0 07040240 .word 1073873927 + 673 00a4 F8FFFDBF .word -1073872904 + 674 00a8 CDCCCCCC .word -858993459 + ARM GAS /tmp/ccCGP7ew.s page 35 + + + 675 00ac 00000240 .word 1073872896 + 676 00b0 F8FBFDBF .word -1073873928 + 677 00b4 00040240 .word 1073873920 + 678 .cfi_endproc + 679 .LFE330: + 681 .section .text.HAL_DMA_Start,"ax",%progbits + 682 .align 1 + 683 .global HAL_DMA_Start + 684 .syntax unified + 685 .thumb + 686 .thumb_func + 688 HAL_DMA_Start: + 689 .LVL34: + 690 .LFB331: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 691 .loc 1 379 1 is_stmt 1 view -0 + 692 .cfi_startproc + 693 @ args = 0, pretend = 0, frame = 0 + 694 @ frame_needed = 0, uses_anonymous_args = 0 + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 695 .loc 1 379 1 is_stmt 0 view .LVU250 + 696 0000 70B5 push {r4, r5, r6, lr} + 697 .LCFI7: + 698 .cfi_def_cfa_offset 16 + 699 .cfi_offset 4, -16 + 700 .cfi_offset 5, -12 + 701 .cfi_offset 6, -8 + 702 .cfi_offset 14, -4 + 703 0002 0446 mov r4, r0 + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 704 .loc 1 380 3 is_stmt 1 view .LVU251 + 705 .LVL35: + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 706 .loc 1 383 3 view .LVU252 + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 707 .loc 1 386 3 view .LVU253 + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 708 .loc 1 386 3 view .LVU254 + 709 0004 90F82400 ldrb r0, [r0, #36] @ zero_extendqisi2 + 710 .LVL36: + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 711 .loc 1 386 3 is_stmt 0 view .LVU255 + 712 0008 0128 cmp r0, #1 + 713 000a 20D0 beq .L47 + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 714 .loc 1 386 3 is_stmt 1 discriminator 2 view .LVU256 + 715 000c 0120 movs r0, #1 + 716 000e 84F82400 strb r0, [r4, #36] + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 717 .loc 1 386 3 discriminator 2 view .LVU257 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 718 .loc 1 388 3 discriminator 2 view .LVU258 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 719 .loc 1 388 34 is_stmt 0 discriminator 2 view .LVU259 + 720 0012 94F82500 ldrb r0, [r4, #37] @ zero_extendqisi2 + 721 0016 C0B2 uxtb r0, r0 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + ARM GAS /tmp/ccCGP7ew.s page 36 + + + 722 .loc 1 388 6 discriminator 2 view .LVU260 + 723 0018 0128 cmp r0, #1 + 724 001a 04D0 beq .L49 + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_BUSY; + 725 .loc 1 406 5 is_stmt 1 view .LVU261 + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_BUSY; + 726 .loc 1 406 5 view .LVU262 + 727 001c 0023 movs r3, #0 + 728 .LVL37: + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_BUSY; + 729 .loc 1 406 5 is_stmt 0 view .LVU263 + 730 001e 84F82430 strb r3, [r4, #36] + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** status = HAL_BUSY; + 731 .loc 1 406 5 is_stmt 1 view .LVU264 + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 732 .loc 1 407 5 view .LVU265 + 733 .LVL38: + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 734 .loc 1 407 12 is_stmt 0 view .LVU266 + 735 0022 0220 movs r0, #2 + 736 .LVL39: + 737 .L45: + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 738 .loc 1 410 1 view .LVU267 + 739 0024 70BD pop {r4, r5, r6, pc} + 740 .LVL40: + 741 .L49: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 742 .loc 1 391 5 is_stmt 1 view .LVU268 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 743 .loc 1 391 17 is_stmt 0 view .LVU269 + 744 0026 0220 movs r0, #2 + 745 0028 84F82500 strb r0, [r4, #37] + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 746 .loc 1 392 5 is_stmt 1 view .LVU270 + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 747 .loc 1 392 21 is_stmt 0 view .LVU271 + 748 002c 0025 movs r5, #0 + 749 002e E563 str r5, [r4, #60] + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 750 .loc 1 395 5 is_stmt 1 view .LVU272 + 751 0030 2668 ldr r6, [r4] + 752 0032 3068 ldr r0, [r6] + 753 0034 20F00100 bic r0, r0, #1 + 754 0038 3060 str r0, [r6] + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 755 .loc 1 398 5 view .LVU273 + 756 003a 2046 mov r0, r4 + 757 003c FFF7FEFF bl DMA_SetConfig + 758 .LVL41: + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 759 .loc 1 401 5 view .LVU274 + 760 0040 2268 ldr r2, [r4] + 761 0042 1368 ldr r3, [r2] + 762 0044 43F00103 orr r3, r3, #1 + 763 0048 1360 str r3, [r2] + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 37 + + + 764 .loc 1 380 21 is_stmt 0 view .LVU275 + 765 004a 2846 mov r0, r5 + 766 004c EAE7 b .L45 + 767 .LVL42: + 768 .L47: + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 769 .loc 1 386 3 view .LVU276 + 770 004e 0220 movs r0, #2 + 771 0050 E8E7 b .L45 + 772 .cfi_endproc + 773 .LFE331: + 775 .section .text.HAL_DMA_Start_IT,"ax",%progbits + 776 .align 1 + 777 .global HAL_DMA_Start_IT + 778 .syntax unified + 779 .thumb + 780 .thumb_func + 782 HAL_DMA_Start_IT: + 783 .LVL43: + 784 .LFB332: + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 785 .loc 1 423 1 is_stmt 1 view -0 + 786 .cfi_startproc + 787 @ args = 0, pretend = 0, frame = 0 + 788 @ frame_needed = 0, uses_anonymous_args = 0 + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 789 .loc 1 423 1 is_stmt 0 view .LVU278 + 790 0000 38B5 push {r3, r4, r5, lr} + 791 .LCFI8: + 792 .cfi_def_cfa_offset 16 + 793 .cfi_offset 3, -16 + 794 .cfi_offset 4, -12 + 795 .cfi_offset 5, -8 + 796 .cfi_offset 14, -4 + 797 0002 0446 mov r4, r0 + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 798 .loc 1 424 3 is_stmt 1 view .LVU279 + 799 .LVL44: + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 800 .loc 1 427 3 view .LVU280 + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 801 .loc 1 430 3 view .LVU281 + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 802 .loc 1 430 3 view .LVU282 + 803 0004 90F82400 ldrb r0, [r0, #36] @ zero_extendqisi2 + 804 .LVL45: + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 805 .loc 1 430 3 is_stmt 0 view .LVU283 + 806 0008 0128 cmp r0, #1 + 807 000a 41D0 beq .L57 + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 808 .loc 1 430 3 is_stmt 1 discriminator 2 view .LVU284 + 809 000c 0120 movs r0, #1 + 810 000e 84F82400 strb r0, [r4, #36] + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 811 .loc 1 430 3 discriminator 2 view .LVU285 + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + ARM GAS /tmp/ccCGP7ew.s page 38 + + + 812 .loc 1 432 3 discriminator 2 view .LVU286 + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 813 .loc 1 432 34 is_stmt 0 discriminator 2 view .LVU287 + 814 0012 94F82500 ldrb r0, [r4, #37] @ zero_extendqisi2 + 815 0016 C0B2 uxtb r0, r0 + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 816 .loc 1 432 6 discriminator 2 view .LVU288 + 817 0018 0128 cmp r0, #1 + 818 001a 04D0 beq .L59 + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 819 .loc 1 477 5 is_stmt 1 view .LVU289 + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 820 .loc 1 477 5 view .LVU290 + 821 001c 0023 movs r3, #0 + 822 .LVL46: + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 823 .loc 1 477 5 is_stmt 0 view .LVU291 + 824 001e 84F82430 strb r3, [r4, #36] + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 825 .loc 1 477 5 is_stmt 1 view .LVU292 + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 826 .loc 1 480 5 view .LVU293 + 827 .LVL47: + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 828 .loc 1 480 12 is_stmt 0 view .LVU294 + 829 0022 0220 movs r0, #2 + 830 .LVL48: + 831 .L51: + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 832 .loc 1 483 1 view .LVU295 + 833 0024 38BD pop {r3, r4, r5, pc} + 834 .LVL49: + 835 .L59: + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 836 .loc 1 435 5 is_stmt 1 view .LVU296 + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 837 .loc 1 435 17 is_stmt 0 view .LVU297 + 838 0026 0220 movs r0, #2 + 839 0028 84F82500 strb r0, [r4, #37] + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 840 .loc 1 436 5 is_stmt 1 view .LVU298 + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 841 .loc 1 436 21 is_stmt 0 view .LVU299 + 842 002c 0020 movs r0, #0 + 843 002e E063 str r0, [r4, #60] + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 844 .loc 1 439 5 is_stmt 1 view .LVU300 + 845 0030 2568 ldr r5, [r4] + 846 0032 2868 ldr r0, [r5] + 847 0034 20F00100 bic r0, r0, #1 + 848 0038 2860 str r0, [r5] + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 849 .loc 1 442 5 view .LVU301 + 850 003a 2046 mov r0, r4 + 851 003c FFF7FEFF bl DMA_SetConfig + 852 .LVL50: + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + ARM GAS /tmp/ccCGP7ew.s page 39 + + + 853 .loc 1 446 5 view .LVU302 + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 854 .loc 1 446 21 is_stmt 0 view .LVU303 + 855 0040 236B ldr r3, [r4, #48] + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 856 .loc 1 446 8 view .LVU304 + 857 0042 D3B1 cbz r3, .L53 + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 858 .loc 1 449 7 is_stmt 1 view .LVU305 + 859 0044 2268 ldr r2, [r4] + 860 0046 1368 ldr r3, [r2] + 861 0048 43F00E03 orr r3, r3, #14 + 862 004c 1360 str r3, [r2] + 863 .L54: + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 864 .loc 1 458 5 view .LVU306 + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 865 .loc 1 458 14 is_stmt 0 view .LVU307 + 866 004e A36C ldr r3, [r4, #72] + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 867 .loc 1 458 29 view .LVU308 + 868 0050 1A68 ldr r2, [r3] + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 869 .loc 1 458 8 view .LVU309 + 870 0052 12F4803F tst r2, #65536 + 871 0056 03D0 beq .L55 + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 872 .loc 1 461 7 is_stmt 1 view .LVU310 + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 873 .loc 1 461 26 is_stmt 0 view .LVU311 + 874 0058 1A68 ldr r2, [r3] + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 875 .loc 1 461 32 view .LVU312 + 876 005a 42F48072 orr r2, r2, #256 + 877 005e 1A60 str r2, [r3] + 878 .L55: + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 879 .loc 1 464 5 is_stmt 1 view .LVU313 + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 880 .loc 1 464 13 is_stmt 0 view .LVU314 + 881 0060 636D ldr r3, [r4, #84] + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 882 .loc 1 464 8 view .LVU315 + 883 0062 1BB1 cbz r3, .L56 + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 884 .loc 1 468 7 is_stmt 1 view .LVU316 + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 885 .loc 1 468 29 is_stmt 0 view .LVU317 + 886 0064 1A68 ldr r2, [r3] + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 887 .loc 1 468 36 view .LVU318 + 888 0066 42F48072 orr r2, r2, #256 + 889 006a 1A60 str r2, [r3] + 890 .L56: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 891 .loc 1 472 5 is_stmt 1 view .LVU319 + 892 006c 2268 ldr r2, [r4] + ARM GAS /tmp/ccCGP7ew.s page 40 + + + 893 006e 1368 ldr r3, [r2] + 894 0070 43F00103 orr r3, r3, #1 + 895 0074 1360 str r3, [r2] + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 896 .loc 1 424 21 is_stmt 0 view .LVU320 + 897 0076 0020 movs r0, #0 + 898 0078 D4E7 b .L51 + 899 .L53: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_TE)); + 900 .loc 1 453 7 is_stmt 1 view .LVU321 + 901 007a 2268 ldr r2, [r4] + 902 007c 1368 ldr r3, [r2] + 903 007e 23F00403 bic r3, r3, #4 + 904 0082 1360 str r3, [r2] + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 905 .loc 1 454 7 view .LVU322 + 906 0084 2268 ldr r2, [r4] + 907 0086 1368 ldr r3, [r2] + 908 0088 43F00A03 orr r3, r3, #10 + 909 008c 1360 str r3, [r2] + 910 008e DEE7 b .L54 + 911 .LVL51: + 912 .L57: + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 913 .loc 1 430 3 is_stmt 0 view .LVU323 + 914 0090 0220 movs r0, #2 + 915 0092 C7E7 b .L51 + 916 .cfi_endproc + 917 .LFE332: + 919 .section .text.HAL_DMA_Abort,"ax",%progbits + 920 .align 1 + 921 .global HAL_DMA_Abort + 922 .syntax unified + 923 .thumb + 924 .thumb_func + 926 HAL_DMA_Abort: + 927 .LVL52: + 928 .LFB333: + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 929 .loc 1 492 1 is_stmt 1 view -0 + 930 .cfi_startproc + 931 @ args = 0, pretend = 0, frame = 0 + 932 @ frame_needed = 0, uses_anonymous_args = 0 + 933 @ link register save eliminated. + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 934 .loc 1 492 1 is_stmt 0 view .LVU325 + 935 0000 0346 mov r3, r0 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 936 .loc 1 493 3 is_stmt 1 view .LVU326 + 937 .LVL53: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 938 .loc 1 495 3 view .LVU327 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 939 .loc 1 495 10 is_stmt 0 view .LVU328 + 940 0002 90F82520 ldrb r2, [r0, #37] @ zero_extendqisi2 + 941 0006 D2B2 uxtb r2, r2 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + ARM GAS /tmp/ccCGP7ew.s page 41 + + + 942 .loc 1 495 5 view .LVU329 + 943 0008 022A cmp r2, #2 + 944 000a 09D0 beq .L61 + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 945 .loc 1 498 5 is_stmt 1 view .LVU330 + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 946 .loc 1 498 21 is_stmt 0 view .LVU331 + 947 000c 0422 movs r2, #4 + 948 000e C263 str r2, [r0, #60] + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 949 .loc 1 500 5 is_stmt 1 view .LVU332 + 950 .LVL54: + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 951 .loc 1 500 12 is_stmt 0 view .LVU333 + 952 0010 0120 movs r0, #1 + 953 .LVL55: + 954 .L62: + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 955 .loc 1 530 3 is_stmt 1 view .LVU334 + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 956 .loc 1 530 15 is_stmt 0 view .LVU335 + 957 0012 0122 movs r2, #1 + 958 0014 83F82520 strb r2, [r3, #37] + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 959 .loc 1 533 3 is_stmt 1 view .LVU336 + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 960 .loc 1 533 3 view .LVU337 + 961 0018 0022 movs r2, #0 + 962 001a 83F82420 strb r2, [r3, #36] + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 963 .loc 1 533 3 view .LVU338 + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 964 .loc 1 535 3 view .LVU339 + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 965 .loc 1 536 1 is_stmt 0 view .LVU340 + 966 001e 7047 bx lr + 967 .LVL56: + 968 .L61: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 969 .loc 1 505 6 is_stmt 1 view .LVU341 + 970 0020 0168 ldr r1, [r0] + 971 0022 0A68 ldr r2, [r1] + 972 0024 22F00E02 bic r2, r2, #14 + 973 0028 0A60 str r2, [r1] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 974 .loc 1 508 6 view .LVU342 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 975 .loc 1 508 10 is_stmt 0 view .LVU343 + 976 002a 816C ldr r1, [r0, #72] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 977 .loc 1 508 25 view .LVU344 + 978 002c 0A68 ldr r2, [r1] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 979 .loc 1 508 31 view .LVU345 + 980 002e 22F48072 bic r2, r2, #256 + 981 0032 0A60 str r2, [r1] + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 42 + + + 982 .loc 1 511 6 is_stmt 1 view .LVU346 + 983 0034 0168 ldr r1, [r0] + 984 0036 0A68 ldr r2, [r1] + 985 0038 22F00102 bic r2, r2, #1 + 986 003c 0A60 str r2, [r1] + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 987 .loc 1 514 6 view .LVU347 + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 988 .loc 1 514 57 is_stmt 0 view .LVU348 + 989 003e 426C ldr r2, [r0, #68] + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 990 .loc 1 514 72 view .LVU349 + 991 0040 02F01F01 and r1, r2, #31 + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 992 .loc 1 514 10 view .LVU350 + 993 0044 006C ldr r0, [r0, #64] + 994 .LVL57: + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 995 .loc 1 514 49 view .LVU351 + 996 0046 0122 movs r2, #1 + 997 0048 8A40 lsls r2, r2, r1 + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 998 .loc 1 514 33 view .LVU352 + 999 004a 4260 str r2, [r0, #4] + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1000 .loc 1 517 6 is_stmt 1 view .LVU353 + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1001 .loc 1 517 10 is_stmt 0 view .LVU354 + 1002 004c DA6C ldr r2, [r3, #76] + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1003 .loc 1 517 43 view .LVU355 + 1004 004e 196D ldr r1, [r3, #80] + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1005 .loc 1 517 37 view .LVU356 + 1006 0050 5160 str r1, [r2, #4] + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1007 .loc 1 519 6 is_stmt 1 view .LVU357 + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1008 .loc 1 519 14 is_stmt 0 view .LVU358 + 1009 0052 5A6D ldr r2, [r3, #84] + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1010 .loc 1 519 9 view .LVU359 + 1011 0054 42B1 cbz r2, .L63 + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1012 .loc 1 523 8 is_stmt 1 view .LVU360 + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1013 .loc 1 523 30 is_stmt 0 view .LVU361 + 1014 0056 1168 ldr r1, [r2] + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1015 .loc 1 523 37 view .LVU362 + 1016 0058 21F48071 bic r1, r1, #256 + 1017 005c 1160 str r1, [r2] + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1018 .loc 1 526 8 is_stmt 1 view .LVU363 + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1019 .loc 1 526 12 is_stmt 0 view .LVU364 + 1020 005e 9A6D ldr r2, [r3, #88] + ARM GAS /tmp/ccCGP7ew.s page 43 + + + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1021 .loc 1 526 50 view .LVU365 + 1022 0060 D96D ldr r1, [r3, #92] + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1023 .loc 1 526 44 view .LVU366 + 1024 0062 5160 str r1, [r2, #4] + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1025 .loc 1 493 21 view .LVU367 + 1026 0064 0020 movs r0, #0 + 1027 0066 D4E7 b .L62 + 1028 .L63: + 1029 0068 0020 movs r0, #0 + 1030 006a D2E7 b .L62 + 1031 .cfi_endproc + 1032 .LFE333: + 1034 .section .text.HAL_DMA_Abort_IT,"ax",%progbits + 1035 .align 1 + 1036 .global HAL_DMA_Abort_IT + 1037 .syntax unified + 1038 .thumb + 1039 .thumb_func + 1041 HAL_DMA_Abort_IT: + 1042 .LVL58: + 1043 .LFB334: + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 1044 .loc 1 545 1 is_stmt 1 view -0 + 1045 .cfi_startproc + 1046 @ args = 0, pretend = 0, frame = 0 + 1047 @ frame_needed = 0, uses_anonymous_args = 0 + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 1048 .loc 1 545 1 is_stmt 0 view .LVU369 + 1049 0000 08B5 push {r3, lr} + 1050 .LCFI9: + 1051 .cfi_def_cfa_offset 8 + 1052 .cfi_offset 3, -8 + 1053 .cfi_offset 14, -4 + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1054 .loc 1 546 3 is_stmt 1 view .LVU370 + 1055 .LVL59: + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1056 .loc 1 548 3 view .LVU371 + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1057 .loc 1 548 33 is_stmt 0 view .LVU372 + 1058 0002 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 1059 0006 DBB2 uxtb r3, r3 + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1060 .loc 1 548 6 view .LVU373 + 1061 0008 022B cmp r3, #2 + 1062 000a 09D0 beq .L65 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1063 .loc 1 551 5 is_stmt 1 view .LVU374 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1064 .loc 1 551 21 is_stmt 0 view .LVU375 + 1065 000c 0423 movs r3, #4 + 1066 000e C363 str r3, [r0, #60] + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1067 .loc 1 554 5 is_stmt 1 view .LVU376 + ARM GAS /tmp/ccCGP7ew.s page 44 + + + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1068 .loc 1 554 17 is_stmt 0 view .LVU377 + 1069 0010 0123 movs r3, #1 + 1070 0012 80F82530 strb r3, [r0, #37] + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1071 .loc 1 557 5 is_stmt 1 view .LVU378 + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1072 .loc 1 557 5 view .LVU379 + 1073 0016 0022 movs r2, #0 + 1074 0018 80F82420 strb r2, [r0, #36] + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1075 .loc 1 557 5 view .LVU380 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1076 .loc 1 559 5 view .LVU381 + 1077 .LVL60: + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1078 .loc 1 559 12 is_stmt 0 view .LVU382 + 1079 001c 1846 mov r0, r3 + 1080 .LVL61: + 1081 .L66: + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1082 .loc 1 600 3 is_stmt 1 view .LVU383 + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1083 .loc 1 601 1 is_stmt 0 view .LVU384 + 1084 001e 08BD pop {r3, pc} + 1085 .LVL62: + 1086 .L65: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1087 .loc 1 564 5 is_stmt 1 view .LVU385 + 1088 0020 0268 ldr r2, [r0] + 1089 0022 1368 ldr r3, [r2] + 1090 0024 23F00E03 bic r3, r3, #14 + 1091 0028 1360 str r3, [r2] + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1092 .loc 1 567 5 view .LVU386 + 1093 002a 0268 ldr r2, [r0] + 1094 002c 1368 ldr r3, [r2] + 1095 002e 23F00103 bic r3, r3, #1 + 1096 0032 1360 str r3, [r2] + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1097 .loc 1 570 5 view .LVU387 + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1098 .loc 1 570 9 is_stmt 0 view .LVU388 + 1099 0034 826C ldr r2, [r0, #72] + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1100 .loc 1 570 24 view .LVU389 + 1101 0036 1368 ldr r3, [r2] + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1102 .loc 1 570 30 view .LVU390 + 1103 0038 23F48073 bic r3, r3, #256 + 1104 003c 1360 str r3, [r2] + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1105 .loc 1 573 5 is_stmt 1 view .LVU391 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1106 .loc 1 573 56 is_stmt 0 view .LVU392 + 1107 003e 436C ldr r3, [r0, #68] + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 45 + + + 1108 .loc 1 573 71 view .LVU393 + 1109 0040 03F01F02 and r2, r3, #31 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1110 .loc 1 573 9 view .LVU394 + 1111 0044 016C ldr r1, [r0, #64] + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1112 .loc 1 573 48 view .LVU395 + 1113 0046 0123 movs r3, #1 + 1114 0048 9340 lsls r3, r3, r2 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1115 .loc 1 573 32 view .LVU396 + 1116 004a 4B60 str r3, [r1, #4] + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1117 .loc 1 576 5 is_stmt 1 view .LVU397 + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1118 .loc 1 576 9 is_stmt 0 view .LVU398 + 1119 004c C36C ldr r3, [r0, #76] + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1120 .loc 1 576 42 view .LVU399 + 1121 004e 026D ldr r2, [r0, #80] + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1122 .loc 1 576 36 view .LVU400 + 1123 0050 5A60 str r2, [r3, #4] + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1124 .loc 1 578 5 is_stmt 1 view .LVU401 + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1125 .loc 1 578 13 is_stmt 0 view .LVU402 + 1126 0052 436D ldr r3, [r0, #84] + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1127 .loc 1 578 8 view .LVU403 + 1128 0054 33B1 cbz r3, .L67 + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1129 .loc 1 582 7 is_stmt 1 view .LVU404 + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1130 .loc 1 582 29 is_stmt 0 view .LVU405 + 1131 0056 1A68 ldr r2, [r3] + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1132 .loc 1 582 36 view .LVU406 + 1133 0058 22F48072 bic r2, r2, #256 + 1134 005c 1A60 str r2, [r3] + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1135 .loc 1 585 7 is_stmt 1 view .LVU407 + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1136 .loc 1 585 11 is_stmt 0 view .LVU408 + 1137 005e 836D ldr r3, [r0, #88] + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1138 .loc 1 585 49 view .LVU409 + 1139 0060 C26D ldr r2, [r0, #92] + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1140 .loc 1 585 43 view .LVU410 + 1141 0062 5A60 str r2, [r3, #4] + 1142 .L67: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1143 .loc 1 589 5 is_stmt 1 view .LVU411 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1144 .loc 1 589 17 is_stmt 0 view .LVU412 + 1145 0064 0123 movs r3, #1 + ARM GAS /tmp/ccCGP7ew.s page 46 + + + 1146 0066 80F82530 strb r3, [r0, #37] + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1147 .loc 1 592 5 is_stmt 1 view .LVU413 + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1148 .loc 1 592 5 view .LVU414 + 1149 006a 0023 movs r3, #0 + 1150 006c 80F82430 strb r3, [r0, #36] + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1151 .loc 1 592 5 view .LVU415 + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1152 .loc 1 595 5 view .LVU416 + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1153 .loc 1 595 13 is_stmt 0 view .LVU417 + 1154 0070 836B ldr r3, [r0, #56] + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1155 .loc 1 595 8 view .LVU418 + 1156 0072 13B1 cbz r3, .L68 + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1157 .loc 1 597 7 is_stmt 1 view .LVU419 + 1158 0074 9847 blx r3 + 1159 .LVL63: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1160 .loc 1 546 21 is_stmt 0 view .LVU420 + 1161 0076 0020 movs r0, #0 + 1162 0078 D1E7 b .L66 + 1163 .LVL64: + 1164 .L68: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1165 .loc 1 546 21 view .LVU421 + 1166 007a 0020 movs r0, #0 + 1167 .LVL65: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1168 .loc 1 546 21 view .LVU422 + 1169 007c CFE7 b .L66 + 1170 .cfi_endproc + 1171 .LFE334: + 1173 .section .text.HAL_DMA_PollForTransfer,"ax",%progbits + 1174 .align 1 + 1175 .global HAL_DMA_PollForTransfer + 1176 .syntax unified + 1177 .thumb + 1178 .thumb_func + 1180 HAL_DMA_PollForTransfer: + 1181 .LVL66: + 1182 .LFB335: + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t temp; + 1183 .loc 1 613 1 is_stmt 1 view -0 + 1184 .cfi_startproc + 1185 @ args = 0, pretend = 0, frame = 0 + 1186 @ frame_needed = 0, uses_anonymous_args = 0 + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t temp; + 1187 .loc 1 613 1 is_stmt 0 view .LVU424 + 1188 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 1189 .LCFI10: + 1190 .cfi_def_cfa_offset 24 + 1191 .cfi_offset 4, -24 + 1192 .cfi_offset 5, -20 + ARM GAS /tmp/ccCGP7ew.s page 47 + + + 1193 .cfi_offset 6, -16 + 1194 .cfi_offset 7, -12 + 1195 .cfi_offset 8, -8 + 1196 .cfi_offset 14, -4 + 1197 0004 0446 mov r4, r0 + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t tickstart; + 1198 .loc 1 614 3 is_stmt 1 view .LVU425 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1199 .loc 1 615 3 view .LVU426 + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1200 .loc 1 617 3 view .LVU427 + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1201 .loc 1 617 33 is_stmt 0 view .LVU428 + 1202 0006 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 1203 000a DBB2 uxtb r3, r3 + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1204 .loc 1 617 6 view .LVU429 + 1205 000c 022B cmp r3, #2 + 1206 000e 07D0 beq .L71 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 1207 .loc 1 620 5 is_stmt 1 view .LVU430 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** __HAL_UNLOCK(hdma); + 1208 .loc 1 620 21 is_stmt 0 view .LVU431 + 1209 0010 0423 movs r3, #4 + 1210 0012 C363 str r3, [r0, #60] + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 1211 .loc 1 621 5 is_stmt 1 view .LVU432 + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 1212 .loc 1 621 5 view .LVU433 + 1213 0014 0023 movs r3, #0 + 1214 0016 80F82430 strb r3, [r0, #36] + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 1215 .loc 1 621 5 view .LVU434 + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1216 .loc 1 622 5 view .LVU435 + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1217 .loc 1 622 12 is_stmt 0 view .LVU436 + 1218 001a 0120 movs r0, #1 + 1219 .LVL67: + 1220 .L72: + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1221 .loc 1 733 1 view .LVU437 + 1222 001c BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1223 .LVL68: + 1224 .L71: + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1225 .loc 1 733 1 view .LVU438 + 1226 0020 0F46 mov r7, r1 + 1227 0022 1546 mov r5, r2 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1228 .loc 1 626 3 is_stmt 1 view .LVU439 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1229 .loc 1 626 18 is_stmt 0 view .LVU440 + 1230 0024 0368 ldr r3, [r0] + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1231 .loc 1 626 28 view .LVU441 + 1232 0026 1B68 ldr r3, [r3] + ARM GAS /tmp/ccCGP7ew.s page 48 + + + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1233 .loc 1 626 6 view .LVU442 + 1234 0028 13F0200F tst r3, #32 + 1235 002c 2BD1 bne .L86 + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1236 .loc 1 633 3 is_stmt 1 view .LVU443 + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1237 .loc 1 633 6 is_stmt 0 view .LVU444 + 1238 002e 79BB cbnz r1, .L74 + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1239 .loc 1 637 5 is_stmt 1 view .LVU445 + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1240 .loc 1 637 43 is_stmt 0 view .LVU446 + 1241 0030 436C ldr r3, [r0, #68] + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1242 .loc 1 637 58 view .LVU447 + 1243 0032 03F01F03 and r3, r3, #31 + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1244 .loc 1 637 10 view .LVU448 + 1245 0036 0226 movs r6, #2 + 1246 0038 9E40 lsls r6, r6, r3 + 1247 .LVL69: + 1248 .L75: + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1249 .loc 1 646 3 is_stmt 1 view .LVU449 + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1250 .loc 1 646 15 is_stmt 0 view .LVU450 + 1251 003a FFF7FEFF bl HAL_GetTick + 1252 .LVL70: + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1253 .loc 1 646 15 view .LVU451 + 1254 003e 8046 mov r8, r0 + 1255 .LVL71: + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1256 .loc 1 648 3 is_stmt 1 view .LVU452 + 1257 .L78: + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1258 .loc 1 648 13 view .LVU453 + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1259 .loc 1 648 21 is_stmt 0 view .LVU454 + 1260 0040 226C ldr r2, [r4, #64] + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1261 .loc 1 648 37 view .LVU455 + 1262 0042 1368 ldr r3, [r2] + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1263 .loc 1 648 13 view .LVU456 + 1264 0044 3342 tst r3, r6 + 1265 0046 34D1 bne .L87 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1266 .loc 1 650 5 is_stmt 1 view .LVU457 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1267 .loc 1 650 37 is_stmt 0 view .LVU458 + 1268 0048 1168 ldr r1, [r2] + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1269 .loc 1 650 77 view .LVU459 + 1270 004a 636C ldr r3, [r4, #68] + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + ARM GAS /tmp/ccCGP7ew.s page 49 + + + 1271 .loc 1 650 92 view .LVU460 + 1272 004c 03F01F03 and r3, r3, #31 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1273 .loc 1 650 69 view .LVU461 + 1274 0050 4FF0080C mov ip, #8 + 1275 0054 0CFA03FC lsl ip, ip, r3 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1276 .loc 1 650 8 view .LVU462 + 1277 0058 11EA0C0F tst r1, ip + 1278 005c 1ED1 bne .L88 + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1279 .loc 1 669 5 is_stmt 1 view .LVU463 + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1280 .loc 1 669 8 is_stmt 0 view .LVU464 + 1281 005e B5F1FF3F cmp r5, #-1 + 1282 0062 EDD0 beq .L78 + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1283 .loc 1 671 7 is_stmt 1 view .LVU465 + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1284 .loc 1 671 13 is_stmt 0 view .LVU466 + 1285 0064 FFF7FEFF bl HAL_GetTick + 1286 .LVL72: + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1287 .loc 1 671 27 view .LVU467 + 1288 0068 A0EB0800 sub r0, r0, r8 + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1289 .loc 1 671 10 view .LVU468 + 1290 006c A842 cmp r0, r5 + 1291 006e 01D8 bhi .L79 + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1292 .loc 1 671 51 discriminator 1 view .LVU469 + 1293 0070 002D cmp r5, #0 + 1294 0072 E5D1 bne .L78 + 1295 .L79: + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1296 .loc 1 674 9 is_stmt 1 view .LVU470 + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1297 .loc 1 674 25 is_stmt 0 view .LVU471 + 1298 0074 2023 movs r3, #32 + 1299 0076 E363 str r3, [r4, #60] + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1300 .loc 1 677 9 is_stmt 1 view .LVU472 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1301 .loc 1 677 21 is_stmt 0 view .LVU473 + 1302 0078 0120 movs r0, #1 + 1303 007a 84F82500 strb r0, [r4, #37] + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1304 .loc 1 680 9 is_stmt 1 view .LVU474 + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1305 .loc 1 680 9 view .LVU475 + 1306 007e 0023 movs r3, #0 + 1307 0080 84F82430 strb r3, [r4, #36] + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1308 .loc 1 680 9 view .LVU476 + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1309 .loc 1 682 9 view .LVU477 + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + ARM GAS /tmp/ccCGP7ew.s page 50 + + + 1310 .loc 1 682 16 is_stmt 0 view .LVU478 + 1311 0084 CAE7 b .L72 + 1312 .LVL73: + 1313 .L86: + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 1314 .loc 1 628 5 is_stmt 1 view .LVU479 + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return HAL_ERROR; + 1315 .loc 1 628 21 is_stmt 0 view .LVU480 + 1316 0086 4FF48073 mov r3, #256 + 1317 008a C363 str r3, [r0, #60] + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1318 .loc 1 629 5 is_stmt 1 view .LVU481 + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1319 .loc 1 629 12 is_stmt 0 view .LVU482 + 1320 008c 0120 movs r0, #1 + 1321 .LVL74: + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1322 .loc 1 629 12 view .LVU483 + 1323 008e C5E7 b .L72 + 1324 .LVL75: + 1325 .L74: + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1326 .loc 1 642 5 is_stmt 1 view .LVU484 + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1327 .loc 1 642 43 is_stmt 0 view .LVU485 + 1328 0090 436C ldr r3, [r0, #68] + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1329 .loc 1 642 58 view .LVU486 + 1330 0092 03F01F03 and r3, r3, #31 + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1331 .loc 1 642 10 view .LVU487 + 1332 0096 0426 movs r6, #4 + 1333 0098 9E40 lsls r6, r6, r3 + 1334 .LVL76: + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1335 .loc 1 642 10 view .LVU488 + 1336 009a CEE7 b .L75 + 1337 .LVL77: + 1338 .L88: + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1339 .loc 1 655 7 is_stmt 1 view .LVU489 + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1340 .loc 1 655 60 is_stmt 0 view .LVU490 + 1341 009c 0120 movs r0, #1 + 1342 009e 00FA03F3 lsl r3, r0, r3 + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1343 .loc 1 655 34 view .LVU491 + 1344 00a2 5360 str r3, [r2, #4] + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1345 .loc 1 658 7 is_stmt 1 view .LVU492 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1346 .loc 1 658 23 is_stmt 0 view .LVU493 + 1347 00a4 E063 str r0, [r4, #60] + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1348 .loc 1 661 7 is_stmt 1 view .LVU494 + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1349 .loc 1 661 19 is_stmt 0 view .LVU495 + ARM GAS /tmp/ccCGP7ew.s page 51 + + + 1350 00a6 84F82500 strb r0, [r4, #37] + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1351 .loc 1 664 7 is_stmt 1 view .LVU496 + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1352 .loc 1 664 7 view .LVU497 + 1353 00aa 0023 movs r3, #0 + 1354 00ac 84F82430 strb r3, [r4, #36] + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1355 .loc 1 664 7 view .LVU498 + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1356 .loc 1 666 7 view .LVU499 + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1357 .loc 1 666 14 is_stmt 0 view .LVU500 + 1358 00b0 B4E7 b .L72 + 1359 .L87: + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1360 .loc 1 688 3 is_stmt 1 view .LVU501 + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1361 .loc 1 688 11 is_stmt 0 view .LVU502 + 1362 00b2 636D ldr r3, [r4, #84] + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1363 .loc 1 688 6 view .LVU503 + 1364 00b4 7BB1 cbz r3, .L81 + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1365 .loc 1 691 5 is_stmt 1 view .LVU504 + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1366 .loc 1 691 14 is_stmt 0 view .LVU505 + 1367 00b6 A26D ldr r2, [r4, #88] + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1368 .loc 1 691 38 view .LVU506 + 1369 00b8 1168 ldr r1, [r2] + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1370 .loc 1 691 51 view .LVU507 + 1371 00ba E26D ldr r2, [r4, #92] + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1372 .loc 1 691 8 view .LVU508 + 1373 00bc 1142 tst r1, r2 + 1374 00be 0AD0 beq .L81 + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1375 .loc 1 694 7 is_stmt 1 view .LVU509 + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1376 .loc 1 694 29 is_stmt 0 view .LVU510 + 1377 00c0 1A68 ldr r2, [r3] + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1378 .loc 1 694 36 view .LVU511 + 1379 00c2 42F48072 orr r2, r2, #256 + 1380 00c6 1A60 str r2, [r3] + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1381 .loc 1 697 7 is_stmt 1 view .LVU512 + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1382 .loc 1 697 11 is_stmt 0 view .LVU513 + 1383 00c8 A36D ldr r3, [r4, #88] + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1384 .loc 1 697 49 view .LVU514 + 1385 00ca E26D ldr r2, [r4, #92] + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1386 .loc 1 697 43 view .LVU515 + ARM GAS /tmp/ccCGP7ew.s page 52 + + + 1387 00cc 5A60 str r2, [r3, #4] + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1388 .loc 1 700 7 is_stmt 1 view .LVU516 + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1389 .loc 1 700 11 is_stmt 0 view .LVU517 + 1390 00ce E36B ldr r3, [r4, #60] + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1391 .loc 1 700 23 view .LVU518 + 1392 00d0 43F48063 orr r3, r3, #1024 + 1393 00d4 E363 str r3, [r4, #60] + 1394 .L81: + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1395 .loc 1 705 3 is_stmt 1 view .LVU519 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1396 .loc 1 705 12 is_stmt 0 view .LVU520 + 1397 00d6 E36C ldr r3, [r4, #76] + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1398 .loc 1 705 33 view .LVU521 + 1399 00d8 1968 ldr r1, [r3] + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1400 .loc 1 705 45 view .LVU522 + 1401 00da 226D ldr r2, [r4, #80] + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1402 .loc 1 705 6 view .LVU523 + 1403 00dc 1142 tst r1, r2 + 1404 00de 04D0 beq .L82 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1405 .loc 1 708 5 is_stmt 1 view .LVU524 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1406 .loc 1 708 36 is_stmt 0 view .LVU525 + 1407 00e0 5A60 str r2, [r3, #4] + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1408 .loc 1 711 5 is_stmt 1 view .LVU526 + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1409 .loc 1 711 9 is_stmt 0 view .LVU527 + 1410 00e2 E36B ldr r3, [r4, #60] + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1411 .loc 1 711 21 view .LVU528 + 1412 00e4 43F40073 orr r3, r3, #512 + 1413 00e8 E363 str r3, [r4, #60] + 1414 .L82: + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1415 .loc 1 714 3 is_stmt 1 view .LVU529 + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1416 .loc 1 714 6 is_stmt 0 view .LVU530 + 1417 00ea 6FB9 cbnz r7, .L83 + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1418 .loc 1 717 5 is_stmt 1 view .LVU531 + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1419 .loc 1 717 66 is_stmt 0 view .LVU532 + 1420 00ec 636C ldr r3, [r4, #68] + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1421 .loc 1 717 81 view .LVU533 + 1422 00ee 03F01F02 and r2, r3, #31 + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1423 .loc 1 717 9 view .LVU534 + 1424 00f2 216C ldr r1, [r4, #64] + ARM GAS /tmp/ccCGP7ew.s page 53 + + + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1425 .loc 1 717 58 view .LVU535 + 1426 00f4 0223 movs r3, #2 + 1427 00f6 9340 lsls r3, r3, r2 + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1428 .loc 1 717 32 view .LVU536 + 1429 00f8 4B60 str r3, [r1, #4] + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1430 .loc 1 721 5 is_stmt 1 view .LVU537 + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1431 .loc 1 721 17 is_stmt 0 view .LVU538 + 1432 00fa 0123 movs r3, #1 + 1433 00fc 84F82530 strb r3, [r4, #37] + 1434 .L84: + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1435 .loc 1 730 3 is_stmt 1 view .LVU539 + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1436 .loc 1 730 3 view .LVU540 + 1437 0100 0020 movs r0, #0 + 1438 0102 84F82400 strb r0, [r4, #36] + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1439 .loc 1 730 3 view .LVU541 + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1440 .loc 1 732 3 view .LVU542 + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1441 .loc 1 732 10 is_stmt 0 view .LVU543 + 1442 0106 89E7 b .L72 + 1443 .L83: + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1444 .loc 1 726 5 is_stmt 1 view .LVU544 + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1445 .loc 1 726 66 is_stmt 0 view .LVU545 + 1446 0108 636C ldr r3, [r4, #68] + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1447 .loc 1 726 81 view .LVU546 + 1448 010a 03F01F02 and r2, r3, #31 + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1449 .loc 1 726 9 view .LVU547 + 1450 010e 216C ldr r1, [r4, #64] + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1451 .loc 1 726 58 view .LVU548 + 1452 0110 0423 movs r3, #4 + 1453 0112 9340 lsls r3, r3, r2 + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1454 .loc 1 726 32 view .LVU549 + 1455 0114 4B60 str r3, [r1, #4] + 1456 0116 F3E7 b .L84 + 1457 .cfi_endproc + 1458 .LFE335: + 1460 .section .text.HAL_DMA_IRQHandler,"ax",%progbits + 1461 .align 1 + 1462 .global HAL_DMA_IRQHandler + 1463 .syntax unified + 1464 .thumb + 1465 .thumb_func + 1467 HAL_DMA_IRQHandler: + 1468 .LVL78: + ARM GAS /tmp/ccCGP7ew.s page 54 + + + 1469 .LFB336: + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t flag_it = hdma->DmaBaseAddress->ISR; + 1470 .loc 1 742 1 is_stmt 1 view -0 + 1471 .cfi_startproc + 1472 @ args = 0, pretend = 0, frame = 0 + 1473 @ frame_needed = 0, uses_anonymous_args = 0 + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t flag_it = hdma->DmaBaseAddress->ISR; + 1474 .loc 1 742 1 is_stmt 0 view .LVU551 + 1475 0000 38B5 push {r3, r4, r5, lr} + 1476 .LCFI11: + 1477 .cfi_def_cfa_offset 16 + 1478 .cfi_offset 3, -16 + 1479 .cfi_offset 4, -12 + 1480 .cfi_offset 5, -8 + 1481 .cfi_offset 14, -4 + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t source_it = hdma->Instance->CCR; + 1482 .loc 1 743 3 is_stmt 1 view .LVU552 + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t source_it = hdma->Instance->CCR; + 1483 .loc 1 743 26 is_stmt 0 view .LVU553 + 1484 0002 036C ldr r3, [r0, #64] + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** uint32_t source_it = hdma->Instance->CCR; + 1485 .loc 1 743 12 view .LVU554 + 1486 0004 1968 ldr r1, [r3] + 1487 .LVL79: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1488 .loc 1 744 3 is_stmt 1 view .LVU555 + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1489 .loc 1 744 28 is_stmt 0 view .LVU556 + 1490 0006 0468 ldr r4, [r0] + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1491 .loc 1 744 12 view .LVU557 + 1492 0008 2568 ldr r5, [r4] + 1493 .LVL80: + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1494 .loc 1 747 3 is_stmt 1 view .LVU558 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1495 .loc 1 747 57 is_stmt 0 view .LVU559 + 1496 000a 436C ldr r3, [r0, #68] + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1497 .loc 1 747 72 view .LVU560 + 1498 000c 03F01F03 and r3, r3, #31 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1499 .loc 1 747 49 view .LVU561 + 1500 0010 0422 movs r2, #4 + 1501 0012 9A40 lsls r2, r2, r3 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1502 .loc 1 747 6 view .LVU562 + 1503 0014 0A42 tst r2, r1 + 1504 0016 15D0 beq .L90 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1505 .loc 1 747 84 discriminator 1 view .LVU563 + 1506 0018 15F0040F tst r5, #4 + 1507 001c 12D0 beq .L90 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1508 .loc 1 750 5 is_stmt 1 view .LVU564 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1509 .loc 1 750 24 is_stmt 0 view .LVU565 + ARM GAS /tmp/ccCGP7ew.s page 55 + + + 1510 001e 2368 ldr r3, [r4] + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1511 .loc 1 750 8 view .LVU566 + 1512 0020 13F0200F tst r3, #32 + 1513 0024 03D1 bne .L91 + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1514 .loc 1 753 7 is_stmt 1 view .LVU567 + 1515 0026 2368 ldr r3, [r4] + 1516 0028 23F00403 bic r3, r3, #4 + 1517 002c 2360 str r3, [r4] + 1518 .L91: + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1519 .loc 1 756 5 view .LVU568 + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1520 .loc 1 756 67 is_stmt 0 view .LVU569 + 1521 002e 436C ldr r3, [r0, #68] + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1522 .loc 1 756 82 view .LVU570 + 1523 0030 03F01F02 and r2, r3, #31 + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1524 .loc 1 756 9 view .LVU571 + 1525 0034 016C ldr r1, [r0, #64] + 1526 .LVL81: + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1527 .loc 1 756 59 view .LVU572 + 1528 0036 0423 movs r3, #4 + 1529 0038 9340 lsls r3, r3, r2 + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1530 .loc 1 756 32 view .LVU573 + 1531 003a 4B60 str r3, [r1, #4] + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1532 .loc 1 761 5 is_stmt 1 view .LVU574 + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1533 .loc 1 761 13 is_stmt 0 view .LVU575 + 1534 003c 036B ldr r3, [r0, #48] + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1535 .loc 1 761 8 view .LVU576 + 1536 003e 03B1 cbz r3, .L89 + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1537 .loc 1 764 7 is_stmt 1 view .LVU577 + 1538 0040 9847 blx r3 + 1539 .LVL82: + 1540 .L89: + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1541 .loc 1 823 1 is_stmt 0 view .LVU578 + 1542 0042 38BD pop {r3, r4, r5, pc} + 1543 .LVL83: + 1544 .L90: + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TC))) + 1545 .loc 1 768 8 is_stmt 1 view .LVU579 + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TC))) + 1546 .loc 1 768 54 is_stmt 0 view .LVU580 + 1547 0044 0222 movs r2, #2 + 1548 0046 9A40 lsls r2, r2, r3 + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TC))) + 1549 .loc 1 768 11 view .LVU581 + 1550 0048 0A42 tst r2, r1 + ARM GAS /tmp/ccCGP7ew.s page 56 + + + 1551 004a 1CD0 beq .L93 + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1552 .loc 1 769 12 view .LVU582 + 1553 004c 15F0020F tst r5, #2 + 1554 0050 19D0 beq .L93 + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1555 .loc 1 771 5 is_stmt 1 view .LVU583 + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1556 .loc 1 771 24 is_stmt 0 view .LVU584 + 1557 0052 2368 ldr r3, [r4] + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1558 .loc 1 771 8 view .LVU585 + 1559 0054 13F0200F tst r3, #32 + 1560 0058 06D1 bne .L94 + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1561 .loc 1 774 7 is_stmt 1 view .LVU586 + 1562 005a 2368 ldr r3, [r4] + 1563 005c 23F00A03 bic r3, r3, #10 + 1564 0060 2360 str r3, [r4] + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1565 .loc 1 777 7 view .LVU587 + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1566 .loc 1 777 19 is_stmt 0 view .LVU588 + 1567 0062 0123 movs r3, #1 + 1568 0064 80F82530 strb r3, [r0, #37] + 1569 .L94: + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1570 .loc 1 780 5 is_stmt 1 view .LVU589 + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1571 .loc 1 780 67 is_stmt 0 view .LVU590 + 1572 0068 436C ldr r3, [r0, #68] + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1573 .loc 1 780 82 view .LVU591 + 1574 006a 03F01F02 and r2, r3, #31 + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1575 .loc 1 780 9 view .LVU592 + 1576 006e 016C ldr r1, [r0, #64] + 1577 .LVL84: + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1578 .loc 1 780 59 view .LVU593 + 1579 0070 0223 movs r3, #2 + 1580 0072 9340 lsls r3, r3, r2 + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1581 .loc 1 780 32 view .LVU594 + 1582 0074 4B60 str r3, [r1, #4] + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1583 .loc 1 783 5 is_stmt 1 view .LVU595 + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1584 .loc 1 783 5 view .LVU596 + 1585 0076 0023 movs r3, #0 + 1586 0078 80F82430 strb r3, [r0, #36] + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1587 .loc 1 783 5 view .LVU597 + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1588 .loc 1 785 5 view .LVU598 + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1589 .loc 1 785 13 is_stmt 0 view .LVU599 + ARM GAS /tmp/ccCGP7ew.s page 57 + + + 1590 007c C36A ldr r3, [r0, #44] + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1591 .loc 1 785 8 view .LVU600 + 1592 007e 002B cmp r3, #0 + 1593 0080 DFD0 beq .L89 + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1594 .loc 1 788 7 is_stmt 1 view .LVU601 + 1595 0082 9847 blx r3 + 1596 .LVL85: + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1597 .loc 1 788 7 is_stmt 0 view .LVU602 + 1598 0084 DDE7 b .L89 + 1599 .LVL86: + 1600 .L93: + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TE))) + 1601 .loc 1 792 8 is_stmt 1 view .LVU603 + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TE))) + 1602 .loc 1 792 54 is_stmt 0 view .LVU604 + 1603 0086 0822 movs r2, #8 + 1604 0088 02FA03F3 lsl r3, r2, r3 + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** && (0U != (source_it & DMA_IT_TE))) + 1605 .loc 1 792 11 view .LVU605 + 1606 008c 0B42 tst r3, r1 + 1607 008e D8D0 beq .L89 + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1608 .loc 1 793 12 view .LVU606 + 1609 0090 15F0080F tst r5, #8 + 1610 0094 D5D0 beq .L89 + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1611 .loc 1 798 5 is_stmt 1 view .LVU607 + 1612 0096 2368 ldr r3, [r4] + 1613 0098 23F00E03 bic r3, r3, #14 + 1614 009c 2360 str r3, [r4] + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1615 .loc 1 801 5 view .LVU608 + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1616 .loc 1 801 66 is_stmt 0 view .LVU609 + 1617 009e 436C ldr r3, [r0, #68] + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1618 .loc 1 801 81 view .LVU610 + 1619 00a0 03F01F03 and r3, r3, #31 + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1620 .loc 1 801 9 view .LVU611 + 1621 00a4 016C ldr r1, [r0, #64] + 1622 .LVL87: + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1623 .loc 1 801 58 view .LVU612 + 1624 00a6 0122 movs r2, #1 + 1625 00a8 02FA03F3 lsl r3, r2, r3 + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1626 .loc 1 801 32 view .LVU613 + 1627 00ac 4B60 str r3, [r1, #4] + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1628 .loc 1 804 5 is_stmt 1 view .LVU614 + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1629 .loc 1 804 21 is_stmt 0 view .LVU615 + 1630 00ae C263 str r2, [r0, #60] + ARM GAS /tmp/ccCGP7ew.s page 58 + + + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1631 .loc 1 807 5 is_stmt 1 view .LVU616 + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1632 .loc 1 807 17 is_stmt 0 view .LVU617 + 1633 00b0 80F82520 strb r2, [r0, #37] + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1634 .loc 1 810 5 is_stmt 1 view .LVU618 + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1635 .loc 1 810 5 view .LVU619 + 1636 00b4 0023 movs r3, #0 + 1637 00b6 80F82430 strb r3, [r0, #36] + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1638 .loc 1 810 5 view .LVU620 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1639 .loc 1 812 5 view .LVU621 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1640 .loc 1 812 13 is_stmt 0 view .LVU622 + 1641 00ba 436B ldr r3, [r0, #52] + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1642 .loc 1 812 8 view .LVU623 + 1643 00bc 002B cmp r3, #0 + 1644 00be C0D0 beq .L89 + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1645 .loc 1 815 7 is_stmt 1 view .LVU624 + 1646 00c0 9847 blx r3 + 1647 .LVL88: + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return; + 1648 .loc 1 821 3 view .LVU625 + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1649 .loc 1 822 3 view .LVU626 + 1650 00c2 BEE7 b .L89 + 1651 .cfi_endproc + 1652 .LFE336: + 1654 .section .text.HAL_DMA_RegisterCallback,"ax",%progbits + 1655 .align 1 + 1656 .global HAL_DMA_RegisterCallback + 1657 .syntax unified + 1658 .thumb + 1659 .thumb_func + 1661 HAL_DMA_RegisterCallback: + 1662 .LVL89: + 1663 .LFB337: + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 1664 .loc 1 836 1 view -0 + 1665 .cfi_startproc + 1666 @ args = 0, pretend = 0, frame = 0 + 1667 @ frame_needed = 0, uses_anonymous_args = 0 + 1668 @ link register save eliminated. + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 1669 .loc 1 836 1 is_stmt 0 view .LVU628 + 1670 0000 0346 mov r3, r0 + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1671 .loc 1 837 3 is_stmt 1 view .LVU629 + 1672 .LVL90: + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1673 .loc 1 840 3 view .LVU630 + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + ARM GAS /tmp/ccCGP7ew.s page 59 + + + 1674 .loc 1 840 3 view .LVU631 + 1675 0002 90F82400 ldrb r0, [r0, #36] @ zero_extendqisi2 + 1676 .LVL91: + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1677 .loc 1 840 3 is_stmt 0 view .LVU632 + 1678 0006 0128 cmp r0, #1 + 1679 0008 1ED0 beq .L104 + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1680 .loc 1 840 3 is_stmt 1 discriminator 2 view .LVU633 + 1681 000a 0120 movs r0, #1 + 1682 000c 83F82400 strb r0, [r3, #36] + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1683 .loc 1 840 3 discriminator 2 view .LVU634 + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1684 .loc 1 842 3 discriminator 2 view .LVU635 + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1685 .loc 1 842 34 is_stmt 0 discriminator 2 view .LVU636 + 1686 0010 93F82500 ldrb r0, [r3, #37] @ zero_extendqisi2 + 1687 0014 C0B2 uxtb r0, r0 + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1688 .loc 1 842 6 discriminator 2 view .LVU637 + 1689 0016 0128 cmp r0, #1 + 1690 0018 04D0 beq .L107 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1691 .loc 1 869 12 view .LVU638 + 1692 001a 0120 movs r0, #1 + 1693 .L98: + 1694 .LVL92: + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1695 .loc 1 873 3 is_stmt 1 view .LVU639 + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1696 .loc 1 873 3 view .LVU640 + 1697 001c 0022 movs r2, #0 + 1698 .LVL93: + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1699 .loc 1 873 3 is_stmt 0 view .LVU641 + 1700 001e 83F82420 strb r2, [r3, #36] + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1701 .loc 1 873 3 is_stmt 1 view .LVU642 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1702 .loc 1 875 3 view .LVU643 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1703 .loc 1 875 10 is_stmt 0 view .LVU644 + 1704 0022 7047 bx lr + 1705 .LVL94: + 1706 .L107: + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1707 .loc 1 844 5 is_stmt 1 view .LVU645 + 1708 0024 0329 cmp r1, #3 + 1709 0026 F9D8 bhi .L98 + 1710 0028 DFE801F0 tbb [pc, r1] + 1711 .L100: + 1712 002c 02 .byte (.L103-.L100)/2 + 1713 002d 05 .byte (.L102-.L100)/2 + 1714 002e 08 .byte (.L101-.L100)/2 + 1715 002f 0B .byte (.L99-.L100)/2 + 1716 .p2align 1 + ARM GAS /tmp/ccCGP7ew.s page 60 + + + 1717 .L103: + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1718 .loc 1 847 9 view .LVU646 + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1719 .loc 1 847 32 is_stmt 0 view .LVU647 + 1720 0030 DA62 str r2, [r3, #44] + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1721 .loc 1 848 9 is_stmt 1 view .LVU648 + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1722 .loc 1 837 21 is_stmt 0 view .LVU649 + 1723 0032 0846 mov r0, r1 + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1724 .loc 1 848 9 view .LVU650 + 1725 0034 F2E7 b .L98 + 1726 .L102: + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1727 .loc 1 851 9 is_stmt 1 view .LVU651 + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1728 .loc 1 851 36 is_stmt 0 view .LVU652 + 1729 0036 1A63 str r2, [r3, #48] + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1730 .loc 1 852 9 is_stmt 1 view .LVU653 + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1731 .loc 1 837 21 is_stmt 0 view .LVU654 + 1732 0038 0020 movs r0, #0 + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1733 .loc 1 852 9 view .LVU655 + 1734 003a EFE7 b .L98 + 1735 .L101: + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1736 .loc 1 855 9 is_stmt 1 view .LVU656 + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1737 .loc 1 855 33 is_stmt 0 view .LVU657 + 1738 003c 5A63 str r2, [r3, #52] + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1739 .loc 1 856 9 is_stmt 1 view .LVU658 + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1740 .loc 1 837 21 is_stmt 0 view .LVU659 + 1741 003e 0020 movs r0, #0 + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1742 .loc 1 856 9 view .LVU660 + 1743 0040 ECE7 b .L98 + 1744 .L99: + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1745 .loc 1 859 9 is_stmt 1 view .LVU661 + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1746 .loc 1 859 33 is_stmt 0 view .LVU662 + 1747 0042 9A63 str r2, [r3, #56] + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1748 .loc 1 860 9 is_stmt 1 view .LVU663 + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1749 .loc 1 837 21 is_stmt 0 view .LVU664 + 1750 0044 0020 movs r0, #0 + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1751 .loc 1 860 9 view .LVU665 + 1752 0046 E9E7 b .L98 + 1753 .L104: + ARM GAS /tmp/ccCGP7ew.s page 61 + + + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1754 .loc 1 840 3 view .LVU666 + 1755 0048 0220 movs r0, #2 + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1756 .loc 1 876 1 view .LVU667 + 1757 004a 7047 bx lr + 1758 .cfi_endproc + 1759 .LFE337: + 1761 .section .text.HAL_DMA_UnRegisterCallback,"ax",%progbits + 1762 .align 1 + 1763 .global HAL_DMA_UnRegisterCallback + 1764 .syntax unified + 1765 .thumb + 1766 .thumb_func + 1768 HAL_DMA_UnRegisterCallback: + 1769 .LVL95: + 1770 .LFB338: + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 1771 .loc 1 887 1 is_stmt 1 view -0 + 1772 .cfi_startproc + 1773 @ args = 0, pretend = 0, frame = 0 + 1774 @ frame_needed = 0, uses_anonymous_args = 0 + 1775 @ link register save eliminated. + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; + 1776 .loc 1 887 1 is_stmt 0 view .LVU669 + 1777 0000 0346 mov r3, r0 + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1778 .loc 1 888 3 is_stmt 1 view .LVU670 + 1779 .LVL96: + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1780 .loc 1 891 3 view .LVU671 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1781 .loc 1 891 3 view .LVU672 + 1782 0002 90F82420 ldrb r2, [r0, #36] @ zero_extendqisi2 + 1783 0006 012A cmp r2, #1 + 1784 0008 26D0 beq .L117 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1785 .loc 1 891 3 discriminator 2 view .LVU673 + 1786 000a 0122 movs r2, #1 + 1787 000c 80F82420 strb r2, [r0, #36] + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1788 .loc 1 891 3 discriminator 2 view .LVU674 + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1789 .loc 1 893 3 discriminator 2 view .LVU675 + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1790 .loc 1 893 34 is_stmt 0 discriminator 2 view .LVU676 + 1791 0010 90F82500 ldrb r0, [r0, #37] @ zero_extendqisi2 + 1792 .LVL97: + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1793 .loc 1 893 34 discriminator 2 view .LVU677 + 1794 0014 C0B2 uxtb r0, r0 + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1795 .loc 1 893 6 discriminator 2 view .LVU678 + 1796 0016 9042 cmp r0, r2 + 1797 0018 04D0 beq .L120 + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1798 .loc 1 927 12 view .LVU679 + ARM GAS /tmp/ccCGP7ew.s page 62 + + + 1799 001a 0120 movs r0, #1 + 1800 .L110: + 1801 .LVL98: + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1802 .loc 1 931 3 is_stmt 1 view .LVU680 + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1803 .loc 1 931 3 view .LVU681 + 1804 001c 0022 movs r2, #0 + 1805 001e 83F82420 strb r2, [r3, #36] + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1806 .loc 1 931 3 view .LVU682 + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1807 .loc 1 933 3 view .LVU683 + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1808 .loc 1 933 10 is_stmt 0 view .LVU684 + 1809 0022 7047 bx lr + 1810 .LVL99: + 1811 .L120: + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** { + 1812 .loc 1 895 5 is_stmt 1 view .LVU685 + 1813 0024 0429 cmp r1, #4 + 1814 0026 F9D8 bhi .L110 + 1815 0028 DFE801F0 tbb [pc, r1] + 1816 .L112: + 1817 002c 03 .byte (.L116-.L112)/2 + 1818 002d 07 .byte (.L115-.L112)/2 + 1819 002e 0A .byte (.L114-.L112)/2 + 1820 002f 0D .byte (.L113-.L112)/2 + 1821 0030 10 .byte (.L111-.L112)/2 + 1822 0031 00 .p2align 1 + 1823 .L116: + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1824 .loc 1 898 9 view .LVU686 + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1825 .loc 1 898 32 is_stmt 0 view .LVU687 + 1826 0032 0022 movs r2, #0 + 1827 0034 DA62 str r2, [r3, #44] + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1828 .loc 1 899 9 is_stmt 1 view .LVU688 + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1829 .loc 1 888 21 is_stmt 0 view .LVU689 + 1830 0036 0846 mov r0, r1 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1831 .loc 1 899 9 view .LVU690 + 1832 0038 F0E7 b .L110 + 1833 .L115: + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1834 .loc 1 902 9 is_stmt 1 view .LVU691 + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1835 .loc 1 902 36 is_stmt 0 view .LVU692 + 1836 003a 0020 movs r0, #0 + 1837 003c 1863 str r0, [r3, #48] + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1838 .loc 1 903 9 is_stmt 1 view .LVU693 + 1839 003e EDE7 b .L110 + 1840 .L114: + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + ARM GAS /tmp/ccCGP7ew.s page 63 + + + 1841 .loc 1 906 9 view .LVU694 + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1842 .loc 1 906 33 is_stmt 0 view .LVU695 + 1843 0040 0020 movs r0, #0 + 1844 0042 5863 str r0, [r3, #52] + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1845 .loc 1 907 9 is_stmt 1 view .LVU696 + 1846 0044 EAE7 b .L110 + 1847 .L113: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1848 .loc 1 910 9 view .LVU697 + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1849 .loc 1 910 33 is_stmt 0 view .LVU698 + 1850 0046 0020 movs r0, #0 + 1851 0048 9863 str r0, [r3, #56] + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1852 .loc 1 911 9 is_stmt 1 view .LVU699 + 1853 004a E7E7 b .L110 + 1854 .L111: + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 1855 .loc 1 914 9 view .LVU700 + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; + 1856 .loc 1 914 32 is_stmt 0 view .LVU701 + 1857 004c 0020 movs r0, #0 + 1858 004e D862 str r0, [r3, #44] + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 1859 .loc 1 915 9 is_stmt 1 view .LVU702 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; + 1860 .loc 1 915 36 is_stmt 0 view .LVU703 + 1861 0050 1863 str r0, [r3, #48] + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 1862 .loc 1 916 9 is_stmt 1 view .LVU704 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; + 1863 .loc 1 916 33 is_stmt 0 view .LVU705 + 1864 0052 5863 str r0, [r3, #52] + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1865 .loc 1 917 9 is_stmt 1 view .LVU706 + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** break; + 1866 .loc 1 917 33 is_stmt 0 view .LVU707 + 1867 0054 9863 str r0, [r3, #56] + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1868 .loc 1 918 9 is_stmt 1 view .LVU708 + 1869 0056 E1E7 b .L110 + 1870 .LVL100: + 1871 .L117: + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1872 .loc 1 891 3 is_stmt 0 view .LVU709 + 1873 0058 0220 movs r0, #2 + 1874 .LVL101: + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1875 .loc 1 934 1 view .LVU710 + 1876 005a 7047 bx lr + 1877 .cfi_endproc + 1878 .LFE338: + 1880 .section .text.HAL_DMA_GetState,"ax",%progbits + 1881 .align 1 + 1882 .global HAL_DMA_GetState + ARM GAS /tmp/ccCGP7ew.s page 64 + + + 1883 .syntax unified + 1884 .thumb + 1885 .thumb_func + 1887 HAL_DMA_GetState: + 1888 .LVL102: + 1889 .LFB339: + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** /* Return DMA handle state */ + 1890 .loc 1 965 1 is_stmt 1 view -0 + 1891 .cfi_startproc + 1892 @ args = 0, pretend = 0, frame = 0 + 1893 @ frame_needed = 0, uses_anonymous_args = 0 + 1894 @ link register save eliminated. + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1895 .loc 1 967 3 view .LVU712 + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1896 .loc 1 967 14 is_stmt 0 view .LVU713 + 1897 0000 90F82500 ldrb r0, [r0, #37] @ zero_extendqisi2 + 1898 .LVL103: + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1899 .loc 1 968 1 view .LVU714 + 1900 0004 7047 bx lr + 1901 .cfi_endproc + 1902 .LFE339: + 1904 .section .text.HAL_DMA_GetError,"ax",%progbits + 1905 .align 1 + 1906 .global HAL_DMA_GetError + 1907 .syntax unified + 1908 .thumb + 1909 .thumb_func + 1911 HAL_DMA_GetError: + 1912 .LVL104: + 1913 .LFB340: + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** return hdma->ErrorCode; + 1914 .loc 1 977 1 is_stmt 1 view -0 + 1915 .cfi_startproc + 1916 @ args = 0, pretend = 0, frame = 0 + 1917 @ frame_needed = 0, uses_anonymous_args = 0 + 1918 @ link register save eliminated. + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1919 .loc 1 978 3 view .LVU716 + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** } + 1920 .loc 1 978 14 is_stmt 0 view .LVU717 + 1921 0000 C06B ldr r0, [r0, #60] + 1922 .LVL105: + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma.c **** + 1923 .loc 1 979 1 view .LVU718 + 1924 0002 7047 bx lr + 1925 .cfi_endproc + 1926 .LFE340: + 1928 .text + 1929 .Letext0: + 1930 .file 2 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1931 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1932 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1933 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 1934 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccCGP7ew.s page 65 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_dma.c + /tmp/ccCGP7ew.s:21 .text.DMA_SetConfig:00000000 $t + /tmp/ccCGP7ew.s:26 .text.DMA_SetConfig:00000000 DMA_SetConfig + /tmp/ccCGP7ew.s:121 .text.DMA_CalcDMAMUXChannelBaseAndMask:00000000 $t + /tmp/ccCGP7ew.s:126 .text.DMA_CalcDMAMUXChannelBaseAndMask:00000000 DMA_CalcDMAMUXChannelBaseAndMask + /tmp/ccCGP7ew.s:190 .text.DMA_CalcDMAMUXChannelBaseAndMask:00000034 $d + /tmp/ccCGP7ew.s:199 .text.DMA_CalcDMAMUXRequestGenBaseAndMask:00000000 $t + /tmp/ccCGP7ew.s:204 .text.DMA_CalcDMAMUXRequestGenBaseAndMask:00000000 DMA_CalcDMAMUXRequestGenBaseAndMask + /tmp/ccCGP7ew.s:244 .text.DMA_CalcDMAMUXRequestGenBaseAndMask:00000020 $d + /tmp/ccCGP7ew.s:250 .text.HAL_DMA_Init:00000000 $t + /tmp/ccCGP7ew.s:256 .text.HAL_DMA_Init:00000000 HAL_DMA_Init + /tmp/ccCGP7ew.s:474 .text.HAL_DMA_Init:000000c0 $d + /tmp/ccCGP7ew.s:484 .text.HAL_DMA_DeInit:00000000 $t + /tmp/ccCGP7ew.s:490 .text.HAL_DMA_DeInit:00000000 HAL_DMA_DeInit + /tmp/ccCGP7ew.s:672 .text.HAL_DMA_DeInit:000000a0 $d + /tmp/ccCGP7ew.s:682 .text.HAL_DMA_Start:00000000 $t + /tmp/ccCGP7ew.s:688 .text.HAL_DMA_Start:00000000 HAL_DMA_Start + /tmp/ccCGP7ew.s:776 .text.HAL_DMA_Start_IT:00000000 $t + /tmp/ccCGP7ew.s:782 .text.HAL_DMA_Start_IT:00000000 HAL_DMA_Start_IT + /tmp/ccCGP7ew.s:920 .text.HAL_DMA_Abort:00000000 $t + /tmp/ccCGP7ew.s:926 .text.HAL_DMA_Abort:00000000 HAL_DMA_Abort + /tmp/ccCGP7ew.s:1035 .text.HAL_DMA_Abort_IT:00000000 $t + /tmp/ccCGP7ew.s:1041 .text.HAL_DMA_Abort_IT:00000000 HAL_DMA_Abort_IT + /tmp/ccCGP7ew.s:1174 .text.HAL_DMA_PollForTransfer:00000000 $t + /tmp/ccCGP7ew.s:1180 .text.HAL_DMA_PollForTransfer:00000000 HAL_DMA_PollForTransfer + /tmp/ccCGP7ew.s:1461 .text.HAL_DMA_IRQHandler:00000000 $t + /tmp/ccCGP7ew.s:1467 .text.HAL_DMA_IRQHandler:00000000 HAL_DMA_IRQHandler + /tmp/ccCGP7ew.s:1655 .text.HAL_DMA_RegisterCallback:00000000 $t + /tmp/ccCGP7ew.s:1661 .text.HAL_DMA_RegisterCallback:00000000 HAL_DMA_RegisterCallback + /tmp/ccCGP7ew.s:1712 .text.HAL_DMA_RegisterCallback:0000002c $d + /tmp/ccCGP7ew.s:1716 .text.HAL_DMA_RegisterCallback:00000030 $t + /tmp/ccCGP7ew.s:1762 .text.HAL_DMA_UnRegisterCallback:00000000 $t + /tmp/ccCGP7ew.s:1768 .text.HAL_DMA_UnRegisterCallback:00000000 HAL_DMA_UnRegisterCallback + /tmp/ccCGP7ew.s:1817 .text.HAL_DMA_UnRegisterCallback:0000002c $d + /tmp/ccCGP7ew.s:1881 .text.HAL_DMA_GetState:00000000 $t + /tmp/ccCGP7ew.s:1887 .text.HAL_DMA_GetState:00000000 HAL_DMA_GetState + /tmp/ccCGP7ew.s:1905 .text.HAL_DMA_GetError:00000000 $t + /tmp/ccCGP7ew.s:1911 .text.HAL_DMA_GetError:00000000 HAL_DMA_GetError + /tmp/ccCGP7ew.s:1822 .text.HAL_DMA_UnRegisterCallback:00000031 $d + /tmp/ccCGP7ew.s:1822 .text.HAL_DMA_UnRegisterCallback:00000032 $t + +UNDEFINED SYMBOLS +HAL_GetTick diff --git a/squeow_sw/build/stm32g4xx_hal_dma.o b/squeow_sw/build/stm32g4xx_hal_dma.o new file mode 100644 index 0000000000000000000000000000000000000000..860faa43332b0493d40835b39b751863cc96479c GIT binary patch literal 22552 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_dma_ex.d b/squeow_sw/build/stm32g4xx_hal_dma_ex.d new file mode 100644 index 0000000..e1efffc --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_dma_ex.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_dma_ex.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_dma_ex.lst b/squeow_sw/build/stm32g4xx_hal_dma_ex.lst new file mode 100644 index 0000000..4ce96e8 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_dma_ex.lst @@ -0,0 +1,1981 @@ +ARM GAS /tmp/ccF4OHvs.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_dma_ex.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c" + 20 .section .text.HAL_DMAEx_ConfigMuxSync,"ax",%progbits + 21 .align 1 + 22 .global HAL_DMAEx_ConfigMuxSync + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 HAL_DMAEx_ConfigMuxSync: + 28 .LVL0: + 29 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @file stm32g4xx_hal_dma_ex.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief DMA Extension HAL module driver + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * functionalities of the DMA Extension peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + Extended features functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ****************************************************************************** + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @attention + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * Copyright (c) 2019 STMicroelectronics. + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * All rights reserved. + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * This software is licensed under terms that can be found in the LICENSE file + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * in the root directory of this software component. + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ****************************************************************************** + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** @verbatim + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ============================================================================== + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ##### How to use this driver ##### + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ============================================================================== + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** [..] + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** The DMA Extension HAL driver can be used as follows: + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (+) Configure the DMA_MUX Synchronization Block using HAL_DMAEx_ConfigMuxSync function. + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (+) Configure the DMA_MUX Request Generator Block using HAL_DMAEx_ConfigMuxRequestGenerator func + ARM GAS /tmp/ccF4OHvs.s page 2 + + + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** Functions HAL_DMAEx_EnableMuxRequestGenerator and HAL_DMAEx_DisableMuxRequestGenerator can t + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** to respectively enable/disable the request generator. + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (+) To handle the DMAMUX Interrupts, the function HAL_DMAEx_MUX_IRQHandler should be called fro + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** the DMAMUX IRQ handler i.e DMAMUX1_OVR_IRQHandler. + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** As only one interrupt line is available for all DMAMUX channels and request generators , HAL + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** called with, as parameter, the appropriate DMA handle as many as used DMAs in the user proje + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (exception done if a given DMA is not using the DMAMUX SYNC block neither a request generator + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** @endverbatim + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Includes ------------------------------------------------------------------*/ + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** #include "stm32g4xx_hal.h" + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @{ + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** @defgroup DMAEx DMAEx + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief DMA Extended HAL module driver + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @{ + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** #ifdef HAL_DMA_MODULE_ENABLED + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private typedef -----------------------------------------------------------*/ + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private define ------------------------------------------------------------*/ + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private macro -------------------------------------------------------------*/ + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private variables ---------------------------------------------------------*/ + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private Constants ---------------------------------------------------------*/ + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private function prototypes -----------------------------------------------*/ + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Private functions ---------------------------------------------------------*/ + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @{ + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** @defgroup DMAEx_Exported_Functions_Group1 DMAEx Extended features functions + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief Extended features functions + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** @verbatim + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** =============================================================================== + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ##### Extended features functions ##### + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** =============================================================================== + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** [..] This section provides functions allowing to: + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (+) Configure the DMAMUX Synchronization Block using HAL_DMAEx_ConfigMuxSync function. + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (+) Configure the DMAMUX Request Generator Block using HAL_DMAEx_ConfigMuxRequestGenerator func + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** Functions HAL_DMAEx_EnableMuxRequestGenerator and HAL_DMAEx_DisableMuxRequestGenerator can t + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** to respectively enable/disable the request generator. + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** @endverbatim + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @{ + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + ARM GAS /tmp/ccF4OHvs.s page 3 + + + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief Configure the DMAMUX synchronization parameters for a given DMA channel (instance). + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * the configuration information for the specified DMA channel. + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param pSyncConfig : pointer to HAL_DMA_MuxSyncConfigTypeDef : contains the DMAMUX synchroniza + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @retval HAL status + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** HAL_StatusTypeDef HAL_DMAEx_ConfigMuxSync(DMA_HandleTypeDef *hdma, HAL_DMA_MuxSyncConfigTypeDef *pS + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 30 .loc 1 96 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 @ link register save eliminated. + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check the parameters */ + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + 35 .loc 1 98 3 view .LVU1 + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_SYNC_SIGNAL_ID(pSyncConfig->SyncSignalID)); + 36 .loc 1 100 3 view .LVU2 + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_SYNC_POLARITY(pSyncConfig-> SyncPolarity)); + 37 .loc 1 102 3 view .LVU3 + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_SYNC_STATE(pSyncConfig->SyncEnable)); + 38 .loc 1 103 3 view .LVU4 + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_SYNC_EVENT(pSyncConfig->EventEnable)); + 39 .loc 1 104 3 view .LVU5 + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_SYNC_REQUEST_NUMBER(pSyncConfig->RequestNumber)); + 40 .loc 1 105 3 view .LVU6 + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /*Check if the DMA state is ready */ + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if (hdma->State == HAL_DMA_STATE_READY) + 41 .loc 1 108 3 view .LVU7 + 42 .loc 1 108 11 is_stmt 0 view .LVU8 + 43 0000 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 44 0004 DBB2 uxtb r3, r3 + 45 .loc 1 108 6 view .LVU9 + 46 0006 012B cmp r3, #1 + 47 0008 21D1 bne .L3 + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Process Locked */ + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** __HAL_LOCK(hdma); + 48 .loc 1 111 5 is_stmt 1 view .LVU10 + 49 .loc 1 111 5 view .LVU11 + 50 000a 90F82430 ldrb r3, [r0, #36] @ zero_extendqisi2 + 51 000e 012B cmp r3, #1 + 52 0010 1FD0 beq .L4 + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check the parameters */ + 53 .loc 1 96 1 is_stmt 0 discriminator 2 view .LVU12 + 54 0012 30B4 push {r4, r5} + 55 .LCFI0: + 56 .cfi_def_cfa_offset 8 + 57 .cfi_offset 4, -8 + 58 .cfi_offset 5, -4 + 59 .loc 1 111 5 is_stmt 1 discriminator 2 view .LVU13 + 60 0014 0123 movs r3, #1 + ARM GAS /tmp/ccF4OHvs.s page 4 + + + 61 0016 80F82430 strb r3, [r0, #36] + 62 .loc 1 111 5 discriminator 2 view .LVU14 + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Set the new synchronization parameters (and keep the request ID filled during the Init)*/ + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** MODIFY_REG(hdma->DMAmuxChannel->CCR, \ + 63 .loc 1 114 5 discriminator 2 view .LVU15 + 64 001a 846C ldr r4, [r0, #72] + 65 001c 2268 ldr r2, [r4] + 66 001e D2B2 uxtb r2, r2 + 67 0020 CB68 ldr r3, [r1, #12] + 68 0022 013B subs r3, r3, #1 + 69 0024 DB04 lsls r3, r3, #19 + 70 0026 0D68 ldr r5, [r1] + 71 0028 43EA0563 orr r3, r3, r5, lsl #24 + 72 002c 4D68 ldr r5, [r1, #4] + 73 002e 2B43 orrs r3, r3, r5 + 74 0030 91F808C0 ldrb ip, [r1, #8] @ zero_extendqisi2 + 75 0034 43EA0C43 orr r3, r3, ip, lsl #16 + 76 0038 497A ldrb r1, [r1, #9] @ zero_extendqisi2 + 77 .LVL1: + 78 .loc 1 114 5 is_stmt 0 discriminator 2 view .LVU16 + 79 003a 43EA4123 orr r3, r3, r1, lsl #9 + 80 003e 1343 orrs r3, r3, r2 + 81 0040 2360 str r3, [r4] + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** (~DMAMUX_CxCR_DMAREQ_ID), \ + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ((pSyncConfig->SyncSignalID) << DMAMUX_CxCR_SYNC_ID_Pos) | ((pSyncConfig->RequestNum + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** pSyncConfig->SyncPolarity | ((uint32_t)pSyncConfig->SyncEnable << DMAMUX_CxCR_SE_Pos + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ((uint32_t)pSyncConfig->EventEnable << DMAMUX_CxCR_EGE_Pos)); + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Process UnLocked */ + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** __HAL_UNLOCK(hdma); + 82 .loc 1 121 5 is_stmt 1 discriminator 2 view .LVU17 + 83 .loc 1 121 5 discriminator 2 view .LVU18 + 84 0042 0023 movs r3, #0 + 85 0044 80F82430 strb r3, [r0, #36] + 86 .loc 1 121 5 discriminator 2 view .LVU19 + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_OK; + 87 .loc 1 123 5 discriminator 2 view .LVU20 + 88 .loc 1 123 12 is_stmt 0 discriminator 2 view .LVU21 + 89 0048 1846 mov r0, r3 + 90 .LVL2: + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** else + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /*DMA State not Ready*/ + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_ERROR; + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 91 .loc 1 130 1 discriminator 2 view .LVU22 + 92 004a 30BC pop {r4, r5} + 93 .LCFI1: + 94 .cfi_restore 5 + 95 .cfi_restore 4 + 96 .cfi_def_cfa_offset 0 + 97 004c 7047 bx lr + 98 .LVL3: + ARM GAS /tmp/ccF4OHvs.s page 5 + + + 99 .L3: + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 100 .loc 1 128 12 view .LVU23 + 101 004e 0120 movs r0, #1 + 102 .LVL4: + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 103 .loc 1 128 12 view .LVU24 + 104 0050 7047 bx lr + 105 .LVL5: + 106 .L4: + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 107 .loc 1 111 5 view .LVU25 + 108 0052 0220 movs r0, #2 + 109 .LVL6: + 110 .loc 1 130 1 view .LVU26 + 111 0054 7047 bx lr + 112 .cfi_endproc + 113 .LFE329: + 115 .section .text.HAL_DMAEx_ConfigMuxRequestGenerator,"ax",%progbits + 116 .align 1 + 117 .global HAL_DMAEx_ConfigMuxRequestGenerator + 118 .syntax unified + 119 .thumb + 120 .thumb_func + 122 HAL_DMAEx_ConfigMuxRequestGenerator: + 123 .LVL7: + 124 .LFB330: + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief Configure the DMAMUX request generator block used by the given DMA channel (instance). + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * the configuration information for the specified DMA channel. + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param pRequestGeneratorConfig : pointer to HAL_DMA_MuxRequestGeneratorConfigTypeDef : + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * contains the request generator parameters. + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @retval HAL status + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** HAL_StatusTypeDef HAL_DMAEx_ConfigMuxRequestGenerator(DMA_HandleTypeDef *hdma, + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** HAL_DMA_MuxRequestGeneratorConfigTypeDef *pRe + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 125 .loc 1 143 1 is_stmt 1 view -0 + 126 .cfi_startproc + 127 @ args = 0, pretend = 0, frame = 0 + 128 @ frame_needed = 0, uses_anonymous_args = 0 + 129 @ link register save eliminated. + 130 .loc 1 143 1 is_stmt 0 view .LVU28 + 131 0000 0246 mov r2, r0 + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check the parameters */ + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + 132 .loc 1 145 3 is_stmt 1 view .LVU29 + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_REQUEST_GEN_SIGNAL_ID(pRequestGeneratorConfig->SignalID)); + 133 .loc 1 147 3 view .LVU30 + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_REQUEST_GEN_POLARITY(pRequestGeneratorConfig->Polarity)); + 134 .loc 1 149 3 view .LVU31 + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMAMUX_REQUEST_GEN_REQUEST_NUMBER(pRequestGeneratorConfig->RequestNumber)); + ARM GAS /tmp/ccF4OHvs.s page 6 + + + 135 .loc 1 150 3 view .LVU32 + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* check if the DMA state is ready + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** and DMA is using a DMAMUX request generator block + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if ((hdma->State == HAL_DMA_STATE_READY) && (hdma->DMAmuxRequestGen != 0U)) + 136 .loc 1 155 3 view .LVU33 + 137 .loc 1 155 12 is_stmt 0 view .LVU34 + 138 0002 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 139 0006 D8B2 uxtb r0, r3 + 140 .LVL8: + 141 .loc 1 155 6 view .LVU35 + 142 0008 0128 cmp r0, #1 + 143 000a 24D1 bne .L12 + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check the parameters */ + 144 .loc 1 143 1 discriminator 1 view .LVU36 + 145 000c 10B4 push {r4} + 146 .LCFI2: + 147 .cfi_def_cfa_offset 4 + 148 .cfi_offset 4, -4 + 149 .loc 1 155 52 discriminator 1 view .LVU37 + 150 000e 546D ldr r4, [r2, #84] + 151 .loc 1 155 44 discriminator 1 view .LVU38 + 152 0010 E4B1 cbz r4, .L10 + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Process Locked */ + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** __HAL_LOCK(hdma); + 153 .loc 1 158 5 is_stmt 1 view .LVU39 + 154 .loc 1 158 5 view .LVU40 + 155 0012 92F82430 ldrb r3, [r2, #36] @ zero_extendqisi2 + 156 0016 012B cmp r3, #1 + 157 0018 1FD0 beq .L13 + 158 .loc 1 158 5 discriminator 2 view .LVU41 + 159 001a 0123 movs r3, #1 + 160 001c 82F82430 strb r3, [r2, #36] + 161 .loc 1 158 5 discriminator 2 view .LVU42 + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Set the request generator new parameters */ + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxRequestGen->RGCR = pRequestGeneratorConfig->SignalID | \ + 162 .loc 1 161 5 discriminator 2 view .LVU43 + 163 .loc 1 161 59 is_stmt 0 discriminator 2 view .LVU44 + 164 0020 0868 ldr r0, [r1] + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ((pRequestGeneratorConfig->RequestNumber - 1U) << (POSITION_VAL( + 165 .loc 1 162 61 discriminator 2 view .LVU45 + 166 0022 8B68 ldr r3, [r1, #8] + 167 .loc 1 162 77 discriminator 2 view .LVU46 + 168 0024 03F1FF3C add ip, r3, #-1 + 169 .LVL9: + 170 .LBB6: + 171 .LBI6: + 172 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + ARM GAS /tmp/ccF4OHvs.s page 7 + + + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccF4OHvs.s page 8 + + + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + ARM GAS /tmp/ccF4OHvs.s page 9 + + + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + ARM GAS /tmp/ccF4OHvs.s page 10 + + + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccF4OHvs.s page 11 + + + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + ARM GAS /tmp/ccF4OHvs.s page 12 + + + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccF4OHvs.s page 13 + + + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/ccF4OHvs.s page 14 + + + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + ARM GAS /tmp/ccF4OHvs.s page 15 + + + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + ARM GAS /tmp/ccF4OHvs.s page 16 + + + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccF4OHvs.s page 17 + + + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + ARM GAS /tmp/ccF4OHvs.s page 18 + + + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccF4OHvs.s page 19 + + + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccF4OHvs.s page 20 + + + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + ARM GAS /tmp/ccF4OHvs.s page 21 + + + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + ARM GAS /tmp/ccF4OHvs.s page 22 + + + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccF4OHvs.s page 23 + + + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 937:Drivers/CMSIS/Include/cmsis_gcc.h **** + 938:Drivers/CMSIS/Include/cmsis_gcc.h **** + 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier + 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. + 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. + 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) + 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); + 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 948:Drivers/CMSIS/Include/cmsis_gcc.h **** + 949:Drivers/CMSIS/Include/cmsis_gcc.h **** + 950:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier + 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before + 953:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. + 954:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 955:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) + 956:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 957:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); + 958:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 959:Drivers/CMSIS/Include/cmsis_gcc.h **** + 960:Drivers/CMSIS/Include/cmsis_gcc.h **** + 961:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 962:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) + 963:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 + 964:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 965:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 966:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 967:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) + 968:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 969:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + 970:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); + 971:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 972:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 973:Drivers/CMSIS/Include/cmsis_gcc.h **** + 974:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 975:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + ARM GAS /tmp/ccF4OHvs.s page 24 + + + 976:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 977:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 978:Drivers/CMSIS/Include/cmsis_gcc.h **** + 979:Drivers/CMSIS/Include/cmsis_gcc.h **** + 980:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 981:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 982:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes + 983:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 984:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 985:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 986:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) + 987:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 988:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 989:Drivers/CMSIS/Include/cmsis_gcc.h **** + 990:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 991:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 992:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 993:Drivers/CMSIS/Include/cmsis_gcc.h **** + 994:Drivers/CMSIS/Include/cmsis_gcc.h **** + 995:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 996:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 997:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam + 998:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 999:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1000:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1001:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +1002:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1003:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1004:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); +1005:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1006:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; +1007:Drivers/CMSIS/Include/cmsis_gcc.h **** +1008:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); +1009:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1010:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1011:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1012:Drivers/CMSIS/Include/cmsis_gcc.h **** +1013:Drivers/CMSIS/Include/cmsis_gcc.h **** +1014:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1015:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) +1016:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v +1017:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate +1018:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate +1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value +1020:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1021:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +1022:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1023:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; +1024:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) +1025:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1026:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; +1027:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1028:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); +1029:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1030:Drivers/CMSIS/Include/cmsis_gcc.h **** +1031:Drivers/CMSIS/Include/cmsis_gcc.h **** +1032:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/ccF4OHvs.s page 25 + + +1033:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint +1034:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. +1035:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula +1036:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. +1037:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break +1038:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1039:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) +1040:Drivers/CMSIS/Include/cmsis_gcc.h **** +1041:Drivers/CMSIS/Include/cmsis_gcc.h **** +1042:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value +1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. +1045:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse +1046:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1047:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) + 173 .loc 2 1048 31 is_stmt 1 discriminator 2 view .LVU47 + 174 .LBB7: +1049:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 175 .loc 2 1050 3 discriminator 2 view .LVU48 +1051:Drivers/CMSIS/Include/cmsis_gcc.h **** +1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1053:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1054:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 176 .loc 2 1055 4 discriminator 2 view .LVU49 + 177 0028 4FF47803 mov r3, #16252928 + 178 .syntax unified + 179 @ 1055 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 180 002c 93FAA3F3 rbit r3, r3 + 181 @ 0 "" 2 + 182 .LVL10: +1056:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1057:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ +1058:Drivers/CMSIS/Include/cmsis_gcc.h **** +1059:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ +1060:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) +1061:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1062:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; +1063:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; +1064:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; +1065:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1066:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ +1067:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 183 .loc 2 1068 3 discriminator 2 view .LVU50 + 184 .loc 2 1068 3 is_stmt 0 discriminator 2 view .LVU51 + 185 .thumb + 186 .syntax unified + 187 .LBE7: + 188 .LBE6: + 189 .LBB8: + 190 .LBI8: +1069:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1070:Drivers/CMSIS/Include/cmsis_gcc.h **** +1071:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccF4OHvs.s page 26 + + +1072:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1073:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros +1074:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. +1075:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros +1076:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value +1077:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) + 191 .loc 2 1078 30 is_stmt 1 discriminator 2 view .LVU52 + 192 .LBB9: +1079:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1080:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Even though __builtin_clz produces a CLZ instruction on ARM, formally +1081:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_clz(0) is undefined behaviour, so handle this case specially. +1082:Drivers/CMSIS/Include/cmsis_gcc.h **** This guarantees ARM-compatible results if happening to compile on a non-ARM +1083:Drivers/CMSIS/Include/cmsis_gcc.h **** target, and ensures the compiler doesn't decide to activate any +1084:Drivers/CMSIS/Include/cmsis_gcc.h **** optimisations using the logic "value was passed to __builtin_clz, so it +1085:Drivers/CMSIS/Include/cmsis_gcc.h **** is non-zero". +1086:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a +1087:Drivers/CMSIS/Include/cmsis_gcc.h **** single CLZ instruction. +1088:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** if (value == 0U) + 193 .loc 2 1089 3 discriminator 2 view .LVU53 + 194 .loc 2 1089 6 is_stmt 0 discriminator 2 view .LVU54 + 195 0030 7BB1 cbz r3, .L14 +1090:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** return 32U; +1092:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1093:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_clz(value); + 196 .loc 2 1093 3 is_stmt 1 view .LVU55 + 197 .loc 2 1093 10 is_stmt 0 view .LVU56 + 198 0032 B3FA83F3 clz r3, r3 + 199 .LVL11: + 200 .L11: + 201 .loc 2 1093 10 view .LVU57 + 202 .LBE9: + 203 .LBE8: + 204 .loc 1 162 121 view .LVU58 + 205 0036 03F01F03 and r3, r3, #31 + 206 .loc 1 162 83 view .LVU59 + 207 003a 0CFA03F3 lsl r3, ip, r3 + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ((pRequestGeneratorConfig->RequestNumber - 1U) << (POSITION_VAL( + 208 .loc 1 161 70 view .LVU60 + 209 003e 0343 orrs r3, r3, r0 + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** pRequestGeneratorConfig->Polarity; + 210 .loc 1 163 59 view .LVU61 + 211 0040 4968 ldr r1, [r1, #4] + 212 .LVL12: + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** pRequestGeneratorConfig->Polarity; + 213 .loc 1 162 131 view .LVU62 + 214 0042 0B43 orrs r3, r3, r1 + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** ((pRequestGeneratorConfig->RequestNumber - 1U) << (POSITION_VAL( + 215 .loc 1 161 34 view .LVU63 + 216 0044 2360 str r3, [r4] + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Process UnLocked */ + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** __HAL_UNLOCK(hdma); + 217 .loc 1 165 5 is_stmt 1 view .LVU64 + 218 .loc 1 165 5 view .LVU65 + 219 0046 0020 movs r0, #0 + ARM GAS /tmp/ccF4OHvs.s page 27 + + + 220 0048 82F82400 strb r0, [r2, #36] + 221 .loc 1 165 5 view .LVU66 + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_OK; + 222 .loc 1 167 5 view .LVU67 + 223 .L10: + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** else + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_ERROR; + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 224 .loc 1 173 1 is_stmt 0 view .LVU68 + 225 004c 5DF8044B ldr r4, [sp], #4 + 226 .LCFI3: + 227 .cfi_remember_state + 228 .cfi_restore 4 + 229 .cfi_def_cfa_offset 0 + 230 0050 7047 bx lr + 231 .LVL13: + 232 .L14: + 233 .LCFI4: + 234 .cfi_restore_state + 235 .LBB11: + 236 .LBB10: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 237 .loc 2 1091 12 view .LVU69 + 238 0052 2023 movs r3, #32 + 239 .LVL14: +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240 .loc 2 1091 12 view .LVU70 + 241 0054 EFE7 b .L11 + 242 .LVL15: + 243 .L12: + 244 .LCFI5: + 245 .cfi_def_cfa_offset 0 + 246 .cfi_restore 4 +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 247 .loc 2 1091 12 view .LVU71 + 248 .LBE10: + 249 .LBE11: + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 250 .loc 1 171 12 view .LVU72 + 251 0056 0120 movs r0, #1 + 252 .loc 1 173 1 view .LVU73 + 253 0058 7047 bx lr + 254 .L13: + 255 .LCFI6: + 256 .cfi_def_cfa_offset 4 + 257 .cfi_offset 4, -4 + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 258 .loc 1 158 5 view .LVU74 + 259 005a 0220 movs r0, #2 + 260 005c F6E7 b .L10 + 261 .cfi_endproc + 262 .LFE330: + 264 .section .text.HAL_DMAEx_EnableMuxRequestGenerator,"ax",%progbits + ARM GAS /tmp/ccF4OHvs.s page 28 + + + 265 .align 1 + 266 .global HAL_DMAEx_EnableMuxRequestGenerator + 267 .syntax unified + 268 .thumb + 269 .thumb_func + 271 HAL_DMAEx_EnableMuxRequestGenerator: + 272 .LVL16: + 273 .LFB331: + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief Enable the DMAMUX request generator block used by the given DMA channel (instance). + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * the configuration information for the specified DMA channel. + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @retval HAL status + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** HAL_StatusTypeDef HAL_DMAEx_EnableMuxRequestGenerator(DMA_HandleTypeDef *hdma) + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 274 .loc 1 182 1 is_stmt 1 view -0 + 275 .cfi_startproc + 276 @ args = 0, pretend = 0, frame = 0 + 277 @ frame_needed = 0, uses_anonymous_args = 0 + 278 @ link register save eliminated. + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check the parameters */ + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + 279 .loc 1 184 3 view .LVU76 + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* check if the DMA state is ready + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** and DMA is using a DMAMUX request generator block + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if ((hdma->State != HAL_DMA_STATE_RESET) && (hdma->DMAmuxRequestGen != 0)) + 280 .loc 1 189 3 view .LVU77 + 281 .loc 1 189 12 is_stmt 0 view .LVU78 + 282 0000 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 283 .loc 1 189 6 view .LVU79 + 284 0004 3BB1 cbz r3, .L21 + 285 .loc 1 189 52 discriminator 1 view .LVU80 + 286 0006 436D ldr r3, [r0, #84] + 287 .loc 1 189 44 discriminator 1 view .LVU81 + 288 0008 3BB1 cbz r3, .L22 + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Enable the request generator*/ + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_GE; + 289 .loc 1 193 5 is_stmt 1 view .LVU82 + 290 .loc 1 193 27 is_stmt 0 view .LVU83 + 291 000a 1A68 ldr r2, [r3] + 292 .loc 1 193 34 view .LVU84 + 293 000c 42F48032 orr r2, r2, #65536 + 294 0010 1A60 str r2, [r3] + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_OK; + 295 .loc 1 195 5 is_stmt 1 view .LVU85 + 296 .loc 1 195 12 is_stmt 0 view .LVU86 + 297 0012 0020 movs r0, #0 + 298 .LVL17: + 299 .loc 1 195 12 view .LVU87 + 300 0014 7047 bx lr + ARM GAS /tmp/ccF4OHvs.s page 29 + + + 301 .LVL18: + 302 .L21: + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** else + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_ERROR; + 303 .loc 1 199 12 view .LVU88 + 304 0016 0120 movs r0, #1 + 305 .LVL19: + 306 .loc 1 199 12 view .LVU89 + 307 0018 7047 bx lr + 308 .LVL20: + 309 .L22: + 310 .loc 1 199 12 view .LVU90 + 311 001a 0120 movs r0, #1 + 312 .LVL21: + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 313 .loc 1 201 1 view .LVU91 + 314 001c 7047 bx lr + 315 .cfi_endproc + 316 .LFE331: + 318 .section .text.HAL_DMAEx_DisableMuxRequestGenerator,"ax",%progbits + 319 .align 1 + 320 .global HAL_DMAEx_DisableMuxRequestGenerator + 321 .syntax unified + 322 .thumb + 323 .thumb_func + 325 HAL_DMAEx_DisableMuxRequestGenerator: + 326 .LVL22: + 327 .LFB332: + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief Disable the DMAMUX request generator block used by the given DMA channel (instance). + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * the configuration information for the specified DMA channel. + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @retval HAL status + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** HAL_StatusTypeDef HAL_DMAEx_DisableMuxRequestGenerator(DMA_HandleTypeDef *hdma) + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 328 .loc 1 210 1 is_stmt 1 view -0 + 329 .cfi_startproc + 330 @ args = 0, pretend = 0, frame = 0 + 331 @ frame_needed = 0, uses_anonymous_args = 0 + 332 @ link register save eliminated. + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check the parameters */ + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + 333 .loc 1 212 3 view .LVU93 + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* check if the DMA state is ready + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** and DMA is using a DMAMUX request generator block + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if ((hdma->State != HAL_DMA_STATE_RESET) && (hdma->DMAmuxRequestGen != 0)) + 334 .loc 1 217 3 view .LVU94 + 335 .loc 1 217 12 is_stmt 0 view .LVU95 + 336 0000 90F82530 ldrb r3, [r0, #37] @ zero_extendqisi2 + 337 .loc 1 217 6 view .LVU96 + ARM GAS /tmp/ccF4OHvs.s page 30 + + + 338 0004 3BB1 cbz r3, .L25 + 339 .loc 1 217 52 discriminator 1 view .LVU97 + 340 0006 436D ldr r3, [r0, #84] + 341 .loc 1 217 44 discriminator 1 view .LVU98 + 342 0008 3BB1 cbz r3, .L26 + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Disable the request generator*/ + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_GE; + 343 .loc 1 221 5 is_stmt 1 view .LVU99 + 344 .loc 1 221 27 is_stmt 0 view .LVU100 + 345 000a 1A68 ldr r2, [r3] + 346 .loc 1 221 34 view .LVU101 + 347 000c 22F48032 bic r2, r2, #65536 + 348 0010 1A60 str r2, [r3] + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_OK; + 349 .loc 1 223 5 is_stmt 1 view .LVU102 + 350 .loc 1 223 12 is_stmt 0 view .LVU103 + 351 0012 0020 movs r0, #0 + 352 .LVL23: + 353 .loc 1 223 12 view .LVU104 + 354 0014 7047 bx lr + 355 .LVL24: + 356 .L25: + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** else + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** return HAL_ERROR; + 357 .loc 1 227 12 view .LVU105 + 358 0016 0120 movs r0, #1 + 359 .LVL25: + 360 .loc 1 227 12 view .LVU106 + 361 0018 7047 bx lr + 362 .LVL26: + 363 .L26: + 364 .loc 1 227 12 view .LVU107 + 365 001a 0120 movs r0, #1 + 366 .LVL27: + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 367 .loc 1 229 1 view .LVU108 + 368 001c 7047 bx lr + 369 .cfi_endproc + 370 .LFE332: + 372 .section .text.HAL_DMAEx_MUX_IRQHandler,"ax",%progbits + 373 .align 1 + 374 .global HAL_DMAEx_MUX_IRQHandler + 375 .syntax unified + 376 .thumb + 377 .thumb_func + 379 HAL_DMAEx_MUX_IRQHandler: + 380 .LVL28: + 381 .LFB333: + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /** + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @brief Handles DMAMUX interrupt request. + ARM GAS /tmp/ccF4OHvs.s page 31 + + + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * the configuration information for the specified DMA channel. + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** * @retval None + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** */ + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** void HAL_DMAEx_MUX_IRQHandler(DMA_HandleTypeDef *hdma) + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 382 .loc 1 238 1 is_stmt 1 view -0 + 383 .cfi_startproc + 384 @ args = 0, pretend = 0, frame = 0 + 385 @ frame_needed = 0, uses_anonymous_args = 0 + 386 .loc 1 238 1 is_stmt 0 view .LVU110 + 387 0000 10B5 push {r4, lr} + 388 .LCFI7: + 389 .cfi_def_cfa_offset 8 + 390 .cfi_offset 4, -8 + 391 .cfi_offset 14, -4 + 392 0002 0446 mov r4, r0 + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Check for DMAMUX Synchronization overrun */ + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if ((hdma->DMAmuxChannelStatus->CSR & hdma->DMAmuxChannelStatusMask) != 0U) + 393 .loc 1 240 3 is_stmt 1 view .LVU111 + 394 .loc 1 240 12 is_stmt 0 view .LVU112 + 395 0004 C36C ldr r3, [r0, #76] + 396 .loc 1 240 33 view .LVU113 + 397 0006 1A68 ldr r2, [r3] + 398 .loc 1 240 45 view .LVU114 + 399 0008 036D ldr r3, [r0, #80] + 400 .loc 1 240 6 view .LVU115 + 401 000a 1A42 tst r2, r3 + 402 000c 0ED0 beq .L28 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Disable the synchro overrun interrupt */ + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE; + 403 .loc 1 243 5 is_stmt 1 view .LVU116 + 404 .loc 1 243 9 is_stmt 0 view .LVU117 + 405 000e 826C ldr r2, [r0, #72] + 406 .loc 1 243 24 view .LVU118 + 407 0010 1368 ldr r3, [r2] + 408 .loc 1 243 30 view .LVU119 + 409 0012 23F48073 bic r3, r3, #256 + 410 0016 1360 str r3, [r2] + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Clear the DMAMUX synchro overrun flag */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask; + 411 .loc 1 246 5 is_stmt 1 view .LVU120 + 412 .loc 1 246 9 is_stmt 0 view .LVU121 + 413 0018 C36C ldr r3, [r0, #76] + 414 .loc 1 246 42 view .LVU122 + 415 001a 026D ldr r2, [r0, #80] + 416 .loc 1 246 36 view .LVU123 + 417 001c 5A60 str r2, [r3, #4] + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Update error code */ + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->ErrorCode |= HAL_DMA_ERROR_SYNC; + 418 .loc 1 249 5 is_stmt 1 view .LVU124 + 419 .loc 1 249 9 is_stmt 0 view .LVU125 + 420 001e C36B ldr r3, [r0, #60] + 421 .loc 1 249 21 view .LVU126 + ARM GAS /tmp/ccF4OHvs.s page 32 + + + 422 0020 43F40073 orr r3, r3, #512 + 423 0024 C363 str r3, [r0, #60] + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if (hdma->XferErrorCallback != NULL) + 424 .loc 1 251 5 is_stmt 1 view .LVU127 + 425 .loc 1 251 13 is_stmt 0 view .LVU128 + 426 0026 436B ldr r3, [r0, #52] + 427 .loc 1 251 8 view .LVU129 + 428 0028 03B1 cbz r3, .L28 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Transfer error callback */ + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->XferErrorCallback(hdma); + 429 .loc 1 254 7 is_stmt 1 view .LVU130 + 430 002a 9847 blx r3 + 431 .LVL29: + 432 .L28: + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if (hdma->DMAmuxRequestGen != 0) + 433 .loc 1 258 3 view .LVU131 + 434 .loc 1 258 11 is_stmt 0 view .LVU132 + 435 002c 636D ldr r3, [r4, #84] + 436 .loc 1 258 6 view .LVU133 + 437 002e 9BB1 cbz r3, .L27 + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* if using a DMAMUX request generator block Check for DMAMUX request generator overrun */ + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if ((hdma->DMAmuxRequestGenStatus->RGSR & hdma->DMAmuxRequestGenStatusMask) != 0U) + 438 .loc 1 261 5 is_stmt 1 view .LVU134 + 439 .loc 1 261 14 is_stmt 0 view .LVU135 + 440 0030 A26D ldr r2, [r4, #88] + 441 .loc 1 261 38 view .LVU136 + 442 0032 1168 ldr r1, [r2] + 443 .loc 1 261 51 view .LVU137 + 444 0034 E26D ldr r2, [r4, #92] + 445 .loc 1 261 8 view .LVU138 + 446 0036 1142 tst r1, r2 + 447 0038 0ED0 beq .L27 + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Disable the request gen overrun interrupt */ + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE; + 448 .loc 1 264 7 is_stmt 1 view .LVU139 + 449 .loc 1 264 29 is_stmt 0 view .LVU140 + 450 003a 1A68 ldr r2, [r3] + 451 .loc 1 264 36 view .LVU141 + 452 003c 22F48072 bic r2, r2, #256 + 453 0040 1A60 str r2, [r3] + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Clear the DMAMUX request generator overrun flag */ + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; + 454 .loc 1 267 7 is_stmt 1 view .LVU142 + 455 .loc 1 267 11 is_stmt 0 view .LVU143 + 456 0042 A36D ldr r3, [r4, #88] + 457 .loc 1 267 49 view .LVU144 + 458 0044 E26D ldr r2, [r4, #92] + 459 .loc 1 267 43 view .LVU145 + 460 0046 5A60 str r2, [r3, #4] + ARM GAS /tmp/ccF4OHvs.s page 33 + + + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Update error code */ + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->ErrorCode |= HAL_DMA_ERROR_REQGEN; + 461 .loc 1 270 7 is_stmt 1 view .LVU146 + 462 .loc 1 270 11 is_stmt 0 view .LVU147 + 463 0048 E36B ldr r3, [r4, #60] + 464 .loc 1 270 23 view .LVU148 + 465 004a 43F48063 orr r3, r3, #1024 + 466 004e E363 str r3, [r4, #60] + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** if (hdma->XferErrorCallback != NULL) + 467 .loc 1 272 7 is_stmt 1 view .LVU149 + 468 .loc 1 272 15 is_stmt 0 view .LVU150 + 469 0050 636B ldr r3, [r4, #52] + 470 .loc 1 272 10 view .LVU151 + 471 0052 0BB1 cbz r3, .L27 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** { + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** /* Transfer error callback */ + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** hdma->XferErrorCallback(hdma); + 472 .loc 1 275 9 is_stmt 1 view .LVU152 + 473 0054 2046 mov r0, r4 + 474 0056 9847 blx r3 + 475 .LVL30: + 476 .L27: + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dma_ex.c **** } + 477 .loc 1 279 1 is_stmt 0 view .LVU153 + 478 0058 10BD pop {r4, pc} + 479 .loc 1 279 1 view .LVU154 + 480 .cfi_endproc + 481 .LFE333: + 483 .text + 484 .Letext0: + 485 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 486 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 487 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 488 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 489 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 490 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h" + ARM GAS /tmp/ccF4OHvs.s page 34 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_dma_ex.c + /tmp/ccF4OHvs.s:21 .text.HAL_DMAEx_ConfigMuxSync:00000000 $t + /tmp/ccF4OHvs.s:27 .text.HAL_DMAEx_ConfigMuxSync:00000000 HAL_DMAEx_ConfigMuxSync + /tmp/ccF4OHvs.s:116 .text.HAL_DMAEx_ConfigMuxRequestGenerator:00000000 $t + /tmp/ccF4OHvs.s:122 .text.HAL_DMAEx_ConfigMuxRequestGenerator:00000000 HAL_DMAEx_ConfigMuxRequestGenerator + /tmp/ccF4OHvs.s:265 .text.HAL_DMAEx_EnableMuxRequestGenerator:00000000 $t + /tmp/ccF4OHvs.s:271 .text.HAL_DMAEx_EnableMuxRequestGenerator:00000000 HAL_DMAEx_EnableMuxRequestGenerator + /tmp/ccF4OHvs.s:319 .text.HAL_DMAEx_DisableMuxRequestGenerator:00000000 $t + /tmp/ccF4OHvs.s:325 .text.HAL_DMAEx_DisableMuxRequestGenerator:00000000 HAL_DMAEx_DisableMuxRequestGenerator + /tmp/ccF4OHvs.s:373 .text.HAL_DMAEx_MUX_IRQHandler:00000000 $t + /tmp/ccF4OHvs.s:379 .text.HAL_DMAEx_MUX_IRQHandler:00000000 HAL_DMAEx_MUX_IRQHandler + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_hal_dma_ex.o b/squeow_sw/build/stm32g4xx_hal_dma_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..b6da9eae083d74a5e14ce3ddb4dc9f9f71ab3491 GIT binary patch literal 10736 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 VEv^UBP^MScqSOuEV32v;{{@PW2BH7} literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_exti.d b/squeow_sw/build/stm32g4xx_hal_exti.d new file mode 100644 index 0000000..bbb39dd --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_exti.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_exti.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_exti.lst b/squeow_sw/build/stm32g4xx_hal_exti.lst new file mode 100644 index 0000000..e5947be --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_exti.lst @@ -0,0 +1,1855 @@ +ARM GAS /tmp/ccx3buCY.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_exti.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c" + 20 .section .text.HAL_EXTI_SetConfigLine,"ax",%progbits + 21 .align 1 + 22 .global HAL_EXTI_SetConfigLine + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 HAL_EXTI_SetConfigLine: + 28 .LVL0: + 29 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @file stm32g4xx_hal_exti.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief EXTI HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * functionalities of the General Purpose Input/Output (EXTI) peripheral: + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + Initialization and de-initialization functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + IO operation functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ****************************************************************************** + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @attention + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * Copyright (c) 2019 STMicroelectronics. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * All rights reserved. + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This software is licensed under terms that can be found in the LICENSE file + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * in the root directory of this software component. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ****************************************************************************** + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @verbatim + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ============================================================================== + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ##### EXTI Peripheral features ##### + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ============================================================================== + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** [..] + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (+) Each Exti line can be configured within this driver. + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + ARM GAS /tmp/ccx3buCY.s page 2 + + + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (+) Exti line can be configured in 3 different modes + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Interrupt + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Event + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Both of them + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (+) Configurable Exti lines can be configured with 3 different triggers + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Rising + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Falling + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Both of them + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (+) When set in interrupt mode, configurable Exti lines have two different + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** interrupt pending registers which allow to distinguish which transition + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** occurs: + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Rising edge pending interrupt + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Falling + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** be selected through multiplexer. + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ##### How to use this driver ##### + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ============================================================================== + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** [..] + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Choose the interrupt line number by setting "Line" member from + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** EXTI_ConfigTypeDef structure. + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Configure the interrupt and/or event mode using "Mode" member from + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** EXTI_ConfigTypeDef structure. + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) For configurable lines, configure rising and/or falling trigger + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** "Trigger" member from EXTI_ConfigTypeDef structure. + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** member from GPIO_InitTypeDef structure. + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Get current Exti configuration of a dedicated line using + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_EXTI_GetConfigLine(). + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Provide exiting handle as parameter. + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Clear Exti configuration of a dedicated line using HAL_EXTI_GetConfigLine(). + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Provide exiting handle as parameter. + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Provide exiting handle as first parameter. + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Provide which callback will be registered using one value from + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** EXTI_CallbackIDTypeDef. + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (++) Provide callback function pointer. + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Get interrupt pending bit using HAL_EXTI_GetPending(). + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Clear interrupt pending bit using HAL_EXTI_ClearPending(). + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @endverbatim + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/ + ARM GAS /tmp/ccx3buCY.s page 3 + + + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #include "stm32g4xx_hal.h" + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup STM32G4xx_HAL_Driver + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule: + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * of bounds [0,3] in following API : + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * HAL_EXTI_SetConfigLine + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * HAL_EXTI_GetConfigLine + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/ + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private defines ------------------------------------------------------------*/ + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #define EXTI_MODE_OFFSET 0x08U /* 0x20: offset between MCU IMR/EMR registers * + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #define EXTI_CONFIG_OFFSET 0x08U /* 0x20: offset between MCU Rising/Falling conf + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @} + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/ + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/ + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/ + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/ + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1 + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Configuration functions + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @verbatim + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ##### Configuration functions ##### + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @endverbatim + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line. + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set. + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + ARM GAS /tmp/ccx3buCY.s page 4 + + + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 30 .loc 1 145 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 @ link register save eliminated. + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 35 .loc 1 146 3 view .LVU1 + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; + 36 .loc 1 147 3 view .LVU2 + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; + 37 .loc 1 148 3 view .LVU3 + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 38 .loc 1 149 3 view .LVU4 + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 39 .loc 1 150 3 view .LVU5 + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) + 40 .loc 1 153 3 view .LVU6 + 41 .loc 1 153 6 is_stmt 0 view .LVU7 + 42 0000 0028 cmp r0, #0 + 43 0002 5ED0 beq .L12 + 44 .loc 1 153 23 discriminator 1 view .LVU8 + 45 0004 0029 cmp r1, #0 + 46 0006 5ED0 beq .L13 + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 47 .loc 1 145 1 view .LVU9 + 48 0008 F0B4 push {r4, r5, r6, r7} + 49 .LCFI0: + 50 .cfi_def_cfa_offset 16 + 51 .cfi_offset 4, -16 + 52 .cfi_offset 5, -12 + 53 .cfi_offset 6, -8 + 54 .cfi_offset 7, -4 + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameters */ + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line)); + 55 .loc 1 159 3 is_stmt 1 view .LVU10 + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); + 56 .loc 1 160 3 view .LVU11 + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Assign line number to handle */ + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->Line = pExtiConfig->Line; + 57 .loc 1 163 3 view .LVU12 + 58 .loc 1 163 28 is_stmt 0 view .LVU13 + 59 000a 0A68 ldr r2, [r1] + 60 .loc 1 163 15 view .LVU14 + 61 000c 0260 str r2, [r0] + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 62 .loc 1 166 3 is_stmt 1 view .LVU15 + ARM GAS /tmp/ccx3buCY.s page 5 + + + 63 .loc 1 166 10 is_stmt 0 view .LVU16 + 64 000e C2F30043 ubfx r3, r2, #16, #1 + 65 .LVL1: + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + 66 .loc 1 168 3 is_stmt 1 view .LVU17 + 67 .loc 1 168 11 is_stmt 0 view .LVU18 + 68 0012 02F01F04 and r4, r2, #31 + 69 .LVL2: + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); + 70 .loc 1 170 3 is_stmt 1 view .LVU19 + 71 .loc 1 170 12 is_stmt 0 view .LVU20 + 72 0016 0120 movs r0, #1 + 73 .LVL3: + 74 .loc 1 170 12 view .LVU21 + 75 0018 A040 lsls r0, r0, r4 + 76 .LVL4: + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure triggers for configurable lines */ + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) + 77 .loc 1 173 3 is_stmt 1 view .LVU22 + 78 .loc 1 173 6 is_stmt 0 view .LVU23 + 79 001a 12F0007F tst r2, #33554432 + 80 001e 1BD0 beq .L3 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); + 81 .loc 1 175 5 is_stmt 1 view .LVU24 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure rising trigger */ + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); + 82 .loc 1 178 5 view .LVU25 + 83 .loc 1 178 29 is_stmt 0 view .LVU26 + 84 0020 4FEA431C lsl ip, r3, #5 + 85 .loc 1 178 13 view .LVU27 + 86 0024 294F ldr r7, .L19 + 87 .LVL5: + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 88 .loc 1 179 5 is_stmt 1 view .LVU28 + 89 .loc 1 179 12 is_stmt 0 view .LVU29 + 90 0026 5CF80750 ldr r5, [ip, r7] + 91 .LVL6: + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) + 92 .loc 1 182 5 is_stmt 1 view .LVU30 + 93 .loc 1 182 21 is_stmt 0 view .LVU31 + 94 002a 8E68 ldr r6, [r1, #8] + 95 .loc 1 182 8 view .LVU32 + 96 002c 16F0010F tst r6, #1 + 97 0030 29D0 beq .L4 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; + 98 .loc 1 184 7 is_stmt 1 view .LVU33 + 99 .loc 1 184 14 is_stmt 0 view .LVU34 + 100 0032 0543 orrs r5, r5, r0 + 101 .LVL7: + ARM GAS /tmp/ccx3buCY.s page 6 + + + 102 .L5: + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store rising trigger mode */ + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 103 .loc 1 192 5 is_stmt 1 view .LVU35 + 104 .loc 1 192 14 is_stmt 0 view .LVU36 + 105 0034 4CF80750 str r5, [ip, r7] + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure falling trigger */ + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); + 106 .loc 1 195 5 is_stmt 1 view .LVU37 + 107 .loc 1 195 13 is_stmt 0 view .LVU38 + 108 0038 254E ldr r6, .L19+4 + 109 .LVL8: + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 110 .loc 1 196 5 is_stmt 1 view .LVU39 + 111 .loc 1 196 12 is_stmt 0 view .LVU40 + 112 003a 5CF80650 ldr r5, [ip, r6] + 113 .LVL9: + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) + 114 .loc 1 199 5 is_stmt 1 view .LVU41 + 115 .loc 1 199 8 is_stmt 0 view .LVU42 + 116 003e 8F68 ldr r7, [r1, #8] + 117 0040 17F0020F tst r7, #2 + 118 0044 22D0 beq .L6 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; + 119 .loc 1 201 7 is_stmt 1 view .LVU43 + 120 .loc 1 201 14 is_stmt 0 view .LVU44 + 121 0046 0543 orrs r5, r5, r0 + 122 .LVL10: + 123 .L7: + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store falling trigger mode */ + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 124 .loc 1 209 5 is_stmt 1 view .LVU45 + 125 .loc 1 209 14 is_stmt 0 view .LVU46 + 126 0048 4CF80650 str r5, [ip, r6] + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */ + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) + 127 .loc 1 212 5 is_stmt 1 view .LVU47 + 128 .loc 1 212 28 is_stmt 0 view .LVU48 + 129 004c 0D68 ldr r5, [r1] + 130 .LVL11: + ARM GAS /tmp/ccx3buCY.s page 7 + + + 131 .loc 1 212 28 view .LVU49 + 132 004e 05F0C06C and ip, r5, #100663296 + 133 .LVL12: + 134 .loc 1 212 8 view .LVU50 + 135 0052 BCF1C06F cmp ip, #100663296 + 136 0056 1CD0 beq .L18 + 137 .LVL13: + 138 .L3: + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure interrupt mode : read current mode */ + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); + 139 .loc 1 225 3 is_stmt 1 view .LVU51 + 140 .loc 1 225 26 is_stmt 0 view .LVU52 + 141 0058 5B01 lsls r3, r3, #5 + 142 .LVL14: + 143 .loc 1 225 11 view .LVU53 + 144 005a 03F18042 add r2, r3, #1073741824 + 145 005e 02F58232 add r2, r2, #66560 + 146 .LVL15: + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 147 .loc 1 226 3 is_stmt 1 view .LVU54 + 148 .loc 1 226 10 is_stmt 0 view .LVU55 + 149 0062 1468 ldr r4, [r2] + 150 .LVL16: + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) + 151 .loc 1 229 3 is_stmt 1 view .LVU56 + 152 .loc 1 229 6 is_stmt 0 view .LVU57 + 153 0064 4D68 ldr r5, [r1, #4] + 154 0066 15F0010F tst r5, #1 + 155 006a 24D0 beq .L8 + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; + 156 .loc 1 231 5 is_stmt 1 view .LVU58 + 157 .loc 1 231 12 is_stmt 0 view .LVU59 + 158 006c 0443 orrs r4, r4, r0 + 159 .LVL17: + 160 .L9: + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store interrupt mode */ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + ARM GAS /tmp/ccx3buCY.s page 8 + + + 161 .loc 1 239 3 is_stmt 1 view .LVU60 + 162 .loc 1 239 12 is_stmt 0 view .LVU61 + 163 006e 1460 str r4, [r2] + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure event mode : read current mode */ + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); + 164 .loc 1 242 3 is_stmt 1 view .LVU62 + 165 .loc 1 242 11 is_stmt 0 view .LVU63 + 166 0070 184C ldr r4, .L19+8 + 167 .LVL18: + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 168 .loc 1 243 3 is_stmt 1 view .LVU64 + 169 .loc 1 243 10 is_stmt 0 view .LVU65 + 170 0072 1A59 ldr r2, [r3, r4] + 171 .LVL19: + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) + 172 .loc 1 246 3 is_stmt 1 view .LVU66 + 173 .loc 1 246 19 is_stmt 0 view .LVU67 + 174 0074 4968 ldr r1, [r1, #4] + 175 .LVL20: + 176 .loc 1 246 6 view .LVU68 + 177 0076 11F0020F tst r1, #2 + 178 007a 1FD0 beq .L10 + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; + 179 .loc 1 248 5 is_stmt 1 view .LVU69 + 180 .loc 1 248 12 is_stmt 0 view .LVU70 + 181 007c 0243 orrs r2, r2, r0 + 182 .LVL21: + 183 .L11: + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store event mode */ + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 184 .loc 1 256 3 is_stmt 1 view .LVU71 + 185 .loc 1 256 12 is_stmt 0 view .LVU72 + 186 007e 1A51 str r2, [r3, r4] + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; + 187 .loc 1 258 3 is_stmt 1 view .LVU73 + 188 .loc 1 258 10 is_stmt 0 view .LVU74 + 189 0080 0020 movs r0, #0 + 190 .LVL22: + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 191 .loc 1 259 1 view .LVU75 + 192 0082 F0BC pop {r4, r5, r6, r7} + 193 .LCFI1: + 194 .cfi_remember_state + 195 .cfi_restore 7 + 196 .cfi_restore 6 + 197 .cfi_restore 5 + ARM GAS /tmp/ccx3buCY.s page 9 + + + 198 .cfi_restore 4 + 199 .cfi_def_cfa_offset 0 + 200 .LVL23: + 201 .loc 1 259 1 view .LVU76 + 202 0084 7047 bx lr + 203 .LVL24: + 204 .L4: + 205 .LCFI2: + 206 .cfi_restore_state + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 207 .loc 1 188 7 is_stmt 1 view .LVU77 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 208 .loc 1 188 14 is_stmt 0 view .LVU78 + 209 0086 25EA0005 bic r5, r5, r0 + 210 .LVL25: + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 211 .loc 1 188 14 view .LVU79 + 212 008a D3E7 b .L5 + 213 .LVL26: + 214 .L6: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 215 .loc 1 205 7 is_stmt 1 view .LVU80 + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 216 .loc 1 205 14 is_stmt 0 view .LVU81 + 217 008c 25EA0005 bic r5, r5, r0 + 218 .LVL27: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 219 .loc 1 205 14 view .LVU82 + 220 0090 DAE7 b .L7 + 221 .LVL28: + 222 .L18: + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); + 223 .loc 1 214 7 is_stmt 1 view .LVU83 + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 224 .loc 1 215 7 view .LVU84 + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 225 .loc 1 217 7 view .LVU85 + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 226 .loc 1 217 39 is_stmt 0 view .LVU86 + 227 0092 A408 lsrs r4, r4, #2 + 228 .LVL29: + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 229 .loc 1 217 14 view .LVU87 + 230 0094 104F ldr r7, .L19+12 + 231 0096 0234 adds r4, r4, #2 + 232 0098 57F82460 ldr r6, [r7, r4, lsl #2] + 233 .LVL30: + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 234 .loc 1 218 7 is_stmt 1 view .LVU88 + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 235 .loc 1 218 80 is_stmt 0 view .LVU89 + 236 009c 02F00302 and r2, r2, #3 + 237 .LVL31: + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 238 .loc 1 218 69 view .LVU90 + 239 00a0 9200 lsls r2, r2, #2 + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + ARM GAS /tmp/ccx3buCY.s page 10 + + + 240 .loc 1 218 40 view .LVU91 + 241 00a2 0725 movs r5, #7 + 242 00a4 9540 lsls r5, r5, r2 + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 243 .loc 1 218 14 view .LVU92 + 244 00a6 26EA0506 bic r6, r6, r5 + 245 .LVL32: + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 246 .loc 1 219 7 is_stmt 1 view .LVU93 + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 247 .loc 1 219 29 is_stmt 0 view .LVU94 + 248 00aa CD68 ldr r5, [r1, #12] + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 249 .loc 1 219 39 view .LVU95 + 250 00ac 9540 lsls r5, r5, r2 + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 251 .loc 1 219 14 view .LVU96 + 252 00ae 3543 orrs r5, r5, r6 + 253 .LVL33: + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 254 .loc 1 220 7 is_stmt 1 view .LVU97 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 255 .loc 1 220 37 is_stmt 0 view .LVU98 + 256 00b0 47F82450 str r5, [r7, r4, lsl #2] + 257 00b4 D0E7 b .L3 + 258 .LVL34: + 259 .L8: + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 260 .loc 1 235 5 is_stmt 1 view .LVU99 + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 261 .loc 1 235 12 is_stmt 0 view .LVU100 + 262 00b6 24EA0004 bic r4, r4, r0 + 263 .LVL35: + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 264 .loc 1 235 12 view .LVU101 + 265 00ba D8E7 b .L9 + 266 .LVL36: + 267 .L10: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 268 .loc 1 252 5 is_stmt 1 view .LVU102 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 269 .loc 1 252 12 is_stmt 0 view .LVU103 + 270 00bc 22EA0002 bic r2, r2, r0 + 271 .LVL37: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 272 .loc 1 252 12 view .LVU104 + 273 00c0 DDE7 b .L11 + 274 .LVL38: + 275 .L12: + 276 .LCFI3: + 277 .cfi_def_cfa_offset 0 + 278 .cfi_restore 4 + 279 .cfi_restore 5 + 280 .cfi_restore 6 + 281 .cfi_restore 7 + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 282 .loc 1 155 12 view .LVU105 + ARM GAS /tmp/ccx3buCY.s page 11 + + + 283 00c2 0120 movs r0, #1 + 284 .LVL39: + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 285 .loc 1 155 12 view .LVU106 + 286 00c4 7047 bx lr + 287 .LVL40: + 288 .L13: + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 289 .loc 1 155 12 view .LVU107 + 290 00c6 0120 movs r0, #1 + 291 .LVL41: + 292 .loc 1 259 1 view .LVU108 + 293 00c8 7047 bx lr + 294 .L20: + 295 00ca 00BF .align 2 + 296 .L19: + 297 00cc 08040140 .word 1073808392 + 298 00d0 0C040140 .word 1073808396 + 299 00d4 04040140 .word 1073808388 + 300 00d8 00000140 .word 1073807360 + 301 .cfi_endproc + 302 .LFE329: + 304 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits + 305 .align 1 + 306 .global HAL_EXTI_GetConfigLine + 307 .syntax unified + 308 .thumb + 309 .thumb_func + 311 HAL_EXTI_GetConfigLine: + 312 .LVL42: + 313 .LFB330: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line. + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration. + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 314 .loc 1 269 1 is_stmt 1 view -0 + 315 .cfi_startproc + 316 @ args = 0, pretend = 0, frame = 0 + 317 @ frame_needed = 0, uses_anonymous_args = 0 + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 318 .loc 1 270 3 view .LVU110 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; + 319 .loc 1 271 3 view .LVU111 + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; + 320 .loc 1 272 3 view .LVU112 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 321 .loc 1 273 3 view .LVU113 + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 322 .loc 1 274 3 view .LVU114 + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ + ARM GAS /tmp/ccx3buCY.s page 12 + + + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) + 323 .loc 1 277 3 view .LVU115 + 324 .loc 1 277 6 is_stmt 0 view .LVU116 + 325 0000 0028 cmp r0, #0 + 326 0002 4AD0 beq .L28 + 327 .loc 1 277 23 discriminator 1 view .LVU117 + 328 0004 0029 cmp r1, #0 + 329 0006 4AD0 beq .L29 + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 330 .loc 1 269 1 view .LVU118 + 331 0008 10B5 push {r4, lr} + 332 .LCFI4: + 333 .cfi_def_cfa_offset 8 + 334 .cfi_offset 4, -8 + 335 .cfi_offset 14, -4 + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameter */ + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); + 336 .loc 1 283 3 is_stmt 1 view .LVU119 + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store handle line number to configuration structure */ + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Line = hexti->Line; + 337 .loc 1 286 3 view .LVU120 + 338 .loc 1 286 28 is_stmt 0 view .LVU121 + 339 000a 0368 ldr r3, [r0] + 340 .loc 1 286 21 view .LVU122 + 341 000c 0B60 str r3, [r1] + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset and line mask */ + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 342 .loc 1 289 3 is_stmt 1 view .LVU123 + 343 .loc 1 289 10 is_stmt 0 view .LVU124 + 344 000e C3F30040 ubfx r0, r3, #16, #1 + 345 .LVL43: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + 346 .loc 1 291 3 is_stmt 1 view .LVU125 + 347 .loc 1 291 11 is_stmt 0 view .LVU126 + 348 0012 03F01F0E and lr, r3, #31 + 349 .LVL44: + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute mask */ + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); + 350 .loc 1 293 3 is_stmt 1 view .LVU127 + 351 .loc 1 293 12 is_stmt 0 view .LVU128 + 352 0016 0122 movs r2, #1 + 353 0018 02FA0EF2 lsl r2, r2, lr + 354 .LVL45: + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 1] Get core mode : interrupt */ + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); + 355 .loc 1 296 3 is_stmt 1 view .LVU129 + 356 .loc 1 296 26 is_stmt 0 view .LVU130 + 357 001c 4001 lsls r0, r0, #5 + 358 .LVL46: + ARM GAS /tmp/ccx3buCY.s page 13 + + + 359 .loc 1 296 11 view .LVU131 + 360 001e 00F1804C add ip, r0, #1073741824 + 361 0022 0CF5823C add ip, ip, #66560 + 362 .LVL47: + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 363 .loc 1 297 3 is_stmt 1 view .LVU132 + 364 .loc 1 297 10 is_stmt 0 view .LVU133 + 365 0026 DCF80040 ldr r4, [ip] + 366 .LVL48: + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if selected line is enable */ + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) + 367 .loc 1 300 3 is_stmt 1 view .LVU134 + 368 .loc 1 300 6 is_stmt 0 view .LVU135 + 369 002a 2242 tst r2, r4 + 370 002c 24D0 beq .L23 + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT; + 371 .loc 1 302 5 is_stmt 1 view .LVU136 + 372 .loc 1 302 23 is_stmt 0 view .LVU137 + 373 002e 0124 movs r4, #1 + 374 .LVL49: + 375 .loc 1 302 23 view .LVU138 + 376 0030 4C60 str r4, [r1, #4] + 377 .L24: + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE; + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get event mode */ + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); + 378 .loc 1 310 3 is_stmt 1 view .LVU139 + 379 .loc 1 310 11 is_stmt 0 view .LVU140 + 380 0032 1D4C ldr r4, .L37 + 381 .LVL50: + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 382 .loc 1 311 3 is_stmt 1 view .LVU141 + 383 .loc 1 311 10 is_stmt 0 view .LVU142 + 384 0034 0459 ldr r4, [r0, r4] + 385 .LVL51: + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if selected line is enable */ + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) + 386 .loc 1 314 3 is_stmt 1 view .LVU143 + 387 .loc 1 314 6 is_stmt 0 view .LVU144 + 388 0036 2242 tst r2, r4 + 389 0038 03D0 beq .L25 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT; + 390 .loc 1 316 5 is_stmt 1 view .LVU145 + 391 .loc 1 316 16 is_stmt 0 view .LVU146 + 392 003a 4C68 ldr r4, [r1, #4] + 393 .LVL52: + 394 .loc 1 316 23 view .LVU147 + 395 003c 44F00204 orr r4, r4, #2 + ARM GAS /tmp/ccx3buCY.s page 14 + + + 396 0040 4C60 str r4, [r1, #4] + 397 .L25: + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get default Trigger and GPIOSel configuration */ + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; + 398 .loc 1 320 3 is_stmt 1 view .LVU148 + 399 .loc 1 320 24 is_stmt 0 view .LVU149 + 400 0042 0024 movs r4, #0 + 401 0044 8C60 str r4, [r1, #8] + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; + 402 .loc 1 321 3 is_stmt 1 view .LVU150 + 403 .loc 1 321 24 is_stmt 0 view .LVU151 + 404 0046 CC60 str r4, [r1, #12] + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */ + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) + 405 .loc 1 324 3 is_stmt 1 view .LVU152 + 406 .loc 1 324 6 is_stmt 0 view .LVU153 + 407 0048 13F0007F tst r3, #33554432 + 408 004c 29D0 beq .L30 + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); + 409 .loc 1 326 5 is_stmt 1 view .LVU154 + 410 .loc 1 326 13 is_stmt 0 view .LVU155 + 411 004e 174C ldr r4, .L37+4 + 412 .LVL53: + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + 413 .loc 1 327 5 is_stmt 1 view .LVU156 + 414 .loc 1 327 12 is_stmt 0 view .LVU157 + 415 0050 0459 ldr r4, [r0, r4] + 416 .LVL54: + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if configuration of selected line is enable */ + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) + 417 .loc 1 330 5 is_stmt 1 view .LVU158 + 418 .loc 1 330 8 is_stmt 0 view .LVU159 + 419 0052 2242 tst r2, r4 + 420 0054 01D0 beq .L26 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; + 421 .loc 1 332 7 is_stmt 1 view .LVU160 + 422 .loc 1 332 28 is_stmt 0 view .LVU161 + 423 0056 0124 movs r4, #1 + 424 .LVL55: + 425 .loc 1 332 28 view .LVU162 + 426 0058 8C60 str r4, [r1, #8] + 427 .L26: + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get falling configuration */ + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); + 428 .loc 1 336 5 is_stmt 1 view .LVU163 + 429 .loc 1 336 13 is_stmt 0 view .LVU164 + 430 005a 154C ldr r4, .L37+8 + 431 .LVL56: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; + ARM GAS /tmp/ccx3buCY.s page 15 + + + 432 .loc 1 337 5 is_stmt 1 view .LVU165 + 433 .loc 1 337 12 is_stmt 0 view .LVU166 + 434 005c 0059 ldr r0, [r0, r4] + 435 .LVL57: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if configuration of selected line is enable */ + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) + 436 .loc 1 340 5 is_stmt 1 view .LVU167 + 437 .loc 1 340 8 is_stmt 0 view .LVU168 + 438 005e 0242 tst r2, r0 + 439 0060 03D0 beq .L27 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; + 440 .loc 1 342 7 is_stmt 1 view .LVU169 + 441 .loc 1 342 18 is_stmt 0 view .LVU170 + 442 0062 8A68 ldr r2, [r1, #8] + 443 .LVL58: + 444 .loc 1 342 28 view .LVU171 + 445 0064 42F00202 orr r2, r2, #2 + 446 0068 8A60 str r2, [r1, #8] + 447 .L27: + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) + 448 .loc 1 346 5 is_stmt 1 view .LVU172 + 449 .loc 1 346 28 is_stmt 0 view .LVU173 + 450 006a 03F0C062 and r2, r3, #100663296 + 451 .loc 1 346 8 view .LVU174 + 452 006e B2F1C06F cmp r2, #100663296 + 453 0072 04D0 beq .L36 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; + 454 .loc 1 355 10 view .LVU175 + 455 0074 0020 movs r0, #0 + 456 .LVL59: + 457 .loc 1 355 10 view .LVU176 + 458 0076 15E0 b .L22 + 459 .LVL60: + 460 .L23: + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 461 .loc 1 306 5 is_stmt 1 view .LVU177 + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 462 .loc 1 306 23 is_stmt 0 view .LVU178 + 463 0078 0024 movs r4, #0 + 464 .LVL61: + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 465 .loc 1 306 23 view .LVU179 + 466 007a 4C60 str r4, [r1, #4] + 467 007c D9E7 b .L24 + ARM GAS /tmp/ccx3buCY.s page 16 + + + 468 .LVL62: + 469 .L36: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 470 .loc 1 348 7 is_stmt 1 view .LVU180 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); + 471 .loc 1 350 7 view .LVU181 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); + 472 .loc 1 350 39 is_stmt 0 view .LVU182 + 473 007e 4FEA9E02 lsr r2, lr, #2 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); + 474 .loc 1 350 14 view .LVU183 + 475 0082 0232 adds r2, r2, #2 + 476 0084 0B48 ldr r0, .L37+12 + 477 .LVL63: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); + 478 .loc 1 350 14 view .LVU184 + 479 0086 50F82220 ldr r2, [r0, r2, lsl #2] + 480 .LVL64: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 481 .loc 1 351 7 is_stmt 1 view .LVU185 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 482 .loc 1 351 80 is_stmt 0 view .LVU186 + 483 008a 03F00303 and r3, r3, #3 + 484 .LVL65: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 485 .loc 1 351 68 view .LVU187 + 486 008e 9B00 lsls r3, r3, #2 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 487 .loc 1 351 39 view .LVU188 + 488 0090 22FA03F3 lsr r3, r2, r3 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 489 .loc 1 351 28 view .LVU189 + 490 0094 CB60 str r3, [r1, #12] + 491 .loc 1 355 10 view .LVU190 + 492 0096 0020 movs r0, #0 + 493 0098 04E0 b .L22 + 494 .LVL66: + 495 .L28: + 496 .LCFI5: + 497 .cfi_def_cfa_offset 0 + 498 .cfi_restore 4 + 499 .cfi_restore 14 + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 500 .loc 1 279 12 view .LVU191 + 501 009a 0120 movs r0, #1 + 502 .LVL67: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 503 .loc 1 279 12 view .LVU192 + 504 009c 7047 bx lr + 505 .LVL68: + 506 .L29: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 507 .loc 1 279 12 view .LVU193 + 508 009e 0120 movs r0, #1 + 509 .LVL69: + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 510 .loc 1 356 1 view .LVU194 + ARM GAS /tmp/ccx3buCY.s page 17 + + + 511 00a0 7047 bx lr + 512 .LVL70: + 513 .L30: + 514 .LCFI6: + 515 .cfi_def_cfa_offset 8 + 516 .cfi_offset 4, -8 + 517 .cfi_offset 14, -4 + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 518 .loc 1 355 10 view .LVU195 + 519 00a2 0020 movs r0, #0 + 520 .LVL71: + 521 .L22: + 522 .loc 1 356 1 view .LVU196 + 523 00a4 10BD pop {r4, pc} + 524 .L38: + 525 00a6 00BF .align 2 + 526 .L37: + 527 00a8 04040140 .word 1073808388 + 528 00ac 08040140 .word 1073808392 + 529 00b0 0C040140 .word 1073808396 + 530 00b4 00000140 .word 1073807360 + 531 .cfi_endproc + 532 .LFE330: + 534 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits + 535 .align 1 + 536 .global HAL_EXTI_ClearConfigLine + 537 .syntax unified + 538 .thumb + 539 .thumb_func + 541 HAL_EXTI_ClearConfigLine: + 542 .LVL72: + 543 .LFB331: + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 544 .loc 1 365 1 is_stmt 1 view -0 + 545 .cfi_startproc + 546 @ args = 0, pretend = 0, frame = 0 + 547 @ frame_needed = 0, uses_anonymous_args = 0 + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 548 .loc 1 366 3 view .LVU198 + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; + 549 .loc 1 367 3 view .LVU199 + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; + 550 .loc 1 368 3 view .LVU200 + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 551 .loc 1 369 3 view .LVU201 + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 552 .loc 1 370 3 view .LVU202 + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ + ARM GAS /tmp/ccx3buCY.s page 18 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (hexti == NULL) + 553 .loc 1 373 3 view .LVU203 + 554 .loc 1 373 6 is_stmt 0 view .LVU204 + 555 0000 0028 cmp r0, #0 + 556 0002 40D0 beq .L41 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 557 .loc 1 365 1 view .LVU205 + 558 0004 30B5 push {r4, r5, lr} + 559 .LCFI7: + 560 .cfi_def_cfa_offset 12 + 561 .cfi_offset 4, -12 + 562 .cfi_offset 5, -8 + 563 .cfi_offset 14, -4 + 564 0006 8446 mov ip, r0 + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameter */ + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); + 565 .loc 1 379 3 is_stmt 1 view .LVU206 + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line register offset and line mask */ + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 566 .loc 1 382 3 view .LVU207 + 567 .loc 1 382 19 is_stmt 0 view .LVU208 + 568 0008 0468 ldr r4, [r0] + 569 .loc 1 382 10 view .LVU209 + 570 000a C4F30043 ubfx r3, r4, #16, #1 + 571 .LVL73: + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line position */ + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); + 572 .loc 1 384 3 is_stmt 1 view .LVU210 + 573 .loc 1 384 11 is_stmt 0 view .LVU211 + 574 000e 04F01F0E and lr, r4, #31 + 575 .LVL74: + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); + 576 .loc 1 386 3 is_stmt 1 view .LVU212 + 577 .loc 1 386 12 is_stmt 0 view .LVU213 + 578 0012 0122 movs r2, #1 + 579 0014 02FA0EF2 lsl r2, r2, lr + 580 .LVL75: + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 1] Clear interrupt mode */ + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); + 581 .loc 1 389 3 is_stmt 1 view .LVU214 + 582 .loc 1 389 26 is_stmt 0 view .LVU215 + 583 0018 5B01 lsls r3, r3, #5 + 584 .LVL76: + 585 .loc 1 389 11 view .LVU216 + 586 001a 03F18041 add r1, r3, #1073741824 + 587 001e 01F58231 add r1, r1, #66560 + 588 .LVL77: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); + 589 .loc 1 390 3 is_stmt 1 view .LVU217 + 590 .loc 1 390 13 is_stmt 0 view .LVU218 + ARM GAS /tmp/ccx3buCY.s page 19 + + + 591 0022 0868 ldr r0, [r1] + 592 .LVL78: + 593 .loc 1 390 24 view .LVU219 + 594 0024 D543 mvns r5, r2 + 595 .loc 1 390 10 view .LVU220 + 596 0026 20EA0200 bic r0, r0, r2 + 597 .LVL79: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 598 .loc 1 391 3 is_stmt 1 view .LVU221 + 599 .loc 1 391 12 is_stmt 0 view .LVU222 + 600 002a 0860 str r0, [r1] + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 2] Clear event mode */ + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); + 601 .loc 1 394 3 is_stmt 1 view .LVU223 + 602 .loc 1 394 11 is_stmt 0 view .LVU224 + 603 002c 1848 ldr r0, .L49 + 604 .LVL80: + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); + 605 .loc 1 395 3 is_stmt 1 view .LVU225 + 606 .loc 1 395 13 is_stmt 0 view .LVU226 + 607 002e 1958 ldr r1, [r3, r0] + 608 .LVL81: + 609 .loc 1 395 10 view .LVU227 + 610 0030 21EA0202 bic r2, r1, r2 + 611 .LVL82: + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 612 .loc 1 396 3 is_stmt 1 view .LVU228 + 613 .loc 1 396 12 is_stmt 0 view .LVU229 + 614 0034 1A50 str r2, [r3, r0] + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) + 615 .loc 1 399 3 is_stmt 1 view .LVU230 + 616 .loc 1 399 13 is_stmt 0 view .LVU231 + 617 0036 DCF80020 ldr r2, [ip] + 618 .LVL83: + 619 .loc 1 399 6 view .LVU232 + 620 003a 12F0007F tst r2, #33554432 + 621 003e 24D0 beq .L42 + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); + 622 .loc 1 401 5 is_stmt 1 view .LVU233 + 623 .loc 1 401 13 is_stmt 0 view .LVU234 + 624 0040 1449 ldr r1, .L49+4 + 625 .LVL84: + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); + 626 .loc 1 402 5 is_stmt 1 view .LVU235 + 627 .loc 1 402 15 is_stmt 0 view .LVU236 + 628 0042 5A58 ldr r2, [r3, r1] + 629 .loc 1 402 12 view .LVU237 + 630 0044 2A40 ands r2, r2, r5 + 631 .LVL85: + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 632 .loc 1 403 5 is_stmt 1 view .LVU238 + 633 .loc 1 403 14 is_stmt 0 view .LVU239 + 634 0046 5A50 str r2, [r3, r1] + ARM GAS /tmp/ccx3buCY.s page 20 + + + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); + 635 .loc 1 405 5 is_stmt 1 view .LVU240 + 636 .loc 1 405 13 is_stmt 0 view .LVU241 + 637 0048 134A ldr r2, .L49+8 + 638 .LVL86: + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); + 639 .loc 1 406 5 is_stmt 1 view .LVU242 + 640 .loc 1 406 15 is_stmt 0 view .LVU243 + 641 004a 9958 ldr r1, [r3, r2] + 642 .LVL87: + 643 .loc 1 406 12 view .LVU244 + 644 004c 0D40 ands r5, r5, r1 + 645 .LVL88: + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; + 646 .loc 1 407 5 is_stmt 1 view .LVU245 + 647 .loc 1 407 14 is_stmt 0 view .LVU246 + 648 004e 9D50 str r5, [r3, r2] + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) + 649 .loc 1 410 5 is_stmt 1 view .LVU247 + 650 .loc 1 410 15 is_stmt 0 view .LVU248 + 651 0050 DCF80030 ldr r3, [ip] + 652 .LVL89: + 653 .loc 1 410 22 view .LVU249 + 654 0054 03F0C063 and r3, r3, #100663296 + 655 .loc 1 410 8 view .LVU250 + 656 0058 B3F1C06F cmp r3, #100663296 + 657 005c 01D0 beq .L48 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; + 658 .loc 1 420 10 view .LVU251 + 659 005e 0020 movs r0, #0 + 660 0060 14E0 b .L40 + 661 .L48: + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 662 .loc 1 412 7 is_stmt 1 view .LVU252 + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 663 .loc 1 414 7 view .LVU253 + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 664 .loc 1 414 39 is_stmt 0 view .LVU254 + 665 0062 4FEA9E0E lsr lr, lr, #2 + 666 .LVL90: + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + 667 .loc 1 414 14 view .LVU255 + 668 0066 0D49 ldr r1, .L49+12 + 669 0068 0EF1020E add lr, lr, #2 + 670 006c 51F82E30 ldr r3, [r1, lr, lsl #2] + ARM GAS /tmp/ccx3buCY.s page 21 + + + 671 .LVL91: + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 672 .loc 1 415 7 is_stmt 1 view .LVU256 + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 673 .loc 1 415 80 is_stmt 0 view .LVU257 + 674 0070 04F00304 and r4, r4, #3 + 675 .LVL92: + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 676 .loc 1 415 69 view .LVU258 + 677 0074 A400 lsls r4, r4, #2 + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 678 .loc 1 415 40 view .LVU259 + 679 0076 0722 movs r2, #7 + 680 0078 A240 lsls r2, r2, r4 + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; + 681 .loc 1 415 14 view .LVU260 + 682 007a 23EA0203 bic r3, r3, r2 + 683 .LVL93: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 684 .loc 1 416 7 is_stmt 1 view .LVU261 + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 685 .loc 1 416 37 is_stmt 0 view .LVU262 + 686 007e 41F82E30 str r3, [r1, lr, lsl #2] + 687 .loc 1 420 10 view .LVU263 + 688 0082 0020 movs r0, #0 + 689 0084 02E0 b .L40 + 690 .LVL94: + 691 .L41: + 692 .LCFI8: + 693 .cfi_def_cfa_offset 0 + 694 .cfi_restore 4 + 695 .cfi_restore 5 + 696 .cfi_restore 14 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 697 .loc 1 375 12 view .LVU264 + 698 0086 0120 movs r0, #1 + 699 .LVL95: + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 700 .loc 1 421 1 view .LVU265 + 701 0088 7047 bx lr + 702 .LVL96: + 703 .L42: + 704 .LCFI9: + 705 .cfi_def_cfa_offset 12 + 706 .cfi_offset 4, -12 + 707 .cfi_offset 5, -8 + 708 .cfi_offset 14, -4 + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 709 .loc 1 420 10 view .LVU266 + 710 008a 0020 movs r0, #0 + 711 .LVL97: + 712 .L40: + 713 .loc 1 421 1 view .LVU267 + 714 008c 30BD pop {r4, r5, pc} + 715 .L50: + 716 008e 00BF .align 2 + 717 .L49: + ARM GAS /tmp/ccx3buCY.s page 22 + + + 718 0090 04040140 .word 1073808388 + 719 0094 08040140 .word 1073808392 + 720 0098 0C040140 .word 1073808396 + 721 009c 00000140 .word 1073807360 + 722 .cfi_endproc + 723 .LFE331: + 725 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits + 726 .align 1 + 727 .global HAL_EXTI_RegisterCallback + 728 .syntax unified + 729 .thumb + 730 .thumb_func + 732 HAL_EXTI_RegisterCallback: + 733 .LVL98: + 734 .LFB332: + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param CallbackID User callback identifier. + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 735 .loc 1 433 1 is_stmt 1 view -0 + 736 .cfi_startproc + 737 @ args = 0, pretend = 0, frame = 0 + 738 @ frame_needed = 0, uses_anonymous_args = 0 + 739 @ link register save eliminated. + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; + 740 .loc 1 434 3 view .LVU269 + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameters */ + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CB(CallbackID)); + 741 .loc 1 437 3 view .LVU270 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** switch (CallbackID) + 742 .loc 1 439 3 view .LVU271 + 743 0000 11B9 cbnz r1, .L52 + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* set common callback */ + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; + 744 .loc 1 443 7 view .LVU272 + 745 .loc 1 443 30 is_stmt 0 view .LVU273 + 746 0002 4260 str r2, [r0, #4] + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** break; + 747 .loc 1 444 7 is_stmt 1 view .LVU274 + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 748 .loc 1 434 21 is_stmt 0 view .LVU275 + 749 0004 0846 mov r0, r1 + 750 .LVL99: + 751 .loc 1 444 7 view .LVU276 + 752 0006 7047 bx lr + ARM GAS /tmp/ccx3buCY.s page 23 + + + 753 .LVL100: + 754 .L52: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** default: + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->PendingCallback = NULL; + 755 .loc 1 447 7 is_stmt 1 view .LVU277 + 756 .loc 1 447 30 is_stmt 0 view .LVU278 + 757 0008 0023 movs r3, #0 + 758 000a 4360 str r3, [r0, #4] + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** status = HAL_ERROR; + 759 .loc 1 448 7 is_stmt 1 view .LVU279 + 760 .LVL101: + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** break; + 761 .loc 1 449 7 view .LVU280 + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** status = HAL_ERROR; + 762 .loc 1 448 14 is_stmt 0 view .LVU281 + 763 000c 0120 movs r0, #1 + 764 .LVL102: + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return status; + 765 .loc 1 452 3 is_stmt 1 view .LVU282 + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 766 .loc 1 453 1 is_stmt 0 view .LVU283 + 767 000e 7047 bx lr + 768 .cfi_endproc + 769 .LFE332: + 771 .section .text.HAL_EXTI_GetHandle,"ax",%progbits + 772 .align 1 + 773 .global HAL_EXTI_GetHandle + 774 .syntax unified + 775 .thumb + 776 .thumb_func + 778 HAL_EXTI_GetHandle: + 779 .LVL103: + 780 .LFB333: + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Store line number as handle private field. + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param ExtiLine Exti line number. + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 781 .loc 1 464 1 is_stmt 1 view -0 + 782 .cfi_startproc + 783 @ args = 0, pretend = 0, frame = 0 + 784 @ frame_needed = 0, uses_anonymous_args = 0 + 785 @ link register save eliminated. + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameters */ + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); + 786 .loc 1 466 3 view .LVU285 + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ + ARM GAS /tmp/ccx3buCY.s page 24 + + + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (hexti == NULL) + 787 .loc 1 469 3 view .LVU286 + 788 .loc 1 469 6 is_stmt 0 view .LVU287 + 789 0000 10B1 cbz r0, .L56 + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store line number as handle private field */ + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->Line = ExtiLine; + 790 .loc 1 476 5 is_stmt 1 view .LVU288 + 791 .loc 1 476 17 is_stmt 0 view .LVU289 + 792 0002 0160 str r1, [r0] + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; + 793 .loc 1 478 5 is_stmt 1 view .LVU290 + 794 .loc 1 478 12 is_stmt 0 view .LVU291 + 795 0004 0020 movs r0, #0 + 796 .LVL104: + 797 .loc 1 478 12 view .LVU292 + 798 0006 7047 bx lr + 799 .LVL105: + 800 .L56: + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 801 .loc 1 471 12 view .LVU293 + 802 0008 0120 movs r0, #1 + 803 .LVL106: + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 804 .loc 1 480 1 view .LVU294 + 805 000a 7047 bx lr + 806 .cfi_endproc + 807 .LFE333: + 809 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits + 810 .align 1 + 811 .global HAL_EXTI_IRQHandler + 812 .syntax unified + 813 .thumb + 814 .thumb_func + 816 HAL_EXTI_IRQHandler: + 817 .LVL107: + 818 .LFB334: + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @} + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief EXTI IO functions. + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @verbatim + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ##### IO operation functions ##### + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + ARM GAS /tmp/ccx3buCY.s page 25 + + + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @endverbatim + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Handle EXTI interrupt request. + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval none. + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 819 .loc 1 505 1 is_stmt 1 view -0 + 820 .cfi_startproc + 821 @ args = 0, pretend = 0, frame = 0 + 822 @ frame_needed = 0, uses_anonymous_args = 0 + 823 .loc 1 505 1 is_stmt 0 view .LVU296 + 824 0000 10B5 push {r4, lr} + 825 .LCFI10: + 826 .cfi_def_cfa_offset 8 + 827 .cfi_offset 4, -8 + 828 .cfi_offset 14, -4 + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 829 .loc 1 506 3 is_stmt 1 view .LVU297 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; + 830 .loc 1 507 3 view .LVU298 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 831 .loc 1 508 3 view .LVU299 + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 832 .loc 1 509 3 view .LVU300 + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 833 .loc 1 512 3 view .LVU301 + 834 .loc 1 512 19 is_stmt 0 view .LVU302 + 835 0002 0368 ldr r3, [r0] + 836 .loc 1 512 10 view .LVU303 + 837 0004 C3F30042 ubfx r2, r3, #16, #1 + 838 .LVL108: + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + 839 .loc 1 514 3 is_stmt 1 view .LVU304 + 840 .loc 1 514 35 is_stmt 0 view .LVU305 + 841 0008 03F01F03 and r3, r3, #31 + 842 .loc 1 514 12 view .LVU306 + 843 000c 0121 movs r1, #1 + 844 000e 9940 lsls r1, r1, r3 + 845 .LVL109: + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get pending bit */ + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); + 846 .loc 1 517 3 is_stmt 1 view .LVU307 + 847 .loc 1 517 25 is_stmt 0 view .LVU308 + 848 0010 5301 lsls r3, r2, #5 + 849 .loc 1 517 11 view .LVU309 + 850 0012 044A ldr r2, .L60 + 851 .LVL110: + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & maskline); + ARM GAS /tmp/ccx3buCY.s page 26 + + + 852 .loc 1 518 3 is_stmt 1 view .LVU310 + 853 .loc 1 518 13 is_stmt 0 view .LVU311 + 854 0014 9C58 ldr r4, [r3, r2] + 855 .LVL111: + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (regval != 0x00u) + 856 .loc 1 520 3 is_stmt 1 view .LVU312 + 857 .loc 1 520 6 is_stmt 0 view .LVU313 + 858 0016 0C42 tst r4, r1 + 859 0018 03D0 beq .L57 + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Clear pending bit */ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = maskline; + 860 .loc 1 523 5 is_stmt 1 view .LVU314 + 861 .loc 1 523 14 is_stmt 0 view .LVU315 + 862 001a 9950 str r1, [r3, r2] + 863 .LVL112: + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Call pending callback */ + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (hexti->PendingCallback != NULL) + 864 .loc 1 526 5 is_stmt 1 view .LVU316 + 865 .loc 1 526 14 is_stmt 0 view .LVU317 + 866 001c 4368 ldr r3, [r0, #4] + 867 .LVL113: + 868 .loc 1 526 8 view .LVU318 + 869 001e 03B1 cbz r3, .L57 + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->PendingCallback(); + 870 .loc 1 528 7 is_stmt 1 view .LVU319 + 871 0020 9847 blx r3 + 872 .LVL114: + 873 .L57: + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 874 .loc 1 531 1 is_stmt 0 view .LVU320 + 875 0022 10BD pop {r4, pc} + 876 .L61: + 877 .loc 1 531 1 view .LVU321 + 878 .align 2 + 879 .L60: + 880 0024 14040140 .word 1073808404 + 881 .cfi_endproc + 882 .LFE334: + 884 .section .text.HAL_EXTI_GetPending,"ax",%progbits + 885 .align 1 + 886 .global HAL_EXTI_GetPending + 887 .syntax unified + 888 .thumb + 889 .thumb_func + 891 HAL_EXTI_GetPending: + 892 .LVL115: + 893 .LFB335: + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + ARM GAS /tmp/ccx3buCY.s page 27 + + + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param Edge unused + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 894 .loc 1 540 1 is_stmt 1 view -0 + 895 .cfi_startproc + 896 @ args = 0, pretend = 0, frame = 0 + 897 @ frame_needed = 0, uses_anonymous_args = 0 + 898 @ link register save eliminated. + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 899 .loc 1 541 3 view .LVU323 + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; + 900 .loc 1 542 3 view .LVU324 + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; + 901 .loc 1 543 3 view .LVU325 + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 902 .loc 1 544 3 view .LVU326 + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 903 .loc 1 545 3 view .LVU327 + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameters */ + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); + 904 .loc 1 548 3 view .LVU328 + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + 905 .loc 1 549 3 view .LVU329 + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** UNUSED(Edge); + 906 .loc 1 550 3 view .LVU330 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 907 .loc 1 553 3 view .LVU331 + 908 .loc 1 553 19 is_stmt 0 view .LVU332 + 909 0000 0368 ldr r3, [r0] + 910 .loc 1 553 10 view .LVU333 + 911 0002 C3F30041 ubfx r1, r3, #16, #1 + 912 .LVL116: + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); + 913 .loc 1 555 3 is_stmt 1 view .LVU334 + 914 .loc 1 555 11 is_stmt 0 view .LVU335 + 915 0006 03F01F03 and r3, r3, #31 + 916 .LVL117: + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); + 917 .loc 1 557 3 is_stmt 1 view .LVU336 + 918 .loc 1 557 12 is_stmt 0 view .LVU337 + 919 000a 0122 movs r2, #1 + 920 000c 9A40 lsls r2, r2, r3 + 921 .LVL118: + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get pending bit */ + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); + 922 .loc 1 560 3 is_stmt 1 view .LVU338 + 923 .loc 1 560 25 is_stmt 0 view .LVU339 + 924 000e 4901 lsls r1, r1, #5 + 925 .LVL119: + ARM GAS /tmp/ccx3buCY.s page 28 + + + 926 .loc 1 560 11 view .LVU340 + 927 0010 0248 ldr r0, .L63 + 928 .LVL120: + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* return 1 if bit is set else 0 */ + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = ((*regaddr & maskline) >> linepos); + 929 .loc 1 563 3 is_stmt 1 view .LVU341 + 930 .loc 1 563 14 is_stmt 0 view .LVU342 + 931 0012 0858 ldr r0, [r1, r0] + 932 .LVL121: + 933 .loc 1 563 23 view .LVU343 + 934 0014 1040 ands r0, r0, r2 + 935 .LVL122: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return regval; + 936 .loc 1 564 3 is_stmt 1 view .LVU344 + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 937 .loc 1 565 1 is_stmt 0 view .LVU345 + 938 0016 D840 lsrs r0, r0, r3 + 939 .LVL123: + 940 .loc 1 565 1 view .LVU346 + 941 0018 7047 bx lr + 942 .L64: + 943 001a 00BF .align 2 + 944 .L63: + 945 001c 14040140 .word 1073808404 + 946 .cfi_endproc + 947 .LFE335: + 949 .section .text.HAL_EXTI_ClearPending,"ax",%progbits + 950 .align 1 + 951 .global HAL_EXTI_ClearPending + 952 .syntax unified + 953 .thumb + 954 .thumb_func + 956 HAL_EXTI_ClearPending: + 957 .LVL124: + 958 .LFB336: + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param Edge unused + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval None. + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 959 .loc 1 575 1 is_stmt 1 view -0 + 960 .cfi_startproc + 961 @ args = 0, pretend = 0, frame = 0 + 962 @ frame_needed = 0, uses_anonymous_args = 0 + 963 @ link register save eliminated. + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 964 .loc 1 576 3 view .LVU348 + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 965 .loc 1 577 3 view .LVU349 + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 966 .loc 1 578 3 view .LVU350 + ARM GAS /tmp/ccx3buCY.s page 29 + + + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameters */ + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); + 967 .loc 1 581 3 view .LVU351 + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + 968 .loc 1 582 3 view .LVU352 + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** UNUSED(Edge); + 969 .loc 1 583 3 view .LVU353 + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 970 .loc 1 586 3 view .LVU354 + 971 .loc 1 586 19 is_stmt 0 view .LVU355 + 972 0000 0368 ldr r3, [r0] + 973 .loc 1 586 10 view .LVU356 + 974 0002 C3F30042 ubfx r2, r3, #16, #1 + 975 .LVL125: + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + 976 .loc 1 588 3 is_stmt 1 view .LVU357 + 977 .loc 1 588 35 is_stmt 0 view .LVU358 + 978 0006 03F01F03 and r3, r3, #31 + 979 .loc 1 588 12 view .LVU359 + 980 000a 0121 movs r1, #1 + 981 .LVL126: + 982 .loc 1 588 12 view .LVU360 + 983 000c 9940 lsls r1, r1, r3 + 984 .LVL127: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get pending register address */ + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); + 985 .loc 1 591 3 is_stmt 1 view .LVU361 + 986 .loc 1 591 25 is_stmt 0 view .LVU362 + 987 000e 5301 lsls r3, r2, #5 + 988 .loc 1 591 11 view .LVU363 + 989 0010 014A ldr r2, .L66 + 990 .LVL128: + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Clear Pending bit */ + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = maskline; + 991 .loc 1 594 3 is_stmt 1 view .LVU364 + 992 .loc 1 594 12 is_stmt 0 view .LVU365 + 993 0012 9950 str r1, [r3, r2] + 994 .LVL129: + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 995 .loc 1 595 1 view .LVU366 + 996 0014 7047 bx lr + 997 .L67: + 998 0016 00BF .align 2 + 999 .L66: + 1000 0018 14040140 .word 1073808404 + 1001 .cfi_endproc + 1002 .LFE336: + 1004 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits + 1005 .align 1 + 1006 .global HAL_EXTI_GenerateSWI + 1007 .syntax unified + ARM GAS /tmp/ccx3buCY.s page 30 + + + 1008 .thumb + 1009 .thumb_func + 1011 HAL_EXTI_GenerateSWI: + 1012 .LVL130: + 1013 .LFB337: + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval None. + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { + 1014 .loc 1 604 1 is_stmt 1 view -0 + 1015 .cfi_startproc + 1016 @ args = 0, pretend = 0, frame = 0 + 1017 @ frame_needed = 0, uses_anonymous_args = 0 + 1018 @ link register save eliminated. + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; + 1019 .loc 1 605 3 view .LVU368 + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; + 1020 .loc 1 606 3 view .LVU369 + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; + 1021 .loc 1 607 3 view .LVU370 + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameter */ + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); + 1022 .loc 1 610 3 view .LVU371 + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + 1023 .loc 1 611 3 view .LVU372 + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line register offset */ + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + 1024 .loc 1 614 3 view .LVU373 + 1025 .loc 1 614 19 is_stmt 0 view .LVU374 + 1026 0000 0368 ldr r3, [r0] + 1027 .loc 1 614 10 view .LVU375 + 1028 0002 C3F30042 ubfx r2, r3, #16, #1 + 1029 .LVL131: + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + 1030 .loc 1 616 3 is_stmt 1 view .LVU376 + 1031 .loc 1 616 35 is_stmt 0 view .LVU377 + 1032 0006 03F01F03 and r3, r3, #31 + 1033 .loc 1 616 12 view .LVU378 + 1034 000a 0121 movs r1, #1 + 1035 000c 9940 lsls r1, r1, r3 + 1036 .LVL132: + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->SWIER1 + (EXTI_CONFIG_OFFSET * offset)); + 1037 .loc 1 618 3 is_stmt 1 view .LVU379 + 1038 .loc 1 618 28 is_stmt 0 view .LVU380 + 1039 000e 5301 lsls r3, r2, #5 + 1040 .loc 1 618 11 view .LVU381 + 1041 0010 014A ldr r2, .L69 + 1042 .LVL133: + ARM GAS /tmp/ccx3buCY.s page 31 + + + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = maskline; + 1043 .loc 1 619 3 is_stmt 1 view .LVU382 + 1044 .loc 1 619 12 is_stmt 0 view .LVU383 + 1045 0012 9950 str r1, [r3, r2] + 1046 .LVL134: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } + 1047 .loc 1 620 1 view .LVU384 + 1048 0014 7047 bx lr + 1049 .L70: + 1050 0016 00BF .align 2 + 1051 .L69: + 1052 0018 10040140 .word 1073808400 + 1053 .cfi_endproc + 1054 .LFE337: + 1056 .text + 1057 .Letext0: + 1058 .file 2 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1059 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1060 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1061 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h" + ARM GAS /tmp/ccx3buCY.s page 32 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_exti.c + /tmp/ccx3buCY.s:21 .text.HAL_EXTI_SetConfigLine:00000000 $t + /tmp/ccx3buCY.s:27 .text.HAL_EXTI_SetConfigLine:00000000 HAL_EXTI_SetConfigLine + /tmp/ccx3buCY.s:297 .text.HAL_EXTI_SetConfigLine:000000cc $d + /tmp/ccx3buCY.s:305 .text.HAL_EXTI_GetConfigLine:00000000 $t + /tmp/ccx3buCY.s:311 .text.HAL_EXTI_GetConfigLine:00000000 HAL_EXTI_GetConfigLine + /tmp/ccx3buCY.s:527 .text.HAL_EXTI_GetConfigLine:000000a8 $d + /tmp/ccx3buCY.s:535 .text.HAL_EXTI_ClearConfigLine:00000000 $t + /tmp/ccx3buCY.s:541 .text.HAL_EXTI_ClearConfigLine:00000000 HAL_EXTI_ClearConfigLine + /tmp/ccx3buCY.s:718 .text.HAL_EXTI_ClearConfigLine:00000090 $d + /tmp/ccx3buCY.s:726 .text.HAL_EXTI_RegisterCallback:00000000 $t + /tmp/ccx3buCY.s:732 .text.HAL_EXTI_RegisterCallback:00000000 HAL_EXTI_RegisterCallback + /tmp/ccx3buCY.s:772 .text.HAL_EXTI_GetHandle:00000000 $t + /tmp/ccx3buCY.s:778 .text.HAL_EXTI_GetHandle:00000000 HAL_EXTI_GetHandle + /tmp/ccx3buCY.s:810 .text.HAL_EXTI_IRQHandler:00000000 $t + /tmp/ccx3buCY.s:816 .text.HAL_EXTI_IRQHandler:00000000 HAL_EXTI_IRQHandler + /tmp/ccx3buCY.s:880 .text.HAL_EXTI_IRQHandler:00000024 $d + /tmp/ccx3buCY.s:885 .text.HAL_EXTI_GetPending:00000000 $t + /tmp/ccx3buCY.s:891 .text.HAL_EXTI_GetPending:00000000 HAL_EXTI_GetPending + /tmp/ccx3buCY.s:945 .text.HAL_EXTI_GetPending:0000001c $d + /tmp/ccx3buCY.s:950 .text.HAL_EXTI_ClearPending:00000000 $t + /tmp/ccx3buCY.s:956 .text.HAL_EXTI_ClearPending:00000000 HAL_EXTI_ClearPending + /tmp/ccx3buCY.s:1000 .text.HAL_EXTI_ClearPending:00000018 $d + /tmp/ccx3buCY.s:1005 .text.HAL_EXTI_GenerateSWI:00000000 $t + /tmp/ccx3buCY.s:1011 .text.HAL_EXTI_GenerateSWI:00000000 HAL_EXTI_GenerateSWI + /tmp/ccx3buCY.s:1052 .text.HAL_EXTI_GenerateSWI:00000018 $d + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_hal_exti.o b/squeow_sw/build/stm32g4xx_hal_exti.o new file mode 100644 index 0000000000000000000000000000000000000000..041580f737f2c98df128546954ba0be32b3ac7fa GIT binary patch literal 16980 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_flash.d b/squeow_sw/build/stm32g4xx_hal_flash.d new file mode 100644 index 0000000..67251ec --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_flash.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_flash.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_flash.lst b/squeow_sw/build/stm32g4xx_hal_flash.lst new file mode 100644 index 0000000..ef31959 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_flash.lst @@ -0,0 +1,3454 @@ +ARM GAS /tmp/ccsIWRCI.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_flash.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c" + 20 .section .text.FLASH_Program_DoubleWord,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 FLASH_Program_DoubleWord: + 27 .LVL0: + 28 .LFB341: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @file stm32g4xx_hal_flash.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief FLASH HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * functionalities of the internal FLASH memory: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + Program operations functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + Memory Control functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + Peripheral Errors functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ============================================================================== + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ##### FLASH peripheral features ##### + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ============================================================================== + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** and the read and write protection mechanisms. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** prefetch and cache lines. + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] The FLASH main features are: + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Flash memory read operations + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Flash memory program/erase operations + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Read / write protections + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Option bytes programming + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Prefetch on I-Code + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) 32 cache lines of 4*64 or 2*128 bits on I-Code + ARM GAS /tmp/ccsIWRCI.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) 8 cache lines of 4*64 or 2*128 bits on D-Code + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Error code correction (ECC) : Data in flash are 72-bits word + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (8 bits added per double word) + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ##### How to use this driver ##### + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ============================================================================== + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** memory of all STM32G4xx devices. + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (#) Flash Memory IO Programming functions: + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_Lock() functions + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Program functions: double word and fast program (full row programming) + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) There are two modes of programming : + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+++) Polling mode using HAL_FLASH_Program() function + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+++) Interrupt mode using HAL_FLASH_Program_IT() function + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (#) Interrupts and flags management functions: + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler() + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Callback functions are called when the flash operations are finished : + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback() when everything is ok, otherwise + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback() + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Get error flag status by calling HAL_GetError() + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (#) Option bytes management functions: + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Lock and Unlock the option bytes using HAL_FLASH_OB_Unlock() and + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_OB_Lock() functions + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (++) Launch the reload of the option bytes using HAL_FLASH_Launch() function. + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** In this case, a reset is generated + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** In addition to these functions, this driver includes a set of macros allowing + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** to handle the following operations: + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Set the latency + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Enable/Disable the Instruction cache and the Data cache + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Reset the Instruction cache and the Data cache + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Enable/Disable the Flash power-down during low-power run and sleep modes + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Enable/Disable the Flash interrupts + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (+) Monitor the Flash flags status + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ****************************************************************************** + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @attention + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * Copyright (c) 2019 STMicroelectronics. + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * All rights reserved. + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * This software is licensed under terms that can be found in the LICENSE file in + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * the root directory of this software component. + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ****************************************************************************** + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/ + ARM GAS /tmp/ccsIWRCI.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #include "stm32g4xx_hal.h" + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @addtogroup STM32G4xx_HAL_Driver + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH FLASH + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief FLASH HAL module driver + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/ + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private defines -----------------------------------------------------------*/ + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #define FLASH_NB_DOUBLE_WORDS_IN_ROW 32 + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private macros ------------------------------------------------------------*/ + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/ + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Variable used for Program/Erase sectors under interruption + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash = {.Lock = HAL_UNLOCKED, + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .ErrorCode = HAL_FLASH_ERROR_NONE, + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .ProcedureOnGoing = FLASH_PROC_NONE, + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .Address = 0U, + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .Bank = FLASH_BANK_1, + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .Page = 0U, + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .NbPagesToErase = 0U, + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** .CacheToReactivate = FLASH_CACHE_DISABLED}; + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/ + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data); + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress); + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/ + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + ARM GAS /tmp/ccsIWRCI.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Programming operation functions + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** =============================================================================== + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ##### Programming operation functions ##### + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** =============================================================================== + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** This subsection provides a set of functions allowing to manage the FLASH + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** program operations. + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Program double word or fast program of a row at a specified address. + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program. + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Address specifies the address to be programmed. + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Data specifies the data to be programmed. + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * This parameter is the data for the double word program and the address where + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * are stored the data for the row fast program. + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status; + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t prog_bit = 0; + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check the parameters */ + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Process Locked */ + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_LOCK(&pFlash); + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for last operation to be completed */ + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (status == HAL_OK) + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD) + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Program double-word (64-bit) at a specified address */ + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data); + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** prog_bit = FLASH_CR_PG; + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_ + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Fast program a 32 row double-word (64-bit) at a specified address */ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_Program_Fast(Address, (uint32_t)Data); + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + ARM GAS /tmp/ccsIWRCI.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* If it is the last row, the bit will be cleared at the end of the operation */ + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST) + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** prog_bit = FLASH_CR_FSTPG; + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Nothing to do */ + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for last operation to be completed */ + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* If the program operation is completed, disable the PG or FSTPG Bit */ + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (prog_bit != 0U) + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, prog_bit); + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Process Unlocked */ + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* return status */ + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return status; + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Program double word or fast program of a row at a specified address with interrupt enab + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program. + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Address specifies the address to be programmed. + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Data specifies the data to be programmed. + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * This parameter is the data for the double word program and the address where + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * are stored the data for the row fast program. + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data) + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status; + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check the parameters */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Process Locked */ + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_LOCK(&pFlash); + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Reset error code */ + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for last operation to be completed */ + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (status != HAL_OK) + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + ARM GAS /tmp/ccsIWRCI.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Process Unlocked */ + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set internal variables used by the IRQ handler */ + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST) + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_LAST; + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM; + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.Address = Address; + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Enable End of Operation and Error interrupts */ + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR); + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD) + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Program double-word (64-bit) at a specified address */ + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data); + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_ + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Fast program a 32 row double-word (64-bit) at a specified address */ + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_Program_Fast(Address, (uint32_t)Data); + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Nothing to do */ + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return status; + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Handle FLASH interrupt request. + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval None + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void) + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t tmp_page; + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t error; + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_ProcedureTypeDef procedure; + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* If the operation is completed, disable the PG, PNB, MER1, MER2 and PER Bit */ + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_MER1 | FLASH_CR_PER | FLASH_CR_PNB)); + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK) + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER2); + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #endif + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Disable the FSTPG Bit only if it is the last row programmed */ + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAM_LAST) + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + ARM GAS /tmp/ccsIWRCI.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_FSTPG); + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check FLASH operation error flags */ + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** error = (FLASH->SR & FLASH_FLAG_SR_ERRORS); + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (error != 0U) + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Save the error code */ + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ErrorCode |= error; + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Clear error programming flags */ + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(error); + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */ + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_FlushCaches() ; + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* FLASH error interrupt user callback */ + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** procedure = pFlash.ProcedureOnGoing; + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (procedure == FLASH_PROC_PAGE_ERASE) + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(pFlash.Page); + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else if (procedure == FLASH_PROC_MASS_ERASE) + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(pFlash.Bank); + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else if ((procedure == FLASH_PROC_PROGRAM) || + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(pFlash.Address); + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Nothing to do */ + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /*Stop the procedure ongoing*/ + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check FLASH End of Operation flag */ + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_PAGE_ERASE) + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Nb of pages to erased can be decreased */ + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.NbPagesToErase--; + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check if there are still pages to erase*/ + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (pFlash.NbPagesToErase != 0U) + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Indicate user which page has been erased*/ + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Page); + ARM GAS /tmp/ccsIWRCI.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Increment page number */ + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.Page++; + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** tmp_page = pFlash.Page; + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_PageErase(tmp_page, pFlash.Bank); + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* No more pages to Erase */ + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Reset Address and stop Erase pages procedure */ + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.Page = 0xFFFFFFFFU; + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */ + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_FlushCaches() ; + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Page); + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */ + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_FlushCaches() ; + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** procedure = pFlash.ProcedureOnGoing; + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (procedure == FLASH_PROC_MASS_ERASE) + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* MassErase ended. Return the selected bank */ + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Bank); + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else if ((procedure == FLASH_PROC_PROGRAM) || + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Program ended. Return the selected address */ + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address); + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** else + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Nothing to do */ + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /*Clear the procedure ongoing*/ + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_NONE) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Disable End of Operation and Error interrupts */ + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR); + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Process Unlocked */ + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + ARM GAS /tmp/ccsIWRCI.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback. + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure: + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg Mass Erase: Bank number which has been requested to erase + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg Page Erase: Page which has been erased + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * (if 0xFFFFFFFF, it means that all the selected pages have been erase + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg Program: Address which was selected for data program + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval None + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** UNUSED(ReturnValue); + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* NOTE : This function should not be modified, when the callback is needed, + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief FLASH operation error interrupt callback. + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure: + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg Mass Erase: Bank number which has been requested to erase + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg Page Erase: Page number which returned an error + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg Program: Address which was selected for data program + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval None + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** UNUSED(ReturnValue); + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* NOTE : This function should not be modified, when the callback is needed, + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Management functions + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** =============================================================================== + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ##### Peripheral Control functions ##### + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** =============================================================================== + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** memory operations. + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + ARM GAS /tmp/ccsIWRCI.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Unlock the FLASH control register access. + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void) + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U) + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Authorize the FLASH Registers access */ + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1); + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2); + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* verify Flash is unlocked */ + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U) + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = HAL_ERROR; + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return status; + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Lock the FLASH control register access. + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void) + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */ + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_LOCK); + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* verify Flash is locked */ + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U) + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = HAL_OK; + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return status; + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Unlock the FLASH Option Bytes Registers access. + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U) + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Authorizes the Option Byte register programming */ + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1); + ARM GAS /tmp/ccsIWRCI.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* verify option bytes are unlocked */ + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U) + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = HAL_ERROR; + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return status; + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Lock the FLASH Option Bytes Registers access. + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */ + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTLOCK); + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Verify option bytes are locked */ + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U) + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** status = HAL_OK; + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return status; + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Launch the option byte loading. + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set the bit to force the option byte reloading */ + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH); + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for last operation to be completed */ + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE)); + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Peripheral Errors functions + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** =============================================================================== + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** ##### Peripheral Errors functions ##### + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** =============================================================================== + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** [..] + ARM GAS /tmp/ccsIWRCI.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** This subsection permits to get in run-time Errors of the FLASH peripheral. + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Get the specific FLASH error flag. + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval FLASH_ErrorCode. The returned value can be: + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP) + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_NONE: No error set + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OP: FLASH Operation error + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PROG: FLASH Programming error + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP: FLASH Write protection error + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGA: FLASH Programming alignment error + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_SIZ: FLASH Size error + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS: FLASH Programming sequence error + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_MIS: FLASH Fast programming data miss error + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_FAST: FLASH Fast programming error + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RD: FLASH PCROP read error + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPTV: FLASH Option validity error + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void) + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return pFlash.ErrorCode; + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @} + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private functions ---------------------------------------------------------*/ + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @{ + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete. + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Timeout maximum flash operation timeout. + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval HAL_Status + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** flag will be set */ + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + ARM GAS /tmp/ccsIWRCI.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick(); + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t error; + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if ((HAL_GetTick() - tickstart) > Timeout) + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return HAL_TIMEOUT; + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check FLASH operation error flags */ + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** error = (FLASH->SR & FLASH_FLAG_SR_ERRORS); + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (error != 0u) + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Save the error code */ + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ErrorCode |= error; + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Clear error programming flags */ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(error); + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return HAL_ERROR; + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check FLASH End of Operation flag */ + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* If there is an error flag set */ + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return HAL_OK; + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Program double-word (64-bit) at a specified address. + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Address specifies the address to be programmed. + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Data specifies the data to be programmed. + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval None + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data) + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 29 .loc 1 700 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 34 .loc 1 700 1 is_stmt 0 view .LVU1 + 35 0000 10B4 push {r4} + 36 .LCFI0: + 37 .cfi_def_cfa_offset 4 + 38 .cfi_offset 4, -4 + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check the parameters */ + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + 39 .loc 1 702 3 is_stmt 1 view .LVU2 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + ARM GAS /tmp/ccsIWRCI.s page 14 + + + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set PG bit */ + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_PG); + 40 .loc 1 705 3 view .LVU3 + 41 0002 064C ldr r4, .L3 + 42 0004 6169 ldr r1, [r4, #20] + 43 0006 41F00101 orr r1, r1, #1 + 44 000a 6161 str r1, [r4, #20] + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Program first word */ + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** *(uint32_t *)Address = (uint32_t)Data; + 45 .loc 1 708 3 view .LVU4 + 46 .loc 1 708 24 is_stmt 0 view .LVU5 + 47 000c 0260 str r2, [r0] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Barrier to ensure programming is performed in 2 steps, in right order + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (independently of compiler optimization behavior) */ + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __ISB(); + 48 .loc 1 712 3 is_stmt 1 view .LVU6 + 49 .LBB10: + 50 .LBI10: + 51 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + ARM GAS /tmp/ccsIWRCI.s page 15 + + + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccsIWRCI.s page 16 + + + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccsIWRCI.s page 17 + + + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + ARM GAS /tmp/ccsIWRCI.s page 18 + + + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccsIWRCI.s page 19 + + + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccsIWRCI.s page 20 + + + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/ccsIWRCI.s page 21 + + + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + ARM GAS /tmp/ccsIWRCI.s page 22 + + + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccsIWRCI.s page 23 + + + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + ARM GAS /tmp/ccsIWRCI.s page 24 + + + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + ARM GAS /tmp/ccsIWRCI.s page 25 + + + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + ARM GAS /tmp/ccsIWRCI.s page 26 + + + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + ARM GAS /tmp/ccsIWRCI.s page 27 + + + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + ARM GAS /tmp/ccsIWRCI.s page 28 + + + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/ccsIWRCI.s page 29 + + + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + ARM GAS /tmp/ccsIWRCI.s page 30 + + + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 52 .loc 2 933 27 view .LVU7 + 53 .LBB11: + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 54 .loc 2 935 3 view .LVU8 + 55 .syntax unified + 56 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 57 000e BFF36F8F isb 0xF + 58 @ 0 "" 2 + 59 .thumb + 60 .syntax unified + 61 .LBE11: + 62 .LBE10: + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Program second word */ + ARM GAS /tmp/ccsIWRCI.s page 31 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U); + 63 .loc 1 715 3 view .LVU9 + 64 .loc 1 715 31 is_stmt 0 view .LVU10 + 65 0012 4360 str r3, [r0, #4] + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 66 .loc 1 716 1 view .LVU11 + 67 0014 5DF8044B ldr r4, [sp], #4 + 68 .LCFI1: + 69 .cfi_restore 4 + 70 .cfi_def_cfa_offset 0 + 71 0018 7047 bx lr + 72 .L4: + 73 001a 00BF .align 2 + 74 .L3: + 75 001c 00200240 .word 1073881088 + 76 .cfi_endproc + 77 .LFE341: + 79 .section .text.FLASH_Program_Fast,"ax",%progbits + 80 .align 1 + 81 .syntax unified + 82 .thumb + 83 .thumb_func + 85 FLASH_Program_Fast: + 86 .LVL1: + 87 .LFB342: + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @brief Fast program a row double-word (64-bit) at a specified address. + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param Address specifies the address to be programmed. + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @param DataAddress specifies the address where the data are stored. + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** * @retval None + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** */ + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress) + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 88 .loc 1 725 1 is_stmt 1 view -0 + 89 .cfi_startproc + 90 @ args = 0, pretend = 0, frame = 0 + 91 @ frame_needed = 0, uses_anonymous_args = 0 + 92 @ link register save eliminated. + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint8_t row_index = (2 * FLASH_NB_DOUBLE_WORDS_IN_ROW); + 93 .loc 1 726 3 view .LVU13 + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t *dest_addr = (uint32_t *)Address; + 94 .loc 1 727 3 view .LVU14 + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t *src_addr = (uint32_t *)DataAddress; + 95 .loc 1 728 3 view .LVU15 + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t primask_bit; + 96 .loc 1 729 3 view .LVU16 + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Check the parameters */ + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(Address)); + 97 .loc 1 732 3 view .LVU17 + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set FSTPG bit */ + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_FSTPG); + 98 .loc 1 735 3 view .LVU18 + 99 0000 094A ldr r2, .L7 + 100 0002 5369 ldr r3, [r2, #20] + ARM GAS /tmp/ccsIWRCI.s page 32 + + + 101 0004 43F48023 orr r3, r3, #262144 + 102 0008 5361 str r3, [r2, #20] + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Enter critical section: Disable interrupts to avoid any interruption during the loop */ + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** primask_bit = __get_PRIMASK(); + 103 .loc 1 738 3 view .LVU19 + 104 .LBB12: + 105 .LBI12: + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 106 .loc 2 449 31 view .LVU20 + 107 .LBB13: + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** + 108 .loc 2 451 3 view .LVU21 + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 109 .loc 2 453 3 view .LVU22 + 110 .syntax unified + 111 @ 453 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 112 000a EFF3108C MRS ip, primask + 113 @ 0 "" 2 + 114 .LVL2: + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 115 .loc 2 454 3 view .LVU23 + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 116 .loc 2 454 3 is_stmt 0 view .LVU24 + 117 .thumb + 118 .syntax unified + 119 .LBE13: + 120 .LBE12: + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __disable_irq(); + 121 .loc 1 739 3 is_stmt 1 view .LVU25 + 122 .LBB14: + 123 .LBI14: + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 124 .loc 2 207 27 view .LVU26 + 125 .LBB15: + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 126 .loc 2 209 3 view .LVU27 + 127 .syntax unified + 128 @ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 129 000e 72B6 cpsid i + 130 @ 0 "" 2 + 131 .thumb + 132 .syntax unified + 133 .LBE15: + 134 .LBE14: + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t *dest_addr = (uint32_t *)Address; + 135 .loc 1 726 11 is_stmt 0 view .LVU28 + 136 0010 4023 movs r3, #64 + 137 .LVL3: + 138 .L6: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Program the double words of the row */ + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** do + 139 .loc 1 742 3 is_stmt 1 discriminator 1 view .LVU29 + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** *dest_addr = *src_addr; + 140 .loc 1 744 5 discriminator 1 view .LVU30 + ARM GAS /tmp/ccsIWRCI.s page 33 + + + 141 .loc 1 744 18 is_stmt 0 discriminator 1 view .LVU31 + 142 0012 51F8042B ldr r2, [r1], #4 + 143 .LVL4: + 144 .loc 1 744 16 discriminator 1 view .LVU32 + 145 0016 40F8042B str r2, [r0], #4 + 146 .LVL5: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** dest_addr++; + 147 .loc 1 745 5 is_stmt 1 discriminator 1 view .LVU33 + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** src_addr++; + 148 .loc 1 746 5 discriminator 1 view .LVU34 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** row_index--; + 149 .loc 1 747 5 discriminator 1 view .LVU35 + 150 .loc 1 747 14 is_stmt 0 discriminator 1 view .LVU36 + 151 001a 013B subs r3, r3, #1 + 152 .LVL6: + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** while (row_index != 0U); + 153 .loc 1 749 20 is_stmt 1 discriminator 1 view .LVU37 + 154 001c 13F0FF03 ands r3, r3, #255 + 155 .LVL7: + 156 .loc 1 749 20 is_stmt 0 discriminator 1 view .LVU38 + 157 0020 F7D1 bne .L6 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Exit critical section: restore previous priority mask */ + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __set_PRIMASK(primask_bit); + 158 .loc 1 752 3 is_stmt 1 view .LVU39 + 159 .LBB16: + 160 .LBI16: + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 161 .loc 2 479 27 view .LVU40 + 162 .LBB17: + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 163 .loc 2 481 3 view .LVU41 + 164 .syntax unified + 165 @ 481 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 166 0022 8CF31088 MSR primask, ip + 167 @ 0 "" 2 + 168 .thumb + 169 .syntax unified + 170 .LBE17: + 171 .LBE16: + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 172 .loc 1 753 1 is_stmt 0 view .LVU42 + 173 0026 7047 bx lr + 174 .L8: + 175 .align 2 + 176 .L7: + 177 0028 00200240 .word 1073881088 + 178 .cfi_endproc + 179 .LFE342: + 181 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits + 182 .align 1 + 183 .weak HAL_FLASH_EndOfOperationCallback + 184 .syntax unified + 185 .thumb + 186 .thumb_func + 188 HAL_FLASH_EndOfOperationCallback: + ARM GAS /tmp/ccsIWRCI.s page 34 + + + 189 .LVL8: + 190 .LFB332: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ + 191 .loc 1 442 1 is_stmt 1 view -0 + 192 .cfi_startproc + 193 @ args = 0, pretend = 0, frame = 0 + 194 @ frame_needed = 0, uses_anonymous_args = 0 + 195 @ link register save eliminated. + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 196 .loc 1 444 3 view .LVU44 + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 197 .loc 1 449 1 is_stmt 0 view .LVU45 + 198 0000 7047 bx lr + 199 .cfi_endproc + 200 .LFE332: + 202 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits + 203 .align 1 + 204 .weak HAL_FLASH_OperationErrorCallback + 205 .syntax unified + 206 .thumb + 207 .thumb_func + 209 HAL_FLASH_OperationErrorCallback: + 210 .LVL9: + 211 .LFB333: + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ + 212 .loc 1 460 1 is_stmt 1 view -0 + 213 .cfi_startproc + 214 @ args = 0, pretend = 0, frame = 0 + 215 @ frame_needed = 0, uses_anonymous_args = 0 + 216 @ link register save eliminated. + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 217 .loc 1 462 3 view .LVU47 + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 218 .loc 1 467 1 is_stmt 0 view .LVU48 + 219 0000 7047 bx lr + 220 .cfi_endproc + 221 .LFE333: + 223 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits + 224 .align 1 + 225 .global HAL_FLASH_IRQHandler + 226 .syntax unified + 227 .thumb + 228 .thumb_func + 230 HAL_FLASH_IRQHandler: + 231 .LFB331: + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t tmp_page; + 232 .loc 1 302 1 is_stmt 1 view -0 + 233 .cfi_startproc + 234 @ args = 0, pretend = 0, frame = 0 + 235 @ frame_needed = 0, uses_anonymous_args = 0 + 236 0000 10B5 push {r4, lr} + 237 .LCFI2: + 238 .cfi_def_cfa_offset 8 + 239 .cfi_offset 4, -8 + 240 .cfi_offset 14, -4 + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t error; + 241 .loc 1 303 3 view .LVU50 + ARM GAS /tmp/ccsIWRCI.s page 35 + + + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_ProcedureTypeDef procedure; + 242 .loc 1 304 3 view .LVU51 + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 243 .loc 1 305 3 view .LVU52 + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK) + 244 .loc 1 308 3 view .LVU53 + 245 0002 454A ldr r2, .L31 + 246 0004 5369 ldr r3, [r2, #20] + 247 0006 23F4FF73 bic r3, r3, #510 + 248 000a 23F00103 bic r3, r3, #1 + 249 000e 5361 str r3, [r2, #20] + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 250 .loc 1 314 3 view .LVU54 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 251 .loc 1 314 13 is_stmt 0 view .LVU55 + 252 0010 424B ldr r3, .L31+4 + 253 0012 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 + 254 0014 DBB2 uxtb r3, r3 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 255 .loc 1 314 6 view .LVU56 + 256 0016 042B cmp r3, #4 + 257 0018 3AD0 beq .L25 + 258 .L12: + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 259 .loc 1 320 3 is_stmt 1 view .LVU57 + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 260 .loc 1 320 17 is_stmt 0 view .LVU58 + 261 001a 3F4B ldr r3, .L31 + 262 001c 1B69 ldr r3, [r3, #16] + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 263 .loc 1 320 9 view .LVU59 + 264 001e 4CF2FA32 movw r2, #50170 + 265 .LVL10: + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 266 .loc 1 322 3 is_stmt 1 view .LVU60 + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 267 .loc 1 322 6 is_stmt 0 view .LVU61 + 268 0022 1340 ands r3, r3, r2 + 269 .LVL11: + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 270 .loc 1 322 6 view .LVU62 + 271 0024 15D0 beq .L13 + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 272 .loc 1 325 5 is_stmt 1 view .LVU63 + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 273 .loc 1 325 11 is_stmt 0 view .LVU64 + 274 0026 3D49 ldr r1, .L31+4 + 275 0028 4A68 ldr r2, [r1, #4] + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 276 .loc 1 325 22 view .LVU65 + 277 002a 1A43 orrs r2, r2, r3 + 278 002c 4A60 str r2, [r1, #4] + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 279 .loc 1 328 5 is_stmt 1 view .LVU66 + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 280 .loc 1 328 5 view .LVU67 + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + ARM GAS /tmp/ccsIWRCI.s page 36 + + + 281 .loc 1 328 5 view .LVU68 + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 282 .loc 1 328 5 view .LVU69 + 283 002e 3A4A ldr r2, .L31 + 284 0030 1361 str r3, [r2, #16] + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 285 .loc 1 328 5 view .LVU70 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 286 .loc 1 331 5 view .LVU71 + 287 0032 FFF7FEFF bl FLASH_FlushCaches + 288 .LVL12: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (procedure == FLASH_PROC_PAGE_ERASE) + 289 .loc 1 334 5 view .LVU72 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (procedure == FLASH_PROC_PAGE_ERASE) + 290 .loc 1 334 15 is_stmt 0 view .LVU73 + 291 0036 394B ldr r3, .L31+4 + 292 0038 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 + 293 003a DBB2 uxtb r3, r3 + 294 .LVL13: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 295 .loc 1 335 5 is_stmt 1 view .LVU74 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 296 .loc 1 335 8 is_stmt 0 view .LVU75 + 297 003c 012B cmp r3, #1 + 298 003e 2CD0 beq .L26 + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 299 .loc 1 339 10 is_stmt 1 view .LVU76 + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 300 .loc 1 339 13 is_stmt 0 view .LVU77 + 301 0040 022B cmp r3, #2 + 302 0042 2FD0 beq .L27 + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 303 .loc 1 343 10 is_stmt 1 view .LVU78 + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 304 .loc 1 343 48 is_stmt 0 view .LVU79 + 305 0044 033B subs r3, r3, #3 + 306 .LVL14: + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 307 .loc 1 343 48 view .LVU80 + 308 0046 DBB2 uxtb r3, r3 + 309 .LVL15: + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 310 .loc 1 343 13 view .LVU81 + 311 0048 012B cmp r3, #1 + 312 004a 30D9 bls .L28 + 313 .LVL16: + 314 .L16: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 315 .loc 1 351 5 is_stmt 1 view .LVU82 + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 316 .loc 1 354 5 view .LVU83 + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 317 .loc 1 354 29 is_stmt 0 view .LVU84 + 318 004c 334B ldr r3, .L31+4 + 319 004e 0022 movs r2, #0 + 320 0050 1A72 strb r2, [r3, #8] + 321 .LVL17: + ARM GAS /tmp/ccsIWRCI.s page 37 + + + 322 .L13: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 323 .loc 1 358 3 is_stmt 1 view .LVU85 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 324 .loc 1 358 7 is_stmt 0 view .LVU86 + 325 0052 314B ldr r3, .L31 + 326 0054 1B69 ldr r3, [r3, #16] + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 327 .loc 1 358 6 view .LVU87 + 328 0056 13F0010F tst r3, #1 + 329 005a 47D0 beq .L18 + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 330 .loc 1 361 5 is_stmt 1 discriminator 4 view .LVU88 + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 331 .loc 1 361 5 discriminator 4 view .LVU89 + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 332 .loc 1 361 5 discriminator 4 view .LVU90 + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 333 .loc 1 361 5 discriminator 4 view .LVU91 + 334 005c 2E4B ldr r3, .L31 + 335 005e 0122 movs r2, #1 + 336 0060 1A61 str r2, [r3, #16] + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 337 .loc 1 361 5 discriminator 4 view .LVU92 + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 338 .loc 1 363 5 discriminator 4 view .LVU93 + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 339 .loc 1 363 15 is_stmt 0 discriminator 4 view .LVU94 + 340 0062 2E4B ldr r3, .L31+4 + 341 0064 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 + 342 0066 DBB2 uxtb r3, r3 + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 343 .loc 1 363 8 discriminator 4 view .LVU95 + 344 0068 9342 cmp r3, r2 + 345 006a 31D1 bne .L19 + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 346 .loc 1 366 7 is_stmt 1 view .LVU96 + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 347 .loc 1 366 13 is_stmt 0 view .LVU97 + 348 006c 2B4B ldr r3, .L31+4 + 349 006e 9A69 ldr r2, [r3, #24] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 350 .loc 1 366 28 view .LVU98 + 351 0070 013A subs r2, r2, #1 + 352 0072 9A61 str r2, [r3, #24] + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 353 .loc 1 369 7 is_stmt 1 view .LVU99 + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 354 .loc 1 369 17 is_stmt 0 view .LVU100 + 355 0074 9B69 ldr r3, [r3, #24] + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 356 .loc 1 369 10 view .LVU101 + 357 0076 FBB1 cbz r3, .L20 + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 358 .loc 1 372 9 is_stmt 1 view .LVU102 + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 359 .loc 1 372 48 is_stmt 0 view .LVU103 + ARM GAS /tmp/ccsIWRCI.s page 38 + + + 360 0078 284C ldr r4, .L31+4 + 361 007a 6069 ldr r0, [r4, #20] + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 362 .loc 1 372 9 view .LVU104 + 363 007c FFF7FEFF bl HAL_FLASH_EndOfOperationCallback + 364 .LVL18: + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** tmp_page = pFlash.Page; + 365 .loc 1 375 9 is_stmt 1 view .LVU105 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** tmp_page = pFlash.Page; + 366 .loc 1 375 15 is_stmt 0 view .LVU106 + 367 0080 6369 ldr r3, [r4, #20] + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** tmp_page = pFlash.Page; + 368 .loc 1 375 20 view .LVU107 + 369 0082 0133 adds r3, r3, #1 + 370 0084 6361 str r3, [r4, #20] + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_PageErase(tmp_page, pFlash.Bank); + 371 .loc 1 376 9 is_stmt 1 view .LVU108 + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_PageErase(tmp_page, pFlash.Bank); + 372 .loc 1 376 18 is_stmt 0 view .LVU109 + 373 0086 6069 ldr r0, [r4, #20] + 374 .LVL19: + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 375 .loc 1 377 9 is_stmt 1 view .LVU110 + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 376 .loc 1 377 41 is_stmt 0 view .LVU111 + 377 0088 2169 ldr r1, [r4, #16] + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 378 .loc 1 377 9 view .LVU112 + 379 008a FFF7FEFF bl FLASH_PageErase + 380 .LVL20: + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 381 .loc 1 377 9 view .LVU113 + 382 008e 2DE0 b .L18 + 383 .LVL21: + 384 .L25: + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 385 .loc 1 316 5 is_stmt 1 view .LVU114 + 386 0090 5369 ldr r3, [r2, #20] + 387 0092 23F48023 bic r3, r3, #262144 + 388 0096 5361 str r3, [r2, #20] + 389 0098 BFE7 b .L12 + 390 .LVL22: + 391 .L26: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 392 .loc 1 337 7 view .LVU115 + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 393 .loc 1 337 46 is_stmt 0 view .LVU116 + 394 009a 204B ldr r3, .L31+4 + 395 .LVL23: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 396 .loc 1 337 46 view .LVU117 + 397 009c 5869 ldr r0, [r3, #20] + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 398 .loc 1 337 7 view .LVU118 + 399 009e FFF7FEFF bl HAL_FLASH_OperationErrorCallback + 400 .LVL24: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + ARM GAS /tmp/ccsIWRCI.s page 39 + + + 401 .loc 1 337 7 view .LVU119 + 402 00a2 D3E7 b .L16 + 403 .LVL25: + 404 .L27: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 405 .loc 1 341 7 is_stmt 1 view .LVU120 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 406 .loc 1 341 46 is_stmt 0 view .LVU121 + 407 00a4 1D4B ldr r3, .L31+4 + 408 .LVL26: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 409 .loc 1 341 46 view .LVU122 + 410 00a6 1869 ldr r0, [r3, #16] + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 411 .loc 1 341 7 view .LVU123 + 412 00a8 FFF7FEFF bl HAL_FLASH_OperationErrorCallback + 413 .LVL27: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 414 .loc 1 341 7 view .LVU124 + 415 00ac CEE7 b .L16 + 416 .LVL28: + 417 .L28: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 418 .loc 1 346 7 is_stmt 1 view .LVU125 + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 419 .loc 1 346 46 is_stmt 0 view .LVU126 + 420 00ae 1B4B ldr r3, .L31+4 + 421 00b0 D868 ldr r0, [r3, #12] + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 422 .loc 1 346 7 view .LVU127 + 423 00b2 FFF7FEFF bl HAL_FLASH_OperationErrorCallback + 424 .LVL29: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 425 .loc 1 346 7 view .LVU128 + 426 00b6 C9E7 b .L16 + 427 .LVL30: + 428 .L20: + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + 429 .loc 1 383 9 is_stmt 1 view .LVU129 + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + 430 .loc 1 383 21 is_stmt 0 view .LVU130 + 431 00b8 184C ldr r4, .L31+4 + 432 00ba 4FF0FF33 mov r3, #-1 + 433 00be 6361 str r3, [r4, #20] + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 434 .loc 1 384 9 is_stmt 1 view .LVU131 + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 435 .loc 1 384 33 is_stmt 0 view .LVU132 + 436 00c0 0023 movs r3, #0 + 437 00c2 2372 strb r3, [r4, #8] + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 438 .loc 1 387 9 is_stmt 1 view .LVU133 + 439 00c4 FFF7FEFF bl FLASH_FlushCaches + 440 .LVL31: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 441 .loc 1 390 9 view .LVU134 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + ARM GAS /tmp/ccsIWRCI.s page 40 + + + 442 .loc 1 390 48 is_stmt 0 view .LVU135 + 443 00c8 6069 ldr r0, [r4, #20] + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 444 .loc 1 390 9 view .LVU136 + 445 00ca FFF7FEFF bl HAL_FLASH_EndOfOperationCallback + 446 .LVL32: + 447 00ce 0DE0 b .L18 + 448 .L19: + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 449 .loc 1 396 7 is_stmt 1 view .LVU137 + 450 00d0 FFF7FEFF bl FLASH_FlushCaches + 451 .LVL33: + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (procedure == FLASH_PROC_MASS_ERASE) + 452 .loc 1 398 7 view .LVU138 + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (procedure == FLASH_PROC_MASS_ERASE) + 453 .loc 1 398 17 is_stmt 0 view .LVU139 + 454 00d4 114B ldr r3, .L31+4 + 455 00d6 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 + 456 00d8 DBB2 uxtb r3, r3 + 457 .LVL34: + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 458 .loc 1 399 7 is_stmt 1 view .LVU140 + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 459 .loc 1 399 10 is_stmt 0 view .LVU141 + 460 00da 022B cmp r3, #2 + 461 00dc 12D0 beq .L29 + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 462 .loc 1 405 12 is_stmt 1 view .LVU142 + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 463 .loc 1 405 50 is_stmt 0 view .LVU143 + 464 00de 033B subs r3, r3, #3 + 465 .LVL35: + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 466 .loc 1 405 50 view .LVU144 + 467 00e0 DBB2 uxtb r3, r3 + 468 .LVL36: + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** (procedure == FLASH_PROC_PROGRAM_LAST)) + 469 .loc 1 405 15 view .LVU145 + 470 00e2 012B cmp r3, #1 + 471 00e4 13D9 bls .L30 + 472 .LVL37: + 473 .L22: + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 474 .loc 1 415 7 is_stmt 1 view .LVU146 + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 475 .loc 1 418 7 view .LVU147 + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 476 .loc 1 418 31 is_stmt 0 view .LVU148 + 477 00e6 0D4B ldr r3, .L31+4 + 478 00e8 0022 movs r2, #0 + 479 00ea 1A72 strb r2, [r3, #8] + 480 .LVL38: + 481 .L18: + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 482 .loc 1 422 3 is_stmt 1 view .LVU149 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 483 .loc 1 422 13 is_stmt 0 view .LVU150 + ARM GAS /tmp/ccsIWRCI.s page 41 + + + 484 00ec 0B4B ldr r3, .L31+4 + 485 00ee 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 486 .loc 1 422 6 view .LVU151 + 487 00f0 3BB9 cbnz r3, .L11 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 488 .loc 1 425 5 is_stmt 1 discriminator 4 view .LVU152 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 489 .loc 1 425 5 discriminator 4 view .LVU153 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 490 .loc 1 425 5 discriminator 4 view .LVU154 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 491 .loc 1 425 5 discriminator 4 view .LVU155 + 492 00f2 094A ldr r2, .L31 + 493 00f4 5369 ldr r3, [r2, #20] + 494 00f6 23F04073 bic r3, r3, #50331648 + 495 00fa 5361 str r3, [r2, #20] + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 496 .loc 1 425 5 discriminator 4 view .LVU156 + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 497 .loc 1 428 5 discriminator 4 view .LVU157 + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 498 .loc 1 428 5 discriminator 4 view .LVU158 + 499 00fc 074B ldr r3, .L31+4 + 500 00fe 0022 movs r2, #0 + 501 0100 1A70 strb r2, [r3] + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 502 .loc 1 428 5 discriminator 4 view .LVU159 + 503 .L11: + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 504 .loc 1 430 1 is_stmt 0 view .LVU160 + 505 0102 10BD pop {r4, pc} + 506 .LVL39: + 507 .L29: + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 508 .loc 1 403 9 is_stmt 1 view .LVU161 + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 509 .loc 1 403 48 is_stmt 0 view .LVU162 + 510 0104 054B ldr r3, .L31+4 + 511 .LVL40: + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 512 .loc 1 403 48 view .LVU163 + 513 0106 1869 ldr r0, [r3, #16] + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 514 .loc 1 403 9 view .LVU164 + 515 0108 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback + 516 .LVL41: + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 517 .loc 1 403 9 view .LVU165 + 518 010c EBE7 b .L22 + 519 .LVL42: + 520 .L30: + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 521 .loc 1 410 9 is_stmt 1 view .LVU166 + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 522 .loc 1 410 48 is_stmt 0 view .LVU167 + 523 010e 034B ldr r3, .L31+4 + ARM GAS /tmp/ccsIWRCI.s page 42 + + + 524 0110 D868 ldr r0, [r3, #12] + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 525 .loc 1 410 9 view .LVU168 + 526 0112 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback + 527 .LVL43: + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 528 .loc 1 410 9 view .LVU169 + 529 0116 E6E7 b .L22 + 530 .L32: + 531 .align 2 + 532 .L31: + 533 0118 00200240 .word 1073881088 + 534 011c 00000000 .word pFlash + 535 .cfi_endproc + 536 .LFE331: + 538 .section .text.HAL_FLASH_Unlock,"ax",%progbits + 539 .align 1 + 540 .global HAL_FLASH_Unlock + 541 .syntax unified + 542 .thumb + 543 .thumb_func + 545 HAL_FLASH_Unlock: + 546 .LFB334: + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; + 547 .loc 1 493 1 is_stmt 1 view -0 + 548 .cfi_startproc + 549 @ args = 0, pretend = 0, frame = 0 + 550 @ frame_needed = 0, uses_anonymous_args = 0 + 551 @ link register save eliminated. + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 552 .loc 1 494 3 view .LVU171 + 553 .LVL44: + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 554 .loc 1 496 3 view .LVU172 + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 555 .loc 1 496 7 is_stmt 0 view .LVU173 + 556 0000 094B ldr r3, .L38 + 557 0002 5B69 ldr r3, [r3, #20] + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 558 .loc 1 496 6 view .LVU174 + 559 0004 002B cmp r3, #0 + 560 0006 01DB blt .L37 + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 561 .loc 1 494 21 view .LVU175 + 562 0008 0020 movs r0, #0 + 563 000a 7047 bx lr + 564 .L37: + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2); + 565 .loc 1 499 5 is_stmt 1 view .LVU176 + 566 000c 064B ldr r3, .L38 + 567 000e 074A ldr r2, .L38+4 + 568 0010 9A60 str r2, [r3, #8] + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 569 .loc 1 500 5 view .LVU177 + 570 0012 02F18832 add r2, r2, #-2004318072 + 571 0016 9A60 str r2, [r3, #8] + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + ARM GAS /tmp/ccsIWRCI.s page 43 + + + 572 .loc 1 503 5 view .LVU178 + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 573 .loc 1 503 9 is_stmt 0 view .LVU179 + 574 0018 5B69 ldr r3, [r3, #20] + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 575 .loc 1 503 8 view .LVU180 + 576 001a 002B cmp r3, #0 + 577 001c 01DB blt .L36 + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 578 .loc 1 494 21 view .LVU181 + 579 001e 0020 movs r0, #0 + 580 0020 7047 bx lr + 581 .L36: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 582 .loc 1 505 14 view .LVU182 + 583 0022 0120 movs r0, #1 + 584 .LVL45: + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 585 .loc 1 509 3 is_stmt 1 view .LVU183 + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 586 .loc 1 510 1 is_stmt 0 view .LVU184 + 587 0024 7047 bx lr + 588 .L39: + 589 0026 00BF .align 2 + 590 .L38: + 591 0028 00200240 .word 1073881088 + 592 002c 23016745 .word 1164378403 + 593 .cfi_endproc + 594 .LFE334: + 596 .section .text.HAL_FLASH_Lock,"ax",%progbits + 597 .align 1 + 598 .global HAL_FLASH_Lock + 599 .syntax unified + 600 .thumb + 601 .thumb_func + 603 HAL_FLASH_Lock: + 604 .LFB335: + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; + 605 .loc 1 517 1 is_stmt 1 view -0 + 606 .cfi_startproc + 607 @ args = 0, pretend = 0, frame = 0 + 608 @ frame_needed = 0, uses_anonymous_args = 0 + 609 @ link register save eliminated. + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 610 .loc 1 518 3 view .LVU186 + 611 .LVL46: + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 612 .loc 1 521 3 view .LVU187 + 613 0000 054B ldr r3, .L43 + 614 0002 5A69 ldr r2, [r3, #20] + 615 0004 42F00042 orr r2, r2, #-2147483648 + 616 0008 5A61 str r2, [r3, #20] + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 617 .loc 1 524 3 view .LVU188 + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 618 .loc 1 524 7 is_stmt 0 view .LVU189 + 619 000a 5B69 ldr r3, [r3, #20] + ARM GAS /tmp/ccsIWRCI.s page 44 + + + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 620 .loc 1 524 6 view .LVU190 + 621 000c 002B cmp r3, #0 + 622 000e 01DB blt .L42 + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 623 .loc 1 518 21 view .LVU191 + 624 0010 0120 movs r0, #1 + 625 0012 7047 bx lr + 626 .L42: + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 627 .loc 1 526 12 view .LVU192 + 628 0014 0020 movs r0, #0 + 629 .LVL47: + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 630 .loc 1 529 3 is_stmt 1 view .LVU193 + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 631 .loc 1 530 1 is_stmt 0 view .LVU194 + 632 0016 7047 bx lr + 633 .L44: + 634 .align 2 + 635 .L43: + 636 0018 00200240 .word 1073881088 + 637 .cfi_endproc + 638 .LFE335: + 640 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits + 641 .align 1 + 642 .global HAL_FLASH_OB_Unlock + 643 .syntax unified + 644 .thumb + 645 .thumb_func + 647 HAL_FLASH_OB_Unlock: + 648 .LFB336: + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; + 649 .loc 1 537 1 is_stmt 1 view -0 + 650 .cfi_startproc + 651 @ args = 0, pretend = 0, frame = 0 + 652 @ frame_needed = 0, uses_anonymous_args = 0 + 653 @ link register save eliminated. + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 654 .loc 1 538 3 view .LVU196 + 655 .LVL48: + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 656 .loc 1 540 3 view .LVU197 + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 657 .loc 1 540 7 is_stmt 0 view .LVU198 + 658 0000 0A4B ldr r3, .L49 + 659 0002 5B69 ldr r3, [r3, #20] + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 660 .loc 1 540 6 view .LVU199 + 661 0004 13F0804F tst r3, #1073741824 + 662 0008 0BD0 beq .L47 + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); + 663 .loc 1 543 5 is_stmt 1 view .LVU200 + 664 000a 084B ldr r3, .L49 + 665 000c 084A ldr r2, .L49+4 + 666 000e DA60 str r2, [r3, #12] + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + ARM GAS /tmp/ccsIWRCI.s page 45 + + + 667 .loc 1 544 5 view .LVU201 + 668 0010 02F14432 add r2, r2, #1145324612 + 669 0014 DA60 str r2, [r3, #12] + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 670 .loc 1 547 5 view .LVU202 + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 671 .loc 1 547 9 is_stmt 0 view .LVU203 + 672 0016 5B69 ldr r3, [r3, #20] + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 673 .loc 1 547 8 view .LVU204 + 674 0018 13F0804F tst r3, #1073741824 + 675 001c 03D1 bne .L48 + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 676 .loc 1 538 21 view .LVU205 + 677 001e 0020 movs r0, #0 + 678 0020 7047 bx lr + 679 .L47: + 680 0022 0020 movs r0, #0 + 681 0024 7047 bx lr + 682 .L48: + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 683 .loc 1 549 14 view .LVU206 + 684 0026 0120 movs r0, #1 + 685 .LVL49: + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 686 .loc 1 553 3 is_stmt 1 view .LVU207 + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 687 .loc 1 554 1 is_stmt 0 view .LVU208 + 688 0028 7047 bx lr + 689 .L50: + 690 002a 00BF .align 2 + 691 .L49: + 692 002c 00200240 .word 1073881088 + 693 0030 3B2A1908 .word 135866939 + 694 .cfi_endproc + 695 .LFE336: + 697 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits + 698 .align 1 + 699 .global HAL_FLASH_OB_Lock + 700 .syntax unified + 701 .thumb + 702 .thumb_func + 704 HAL_FLASH_OB_Lock: + 705 .LFB337: + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; + 706 .loc 1 561 1 is_stmt 1 view -0 + 707 .cfi_startproc + 708 @ args = 0, pretend = 0, frame = 0 + 709 @ frame_needed = 0, uses_anonymous_args = 0 + 710 @ link register save eliminated. + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 711 .loc 1 562 3 view .LVU210 + 712 .LVL50: + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 713 .loc 1 565 3 view .LVU211 + 714 0000 064B ldr r3, .L54 + 715 0002 5A69 ldr r2, [r3, #20] + ARM GAS /tmp/ccsIWRCI.s page 46 + + + 716 0004 42F08042 orr r2, r2, #1073741824 + 717 0008 5A61 str r2, [r3, #20] + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 718 .loc 1 568 3 view .LVU212 + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 719 .loc 1 568 7 is_stmt 0 view .LVU213 + 720 000a 5B69 ldr r3, [r3, #20] + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 721 .loc 1 568 6 view .LVU214 + 722 000c 13F0804F tst r3, #1073741824 + 723 0010 01D1 bne .L53 + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 724 .loc 1 562 21 view .LVU215 + 725 0012 0120 movs r0, #1 + 726 0014 7047 bx lr + 727 .L53: + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 728 .loc 1 570 12 view .LVU216 + 729 0016 0020 movs r0, #0 + 730 .LVL51: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 731 .loc 1 573 3 is_stmt 1 view .LVU217 + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 732 .loc 1 574 1 is_stmt 0 view .LVU218 + 733 0018 7047 bx lr + 734 .L55: + 735 001a 00BF .align 2 + 736 .L54: + 737 001c 00200240 .word 1073881088 + 738 .cfi_endproc + 739 .LFE337: + 741 .section .text.HAL_FLASH_GetError,"ax",%progbits + 742 .align 1 + 743 .global HAL_FLASH_GetError + 744 .syntax unified + 745 .thumb + 746 .thumb_func + 748 HAL_FLASH_GetError: + 749 .LFB339: + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** return pFlash.ErrorCode; + 750 .loc 1 629 1 is_stmt 1 view -0 + 751 .cfi_startproc + 752 @ args = 0, pretend = 0, frame = 0 + 753 @ frame_needed = 0, uses_anonymous_args = 0 + 754 @ link register save eliminated. + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 755 .loc 1 630 3 view .LVU220 + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 756 .loc 1 630 16 is_stmt 0 view .LVU221 + 757 0000 014B ldr r3, .L57 + 758 0002 5868 ldr r0, [r3, #4] + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 759 .loc 1 631 1 view .LVU222 + 760 0004 7047 bx lr + 761 .L58: + 762 0006 00BF .align 2 + 763 .L57: + ARM GAS /tmp/ccsIWRCI.s page 47 + + + 764 0008 00000000 .word pFlash + 765 .cfi_endproc + 766 .LFE339: + 768 .section .text.FLASH_WaitForLastOperation,"ax",%progbits + 769 .align 1 + 770 .global FLASH_WaitForLastOperation + 771 .syntax unified + 772 .thumb + 773 .thumb_func + 775 FLASH_WaitForLastOperation: + 776 .LVL52: + 777 .LFB340: + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. + 778 .loc 1 653 1 is_stmt 1 view -0 + 779 .cfi_startproc + 780 @ args = 0, pretend = 0, frame = 0 + 781 @ frame_needed = 0, uses_anonymous_args = 0 + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. + 782 .loc 1 653 1 is_stmt 0 view .LVU224 + 783 0000 38B5 push {r3, r4, r5, lr} + 784 .LCFI3: + 785 .cfi_def_cfa_offset 16 + 786 .cfi_offset 3, -16 + 787 .cfi_offset 4, -12 + 788 .cfi_offset 5, -8 + 789 .cfi_offset 14, -4 + 790 0002 0546 mov r5, r0 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t error; + 791 .loc 1 658 3 is_stmt 1 view .LVU225 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t error; + 792 .loc 1 658 24 is_stmt 0 view .LVU226 + 793 0004 FFF7FEFF bl HAL_GetTick + 794 .LVL53: + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t error; + 795 .loc 1 658 24 view .LVU227 + 796 0008 0446 mov r4, r0 + 797 .LVL54: + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 798 .loc 1 659 3 is_stmt 1 view .LVU228 + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 799 .loc 1 661 3 view .LVU229 + 800 .L60: + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 801 .loc 1 661 10 view .LVU230 + 802 000a 134B ldr r3, .L70 + 803 000c 1B69 ldr r3, [r3, #16] + 804 000e 13F4803F tst r3, #65536 + 805 0012 06D0 beq .L68 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 806 .loc 1 663 5 view .LVU231 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 807 .loc 1 663 10 is_stmt 0 view .LVU232 + 808 0014 FFF7FEFF bl HAL_GetTick + 809 .LVL55: + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 810 .loc 1 663 24 view .LVU233 + 811 0018 001B subs r0, r0, r4 + ARM GAS /tmp/ccsIWRCI.s page 48 + + + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 812 .loc 1 663 8 view .LVU234 + 813 001a A842 cmp r0, r5 + 814 001c F5D9 bls .L60 + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 815 .loc 1 665 14 view .LVU235 + 816 001e 0320 movs r0, #3 + 817 .L61: + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 818 .loc 1 691 1 view .LVU236 + 819 0020 38BD pop {r3, r4, r5, pc} + 820 .LVL56: + 821 .L68: + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (error != 0u) + 822 .loc 1 670 3 is_stmt 1 view .LVU237 + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (error != 0u) + 823 .loc 1 670 17 is_stmt 0 view .LVU238 + 824 0022 0D4B ldr r3, .L70 + 825 0024 1B69 ldr r3, [r3, #16] + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** if (error != 0u) + 826 .loc 1 670 9 view .LVU239 + 827 0026 4CF2FA32 movw r2, #50170 + 828 .LVL57: + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 829 .loc 1 671 3 is_stmt 1 view .LVU240 + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 830 .loc 1 671 6 is_stmt 0 view .LVU241 + 831 002a 1340 ands r3, r3, r2 + 832 .LVL58: + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 833 .loc 1 671 6 view .LVU242 + 834 002c 09D1 bne .L69 + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 835 .loc 1 683 3 is_stmt 1 view .LVU243 + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 836 .loc 1 683 7 is_stmt 0 view .LVU244 + 837 002e 0A4B ldr r3, .L70 + 838 .LVL59: + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 839 .loc 1 683 7 view .LVU245 + 840 0030 1B69 ldr r3, [r3, #16] + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 841 .loc 1 683 6 view .LVU246 + 842 0032 13F0010F tst r3, #1 + 843 0036 0CD0 beq .L66 + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 844 .loc 1 686 5 is_stmt 1 discriminator 4 view .LVU247 + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 845 .loc 1 686 5 discriminator 4 view .LVU248 + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 846 .loc 1 686 5 discriminator 4 view .LVU249 + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 847 .loc 1 686 5 discriminator 4 view .LVU250 + 848 0038 074B ldr r3, .L70 + 849 003a 0122 movs r2, #1 + 850 003c 1A61 str r2, [r3, #16] + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + ARM GAS /tmp/ccsIWRCI.s page 49 + + + 851 .loc 1 690 10 is_stmt 0 discriminator 4 view .LVU251 + 852 003e 0020 movs r0, #0 + 853 0040 EEE7 b .L61 + 854 .LVL60: + 855 .L69: + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 856 .loc 1 674 5 is_stmt 1 view .LVU252 + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 857 .loc 1 674 11 is_stmt 0 view .LVU253 + 858 0042 0649 ldr r1, .L70+4 + 859 0044 4A68 ldr r2, [r1, #4] + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 860 .loc 1 674 22 view .LVU254 + 861 0046 1A43 orrs r2, r2, r3 + 862 0048 4A60 str r2, [r1, #4] + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 863 .loc 1 677 5 is_stmt 1 view .LVU255 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 864 .loc 1 677 5 view .LVU256 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 865 .loc 1 677 5 view .LVU257 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 866 .loc 1 677 5 view .LVU258 + 867 004a 034A ldr r2, .L70 + 868 004c 1361 str r3, [r2, #16] + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 869 .loc 1 677 5 view .LVU259 + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 870 .loc 1 679 5 view .LVU260 + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 871 .loc 1 679 12 is_stmt 0 view .LVU261 + 872 004e 0120 movs r0, #1 + 873 0050 E6E7 b .L61 + 874 .LVL61: + 875 .L66: + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 876 .loc 1 690 10 view .LVU262 + 877 0052 0020 movs r0, #0 + 878 0054 E4E7 b .L61 + 879 .L71: + 880 0056 00BF .align 2 + 881 .L70: + 882 0058 00200240 .word 1073881088 + 883 005c 00000000 .word pFlash + 884 .cfi_endproc + 885 .LFE340: + 887 .section .text.HAL_FLASH_Program,"ax",%progbits + 888 .align 1 + 889 .global HAL_FLASH_Program + 890 .syntax unified + 891 .thumb + 892 .thumb_func + 894 HAL_FLASH_Program: + 895 .LVL62: + 896 .LFB329: + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status; + 897 .loc 1 174 1 is_stmt 1 view -0 + ARM GAS /tmp/ccsIWRCI.s page 50 + + + 898 .cfi_startproc + 899 @ args = 0, pretend = 0, frame = 0 + 900 @ frame_needed = 0, uses_anonymous_args = 0 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status; + 901 .loc 1 174 1 is_stmt 0 view .LVU264 + 902 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 903 .LCFI4: + 904 .cfi_def_cfa_offset 24 + 905 .cfi_offset 3, -24 + 906 .cfi_offset 4, -20 + 907 .cfi_offset 5, -16 + 908 .cfi_offset 6, -12 + 909 .cfi_offset 7, -8 + 910 .cfi_offset 14, -4 + 911 0002 1646 mov r6, r2 + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t prog_bit = 0; + 912 .loc 1 175 3 is_stmt 1 view .LVU265 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 913 .loc 1 176 3 view .LVU266 + 914 .LVL63: + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 915 .loc 1 179 3 view .LVU267 + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 916 .loc 1 182 3 view .LVU268 + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 917 .loc 1 182 3 view .LVU269 + 918 0004 1B4A ldr r2, .L83 + 919 .LVL64: + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 920 .loc 1 182 3 is_stmt 0 view .LVU270 + 921 0006 1278 ldrb r2, [r2] @ zero_extendqisi2 + 922 0008 012A cmp r2, #1 + 923 000a 31D0 beq .L77 + 924 000c 0446 mov r4, r0 + 925 000e 0D46 mov r5, r1 + 926 0010 1F46 mov r7, r3 + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 927 .loc 1 182 3 is_stmt 1 discriminator 2 view .LVU271 + 928 0012 184B ldr r3, .L83 + 929 0014 0122 movs r2, #1 + 930 0016 1A70 strb r2, [r3] + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 931 .loc 1 182 3 discriminator 2 view .LVU272 + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 932 .loc 1 185 3 discriminator 2 view .LVU273 + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 933 .loc 1 185 12 is_stmt 0 discriminator 2 view .LVU274 + 934 0018 4FF47A70 mov r0, #1000 + 935 .LVL65: + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 936 .loc 1 185 12 discriminator 2 view .LVU275 + 937 001c FFF7FEFF bl FLASH_WaitForLastOperation + 938 .LVL66: + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 939 .loc 1 187 3 is_stmt 1 discriminator 2 view .LVU276 + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 940 .loc 1 187 6 is_stmt 0 discriminator 2 view .LVU277 + ARM GAS /tmp/ccsIWRCI.s page 51 + + + 941 0020 80B9 cbnz r0, .L74 + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 942 .loc 1 189 5 is_stmt 1 view .LVU278 + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 943 .loc 1 189 22 is_stmt 0 view .LVU279 + 944 0022 144B ldr r3, .L83 + 945 0024 5860 str r0, [r3, #4] + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 946 .loc 1 191 5 is_stmt 1 view .LVU280 + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 947 .loc 1 191 8 is_stmt 0 view .LVU281 + 948 0026 8CB1 cbz r4, .L81 + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 949 .loc 1 197 10 is_stmt 1 view .LVU282 + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 950 .loc 1 197 54 is_stmt 0 view .LVU283 + 951 0028 631E subs r3, r4, #1 + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 952 .loc 1 197 13 view .LVU284 + 953 002a 012B cmp r3, #1 + 954 002c 15D9 bls .L82 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 955 .loc 1 176 12 view .LVU285 + 956 002e 0024 movs r4, #0 + 957 .LVL67: + 958 .L76: + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 959 .loc 1 211 5 is_stmt 1 view .LVU286 + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 960 .loc 1 214 5 view .LVU287 + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 961 .loc 1 214 14 is_stmt 0 view .LVU288 + 962 0030 4FF47A70 mov r0, #1000 + 963 0034 FFF7FEFF bl FLASH_WaitForLastOperation + 964 .LVL68: + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 965 .loc 1 217 5 is_stmt 1 view .LVU289 + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 966 .loc 1 217 8 is_stmt 0 view .LVU290 + 967 0038 24B1 cbz r4, .L74 + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 968 .loc 1 219 7 is_stmt 1 view .LVU291 + 969 003a 0F4A ldr r2, .L83+4 + 970 003c 5369 ldr r3, [r2, #20] + 971 003e 23EA0403 bic r3, r3, r4 + 972 0042 5361 str r3, [r2, #20] + 973 .LVL69: + 974 .L74: + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 975 .loc 1 224 3 view .LVU292 + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 976 .loc 1 224 3 view .LVU293 + 977 0044 0B4B ldr r3, .L83 + 978 0046 0022 movs r2, #0 + 979 0048 1A70 strb r2, [r3] + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 980 .loc 1 224 3 view .LVU294 + ARM GAS /tmp/ccsIWRCI.s page 52 + + + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 981 .loc 1 227 3 view .LVU295 + 982 .LVL70: + 983 .L73: + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 984 .loc 1 228 1 is_stmt 0 view .LVU296 + 985 004a F8BD pop {r3, r4, r5, r6, r7, pc} + 986 .LVL71: + 987 .L81: + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** prog_bit = FLASH_CR_PG; + 988 .loc 1 194 7 is_stmt 1 view .LVU297 + 989 004c 3246 mov r2, r6 + 990 004e 3B46 mov r3, r7 + 991 0050 2846 mov r0, r5 + 992 .LVL72: + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** prog_bit = FLASH_CR_PG; + 993 .loc 1 194 7 is_stmt 0 view .LVU298 + 994 0052 FFF7FEFF bl FLASH_Program_DoubleWord + 995 .LVL73: + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 996 .loc 1 195 7 is_stmt 1 view .LVU299 + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 997 .loc 1 195 16 is_stmt 0 view .LVU300 + 998 0056 0124 movs r4, #1 + 999 .LVL74: + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1000 .loc 1 195 16 view .LVU301 + 1001 0058 EAE7 b .L76 + 1002 .LVL75: + 1003 .L82: + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1004 .loc 1 200 7 is_stmt 1 view .LVU302 + 1005 005a 3146 mov r1, r6 + 1006 005c 2846 mov r0, r5 + 1007 .LVL76: + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1008 .loc 1 200 7 is_stmt 0 view .LVU303 + 1009 005e FFF7FEFF bl FLASH_Program_Fast + 1010 .LVL77: + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1011 .loc 1 203 7 is_stmt 1 view .LVU304 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1012 .loc 1 203 10 is_stmt 0 view .LVU305 + 1013 0062 022C cmp r4, #2 + 1014 0064 01D0 beq .L79 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1015 .loc 1 176 12 view .LVU306 + 1016 0066 0024 movs r4, #0 + 1017 .LVL78: + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1018 .loc 1 176 12 view .LVU307 + 1019 0068 E2E7 b .L76 + 1020 .LVL79: + 1021 .L79: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1022 .loc 1 205 18 view .LVU308 + 1023 006a 4FF48024 mov r4, #262144 + ARM GAS /tmp/ccsIWRCI.s page 53 + + + 1024 .LVL80: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1025 .loc 1 205 18 view .LVU309 + 1026 006e DFE7 b .L76 + 1027 .LVL81: + 1028 .L77: + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1029 .loc 1 182 3 view .LVU310 + 1030 0070 0220 movs r0, #2 + 1031 .LVL82: + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1032 .loc 1 182 3 view .LVU311 + 1033 0072 EAE7 b .L73 + 1034 .L84: + 1035 .align 2 + 1036 .L83: + 1037 0074 00000000 .word pFlash + 1038 0078 00200240 .word 1073881088 + 1039 .cfi_endproc + 1040 .LFE329: + 1042 .section .text.HAL_FLASH_Program_IT,"ax",%progbits + 1043 .align 1 + 1044 .global HAL_FLASH_Program_IT + 1045 .syntax unified + 1046 .thumb + 1047 .thumb_func + 1049 HAL_FLASH_Program_IT: + 1050 .LVL83: + 1051 .LFB330: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status; + 1052 .loc 1 242 1 is_stmt 1 view -0 + 1053 .cfi_startproc + 1054 @ args = 0, pretend = 0, frame = 0 + 1055 @ frame_needed = 0, uses_anonymous_args = 0 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef status; + 1056 .loc 1 242 1 is_stmt 0 view .LVU313 + 1057 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 1058 .LCFI5: + 1059 .cfi_def_cfa_offset 24 + 1060 .cfi_offset 4, -24 + 1061 .cfi_offset 5, -20 + 1062 .cfi_offset 6, -16 + 1063 .cfi_offset 7, -12 + 1064 .cfi_offset 8, -8 + 1065 .cfi_offset 14, -4 + 1066 0004 1646 mov r6, r2 + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1067 .loc 1 243 3 is_stmt 1 view .LVU314 + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1068 .loc 1 246 3 view .LVU315 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1069 .loc 1 249 3 view .LVU316 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1070 .loc 1 249 3 view .LVU317 + 1071 0006 1D4A ldr r2, .L95 + 1072 .LVL84: + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + ARM GAS /tmp/ccsIWRCI.s page 54 + + + 1073 .loc 1 249 3 is_stmt 0 view .LVU318 + 1074 0008 1278 ldrb r2, [r2] @ zero_extendqisi2 + 1075 000a 012A cmp r2, #1 + 1076 000c 32D0 beq .L91 + 1077 000e 0446 mov r4, r0 + 1078 0010 0D46 mov r5, r1 + 1079 0012 1F46 mov r7, r3 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1080 .loc 1 249 3 is_stmt 1 discriminator 2 view .LVU319 + 1081 0014 194A ldr r2, .L95 + 1082 0016 0123 movs r3, #1 + 1083 0018 1370 strb r3, [r2] + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1084 .loc 1 249 3 discriminator 2 view .LVU320 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1085 .loc 1 252 3 discriminator 2 view .LVU321 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1086 .loc 1 252 20 is_stmt 0 discriminator 2 view .LVU322 + 1087 001a 0023 movs r3, #0 + 1088 001c 5360 str r3, [r2, #4] + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1089 .loc 1 255 3 is_stmt 1 discriminator 2 view .LVU323 + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1090 .loc 1 255 12 is_stmt 0 discriminator 2 view .LVU324 + 1091 001e 4FF47A70 mov r0, #1000 + 1092 .LVL85: + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1093 .loc 1 255 12 discriminator 2 view .LVU325 + 1094 0022 FFF7FEFF bl FLASH_WaitForLastOperation + 1095 .LVL86: + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1096 .loc 1 257 3 is_stmt 1 discriminator 2 view .LVU326 + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1097 .loc 1 257 6 is_stmt 0 discriminator 2 view .LVU327 + 1098 0026 8046 mov r8, r0 + 1099 0028 28B1 cbz r0, .L87 + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1100 .loc 1 260 5 is_stmt 1 view .LVU328 + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1101 .loc 1 260 5 view .LVU329 + 1102 002a 144B ldr r3, .L95 + 1103 002c 0022 movs r2, #0 + 1104 002e 1A70 strb r2, [r3] + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1105 .loc 1 260 5 view .LVU330 + 1106 .LVL87: + 1107 .L86: + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1108 .loc 1 295 1 is_stmt 0 view .LVU331 + 1109 0030 4046 mov r0, r8 + 1110 0032 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1111 .LVL88: + 1112 .L87: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1113 .loc 1 265 5 is_stmt 1 view .LVU332 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1114 .loc 1 265 8 is_stmt 0 view .LVU333 + ARM GAS /tmp/ccsIWRCI.s page 55 + + + 1115 0036 022C cmp r4, #2 + 1116 0038 12D0 beq .L93 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1117 .loc 1 271 7 is_stmt 1 view .LVU334 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1118 .loc 1 271 31 is_stmt 0 view .LVU335 + 1119 003a 104B ldr r3, .L95 + 1120 003c 0322 movs r2, #3 + 1121 003e 1A72 strb r2, [r3, #8] + 1122 .L89: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1123 .loc 1 273 5 is_stmt 1 view .LVU336 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1124 .loc 1 273 20 is_stmt 0 view .LVU337 + 1125 0040 0E4B ldr r3, .L95 + 1126 0042 DD60 str r5, [r3, #12] + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1127 .loc 1 276 5 is_stmt 1 view .LVU338 + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1128 .loc 1 276 5 view .LVU339 + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1129 .loc 1 276 5 view .LVU340 + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1130 .loc 1 276 5 view .LVU341 + 1131 0044 0E4A ldr r2, .L95+4 + 1132 0046 5369 ldr r3, [r2, #20] + 1133 0048 43F04073 orr r3, r3, #50331648 + 1134 004c 5361 str r3, [r2, #20] + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1135 .loc 1 276 5 view .LVU342 + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1136 .loc 1 278 5 view .LVU343 + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1137 .loc 1 278 8 is_stmt 0 view .LVU344 + 1138 004e 5CB1 cbz r4, .L94 + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1139 .loc 1 283 10 is_stmt 1 view .LVU345 + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1140 .loc 1 283 54 is_stmt 0 view .LVU346 + 1141 0050 013C subs r4, r4, #1 + 1142 .LVL89: + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** { + 1143 .loc 1 283 13 view .LVU347 + 1144 0052 012C cmp r4, #1 + 1145 0054 ECD8 bhi .L86 + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1146 .loc 1 286 7 is_stmt 1 view .LVU348 + 1147 0056 3146 mov r1, r6 + 1148 0058 2846 mov r0, r5 + 1149 .LVL90: + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1150 .loc 1 286 7 is_stmt 0 view .LVU349 + 1151 005a FFF7FEFF bl FLASH_Program_Fast + 1152 .LVL91: + 1153 005e E7E7 b .L86 + 1154 .LVL92: + 1155 .L93: + ARM GAS /tmp/ccsIWRCI.s page 56 + + + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1156 .loc 1 267 7 is_stmt 1 view .LVU350 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1157 .loc 1 267 31 is_stmt 0 view .LVU351 + 1158 0060 064B ldr r3, .L95 + 1159 0062 0422 movs r2, #4 + 1160 0064 1A72 strb r2, [r3, #8] + 1161 0066 EBE7 b .L89 + 1162 .L94: + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1163 .loc 1 281 7 is_stmt 1 view .LVU352 + 1164 0068 3246 mov r2, r6 + 1165 006a 3B46 mov r3, r7 + 1166 006c 2846 mov r0, r5 + 1167 .LVL93: + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1168 .loc 1 281 7 is_stmt 0 view .LVU353 + 1169 006e FFF7FEFF bl FLASH_Program_DoubleWord + 1170 .LVL94: + 1171 0072 DDE7 b .L86 + 1172 .LVL95: + 1173 .L91: + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1174 .loc 1 249 3 view .LVU354 + 1175 0074 4FF00208 mov r8, #2 + 1176 0078 DAE7 b .L86 + 1177 .L96: + 1178 007a 00BF .align 2 + 1179 .L95: + 1180 007c 00000000 .word pFlash + 1181 0080 00200240 .word 1073881088 + 1182 .cfi_endproc + 1183 .LFE330: + 1185 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits + 1186 .align 1 + 1187 .global HAL_FLASH_OB_Launch + 1188 .syntax unified + 1189 .thumb + 1190 .thumb_func + 1192 HAL_FLASH_OB_Launch: + 1193 .LFB338: + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Set the bit to force the option byte reloading */ + 1194 .loc 1 581 1 is_stmt 1 view -0 + 1195 .cfi_startproc + 1196 @ args = 0, pretend = 0, frame = 0 + 1197 @ frame_needed = 0, uses_anonymous_args = 0 + 1198 0000 08B5 push {r3, lr} + 1199 .LCFI6: + 1200 .cfi_def_cfa_offset 8 + 1201 .cfi_offset 3, -8 + 1202 .cfi_offset 14, -4 + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1203 .loc 1 583 3 view .LVU356 + 1204 0002 054A ldr r2, .L99 + 1205 0004 5369 ldr r3, [r2, #20] + 1206 0006 43F00063 orr r3, r3, #134217728 + 1207 000a 5361 str r3, [r2, #20] + ARM GAS /tmp/ccsIWRCI.s page 57 + + + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1208 .loc 1 586 3 view .LVU357 + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** } + 1209 .loc 1 586 11 is_stmt 0 view .LVU358 + 1210 000c 4FF47A70 mov r0, #1000 + 1211 0010 FFF7FEFF bl FLASH_WaitForLastOperation + 1212 .LVL96: + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** + 1213 .loc 1 587 1 view .LVU359 + 1214 0014 08BD pop {r3, pc} + 1215 .L100: + 1216 0016 00BF .align 2 + 1217 .L99: + 1218 0018 00200240 .word 1073881088 + 1219 .cfi_endproc + 1220 .LFE338: + 1222 .global pFlash + 1223 .section .data.pFlash,"aw" + 1224 .align 2 + 1227 pFlash: + 1228 0000 00 .byte 0 + 1229 0001 000000 .space 3 + 1230 0004 00000000 .word 0 + 1231 0008 00 .byte 0 + 1232 0009 000000 .space 3 + 1233 000c 00000000 .word 0 + 1234 0010 01000000 .word 1 + 1235 0014 00000000 .word 0 + 1236 0018 00000000 .word 0 + 1237 001c 00 .byte 0 + 1238 001d 000000 .space 3 + 1239 .text + 1240 .Letext0: + 1241 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1242 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1243 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1244 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" + 1245 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + 1246 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h" + ARM GAS /tmp/ccsIWRCI.s page 58 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_flash.c + /tmp/ccsIWRCI.s:21 .text.FLASH_Program_DoubleWord:00000000 $t + /tmp/ccsIWRCI.s:26 .text.FLASH_Program_DoubleWord:00000000 FLASH_Program_DoubleWord + /tmp/ccsIWRCI.s:75 .text.FLASH_Program_DoubleWord:0000001c $d + /tmp/ccsIWRCI.s:80 .text.FLASH_Program_Fast:00000000 $t + /tmp/ccsIWRCI.s:85 .text.FLASH_Program_Fast:00000000 FLASH_Program_Fast + /tmp/ccsIWRCI.s:177 .text.FLASH_Program_Fast:00000028 $d + /tmp/ccsIWRCI.s:182 .text.HAL_FLASH_EndOfOperationCallback:00000000 $t + /tmp/ccsIWRCI.s:188 .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback + /tmp/ccsIWRCI.s:203 .text.HAL_FLASH_OperationErrorCallback:00000000 $t + /tmp/ccsIWRCI.s:209 .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback + /tmp/ccsIWRCI.s:224 .text.HAL_FLASH_IRQHandler:00000000 $t + /tmp/ccsIWRCI.s:230 .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler + /tmp/ccsIWRCI.s:533 .text.HAL_FLASH_IRQHandler:00000118 $d + /tmp/ccsIWRCI.s:1227 .data.pFlash:00000000 pFlash + /tmp/ccsIWRCI.s:539 .text.HAL_FLASH_Unlock:00000000 $t + /tmp/ccsIWRCI.s:545 .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock + /tmp/ccsIWRCI.s:591 .text.HAL_FLASH_Unlock:00000028 $d + /tmp/ccsIWRCI.s:597 .text.HAL_FLASH_Lock:00000000 $t + /tmp/ccsIWRCI.s:603 .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock + /tmp/ccsIWRCI.s:636 .text.HAL_FLASH_Lock:00000018 $d + /tmp/ccsIWRCI.s:641 .text.HAL_FLASH_OB_Unlock:00000000 $t + /tmp/ccsIWRCI.s:647 .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock + /tmp/ccsIWRCI.s:692 .text.HAL_FLASH_OB_Unlock:0000002c $d + /tmp/ccsIWRCI.s:698 .text.HAL_FLASH_OB_Lock:00000000 $t + /tmp/ccsIWRCI.s:704 .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock + /tmp/ccsIWRCI.s:737 .text.HAL_FLASH_OB_Lock:0000001c $d + /tmp/ccsIWRCI.s:742 .text.HAL_FLASH_GetError:00000000 $t + /tmp/ccsIWRCI.s:748 .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError + /tmp/ccsIWRCI.s:764 .text.HAL_FLASH_GetError:00000008 $d + /tmp/ccsIWRCI.s:769 .text.FLASH_WaitForLastOperation:00000000 $t + /tmp/ccsIWRCI.s:775 .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation + /tmp/ccsIWRCI.s:882 .text.FLASH_WaitForLastOperation:00000058 $d + /tmp/ccsIWRCI.s:888 .text.HAL_FLASH_Program:00000000 $t + /tmp/ccsIWRCI.s:894 .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program + /tmp/ccsIWRCI.s:1037 .text.HAL_FLASH_Program:00000074 $d + /tmp/ccsIWRCI.s:1043 .text.HAL_FLASH_Program_IT:00000000 $t + /tmp/ccsIWRCI.s:1049 .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT + /tmp/ccsIWRCI.s:1180 .text.HAL_FLASH_Program_IT:0000007c $d + /tmp/ccsIWRCI.s:1186 .text.HAL_FLASH_OB_Launch:00000000 $t + /tmp/ccsIWRCI.s:1192 .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch + /tmp/ccsIWRCI.s:1218 .text.HAL_FLASH_OB_Launch:00000018 $d + /tmp/ccsIWRCI.s:1224 .data.pFlash:00000000 $d + +UNDEFINED SYMBOLS +FLASH_FlushCaches +FLASH_PageErase +HAL_GetTick diff --git a/squeow_sw/build/stm32g4xx_hal_flash.o b/squeow_sw/build/stm32g4xx_hal_flash.o new file mode 100644 index 0000000000000000000000000000000000000000..5a7e51bedf9ee2df18c5def7d1dbaac0b32f03e7 GIT binary patch literal 18448 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 srQqP_AZ-s*L;LhiBlYYutT)dHTypeErase)); + ARM GAS /tmp/ccudk1nZ.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Locked */ + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Deactivate the cache if they are activated to avoid data misbehavior */ + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U) + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */ + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE(); + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED; + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_ENABLED; + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */ + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE(); + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Mass erase to be done */ + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER1 and MER2 Bits */ + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2)); + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER1 Bit */ + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1)); + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /*Initialization of PageError variable*/ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU; + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + ARM GAS /tmp/ccudk1nZ.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** for (page_index = pEraseInit->Page; page_index < (pEraseInit->Page + pEraseInit->NbPages); pa + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_PageErase(page_index, pEraseInit->Banks); + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the PER Bit */ + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PER | FLASH_CR_PNB)); + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status != HAL_OK) + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty page */ + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PageError = page_index; + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** break; + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Flush the caches to be sure of the data consistency */ + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_FlushCaches(); + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Unlocked */ + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages with interrupt enabled. + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * contains the configuration information for the erasing. + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit) + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Locked */ + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Deactivate the cache if they are activated to avoid data misbehavior */ + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U) + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */ + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE(); + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED; + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + ARM GAS /tmp/ccudk1nZ.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_ENABLED; + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U) + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */ + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE(); + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable End of Operation and Error interrupts */ + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR); + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Bank = pEraseInit->Banks; + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Mass erase to be done */ + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASS_ERASE; + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Erase by page to be done */ + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PAGE_ERASE; + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages; + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->Page; + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /*Erase 1st page and wait for IT */ + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_PageErase(pEraseInit->Page, pEraseInit->Banks); + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Program Option bytes. + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * contains the configuration information for the programming. + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit) + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType)); + ARM GAS /tmp/ccudk1nZ.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Locked */ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Write protection configuration */ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_WRP) != 0U) + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure of Write protection on the selected area */ + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_WRPConfig(pOBInit->WRPArea, pOBInit->WRPStartOffset, pOBInit->WRPEndOffset) != HAL + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR; + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Read protection configuration */ + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_RDP) != 0U) + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Read protection level */ + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_RDPConfig(pOBInit->RDPLevel) != HAL_OK) + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR; + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* User Configuration */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_USER) != 0U) + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the user option bytes */ + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_UserConfig(pOBInit->USERType, pOBInit->USERConfig) != HAL_OK) + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR; + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* PCROP Configuration */ + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_PCROP) != 0U) + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pOBInit->PCROPStartAddr != pOBInit->PCROPEndAddr) + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */ + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_PCROPConfig(pOBInit->PCROPConfig, pOBInit->PCROPStartAddr, pOBInit->PCROPEndAddr + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR; + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Securable memory Configuration */ + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_SEC) != 0U) + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the securable memory area */ + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_SecMemConfig(pOBInit->SecBank, pOBInit->SecSize) != HAL_OK) + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR; + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Boot Entry Point Configuration */ + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_BOOT_LOCK) != 0U) + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the boot unique entry point option */ + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_BootLockConfig(pOBInit->BootEntryPoint) != HAL_OK) + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR; + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Unlocked */ + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Get the Option bytes configuration. + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that contains the + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * configuration information. + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note The fields pOBInit->WRPArea and pOBInit->PCROPConfig should indicate + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * which area is requested for the WRP and PCROP, else no information will be returned. + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAB) + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (pOBInit->WRPArea == OB_WRPAREA_BANK2_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK2_AREAB)) + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAB)) + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_WRP; + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get write protection on the selected area */ + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetWRP(pOBInit->WRPArea, &(pOBInit->WRPStartOffset), &(pOBInit->WRPEndOffset)); + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get Read protection level */ + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP(); + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the user option bytes */ + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser(); + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->PCROPConfig == FLASH_BANK_1) || (pOBInit->PCROPConfig == FLASH_BANK_2)) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pOBInit->PCROPConfig == FLASH_BANK_1) + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_PCROP; + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */ + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetPCROP(&(pOBInit->PCROPConfig), &(pOBInit->PCROPStartAddr), &(pOBInit->PCROPEndAddr) + ARM GAS /tmp/ccudk1nZ.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_BOOT_LOCK; + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the boot entry point */ + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->BootEntryPoint = FLASH_OB_GetBootLock(); + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the securable memory area configuration */ + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->SecBank == FLASH_BANK_1) || (pOBInit->SecBank == FLASH_BANK_2)) + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pOBInit->SecBank == FLASH_BANK_1) + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_SEC; + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize)); + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Enable the FLASH Securable Memory protection. + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Bank: Bank to be protected + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be protected + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be protected (*) + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be protected (*) + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL Status + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_EnableSecMemProtection(uint32_t Bank) + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) != 0U) + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Bank)); + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable the Securable Memory Protection Bit for the bank 1 if requested */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Bank & FLASH_BANK_1) != 0U) + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1); + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable the Securable Memory Protection Bit for the bank 2 if requested */ + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Bank & FLASH_BANK_2) != 0U) + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT2); + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1); + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return HAL_OK; + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Enable Debugger. + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note After calling this API, flash interface allow debugger intrusion. + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableDebugger(void) + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR |= FLASH_ACR_DBG_SWEN; + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Disable Debugger. + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note After calling this API, Debugger is disabled: it's no more possible to + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * break, see CPU register, etc... + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableDebugger(void) + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR &= ~FLASH_ACR_DBG_SWEN; + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @} + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @} + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private functions ---------------------------------------------------------*/ + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{ + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Mass erase of FLASH memory. + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Banks Banks to be erased. + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased (*) + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased (*) + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t Banks) + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 29 .loc 1 534 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) != 0U) + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + ARM GAS /tmp/ccudk1nZ.s page 11 + + + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); + 34 .loc 1 540 5 view .LVU1 + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set the Mass Erase Bit for the bank 1 if requested */ + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Banks & FLASH_BANK_1) != 0U) + 35 .loc 1 543 5 view .LVU2 + 36 .loc 1 543 8 is_stmt 0 view .LVU3 + 37 0000 10F0010F tst r0, #1 + 38 0004 04D0 beq .L2 + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER1); + 39 .loc 1 545 7 is_stmt 1 view .LVU4 + 40 0006 054A ldr r2, .L3 + 41 0008 5369 ldr r3, [r2, #20] + 42 000a 43F00403 orr r3, r3, #4 + 43 000e 5361 str r3, [r2, #20] + 44 .L2: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set the Mass Erase Bit for the bank 2 if requested */ + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Banks & FLASH_BANK_2) != 0U) + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER2); + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2)); + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Proceed to erase all sectors */ + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); + 45 .loc 1 564 3 view .LVU5 + 46 0010 024A ldr r2, .L3 + 47 0012 5369 ldr r3, [r2, #20] + 48 0014 43F48033 orr r3, r3, #65536 + 49 0018 5361 str r3, [r2, #20] + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 50 .loc 1 565 1 is_stmt 0 view .LVU6 + 51 001a 7047 bx lr + 52 .L4: + 53 .align 2 + 54 .L3: + 55 001c 00200240 .word 1073881088 + 56 .cfi_endproc + 57 .LFE336: + 59 .section .text.FLASH_OB_GetSecMem,"ax",%progbits + 60 .align 1 + 61 .syntax unified + 62 .thumb + 63 .thumb_func + 65 FLASH_OB_GetSecMem: + ARM GAS /tmp/ccudk1nZ.s page 12 + + + 66 .LVL1: + 67 .LFB345: + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory page. + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Page FLASH page to erase. + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter must be a value between 0 and (max number of pages in the bank - 1). + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Banks Bank where the page will be erased. + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Page in bank 1 to be erased + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Page in bank 2 to be erased (*) + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t Page, uint32_t Banks) + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(Page)); + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U) + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_BKER); + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks)); + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Banks & FLASH_BANK_1) != 0U) + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_BKER); + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_BKER); + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Proceed to erase the page */ + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->CR, FLASH_CR_PNB, ((Page & 0xFFU) << FLASH_CR_PNB_Pos)); + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER); + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Flush the instruction and data caches. + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void FLASH_FlushCaches(void) + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_CacheTypeDef cache = pFlash.CacheToReactivate; + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Flush instruction cache */ + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((cache == FLASH_CACHE_ICACHE_ENABLED) || + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + ARM GAS /tmp/ccudk1nZ.s page 13 + + + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable instruction cache */ + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_DISABLE(); + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset instruction cache */ + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_RESET(); + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */ + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_ENABLE(); + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Flush data cache */ + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((cache == FLASH_CACHE_DCACHE_ENABLED) || + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset data cache */ + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_RESET(); + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */ + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_ENABLE(); + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset internal variable */ + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DISABLED; + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the write protection area into Option Bytes. + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1), + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * it is not possible to program or erase Flash memory if the CPU debug + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * features are connected (JTAG or single wire) or boot code is being + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * executed from RAM or System flash, even if WRP is not activated. + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param WRPArea specifies the area to be configured. + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAA: Flash Bank 1 Area A + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAB: Flash Bank 1 Area B + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAA: Flash Bank 2 Area A (*) + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAB: Flash Bank 2 Area B (*) + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param WRPStartOffset specifies the start page of the write protected area. + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be page number between 0 and (max number of pages in the bank - 1). + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param WRDPEndOffset specifies the end page of the write protected area. + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be page number between WRPStartOffset and (max number of pages in th + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_WRPConfig(uint32_t WRPArea, uint32_t WRPStartOffset, uint32_t WRD + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_WRPAREA(WRPArea)); + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(WRPStartOffset)); + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(WRDPEndOffset)); + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + ARM GAS /tmp/ccudk1nZ.s page 14 + + + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the write protected area */ + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (WRPArea == OB_WRPAREA_BANK1_AREAA) + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP1AR = ((WRDPEndOffset << FLASH_WRP1AR_WRP1A_END_Pos) | WRPStartOffset); + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK1_AREAB) + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP1BR = ((WRDPEndOffset << FLASH_WRP1BR_WRP1B_END_Pos) | WRPStartOffset); + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAA) + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP2AR = ((WRDPEndOffset << FLASH_WRP2AR_WRP2A_END_Pos) | WRPStartOffset); + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAB) + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP2BR = ((WRDPEndOffset << FLASH_WRP2BR_WRP2B_END_Pos) | WRPStartOffset); + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */ + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Set the read protection level into Option Bytes. + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note !!! Warning : When enabling OB_RDP level 2 it's no more possible + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * to go back to level 1 or 0 !!! + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param RDPLevel specifies the read protection level. + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Memory Read protection + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint32_t RDPLevel) + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + ARM GAS /tmp/ccudk1nZ.s page 15 + + + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(RDPLevel)); + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the RDP level in the option bytes register */ + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTR, FLASH_OPTR_RDP, RDPLevel); + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */ + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Bytes. + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param UserType The FLASH User Option Bytes to be modified. + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be a combination of @ref FLASH_OB_USER_Type. + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param UserConfig The selected User Option Bytes values: + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be a combination of @ref FLASH_OB_USER_BOR_LEVEL, + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY , + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW, + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY, + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_WWDG_SW, + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_BFB2 (*), @ref FLASH_OB_USER_nBOOT1, + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_SRAM_PE, @ref FLASH_OB_USER_CCMSRAM_RST, + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nSWBOOT0, @ref FLASH_OB_USER_nBOOT0, + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_NRST_MODE, @ref FLASH_OB_USER_INTERNAL_RESET_HOLDER + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig) + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_val = 0; + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_mask = 0; + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_TYPE(UserType)); + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) + ARM GAS /tmp/ccudk1nZ.s page 16 + + + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_BOR_LEV) != 0U) + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* BOR level option byte should be modified */ + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BOR_LEVEL(UserConfig & FLASH_OPTR_BOR_LEV)); + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for BOR level option byte */ + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_BOR_LEV); + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BOR_LEV; + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nRST_STOP) != 0U) + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nRST_STOP option byte should be modified */ + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_STOP(UserConfig & FLASH_OPTR_nRST_STOP)); + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nRST_STOP option byte */ + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_STOP); + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP; + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nRST_STDBY) != 0U) + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nRST_STDBY option byte should be modified */ + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_STANDBY(UserConfig & FLASH_OPTR_nRST_STDBY)); + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nRST_STDBY option byte */ + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_STDBY); + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY; + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nRST_SHDW) != 0U) + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nRST_SHDW option byte should be modified */ + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SHUTDOWN(UserConfig & FLASH_OPTR_nRST_SHDW)); + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nRST_SHDW option byte */ + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_SHDW); + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW; + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IWDG_SW) != 0U) + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IWDG_SW option byte should be modified */ + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG(UserConfig & FLASH_OPTR_IWDG_SW)); + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IWDG_SW option byte */ + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_SW); + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW; + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IWDG_STOP) != 0U) + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IWDG_STOP option byte should be modified */ + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STOP(UserConfig & FLASH_OPTR_IWDG_STOP)); + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STOP option byte */ + ARM GAS /tmp/ccudk1nZ.s page 17 + + + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_STOP); + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP; + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IWDG_STDBY) != 0U) + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IWDG_STDBY option byte should be modified */ + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STDBY(UserConfig & FLASH_OPTR_IWDG_STDBY)); + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STDBY option byte */ + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_STDBY); + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY; + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_WWDG_SW) != 0U) + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* WWDG_SW option byte should be modified */ + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_WWDG(UserConfig & FLASH_OPTR_WWDG_SW)); + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for WWDG_SW option byte */ + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_WWDG_SW); + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW; + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_BFB2) + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_BFB2) != 0U) + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* BFB2 option byte should be modified */ + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BFB2(UserConfig & FLASH_OPTR_BFB2)); + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for BFB2 option byte */ + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_BFB2); + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BFB2; + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nBOOT1) != 0U) + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nBOOT1 option byte should be modified */ + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BOOT1(UserConfig & FLASH_OPTR_nBOOT1)); + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nBOOT1 option byte */ + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nBOOT1); + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1; + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_SRAM_PE) != 0U) + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* SRAM_PE option byte should be modified */ + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SRAM_PARITY(UserConfig & FLASH_OPTR_SRAM_PE)); + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for SRAM_PE option byte */ + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_SRAM_PE); + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE; + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_CCMSRAM_RST) != 0U) + ARM GAS /tmp/ccudk1nZ.s page 18 + + + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* CCMSRAM_RST option byte should be modified */ + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_CCMSRAM_RST(UserConfig & FLASH_OPTR_CCMSRAM_RST)); + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for CCMSRAM_RST option byte */ + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_CCMSRAM_RST); + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST; + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nSWBOOT0) != 0U) + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nSWBOOT0 option byte should be modified */ + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SWBOOT0(UserConfig & FLASH_OPTR_nSWBOOT0)); + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nSWBOOT0 option byte */ + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nSWBOOT0); + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0; + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nBOOT0) != 0U) + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nBOOT0 option byte should be modified */ + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BOOT0(UserConfig & FLASH_OPTR_nBOOT0)); + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nBOOT0 option byte */ + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nBOOT0); + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0; + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_NRST_MODE) != 0U) + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset Configuration option byte should be modified */ + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_NRST_MODE(UserConfig & FLASH_OPTR_NRST_MODE)); + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for Reset Configuration option byte */ + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_NRST_MODE); + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE; + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IRHEN) != 0U) + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IRH option byte should be modified */ + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IRHEN(UserConfig & FLASH_OPTR_IRHEN)); + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IRH option byte */ + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IRHEN); + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IRHEN; + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the option bytes register */ + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTR, optr_reg_mask, optr_reg_val); + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */ + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + ARM GAS /tmp/ccudk1nZ.s page 19 + + + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the Proprietary code readout protection area into Option Bytes. + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param PCROPConfig specifies the configuration (Bank to be configured and PCROP_RDP option). + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter must be a combination of FLASH_BANK_1 or FLASH_BANK_2 (*) + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * with OB_PCROP_RDP_NOT_ERASE or OB_PCROP_RDP_ERASE. + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param PCROPStartAddr specifies the start address of the Proprietary code readout protection. + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be an address between begin and end of the bank. + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param PCROPEndAddr specifies the end address of the Proprietary code readout protection. + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be an address between PCROPStartAddr and end of the bank. + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32 + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t reg_value; + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank1_addr; + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank2_addr; + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(PCROPConfig & FLASH_BANK_BOTH)); + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP_RDP(PCROPConfig & FLASH_PCROP1ER_PCROP_RDP)); + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPStartAddr)); + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPEndAddr)); + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the information about the bank swapping */ +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE) == 0U) +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE; +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE + FLASH_BANK_SIZE; +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE + FLASH_BANK_SIZE; +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE; +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE; +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + ARM GAS /tmp/ccudk1nZ.s page 20 + + +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U) +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */ +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_1) +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - FLASH_BASE) >> 4); +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value); +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - FLASH_BASE) >> 4); +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value); +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_2) +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - FLASH_BASE) >> 4); +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2SR, FLASH_PCROP2SR_PCROP2_STRT, reg_value); +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - FLASH_BASE) >> 4); +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2ER, FLASH_PCROP2ER_PCROP2_END, reg_value); +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */ +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_1) +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - bank1_addr) >> 3); +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value); +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - bank1_addr) >> 3); +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value); +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_2) +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - bank2_addr) >> 3); +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2SR, FLASH_PCROP2SR_PCROP2_STRT, reg_value); +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - bank2_addr) >> 3); +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2ER, FLASH_PCROP2ER_PCROP2_END, reg_value); +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP_RDP, (PCROPConfig & FLASH_PCROP1ER_PCROP_RDP)) +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */ + ARM GAS /tmp/ccudk1nZ.s page 21 + + +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the Securable memory area into Option Bytes. +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param SecBank specifies bank of securable memory area to be configured. +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Securable memory in Bank1 to be configured +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Securable memory in Bank2 to be configured (*) +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param SecSize specifies the number of pages of the Securable memory area, +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * starting from first page of the bank. +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be page number between 0 and (max number of pages in the bank - 1) +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL Status +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_SecMemConfig(uint32_t SecBank, uint32_t SecSize) +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(SecBank)); +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_SECMEM_SIZE(SecSize)); +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the write protected area */ +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (SecBank == FLASH_BANK_1) +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->SEC1R, FLASH_SEC1R_SEC_SIZE1, SecSize); +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (SecBank == FLASH_BANK_2) +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->SEC2R, FLASH_SEC2R_SEC_SIZE2, SecSize); +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */ +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); + ARM GAS /tmp/ccudk1nZ.s page 22 + + +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the Boot Lock into Option Bytes. +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function. +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases: +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch() +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes) +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param BootLockConfig specifies the boot lock configuration. +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_ENABLE: Enable Boot Lock +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_DISABLE: Disable Boot Lock +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootLockConfig(uint32_t BootLockConfig) +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_LOCK(BootLockConfig)); +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK) +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->SEC1R, FLASH_SEC1R_BOOT_LOCK, BootLockConfig); +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */ +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT); +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status; +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the Securable memory area configuration into Option Bytes. +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in] SecBank specifies the bank where securable memory area is located. +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Securable memory in Bank1 +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Securable memory in Bank2 (*) +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] SecSize specifies the number of pages used in the securable +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** memory area of the bank. +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + ARM GAS /tmp/ccudk1nZ.s page 23 + + +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetSecMem(uint32_t SecBank, uint32_t *SecSize) +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 68 .loc 1 1192 1 is_stmt 1 view -0 + 69 .cfi_startproc + 70 @ args = 0, pretend = 0, frame = 0 + 71 @ frame_needed = 0, uses_anonymous_args = 0 + 72 @ link register save eliminated. +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the configuration of the securable memory area */ +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (SecBank == FLASH_BANK_1) + 73 .loc 1 1194 3 view .LVU8 + 74 .loc 1 1194 6 is_stmt 0 view .LVU9 + 75 0000 0128 cmp r0, #1 + 76 0002 00D0 beq .L7 + 77 .L5: +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *SecSize = READ_BIT(FLASH->SEC1R, FLASH_SEC1R_SEC_SIZE1); +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (SecBank == FLASH_BANK_2) +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *SecSize = READ_BIT(FLASH->SEC2R, FLASH_SEC2R_SEC_SIZE2); +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 78 .loc 1 1208 1 view .LVU10 + 79 0004 7047 bx lr + 80 .L7: +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 81 .loc 1 1196 5 is_stmt 1 view .LVU11 +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 82 .loc 1 1196 16 is_stmt 0 view .LVU12 + 83 0006 034B ldr r3, .L8 + 84 0008 1B6F ldr r3, [r3, #112] + 85 000a 03F07F03 and r3, r3, #127 +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 86 .loc 1 1196 14 view .LVU13 + 87 000e 0B60 str r3, [r1] + 88 .loc 1 1208 1 view .LVU14 + 89 0010 F8E7 b .L5 + 90 .L9: + 91 0012 00BF .align 2 + 92 .L8: + 93 0014 00200240 .word 1073881088 + 94 .cfi_endproc + 95 .LFE345: + 97 .section .text.FLASH_OB_GetBootLock,"ax",%progbits + 98 .align 1 + 99 .syntax unified + 100 .thumb + 101 .thumb_func + 103 FLASH_OB_GetBootLock: + 104 .LFB346: +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + ARM GAS /tmp/ccudk1nZ.s page 24 + + +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the Boot Lock configuration into Option Byte. +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval BootLockConfig. +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This return value can be one of the following values: +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_ENABLE: Boot lock enabled +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_DISABLE: Boot lock disabled +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBootLock(void) +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 105 .loc 1 1218 1 is_stmt 1 view -0 + 106 .cfi_startproc + 107 @ args = 0, pretend = 0, frame = 0 + 108 @ frame_needed = 0, uses_anonymous_args = 0 + 109 @ link register save eliminated. +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return (READ_REG(FLASH->SEC1R) & FLASH_SEC1R_BOOT_LOCK); + 110 .loc 1 1219 3 view .LVU16 + 111 .loc 1 1219 11 is_stmt 0 view .LVU17 + 112 0000 024B ldr r3, .L11 + 113 0002 186F ldr r0, [r3, #112] +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 114 .loc 1 1220 1 view .LVU18 + 115 0004 00F48030 and r0, r0, #65536 + 116 0008 7047 bx lr + 117 .L12: + 118 000a 00BF .align 2 + 119 .L11: + 120 000c 00200240 .word 1073881088 + 121 .cfi_endproc + 122 .LFE346: + 124 .section .text.FLASH_OB_GetWRP,"ax",%progbits + 125 .align 1 + 126 .syntax unified + 127 .thumb + 128 .thumb_func + 130 FLASH_OB_GetWRP: + 131 .LVL2: + 132 .LFB347: +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the Write Protection configuration into Option Bytes. +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in] WRPArea specifies the area to be returned. +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values: +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAA: Flash Bank 1 Area A +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAB: Flash Bank 1 Area B +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAA: Flash Bank 2 Area A (don't apply to STM32G43x/STM32G44x +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAB: Flash Bank 2 Area B (don't apply to STM32G43x/STM32G44x +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] WRPStartOffset specifies the address where to copied the start page +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * of the write protected area. +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] WRDPEndOffset specifies the address where to copied the end page of +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * the write protected area. +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t WRPArea, uint32_t *WRPStartOffset, uint32_t *WRDPEndOffset) +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 133 .loc 1 1237 1 is_stmt 1 view -0 + 134 .cfi_startproc + 135 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/ccudk1nZ.s page 25 + + + 136 @ frame_needed = 0, uses_anonymous_args = 0 + 137 @ link register save eliminated. +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the configuration of the write protected area */ +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (WRPArea == OB_WRPAREA_BANK1_AREAA) + 138 .loc 1 1239 3 view .LVU20 + 139 .loc 1 1239 6 is_stmt 0 view .LVU21 + 140 0000 48B9 cbnz r0, .L14 +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_STRT); + 141 .loc 1 1241 5 is_stmt 1 view .LVU22 + 142 .loc 1 1241 23 is_stmt 0 view .LVU23 + 143 0002 0B48 ldr r0, .L17 + 144 .LVL3: + 145 .loc 1 1241 23 view .LVU24 + 146 0004 C36A ldr r3, [r0, #44] + 147 0006 03F03F03 and r3, r3, #63 + 148 .loc 1 1241 21 view .LVU25 + 149 000a 0B60 str r3, [r1] +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_END) >> FLASH_WRP1AR_WRP1A_END_Pos + 150 .loc 1 1242 5 is_stmt 1 view .LVU26 + 151 .loc 1 1242 23 is_stmt 0 view .LVU27 + 152 000c C36A ldr r3, [r0, #44] + 153 .loc 1 1242 71 view .LVU28 + 154 000e C3F30543 ubfx r3, r3, #16, #6 + 155 .loc 1 1242 20 view .LVU29 + 156 0012 1360 str r3, [r2] + 157 0014 7047 bx lr + 158 .LVL4: + 159 .L14: +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK1_AREAB) + 160 .loc 1 1244 8 is_stmt 1 view .LVU30 + 161 .loc 1 1244 11 is_stmt 0 view .LVU31 + 162 0016 0128 cmp r0, #1 + 163 0018 00D0 beq .L16 + 164 .LVL5: + 165 .L13: +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_STRT); +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAA) +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP2AR, FLASH_WRP2AR_WRP2A_STRT); +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP2AR, FLASH_WRP2AR_WRP2A_END) >> FLASH_WRP2AR_WRP2A_END_Pos +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAB) +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP2BR, FLASH_WRP2BR_WRP2B_STRT); +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP2BR, FLASH_WRP2BR_WRP2B_END) >> FLASH_WRP2BR_WRP2B_END_Pos +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 26 + + +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 166 .loc 1 1265 1 view .LVU32 + 167 001a 7047 bx lr + 168 .LVL6: + 169 .L16: +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos + 170 .loc 1 1246 5 is_stmt 1 view .LVU33 +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos + 171 .loc 1 1246 23 is_stmt 0 view .LVU34 + 172 001c 0448 ldr r0, .L17 + 173 .LVL7: +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos + 174 .loc 1 1246 23 view .LVU35 + 175 001e 036B ldr r3, [r0, #48] + 176 0020 03F03F03 and r3, r3, #63 +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos + 177 .loc 1 1246 21 view .LVU36 + 178 0024 0B60 str r3, [r1] +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 179 .loc 1 1247 5 is_stmt 1 view .LVU37 +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 180 .loc 1 1247 23 is_stmt 0 view .LVU38 + 181 0026 036B ldr r3, [r0, #48] +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 182 .loc 1 1247 71 view .LVU39 + 183 0028 C3F30543 ubfx r3, r3, #16, #6 +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 184 .loc 1 1247 20 view .LVU40 + 185 002c 1360 str r3, [r2] +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 186 .loc 1 1264 3 is_stmt 1 view .LVU41 + 187 .loc 1 1265 1 is_stmt 0 view .LVU42 + 188 002e F4E7 b .L13 + 189 .L18: + 190 .align 2 + 191 .L17: + 192 0030 00200240 .word 1073881088 + 193 .cfi_endproc + 194 .LFE347: + 196 .section .text.FLASH_OB_GetRDP,"ax",%progbits + 197 .align 1 + 198 .syntax unified + 199 .thumb + 200 .thumb_func + 202 FLASH_OB_GetRDP: + 203 .LFB348: +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the FLASH Read Protection level into Option Bytes. +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval RDP_Level +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This return value can be one of the following values: +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void) +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + ARM GAS /tmp/ccudk1nZ.s page 27 + + + 204 .loc 1 1276 1 is_stmt 1 view -0 + 205 .cfi_startproc + 206 @ args = 0, pretend = 0, frame = 0 + 207 @ frame_needed = 0, uses_anonymous_args = 0 + 208 @ link register save eliminated. +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t rdp_level = READ_BIT(FLASH->OPTR, FLASH_OPTR_RDP); + 209 .loc 1 1277 3 view .LVU44 + 210 .loc 1 1277 24 is_stmt 0 view .LVU45 + 211 0000 044B ldr r3, .L22 + 212 0002 186A ldr r0, [r3, #32] + 213 .loc 1 1277 12 view .LVU46 + 214 0004 C0B2 uxtb r0, r0 + 215 .LVL8: +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((rdp_level != OB_RDP_LEVEL_0) && (rdp_level != OB_RDP_LEVEL_2)) + 216 .loc 1 1279 3 is_stmt 1 view .LVU47 + 217 .loc 1 1279 6 is_stmt 0 view .LVU48 + 218 0006 AA28 cmp r0, #170 + 219 0008 02D0 beq .L19 + 220 .loc 1 1279 37 discriminator 1 view .LVU49 + 221 000a CC28 cmp r0, #204 + 222 000c 00D0 beq .L19 +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return (OB_RDP_LEVEL_1); + 223 .loc 1 1281 12 view .LVU50 + 224 000e BB20 movs r0, #187 + 225 .LVL9: + 226 .L19: +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return rdp_level; +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 227 .loc 1 1287 1 view .LVU51 + 228 0010 7047 bx lr + 229 .L23: + 230 0012 00BF .align 2 + 231 .L22: + 232 0014 00200240 .word 1073881088 + 233 .cfi_endproc + 234 .LFE348: + 236 .section .text.FLASH_OB_GetUser,"ax",%progbits + 237 .align 1 + 238 .syntax unified + 239 .thumb + 240 .thumb_func + 242 FLASH_OB_GetUser: + 243 .LFB349: +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value. +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval OB_user_config +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This return value is a combination of @ref FLASH_OB_USER_BOR_LEVEL, +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY, +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW, +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY, + ARM GAS /tmp/ccudk1nZ.s page 28 + + +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_WWDG_SW, +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_BFB2 (*), @ref FLASH_OB_USER_DBANK (*), +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nBOOT1, @ref FLASH_OB_USER_SRAM_PE, +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_CCMSRAM_RST, @ref OB_USER_nSWBOOT0,@ref FLASH_OB_USER_nBOOT0, +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_NRST_MODE, @ref FLASH_OB_USER_INTERNAL_RESET_HOLDER +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void) +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 244 .loc 1 1304 1 is_stmt 1 view -0 + 245 .cfi_startproc + 246 @ args = 0, pretend = 0, frame = 0 + 247 @ frame_needed = 0, uses_anonymous_args = 0 + 248 @ link register save eliminated. +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t user_config = READ_REG(FLASH->OPTR); + 249 .loc 1 1305 3 view .LVU53 + 250 .loc 1 1305 12 is_stmt 0 view .LVU54 + 251 0000 024B ldr r3, .L25 + 252 0002 186A ldr r0, [r3, #32] + 253 .LVL10: +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(user_config, FLASH_OPTR_RDP); + 254 .loc 1 1306 3 is_stmt 1 view .LVU55 +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return user_config; + 255 .loc 1 1308 3 view .LVU56 +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 256 .loc 1 1309 1 is_stmt 0 view .LVU57 + 257 0004 20F0FF00 bic r0, r0, #255 + 258 .LVL11: + 259 .loc 1 1309 1 view .LVU58 + 260 0008 7047 bx lr + 261 .L26: + 262 000a 00BF .align 2 + 263 .L25: + 264 000c 00200240 .word 1073881088 + 265 .cfi_endproc + 266 .LFE349: + 268 .section .text.FLASH_OB_GetPCROP,"ax",%progbits + 269 .align 1 + 270 .syntax unified + 271 .thumb + 272 .thumb_func + 274 FLASH_OB_GetPCROP: + 275 .LVL12: + 276 .LFB350: +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the FLASH PCROP configuration into Option Bytes. +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in,out] PCROPConfig specifies the configuration (Bank to be configured and PCROP_RDP opt +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter must be a combination of FLASH_BANK_1 or FLASH_BANK_2 +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * with OB_PCROP_RDP_NOT_ERASE or OB_PCROP_RDP_ERASE. +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] PCROPStartAddr specifies the address where to copied the start address +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * of the Proprietary code readout protection. +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] PCROPEndAddr specifies the address where to copied the end address of +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * the Proprietary code readout protection. +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */ + ARM GAS /tmp/ccudk1nZ.s page 29 + + +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_t *PCROPEndAd +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 277 .loc 1 1323 1 is_stmt 1 view -0 + 278 .cfi_startproc + 279 @ args = 0, pretend = 0, frame = 0 + 280 @ frame_needed = 0, uses_anonymous_args = 0 + 281 @ link register save eliminated. + 282 .loc 1 1323 1 is_stmt 0 view .LVU60 + 283 0000 30B4 push {r4, r5} + 284 .LCFI0: + 285 .cfi_def_cfa_offset 8 + 286 .cfi_offset 4, -8 + 287 .cfi_offset 5, -4 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t reg_value; + 288 .loc 1 1324 3 is_stmt 1 view .LVU61 +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank1_addr; + 289 .loc 1 1325 3 view .LVU62 +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank2_addr; +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the information about the bank swapping */ +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE) == 0U) +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE; +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE + FLASH_BANK_SIZE; +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE + FLASH_BANK_SIZE; +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE; +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE; + 290 .loc 1 1341 3 view .LVU63 + 291 .LVL13: +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U) +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_1) +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1SR) & FLASH_PCROP1SR_PCROP1_STRT); +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 4) + FLASH_BASE; +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP1_END); +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 4) + FLASH_BASE; +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_2) +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2SR) & FLASH_PCROP2SR_PCROP2_STRT); +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 4) + FLASH_BASE; +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2ER) & FLASH_PCROP2ER_PCROP2_END); +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 4) + FLASH_BASE; +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else + ARM GAS /tmp/ccudk1nZ.s page 30 + + +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_1) + 292 .loc 1 1371 5 view .LVU64 + 293 .loc 1 1371 11 is_stmt 0 view .LVU65 + 294 0002 0368 ldr r3, [r0] + 295 .loc 1 1371 8 view .LVU66 + 296 0004 13F0010F tst r3, #1 + 297 0008 0DD0 beq .L28 +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1SR) & FLASH_PCROP1SR_PCROP1_STRT); + 298 .loc 1 1373 7 is_stmt 1 view .LVU67 + 299 .loc 1 1373 26 is_stmt 0 view .LVU68 + 300 000a 0B4D ldr r5, .L30 + 301 000c 6C6A ldr r4, [r5, #36] + 302 .LVL14: +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 3) + bank1_addr; + 303 .loc 1 1374 7 is_stmt 1 view .LVU69 + 304 .loc 1 1374 36 is_stmt 0 view .LVU70 + 305 000e 0B4B ldr r3, .L30+4 + 306 0010 03EAC404 and r4, r3, r4, lsl #3 + 307 .LVL15: + 308 .loc 1 1374 42 view .LVU71 + 309 0014 04F10064 add r4, r4, #134217728 + 310 .loc 1 1374 23 view .LVU72 + 311 0018 0C60 str r4, [r1] +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP1_END); + 312 .loc 1 1376 7 is_stmt 1 view .LVU73 + 313 .loc 1 1376 24 is_stmt 0 view .LVU74 + 314 001a A96A ldr r1, [r5, #40] + 315 .LVL16: +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 3) + bank1_addr; + 316 .loc 1 1377 7 is_stmt 1 view .LVU75 + 317 .loc 1 1377 34 is_stmt 0 view .LVU76 + 318 001c 03EAC103 and r3, r3, r1, lsl #3 + 319 .loc 1 1377 40 view .LVU77 + 320 0020 03F10063 add r3, r3, #134217728 + 321 .loc 1 1377 21 view .LVU78 + 322 0024 1360 str r3, [r2] + 323 .LVL17: + 324 .L28: +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_2) +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2SR) & FLASH_PCROP2SR_PCROP2_STRT); +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 3) + bank2_addr; +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2ER) & FLASH_PCROP2ER_PCROP2_END); +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 3) + bank2_addr; +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 31 + + +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */ +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 325 .loc 1 1392 5 is_stmt 1 view .LVU79 +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPConfig |= (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP_RDP); + 326 .loc 1 1395 3 view .LVU80 + 327 .loc 1 1395 20 is_stmt 0 view .LVU81 + 328 0026 044B ldr r3, .L30 + 329 0028 9A6A ldr r2, [r3, #40] + 330 .LVL18: + 331 .loc 1 1395 46 view .LVU82 + 332 002a 02F00042 and r2, r2, #-2147483648 + 333 .loc 1 1395 3 view .LVU83 + 334 002e 0368 ldr r3, [r0] + 335 .loc 1 1395 16 view .LVU84 + 336 0030 1343 orrs r3, r3, r2 + 337 0032 0360 str r3, [r0] +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 338 .loc 1 1396 1 view .LVU85 + 339 0034 30BC pop {r4, r5} + 340 .LCFI1: + 341 .cfi_restore 5 + 342 .cfi_restore 4 + 343 .cfi_def_cfa_offset 0 + 344 0036 7047 bx lr + 345 .L31: + 346 .align 2 + 347 .L30: + 348 0038 00200240 .word 1073881088 + 349 003c F8FF0100 .word 131064 + 350 .cfi_endproc + 351 .LFE350: + 353 .section .text.FLASH_OB_WRPConfig,"ax",%progbits + 354 .align 1 + 355 .syntax unified + 356 .thumb + 357 .thumb_func + 359 FLASH_OB_WRPConfig: + 360 .LVL19: + 361 .LFB339: + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 362 .loc 1 668 1 is_stmt 1 view -0 + 363 .cfi_startproc + 364 @ args = 0, pretend = 0, frame = 0 + 365 @ frame_needed = 0, uses_anonymous_args = 0 + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 366 .loc 1 668 1 is_stmt 0 view .LVU87 + 367 0000 70B5 push {r4, r5, r6, lr} + 368 .LCFI2: + 369 .cfi_def_cfa_offset 16 + 370 .cfi_offset 4, -16 + 371 .cfi_offset 5, -12 + 372 .cfi_offset 6, -8 + ARM GAS /tmp/ccudk1nZ.s page 32 + + + 373 .cfi_offset 14, -4 + 374 0002 0546 mov r5, r0 + 375 0004 0C46 mov r4, r1 + 376 0006 1646 mov r6, r2 + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 377 .loc 1 669 3 is_stmt 1 view .LVU88 + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(WRPStartOffset)); + 378 .loc 1 672 3 view .LVU89 + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(WRDPEndOffset)); + 379 .loc 1 673 3 view .LVU90 + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 380 .loc 1 674 3 view .LVU91 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 381 .loc 1 677 3 view .LVU92 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 382 .loc 1 677 12 is_stmt 0 view .LVU93 + 383 0008 4FF47A70 mov r0, #1000 + 384 .LVL20: + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 385 .loc 1 677 12 view .LVU94 + 386 000c FFF7FEFF bl FLASH_WaitForLastOperation + 387 .LVL21: + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 388 .loc 1 679 3 is_stmt 1 view .LVU95 + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 389 .loc 1 679 6 is_stmt 0 view .LVU96 + 390 0010 68B9 cbnz r0, .L33 + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 391 .loc 1 682 5 is_stmt 1 view .LVU97 + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 392 .loc 1 682 8 is_stmt 0 view .LVU98 + 393 0012 6DB9 cbnz r5, .L34 + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 394 .loc 1 684 7 is_stmt 1 view .LVU99 + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 395 .loc 1 684 70 is_stmt 0 view .LVU100 + 396 0014 44EA0644 orr r4, r4, r6, lsl #16 + 397 .LVL22: + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 398 .loc 1 684 21 view .LVU101 + 399 0018 094B ldr r3, .L37 + 400 001a DC62 str r4, [r3, #44] + 401 .L35: + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 402 .loc 1 703 5 is_stmt 1 view .LVU102 + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 403 .loc 1 706 5 view .LVU103 + 404 001c 084A ldr r2, .L37 + 405 001e 5369 ldr r3, [r2, #20] + 406 0020 43F40033 orr r3, r3, #131072 + 407 0024 5361 str r3, [r2, #20] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 408 .loc 1 709 5 view .LVU104 + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 409 .loc 1 709 14 is_stmt 0 view .LVU105 + 410 0026 4FF47A70 mov r0, #1000 + 411 002a FFF7FEFF bl FLASH_WaitForLastOperation + ARM GAS /tmp/ccudk1nZ.s page 33 + + + 412 .LVL23: + 413 .L33: + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 414 .loc 1 712 3 is_stmt 1 view .LVU106 + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 415 .loc 1 713 1 is_stmt 0 view .LVU107 + 416 002e 70BD pop {r4, r5, r6, pc} + 417 .LVL24: + 418 .L34: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 419 .loc 1 686 10 is_stmt 1 view .LVU108 + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 420 .loc 1 686 13 is_stmt 0 view .LVU109 + 421 0030 012D cmp r5, #1 + 422 0032 F3D1 bne .L35 + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 423 .loc 1 688 7 is_stmt 1 view .LVU110 + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 424 .loc 1 688 70 is_stmt 0 view .LVU111 + 425 0034 44EA0644 orr r4, r4, r6, lsl #16 + 426 .LVL25: + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 427 .loc 1 688 21 view .LVU112 + 428 0038 014B ldr r3, .L37 + 429 003a 1C63 str r4, [r3, #48] + 430 003c EEE7 b .L35 + 431 .L38: + 432 003e 00BF .align 2 + 433 .L37: + 434 0040 00200240 .word 1073881088 + 435 .cfi_endproc + 436 .LFE339: + 438 .section .text.FLASH_OB_RDPConfig,"ax",%progbits + 439 .align 1 + 440 .syntax unified + 441 .thumb + 442 .thumb_func + 444 FLASH_OB_RDPConfig: + 445 .LVL26: + 446 .LFB340: + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 447 .loc 1 733 1 is_stmt 1 view -0 + 448 .cfi_startproc + 449 @ args = 0, pretend = 0, frame = 0 + 450 @ frame_needed = 0, uses_anonymous_args = 0 + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 451 .loc 1 733 1 is_stmt 0 view .LVU114 + 452 0000 10B5 push {r4, lr} + 453 .LCFI3: + 454 .cfi_def_cfa_offset 8 + 455 .cfi_offset 4, -8 + 456 .cfi_offset 14, -4 + 457 0002 0446 mov r4, r0 + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 458 .loc 1 734 3 is_stmt 1 view .LVU115 + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 459 .loc 1 737 3 view .LVU116 + ARM GAS /tmp/ccudk1nZ.s page 34 + + + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 460 .loc 1 740 3 view .LVU117 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 461 .loc 1 740 12 is_stmt 0 view .LVU118 + 462 0004 4FF47A70 mov r0, #1000 + 463 .LVL27: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 464 .loc 1 740 12 view .LVU119 + 465 0008 FFF7FEFF bl FLASH_WaitForLastOperation + 466 .LVL28: + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 467 .loc 1 742 3 is_stmt 1 view .LVU120 + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 468 .loc 1 742 6 is_stmt 0 view .LVU121 + 469 000c 00B1 cbz r0, .L42 + 470 .L40: + 471 .LVL29: + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 472 .loc 1 754 3 is_stmt 1 view .LVU122 + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 473 .loc 1 755 1 is_stmt 0 view .LVU123 + 474 000e 10BD pop {r4, pc} + 475 .LVL30: + 476 .L42: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 477 .loc 1 745 5 is_stmt 1 view .LVU124 + 478 0010 074A ldr r2, .L43 + 479 0012 136A ldr r3, [r2, #32] + 480 0014 23F0FF03 bic r3, r3, #255 + 481 0018 2343 orrs r3, r3, r4 + 482 001a 1362 str r3, [r2, #32] + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 483 .loc 1 748 5 view .LVU125 + 484 001c 5369 ldr r3, [r2, #20] + 485 001e 43F40033 orr r3, r3, #131072 + 486 0022 5361 str r3, [r2, #20] + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 487 .loc 1 751 5 view .LVU126 + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 488 .loc 1 751 14 is_stmt 0 view .LVU127 + 489 0024 4FF47A70 mov r0, #1000 + 490 0028 FFF7FEFF bl FLASH_WaitForLastOperation + 491 .LVL31: + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 492 .loc 1 751 14 view .LVU128 + 493 002c EFE7 b .L40 + 494 .L44: + 495 002e 00BF .align 2 + 496 .L43: + 497 0030 00200240 .word 1073881088 + 498 .cfi_endproc + 499 .LFE340: + 501 .section .text.FLASH_OB_UserConfig,"ax",%progbits + 502 .align 1 + 503 .syntax unified + 504 .thumb + 505 .thumb_func + ARM GAS /tmp/ccudk1nZ.s page 35 + + + 507 FLASH_OB_UserConfig: + 508 .LVL32: + 509 .LFB341: + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_val = 0; + 510 .loc 1 780 1 is_stmt 1 view -0 + 511 .cfi_startproc + 512 @ args = 0, pretend = 0, frame = 0 + 513 @ frame_needed = 0, uses_anonymous_args = 0 + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_val = 0; + 514 .loc 1 780 1 is_stmt 0 view .LVU130 + 515 0000 38B5 push {r3, r4, r5, lr} + 516 .LCFI4: + 517 .cfi_def_cfa_offset 16 + 518 .cfi_offset 3, -16 + 519 .cfi_offset 4, -12 + 520 .cfi_offset 5, -8 + 521 .cfi_offset 14, -4 + 522 0002 0446 mov r4, r0 + 523 0004 0D46 mov r5, r1 + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_mask = 0; + 524 .loc 1 781 3 is_stmt 1 view .LVU131 + 525 .LVL33: + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 526 .loc 1 782 3 view .LVU132 + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 527 .loc 1 783 3 view .LVU133 + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 528 .loc 1 786 3 view .LVU134 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 529 .loc 1 789 3 view .LVU135 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 530 .loc 1 789 12 is_stmt 0 view .LVU136 + 531 0006 4FF47A70 mov r0, #1000 + 532 .LVL34: + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 533 .loc 1 789 12 view .LVU137 + 534 000a FFF7FEFF bl FLASH_WaitForLastOperation + 535 .LVL35: + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 536 .loc 1 791 3 is_stmt 1 view .LVU138 + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 537 .loc 1 791 6 is_stmt 0 view .LVU139 + 538 000e 0028 cmp r0, #0 + 539 0010 40F08780 bne .L46 + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 540 .loc 1 793 5 is_stmt 1 view .LVU140 + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 541 .loc 1 793 8 is_stmt 0 view .LVU141 + 542 0014 14F00103 ands r3, r4, #1 + 543 0018 04D0 beq .L62 + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 544 .loc 1 796 7 is_stmt 1 view .LVU142 + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BOR_LEV; + 545 .loc 1 799 7 view .LVU143 + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BOR_LEV; + 546 .loc 1 799 35 is_stmt 0 view .LVU144 + 547 001a 05F4E063 and r3, r5, #1792 + ARM GAS /tmp/ccudk1nZ.s page 36 + + + 548 .LVL36: + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 549 .loc 1 800 7 is_stmt 1 view .LVU145 + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 550 .loc 1 800 21 is_stmt 0 view .LVU146 + 551 001e 4FF4E062 mov r2, #1792 + 552 0022 00E0 b .L47 + 553 .LVL37: + 554 .L62: + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 555 .loc 1 782 12 view .LVU147 + 556 0024 1A46 mov r2, r3 + 557 .LVL38: + 558 .L47: + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 559 .loc 1 803 5 is_stmt 1 view .LVU148 + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 560 .loc 1 803 8 is_stmt 0 view .LVU149 + 561 0026 14F0020F tst r4, #2 + 562 002a 04D0 beq .L48 + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 563 .loc 1 806 7 is_stmt 1 view .LVU150 + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP; + 564 .loc 1 809 7 view .LVU151 + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP; + 565 .loc 1 809 35 is_stmt 0 view .LVU152 + 566 002c 05F48051 and r1, r5, #4096 + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP; + 567 .loc 1 809 20 view .LVU153 + 568 0030 0B43 orrs r3, r3, r1 + 569 .LVL39: + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 570 .loc 1 810 7 is_stmt 1 view .LVU154 + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 571 .loc 1 810 21 is_stmt 0 view .LVU155 + 572 0032 42F48052 orr r2, r2, #4096 + 573 .LVL40: + 574 .L48: + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 575 .loc 1 813 5 is_stmt 1 view .LVU156 + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 576 .loc 1 813 8 is_stmt 0 view .LVU157 + 577 0036 14F0040F tst r4, #4 + 578 003a 04D0 beq .L49 + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 579 .loc 1 816 7 is_stmt 1 view .LVU158 + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY; + 580 .loc 1 819 7 view .LVU159 + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY; + 581 .loc 1 819 35 is_stmt 0 view .LVU160 + 582 003c 05F40051 and r1, r5, #8192 + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY; + 583 .loc 1 819 20 view .LVU161 + 584 0040 0B43 orrs r3, r3, r1 + 585 .LVL41: + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 586 .loc 1 820 7 is_stmt 1 view .LVU162 + ARM GAS /tmp/ccudk1nZ.s page 37 + + + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 587 .loc 1 820 21 is_stmt 0 view .LVU163 + 588 0042 42F40052 orr r2, r2, #8192 + 589 .LVL42: + 590 .L49: + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 591 .loc 1 823 5 is_stmt 1 view .LVU164 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 592 .loc 1 823 8 is_stmt 0 view .LVU165 + 593 0046 14F4805F tst r4, #4096 + 594 004a 04D0 beq .L50 + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 595 .loc 1 826 7 is_stmt 1 view .LVU166 + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW; + 596 .loc 1 829 7 view .LVU167 + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW; + 597 .loc 1 829 35 is_stmt 0 view .LVU168 + 598 004c 05F48041 and r1, r5, #16384 + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW; + 599 .loc 1 829 20 view .LVU169 + 600 0050 0B43 orrs r3, r3, r1 + 601 .LVL43: + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 602 .loc 1 830 7 is_stmt 1 view .LVU170 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 603 .loc 1 830 21 is_stmt 0 view .LVU171 + 604 0052 42F48042 orr r2, r2, #16384 + 605 .LVL44: + 606 .L50: + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 607 .loc 1 833 5 is_stmt 1 view .LVU172 + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 608 .loc 1 833 8 is_stmt 0 view .LVU173 + 609 0056 14F0080F tst r4, #8 + 610 005a 04D0 beq .L51 + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 611 .loc 1 836 7 is_stmt 1 view .LVU174 + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW; + 612 .loc 1 839 7 view .LVU175 + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW; + 613 .loc 1 839 35 is_stmt 0 view .LVU176 + 614 005c 05F48031 and r1, r5, #65536 + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW; + 615 .loc 1 839 20 view .LVU177 + 616 0060 0B43 orrs r3, r3, r1 + 617 .LVL45: + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 618 .loc 1 840 7 is_stmt 1 view .LVU178 + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 619 .loc 1 840 21 is_stmt 0 view .LVU179 + 620 0062 42F48032 orr r2, r2, #65536 + 621 .LVL46: + 622 .L51: + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 623 .loc 1 843 5 is_stmt 1 view .LVU180 + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 624 .loc 1 843 8 is_stmt 0 view .LVU181 + ARM GAS /tmp/ccudk1nZ.s page 38 + + + 625 0066 14F0100F tst r4, #16 + 626 006a 04D0 beq .L52 + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 627 .loc 1 846 7 is_stmt 1 view .LVU182 + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP; + 628 .loc 1 849 7 view .LVU183 + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP; + 629 .loc 1 849 35 is_stmt 0 view .LVU184 + 630 006c 05F40031 and r1, r5, #131072 + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP; + 631 .loc 1 849 20 view .LVU185 + 632 0070 0B43 orrs r3, r3, r1 + 633 .LVL47: + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 634 .loc 1 850 7 is_stmt 1 view .LVU186 + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 635 .loc 1 850 21 is_stmt 0 view .LVU187 + 636 0072 42F40032 orr r2, r2, #131072 + 637 .LVL48: + 638 .L52: + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 639 .loc 1 853 5 is_stmt 1 view .LVU188 + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 640 .loc 1 853 8 is_stmt 0 view .LVU189 + 641 0076 14F0200F tst r4, #32 + 642 007a 04D0 beq .L53 + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 643 .loc 1 856 7 is_stmt 1 view .LVU190 + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY; + 644 .loc 1 859 7 view .LVU191 + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY; + 645 .loc 1 859 35 is_stmt 0 view .LVU192 + 646 007c 05F48021 and r1, r5, #262144 + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY; + 647 .loc 1 859 20 view .LVU193 + 648 0080 0B43 orrs r3, r3, r1 + 649 .LVL49: + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 650 .loc 1 860 7 is_stmt 1 view .LVU194 + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 651 .loc 1 860 21 is_stmt 0 view .LVU195 + 652 0082 42F48022 orr r2, r2, #262144 + 653 .LVL50: + 654 .L53: + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 655 .loc 1 863 5 is_stmt 1 view .LVU196 + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 656 .loc 1 863 8 is_stmt 0 view .LVU197 + 657 0086 14F0400F tst r4, #64 + 658 008a 04D0 beq .L54 + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 659 .loc 1 866 7 is_stmt 1 view .LVU198 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW; + 660 .loc 1 869 7 view .LVU199 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW; + 661 .loc 1 869 35 is_stmt 0 view .LVU200 + 662 008c 05F40021 and r1, r5, #524288 + ARM GAS /tmp/ccudk1nZ.s page 39 + + + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW; + 663 .loc 1 869 20 view .LVU201 + 664 0090 0B43 orrs r3, r3, r1 + 665 .LVL51: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 666 .loc 1 870 7 is_stmt 1 view .LVU202 + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 667 .loc 1 870 21 is_stmt 0 view .LVU203 + 668 0092 42F40022 orr r2, r2, #524288 + 669 .LVL52: + 670 .L54: + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 671 .loc 1 885 5 is_stmt 1 view .LVU204 + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 672 .loc 1 885 8 is_stmt 0 view .LVU205 + 673 0096 14F4007F tst r4, #512 + 674 009a 04D0 beq .L55 + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 675 .loc 1 888 7 is_stmt 1 view .LVU206 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1; + 676 .loc 1 891 7 view .LVU207 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1; + 677 .loc 1 891 35 is_stmt 0 view .LVU208 + 678 009c 05F40001 and r1, r5, #8388608 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1; + 679 .loc 1 891 20 view .LVU209 + 680 00a0 0B43 orrs r3, r3, r1 + 681 .LVL53: + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 682 .loc 1 892 7 is_stmt 1 view .LVU210 + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 683 .loc 1 892 21 is_stmt 0 view .LVU211 + 684 00a2 42F40002 orr r2, r2, #8388608 + 685 .LVL54: + 686 .L55: + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 687 .loc 1 895 5 is_stmt 1 view .LVU212 + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 688 .loc 1 895 8 is_stmt 0 view .LVU213 + 689 00a6 14F4806F tst r4, #1024 + 690 00aa 04D0 beq .L56 + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 691 .loc 1 898 7 is_stmt 1 view .LVU214 + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE; + 692 .loc 1 901 7 view .LVU215 + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE; + 693 .loc 1 901 35 is_stmt 0 view .LVU216 + 694 00ac 05F08071 and r1, r5, #16777216 + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE; + 695 .loc 1 901 20 view .LVU217 + 696 00b0 0B43 orrs r3, r3, r1 + 697 .LVL55: + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 698 .loc 1 902 7 is_stmt 1 view .LVU218 + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 699 .loc 1 902 21 is_stmt 0 view .LVU219 + 700 00b2 42F08072 orr r2, r2, #16777216 + ARM GAS /tmp/ccudk1nZ.s page 40 + + + 701 .LVL56: + 702 .L56: + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 703 .loc 1 905 5 is_stmt 1 view .LVU220 + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 704 .loc 1 905 8 is_stmt 0 view .LVU221 + 705 00b6 14F4006F tst r4, #2048 + 706 00ba 04D0 beq .L57 + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 707 .loc 1 908 7 is_stmt 1 view .LVU222 + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST; + 708 .loc 1 911 7 view .LVU223 + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST; + 709 .loc 1 911 35 is_stmt 0 view .LVU224 + 710 00bc 05F00071 and r1, r5, #33554432 + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST; + 711 .loc 1 911 20 view .LVU225 + 712 00c0 0B43 orrs r3, r3, r1 + 713 .LVL57: + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 714 .loc 1 912 7 is_stmt 1 view .LVU226 + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 715 .loc 1 912 21 is_stmt 0 view .LVU227 + 716 00c2 42F00072 orr r2, r2, #33554432 + 717 .LVL58: + 718 .L57: + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 719 .loc 1 915 5 is_stmt 1 view .LVU228 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 720 .loc 1 915 8 is_stmt 0 view .LVU229 + 721 00c6 14F4005F tst r4, #8192 + 722 00ca 04D0 beq .L58 + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 723 .loc 1 918 7 is_stmt 1 view .LVU230 + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0; + 724 .loc 1 921 7 view .LVU231 + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0; + 725 .loc 1 921 35 is_stmt 0 view .LVU232 + 726 00cc 05F08061 and r1, r5, #67108864 + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0; + 727 .loc 1 921 20 view .LVU233 + 728 00d0 0B43 orrs r3, r3, r1 + 729 .LVL59: + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 730 .loc 1 922 7 is_stmt 1 view .LVU234 + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 731 .loc 1 922 21 is_stmt 0 view .LVU235 + 732 00d2 42F08062 orr r2, r2, #67108864 + 733 .LVL60: + 734 .L58: + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 735 .loc 1 925 5 is_stmt 1 view .LVU236 + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 736 .loc 1 925 8 is_stmt 0 view .LVU237 + 737 00d6 14F4804F tst r4, #16384 + 738 00da 04D0 beq .L59 + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + ARM GAS /tmp/ccudk1nZ.s page 41 + + + 739 .loc 1 928 7 is_stmt 1 view .LVU238 + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0; + 740 .loc 1 931 7 view .LVU239 + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0; + 741 .loc 1 931 35 is_stmt 0 view .LVU240 + 742 00dc 05F00061 and r1, r5, #134217728 + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0; + 743 .loc 1 931 20 view .LVU241 + 744 00e0 0B43 orrs r3, r3, r1 + 745 .LVL61: + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 746 .loc 1 932 7 is_stmt 1 view .LVU242 + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 747 .loc 1 932 21 is_stmt 0 view .LVU243 + 748 00e2 42F00062 orr r2, r2, #134217728 + 749 .LVL62: + 750 .L59: + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 751 .loc 1 935 5 is_stmt 1 view .LVU244 + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 752 .loc 1 935 8 is_stmt 0 view .LVU245 + 753 00e6 14F4004F tst r4, #32768 + 754 00ea 04D0 beq .L60 + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 755 .loc 1 938 7 is_stmt 1 view .LVU246 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE; + 756 .loc 1 941 7 view .LVU247 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE; + 757 .loc 1 941 35 is_stmt 0 view .LVU248 + 758 00ec 05F04051 and r1, r5, #805306368 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE; + 759 .loc 1 941 20 view .LVU249 + 760 00f0 0B43 orrs r3, r3, r1 + 761 .LVL63: + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 762 .loc 1 942 7 is_stmt 1 view .LVU250 + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 763 .loc 1 942 21 is_stmt 0 view .LVU251 + 764 00f2 42F04052 orr r2, r2, #805306368 + 765 .LVL64: + 766 .L60: + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 767 .loc 1 945 5 is_stmt 1 view .LVU252 + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 768 .loc 1 945 8 is_stmt 0 view .LVU253 + 769 00f6 14F4803F tst r4, #65536 + 770 00fa 04D0 beq .L61 + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 771 .loc 1 948 7 is_stmt 1 view .LVU254 + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IRHEN; + 772 .loc 1 951 7 view .LVU255 + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IRHEN; + 773 .loc 1 951 35 is_stmt 0 view .LVU256 + 774 00fc 05F08045 and r5, r5, #1073741824 + 775 .LVL65: + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IRHEN; + 776 .loc 1 951 20 view .LVU257 + ARM GAS /tmp/ccudk1nZ.s page 42 + + + 777 0100 2B43 orrs r3, r3, r5 + 778 .LVL66: + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 779 .loc 1 952 7 is_stmt 1 view .LVU258 + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 780 .loc 1 952 21 is_stmt 0 view .LVU259 + 781 0102 42F08042 orr r2, r2, #1073741824 + 782 .LVL67: + 783 .L61: + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 784 .loc 1 956 5 is_stmt 1 view .LVU260 + 785 0106 0748 ldr r0, .L64 + 786 0108 016A ldr r1, [r0, #32] + 787 010a 21EA0202 bic r2, r1, r2 + 788 .LVL68: + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 789 .loc 1 956 5 is_stmt 0 view .LVU261 + 790 010e 1343 orrs r3, r3, r2 + 791 .LVL69: + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 792 .loc 1 956 5 view .LVU262 + 793 0110 0362 str r3, [r0, #32] + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 794 .loc 1 959 5 is_stmt 1 view .LVU263 + 795 0112 4369 ldr r3, [r0, #20] + 796 0114 43F40033 orr r3, r3, #131072 + 797 0118 4361 str r3, [r0, #20] + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 798 .loc 1 962 5 view .LVU264 + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 799 .loc 1 962 14 is_stmt 0 view .LVU265 + 800 011a 4FF47A70 mov r0, #1000 + 801 011e FFF7FEFF bl FLASH_WaitForLastOperation + 802 .LVL70: + 803 .L46: + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 804 .loc 1 965 3 is_stmt 1 view .LVU266 + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 805 .loc 1 966 1 is_stmt 0 view .LVU267 + 806 0122 38BD pop {r3, r4, r5, pc} + 807 .LVL71: + 808 .L65: + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 809 .loc 1 966 1 view .LVU268 + 810 .align 2 + 811 .L64: + 812 0124 00200240 .word 1073881088 + 813 .cfi_endproc + 814 .LFE341: + 816 .section .text.FLASH_OB_PCROPConfig,"ax",%progbits + 817 .align 1 + 818 .syntax unified + 819 .thumb + 820 .thumb_func + 822 FLASH_OB_PCROPConfig: + 823 .LVL72: + 824 .LFB342: + ARM GAS /tmp/ccudk1nZ.s page 43 + + + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 825 .loc 1 986 1 is_stmt 1 view -0 + 826 .cfi_startproc + 827 @ args = 0, pretend = 0, frame = 0 + 828 @ frame_needed = 0, uses_anonymous_args = 0 + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 829 .loc 1 986 1 is_stmt 0 view .LVU270 + 830 0000 70B5 push {r4, r5, r6, lr} + 831 .LCFI5: + 832 .cfi_def_cfa_offset 16 + 833 .cfi_offset 4, -16 + 834 .cfi_offset 5, -12 + 835 .cfi_offset 6, -8 + 836 .cfi_offset 14, -4 + 837 0002 0446 mov r4, r0 + 838 0004 0E46 mov r6, r1 + 839 0006 1546 mov r5, r2 + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t reg_value; + 840 .loc 1 987 3 is_stmt 1 view .LVU271 + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank1_addr; + 841 .loc 1 988 3 view .LVU272 + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 842 .loc 1 989 3 view .LVU273 + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP_RDP(PCROPConfig & FLASH_PCROP1ER_PCROP_RDP)); + 843 .loc 1 995 3 view .LVU274 + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPStartAddr)); + 844 .loc 1 996 3 view .LVU275 + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPEndAddr)); + 845 .loc 1 997 3 view .LVU276 + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 846 .loc 1 998 3 view .LVU277 +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 847 .loc 1 1001 3 view .LVU278 +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 848 .loc 1 1001 12 is_stmt 0 view .LVU279 + 849 0008 4FF47A70 mov r0, #1000 + 850 .LVL73: +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 851 .loc 1 1001 12 view .LVU280 + 852 000c FFF7FEFF bl FLASH_WaitForLastOperation + 853 .LVL74: +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 854 .loc 1 1003 3 is_stmt 1 view .LVU281 +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 855 .loc 1 1003 6 is_stmt 0 view .LVU282 + 856 0010 38BB cbnz r0, .L67 +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 857 .loc 1 1018 5 is_stmt 1 view .LVU283 + 858 .LVL75: +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 859 .loc 1 1050 7 view .LVU284 +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 860 .loc 1 1050 10 is_stmt 0 view .LVU285 + 861 0012 14F0010F tst r4, #1 + 862 0016 14D0 beq .L68 +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value); + 863 .loc 1 1052 9 is_stmt 1 view .LVU286 + ARM GAS /tmp/ccudk1nZ.s page 44 + + +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value); + 864 .loc 1 1052 38 is_stmt 0 view .LVU287 + 865 0018 06F17841 add r1, r6, #-134217728 + 866 .LVL76: +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 867 .loc 1 1053 9 is_stmt 1 view .LVU288 + 868 001c 114A ldr r2, .L70 + 869 001e 536A ldr r3, [r2, #36] + 870 0020 23F47F53 bic r3, r3, #16320 + 871 0024 23F03F03 bic r3, r3, #63 + 872 0028 43EAD103 orr r3, r3, r1, lsr #3 + 873 002c 5362 str r3, [r2, #36] +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value); + 874 .loc 1 1055 9 view .LVU289 +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value); + 875 .loc 1 1055 36 is_stmt 0 view .LVU290 + 876 002e 05F17845 add r5, r5, #-134217728 + 877 .LVL77: +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 878 .loc 1 1056 9 is_stmt 1 view .LVU291 + 879 0032 936A ldr r3, [r2, #40] + 880 0034 23F47F53 bic r3, r3, #16320 + 881 0038 23F03F03 bic r3, r3, #63 + 882 003c 43EAD503 orr r3, r3, r5, lsr #3 + 883 0040 9362 str r3, [r2, #40] + 884 .LVL78: + 885 .L68: +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 886 .loc 1 1071 7 view .LVU292 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 887 .loc 1 1074 5 view .LVU293 + 888 0042 084A ldr r2, .L70 + 889 0044 936A ldr r3, [r2, #40] + 890 0046 23F00043 bic r3, r3, #-2147483648 + 891 004a 04F00044 and r4, r4, #-2147483648 + 892 .LVL79: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 893 .loc 1 1074 5 is_stmt 0 view .LVU294 + 894 004e 1C43 orrs r4, r4, r3 + 895 0050 9462 str r4, [r2, #40] +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 896 .loc 1 1077 5 is_stmt 1 view .LVU295 + 897 0052 5369 ldr r3, [r2, #20] + 898 0054 43F40033 orr r3, r3, #131072 + 899 0058 5361 str r3, [r2, #20] +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 900 .loc 1 1080 5 view .LVU296 +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 901 .loc 1 1080 14 is_stmt 0 view .LVU297 + 902 005a 4FF47A70 mov r0, #1000 + 903 005e FFF7FEFF bl FLASH_WaitForLastOperation + 904 .LVL80: + 905 .L67: +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 906 .loc 1 1083 3 is_stmt 1 view .LVU298 +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 907 .loc 1 1084 1 is_stmt 0 view .LVU299 + ARM GAS /tmp/ccudk1nZ.s page 45 + + + 908 0062 70BD pop {r4, r5, r6, pc} + 909 .LVL81: + 910 .L71: +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 911 .loc 1 1084 1 view .LVU300 + 912 .align 2 + 913 .L70: + 914 0064 00200240 .word 1073881088 + 915 .cfi_endproc + 916 .LFE342: + 918 .section .text.FLASH_OB_SecMemConfig,"ax",%progbits + 919 .align 1 + 920 .syntax unified + 921 .thumb + 922 .thumb_func + 924 FLASH_OB_SecMemConfig: + 925 .LVL82: + 926 .LFB343: +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 927 .loc 1 1104 1 is_stmt 1 view -0 + 928 .cfi_startproc + 929 @ args = 0, pretend = 0, frame = 0 + 930 @ frame_needed = 0, uses_anonymous_args = 0 +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 931 .loc 1 1104 1 is_stmt 0 view .LVU302 + 932 0000 38B5 push {r3, r4, r5, lr} + 933 .LCFI6: + 934 .cfi_def_cfa_offset 16 + 935 .cfi_offset 3, -16 + 936 .cfi_offset 4, -12 + 937 .cfi_offset 5, -8 + 938 .cfi_offset 14, -4 + 939 0002 0446 mov r4, r0 + 940 0004 0D46 mov r5, r1 +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 941 .loc 1 1105 3 is_stmt 1 view .LVU303 +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_SECMEM_SIZE(SecSize)); + 942 .loc 1 1108 3 view .LVU304 +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 943 .loc 1 1109 3 view .LVU305 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 944 .loc 1 1112 3 view .LVU306 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 945 .loc 1 1112 12 is_stmt 0 view .LVU307 + 946 0006 4FF47A70 mov r0, #1000 + 947 .LVL83: +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 948 .loc 1 1112 12 view .LVU308 + 949 000a FFF7FEFF bl FLASH_WaitForLastOperation + 950 .LVL84: +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 951 .loc 1 1114 3 is_stmt 1 view .LVU309 +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 952 .loc 1 1114 6 is_stmt 0 view .LVU310 + 953 000e 50B9 cbnz r0, .L73 +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 954 .loc 1 1117 5 is_stmt 1 view .LVU311 + ARM GAS /tmp/ccudk1nZ.s page 46 + + +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 955 .loc 1 1117 8 is_stmt 0 view .LVU312 + 956 0010 012C cmp r4, #1 + 957 0012 09D0 beq .L76 + 958 .L74: +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 959 .loc 1 1133 5 is_stmt 1 view .LVU313 + 960 0014 084A ldr r2, .L77 + 961 0016 5369 ldr r3, [r2, #20] + 962 0018 43F40033 orr r3, r3, #131072 + 963 001c 5361 str r3, [r2, #20] +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 964 .loc 1 1136 5 view .LVU314 +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 965 .loc 1 1136 14 is_stmt 0 view .LVU315 + 966 001e 4FF47A70 mov r0, #1000 + 967 0022 FFF7FEFF bl FLASH_WaitForLastOperation + 968 .LVL85: + 969 .L73: +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 970 .loc 1 1139 3 is_stmt 1 view .LVU316 +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 971 .loc 1 1140 1 is_stmt 0 view .LVU317 + 972 0026 38BD pop {r3, r4, r5, pc} + 973 .LVL86: + 974 .L76: +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 975 .loc 1 1119 7 is_stmt 1 view .LVU318 + 976 0028 034A ldr r2, .L77 + 977 002a 136F ldr r3, [r2, #112] + 978 002c 23F07F03 bic r3, r3, #127 + 979 0030 2B43 orrs r3, r3, r5 + 980 0032 1367 str r3, [r2, #112] + 981 0034 EEE7 b .L74 + 982 .L78: + 983 0036 00BF .align 2 + 984 .L77: + 985 0038 00200240 .word 1073881088 + 986 .cfi_endproc + 987 .LFE343: + 989 .section .text.FLASH_OB_BootLockConfig,"ax",%progbits + 990 .align 1 + 991 .syntax unified + 992 .thumb + 993 .thumb_func + 995 FLASH_OB_BootLockConfig: + 996 .LVL87: + 997 .LFB344: +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 998 .loc 1 1157 1 view -0 + 999 .cfi_startproc + 1000 @ args = 0, pretend = 0, frame = 0 + 1001 @ frame_needed = 0, uses_anonymous_args = 0 +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 1002 .loc 1 1157 1 is_stmt 0 view .LVU320 + 1003 0000 10B5 push {r4, lr} + 1004 .LCFI7: + ARM GAS /tmp/ccudk1nZ.s page 47 + + + 1005 .cfi_def_cfa_offset 8 + 1006 .cfi_offset 4, -8 + 1007 .cfi_offset 14, -4 + 1008 0002 0446 mov r4, r0 +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1009 .loc 1 1158 3 is_stmt 1 view .LVU321 +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1010 .loc 1 1161 3 view .LVU322 +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1011 .loc 1 1164 3 view .LVU323 +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1012 .loc 1 1164 12 is_stmt 0 view .LVU324 + 1013 0004 4FF47A70 mov r0, #1000 + 1014 .LVL88: +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1015 .loc 1 1164 12 view .LVU325 + 1016 0008 FFF7FEFF bl FLASH_WaitForLastOperation + 1017 .LVL89: +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1018 .loc 1 1166 3 is_stmt 1 view .LVU326 +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1019 .loc 1 1166 6 is_stmt 0 view .LVU327 + 1020 000c 00B1 cbz r0, .L82 + 1021 .L80: + 1022 .LVL90: +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1023 .loc 1 1177 3 is_stmt 1 view .LVU328 +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1024 .loc 1 1178 1 is_stmt 0 view .LVU329 + 1025 000e 10BD pop {r4, pc} + 1026 .LVL91: + 1027 .L82: +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1028 .loc 1 1168 5 is_stmt 1 view .LVU330 + 1029 0010 074A ldr r2, .L83 + 1030 0012 136F ldr r3, [r2, #112] + 1031 0014 23F48033 bic r3, r3, #65536 + 1032 0018 2343 orrs r3, r3, r4 + 1033 001a 1367 str r3, [r2, #112] +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1034 .loc 1 1171 5 view .LVU331 + 1035 001c 5369 ldr r3, [r2, #20] + 1036 001e 43F40033 orr r3, r3, #131072 + 1037 0022 5361 str r3, [r2, #20] +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1038 .loc 1 1174 5 view .LVU332 +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1039 .loc 1 1174 14 is_stmt 0 view .LVU333 + 1040 0024 4FF47A70 mov r0, #1000 + 1041 0028 FFF7FEFF bl FLASH_WaitForLastOperation + 1042 .LVL92: +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1043 .loc 1 1174 14 view .LVU334 + 1044 002c EFE7 b .L80 + 1045 .L84: + 1046 002e 00BF .align 2 + 1047 .L83: + ARM GAS /tmp/ccudk1nZ.s page 48 + + + 1048 0030 00200240 .word 1073881088 + 1049 .cfi_endproc + 1050 .LFE344: + 1052 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits + 1053 .align 1 + 1054 .global HAL_FLASHEx_OBProgram + 1055 .syntax unified + 1056 .thumb + 1057 .thumb_func + 1059 HAL_FLASHEx_OBProgram: + 1060 .LVL93: + 1061 .LFB331: + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1062 .loc 1 311 1 is_stmt 1 view -0 + 1063 .cfi_startproc + 1064 @ args = 0, pretend = 0, frame = 0 + 1065 @ frame_needed = 0, uses_anonymous_args = 0 + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1066 .loc 1 311 1 is_stmt 0 view .LVU336 + 1067 0000 38B5 push {r3, r4, r5, lr} + 1068 .LCFI8: + 1069 .cfi_def_cfa_offset 16 + 1070 .cfi_offset 3, -16 + 1071 .cfi_offset 4, -12 + 1072 .cfi_offset 5, -8 + 1073 .cfi_offset 14, -4 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1074 .loc 1 312 3 is_stmt 1 view .LVU337 + 1075 .LVL94: + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1076 .loc 1 315 3 view .LVU338 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1077 .loc 1 318 3 view .LVU339 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1078 .loc 1 318 3 view .LVU340 + 1079 0002 2E4B ldr r3, .L108 + 1080 0004 1B78 ldrb r3, [r3] @ zero_extendqisi2 + 1081 0006 012B cmp r3, #1 + 1082 0008 56D0 beq .L93 + 1083 000a 0446 mov r4, r0 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1084 .loc 1 318 3 discriminator 2 view .LVU341 + 1085 000c 2B4B ldr r3, .L108 + 1086 000e 0122 movs r2, #1 + 1087 0010 1A70 strb r2, [r3] + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1088 .loc 1 318 3 discriminator 2 view .LVU342 + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1089 .loc 1 320 3 discriminator 2 view .LVU343 + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1090 .loc 1 320 20 is_stmt 0 discriminator 2 view .LVU344 + 1091 0012 0022 movs r2, #0 + 1092 0014 5A60 str r2, [r3, #4] + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1093 .loc 1 323 3 is_stmt 1 discriminator 2 view .LVU345 + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1094 .loc 1 323 15 is_stmt 0 discriminator 2 view .LVU346 + ARM GAS /tmp/ccudk1nZ.s page 49 + + + 1095 0016 0368 ldr r3, [r0] + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1096 .loc 1 323 6 discriminator 2 view .LVU347 + 1097 0018 13F0010F tst r3, #1 + 1098 001c 1DD1 bne .L102 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1099 .loc 1 312 21 view .LVU348 + 1100 001e 0025 movs r5, #0 + 1101 .LVL95: + 1102 .L87: + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1103 .loc 1 333 3 is_stmt 1 view .LVU349 + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1104 .loc 1 333 15 is_stmt 0 view .LVU350 + 1105 0020 2368 ldr r3, [r4] + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1106 .loc 1 333 6 view .LVU351 + 1107 0022 13F0020F tst r3, #2 + 1108 0026 22D1 bne .L103 + 1109 .LVL96: + 1110 .L88: + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1111 .loc 1 343 3 is_stmt 1 view .LVU352 + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1112 .loc 1 343 15 is_stmt 0 view .LVU353 + 1113 0028 2368 ldr r3, [r4] + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1114 .loc 1 343 6 view .LVU354 + 1115 002a 13F0040F tst r3, #4 + 1116 002e 25D1 bne .L104 + 1117 .LVL97: + 1118 .L89: + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1119 .loc 1 353 3 is_stmt 1 view .LVU355 + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1120 .loc 1 353 15 is_stmt 0 view .LVU356 + 1121 0030 2368 ldr r3, [r4] + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1122 .loc 1 353 6 view .LVU357 + 1123 0032 13F0080F tst r3, #8 + 1124 0036 03D0 beq .L90 + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1125 .loc 1 355 5 is_stmt 1 view .LVU358 + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1126 .loc 1 355 16 is_stmt 0 view .LVU359 + 1127 0038 216A ldr r1, [r4, #32] + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1128 .loc 1 355 43 view .LVU360 + 1129 003a 626A ldr r2, [r4, #36] + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1130 .loc 1 355 8 view .LVU361 + 1131 003c 9142 cmp r1, r2 + 1132 003e 25D1 bne .L105 + 1133 .LVL98: + 1134 .L90: + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1135 .loc 1 366 3 is_stmt 1 view .LVU362 + ARM GAS /tmp/ccudk1nZ.s page 50 + + + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1136 .loc 1 366 15 is_stmt 0 view .LVU363 + 1137 0040 2368 ldr r3, [r4] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1138 .loc 1 366 6 view .LVU364 + 1139 0042 13F0200F tst r3, #32 + 1140 0046 28D1 bne .L106 + 1141 .LVL99: + 1142 .L91: + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1143 .loc 1 376 3 is_stmt 1 view .LVU365 + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1144 .loc 1 376 15 is_stmt 0 view .LVU366 + 1145 0048 2368 ldr r3, [r4] + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1146 .loc 1 376 6 view .LVU367 + 1147 004a 13F0100F tst r3, #16 + 1148 004e 2CD1 bne .L107 + 1149 .LVL100: + 1150 .L92: + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1151 .loc 1 386 3 is_stmt 1 view .LVU368 + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1152 .loc 1 386 3 view .LVU369 + 1153 0050 1A4B ldr r3, .L108 + 1154 0052 0022 movs r2, #0 + 1155 0054 1A70 strb r2, [r3] + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1156 .loc 1 386 3 view .LVU370 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1157 .loc 1 388 3 view .LVU371 + 1158 .LVL101: + 1159 .L86: + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1160 .loc 1 389 1 is_stmt 0 view .LVU372 + 1161 0056 2846 mov r0, r5 + 1162 0058 38BD pop {r3, r4, r5, pc} + 1163 .LVL102: + 1164 .L102: + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1165 .loc 1 326 5 is_stmt 1 view .LVU373 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1166 .loc 1 326 9 is_stmt 0 view .LVU374 + 1167 005a C268 ldr r2, [r0, #12] + 1168 005c 8168 ldr r1, [r0, #8] + 1169 005e 4068 ldr r0, [r0, #4] + 1170 .LVL103: + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1171 .loc 1 326 9 view .LVU375 + 1172 0060 FFF7FEFF bl FLASH_OB_WRPConfig + 1173 .LVL104: + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1174 .loc 1 326 8 view .LVU376 + 1175 0064 0546 mov r5, r0 + 1176 0066 0028 cmp r0, #0 + 1177 0068 DAD0 beq .L87 + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 51 + + + 1178 .loc 1 328 14 view .LVU377 + 1179 006a 0125 movs r5, #1 + 1180 006c D8E7 b .L87 + 1181 .LVL105: + 1182 .L103: + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1183 .loc 1 336 5 is_stmt 1 view .LVU378 + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1184 .loc 1 336 9 is_stmt 0 view .LVU379 + 1185 006e 2069 ldr r0, [r4, #16] + 1186 0070 FFF7FEFF bl FLASH_OB_RDPConfig + 1187 .LVL106: + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1188 .loc 1 336 8 view .LVU380 + 1189 0074 0028 cmp r0, #0 + 1190 0076 D7D0 beq .L88 + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1191 .loc 1 338 14 view .LVU381 + 1192 0078 0125 movs r5, #1 + 1193 .LVL107: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1194 .loc 1 338 14 view .LVU382 + 1195 007a D5E7 b .L88 + 1196 .LVL108: + 1197 .L104: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1198 .loc 1 346 5 is_stmt 1 view .LVU383 + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1199 .loc 1 346 9 is_stmt 0 view .LVU384 + 1200 007c A169 ldr r1, [r4, #24] + 1201 007e 6069 ldr r0, [r4, #20] + 1202 0080 FFF7FEFF bl FLASH_OB_UserConfig + 1203 .LVL109: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1204 .loc 1 346 8 view .LVU385 + 1205 0084 0028 cmp r0, #0 + 1206 0086 D3D0 beq .L89 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1207 .loc 1 348 14 view .LVU386 + 1208 0088 0125 movs r5, #1 + 1209 .LVL110: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1210 .loc 1 348 14 view .LVU387 + 1211 008a D1E7 b .L89 + 1212 .LVL111: + 1213 .L105: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1214 .loc 1 358 7 is_stmt 1 view .LVU388 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1215 .loc 1 358 11 is_stmt 0 view .LVU389 + 1216 008c E069 ldr r0, [r4, #28] + 1217 008e FFF7FEFF bl FLASH_OB_PCROPConfig + 1218 .LVL112: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1219 .loc 1 358 10 view .LVU390 + 1220 0092 0028 cmp r0, #0 + 1221 0094 D4D0 beq .L90 + ARM GAS /tmp/ccudk1nZ.s page 52 + + + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1222 .loc 1 360 16 view .LVU391 + 1223 0096 0125 movs r5, #1 + 1224 .LVL113: + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1225 .loc 1 360 16 view .LVU392 + 1226 0098 D2E7 b .L90 + 1227 .LVL114: + 1228 .L106: + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1229 .loc 1 369 5 is_stmt 1 view .LVU393 + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1230 .loc 1 369 9 is_stmt 0 view .LVU394 + 1231 009a 216B ldr r1, [r4, #48] + 1232 009c E06A ldr r0, [r4, #44] + 1233 009e FFF7FEFF bl FLASH_OB_SecMemConfig + 1234 .LVL115: + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1235 .loc 1 369 8 view .LVU395 + 1236 00a2 0028 cmp r0, #0 + 1237 00a4 D0D0 beq .L91 + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1238 .loc 1 371 14 view .LVU396 + 1239 00a6 0125 movs r5, #1 + 1240 .LVL116: + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1241 .loc 1 371 14 view .LVU397 + 1242 00a8 CEE7 b .L91 + 1243 .LVL117: + 1244 .L107: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1245 .loc 1 379 5 is_stmt 1 view .LVU398 + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1246 .loc 1 379 9 is_stmt 0 view .LVU399 + 1247 00aa A06A ldr r0, [r4, #40] + 1248 00ac FFF7FEFF bl FLASH_OB_BootLockConfig + 1249 .LVL118: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1250 .loc 1 379 8 view .LVU400 + 1251 00b0 0028 cmp r0, #0 + 1252 00b2 CDD0 beq .L92 + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1253 .loc 1 381 14 view .LVU401 + 1254 00b4 0125 movs r5, #1 + 1255 .LVL119: + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1256 .loc 1 381 14 view .LVU402 + 1257 00b6 CBE7 b .L92 + 1258 .LVL120: + 1259 .L93: + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1260 .loc 1 318 3 view .LVU403 + 1261 00b8 0225 movs r5, #2 + 1262 00ba CCE7 b .L86 + 1263 .L109: + 1264 .align 2 + 1265 .L108: + ARM GAS /tmp/ccudk1nZ.s page 53 + + + 1266 00bc 00000000 .word pFlash + 1267 .cfi_endproc + 1268 .LFE331: + 1270 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits + 1271 .align 1 + 1272 .global HAL_FLASHEx_OBGetConfig + 1273 .syntax unified + 1274 .thumb + 1275 .thumb_func + 1277 HAL_FLASHEx_OBGetConfig: + 1278 .LVL121: + 1279 .LFB332: + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER); + 1280 .loc 1 400 1 is_stmt 1 view -0 + 1281 .cfi_startproc + 1282 @ args = 0, pretend = 0, frame = 0 + 1283 @ frame_needed = 0, uses_anonymous_args = 0 + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER); + 1284 .loc 1 400 1 is_stmt 0 view .LVU405 + 1285 0000 10B5 push {r4, lr} + 1286 .LCFI9: + 1287 .cfi_def_cfa_offset 8 + 1288 .cfi_offset 4, -8 + 1289 .cfi_offset 14, -4 + 1290 0002 0446 mov r4, r0 + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1291 .loc 1 401 3 is_stmt 1 view .LVU406 + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1292 .loc 1 401 23 is_stmt 0 view .LVU407 + 1293 0004 0623 movs r3, #6 + 1294 0006 0360 str r3, [r0] + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1295 .loc 1 407 3 is_stmt 1 view .LVU408 + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1296 .loc 1 407 15 is_stmt 0 view .LVU409 + 1297 0008 4068 ldr r0, [r0, #4] + 1298 .LVL122: + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1299 .loc 1 407 6 view .LVU410 + 1300 000a 0128 cmp r0, #1 + 1301 000c 13D9 bls .L115 + 1302 .L111: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1303 .loc 1 416 3 is_stmt 1 view .LVU411 + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1304 .loc 1 416 23 is_stmt 0 view .LVU412 + 1305 000e FFF7FEFF bl FLASH_OB_GetRDP + 1306 .LVL123: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1307 .loc 1 416 21 view .LVU413 + 1308 0012 2061 str r0, [r4, #16] + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1309 .loc 1 419 3 is_stmt 1 view .LVU414 + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1310 .loc 1 419 25 is_stmt 0 view .LVU415 + 1311 0014 FFF7FEFF bl FLASH_OB_GetUser + 1312 .LVL124: + ARM GAS /tmp/ccudk1nZ.s page 54 + + + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1313 .loc 1 419 23 view .LVU416 + 1314 0018 A061 str r0, [r4, #24] + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1315 .loc 1 424 3 is_stmt 1 view .LVU417 + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1316 .loc 1 424 14 is_stmt 0 view .LVU418 + 1317 001a E369 ldr r3, [r4, #28] + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1318 .loc 1 424 6 view .LVU419 + 1319 001c 012B cmp r3, #1 + 1320 001e 13D0 beq .L116 + 1321 .L112: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1322 .loc 1 432 3 is_stmt 1 view .LVU420 + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1323 .loc 1 432 10 is_stmt 0 view .LVU421 + 1324 0020 2368 ldr r3, [r4] + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1325 .loc 1 432 23 view .LVU422 + 1326 0022 43F01003 orr r3, r3, #16 + 1327 0026 2360 str r3, [r4] + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1328 .loc 1 435 3 is_stmt 1 view .LVU423 + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1329 .loc 1 435 29 is_stmt 0 view .LVU424 + 1330 0028 FFF7FEFF bl FLASH_OB_GetBootLock + 1331 .LVL125: + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1332 .loc 1 435 27 view .LVU425 + 1333 002c A062 str r0, [r4, #40] + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1334 .loc 1 441 3 is_stmt 1 view .LVU426 + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1335 .loc 1 441 14 is_stmt 0 view .LVU427 + 1336 002e E06A ldr r0, [r4, #44] + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1337 .loc 1 441 6 view .LVU428 + 1338 0030 0128 cmp r0, #1 + 1339 0032 16D0 beq .L117 + 1340 .L110: + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1341 .loc 1 447 1 view .LVU429 + 1342 0034 10BD pop {r4, pc} + 1343 .LVL126: + 1344 .L115: + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get write protection on the selected area */ + 1345 .loc 1 410 5 is_stmt 1 view .LVU430 + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get write protection on the selected area */ + 1346 .loc 1 410 25 is_stmt 0 view .LVU431 + 1347 0036 2246 mov r2, r4 + 1348 0038 0723 movs r3, #7 + 1349 003a 42F80C3B str r3, [r2], #12 + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1350 .loc 1 412 5 is_stmt 1 view .LVU432 + 1351 003e 04F10801 add r1, r4, #8 + 1352 0042 FFF7FEFF bl FLASH_OB_GetWRP + ARM GAS /tmp/ccudk1nZ.s page 55 + + + 1353 .LVL127: + 1354 0046 E2E7 b .L111 + 1355 .L116: + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */ + 1356 .loc 1 427 5 view .LVU433 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */ + 1357 .loc 1 427 12 is_stmt 0 view .LVU434 + 1358 0048 2368 ldr r3, [r4] + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */ + 1359 .loc 1 427 25 view .LVU435 + 1360 004a 43F00803 orr r3, r3, #8 + 1361 004e 2246 mov r2, r4 + 1362 0050 42F8243B str r3, [r2], #36 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1363 .loc 1 429 5 is_stmt 1 view .LVU436 + 1364 0054 04F12001 add r1, r4, #32 + 1365 0058 04F11C00 add r0, r4, #28 + 1366 005c FFF7FEFF bl FLASH_OB_GetPCROP + 1367 .LVL128: + 1368 0060 DEE7 b .L112 + 1369 .L117: + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize)); + 1370 .loc 1 444 5 view .LVU437 + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize)); + 1371 .loc 1 444 12 is_stmt 0 view .LVU438 + 1372 0062 2368 ldr r3, [r4] + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize)); + 1373 .loc 1 444 25 view .LVU439 + 1374 0064 43F02003 orr r3, r3, #32 + 1375 0068 2146 mov r1, r4 + 1376 006a 41F8303B str r3, [r1], #48 + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1377 .loc 1 445 5 is_stmt 1 view .LVU440 + 1378 006e FFF7FEFF bl FLASH_OB_GetSecMem + 1379 .LVL129: + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1380 .loc 1 447 1 is_stmt 0 view .LVU441 + 1381 0072 DFE7 b .L110 + 1382 .cfi_endproc + 1383 .LFE332: + 1385 .section .text.HAL_FLASHEx_EnableSecMemProtection,"ax",%progbits + 1386 .align 1 + 1387 .global HAL_FLASHEx_EnableSecMemProtection + 1388 .syntax unified + 1389 .thumb + 1390 .thumb_func + 1392 HAL_FLASHEx_EnableSecMemProtection: + 1393 .LVL130: + 1394 .LFB333: + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK) + 1395 .loc 1 460 1 is_stmt 1 view -0 + 1396 .cfi_startproc + 1397 @ args = 0, pretend = 0, frame = 0 + 1398 @ frame_needed = 0, uses_anonymous_args = 0 + 1399 @ link register save eliminated. + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1400 .loc 1 482 5 view .LVU443 + ARM GAS /tmp/ccudk1nZ.s page 56 + + + 1401 0000 034A ldr r2, .L119 + 1402 0002 5369 ldr r3, [r2, #20] + 1403 0004 43F08053 orr r3, r3, #268435456 + 1404 0008 5361 str r3, [r2, #20] + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1405 .loc 1 485 3 view .LVU444 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1406 .loc 1 486 1 is_stmt 0 view .LVU445 + 1407 000a 0020 movs r0, #0 + 1408 .LVL131: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1409 .loc 1 486 1 view .LVU446 + 1410 000c 7047 bx lr + 1411 .L120: + 1412 000e 00BF .align 2 + 1413 .L119: + 1414 0010 00200240 .word 1073881088 + 1415 .cfi_endproc + 1416 .LFE333: + 1418 .section .text.HAL_FLASHEx_EnableDebugger,"ax",%progbits + 1419 .align 1 + 1420 .global HAL_FLASHEx_EnableDebugger + 1421 .syntax unified + 1422 .thumb + 1423 .thumb_func + 1425 HAL_FLASHEx_EnableDebugger: + 1426 .LFB334: + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR |= FLASH_ACR_DBG_SWEN; + 1427 .loc 1 494 1 is_stmt 1 view -0 + 1428 .cfi_startproc + 1429 @ args = 0, pretend = 0, frame = 0 + 1430 @ frame_needed = 0, uses_anonymous_args = 0 + 1431 @ link register save eliminated. + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1432 .loc 1 495 3 view .LVU448 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1433 .loc 1 495 8 is_stmt 0 view .LVU449 + 1434 0000 024A ldr r2, .L122 + 1435 0002 1368 ldr r3, [r2] + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1436 .loc 1 495 14 view .LVU450 + 1437 0004 43F48023 orr r3, r3, #262144 + 1438 0008 1360 str r3, [r2] + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1439 .loc 1 496 1 view .LVU451 + 1440 000a 7047 bx lr + 1441 .L123: + 1442 .align 2 + 1443 .L122: + 1444 000c 00200240 .word 1073881088 + 1445 .cfi_endproc + 1446 .LFE334: + 1448 .section .text.HAL_FLASHEx_DisableDebugger,"ax",%progbits + 1449 .align 1 + 1450 .global HAL_FLASHEx_DisableDebugger + 1451 .syntax unified + 1452 .thumb + ARM GAS /tmp/ccudk1nZ.s page 57 + + + 1453 .thumb_func + 1455 HAL_FLASHEx_DisableDebugger: + 1456 .LFB335: + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR &= ~FLASH_ACR_DBG_SWEN; + 1457 .loc 1 506 1 is_stmt 1 view -0 + 1458 .cfi_startproc + 1459 @ args = 0, pretend = 0, frame = 0 + 1460 @ frame_needed = 0, uses_anonymous_args = 0 + 1461 @ link register save eliminated. + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1462 .loc 1 507 3 view .LVU453 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1463 .loc 1 507 8 is_stmt 0 view .LVU454 + 1464 0000 024A ldr r2, .L125 + 1465 0002 1368 ldr r3, [r2] + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1466 .loc 1 507 14 view .LVU455 + 1467 0004 23F48023 bic r3, r3, #262144 + 1468 0008 1360 str r3, [r2] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1469 .loc 1 508 1 view .LVU456 + 1470 000a 7047 bx lr + 1471 .L126: + 1472 .align 2 + 1473 .L125: + 1474 000c 00200240 .word 1073881088 + 1475 .cfi_endproc + 1476 .LFE335: + 1478 .section .text.FLASH_PageErase,"ax",%progbits + 1479 .align 1 + 1480 .global FLASH_PageErase + 1481 .syntax unified + 1482 .thumb + 1483 .thumb_func + 1485 FLASH_PageErase: + 1486 .LVL132: + 1487 .LFB337: + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */ + 1488 .loc 1 579 1 is_stmt 1 view -0 + 1489 .cfi_startproc + 1490 @ args = 0, pretend = 0, frame = 0 + 1491 @ frame_needed = 0, uses_anonymous_args = 0 + 1492 @ link register save eliminated. + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1493 .loc 1 581 3 view .LVU458 + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER); + 1494 .loc 1 604 3 view .LVU459 + 1495 0000 084B ldr r3, .L128 + 1496 0002 5A69 ldr r2, [r3, #20] + 1497 0004 22F4FC72 bic r2, r2, #504 + 1498 0008 C000 lsls r0, r0, #3 + 1499 .LVL133: + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER); + 1500 .loc 1 604 3 is_stmt 0 view .LVU460 + 1501 000a 00F4FF60 and r0, r0, #2040 + 1502 000e 0243 orrs r2, r2, r0 + 1503 0010 5A61 str r2, [r3, #20] + ARM GAS /tmp/ccudk1nZ.s page 58 + + + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); + 1504 .loc 1 605 3 is_stmt 1 view .LVU461 + 1505 0012 5A69 ldr r2, [r3, #20] + 1506 0014 42F00202 orr r2, r2, #2 + 1507 0018 5A61 str r2, [r3, #20] + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1508 .loc 1 606 3 view .LVU462 + 1509 001a 5A69 ldr r2, [r3, #20] + 1510 001c 42F48032 orr r2, r2, #65536 + 1511 0020 5A61 str r2, [r3, #20] + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1512 .loc 1 607 1 is_stmt 0 view .LVU463 + 1513 0022 7047 bx lr + 1514 .L129: + 1515 .align 2 + 1516 .L128: + 1517 0024 00200240 .word 1073881088 + 1518 .cfi_endproc + 1519 .LFE337: + 1521 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits + 1522 .align 1 + 1523 .global HAL_FLASHEx_Erase_IT + 1524 .syntax unified + 1525 .thumb + 1526 .thumb_func + 1528 HAL_FLASHEx_Erase_IT: + 1529 .LVL134: + 1530 .LFB330: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1531 .loc 1 238 1 is_stmt 1 view -0 + 1532 .cfi_startproc + 1533 @ args = 0, pretend = 0, frame = 0 + 1534 @ frame_needed = 0, uses_anonymous_args = 0 + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1535 .loc 1 239 3 view .LVU465 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1536 .loc 1 242 3 view .LVU466 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1537 .loc 1 242 3 view .LVU467 + 1538 0000 294A ldr r2, .L143 + 1539 0002 1278 ldrb r2, [r2] @ zero_extendqisi2 + 1540 0004 012A cmp r2, #1 + 1541 0006 4DD0 beq .L137 + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1542 .loc 1 238 1 is_stmt 0 discriminator 2 view .LVU468 + 1543 0008 08B5 push {r3, lr} + 1544 .LCFI10: + 1545 .cfi_def_cfa_offset 8 + 1546 .cfi_offset 3, -8 + 1547 .cfi_offset 14, -4 + 1548 000a 0346 mov r3, r0 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1549 .loc 1 242 3 is_stmt 1 discriminator 2 view .LVU469 + 1550 000c 264A ldr r2, .L143 + 1551 000e 0121 movs r1, #1 + 1552 0010 1170 strb r1, [r2] + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + ARM GAS /tmp/ccudk1nZ.s page 59 + + + 1553 .loc 1 242 3 discriminator 2 view .LVU470 + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1554 .loc 1 245 3 discriminator 2 view .LVU471 + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1555 .loc 1 247 3 discriminator 2 view .LVU472 + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1556 .loc 1 247 20 is_stmt 0 discriminator 2 view .LVU473 + 1557 0012 0021 movs r1, #0 + 1558 0014 5160 str r1, [r2, #4] + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1559 .loc 1 250 3 is_stmt 1 discriminator 2 view .LVU474 + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1560 .loc 1 250 7 is_stmt 0 discriminator 2 view .LVU475 + 1561 0016 254A ldr r2, .L143+4 + 1562 0018 1268 ldr r2, [r2] + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1563 .loc 1 250 6 discriminator 2 view .LVU476 + 1564 001a 12F4007F tst r2, #512 + 1565 001e 27D0 beq .L132 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1566 .loc 1 252 5 is_stmt 1 view .LVU477 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1567 .loc 1 252 9 is_stmt 0 view .LVU478 + 1568 0020 224A ldr r2, .L143+4 + 1569 0022 1268 ldr r2, [r2] + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1570 .loc 1 252 8 view .LVU479 + 1571 0024 12F4806F tst r2, #1024 + 1572 0028 1ED0 beq .L133 + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED; + 1573 .loc 1 255 7 is_stmt 1 view .LVU480 + 1574 002a 2049 ldr r1, .L143+4 + 1575 002c 0A68 ldr r2, [r1] + 1576 002e 22F48062 bic r2, r2, #1024 + 1577 0032 0A60 str r2, [r1] + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1578 .loc 1 256 7 view .LVU481 + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1579 .loc 1 256 32 is_stmt 0 view .LVU482 + 1580 0034 1C4A ldr r2, .L143 + 1581 0036 0321 movs r1, #3 + 1582 0038 1177 strb r1, [r2, #28] + 1583 .L134: + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1584 .loc 1 275 3 is_stmt 1 discriminator 4 view .LVU483 + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1585 .loc 1 275 3 discriminator 4 view .LVU484 + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1586 .loc 1 275 3 discriminator 4 view .LVU485 + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1587 .loc 1 275 3 discriminator 4 view .LVU486 + 1588 003a 1C49 ldr r1, .L143+4 + 1589 003c 4A69 ldr r2, [r1, #20] + 1590 003e 42F04072 orr r2, r2, #50331648 + 1591 0042 4A61 str r2, [r1, #20] + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1592 .loc 1 275 3 discriminator 4 view .LVU487 + ARM GAS /tmp/ccudk1nZ.s page 60 + + + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1593 .loc 1 277 3 discriminator 4 view .LVU488 + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1594 .loc 1 277 27 is_stmt 0 discriminator 4 view .LVU489 + 1595 0044 5968 ldr r1, [r3, #4] + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1596 .loc 1 277 15 discriminator 4 view .LVU490 + 1597 0046 184A ldr r2, .L143 + 1598 0048 1161 str r1, [r2, #16] + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1599 .loc 1 279 3 is_stmt 1 discriminator 4 view .LVU491 + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1600 .loc 1 279 17 is_stmt 0 discriminator 4 view .LVU492 + 1601 004a 1A68 ldr r2, [r3] + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1602 .loc 1 279 6 discriminator 4 view .LVU493 + 1603 004c 012A cmp r2, #1 + 1604 004e 21D0 beq .L142 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages; + 1605 .loc 1 288 5 is_stmt 1 view .LVU494 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages; + 1606 .loc 1 288 29 is_stmt 0 view .LVU495 + 1607 0050 154A ldr r2, .L143 + 1608 0052 0121 movs r1, #1 + 1609 0054 1172 strb r1, [r2, #8] + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->Page; + 1610 .loc 1 289 5 is_stmt 1 view .LVU496 + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->Page; + 1611 .loc 1 289 39 is_stmt 0 view .LVU497 + 1612 0056 D968 ldr r1, [r3, #12] + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->Page; + 1613 .loc 1 289 27 view .LVU498 + 1614 0058 9161 str r1, [r2, #24] + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1615 .loc 1 290 5 is_stmt 1 view .LVU499 + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1616 .loc 1 290 29 is_stmt 0 view .LVU500 + 1617 005a 9868 ldr r0, [r3, #8] + 1618 .LVL135: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1619 .loc 1 290 17 view .LVU501 + 1620 005c 5061 str r0, [r2, #20] + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1621 .loc 1 293 5 is_stmt 1 view .LVU502 + 1622 005e 5968 ldr r1, [r3, #4] + 1623 0060 FFF7FEFF bl FLASH_PageErase + 1624 .LVL136: + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1625 .loc 1 296 10 is_stmt 0 view .LVU503 + 1626 0064 0020 movs r0, #0 + 1627 .L131: + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1628 .loc 1 297 1 view .LVU504 + 1629 0066 08BD pop {r3, pc} + 1630 .LVL137: + 1631 .L133: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 61 + + + 1632 .loc 1 260 7 is_stmt 1 view .LVU505 + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1633 .loc 1 260 32 is_stmt 0 view .LVU506 + 1634 0068 0F4A ldr r2, .L143 + 1635 006a 0121 movs r1, #1 + 1636 006c 1177 strb r1, [r2, #28] + 1637 006e E4E7 b .L134 + 1638 .L132: + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1639 .loc 1 263 8 is_stmt 1 view .LVU507 + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1640 .loc 1 263 12 is_stmt 0 view .LVU508 + 1641 0070 0E4A ldr r2, .L143+4 + 1642 0072 1268 ldr r2, [r2] + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1643 .loc 1 263 11 view .LVU509 + 1644 0074 12F4806F tst r2, #1024 + 1645 0078 08D0 beq .L135 + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + 1646 .loc 1 266 5 is_stmt 1 view .LVU510 + 1647 007a 0C49 ldr r1, .L143+4 + 1648 007c 0A68 ldr r2, [r1] + 1649 007e 22F48062 bic r2, r2, #1024 + 1650 0082 0A60 str r2, [r1] + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1651 .loc 1 267 5 view .LVU511 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1652 .loc 1 267 30 is_stmt 0 view .LVU512 + 1653 0084 084A ldr r2, .L143 + 1654 0086 0221 movs r1, #2 + 1655 0088 1177 strb r1, [r2, #28] + 1656 008a D6E7 b .L134 + 1657 .L135: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1658 .loc 1 271 5 is_stmt 1 view .LVU513 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1659 .loc 1 271 30 is_stmt 0 view .LVU514 + 1660 008c 064A ldr r2, .L143 + 1661 008e 0021 movs r1, #0 + 1662 0090 1177 strb r1, [r2, #28] + 1663 0092 D2E7 b .L134 + 1664 .L142: + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); + 1665 .loc 1 282 5 is_stmt 1 view .LVU515 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); + 1666 .loc 1 282 29 is_stmt 0 view .LVU516 + 1667 0094 044A ldr r2, .L143 + 1668 0096 0221 movs r1, #2 + 1669 0098 1172 strb r1, [r2, #8] + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1670 .loc 1 283 5 is_stmt 1 view .LVU517 + 1671 009a 5868 ldr r0, [r3, #4] + 1672 .LVL138: + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1673 .loc 1 283 5 is_stmt 0 view .LVU518 + 1674 009c FFF7FEFF bl FLASH_MassErase + 1675 .LVL139: + ARM GAS /tmp/ccudk1nZ.s page 62 + + + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1676 .loc 1 296 10 view .LVU519 + 1677 00a0 0020 movs r0, #0 + 1678 00a2 E0E7 b .L131 + 1679 .LVL140: + 1680 .L137: + 1681 .LCFI11: + 1682 .cfi_def_cfa_offset 0 + 1683 .cfi_restore 3 + 1684 .cfi_restore 14 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1685 .loc 1 242 3 view .LVU520 + 1686 00a4 0220 movs r0, #2 + 1687 .LVL141: + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1688 .loc 1 297 1 view .LVU521 + 1689 00a6 7047 bx lr + 1690 .L144: + 1691 .align 2 + 1692 .L143: + 1693 00a8 00000000 .word pFlash + 1694 00ac 00200240 .word 1073881088 + 1695 .cfi_endproc + 1696 .LFE330: + 1698 .section .text.FLASH_FlushCaches,"ax",%progbits + 1699 .align 1 + 1700 .global FLASH_FlushCaches + 1701 .syntax unified + 1702 .thumb + 1703 .thumb_func + 1705 FLASH_FlushCaches: + 1706 .LFB338: + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_CacheTypeDef cache = pFlash.CacheToReactivate; + 1707 .loc 1 614 1 is_stmt 1 view -0 + 1708 .cfi_startproc + 1709 @ args = 0, pretend = 0, frame = 0 + 1710 @ frame_needed = 0, uses_anonymous_args = 0 + 1711 @ link register save eliminated. + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1712 .loc 1 615 3 view .LVU523 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1713 .loc 1 615 22 is_stmt 0 view .LVU524 + 1714 0000 164B ldr r3, .L150 + 1715 0002 1B7F ldrb r3, [r3, #28] @ zero_extendqisi2 + 1716 0004 DBB2 uxtb r3, r3 + 1717 .LVL142: + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1718 .loc 1 618 3 is_stmt 1 view .LVU525 + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1719 .loc 1 618 6 is_stmt 0 view .LVU526 + 1720 0006 012B cmp r3, #1 + 1721 0008 01D0 beq .L146 + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1722 .loc 1 618 45 discriminator 1 view .LVU527 + 1723 000a 032B cmp r3, #3 + 1724 000c 10D1 bne .L147 + 1725 .L146: + ARM GAS /tmp/ccudk1nZ.s page 63 + + + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset instruction cache */ + 1726 .loc 1 622 5 is_stmt 1 view .LVU528 + 1727 000e 144A ldr r2, .L150+4 + 1728 0010 1168 ldr r1, [r2] + 1729 0012 21F40071 bic r1, r1, #512 + 1730 0016 1160 str r1, [r2] + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */ + 1731 .loc 1 624 5 view .LVU529 + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */ + 1732 .loc 1 624 5 view .LVU530 + 1733 0018 1168 ldr r1, [r2] + 1734 001a 41F40061 orr r1, r1, #2048 + 1735 001e 1160 str r1, [r2] + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */ + 1736 .loc 1 624 5 view .LVU531 + 1737 0020 1168 ldr r1, [r2] + 1738 0022 21F40061 bic r1, r1, #2048 + 1739 0026 1160 str r1, [r2] + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */ + 1740 .loc 1 624 5 view .LVU532 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1741 .loc 1 626 5 view .LVU533 + 1742 0028 1168 ldr r1, [r2] + 1743 002a 41F40071 orr r1, r1, #512 + 1744 002e 1160 str r1, [r2] + 1745 .L147: + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1746 .loc 1 630 3 view .LVU534 + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1747 .loc 1 630 45 is_stmt 0 view .LVU535 + 1748 0030 023B subs r3, r3, #2 + 1749 .LVL143: + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1750 .loc 1 630 45 view .LVU536 + 1751 0032 DBB2 uxtb r3, r3 + 1752 .LVL144: + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED)) + 1753 .loc 1 630 6 view .LVU537 + 1754 0034 012B cmp r3, #1 + 1755 0036 03D9 bls .L149 + 1756 .L148: + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1757 .loc 1 640 3 is_stmt 1 view .LVU538 + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1758 .loc 1 640 28 is_stmt 0 view .LVU539 + 1759 0038 084B ldr r3, .L150 + 1760 003a 0022 movs r2, #0 + 1761 003c 1A77 strb r2, [r3, #28] + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1762 .loc 1 641 1 view .LVU540 + 1763 003e 7047 bx lr + 1764 .L149: + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */ + 1765 .loc 1 634 5 is_stmt 1 view .LVU541 + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */ + 1766 .loc 1 634 5 view .LVU542 + 1767 0040 074B ldr r3, .L150+4 + ARM GAS /tmp/ccudk1nZ.s page 64 + + + 1768 0042 1A68 ldr r2, [r3] + 1769 0044 42F48052 orr r2, r2, #4096 + 1770 0048 1A60 str r2, [r3] + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */ + 1771 .loc 1 634 5 view .LVU543 + 1772 004a 1A68 ldr r2, [r3] + 1773 004c 22F48052 bic r2, r2, #4096 + 1774 0050 1A60 str r2, [r3] + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */ + 1775 .loc 1 634 5 view .LVU544 + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1776 .loc 1 636 5 view .LVU545 + 1777 0052 1A68 ldr r2, [r3] + 1778 0054 42F48062 orr r2, r2, #1024 + 1779 0058 1A60 str r2, [r3] + 1780 005a EDE7 b .L148 + 1781 .L151: + 1782 .align 2 + 1783 .L150: + 1784 005c 00000000 .word pFlash + 1785 0060 00200240 .word 1073881088 + 1786 .cfi_endproc + 1787 .LFE338: + 1789 .section .text.HAL_FLASHEx_Erase,"ax",%progbits + 1790 .align 1 + 1791 .global HAL_FLASHEx_Erase + 1792 .syntax unified + 1793 .thumb + 1794 .thumb_func + 1796 HAL_FLASHEx_Erase: + 1797 .LVL145: + 1798 .LFB329: + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 1799 .loc 1 139 1 view -0 + 1800 .cfi_startproc + 1801 @ args = 0, pretend = 0, frame = 0 + 1802 @ frame_needed = 0, uses_anonymous_args = 0 + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status; + 1803 .loc 1 139 1 is_stmt 0 view .LVU547 + 1804 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 1805 .LCFI12: + 1806 .cfi_def_cfa_offset 24 + 1807 .cfi_offset 3, -24 + 1808 .cfi_offset 4, -20 + 1809 .cfi_offset 5, -16 + 1810 .cfi_offset 6, -12 + 1811 .cfi_offset 7, -8 + 1812 .cfi_offset 14, -4 + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t page_index; + 1813 .loc 1 140 3 is_stmt 1 view .LVU548 + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1814 .loc 1 141 3 view .LVU549 + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1815 .loc 1 144 3 view .LVU550 + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1816 .loc 1 147 3 view .LVU551 + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + ARM GAS /tmp/ccudk1nZ.s page 65 + + + 1817 .loc 1 147 3 view .LVU552 + 1818 0002 384B ldr r3, .L168 + 1819 0004 1B78 ldrb r3, [r3] @ zero_extendqisi2 + 1820 0006 012B cmp r3, #1 + 1821 0008 69D0 beq .L164 + 1822 000a 0446 mov r4, r0 + 1823 000c 0E46 mov r6, r1 + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1824 .loc 1 147 3 discriminator 2 view .LVU553 + 1825 000e 354B ldr r3, .L168 + 1826 0010 0122 movs r2, #1 + 1827 0012 1A70 strb r2, [r3] + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1828 .loc 1 147 3 discriminator 2 view .LVU554 + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1829 .loc 1 150 3 discriminator 2 view .LVU555 + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1830 .loc 1 150 12 is_stmt 0 discriminator 2 view .LVU556 + 1831 0014 4FF47A70 mov r0, #1000 + 1832 .LVL146: + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1833 .loc 1 150 12 discriminator 2 view .LVU557 + 1834 0018 FFF7FEFF bl FLASH_WaitForLastOperation + 1835 .LVL147: + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1836 .loc 1 152 3 is_stmt 1 discriminator 2 view .LVU558 + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1837 .loc 1 152 6 is_stmt 0 discriminator 2 view .LVU559 + 1838 001c 0746 mov r7, r0 + 1839 001e 0028 cmp r0, #0 + 1840 0020 58D1 bne .L154 + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1841 .loc 1 154 5 is_stmt 1 view .LVU560 + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1842 .loc 1 154 22 is_stmt 0 view .LVU561 + 1843 0022 304B ldr r3, .L168 + 1844 0024 0022 movs r2, #0 + 1845 0026 5A60 str r2, [r3, #4] + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1846 .loc 1 157 5 is_stmt 1 view .LVU562 + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1847 .loc 1 157 9 is_stmt 0 view .LVU563 + 1848 0028 2F4B ldr r3, .L168+4 + 1849 002a 1B68 ldr r3, [r3] + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1850 .loc 1 157 8 view .LVU564 + 1851 002c 13F4007F tst r3, #512 + 1852 0030 2DD0 beq .L155 + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1853 .loc 1 159 7 is_stmt 1 view .LVU565 + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1854 .loc 1 159 11 is_stmt 0 view .LVU566 + 1855 0032 2D4B ldr r3, .L168+4 + 1856 0034 1B68 ldr r3, [r3] + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1857 .loc 1 159 10 view .LVU567 + 1858 0036 13F4806F tst r3, #1024 + ARM GAS /tmp/ccudk1nZ.s page 66 + + + 1859 003a 24D0 beq .L156 + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED; + 1860 .loc 1 162 9 is_stmt 1 view .LVU568 + 1861 003c 2A4A ldr r2, .L168+4 + 1862 003e 1368 ldr r3, [r2] + 1863 0040 23F48063 bic r3, r3, #1024 + 1864 0044 1360 str r3, [r2] + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1865 .loc 1 163 9 view .LVU569 + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1866 .loc 1 163 34 is_stmt 0 view .LVU570 + 1867 0046 274B ldr r3, .L168 + 1868 0048 0322 movs r2, #3 + 1869 004a 1A77 strb r2, [r3, #28] + 1870 .L157: + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1871 .loc 1 181 5 is_stmt 1 view .LVU571 + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1872 .loc 1 181 19 is_stmt 0 view .LVU572 + 1873 004c 2368 ldr r3, [r4] + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1874 .loc 1 181 8 view .LVU573 + 1875 004e 012B cmp r3, #1 + 1876 0050 2FD0 beq .L166 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1877 .loc 1 200 7 is_stmt 1 view .LVU574 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1878 .loc 1 200 18 is_stmt 0 view .LVU575 + 1879 0052 4FF0FF33 mov r3, #-1 + 1880 0056 3360 str r3, [r6] + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1881 .loc 1 202 7 is_stmt 1 view .LVU576 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1882 .loc 1 202 23 is_stmt 0 view .LVU577 + 1883 0058 A568 ldr r5, [r4, #8] + 1884 .LVL148: + 1885 .L161: + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1886 .loc 1 202 54 is_stmt 1 discriminator 1 view .LVU578 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1887 .loc 1 202 67 is_stmt 0 discriminator 1 view .LVU579 + 1888 005a A368 ldr r3, [r4, #8] + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1889 .loc 1 202 86 discriminator 1 view .LVU580 + 1890 005c E268 ldr r2, [r4, #12] + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1891 .loc 1 202 74 discriminator 1 view .LVU581 + 1892 005e 1344 add r3, r3, r2 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1893 .loc 1 202 54 discriminator 1 view .LVU582 + 1894 0060 AB42 cmp r3, r5 + 1895 0062 35D9 bls .L160 + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1896 .loc 1 204 9 is_stmt 1 view .LVU583 + 1897 0064 6168 ldr r1, [r4, #4] + 1898 0066 2846 mov r0, r5 + 1899 0068 FFF7FEFF bl FLASH_PageErase + ARM GAS /tmp/ccudk1nZ.s page 67 + + + 1900 .LVL149: + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1901 .loc 1 207 9 view .LVU584 + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1902 .loc 1 207 18 is_stmt 0 view .LVU585 + 1903 006c 4FF47A70 mov r0, #1000 + 1904 0070 FFF7FEFF bl FLASH_WaitForLastOperation + 1905 .LVL150: + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1906 .loc 1 210 9 is_stmt 1 view .LVU586 + 1907 0074 1C4A ldr r2, .L168+4 + 1908 0076 5369 ldr r3, [r2, #20] + 1909 0078 23F4FD73 bic r3, r3, #506 + 1910 007c 5361 str r3, [r2, #20] + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1911 .loc 1 212 9 view .LVU587 + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1912 .loc 1 212 12 is_stmt 0 view .LVU588 + 1913 007e 0746 mov r7, r0 + 1914 0080 28BB cbnz r0, .L167 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1915 .loc 1 202 108 is_stmt 1 discriminator 2 view .LVU589 + 1916 0082 0135 adds r5, r5, #1 + 1917 .LVL151: + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1918 .loc 1 202 108 is_stmt 0 discriminator 2 view .LVU590 + 1919 0084 E9E7 b .L161 + 1920 .LVL152: + 1921 .L156: + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1922 .loc 1 167 9 is_stmt 1 view .LVU591 + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1923 .loc 1 167 34 is_stmt 0 view .LVU592 + 1924 0086 174B ldr r3, .L168 + 1925 0088 0122 movs r2, #1 + 1926 008a 1A77 strb r2, [r3, #28] + 1927 008c DEE7 b .L157 + 1928 .L155: + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1929 .loc 1 170 10 is_stmt 1 view .LVU593 + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1930 .loc 1 170 14 is_stmt 0 view .LVU594 + 1931 008e 164B ldr r3, .L168+4 + 1932 0090 1B68 ldr r3, [r3] + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** { + 1933 .loc 1 170 13 view .LVU595 + 1934 0092 13F4806F tst r3, #1024 + 1935 0096 08D0 beq .L158 + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED; + 1936 .loc 1 173 7 is_stmt 1 view .LVU596 + 1937 0098 134A ldr r2, .L168+4 + 1938 009a 1368 ldr r3, [r2] + 1939 009c 23F48063 bic r3, r3, #1024 + 1940 00a0 1360 str r3, [r2] + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1941 .loc 1 174 7 view .LVU597 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + ARM GAS /tmp/ccudk1nZ.s page 68 + + + 1942 .loc 1 174 32 is_stmt 0 view .LVU598 + 1943 00a2 104B ldr r3, .L168 + 1944 00a4 0222 movs r2, #2 + 1945 00a6 1A77 strb r2, [r3, #28] + 1946 00a8 D0E7 b .L157 + 1947 .L158: + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1948 .loc 1 178 7 is_stmt 1 view .LVU599 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1949 .loc 1 178 32 is_stmt 0 view .LVU600 + 1950 00aa 0E4B ldr r3, .L168 + 1951 00ac 0022 movs r2, #0 + 1952 00ae 1A77 strb r2, [r3, #28] + 1953 00b0 CCE7 b .L157 + 1954 .L166: + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1955 .loc 1 184 7 is_stmt 1 view .LVU601 + 1956 00b2 6068 ldr r0, [r4, #4] + 1957 .LVL153: + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1958 .loc 1 184 7 is_stmt 0 view .LVU602 + 1959 00b4 FFF7FEFF bl FLASH_MassErase + 1960 .LVL154: + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1961 .loc 1 187 7 is_stmt 1 view .LVU603 + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1962 .loc 1 187 16 is_stmt 0 view .LVU604 + 1963 00b8 4FF47A70 mov r0, #1000 + 1964 00bc FFF7FEFF bl FLASH_WaitForLastOperation + 1965 .LVL155: + 1966 00c0 0746 mov r7, r0 + 1967 .LVL156: + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif + 1968 .loc 1 194 7 is_stmt 1 view .LVU605 + 1969 00c2 094A ldr r2, .L168+4 + 1970 00c4 5369 ldr r3, [r2, #20] + 1971 00c6 23F00403 bic r3, r3, #4 + 1972 00ca 5361 str r3, [r2, #20] + 1973 00cc 00E0 b .L160 + 1974 .LVL157: + 1975 .L167: + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** break; + 1976 .loc 1 215 11 view .LVU606 + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** break; + 1977 .loc 1 215 22 is_stmt 0 view .LVU607 + 1978 00ce 3560 str r5, [r6] + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1979 .loc 1 216 11 is_stmt 1 view .LVU608 + 1980 .LVL158: + 1981 .L160: + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1982 .loc 1 222 5 view .LVU609 + 1983 00d0 FFF7FEFF bl FLASH_FlushCaches + 1984 .LVL159: + 1985 .L154: + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1986 .loc 1 226 3 view .LVU610 + ARM GAS /tmp/ccudk1nZ.s page 69 + + + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1987 .loc 1 226 3 view .LVU611 + 1988 00d4 034B ldr r3, .L168 + 1989 00d6 0022 movs r2, #0 + 1990 00d8 1A70 strb r2, [r3] + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1991 .loc 1 226 3 view .LVU612 + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** } + 1992 .loc 1 228 3 view .LVU613 + 1993 .LVL160: + 1994 .L153: + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 1995 .loc 1 229 1 is_stmt 0 view .LVU614 + 1996 00da 3846 mov r0, r7 + 1997 00dc F8BD pop {r3, r4, r5, r6, r7, pc} + 1998 .LVL161: + 1999 .L164: + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** + 2000 .loc 1 147 3 view .LVU615 + 2001 00de 0227 movs r7, #2 + 2002 00e0 FBE7 b .L153 + 2003 .L169: + 2004 00e2 00BF .align 2 + 2005 .L168: + 2006 00e4 00000000 .word pFlash + 2007 00e8 00200240 .word 1073881088 + 2008 .cfi_endproc + 2009 .LFE329: + 2011 .text + 2012 .Letext0: + 2013 .file 2 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 2014 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 2015 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 2016 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" + ARM GAS /tmp/ccudk1nZ.s page 70 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_flash_ex.c + /tmp/ccudk1nZ.s:21 .text.FLASH_MassErase:00000000 $t + /tmp/ccudk1nZ.s:26 .text.FLASH_MassErase:00000000 FLASH_MassErase + /tmp/ccudk1nZ.s:55 .text.FLASH_MassErase:0000001c $d + /tmp/ccudk1nZ.s:60 .text.FLASH_OB_GetSecMem:00000000 $t + /tmp/ccudk1nZ.s:65 .text.FLASH_OB_GetSecMem:00000000 FLASH_OB_GetSecMem + /tmp/ccudk1nZ.s:93 .text.FLASH_OB_GetSecMem:00000014 $d + /tmp/ccudk1nZ.s:98 .text.FLASH_OB_GetBootLock:00000000 $t + /tmp/ccudk1nZ.s:103 .text.FLASH_OB_GetBootLock:00000000 FLASH_OB_GetBootLock + /tmp/ccudk1nZ.s:120 .text.FLASH_OB_GetBootLock:0000000c $d + /tmp/ccudk1nZ.s:125 .text.FLASH_OB_GetWRP:00000000 $t + /tmp/ccudk1nZ.s:130 .text.FLASH_OB_GetWRP:00000000 FLASH_OB_GetWRP + /tmp/ccudk1nZ.s:192 .text.FLASH_OB_GetWRP:00000030 $d + /tmp/ccudk1nZ.s:197 .text.FLASH_OB_GetRDP:00000000 $t + /tmp/ccudk1nZ.s:202 .text.FLASH_OB_GetRDP:00000000 FLASH_OB_GetRDP + /tmp/ccudk1nZ.s:232 .text.FLASH_OB_GetRDP:00000014 $d + /tmp/ccudk1nZ.s:237 .text.FLASH_OB_GetUser:00000000 $t + /tmp/ccudk1nZ.s:242 .text.FLASH_OB_GetUser:00000000 FLASH_OB_GetUser + /tmp/ccudk1nZ.s:264 .text.FLASH_OB_GetUser:0000000c $d + /tmp/ccudk1nZ.s:269 .text.FLASH_OB_GetPCROP:00000000 $t + /tmp/ccudk1nZ.s:274 .text.FLASH_OB_GetPCROP:00000000 FLASH_OB_GetPCROP + /tmp/ccudk1nZ.s:348 .text.FLASH_OB_GetPCROP:00000038 $d + /tmp/ccudk1nZ.s:354 .text.FLASH_OB_WRPConfig:00000000 $t + /tmp/ccudk1nZ.s:359 .text.FLASH_OB_WRPConfig:00000000 FLASH_OB_WRPConfig + /tmp/ccudk1nZ.s:434 .text.FLASH_OB_WRPConfig:00000040 $d + /tmp/ccudk1nZ.s:439 .text.FLASH_OB_RDPConfig:00000000 $t + /tmp/ccudk1nZ.s:444 .text.FLASH_OB_RDPConfig:00000000 FLASH_OB_RDPConfig + /tmp/ccudk1nZ.s:497 .text.FLASH_OB_RDPConfig:00000030 $d + /tmp/ccudk1nZ.s:502 .text.FLASH_OB_UserConfig:00000000 $t + /tmp/ccudk1nZ.s:507 .text.FLASH_OB_UserConfig:00000000 FLASH_OB_UserConfig + /tmp/ccudk1nZ.s:812 .text.FLASH_OB_UserConfig:00000124 $d + /tmp/ccudk1nZ.s:817 .text.FLASH_OB_PCROPConfig:00000000 $t + /tmp/ccudk1nZ.s:822 .text.FLASH_OB_PCROPConfig:00000000 FLASH_OB_PCROPConfig + /tmp/ccudk1nZ.s:914 .text.FLASH_OB_PCROPConfig:00000064 $d + /tmp/ccudk1nZ.s:919 .text.FLASH_OB_SecMemConfig:00000000 $t + /tmp/ccudk1nZ.s:924 .text.FLASH_OB_SecMemConfig:00000000 FLASH_OB_SecMemConfig + /tmp/ccudk1nZ.s:985 .text.FLASH_OB_SecMemConfig:00000038 $d + /tmp/ccudk1nZ.s:990 .text.FLASH_OB_BootLockConfig:00000000 $t + /tmp/ccudk1nZ.s:995 .text.FLASH_OB_BootLockConfig:00000000 FLASH_OB_BootLockConfig + /tmp/ccudk1nZ.s:1048 .text.FLASH_OB_BootLockConfig:00000030 $d + /tmp/ccudk1nZ.s:1053 .text.HAL_FLASHEx_OBProgram:00000000 $t + /tmp/ccudk1nZ.s:1059 .text.HAL_FLASHEx_OBProgram:00000000 HAL_FLASHEx_OBProgram + /tmp/ccudk1nZ.s:1266 .text.HAL_FLASHEx_OBProgram:000000bc $d + /tmp/ccudk1nZ.s:1271 .text.HAL_FLASHEx_OBGetConfig:00000000 $t + /tmp/ccudk1nZ.s:1277 .text.HAL_FLASHEx_OBGetConfig:00000000 HAL_FLASHEx_OBGetConfig + /tmp/ccudk1nZ.s:1386 .text.HAL_FLASHEx_EnableSecMemProtection:00000000 $t + /tmp/ccudk1nZ.s:1392 .text.HAL_FLASHEx_EnableSecMemProtection:00000000 HAL_FLASHEx_EnableSecMemProtection + /tmp/ccudk1nZ.s:1414 .text.HAL_FLASHEx_EnableSecMemProtection:00000010 $d + /tmp/ccudk1nZ.s:1419 .text.HAL_FLASHEx_EnableDebugger:00000000 $t + /tmp/ccudk1nZ.s:1425 .text.HAL_FLASHEx_EnableDebugger:00000000 HAL_FLASHEx_EnableDebugger + /tmp/ccudk1nZ.s:1444 .text.HAL_FLASHEx_EnableDebugger:0000000c $d + /tmp/ccudk1nZ.s:1449 .text.HAL_FLASHEx_DisableDebugger:00000000 $t + /tmp/ccudk1nZ.s:1455 .text.HAL_FLASHEx_DisableDebugger:00000000 HAL_FLASHEx_DisableDebugger + /tmp/ccudk1nZ.s:1474 .text.HAL_FLASHEx_DisableDebugger:0000000c $d + /tmp/ccudk1nZ.s:1479 .text.FLASH_PageErase:00000000 $t + /tmp/ccudk1nZ.s:1485 .text.FLASH_PageErase:00000000 FLASH_PageErase + ARM GAS /tmp/ccudk1nZ.s page 71 + + + /tmp/ccudk1nZ.s:1517 .text.FLASH_PageErase:00000024 $d + /tmp/ccudk1nZ.s:1522 .text.HAL_FLASHEx_Erase_IT:00000000 $t + /tmp/ccudk1nZ.s:1528 .text.HAL_FLASHEx_Erase_IT:00000000 HAL_FLASHEx_Erase_IT + /tmp/ccudk1nZ.s:1693 .text.HAL_FLASHEx_Erase_IT:000000a8 $d + /tmp/ccudk1nZ.s:1699 .text.FLASH_FlushCaches:00000000 $t + /tmp/ccudk1nZ.s:1705 .text.FLASH_FlushCaches:00000000 FLASH_FlushCaches + /tmp/ccudk1nZ.s:1784 .text.FLASH_FlushCaches:0000005c $d + /tmp/ccudk1nZ.s:1790 .text.HAL_FLASHEx_Erase:00000000 $t + /tmp/ccudk1nZ.s:1796 .text.HAL_FLASHEx_Erase:00000000 HAL_FLASHEx_Erase + /tmp/ccudk1nZ.s:2006 .text.HAL_FLASHEx_Erase:000000e4 $d + +UNDEFINED SYMBOLS +FLASH_WaitForLastOperation +pFlash diff --git a/squeow_sw/build/stm32g4xx_hal_flash_ex.o b/squeow_sw/build/stm32g4xx_hal_flash_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..517619e75836f2b9f106aaffa2f68d8d011f9023 GIT binary patch literal 25116 zcmdUXdwf*Yx%S$7&z?-K6PSc+fC&i_h1>uI6d`vYAtWS#h}vXwfeD5rCKE)D)zn%q zwDsCn&(Ri-wJo)+2W_=l)T266;b&a^g5`_?l+yI{fehCFb}GsO5>UYYVn_ zg(prbm#+AR6%E19?D5Rz{#}_()*H|Id~d6stj;g*vfg;gvfftRp-x}Zzw9z6R1I`% zttWt{gh~*MFRhKEC_$x;OlF=}oV61$28A+UrV(4jH9? zK0>+CRM7ngX>aZ$zIb`{Q0}3$#?Y>!iIY}QZK#V8^IG_$lv#l?*@;pmRTDRi8eeXSJB@!TEBh~?bW2MGjzhz@ z1+||#rALNzJ<0vi`na(;ef-q^UvbE43=I}xv@fa+?fiiLA1uN=LI3YOegBs=&E9J) z+B)uQSkz?9pEacBZ|`)*@|+`TK@mo^8JvHF=nF2;7zkS9g}b_T-B#n!;b4j8=LQ!a znbo9VqoiTQp{JuCiB?59mhA>r^7CLpMw z9xuG~*e*wV9P|&5-z(IAfO`J8x!{H43W;OhUu1PwMU9fsQR;^y{CjWYH+{yU(0Ea_ zb|Tj*>eRfhW4nx!Y2&$v<~O7j)x48+p6~5|LCLR=Q!il6Z>V{v7~HVod%HkU@~W1E zt-^-tcPh>!=U2xqy%LSJw?|ZBJ!lL?u_hI9MbT>yXv98F2b#9`%|G$?;loOuIN52| zZjWs5tC=uOjVH#IY?rm{%*LsEjkB7^1CLk@XEYjxQ-)OGrp^V8Q=?NcCl-#+*H>eM zbH~H$GotfPjCEyn7BpIgQ!X!9-w2CU!;O&(qca+(L}o>evkJ%aX=C_k^tQ-d(N;*< z0u>G%3X*^MYsYiMUSK>cZZFViLiUs6{ze6S@wkul@HQ!X?6}ERGlk8nX-%`Q`NhM= zB4gZIlzSwvaZ0rCgt}}>=agvm2^ArN)(9GW^E_%>M*|!umk+H?Ynm11iZZKn7F(kc zbl0rTw{-uqj&~kep~q++#%NB%*?N?^D`6VO*0v)Ru(rLkylHkcgeaAcm+Gsr!Q%0= zoPOvIbuMhOP-9WlSX4gVGI4V0(#|hLKOg;dG*tJMnzN5aq9qNCjcd06eOz?n{gL)a zT0_Yb#@YXMd^+pB{MF-VF=`nb42*~3wsV_I$i|Q7=vKXOyi>=@wUyS8PHTGaQpe8L zW6{#{WJSX}hs=fVaV=&-TW`)%%G89<_y{(}tOCDM^DNCt`ePdY_rW$zyAo=q&;B)v znF0GN1S9aWmZjb4Q_5PxKg(wJpuDdge@tImvrXl+bVzKU-8T>;^E^;~D%^^kb_M?A zs6fp8vXOohsz|S{ZByn~j42&7QKT~dLHw#q`!e>k%CEU}Amj7&azKzypr5W|0d<%_d z5s>Vi_@lCsm66@V#%3?YwWX|n==v60pM~5lvc&j3iv+2ieLVtgC@Tb)eP>(a5ai_A zrRnFxMlc^`?eZ+A*(&%Dd#F-KUvN8$+slLu1a0_eFBdXPS+A2`Y5kQJm)Wb+r@>fo z0F+%7w|E7~nz+T^u)g}Z#aCJ1TGwK57oudZ7cw{aO-h@D%nSaQWV4Vnf>+bjRv`<5 zev%go84g}S<%@+Z4$i0L4+&WktS8wiYoD?TSa6RuAF4j;yQQx(ZeZy{s8(g)gFi<0{a~2c{Vc7l z9|7!-Se-0K&781(eflgkA!vZIZ=A>O#4HHD!jRuI&zTgy;NvW}Z{9_;RTKzLW3WFi z(yZWflzu|UT&FibDP&&okM#9sA!h`)((*0y?$D+Rl=XWC@K)H5=3IDTek3l3Zl- z!^-f%%Cr%hn(35!0D}9G)y!J7&Unw4C^JLKtYDev>FE1DUHva0ILb1!etNdF(ARU4|-PSTGV2^{oQqAs8@z z$ojOmExwhk?`3e0Am?kJTYODqauNA6vg5=i$BF5POFr_P9B8nFxWRL){>Z$}^J>mhj5TEY5S!EK~@JrIvt8_B#DjH}4h1M#S}lgvlKco5m~>=%{} z&tJg!GnsmHzGCU&k%j65$kX)b{H4QO2F4QPIqXxmVGORgF3;-{rpr(T=OGA2rl$=h zU^K#jQ5}G1hhYKY<@9U_++E1|M-Ub;8_B#6jC+u$y~6>L?KtrhFn&np7s$+Un0YXj zh3qse=roLzxfwYg@^aMbdN*%Ad`a&2-_qbKW+LPqXI(I0JVbZ7qCx!fEwWSJ ztELX*0Wj`Ij*qkb-ug}*XD`y=-JbgDVEMZ+U^Jz(;~2fWo%-GY_jTlaJ^Su9*U<@X zmV!L>Y=DMIvk{C>y<|A1)}>gUmJI zDioS_8~xj9PUF&kJG5>_R$*f?7oHj^P$C7MWHY$&LNbreJqqQAk@L7YgIPwVu}RIk z223O0bk?9Sn5^%06n8Z9O}z#gt*X!{$51uiH5}L6#ih{LN{er$u;&}xU5w|AP<-vk z6XWY~Y|7`Z0_hsM@e8={Q)E?SY$p2_u@wXB?{x1NOI*fkZZXa!5ynvEA+vZYRJbS? zb5$FMMlm~^OX!>iTyX9EH|WnbHkq-&T%*m5WvMxxkZ^?lNK0DHSb>&@wY*r(8;1N| zl+@e`gfoy%_&d*X~rykyLyy%5j9CWjw!~Y3xNs#=eB%Hz9k4h8?5(&Zkiy9Q`|( z3x9yv8T<6UQw!dC$Y<$_KA|hR9`u#ubueC^)Qj3npvRHt@NB~oUzL@Z26Otsq+^>M zra1~lhK7oL9>wCvz@+1I4vX{#uk6k|b7DAUTBowLP1#b`5f(Ll3UWoE7h z6NjZ~%E~!6^SsQJnd?Jn+1ZLGg^4W*l^F@y6l1DU<-fB=E9BW8QzmTZCo%lrtU;uvdFwMB z-gGaIb8kiv;bdhqy_KyG>FP41x>;UXl4N#S+!4ATmtkUi%ZS8vf6h(U^5|Hp`)2OG zYYk;)+*X5T%yR`;9Fjv5x6JqymML%8;xeV?CztYg#BxQ+QeDpVsTfr&`h+ziSuMr+ zGvZS8Y`oE~nT663y4NM>B@%Sa<48I4v?eg$yvkyLlR^JBH`RwVo}=jx2Z&Y9HU1_i z&QU{cB2*#!aHQI_9~VjKEKr7OBUB+%sVzx~r>#8XG!;`BC)do{PkU!*#$^rz*G|&+ z)-l&%g+^Nmn1m>b-?ZxFEbiv|3=SEtBw-Am%5;SedhAUDhfcQc=hZA^7$eXvN5HGO zj)1T%F2F@RVZB5konTS}*Yqwakpb%jsu*gsSIofVYIf^lfTQ7QS8|7~f(q(jfuw{n z&pHTHNvVUX{FRSxBsd!UF(iroP=cHk(Bz7v5KmSymNKUxVWYm>OrX9KM_i;N-a>#Y zgdTmlmEe{*b#OtboHA{MCCG-_La0GbQ=?;JV~5p#60Q;N;Oi28O6%Cav|+2u)Y1j} zU30b?B?*B}hMEeb37@K3TO8+8XzJ{AK2Ow>$H&t(#XL!>%>?S7EFf;!tua7!fO z1Ex+K`W&LBs@P8~MmAJCfjvt$F<0Aa$CXZ|o@dzHK&6)UsSK62Kh;2vHqa*J0X(|X zt(3@mwE!R~d1|6c z%2MLBa2Vp0xSN!_DU1s=m%u>45`n)%9QS$Ei3}aWWBPJ4;jq4J#b2E;#JqOFBN^6M zv7hMJ-$IK6!X{pcjBdXQu+O>t1mG^`@?QW4oXZCQk2;rb^_(@}#1q4U#_Eo^-?f#QJi<%l9OSW1>kH) zhIN87$}S*$!{I&+_@TbMfH3ZG2~Kqv;L1$~Ome2!-gd3V% zkt`ETDFR$y})7RY#?L>j{^#k4gqdmQA>JXZ)tC&tFOFr zN!gOJ%JM$ZbZt&rDa_&5a%}g~B|GU(G}7O(qdzhd?daWG){Oz?%9d8{-CGvrxEhJ| z;L#JVt+-GM_Vn%m8-s2VdyYWi#wuOr5`~p0yGs^6& z3fnj%#pOFQw98r0vi#+FG+CCS@<0ae2tisHvT_kNYp$Vv41{&)W|SyO%}lyAc=wxU9}!uA(Q zht0PepyU`0mE~V#=jbxc^xn?!TfJdB8=N#0bQDwi;uWc+JU^uhgf&Ztm0i6j+}BLY zjVbZ?xZiQ{e0Z2r-o{vR#?+d8yGXlGZs!BDtO545l^;%)qt6*8s@VR@|0Oaj$dStU zN-O_Ywql9DG3+nWJ&Yly$4(eKu6O<)O_RYG3e5;jG9E3A=rk*AV9XhII{N+$jpeuN z*^rJ|k!A(2wb8vh{FNVA(~kl&rt(iW>M?k7%aTWWn%}xKjJrr)m#<5A3{5t)GymJ6 z{V3iM&{I7>ANO{A<~IIW#Xos=9)VJgm3B~QKM`x0HM$CM=7wEM}xBeVG zET*%8YwS5tm`#NFgR+2~QL5%IN_hfO=Fe}2mlhU{r5&;I8&TnfLipV|H;+l|J?Jloo6 zm+}}ObEV8KfRb@O6s#-4#hGd;=VK0{_F_8lGf9WW^2wzGJRheJB9&K$+I=`dk& zwe|!}O2m7$Gdnn^&`|EwsCeosJA^B}xm%$!dnyQ?ka$Kp2i6QYTdUEqw-Up4qXSyX z30BdpOQrjpx9d>$LvCU_Ez?L1>yogpF9X5m){QX6yFbmpQFla|zttbcmdJG?&EH{X zTKPM48#2*@_6*xv;w}u9_24ySW*S1p^K5-vTT7d&uf@wkB)4qb&{Eq}U#A*2RJX6| zXdNEx?(G>J?%jOFP;XuD4z06!eRF-wmd&ElQUj%(!;#(V2l`^JT5Duyuh!LO>i2fk z4@A29d)s@vn|pUdKi1nF>l++MRvC_r^meS@tXf((w~6uE>e_Yn9qS#a-&kF<0j_mL z1}?4ai1hRfs|(s%D{EZkmYR;Wy)m%jo^?1C)(#Hr=-a6_cG0bo&4cxr+^d2i|NMLUMVr91Jj=kmz# zj?yLJ(iTuVdLpq%>4?(_BcOMT4(JYv^Q3{TZ7sDO__MaHx;d${>iS05p>@4oqdRvZ zXl!H6mi7yilv-*Kx}@MF^=Dmjx5mSVLT&^(7IZK54-V`M>pzTsd|0*&tR3td*r{qT zB*f*~NOv?oT;nAi<4$v`*Vbd$SGU(Ic9LqXZEI<5k41)K?0Llwat26wbZ~cX`Hta8 zdEH?5=Gs5%?PbX3-0n?4^85~7FsNtTWj{e>~z5Qx*V5D#7 zKyOdD8{>f^O*gG&$BvQSm>SY8<4jdvtweO=rIQ9ZdPF;>M!{aXq$8H7g?bmX)wR|S z^hg~X3Od~JX&)aYLoGGBZfy)Dbik=Ei%vKDPG(t>CnGv?x|>JTmiGEKJ&ic`^aba2 z{qXSMu$D>q(DZ~;(*In}M&do-FdOaAkFy;yA1yhz(!SieVO0 zZS|;nYkgg1{Avk1SdTs(!z8DN;8jQ8Ku_;pg#c}EdIv6JXz2CGslGWfGUALkZ{Xsq zsu~=M4R;Lp?(End8M##PVo#)hwAUT&dV#E4-|j4pj!BFo_@6qo;DfN@CSl246?IcR zi`EC;h``;C@=5L+IQJo(2{_o+8^MyYClYgA)st^y%f|YoHNt6ndwp%CyA-?g!)eO} zk-k{N;P8gXNUUY3cQ~TA4M*f%oI0>wZC0MeSPzHVLEL_#6?caGe zCw`}qGTue3&dI&b_c7~w^JXJ{SCBH+qsxKswZ}V+DDzR@b=JpN#w+99N3T7vjCUlx z<=i`vV4t?G!yiy4re$aseDKDDcD;0J{8DM&@#I}#Hyy-9eNNz`uxmEwsAqU1*K3b= zM7{cNg09Y)@lpSE_Q!nJTQ|_3>ZM>tc+XE6XX4UcUSHa*{Ml*E>1Kw1sxQyTH>O)N zjG4wPW42LX%r*GKK1rVuN1f9yd>`UIro)aCSJL9FEv`Y`8O+x<5P1$(@GfG zguE1(Xcul4dXj}FlgZ_6d4S~Hxi%qZ`9z=cwV*_@@MJH!ykFHq%=+0MCgd!ih_fG5 zB3XE{np{3jZG)KQmm!;wvwQ`zlkhf>Cs}xCpIknm@07DV$EXQ;vi|{3Y2GzXPbr_S z_Ch1!e|n1l`emQE4GWKIlIzb~y0$XP$1COe6b9}~$^ zQ&P%LQ7=PGb*>pEM`?!N-9 zpO`O+naffZW_PmwoD_Y|{zS6y)IC{$uGTM(tIUmG@dB?%r|8eq`Um1#^Ws;IeqoA! zq1L}Ru2mSna`cN*^oz9qYjLfj_?4r-AcbC-LUWZ*Bukx@AaG^r_wy4hOO+)EElkRpc=(pQ)lkb4{J9W~+}2OUjF~&PKmym68}}@EuH$i+-Yp$*y`2QM`GS^ag@BjgHBO%_Th|6 z@ZuiE1~DMWu|=A@6Oo^95V;N!Ka?V$FLY}8PVzD2hKQJ|W5h*xahzDL)aQseLw%LF z9BSO1O1%bTIi60;%}%?`3-Qh?X&`qEB3FA8Zw7ExGPgNj|B%mP zA@N+nYQc4aErKwu^>zxfJuG*X;8z5n5PV+nUBPtp3-xCTo+-FekZTX+7Ygxl!T%C`M=;HD{Fp9SDY#tle8F15^@6Q}gMy=i|0MVk!5and6MRVUu;7mbUln{y z@b7||KF7b=f(r$g3-bL_-EYJ>N?jrtA#PFXQjuRN$WKzp-zRvB@b4CSzaYO*q1}T* ze?#zb;U5v?_l)LDrG72=N8!ImL_H@3Z5;n;k6)vhm=x0li-ccJg#J>&mBOzfVlp)d zwhN!{>r=m5Fe?1Z1#b}i6cI<)y9EDL_zw_qB!5uw3E@8{_;bPI#Iu$9z2F~-sP|ow z^9xbZ>4G^#v~!lwa|Mftu(Lw2kqEsDh&U=-B-lZOy*`nT3Vns()xy`G(?aiN;ol+r z{X&0U@Bk6^4+;K=h1rHKRbF~Qe}u=fX%|4rzB2wGVCST0C}9>1+6&JcdF&?SPU z!e1%$`GPgV-zapO;040xmmsveQ?Q>1KR+UP2N8bUOT-W9`vngWQSM=p|GUsn3w}@d zKNk9@g8XuX_I@Yyn}Tl(|9zp2fMefJg#J{arwPs`!k-Gk8Y1*shzpcz7rcN7KO-XF zE%arAdxU?j(ELD!`X494&b@*U6Jh_`#6qQ>5&Rwz`bR|mOQHW$@O9z;N$CG0_@407 zFeg|(Q!tl^dJ2RN3oam{-g5<;iO}0hY{naOf;)vjLWJGR1+NzV4aBu*pWt1>zn=*G z1A<=@{vpBd5-|s#6a1<0e<%1hu}-PK2%Z#v00$Mb8vC^1G$Q;iBCf^*^mIXfctL)N(2E5tiLi67V6ET=!7YLx66_t#a!vWD;8lWSg8cfL@;e1TCwQMAKdk0H z_K4si!KVaY7Cb6=Oz<^9er?V2?+Nm4VbXpQ`3*MheoOEv!S4vZAUH1gOTqsXXq&h~kl$Z(Kiep{RdBl?zr?0ICaBN7psx}7dO?1mPCb481%6TJ zuL}5c`?n zi-JE9d_(XLf`1WwS5Tj;QC^>`fpcufUZG%#;9|jZ1kV+$7UX|hKtK3_I8mRofjfle z=k4V4TX7;k$tK=TY*y+sf}a)C=WXyGC5?UlTY^ssen*hsRdfISmEh}wZwT_+YVM!> zp-l`3W(kG`iv<@6mJ6;XuEc!-L4E!Py-{d>1WoyXpgwnl*5_{EnDDO?)aP#SZx{NX z1wSizzo0&UL+=Md|A*kqf=31QIUIWW91eU__!EME6?{(+Z}4b;{eszoQv~(79CiwX zE)rZQ$WO7kKc6R9E4Ws$MX+6PMDTLKs|BwWyh-qrf_DnuEqI^c7X`m2_>kZeg5MVW zuHbWm`kapa`xt4UKCc7yc^$|PzR3>=1_eWcvjpb~mIy8utQA}Zeuv(dg#L=4KF@>ysL+Q5pAzIp>1^N61b-#?8$k>UWwv8| zCt|MX^GUi=Vba;oeKGFS6{Pc>=OR2$RFTFxW*rgp7**)?2)C&8`qxRsz7Qp1e;guW zpWaKv_!=W(KHf;g{JoV}?R>?=^Y^`^*UEi1jJJcNu^v1|WMxG7i)BnBnxlW0>+=@; z&m|52^8|If&<=g>0*1*)dx`~1h-lYh!3rYU=bp<}kVZSXln|?k3*?y@a2;u^`x^x5 zBHOR;zX7+AMjS2{>?9%{J%Ujp;?gfTL_}pV!M#Mp=_gx39tcEF_8Uq?iHHVdu$3GM0;I!Z+QVnXYFKs$AO zQQxP?M|*YLKp!N%K&fX%|NBIYi(^8+MnoL`F0^7C5f47&q5lO$#6_Q%K`$eXaj`+< ze73_l^$5*pJB(LMXx&fMh>y@W646-QZ?Jb4X~gk|oTr!s~`HRmPVCRaqBafh;4V%y~SJc+lhJCOzvpRp351NwVaW;d7r; z3-IaBsa*XG=v21zB&ZB8*`&x4&x9rsCfO#v#Ap(6(zByU;zF(qV44bboA zYFQ6oF2xIUI|eZ(^>w7HYq)oh@<{s!yS-#&I5L1&e7&qwIsJVDy{<)!d{u^5IQe#` zw-ny`+zqAbw&t=(EH>QNH5!B2|7pTwC@u#)s_Miw%bT#Y>Qsoo)Wg!MQ>q?iObd|% z$p4+*V(6sS8wSr!KDnp?di6Ggp5ZD1UA>D^^!h>PPNKIbMei!m-nO{*K9QowHFmOk z?@Q6++B;djkEiJU40IK;o7{R|2E*H4uF-X_642EytS^T0Y z_6~ULVQY`u!|QcP{@n_DhvVKkdL;P_)7#$1U~dKZ>|egE!*;Mg9!#;vXKXR>-Gp%J z^gxQe3D~QEg!XXMh}(N1#on{9m!~Z_f86-}B}MON5KK1ir@;ZJ#{2hor_o!HqW2E; zN+zkdEk!SkbJxL1^msP(#xIPUo1DLF?>uC-gYn}tTCacOu-5~=o2bXMJH_4#*kgIx zD@1nf@m`tN-ZBjAHz9YEYwxBMdsVRK_HPlCU3*^^dv5t~8h*!Txs+2EsV}71+Y5W+ z2mt-V(J*fBkraCmW3Xpn47!QFGkq^b@5yOcOW0sZuHG{#^{!iw{(v6qEkSnM@skvL z526#k?-~QT_Fhb}_s%Bg_ZRJ*<*~ew$+NApX;pP6%mlF|zC5 zdnxwH3YFsX3pcs;{+ePhce6A8Xs-;}wZ~`mEW9ruUfpW9ykw9*@^9 zw#SUen~f-c65^)?sZxayQjvH?ZTTq$+9KcuB&7DKudR4MJoJH=N<07!l<&;kYtL@e zRvhijch7guJ@?!*_s9Fy^0iAs2vQF|GE9{zr#L9Kfp(5MEHY5#8Y@reiI{K@`>FqO~k&$zFKsi zArgI*As(G&5b=A_P17d60MI`JN?$zG;Gk8!w8+F+HpeI40YoFwcF$w-O=vN8cpA^d zExa-m_q3mg#CKpxEU#2ZdrnN%IK(kZ{)uBeuk=U~G-)p=J)Zmu+kdL`$wU?1f2P!Z z36A!2rOqT5+4~ntKbS0Xv=_ycpYX9G$#3zzeyQx)%UR@>Ewf~zbvM{#&~Qo`8xN1McMn5in8HVp>r{`c*MbYlM|v0EpkHq5#H(h z(5Cb(ULySlcTZbfY0~3>$SM6t;4GWTyns_&pCTvVF zydOo$ZExG|z^HDnEfg;=?(EdAEMKbytWk9>QVuI?)zzv|vbWoo4exOWW3^{>h7FsH z;lMRI?YgmLS%&F$b3LbL=WMgyHVVajF<&s+(o@B}+Bx>~+bp-b16t5<59xB7O;Zqg%_jl#tWah=MQ%6i2omIGq_DpktW za^|#M3QO6bnAzg#VzE#>eI}dhTK(a9%W*w>C)Zts?zM*9Iu6tjzpUrLIuW{3Ko4H~(w+^k@Fg-Ij zur06c^ajxRD{yG|RpB&2k8zg<{PM3Zy!0uCA5WuWtrq!x^GB6fP+W zQIR>~3ZTm?E9bKFg)`^;wcy&FLauOf@4_HHI^Kf_(w@jnrhT1PKMSw+;0hieBg+dQ zP2R91PNErID(BWHmY!HkXvx_A$c#83KCT}Whs3NnERKk~#Zf*+c1f6s&^zyijXH1K zkm&N3RuoQs)$~!vrv1b&CPGJ{9~^Oko#zrrVCQQ|>8i!36W>Q;(P?6=prsRz{gCM7 z-^U|HA5|=%blmM>(P>{;MZAyg(f8AFFkA)Bc|Yb?0y3v`b+CQF$v5ZGTw~Wxy2BFt zsEvk;kTl#m{QWhgI3@9b#6yhfATJG5JSBNv9_)Wk;<7~lHU_^g^-YOe5_=M#kocU$ z-%5N<;=d#&P#_-Xki?S`{U2Q5SEYVKVq4-ZiBC%Wp~UAUz9{i!iNBZV{|G}||Mv&* zFU(`9{8i%LrQbiLep{knM=TNk>g>wdj~Y1#j{#2L0Di0aR4f%SRW zkMe_CUC*ooJvYFXYT?ZHD9yp z68vuvwE68{-N1YBu%9|D_WH4n`v>f=La8$ZuTRDPewan9ddiSqj~2yQF+2K-bX=6GC| zXYqvdJB9qR;5a|dQ|0#p+L&S=;LA&h7hZ#EEXGjU^fvr9K=OX)m>iGe@|cJ>lKVk4 TM%p-cKBvQe*O1@u?%?-796>b3 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_gpio.d b/squeow_sw/build/stm32g4xx_hal_gpio.d new file mode 100644 index 0000000..2568a10 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_gpio.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_gpio.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_gpio.lst b/squeow_sw/build/stm32g4xx_hal_gpio.lst new file mode 100644 index 0000000..b40056d --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_gpio.lst @@ -0,0 +1,1691 @@ +ARM GAS /tmp/ccY6DPpN.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_gpio.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c" + 20 .section .text.HAL_GPIO_Init,"ax",%progbits + 21 .align 1 + 22 .global HAL_GPIO_Init + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 HAL_GPIO_Init: + 28 .LVL0: + 29 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @file stm32g4xx_hal_gpio.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief GPIO HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + IO operation functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ****************************************************************************** + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @attention + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * Copyright (c) 2019 STMicroelectronics. + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * All rights reserved. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This software is licensed under terms that can be found in the LICENSE file + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * in the root directory of this software component. + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ****************************************************************************** + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @verbatim + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ============================================================================== + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### GPIO Peripheral features ##### + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ============================================================================== + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** [..] + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** configured by software in several modes: + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Input mode + ARM GAS /tmp/ccY6DPpN.s page 2 + + + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Analog mode + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Output mode + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Alternate function mode + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) External interrupt/event lines + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) During and just after reset, the alternate functions and external interrupt + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode. + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** activated or not. + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value. + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) The microcontroller IO pins are connected to onboard peripherals/modules through a + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** multiplexer that allows only one peripheral alternate function (AF) connected + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** to an IO pin at a time. In this way, there can be no conflict between peripherals + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** sharing the same IO pin. + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) All ports have external interrupt/event capability. To use external interrupt + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15. + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) The external interrupt/event controller consists of up to 44 edge detectors + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event) + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** also be masked independently. + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### How to use this driver ##### + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ============================================================================== + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** [..] + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE(). + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init(). + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** structure. + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure. + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure. + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** or DAC output. + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both). + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_NVIC_EnableIRQ(). + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin(). + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin(). + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + ARM GAS /tmp/ccY6DPpN.s page 3 + + + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin(). + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** pins). + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** priority over the GPIO function. + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** general purpose PF0 and PF1, respectively, when the HSE oscillator is off. + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** The HSE has priority over the GPIO function. + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @endverbatim + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ****************************************************************************** + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/ + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #include "stm32g4xx_hal.h" + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup STM32G4xx_HAL_Driver + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{ + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** MISRA C:2012 deviation rule has been granted for following rules: + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * Rule-12.2 - Medium: RHS argument is in interval [0,INF] which is out of + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * range of the shift operator in following API : + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * HAL_GPIO_Init + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * HAL_GPIO_DeInit + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private typedef -----------------------------------------------------------*/ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private defines -----------------------------------------------------------*/ + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO_Private_Constants GPIO Private Constants + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{ + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define GPIO_NUMBER (16U) + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @} + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private macros ------------------------------------------------------------*/ + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private variables ---------------------------------------------------------*/ + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private function prototypes -----------------------------------------------*/ + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Exported functions --------------------------------------------------------*/ + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{ + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group1 Initialization/de-initialization functions + ARM GAS /tmp/ccY6DPpN.s page 4 + + + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Initialization and Configuration functions + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @verbatim + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** =============================================================================== + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### Initialization and de-initialization functions ##### + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** =============================================================================== + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @endverbatim + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{ + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Initialize the GPIOx peripheral according to the specified parameters in the GPIO_Init. + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral. + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 30 .loc 1 163 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 8 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 .loc 1 163 1 is_stmt 0 view .LVU1 + 35 0000 F0B5 push {r4, r5, r6, r7, lr} + 36 .LCFI0: + 37 .cfi_def_cfa_offset 20 + 38 .cfi_offset 4, -20 + 39 .cfi_offset 5, -16 + 40 .cfi_offset 6, -12 + 41 .cfi_offset 7, -8 + 42 .cfi_offset 14, -4 + 43 0002 83B0 sub sp, sp, #12 + 44 .LCFI1: + 45 .cfi_def_cfa_offset 32 + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U; + 46 .loc 1 164 3 is_stmt 1 view .LVU2 + 47 .LVL1: + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent; + 48 .loc 1 165 3 view .LVU3 + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t temp; + 49 .loc 1 166 3 view .LVU4 + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */ + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + 50 .loc 1 169 3 view .LVU5 + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); + 51 .loc 1 170 3 view .LVU6 + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); + 52 .loc 1 171 3 view .LVU7 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the port pins */ + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** while (((GPIO_Init->Pin) >> position) != 0U) + 53 .loc 1 174 3 view .LVU8 + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent; + 54 .loc 1 164 12 is_stmt 0 view .LVU9 + ARM GAS /tmp/ccY6DPpN.s page 5 + + + 55 0004 0023 movs r3, #0 + 56 .loc 1 174 9 view .LVU10 + 57 0006 62E0 b .L2 + 58 .LVL2: + 59 .L21: + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Get current io position */ + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** iocurrent = (GPIO_Init->Pin) & (1UL << position); + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (iocurrent != 0x00u) + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/ + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */ + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the Speed parameter */ + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + 60 .loc 1 187 9 is_stmt 1 view .LVU11 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the IO Speed */ + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->OSPEEDR; + 61 .loc 1 189 9 view .LVU12 + 62 .loc 1 189 14 is_stmt 0 view .LVU13 + 63 0008 8568 ldr r5, [r0, #8] + 64 .LVL3: + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U)); + 65 .loc 1 190 9 is_stmt 1 view .LVU14 + 66 .loc 1 190 53 is_stmt 0 view .LVU15 + 67 000a 5E00 lsls r6, r3, #1 + 68 .loc 1 190 40 view .LVU16 + 69 000c 0324 movs r4, #3 + 70 000e B440 lsls r4, r4, r6 + 71 .loc 1 190 14 view .LVU17 + 72 0010 25EA0405 bic r5, r5, r4 + 73 .LVL4: + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U)); + 74 .loc 1 191 9 is_stmt 1 view .LVU18 + 75 .loc 1 191 27 is_stmt 0 view .LVU19 + 76 0014 CC68 ldr r4, [r1, #12] + 77 .loc 1 191 35 view .LVU20 + 78 0016 B440 lsls r4, r4, r6 + 79 .loc 1 191 14 view .LVU21 + 80 0018 2C43 orrs r4, r4, r5 + 81 .LVL5: + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp; + 82 .loc 1 192 9 is_stmt 1 view .LVU22 + 83 .loc 1 192 24 is_stmt 0 view .LVU23 + 84 001a 8460 str r4, [r0, #8] + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the IO Output Type */ + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->OTYPER; + 85 .loc 1 195 9 is_stmt 1 view .LVU24 + 86 .loc 1 195 14 is_stmt 0 view .LVU25 + 87 001c 4568 ldr r5, [r0, #4] + 88 .LVL6: + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT0 << position) ; + 89 .loc 1 196 9 is_stmt 1 view .LVU26 + ARM GAS /tmp/ccY6DPpN.s page 6 + + + 90 .loc 1 196 14 is_stmt 0 view .LVU27 + 91 001e 25EA0C05 bic r5, r5, ip + 92 .LVL7: + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + 93 .loc 1 197 9 is_stmt 1 view .LVU28 + 94 .loc 1 197 29 is_stmt 0 view .LVU29 + 95 0022 4C68 ldr r4, [r1, #4] + 96 .loc 1 197 51 view .LVU30 + 97 0024 C4F30014 ubfx r4, r4, #4, #1 + 98 .loc 1 197 71 view .LVU31 + 99 0028 9C40 lsls r4, r4, r3 + 100 .loc 1 197 14 view .LVU32 + 101 002a 2C43 orrs r4, r4, r5 + 102 .LVL8: + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OTYPER = temp; + 103 .loc 1 198 9 is_stmt 1 view .LVU33 + 104 .loc 1 198 23 is_stmt 0 view .LVU34 + 105 002c 4460 str r4, [r0, #4] + 106 002e 5FE0 b .L4 + 107 .LVL9: + 108 .L22: + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the Pull parameter */ + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */ + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->PUPDR; + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U)); + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp; + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* In case of Alternate function mode selection */ + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the Alternate function parameters */ + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + 109 .loc 1 217 9 is_stmt 1 view .LVU35 + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + 110 .loc 1 218 9 view .LVU36 + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */ + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3U]; + 111 .loc 1 221 9 view .LVU37 + 112 .loc 1 221 36 is_stmt 0 view .LVU38 + 113 0030 DD08 lsrs r5, r3, #3 + 114 .loc 1 221 14 view .LVU39 + 115 0032 0835 adds r5, r5, #8 + 116 0034 50F82540 ldr r4, [r0, r5, lsl #2] + 117 .LVL10: + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0xFU << ((position & 0x07U) * 4U)); + 118 .loc 1 222 9 is_stmt 1 view .LVU40 + 119 .loc 1 222 38 is_stmt 0 view .LVU41 + 120 0038 03F0070C and ip, r3, #7 + ARM GAS /tmp/ccY6DPpN.s page 7 + + + 121 .loc 1 222 47 view .LVU42 + 122 003c 4FEA8C0C lsl ip, ip, #2 + 123 .loc 1 222 24 view .LVU43 + 124 0040 4FF00F0E mov lr, #15 + 125 0044 0EFA0CFE lsl lr, lr, ip + 126 .loc 1 222 14 view .LVU44 + 127 0048 24EA0E0E bic lr, r4, lr + 128 .LVL11: + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U)); + 129 .loc 1 223 9 is_stmt 1 view .LVU45 + 130 .loc 1 223 28 is_stmt 0 view .LVU46 + 131 004c 0C69 ldr r4, [r1, #16] + 132 .loc 1 223 41 view .LVU47 + 133 004e 04FA0CF4 lsl r4, r4, ip + 134 .loc 1 223 14 view .LVU48 + 135 0052 44EA0E04 orr r4, r4, lr + 136 .LVL12: + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp; + 137 .loc 1 224 9 is_stmt 1 view .LVU49 + 138 .loc 1 224 36 is_stmt 0 view .LVU50 + 139 0056 40F82540 str r4, [r0, r5, lsl #2] + 140 005a 60E0 b .L6 + 141 .LVL13: + 142 .L23: + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->MODER; + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U)); + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp; + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/ + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */ + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u) + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Enable SYSCFG Clock */ + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE(); + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2U]; + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0x0FUL << (4U * (position & 0x03U))); + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 143 .loc 1 242 18 view .LVU51 + 144 005c 0524 movs r4, #5 + 145 005e 00E0 b .L7 + 146 .L13: + 147 0060 0024 movs r4, #0 + 148 .L7: + 149 .loc 1 242 40 discriminator 24 view .LVU52 + 150 0062 04FA0EF4 lsl r4, r4, lr + 151 .loc 1 242 14 discriminator 24 view .LVU53 + 152 0066 2C43 orrs r4, r4, r5 + 153 .LVL14: + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 154 .loc 1 243 9 is_stmt 1 discriminator 24 view .LVU54 + 155 .loc 1 243 40 is_stmt 0 discriminator 24 view .LVU55 + 156 0068 0CF1020C add ip, ip, #2 + ARM GAS /tmp/ccY6DPpN.s page 8 + + + 157 006c 554D ldr r5, .L24 + 158 006e 45F82C40 str r4, [r5, ip, lsl #2] + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->RTSR1; + 159 .loc 1 246 9 is_stmt 1 discriminator 24 view .LVU56 + 160 .loc 1 246 14 is_stmt 0 discriminator 24 view .LVU57 + 161 0072 554C ldr r4, .L24+4 + 162 .LVL15: + 163 .loc 1 246 14 discriminator 24 view .LVU58 + 164 0074 A568 ldr r5, [r4, #8] + 165 .LVL16: + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent); + 166 .loc 1 247 9 is_stmt 1 discriminator 24 view .LVU59 + 167 .loc 1 247 17 is_stmt 0 discriminator 24 view .LVU60 + 168 0076 D443 mvns r4, r2 + 169 .loc 1 247 14 discriminator 24 view .LVU61 + 170 0078 25EA0206 bic r6, r5, r2 + 171 .LVL17: + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) + 172 .loc 1 248 9 is_stmt 1 discriminator 24 view .LVU62 + 173 .loc 1 248 12 is_stmt 0 discriminator 24 view .LVU63 + 174 007c 4F68 ldr r7, [r1, #4] + 175 007e 17F4801F tst r7, #1048576 + 176 0082 01D0 beq .L8 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent; + 177 .loc 1 250 11 is_stmt 1 view .LVU64 + 178 .loc 1 250 16 is_stmt 0 view .LVU65 + 179 0084 42EA0506 orr r6, r2, r5 + 180 .LVL18: + 181 .L8: + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 = temp; + 182 .loc 1 252 9 is_stmt 1 view .LVU66 + 183 .loc 1 252 21 is_stmt 0 view .LVU67 + 184 0088 4F4D ldr r5, .L24+4 + 185 008a AE60 str r6, [r5, #8] + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->FTSR1; + 186 .loc 1 254 9 is_stmt 1 view .LVU68 + 187 .loc 1 254 14 is_stmt 0 view .LVU69 + 188 008c ED68 ldr r5, [r5, #12] + 189 .LVL19: + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent); + 190 .loc 1 255 9 is_stmt 1 view .LVU70 + 191 .loc 1 255 14 is_stmt 0 view .LVU71 + 192 008e 04EA0506 and r6, r4, r5 + 193 .LVL20: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) + 194 .loc 1 256 9 is_stmt 1 view .LVU72 + 195 .loc 1 256 12 is_stmt 0 view .LVU73 + 196 0092 4F68 ldr r7, [r1, #4] + 197 0094 17F4001F tst r7, #2097152 + 198 0098 01D0 beq .L9 + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent; + ARM GAS /tmp/ccY6DPpN.s page 9 + + + 199 .loc 1 258 11 is_stmt 1 view .LVU74 + 200 .loc 1 258 16 is_stmt 0 view .LVU75 + 201 009a 42EA0506 orr r6, r2, r5 + 202 .LVL21: + 203 .L9: + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->FTSR1 = temp; + 204 .loc 1 260 9 is_stmt 1 view .LVU76 + 205 .loc 1 260 21 is_stmt 0 view .LVU77 + 206 009e 4A4D ldr r5, .L24+4 + 207 00a0 EE60 str r6, [r5, #12] + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->EMR1; + 208 .loc 1 262 9 is_stmt 1 view .LVU78 + 209 .loc 1 262 14 is_stmt 0 view .LVU79 + 210 00a2 6D68 ldr r5, [r5, #4] + 211 .LVL22: + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent); + 212 .loc 1 263 9 is_stmt 1 view .LVU80 + 213 .loc 1 263 14 is_stmt 0 view .LVU81 + 214 00a4 04EA0506 and r6, r4, r5 + 215 .LVL23: + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) + 216 .loc 1 264 9 is_stmt 1 view .LVU82 + 217 .loc 1 264 12 is_stmt 0 view .LVU83 + 218 00a8 4F68 ldr r7, [r1, #4] + 219 00aa 17F4003F tst r7, #131072 + 220 00ae 01D0 beq .L10 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent; + 221 .loc 1 266 11 is_stmt 1 view .LVU84 + 222 .loc 1 266 16 is_stmt 0 view .LVU85 + 223 00b0 42EA0506 orr r6, r2, r5 + 224 .LVL24: + 225 .L10: + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 = temp; + 226 .loc 1 268 9 is_stmt 1 view .LVU86 + 227 .loc 1 268 20 is_stmt 0 view .LVU87 + 228 00b4 444D ldr r5, .L24+4 + 229 00b6 6E60 str r6, [r5, #4] + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear EXTI line configuration */ + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->IMR1; + 230 .loc 1 271 9 is_stmt 1 view .LVU88 + 231 .loc 1 271 14 is_stmt 0 view .LVU89 + 232 00b8 2D68 ldr r5, [r5] + 233 .LVL25: + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent); + 234 .loc 1 272 9 is_stmt 1 view .LVU90 + 235 .loc 1 272 14 is_stmt 0 view .LVU91 + 236 00ba 2C40 ands r4, r4, r5 + 237 .LVL26: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) + 238 .loc 1 273 9 is_stmt 1 view .LVU92 + 239 .loc 1 273 23 is_stmt 0 view .LVU93 + 240 00bc 4E68 ldr r6, [r1, #4] + ARM GAS /tmp/ccY6DPpN.s page 10 + + + 241 .loc 1 273 12 view .LVU94 + 242 00be 16F4803F tst r6, #65536 + 243 00c2 01D0 beq .L11 + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent; + 244 .loc 1 275 11 is_stmt 1 view .LVU95 + 245 .loc 1 275 16 is_stmt 0 view .LVU96 + 246 00c4 42EA0504 orr r4, r2, r5 + 247 .LVL27: + 248 .L11: + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->IMR1 = temp; + 249 .loc 1 277 9 is_stmt 1 view .LVU97 + 250 .loc 1 277 20 is_stmt 0 view .LVU98 + 251 00c8 3F4A ldr r2, .L24+4 + 252 .LVL28: + 253 .loc 1 277 20 view .LVU99 + 254 00ca 1460 str r4, [r2] + 255 .LVL29: + 256 .L3: + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** position++; + 257 .loc 1 281 5 is_stmt 1 view .LVU100 + 258 .loc 1 281 13 is_stmt 0 view .LVU101 + 259 00cc 0133 adds r3, r3, #1 + 260 .LVL30: + 261 .L2: + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 262 .loc 1 174 41 is_stmt 1 view .LVU102 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 263 .loc 1 174 21 is_stmt 0 view .LVU103 + 264 00ce 0A68 ldr r2, [r1] + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 265 .loc 1 174 41 view .LVU104 + 266 00d0 32FA03F4 lsrs r4, r2, r3 + 267 00d4 74D0 beq .L20 + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 268 .loc 1 177 5 is_stmt 1 view .LVU105 + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 269 .loc 1 177 41 is_stmt 0 view .LVU106 + 270 00d6 4FF0010C mov ip, #1 + 271 00da 0CFA03FC lsl ip, ip, r3 + 272 .LVL31: + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 273 .loc 1 179 5 is_stmt 1 view .LVU107 + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 274 .loc 1 179 8 is_stmt 0 view .LVU108 + 275 00de 1CEA0202 ands r2, ip, r2 + 276 .LVL32: + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 277 .loc 1 179 8 view .LVU109 + 278 00e2 F3D0 beq .L3 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 279 .loc 1 183 7 is_stmt 1 view .LVU110 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + ARM GAS /tmp/ccY6DPpN.s page 11 + + + 280 .loc 1 183 21 is_stmt 0 view .LVU111 + 281 00e4 4C68 ldr r4, [r1, #4] + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 282 .loc 1 183 28 view .LVU112 + 283 00e6 04F00304 and r4, r4, #3 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 284 .loc 1 183 57 view .LVU113 + 285 00ea 013C subs r4, r4, #1 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 286 .loc 1 183 9 view .LVU114 + 287 00ec 012C cmp r4, #1 + 288 00ee 8BD9 bls .L21 + 289 .L4: + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 290 .loc 1 201 7 is_stmt 1 view .LVU115 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 291 .loc 1 201 21 is_stmt 0 view .LVU116 + 292 00f0 4C68 ldr r4, [r1, #4] + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 293 .loc 1 201 28 view .LVU117 + 294 00f2 04F00304 and r4, r4, #3 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 295 .loc 1 201 10 view .LVU118 + 296 00f6 032C cmp r4, #3 + 297 00f8 0CD0 beq .L5 + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 298 .loc 1 204 9 is_stmt 1 view .LVU119 + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); + 299 .loc 1 207 9 view .LVU120 + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); + 300 .loc 1 207 14 is_stmt 0 view .LVU121 + 301 00fa C468 ldr r4, [r0, #12] + 302 .LVL33: + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U)); + 303 .loc 1 208 9 is_stmt 1 view .LVU122 + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U)); + 304 .loc 1 208 49 is_stmt 0 view .LVU123 + 305 00fc 5D00 lsls r5, r3, #1 + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U)); + 306 .loc 1 208 36 view .LVU124 + 307 00fe 4FF0030C mov ip, #3 + 308 0102 0CFA05FC lsl ip, ip, r5 + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U)); + 309 .loc 1 208 14 view .LVU125 + 310 0106 24EA0C0C bic ip, r4, ip + 311 .LVL34: + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp; + 312 .loc 1 209 9 is_stmt 1 view .LVU126 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp; + 313 .loc 1 209 28 is_stmt 0 view .LVU127 + 314 010a 8C68 ldr r4, [r1, #8] + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp; + 315 .loc 1 209 36 view .LVU128 + 316 010c AC40 lsls r4, r4, r5 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp; + 317 .loc 1 209 14 view .LVU129 + 318 010e 44EA0C04 orr r4, r4, ip + ARM GAS /tmp/ccY6DPpN.s page 12 + + + 319 .LVL35: + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 320 .loc 1 210 9 is_stmt 1 view .LVU130 + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 321 .loc 1 210 22 is_stmt 0 view .LVU131 + 322 0112 C460 str r4, [r0, #12] + 323 .LVL36: + 324 .L5: + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 325 .loc 1 214 7 is_stmt 1 view .LVU132 + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 326 .loc 1 214 21 is_stmt 0 view .LVU133 + 327 0114 4C68 ldr r4, [r1, #4] + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 328 .loc 1 214 28 view .LVU134 + 329 0116 04F00304 and r4, r4, #3 + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 330 .loc 1 214 10 view .LVU135 + 331 011a 022C cmp r4, #2 + 332 011c 88D0 beq .L22 + 333 .L6: + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U)); + 334 .loc 1 228 7 is_stmt 1 view .LVU136 + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U)); + 335 .loc 1 228 12 is_stmt 0 view .LVU137 + 336 011e 0468 ldr r4, [r0] + 337 .LVL37: + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + 338 .loc 1 229 7 is_stmt 1 view .LVU138 + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + 339 .loc 1 229 47 is_stmt 0 view .LVU139 + 340 0120 4FEA430E lsl lr, r3, #1 + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + 341 .loc 1 229 34 view .LVU140 + 342 0124 4FF0030C mov ip, #3 + 343 0128 0CFA0EFC lsl ip, ip, lr + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); + 344 .loc 1 229 12 view .LVU141 + 345 012c 24EA0C0C bic ip, r4, ip + 346 .LVL38: + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp; + 347 .loc 1 230 7 is_stmt 1 view .LVU142 + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp; + 348 .loc 1 230 26 is_stmt 0 view .LVU143 + 349 0130 4C68 ldr r4, [r1, #4] + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp; + 350 .loc 1 230 33 view .LVU144 + 351 0132 04F00304 and r4, r4, #3 + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp; + 352 .loc 1 230 46 view .LVU145 + 353 0136 04FA0EF4 lsl r4, r4, lr + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp; + 354 .loc 1 230 12 view .LVU146 + 355 013a 44EA0C04 orr r4, r4, ip + 356 .LVL39: + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 357 .loc 1 231 7 is_stmt 1 view .LVU147 + ARM GAS /tmp/ccY6DPpN.s page 13 + + + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 358 .loc 1 231 20 is_stmt 0 view .LVU148 + 359 013e 0460 str r4, [r0] + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 360 .loc 1 235 7 is_stmt 1 view .LVU149 + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 361 .loc 1 235 21 is_stmt 0 view .LVU150 + 362 0140 4C68 ldr r4, [r1, #4] + 363 .LVL40: + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 364 .loc 1 235 10 view .LVU151 + 365 0142 14F4403F tst r4, #196608 + 366 0146 C1D0 beq .L3 + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 367 .loc 1 238 9 is_stmt 1 view .LVU152 + 368 .LBB2: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 369 .loc 1 238 9 view .LVU153 + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 370 .loc 1 238 9 view .LVU154 + 371 0148 204C ldr r4, .L24+8 + 372 014a 256E ldr r5, [r4, #96] + 373 014c 45F00105 orr r5, r5, #1 + 374 0150 2566 str r5, [r4, #96] + 375 .LVL41: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 376 .loc 1 238 9 view .LVU155 + 377 0152 246E ldr r4, [r4, #96] + 378 0154 04F00104 and r4, r4, #1 + 379 0158 0194 str r4, [sp, #4] + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 380 .loc 1 238 9 view .LVU156 + 381 015a 019C ldr r4, [sp, #4] + 382 .LBE2: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 383 .loc 1 238 9 view .LVU157 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0x0FUL << (4U * (position & 0x03U))); + 384 .loc 1 240 9 view .LVU158 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0x0FUL << (4U * (position & 0x03U))); + 385 .loc 1 240 40 is_stmt 0 view .LVU159 + 386 015c 4FEA930C lsr ip, r3, #2 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0x0FUL << (4U * (position & 0x03U))); + 387 .loc 1 240 14 view .LVU160 + 388 0160 0CF10205 add r5, ip, #2 + 389 0164 174C ldr r4, .L24 + 390 0166 54F82550 ldr r5, [r4, r5, lsl #2] + 391 .LVL42: + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 392 .loc 1 241 9 is_stmt 1 view .LVU161 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 393 .loc 1 241 45 is_stmt 0 view .LVU162 + 394 016a 03F0030E and lr, r3, #3 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 395 .loc 1 241 33 view .LVU163 + 396 016e 4FEA8E0E lsl lr, lr, #2 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 397 .loc 1 241 26 view .LVU164 + ARM GAS /tmp/ccY6DPpN.s page 14 + + + 398 0172 0F24 movs r4, #15 + 399 0174 04FA0EF4 lsl r4, r4, lr + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))); + 400 .loc 1 241 14 view .LVU165 + 401 0178 25EA0405 bic r5, r5, r4 + 402 .LVL43: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 403 .loc 1 242 9 is_stmt 1 view .LVU166 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 404 .loc 1 242 18 is_stmt 0 view .LVU167 + 405 017c B0F1904F cmp r0, #1207959552 + 406 0180 3FF46EAF beq .L13 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 407 .loc 1 242 18 discriminator 1 view .LVU168 + 408 0184 124C ldr r4, .L24+12 + 409 0186 A042 cmp r0, r4 + 410 0188 12D0 beq .L14 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 411 .loc 1 242 18 discriminator 3 view .LVU169 + 412 018a 04F58064 add r4, r4, #1024 + 413 018e A042 cmp r0, r4 + 414 0190 10D0 beq .L15 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 415 .loc 1 242 18 discriminator 5 view .LVU170 + 416 0192 04F58064 add r4, r4, #1024 + 417 0196 A042 cmp r0, r4 + 418 0198 0ED0 beq .L16 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 419 .loc 1 242 18 discriminator 7 view .LVU171 + 420 019a 04F58064 add r4, r4, #1024 + 421 019e A042 cmp r0, r4 + 422 01a0 0CD0 beq .L17 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 423 .loc 1 242 18 discriminator 9 view .LVU172 + 424 01a2 04F58064 add r4, r4, #1024 + 425 01a6 A042 cmp r0, r4 + 426 01a8 3FF458AF beq .L23 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp; + 427 .loc 1 242 18 view .LVU173 + 428 01ac 0624 movs r4, #6 + 429 01ae 58E7 b .L7 + 430 .L14: + 431 01b0 0124 movs r4, #1 + 432 01b2 56E7 b .L7 + 433 .L15: + 434 01b4 0224 movs r4, #2 + 435 01b6 54E7 b .L7 + 436 .L16: + 437 01b8 0324 movs r4, #3 + 438 01ba 52E7 b .L7 + 439 .L17: + 440 01bc 0424 movs r4, #4 + 441 01be 50E7 b .L7 + 442 .LVL44: + 443 .L20: + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + ARM GAS /tmp/ccY6DPpN.s page 15 + + + 444 .loc 1 283 1 view .LVU174 + 445 01c0 03B0 add sp, sp, #12 + 446 .LCFI2: + 447 .cfi_def_cfa_offset 20 + 448 @ sp needed + 449 01c2 F0BD pop {r4, r5, r6, r7, pc} + 450 .L25: + 451 .align 2 + 452 .L24: + 453 01c4 00000140 .word 1073807360 + 454 01c8 00040140 .word 1073808384 + 455 01cc 00100240 .word 1073876992 + 456 01d0 00040048 .word 1207960576 + 457 .cfi_endproc + 458 .LFE329: + 460 .section .text.HAL_GPIO_DeInit,"ax",%progbits + 461 .align 1 + 462 .global HAL_GPIO_DeInit + 463 .syntax unified + 464 .thumb + 465 .thumb_func + 467 HAL_GPIO_DeInit: + 468 .LVL45: + 469 .LFB330: + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief De-initialize the GPIOx peripheral registers to their default reset values. + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written. + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 470 .loc 1 293 1 is_stmt 1 view -0 + 471 .cfi_startproc + 472 @ args = 0, pretend = 0, frame = 0 + 473 @ frame_needed = 0, uses_anonymous_args = 0 + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U; + 474 .loc 1 294 3 view .LVU176 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent; + 475 .loc 1 295 3 view .LVU177 + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t tmp; + 476 .loc 1 296 3 view .LVU178 + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */ + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + 477 .loc 1 299 3 view .LVU179 + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); + 478 .loc 1 300 3 view .LVU180 + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the port pins */ + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** while ((GPIO_Pin >> position) != 0U) + 479 .loc 1 303 3 view .LVU181 + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent; + 480 .loc 1 294 12 is_stmt 0 view .LVU182 + 481 0000 0023 movs r3, #0 + ARM GAS /tmp/ccY6DPpN.s page 16 + + + 482 .LVL46: + 483 .loc 1 303 33 is_stmt 1 view .LVU183 + 484 0002 31FA03F2 lsrs r2, r1, r3 + 485 0006 00F08180 beq .L41 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U; + 486 .loc 1 293 1 is_stmt 0 view .LVU184 + 487 000a F0B5 push {r4, r5, r6, r7, lr} + 488 .LCFI3: + 489 .cfi_def_cfa_offset 20 + 490 .cfi_offset 4, -20 + 491 .cfi_offset 5, -16 + 492 .cfi_offset 6, -12 + 493 .cfi_offset 7, -8 + 494 .cfi_offset 14, -4 + 495 000c 2EE0 b .L31 + 496 .LVL47: + 497 .L44: + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Get current io position */ + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & (1UL << position); + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (iocurrent != 0x00u) + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/ + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear the External Interrupt or Event for the current IO */ + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2U]; + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp &= (0x0FUL << (4U * (position & 0x03U))); + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + 498 .loc 1 315 19 view .LVU185 + 499 000e 0525 movs r5, #5 + 500 0010 00E0 b .L29 + 501 .L32: + 502 0012 0025 movs r5, #0 + 503 .L29: + 504 .loc 1 315 41 discriminator 24 view .LVU186 + 505 0014 05FA0CF5 lsl r5, r5, ip + 506 .loc 1 315 10 discriminator 24 view .LVU187 + 507 0018 A542 cmp r5, r4 + 508 001a 5BD0 beq .L42 + 509 .LVL48: + 510 .L30: + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear EXTI line configuration */ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->IMR1 &= ~(iocurrent); + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent); + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */ + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->FTSR1 &= ~(iocurrent); + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 &= ~(iocurrent); + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp = 0x0FUL << (4U * (position & 0x03U)); + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp; + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/ + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure IO in Analog Mode */ + ARM GAS /tmp/ccY6DPpN.s page 17 + + + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2u)); + 511 .loc 1 331 7 is_stmt 1 view .LVU188 + 512 .loc 1 331 12 is_stmt 0 view .LVU189 + 513 001c 0468 ldr r4, [r0] + 514 .loc 1 331 54 view .LVU190 + 515 001e 5D00 lsls r5, r3, #1 + 516 .loc 1 331 41 view .LVU191 + 517 0020 4FF0030C mov ip, #3 + 518 0024 0CFA05FC lsl ip, ip, r5 + 519 .loc 1 331 20 view .LVU192 + 520 0028 44EA0C04 orr r4, r4, ip + 521 002c 0460 str r4, [r0] + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */ + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->AFR[position >> 3u] &= ~(0xFu << ((position & 0x07u) * 4u)); + 522 .loc 1 334 7 is_stmt 1 view .LVU193 + 523 .loc 1 334 17 is_stmt 0 view .LVU194 + 524 002e 4FEAD30E lsr lr, r3, #3 + 525 0032 0EF1080E add lr, lr, #8 + 526 0036 50F82E40 ldr r4, [r0, lr, lsl #2] + 527 .loc 1 334 58 view .LVU195 + 528 003a 03F00706 and r6, r3, #7 + 529 .loc 1 334 67 view .LVU196 + 530 003e B600 lsls r6, r6, #2 + 531 .loc 1 334 44 view .LVU197 + 532 0040 0F25 movs r5, #15 + 533 0042 B540 lsls r5, r5, r6 + 534 .loc 1 334 34 view .LVU198 + 535 0044 24EA0504 bic r4, r4, r5 + 536 0048 40F82E40 str r4, [r0, lr, lsl #2] + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Deactivate the Pull-up and Pull-down resistor for the current IO */ + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2u)); + 537 .loc 1 337 7 is_stmt 1 view .LVU199 + 538 .loc 1 337 12 is_stmt 0 view .LVU200 + 539 004c C468 ldr r4, [r0, #12] + 540 .loc 1 337 20 view .LVU201 + 541 004e 24EA0C04 bic r4, r4, ip + 542 0052 C460 str r4, [r0, #12] + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the default value IO Output Type */ + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT0 << position); + 543 .loc 1 340 7 is_stmt 1 view .LVU202 + 544 .loc 1 340 12 is_stmt 0 view .LVU203 + 545 0054 4468 ldr r4, [r0, #4] + 546 .loc 1 340 22 view .LVU204 + 547 0056 24EA0202 bic r2, r4, r2 + 548 .LVL49: + 549 .loc 1 340 22 view .LVU205 + 550 005a 4260 str r2, [r0, #4] + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the default value for IO Speed */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2u)); + 551 .loc 1 343 7 is_stmt 1 view .LVU206 + 552 .loc 1 343 12 is_stmt 0 view .LVU207 + 553 005c 8268 ldr r2, [r0, #8] + 554 .loc 1 343 22 view .LVU208 + ARM GAS /tmp/ccY6DPpN.s page 18 + + + 555 005e 22EA0C02 bic r2, r2, ip + 556 0062 8260 str r2, [r0, #8] + 557 .L28: + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** position++; + 558 .loc 1 346 5 is_stmt 1 view .LVU209 + 559 .loc 1 346 13 is_stmt 0 view .LVU210 + 560 0064 0133 adds r3, r3, #1 + 561 .LVL50: + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 562 .loc 1 303 33 is_stmt 1 view .LVU211 + 563 0066 31FA03F2 lsrs r2, r1, r3 + 564 006a 4ED0 beq .L43 + 565 .LVL51: + 566 .L31: + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 567 .loc 1 306 5 view .LVU212 + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 568 .loc 1 306 35 is_stmt 0 view .LVU213 + 569 006c 0122 movs r2, #1 + 570 006e 9A40 lsls r2, r2, r3 + 571 .LVL52: + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 572 .loc 1 308 5 is_stmt 1 view .LVU214 + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 573 .loc 1 308 8 is_stmt 0 view .LVU215 + 574 0070 12EA0107 ands r7, r2, r1 + 575 .LVL53: + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 576 .loc 1 308 8 view .LVU216 + 577 0074 F6D0 beq .L28 + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp &= (0x0FUL << (4U * (position & 0x03U))); + 578 .loc 1 313 7 is_stmt 1 view .LVU217 + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp &= (0x0FUL << (4U * (position & 0x03U))); + 579 .loc 1 313 37 is_stmt 0 view .LVU218 + 580 0076 4FEA930E lsr lr, r3, #2 + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp &= (0x0FUL << (4U * (position & 0x03U))); + 581 .loc 1 313 11 view .LVU219 + 582 007a 0EF10205 add r5, lr, #2 + 583 007e 244C ldr r4, .L45 + 584 0080 54F82540 ldr r4, [r4, r5, lsl #2] + 585 .LVL54: + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + 586 .loc 1 314 7 is_stmt 1 view .LVU220 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + 587 .loc 1 314 41 is_stmt 0 view .LVU221 + 588 0084 03F0030C and ip, r3, #3 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + 589 .loc 1 314 29 view .LVU222 + 590 0088 4FEA8C0C lsl ip, ip, #2 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + 591 .loc 1 314 22 view .LVU223 + 592 008c 0F25 movs r5, #15 + 593 008e 05FA0CF6 lsl r6, r5, ip + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)))) + 594 .loc 1 314 11 view .LVU224 + ARM GAS /tmp/ccY6DPpN.s page 19 + + + 595 0092 3440 ands r4, r4, r6 + 596 .LVL55: + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 597 .loc 1 315 7 is_stmt 1 view .LVU225 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 598 .loc 1 315 19 is_stmt 0 view .LVU226 + 599 0094 B0F1904F cmp r0, #1207959552 + 600 0098 BBD0 beq .L32 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 601 .loc 1 315 19 discriminator 1 view .LVU227 + 602 009a 1E4D ldr r5, .L45+4 + 603 009c A842 cmp r0, r5 + 604 009e 11D0 beq .L33 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 605 .loc 1 315 19 discriminator 3 view .LVU228 + 606 00a0 05F58065 add r5, r5, #1024 + 607 00a4 A842 cmp r0, r5 + 608 00a6 0FD0 beq .L34 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 609 .loc 1 315 19 discriminator 5 view .LVU229 + 610 00a8 05F58065 add r5, r5, #1024 + 611 00ac A842 cmp r0, r5 + 612 00ae 0DD0 beq .L35 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 613 .loc 1 315 19 discriminator 7 view .LVU230 + 614 00b0 05F58065 add r5, r5, #1024 + 615 00b4 A842 cmp r0, r5 + 616 00b6 0BD0 beq .L36 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 617 .loc 1 315 19 discriminator 9 view .LVU231 + 618 00b8 05F58065 add r5, r5, #1024 + 619 00bc A842 cmp r0, r5 + 620 00be A6D0 beq .L44 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 621 .loc 1 315 19 view .LVU232 + 622 00c0 0625 movs r5, #6 + 623 00c2 A7E7 b .L29 + 624 .L33: + 625 00c4 0125 movs r5, #1 + 626 00c6 A5E7 b .L29 + 627 .L34: + 628 00c8 0225 movs r5, #2 + 629 00ca A3E7 b .L29 + 630 .L35: + 631 00cc 0325 movs r5, #3 + 632 00ce A1E7 b .L29 + 633 .L36: + 634 00d0 0425 movs r5, #4 + 635 00d2 9FE7 b .L29 + 636 .L42: + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent); + 637 .loc 1 318 9 is_stmt 1 view .LVU233 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent); + 638 .loc 1 318 13 is_stmt 0 view .LVU234 + 639 00d4 104C ldr r4, .L45+8 + 640 .LVL56: + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent); + ARM GAS /tmp/ccY6DPpN.s page 20 + + + 641 .loc 1 318 13 view .LVU235 + 642 00d6 2568 ldr r5, [r4] + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent); + 643 .loc 1 318 20 view .LVU236 + 644 00d8 25EA0705 bic r5, r5, r7 + 645 00dc 2560 str r5, [r4] + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 646 .loc 1 319 9 is_stmt 1 view .LVU237 + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 647 .loc 1 319 13 is_stmt 0 view .LVU238 + 648 00de 6568 ldr r5, [r4, #4] + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 649 .loc 1 319 20 view .LVU239 + 650 00e0 25EA0705 bic r5, r5, r7 + 651 00e4 6560 str r5, [r4, #4] + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 &= ~(iocurrent); + 652 .loc 1 322 9 is_stmt 1 view .LVU240 + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 &= ~(iocurrent); + 653 .loc 1 322 13 is_stmt 0 view .LVU241 + 654 00e6 E568 ldr r5, [r4, #12] + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 &= ~(iocurrent); + 655 .loc 1 322 21 view .LVU242 + 656 00e8 25EA0705 bic r5, r5, r7 + 657 00ec E560 str r5, [r4, #12] + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 658 .loc 1 323 9 is_stmt 1 view .LVU243 + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 659 .loc 1 323 13 is_stmt 0 view .LVU244 + 660 00ee A568 ldr r5, [r4, #8] + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 661 .loc 1 323 21 view .LVU245 + 662 00f0 25EA0705 bic r5, r5, r7 + 663 00f4 A560 str r5, [r4, #8] + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp; + 664 .loc 1 325 9 is_stmt 1 view .LVU246 + 665 .LVL57: + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 666 .loc 1 326 9 view .LVU247 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 667 .loc 1 326 23 is_stmt 0 view .LVU248 + 668 00f6 064F ldr r7, .L45 + 669 .LVL58: + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 670 .loc 1 326 23 view .LVU249 + 671 00f8 0EF10204 add r4, lr, #2 + 672 00fc 57F82450 ldr r5, [r7, r4, lsl #2] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 673 .loc 1 326 40 view .LVU250 + 674 0100 25EA0605 bic r5, r5, r6 + 675 0104 47F82450 str r5, [r7, r4, lsl #2] + 676 0108 88E7 b .L30 + 677 .LVL59: + 678 .L43: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 679 .loc 1 348 1 view .LVU251 + 680 010a F0BD pop {r4, r5, r6, r7, pc} + ARM GAS /tmp/ccY6DPpN.s page 21 + + + 681 .LVL60: + 682 .L41: + 683 .LCFI4: + 684 .cfi_def_cfa_offset 0 + 685 .cfi_restore 4 + 686 .cfi_restore 5 + 687 .cfi_restore 6 + 688 .cfi_restore 7 + 689 .cfi_restore 14 + 690 .loc 1 348 1 view .LVU252 + 691 010c 7047 bx lr + 692 .L46: + 693 010e 00BF .align 2 + 694 .L45: + 695 0110 00000140 .word 1073807360 + 696 0114 00040048 .word 1207960576 + 697 0118 00040140 .word 1073808384 + 698 .cfi_endproc + 699 .LFE330: + 701 .section .text.HAL_GPIO_ReadPin,"ax",%progbits + 702 .align 1 + 703 .global HAL_GPIO_ReadPin + 704 .syntax unified + 705 .thumb + 706 .thumb_func + 708 HAL_GPIO_ReadPin: + 709 .LVL61: + 710 .LFB331: + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @} + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions_Group2 + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief GPIO Read, Write, Toggle, Lock and EXTI management functions. + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @verbatim + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** =============================================================================== + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### IO operation functions ##### + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** =============================================================================== + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @endverbatim + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{ + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Read the specified input port pin. + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to read. + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval The input port pin value. + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 711 .loc 1 374 1 is_stmt 1 view -0 + 712 .cfi_startproc + 713 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/ccY6DPpN.s page 22 + + + 714 @ frame_needed = 0, uses_anonymous_args = 0 + 715 @ link register save eliminated. + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIO_PinState bitstatus; + 716 .loc 1 375 3 view .LVU254 + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */ + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); + 717 .loc 1 378 3 view .LVU255 + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIOx->IDR & GPIO_Pin) != 0x00U) + 718 .loc 1 380 3 view .LVU256 + 719 .loc 1 380 13 is_stmt 0 view .LVU257 + 720 0000 0369 ldr r3, [r0, #16] + 721 .loc 1 380 6 view .LVU258 + 722 0002 1942 tst r1, r3 + 723 0004 01D0 beq .L49 + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET; + 724 .loc 1 382 15 view .LVU259 + 725 0006 0120 movs r0, #1 + 726 .LVL62: + 727 .loc 1 382 15 view .LVU260 + 728 0008 7047 bx lr + 729 .LVL63: + 730 .L49: + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** else + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET; + 731 .loc 1 386 15 view .LVU261 + 732 000a 0020 movs r0, #0 + 733 .LVL64: + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** return bitstatus; + 734 .loc 1 388 3 is_stmt 1 view .LVU262 + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 735 .loc 1 389 1 is_stmt 0 view .LVU263 + 736 000c 7047 bx lr + 737 .cfi_endproc + 738 .LFE331: + 740 .section .text.HAL_GPIO_WritePin,"ax",%progbits + 741 .align 1 + 742 .global HAL_GPIO_WritePin + 743 .syntax unified + 744 .thumb + 745 .thumb_func + 747 HAL_GPIO_WritePin: + 748 .LVL65: + 749 .LFB332: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Set or clear the selected data port bit. + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR and GPIOx_BRR registers to allow atomic read/modify + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * the read and the modify access. + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + ARM GAS /tmp/ccY6DPpN.s page 23 + + + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written. + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param PinState specifies the value to be written to the selected bit. + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values: + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @arg GPIO_PIN_RESET: to clear the port pin + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @arg GPIO_PIN_SET: to set the port pin + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 750 .loc 1 408 1 is_stmt 1 view -0 + 751 .cfi_startproc + 752 @ args = 0, pretend = 0, frame = 0 + 753 @ frame_needed = 0, uses_anonymous_args = 0 + 754 @ link register save eliminated. + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */ + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); + 755 .loc 1 410 3 view .LVU265 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState)); + 756 .loc 1 411 3 view .LVU266 + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (PinState != GPIO_PIN_RESET) + 757 .loc 1 413 3 view .LVU267 + 758 .loc 1 413 6 is_stmt 0 view .LVU268 + 759 0000 0AB1 cbz r2, .L51 + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin; + 760 .loc 1 415 5 is_stmt 1 view .LVU269 + 761 .loc 1 415 17 is_stmt 0 view .LVU270 + 762 0002 8161 str r1, [r0, #24] + 763 0004 7047 bx lr + 764 .L51: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** else + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->BRR = (uint32_t)GPIO_Pin; + 765 .loc 1 419 5 is_stmt 1 view .LVU271 + 766 .loc 1 419 16 is_stmt 0 view .LVU272 + 767 0006 8162 str r1, [r0, #40] + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 768 .loc 1 421 1 view .LVU273 + 769 0008 7047 bx lr + 770 .cfi_endproc + 771 .LFE332: + 773 .section .text.HAL_GPIO_TogglePin,"ax",%progbits + 774 .align 1 + 775 .global HAL_GPIO_TogglePin + 776 .syntax unified + 777 .thumb + 778 .thumb_func + 780 HAL_GPIO_TogglePin: + 781 .LVL66: + 782 .LFB333: + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + ARM GAS /tmp/ccY6DPpN.s page 24 + + + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Toggle the specified GPIO pin. + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the pin to be toggled. + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15). + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 783 .loc 1 431 1 is_stmt 1 view -0 + 784 .cfi_startproc + 785 @ args = 0, pretend = 0, frame = 0 + 786 @ frame_needed = 0, uses_anonymous_args = 0 + 787 @ link register save eliminated. + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t odr; + 788 .loc 1 432 3 view .LVU275 + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */ + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); + 789 .loc 1 435 3 view .LVU276 + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* get current Output Data Register value */ + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** odr = GPIOx->ODR; + 790 .loc 1 438 3 view .LVU277 + 791 .loc 1 438 7 is_stmt 0 view .LVU278 + 792 0000 4369 ldr r3, [r0, #20] + 793 .LVL67: + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Set selected pins that were at low level, and reset ones that were high */ + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin); + 794 .loc 1 441 3 is_stmt 1 view .LVU279 + 795 .loc 1 441 23 is_stmt 0 view .LVU280 + 796 0002 01EA0302 and r2, r1, r3 + 797 .loc 1 441 59 view .LVU281 + 798 0006 21EA0301 bic r1, r1, r3 + 799 .LVL68: + 800 .loc 1 441 51 view .LVU282 + 801 000a 41EA0241 orr r1, r1, r2, lsl #16 + 802 .loc 1 441 15 view .LVU283 + 803 000e 8161 str r1, [r0, #24] + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 804 .loc 1 442 1 view .LVU284 + 805 0010 7047 bx lr + 806 .cfi_endproc + 807 .LFE333: + 809 .section .text.HAL_GPIO_LockPin,"ax",%progbits + 810 .align 1 + 811 .global HAL_GPIO_LockPin + 812 .syntax unified + 813 .thumb + 814 .thumb_func + 816 HAL_GPIO_LockPin: + 817 .LVL69: + 818 .LFB334: + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Lock GPIO Pins configuration registers. + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, + ARM GAS /tmp/ccY6DPpN.s page 25 + + + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH. + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * until the next reset. + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bits to be locked. + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 819 .loc 1 456 1 is_stmt 1 view -0 + 820 .cfi_startproc + 821 @ args = 0, pretend = 0, frame = 8 + 822 @ frame_needed = 0, uses_anonymous_args = 0 + 823 @ link register save eliminated. + 824 .loc 1 456 1 is_stmt 0 view .LVU286 + 825 0000 82B0 sub sp, sp, #8 + 826 .LCFI5: + 827 .cfi_def_cfa_offset 8 + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK; + 828 .loc 1 457 3 is_stmt 1 view .LVU287 + 829 .loc 1 457 17 is_stmt 0 view .LVU288 + 830 0002 4FF48033 mov r3, #65536 + 831 0006 0193 str r3, [sp, #4] + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */ + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_LOCK_INSTANCE(GPIOx)); + 832 .loc 1 460 3 is_stmt 1 view .LVU289 + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); + 833 .loc 1 461 3 view .LVU290 + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Apply lock key write sequence */ + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp |= GPIO_Pin; + 834 .loc 1 464 3 view .LVU291 + 835 .loc 1 464 7 is_stmt 0 view .LVU292 + 836 0008 019B ldr r3, [sp, #4] + 837 000a 0B43 orrs r3, r3, r1 + 838 000c 0193 str r3, [sp, #4] + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */ + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->LCKR = tmp; + 839 .loc 1 466 3 is_stmt 1 view .LVU293 + 840 .loc 1 466 15 is_stmt 0 view .LVU294 + 841 000e 019B ldr r3, [sp, #4] + 842 0010 C361 str r3, [r0, #28] + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin; + 843 .loc 1 468 3 is_stmt 1 view .LVU295 + 844 .loc 1 468 15 is_stmt 0 view .LVU296 + 845 0012 C161 str r1, [r0, #28] + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */ + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->LCKR = tmp; + 846 .loc 1 470 3 is_stmt 1 view .LVU297 + 847 .loc 1 470 15 is_stmt 0 view .LVU298 + 848 0014 019B ldr r3, [sp, #4] + 849 0016 C361 str r3, [r0, #28] + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Read LCKK register. This read is mandatory to complete key lock sequence */ + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp = GPIOx->LCKR; + ARM GAS /tmp/ccY6DPpN.s page 26 + + + 850 .loc 1 472 3 is_stmt 1 view .LVU299 + 851 .loc 1 472 14 is_stmt 0 view .LVU300 + 852 0018 C369 ldr r3, [r0, #28] + 853 .loc 1 472 7 view .LVU301 + 854 001a 0193 str r3, [sp, #4] + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* read again in order to confirm lock is active */ + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00u) + 855 .loc 1 475 3 is_stmt 1 view .LVU302 + 856 .loc 1 475 13 is_stmt 0 view .LVU303 + 857 001c C369 ldr r3, [r0, #28] + 858 .loc 1 475 6 view .LVU304 + 859 001e 13F4803F tst r3, #65536 + 860 0022 02D0 beq .L56 + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** return HAL_OK; + 861 .loc 1 477 12 view .LVU305 + 862 0024 0020 movs r0, #0 + 863 .LVL70: + 864 .L55: + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** else + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** return HAL_ERROR; + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 865 .loc 1 483 1 view .LVU306 + 866 0026 02B0 add sp, sp, #8 + 867 .LCFI6: + 868 .cfi_remember_state + 869 .cfi_def_cfa_offset 0 + 870 @ sp needed + 871 0028 7047 bx lr + 872 .LVL71: + 873 .L56: + 874 .LCFI7: + 875 .cfi_restore_state + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 876 .loc 1 481 12 view .LVU307 + 877 002a 0120 movs r0, #1 + 878 .LVL72: + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 879 .loc 1 481 12 view .LVU308 + 880 002c FBE7 b .L55 + 881 .cfi_endproc + 882 .LFE334: + 884 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits + 885 .align 1 + 886 .weak HAL_GPIO_EXTI_Callback + 887 .syntax unified + 888 .thumb + 889 .thumb_func + 891 HAL_GPIO_EXTI_Callback: + 892 .LVL73: + 893 .LFB336: + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + ARM GAS /tmp/ccY6DPpN.s page 27 + + + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Handle EXTI interrupt request. + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* EXTI line interrupt detected */ + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u) + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin); + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief EXTI line detection callback. + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin: Specifies the port pin connected to corresponding EXTI line. + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 894 .loc 1 506 1 is_stmt 1 view -0 + 895 .cfi_startproc + 896 @ args = 0, pretend = 0, frame = 0 + 897 @ frame_needed = 0, uses_anonymous_args = 0 + 898 @ link register save eliminated. + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Prevent unused argument(s) compilation warning */ + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** UNUSED(GPIO_Pin); + 899 .loc 1 508 3 view .LVU310 + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* NOTE: This function should not be modified, when the callback is needed, + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** the HAL_GPIO_EXTI_Callback could be implemented in the user file + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */ + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 900 .loc 1 513 1 is_stmt 0 view .LVU311 + 901 0000 7047 bx lr + 902 .cfi_endproc + 903 .LFE336: + 905 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits + 906 .align 1 + 907 .global HAL_GPIO_EXTI_IRQHandler + 908 .syntax unified + 909 .thumb + 910 .thumb_func + 912 HAL_GPIO_EXTI_IRQHandler: + 913 .LVL74: + 914 .LFB335: + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* EXTI line interrupt detected */ + 915 .loc 1 491 1 is_stmt 1 view -0 + 916 .cfi_startproc + 917 @ args = 0, pretend = 0, frame = 0 + 918 @ frame_needed = 0, uses_anonymous_args = 0 + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* EXTI line interrupt detected */ + 919 .loc 1 491 1 is_stmt 0 view .LVU313 + 920 0000 08B5 push {r3, lr} + 921 .LCFI8: + 922 .cfi_def_cfa_offset 8 + ARM GAS /tmp/ccY6DPpN.s page 28 + + + 923 .cfi_offset 3, -8 + 924 .cfi_offset 14, -4 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 925 .loc 1 493 3 is_stmt 1 view .LVU314 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 926 .loc 1 493 7 is_stmt 0 view .LVU315 + 927 0002 054B ldr r3, .L63 + 928 0004 5B69 ldr r3, [r3, #20] + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** { + 929 .loc 1 493 6 view .LVU316 + 930 0006 0342 tst r3, r0 + 931 0008 00D1 bne .L62 + 932 .LVL75: + 933 .L59: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 934 .loc 1 498 1 view .LVU317 + 935 000a 08BD pop {r3, pc} + 936 .LVL76: + 937 .L62: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin); + 938 .loc 1 495 5 is_stmt 1 view .LVU318 + 939 000c 024B ldr r3, .L63 + 940 000e 5861 str r0, [r3, #20] + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** } + 941 .loc 1 496 5 view .LVU319 + 942 0010 FFF7FEFF bl HAL_GPIO_EXTI_Callback + 943 .LVL77: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** + 944 .loc 1 498 1 is_stmt 0 view .LVU320 + 945 0014 F9E7 b .L59 + 946 .L64: + 947 0016 00BF .align 2 + 948 .L63: + 949 0018 00040140 .word 1073808384 + 950 .cfi_endproc + 951 .LFE335: + 953 .text + 954 .Letext0: + 955 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 956 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 957 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 958 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h" + ARM GAS /tmp/ccY6DPpN.s page 29 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_gpio.c + /tmp/ccY6DPpN.s:21 .text.HAL_GPIO_Init:00000000 $t + /tmp/ccY6DPpN.s:27 .text.HAL_GPIO_Init:00000000 HAL_GPIO_Init + /tmp/ccY6DPpN.s:453 .text.HAL_GPIO_Init:000001c4 $d + /tmp/ccY6DPpN.s:461 .text.HAL_GPIO_DeInit:00000000 $t + /tmp/ccY6DPpN.s:467 .text.HAL_GPIO_DeInit:00000000 HAL_GPIO_DeInit + /tmp/ccY6DPpN.s:695 .text.HAL_GPIO_DeInit:00000110 $d + /tmp/ccY6DPpN.s:702 .text.HAL_GPIO_ReadPin:00000000 $t + /tmp/ccY6DPpN.s:708 .text.HAL_GPIO_ReadPin:00000000 HAL_GPIO_ReadPin + /tmp/ccY6DPpN.s:741 .text.HAL_GPIO_WritePin:00000000 $t + /tmp/ccY6DPpN.s:747 .text.HAL_GPIO_WritePin:00000000 HAL_GPIO_WritePin + /tmp/ccY6DPpN.s:774 .text.HAL_GPIO_TogglePin:00000000 $t + /tmp/ccY6DPpN.s:780 .text.HAL_GPIO_TogglePin:00000000 HAL_GPIO_TogglePin + /tmp/ccY6DPpN.s:810 .text.HAL_GPIO_LockPin:00000000 $t + /tmp/ccY6DPpN.s:816 .text.HAL_GPIO_LockPin:00000000 HAL_GPIO_LockPin + /tmp/ccY6DPpN.s:885 .text.HAL_GPIO_EXTI_Callback:00000000 $t + /tmp/ccY6DPpN.s:891 .text.HAL_GPIO_EXTI_Callback:00000000 HAL_GPIO_EXTI_Callback + /tmp/ccY6DPpN.s:906 .text.HAL_GPIO_EXTI_IRQHandler:00000000 $t + /tmp/ccY6DPpN.s:912 .text.HAL_GPIO_EXTI_IRQHandler:00000000 HAL_GPIO_EXTI_IRQHandler + /tmp/ccY6DPpN.s:949 .text.HAL_GPIO_EXTI_IRQHandler:00000018 $d + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_hal_gpio.o b/squeow_sw/build/stm32g4xx_hal_gpio.o new file mode 100644 index 0000000000000000000000000000000000000000..412b8a929e28a9db6a0fdf7cd4d84b5e4012512c GIT binary patch literal 13744 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 P>|zO}ZnnWtXN&&>6E5oJ literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_i2c.d b/squeow_sw/build/stm32g4xx_hal_i2c.d new file mode 100644 index 0000000..146fb77 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_i2c.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_i2c.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_i2c.lst b/squeow_sw/build/stm32g4xx_hal_i2c.lst new file mode 100644 index 0000000..2734b40 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_i2c.lst @@ -0,0 +1,25797 @@ +ARM GAS /tmp/ccbUHtu7.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_i2c.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c" + 20 .section .text.I2C_Flush_TXDR,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 I2C_Flush_TXDR: + 27 .LVL0: + 28 .LFB392: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @file stm32g4xx_hal_i2c.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + IO operation functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + Peripheral State and Errors functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ****************************************************************************** + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @attention + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * Copyright (c) 2019 STMicroelectronics. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * All rights reserved. + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in the root directory of this software component. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ****************************************************************************** + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================================================================== + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### How to use this driver ##### + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================================================================== + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The I2C HAL driver can be used as follows: + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: + ARM GAS /tmp/ccbUHtu7.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) Enable the I2Cx interface clock + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) I2C pins configuration + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the transmit or receive channel + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the DMA handle parameters + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the DMA Tx or Rx channel + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Polling mode IO operation *** + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ================================= + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Polling mode IO MEM operation *** + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ===================================== + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Interrupt mode IO operation *** + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =================================== + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + ARM GAS /tmp/ccbUHtu7.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ========================================================== + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** when a direction change during transfer + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** no sequential mode + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and data to transfer without a final stop condition + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** an then permit a call the same master sequential interface several time + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfer + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfer + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** after several call of the same master sequential interface several time + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME). + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Usage can, transfer several bytes one by one using + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** each call of the same master sequential + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** interface. + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** each bytes using + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA + ARM GAS /tmp/ccbUHtu7.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** generation of STOP condition. + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below: + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_DisableListen_IT() + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (Write/Read). + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ======================================= + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** DMA mode IO operation *** + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================== + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can + ARM GAS /tmp/ccbUHtu7.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** DMA mode IO MEM operation *** + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ================================= + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** I2C HAL driver macros list *** + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ================================== + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Callback registration *** + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================================= + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to register an interrupt callback. + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + ARM GAS /tmp/ccbUHtu7.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and a pointer to the user callback function. + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** weak function. + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and the Callback ID. + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This function allows to reset following callbacks: + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** these callbacks are null (not registered beforehand). + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Init() function. + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** are set to the corresponding weak functions. + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #include "stm32g4xx_hal.h" + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @addtogroup STM32G4xx_HAL_Driver + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C I2C + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C HAL module driver + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Default Value */ + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ + ARM GAS /tmp/ccbUHtu7.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and NACK treatment */ + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle IT transfer */ + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle IT transfer */ + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to treat different error callback */ + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to flush TXDR register */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Request); + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to Convert Specific options */ + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions + ARM GAS /tmp/ccbUHtu7.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initialization and Configuration functions + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** deinitialize the I2Cx peripheral: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the selected configuration: + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Clock Timing + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 1 + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Dual Addressing mode + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 2 + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 2 Mask + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) General call mode + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Nostretch mode + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** of the selected I2Cx peripheral. + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c == NULL) + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the I2C Callback settings */ + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); + ARM GAS /tmp/ccbUHtu7.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c == NULL) + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); + ARM GAS /tmp/ccbUHtu7.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initialize the I2C MSP. + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Register a User I2C Callback + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * To be used instead of the weak predefined callback + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID + ARM GAS /tmp/ccbUHtu7.s page 14 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pCallback pointer to the Callback function + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (pCallback == NULL) + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : + ARM GAS /tmp/ccbUHtu7.s page 15 + + + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 16 + + + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Unregister an I2C Callback + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + ARM GAS /tmp/ccbUHtu7.s page 17 + + + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 18 + + + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (pCallback == NULL) + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. + ARM GAS /tmp/ccbUHtu7.s page 19 + + +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Data transfers functions +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### IO operation functions ##### +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfers. +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) There are two modes of transfer: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The status of all data processing is returned by the same function +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** after finishing transfer. +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The end of the data processing will be indicated through the +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** using DMA mode. +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Blocking mode functions are : +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() + ARM GAS /tmp/ccbUHtu7.s page 20 + + +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent + ARM GAS /tmp/ccbUHtu7.s page 21 + + +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; + ARM GAS /tmp/ccbUHtu7.s page 22 + + +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set */ +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + ARM GAS /tmp/ccbUHtu7.s page 23 + + +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 24 + + +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set */ +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; + ARM GAS /tmp/ccbUHtu7.s page 25 + + +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ + ARM GAS /tmp/ccbUHtu7.s page 26 + + +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until AF flag is set */ +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK) +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear AF flag */ +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP flag is set */ +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; + ARM GAS /tmp/ccbUHtu7.s page 27 + + +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP flag */ +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ + ARM GAS /tmp/ccbUHtu7.s page 28 + + +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 29 + + +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP flag is set */ +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP flag */ +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + ARM GAS /tmp/ccbUHtu7.s page 30 + + +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 31 + + +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 32 + + +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + ARM GAS /tmp/ccbUHtu7.s page 33 + + +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 34 + + +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; + ARM GAS /tmp/ccbUHtu7.s page 35 + + +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 36 + + +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 37 + + +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 38 + + +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ + ARM GAS /tmp/ccbUHtu7.s page 39 + + +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + ARM GAS /tmp/ccbUHtu7.s page 40 + + +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; +2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; + ARM GAS /tmp/ccbUHtu7.s page 41 + + +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; +2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + ARM GAS /tmp/ccbUHtu7.s page 42 + + +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address +2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address + ARM GAS /tmp/ccbUHtu7.s page 43 + + +2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre +2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 44 + + +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS +2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do +2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, +2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); +2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); + ARM GAS /tmp/ccbUHtu7.s page 45 + + +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address +2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres +2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK +2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + ARM GAS /tmp/ccbUHtu7.s page 46 + + +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ +2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, +2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); +2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); +2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do +2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) +2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 47 + + +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, +2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); +2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); +2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ +2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) +2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres +2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 48 + + +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); +2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) +2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); +2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); + ARM GAS /tmp/ccbUHtu7.s page 49 + + +2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre +2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd +2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); +2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ + ARM GAS /tmp/ccbUHtu7.s page 50 + + +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart +2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + ARM GAS /tmp/ccbUHtu7.s page 51 + + +2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA +2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); +2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + ARM GAS /tmp/ccbUHtu7.s page 52 + + +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar +2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) +2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; +2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current + ARM GAS /tmp/ccbUHtu7.s page 53 + + +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); +2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; +2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be read +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd +2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); +2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + ARM GAS /tmp/ccbUHtu7.s page 54 + + +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; +3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart +3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; +3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa + ARM GAS /tmp/ccbUHtu7.s page 55 + + +3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; + ARM GAS /tmp/ccbUHtu7.s page 56 + + +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This function is used with Memory devices +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Trials Number of trials +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria +3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; +3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp1; +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do +3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Start */ +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) +3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) +3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + ARM GAS /tmp/ccbUHtu7.s page 57 + + +3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); +3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) +3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Device is ready */ +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) +3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_Trials == Trials) +3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; +3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ + ARM GAS /tmp/ccbUHtu7.s page 58 + + +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) +3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Trials */ +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Trials++; +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); +3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint +3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; + ARM GAS /tmp/ccbUHtu7.s page 59 + + +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ +3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); +3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) +3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; + ARM GAS /tmp/ccbUHtu7.s page 60 + + +3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; +3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; +3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, +3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + ARM GAS /tmp/ccbUHtu7.s page 61 + + +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); +3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) +3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; +3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; +3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> +3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ + ARM GAS /tmp/ccbUHtu7.s page 62 + + +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); +3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 63 + + +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; +3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; +3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) +3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else + ARM GAS /tmp/ccbUHtu7.s page 64 + + +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); +3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); +3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 65 + + +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; +3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, +3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) +3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ +3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); +3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; +3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; +3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ + ARM GAS /tmp/ccbUHtu7.s page 66 + + +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p +3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +3690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +3698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ +3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); +3701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); +3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; +3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ +3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + ARM GAS /tmp/ccbUHtu7.s page 67 + + +3736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ +3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ +3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, +3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); +3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ +3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ +3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | +3751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ +3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); +3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit +3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +3769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) +3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) +3780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ +3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); +3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 68 + + +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ +3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) +3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ +3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); +3799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) +3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +3806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; +3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ +3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) +3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); +3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; +3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; +3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) +3836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ +3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ +3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ +3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); + ARM GAS /tmp/ccbUHtu7.s page 69 + + +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +3860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit +3861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +3863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +3864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +3867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t +3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +3887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); +3890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ +3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ +3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) +3894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ +3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); +3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) +3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ +3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +3902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + ARM GAS /tmp/ccbUHtu7.s page 70 + + +3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; +3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); +3914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) +3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) +3921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; +3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ +3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) +3933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); +3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; +3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +3948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; +3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; +3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 71 + + +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; +3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; +3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; +3970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX +3973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); +3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +3983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +3991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset XferSize */ +3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0; +3997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +3999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) +4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ +4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ +4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ + ARM GAS /tmp/ccbUHtu7.s page 72 + + +4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; +4025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ +4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); +4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with +4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +4047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +4048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si +4051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) +4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ +4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); +4066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ +4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) +4073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ +4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); +4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) + ARM GAS /tmp/ccbUHtu7.s page 73 + + +4078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ +4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +4083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; +4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ +4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) +4090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); +4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; +4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) +4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ +4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ +4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +4117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +4125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ +4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); +4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 74 + + +4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with +4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during +4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer +4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent +4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS +4144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S +4147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) +4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; +4150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); +4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) +4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) +4157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); +4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ +4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) +4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); +4174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) +4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ +4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +4181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; +4185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ +4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) +4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 75 + + +4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) +4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) +4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ +4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +4205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; +4207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ +4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) +4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); +4213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; +4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; +4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; +4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ +4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; +4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; +4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; +4235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +4237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ +4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; +4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; +4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; +4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ + ARM GAS /tmp/ccbUHtu7.s page 76 + + +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, +4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); +4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +4257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; +4260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +4271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset XferSize */ +4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0; +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ +4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; +4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) +4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ +4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; +4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +4304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ + ARM GAS /tmp/ccbUHtu7.s page 77 + + +4306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ +4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); +4308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. +4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) +4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the Address Match interrupt */ +4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); +4332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. +4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C +4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp; +4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ +4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) +4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); +4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the Address Match interrupt */ +4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + ARM GAS /tmp/ccbUHtu7.s page 78 + + +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; +4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. +4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) +4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +4386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) +4389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); +4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; +4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) +4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); +4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ +4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; +4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ +4407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe +4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); +4409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current +4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ +4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 79 + + +4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong usage of abort function */ +4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ +4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} +4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks +4433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. +4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) +4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ +4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); +4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); +4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ +4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferISR != NULL) +4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); +4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. +4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) +4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); +4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); +4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; +4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ +4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ +4469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) +4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; +4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear BERR flag */ +4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); +4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 80 + + +4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ +4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) +4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; +4482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear OVR flag */ +4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); +4485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ +4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; +4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ARLO flag */ +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); +4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; +4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ +4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ +4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); +4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. +4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) +4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file +4520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. +4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) +4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 81 + + +4534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. +4540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) +4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) +4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file +4567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Slave Address Match callback. +4572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE +4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code +4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM +4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); +4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); +4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file +4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + ARM GAS /tmp/ccbUHtu7.s page 82 + + +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Listen Complete callback. +4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) +4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file +4603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. +4608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) +4613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file +4619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. +4624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) +4629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file +4635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C error callback. +4640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) +4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); + ARM GAS /tmp/ccbUHtu7.s page 83 + + +4648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file +4651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C abort callback. +4656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) +4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +4663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); +4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, +4666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file +4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} +4672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions +4675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions +4676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * +4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim +4678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== +4679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### +4680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== +4681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] +4682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral +4683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and the data flow. +4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim +4686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ +4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Return the I2C handle state. +4691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL state +4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) +4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ +4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->State; +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. +4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for I2C module + ARM GAS /tmp/ccbUHtu7.s page 84 + + +4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL mode +4706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) +4708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; +4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Return the I2C error code. +4714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval I2C Error Code +4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; +4721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} +4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} +4729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions +4732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ +4733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. +4737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +4740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. +4741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, +4744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) +4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; +4747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; +4748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +4751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ +4753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) +4754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +4757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ +4759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ +4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + ARM GAS /tmp/ccbUHtu7.s page 85 + + +4762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +4765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ +4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) +4768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ +4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; +4771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +4774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +4777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +4780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ +4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) +4783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; +4786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +4789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +4792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ +4794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) +4795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) +4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); +4799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +4801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START +4804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) +4809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, +4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); +4812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, +4816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); +4817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 86 + + +4819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ +4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) +4824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ +4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); +4827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ +4831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); +4833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ +4837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) +4838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) +4840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) +4842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ +4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) +4845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ +4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; +4848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ +4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); +4853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ +4859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); +4861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +4866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ +4869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) +4870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ +4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); +4873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ + ARM GAS /tmp/ccbUHtu7.s page 87 + + +4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +4877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. +4883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +4884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +4885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +4886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. +4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +4888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +4889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, +4890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) +4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; +4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; +4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if STOPF is set */ +4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ +4900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) +4901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave complete process */ +4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); +4904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ +4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) +4908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ +4910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ +4911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0*/ +4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ +4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) +4914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) +4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for +4917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ +4918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); +4921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) +4923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +4925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +4926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +4928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +4929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ +4931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ +4932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); + ARM GAS /tmp/ccbUHtu7.s page 88 + + +4933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +4937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +4938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ +4943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +4944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +4945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ +4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; +4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) +4950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); +4953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ +4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) +4958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > 0U) +4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +4963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ +4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) +4973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ +4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); +4976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ +4979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) +4980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); +4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ +4984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) +4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ +4987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ +4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if all Data have already been sent */ +4989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ + ARM GAS /tmp/ccbUHtu7.s page 89 + + +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > 0U) +4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +4992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; +4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +5000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) +5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ +5006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ +5007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); +5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +5014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +5020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. +5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +5025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +5026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. +5028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +5029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, +5031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) +5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; +5034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; +5035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +5038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ +5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) +5041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ +5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + ARM GAS /tmp/ccbUHtu7.s page 90 + + +5047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ +5049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ +5050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ +5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); +5052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +5054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +5055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ +5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) +5058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC interrupt */ +5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); +5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) +5063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Recover Slave address */ +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); +5066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ +5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) +5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; +5079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; +5083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ +5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); +5088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ +5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; +5091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ +5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) +5094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; +5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; +5100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 91 + + +5104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ +5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) +5106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ +5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); +5109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ +5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); +5115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ +5119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) +5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) +5122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) +5124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ +5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) +5127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ +5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; +5130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ +5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); +5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ +5141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); +5143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ +5146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) +5147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); +5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 92 + + +5161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. +5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +5166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. +5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +5169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, +5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) +5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; +5175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; +5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); +5179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if STOPF is set */ +5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ +5182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) +5183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave complete process */ +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); +5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ +5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) +5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ +5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ +5193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0 */ +5194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ +5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || +5196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) +5197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ +5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) +5202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) +5204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** treatdmanack = 1U; +5206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ +5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) +5214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) +5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** treatdmanack = 1U; + ARM GAS /tmp/ccbUHtu7.s page 93 + + +5218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (treatdmanack == 1U) +5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) +5225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for +5226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ +5227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ +5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); +5230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +5234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +5238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ +5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ +5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); +5242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ +5252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; +5257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ +5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpstate = hi2c->State; +5260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) +5262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) +5264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; +5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN +5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; +5270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 94 + + +5275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); +5278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ +5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ +5288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) +5289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); +5291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +5301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques +5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +5306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +5307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +5309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +5312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +5313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, +5316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t +5317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) +5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI +5320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) +5323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +5325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ +5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) +5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Memory Address */ +5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + ARM GAS /tmp/ccbUHtu7.s page 95 + + +5332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ +5334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send MSB of Memory Address */ +5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); +5338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) +5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +5343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send LSB of Memory Address */ +5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); +5347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) +5351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +5353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +5356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request +5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +5361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value +5363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface +5364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address +5365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address +5366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +5368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +5369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, +5371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T +5372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) +5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR +5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) +5378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ +5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) +5384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Memory Address */ +5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); +5387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ + ARM GAS /tmp/ccbUHtu7.s page 96 + + +5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send MSB of Memory Address */ +5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); +5393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) +5396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +5398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send LSB of Memory Address */ +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); +5402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TC flag is set */ +5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) +5406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Address complete process callback. +5415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; +5422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; +5423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; +5424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; +5425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ +5427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(ITFlags); +5428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ +5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) +5431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); +5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); +5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); +5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); +5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ +5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) +5439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) +5441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = ownadd1code; +5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) +5445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 97 + + +5446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Address Event counter */ +5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; +5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ +5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); +5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ +5456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); +5458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); +5460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = ownadd2code; +5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR Interrupts */ +5468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); +5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ +5474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); +5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); +5478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ +5482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR Interrupts */ +5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); +5486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ +5491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); +5493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); +5495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Else clear address flag only */ +5499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ +5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + ARM GAS /tmp/ccbUHtu7.s page 98 + + +5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Master sequential complete process. +5511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) +5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ +5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ +5520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ +5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) +5522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; +5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +5526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ +5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); +5529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); +5536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); +5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ +5541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; +5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +5546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ +5548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); +5549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); +5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); +5558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 99 + + +5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. +5564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); +5570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ +5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ +5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) +5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +5579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) +5581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +5584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ +5588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) +5591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; +5595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ +5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); +5598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); +5605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); +5607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) +5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ +5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; +5615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ + ARM GAS /tmp/ccbUHtu7.s page 100 + + +5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); +5618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); +5625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); +5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Master complete process. +5637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +5639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; +5644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; +5646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +5649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ +5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) +5652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); +5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; +5655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) +5657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); +5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; +5660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ +5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +5667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +5668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ +5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) + ARM GAS /tmp/ccbUHtu7.s page 101 + + +5674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set acknowledge error code */ +5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; +5680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Fetch Last receive data if any */ +5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) +5684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; +5687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); +5688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +5692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ +5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) +5698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); +5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) +5704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +5707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) +5709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); +5718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); +5720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + ARM GAS /tmp/ccbUHtu7.s page 102 + + +5731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); +5732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); +5734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) +5739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +5742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) +5744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); +5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); +5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); +5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); +5769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Slave complete process. +5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +5782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); +5787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + ARM GAS /tmp/ccbUHtu7.s page 103 + + +5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; +5789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +5792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ +5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) +5795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; +5798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) +5800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); +5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; +5803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ +5807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ +5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +5811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +5813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +5817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ +5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) +5820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +5823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +5825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); +5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) +5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +5833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +5835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); +5837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ +5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ + ARM GAS /tmp/ccbUHtu7.s page 104 + + +5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) +5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ +5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; +5849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +5852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +5855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) +5857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +5860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ +5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) +5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ +5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; +5868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +5872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) +5874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); +5877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) +5880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ +5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); +5883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) +5886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ +5888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); +5889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +5893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +5898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); +5900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); + ARM GAS /tmp/ccbUHtu7.s page 105 + + +5902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) +5906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +5909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); +5916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); +5918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +5921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +5929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); +5931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); +5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Listen complete process. +5939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. +5941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ +5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +5951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ +5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) +5954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; +5957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ + ARM GAS /tmp/ccbUHtu7.s page 106 + + +5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; +5960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) +5962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; +5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; +5965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ +5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; +5968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all Interrupts*/ +5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); +5973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ +5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +5976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +5979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +5981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +5982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); +5983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); +5985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +5987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +5989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C interrupts error process. +5990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +5991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ErrorCode Error code to handle. +5992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +5993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +5994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) +5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; +5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; +5998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +5999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ +6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; +6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; +6003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set new error code */ +6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; +6006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ +6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || +6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || +6010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) +6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ +6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); +6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ + ARM GAS /tmp/ccbUHtu7.s page 107 + + +6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; +6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; +6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all interrupts */ +6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); +6023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ +6025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This change will be do later */ +6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) +6027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ +6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; +6032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ +6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ +6037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) +6038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) +6040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +6042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) +6045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +6047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; +6049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ +6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) +6055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ +6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); +6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); +6063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ +6067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) +6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) +6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +6072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 108 + + +6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) +6075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : +6077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ +6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; +6079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ +6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) +6085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ +6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); +6088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); +6093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); +6098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Error callback treatment. +6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) +6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) +6109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +6112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +6117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +6118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); +6119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); +6121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +6122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; +6126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 109 + + +6130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +6131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); +6133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else +6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); +6135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +6136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Tx data register flush process. +6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +6142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) +6145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 29 .loc 1 6145 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. +6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a pending TXIS flag is set */ +6147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ +6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) + 34 .loc 1 6148 3 view .LVU1 + 35 .loc 1 6148 7 is_stmt 0 view .LVU2 + 36 0000 0368 ldr r3, [r0] + 37 0002 9A69 ldr r2, [r3, #24] + 38 .loc 1 6148 6 view .LVU3 + 39 0004 12F0020F tst r2, #2 + 40 0008 01D0 beq .L2 +6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; + 41 .loc 1 6150 5 is_stmt 1 view .LVU4 + 42 .loc 1 6150 26 is_stmt 0 view .LVU5 + 43 000a 0022 movs r2, #0 + 44 000c 9A62 str r2, [r3, #40] + 45 .L2: +6151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register if not empty */ +6154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) + 46 .loc 1 6154 3 is_stmt 1 view .LVU6 + 47 .loc 1 6154 7 is_stmt 0 view .LVU7 + 48 000e 0368 ldr r3, [r0] + 49 0010 9A69 ldr r2, [r3, #24] + 50 .loc 1 6154 6 view .LVU8 + 51 0012 12F0010F tst r2, #1 + 52 0016 03D1 bne .L1 +6155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); + 53 .loc 1 6156 5 is_stmt 1 view .LVU9 + 54 0018 9A69 ldr r2, [r3, #24] + 55 001a 42F00102 orr r2, r2, #1 + 56 001e 9A61 str r2, [r3, #24] + 57 .L1: +6157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 110 + + +6158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 58 .loc 1 6158 1 is_stmt 0 view .LVU10 + 59 0020 7047 bx lr + 60 .cfi_endproc + 61 .LFE392: + 63 .section .text.I2C_TransferConfig,"ax",%progbits + 64 .align 1 + 65 .syntax unified + 66 .thumb + 67 .thumb_func + 69 I2C_TransferConfig: + 70 .LVL1: + 71 .LFB404: +6159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. +6162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle +6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) +6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ +6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); +6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +6172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ +6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) +6175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupt */ +6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); +6178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ +6180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Buffer pointer */ +6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; +6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the XferSize to transfer */ +6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +6189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, +6197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) +6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); +6201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else + ARM GAS /tmp/ccbUHtu7.s page 111 + + +6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ +6205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); +6206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. +6212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle +6213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) +6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ +6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); +6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; +6220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) +6222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; +6225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ +6227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ +6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); +6229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ +6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ +6234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ +6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. +6240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle +6241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) +6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ +6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); +6247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +6250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ +6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) +6253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupt */ +6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); +6256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ +6258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 112 + + +6260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Buffer pointer */ +6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; +6262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the XferSize to transfer */ +6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) +6265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; +6267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; +6271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, +6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) +6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); +6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ +6283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); +6284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. +6290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle +6291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) +6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ +6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); +6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; +6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ +6300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) +6301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ +6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; +6304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ +6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); +6307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ +6311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ +6312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ +6313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + ARM GAS /tmp/ccbUHtu7.s page 113 + + +6317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C communication error callback. +6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle +6319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) +6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ +6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); +6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Acknowledge */ +6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; +6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ +6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); +6331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C communication abort callback +6335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). +6336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle. +6337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) +6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ +6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); +6343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset AbortCpltCallback */ +6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) +6346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; +6348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) +6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; +6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); +6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits +6359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * until a flag is no longer in the specified status. +6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. +6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). +6364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +6365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +6367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta +6369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) +6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) +6372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ + ARM GAS /tmp/ccbUHtu7.s page 114 + + +6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) +6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) +6377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. +6393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +6396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +6397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +6398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, +6400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) +6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) +6403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ +6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) +6406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ +6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) +6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) +6414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +6427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. + ARM GAS /tmp/ccbUHtu7.s page 115 + + +6431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +6434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +6435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +6436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, +6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) +6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) +6441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ +6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) +6444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) +6450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +6462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. +6466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +6471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, +6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) +6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) +6476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ +6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) +6479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a STOPF is detected */ +6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) +6485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an RXNE is pending */ +6487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ + ARM GAS /tmp/ccbUHtu7.s page 116 + + +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) +6489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return HAL_OK */ +6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ +6492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) +6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; +6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; +6504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +6507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) +6524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; +6532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; +6535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. +6539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration +6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value +6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status +6544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + ARM GAS /tmp/ccbUHtu7.s page 117 + + +6545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti +6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; +6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; +6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; +6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; +6551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; +6552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; +6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) +6555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACKF Flag */ +6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); +6558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ +6560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) +6562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ +6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) +6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) +6567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); +6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; +6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ +6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ +6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ +6574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) +6575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ +6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; +6578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Tick with new reference */ +6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); +6581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) +6584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ +6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) +6587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; +6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; +6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 118 + + +6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ +6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (status == HAL_OK) +6604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ +6606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); +6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; +6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; +6612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Refresh Content of Status register */ +6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; +6616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ +6618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a Bus error occurred */ +6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) +6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; +6622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear BERR flag */ +6624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); +6625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; +6627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ +6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) +6631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; +6633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear OVR flag */ +6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); +6636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; +6638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ +6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) +6642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; +6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ARLO flag */ +6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); +6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; +6649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (status != HAL_OK) +6652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ +6654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); +6655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ +6657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); +6658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 119 + + +6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; +6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; +6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; +6662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ +6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); +6665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; +6668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar +6672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. +6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. +6675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. +6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. +6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: +6678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . +6679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. +6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. +6681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. +6682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: +6683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. +6684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). +6685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. +6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. +6687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t +6690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Request) +6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 72 .loc 1 6691 1 is_stmt 1 view -0 + 73 .cfi_startproc + 74 @ args = 4, pretend = 0, frame = 0 + 75 @ frame_needed = 0, uses_anonymous_args = 0 + 76 @ link register save eliminated. + 77 .loc 1 6691 1 is_stmt 0 view .LVU12 + 78 0000 10B4 push {r4} + 79 .LCFI0: + 80 .cfi_def_cfa_offset 4 + 81 .cfi_offset 4, -4 + 82 0002 019C ldr r4, [sp, #4] +6692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ +6693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + 83 .loc 1 6693 3 is_stmt 1 view .LVU13 +6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); + 84 .loc 1 6694 3 view .LVU14 +6695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); + 85 .loc 1 6695 3 view .LVU15 +6696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ +6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ + 86 .loc 1 6698 3 view .LVU16 + 87 .loc 1 6698 52 is_stmt 0 view .LVU17 + 88 0004 C1F30901 ubfx r1, r1, #0, #10 + ARM GAS /tmp/ccbUHtu7.s page 120 + + + 89 .LVL2: + 90 .loc 1 6698 68 view .LVU18 + 91 0008 41EA0241 orr r1, r1, r2, lsl #16 +6699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ + 92 .loc 1 6699 87 view .LVU19 + 93 000c 1943 orrs r1, r1, r3 +6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ + 94 .loc 1 6698 19 view .LVU20 + 95 000e 2143 orrs r1, r1, r4 +6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ + 96 .loc 1 6698 12 view .LVU21 + 97 0010 21F00041 bic r1, r1, #-2147483648 + 98 .LVL3: +6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); +6701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* update CR2 register */ +6703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ + 99 .loc 1 6703 3 is_stmt 1 view .LVU22 + 100 0014 0268 ldr r2, [r0] + 101 .LVL4: + 102 .loc 1 6703 3 is_stmt 0 view .LVU23 + 103 0016 5368 ldr r3, [r2, #4] + 104 .LVL5: + 105 .loc 1 6703 3 view .LVU24 + 106 0018 640D lsrs r4, r4, #21 + 107 001a 04F48064 and r4, r4, #1024 + 108 001e 44F07F74 orr r4, r4, #66846720 + 109 0022 44F45834 orr r4, r4, #221184 + 110 0026 44F47F74 orr r4, r4, #1020 + 111 002a 44F00304 orr r4, r4, #3 + 112 002e 23EA0403 bic r3, r3, r4 + 113 0032 0B43 orrs r3, r3, r1 + 114 0034 5360 str r3, [r2, #4] +6704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ +6705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ +6706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); +6707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 115 .loc 1 6707 1 view .LVU25 + 116 0036 5DF8044B ldr r4, [sp], #4 + 117 .LCFI1: + 118 .cfi_restore 4 + 119 .cfi_def_cfa_offset 0 + 120 .LVL6: + 121 .loc 1 6707 1 view .LVU26 + 122 003a 7047 bx lr + 123 .cfi_endproc + 124 .LFE404: + 126 .section .text.I2C_Enable_IRQ,"ax",%progbits + 127 .align 1 + 128 .syntax unified + 129 .thumb + 130 .thumb_func + 132 I2C_Enable_IRQ: + 133 .LVL7: + 134 .LFB405: +6708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + ARM GAS /tmp/ccbUHtu7.s page 121 + + +6710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. +6711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. +6714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) +6717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 135 .loc 1 6717 1 is_stmt 1 view -0 + 136 .cfi_startproc + 137 @ args = 0, pretend = 0, frame = 0 + 138 @ frame_needed = 0, uses_anonymous_args = 0 + 139 @ link register save eliminated. +6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; + 140 .loc 1 6718 3 view .LVU28 +6719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ + 141 .loc 1 6720 3 view .LVU29 + 142 .loc 1 6720 12 is_stmt 0 view .LVU30 + 143 0000 436B ldr r3, [r0, #52] + 144 .loc 1 6720 6 view .LVU31 + 145 0002 1A4A ldr r2, .L20 + 146 0004 9342 cmp r3, r2 + 147 0006 15D0 beq .L7 + 148 .loc 1 6720 45 discriminator 1 view .LVU32 + 149 0008 194A ldr r2, .L20+4 + 150 000a 9342 cmp r3, r2 + 151 000c 12D0 beq .L7 +6721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) +6722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) +6724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ +6726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; +6727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) +6730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; +6733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) +6736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ +6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); +6739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) +6742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ +6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; +6745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) + ARM GAS /tmp/ccbUHtu7.s page 122 + + + 152 .loc 1 6749 5 is_stmt 1 view .LVU33 + 153 .loc 1 6749 8 is_stmt 0 view .LVU34 + 154 000e 11F4004F tst r1, #32768 + 155 0012 28D1 bne .L17 +6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 156 .loc 1 6718 12 view .LVU35 + 157 0014 0023 movs r3, #0 + 158 .L12: + 159 .LVL8: +6750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ +6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) + 160 .loc 1 6755 5 is_stmt 1 view .LVU36 + 161 .loc 1 6755 8 is_stmt 0 view .LVU37 + 162 0016 11F0010F tst r1, #1 + 163 001a 01D0 beq .L13 +6756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ +6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; + 164 .loc 1 6758 7 is_stmt 1 view .LVU38 + 165 .loc 1 6758 14 is_stmt 0 view .LVU39 + 166 001c 43F0F203 orr r3, r3, #242 + 167 .LVL9: + 168 .L13: +6759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) + 169 .loc 1 6761 5 is_stmt 1 view .LVU40 + 170 .loc 1 6761 8 is_stmt 0 view .LVU41 + 171 0020 11F0020F tst r1, #2 + 172 0024 01D0 beq .L14 +6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ +6764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; + 173 .loc 1 6764 7 is_stmt 1 view .LVU42 + 174 .loc 1 6764 14 is_stmt 0 view .LVU43 + 175 0026 43F0F403 orr r3, r3, #244 + 176 .LVL10: + 177 .L14: +6765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) + 178 .loc 1 6767 5 is_stmt 1 view .LVU44 + 179 .loc 1 6767 8 is_stmt 0 view .LVU45 + 180 002a 2029 cmp r1, #32 + 181 002c 0ED1 bne .L11 +6768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ +6770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; + 182 .loc 1 6770 7 is_stmt 1 view .LVU46 + 183 .loc 1 6770 14 is_stmt 0 view .LVU47 + 184 002e 43F02003 orr r3, r3, #32 + 185 .LVL11: + 186 .loc 1 6770 14 view .LVU48 + ARM GAS /tmp/ccbUHtu7.s page 123 + + + 187 0032 0BE0 b .L11 + 188 .LVL12: + 189 .L7: +6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 190 .loc 1 6723 5 is_stmt 1 view .LVU49 +6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 191 .loc 1 6723 8 is_stmt 0 view .LVU50 + 192 0034 11F4004F tst r1, #32768 + 193 0038 03D1 bne .L15 +6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 194 .loc 1 6729 5 is_stmt 1 view .LVU51 +6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 195 .loc 1 6729 8 is_stmt 0 view .LVU52 + 196 003a 1029 cmp r1, #16 + 197 003c 0BD0 beq .L16 +6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 198 .loc 1 6718 12 view .LVU53 + 199 003e 0023 movs r3, #0 + 200 0040 00E0 b .L9 + 201 .L15: +6726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 202 .loc 1 6726 14 view .LVU54 + 203 0042 B823 movs r3, #184 + 204 .L9: + 205 .LVL13: +6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 206 .loc 1 6735 5 is_stmt 1 view .LVU55 +6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 207 .loc 1 6735 8 is_stmt 0 view .LVU56 + 208 0044 2029 cmp r1, #32 + 209 0046 08D0 beq .L18 + 210 .L10: +6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 211 .loc 1 6741 5 is_stmt 1 view .LVU57 +6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 212 .loc 1 6741 8 is_stmt 0 view .LVU58 + 213 0048 4029 cmp r1, #64 + 214 004a 09D0 beq .L19 + 215 .L11: +6771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable interrupts only at the end */ +6775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ +6776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all interrupts requested done */ +6777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); + 216 .loc 1 6777 3 is_stmt 1 view .LVU59 + 217 004c 0168 ldr r1, [r0] + 218 .LVL14: + 219 .loc 1 6777 3 is_stmt 0 view .LVU60 + 220 004e 0A68 ldr r2, [r1] + 221 0050 1343 orrs r3, r3, r2 + 222 .LVL15: + 223 .loc 1 6777 3 view .LVU61 + 224 0052 0B60 str r3, [r1] +6778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 225 .loc 1 6778 1 view .LVU62 + ARM GAS /tmp/ccbUHtu7.s page 124 + + + 226 0054 7047 bx lr + 227 .LVL16: + 228 .L16: +6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 229 .loc 1 6732 14 view .LVU63 + 230 0056 9023 movs r3, #144 + 231 0058 F4E7 b .L9 + 232 .LVL17: + 233 .L18: +6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 234 .loc 1 6738 7 is_stmt 1 view .LVU64 +6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 235 .loc 1 6738 14 is_stmt 0 view .LVU65 + 236 005a 43F06003 orr r3, r3, #96 + 237 .LVL18: +6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 238 .loc 1 6738 14 view .LVU66 + 239 005e F3E7 b .L10 + 240 .L19: +6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 241 .loc 1 6744 7 is_stmt 1 view .LVU67 +6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 242 .loc 1 6744 14 is_stmt 0 view .LVU68 + 243 0060 43F04003 orr r3, r3, #64 + 244 .LVL19: +6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 245 .loc 1 6744 14 view .LVU69 + 246 0064 F2E7 b .L11 + 247 .LVL20: + 248 .L17: +6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 249 .loc 1 6752 14 view .LVU70 + 250 0066 B823 movs r3, #184 + 251 0068 D5E7 b .L12 + 252 .L21: + 253 006a 00BF .align 2 + 254 .L20: + 255 006c 00000000 .word I2C_Master_ISR_DMA + 256 0070 00000000 .word I2C_Slave_ISR_DMA + 257 .cfi_endproc + 258 .LFE405: + 260 .section .text.I2C_Disable_IRQ,"ax",%progbits + 261 .align 1 + 262 .syntax unified + 263 .thumb + 264 .thumb_func + 266 I2C_Disable_IRQ: + 267 .LVL21: + 268 .LFB406: +6779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. +6782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains +6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. +6784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. +6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ + ARM GAS /tmp/ccbUHtu7.s page 125 + + +6787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) +6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 269 .loc 1 6788 1 is_stmt 1 view -0 + 270 .cfi_startproc + 271 @ args = 0, pretend = 0, frame = 0 + 272 @ frame_needed = 0, uses_anonymous_args = 0 + 273 @ link register save eliminated. +6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; + 274 .loc 1 6789 3 view .LVU72 +6790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) + 275 .loc 1 6791 3 view .LVU73 + 276 .loc 1 6791 6 is_stmt 0 view .LVU74 + 277 0000 11F0010F tst r1, #1 + 278 0004 09D0 beq .L29 +6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ +6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; + 279 .loc 1 6794 5 is_stmt 1 view .LVU75 + 280 .LVL22: +6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) + 281 .loc 1 6796 5 view .LVU76 + 282 .loc 1 6796 24 is_stmt 0 view .LVU77 + 283 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 284 .loc 1 6796 8 view .LVU78 + 285 000a 03F02803 and r3, r3, #40 + 286 000e 282B cmp r3, #40 + 287 0010 01D0 beq .L32 +6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ +6799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + 288 .loc 1 6799 14 view .LVU79 + 289 0012 F223 movs r3, #242 + 290 0014 02E0 b .L23 + 291 .L32: +6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 292 .loc 1 6794 12 view .LVU80 + 293 0016 4223 movs r3, #66 + 294 0018 00E0 b .L23 + 295 .LVL23: + 296 .L29: +6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 297 .loc 1 6789 12 view .LVU81 + 298 001a 0023 movs r3, #0 + 299 .LVL24: + 300 .L23: +6800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) + 301 .loc 1 6803 3 is_stmt 1 view .LVU82 + 302 .loc 1 6803 6 is_stmt 0 view .LVU83 + 303 001c 11F0020F tst r1, #2 + 304 0020 09D0 beq .L24 +6804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ + ARM GAS /tmp/ccbUHtu7.s page 126 + + +6806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; + 305 .loc 1 6806 5 is_stmt 1 view .LVU84 + 306 .loc 1 6806 12 is_stmt 0 view .LVU85 + 307 0022 43F0440C orr ip, r3, #68 + 308 .LVL25: +6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) + 309 .loc 1 6808 5 is_stmt 1 view .LVU86 + 310 .loc 1 6808 24 is_stmt 0 view .LVU87 + 311 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 + 312 .loc 1 6808 8 view .LVU88 + 313 002a 02F02802 and r2, r2, #40 + 314 002e 282A cmp r2, #40 + 315 0030 10D0 beq .L31 +6809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ +6811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + 316 .loc 1 6811 7 is_stmt 1 view .LVU89 + 317 .loc 1 6811 14 is_stmt 0 view .LVU90 + 318 0032 43F0F403 orr r3, r3, #244 + 319 .LVL26: + 320 .L24: +6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) + 321 .loc 1 6815 3 is_stmt 1 view .LVU91 + 322 .loc 1 6815 6 is_stmt 0 view .LVU92 + 323 0036 11F4004F tst r1, #32768 + 324 003a 0DD1 bne .L33 + 325 .L25: +6816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ +6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; +6819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) + 326 .loc 1 6821 3 is_stmt 1 view .LVU93 + 327 .loc 1 6821 6 is_stmt 0 view .LVU94 + 328 003c 1029 cmp r1, #16 + 329 003e 0ED0 beq .L34 + 330 .L26: +6822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ +6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; +6825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) + 331 .loc 1 6827 3 is_stmt 1 view .LVU95 + 332 .loc 1 6827 6 is_stmt 0 view .LVU96 + 333 0040 2029 cmp r1, #32 + 334 0042 0FD0 beq .L35 + 335 .L27: +6828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ +6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; +6831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 127 + + +6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) + 336 .loc 1 6833 3 is_stmt 1 view .LVU97 + 337 .loc 1 6833 6 is_stmt 0 view .LVU98 + 338 0044 4029 cmp r1, #64 + 339 0046 10D0 beq .L36 + 340 .L28: +6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ +6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; +6837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable interrupts only at the end */ +6840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ +6841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all disable interrupts request are not done */ +6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); + 341 .loc 1 6842 3 is_stmt 1 view .LVU99 + 342 0048 0168 ldr r1, [r0] + 343 .LVL27: + 344 .loc 1 6842 3 is_stmt 0 view .LVU100 + 345 004a 0A68 ldr r2, [r1] + 346 004c 22EA0303 bic r3, r2, r3 + 347 .LVL28: + 348 .loc 1 6842 3 view .LVU101 + 349 0050 0B60 str r3, [r1] +6843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 350 .loc 1 6843 1 view .LVU102 + 351 0052 7047 bx lr + 352 .LVL29: + 353 .L31: +6806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 354 .loc 1 6806 12 view .LVU103 + 355 0054 6346 mov r3, ip + 356 0056 EEE7 b .L24 + 357 .LVL30: + 358 .L33: +6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 359 .loc 1 6818 5 is_stmt 1 view .LVU104 +6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 360 .loc 1 6818 12 is_stmt 0 view .LVU105 + 361 0058 43F0B803 orr r3, r3, #184 + 362 .LVL31: +6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 363 .loc 1 6818 12 view .LVU106 + 364 005c EEE7 b .L25 + 365 .L34: +6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 366 .loc 1 6824 5 is_stmt 1 view .LVU107 +6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 367 .loc 1 6824 12 is_stmt 0 view .LVU108 + 368 005e 43F09003 orr r3, r3, #144 + 369 .LVL32: +6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 370 .loc 1 6824 12 view .LVU109 + 371 0062 EDE7 b .L26 + 372 .L35: +6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 128 + + + 373 .loc 1 6830 5 is_stmt 1 view .LVU110 +6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 374 .loc 1 6830 12 is_stmt 0 view .LVU111 + 375 0064 43F02003 orr r3, r3, #32 + 376 .LVL33: +6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 377 .loc 1 6830 12 view .LVU112 + 378 0068 ECE7 b .L27 + 379 .L36: +6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 380 .loc 1 6836 5 is_stmt 1 view .LVU113 +6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 381 .loc 1 6836 12 is_stmt 0 view .LVU114 + 382 006a 43F04003 orr r3, r3, #64 + 383 .LVL34: +6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 384 .loc 1 6836 12 view .LVU115 + 385 006e EBE7 b .L28 + 386 .cfi_endproc + 387 .LFE406: + 389 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits + 390 .align 1 + 391 .syntax unified + 392 .thumb + 393 .thumb_func + 395 I2C_ConvertOtherXferOptions: + 396 .LVL35: + 397 .LFB407: +6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** +6845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** +6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. +6847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. +6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None +6849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ +6850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) +6851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 398 .loc 1 6851 1 is_stmt 1 view -0 + 399 .cfi_startproc + 400 @ args = 0, pretend = 0, frame = 0 + 401 @ frame_needed = 0, uses_anonymous_args = 0 + 402 @ link register save eliminated. +6852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ +6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ +6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ +6855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) + 403 .loc 1 6855 3 view .LVU117 + 404 .loc 1 6855 11 is_stmt 0 view .LVU118 + 405 0000 C36A ldr r3, [r0, #44] + 406 .loc 1 6855 6 view .LVU119 + 407 0002 AA2B cmp r3, #170 + 408 0004 04D0 beq .L40 +6856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; +6858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ +6860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ +6861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ + ARM GAS /tmp/ccbUHtu7.s page 129 + + +6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ +6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) + 409 .loc 1 6863 8 is_stmt 1 view .LVU120 + 410 .loc 1 6863 16 is_stmt 0 view .LVU121 + 411 0006 C36A ldr r3, [r0, #44] + 412 .loc 1 6863 11 view .LVU122 + 413 0008 B3F52A4F cmp r3, #43520 + 414 000c 03D0 beq .L41 + 415 .L37: +6864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; +6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else +6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { +6869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ +6870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } +6871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 416 .loc 1 6871 1 view .LVU123 + 417 000e 7047 bx lr + 418 .L40: +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 419 .loc 1 6857 5 is_stmt 1 view .LVU124 +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 420 .loc 1 6857 23 is_stmt 0 view .LVU125 + 421 0010 0023 movs r3, #0 + 422 0012 C362 str r3, [r0, #44] + 423 0014 7047 bx lr + 424 .L41: +6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 425 .loc 1 6865 5 is_stmt 1 view .LVU126 +6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 426 .loc 1 6865 23 is_stmt 0 view .LVU127 + 427 0016 4FF00073 mov r3, #33554432 + 428 001a C362 str r3, [r0, #44] +6870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 429 .loc 1 6870 3 is_stmt 1 view .LVU128 + 430 .loc 1 6871 1 is_stmt 0 view .LVU129 + 431 001c F7E7 b .L37 + 432 .cfi_endproc + 433 .LFE407: + 435 .section .text.I2C_IsErrorOccurred,"ax",%progbits + 436 .align 1 + 437 .syntax unified + 438 .thumb + 439 .thumb_func + 441 I2C_IsErrorOccurred: + 442 .LVL36: + 443 .LFB403: +6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; + 444 .loc 1 6546 1 is_stmt 1 view -0 + 445 .cfi_startproc + 446 @ args = 0, pretend = 0, frame = 0 + 447 @ frame_needed = 0, uses_anonymous_args = 0 +6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; + 448 .loc 1 6546 1 is_stmt 0 view .LVU131 + 449 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 450 .LCFI2: + ARM GAS /tmp/ccbUHtu7.s page 130 + + + 451 .cfi_def_cfa_offset 24 + 452 .cfi_offset 4, -24 + 453 .cfi_offset 5, -20 + 454 .cfi_offset 6, -16 + 455 .cfi_offset 7, -12 + 456 .cfi_offset 8, -8 + 457 .cfi_offset 14, -4 + 458 0004 0446 mov r4, r0 +6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; + 459 .loc 1 6547 3 is_stmt 1 view .LVU132 + 460 .LVL37: +6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; + 461 .loc 1 6548 3 view .LVU133 +6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; + 462 .loc 1 6548 27 is_stmt 0 view .LVU134 + 463 0006 0368 ldr r3, [r0] +6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; + 464 .loc 1 6548 12 view .LVU135 + 465 0008 9F69 ldr r7, [r3, #24] + 466 .LVL38: +6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; + 467 .loc 1 6549 3 is_stmt 1 view .LVU136 +6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; + 468 .loc 1 6550 3 view .LVU137 +6551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; + 469 .loc 1 6551 3 view .LVU138 +6552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 470 .loc 1 6552 3 view .LVU139 +6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 471 .loc 1 6554 3 view .LVU140 +6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 472 .loc 1 6554 6 is_stmt 0 view .LVU141 + 473 000a 17F01007 ands r7, r7, #16 + 474 .LVL39: +6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 475 .loc 1 6554 6 view .LVU142 + 476 000e 4CD0 beq .L59 + 477 0010 0E46 mov r6, r1 + 478 0012 9046 mov r8, r2 +6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 479 .loc 1 6557 5 is_stmt 1 view .LVU143 + 480 0014 1022 movs r2, #16 + 481 .LVL40: +6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 482 .loc 1 6557 5 is_stmt 0 view .LVU144 + 483 0016 DA61 str r2, [r3, #28] +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 484 .loc 1 6561 5 is_stmt 1 view .LVU145 +6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; + 485 .loc 1 6547 21 is_stmt 0 view .LVU146 + 486 0018 0025 movs r5, #0 + 487 .LVL41: + 488 .L45: +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 489 .loc 1 6561 64 is_stmt 1 view .LVU147 +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 490 .loc 1 6561 13 is_stmt 0 view .LVU148 + ARM GAS /tmp/ccbUHtu7.s page 131 + + + 491 001a 2368 ldr r3, [r4] + 492 001c 9869 ldr r0, [r3, #24] +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 493 .loc 1 6561 64 view .LVU149 + 494 001e 10F0200F tst r0, #32 + 495 0022 3BD1 bne .L52 +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 496 .loc 1 6561 64 discriminator 1 view .LVU150 + 497 0024 002D cmp r5, #0 + 498 0026 39D1 bne .L52 +6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 499 .loc 1 6564 7 is_stmt 1 view .LVU151 +6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 500 .loc 1 6564 10 is_stmt 0 view .LVU152 + 501 0028 B6F1FF3F cmp r6, #-1 + 502 002c F5D0 beq .L45 +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 503 .loc 1 6566 9 is_stmt 1 view .LVU153 +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 504 .loc 1 6566 15 is_stmt 0 view .LVU154 + 505 002e FFF7FEFF bl HAL_GetTick + 506 .LVL42: +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 507 .loc 1 6566 29 view .LVU155 + 508 0032 A0EB0800 sub r0, r0, r8 +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 509 .loc 1 6566 12 view .LVU156 + 510 0036 B042 cmp r0, r6 + 511 0038 01D8 bhi .L46 +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 512 .loc 1 6566 53 discriminator 1 view .LVU157 + 513 003a 002E cmp r6, #0 + 514 003c EDD1 bne .L45 + 515 .L46: +6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; + 516 .loc 1 6568 11 is_stmt 1 view .LVU158 +6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; + 517 .loc 1 6568 33 is_stmt 0 view .LVU159 + 518 003e 2168 ldr r1, [r4] +6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; + 519 .loc 1 6568 43 view .LVU160 + 520 0040 4B68 ldr r3, [r1, #4] +6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; + 521 .loc 1 6568 16 view .LVU161 + 522 0042 03F48043 and r3, r3, #16384 + 523 .LVL43: +6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 524 .loc 1 6569 11 is_stmt 1 view .LVU162 +6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 525 .loc 1 6569 16 is_stmt 0 view .LVU163 + 526 0046 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 + 527 004a D2B2 uxtb r2, r2 + 528 .LVL44: +6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ + 529 .loc 1 6572 11 is_stmt 1 view .LVU164 +6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ + 530 .loc 1 6572 16 is_stmt 0 view .LVU165 + ARM GAS /tmp/ccbUHtu7.s page 132 + + + 531 004c 8869 ldr r0, [r1, #24] +6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ + 532 .loc 1 6572 14 view .LVU166 + 533 004e 10F4004F tst r0, #32768 + 534 0052 02D0 beq .L49 +6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ + 535 .loc 1 6572 66 discriminator 1 view .LVU167 + 536 0054 0BB9 cbnz r3, .L49 +6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) + 537 .loc 1 6573 38 view .LVU168 + 538 0056 202A cmp r2, #32 + 539 0058 18D1 bne .L62 + 540 .LVL45: + 541 .L49: +6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 542 .loc 1 6583 59 is_stmt 1 view .LVU169 +6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 543 .loc 1 6583 18 is_stmt 0 view .LVU170 + 544 005a 2368 ldr r3, [r4] + 545 005c 9B69 ldr r3, [r3, #24] +6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 546 .loc 1 6583 59 view .LVU171 + 547 005e 13F0200F tst r3, #32 + 548 0062 DAD1 bne .L45 +6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 549 .loc 1 6586 13 is_stmt 1 view .LVU172 +6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 550 .loc 1 6586 18 is_stmt 0 view .LVU173 + 551 0064 FFF7FEFF bl HAL_GetTick + 552 .LVL46: +6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 553 .loc 1 6586 32 view .LVU174 + 554 0068 A0EB0800 sub r0, r0, r8 +6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 555 .loc 1 6586 16 view .LVU175 + 556 006c 1928 cmp r0, #25 + 557 006e F4D9 bls .L49 +6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 558 .loc 1 6588 15 is_stmt 1 view .LVU176 +6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 559 .loc 1 6588 19 is_stmt 0 view .LVU177 + 560 0070 636C ldr r3, [r4, #68] +6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 561 .loc 1 6588 31 view .LVU178 + 562 0072 43F02003 orr r3, r3, #32 + 563 0076 6364 str r3, [r4, #68] +6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 564 .loc 1 6589 15 is_stmt 1 view .LVU179 +6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 565 .loc 1 6589 27 is_stmt 0 view .LVU180 + 566 0078 2023 movs r3, #32 + 567 007a 84F84130 strb r3, [r4, #65] +6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 568 .loc 1 6590 15 is_stmt 1 view .LVU181 +6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 569 .loc 1 6590 26 is_stmt 0 view .LVU182 + 570 007e 0023 movs r3, #0 + ARM GAS /tmp/ccbUHtu7.s page 133 + + + 571 0080 84F84230 strb r3, [r4, #66] +6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 572 .loc 1 6593 15 is_stmt 1 view .LVU183 +6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 573 .loc 1 6593 15 view .LVU184 + 574 0084 84F84030 strb r3, [r4, #64] +6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 575 .loc 1 6593 15 view .LVU185 +6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 576 .loc 1 6595 15 view .LVU186 + 577 .LVL47: +6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 578 .loc 1 6595 22 is_stmt 0 view .LVU187 + 579 0088 0125 movs r5, #1 + 580 008a E6E7 b .L49 + 581 .LVL48: + 582 .L62: +6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 583 .loc 1 6577 13 is_stmt 1 view .LVU188 +6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 584 .loc 1 6577 27 is_stmt 0 view .LVU189 + 585 008c 4B68 ldr r3, [r1, #4] + 586 .LVL49: +6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 587 .loc 1 6577 33 view .LVU190 + 588 008e 43F48043 orr r3, r3, #16384 + 589 0092 4B60 str r3, [r1, #4] +6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 590 .loc 1 6580 13 is_stmt 1 view .LVU191 +6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 591 .loc 1 6580 25 is_stmt 0 view .LVU192 + 592 0094 FFF7FEFF bl HAL_GetTick + 593 .LVL50: +6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 594 .loc 1 6580 25 view .LVU193 + 595 0098 8046 mov r8, r0 + 596 .LVL51: +6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 597 .loc 1 6580 25 view .LVU194 + 598 009a DEE7 b .L49 + 599 .LVL52: + 600 .L52: +6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 601 .loc 1 6603 5 is_stmt 1 view .LVU195 +6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 602 .loc 1 6603 8 is_stmt 0 view .LVU196 + 603 009c 002D cmp r5, #0 + 604 009e 40D1 bne .L60 +6606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 605 .loc 1 6606 7 is_stmt 1 view .LVU197 + 606 00a0 2022 movs r2, #32 + 607 00a2 DA61 str r2, [r3, #28] +6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 608 .loc 1 6609 16 is_stmt 0 view .LVU198 + 609 00a4 0427 movs r7, #4 +6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 610 .loc 1 6611 12 view .LVU199 + ARM GAS /tmp/ccbUHtu7.s page 134 + + + 611 00a6 0125 movs r5, #1 + 612 .LVL53: +6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 613 .loc 1 6611 12 view .LVU200 + 614 00a8 00E0 b .L43 + 615 .LVL54: + 616 .L59: +6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; + 617 .loc 1 6547 21 view .LVU201 + 618 00aa 0025 movs r5, #0 + 619 .LVL55: + 620 .L43: +6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 621 .loc 1 6615 3 is_stmt 1 view .LVU202 +6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 622 .loc 1 6615 16 is_stmt 0 view .LVU203 + 623 00ac 2268 ldr r2, [r4] +6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 624 .loc 1 6615 10 view .LVU204 + 625 00ae 9369 ldr r3, [r2, #24] + 626 .LVL56: +6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 627 .loc 1 6619 3 is_stmt 1 view .LVU205 +6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 628 .loc 1 6619 6 is_stmt 0 view .LVU206 + 629 00b0 13F4807F tst r3, #256 + 630 00b4 05D0 beq .L54 +6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 631 .loc 1 6621 5 is_stmt 1 view .LVU207 +6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 632 .loc 1 6621 16 is_stmt 0 view .LVU208 + 633 00b6 47F00107 orr r7, r7, #1 + 634 .LVL57: +6624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 635 .loc 1 6624 5 is_stmt 1 view .LVU209 + 636 00ba 4FF48071 mov r1, #256 + 637 00be D161 str r1, [r2, #28] +6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 638 .loc 1 6626 5 view .LVU210 + 639 .LVL58: +6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 640 .loc 1 6626 12 is_stmt 0 view .LVU211 + 641 00c0 0125 movs r5, #1 + 642 .LVL59: + 643 .L54: +6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 644 .loc 1 6630 3 is_stmt 1 view .LVU212 +6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 645 .loc 1 6630 6 is_stmt 0 view .LVU213 + 646 00c2 13F4806F tst r3, #1024 + 647 00c6 06D0 beq .L55 +6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 648 .loc 1 6632 5 is_stmt 1 view .LVU214 +6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 649 .loc 1 6632 16 is_stmt 0 view .LVU215 + 650 00c8 47F00807 orr r7, r7, #8 + 651 .LVL60: + ARM GAS /tmp/ccbUHtu7.s page 135 + + +6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 652 .loc 1 6635 5 is_stmt 1 view .LVU216 + 653 00cc 2268 ldr r2, [r4] + 654 00ce 4FF48061 mov r1, #1024 + 655 00d2 D161 str r1, [r2, #28] +6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 656 .loc 1 6637 5 view .LVU217 + 657 .LVL61: +6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 658 .loc 1 6637 12 is_stmt 0 view .LVU218 + 659 00d4 0125 movs r5, #1 + 660 .LVL62: + 661 .L55: +6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 662 .loc 1 6641 3 is_stmt 1 view .LVU219 +6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 663 .loc 1 6641 6 is_stmt 0 view .LVU220 + 664 00d6 13F4007F tst r3, #512 + 665 00da 24D0 beq .L56 +6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 666 .loc 1 6643 5 is_stmt 1 view .LVU221 +6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 667 .loc 1 6643 16 is_stmt 0 view .LVU222 + 668 00dc 47F00207 orr r7, r7, #2 + 669 .LVL63: +6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 670 .loc 1 6646 5 is_stmt 1 view .LVU223 + 671 00e0 2368 ldr r3, [r4] + 672 .LVL64: +6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 673 .loc 1 6646 5 is_stmt 0 view .LVU224 + 674 00e2 4FF40072 mov r2, #512 + 675 00e6 DA61 str r2, [r3, #28] +6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 676 .loc 1 6648 5 is_stmt 1 view .LVU225 + 677 .LVL65: +6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 678 .loc 1 6651 3 view .LVU226 +6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 679 .loc 1 6648 12 is_stmt 0 view .LVU227 + 680 00e8 0125 movs r5, #1 + 681 .LVL66: + 682 .L57: +6654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 683 .loc 1 6654 5 is_stmt 1 view .LVU228 + 684 00ea 2046 mov r0, r4 + 685 00ec FFF7FEFF bl I2C_Flush_TXDR + 686 .LVL67: +6657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 687 .loc 1 6657 5 view .LVU229 + 688 00f0 2268 ldr r2, [r4] + 689 00f2 5368 ldr r3, [r2, #4] + 690 00f4 23F0FF73 bic r3, r3, #33423360 + 691 00f8 23F48B33 bic r3, r3, #71168 + 692 00fc 23F4FF73 bic r3, r3, #510 + 693 0100 23F00103 bic r3, r3, #1 + 694 0104 5360 str r3, [r2, #4] + ARM GAS /tmp/ccbUHtu7.s page 136 + + +6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 695 .loc 1 6659 5 view .LVU230 +6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 696 .loc 1 6659 9 is_stmt 0 view .LVU231 + 697 0106 636C ldr r3, [r4, #68] +6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 698 .loc 1 6659 21 view .LVU232 + 699 0108 3B43 orrs r3, r3, r7 + 700 010a 6364 str r3, [r4, #68] +6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 701 .loc 1 6660 5 is_stmt 1 view .LVU233 +6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 702 .loc 1 6660 17 is_stmt 0 view .LVU234 + 703 010c 2023 movs r3, #32 + 704 010e 84F84130 strb r3, [r4, #65] +6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 705 .loc 1 6661 5 is_stmt 1 view .LVU235 +6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 706 .loc 1 6661 16 is_stmt 0 view .LVU236 + 707 0112 0023 movs r3, #0 + 708 0114 84F84230 strb r3, [r4, #66] +6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 709 .loc 1 6664 5 is_stmt 1 view .LVU237 +6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 710 .loc 1 6664 5 view .LVU238 + 711 0118 84F84030 strb r3, [r4, #64] + 712 .L58: +6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 713 .loc 1 6664 5 discriminator 1 view .LVU239 +6667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 714 .loc 1 6667 3 discriminator 1 view .LVU240 +6668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 715 .loc 1 6668 1 is_stmt 0 discriminator 1 view .LVU241 + 716 011c 2846 mov r0, r5 + 717 011e BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 718 .LVL68: + 719 .L60: +6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 720 .loc 1 6609 16 view .LVU242 + 721 0122 0427 movs r7, #4 + 722 0124 C2E7 b .L43 + 723 .LVL69: + 724 .L56: +6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 725 .loc 1 6651 3 is_stmt 1 view .LVU243 +6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 726 .loc 1 6651 6 is_stmt 0 view .LVU244 + 727 0126 002D cmp r5, #0 + 728 0128 F8D0 beq .L58 + 729 012a DEE7 b .L57 + 730 .cfi_endproc + 731 .LFE403: + 733 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits + 734 .align 1 + 735 .syntax unified + 736 .thumb + 737 .thumb_func + ARM GAS /tmp/ccbUHtu7.s page 137 + + + 739 I2C_WaitOnTXISFlagUntilTimeout: + 740 .LVL70: + 741 .LFB400: +6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) + 742 .loc 1 6401 1 is_stmt 1 view -0 + 743 .cfi_startproc + 744 @ args = 0, pretend = 0, frame = 0 + 745 @ frame_needed = 0, uses_anonymous_args = 0 +6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) + 746 .loc 1 6401 1 is_stmt 0 view .LVU246 + 747 0000 70B5 push {r4, r5, r6, lr} + 748 .LCFI3: + 749 .cfi_def_cfa_offset 16 + 750 .cfi_offset 4, -16 + 751 .cfi_offset 5, -12 + 752 .cfi_offset 6, -8 + 753 .cfi_offset 14, -4 + 754 0002 0446 mov r4, r0 + 755 0004 0D46 mov r5, r1 + 756 0006 1646 mov r6, r2 +6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 757 .loc 1 6402 3 is_stmt 1 view .LVU247 + 758 .LVL71: + 759 .L66: +6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 760 .loc 1 6402 50 view .LVU248 +6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 761 .loc 1 6402 10 is_stmt 0 view .LVU249 + 762 0008 2368 ldr r3, [r4] + 763 000a 9B69 ldr r3, [r3, #24] +6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 764 .loc 1 6402 50 view .LVU250 + 765 000c 13F0020F tst r3, #2 + 766 0010 1DD1 bne .L71 +6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 767 .loc 1 6405 5 is_stmt 1 view .LVU251 +6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 768 .loc 1 6405 9 is_stmt 0 view .LVU252 + 769 0012 3246 mov r2, r6 + 770 0014 2946 mov r1, r5 + 771 0016 2046 mov r0, r4 + 772 0018 FFF7FEFF bl I2C_IsErrorOccurred + 773 .LVL72: +6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 774 .loc 1 6405 8 view .LVU253 + 775 001c C8B9 cbnz r0, .L69 +6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 776 .loc 1 6411 5 is_stmt 1 view .LVU254 +6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 777 .loc 1 6411 8 is_stmt 0 view .LVU255 + 778 001e B5F1FF3F cmp r5, #-1 + 779 0022 F1D0 beq .L66 +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 780 .loc 1 6413 7 is_stmt 1 view .LVU256 +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 781 .loc 1 6413 13 is_stmt 0 view .LVU257 + 782 0024 FFF7FEFF bl HAL_GetTick + ARM GAS /tmp/ccbUHtu7.s page 138 + + + 783 .LVL73: +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 784 .loc 1 6413 27 view .LVU258 + 785 0028 801B subs r0, r0, r6 +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 786 .loc 1 6413 10 view .LVU259 + 787 002a A842 cmp r0, r5 + 788 002c 01D8 bhi .L67 +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 789 .loc 1 6413 51 discriminator 1 view .LVU260 + 790 002e 002D cmp r5, #0 + 791 0030 EAD1 bne .L66 + 792 .L67: +6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 793 .loc 1 6415 9 is_stmt 1 view .LVU261 +6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 794 .loc 1 6415 13 is_stmt 0 view .LVU262 + 795 0032 636C ldr r3, [r4, #68] +6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 796 .loc 1 6415 25 view .LVU263 + 797 0034 43F02003 orr r3, r3, #32 + 798 0038 6364 str r3, [r4, #68] +6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 799 .loc 1 6416 9 is_stmt 1 view .LVU264 +6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 800 .loc 1 6416 21 is_stmt 0 view .LVU265 + 801 003a 2023 movs r3, #32 + 802 003c 84F84130 strb r3, [r4, #65] +6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 803 .loc 1 6417 9 is_stmt 1 view .LVU266 +6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 804 .loc 1 6417 20 is_stmt 0 view .LVU267 + 805 0040 0023 movs r3, #0 + 806 0042 84F84230 strb r3, [r4, #66] +6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 807 .loc 1 6420 9 is_stmt 1 view .LVU268 +6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 808 .loc 1 6420 9 view .LVU269 + 809 0046 84F84030 strb r3, [r4, #64] +6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 810 .loc 1 6420 9 view .LVU270 +6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 811 .loc 1 6422 9 view .LVU271 +6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 812 .loc 1 6422 16 is_stmt 0 view .LVU272 + 813 004a 0120 movs r0, #1 + 814 004c 00E0 b .L65 + 815 .L71: +6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 816 .loc 1 6426 10 view .LVU273 + 817 004e 0020 movs r0, #0 + 818 .L65: +6427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 819 .loc 1 6427 1 view .LVU274 + 820 0050 70BD pop {r4, r5, r6, pc} + 821 .LVL74: + 822 .L69: + ARM GAS /tmp/ccbUHtu7.s page 139 + + +6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 823 .loc 1 6407 14 view .LVU275 + 824 0052 0120 movs r0, #1 + 825 0054 FCE7 b .L65 + 826 .cfi_endproc + 827 .LFE400: + 829 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits + 830 .align 1 + 831 .syntax unified + 832 .thumb + 833 .thumb_func + 835 I2C_WaitOnFlagUntilTimeout: + 836 .LVL75: + 837 .LFB399: +6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) + 838 .loc 1 6370 1 is_stmt 1 view -0 + 839 .cfi_startproc + 840 @ args = 4, pretend = 0, frame = 0 + 841 @ frame_needed = 0, uses_anonymous_args = 0 +6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) + 842 .loc 1 6370 1 is_stmt 0 view .LVU277 + 843 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 844 .LCFI4: + 845 .cfi_def_cfa_offset 24 + 846 .cfi_offset 4, -24 + 847 .cfi_offset 5, -20 + 848 .cfi_offset 6, -16 + 849 .cfi_offset 7, -12 + 850 .cfi_offset 8, -8 + 851 .cfi_offset 14, -4 + 852 0004 0646 mov r6, r0 + 853 0006 8846 mov r8, r1 + 854 0008 1746 mov r7, r2 + 855 000a 1D46 mov r5, r3 +6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 856 .loc 1 6371 3 is_stmt 1 view .LVU278 + 857 .LVL76: + 858 .L74: +6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 859 .loc 1 6371 41 view .LVU279 +6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 860 .loc 1 6371 10 is_stmt 0 view .LVU280 + 861 000c 3468 ldr r4, [r6] + 862 000e A469 ldr r4, [r4, #24] + 863 0010 38EA0404 bics r4, r8, r4 + 864 0014 0CBF ite eq + 865 0016 0124 moveq r4, #1 + 866 0018 0024 movne r4, #0 +6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 867 .loc 1 6371 41 view .LVU281 + 868 001a BC42 cmp r4, r7 + 869 001c 18D1 bne .L79 +6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 870 .loc 1 6374 5 is_stmt 1 view .LVU282 +6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 871 .loc 1 6374 8 is_stmt 0 view .LVU283 + 872 001e B5F1FF3F cmp r5, #-1 + ARM GAS /tmp/ccbUHtu7.s page 140 + + + 873 0022 F3D0 beq .L74 +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 874 .loc 1 6376 7 is_stmt 1 view .LVU284 +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 875 .loc 1 6376 13 is_stmt 0 view .LVU285 + 876 0024 FFF7FEFF bl HAL_GetTick + 877 .LVL77: +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 878 .loc 1 6376 27 view .LVU286 + 879 0028 069B ldr r3, [sp, #24] + 880 002a C01A subs r0, r0, r3 +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 881 .loc 1 6376 10 view .LVU287 + 882 002c A842 cmp r0, r5 + 883 002e 01D8 bhi .L75 +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 884 .loc 1 6376 51 discriminator 1 view .LVU288 + 885 0030 002D cmp r5, #0 + 886 0032 EBD1 bne .L74 + 887 .L75: +6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 888 .loc 1 6378 9 is_stmt 1 view .LVU289 +6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 889 .loc 1 6378 13 is_stmt 0 view .LVU290 + 890 0034 736C ldr r3, [r6, #68] +6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 891 .loc 1 6378 25 view .LVU291 + 892 0036 43F02003 orr r3, r3, #32 + 893 003a 7364 str r3, [r6, #68] +6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 894 .loc 1 6379 9 is_stmt 1 view .LVU292 +6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 895 .loc 1 6379 21 is_stmt 0 view .LVU293 + 896 003c 2023 movs r3, #32 + 897 003e 86F84130 strb r3, [r6, #65] +6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 898 .loc 1 6380 9 is_stmt 1 view .LVU294 +6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 899 .loc 1 6380 20 is_stmt 0 view .LVU295 + 900 0042 0023 movs r3, #0 + 901 0044 86F84230 strb r3, [r6, #66] +6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 902 .loc 1 6383 9 is_stmt 1 view .LVU296 +6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 903 .loc 1 6383 9 view .LVU297 + 904 0048 86F84030 strb r3, [r6, #64] +6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 905 .loc 1 6383 9 view .LVU298 +6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 906 .loc 1 6384 9 view .LVU299 +6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 907 .loc 1 6384 16 is_stmt 0 view .LVU300 + 908 004c 0120 movs r0, #1 + 909 004e 00E0 b .L76 + 910 .L79: +6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 911 .loc 1 6388 10 view .LVU301 + ARM GAS /tmp/ccbUHtu7.s page 141 + + + 912 0050 0020 movs r0, #0 + 913 .L76: +6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 914 .loc 1 6389 1 view .LVU302 + 915 0052 BDE8F081 pop {r4, r5, r6, r7, r8, pc} +6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 916 .loc 1 6389 1 view .LVU303 + 917 .cfi_endproc + 918 .LFE399: + 920 .section .text.I2C_RequestMemoryWrite,"ax",%progbits + 921 .align 1 + 922 .syntax unified + 923 .thumb + 924 .thumb_func + 926 I2C_RequestMemoryWrite: + 927 .LVL78: + 928 .LFB382: +5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI + 929 .loc 1 5318 1 is_stmt 1 view -0 + 930 .cfi_startproc + 931 @ args = 8, pretend = 0, frame = 0 + 932 @ frame_needed = 0, uses_anonymous_args = 0 +5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI + 933 .loc 1 5318 1 is_stmt 0 view .LVU305 + 934 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 935 .LCFI5: + 936 .cfi_def_cfa_offset 24 + 937 .cfi_offset 4, -24 + 938 .cfi_offset 5, -20 + 939 .cfi_offset 6, -16 + 940 .cfi_offset 7, -12 + 941 .cfi_offset 8, -8 + 942 .cfi_offset 14, -4 + 943 0004 82B0 sub sp, sp, #8 + 944 .LCFI6: + 945 .cfi_def_cfa_offset 32 + 946 0006 0446 mov r4, r0 + 947 0008 9046 mov r8, r2 + 948 000a 1D46 mov r5, r3 + 949 000c 089E ldr r6, [sp, #32] + 950 000e 099F ldr r7, [sp, #36] +5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 951 .loc 1 5319 3 is_stmt 1 view .LVU306 + 952 0010 194B ldr r3, .L89 + 953 .LVL79: +5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 954 .loc 1 5319 3 is_stmt 0 view .LVU307 + 955 0012 0093 str r3, [sp] + 956 0014 4FF08073 mov r3, #16777216 + 957 0018 EAB2 uxtb r2, r5 + 958 .LVL80: +5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 959 .loc 1 5319 3 view .LVU308 + 960 001a FFF7FEFF bl I2C_TransferConfig + 961 .LVL81: +5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 962 .loc 1 5322 3 is_stmt 1 view .LVU309 + ARM GAS /tmp/ccbUHtu7.s page 142 + + +5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 963 .loc 1 5322 7 is_stmt 0 view .LVU310 + 964 001e 3A46 mov r2, r7 + 965 0020 3146 mov r1, r6 + 966 0022 2046 mov r0, r4 + 967 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 968 .LVL82: +5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 969 .loc 1 5322 6 view .LVU311 + 970 0028 F8B9 cbnz r0, .L84 +5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 971 .loc 1 5328 3 is_stmt 1 view .LVU312 +5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 972 .loc 1 5328 6 is_stmt 0 view .LVU313 + 973 002a 012D cmp r5, #1 + 974 002c 0ED1 bne .L82 +5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 975 .loc 1 5331 5 is_stmt 1 view .LVU314 +5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 976 .loc 1 5331 9 is_stmt 0 view .LVU315 + 977 002e 2368 ldr r3, [r4] +5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 978 .loc 1 5331 28 view .LVU316 + 979 0030 5FFA88F2 uxtb r2, r8 +5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 980 .loc 1 5331 26 view .LVU317 + 981 0034 9A62 str r2, [r3, #40] + 982 .L83: +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 983 .loc 1 5350 3 is_stmt 1 view .LVU318 +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 984 .loc 1 5350 7 is_stmt 0 view .LVU319 + 985 0036 0097 str r7, [sp] + 986 0038 3346 mov r3, r6 + 987 003a 0022 movs r2, #0 + 988 003c 8021 movs r1, #128 + 989 003e 2046 mov r0, r4 + 990 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 991 .LVL83: +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 992 .loc 1 5350 6 view .LVU320 + 993 0044 A8B9 cbnz r0, .L88 + 994 .L81: +5356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 995 .loc 1 5356 1 view .LVU321 + 996 0046 02B0 add sp, sp, #8 + 997 .LCFI7: + 998 .cfi_remember_state + 999 .cfi_def_cfa_offset 24 + 1000 @ sp needed + 1001 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1002 .LVL84: + 1003 .L82: + 1004 .LCFI8: + 1005 .cfi_restore_state +5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1006 .loc 1 5337 5 is_stmt 1 view .LVU322 + ARM GAS /tmp/ccbUHtu7.s page 143 + + +5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1007 .loc 1 5337 9 is_stmt 0 view .LVU323 + 1008 004c 2368 ldr r3, [r4] +5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1009 .loc 1 5337 28 view .LVU324 + 1010 004e 4FEA1822 lsr r2, r8, #8 +5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1011 .loc 1 5337 26 view .LVU325 + 1012 0052 9A62 str r2, [r3, #40] +5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1013 .loc 1 5340 5 is_stmt 1 view .LVU326 +5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1014 .loc 1 5340 9 is_stmt 0 view .LVU327 + 1015 0054 3A46 mov r2, r7 + 1016 0056 3146 mov r1, r6 + 1017 0058 2046 mov r0, r4 + 1018 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 1019 .LVL85: +5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1020 .loc 1 5340 8 view .LVU328 + 1021 005e 30B9 cbnz r0, .L85 +5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1022 .loc 1 5346 5 is_stmt 1 view .LVU329 +5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1023 .loc 1 5346 9 is_stmt 0 view .LVU330 + 1024 0060 2368 ldr r3, [r4] +5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1025 .loc 1 5346 28 view .LVU331 + 1026 0062 5FFA88F2 uxtb r2, r8 +5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1027 .loc 1 5346 26 view .LVU332 + 1028 0066 9A62 str r2, [r3, #40] + 1029 0068 E5E7 b .L83 + 1030 .L84: +5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1031 .loc 1 5324 12 view .LVU333 + 1032 006a 0120 movs r0, #1 + 1033 006c EBE7 b .L81 + 1034 .L85: +5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1035 .loc 1 5342 14 view .LVU334 + 1036 006e 0120 movs r0, #1 + 1037 0070 E9E7 b .L81 + 1038 .L88: +5352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1039 .loc 1 5352 12 view .LVU335 + 1040 0072 0120 movs r0, #1 + 1041 0074 E7E7 b .L81 + 1042 .L90: + 1043 0076 00BF .align 2 + 1044 .L89: + 1045 0078 00200080 .word -2147475456 + 1046 .cfi_endproc + 1047 .LFE382: + 1049 .section .text.I2C_RequestMemoryRead,"ax",%progbits + 1050 .align 1 + 1051 .syntax unified + ARM GAS /tmp/ccbUHtu7.s page 144 + + + 1052 .thumb + 1053 .thumb_func + 1055 I2C_RequestMemoryRead: + 1056 .LVL86: + 1057 .LFB383: +5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR + 1058 .loc 1 5373 1 is_stmt 1 view -0 + 1059 .cfi_startproc + 1060 @ args = 8, pretend = 0, frame = 0 + 1061 @ frame_needed = 0, uses_anonymous_args = 0 +5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR + 1062 .loc 1 5373 1 is_stmt 0 view .LVU337 + 1063 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 1064 .LCFI9: + 1065 .cfi_def_cfa_offset 24 + 1066 .cfi_offset 4, -24 + 1067 .cfi_offset 5, -20 + 1068 .cfi_offset 6, -16 + 1069 .cfi_offset 7, -12 + 1070 .cfi_offset 8, -8 + 1071 .cfi_offset 14, -4 + 1072 0004 82B0 sub sp, sp, #8 + 1073 .LCFI10: + 1074 .cfi_def_cfa_offset 32 + 1075 0006 0446 mov r4, r0 + 1076 0008 9046 mov r8, r2 + 1077 000a 1D46 mov r5, r3 + 1078 000c 089E ldr r6, [sp, #32] + 1079 000e 099F ldr r7, [sp, #36] +5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1080 .loc 1 5374 3 is_stmt 1 view .LVU338 + 1081 0010 184B ldr r3, .L100 + 1082 .LVL87: +5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1083 .loc 1 5374 3 is_stmt 0 view .LVU339 + 1084 0012 0093 str r3, [sp] + 1085 0014 0023 movs r3, #0 + 1086 0016 EAB2 uxtb r2, r5 + 1087 .LVL88: +5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1088 .loc 1 5374 3 view .LVU340 + 1089 0018 FFF7FEFF bl I2C_TransferConfig + 1090 .LVL89: +5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1091 .loc 1 5377 3 is_stmt 1 view .LVU341 +5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1092 .loc 1 5377 7 is_stmt 0 view .LVU342 + 1093 001c 3A46 mov r2, r7 + 1094 001e 3146 mov r1, r6 + 1095 0020 2046 mov r0, r4 + 1096 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 1097 .LVL90: +5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1098 .loc 1 5377 6 view .LVU343 + 1099 0026 F8B9 cbnz r0, .L95 +5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1100 .loc 1 5383 3 is_stmt 1 view .LVU344 + ARM GAS /tmp/ccbUHtu7.s page 145 + + +5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1101 .loc 1 5383 6 is_stmt 0 view .LVU345 + 1102 0028 012D cmp r5, #1 + 1103 002a 0ED1 bne .L93 +5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1104 .loc 1 5386 5 is_stmt 1 view .LVU346 +5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1105 .loc 1 5386 9 is_stmt 0 view .LVU347 + 1106 002c 2368 ldr r3, [r4] +5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1107 .loc 1 5386 28 view .LVU348 + 1108 002e 5FFA88F2 uxtb r2, r8 +5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1109 .loc 1 5386 26 view .LVU349 + 1110 0032 9A62 str r2, [r3, #40] + 1111 .L94: +5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1112 .loc 1 5405 3 is_stmt 1 view .LVU350 +5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1113 .loc 1 5405 7 is_stmt 0 view .LVU351 + 1114 0034 0097 str r7, [sp] + 1115 0036 3346 mov r3, r6 + 1116 0038 0022 movs r2, #0 + 1117 003a 4021 movs r1, #64 + 1118 003c 2046 mov r0, r4 + 1119 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 1120 .LVL91: +5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1121 .loc 1 5405 6 view .LVU352 + 1122 0042 A8B9 cbnz r0, .L99 + 1123 .L92: +5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1124 .loc 1 5411 1 view .LVU353 + 1125 0044 02B0 add sp, sp, #8 + 1126 .LCFI11: + 1127 .cfi_remember_state + 1128 .cfi_def_cfa_offset 24 + 1129 @ sp needed + 1130 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 1131 .LVL92: + 1132 .L93: + 1133 .LCFI12: + 1134 .cfi_restore_state +5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1135 .loc 1 5392 5 is_stmt 1 view .LVU354 +5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1136 .loc 1 5392 9 is_stmt 0 view .LVU355 + 1137 004a 2368 ldr r3, [r4] +5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1138 .loc 1 5392 28 view .LVU356 + 1139 004c 4FEA1822 lsr r2, r8, #8 +5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1140 .loc 1 5392 26 view .LVU357 + 1141 0050 9A62 str r2, [r3, #40] +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1142 .loc 1 5395 5 is_stmt 1 view .LVU358 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 146 + + + 1143 .loc 1 5395 9 is_stmt 0 view .LVU359 + 1144 0052 3A46 mov r2, r7 + 1145 0054 3146 mov r1, r6 + 1146 0056 2046 mov r0, r4 + 1147 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 1148 .LVL93: +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1149 .loc 1 5395 8 view .LVU360 + 1150 005c 30B9 cbnz r0, .L96 +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1151 .loc 1 5401 5 is_stmt 1 view .LVU361 +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1152 .loc 1 5401 9 is_stmt 0 view .LVU362 + 1153 005e 2368 ldr r3, [r4] +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1154 .loc 1 5401 28 view .LVU363 + 1155 0060 5FFA88F2 uxtb r2, r8 +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1156 .loc 1 5401 26 view .LVU364 + 1157 0064 9A62 str r2, [r3, #40] + 1158 0066 E5E7 b .L94 + 1159 .L95: +5379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1160 .loc 1 5379 12 view .LVU365 + 1161 0068 0120 movs r0, #1 + 1162 006a EBE7 b .L92 + 1163 .L96: +5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1164 .loc 1 5397 14 view .LVU366 + 1165 006c 0120 movs r0, #1 + 1166 006e E9E7 b .L92 + 1167 .L99: +5407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1168 .loc 1 5407 12 view .LVU367 + 1169 0070 0120 movs r0, #1 + 1170 0072 E7E7 b .L92 + 1171 .L101: + 1172 .align 2 + 1173 .L100: + 1174 0074 00200080 .word -2147475456 + 1175 .cfi_endproc + 1176 .LFE383: + 1178 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits + 1179 .align 1 + 1180 .syntax unified + 1181 .thumb + 1182 .thumb_func + 1184 I2C_WaitOnSTOPFlagUntilTimeout: + 1185 .LVL94: + 1186 .LFB401: +6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) + 1187 .loc 1 6439 1 is_stmt 1 view -0 + 1188 .cfi_startproc + 1189 @ args = 0, pretend = 0, frame = 0 + 1190 @ frame_needed = 0, uses_anonymous_args = 0 +6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) + 1191 .loc 1 6439 1 is_stmt 0 view .LVU369 + ARM GAS /tmp/ccbUHtu7.s page 147 + + + 1192 0000 70B5 push {r4, r5, r6, lr} + 1193 .LCFI13: + 1194 .cfi_def_cfa_offset 16 + 1195 .cfi_offset 4, -16 + 1196 .cfi_offset 5, -12 + 1197 .cfi_offset 6, -8 + 1198 .cfi_offset 14, -4 + 1199 0002 0546 mov r5, r0 + 1200 0004 0C46 mov r4, r1 + 1201 0006 1646 mov r6, r2 +6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1202 .loc 1 6440 3 is_stmt 1 view .LVU370 + 1203 .LVL95: + 1204 .L103: +6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1205 .loc 1 6440 51 view .LVU371 +6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1206 .loc 1 6440 10 is_stmt 0 view .LVU372 + 1207 0008 2B68 ldr r3, [r5] + 1208 000a 9B69 ldr r3, [r3, #24] +6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1209 .loc 1 6440 51 view .LVU373 + 1210 000c 13F0200F tst r3, #32 + 1211 0010 1AD1 bne .L109 +6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1212 .loc 1 6443 5 is_stmt 1 view .LVU374 +6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1213 .loc 1 6443 9 is_stmt 0 view .LVU375 + 1214 0012 3246 mov r2, r6 + 1215 0014 2146 mov r1, r4 + 1216 0016 2846 mov r0, r5 + 1217 0018 FFF7FEFF bl I2C_IsErrorOccurred + 1218 .LVL96: +6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1219 .loc 1 6443 8 view .LVU376 + 1220 001c B0B9 cbnz r0, .L107 +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1221 .loc 1 6449 5 is_stmt 1 view .LVU377 +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1222 .loc 1 6449 11 is_stmt 0 view .LVU378 + 1223 001e FFF7FEFF bl HAL_GetTick + 1224 .LVL97: +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1225 .loc 1 6449 25 view .LVU379 + 1226 0022 801B subs r0, r0, r6 +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1227 .loc 1 6449 8 view .LVU380 + 1228 0024 A042 cmp r0, r4 + 1229 0026 01D8 bhi .L105 +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1230 .loc 1 6449 49 discriminator 1 view .LVU381 + 1231 0028 002C cmp r4, #0 + 1232 002a EDD1 bne .L103 + 1233 .L105: +6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1234 .loc 1 6451 7 is_stmt 1 view .LVU382 +6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + ARM GAS /tmp/ccbUHtu7.s page 148 + + + 1235 .loc 1 6451 11 is_stmt 0 view .LVU383 + 1236 002c 6B6C ldr r3, [r5, #68] +6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1237 .loc 1 6451 23 view .LVU384 + 1238 002e 43F02003 orr r3, r3, #32 + 1239 0032 6B64 str r3, [r5, #68] +6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1240 .loc 1 6452 7 is_stmt 1 view .LVU385 +6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1241 .loc 1 6452 19 is_stmt 0 view .LVU386 + 1242 0034 2023 movs r3, #32 + 1243 0036 85F84130 strb r3, [r5, #65] +6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1244 .loc 1 6453 7 is_stmt 1 view .LVU387 +6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1245 .loc 1 6453 18 is_stmt 0 view .LVU388 + 1246 003a 0023 movs r3, #0 + 1247 003c 85F84230 strb r3, [r5, #66] +6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1248 .loc 1 6456 7 is_stmt 1 view .LVU389 +6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1249 .loc 1 6456 7 view .LVU390 + 1250 0040 85F84030 strb r3, [r5, #64] +6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1251 .loc 1 6456 7 view .LVU391 +6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1252 .loc 1 6458 7 view .LVU392 +6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1253 .loc 1 6458 14 is_stmt 0 view .LVU393 + 1254 0044 0120 movs r0, #1 + 1255 .L104: +6462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1256 .loc 1 6462 1 view .LVU394 + 1257 0046 70BD pop {r4, r5, r6, pc} + 1258 .LVL98: + 1259 .L109: +6461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1260 .loc 1 6461 10 view .LVU395 + 1261 0048 0020 movs r0, #0 + 1262 004a FCE7 b .L104 + 1263 .L107: +6445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1264 .loc 1 6445 14 view .LVU396 + 1265 004c 0120 movs r0, #1 + 1266 004e FAE7 b .L104 + 1267 .cfi_endproc + 1268 .LFE401: + 1270 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits + 1271 .align 1 + 1272 .syntax unified + 1273 .thumb + 1274 .thumb_func + 1276 I2C_WaitOnRXNEFlagUntilTimeout: + 1277 .LVL99: + 1278 .LFB402: +6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) + 1279 .loc 1 6474 1 is_stmt 1 view -0 + ARM GAS /tmp/ccbUHtu7.s page 149 + + + 1280 .cfi_startproc + 1281 @ args = 0, pretend = 0, frame = 0 + 1282 @ frame_needed = 0, uses_anonymous_args = 0 +6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) + 1283 .loc 1 6474 1 is_stmt 0 view .LVU398 + 1284 0000 70B5 push {r4, r5, r6, lr} + 1285 .LCFI14: + 1286 .cfi_def_cfa_offset 16 + 1287 .cfi_offset 4, -16 + 1288 .cfi_offset 5, -12 + 1289 .cfi_offset 6, -8 + 1290 .cfi_offset 14, -4 + 1291 0002 0446 mov r4, r0 + 1292 0004 0D46 mov r5, r1 + 1293 0006 1646 mov r6, r2 +6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1294 .loc 1 6475 3 is_stmt 1 view .LVU399 + 1295 .LVL100: + 1296 .L111: +6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1297 .loc 1 6475 50 view .LVU400 +6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1298 .loc 1 6475 10 is_stmt 0 view .LVU401 + 1299 0008 2368 ldr r3, [r4] + 1300 000a 9B69 ldr r3, [r3, #24] +6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1301 .loc 1 6475 50 view .LVU402 + 1302 000c 13F0040F tst r3, #4 + 1303 0010 49D1 bne .L121 +6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1304 .loc 1 6478 5 is_stmt 1 view .LVU403 +6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1305 .loc 1 6478 9 is_stmt 0 view .LVU404 + 1306 0012 3246 mov r2, r6 + 1307 0014 2946 mov r1, r5 + 1308 0016 2046 mov r0, r4 + 1309 0018 FFF7FEFF bl I2C_IsErrorOccurred + 1310 .LVL101: +6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1311 .loc 1 6478 8 view .LVU405 + 1312 001c 0146 mov r1, r0 + 1313 001e 0028 cmp r0, #0 + 1314 0020 43D1 bne .L119 +6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1315 .loc 1 6484 5 is_stmt 1 view .LVU406 +6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1316 .loc 1 6484 9 is_stmt 0 view .LVU407 + 1317 0022 2368 ldr r3, [r4] + 1318 0024 9A69 ldr r2, [r3, #24] +6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1319 .loc 1 6484 8 view .LVU408 + 1320 0026 12F0200F tst r2, #32 + 1321 002a 13D1 bne .L122 +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1322 .loc 1 6523 5 is_stmt 1 view .LVU409 +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1323 .loc 1 6523 11 is_stmt 0 view .LVU410 + ARM GAS /tmp/ccbUHtu7.s page 150 + + + 1324 002c FFF7FEFF bl HAL_GetTick + 1325 .LVL102: +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1326 .loc 1 6523 25 view .LVU411 + 1327 0030 801B subs r0, r0, r6 +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1328 .loc 1 6523 8 view .LVU412 + 1329 0032 A842 cmp r0, r5 + 1330 0034 01D8 bhi .L117 +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1331 .loc 1 6523 49 discriminator 1 view .LVU413 + 1332 0036 002D cmp r5, #0 + 1333 0038 E6D1 bne .L111 + 1334 .L117: +6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1335 .loc 1 6525 7 is_stmt 1 view .LVU414 +6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1336 .loc 1 6525 11 is_stmt 0 view .LVU415 + 1337 003a 636C ldr r3, [r4, #68] +6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1338 .loc 1 6525 23 view .LVU416 + 1339 003c 43F02003 orr r3, r3, #32 + 1340 0040 6364 str r3, [r4, #68] +6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1341 .loc 1 6526 7 is_stmt 1 view .LVU417 +6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1342 .loc 1 6526 19 is_stmt 0 view .LVU418 + 1343 0042 2023 movs r3, #32 + 1344 0044 84F84130 strb r3, [r4, #65] +6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1345 .loc 1 6529 7 is_stmt 1 view .LVU419 +6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1346 .loc 1 6529 7 view .LVU420 + 1347 0048 0023 movs r3, #0 + 1348 004a 84F84030 strb r3, [r4, #64] +6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1349 .loc 1 6529 7 view .LVU421 +6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1350 .loc 1 6531 7 view .LVU422 +6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1351 .loc 1 6531 14 is_stmt 0 view .LVU423 + 1352 004e 0121 movs r1, #1 + 1353 .L112: +6535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1354 .loc 1 6535 1 view .LVU424 + 1355 0050 0846 mov r0, r1 + 1356 0052 70BD pop {r4, r5, r6, pc} + 1357 .LVL103: + 1358 .L122: +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1359 .loc 1 6488 7 is_stmt 1 view .LVU425 +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1360 .loc 1 6488 12 is_stmt 0 view .LVU426 + 1361 0054 9A69 ldr r2, [r3, #24] +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1362 .loc 1 6488 10 view .LVU427 + 1363 0056 12F0040F tst r2, #4 + ARM GAS /tmp/ccbUHtu7.s page 151 + + + 1364 005a 02D0 beq .L114 +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1365 .loc 1 6488 68 discriminator 1 view .LVU428 + 1366 005c 228D ldrh r2, [r4, #40] +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1367 .loc 1 6488 60 discriminator 1 view .LVU429 + 1368 005e 002A cmp r2, #0 + 1369 0060 F6D1 bne .L112 + 1370 .L114: +6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1371 .loc 1 6496 9 is_stmt 1 view .LVU430 +6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1372 .loc 1 6496 13 is_stmt 0 view .LVU431 + 1373 0062 9A69 ldr r2, [r3, #24] +6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1374 .loc 1 6496 12 view .LVU432 + 1375 0064 12F0100F tst r2, #16 + 1376 0068 1AD0 beq .L115 +6498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; + 1377 .loc 1 6498 11 is_stmt 1 view .LVU433 + 1378 006a 1022 movs r2, #16 + 1379 006c DA61 str r2, [r3, #28] +6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1380 .loc 1 6499 11 view .LVU434 +6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1381 .loc 1 6499 27 is_stmt 0 view .LVU435 + 1382 006e 0423 movs r3, #4 + 1383 0070 6364 str r3, [r4, #68] + 1384 .L116: +6507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1385 .loc 1 6507 9 is_stmt 1 view .LVU436 + 1386 0072 2368 ldr r3, [r4] + 1387 0074 2022 movs r2, #32 + 1388 0076 DA61 str r2, [r3, #28] +6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1389 .loc 1 6510 9 view .LVU437 + 1390 0078 2168 ldr r1, [r4] + 1391 007a 4B68 ldr r3, [r1, #4] + 1392 007c 23F0FF73 bic r3, r3, #33423360 + 1393 0080 23F48B33 bic r3, r3, #71168 + 1394 0084 23F4FF73 bic r3, r3, #510 + 1395 0088 23F00103 bic r3, r3, #1 + 1396 008c 4B60 str r3, [r1, #4] +6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1397 .loc 1 6512 9 view .LVU438 +6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1398 .loc 1 6512 21 is_stmt 0 view .LVU439 + 1399 008e 84F84120 strb r2, [r4, #65] +6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1400 .loc 1 6513 9 is_stmt 1 view .LVU440 +6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1401 .loc 1 6513 20 is_stmt 0 view .LVU441 + 1402 0092 0023 movs r3, #0 + 1403 0094 84F84230 strb r3, [r4, #66] +6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1404 .loc 1 6516 9 is_stmt 1 view .LVU442 +6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 152 + + + 1405 .loc 1 6516 9 view .LVU443 + 1406 0098 84F84030 strb r3, [r4, #64] +6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1407 .loc 1 6516 9 view .LVU444 +6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1408 .loc 1 6518 9 view .LVU445 +6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1409 .loc 1 6518 16 is_stmt 0 view .LVU446 + 1410 009c 0121 movs r1, #1 + 1411 009e D7E7 b .L112 + 1412 .L115: +6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1413 .loc 1 6503 11 is_stmt 1 view .LVU447 +6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1414 .loc 1 6503 27 is_stmt 0 view .LVU448 + 1415 00a0 0023 movs r3, #0 + 1416 00a2 6364 str r3, [r4, #68] + 1417 00a4 E5E7 b .L116 + 1418 .L121: +6534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1419 .loc 1 6534 10 view .LVU449 + 1420 00a6 0021 movs r1, #0 + 1421 00a8 D2E7 b .L112 + 1422 .L119: +6480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1423 .loc 1 6480 14 view .LVU450 + 1424 00aa 0121 movs r1, #1 + 1425 00ac D0E7 b .L112 + 1426 .cfi_endproc + 1427 .LFE402: + 1429 .section .text.HAL_I2C_MspInit,"ax",%progbits + 1430 .align 1 + 1431 .weak HAL_I2C_MspInit + 1432 .syntax unified + 1433 .thumb + 1434 .thumb_func + 1436 HAL_I2C_MspInit: + 1437 .LVL104: + 1438 .LFB331: + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 1439 .loc 1 681 1 is_stmt 1 view -0 + 1440 .cfi_startproc + 1441 @ args = 0, pretend = 0, frame = 0 + 1442 @ frame_needed = 0, uses_anonymous_args = 0 + 1443 @ link register save eliminated. + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1444 .loc 1 683 3 view .LVU452 + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1445 .loc 1 688 1 is_stmt 0 view .LVU453 + 1446 0000 7047 bx lr + 1447 .cfi_endproc + 1448 .LFE331: + 1450 .section .text.HAL_I2C_Init,"ax",%progbits + 1451 .align 1 + 1452 .global HAL_I2C_Init + 1453 .syntax unified + 1454 .thumb + ARM GAS /tmp/ccbUHtu7.s page 153 + + + 1455 .thumb_func + 1457 HAL_I2C_Init: + 1458 .LVL105: + 1459 .LFB329: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ + 1460 .loc 1 525 1 is_stmt 1 view -0 + 1461 .cfi_startproc + 1462 @ args = 0, pretend = 0, frame = 0 + 1463 @ frame_needed = 0, uses_anonymous_args = 0 + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1464 .loc 1 527 3 view .LVU455 + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1465 .loc 1 527 6 is_stmt 0 view .LVU456 + 1466 0000 0028 cmp r0, #0 + 1467 0002 59D0 beq .L130 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ + 1468 .loc 1 525 1 view .LVU457 + 1469 0004 10B5 push {r4, lr} + 1470 .LCFI15: + 1471 .cfi_def_cfa_offset 8 + 1472 .cfi_offset 4, -8 + 1473 .cfi_offset 14, -4 + 1474 0006 0446 mov r4, r0 + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); + 1475 .loc 1 533 3 is_stmt 1 view .LVU458 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); + 1476 .loc 1 534 3 view .LVU459 + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); + 1477 .loc 1 535 3 view .LVU460 + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); + 1478 .loc 1 536 3 view .LVU461 + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); + 1479 .loc 1 537 3 view .LVU462 + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); + 1480 .loc 1 538 3 view .LVU463 + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); + 1481 .loc 1 539 3 view .LVU464 + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1482 .loc 1 540 3 view .LVU465 + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1483 .loc 1 542 3 view .LVU466 + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1484 .loc 1 542 11 is_stmt 0 view .LVU467 + 1485 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1486 .loc 1 542 6 view .LVU468 + 1487 000c 002B cmp r3, #0 + 1488 000e 43D0 beq .L135 + 1489 .LVL106: + 1490 .L126: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1491 .loc 1 573 3 is_stmt 1 view .LVU469 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1492 .loc 1 573 15 is_stmt 0 view .LVU470 + 1493 0010 2423 movs r3, #36 + 1494 0012 84F84130 strb r3, [r4, #65] + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 154 + + + 1495 .loc 1 576 3 is_stmt 1 view .LVU471 + 1496 0016 2268 ldr r2, [r4] + 1497 0018 1368 ldr r3, [r2] + 1498 001a 23F00103 bic r3, r3, #1 + 1499 001e 1360 str r3, [r2] + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1500 .loc 1 580 3 view .LVU472 + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1501 .loc 1 580 39 is_stmt 0 view .LVU473 + 1502 0020 6368 ldr r3, [r4, #4] + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1503 .loc 1 580 7 view .LVU474 + 1504 0022 2268 ldr r2, [r4] + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1505 .loc 1 580 47 view .LVU475 + 1506 0024 23F07063 bic r3, r3, #251658240 + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1507 .loc 1 580 27 view .LVU476 + 1508 0028 1361 str r3, [r2, #16] + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1509 .loc 1 584 3 is_stmt 1 view .LVU477 + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1510 .loc 1 584 7 is_stmt 0 view .LVU478 + 1511 002a 2268 ldr r2, [r4] + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1512 .loc 1 584 17 view .LVU479 + 1513 002c 9368 ldr r3, [r2, #8] + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1514 .loc 1 584 24 view .LVU480 + 1515 002e 23F40043 bic r3, r3, #32768 + 1516 0032 9360 str r3, [r2, #8] + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1517 .loc 1 587 3 is_stmt 1 view .LVU481 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1518 .loc 1 587 17 is_stmt 0 view .LVU482 + 1519 0034 E368 ldr r3, [r4, #12] + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1520 .loc 1 587 6 view .LVU483 + 1521 0036 012B cmp r3, #1 + 1522 0038 33D0 beq .L136 + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1523 .loc 1 593 5 is_stmt 1 view .LVU484 + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1524 .loc 1 593 75 is_stmt 0 view .LVU485 + 1525 003a A368 ldr r3, [r4, #8] + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1526 .loc 1 593 9 view .LVU486 + 1527 003c 2268 ldr r2, [r4] + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1528 .loc 1 593 63 view .LVU487 + 1529 003e 43F40443 orr r3, r3, #33792 + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1530 .loc 1 593 26 view .LVU488 + 1531 0042 9360 str r3, [r2, #8] + 1532 .L128: + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1533 .loc 1 598 3 is_stmt 1 view .LVU489 + ARM GAS /tmp/ccbUHtu7.s page 155 + + + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1534 .loc 1 598 17 is_stmt 0 view .LVU490 + 1535 0044 E368 ldr r3, [r4, #12] + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1536 .loc 1 598 6 view .LVU491 + 1537 0046 022B cmp r3, #2 + 1538 0048 31D0 beq .L137 + 1539 .L129: + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1540 .loc 1 603 3 is_stmt 1 view .LVU492 + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1541 .loc 1 603 7 is_stmt 0 view .LVU493 + 1542 004a 2268 ldr r2, [r4] + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1543 .loc 1 603 17 view .LVU494 + 1544 004c 5368 ldr r3, [r2, #4] + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1545 .loc 1 603 23 view .LVU495 + 1546 004e 43F00073 orr r3, r3, #33554432 + 1547 0052 43F40043 orr r3, r3, #32768 + 1548 0056 5360 str r3, [r2, #4] + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1549 .loc 1 607 3 is_stmt 1 view .LVU496 + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1550 .loc 1 607 7 is_stmt 0 view .LVU497 + 1551 0058 2268 ldr r2, [r4] + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1552 .loc 1 607 17 view .LVU498 + 1553 005a D368 ldr r3, [r2, #12] + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1554 .loc 1 607 24 view .LVU499 + 1555 005c 23F40043 bic r3, r3, #32768 + 1556 0060 D360 str r3, [r2, #12] + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1557 .loc 1 610 3 is_stmt 1 view .LVU500 + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1558 .loc 1 610 37 is_stmt 0 view .LVU501 + 1559 0062 2369 ldr r3, [r4, #16] + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1560 .loc 1 610 66 view .LVU502 + 1561 0064 6269 ldr r2, [r4, #20] + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1562 .loc 1 610 54 view .LVU503 + 1563 0066 1343 orrs r3, r3, r2 + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1564 .loc 1 611 38 view .LVU504 + 1565 0068 A169 ldr r1, [r4, #24] + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1566 .loc 1 610 7 view .LVU505 + 1567 006a 2268 ldr r2, [r4] + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1568 .loc 1 610 79 view .LVU506 + 1569 006c 43EA0123 orr r3, r3, r1, lsl #8 + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); + 1570 .loc 1 610 24 view .LVU507 + 1571 0070 D360 str r3, [r2, #12] + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 156 + + + 1572 .loc 1 615 3 is_stmt 1 view .LVU508 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1573 .loc 1 615 36 is_stmt 0 view .LVU509 + 1574 0072 E369 ldr r3, [r4, #28] + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1575 .loc 1 615 65 view .LVU510 + 1576 0074 216A ldr r1, [r4, #32] + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1577 .loc 1 615 7 view .LVU511 + 1578 0076 2268 ldr r2, [r4] + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1579 .loc 1 615 53 view .LVU512 + 1580 0078 0B43 orrs r3, r3, r1 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1581 .loc 1 615 23 view .LVU513 + 1582 007a 1360 str r3, [r2] + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1583 .loc 1 618 3 is_stmt 1 view .LVU514 + 1584 007c 2268 ldr r2, [r4] + 1585 007e 1368 ldr r3, [r2] + 1586 0080 43F00103 orr r3, r3, #1 + 1587 0084 1360 str r3, [r2] + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1588 .loc 1 620 3 view .LVU515 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 1589 .loc 1 620 19 is_stmt 0 view .LVU516 + 1590 0086 0020 movs r0, #0 + 1591 0088 6064 str r0, [r4, #68] + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 1592 .loc 1 621 3 is_stmt 1 view .LVU517 + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 1593 .loc 1 621 15 is_stmt 0 view .LVU518 + 1594 008a 2023 movs r3, #32 + 1595 008c 84F84130 strb r3, [r4, #65] + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1596 .loc 1 622 3 is_stmt 1 view .LVU519 + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1597 .loc 1 622 23 is_stmt 0 view .LVU520 + 1598 0090 2063 str r0, [r4, #48] + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1599 .loc 1 623 3 is_stmt 1 view .LVU521 + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1600 .loc 1 623 14 is_stmt 0 view .LVU522 + 1601 0092 84F84200 strb r0, [r4, #66] + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1602 .loc 1 625 3 is_stmt 1 view .LVU523 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1603 .loc 1 626 1 is_stmt 0 view .LVU524 + 1604 0096 10BD pop {r4, pc} + 1605 .LVL107: + 1606 .L135: + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1607 .loc 1 545 5 is_stmt 1 view .LVU525 + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1608 .loc 1 545 16 is_stmt 0 view .LVU526 + 1609 0098 80F84030 strb r3, [r0, #64] + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + ARM GAS /tmp/ccbUHtu7.s page 157 + + + 1610 .loc 1 569 5 is_stmt 1 view .LVU527 + 1611 009c FFF7FEFF bl HAL_I2C_MspInit + 1612 .LVL108: + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 1613 .loc 1 569 5 is_stmt 0 view .LVU528 + 1614 00a0 B6E7 b .L126 + 1615 .L136: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1616 .loc 1 589 5 is_stmt 1 view .LVU529 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1617 .loc 1 589 56 is_stmt 0 view .LVU530 + 1618 00a2 A368 ldr r3, [r4, #8] + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1619 .loc 1 589 9 view .LVU531 + 1620 00a4 2268 ldr r2, [r4] + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1621 .loc 1 589 44 view .LVU532 + 1622 00a6 43F40043 orr r3, r3, #32768 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1623 .loc 1 589 26 view .LVU533 + 1624 00aa 9360 str r3, [r2, #8] + 1625 00ac CAE7 b .L128 + 1626 .L137: + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1627 .loc 1 600 5 is_stmt 1 view .LVU534 + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1628 .loc 1 600 9 is_stmt 0 view .LVU535 + 1629 00ae 2368 ldr r3, [r4] + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1630 .loc 1 600 25 view .LVU536 + 1631 00b0 4FF40062 mov r2, #2048 + 1632 00b4 5A60 str r2, [r3, #4] + 1633 00b6 C8E7 b .L129 + 1634 .LVL109: + 1635 .L130: + 1636 .LCFI16: + 1637 .cfi_def_cfa_offset 0 + 1638 .cfi_restore 4 + 1639 .cfi_restore 14 + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1640 .loc 1 529 12 view .LVU537 + 1641 00b8 0120 movs r0, #1 + 1642 .LVL110: + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1643 .loc 1 626 1 view .LVU538 + 1644 00ba 7047 bx lr + 1645 .cfi_endproc + 1646 .LFE329: + 1648 .section .text.HAL_I2C_MspDeInit,"ax",%progbits + 1649 .align 1 + 1650 .weak HAL_I2C_MspDeInit + 1651 .syntax unified + 1652 .thumb + 1653 .thumb_func + 1655 HAL_I2C_MspDeInit: + 1656 .LVL111: + 1657 .LFB332: + ARM GAS /tmp/ccbUHtu7.s page 158 + + + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 1658 .loc 1 697 1 is_stmt 1 view -0 + 1659 .cfi_startproc + 1660 @ args = 0, pretend = 0, frame = 0 + 1661 @ frame_needed = 0, uses_anonymous_args = 0 + 1662 @ link register save eliminated. + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1663 .loc 1 699 3 view .LVU540 + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1664 .loc 1 704 1 is_stmt 0 view .LVU541 + 1665 0000 7047 bx lr + 1666 .cfi_endproc + 1667 .LFE332: + 1669 .section .text.HAL_I2C_DeInit,"ax",%progbits + 1670 .align 1 + 1671 .global HAL_I2C_DeInit + 1672 .syntax unified + 1673 .thumb + 1674 .thumb_func + 1676 HAL_I2C_DeInit: + 1677 .LVL112: + 1678 .LFB330: + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ + 1679 .loc 1 635 1 is_stmt 1 view -0 + 1680 .cfi_startproc + 1681 @ args = 0, pretend = 0, frame = 0 + 1682 @ frame_needed = 0, uses_anonymous_args = 0 + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1683 .loc 1 637 3 view .LVU543 + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1684 .loc 1 637 6 is_stmt 0 view .LVU544 + 1685 0000 A8B1 cbz r0, .L141 + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ + 1686 .loc 1 635 1 view .LVU545 + 1687 0002 10B5 push {r4, lr} + 1688 .LCFI17: + 1689 .cfi_def_cfa_offset 8 + 1690 .cfi_offset 4, -8 + 1691 .cfi_offset 14, -4 + 1692 0004 0446 mov r4, r0 + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1693 .loc 1 643 3 is_stmt 1 view .LVU546 + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1694 .loc 1 645 3 view .LVU547 + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1695 .loc 1 645 15 is_stmt 0 view .LVU548 + 1696 0006 2423 movs r3, #36 + 1697 0008 80F84130 strb r3, [r0, #65] + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1698 .loc 1 648 3 is_stmt 1 view .LVU549 + 1699 000c 0268 ldr r2, [r0] + 1700 000e 1368 ldr r3, [r2] + 1701 0010 23F00103 bic r3, r3, #1 + 1702 0014 1360 str r3, [r2] + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 1703 .loc 1 660 3 view .LVU550 + 1704 0016 FFF7FEFF bl HAL_I2C_MspDeInit + ARM GAS /tmp/ccbUHtu7.s page 159 + + + 1705 .LVL113: + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; + 1706 .loc 1 663 3 view .LVU551 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; + 1707 .loc 1 663 19 is_stmt 0 view .LVU552 + 1708 001a 0020 movs r0, #0 + 1709 001c 6064 str r0, [r4, #68] + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 1710 .loc 1 664 3 is_stmt 1 view .LVU553 + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 1711 .loc 1 664 15 is_stmt 0 view .LVU554 + 1712 001e 84F84100 strb r0, [r4, #65] + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1713 .loc 1 665 3 is_stmt 1 view .LVU555 + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 1714 .loc 1 665 23 is_stmt 0 view .LVU556 + 1715 0022 2063 str r0, [r4, #48] + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1716 .loc 1 666 3 is_stmt 1 view .LVU557 + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1717 .loc 1 666 14 is_stmt 0 view .LVU558 + 1718 0024 84F84200 strb r0, [r4, #66] + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1719 .loc 1 669 3 is_stmt 1 view .LVU559 + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1720 .loc 1 669 3 view .LVU560 + 1721 0028 84F84000 strb r0, [r4, #64] + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1722 .loc 1 669 3 view .LVU561 + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1723 .loc 1 671 3 view .LVU562 + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1724 .loc 1 672 1 is_stmt 0 view .LVU563 + 1725 002c 10BD pop {r4, pc} + 1726 .LVL114: + 1727 .L141: + 1728 .LCFI18: + 1729 .cfi_def_cfa_offset 0 + 1730 .cfi_restore 4 + 1731 .cfi_restore 14 + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 1732 .loc 1 639 12 view .LVU564 + 1733 002e 0120 movs r0, #1 + 1734 .LVL115: + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1735 .loc 1 672 1 view .LVU565 + 1736 0030 7047 bx lr + 1737 .cfi_endproc + 1738 .LFE330: + 1740 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits + 1741 .align 1 + 1742 .global HAL_I2C_Master_Transmit + 1743 .syntax unified + 1744 .thumb + 1745 .thumb_func + 1747 HAL_I2C_Master_Transmit: + 1748 .LVL116: + ARM GAS /tmp/ccbUHtu7.s page 160 + + + 1749 .LFB333: +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 1750 .loc 1 1119 1 is_stmt 1 view -0 + 1751 .cfi_startproc + 1752 @ args = 4, pretend = 0, frame = 0 + 1753 @ frame_needed = 0, uses_anonymous_args = 0 +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 1754 .loc 1 1119 1 is_stmt 0 view .LVU567 + 1755 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} + 1756 .LCFI19: + 1757 .cfi_def_cfa_offset 32 + 1758 .cfi_offset 4, -32 + 1759 .cfi_offset 5, -28 + 1760 .cfi_offset 6, -24 + 1761 .cfi_offset 7, -20 + 1762 .cfi_offset 8, -16 + 1763 .cfi_offset 9, -12 + 1764 .cfi_offset 10, -8 + 1765 .cfi_offset 14, -4 + 1766 0004 82B0 sub sp, sp, #8 + 1767 .LCFI20: + 1768 .cfi_def_cfa_offset 40 + 1769 0006 0F46 mov r7, r1 + 1770 0008 0A9E ldr r6, [sp, #40] +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1771 .loc 1 1120 3 is_stmt 1 view .LVU568 +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1772 .loc 1 1122 3 view .LVU569 +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1773 .loc 1 1122 11 is_stmt 0 view .LVU570 + 1774 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 + 1775 .LVL117: +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1776 .loc 1 1122 11 view .LVU571 + 1777 000e C9B2 uxtb r1, r1 +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1778 .loc 1 1122 6 view .LVU572 + 1779 0010 2029 cmp r1, #32 + 1780 0012 40F0A380 bne .L154 + 1781 0016 0446 mov r4, r0 + 1782 0018 9046 mov r8, r2 + 1783 001a 9946 mov r9, r3 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1784 .loc 1 1125 5 is_stmt 1 view .LVU573 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1785 .loc 1 1125 5 view .LVU574 + 1786 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 1787 .LVL118: +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1788 .loc 1 1125 5 is_stmt 0 view .LVU575 + 1789 0020 012B cmp r3, #1 + 1790 0022 00F09F80 beq .L155 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1791 .loc 1 1125 5 is_stmt 1 discriminator 2 view .LVU576 + 1792 0026 4FF0010A mov r10, #1 + 1793 002a 80F840A0 strb r10, [r0, #64] +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 161 + + + 1794 .loc 1 1125 5 discriminator 2 view .LVU577 +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1795 .loc 1 1128 5 discriminator 2 view .LVU578 +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1796 .loc 1 1128 17 is_stmt 0 discriminator 2 view .LVU579 + 1797 002e FFF7FEFF bl HAL_GetTick + 1798 .LVL119: +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1799 .loc 1 1128 17 discriminator 2 view .LVU580 + 1800 0032 0546 mov r5, r0 + 1801 .LVL120: +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1802 .loc 1 1130 5 is_stmt 1 discriminator 2 view .LVU581 +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1803 .loc 1 1130 9 is_stmt 0 discriminator 2 view .LVU582 + 1804 0034 0090 str r0, [sp] + 1805 0036 1923 movs r3, #25 + 1806 0038 5246 mov r2, r10 + 1807 003a 4FF40041 mov r1, #32768 + 1808 003e 2046 mov r0, r4 + 1809 .LVL121: +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1810 .loc 1 1130 9 discriminator 2 view .LVU583 + 1811 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 1812 .LVL122: +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1813 .loc 1 1130 8 discriminator 2 view .LVU584 + 1814 0044 0028 cmp r0, #0 + 1815 0046 40F08F80 bne .L156 +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 1816 .loc 1 1135 5 is_stmt 1 view .LVU585 +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 1817 .loc 1 1135 21 is_stmt 0 view .LVU586 + 1818 004a 2123 movs r3, #33 + 1819 004c 84F84130 strb r3, [r4, #65] +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 1820 .loc 1 1136 5 is_stmt 1 view .LVU587 +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 1821 .loc 1 1136 21 is_stmt 0 view .LVU588 + 1822 0050 1023 movs r3, #16 + 1823 0052 84F84230 strb r3, [r4, #66] +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1824 .loc 1 1137 5 is_stmt 1 view .LVU589 +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1825 .loc 1 1137 21 is_stmt 0 view .LVU590 + 1826 0056 0023 movs r3, #0 + 1827 0058 6364 str r3, [r4, #68] +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 1828 .loc 1 1140 5 is_stmt 1 view .LVU591 +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 1829 .loc 1 1140 21 is_stmt 0 view .LVU592 + 1830 005a C4F82480 str r8, [r4, #36] +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 1831 .loc 1 1141 5 is_stmt 1 view .LVU593 +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 1832 .loc 1 1141 21 is_stmt 0 view .LVU594 + 1833 005e A4F82A90 strh r9, [r4, #42] @ movhi + ARM GAS /tmp/ccbUHtu7.s page 162 + + +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1834 .loc 1 1142 5 is_stmt 1 view .LVU595 +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1835 .loc 1 1142 21 is_stmt 0 view .LVU596 + 1836 0062 6363 str r3, [r4, #52] +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1837 .loc 1 1146 5 is_stmt 1 view .LVU597 +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1838 .loc 1 1146 13 is_stmt 0 view .LVU598 + 1839 0064 638D ldrh r3, [r4, #42] + 1840 0066 9BB2 uxth r3, r3 +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1841 .loc 1 1146 8 view .LVU599 + 1842 0068 FF2B cmp r3, #255 + 1843 006a 0AD9 bls .L148 +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 1844 .loc 1 1148 7 is_stmt 1 view .LVU600 +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 1845 .loc 1 1148 22 is_stmt 0 view .LVU601 + 1846 006c FF22 movs r2, #255 + 1847 006e 2285 strh r2, [r4, #40] @ movhi +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); + 1848 .loc 1 1149 7 is_stmt 1 view .LVU602 + 1849 0070 414B ldr r3, .L162 + 1850 0072 0093 str r3, [sp] + 1851 0074 4FF08073 mov r3, #16777216 + 1852 0078 3946 mov r1, r7 + 1853 007a 2046 mov r0, r4 + 1854 007c FFF7FEFF bl I2C_TransferConfig + 1855 .LVL123: + 1856 0080 18E0 b .L150 + 1857 .L148: +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 1858 .loc 1 1154 7 view .LVU603 +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 1859 .loc 1 1154 28 is_stmt 0 view .LVU604 + 1860 0082 628D ldrh r2, [r4, #42] + 1861 0084 92B2 uxth r2, r2 +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 1862 .loc 1 1154 22 view .LVU605 + 1863 0086 2285 strh r2, [r4, #40] @ movhi +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); + 1864 .loc 1 1155 7 is_stmt 1 view .LVU606 + 1865 0088 3B4B ldr r3, .L162 + 1866 008a 0093 str r3, [sp] + 1867 008c 4FF00073 mov r3, #33554432 + 1868 0090 D2B2 uxtb r2, r2 + 1869 0092 3946 mov r1, r7 + 1870 0094 2046 mov r0, r4 + 1871 0096 FFF7FEFF bl I2C_TransferConfig + 1872 .LVL124: + 1873 009a 0BE0 b .L150 + 1874 .L152: +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 1875 .loc 1 1191 11 view .LVU607 +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 1876 .loc 1 1191 32 is_stmt 0 view .LVU608 + ARM GAS /tmp/ccbUHtu7.s page 163 + + + 1877 009c 628D ldrh r2, [r4, #42] + 1878 009e 92B2 uxth r2, r2 +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 1879 .loc 1 1191 26 view .LVU609 + 1880 00a0 2285 strh r2, [r4, #40] @ movhi +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 1881 .loc 1 1192 11 is_stmt 1 view .LVU610 + 1882 00a2 0023 movs r3, #0 + 1883 00a4 0093 str r3, [sp] + 1884 00a6 4FF00073 mov r3, #33554432 + 1885 00aa D2B2 uxtb r2, r2 + 1886 00ac 3946 mov r1, r7 + 1887 00ae 2046 mov r0, r4 + 1888 00b0 FFF7FEFF bl I2C_TransferConfig + 1889 .LVL125: + 1890 .L150: +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1891 .loc 1 1159 28 view .LVU611 +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1892 .loc 1 1159 16 is_stmt 0 view .LVU612 + 1893 00b4 638D ldrh r3, [r4, #42] + 1894 00b6 9BB2 uxth r3, r3 +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1895 .loc 1 1159 28 view .LVU613 + 1896 00b8 002B cmp r3, #0 + 1897 00ba 33D0 beq .L161 +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1898 .loc 1 1162 7 is_stmt 1 view .LVU614 +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1899 .loc 1 1162 11 is_stmt 0 view .LVU615 + 1900 00bc 2A46 mov r2, r5 + 1901 00be 3146 mov r1, r6 + 1902 00c0 2046 mov r0, r4 + 1903 00c2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 1904 .LVL126: +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1905 .loc 1 1162 10 view .LVU616 + 1906 00c6 0028 cmp r0, #0 + 1907 00c8 50D1 bne .L157 +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1908 .loc 1 1167 7 is_stmt 1 view .LVU617 +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1909 .loc 1 1167 35 is_stmt 0 view .LVU618 + 1910 00ca 626A ldr r2, [r4, #36] +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1911 .loc 1 1167 11 view .LVU619 + 1912 00cc 2368 ldr r3, [r4] +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1913 .loc 1 1167 30 view .LVU620 + 1914 00ce 1278 ldrb r2, [r2] @ zero_extendqisi2 +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1915 .loc 1 1167 28 view .LVU621 + 1916 00d0 9A62 str r2, [r3, #40] +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1917 .loc 1 1170 7 is_stmt 1 view .LVU622 +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1918 .loc 1 1170 11 is_stmt 0 view .LVU623 + ARM GAS /tmp/ccbUHtu7.s page 164 + + + 1919 00d2 636A ldr r3, [r4, #36] +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1920 .loc 1 1170 21 view .LVU624 + 1921 00d4 0133 adds r3, r3, #1 + 1922 00d6 6362 str r3, [r4, #36] +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 1923 .loc 1 1172 7 is_stmt 1 view .LVU625 +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 1924 .loc 1 1172 11 is_stmt 0 view .LVU626 + 1925 00d8 638D ldrh r3, [r4, #42] + 1926 00da 9BB2 uxth r3, r3 +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 1927 .loc 1 1172 22 view .LVU627 + 1928 00dc 013B subs r3, r3, #1 + 1929 00de 9BB2 uxth r3, r3 + 1930 00e0 6385 strh r3, [r4, #42] @ movhi +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1931 .loc 1 1173 7 is_stmt 1 view .LVU628 +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1932 .loc 1 1173 11 is_stmt 0 view .LVU629 + 1933 00e2 238D ldrh r3, [r4, #40] +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1934 .loc 1 1173 21 view .LVU630 + 1935 00e4 013B subs r3, r3, #1 + 1936 00e6 9BB2 uxth r3, r3 + 1937 00e8 2385 strh r3, [r4, #40] @ movhi +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1938 .loc 1 1175 7 is_stmt 1 view .LVU631 +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1939 .loc 1 1175 16 is_stmt 0 view .LVU632 + 1940 00ea 628D ldrh r2, [r4, #42] + 1941 00ec 92B2 uxth r2, r2 +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1942 .loc 1 1175 10 view .LVU633 + 1943 00ee 002A cmp r2, #0 + 1944 00f0 E0D0 beq .L150 +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1945 .loc 1 1175 35 discriminator 1 view .LVU634 + 1946 00f2 002B cmp r3, #0 + 1947 00f4 DED1 bne .L150 +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1948 .loc 1 1178 9 is_stmt 1 view .LVU635 +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1949 .loc 1 1178 13 is_stmt 0 view .LVU636 + 1950 00f6 0095 str r5, [sp] + 1951 00f8 3346 mov r3, r6 + 1952 00fa 0022 movs r2, #0 + 1953 00fc 8021 movs r1, #128 + 1954 00fe 2046 mov r0, r4 + 1955 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 1956 .LVL127: +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1957 .loc 1 1178 12 view .LVU637 + 1958 0104 A0BB cbnz r0, .L158 +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1959 .loc 1 1183 9 is_stmt 1 view .LVU638 +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 165 + + + 1960 .loc 1 1183 17 is_stmt 0 view .LVU639 + 1961 0106 638D ldrh r3, [r4, #42] + 1962 0108 9BB2 uxth r3, r3 +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1963 .loc 1 1183 12 view .LVU640 + 1964 010a FF2B cmp r3, #255 + 1965 010c C6D9 bls .L152 +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 1966 .loc 1 1185 11 is_stmt 1 view .LVU641 +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 1967 .loc 1 1185 26 is_stmt 0 view .LVU642 + 1968 010e FF22 movs r2, #255 + 1969 0110 2285 strh r2, [r4, #40] @ movhi +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 1970 .loc 1 1186 11 is_stmt 1 view .LVU643 + 1971 0112 0023 movs r3, #0 + 1972 0114 0093 str r3, [sp] + 1973 0116 4FF08073 mov r3, #16777216 + 1974 011a 3946 mov r1, r7 + 1975 011c 2046 mov r0, r4 + 1976 011e FFF7FEFF bl I2C_TransferConfig + 1977 .LVL128: + 1978 0122 C7E7 b .L150 + 1979 .L161: +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1980 .loc 1 1200 5 view .LVU644 +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1981 .loc 1 1200 9 is_stmt 0 view .LVU645 + 1982 0124 2A46 mov r2, r5 + 1983 0126 3146 mov r1, r6 + 1984 0128 2046 mov r0, r4 + 1985 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout + 1986 .LVL129: +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 1987 .loc 1 1200 8 view .LVU646 + 1988 012e 08BB cbnz r0, .L159 +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1989 .loc 1 1206 5 is_stmt 1 view .LVU647 + 1990 0130 2368 ldr r3, [r4] + 1991 0132 2022 movs r2, #32 + 1992 0134 DA61 str r2, [r3, #28] +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 1993 .loc 1 1209 5 view .LVU648 + 1994 0136 2168 ldr r1, [r4] + 1995 0138 4B68 ldr r3, [r1, #4] + 1996 013a 23F0FF73 bic r3, r3, #33423360 + 1997 013e 23F48B33 bic r3, r3, #71168 + 1998 0142 23F4FF73 bic r3, r3, #510 + 1999 0146 23F00103 bic r3, r3, #1 + 2000 014a 4B60 str r3, [r1, #4] +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 2001 .loc 1 1211 5 view .LVU649 +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 2002 .loc 1 1211 17 is_stmt 0 view .LVU650 + 2003 014c 84F84120 strb r2, [r4, #65] +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2004 .loc 1 1212 5 is_stmt 1 view .LVU651 + ARM GAS /tmp/ccbUHtu7.s page 166 + + +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2005 .loc 1 1212 17 is_stmt 0 view .LVU652 + 2006 0150 0023 movs r3, #0 + 2007 0152 84F84230 strb r3, [r4, #66] +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2008 .loc 1 1215 5 is_stmt 1 view .LVU653 +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2009 .loc 1 1215 5 view .LVU654 + 2010 0156 84F84030 strb r3, [r4, #64] +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2011 .loc 1 1215 5 view .LVU655 +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2012 .loc 1 1217 5 view .LVU656 +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2013 .loc 1 1217 12 is_stmt 0 view .LVU657 + 2014 015a 00E0 b .L147 + 2015 .LVL130: + 2016 .L154: +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2017 .loc 1 1221 12 view .LVU658 + 2018 015c 0220 movs r0, #2 + 2019 .LVL131: + 2020 .L147: +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2021 .loc 1 1223 1 view .LVU659 + 2022 015e 02B0 add sp, sp, #8 + 2023 .LCFI21: + 2024 .cfi_remember_state + 2025 .cfi_def_cfa_offset 32 + 2026 @ sp needed + 2027 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} + 2028 .LVL132: + 2029 .L155: + 2030 .LCFI22: + 2031 .cfi_restore_state +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2032 .loc 1 1125 5 view .LVU660 + 2033 0164 0220 movs r0, #2 + 2034 .LVL133: +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2035 .loc 1 1125 5 view .LVU661 + 2036 0166 FAE7 b .L147 + 2037 .LVL134: + 2038 .L156: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2039 .loc 1 1132 14 view .LVU662 + 2040 0168 0120 movs r0, #1 + 2041 016a F8E7 b .L147 + 2042 .L157: +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2043 .loc 1 1164 16 view .LVU663 + 2044 016c 0120 movs r0, #1 + 2045 016e F6E7 b .L147 + 2046 .L158: +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2047 .loc 1 1180 18 view .LVU664 + 2048 0170 0120 movs r0, #1 + ARM GAS /tmp/ccbUHtu7.s page 167 + + + 2049 0172 F4E7 b .L147 + 2050 .L159: +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2051 .loc 1 1202 14 view .LVU665 + 2052 0174 0120 movs r0, #1 + 2053 0176 F2E7 b .L147 + 2054 .L163: + 2055 .align 2 + 2056 .L162: + 2057 0178 00200080 .word -2147475456 + 2058 .cfi_endproc + 2059 .LFE333: + 2061 .section .text.HAL_I2C_Master_Receive,"ax",%progbits + 2062 .align 1 + 2063 .global HAL_I2C_Master_Receive + 2064 .syntax unified + 2065 .thumb + 2066 .thumb_func + 2068 HAL_I2C_Master_Receive: + 2069 .LVL135: + 2070 .LFB334: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 2071 .loc 1 1238 1 is_stmt 1 view -0 + 2072 .cfi_startproc + 2073 @ args = 4, pretend = 0, frame = 0 + 2074 @ frame_needed = 0, uses_anonymous_args = 0 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 2075 .loc 1 1238 1 is_stmt 0 view .LVU667 + 2076 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} + 2077 .LCFI23: + 2078 .cfi_def_cfa_offset 32 + 2079 .cfi_offset 4, -32 + 2080 .cfi_offset 5, -28 + 2081 .cfi_offset 6, -24 + 2082 .cfi_offset 7, -20 + 2083 .cfi_offset 8, -16 + 2084 .cfi_offset 9, -12 + 2085 .cfi_offset 10, -8 + 2086 .cfi_offset 14, -4 + 2087 0004 82B0 sub sp, sp, #8 + 2088 .LCFI24: + 2089 .cfi_def_cfa_offset 40 + 2090 0006 0F46 mov r7, r1 + 2091 0008 0A9E ldr r6, [sp, #40] +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2092 .loc 1 1239 3 is_stmt 1 view .LVU668 +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2093 .loc 1 1241 3 view .LVU669 +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2094 .loc 1 1241 11 is_stmt 0 view .LVU670 + 2095 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 + 2096 .LVL136: +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2097 .loc 1 1241 11 view .LVU671 + 2098 000e C9B2 uxtb r1, r1 +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2099 .loc 1 1241 6 view .LVU672 + ARM GAS /tmp/ccbUHtu7.s page 168 + + + 2100 0010 2029 cmp r1, #32 + 2101 0012 40F0A280 bne .L172 + 2102 0016 0446 mov r4, r0 + 2103 0018 9046 mov r8, r2 + 2104 001a 9946 mov r9, r3 +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2105 .loc 1 1244 5 is_stmt 1 view .LVU673 +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2106 .loc 1 1244 5 view .LVU674 + 2107 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 2108 .LVL137: +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2109 .loc 1 1244 5 is_stmt 0 view .LVU675 + 2110 0020 012B cmp r3, #1 + 2111 0022 00F09E80 beq .L173 +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2112 .loc 1 1244 5 is_stmt 1 discriminator 2 view .LVU676 + 2113 0026 4FF0010A mov r10, #1 + 2114 002a 80F840A0 strb r10, [r0, #64] +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2115 .loc 1 1244 5 discriminator 2 view .LVU677 +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2116 .loc 1 1247 5 discriminator 2 view .LVU678 +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2117 .loc 1 1247 17 is_stmt 0 discriminator 2 view .LVU679 + 2118 002e FFF7FEFF bl HAL_GetTick + 2119 .LVL138: +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2120 .loc 1 1247 17 discriminator 2 view .LVU680 + 2121 0032 0546 mov r5, r0 + 2122 .LVL139: +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2123 .loc 1 1249 5 is_stmt 1 discriminator 2 view .LVU681 +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2124 .loc 1 1249 9 is_stmt 0 discriminator 2 view .LVU682 + 2125 0034 0090 str r0, [sp] + 2126 0036 1923 movs r3, #25 + 2127 0038 5246 mov r2, r10 + 2128 003a 4FF40041 mov r1, #32768 + 2129 003e 2046 mov r0, r4 + 2130 .LVL140: +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2131 .loc 1 1249 9 discriminator 2 view .LVU683 + 2132 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2133 .LVL141: +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2134 .loc 1 1249 8 discriminator 2 view .LVU684 + 2135 0044 0028 cmp r0, #0 + 2136 0046 40F08E80 bne .L174 +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 2137 .loc 1 1254 5 is_stmt 1 view .LVU685 +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 2138 .loc 1 1254 21 is_stmt 0 view .LVU686 + 2139 004a 2223 movs r3, #34 + 2140 004c 84F84130 strb r3, [r4, #65] +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 2141 .loc 1 1255 5 is_stmt 1 view .LVU687 + ARM GAS /tmp/ccbUHtu7.s page 169 + + +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 2142 .loc 1 1255 21 is_stmt 0 view .LVU688 + 2143 0050 1023 movs r3, #16 + 2144 0052 84F84230 strb r3, [r4, #66] +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2145 .loc 1 1256 5 is_stmt 1 view .LVU689 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2146 .loc 1 1256 21 is_stmt 0 view .LVU690 + 2147 0056 0023 movs r3, #0 + 2148 0058 6364 str r3, [r4, #68] +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 2149 .loc 1 1259 5 is_stmt 1 view .LVU691 +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 2150 .loc 1 1259 21 is_stmt 0 view .LVU692 + 2151 005a C4F82480 str r8, [r4, #36] +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2152 .loc 1 1260 5 is_stmt 1 view .LVU693 +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2153 .loc 1 1260 21 is_stmt 0 view .LVU694 + 2154 005e A4F82A90 strh r9, [r4, #42] @ movhi +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2155 .loc 1 1261 5 is_stmt 1 view .LVU695 +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2156 .loc 1 1261 21 is_stmt 0 view .LVU696 + 2157 0062 6363 str r3, [r4, #52] +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2158 .loc 1 1265 5 is_stmt 1 view .LVU697 +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2159 .loc 1 1265 13 is_stmt 0 view .LVU698 + 2160 0064 638D ldrh r3, [r4, #42] + 2161 0066 9BB2 uxth r3, r3 +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2162 .loc 1 1265 8 view .LVU699 + 2163 0068 FF2B cmp r3, #255 + 2164 006a 0AD9 bls .L166 +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 2165 .loc 1 1267 7 is_stmt 1 view .LVU700 +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 2166 .loc 1 1267 22 is_stmt 0 view .LVU701 + 2167 006c FF22 movs r2, #255 + 2168 006e 2285 strh r2, [r4, #40] @ movhi +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 2169 .loc 1 1268 7 is_stmt 1 view .LVU702 + 2170 0070 414B ldr r3, .L180 + 2171 0072 0093 str r3, [sp] + 2172 0074 4FF08073 mov r3, #16777216 + 2173 0078 3946 mov r1, r7 + 2174 007a 2046 mov r0, r4 + 2175 007c FFF7FEFF bl I2C_TransferConfig + 2176 .LVL142: + 2177 0080 18E0 b .L168 + 2178 .L166: +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 2179 .loc 1 1273 7 view .LVU703 +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 2180 .loc 1 1273 28 is_stmt 0 view .LVU704 + 2181 0082 628D ldrh r2, [r4, #42] + ARM GAS /tmp/ccbUHtu7.s page 170 + + + 2182 0084 92B2 uxth r2, r2 +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 2183 .loc 1 1273 22 view .LVU705 + 2184 0086 2285 strh r2, [r4, #40] @ movhi +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 2185 .loc 1 1274 7 is_stmt 1 view .LVU706 + 2186 0088 3B4B ldr r3, .L180 + 2187 008a 0093 str r3, [sp] + 2188 008c 4FF00073 mov r3, #33554432 + 2189 0090 D2B2 uxtb r2, r2 + 2190 0092 3946 mov r1, r7 + 2191 0094 2046 mov r0, r4 + 2192 0096 FFF7FEFF bl I2C_TransferConfig + 2193 .LVL143: + 2194 009a 0BE0 b .L168 + 2195 .L170: +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 2196 .loc 1 1311 11 view .LVU707 +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 2197 .loc 1 1311 32 is_stmt 0 view .LVU708 + 2198 009c 628D ldrh r2, [r4, #42] + 2199 009e 92B2 uxth r2, r2 +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 2200 .loc 1 1311 26 view .LVU709 + 2201 00a0 2285 strh r2, [r4, #40] @ movhi +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 2202 .loc 1 1312 11 is_stmt 1 view .LVU710 + 2203 00a2 0023 movs r3, #0 + 2204 00a4 0093 str r3, [sp] + 2205 00a6 4FF00073 mov r3, #33554432 + 2206 00aa D2B2 uxtb r2, r2 + 2207 00ac 3946 mov r1, r7 + 2208 00ae 2046 mov r0, r4 + 2209 00b0 FFF7FEFF bl I2C_TransferConfig + 2210 .LVL144: + 2211 .L168: +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2212 .loc 1 1278 28 view .LVU711 +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2213 .loc 1 1278 16 is_stmt 0 view .LVU712 + 2214 00b4 638D ldrh r3, [r4, #42] + 2215 00b6 9BB2 uxth r3, r3 +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2216 .loc 1 1278 28 view .LVU713 + 2217 00b8 002B cmp r3, #0 + 2218 00ba 32D0 beq .L179 +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2219 .loc 1 1281 7 is_stmt 1 view .LVU714 +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2220 .loc 1 1281 11 is_stmt 0 view .LVU715 + 2221 00bc 2A46 mov r2, r5 + 2222 00be 3146 mov r1, r6 + 2223 00c0 2046 mov r0, r4 + 2224 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout + 2225 .LVL145: +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2226 .loc 1 1281 10 view .LVU716 + ARM GAS /tmp/ccbUHtu7.s page 171 + + + 2227 00c6 0028 cmp r0, #0 + 2228 00c8 4FD1 bne .L175 +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2229 .loc 1 1287 7 is_stmt 1 view .LVU717 +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2230 .loc 1 1287 38 is_stmt 0 view .LVU718 + 2231 00ca 2368 ldr r3, [r4] +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2232 .loc 1 1287 48 view .LVU719 + 2233 00cc 5A6A ldr r2, [r3, #36] +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2234 .loc 1 1287 12 view .LVU720 + 2235 00ce 636A ldr r3, [r4, #36] +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2236 .loc 1 1287 23 view .LVU721 + 2237 00d0 1A70 strb r2, [r3] +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2238 .loc 1 1290 7 is_stmt 1 view .LVU722 +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2239 .loc 1 1290 11 is_stmt 0 view .LVU723 + 2240 00d2 636A ldr r3, [r4, #36] +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2241 .loc 1 1290 21 view .LVU724 + 2242 00d4 0133 adds r3, r3, #1 + 2243 00d6 6362 str r3, [r4, #36] +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 2244 .loc 1 1292 7 is_stmt 1 view .LVU725 +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 2245 .loc 1 1292 11 is_stmt 0 view .LVU726 + 2246 00d8 228D ldrh r2, [r4, #40] +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 2247 .loc 1 1292 21 view .LVU727 + 2248 00da 013A subs r2, r2, #1 + 2249 00dc 92B2 uxth r2, r2 + 2250 00de 2285 strh r2, [r4, #40] @ movhi +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2251 .loc 1 1293 7 is_stmt 1 view .LVU728 +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2252 .loc 1 1293 11 is_stmt 0 view .LVU729 + 2253 00e0 638D ldrh r3, [r4, #42] + 2254 00e2 9BB2 uxth r3, r3 +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2255 .loc 1 1293 22 view .LVU730 + 2256 00e4 013B subs r3, r3, #1 + 2257 00e6 9BB2 uxth r3, r3 + 2258 00e8 6385 strh r3, [r4, #42] @ movhi +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2259 .loc 1 1295 7 is_stmt 1 view .LVU731 +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2260 .loc 1 1295 16 is_stmt 0 view .LVU732 + 2261 00ea 638D ldrh r3, [r4, #42] + 2262 00ec 9BB2 uxth r3, r3 +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2263 .loc 1 1295 10 view .LVU733 + 2264 00ee 002B cmp r3, #0 + 2265 00f0 E0D0 beq .L168 +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 172 + + + 2266 .loc 1 1295 35 discriminator 1 view .LVU734 + 2267 00f2 002A cmp r2, #0 + 2268 00f4 DED1 bne .L168 +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2269 .loc 1 1298 9 is_stmt 1 view .LVU735 +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2270 .loc 1 1298 13 is_stmt 0 view .LVU736 + 2271 00f6 0095 str r5, [sp] + 2272 00f8 3346 mov r3, r6 + 2273 00fa 8021 movs r1, #128 + 2274 00fc 2046 mov r0, r4 + 2275 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2276 .LVL146: +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2277 .loc 1 1298 12 view .LVU737 + 2278 0102 A0BB cbnz r0, .L176 +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2279 .loc 1 1303 9 is_stmt 1 view .LVU738 +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2280 .loc 1 1303 17 is_stmt 0 view .LVU739 + 2281 0104 638D ldrh r3, [r4, #42] + 2282 0106 9BB2 uxth r3, r3 +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2283 .loc 1 1303 12 view .LVU740 + 2284 0108 FF2B cmp r3, #255 + 2285 010a C7D9 bls .L170 +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 2286 .loc 1 1305 11 is_stmt 1 view .LVU741 +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 2287 .loc 1 1305 26 is_stmt 0 view .LVU742 + 2288 010c FF22 movs r2, #255 + 2289 010e 2285 strh r2, [r4, #40] @ movhi +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 2290 .loc 1 1306 11 is_stmt 1 view .LVU743 + 2291 0110 0023 movs r3, #0 + 2292 0112 0093 str r3, [sp] + 2293 0114 4FF08073 mov r3, #16777216 + 2294 0118 3946 mov r1, r7 + 2295 011a 2046 mov r0, r4 + 2296 011c FFF7FEFF bl I2C_TransferConfig + 2297 .LVL147: + 2298 0120 C8E7 b .L168 + 2299 .L179: +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2300 .loc 1 1320 5 view .LVU744 +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2301 .loc 1 1320 9 is_stmt 0 view .LVU745 + 2302 0122 2A46 mov r2, r5 + 2303 0124 3146 mov r1, r6 + 2304 0126 2046 mov r0, r4 + 2305 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout + 2306 .LVL148: +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2307 .loc 1 1320 8 view .LVU746 + 2308 012c 08BB cbnz r0, .L177 +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2309 .loc 1 1326 5 is_stmt 1 view .LVU747 + ARM GAS /tmp/ccbUHtu7.s page 173 + + + 2310 012e 2368 ldr r3, [r4] + 2311 0130 2022 movs r2, #32 + 2312 0132 DA61 str r2, [r3, #28] +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2313 .loc 1 1329 5 view .LVU748 + 2314 0134 2168 ldr r1, [r4] + 2315 0136 4B68 ldr r3, [r1, #4] + 2316 0138 23F0FF73 bic r3, r3, #33423360 + 2317 013c 23F48B33 bic r3, r3, #71168 + 2318 0140 23F4FF73 bic r3, r3, #510 + 2319 0144 23F00103 bic r3, r3, #1 + 2320 0148 4B60 str r3, [r1, #4] +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 2321 .loc 1 1331 5 view .LVU749 +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 2322 .loc 1 1331 17 is_stmt 0 view .LVU750 + 2323 014a 84F84120 strb r2, [r4, #65] +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2324 .loc 1 1332 5 is_stmt 1 view .LVU751 +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2325 .loc 1 1332 17 is_stmt 0 view .LVU752 + 2326 014e 0023 movs r3, #0 + 2327 0150 84F84230 strb r3, [r4, #66] +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2328 .loc 1 1335 5 is_stmt 1 view .LVU753 +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2329 .loc 1 1335 5 view .LVU754 + 2330 0154 84F84030 strb r3, [r4, #64] +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2331 .loc 1 1335 5 view .LVU755 +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2332 .loc 1 1337 5 view .LVU756 +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2333 .loc 1 1337 12 is_stmt 0 view .LVU757 + 2334 0158 00E0 b .L165 + 2335 .LVL149: + 2336 .L172: +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2337 .loc 1 1341 12 view .LVU758 + 2338 015a 0220 movs r0, #2 + 2339 .LVL150: + 2340 .L165: +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2341 .loc 1 1343 1 view .LVU759 + 2342 015c 02B0 add sp, sp, #8 + 2343 .LCFI25: + 2344 .cfi_remember_state + 2345 .cfi_def_cfa_offset 32 + 2346 @ sp needed + 2347 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} + 2348 .LVL151: + 2349 .L173: + 2350 .LCFI26: + 2351 .cfi_restore_state +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2352 .loc 1 1244 5 view .LVU760 + 2353 0162 0220 movs r0, #2 + ARM GAS /tmp/ccbUHtu7.s page 174 + + + 2354 .LVL152: +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2355 .loc 1 1244 5 view .LVU761 + 2356 0164 FAE7 b .L165 + 2357 .LVL153: + 2358 .L174: +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2359 .loc 1 1251 14 view .LVU762 + 2360 0166 0120 movs r0, #1 + 2361 0168 F8E7 b .L165 + 2362 .L175: +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2363 .loc 1 1283 16 view .LVU763 + 2364 016a 0120 movs r0, #1 + 2365 016c F6E7 b .L165 + 2366 .L176: +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2367 .loc 1 1300 18 view .LVU764 + 2368 016e 0120 movs r0, #1 + 2369 0170 F4E7 b .L165 + 2370 .L177: +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2371 .loc 1 1322 14 view .LVU765 + 2372 0172 0120 movs r0, #1 + 2373 0174 F2E7 b .L165 + 2374 .L181: + 2375 0176 00BF .align 2 + 2376 .L180: + 2377 0178 00240080 .word -2147474432 + 2378 .cfi_endproc + 2379 .LFE334: + 2381 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits + 2382 .align 1 + 2383 .global HAL_I2C_Slave_Transmit + 2384 .syntax unified + 2385 .thumb + 2386 .thumb_func + 2388 HAL_I2C_Slave_Transmit: + 2389 .LVL154: + 2390 .LFB335: +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 2391 .loc 1 1356 1 is_stmt 1 view -0 + 2392 .cfi_startproc + 2393 @ args = 0, pretend = 0, frame = 0 + 2394 @ frame_needed = 0, uses_anonymous_args = 0 +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 2395 .loc 1 1356 1 is_stmt 0 view .LVU767 + 2396 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 2397 .LCFI27: + 2398 .cfi_def_cfa_offset 24 + 2399 .cfi_offset 4, -24 + 2400 .cfi_offset 5, -20 + 2401 .cfi_offset 6, -16 + 2402 .cfi_offset 7, -12 + 2403 .cfi_offset 8, -8 + 2404 .cfi_offset 14, -4 + 2405 0004 82B0 sub sp, sp, #8 + ARM GAS /tmp/ccbUHtu7.s page 175 + + + 2406 .LCFI28: + 2407 .cfi_def_cfa_offset 32 + 2408 0006 1D46 mov r5, r3 +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2409 .loc 1 1357 3 is_stmt 1 view .LVU768 +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2410 .loc 1 1359 3 view .LVU769 +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2411 .loc 1 1359 11 is_stmt 0 view .LVU770 + 2412 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 2413 .LVL155: +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2414 .loc 1 1359 11 view .LVU771 + 2415 000c DBB2 uxtb r3, r3 +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2416 .loc 1 1359 6 view .LVU772 + 2417 000e 202B cmp r3, #32 + 2418 0010 40F0C880 bne .L195 + 2419 0014 0446 mov r4, r0 + 2420 0016 0F46 mov r7, r1 + 2421 0018 9046 mov r8, r2 +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2422 .loc 1 1361 5 is_stmt 1 view .LVU773 +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2423 .loc 1 1361 8 is_stmt 0 view .LVU774 + 2424 001a 0029 cmp r1, #0 + 2425 001c 52D0 beq .L184 +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2426 .loc 1 1361 25 discriminator 1 view .LVU775 + 2427 001e 002A cmp r2, #0 + 2428 0020 50D0 beq .L184 +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2429 .loc 1 1367 5 is_stmt 1 view .LVU776 +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2430 .loc 1 1367 5 view .LVU777 + 2431 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 2432 0026 012B cmp r3, #1 + 2433 0028 00F0C080 beq .L196 +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2434 .loc 1 1367 5 discriminator 2 view .LVU778 + 2435 002c 0123 movs r3, #1 + 2436 002e 80F84030 strb r3, [r0, #64] +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2437 .loc 1 1367 5 discriminator 2 view .LVU779 +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2438 .loc 1 1370 5 discriminator 2 view .LVU780 +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2439 .loc 1 1370 17 is_stmt 0 discriminator 2 view .LVU781 + 2440 0032 FFF7FEFF bl HAL_GetTick + 2441 .LVL156: +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2442 .loc 1 1370 17 discriminator 2 view .LVU782 + 2443 0036 0646 mov r6, r0 + 2444 .LVL157: +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 2445 .loc 1 1372 5 is_stmt 1 discriminator 2 view .LVU783 +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + ARM GAS /tmp/ccbUHtu7.s page 176 + + + 2446 .loc 1 1372 21 is_stmt 0 discriminator 2 view .LVU784 + 2447 0038 2123 movs r3, #33 + 2448 003a 84F84130 strb r3, [r4, #65] +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 2449 .loc 1 1373 5 is_stmt 1 discriminator 2 view .LVU785 +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 2450 .loc 1 1373 21 is_stmt 0 discriminator 2 view .LVU786 + 2451 003e 2023 movs r3, #32 + 2452 0040 84F84230 strb r3, [r4, #66] +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2453 .loc 1 1374 5 is_stmt 1 discriminator 2 view .LVU787 +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2454 .loc 1 1374 21 is_stmt 0 discriminator 2 view .LVU788 + 2455 0044 0022 movs r2, #0 + 2456 0046 6264 str r2, [r4, #68] +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 2457 .loc 1 1377 5 is_stmt 1 discriminator 2 view .LVU789 +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 2458 .loc 1 1377 21 is_stmt 0 discriminator 2 view .LVU790 + 2459 0048 6762 str r7, [r4, #36] +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2460 .loc 1 1378 5 is_stmt 1 discriminator 2 view .LVU791 +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2461 .loc 1 1378 21 is_stmt 0 discriminator 2 view .LVU792 + 2462 004a A4F82A80 strh r8, [r4, #42] @ movhi +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2463 .loc 1 1379 5 is_stmt 1 discriminator 2 view .LVU793 +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2464 .loc 1 1379 21 is_stmt 0 discriminator 2 view .LVU794 + 2465 004e 6263 str r2, [r4, #52] +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2466 .loc 1 1382 5 is_stmt 1 discriminator 2 view .LVU795 +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2467 .loc 1 1382 9 is_stmt 0 discriminator 2 view .LVU796 + 2468 0050 2168 ldr r1, [r4] +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2469 .loc 1 1382 19 discriminator 2 view .LVU797 + 2470 0052 4B68 ldr r3, [r1, #4] +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2471 .loc 1 1382 25 discriminator 2 view .LVU798 + 2472 0054 23F40043 bic r3, r3, #32768 + 2473 0058 4B60 str r3, [r1, #4] +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2474 .loc 1 1385 5 is_stmt 1 discriminator 2 view .LVU799 +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2475 .loc 1 1385 9 is_stmt 0 discriminator 2 view .LVU800 + 2476 005a 0090 str r0, [sp] + 2477 005c 2B46 mov r3, r5 + 2478 005e 0821 movs r1, #8 + 2479 0060 2046 mov r0, r4 + 2480 .LVL158: +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2481 .loc 1 1385 9 discriminator 2 view .LVU801 + 2482 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2483 .LVL159: +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2484 .loc 1 1385 8 discriminator 2 view .LVU802 + ARM GAS /tmp/ccbUHtu7.s page 177 + + + 2485 0066 0028 cmp r0, #0 + 2486 0068 31D1 bne .L198 +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2487 .loc 1 1393 5 is_stmt 1 view .LVU803 + 2488 006a 2368 ldr r3, [r4] + 2489 006c 0822 movs r2, #8 + 2490 006e DA61 str r2, [r3, #28] +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2491 .loc 1 1396 5 view .LVU804 +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2492 .loc 1 1396 19 is_stmt 0 view .LVU805 + 2493 0070 E368 ldr r3, [r4, #12] +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2494 .loc 1 1396 8 view .LVU806 + 2495 0072 022B cmp r3, #2 + 2496 0074 32D0 beq .L199 + 2497 .L187: +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2498 .loc 1 1411 5 is_stmt 1 view .LVU807 +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2499 .loc 1 1411 9 is_stmt 0 view .LVU808 + 2500 0076 0096 str r6, [sp] + 2501 0078 2B46 mov r3, r5 + 2502 007a 0022 movs r2, #0 + 2503 007c 4FF48031 mov r1, #65536 + 2504 0080 2046 mov r0, r4 + 2505 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2506 .LVL160: +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2507 .loc 1 1411 8 view .LVU809 + 2508 0086 0028 cmp r0, #0 + 2509 0088 3BD1 bne .L200 + 2510 .L189: +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2511 .loc 1 1418 28 is_stmt 1 view .LVU810 +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2512 .loc 1 1418 16 is_stmt 0 view .LVU811 + 2513 008a 638D ldrh r3, [r4, #42] + 2514 008c 9BB2 uxth r3, r3 +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2515 .loc 1 1418 28 view .LVU812 + 2516 008e 002B cmp r3, #0 + 2517 0090 45D0 beq .L201 +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2518 .loc 1 1421 7 is_stmt 1 view .LVU813 +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2519 .loc 1 1421 11 is_stmt 0 view .LVU814 + 2520 0092 3246 mov r2, r6 + 2521 0094 2946 mov r1, r5 + 2522 0096 2046 mov r0, r4 + 2523 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 2524 .LVL161: +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2525 .loc 1 1421 10 view .LVU815 + 2526 009c 0028 cmp r0, #0 + 2527 009e 37D1 bne .L202 +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 178 + + + 2528 .loc 1 1429 7 is_stmt 1 view .LVU816 +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2529 .loc 1 1429 35 is_stmt 0 view .LVU817 + 2530 00a0 626A ldr r2, [r4, #36] +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2531 .loc 1 1429 11 view .LVU818 + 2532 00a2 2368 ldr r3, [r4] +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2533 .loc 1 1429 30 view .LVU819 + 2534 00a4 1278 ldrb r2, [r2] @ zero_extendqisi2 +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2535 .loc 1 1429 28 view .LVU820 + 2536 00a6 9A62 str r2, [r3, #40] +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2537 .loc 1 1432 7 is_stmt 1 view .LVU821 +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2538 .loc 1 1432 11 is_stmt 0 view .LVU822 + 2539 00a8 636A ldr r3, [r4, #36] +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2540 .loc 1 1432 21 view .LVU823 + 2541 00aa 0133 adds r3, r3, #1 + 2542 00ac 6362 str r3, [r4, #36] +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2543 .loc 1 1434 7 is_stmt 1 view .LVU824 +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2544 .loc 1 1434 11 is_stmt 0 view .LVU825 + 2545 00ae B4F82AC0 ldrh ip, [r4, #42] + 2546 00b2 1FFA8CFC uxth ip, ip +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2547 .loc 1 1434 22 view .LVU826 + 2548 00b6 0CF1FF3C add ip, ip, #-1 + 2549 00ba 1FFA8CFC uxth ip, ip + 2550 00be A4F82AC0 strh ip, [r4, #42] @ movhi + 2551 00c2 E2E7 b .L189 + 2552 .LVL162: + 2553 .L184: +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2554 .loc 1 1363 7 is_stmt 1 view .LVU827 +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2555 .loc 1 1363 23 is_stmt 0 view .LVU828 + 2556 00c4 4FF40073 mov r3, #512 + 2557 00c8 6364 str r3, [r4, #68] +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2558 .loc 1 1364 7 is_stmt 1 view .LVU829 +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2559 .loc 1 1364 15 is_stmt 0 view .LVU830 + 2560 00ca 0120 movs r0, #1 + 2561 .LVL163: +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2562 .loc 1 1364 15 view .LVU831 + 2563 00cc 6BE0 b .L183 + 2564 .LVL164: + 2565 .L198: +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2566 .loc 1 1388 7 is_stmt 1 view .LVU832 +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2567 .loc 1 1388 11 is_stmt 0 view .LVU833 + ARM GAS /tmp/ccbUHtu7.s page 179 + + + 2568 00ce 2268 ldr r2, [r4] +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2569 .loc 1 1388 21 view .LVU834 + 2570 00d0 5368 ldr r3, [r2, #4] +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2571 .loc 1 1388 27 view .LVU835 + 2572 00d2 43F40043 orr r3, r3, #32768 + 2573 00d6 5360 str r3, [r2, #4] +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2574 .loc 1 1389 7 is_stmt 1 view .LVU836 +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2575 .loc 1 1389 14 is_stmt 0 view .LVU837 + 2576 00d8 0120 movs r0, #1 + 2577 00da 64E0 b .L183 + 2578 .L199: +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2579 .loc 1 1399 7 is_stmt 1 view .LVU838 +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2580 .loc 1 1399 11 is_stmt 0 view .LVU839 + 2581 00dc 0096 str r6, [sp] + 2582 00de 2B46 mov r3, r5 + 2583 00e0 0022 movs r2, #0 + 2584 00e2 0821 movs r1, #8 + 2585 00e4 2046 mov r0, r4 + 2586 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2587 .LVL165: +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2588 .loc 1 1399 10 view .LVU840 + 2589 00ea 18B9 cbnz r0, .L203 +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2590 .loc 1 1407 7 is_stmt 1 view .LVU841 + 2591 00ec 2368 ldr r3, [r4] + 2592 00ee 0822 movs r2, #8 + 2593 00f0 DA61 str r2, [r3, #28] + 2594 00f2 C0E7 b .L187 + 2595 .L203: +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2596 .loc 1 1402 9 view .LVU842 +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2597 .loc 1 1402 13 is_stmt 0 view .LVU843 + 2598 00f4 2268 ldr r2, [r4] +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2599 .loc 1 1402 23 view .LVU844 + 2600 00f6 5368 ldr r3, [r2, #4] +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2601 .loc 1 1402 29 view .LVU845 + 2602 00f8 43F40043 orr r3, r3, #32768 + 2603 00fc 5360 str r3, [r2, #4] +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2604 .loc 1 1403 9 is_stmt 1 view .LVU846 +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2605 .loc 1 1403 16 is_stmt 0 view .LVU847 + 2606 00fe 0120 movs r0, #1 + 2607 0100 51E0 b .L183 + 2608 .L200: +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2609 .loc 1 1414 7 is_stmt 1 view .LVU848 + ARM GAS /tmp/ccbUHtu7.s page 180 + + +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2610 .loc 1 1414 11 is_stmt 0 view .LVU849 + 2611 0102 2268 ldr r2, [r4] +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2612 .loc 1 1414 21 view .LVU850 + 2613 0104 5368 ldr r3, [r2, #4] +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2614 .loc 1 1414 27 view .LVU851 + 2615 0106 43F40043 orr r3, r3, #32768 + 2616 010a 5360 str r3, [r2, #4] +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2617 .loc 1 1415 7 is_stmt 1 view .LVU852 +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2618 .loc 1 1415 14 is_stmt 0 view .LVU853 + 2619 010c 0120 movs r0, #1 + 2620 010e 4AE0 b .L183 + 2621 .L202: +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2622 .loc 1 1424 9 is_stmt 1 view .LVU854 +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2623 .loc 1 1424 13 is_stmt 0 view .LVU855 + 2624 0110 2268 ldr r2, [r4] +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2625 .loc 1 1424 23 view .LVU856 + 2626 0112 5368 ldr r3, [r2, #4] +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2627 .loc 1 1424 29 view .LVU857 + 2628 0114 43F40043 orr r3, r3, #32768 + 2629 0118 5360 str r3, [r2, #4] +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2630 .loc 1 1425 9 is_stmt 1 view .LVU858 +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2631 .loc 1 1425 16 is_stmt 0 view .LVU859 + 2632 011a 0120 movs r0, #1 + 2633 011c 43E0 b .L183 + 2634 .L201: +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2635 .loc 1 1438 5 is_stmt 1 view .LVU860 +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2636 .loc 1 1438 9 is_stmt 0 view .LVU861 + 2637 011e 0096 str r6, [sp] + 2638 0120 2B46 mov r3, r5 + 2639 0122 0022 movs r2, #0 + 2640 0124 1021 movs r1, #16 + 2641 0126 2046 mov r0, r4 + 2642 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2643 .LVL166: +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2644 .loc 1 1438 8 view .LVU862 + 2645 012c 30B1 cbz r0, .L192 +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2646 .loc 1 1441 7 is_stmt 1 view .LVU863 +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2647 .loc 1 1441 11 is_stmt 0 view .LVU864 + 2648 012e 2268 ldr r2, [r4] +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2649 .loc 1 1441 21 view .LVU865 + ARM GAS /tmp/ccbUHtu7.s page 181 + + + 2650 0130 5368 ldr r3, [r2, #4] +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2651 .loc 1 1441 27 view .LVU866 + 2652 0132 43F40043 orr r3, r3, #32768 + 2653 0136 5360 str r3, [r2, #4] +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2654 .loc 1 1442 7 is_stmt 1 view .LVU867 +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2655 .loc 1 1442 14 is_stmt 0 view .LVU868 + 2656 0138 0120 movs r0, #1 + 2657 013a 34E0 b .L183 + 2658 .L192: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2659 .loc 1 1446 5 is_stmt 1 view .LVU869 + 2660 013c 2046 mov r0, r4 + 2661 013e FFF7FEFF bl I2C_Flush_TXDR + 2662 .LVL167: +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2663 .loc 1 1449 5 view .LVU870 + 2664 0142 2368 ldr r3, [r4] + 2665 0144 1022 movs r2, #16 + 2666 0146 DA61 str r2, [r3, #28] +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2667 .loc 1 1452 5 view .LVU871 +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2668 .loc 1 1452 9 is_stmt 0 view .LVU872 + 2669 0148 3246 mov r2, r6 + 2670 014a 2946 mov r1, r5 + 2671 014c 2046 mov r0, r4 + 2672 014e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout + 2673 .LVL168: +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2674 .loc 1 1452 8 view .LVU873 + 2675 0152 30B1 cbz r0, .L193 +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2676 .loc 1 1455 7 is_stmt 1 view .LVU874 +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2677 .loc 1 1455 11 is_stmt 0 view .LVU875 + 2678 0154 2268 ldr r2, [r4] +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2679 .loc 1 1455 21 view .LVU876 + 2680 0156 5368 ldr r3, [r2, #4] +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2681 .loc 1 1455 27 view .LVU877 + 2682 0158 43F40043 orr r3, r3, #32768 + 2683 015c 5360 str r3, [r2, #4] +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2684 .loc 1 1457 7 is_stmt 1 view .LVU878 +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2685 .loc 1 1457 14 is_stmt 0 view .LVU879 + 2686 015e 0120 movs r0, #1 + 2687 0160 21E0 b .L183 + 2688 .L193: +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2689 .loc 1 1461 5 is_stmt 1 view .LVU880 + 2690 0162 2368 ldr r3, [r4] + 2691 0164 2022 movs r2, #32 + ARM GAS /tmp/ccbUHtu7.s page 182 + + + 2692 0166 DA61 str r2, [r3, #28] +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2693 .loc 1 1464 5 view .LVU881 +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2694 .loc 1 1464 9 is_stmt 0 view .LVU882 + 2695 0168 0096 str r6, [sp] + 2696 016a 2B46 mov r3, r5 + 2697 016c 0122 movs r2, #1 + 2698 016e 4FF40041 mov r1, #32768 + 2699 0172 2046 mov r0, r4 + 2700 0174 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2701 .LVL169: +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2702 .loc 1 1464 8 view .LVU883 + 2703 0178 30B1 cbz r0, .L194 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2704 .loc 1 1467 7 is_stmt 1 view .LVU884 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2705 .loc 1 1467 11 is_stmt 0 view .LVU885 + 2706 017a 2268 ldr r2, [r4] +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2707 .loc 1 1467 21 view .LVU886 + 2708 017c 5368 ldr r3, [r2, #4] +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2709 .loc 1 1467 27 view .LVU887 + 2710 017e 43F40043 orr r3, r3, #32768 + 2711 0182 5360 str r3, [r2, #4] +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2712 .loc 1 1468 7 is_stmt 1 view .LVU888 +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2713 .loc 1 1468 14 is_stmt 0 view .LVU889 + 2714 0184 0120 movs r0, #1 + 2715 0186 0EE0 b .L183 + 2716 .L194: +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2717 .loc 1 1472 5 is_stmt 1 view .LVU890 +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2718 .loc 1 1472 9 is_stmt 0 view .LVU891 + 2719 0188 2268 ldr r2, [r4] +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2720 .loc 1 1472 19 view .LVU892 + 2721 018a 5368 ldr r3, [r2, #4] +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2722 .loc 1 1472 25 view .LVU893 + 2723 018c 43F40043 orr r3, r3, #32768 + 2724 0190 5360 str r3, [r2, #4] +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 2725 .loc 1 1474 5 is_stmt 1 view .LVU894 +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 2726 .loc 1 1474 17 is_stmt 0 view .LVU895 + 2727 0192 2023 movs r3, #32 + 2728 0194 84F84130 strb r3, [r4, #65] +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2729 .loc 1 1475 5 is_stmt 1 view .LVU896 +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2730 .loc 1 1475 17 is_stmt 0 view .LVU897 + 2731 0198 0023 movs r3, #0 + ARM GAS /tmp/ccbUHtu7.s page 183 + + + 2732 019a 84F84230 strb r3, [r4, #66] +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2733 .loc 1 1478 5 is_stmt 1 view .LVU898 +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2734 .loc 1 1478 5 view .LVU899 + 2735 019e 84F84030 strb r3, [r4, #64] +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2736 .loc 1 1478 5 view .LVU900 +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2737 .loc 1 1480 5 view .LVU901 +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2738 .loc 1 1480 12 is_stmt 0 view .LVU902 + 2739 01a2 00E0 b .L183 + 2740 .LVL170: + 2741 .L195: +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2742 .loc 1 1484 12 view .LVU903 + 2743 01a4 0220 movs r0, #2 + 2744 .LVL171: + 2745 .L183: +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2746 .loc 1 1486 1 view .LVU904 + 2747 01a6 02B0 add sp, sp, #8 + 2748 .LCFI29: + 2749 .cfi_remember_state + 2750 .cfi_def_cfa_offset 24 + 2751 @ sp needed + 2752 01a8 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 2753 .LVL172: + 2754 .L196: + 2755 .LCFI30: + 2756 .cfi_restore_state +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2757 .loc 1 1367 5 view .LVU905 + 2758 01ac 0220 movs r0, #2 + 2759 .LVL173: +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2760 .loc 1 1367 5 view .LVU906 + 2761 01ae FAE7 b .L183 + 2762 .cfi_endproc + 2763 .LFE335: + 2765 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits + 2766 .align 1 + 2767 .global HAL_I2C_Slave_Receive + 2768 .syntax unified + 2769 .thumb + 2770 .thumb_func + 2772 HAL_I2C_Slave_Receive: + 2773 .LVL174: + 2774 .LFB336: +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 2775 .loc 1 1499 1 is_stmt 1 view -0 + 2776 .cfi_startproc + 2777 @ args = 0, pretend = 0, frame = 0 + 2778 @ frame_needed = 0, uses_anonymous_args = 0 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 2779 .loc 1 1499 1 is_stmt 0 view .LVU908 + ARM GAS /tmp/ccbUHtu7.s page 184 + + + 2780 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 2781 .LCFI31: + 2782 .cfi_def_cfa_offset 24 + 2783 .cfi_offset 4, -24 + 2784 .cfi_offset 5, -20 + 2785 .cfi_offset 6, -16 + 2786 .cfi_offset 7, -12 + 2787 .cfi_offset 8, -8 + 2788 .cfi_offset 14, -4 + 2789 0004 82B0 sub sp, sp, #8 + 2790 .LCFI32: + 2791 .cfi_def_cfa_offset 32 + 2792 0006 1D46 mov r5, r3 +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2793 .loc 1 1500 3 is_stmt 1 view .LVU909 +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2794 .loc 1 1502 3 view .LVU910 +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2795 .loc 1 1502 11 is_stmt 0 view .LVU911 + 2796 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 2797 .LVL175: +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2798 .loc 1 1502 11 view .LVU912 + 2799 000c DBB2 uxtb r3, r3 +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2800 .loc 1 1502 6 view .LVU913 + 2801 000e 202B cmp r3, #32 + 2802 0010 40F0AF80 bne .L215 + 2803 0014 0446 mov r4, r0 + 2804 0016 0E46 mov r6, r1 + 2805 0018 9046 mov r8, r2 +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2806 .loc 1 1504 5 is_stmt 1 view .LVU914 +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2807 .loc 1 1504 8 is_stmt 0 view .LVU915 + 2808 001a 61B3 cbz r1, .L206 +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2809 .loc 1 1504 25 discriminator 1 view .LVU916 + 2810 001c 5AB3 cbz r2, .L206 +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2811 .loc 1 1510 5 is_stmt 1 view .LVU917 +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2812 .loc 1 1510 5 view .LVU918 + 2813 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 2814 0022 012B cmp r3, #1 + 2815 0024 00F0A980 beq .L216 +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2816 .loc 1 1510 5 discriminator 2 view .LVU919 + 2817 0028 0123 movs r3, #1 + 2818 002a 80F84030 strb r3, [r0, #64] +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2819 .loc 1 1510 5 discriminator 2 view .LVU920 +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2820 .loc 1 1513 5 discriminator 2 view .LVU921 +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2821 .loc 1 1513 17 is_stmt 0 discriminator 2 view .LVU922 + 2822 002e FFF7FEFF bl HAL_GetTick + ARM GAS /tmp/ccbUHtu7.s page 185 + + + 2823 .LVL176: +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2824 .loc 1 1513 17 discriminator 2 view .LVU923 + 2825 0032 0746 mov r7, r0 + 2826 .LVL177: +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 2827 .loc 1 1515 5 is_stmt 1 discriminator 2 view .LVU924 +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 2828 .loc 1 1515 21 is_stmt 0 discriminator 2 view .LVU925 + 2829 0034 2223 movs r3, #34 + 2830 0036 84F84130 strb r3, [r4, #65] +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 2831 .loc 1 1516 5 is_stmt 1 discriminator 2 view .LVU926 +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 2832 .loc 1 1516 21 is_stmt 0 discriminator 2 view .LVU927 + 2833 003a 2023 movs r3, #32 + 2834 003c 84F84230 strb r3, [r4, #66] +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2835 .loc 1 1517 5 is_stmt 1 discriminator 2 view .LVU928 +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2836 .loc 1 1517 21 is_stmt 0 discriminator 2 view .LVU929 + 2837 0040 0022 movs r2, #0 + 2838 0042 6264 str r2, [r4, #68] +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 2839 .loc 1 1520 5 is_stmt 1 discriminator 2 view .LVU930 +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 2840 .loc 1 1520 21 is_stmt 0 discriminator 2 view .LVU931 + 2841 0044 6662 str r6, [r4, #36] +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 2842 .loc 1 1521 5 is_stmt 1 discriminator 2 view .LVU932 +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 2843 .loc 1 1521 21 is_stmt 0 discriminator 2 view .LVU933 + 2844 0046 A4F82A80 strh r8, [r4, #42] @ movhi +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2845 .loc 1 1522 5 is_stmt 1 discriminator 2 view .LVU934 +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2846 .loc 1 1522 26 is_stmt 0 discriminator 2 view .LVU935 + 2847 004a 638D ldrh r3, [r4, #42] +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 2848 .loc 1 1522 20 discriminator 2 view .LVU936 + 2849 004c 2385 strh r3, [r4, #40] @ movhi +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2850 .loc 1 1523 5 is_stmt 1 discriminator 2 view .LVU937 +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2851 .loc 1 1523 21 is_stmt 0 discriminator 2 view .LVU938 + 2852 004e 6263 str r2, [r4, #52] +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2853 .loc 1 1526 5 is_stmt 1 discriminator 2 view .LVU939 +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2854 .loc 1 1526 9 is_stmt 0 discriminator 2 view .LVU940 + 2855 0050 2168 ldr r1, [r4] +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2856 .loc 1 1526 19 discriminator 2 view .LVU941 + 2857 0052 4B68 ldr r3, [r1, #4] +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2858 .loc 1 1526 25 discriminator 2 view .LVU942 + 2859 0054 23F40043 bic r3, r3, #32768 + ARM GAS /tmp/ccbUHtu7.s page 186 + + + 2860 0058 4B60 str r3, [r1, #4] +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2861 .loc 1 1529 5 is_stmt 1 discriminator 2 view .LVU943 +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2862 .loc 1 1529 9 is_stmt 0 discriminator 2 view .LVU944 + 2863 005a 0090 str r0, [sp] + 2864 005c 2B46 mov r3, r5 + 2865 005e 0821 movs r1, #8 + 2866 0060 2046 mov r0, r4 + 2867 .LVL178: +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2868 .loc 1 1529 9 discriminator 2 view .LVU945 + 2869 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2870 .LVL179: +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2871 .loc 1 1529 8 discriminator 2 view .LVU946 + 2872 0066 58B1 cbz r0, .L208 +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2873 .loc 1 1532 7 is_stmt 1 view .LVU947 +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2874 .loc 1 1532 11 is_stmt 0 view .LVU948 + 2875 0068 2268 ldr r2, [r4] +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2876 .loc 1 1532 21 view .LVU949 + 2877 006a 5368 ldr r3, [r2, #4] +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2878 .loc 1 1532 27 view .LVU950 + 2879 006c 43F40043 orr r3, r3, #32768 + 2880 0070 5360 str r3, [r2, #4] +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2881 .loc 1 1533 7 is_stmt 1 view .LVU951 +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2882 .loc 1 1533 14 is_stmt 0 view .LVU952 + 2883 0072 0120 movs r0, #1 + 2884 0074 7EE0 b .L205 + 2885 .LVL180: + 2886 .L206: +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2887 .loc 1 1506 7 is_stmt 1 view .LVU953 +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2888 .loc 1 1506 23 is_stmt 0 view .LVU954 + 2889 0076 4FF40073 mov r3, #512 + 2890 007a 6364 str r3, [r4, #68] +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2891 .loc 1 1507 7 is_stmt 1 view .LVU955 +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2892 .loc 1 1507 15 is_stmt 0 view .LVU956 + 2893 007c 0120 movs r0, #1 + 2894 .LVL181: +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2895 .loc 1 1507 15 view .LVU957 + 2896 007e 79E0 b .L205 + 2897 .LVL182: + 2898 .L208: +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2899 .loc 1 1537 5 is_stmt 1 view .LVU958 + 2900 0080 2368 ldr r3, [r4] + ARM GAS /tmp/ccbUHtu7.s page 187 + + + 2901 0082 0822 movs r2, #8 + 2902 0084 DA61 str r2, [r3, #28] +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2903 .loc 1 1540 5 view .LVU959 +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2904 .loc 1 1540 9 is_stmt 0 view .LVU960 + 2905 0086 0097 str r7, [sp] + 2906 0088 2B46 mov r3, r5 + 2907 008a 0122 movs r2, #1 + 2908 008c 4FF48031 mov r1, #65536 + 2909 0090 2046 mov r0, r4 + 2910 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 2911 .LVL183: +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2912 .loc 1 1540 8 view .LVU961 + 2913 0096 D0B1 cbz r0, .L209 +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2914 .loc 1 1543 7 is_stmt 1 view .LVU962 +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2915 .loc 1 1543 11 is_stmt 0 view .LVU963 + 2916 0098 2268 ldr r2, [r4] +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2917 .loc 1 1543 21 view .LVU964 + 2918 009a 5368 ldr r3, [r2, #4] +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 2919 .loc 1 1543 27 view .LVU965 + 2920 009c 43F40043 orr r3, r3, #32768 + 2921 00a0 5360 str r3, [r2, #4] +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2922 .loc 1 1544 7 is_stmt 1 view .LVU966 +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2923 .loc 1 1544 14 is_stmt 0 view .LVU967 + 2924 00a2 0120 movs r0, #1 + 2925 00a4 66E0 b .L205 + 2926 .L210: +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2927 .loc 1 1572 7 is_stmt 1 view .LVU968 +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2928 .loc 1 1572 38 is_stmt 0 view .LVU969 + 2929 00a6 2368 ldr r3, [r4] +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2930 .loc 1 1572 48 view .LVU970 + 2931 00a8 5A6A ldr r2, [r3, #36] +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2932 .loc 1 1572 12 view .LVU971 + 2933 00aa 636A ldr r3, [r4, #36] +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2934 .loc 1 1572 23 view .LVU972 + 2935 00ac 1A70 strb r2, [r3] +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2936 .loc 1 1575 7 is_stmt 1 view .LVU973 +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2937 .loc 1 1575 11 is_stmt 0 view .LVU974 + 2938 00ae 636A ldr r3, [r4, #36] +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2939 .loc 1 1575 21 view .LVU975 + 2940 00b0 0133 adds r3, r3, #1 + ARM GAS /tmp/ccbUHtu7.s page 188 + + + 2941 00b2 6362 str r3, [r4, #36] +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 2942 .loc 1 1577 7 is_stmt 1 view .LVU976 +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 2943 .loc 1 1577 11 is_stmt 0 view .LVU977 + 2944 00b4 B4F82AC0 ldrh ip, [r4, #42] + 2945 00b8 1FFA8CFC uxth ip, ip +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 2946 .loc 1 1577 22 view .LVU978 + 2947 00bc 0CF1FF3C add ip, ip, #-1 + 2948 00c0 1FFA8CFC uxth ip, ip + 2949 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2950 .loc 1 1578 7 is_stmt 1 view .LVU979 +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2951 .loc 1 1578 11 is_stmt 0 view .LVU980 + 2952 00c8 238D ldrh r3, [r4, #40] +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 2953 .loc 1 1578 21 view .LVU981 + 2954 00ca 013B subs r3, r3, #1 + 2955 00cc 2385 strh r3, [r4, #40] @ movhi + 2956 .L209: +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2957 .loc 1 1547 28 is_stmt 1 view .LVU982 +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2958 .loc 1 1547 16 is_stmt 0 view .LVU983 + 2959 00ce 638D ldrh r3, [r4, #42] + 2960 00d0 9BB2 uxth r3, r3 +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2961 .loc 1 1547 28 view .LVU984 + 2962 00d2 03B3 cbz r3, .L218 +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2963 .loc 1 1550 7 is_stmt 1 view .LVU985 +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2964 .loc 1 1550 11 is_stmt 0 view .LVU986 + 2965 00d4 3A46 mov r2, r7 + 2966 00d6 2946 mov r1, r5 + 2967 00d8 2046 mov r0, r4 + 2968 00da FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout + 2969 .LVL184: +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2970 .loc 1 1550 10 view .LVU987 + 2971 00de 0028 cmp r0, #0 + 2972 00e0 E1D0 beq .L210 +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2973 .loc 1 1553 9 is_stmt 1 view .LVU988 +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2974 .loc 1 1553 13 is_stmt 0 view .LVU989 + 2975 00e2 2268 ldr r2, [r4] +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2976 .loc 1 1553 23 view .LVU990 + 2977 00e4 5368 ldr r3, [r2, #4] +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2978 .loc 1 1553 29 view .LVU991 + 2979 00e6 43F40043 orr r3, r3, #32768 + 2980 00ea 5360 str r3, [r2, #4] +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 189 + + + 2981 .loc 1 1556 9 is_stmt 1 view .LVU992 +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2982 .loc 1 1556 13 is_stmt 0 view .LVU993 + 2983 00ec 2368 ldr r3, [r4] + 2984 00ee 9A69 ldr r2, [r3, #24] +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 2985 .loc 1 1556 12 view .LVU994 + 2986 00f0 12F0040F tst r2, #4 + 2987 00f4 0DD0 beq .L211 +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2988 .loc 1 1559 11 is_stmt 1 view .LVU995 +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2989 .loc 1 1559 52 is_stmt 0 view .LVU996 + 2990 00f6 5A6A ldr r2, [r3, #36] +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2991 .loc 1 1559 16 view .LVU997 + 2992 00f8 636A ldr r3, [r4, #36] +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2993 .loc 1 1559 27 view .LVU998 + 2994 00fa 1A70 strb r2, [r3] +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2995 .loc 1 1562 11 is_stmt 1 view .LVU999 +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2996 .loc 1 1562 15 is_stmt 0 view .LVU1000 + 2997 00fc 636A ldr r3, [r4, #36] +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 2998 .loc 1 1562 25 view .LVU1001 + 2999 00fe 0133 adds r3, r3, #1 + 3000 0100 6362 str r3, [r4, #36] +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 3001 .loc 1 1564 11 is_stmt 1 view .LVU1002 +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 3002 .loc 1 1564 15 is_stmt 0 view .LVU1003 + 3003 0102 638D ldrh r3, [r4, #42] + 3004 0104 9BB2 uxth r3, r3 +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 3005 .loc 1 1564 26 view .LVU1004 + 3006 0106 013B subs r3, r3, #1 + 3007 0108 9BB2 uxth r3, r3 + 3008 010a 6385 strh r3, [r4, #42] @ movhi +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3009 .loc 1 1565 11 is_stmt 1 view .LVU1005 +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3010 .loc 1 1565 15 is_stmt 0 view .LVU1006 + 3011 010c 238D ldrh r3, [r4, #40] +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3012 .loc 1 1565 25 view .LVU1007 + 3013 010e 013B subs r3, r3, #1 + 3014 0110 2385 strh r3, [r4, #40] @ movhi + 3015 .L211: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3016 .loc 1 1568 9 is_stmt 1 view .LVU1008 +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3017 .loc 1 1568 16 is_stmt 0 view .LVU1009 + 3018 0112 0120 movs r0, #1 + 3019 0114 2EE0 b .L205 + 3020 .L218: + ARM GAS /tmp/ccbUHtu7.s page 190 + + +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3021 .loc 1 1582 5 is_stmt 1 view .LVU1010 +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3022 .loc 1 1582 9 is_stmt 0 view .LVU1011 + 3023 0116 3A46 mov r2, r7 + 3024 0118 2946 mov r1, r5 + 3025 011a 2046 mov r0, r4 + 3026 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout + 3027 .LVL185: +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3028 .loc 1 1582 8 view .LVU1012 + 3029 0120 30B1 cbz r0, .L213 +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3030 .loc 1 1585 7 is_stmt 1 view .LVU1013 +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3031 .loc 1 1585 11 is_stmt 0 view .LVU1014 + 3032 0122 2268 ldr r2, [r4] +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3033 .loc 1 1585 21 view .LVU1015 + 3034 0124 5368 ldr r3, [r2, #4] +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3035 .loc 1 1585 27 view .LVU1016 + 3036 0126 43F40043 orr r3, r3, #32768 + 3037 012a 5360 str r3, [r2, #4] +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3038 .loc 1 1586 7 is_stmt 1 view .LVU1017 +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3039 .loc 1 1586 14 is_stmt 0 view .LVU1018 + 3040 012c 0120 movs r0, #1 + 3041 012e 21E0 b .L205 + 3042 .L213: +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3043 .loc 1 1590 5 is_stmt 1 view .LVU1019 + 3044 0130 2368 ldr r3, [r4] + 3045 0132 2022 movs r2, #32 + 3046 0134 DA61 str r2, [r3, #28] +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3047 .loc 1 1593 5 view .LVU1020 +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3048 .loc 1 1593 9 is_stmt 0 view .LVU1021 + 3049 0136 0097 str r7, [sp] + 3050 0138 2B46 mov r3, r5 + 3051 013a 0122 movs r2, #1 + 3052 013c 4FF40041 mov r1, #32768 + 3053 0140 2046 mov r0, r4 + 3054 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 3055 .LVL186: +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3056 .loc 1 1593 8 view .LVU1022 + 3057 0146 30B1 cbz r0, .L214 +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3058 .loc 1 1596 7 is_stmt 1 view .LVU1023 +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3059 .loc 1 1596 11 is_stmt 0 view .LVU1024 + 3060 0148 2268 ldr r2, [r4] +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3061 .loc 1 1596 21 view .LVU1025 + ARM GAS /tmp/ccbUHtu7.s page 191 + + + 3062 014a 5368 ldr r3, [r2, #4] +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 3063 .loc 1 1596 27 view .LVU1026 + 3064 014c 43F40043 orr r3, r3, #32768 + 3065 0150 5360 str r3, [r2, #4] +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3066 .loc 1 1597 7 is_stmt 1 view .LVU1027 +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3067 .loc 1 1597 14 is_stmt 0 view .LVU1028 + 3068 0152 0120 movs r0, #1 + 3069 0154 0EE0 b .L205 + 3070 .L214: +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3071 .loc 1 1601 5 is_stmt 1 view .LVU1029 +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3072 .loc 1 1601 9 is_stmt 0 view .LVU1030 + 3073 0156 2268 ldr r2, [r4] +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3074 .loc 1 1601 19 view .LVU1031 + 3075 0158 5368 ldr r3, [r2, #4] +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3076 .loc 1 1601 25 view .LVU1032 + 3077 015a 43F40043 orr r3, r3, #32768 + 3078 015e 5360 str r3, [r2, #4] +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 3079 .loc 1 1603 5 is_stmt 1 view .LVU1033 +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 3080 .loc 1 1603 17 is_stmt 0 view .LVU1034 + 3081 0160 2023 movs r3, #32 + 3082 0162 84F84130 strb r3, [r4, #65] +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3083 .loc 1 1604 5 is_stmt 1 view .LVU1035 +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3084 .loc 1 1604 17 is_stmt 0 view .LVU1036 + 3085 0166 0023 movs r3, #0 + 3086 0168 84F84230 strb r3, [r4, #66] +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3087 .loc 1 1607 5 is_stmt 1 view .LVU1037 +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3088 .loc 1 1607 5 view .LVU1038 + 3089 016c 84F84030 strb r3, [r4, #64] +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3090 .loc 1 1607 5 view .LVU1039 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3091 .loc 1 1609 5 view .LVU1040 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3092 .loc 1 1609 12 is_stmt 0 view .LVU1041 + 3093 0170 00E0 b .L205 + 3094 .LVL187: + 3095 .L215: +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3096 .loc 1 1613 12 view .LVU1042 + 3097 0172 0220 movs r0, #2 + 3098 .LVL188: + 3099 .L205: +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3100 .loc 1 1615 1 view .LVU1043 + ARM GAS /tmp/ccbUHtu7.s page 192 + + + 3101 0174 02B0 add sp, sp, #8 + 3102 .LCFI33: + 3103 .cfi_remember_state + 3104 .cfi_def_cfa_offset 24 + 3105 @ sp needed + 3106 0176 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 3107 .LVL189: + 3108 .L216: + 3109 .LCFI34: + 3110 .cfi_restore_state +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3111 .loc 1 1510 5 view .LVU1044 + 3112 017a 0220 movs r0, #2 + 3113 .LVL190: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3114 .loc 1 1510 5 view .LVU1045 + 3115 017c FAE7 b .L205 + 3116 .cfi_endproc + 3117 .LFE336: + 3119 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits + 3120 .align 1 + 3121 .global HAL_I2C_Master_Transmit_IT + 3122 .syntax unified + 3123 .thumb + 3124 .thumb_func + 3126 HAL_I2C_Master_Transmit_IT: + 3127 .LVL191: + 3128 .LFB337: +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 3129 .loc 1 1629 1 is_stmt 1 view -0 + 3130 .cfi_startproc + 3131 @ args = 0, pretend = 0, frame = 0 + 3132 @ frame_needed = 0, uses_anonymous_args = 0 +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 3133 .loc 1 1629 1 is_stmt 0 view .LVU1047 + 3134 0000 30B5 push {r4, r5, lr} + 3135 .LCFI35: + 3136 .cfi_def_cfa_offset 12 + 3137 .cfi_offset 4, -12 + 3138 .cfi_offset 5, -8 + 3139 .cfi_offset 14, -4 + 3140 0002 83B0 sub sp, sp, #12 + 3141 .LCFI36: + 3142 .cfi_def_cfa_offset 24 + 3143 0004 0446 mov r4, r0 +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3144 .loc 1 1630 3 is_stmt 1 view .LVU1048 +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3145 .loc 1 1632 3 view .LVU1049 +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3146 .loc 1 1632 11 is_stmt 0 view .LVU1050 + 3147 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 3148 .LVL192: +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3149 .loc 1 1632 11 view .LVU1051 + 3150 000a C0B2 uxtb r0, r0 +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 193 + + + 3151 .loc 1 1632 6 view .LVU1052 + 3152 000c 2028 cmp r0, #32 + 3153 000e 37D1 bne .L223 +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3154 .loc 1 1634 5 is_stmt 1 view .LVU1053 +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3155 .loc 1 1634 9 is_stmt 0 view .LVU1054 + 3156 0010 2068 ldr r0, [r4] + 3157 0012 8069 ldr r0, [r0, #24] +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3158 .loc 1 1634 8 view .LVU1055 + 3159 0014 10F4004F tst r0, #32768 + 3160 0018 34D1 bne .L224 +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3161 .loc 1 1640 5 is_stmt 1 view .LVU1056 +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3162 .loc 1 1640 5 view .LVU1057 + 3163 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 + 3164 001e 0128 cmp r0, #1 + 3165 0020 32D0 beq .L225 +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3166 .loc 1 1640 5 discriminator 2 view .LVU1058 + 3167 0022 0120 movs r0, #1 + 3168 0024 84F84000 strb r0, [r4, #64] +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3169 .loc 1 1640 5 discriminator 2 view .LVU1059 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 3170 .loc 1 1642 5 discriminator 2 view .LVU1060 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 3171 .loc 1 1642 23 is_stmt 0 discriminator 2 view .LVU1061 + 3172 0028 2120 movs r0, #33 + 3173 002a 84F84100 strb r0, [r4, #65] +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3174 .loc 1 1643 5 is_stmt 1 discriminator 2 view .LVU1062 +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3175 .loc 1 1643 23 is_stmt 0 discriminator 2 view .LVU1063 + 3176 002e 1020 movs r0, #16 + 3177 0030 84F84200 strb r0, [r4, #66] +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3178 .loc 1 1644 5 is_stmt 1 discriminator 2 view .LVU1064 +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3179 .loc 1 1644 23 is_stmt 0 discriminator 2 view .LVU1065 + 3180 0034 0020 movs r0, #0 + 3181 0036 6064 str r0, [r4, #68] +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3182 .loc 1 1647 5 is_stmt 1 discriminator 2 view .LVU1066 +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3183 .loc 1 1647 23 is_stmt 0 discriminator 2 view .LVU1067 + 3184 0038 6262 str r2, [r4, #36] +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3185 .loc 1 1648 5 is_stmt 1 discriminator 2 view .LVU1068 +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3186 .loc 1 1648 23 is_stmt 0 discriminator 2 view .LVU1069 + 3187 003a 6385 strh r3, [r4, #42] @ movhi +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 3188 .loc 1 1649 5 is_stmt 1 discriminator 2 view .LVU1070 +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + ARM GAS /tmp/ccbUHtu7.s page 194 + + + 3189 .loc 1 1649 23 is_stmt 0 discriminator 2 view .LVU1071 + 3190 003c 134B ldr r3, .L227 + 3191 .LVL193: +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 3192 .loc 1 1649 23 discriminator 2 view .LVU1072 + 3193 003e E362 str r3, [r4, #44] + 3194 .LVL194: +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3195 .loc 1 1650 5 is_stmt 1 discriminator 2 view .LVU1073 +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3196 .loc 1 1650 23 is_stmt 0 discriminator 2 view .LVU1074 + 3197 0040 134B ldr r3, .L227+4 + 3198 0042 6363 str r3, [r4, #52] +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3199 .loc 1 1652 5 is_stmt 1 discriminator 2 view .LVU1075 +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3200 .loc 1 1652 13 is_stmt 0 discriminator 2 view .LVU1076 + 3201 0044 638D ldrh r3, [r4, #42] + 3202 0046 9BB2 uxth r3, r3 +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3203 .loc 1 1652 8 discriminator 2 view .LVU1077 + 3204 0048 FF2B cmp r3, #255 + 3205 004a 14D9 bls .L221 +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 3206 .loc 1 1654 7 is_stmt 1 view .LVU1078 +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 3207 .loc 1 1654 22 is_stmt 0 view .LVU1079 + 3208 004c FF23 movs r3, #255 + 3209 004e 2385 strh r3, [r4, #40] @ movhi +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3210 .loc 1 1655 7 is_stmt 1 view .LVU1080 + 3211 .LVL195: +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3212 .loc 1 1655 16 is_stmt 0 view .LVU1081 + 3213 0050 4FF08073 mov r3, #16777216 + 3214 .LVL196: + 3215 .L222: +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3216 .loc 1 1665 5 is_stmt 1 view .LVU1082 + 3217 0054 0F4A ldr r2, .L227+8 + 3218 .LVL197: +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3219 .loc 1 1665 5 is_stmt 0 view .LVU1083 + 3220 0056 0092 str r2, [sp] + 3221 .LVL198: +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3222 .loc 1 1665 5 view .LVU1084 + 3223 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 3224 005c 2046 mov r0, r4 + 3225 005e FFF7FEFF bl I2C_TransferConfig + 3226 .LVL199: +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3227 .loc 1 1668 5 is_stmt 1 view .LVU1085 +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3228 .loc 1 1668 5 view .LVU1086 + 3229 0062 0025 movs r5, #0 + 3230 0064 84F84050 strb r5, [r4, #64] + ARM GAS /tmp/ccbUHtu7.s page 195 + + +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3231 .loc 1 1668 5 view .LVU1087 +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3232 .loc 1 1678 5 view .LVU1088 + 3233 0068 0121 movs r1, #1 + 3234 006a 2046 mov r0, r4 + 3235 006c FFF7FEFF bl I2C_Enable_IRQ + 3236 .LVL200: +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3237 .loc 1 1680 5 view .LVU1089 +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3238 .loc 1 1680 12 is_stmt 0 view .LVU1090 + 3239 0070 2846 mov r0, r5 + 3240 .LVL201: + 3241 .L220: +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3242 .loc 1 1686 1 view .LVU1091 + 3243 0072 03B0 add sp, sp, #12 + 3244 .LCFI37: + 3245 .cfi_remember_state + 3246 .cfi_def_cfa_offset 12 + 3247 @ sp needed + 3248 0074 30BD pop {r4, r5, pc} + 3249 .LVL202: + 3250 .L221: + 3251 .LCFI38: + 3252 .cfi_restore_state +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3253 .loc 1 1659 7 is_stmt 1 view .LVU1092 +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3254 .loc 1 1659 28 is_stmt 0 view .LVU1093 + 3255 0076 638D ldrh r3, [r4, #42] +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3256 .loc 1 1659 22 view .LVU1094 + 3257 0078 2385 strh r3, [r4, #40] @ movhi +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3258 .loc 1 1660 7 is_stmt 1 view .LVU1095 + 3259 .LVL203: +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3260 .loc 1 1660 16 is_stmt 0 view .LVU1096 + 3261 007a 4FF00073 mov r3, #33554432 + 3262 007e E9E7 b .L222 + 3263 .LVL204: + 3264 .L223: +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3265 .loc 1 1684 12 view .LVU1097 + 3266 0080 0220 movs r0, #2 + 3267 0082 F6E7 b .L220 + 3268 .L224: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3269 .loc 1 1636 14 view .LVU1098 + 3270 0084 0220 movs r0, #2 + 3271 0086 F4E7 b .L220 + 3272 .L225: +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3273 .loc 1 1640 5 view .LVU1099 + 3274 0088 0220 movs r0, #2 + ARM GAS /tmp/ccbUHtu7.s page 196 + + + 3275 008a F2E7 b .L220 + 3276 .L228: + 3277 .align 2 + 3278 .L227: + 3279 008c 0000FFFF .word -65536 + 3280 0090 00000000 .word I2C_Master_ISR_IT + 3281 0094 00200080 .word -2147475456 + 3282 .cfi_endproc + 3283 .LFE337: + 3285 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits + 3286 .align 1 + 3287 .global HAL_I2C_Master_Receive_IT + 3288 .syntax unified + 3289 .thumb + 3290 .thumb_func + 3292 HAL_I2C_Master_Receive_IT: + 3293 .LVL205: + 3294 .LFB338: +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 3295 .loc 1 1700 1 is_stmt 1 view -0 + 3296 .cfi_startproc + 3297 @ args = 0, pretend = 0, frame = 0 + 3298 @ frame_needed = 0, uses_anonymous_args = 0 +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 3299 .loc 1 1700 1 is_stmt 0 view .LVU1101 + 3300 0000 30B5 push {r4, r5, lr} + 3301 .LCFI39: + 3302 .cfi_def_cfa_offset 12 + 3303 .cfi_offset 4, -12 + 3304 .cfi_offset 5, -8 + 3305 .cfi_offset 14, -4 + 3306 0002 83B0 sub sp, sp, #12 + 3307 .LCFI40: + 3308 .cfi_def_cfa_offset 24 + 3309 0004 0446 mov r4, r0 +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3310 .loc 1 1701 3 is_stmt 1 view .LVU1102 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3311 .loc 1 1703 3 view .LVU1103 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3312 .loc 1 1703 11 is_stmt 0 view .LVU1104 + 3313 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 3314 .LVL206: +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3315 .loc 1 1703 11 view .LVU1105 + 3316 000a C0B2 uxtb r0, r0 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3317 .loc 1 1703 6 view .LVU1106 + 3318 000c 2028 cmp r0, #32 + 3319 000e 37D1 bne .L233 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3320 .loc 1 1705 5 is_stmt 1 view .LVU1107 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3321 .loc 1 1705 9 is_stmt 0 view .LVU1108 + 3322 0010 2068 ldr r0, [r4] + 3323 0012 8069 ldr r0, [r0, #24] +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 197 + + + 3324 .loc 1 1705 8 view .LVU1109 + 3325 0014 10F4004F tst r0, #32768 + 3326 0018 34D1 bne .L234 +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3327 .loc 1 1711 5 is_stmt 1 view .LVU1110 +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3328 .loc 1 1711 5 view .LVU1111 + 3329 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 + 3330 001e 0128 cmp r0, #1 + 3331 0020 32D0 beq .L235 +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3332 .loc 1 1711 5 discriminator 2 view .LVU1112 + 3333 0022 0120 movs r0, #1 + 3334 0024 84F84000 strb r0, [r4, #64] +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3335 .loc 1 1711 5 discriminator 2 view .LVU1113 +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 3336 .loc 1 1713 5 discriminator 2 view .LVU1114 +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 3337 .loc 1 1713 23 is_stmt 0 discriminator 2 view .LVU1115 + 3338 0028 2220 movs r0, #34 + 3339 002a 84F84100 strb r0, [r4, #65] +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3340 .loc 1 1714 5 is_stmt 1 discriminator 2 view .LVU1116 +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3341 .loc 1 1714 23 is_stmt 0 discriminator 2 view .LVU1117 + 3342 002e 1020 movs r0, #16 + 3343 0030 84F84200 strb r0, [r4, #66] +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3344 .loc 1 1715 5 is_stmt 1 discriminator 2 view .LVU1118 +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3345 .loc 1 1715 23 is_stmt 0 discriminator 2 view .LVU1119 + 3346 0034 0020 movs r0, #0 + 3347 0036 6064 str r0, [r4, #68] +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3348 .loc 1 1718 5 is_stmt 1 discriminator 2 view .LVU1120 +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3349 .loc 1 1718 23 is_stmt 0 discriminator 2 view .LVU1121 + 3350 0038 6262 str r2, [r4, #36] +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3351 .loc 1 1719 5 is_stmt 1 discriminator 2 view .LVU1122 +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3352 .loc 1 1719 23 is_stmt 0 discriminator 2 view .LVU1123 + 3353 003a 6385 strh r3, [r4, #42] @ movhi +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 3354 .loc 1 1720 5 is_stmt 1 discriminator 2 view .LVU1124 +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 3355 .loc 1 1720 23 is_stmt 0 discriminator 2 view .LVU1125 + 3356 003c 134B ldr r3, .L237 + 3357 .LVL207: +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 3358 .loc 1 1720 23 discriminator 2 view .LVU1126 + 3359 003e E362 str r3, [r4, #44] + 3360 .LVL208: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3361 .loc 1 1721 5 is_stmt 1 discriminator 2 view .LVU1127 +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 198 + + + 3362 .loc 1 1721 23 is_stmt 0 discriminator 2 view .LVU1128 + 3363 0040 134B ldr r3, .L237+4 + 3364 0042 6363 str r3, [r4, #52] +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3365 .loc 1 1723 5 is_stmt 1 discriminator 2 view .LVU1129 +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3366 .loc 1 1723 13 is_stmt 0 discriminator 2 view .LVU1130 + 3367 0044 638D ldrh r3, [r4, #42] + 3368 0046 9BB2 uxth r3, r3 +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3369 .loc 1 1723 8 discriminator 2 view .LVU1131 + 3370 0048 FF2B cmp r3, #255 + 3371 004a 14D9 bls .L231 +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 3372 .loc 1 1725 7 is_stmt 1 view .LVU1132 +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 3373 .loc 1 1725 22 is_stmt 0 view .LVU1133 + 3374 004c FF23 movs r3, #255 + 3375 004e 2385 strh r3, [r4, #40] @ movhi +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3376 .loc 1 1726 7 is_stmt 1 view .LVU1134 + 3377 .LVL209: +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3378 .loc 1 1726 16 is_stmt 0 view .LVU1135 + 3379 0050 4FF08073 mov r3, #16777216 + 3380 .LVL210: + 3381 .L232: +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3382 .loc 1 1736 5 is_stmt 1 view .LVU1136 + 3383 0054 0F4A ldr r2, .L237+8 + 3384 .LVL211: +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3385 .loc 1 1736 5 is_stmt 0 view .LVU1137 + 3386 0056 0092 str r2, [sp] + 3387 .LVL212: +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3388 .loc 1 1736 5 view .LVU1138 + 3389 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 3390 005c 2046 mov r0, r4 + 3391 005e FFF7FEFF bl I2C_TransferConfig + 3392 .LVL213: +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3393 .loc 1 1739 5 is_stmt 1 view .LVU1139 +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3394 .loc 1 1739 5 view .LVU1140 + 3395 0062 0025 movs r5, #0 + 3396 0064 84F84050 strb r5, [r4, #64] +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3397 .loc 1 1739 5 view .LVU1141 +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3398 .loc 1 1749 5 view .LVU1142 + 3399 0068 0221 movs r1, #2 + 3400 006a 2046 mov r0, r4 + 3401 006c FFF7FEFF bl I2C_Enable_IRQ + 3402 .LVL214: +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3403 .loc 1 1751 5 view .LVU1143 + ARM GAS /tmp/ccbUHtu7.s page 199 + + +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3404 .loc 1 1751 12 is_stmt 0 view .LVU1144 + 3405 0070 2846 mov r0, r5 + 3406 .LVL215: + 3407 .L230: +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3408 .loc 1 1757 1 view .LVU1145 + 3409 0072 03B0 add sp, sp, #12 + 3410 .LCFI41: + 3411 .cfi_remember_state + 3412 .cfi_def_cfa_offset 12 + 3413 @ sp needed + 3414 0074 30BD pop {r4, r5, pc} + 3415 .LVL216: + 3416 .L231: + 3417 .LCFI42: + 3418 .cfi_restore_state +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3419 .loc 1 1730 7 is_stmt 1 view .LVU1146 +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3420 .loc 1 1730 28 is_stmt 0 view .LVU1147 + 3421 0076 638D ldrh r3, [r4, #42] +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3422 .loc 1 1730 22 view .LVU1148 + 3423 0078 2385 strh r3, [r4, #40] @ movhi +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3424 .loc 1 1731 7 is_stmt 1 view .LVU1149 + 3425 .LVL217: +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3426 .loc 1 1731 16 is_stmt 0 view .LVU1150 + 3427 007a 4FF00073 mov r3, #33554432 + 3428 007e E9E7 b .L232 + 3429 .LVL218: + 3430 .L233: +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3431 .loc 1 1755 12 view .LVU1151 + 3432 0080 0220 movs r0, #2 + 3433 0082 F6E7 b .L230 + 3434 .L234: +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3435 .loc 1 1707 14 view .LVU1152 + 3436 0084 0220 movs r0, #2 + 3437 0086 F4E7 b .L230 + 3438 .L235: +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3439 .loc 1 1711 5 view .LVU1153 + 3440 0088 0220 movs r0, #2 + 3441 008a F2E7 b .L230 + 3442 .L238: + 3443 .align 2 + 3444 .L237: + 3445 008c 0000FFFF .word -65536 + 3446 0090 00000000 .word I2C_Master_ISR_IT + 3447 0094 00240080 .word -2147474432 + 3448 .cfi_endproc + 3449 .LFE338: + 3451 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits + ARM GAS /tmp/ccbUHtu7.s page 200 + + + 3452 .align 1 + 3453 .global HAL_I2C_Slave_Transmit_IT + 3454 .syntax unified + 3455 .thumb + 3456 .thumb_func + 3458 HAL_I2C_Slave_Transmit_IT: + 3459 .LVL219: + 3460 .LFB339: +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 3461 .loc 1 1768 1 is_stmt 1 view -0 + 3462 .cfi_startproc + 3463 @ args = 0, pretend = 0, frame = 0 + 3464 @ frame_needed = 0, uses_anonymous_args = 0 +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 3465 .loc 1 1768 1 is_stmt 0 view .LVU1155 + 3466 0000 38B5 push {r3, r4, r5, lr} + 3467 .LCFI43: + 3468 .cfi_def_cfa_offset 16 + 3469 .cfi_offset 3, -16 + 3470 .cfi_offset 4, -12 + 3471 .cfi_offset 5, -8 + 3472 .cfi_offset 14, -4 +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3473 .loc 1 1769 3 is_stmt 1 view .LVU1156 +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3474 .loc 1 1769 11 is_stmt 0 view .LVU1157 + 3475 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 3476 0006 DBB2 uxtb r3, r3 +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3477 .loc 1 1769 6 view .LVU1158 + 3478 0008 202B cmp r3, #32 + 3479 000a 23D1 bne .L241 +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3480 .loc 1 1772 5 is_stmt 1 view .LVU1159 +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3481 .loc 1 1772 5 view .LVU1160 + 3482 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 3483 0010 012B cmp r3, #1 + 3484 0012 21D0 beq .L242 +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3485 .loc 1 1772 5 discriminator 2 view .LVU1161 + 3486 0014 0123 movs r3, #1 + 3487 0016 80F84030 strb r3, [r0, #64] +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3488 .loc 1 1772 5 discriminator 2 view .LVU1162 +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 3489 .loc 1 1774 5 discriminator 2 view .LVU1163 +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 3490 .loc 1 1774 23 is_stmt 0 discriminator 2 view .LVU1164 + 3491 001a 2123 movs r3, #33 + 3492 001c 80F84130 strb r3, [r0, #65] +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3493 .loc 1 1775 5 is_stmt 1 discriminator 2 view .LVU1165 +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3494 .loc 1 1775 23 is_stmt 0 discriminator 2 view .LVU1166 + 3495 0020 2023 movs r3, #32 + 3496 0022 80F84230 strb r3, [r0, #66] + ARM GAS /tmp/ccbUHtu7.s page 201 + + +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3497 .loc 1 1776 5 is_stmt 1 discriminator 2 view .LVU1167 +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3498 .loc 1 1776 23 is_stmt 0 discriminator 2 view .LVU1168 + 3499 0026 0024 movs r4, #0 + 3500 0028 4464 str r4, [r0, #68] +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3501 .loc 1 1779 5 is_stmt 1 discriminator 2 view .LVU1169 +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3502 .loc 1 1779 9 is_stmt 0 discriminator 2 view .LVU1170 + 3503 002a 0568 ldr r5, [r0] +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3504 .loc 1 1779 19 discriminator 2 view .LVU1171 + 3505 002c 6B68 ldr r3, [r5, #4] +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3506 .loc 1 1779 25 discriminator 2 view .LVU1172 + 3507 002e 23F40043 bic r3, r3, #32768 + 3508 0032 6B60 str r3, [r5, #4] +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3509 .loc 1 1782 5 is_stmt 1 discriminator 2 view .LVU1173 +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3510 .loc 1 1782 23 is_stmt 0 discriminator 2 view .LVU1174 + 3511 0034 4162 str r1, [r0, #36] +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 3512 .loc 1 1783 5 is_stmt 1 discriminator 2 view .LVU1175 +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 3513 .loc 1 1783 23 is_stmt 0 discriminator 2 view .LVU1176 + 3514 0036 4285 strh r2, [r0, #42] @ movhi +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3515 .loc 1 1784 5 is_stmt 1 discriminator 2 view .LVU1177 +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3516 .loc 1 1784 29 is_stmt 0 discriminator 2 view .LVU1178 + 3517 0038 438D ldrh r3, [r0, #42] +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3518 .loc 1 1784 23 discriminator 2 view .LVU1179 + 3519 003a 0385 strh r3, [r0, #40] @ movhi +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 3520 .loc 1 1785 5 is_stmt 1 discriminator 2 view .LVU1180 +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 3521 .loc 1 1785 23 is_stmt 0 discriminator 2 view .LVU1181 + 3522 003c 074B ldr r3, .L244 + 3523 003e C362 str r3, [r0, #44] +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3524 .loc 1 1786 5 is_stmt 1 discriminator 2 view .LVU1182 +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3525 .loc 1 1786 23 is_stmt 0 discriminator 2 view .LVU1183 + 3526 0040 074B ldr r3, .L244+4 + 3527 0042 4363 str r3, [r0, #52] +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3528 .loc 1 1789 5 is_stmt 1 discriminator 2 view .LVU1184 +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3529 .loc 1 1789 5 discriminator 2 view .LVU1185 + 3530 0044 80F84040 strb r4, [r0, #64] +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3531 .loc 1 1789 5 discriminator 2 view .LVU1186 +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3532 .loc 1 1799 5 discriminator 2 view .LVU1187 + ARM GAS /tmp/ccbUHtu7.s page 202 + + + 3533 0048 48F20101 movw r1, #32769 + 3534 .LVL220: +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3535 .loc 1 1799 5 is_stmt 0 discriminator 2 view .LVU1188 + 3536 004c FFF7FEFF bl I2C_Enable_IRQ + 3537 .LVL221: +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3538 .loc 1 1801 5 is_stmt 1 discriminator 2 view .LVU1189 +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3539 .loc 1 1801 12 is_stmt 0 discriminator 2 view .LVU1190 + 3540 0050 2046 mov r0, r4 + 3541 .L240: +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3542 .loc 1 1807 1 view .LVU1191 + 3543 0052 38BD pop {r3, r4, r5, pc} + 3544 .LVL222: + 3545 .L241: +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3546 .loc 1 1805 12 view .LVU1192 + 3547 0054 0220 movs r0, #2 + 3548 .LVL223: +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3549 .loc 1 1805 12 view .LVU1193 + 3550 0056 FCE7 b .L240 + 3551 .LVL224: + 3552 .L242: +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3553 .loc 1 1772 5 view .LVU1194 + 3554 0058 0220 movs r0, #2 + 3555 .LVL225: +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3556 .loc 1 1772 5 view .LVU1195 + 3557 005a FAE7 b .L240 + 3558 .L245: + 3559 .align 2 + 3560 .L244: + 3561 005c 0000FFFF .word -65536 + 3562 0060 00000000 .word I2C_Slave_ISR_IT + 3563 .cfi_endproc + 3564 .LFE339: + 3566 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits + 3567 .align 1 + 3568 .global HAL_I2C_Slave_Receive_IT + 3569 .syntax unified + 3570 .thumb + 3571 .thumb_func + 3573 HAL_I2C_Slave_Receive_IT: + 3574 .LVL226: + 3575 .LFB340: +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 3576 .loc 1 1818 1 is_stmt 1 view -0 + 3577 .cfi_startproc + 3578 @ args = 0, pretend = 0, frame = 0 + 3579 @ frame_needed = 0, uses_anonymous_args = 0 +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 3580 .loc 1 1818 1 is_stmt 0 view .LVU1197 + 3581 0000 38B5 push {r3, r4, r5, lr} + ARM GAS /tmp/ccbUHtu7.s page 203 + + + 3582 .LCFI44: + 3583 .cfi_def_cfa_offset 16 + 3584 .cfi_offset 3, -16 + 3585 .cfi_offset 4, -12 + 3586 .cfi_offset 5, -8 + 3587 .cfi_offset 14, -4 +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3588 .loc 1 1819 3 is_stmt 1 view .LVU1198 +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3589 .loc 1 1819 11 is_stmt 0 view .LVU1199 + 3590 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 3591 0006 DBB2 uxtb r3, r3 +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3592 .loc 1 1819 6 view .LVU1200 + 3593 0008 202B cmp r3, #32 + 3594 000a 23D1 bne .L248 +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3595 .loc 1 1822 5 is_stmt 1 view .LVU1201 +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3596 .loc 1 1822 5 view .LVU1202 + 3597 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 3598 0010 012B cmp r3, #1 + 3599 0012 21D0 beq .L249 +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3600 .loc 1 1822 5 discriminator 2 view .LVU1203 + 3601 0014 0123 movs r3, #1 + 3602 0016 80F84030 strb r3, [r0, #64] +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3603 .loc 1 1822 5 discriminator 2 view .LVU1204 +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 3604 .loc 1 1824 5 discriminator 2 view .LVU1205 +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 3605 .loc 1 1824 23 is_stmt 0 discriminator 2 view .LVU1206 + 3606 001a 2223 movs r3, #34 + 3607 001c 80F84130 strb r3, [r0, #65] +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3608 .loc 1 1825 5 is_stmt 1 discriminator 2 view .LVU1207 +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3609 .loc 1 1825 23 is_stmt 0 discriminator 2 view .LVU1208 + 3610 0020 2023 movs r3, #32 + 3611 0022 80F84230 strb r3, [r0, #66] +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3612 .loc 1 1826 5 is_stmt 1 discriminator 2 view .LVU1209 +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3613 .loc 1 1826 23 is_stmt 0 discriminator 2 view .LVU1210 + 3614 0026 0024 movs r4, #0 + 3615 0028 4464 str r4, [r0, #68] +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3616 .loc 1 1829 5 is_stmt 1 discriminator 2 view .LVU1211 +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3617 .loc 1 1829 9 is_stmt 0 discriminator 2 view .LVU1212 + 3618 002a 0568 ldr r5, [r0] +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3619 .loc 1 1829 19 discriminator 2 view .LVU1213 + 3620 002c 6B68 ldr r3, [r5, #4] +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3621 .loc 1 1829 25 discriminator 2 view .LVU1214 + ARM GAS /tmp/ccbUHtu7.s page 204 + + + 3622 002e 23F40043 bic r3, r3, #32768 + 3623 0032 6B60 str r3, [r5, #4] +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3624 .loc 1 1832 5 is_stmt 1 discriminator 2 view .LVU1215 +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3625 .loc 1 1832 23 is_stmt 0 discriminator 2 view .LVU1216 + 3626 0034 4162 str r1, [r0, #36] +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 3627 .loc 1 1833 5 is_stmt 1 discriminator 2 view .LVU1217 +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 3628 .loc 1 1833 23 is_stmt 0 discriminator 2 view .LVU1218 + 3629 0036 4285 strh r2, [r0, #42] @ movhi +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3630 .loc 1 1834 5 is_stmt 1 discriminator 2 view .LVU1219 +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3631 .loc 1 1834 29 is_stmt 0 discriminator 2 view .LVU1220 + 3632 0038 438D ldrh r3, [r0, #42] +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3633 .loc 1 1834 23 discriminator 2 view .LVU1221 + 3634 003a 0385 strh r3, [r0, #40] @ movhi +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 3635 .loc 1 1835 5 is_stmt 1 discriminator 2 view .LVU1222 +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 3636 .loc 1 1835 23 is_stmt 0 discriminator 2 view .LVU1223 + 3637 003c 074B ldr r3, .L251 + 3638 003e C362 str r3, [r0, #44] +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3639 .loc 1 1836 5 is_stmt 1 discriminator 2 view .LVU1224 +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3640 .loc 1 1836 23 is_stmt 0 discriminator 2 view .LVU1225 + 3641 0040 074B ldr r3, .L251+4 + 3642 0042 4363 str r3, [r0, #52] +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3643 .loc 1 1839 5 is_stmt 1 discriminator 2 view .LVU1226 +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3644 .loc 1 1839 5 discriminator 2 view .LVU1227 + 3645 0044 80F84040 strb r4, [r0, #64] +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3646 .loc 1 1839 5 discriminator 2 view .LVU1228 +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3647 .loc 1 1849 5 discriminator 2 view .LVU1229 + 3648 0048 48F20201 movw r1, #32770 + 3649 .LVL227: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3650 .loc 1 1849 5 is_stmt 0 discriminator 2 view .LVU1230 + 3651 004c FFF7FEFF bl I2C_Enable_IRQ + 3652 .LVL228: +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3653 .loc 1 1851 5 is_stmt 1 discriminator 2 view .LVU1231 +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3654 .loc 1 1851 12 is_stmt 0 discriminator 2 view .LVU1232 + 3655 0050 2046 mov r0, r4 + 3656 .L247: +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3657 .loc 1 1857 1 view .LVU1233 + 3658 0052 38BD pop {r3, r4, r5, pc} + 3659 .LVL229: + ARM GAS /tmp/ccbUHtu7.s page 205 + + + 3660 .L248: +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3661 .loc 1 1855 12 view .LVU1234 + 3662 0054 0220 movs r0, #2 + 3663 .LVL230: +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3664 .loc 1 1855 12 view .LVU1235 + 3665 0056 FCE7 b .L247 + 3666 .LVL231: + 3667 .L249: +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3668 .loc 1 1822 5 view .LVU1236 + 3669 0058 0220 movs r0, #2 + 3670 .LVL232: +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3671 .loc 1 1822 5 view .LVU1237 + 3672 005a FAE7 b .L247 + 3673 .L252: + 3674 .align 2 + 3675 .L251: + 3676 005c 0000FFFF .word -65536 + 3677 0060 00000000 .word I2C_Slave_ISR_IT + 3678 .cfi_endproc + 3679 .LFE340: + 3681 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits + 3682 .align 1 + 3683 .global HAL_I2C_Master_Transmit_DMA + 3684 .syntax unified + 3685 .thumb + 3686 .thumb_func + 3688 HAL_I2C_Master_Transmit_DMA: + 3689 .LVL233: + 3690 .LFB341: +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 3691 .loc 1 1871 1 is_stmt 1 view -0 + 3692 .cfi_startproc + 3693 @ args = 0, pretend = 0, frame = 0 + 3694 @ frame_needed = 0, uses_anonymous_args = 0 +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 3695 .loc 1 1871 1 is_stmt 0 view .LVU1239 + 3696 0000 70B5 push {r4, r5, r6, lr} + 3697 .LCFI45: + 3698 .cfi_def_cfa_offset 16 + 3699 .cfi_offset 4, -16 + 3700 .cfi_offset 5, -12 + 3701 .cfi_offset 6, -8 + 3702 .cfi_offset 14, -4 + 3703 0002 82B0 sub sp, sp, #8 + 3704 .LCFI46: + 3705 .cfi_def_cfa_offset 24 + 3706 0004 0446 mov r4, r0 +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 3707 .loc 1 1872 3 is_stmt 1 view .LVU1240 +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3708 .loc 1 1873 3 view .LVU1241 +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3709 .loc 1 1875 3 view .LVU1242 + ARM GAS /tmp/ccbUHtu7.s page 206 + + +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3710 .loc 1 1875 11 is_stmt 0 view .LVU1243 + 3711 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 3712 .LVL234: +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3713 .loc 1 1875 11 view .LVU1244 + 3714 000a C0B2 uxtb r0, r0 +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3715 .loc 1 1875 6 view .LVU1245 + 3716 000c 2028 cmp r0, #32 + 3717 000e 40F08D80 bne .L262 + 3718 0012 0D46 mov r5, r1 + 3719 0014 1146 mov r1, r2 + 3720 .LVL235: +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3721 .loc 1 1877 5 is_stmt 1 view .LVU1246 +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3722 .loc 1 1877 9 is_stmt 0 view .LVU1247 + 3723 0016 2268 ldr r2, [r4] + 3724 .LVL236: +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3725 .loc 1 1877 9 view .LVU1248 + 3726 0018 9269 ldr r2, [r2, #24] +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3727 .loc 1 1877 8 view .LVU1249 + 3728 001a 12F4004F tst r2, #32768 + 3729 001e 40F08880 bne .L263 +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3730 .loc 1 1883 5 is_stmt 1 view .LVU1250 +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3731 .loc 1 1883 5 view .LVU1251 + 3732 0022 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2 + 3733 0026 012A cmp r2, #1 + 3734 0028 00F08580 beq .L264 +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3735 .loc 1 1883 5 discriminator 2 view .LVU1252 + 3736 002c 0122 movs r2, #1 + 3737 002e 84F84020 strb r2, [r4, #64] +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3738 .loc 1 1883 5 discriminator 2 view .LVU1253 +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 3739 .loc 1 1885 5 discriminator 2 view .LVU1254 +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 3740 .loc 1 1885 23 is_stmt 0 discriminator 2 view .LVU1255 + 3741 0032 2122 movs r2, #33 + 3742 0034 84F84120 strb r2, [r4, #65] +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3743 .loc 1 1886 5 is_stmt 1 discriminator 2 view .LVU1256 +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 3744 .loc 1 1886 23 is_stmt 0 discriminator 2 view .LVU1257 + 3745 0038 1022 movs r2, #16 + 3746 003a 84F84220 strb r2, [r4, #66] +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3747 .loc 1 1887 5 is_stmt 1 discriminator 2 view .LVU1258 +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3748 .loc 1 1887 23 is_stmt 0 discriminator 2 view .LVU1259 + 3749 003e 0022 movs r2, #0 + ARM GAS /tmp/ccbUHtu7.s page 207 + + + 3750 0040 6264 str r2, [r4, #68] +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3751 .loc 1 1890 5 is_stmt 1 discriminator 2 view .LVU1260 +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 3752 .loc 1 1890 23 is_stmt 0 discriminator 2 view .LVU1261 + 3753 0042 6162 str r1, [r4, #36] +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3754 .loc 1 1891 5 is_stmt 1 discriminator 2 view .LVU1262 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 3755 .loc 1 1891 23 is_stmt 0 discriminator 2 view .LVU1263 + 3756 0044 6385 strh r3, [r4, #42] @ movhi +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 3757 .loc 1 1892 5 is_stmt 1 discriminator 2 view .LVU1264 +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 3758 .loc 1 1892 23 is_stmt 0 discriminator 2 view .LVU1265 + 3759 0046 3D4B ldr r3, .L268 + 3760 .LVL237: +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 3761 .loc 1 1892 23 discriminator 2 view .LVU1266 + 3762 0048 E362 str r3, [r4, #44] + 3763 .LVL238: +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3764 .loc 1 1893 5 is_stmt 1 discriminator 2 view .LVU1267 +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3765 .loc 1 1893 23 is_stmt 0 discriminator 2 view .LVU1268 + 3766 004a 3D4B ldr r3, .L268+4 + 3767 004c 6363 str r3, [r4, #52] +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3768 .loc 1 1895 5 is_stmt 1 discriminator 2 view .LVU1269 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3769 .loc 1 1895 13 is_stmt 0 discriminator 2 view .LVU1270 + 3770 004e 638D ldrh r3, [r4, #42] + 3771 0050 9BB2 uxth r3, r3 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3772 .loc 1 1895 8 discriminator 2 view .LVU1271 + 3773 0052 FF2B cmp r3, #255 + 3774 0054 27D9 bls .L255 +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 3775 .loc 1 1897 7 is_stmt 1 view .LVU1272 +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 3776 .loc 1 1897 22 is_stmt 0 view .LVU1273 + 3777 0056 FF23 movs r3, #255 + 3778 0058 2385 strh r3, [r4, #40] @ movhi +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3779 .loc 1 1898 7 is_stmt 1 view .LVU1274 + 3780 .LVL239: +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3781 .loc 1 1898 16 is_stmt 0 view .LVU1275 + 3782 005a 4FF08076 mov r6, #16777216 + 3783 .LVL240: + 3784 .L256: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3785 .loc 1 1906 5 is_stmt 1 view .LVU1276 +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3786 .loc 1 1906 13 is_stmt 0 view .LVU1277 + 3787 005e 228D ldrh r2, [r4, #40] +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 208 + + + 3788 .loc 1 1906 8 view .LVU1278 + 3789 0060 002A cmp r2, #0 + 3790 0062 4FD0 beq .L257 +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3791 .loc 1 1908 7 is_stmt 1 view .LVU1279 +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3792 .loc 1 1908 15 is_stmt 0 view .LVU1280 + 3793 0064 A36B ldr r3, [r4, #56] +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3794 .loc 1 1908 10 view .LVU1281 + 3795 0066 1BB3 cbz r3, .L258 +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3796 .loc 1 1911 9 is_stmt 1 view .LVU1282 +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3797 .loc 1 1911 40 is_stmt 0 view .LVU1283 + 3798 0068 364A ldr r2, .L268+8 + 3799 006a DA62 str r2, [r3, #44] +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3800 .loc 1 1914 9 is_stmt 1 view .LVU1284 +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3801 .loc 1 1914 13 is_stmt 0 view .LVU1285 + 3802 006c A36B ldr r3, [r4, #56] +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3803 .loc 1 1914 41 view .LVU1286 + 3804 006e 364A ldr r2, .L268+12 + 3805 0070 5A63 str r2, [r3, #52] +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 3806 .loc 1 1917 9 is_stmt 1 view .LVU1287 +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 3807 .loc 1 1917 13 is_stmt 0 view .LVU1288 + 3808 0072 A26B ldr r2, [r4, #56] +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 3809 .loc 1 1917 44 view .LVU1289 + 3810 0074 0023 movs r3, #0 + 3811 0076 1363 str r3, [r2, #48] +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3812 .loc 1 1918 9 is_stmt 1 view .LVU1290 +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3813 .loc 1 1918 13 is_stmt 0 view .LVU1291 + 3814 0078 A26B ldr r2, [r4, #56] +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3815 .loc 1 1918 41 view .LVU1292 + 3816 007a 9363 str r3, [r2, #56] +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 3817 .loc 1 1921 9 is_stmt 1 view .LVU1293 +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 3818 .loc 1 1921 88 is_stmt 0 view .LVU1294 + 3819 007c 2268 ldr r2, [r4] +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 3820 .loc 1 1921 25 view .LVU1295 + 3821 007e 238D ldrh r3, [r4, #40] + 3822 0080 2832 adds r2, r2, #40 + 3823 0082 A06B ldr r0, [r4, #56] + 3824 0084 FFF7FEFF bl HAL_DMA_Start_IT + 3825 .LVL241: +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3826 .loc 1 1939 7 is_stmt 1 view .LVU1296 + ARM GAS /tmp/ccbUHtu7.s page 209 + + +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 3827 .loc 1 1939 10 is_stmt 0 view .LVU1297 + 3828 0088 00B3 cbz r0, .L267 +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 3829 .loc 1 1963 9 is_stmt 1 view .LVU1298 +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 3830 .loc 1 1963 25 is_stmt 0 view .LVU1299 + 3831 008a 2023 movs r3, #32 + 3832 008c 84F84130 strb r3, [r4, #65] +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3833 .loc 1 1964 9 is_stmt 1 view .LVU1300 +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3834 .loc 1 1964 25 is_stmt 0 view .LVU1301 + 3835 0090 0022 movs r2, #0 + 3836 0092 84F84220 strb r2, [r4, #66] +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3837 .loc 1 1967 9 is_stmt 1 view .LVU1302 +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3838 .loc 1 1967 13 is_stmt 0 view .LVU1303 + 3839 0096 636C ldr r3, [r4, #68] +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3840 .loc 1 1967 25 view .LVU1304 + 3841 0098 43F01003 orr r3, r3, #16 + 3842 009c 6364 str r3, [r4, #68] +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3843 .loc 1 1970 9 is_stmt 1 view .LVU1305 +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3844 .loc 1 1970 9 view .LVU1306 + 3845 009e 84F84020 strb r2, [r4, #64] +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3846 .loc 1 1970 9 view .LVU1307 +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3847 .loc 1 1972 9 view .LVU1308 +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3848 .loc 1 1972 16 is_stmt 0 view .LVU1309 + 3849 00a2 0120 movs r0, #1 + 3850 .LVL242: +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3851 .loc 1 1972 16 view .LVU1310 + 3852 00a4 43E0 b .L254 + 3853 .LVL243: + 3854 .L255: +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3855 .loc 1 1902 7 is_stmt 1 view .LVU1311 +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3856 .loc 1 1902 28 is_stmt 0 view .LVU1312 + 3857 00a6 638D ldrh r3, [r4, #42] +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 3858 .loc 1 1902 22 view .LVU1313 + 3859 00a8 2385 strh r3, [r4, #40] @ movhi +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3860 .loc 1 1903 7 is_stmt 1 view .LVU1314 + 3861 .LVL244: +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3862 .loc 1 1903 16 is_stmt 0 view .LVU1315 + 3863 00aa 4FF00076 mov r6, #33554432 + 3864 00ae D6E7 b .L256 + ARM GAS /tmp/ccbUHtu7.s page 210 + + + 3865 .LVL245: + 3866 .L258: +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 3867 .loc 1 1927 9 is_stmt 1 view .LVU1316 +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 3868 .loc 1 1927 25 is_stmt 0 view .LVU1317 + 3869 00b0 2023 movs r3, #32 + 3870 00b2 84F84130 strb r3, [r4, #65] +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3871 .loc 1 1928 9 is_stmt 1 view .LVU1318 +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3872 .loc 1 1928 25 is_stmt 0 view .LVU1319 + 3873 00b6 0022 movs r2, #0 + 3874 00b8 84F84220 strb r2, [r4, #66] +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3875 .loc 1 1931 9 is_stmt 1 view .LVU1320 +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3876 .loc 1 1931 13 is_stmt 0 view .LVU1321 + 3877 00bc 636C ldr r3, [r4, #68] +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3878 .loc 1 1931 25 view .LVU1322 + 3879 00be 43F08003 orr r3, r3, #128 + 3880 00c2 6364 str r3, [r4, #68] +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3881 .loc 1 1934 9 is_stmt 1 view .LVU1323 +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3882 .loc 1 1934 9 view .LVU1324 + 3883 00c4 84F84020 strb r2, [r4, #64] +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3884 .loc 1 1934 9 view .LVU1325 +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3885 .loc 1 1936 9 view .LVU1326 +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3886 .loc 1 1936 16 is_stmt 0 view .LVU1327 + 3887 00c8 0120 movs r0, #1 + 3888 00ca 30E0 b .L254 + 3889 .LVL246: + 3890 .L267: +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3891 .loc 1 1943 9 is_stmt 1 view .LVU1328 + 3892 00cc 1F4B ldr r3, .L268+16 + 3893 00ce 0093 str r3, [sp] + 3894 00d0 3346 mov r3, r6 + 3895 00d2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 3896 00d6 2946 mov r1, r5 + 3897 00d8 2046 mov r0, r4 + 3898 .LVL247: +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3899 .loc 1 1943 9 is_stmt 0 view .LVU1329 + 3900 00da FFF7FEFF bl I2C_TransferConfig + 3901 .LVL248: +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3902 .loc 1 1946 9 is_stmt 1 view .LVU1330 +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3903 .loc 1 1946 13 is_stmt 0 view .LVU1331 + 3904 00de 638D ldrh r3, [r4, #42] + 3905 00e0 9BB2 uxth r3, r3 + ARM GAS /tmp/ccbUHtu7.s page 211 + + +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3906 .loc 1 1946 32 view .LVU1332 + 3907 00e2 228D ldrh r2, [r4, #40] +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3908 .loc 1 1946 25 view .LVU1333 + 3909 00e4 9B1A subs r3, r3, r2 + 3910 00e6 9BB2 uxth r3, r3 + 3911 00e8 6385 strh r3, [r4, #42] @ movhi +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3912 .loc 1 1949 9 is_stmt 1 view .LVU1334 +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3913 .loc 1 1949 9 view .LVU1335 + 3914 00ea 0023 movs r3, #0 + 3915 00ec 84F84030 strb r3, [r4, #64] +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3916 .loc 1 1949 9 view .LVU1336 +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3917 .loc 1 1955 9 view .LVU1337 + 3918 00f0 1021 movs r1, #16 + 3919 00f2 2046 mov r0, r4 + 3920 00f4 FFF7FEFF bl I2C_Enable_IRQ + 3921 .LVL249: +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3922 .loc 1 1958 9 view .LVU1338 +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3923 .loc 1 1958 13 is_stmt 0 view .LVU1339 + 3924 00f8 2268 ldr r2, [r4] +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3925 .loc 1 1958 23 view .LVU1340 + 3926 00fa 1368 ldr r3, [r2] +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3927 .loc 1 1958 29 view .LVU1341 + 3928 00fc 43F48043 orr r3, r3, #16384 + 3929 0100 1360 str r3, [r2] + 3930 0102 11E0 b .L261 + 3931 .LVL250: + 3932 .L257: +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3933 .loc 1 1978 7 is_stmt 1 view .LVU1342 +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3934 .loc 1 1978 21 is_stmt 0 view .LVU1343 + 3935 0104 124B ldr r3, .L268+20 + 3936 0106 6363 str r3, [r4, #52] +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); + 3937 .loc 1 1982 7 is_stmt 1 view .LVU1344 + 3938 0108 104B ldr r3, .L268+16 + 3939 010a 0093 str r3, [sp] + 3940 010c 4FF00073 mov r3, #33554432 + 3941 0110 D2B2 uxtb r2, r2 + 3942 0112 2946 mov r1, r5 + 3943 .LVL251: +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); + 3944 .loc 1 1982 7 is_stmt 0 view .LVU1345 + 3945 0114 2046 mov r0, r4 + 3946 0116 FFF7FEFF bl I2C_TransferConfig + 3947 .LVL252: +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 212 + + + 3948 .loc 1 1986 7 is_stmt 1 view .LVU1346 +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3949 .loc 1 1986 7 view .LVU1347 + 3950 011a 0023 movs r3, #0 + 3951 011c 84F84030 strb r3, [r4, #64] +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3952 .loc 1 1986 7 view .LVU1348 +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3953 .loc 1 1995 7 view .LVU1349 + 3954 0120 0121 movs r1, #1 + 3955 0122 2046 mov r0, r4 + 3956 0124 FFF7FEFF bl I2C_Enable_IRQ + 3957 .LVL253: + 3958 .L261: +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3959 .loc 1 1998 5 view .LVU1350 +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3960 .loc 1 1998 12 is_stmt 0 view .LVU1351 + 3961 0128 0020 movs r0, #0 + 3962 012a 00E0 b .L254 + 3963 .LVL254: + 3964 .L262: +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3965 .loc 1 2002 12 view .LVU1352 + 3966 012c 0220 movs r0, #2 + 3967 .LVL255: + 3968 .L254: +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3969 .loc 1 2004 1 view .LVU1353 + 3970 012e 02B0 add sp, sp, #8 + 3971 .LCFI47: + 3972 .cfi_remember_state + 3973 .cfi_def_cfa_offset 16 + 3974 @ sp needed + 3975 0130 70BD pop {r4, r5, r6, pc} + 3976 .LVL256: + 3977 .L263: + 3978 .LCFI48: + 3979 .cfi_restore_state +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 3980 .loc 1 1879 14 view .LVU1354 + 3981 0132 0220 movs r0, #2 + 3982 0134 FBE7 b .L254 + 3983 .L264: +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 3984 .loc 1 1883 5 view .LVU1355 + 3985 0136 0220 movs r0, #2 + 3986 0138 F9E7 b .L254 + 3987 .L269: + 3988 013a 00BF .align 2 + 3989 .L268: + 3990 013c 0000FFFF .word -65536 + 3991 0140 00000000 .word I2C_Master_ISR_DMA + 3992 0144 00000000 .word I2C_DMAMasterTransmitCplt + 3993 0148 00000000 .word I2C_DMAError + 3994 014c 00200080 .word -2147475456 + 3995 0150 00000000 .word I2C_Master_ISR_IT + ARM GAS /tmp/ccbUHtu7.s page 213 + + + 3996 .cfi_endproc + 3997 .LFE341: + 3999 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits + 4000 .align 1 + 4001 .global HAL_I2C_Master_Receive_DMA + 4002 .syntax unified + 4003 .thumb + 4004 .thumb_func + 4006 HAL_I2C_Master_Receive_DMA: + 4007 .LVL257: + 4008 .LFB342: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 4009 .loc 1 2018 1 is_stmt 1 view -0 + 4010 .cfi_startproc + 4011 @ args = 0, pretend = 0, frame = 0 + 4012 @ frame_needed = 0, uses_anonymous_args = 0 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 4013 .loc 1 2018 1 is_stmt 0 view .LVU1357 + 4014 0000 70B5 push {r4, r5, r6, lr} + 4015 .LCFI49: + 4016 .cfi_def_cfa_offset 16 + 4017 .cfi_offset 4, -16 + 4018 .cfi_offset 5, -12 + 4019 .cfi_offset 6, -8 + 4020 .cfi_offset 14, -4 + 4021 0002 82B0 sub sp, sp, #8 + 4022 .LCFI50: + 4023 .cfi_def_cfa_offset 24 + 4024 0004 0446 mov r4, r0 +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 4025 .loc 1 2019 3 is_stmt 1 view .LVU1358 +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4026 .loc 1 2020 3 view .LVU1359 +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4027 .loc 1 2022 3 view .LVU1360 +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4028 .loc 1 2022 11 is_stmt 0 view .LVU1361 + 4029 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 4030 .LVL258: +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4031 .loc 1 2022 11 view .LVU1362 + 4032 000a C0B2 uxtb r0, r0 +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4033 .loc 1 2022 6 view .LVU1363 + 4034 000c 2028 cmp r0, #32 + 4035 000e 40F08C80 bne .L279 + 4036 0012 0D46 mov r5, r1 +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4037 .loc 1 2024 5 is_stmt 1 view .LVU1364 +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4038 .loc 1 2024 9 is_stmt 0 view .LVU1365 + 4039 0014 2168 ldr r1, [r4] + 4040 .LVL259: +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4041 .loc 1 2024 9 view .LVU1366 + 4042 0016 8969 ldr r1, [r1, #24] +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 214 + + + 4043 .loc 1 2024 8 view .LVU1367 + 4044 0018 11F4004F tst r1, #32768 + 4045 001c 40F08880 bne .L280 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4046 .loc 1 2030 5 is_stmt 1 view .LVU1368 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4047 .loc 1 2030 5 view .LVU1369 + 4048 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 + 4049 0024 0129 cmp r1, #1 + 4050 0026 00F08580 beq .L281 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4051 .loc 1 2030 5 discriminator 2 view .LVU1370 + 4052 002a 0121 movs r1, #1 + 4053 002c 84F84010 strb r1, [r4, #64] +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4054 .loc 1 2030 5 discriminator 2 view .LVU1371 +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 4055 .loc 1 2032 5 discriminator 2 view .LVU1372 +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 4056 .loc 1 2032 23 is_stmt 0 discriminator 2 view .LVU1373 + 4057 0030 2221 movs r1, #34 + 4058 0032 84F84110 strb r1, [r4, #65] +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4059 .loc 1 2033 5 is_stmt 1 discriminator 2 view .LVU1374 +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4060 .loc 1 2033 23 is_stmt 0 discriminator 2 view .LVU1375 + 4061 0036 1021 movs r1, #16 + 4062 0038 84F84210 strb r1, [r4, #66] +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4063 .loc 1 2034 5 is_stmt 1 discriminator 2 view .LVU1376 +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4064 .loc 1 2034 23 is_stmt 0 discriminator 2 view .LVU1377 + 4065 003c 0021 movs r1, #0 + 4066 003e 6164 str r1, [r4, #68] +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4067 .loc 1 2037 5 is_stmt 1 discriminator 2 view .LVU1378 +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4068 .loc 1 2037 23 is_stmt 0 discriminator 2 view .LVU1379 + 4069 0040 6262 str r2, [r4, #36] +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4070 .loc 1 2038 5 is_stmt 1 discriminator 2 view .LVU1380 +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4071 .loc 1 2038 23 is_stmt 0 discriminator 2 view .LVU1381 + 4072 0042 6385 strh r3, [r4, #42] @ movhi +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 4073 .loc 1 2039 5 is_stmt 1 discriminator 2 view .LVU1382 +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 4074 .loc 1 2039 23 is_stmt 0 discriminator 2 view .LVU1383 + 4075 0044 3C4B ldr r3, .L285 + 4076 .LVL260: +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 4077 .loc 1 2039 23 discriminator 2 view .LVU1384 + 4078 0046 E362 str r3, [r4, #44] + 4079 .LVL261: +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4080 .loc 1 2040 5 is_stmt 1 discriminator 2 view .LVU1385 +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 215 + + + 4081 .loc 1 2040 23 is_stmt 0 discriminator 2 view .LVU1386 + 4082 0048 3C4B ldr r3, .L285+4 + 4083 004a 6363 str r3, [r4, #52] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4084 .loc 1 2042 5 is_stmt 1 discriminator 2 view .LVU1387 +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4085 .loc 1 2042 13 is_stmt 0 discriminator 2 view .LVU1388 + 4086 004c 638D ldrh r3, [r4, #42] + 4087 004e 9BB2 uxth r3, r3 +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4088 .loc 1 2042 8 discriminator 2 view .LVU1389 + 4089 0050 FF2B cmp r3, #255 + 4090 0052 27D9 bls .L272 +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 4091 .loc 1 2044 7 is_stmt 1 view .LVU1390 +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 4092 .loc 1 2044 22 is_stmt 0 view .LVU1391 + 4093 0054 FF23 movs r3, #255 + 4094 0056 2385 strh r3, [r4, #40] @ movhi +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4095 .loc 1 2045 7 is_stmt 1 view .LVU1392 + 4096 .LVL262: +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4097 .loc 1 2045 16 is_stmt 0 view .LVU1393 + 4098 0058 4FF08076 mov r6, #16777216 + 4099 .LVL263: + 4100 .L273: +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4101 .loc 1 2053 5 is_stmt 1 view .LVU1394 +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4102 .loc 1 2053 13 is_stmt 0 view .LVU1395 + 4103 005c 218D ldrh r1, [r4, #40] +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4104 .loc 1 2053 8 view .LVU1396 + 4105 005e 0029 cmp r1, #0 + 4106 0060 4FD0 beq .L274 +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4107 .loc 1 2055 7 is_stmt 1 view .LVU1397 +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4108 .loc 1 2055 15 is_stmt 0 view .LVU1398 + 4109 0062 E36B ldr r3, [r4, #60] +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4110 .loc 1 2055 10 view .LVU1399 + 4111 0064 1BB3 cbz r3, .L275 +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4112 .loc 1 2058 9 is_stmt 1 view .LVU1400 +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4113 .loc 1 2058 40 is_stmt 0 view .LVU1401 + 4114 0066 3649 ldr r1, .L285+8 + 4115 0068 D962 str r1, [r3, #44] +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4116 .loc 1 2061 9 is_stmt 1 view .LVU1402 +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4117 .loc 1 2061 13 is_stmt 0 view .LVU1403 + 4118 006a E36B ldr r3, [r4, #60] +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4119 .loc 1 2061 41 view .LVU1404 + ARM GAS /tmp/ccbUHtu7.s page 216 + + + 4120 006c 3549 ldr r1, .L285+12 + 4121 006e 5963 str r1, [r3, #52] +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 4122 .loc 1 2064 9 is_stmt 1 view .LVU1405 +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 4123 .loc 1 2064 13 is_stmt 0 view .LVU1406 + 4124 0070 E16B ldr r1, [r4, #60] +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 4125 .loc 1 2064 44 view .LVU1407 + 4126 0072 0023 movs r3, #0 + 4127 0074 0B63 str r3, [r1, #48] +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4128 .loc 1 2065 9 is_stmt 1 view .LVU1408 +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4129 .loc 1 2065 13 is_stmt 0 view .LVU1409 + 4130 0076 E16B ldr r1, [r4, #60] +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4131 .loc 1 2065 41 view .LVU1410 + 4132 0078 8B63 str r3, [r1, #56] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4133 .loc 1 2068 9 is_stmt 1 view .LVU1411 +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4134 .loc 1 2068 71 is_stmt 0 view .LVU1412 + 4135 007a 2168 ldr r1, [r4] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4136 .loc 1 2068 25 view .LVU1413 + 4137 007c 238D ldrh r3, [r4, #40] + 4138 007e 2431 adds r1, r1, #36 + 4139 0080 E06B ldr r0, [r4, #60] + 4140 0082 FFF7FEFF bl HAL_DMA_Start_IT + 4141 .LVL264: +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4142 .loc 1 2086 7 is_stmt 1 view .LVU1414 +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4143 .loc 1 2086 10 is_stmt 0 view .LVU1415 + 4144 0086 00B3 cbz r0, .L284 +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4145 .loc 1 2110 9 is_stmt 1 view .LVU1416 +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4146 .loc 1 2110 25 is_stmt 0 view .LVU1417 + 4147 0088 2023 movs r3, #32 + 4148 008a 84F84130 strb r3, [r4, #65] +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4149 .loc 1 2111 9 is_stmt 1 view .LVU1418 +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4150 .loc 1 2111 25 is_stmt 0 view .LVU1419 + 4151 008e 0022 movs r2, #0 + 4152 0090 84F84220 strb r2, [r4, #66] +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4153 .loc 1 2114 9 is_stmt 1 view .LVU1420 +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4154 .loc 1 2114 13 is_stmt 0 view .LVU1421 + 4155 0094 636C ldr r3, [r4, #68] +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4156 .loc 1 2114 25 view .LVU1422 + 4157 0096 43F01003 orr r3, r3, #16 + 4158 009a 6364 str r3, [r4, #68] + ARM GAS /tmp/ccbUHtu7.s page 217 + + +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4159 .loc 1 2117 9 is_stmt 1 view .LVU1423 +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4160 .loc 1 2117 9 view .LVU1424 + 4161 009c 84F84020 strb r2, [r4, #64] +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4162 .loc 1 2117 9 view .LVU1425 +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4163 .loc 1 2119 9 view .LVU1426 +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4164 .loc 1 2119 16 is_stmt 0 view .LVU1427 + 4165 00a0 0120 movs r0, #1 + 4166 .LVL265: +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4167 .loc 1 2119 16 view .LVU1428 + 4168 00a2 43E0 b .L271 + 4169 .LVL266: + 4170 .L272: +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 4171 .loc 1 2049 7 is_stmt 1 view .LVU1429 +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 4172 .loc 1 2049 28 is_stmt 0 view .LVU1430 + 4173 00a4 638D ldrh r3, [r4, #42] +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 4174 .loc 1 2049 22 view .LVU1431 + 4175 00a6 2385 strh r3, [r4, #40] @ movhi +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4176 .loc 1 2050 7 is_stmt 1 view .LVU1432 + 4177 .LVL267: +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4178 .loc 1 2050 16 is_stmt 0 view .LVU1433 + 4179 00a8 4FF00076 mov r6, #33554432 + 4180 00ac D6E7 b .L273 + 4181 .LVL268: + 4182 .L275: +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4183 .loc 1 2074 9 is_stmt 1 view .LVU1434 +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4184 .loc 1 2074 25 is_stmt 0 view .LVU1435 + 4185 00ae 2023 movs r3, #32 + 4186 00b0 84F84130 strb r3, [r4, #65] +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4187 .loc 1 2075 9 is_stmt 1 view .LVU1436 +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4188 .loc 1 2075 25 is_stmt 0 view .LVU1437 + 4189 00b4 0022 movs r2, #0 + 4190 .LVL269: +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4191 .loc 1 2075 25 view .LVU1438 + 4192 00b6 84F84220 strb r2, [r4, #66] +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4193 .loc 1 2078 9 is_stmt 1 view .LVU1439 +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4194 .loc 1 2078 13 is_stmt 0 view .LVU1440 + 4195 00ba 636C ldr r3, [r4, #68] +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4196 .loc 1 2078 25 view .LVU1441 + ARM GAS /tmp/ccbUHtu7.s page 218 + + + 4197 00bc 43F08003 orr r3, r3, #128 + 4198 00c0 6364 str r3, [r4, #68] +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4199 .loc 1 2081 9 is_stmt 1 view .LVU1442 +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4200 .loc 1 2081 9 view .LVU1443 + 4201 00c2 84F84020 strb r2, [r4, #64] +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4202 .loc 1 2081 9 view .LVU1444 +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4203 .loc 1 2083 9 view .LVU1445 +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4204 .loc 1 2083 16 is_stmt 0 view .LVU1446 + 4205 00c6 0120 movs r0, #1 + 4206 00c8 30E0 b .L271 + 4207 .LVL270: + 4208 .L284: +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4209 .loc 1 2090 9 is_stmt 1 view .LVU1447 + 4210 00ca 1F4B ldr r3, .L285+16 + 4211 00cc 0093 str r3, [sp] + 4212 00ce 3346 mov r3, r6 + 4213 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 4214 00d4 2946 mov r1, r5 + 4215 00d6 2046 mov r0, r4 + 4216 .LVL271: +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4217 .loc 1 2090 9 is_stmt 0 view .LVU1448 + 4218 00d8 FFF7FEFF bl I2C_TransferConfig + 4219 .LVL272: +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4220 .loc 1 2093 9 is_stmt 1 view .LVU1449 +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4221 .loc 1 2093 13 is_stmt 0 view .LVU1450 + 4222 00dc 638D ldrh r3, [r4, #42] + 4223 00de 9BB2 uxth r3, r3 +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4224 .loc 1 2093 32 view .LVU1451 + 4225 00e0 228D ldrh r2, [r4, #40] +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4226 .loc 1 2093 25 view .LVU1452 + 4227 00e2 9B1A subs r3, r3, r2 + 4228 00e4 9BB2 uxth r3, r3 + 4229 00e6 6385 strh r3, [r4, #42] @ movhi +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4230 .loc 1 2096 9 is_stmt 1 view .LVU1453 +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4231 .loc 1 2096 9 view .LVU1454 + 4232 00e8 0023 movs r3, #0 + 4233 00ea 84F84030 strb r3, [r4, #64] +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4234 .loc 1 2096 9 view .LVU1455 +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4235 .loc 1 2102 9 view .LVU1456 + 4236 00ee 1021 movs r1, #16 + 4237 00f0 2046 mov r0, r4 + 4238 00f2 FFF7FEFF bl I2C_Enable_IRQ + ARM GAS /tmp/ccbUHtu7.s page 219 + + + 4239 .LVL273: +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4240 .loc 1 2105 9 view .LVU1457 +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4241 .loc 1 2105 13 is_stmt 0 view .LVU1458 + 4242 00f6 2268 ldr r2, [r4] +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4243 .loc 1 2105 23 view .LVU1459 + 4244 00f8 1368 ldr r3, [r2] +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4245 .loc 1 2105 29 view .LVU1460 + 4246 00fa 43F40043 orr r3, r3, #32768 + 4247 00fe 1360 str r3, [r2] + 4248 0100 11E0 b .L278 + 4249 .LVL274: + 4250 .L274: +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4251 .loc 1 2125 7 is_stmt 1 view .LVU1461 +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4252 .loc 1 2125 21 is_stmt 0 view .LVU1462 + 4253 0102 124B ldr r3, .L285+20 + 4254 0104 6363 str r3, [r4, #52] +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 4255 .loc 1 2129 7 is_stmt 1 view .LVU1463 + 4256 0106 104B ldr r3, .L285+16 + 4257 0108 0093 str r3, [sp] + 4258 010a 4FF00073 mov r3, #33554432 + 4259 010e CAB2 uxtb r2, r1 + 4260 .LVL275: +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 4261 .loc 1 2129 7 is_stmt 0 view .LVU1464 + 4262 0110 2946 mov r1, r5 + 4263 0112 2046 mov r0, r4 + 4264 0114 FFF7FEFF bl I2C_TransferConfig + 4265 .LVL276: +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4266 .loc 1 2133 7 is_stmt 1 view .LVU1465 +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4267 .loc 1 2133 7 view .LVU1466 + 4268 0118 0023 movs r3, #0 + 4269 011a 84F84030 strb r3, [r4, #64] +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4270 .loc 1 2133 7 view .LVU1467 +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4271 .loc 1 2142 7 view .LVU1468 + 4272 011e 0121 movs r1, #1 + 4273 0120 2046 mov r0, r4 + 4274 0122 FFF7FEFF bl I2C_Enable_IRQ + 4275 .LVL277: + 4276 .L278: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4277 .loc 1 2145 5 view .LVU1469 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4278 .loc 1 2145 12 is_stmt 0 view .LVU1470 + 4279 0126 0020 movs r0, #0 + 4280 0128 00E0 b .L271 + 4281 .LVL278: + ARM GAS /tmp/ccbUHtu7.s page 220 + + + 4282 .L279: +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4283 .loc 1 2149 12 view .LVU1471 + 4284 012a 0220 movs r0, #2 + 4285 .LVL279: + 4286 .L271: +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4287 .loc 1 2151 1 view .LVU1472 + 4288 012c 02B0 add sp, sp, #8 + 4289 .LCFI51: + 4290 .cfi_remember_state + 4291 .cfi_def_cfa_offset 16 + 4292 @ sp needed + 4293 012e 70BD pop {r4, r5, r6, pc} + 4294 .LVL280: + 4295 .L280: + 4296 .LCFI52: + 4297 .cfi_restore_state +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4298 .loc 1 2026 14 view .LVU1473 + 4299 0130 0220 movs r0, #2 + 4300 0132 FBE7 b .L271 + 4301 .L281: +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4302 .loc 1 2030 5 view .LVU1474 + 4303 0134 0220 movs r0, #2 + 4304 0136 F9E7 b .L271 + 4305 .L286: + 4306 .align 2 + 4307 .L285: + 4308 0138 0000FFFF .word -65536 + 4309 013c 00000000 .word I2C_Master_ISR_DMA + 4310 0140 00000000 .word I2C_DMAMasterReceiveCplt + 4311 0144 00000000 .word I2C_DMAError + 4312 0148 00240080 .word -2147474432 + 4313 014c 00000000 .word I2C_Master_ISR_IT + 4314 .cfi_endproc + 4315 .LFE342: + 4317 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits + 4318 .align 1 + 4319 .global HAL_I2C_Slave_Transmit_DMA + 4320 .syntax unified + 4321 .thumb + 4322 .thumb_func + 4324 HAL_I2C_Slave_Transmit_DMA: + 4325 .LVL281: + 4326 .LFB343: +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 4327 .loc 1 2162 1 is_stmt 1 view -0 + 4328 .cfi_startproc + 4329 @ args = 0, pretend = 0, frame = 0 + 4330 @ frame_needed = 0, uses_anonymous_args = 0 +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 4331 .loc 1 2162 1 is_stmt 0 view .LVU1476 + 4332 0000 38B5 push {r3, r4, r5, lr} + 4333 .LCFI53: + 4334 .cfi_def_cfa_offset 16 + ARM GAS /tmp/ccbUHtu7.s page 221 + + + 4335 .cfi_offset 3, -16 + 4336 .cfi_offset 4, -12 + 4337 .cfi_offset 5, -8 + 4338 .cfi_offset 14, -4 +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4339 .loc 1 2163 3 is_stmt 1 view .LVU1477 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4340 .loc 1 2165 3 view .LVU1478 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4341 .loc 1 2165 11 is_stmt 0 view .LVU1479 + 4342 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 4343 0006 DBB2 uxtb r3, r3 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4344 .loc 1 2165 6 view .LVU1480 + 4345 0008 202B cmp r3, #32 + 4346 000a 63D1 bne .L294 + 4347 000c 0446 mov r4, r0 +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4348 .loc 1 2167 5 is_stmt 1 view .LVU1481 +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4349 .loc 1 2167 8 is_stmt 0 view .LVU1482 + 4350 000e 0029 cmp r1, #0 + 4351 0010 3AD0 beq .L289 +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4352 .loc 1 2167 25 discriminator 1 view .LVU1483 + 4353 0012 002A cmp r2, #0 + 4354 0014 38D0 beq .L289 +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4355 .loc 1 2173 5 is_stmt 1 view .LVU1484 +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4356 .loc 1 2173 5 view .LVU1485 + 4357 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 4358 001a 012B cmp r3, #1 + 4359 001c 5DD0 beq .L295 +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4360 .loc 1 2173 5 discriminator 2 view .LVU1486 + 4361 001e 0123 movs r3, #1 + 4362 0020 80F84030 strb r3, [r0, #64] +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4363 .loc 1 2173 5 discriminator 2 view .LVU1487 +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 4364 .loc 1 2175 5 discriminator 2 view .LVU1488 +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 4365 .loc 1 2175 23 is_stmt 0 discriminator 2 view .LVU1489 + 4366 0024 2123 movs r3, #33 + 4367 0026 80F84130 strb r3, [r0, #65] +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4368 .loc 1 2176 5 is_stmt 1 discriminator 2 view .LVU1490 +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4369 .loc 1 2176 23 is_stmt 0 discriminator 2 view .LVU1491 + 4370 002a 2023 movs r3, #32 + 4371 002c 80F84230 strb r3, [r0, #66] +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4372 .loc 1 2177 5 is_stmt 1 discriminator 2 view .LVU1492 +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4373 .loc 1 2177 23 is_stmt 0 discriminator 2 view .LVU1493 + 4374 0030 0023 movs r3, #0 + ARM GAS /tmp/ccbUHtu7.s page 222 + + + 4375 0032 4364 str r3, [r0, #68] +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4376 .loc 1 2180 5 is_stmt 1 discriminator 2 view .LVU1494 +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4377 .loc 1 2180 23 is_stmt 0 discriminator 2 view .LVU1495 + 4378 0034 4162 str r1, [r0, #36] +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 4379 .loc 1 2181 5 is_stmt 1 discriminator 2 view .LVU1496 +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 4380 .loc 1 2181 23 is_stmt 0 discriminator 2 view .LVU1497 + 4381 0036 4285 strh r2, [r0, #42] @ movhi +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4382 .loc 1 2182 5 is_stmt 1 discriminator 2 view .LVU1498 +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4383 .loc 1 2182 29 is_stmt 0 discriminator 2 view .LVU1499 + 4384 0038 438D ldrh r3, [r0, #42] +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4385 .loc 1 2182 23 discriminator 2 view .LVU1500 + 4386 003a 0385 strh r3, [r0, #40] @ movhi +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 4387 .loc 1 2183 5 is_stmt 1 discriminator 2 view .LVU1501 +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 4388 .loc 1 2183 23 is_stmt 0 discriminator 2 view .LVU1502 + 4389 003c 284B ldr r3, .L299 + 4390 003e C362 str r3, [r0, #44] +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4391 .loc 1 2184 5 is_stmt 1 discriminator 2 view .LVU1503 +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4392 .loc 1 2184 23 is_stmt 0 discriminator 2 view .LVU1504 + 4393 0040 284B ldr r3, .L299+4 + 4394 0042 4363 str r3, [r0, #52] +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4395 .loc 1 2186 5 is_stmt 1 discriminator 2 view .LVU1505 +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4396 .loc 1 2186 13 is_stmt 0 discriminator 2 view .LVU1506 + 4397 0044 836B ldr r3, [r0, #56] +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4398 .loc 1 2186 8 discriminator 2 view .LVU1507 + 4399 0046 23B3 cbz r3, .L291 +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4400 .loc 1 2189 7 is_stmt 1 view .LVU1508 +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4401 .loc 1 2189 38 is_stmt 0 view .LVU1509 + 4402 0048 274A ldr r2, .L299+8 + 4403 .LVL282: +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4404 .loc 1 2189 38 view .LVU1510 + 4405 004a DA62 str r2, [r3, #44] +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4406 .loc 1 2192 7 is_stmt 1 view .LVU1511 +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4407 .loc 1 2192 11 is_stmt 0 view .LVU1512 + 4408 004c 836B ldr r3, [r0, #56] +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4409 .loc 1 2192 39 view .LVU1513 + 4410 004e 274A ldr r2, .L299+12 + 4411 0050 5A63 str r2, [r3, #52] + ARM GAS /tmp/ccbUHtu7.s page 223 + + +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 4412 .loc 1 2195 7 is_stmt 1 view .LVU1514 +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 4413 .loc 1 2195 11 is_stmt 0 view .LVU1515 + 4414 0052 826B ldr r2, [r0, #56] +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 4415 .loc 1 2195 42 view .LVU1516 + 4416 0054 0023 movs r3, #0 + 4417 0056 1363 str r3, [r2, #48] +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4418 .loc 1 2196 7 is_stmt 1 view .LVU1517 +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4419 .loc 1 2196 11 is_stmt 0 view .LVU1518 + 4420 0058 826B ldr r2, [r0, #56] +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4421 .loc 1 2196 39 view .LVU1519 + 4422 005a 9363 str r3, [r2, #56] +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4423 .loc 1 2199 7 is_stmt 1 view .LVU1520 +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4424 .loc 1 2199 86 is_stmt 0 view .LVU1521 + 4425 005c 0268 ldr r2, [r0] +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4426 .loc 1 2199 23 view .LVU1522 + 4427 005e 038D ldrh r3, [r0, #40] + 4428 0060 2832 adds r2, r2, #40 + 4429 0062 806B ldr r0, [r0, #56] + 4430 .LVL283: +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4431 .loc 1 2199 23 view .LVU1523 + 4432 0064 FFF7FEFF bl HAL_DMA_Start_IT + 4433 .LVL284: +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4434 .loc 1 2217 5 is_stmt 1 view .LVU1524 +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4435 .loc 1 2217 8 is_stmt 0 view .LVU1525 + 4436 0068 0546 mov r5, r0 + 4437 006a 00B3 cbz r0, .L298 +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4438 .loc 1 2237 7 is_stmt 1 view .LVU1526 +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4439 .loc 1 2237 23 is_stmt 0 view .LVU1527 + 4440 006c 2823 movs r3, #40 + 4441 006e 84F84130 strb r3, [r4, #65] +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4442 .loc 1 2238 7 is_stmt 1 view .LVU1528 +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4443 .loc 1 2238 23 is_stmt 0 view .LVU1529 + 4444 0072 0022 movs r2, #0 + 4445 0074 84F84220 strb r2, [r4, #66] +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4446 .loc 1 2241 7 is_stmt 1 view .LVU1530 +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4447 .loc 1 2241 11 is_stmt 0 view .LVU1531 + 4448 0078 636C ldr r3, [r4, #68] +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4449 .loc 1 2241 23 view .LVU1532 + ARM GAS /tmp/ccbUHtu7.s page 224 + + + 4450 007a 43F01003 orr r3, r3, #16 + 4451 007e 6364 str r3, [r4, #68] +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4452 .loc 1 2244 7 is_stmt 1 view .LVU1533 +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4453 .loc 1 2244 7 view .LVU1534 + 4454 0080 84F84020 strb r2, [r4, #64] +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4455 .loc 1 2244 7 view .LVU1535 +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4456 .loc 1 2246 7 view .LVU1536 +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4457 .loc 1 2246 14 is_stmt 0 view .LVU1537 + 4458 0084 0125 movs r5, #1 + 4459 0086 26E0 b .L288 + 4460 .LVL285: + 4461 .L289: +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4462 .loc 1 2169 7 is_stmt 1 view .LVU1538 +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4463 .loc 1 2169 23 is_stmt 0 view .LVU1539 + 4464 0088 4FF40073 mov r3, #512 + 4465 008c 6364 str r3, [r4, #68] +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4466 .loc 1 2170 7 is_stmt 1 view .LVU1540 +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4467 .loc 1 2170 15 is_stmt 0 view .LVU1541 + 4468 008e 0125 movs r5, #1 + 4469 0090 21E0 b .L288 + 4470 .L291: +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4471 .loc 1 2205 7 is_stmt 1 view .LVU1542 +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4472 .loc 1 2205 23 is_stmt 0 view .LVU1543 + 4473 0092 2823 movs r3, #40 + 4474 0094 80F84130 strb r3, [r0, #65] +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4475 .loc 1 2206 7 is_stmt 1 view .LVU1544 +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4476 .loc 1 2206 23 is_stmt 0 view .LVU1545 + 4477 0098 0022 movs r2, #0 + 4478 .LVL286: +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4479 .loc 1 2206 23 view .LVU1546 + 4480 009a 80F84220 strb r2, [r0, #66] +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4481 .loc 1 2209 7 is_stmt 1 view .LVU1547 +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4482 .loc 1 2209 11 is_stmt 0 view .LVU1548 + 4483 009e 436C ldr r3, [r0, #68] +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4484 .loc 1 2209 23 view .LVU1549 + 4485 00a0 43F08003 orr r3, r3, #128 + 4486 00a4 4364 str r3, [r0, #68] +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4487 .loc 1 2212 7 is_stmt 1 view .LVU1550 +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 225 + + + 4488 .loc 1 2212 7 view .LVU1551 + 4489 00a6 80F84020 strb r2, [r0, #64] +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4490 .loc 1 2212 7 view .LVU1552 +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4491 .loc 1 2214 7 view .LVU1553 +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4492 .loc 1 2214 14 is_stmt 0 view .LVU1554 + 4493 00aa 0125 movs r5, #1 + 4494 00ac 13E0 b .L288 + 4495 .LVL287: + 4496 .L298: +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4497 .loc 1 2220 7 is_stmt 1 view .LVU1555 +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4498 .loc 1 2220 11 is_stmt 0 view .LVU1556 + 4499 00ae 2268 ldr r2, [r4] +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4500 .loc 1 2220 21 view .LVU1557 + 4501 00b0 5368 ldr r3, [r2, #4] +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4502 .loc 1 2220 27 view .LVU1558 + 4503 00b2 23F40043 bic r3, r3, #32768 + 4504 00b6 5360 str r3, [r2, #4] +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4505 .loc 1 2223 7 is_stmt 1 view .LVU1559 +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4506 .loc 1 2223 7 view .LVU1560 + 4507 00b8 0023 movs r3, #0 + 4508 00ba 84F84030 strb r3, [r4, #64] +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4509 .loc 1 2223 7 view .LVU1561 +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4510 .loc 1 2229 7 view .LVU1562 + 4511 00be 4FF40041 mov r1, #32768 + 4512 00c2 2046 mov r0, r4 + 4513 .LVL288: +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4514 .loc 1 2229 7 is_stmt 0 view .LVU1563 + 4515 00c4 FFF7FEFF bl I2C_Enable_IRQ + 4516 .LVL289: +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4517 .loc 1 2232 7 is_stmt 1 view .LVU1564 +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4518 .loc 1 2232 11 is_stmt 0 view .LVU1565 + 4519 00c8 2268 ldr r2, [r4] +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4520 .loc 1 2232 21 view .LVU1566 + 4521 00ca 1368 ldr r3, [r2] +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4522 .loc 1 2232 27 view .LVU1567 + 4523 00cc 43F48043 orr r3, r3, #16384 + 4524 00d0 1360 str r3, [r2] +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4525 .loc 1 2249 5 is_stmt 1 view .LVU1568 +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4526 .loc 1 2249 12 is_stmt 0 view .LVU1569 + ARM GAS /tmp/ccbUHtu7.s page 226 + + + 4527 00d2 00E0 b .L288 + 4528 .LVL290: + 4529 .L294: +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4530 .loc 1 2253 12 view .LVU1570 + 4531 00d4 0225 movs r5, #2 + 4532 .LVL291: + 4533 .L288: +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4534 .loc 1 2255 1 view .LVU1571 + 4535 00d6 2846 mov r0, r5 + 4536 00d8 38BD pop {r3, r4, r5, pc} + 4537 .LVL292: + 4538 .L295: +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4539 .loc 1 2173 5 view .LVU1572 + 4540 00da 0225 movs r5, #2 + 4541 00dc FBE7 b .L288 + 4542 .L300: + 4543 00de 00BF .align 2 + 4544 .L299: + 4545 00e0 0000FFFF .word -65536 + 4546 00e4 00000000 .word I2C_Slave_ISR_DMA + 4547 00e8 00000000 .word I2C_DMASlaveTransmitCplt + 4548 00ec 00000000 .word I2C_DMAError + 4549 .cfi_endproc + 4550 .LFE343: + 4552 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits + 4553 .align 1 + 4554 .global HAL_I2C_Slave_Receive_DMA + 4555 .syntax unified + 4556 .thumb + 4557 .thumb_func + 4559 HAL_I2C_Slave_Receive_DMA: + 4560 .LVL293: + 4561 .LFB344: +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 4562 .loc 1 2266 1 is_stmt 1 view -0 + 4563 .cfi_startproc + 4564 @ args = 0, pretend = 0, frame = 0 + 4565 @ frame_needed = 0, uses_anonymous_args = 0 +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 4566 .loc 1 2266 1 is_stmt 0 view .LVU1574 + 4567 0000 38B5 push {r3, r4, r5, lr} + 4568 .LCFI54: + 4569 .cfi_def_cfa_offset 16 + 4570 .cfi_offset 3, -16 + 4571 .cfi_offset 4, -12 + 4572 .cfi_offset 5, -8 + 4573 .cfi_offset 14, -4 +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4574 .loc 1 2267 3 is_stmt 1 view .LVU1575 +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4575 .loc 1 2269 3 view .LVU1576 +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4576 .loc 1 2269 11 is_stmt 0 view .LVU1577 + 4577 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + ARM GAS /tmp/ccbUHtu7.s page 227 + + + 4578 0006 DBB2 uxtb r3, r3 +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4579 .loc 1 2269 6 view .LVU1578 + 4580 0008 202B cmp r3, #32 + 4581 000a 65D1 bne .L308 + 4582 000c 0446 mov r4, r0 +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4583 .loc 1 2271 5 is_stmt 1 view .LVU1579 +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4584 .loc 1 2271 8 is_stmt 0 view .LVU1580 + 4585 000e 0029 cmp r1, #0 + 4586 0010 3CD0 beq .L303 +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4587 .loc 1 2271 25 discriminator 1 view .LVU1581 + 4588 0012 002A cmp r2, #0 + 4589 0014 3AD0 beq .L303 +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4590 .loc 1 2277 5 is_stmt 1 view .LVU1582 +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4591 .loc 1 2277 5 view .LVU1583 + 4592 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 4593 001a 012B cmp r3, #1 + 4594 001c 5FD0 beq .L309 +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4595 .loc 1 2277 5 discriminator 2 view .LVU1584 + 4596 001e 0123 movs r3, #1 + 4597 0020 80F84030 strb r3, [r0, #64] +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4598 .loc 1 2277 5 discriminator 2 view .LVU1585 +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 4599 .loc 1 2279 5 discriminator 2 view .LVU1586 +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 4600 .loc 1 2279 23 is_stmt 0 discriminator 2 view .LVU1587 + 4601 0024 2223 movs r3, #34 + 4602 0026 80F84130 strb r3, [r0, #65] +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4603 .loc 1 2280 5 is_stmt 1 discriminator 2 view .LVU1588 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4604 .loc 1 2280 23 is_stmt 0 discriminator 2 view .LVU1589 + 4605 002a 2023 movs r3, #32 + 4606 002c 80F84230 strb r3, [r0, #66] +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4607 .loc 1 2281 5 is_stmt 1 discriminator 2 view .LVU1590 +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4608 .loc 1 2281 23 is_stmt 0 discriminator 2 view .LVU1591 + 4609 0030 0023 movs r3, #0 + 4610 0032 4364 str r3, [r0, #68] +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4611 .loc 1 2284 5 is_stmt 1 discriminator 2 view .LVU1592 +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4612 .loc 1 2284 23 is_stmt 0 discriminator 2 view .LVU1593 + 4613 0034 4162 str r1, [r0, #36] +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 4614 .loc 1 2285 5 is_stmt 1 discriminator 2 view .LVU1594 +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 4615 .loc 1 2285 23 is_stmt 0 discriminator 2 view .LVU1595 + 4616 0036 4285 strh r2, [r0, #42] @ movhi + ARM GAS /tmp/ccbUHtu7.s page 228 + + +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4617 .loc 1 2286 5 is_stmt 1 discriminator 2 view .LVU1596 +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4618 .loc 1 2286 29 is_stmt 0 discriminator 2 view .LVU1597 + 4619 0038 438D ldrh r3, [r0, #42] +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 4620 .loc 1 2286 23 discriminator 2 view .LVU1598 + 4621 003a 0385 strh r3, [r0, #40] @ movhi +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 4622 .loc 1 2287 5 is_stmt 1 discriminator 2 view .LVU1599 +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 4623 .loc 1 2287 23 is_stmt 0 discriminator 2 view .LVU1600 + 4624 003c 294B ldr r3, .L313 + 4625 003e C362 str r3, [r0, #44] +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4626 .loc 1 2288 5 is_stmt 1 discriminator 2 view .LVU1601 +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4627 .loc 1 2288 23 is_stmt 0 discriminator 2 view .LVU1602 + 4628 0040 294B ldr r3, .L313+4 + 4629 0042 4363 str r3, [r0, #52] +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4630 .loc 1 2290 5 is_stmt 1 discriminator 2 view .LVU1603 +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4631 .loc 1 2290 13 is_stmt 0 discriminator 2 view .LVU1604 + 4632 0044 C36B ldr r3, [r0, #60] +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4633 .loc 1 2290 8 discriminator 2 view .LVU1605 + 4634 0046 33B3 cbz r3, .L305 +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4635 .loc 1 2293 7 is_stmt 1 view .LVU1606 +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4636 .loc 1 2293 38 is_stmt 0 view .LVU1607 + 4637 0048 284A ldr r2, .L313+8 + 4638 .LVL294: +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4639 .loc 1 2293 38 view .LVU1608 + 4640 004a DA62 str r2, [r3, #44] +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4641 .loc 1 2296 7 is_stmt 1 view .LVU1609 +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4642 .loc 1 2296 11 is_stmt 0 view .LVU1610 + 4643 004c C36B ldr r3, [r0, #60] +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4644 .loc 1 2296 39 view .LVU1611 + 4645 004e 284A ldr r2, .L313+12 + 4646 0050 5A63 str r2, [r3, #52] +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 4647 .loc 1 2299 7 is_stmt 1 view .LVU1612 +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 4648 .loc 1 2299 11 is_stmt 0 view .LVU1613 + 4649 0052 C26B ldr r2, [r0, #60] +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 4650 .loc 1 2299 42 view .LVU1614 + 4651 0054 0023 movs r3, #0 + 4652 0056 1363 str r3, [r2, #48] +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4653 .loc 1 2300 7 is_stmt 1 view .LVU1615 + ARM GAS /tmp/ccbUHtu7.s page 229 + + +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4654 .loc 1 2300 11 is_stmt 0 view .LVU1616 + 4655 0058 C26B ldr r2, [r0, #60] +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4656 .loc 1 2300 39 view .LVU1617 + 4657 005a 9363 str r3, [r2, #56] +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4658 .loc 1 2303 7 is_stmt 1 view .LVU1618 +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4659 .loc 1 2303 69 is_stmt 0 view .LVU1619 + 4660 005c 0068 ldr r0, [r0] + 4661 .LVL295: +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4662 .loc 1 2303 23 view .LVU1620 + 4663 005e 238D ldrh r3, [r4, #40] + 4664 0060 0A46 mov r2, r1 + 4665 0062 00F12401 add r1, r0, #36 + 4666 .LVL296: +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 4667 .loc 1 2303 23 view .LVU1621 + 4668 0066 E06B ldr r0, [r4, #60] + 4669 0068 FFF7FEFF bl HAL_DMA_Start_IT + 4670 .LVL297: +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4671 .loc 1 2321 5 is_stmt 1 view .LVU1622 +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4672 .loc 1 2321 8 is_stmt 0 view .LVU1623 + 4673 006c 0546 mov r5, r0 + 4674 006e 00B3 cbz r0, .L312 +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4675 .loc 1 2341 7 is_stmt 1 view .LVU1624 +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4676 .loc 1 2341 23 is_stmt 0 view .LVU1625 + 4677 0070 2823 movs r3, #40 + 4678 0072 84F84130 strb r3, [r4, #65] +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4679 .loc 1 2342 7 is_stmt 1 view .LVU1626 +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4680 .loc 1 2342 23 is_stmt 0 view .LVU1627 + 4681 0076 0022 movs r2, #0 + 4682 0078 84F84220 strb r2, [r4, #66] +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4683 .loc 1 2345 7 is_stmt 1 view .LVU1628 +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4684 .loc 1 2345 11 is_stmt 0 view .LVU1629 + 4685 007c 636C ldr r3, [r4, #68] +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4686 .loc 1 2345 23 view .LVU1630 + 4687 007e 43F01003 orr r3, r3, #16 + 4688 0082 6364 str r3, [r4, #68] +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4689 .loc 1 2348 7 is_stmt 1 view .LVU1631 +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4690 .loc 1 2348 7 view .LVU1632 + 4691 0084 84F84020 strb r2, [r4, #64] +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4692 .loc 1 2348 7 view .LVU1633 + ARM GAS /tmp/ccbUHtu7.s page 230 + + +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4693 .loc 1 2350 7 view .LVU1634 +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4694 .loc 1 2350 14 is_stmt 0 view .LVU1635 + 4695 0088 0125 movs r5, #1 + 4696 008a 26E0 b .L302 + 4697 .LVL298: + 4698 .L303: +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4699 .loc 1 2273 7 is_stmt 1 view .LVU1636 +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4700 .loc 1 2273 23 is_stmt 0 view .LVU1637 + 4701 008c 4FF40073 mov r3, #512 + 4702 0090 6364 str r3, [r4, #68] +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4703 .loc 1 2274 7 is_stmt 1 view .LVU1638 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4704 .loc 1 2274 15 is_stmt 0 view .LVU1639 + 4705 0092 0125 movs r5, #1 + 4706 0094 21E0 b .L302 + 4707 .L305: +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4708 .loc 1 2309 7 is_stmt 1 view .LVU1640 +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 4709 .loc 1 2309 23 is_stmt 0 view .LVU1641 + 4710 0096 2823 movs r3, #40 + 4711 0098 80F84130 strb r3, [r0, #65] +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4712 .loc 1 2310 7 is_stmt 1 view .LVU1642 +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4713 .loc 1 2310 23 is_stmt 0 view .LVU1643 + 4714 009c 0022 movs r2, #0 + 4715 .LVL299: +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4716 .loc 1 2310 23 view .LVU1644 + 4717 009e 80F84220 strb r2, [r0, #66] +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4718 .loc 1 2313 7 is_stmt 1 view .LVU1645 +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4719 .loc 1 2313 11 is_stmt 0 view .LVU1646 + 4720 00a2 436C ldr r3, [r0, #68] +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4721 .loc 1 2313 23 view .LVU1647 + 4722 00a4 43F08003 orr r3, r3, #128 + 4723 00a8 4364 str r3, [r0, #68] +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4724 .loc 1 2316 7 is_stmt 1 view .LVU1648 +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4725 .loc 1 2316 7 view .LVU1649 + 4726 00aa 80F84020 strb r2, [r0, #64] +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4727 .loc 1 2316 7 view .LVU1650 +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4728 .loc 1 2318 7 view .LVU1651 +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4729 .loc 1 2318 14 is_stmt 0 view .LVU1652 + 4730 00ae 0125 movs r5, #1 + ARM GAS /tmp/ccbUHtu7.s page 231 + + + 4731 00b0 13E0 b .L302 + 4732 .LVL300: + 4733 .L312: +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4734 .loc 1 2324 7 is_stmt 1 view .LVU1653 +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4735 .loc 1 2324 11 is_stmt 0 view .LVU1654 + 4736 00b2 2268 ldr r2, [r4] +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4737 .loc 1 2324 21 view .LVU1655 + 4738 00b4 5368 ldr r3, [r2, #4] +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4739 .loc 1 2324 27 view .LVU1656 + 4740 00b6 23F40043 bic r3, r3, #32768 + 4741 00ba 5360 str r3, [r2, #4] +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4742 .loc 1 2327 7 is_stmt 1 view .LVU1657 +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4743 .loc 1 2327 7 view .LVU1658 + 4744 00bc 0023 movs r3, #0 + 4745 00be 84F84030 strb r3, [r4, #64] +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4746 .loc 1 2327 7 view .LVU1659 +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4747 .loc 1 2333 7 view .LVU1660 + 4748 00c2 4FF40041 mov r1, #32768 + 4749 00c6 2046 mov r0, r4 + 4750 .LVL301: +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4751 .loc 1 2333 7 is_stmt 0 view .LVU1661 + 4752 00c8 FFF7FEFF bl I2C_Enable_IRQ + 4753 .LVL302: +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4754 .loc 1 2336 7 is_stmt 1 view .LVU1662 +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4755 .loc 1 2336 11 is_stmt 0 view .LVU1663 + 4756 00cc 2268 ldr r2, [r4] +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4757 .loc 1 2336 21 view .LVU1664 + 4758 00ce 1368 ldr r3, [r2] +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4759 .loc 1 2336 27 view .LVU1665 + 4760 00d0 43F40043 orr r3, r3, #32768 + 4761 00d4 1360 str r3, [r2] +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4762 .loc 1 2353 5 is_stmt 1 view .LVU1666 +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4763 .loc 1 2353 12 is_stmt 0 view .LVU1667 + 4764 00d6 00E0 b .L302 + 4765 .LVL303: + 4766 .L308: +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4767 .loc 1 2357 12 view .LVU1668 + 4768 00d8 0225 movs r5, #2 + 4769 .LVL304: + 4770 .L302: +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + ARM GAS /tmp/ccbUHtu7.s page 232 + + + 4771 .loc 1 2359 1 view .LVU1669 + 4772 00da 2846 mov r0, r5 + 4773 00dc 38BD pop {r3, r4, r5, pc} + 4774 .LVL305: + 4775 .L309: +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4776 .loc 1 2277 5 view .LVU1670 + 4777 00de 0225 movs r5, #2 + 4778 00e0 FBE7 b .L302 + 4779 .L314: + 4780 00e2 00BF .align 2 + 4781 .L313: + 4782 00e4 0000FFFF .word -65536 + 4783 00e8 00000000 .word I2C_Slave_ISR_DMA + 4784 00ec 00000000 .word I2C_DMASlaveReceiveCplt + 4785 00f0 00000000 .word I2C_DMAError + 4786 .cfi_endproc + 4787 .LFE344: + 4789 .section .text.HAL_I2C_Mem_Write,"ax",%progbits + 4790 .align 1 + 4791 .global HAL_I2C_Mem_Write + 4792 .syntax unified + 4793 .thumb + 4794 .thumb_func + 4796 HAL_I2C_Mem_Write: + 4797 .LVL306: + 4798 .LFB345: +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 4799 .loc 1 2375 1 is_stmt 1 view -0 + 4800 .cfi_startproc + 4801 @ args = 12, pretend = 0, frame = 0 + 4802 @ frame_needed = 0, uses_anonymous_args = 0 +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 4803 .loc 1 2375 1 is_stmt 0 view .LVU1672 + 4804 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + 4805 .LCFI55: + 4806 .cfi_def_cfa_offset 36 + 4807 .cfi_offset 4, -36 + 4808 .cfi_offset 5, -32 + 4809 .cfi_offset 6, -28 + 4810 .cfi_offset 7, -24 + 4811 .cfi_offset 8, -20 + 4812 .cfi_offset 9, -16 + 4813 .cfi_offset 10, -12 + 4814 .cfi_offset 11, -8 + 4815 .cfi_offset 14, -4 + 4816 0004 83B0 sub sp, sp, #12 + 4817 .LCFI56: + 4818 .cfi_def_cfa_offset 48 + 4819 0006 0E46 mov r6, r1 + 4820 0008 BDF834A0 ldrh r10, [sp, #52] + 4821 000c 0E9D ldr r5, [sp, #56] +2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4822 .loc 1 2376 3 is_stmt 1 view .LVU1673 +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4823 .loc 1 2379 3 view .LVU1674 +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 233 + + + 4824 .loc 1 2381 3 view .LVU1675 +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4825 .loc 1 2381 11 is_stmt 0 view .LVU1676 + 4826 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 + 4827 .LVL307: +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4828 .loc 1 2381 11 view .LVU1677 + 4829 0012 C9B2 uxtb r1, r1 +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4830 .loc 1 2381 6 view .LVU1678 + 4831 0014 2029 cmp r1, #32 + 4832 0016 40F0BB80 bne .L325 + 4833 001a 0446 mov r4, r0 + 4834 001c 9046 mov r8, r2 + 4835 001e 9946 mov r9, r3 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4836 .loc 1 2383 5 is_stmt 1 view .LVU1679 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4837 .loc 1 2383 8 is_stmt 0 view .LVU1680 + 4838 0020 0C9B ldr r3, [sp, #48] + 4839 .LVL308: +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4840 .loc 1 2383 8 view .LVU1681 + 4841 0022 CBB1 cbz r3, .L317 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4842 .loc 1 2383 25 discriminator 1 view .LVU1682 + 4843 0024 BAF1000F cmp r10, #0 + 4844 0028 16D0 beq .L317 +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4845 .loc 1 2390 5 is_stmt 1 view .LVU1683 +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4846 .loc 1 2390 5 view .LVU1684 + 4847 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 4848 002e 012B cmp r3, #1 + 4849 0030 00F0B280 beq .L326 +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4850 .loc 1 2390 5 discriminator 2 view .LVU1685 + 4851 0034 4FF0010B mov fp, #1 + 4852 0038 80F840B0 strb fp, [r0, #64] +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4853 .loc 1 2390 5 discriminator 2 view .LVU1686 +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4854 .loc 1 2393 5 discriminator 2 view .LVU1687 +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4855 .loc 1 2393 17 is_stmt 0 discriminator 2 view .LVU1688 + 4856 003c FFF7FEFF bl HAL_GetTick + 4857 .LVL309: +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4858 .loc 1 2393 17 discriminator 2 view .LVU1689 + 4859 0040 0746 mov r7, r0 + 4860 .LVL310: +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4861 .loc 1 2395 5 is_stmt 1 discriminator 2 view .LVU1690 +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4862 .loc 1 2395 9 is_stmt 0 discriminator 2 view .LVU1691 + 4863 0042 0090 str r0, [sp] + 4864 0044 1923 movs r3, #25 + ARM GAS /tmp/ccbUHtu7.s page 234 + + + 4865 0046 5A46 mov r2, fp + 4866 0048 4FF40041 mov r1, #32768 + 4867 004c 2046 mov r0, r4 + 4868 .LVL311: +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4869 .loc 1 2395 9 discriminator 2 view .LVU1692 + 4870 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 4871 .LVL312: +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4872 .loc 1 2395 8 discriminator 2 view .LVU1693 + 4873 0052 30B1 cbz r0, .L332 +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4874 .loc 1 2397 14 view .LVU1694 + 4875 0054 0120 movs r0, #1 + 4876 0056 9CE0 b .L316 + 4877 .LVL313: + 4878 .L317: +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4879 .loc 1 2385 7 is_stmt 1 view .LVU1695 +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4880 .loc 1 2385 23 is_stmt 0 view .LVU1696 + 4881 0058 4FF40073 mov r3, #512 + 4882 005c 6364 str r3, [r4, #68] +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4883 .loc 1 2386 7 is_stmt 1 view .LVU1697 +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4884 .loc 1 2386 15 is_stmt 0 view .LVU1698 + 4885 005e 0120 movs r0, #1 + 4886 .LVL314: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4887 .loc 1 2386 15 view .LVU1699 + 4888 0060 97E0 b .L316 + 4889 .LVL315: + 4890 .L332: +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 4891 .loc 1 2400 5 is_stmt 1 view .LVU1700 +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 4892 .loc 1 2400 21 is_stmt 0 view .LVU1701 + 4893 0062 2123 movs r3, #33 + 4894 0064 84F84130 strb r3, [r4, #65] +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4895 .loc 1 2401 5 is_stmt 1 view .LVU1702 +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 4896 .loc 1 2401 21 is_stmt 0 view .LVU1703 + 4897 0068 4023 movs r3, #64 + 4898 006a 84F84230 strb r3, [r4, #66] +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4899 .loc 1 2402 5 is_stmt 1 view .LVU1704 +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4900 .loc 1 2402 21 is_stmt 0 view .LVU1705 + 4901 006e 0023 movs r3, #0 + 4902 0070 6364 str r3, [r4, #68] +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4903 .loc 1 2405 5 is_stmt 1 view .LVU1706 +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 4904 .loc 1 2405 21 is_stmt 0 view .LVU1707 + 4905 0072 0C9A ldr r2, [sp, #48] + ARM GAS /tmp/ccbUHtu7.s page 235 + + + 4906 0074 6262 str r2, [r4, #36] +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 4907 .loc 1 2406 5 is_stmt 1 view .LVU1708 +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 4908 .loc 1 2406 21 is_stmt 0 view .LVU1709 + 4909 0076 A4F82AA0 strh r10, [r4, #42] @ movhi +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4910 .loc 1 2407 5 is_stmt 1 view .LVU1710 +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4911 .loc 1 2407 21 is_stmt 0 view .LVU1711 + 4912 007a 6363 str r3, [r4, #52] +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4913 .loc 1 2410 5 is_stmt 1 view .LVU1712 +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4914 .loc 1 2410 9 is_stmt 0 view .LVU1713 + 4915 007c 0197 str r7, [sp, #4] + 4916 007e 0095 str r5, [sp] + 4917 0080 4B46 mov r3, r9 + 4918 0082 4246 mov r2, r8 + 4919 0084 3146 mov r1, r6 + 4920 0086 2046 mov r0, r4 + 4921 0088 FFF7FEFF bl I2C_RequestMemoryWrite + 4922 .LVL316: +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4923 .loc 1 2410 8 view .LVU1714 + 4924 008c 70B9 cbnz r0, .L333 +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4925 .loc 1 2418 5 is_stmt 1 view .LVU1715 +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4926 .loc 1 2418 13 is_stmt 0 view .LVU1716 + 4927 008e 638D ldrh r3, [r4, #42] + 4928 0090 9BB2 uxth r3, r3 +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4929 .loc 1 2418 8 view .LVU1717 + 4930 0092 FF2B cmp r3, #255 + 4931 0094 0FD9 bls .L320 +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST + 4932 .loc 1 2420 7 is_stmt 1 view .LVU1718 +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST + 4933 .loc 1 2420 22 is_stmt 0 view .LVU1719 + 4934 0096 FF22 movs r2, #255 + 4935 0098 2285 strh r2, [r4, #40] @ movhi +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4936 .loc 1 2421 7 is_stmt 1 view .LVU1720 + 4937 009a 0023 movs r3, #0 + 4938 009c 0093 str r3, [sp] + 4939 009e 4FF08073 mov r3, #16777216 + 4940 00a2 3146 mov r1, r6 + 4941 00a4 2046 mov r0, r4 + 4942 00a6 FFF7FEFF bl I2C_TransferConfig + 4943 .LVL317: + 4944 00aa 21E0 b .L324 + 4945 .L333: +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4946 .loc 1 2413 7 view .LVU1721 +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4947 .loc 1 2413 7 view .LVU1722 + ARM GAS /tmp/ccbUHtu7.s page 236 + + + 4948 00ac 0023 movs r3, #0 + 4949 00ae 84F84030 strb r3, [r4, #64] +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 4950 .loc 1 2413 7 view .LVU1723 +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4951 .loc 1 2414 7 view .LVU1724 +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4952 .loc 1 2414 14 is_stmt 0 view .LVU1725 + 4953 00b2 5846 mov r0, fp + 4954 00b4 6DE0 b .L316 + 4955 .L320: +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS + 4956 .loc 1 2425 7 is_stmt 1 view .LVU1726 +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS + 4957 .loc 1 2425 28 is_stmt 0 view .LVU1727 + 4958 00b6 628D ldrh r2, [r4, #42] + 4959 00b8 92B2 uxth r2, r2 +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS + 4960 .loc 1 2425 22 view .LVU1728 + 4961 00ba 2285 strh r2, [r4, #40] @ movhi +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 4962 .loc 1 2426 7 is_stmt 1 view .LVU1729 + 4963 00bc 0023 movs r3, #0 + 4964 00be 0093 str r3, [sp] + 4965 00c0 4FF00073 mov r3, #33554432 + 4966 00c4 D2B2 uxtb r2, r2 + 4967 00c6 3146 mov r1, r6 + 4968 00c8 2046 mov r0, r4 + 4969 00ca FFF7FEFF bl I2C_TransferConfig + 4970 .LVL318: + 4971 00ce 0FE0 b .L324 + 4972 .L323: +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 4973 .loc 1 2462 11 view .LVU1730 +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 4974 .loc 1 2462 32 is_stmt 0 view .LVU1731 + 4975 00d0 628D ldrh r2, [r4, #42] + 4976 00d2 92B2 uxth r2, r2 +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 4977 .loc 1 2462 26 view .LVU1732 + 4978 00d4 2285 strh r2, [r4, #40] @ movhi +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 4979 .loc 1 2463 11 is_stmt 1 view .LVU1733 + 4980 00d6 0023 movs r3, #0 + 4981 00d8 0093 str r3, [sp] + 4982 00da 4FF00073 mov r3, #33554432 + 4983 00de D2B2 uxtb r2, r2 + 4984 00e0 3146 mov r1, r6 + 4985 00e2 2046 mov r0, r4 + 4986 00e4 FFF7FEFF bl I2C_TransferConfig + 4987 .LVL319: + 4988 .L322: +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4989 .loc 1 2468 30 view .LVU1734 +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4990 .loc 1 2468 18 is_stmt 0 view .LVU1735 + 4991 00e8 638D ldrh r3, [r4, #42] + ARM GAS /tmp/ccbUHtu7.s page 237 + + + 4992 00ea 9BB2 uxth r3, r3 +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 4993 .loc 1 2468 30 view .LVU1736 + 4994 00ec 002B cmp r3, #0 + 4995 00ee 33D0 beq .L334 + 4996 .L324: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4997 .loc 1 2429 5 is_stmt 1 view .LVU1737 +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4998 .loc 1 2432 7 view .LVU1738 +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 4999 .loc 1 2432 11 is_stmt 0 view .LVU1739 + 5000 00f0 3A46 mov r2, r7 + 5001 00f2 2946 mov r1, r5 + 5002 00f4 2046 mov r0, r4 + 5003 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout + 5004 .LVL320: +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5005 .loc 1 2432 10 view .LVU1740 + 5006 00fa 0028 cmp r0, #0 + 5007 00fc 4ED1 bne .L328 +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5008 .loc 1 2438 7 is_stmt 1 view .LVU1741 +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5009 .loc 1 2438 35 is_stmt 0 view .LVU1742 + 5010 00fe 626A ldr r2, [r4, #36] +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5011 .loc 1 2438 11 view .LVU1743 + 5012 0100 2368 ldr r3, [r4] +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5013 .loc 1 2438 30 view .LVU1744 + 5014 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5015 .loc 1 2438 28 view .LVU1745 + 5016 0104 9A62 str r2, [r3, #40] +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5017 .loc 1 2441 7 is_stmt 1 view .LVU1746 +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5018 .loc 1 2441 11 is_stmt 0 view .LVU1747 + 5019 0106 636A ldr r3, [r4, #36] +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5020 .loc 1 2441 21 view .LVU1748 + 5021 0108 0133 adds r3, r3, #1 + 5022 010a 6362 str r3, [r4, #36] +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 5023 .loc 1 2443 7 is_stmt 1 view .LVU1749 +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 5024 .loc 1 2443 11 is_stmt 0 view .LVU1750 + 5025 010c 638D ldrh r3, [r4, #42] + 5026 010e 9BB2 uxth r3, r3 +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 5027 .loc 1 2443 22 view .LVU1751 + 5028 0110 013B subs r3, r3, #1 + 5029 0112 9BB2 uxth r3, r3 + 5030 0114 6385 strh r3, [r4, #42] @ movhi +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5031 .loc 1 2444 7 is_stmt 1 view .LVU1752 + ARM GAS /tmp/ccbUHtu7.s page 238 + + +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5032 .loc 1 2444 11 is_stmt 0 view .LVU1753 + 5033 0116 238D ldrh r3, [r4, #40] +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5034 .loc 1 2444 21 view .LVU1754 + 5035 0118 013B subs r3, r3, #1 + 5036 011a 9BB2 uxth r3, r3 + 5037 011c 2385 strh r3, [r4, #40] @ movhi +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5038 .loc 1 2446 7 is_stmt 1 view .LVU1755 +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5039 .loc 1 2446 16 is_stmt 0 view .LVU1756 + 5040 011e 628D ldrh r2, [r4, #42] + 5041 0120 92B2 uxth r2, r2 +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5042 .loc 1 2446 10 view .LVU1757 + 5043 0122 002A cmp r2, #0 + 5044 0124 E0D0 beq .L322 +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5045 .loc 1 2446 35 discriminator 1 view .LVU1758 + 5046 0126 002B cmp r3, #0 + 5047 0128 DED1 bne .L322 +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5048 .loc 1 2449 9 is_stmt 1 view .LVU1759 +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5049 .loc 1 2449 13 is_stmt 0 view .LVU1760 + 5050 012a 0097 str r7, [sp] + 5051 012c 2B46 mov r3, r5 + 5052 012e 0022 movs r2, #0 + 5053 0130 8021 movs r1, #128 + 5054 0132 2046 mov r0, r4 + 5055 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 5056 .LVL321: +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5057 .loc 1 2449 12 view .LVU1761 + 5058 0138 90BB cbnz r0, .L329 +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5059 .loc 1 2454 9 is_stmt 1 view .LVU1762 +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5060 .loc 1 2454 17 is_stmt 0 view .LVU1763 + 5061 013a 638D ldrh r3, [r4, #42] + 5062 013c 9BB2 uxth r3, r3 +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5063 .loc 1 2454 12 view .LVU1764 + 5064 013e FF2B cmp r3, #255 + 5065 0140 C6D9 bls .L323 +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 5066 .loc 1 2456 11 is_stmt 1 view .LVU1765 +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 5067 .loc 1 2456 26 is_stmt 0 view .LVU1766 + 5068 0142 FF22 movs r2, #255 + 5069 0144 2285 strh r2, [r4, #40] @ movhi +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 5070 .loc 1 2457 11 is_stmt 1 view .LVU1767 + 5071 0146 0023 movs r3, #0 + 5072 0148 0093 str r3, [sp] + 5073 014a 4FF08073 mov r3, #16777216 + ARM GAS /tmp/ccbUHtu7.s page 239 + + + 5074 014e 3146 mov r1, r6 + 5075 0150 2046 mov r0, r4 + 5076 0152 FFF7FEFF bl I2C_TransferConfig + 5077 .LVL322: + 5078 0156 C7E7 b .L322 + 5079 .L334: +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5080 .loc 1 2472 5 view .LVU1768 +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5081 .loc 1 2472 9 is_stmt 0 view .LVU1769 + 5082 0158 3A46 mov r2, r7 + 5083 015a 2946 mov r1, r5 + 5084 015c 2046 mov r0, r4 + 5085 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout + 5086 .LVL323: +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5087 .loc 1 2472 8 view .LVU1770 + 5088 0162 F8B9 cbnz r0, .L330 +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5089 .loc 1 2478 5 is_stmt 1 view .LVU1771 + 5090 0164 2368 ldr r3, [r4] + 5091 0166 2022 movs r2, #32 + 5092 0168 DA61 str r2, [r3, #28] +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5093 .loc 1 2481 5 view .LVU1772 + 5094 016a 2168 ldr r1, [r4] + 5095 016c 4B68 ldr r3, [r1, #4] + 5096 016e 23F0FF73 bic r3, r3, #33423360 + 5097 0172 23F48B33 bic r3, r3, #71168 + 5098 0176 23F4FF73 bic r3, r3, #510 + 5099 017a 23F00103 bic r3, r3, #1 + 5100 017e 4B60 str r3, [r1, #4] +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 5101 .loc 1 2483 5 view .LVU1773 +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 5102 .loc 1 2483 17 is_stmt 0 view .LVU1774 + 5103 0180 84F84120 strb r2, [r4, #65] +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5104 .loc 1 2484 5 is_stmt 1 view .LVU1775 +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5105 .loc 1 2484 17 is_stmt 0 view .LVU1776 + 5106 0184 0023 movs r3, #0 + 5107 0186 84F84230 strb r3, [r4, #66] +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5108 .loc 1 2487 5 is_stmt 1 view .LVU1777 +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5109 .loc 1 2487 5 view .LVU1778 + 5110 018a 84F84030 strb r3, [r4, #64] +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5111 .loc 1 2487 5 view .LVU1779 +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5112 .loc 1 2489 5 view .LVU1780 +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5113 .loc 1 2489 12 is_stmt 0 view .LVU1781 + 5114 018e 00E0 b .L316 + 5115 .LVL324: + 5116 .L325: + ARM GAS /tmp/ccbUHtu7.s page 240 + + +2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5117 .loc 1 2493 12 view .LVU1782 + 5118 0190 0220 movs r0, #2 + 5119 .LVL325: + 5120 .L316: +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5121 .loc 1 2495 1 view .LVU1783 + 5122 0192 03B0 add sp, sp, #12 + 5123 .LCFI57: + 5124 .cfi_remember_state + 5125 .cfi_def_cfa_offset 36 + 5126 @ sp needed + 5127 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} + 5128 .LVL326: + 5129 .L326: + 5130 .LCFI58: + 5131 .cfi_restore_state +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5132 .loc 1 2390 5 view .LVU1784 + 5133 0198 0220 movs r0, #2 + 5134 .LVL327: +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5135 .loc 1 2390 5 view .LVU1785 + 5136 019a FAE7 b .L316 + 5137 .LVL328: + 5138 .L328: +2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5139 .loc 1 2434 16 view .LVU1786 + 5140 019c 0120 movs r0, #1 + 5141 019e F8E7 b .L316 + 5142 .L329: +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5143 .loc 1 2451 18 view .LVU1787 + 5144 01a0 0120 movs r0, #1 + 5145 01a2 F6E7 b .L316 + 5146 .L330: +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5147 .loc 1 2474 14 view .LVU1788 + 5148 01a4 0120 movs r0, #1 + 5149 01a6 F4E7 b .L316 + 5150 .cfi_endproc + 5151 .LFE345: + 5153 .section .text.HAL_I2C_Mem_Read,"ax",%progbits + 5154 .align 1 + 5155 .global HAL_I2C_Mem_Read + 5156 .syntax unified + 5157 .thumb + 5158 .thumb_func + 5160 HAL_I2C_Mem_Read: + 5161 .LVL329: + 5162 .LFB346: +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5163 .loc 1 2512 1 is_stmt 1 view -0 + 5164 .cfi_startproc + 5165 @ args = 12, pretend = 0, frame = 0 + 5166 @ frame_needed = 0, uses_anonymous_args = 0 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + ARM GAS /tmp/ccbUHtu7.s page 241 + + + 5167 .loc 1 2512 1 is_stmt 0 view .LVU1790 + 5168 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + 5169 .LCFI59: + 5170 .cfi_def_cfa_offset 36 + 5171 .cfi_offset 4, -36 + 5172 .cfi_offset 5, -32 + 5173 .cfi_offset 6, -28 + 5174 .cfi_offset 7, -24 + 5175 .cfi_offset 8, -20 + 5176 .cfi_offset 9, -16 + 5177 .cfi_offset 10, -12 + 5178 .cfi_offset 11, -8 + 5179 .cfi_offset 14, -4 + 5180 0004 83B0 sub sp, sp, #12 + 5181 .LCFI60: + 5182 .cfi_def_cfa_offset 48 + 5183 0006 0E46 mov r6, r1 + 5184 0008 BDF834A0 ldrh r10, [sp, #52] + 5185 000c 0E9D ldr r5, [sp, #56] +2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5186 .loc 1 2513 3 is_stmt 1 view .LVU1791 +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5187 .loc 1 2516 3 view .LVU1792 +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5188 .loc 1 2518 3 view .LVU1793 +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5189 .loc 1 2518 11 is_stmt 0 view .LVU1794 + 5190 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 + 5191 .LVL330: +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5192 .loc 1 2518 11 view .LVU1795 + 5193 0012 C9B2 uxtb r1, r1 +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5194 .loc 1 2518 6 view .LVU1796 + 5195 0014 2029 cmp r1, #32 + 5196 0016 40F0BC80 bne .L345 + 5197 001a 0446 mov r4, r0 + 5198 001c 9046 mov r8, r2 + 5199 001e 9946 mov r9, r3 +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5200 .loc 1 2520 5 is_stmt 1 view .LVU1797 +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5201 .loc 1 2520 8 is_stmt 0 view .LVU1798 + 5202 0020 0C9B ldr r3, [sp, #48] + 5203 .LVL331: +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5204 .loc 1 2520 8 view .LVU1799 + 5205 0022 CBB1 cbz r3, .L337 +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5206 .loc 1 2520 25 discriminator 1 view .LVU1800 + 5207 0024 BAF1000F cmp r10, #0 + 5208 0028 16D0 beq .L337 +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5209 .loc 1 2527 5 is_stmt 1 view .LVU1801 +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5210 .loc 1 2527 5 view .LVU1802 + 5211 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + ARM GAS /tmp/ccbUHtu7.s page 242 + + + 5212 002e 012B cmp r3, #1 + 5213 0030 00F0B380 beq .L346 +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5214 .loc 1 2527 5 discriminator 2 view .LVU1803 + 5215 0034 4FF0010B mov fp, #1 + 5216 0038 80F840B0 strb fp, [r0, #64] +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5217 .loc 1 2527 5 discriminator 2 view .LVU1804 +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5218 .loc 1 2530 5 discriminator 2 view .LVU1805 +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5219 .loc 1 2530 17 is_stmt 0 discriminator 2 view .LVU1806 + 5220 003c FFF7FEFF bl HAL_GetTick + 5221 .LVL332: +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5222 .loc 1 2530 17 discriminator 2 view .LVU1807 + 5223 0040 0746 mov r7, r0 + 5224 .LVL333: +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5225 .loc 1 2532 5 is_stmt 1 discriminator 2 view .LVU1808 +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5226 .loc 1 2532 9 is_stmt 0 discriminator 2 view .LVU1809 + 5227 0042 0090 str r0, [sp] + 5228 0044 1923 movs r3, #25 + 5229 0046 5A46 mov r2, fp + 5230 0048 4FF40041 mov r1, #32768 + 5231 004c 2046 mov r0, r4 + 5232 .LVL334: +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5233 .loc 1 2532 9 discriminator 2 view .LVU1810 + 5234 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 5235 .LVL335: +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5236 .loc 1 2532 8 discriminator 2 view .LVU1811 + 5237 0052 30B1 cbz r0, .L352 +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5238 .loc 1 2534 14 view .LVU1812 + 5239 0054 0120 movs r0, #1 + 5240 0056 9DE0 b .L336 + 5241 .LVL336: + 5242 .L337: +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5243 .loc 1 2522 7 is_stmt 1 view .LVU1813 +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5244 .loc 1 2522 23 is_stmt 0 view .LVU1814 + 5245 0058 4FF40073 mov r3, #512 + 5246 005c 6364 str r3, [r4, #68] +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5247 .loc 1 2523 7 is_stmt 1 view .LVU1815 +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5248 .loc 1 2523 15 is_stmt 0 view .LVU1816 + 5249 005e 0120 movs r0, #1 + 5250 .LVL337: +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5251 .loc 1 2523 15 view .LVU1817 + 5252 0060 98E0 b .L336 + 5253 .LVL338: + ARM GAS /tmp/ccbUHtu7.s page 243 + + + 5254 .L352: +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 5255 .loc 1 2537 5 is_stmt 1 view .LVU1818 +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 5256 .loc 1 2537 21 is_stmt 0 view .LVU1819 + 5257 0062 2223 movs r3, #34 + 5258 0064 84F84130 strb r3, [r4, #65] +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 5259 .loc 1 2538 5 is_stmt 1 view .LVU1820 +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 5260 .loc 1 2538 21 is_stmt 0 view .LVU1821 + 5261 0068 4023 movs r3, #64 + 5262 006a 84F84230 strb r3, [r4, #66] +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5263 .loc 1 2539 5 is_stmt 1 view .LVU1822 +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5264 .loc 1 2539 21 is_stmt 0 view .LVU1823 + 5265 006e 0023 movs r3, #0 + 5266 0070 6364 str r3, [r4, #68] +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 5267 .loc 1 2542 5 is_stmt 1 view .LVU1824 +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 5268 .loc 1 2542 21 is_stmt 0 view .LVU1825 + 5269 0072 0C9A ldr r2, [sp, #48] + 5270 0074 6262 str r2, [r4, #36] +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 5271 .loc 1 2543 5 is_stmt 1 view .LVU1826 +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 5272 .loc 1 2543 21 is_stmt 0 view .LVU1827 + 5273 0076 A4F82AA0 strh r10, [r4, #42] @ movhi +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5274 .loc 1 2544 5 is_stmt 1 view .LVU1828 +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5275 .loc 1 2544 21 is_stmt 0 view .LVU1829 + 5276 007a 6363 str r3, [r4, #52] +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5277 .loc 1 2547 5 is_stmt 1 view .LVU1830 +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5278 .loc 1 2547 9 is_stmt 0 view .LVU1831 + 5279 007c 0197 str r7, [sp, #4] + 5280 007e 0095 str r5, [sp] + 5281 0080 4B46 mov r3, r9 + 5282 0082 4246 mov r2, r8 + 5283 0084 3146 mov r1, r6 + 5284 0086 2046 mov r0, r4 + 5285 0088 FFF7FEFF bl I2C_RequestMemoryRead + 5286 .LVL339: +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5287 .loc 1 2547 8 view .LVU1832 + 5288 008c 70B9 cbnz r0, .L353 +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5289 .loc 1 2556 5 is_stmt 1 view .LVU1833 +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5290 .loc 1 2556 13 is_stmt 0 view .LVU1834 + 5291 008e 638D ldrh r3, [r4, #42] + 5292 0090 9BB2 uxth r3, r3 +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 244 + + + 5293 .loc 1 2556 8 view .LVU1835 + 5294 0092 FF2B cmp r3, #255 + 5295 0094 0FD9 bls .L340 +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 5296 .loc 1 2558 7 is_stmt 1 view .LVU1836 +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + 5297 .loc 1 2558 22 is_stmt 0 view .LVU1837 + 5298 0096 FF22 movs r2, #255 + 5299 0098 2285 strh r2, [r4, #40] @ movhi +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 5300 .loc 1 2559 7 is_stmt 1 view .LVU1838 + 5301 009a 444B ldr r3, .L355 + 5302 009c 0093 str r3, [sp] + 5303 009e 4FF08073 mov r3, #16777216 + 5304 00a2 3146 mov r1, r6 + 5305 00a4 2046 mov r0, r4 + 5306 00a6 FFF7FEFF bl I2C_TransferConfig + 5307 .LVL340: + 5308 00aa 21E0 b .L344 + 5309 .L353: +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5310 .loc 1 2550 7 view .LVU1839 +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5311 .loc 1 2550 7 view .LVU1840 + 5312 00ac 0023 movs r3, #0 + 5313 00ae 84F84030 strb r3, [r4, #64] +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5314 .loc 1 2550 7 view .LVU1841 +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5315 .loc 1 2551 7 view .LVU1842 +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5316 .loc 1 2551 14 is_stmt 0 view .LVU1843 + 5317 00b2 5846 mov r0, fp + 5318 00b4 6EE0 b .L336 + 5319 .L340: +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 5320 .loc 1 2564 7 is_stmt 1 view .LVU1844 +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 5321 .loc 1 2564 28 is_stmt 0 view .LVU1845 + 5322 00b6 628D ldrh r2, [r4, #42] + 5323 00b8 92B2 uxth r2, r2 +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 5324 .loc 1 2564 22 view .LVU1846 + 5325 00ba 2285 strh r2, [r4, #40] @ movhi +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 5326 .loc 1 2565 7 is_stmt 1 view .LVU1847 + 5327 00bc 3B4B ldr r3, .L355 + 5328 00be 0093 str r3, [sp] + 5329 00c0 4FF00073 mov r3, #33554432 + 5330 00c4 D2B2 uxtb r2, r2 + 5331 00c6 3146 mov r1, r6 + 5332 00c8 2046 mov r0, r4 + 5333 00ca FFF7FEFF bl I2C_TransferConfig + 5334 .LVL341: + 5335 00ce 0FE0 b .L344 + 5336 .L343: +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + ARM GAS /tmp/ccbUHtu7.s page 245 + + + 5337 .loc 1 2602 11 view .LVU1848 +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 5338 .loc 1 2602 32 is_stmt 0 view .LVU1849 + 5339 00d0 628D ldrh r2, [r4, #42] + 5340 00d2 92B2 uxth r2, r2 +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + 5341 .loc 1 2602 26 view .LVU1850 + 5342 00d4 2285 strh r2, [r4, #40] @ movhi +2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 5343 .loc 1 2603 11 is_stmt 1 view .LVU1851 + 5344 00d6 0023 movs r3, #0 + 5345 00d8 0093 str r3, [sp] + 5346 00da 4FF00073 mov r3, #33554432 + 5347 00de D2B2 uxtb r2, r2 + 5348 00e0 3146 mov r1, r6 + 5349 00e2 2046 mov r0, r4 + 5350 00e4 FFF7FEFF bl I2C_TransferConfig + 5351 .LVL342: + 5352 .L342: +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5353 .loc 1 2607 30 view .LVU1852 +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5354 .loc 1 2607 18 is_stmt 0 view .LVU1853 + 5355 00e8 638D ldrh r3, [r4, #42] + 5356 00ea 9BB2 uxth r3, r3 +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5357 .loc 1 2607 30 view .LVU1854 + 5358 00ec 002B cmp r3, #0 + 5359 00ee 34D0 beq .L354 + 5360 .L344: +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5361 .loc 1 2569 5 is_stmt 1 view .LVU1855 +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5362 .loc 1 2572 7 view .LVU1856 +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5363 .loc 1 2572 11 is_stmt 0 view .LVU1857 + 5364 00f0 0097 str r7, [sp] + 5365 00f2 2B46 mov r3, r5 + 5366 00f4 0022 movs r2, #0 + 5367 00f6 0421 movs r1, #4 + 5368 00f8 2046 mov r0, r4 + 5369 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 5370 .LVL343: +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5371 .loc 1 2572 10 view .LVU1858 + 5372 00fe 0028 cmp r0, #0 + 5373 0100 4DD1 bne .L348 +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5374 .loc 1 2578 7 is_stmt 1 view .LVU1859 +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5375 .loc 1 2578 38 is_stmt 0 view .LVU1860 + 5376 0102 2368 ldr r3, [r4] +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5377 .loc 1 2578 48 view .LVU1861 + 5378 0104 5A6A ldr r2, [r3, #36] +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5379 .loc 1 2578 12 view .LVU1862 + ARM GAS /tmp/ccbUHtu7.s page 246 + + + 5380 0106 636A ldr r3, [r4, #36] +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5381 .loc 1 2578 23 view .LVU1863 + 5382 0108 1A70 strb r2, [r3] +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5383 .loc 1 2581 7 is_stmt 1 view .LVU1864 +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5384 .loc 1 2581 11 is_stmt 0 view .LVU1865 + 5385 010a 636A ldr r3, [r4, #36] +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5386 .loc 1 2581 21 view .LVU1866 + 5387 010c 0133 adds r3, r3, #1 + 5388 010e 6362 str r3, [r4, #36] +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 5389 .loc 1 2583 7 is_stmt 1 view .LVU1867 +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 5390 .loc 1 2583 11 is_stmt 0 view .LVU1868 + 5391 0110 228D ldrh r2, [r4, #40] +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 5392 .loc 1 2583 21 view .LVU1869 + 5393 0112 013A subs r2, r2, #1 + 5394 0114 92B2 uxth r2, r2 + 5395 0116 2285 strh r2, [r4, #40] @ movhi +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5396 .loc 1 2584 7 is_stmt 1 view .LVU1870 +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5397 .loc 1 2584 11 is_stmt 0 view .LVU1871 + 5398 0118 638D ldrh r3, [r4, #42] + 5399 011a 9BB2 uxth r3, r3 +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5400 .loc 1 2584 22 view .LVU1872 + 5401 011c 013B subs r3, r3, #1 + 5402 011e 9BB2 uxth r3, r3 + 5403 0120 6385 strh r3, [r4, #42] @ movhi +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5404 .loc 1 2586 7 is_stmt 1 view .LVU1873 +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5405 .loc 1 2586 16 is_stmt 0 view .LVU1874 + 5406 0122 638D ldrh r3, [r4, #42] + 5407 0124 9BB2 uxth r3, r3 +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5408 .loc 1 2586 10 view .LVU1875 + 5409 0126 002B cmp r3, #0 + 5410 0128 DED0 beq .L342 +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5411 .loc 1 2586 35 discriminator 1 view .LVU1876 + 5412 012a 002A cmp r2, #0 + 5413 012c DCD1 bne .L342 +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5414 .loc 1 2589 9 is_stmt 1 view .LVU1877 +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5415 .loc 1 2589 13 is_stmt 0 view .LVU1878 + 5416 012e 0097 str r7, [sp] + 5417 0130 2B46 mov r3, r5 + 5418 0132 8021 movs r1, #128 + 5419 0134 2046 mov r0, r4 + 5420 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + ARM GAS /tmp/ccbUHtu7.s page 247 + + + 5421 .LVL344: +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5422 .loc 1 2589 12 view .LVU1879 + 5423 013a 90BB cbnz r0, .L349 +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5424 .loc 1 2594 9 is_stmt 1 view .LVU1880 +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5425 .loc 1 2594 17 is_stmt 0 view .LVU1881 + 5426 013c 638D ldrh r3, [r4, #42] + 5427 013e 9BB2 uxth r3, r3 +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5428 .loc 1 2594 12 view .LVU1882 + 5429 0140 FF2B cmp r3, #255 + 5430 0142 C5D9 bls .L343 +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, + 5431 .loc 1 2596 11 is_stmt 1 view .LVU1883 +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, + 5432 .loc 1 2596 26 is_stmt 0 view .LVU1884 + 5433 0144 FF22 movs r2, #255 + 5434 0146 2285 strh r2, [r4, #40] @ movhi +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); + 5435 .loc 1 2597 11 is_stmt 1 view .LVU1885 + 5436 0148 0023 movs r3, #0 + 5437 014a 0093 str r3, [sp] + 5438 014c 4FF08073 mov r3, #16777216 + 5439 0150 3146 mov r1, r6 + 5440 0152 2046 mov r0, r4 + 5441 0154 FFF7FEFF bl I2C_TransferConfig + 5442 .LVL345: + 5443 0158 C6E7 b .L342 + 5444 .L354: +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5445 .loc 1 2611 5 view .LVU1886 +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5446 .loc 1 2611 9 is_stmt 0 view .LVU1887 + 5447 015a 3A46 mov r2, r7 + 5448 015c 2946 mov r1, r5 + 5449 015e 2046 mov r0, r4 + 5450 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout + 5451 .LVL346: +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5452 .loc 1 2611 8 view .LVU1888 + 5453 0164 F8B9 cbnz r0, .L350 +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5454 .loc 1 2617 5 is_stmt 1 view .LVU1889 + 5455 0166 2368 ldr r3, [r4] + 5456 0168 2022 movs r2, #32 + 5457 016a DA61 str r2, [r3, #28] +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5458 .loc 1 2620 5 view .LVU1890 + 5459 016c 2168 ldr r1, [r4] + 5460 016e 4B68 ldr r3, [r1, #4] + 5461 0170 23F0FF73 bic r3, r3, #33423360 + 5462 0174 23F48B33 bic r3, r3, #71168 + 5463 0178 23F4FF73 bic r3, r3, #510 + 5464 017c 23F00103 bic r3, r3, #1 + 5465 0180 4B60 str r3, [r1, #4] + ARM GAS /tmp/ccbUHtu7.s page 248 + + +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 5466 .loc 1 2622 5 view .LVU1891 +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 5467 .loc 1 2622 17 is_stmt 0 view .LVU1892 + 5468 0182 84F84120 strb r2, [r4, #65] +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5469 .loc 1 2623 5 is_stmt 1 view .LVU1893 +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5470 .loc 1 2623 17 is_stmt 0 view .LVU1894 + 5471 0186 0023 movs r3, #0 + 5472 0188 84F84230 strb r3, [r4, #66] +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5473 .loc 1 2626 5 is_stmt 1 view .LVU1895 +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5474 .loc 1 2626 5 view .LVU1896 + 5475 018c 84F84030 strb r3, [r4, #64] +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5476 .loc 1 2626 5 view .LVU1897 +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5477 .loc 1 2628 5 view .LVU1898 +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5478 .loc 1 2628 12 is_stmt 0 view .LVU1899 + 5479 0190 00E0 b .L336 + 5480 .LVL347: + 5481 .L345: +2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5482 .loc 1 2632 12 view .LVU1900 + 5483 0192 0220 movs r0, #2 + 5484 .LVL348: + 5485 .L336: +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 5486 .loc 1 2634 1 view .LVU1901 + 5487 0194 03B0 add sp, sp, #12 + 5488 .LCFI61: + 5489 .cfi_remember_state + 5490 .cfi_def_cfa_offset 36 + 5491 @ sp needed + 5492 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} + 5493 .LVL349: + 5494 .L346: + 5495 .LCFI62: + 5496 .cfi_restore_state +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5497 .loc 1 2527 5 view .LVU1902 + 5498 019a 0220 movs r0, #2 + 5499 .LVL350: +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5500 .loc 1 2527 5 view .LVU1903 + 5501 019c FAE7 b .L336 + 5502 .LVL351: + 5503 .L348: +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5504 .loc 1 2574 16 view .LVU1904 + 5505 019e 0120 movs r0, #1 + 5506 01a0 F8E7 b .L336 + 5507 .L349: +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 249 + + + 5508 .loc 1 2591 18 view .LVU1905 + 5509 01a2 0120 movs r0, #1 + 5510 01a4 F6E7 b .L336 + 5511 .L350: +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5512 .loc 1 2613 14 view .LVU1906 + 5513 01a6 0120 movs r0, #1 + 5514 01a8 F4E7 b .L336 + 5515 .L356: + 5516 01aa 00BF .align 2 + 5517 .L355: + 5518 01ac 00240080 .word -2147474432 + 5519 .cfi_endproc + 5520 .LFE346: + 5522 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits + 5523 .align 1 + 5524 .global HAL_I2C_Mem_Write_IT + 5525 .syntax unified + 5526 .thumb + 5527 .thumb_func + 5529 HAL_I2C_Mem_Write_IT: + 5530 .LVL352: + 5531 .LFB347: +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5532 .loc 1 2649 1 is_stmt 1 view -0 + 5533 .cfi_startproc + 5534 @ args = 8, pretend = 0, frame = 0 + 5535 @ frame_needed = 0, uses_anonymous_args = 0 +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5536 .loc 1 2649 1 is_stmt 0 view .LVU1908 + 5537 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 5538 .LCFI63: + 5539 .cfi_def_cfa_offset 24 + 5540 .cfi_offset 4, -24 + 5541 .cfi_offset 5, -20 + 5542 .cfi_offset 6, -16 + 5543 .cfi_offset 7, -12 + 5544 .cfi_offset 8, -8 + 5545 .cfi_offset 14, -4 + 5546 0004 82B0 sub sp, sp, #8 + 5547 .LCFI64: + 5548 .cfi_def_cfa_offset 32 + 5549 0006 0446 mov r4, r0 + 5550 0008 BDF82480 ldrh r8, [sp, #36] +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 5551 .loc 1 2650 3 is_stmt 1 view .LVU1909 +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5552 .loc 1 2651 3 view .LVU1910 +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5553 .loc 1 2654 3 view .LVU1911 +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5554 .loc 1 2656 3 view .LVU1912 +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5555 .loc 1 2656 11 is_stmt 0 view .LVU1913 + 5556 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 5557 .LVL353: +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 250 + + + 5558 .loc 1 2656 11 view .LVU1914 + 5559 0010 C0B2 uxtb r0, r0 +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5560 .loc 1 2656 6 view .LVU1915 + 5561 0012 2028 cmp r0, #32 + 5562 0014 58D1 bne .L364 + 5563 0016 0D46 mov r5, r1 + 5564 0018 1746 mov r7, r2 + 5565 001a 1E46 mov r6, r3 +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5566 .loc 1 2658 5 is_stmt 1 view .LVU1916 +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5567 .loc 1 2658 8 is_stmt 0 view .LVU1917 + 5568 001c 089B ldr r3, [sp, #32] + 5569 .LVL354: +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5570 .loc 1 2658 8 view .LVU1918 + 5571 001e 002B cmp r3, #0 + 5572 0020 38D0 beq .L359 +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5573 .loc 1 2658 25 discriminator 1 view .LVU1919 + 5574 0022 B8F1000F cmp r8, #0 + 5575 0026 35D0 beq .L359 +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5576 .loc 1 2664 5 is_stmt 1 view .LVU1920 +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5577 .loc 1 2664 9 is_stmt 0 view .LVU1921 + 5578 0028 2368 ldr r3, [r4] + 5579 002a 9B69 ldr r3, [r3, #24] +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5580 .loc 1 2664 8 view .LVU1922 + 5581 002c 13F4004F tst r3, #32768 + 5582 0030 4FD1 bne .L365 +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5583 .loc 1 2670 5 is_stmt 1 view .LVU1923 +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5584 .loc 1 2670 5 view .LVU1924 + 5585 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 5586 0036 012B cmp r3, #1 + 5587 0038 4DD0 beq .L366 +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5588 .loc 1 2670 5 discriminator 2 view .LVU1925 + 5589 003a 0123 movs r3, #1 + 5590 003c 84F84030 strb r3, [r4, #64] +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5591 .loc 1 2670 5 discriminator 2 view .LVU1926 +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5592 .loc 1 2673 5 discriminator 2 view .LVU1927 +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5593 .loc 1 2673 17 is_stmt 0 discriminator 2 view .LVU1928 + 5594 0040 FFF7FEFF bl HAL_GetTick + 5595 .LVL355: +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 5596 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1929 +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 5597 .loc 1 2675 23 is_stmt 0 discriminator 2 view .LVU1930 + 5598 0044 2123 movs r3, #33 + ARM GAS /tmp/ccbUHtu7.s page 251 + + + 5599 0046 84F84130 strb r3, [r4, #65] +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 5600 .loc 1 2676 5 is_stmt 1 discriminator 2 view .LVU1931 +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 5601 .loc 1 2676 23 is_stmt 0 discriminator 2 view .LVU1932 + 5602 004a 4023 movs r3, #64 + 5603 004c 84F84230 strb r3, [r4, #66] +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5604 .loc 1 2677 5 is_stmt 1 discriminator 2 view .LVU1933 +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5605 .loc 1 2677 23 is_stmt 0 discriminator 2 view .LVU1934 + 5606 0050 0023 movs r3, #0 + 5607 0052 6364 str r3, [r4, #68] +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 5608 .loc 1 2680 5 is_stmt 1 discriminator 2 view .LVU1935 +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 5609 .loc 1 2680 23 is_stmt 0 discriminator 2 view .LVU1936 + 5610 0054 089B ldr r3, [sp, #32] + 5611 0056 6362 str r3, [r4, #36] +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 5612 .loc 1 2681 5 is_stmt 1 discriminator 2 view .LVU1937 +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 5613 .loc 1 2681 23 is_stmt 0 discriminator 2 view .LVU1938 + 5614 0058 A4F82A80 strh r8, [r4, #42] @ movhi +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 5615 .loc 1 2682 5 is_stmt 1 discriminator 2 view .LVU1939 +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 5616 .loc 1 2682 23 is_stmt 0 discriminator 2 view .LVU1940 + 5617 005c 1F4B ldr r3, .L368 + 5618 005e E362 str r3, [r4, #44] +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5619 .loc 1 2683 5 is_stmt 1 discriminator 2 view .LVU1941 +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5620 .loc 1 2683 23 is_stmt 0 discriminator 2 view .LVU1942 + 5621 0060 1F4B ldr r3, .L368+4 + 5622 0062 6363 str r3, [r4, #52] +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5623 .loc 1 2685 5 is_stmt 1 discriminator 2 view .LVU1943 +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5624 .loc 1 2685 13 is_stmt 0 discriminator 2 view .LVU1944 + 5625 0064 638D ldrh r3, [r4, #42] + 5626 0066 9BB2 uxth r3, r3 +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5627 .loc 1 2685 8 discriminator 2 view .LVU1945 + 5628 0068 FF2B cmp r3, #255 + 5629 006a 18D9 bls .L361 +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 5630 .loc 1 2687 7 is_stmt 1 view .LVU1946 +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 5631 .loc 1 2687 22 is_stmt 0 view .LVU1947 + 5632 006c FF23 movs r3, #255 + 5633 006e 2385 strh r3, [r4, #40] @ movhi +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5634 .loc 1 2688 7 is_stmt 1 view .LVU1948 + 5635 .LVL356: +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5636 .loc 1 2688 16 is_stmt 0 view .LVU1949 + ARM GAS /tmp/ccbUHtu7.s page 252 + + + 5637 0070 4FF08078 mov r8, #16777216 + 5638 .LVL357: + 5639 .L362: +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 5640 .loc 1 2697 5 is_stmt 1 view .LVU1950 +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 5641 .loc 1 2697 9 is_stmt 0 view .LVU1951 + 5642 0074 0190 str r0, [sp, #4] + 5643 0076 1923 movs r3, #25 + 5644 0078 0093 str r3, [sp] + 5645 007a 3346 mov r3, r6 + 5646 007c 3A46 mov r2, r7 + 5647 007e 2946 mov r1, r5 + 5648 0080 2046 mov r0, r4 + 5649 .LVL358: +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 5650 .loc 1 2697 9 view .LVU1952 + 5651 0082 FFF7FEFF bl I2C_RequestMemoryWrite + 5652 .LVL359: +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 5653 .loc 1 2697 8 view .LVU1953 + 5654 0086 0646 mov r6, r0 + 5655 0088 70B1 cbz r0, .L363 +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5656 .loc 1 2701 7 is_stmt 1 view .LVU1954 +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5657 .loc 1 2701 7 view .LVU1955 + 5658 008a 0023 movs r3, #0 + 5659 008c 84F84030 strb r3, [r4, #64] +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5660 .loc 1 2701 7 view .LVU1956 +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5661 .loc 1 2702 7 view .LVU1957 +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5662 .loc 1 2702 14 is_stmt 0 view .LVU1958 + 5663 0090 0126 movs r6, #1 + 5664 0092 1AE0 b .L358 + 5665 .LVL360: + 5666 .L359: +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5667 .loc 1 2660 7 is_stmt 1 view .LVU1959 +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5668 .loc 1 2660 23 is_stmt 0 view .LVU1960 + 5669 0094 4FF40073 mov r3, #512 + 5670 0098 6364 str r3, [r4, #68] +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5671 .loc 1 2661 7 is_stmt 1 view .LVU1961 +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5672 .loc 1 2661 15 is_stmt 0 view .LVU1962 + 5673 009a 0126 movs r6, #1 + 5674 009c 15E0 b .L358 + 5675 .LVL361: + 5676 .L361: +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 5677 .loc 1 2692 7 is_stmt 1 view .LVU1963 +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 5678 .loc 1 2692 28 is_stmt 0 view .LVU1964 + ARM GAS /tmp/ccbUHtu7.s page 253 + + + 5679 009e 638D ldrh r3, [r4, #42] +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 5680 .loc 1 2692 22 view .LVU1965 + 5681 00a0 2385 strh r3, [r4, #40] @ movhi +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5682 .loc 1 2693 7 is_stmt 1 view .LVU1966 + 5683 .LVL362: +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5684 .loc 1 2693 16 is_stmt 0 view .LVU1967 + 5685 00a2 4FF00078 mov r8, #33554432 + 5686 00a6 E5E7 b .L362 + 5687 .LVL363: + 5688 .L363: +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5689 .loc 1 2706 5 is_stmt 1 view .LVU1968 + 5690 00a8 0027 movs r7, #0 + 5691 00aa 0097 str r7, [sp] + 5692 00ac 4346 mov r3, r8 + 5693 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 5694 00b2 2946 mov r1, r5 + 5695 00b4 2046 mov r0, r4 + 5696 00b6 FFF7FEFF bl I2C_TransferConfig + 5697 .LVL364: +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5698 .loc 1 2709 5 view .LVU1969 +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5699 .loc 1 2709 5 view .LVU1970 + 5700 00ba 84F84070 strb r7, [r4, #64] +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5701 .loc 1 2709 5 view .LVU1971 +2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5702 .loc 1 2719 5 view .LVU1972 + 5703 00be 0121 movs r1, #1 + 5704 00c0 2046 mov r0, r4 + 5705 00c2 FFF7FEFF bl I2C_Enable_IRQ + 5706 .LVL365: +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5707 .loc 1 2721 5 view .LVU1973 +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5708 .loc 1 2721 12 is_stmt 0 view .LVU1974 + 5709 00c6 00E0 b .L358 + 5710 .LVL366: + 5711 .L364: +2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5712 .loc 1 2725 12 view .LVU1975 + 5713 00c8 0226 movs r6, #2 + 5714 .LVL367: + 5715 .L358: +2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5716 .loc 1 2727 1 view .LVU1976 + 5717 00ca 3046 mov r0, r6 + 5718 00cc 02B0 add sp, sp, #8 + 5719 .LCFI65: + 5720 .cfi_remember_state + 5721 .cfi_def_cfa_offset 24 + 5722 @ sp needed + 5723 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc} + ARM GAS /tmp/ccbUHtu7.s page 254 + + + 5724 .LVL368: + 5725 .L365: + 5726 .LCFI66: + 5727 .cfi_restore_state +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5728 .loc 1 2666 14 view .LVU1977 + 5729 00d2 0226 movs r6, #2 + 5730 00d4 F9E7 b .L358 + 5731 .L366: +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5732 .loc 1 2670 5 view .LVU1978 + 5733 00d6 0226 movs r6, #2 + 5734 00d8 F7E7 b .L358 + 5735 .L369: + 5736 00da 00BF .align 2 + 5737 .L368: + 5738 00dc 0000FFFF .word -65536 + 5739 00e0 00000000 .word I2C_Master_ISR_IT + 5740 .cfi_endproc + 5741 .LFE347: + 5743 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits + 5744 .align 1 + 5745 .global HAL_I2C_Mem_Read_IT + 5746 .syntax unified + 5747 .thumb + 5748 .thumb_func + 5750 HAL_I2C_Mem_Read_IT: + 5751 .LVL369: + 5752 .LFB348: +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5753 .loc 1 2743 1 is_stmt 1 view -0 + 5754 .cfi_startproc + 5755 @ args = 8, pretend = 0, frame = 0 + 5756 @ frame_needed = 0, uses_anonymous_args = 0 +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5757 .loc 1 2743 1 is_stmt 0 view .LVU1980 + 5758 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 5759 .LCFI67: + 5760 .cfi_def_cfa_offset 24 + 5761 .cfi_offset 4, -24 + 5762 .cfi_offset 5, -20 + 5763 .cfi_offset 6, -16 + 5764 .cfi_offset 7, -12 + 5765 .cfi_offset 8, -8 + 5766 .cfi_offset 14, -4 + 5767 0004 82B0 sub sp, sp, #8 + 5768 .LCFI68: + 5769 .cfi_def_cfa_offset 32 + 5770 0006 0446 mov r4, r0 + 5771 0008 BDF82480 ldrh r8, [sp, #36] +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 5772 .loc 1 2744 3 is_stmt 1 view .LVU1981 +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5773 .loc 1 2745 3 view .LVU1982 +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5774 .loc 1 2748 3 view .LVU1983 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 255 + + + 5775 .loc 1 2750 3 view .LVU1984 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5776 .loc 1 2750 11 is_stmt 0 view .LVU1985 + 5777 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 5778 .LVL370: +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5779 .loc 1 2750 11 view .LVU1986 + 5780 0010 C0B2 uxtb r0, r0 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5781 .loc 1 2750 6 view .LVU1987 + 5782 0012 2028 cmp r0, #32 + 5783 0014 59D1 bne .L377 + 5784 0016 0D46 mov r5, r1 + 5785 0018 1746 mov r7, r2 + 5786 001a 1E46 mov r6, r3 +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5787 .loc 1 2752 5 is_stmt 1 view .LVU1988 +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5788 .loc 1 2752 8 is_stmt 0 view .LVU1989 + 5789 001c 089B ldr r3, [sp, #32] + 5790 .LVL371: +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5791 .loc 1 2752 8 view .LVU1990 + 5792 001e 002B cmp r3, #0 + 5793 0020 38D0 beq .L372 +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5794 .loc 1 2752 25 discriminator 1 view .LVU1991 + 5795 0022 B8F1000F cmp r8, #0 + 5796 0026 35D0 beq .L372 +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5797 .loc 1 2758 5 is_stmt 1 view .LVU1992 +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5798 .loc 1 2758 9 is_stmt 0 view .LVU1993 + 5799 0028 2368 ldr r3, [r4] + 5800 002a 9B69 ldr r3, [r3, #24] +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5801 .loc 1 2758 8 view .LVU1994 + 5802 002c 13F4004F tst r3, #32768 + 5803 0030 50D1 bne .L378 +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5804 .loc 1 2764 5 is_stmt 1 view .LVU1995 +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5805 .loc 1 2764 5 view .LVU1996 + 5806 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 5807 0036 012B cmp r3, #1 + 5808 0038 4ED0 beq .L379 +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5809 .loc 1 2764 5 discriminator 2 view .LVU1997 + 5810 003a 0123 movs r3, #1 + 5811 003c 84F84030 strb r3, [r4, #64] +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5812 .loc 1 2764 5 discriminator 2 view .LVU1998 +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5813 .loc 1 2767 5 discriminator 2 view .LVU1999 +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5814 .loc 1 2767 17 is_stmt 0 discriminator 2 view .LVU2000 + 5815 0040 FFF7FEFF bl HAL_GetTick + ARM GAS /tmp/ccbUHtu7.s page 256 + + + 5816 .LVL372: +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 5817 .loc 1 2769 5 is_stmt 1 discriminator 2 view .LVU2001 +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 5818 .loc 1 2769 23 is_stmt 0 discriminator 2 view .LVU2002 + 5819 0044 2223 movs r3, #34 + 5820 0046 84F84130 strb r3, [r4, #65] +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 5821 .loc 1 2770 5 is_stmt 1 discriminator 2 view .LVU2003 +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 5822 .loc 1 2770 23 is_stmt 0 discriminator 2 view .LVU2004 + 5823 004a 4023 movs r3, #64 + 5824 004c 84F84230 strb r3, [r4, #66] +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5825 .loc 1 2771 5 is_stmt 1 discriminator 2 view .LVU2005 +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5826 .loc 1 2771 23 is_stmt 0 discriminator 2 view .LVU2006 + 5827 0050 0023 movs r3, #0 + 5828 0052 6364 str r3, [r4, #68] +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 5829 .loc 1 2774 5 is_stmt 1 discriminator 2 view .LVU2007 +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 5830 .loc 1 2774 23 is_stmt 0 discriminator 2 view .LVU2008 + 5831 0054 089B ldr r3, [sp, #32] + 5832 0056 6362 str r3, [r4, #36] +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 5833 .loc 1 2775 5 is_stmt 1 discriminator 2 view .LVU2009 +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 5834 .loc 1 2775 23 is_stmt 0 discriminator 2 view .LVU2010 + 5835 0058 A4F82A80 strh r8, [r4, #42] @ movhi +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 5836 .loc 1 2776 5 is_stmt 1 discriminator 2 view .LVU2011 +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 5837 .loc 1 2776 23 is_stmt 0 discriminator 2 view .LVU2012 + 5838 005c 1F4B ldr r3, .L381 + 5839 005e E362 str r3, [r4, #44] +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5840 .loc 1 2777 5 is_stmt 1 discriminator 2 view .LVU2013 +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5841 .loc 1 2777 23 is_stmt 0 discriminator 2 view .LVU2014 + 5842 0060 1F4B ldr r3, .L381+4 + 5843 0062 6363 str r3, [r4, #52] +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5844 .loc 1 2779 5 is_stmt 1 discriminator 2 view .LVU2015 +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5845 .loc 1 2779 13 is_stmt 0 discriminator 2 view .LVU2016 + 5846 0064 638D ldrh r3, [r4, #42] + 5847 0066 9BB2 uxth r3, r3 +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5848 .loc 1 2779 8 discriminator 2 view .LVU2017 + 5849 0068 FF2B cmp r3, #255 + 5850 006a 18D9 bls .L374 +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 5851 .loc 1 2781 7 is_stmt 1 view .LVU2018 +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 5852 .loc 1 2781 22 is_stmt 0 view .LVU2019 + 5853 006c FF23 movs r3, #255 + ARM GAS /tmp/ccbUHtu7.s page 257 + + + 5854 006e 2385 strh r3, [r4, #40] @ movhi +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5855 .loc 1 2782 7 is_stmt 1 view .LVU2020 + 5856 .LVL373: +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5857 .loc 1 2782 16 is_stmt 0 view .LVU2021 + 5858 0070 4FF08078 mov r8, #16777216 + 5859 .LVL374: + 5860 .L375: +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5861 .loc 1 2791 5 is_stmt 1 view .LVU2022 +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5862 .loc 1 2791 9 is_stmt 0 view .LVU2023 + 5863 0074 0190 str r0, [sp, #4] + 5864 0076 1923 movs r3, #25 + 5865 0078 0093 str r3, [sp] + 5866 007a 3346 mov r3, r6 + 5867 007c 3A46 mov r2, r7 + 5868 007e 2946 mov r1, r5 + 5869 0080 2046 mov r0, r4 + 5870 .LVL375: +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5871 .loc 1 2791 9 view .LVU2024 + 5872 0082 FFF7FEFF bl I2C_RequestMemoryRead + 5873 .LVL376: +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5874 .loc 1 2791 8 view .LVU2025 + 5875 0086 0646 mov r6, r0 + 5876 0088 70B1 cbz r0, .L376 +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5877 .loc 1 2794 7 is_stmt 1 view .LVU2026 +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5878 .loc 1 2794 7 view .LVU2027 + 5879 008a 0023 movs r3, #0 + 5880 008c 84F84030 strb r3, [r4, #64] +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5881 .loc 1 2794 7 view .LVU2028 +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5882 .loc 1 2795 7 view .LVU2029 +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5883 .loc 1 2795 14 is_stmt 0 view .LVU2030 + 5884 0090 0126 movs r6, #1 + 5885 0092 1BE0 b .L371 + 5886 .LVL377: + 5887 .L372: +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5888 .loc 1 2754 7 is_stmt 1 view .LVU2031 +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 5889 .loc 1 2754 23 is_stmt 0 view .LVU2032 + 5890 0094 4FF40073 mov r3, #512 + 5891 0098 6364 str r3, [r4, #68] +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5892 .loc 1 2755 7 is_stmt 1 view .LVU2033 +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5893 .loc 1 2755 15 is_stmt 0 view .LVU2034 + 5894 009a 0126 movs r6, #1 + 5895 009c 16E0 b .L371 + ARM GAS /tmp/ccbUHtu7.s page 258 + + + 5896 .LVL378: + 5897 .L374: +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 5898 .loc 1 2786 7 is_stmt 1 view .LVU2035 +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 5899 .loc 1 2786 28 is_stmt 0 view .LVU2036 + 5900 009e 638D ldrh r3, [r4, #42] +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 5901 .loc 1 2786 22 view .LVU2037 + 5902 00a0 2385 strh r3, [r4, #40] @ movhi +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5903 .loc 1 2787 7 is_stmt 1 view .LVU2038 + 5904 .LVL379: +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5905 .loc 1 2787 16 is_stmt 0 view .LVU2039 + 5906 00a2 4FF00078 mov r8, #33554432 + 5907 00a6 E5E7 b .L375 + 5908 .LVL380: + 5909 .L376: +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5910 .loc 1 2799 5 is_stmt 1 view .LVU2040 + 5911 00a8 0E4B ldr r3, .L381+8 + 5912 00aa 0093 str r3, [sp] + 5913 00ac 4346 mov r3, r8 + 5914 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 5915 00b2 2946 mov r1, r5 + 5916 00b4 2046 mov r0, r4 + 5917 00b6 FFF7FEFF bl I2C_TransferConfig + 5918 .LVL381: +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5919 .loc 1 2802 5 view .LVU2041 +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5920 .loc 1 2802 5 view .LVU2042 + 5921 00ba 0023 movs r3, #0 + 5922 00bc 84F84030 strb r3, [r4, #64] +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5923 .loc 1 2802 5 view .LVU2043 +2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5924 .loc 1 2812 5 view .LVU2044 + 5925 00c0 0221 movs r1, #2 + 5926 00c2 2046 mov r0, r4 + 5927 00c4 FFF7FEFF bl I2C_Enable_IRQ + 5928 .LVL382: +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5929 .loc 1 2814 5 view .LVU2045 +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5930 .loc 1 2814 12 is_stmt 0 view .LVU2046 + 5931 00c8 00E0 b .L371 + 5932 .LVL383: + 5933 .L377: +2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5934 .loc 1 2818 12 view .LVU2047 + 5935 00ca 0226 movs r6, #2 + 5936 .LVL384: + 5937 .L371: +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** + 5938 .loc 1 2820 1 view .LVU2048 + ARM GAS /tmp/ccbUHtu7.s page 259 + + + 5939 00cc 3046 mov r0, r6 + 5940 00ce 02B0 add sp, sp, #8 + 5941 .LCFI69: + 5942 .cfi_remember_state + 5943 .cfi_def_cfa_offset 24 + 5944 @ sp needed + 5945 00d0 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 5946 .LVL385: + 5947 .L378: + 5948 .LCFI70: + 5949 .cfi_restore_state +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 5950 .loc 1 2760 14 view .LVU2049 + 5951 00d4 0226 movs r6, #2 + 5952 00d6 F9E7 b .L371 + 5953 .L379: +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5954 .loc 1 2764 5 view .LVU2050 + 5955 00d8 0226 movs r6, #2 + 5956 00da F7E7 b .L371 + 5957 .L382: + 5958 .align 2 + 5959 .L381: + 5960 00dc 0000FFFF .word -65536 + 5961 00e0 00000000 .word I2C_Master_ISR_IT + 5962 00e4 00240080 .word -2147474432 + 5963 .cfi_endproc + 5964 .LFE348: + 5966 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits + 5967 .align 1 + 5968 .global HAL_I2C_Mem_Write_DMA + 5969 .syntax unified + 5970 .thumb + 5971 .thumb_func + 5973 HAL_I2C_Mem_Write_DMA: + 5974 .LVL386: + 5975 .LFB349: +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5976 .loc 1 2835 1 is_stmt 1 view -0 + 5977 .cfi_startproc + 5978 @ args = 8, pretend = 0, frame = 0 + 5979 @ frame_needed = 0, uses_anonymous_args = 0 +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 5980 .loc 1 2835 1 is_stmt 0 view .LVU2052 + 5981 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 5982 .LCFI71: + 5983 .cfi_def_cfa_offset 24 + 5984 .cfi_offset 4, -24 + 5985 .cfi_offset 5, -20 + 5986 .cfi_offset 6, -16 + 5987 .cfi_offset 7, -12 + 5988 .cfi_offset 8, -8 + 5989 .cfi_offset 14, -4 + 5990 0004 82B0 sub sp, sp, #8 + 5991 .LCFI72: + 5992 .cfi_def_cfa_offset 32 + 5993 0006 0446 mov r4, r0 + ARM GAS /tmp/ccbUHtu7.s page 260 + + + 5994 0008 BDF82480 ldrh r8, [sp, #36] +2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 5995 .loc 1 2836 3 is_stmt 1 view .LVU2053 +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 5996 .loc 1 2837 3 view .LVU2054 +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5997 .loc 1 2838 3 view .LVU2055 +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 5998 .loc 1 2841 3 view .LVU2056 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 5999 .loc 1 2843 3 view .LVU2057 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6000 .loc 1 2843 11 is_stmt 0 view .LVU2058 + 6001 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 6002 .LVL387: +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6003 .loc 1 2843 11 view .LVU2059 + 6004 0010 C0B2 uxtb r0, r0 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6005 .loc 1 2843 6 view .LVU2060 + 6006 0012 2028 cmp r0, #32 + 6007 0014 40F09880 bne .L393 + 6008 0018 0D46 mov r5, r1 + 6009 001a 1746 mov r7, r2 + 6010 001c 1E46 mov r6, r3 +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6011 .loc 1 2845 5 is_stmt 1 view .LVU2061 +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6012 .loc 1 2845 8 is_stmt 0 view .LVU2062 + 6013 001e 089B ldr r3, [sp, #32] + 6014 .LVL388: +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6015 .loc 1 2845 8 view .LVU2063 + 6016 0020 002B cmp r3, #0 + 6017 0022 59D0 beq .L385 +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6018 .loc 1 2845 25 discriminator 1 view .LVU2064 + 6019 0024 B8F1000F cmp r8, #0 + 6020 0028 56D0 beq .L385 +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6021 .loc 1 2851 5 is_stmt 1 view .LVU2065 +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6022 .loc 1 2851 9 is_stmt 0 view .LVU2066 + 6023 002a 2368 ldr r3, [r4] + 6024 002c 9B69 ldr r3, [r3, #24] +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6025 .loc 1 2851 8 view .LVU2067 + 6026 002e 13F4004F tst r3, #32768 + 6027 0032 40F08E80 bne .L394 +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6028 .loc 1 2857 5 is_stmt 1 view .LVU2068 +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6029 .loc 1 2857 5 view .LVU2069 + 6030 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 6031 003a 012B cmp r3, #1 + 6032 003c 00F08B80 beq .L395 +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 261 + + + 6033 .loc 1 2857 5 discriminator 2 view .LVU2070 + 6034 0040 0123 movs r3, #1 + 6035 0042 84F84030 strb r3, [r4, #64] +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6036 .loc 1 2857 5 discriminator 2 view .LVU2071 +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6037 .loc 1 2860 5 discriminator 2 view .LVU2072 +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6038 .loc 1 2860 17 is_stmt 0 discriminator 2 view .LVU2073 + 6039 0046 FFF7FEFF bl HAL_GetTick + 6040 .LVL389: +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 6041 .loc 1 2862 5 is_stmt 1 discriminator 2 view .LVU2074 +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 6042 .loc 1 2862 23 is_stmt 0 discriminator 2 view .LVU2075 + 6043 004a 2123 movs r3, #33 + 6044 004c 84F84130 strb r3, [r4, #65] +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 6045 .loc 1 2863 5 is_stmt 1 discriminator 2 view .LVU2076 +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 6046 .loc 1 2863 23 is_stmt 0 discriminator 2 view .LVU2077 + 6047 0050 4023 movs r3, #64 + 6048 0052 84F84230 strb r3, [r4, #66] +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6049 .loc 1 2864 5 is_stmt 1 discriminator 2 view .LVU2078 +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6050 .loc 1 2864 23 is_stmt 0 discriminator 2 view .LVU2079 + 6051 0056 0023 movs r3, #0 + 6052 0058 6364 str r3, [r4, #68] +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 6053 .loc 1 2867 5 is_stmt 1 discriminator 2 view .LVU2080 +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 6054 .loc 1 2867 23 is_stmt 0 discriminator 2 view .LVU2081 + 6055 005a 089B ldr r3, [sp, #32] + 6056 005c 6362 str r3, [r4, #36] +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 6057 .loc 1 2868 5 is_stmt 1 discriminator 2 view .LVU2082 +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 6058 .loc 1 2868 23 is_stmt 0 discriminator 2 view .LVU2083 + 6059 005e A4F82A80 strh r8, [r4, #42] @ movhi +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 6060 .loc 1 2869 5 is_stmt 1 discriminator 2 view .LVU2084 +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 6061 .loc 1 2869 23 is_stmt 0 discriminator 2 view .LVU2085 + 6062 0062 3E4B ldr r3, .L400 + 6063 0064 E362 str r3, [r4, #44] +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6064 .loc 1 2870 5 is_stmt 1 discriminator 2 view .LVU2086 +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6065 .loc 1 2870 23 is_stmt 0 discriminator 2 view .LVU2087 + 6066 0066 3E4B ldr r3, .L400+4 + 6067 0068 6363 str r3, [r4, #52] +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6068 .loc 1 2872 5 is_stmt 1 discriminator 2 view .LVU2088 +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6069 .loc 1 2872 13 is_stmt 0 discriminator 2 view .LVU2089 + 6070 006a 638D ldrh r3, [r4, #42] + ARM GAS /tmp/ccbUHtu7.s page 262 + + + 6071 006c 9BB2 uxth r3, r3 +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6072 .loc 1 2872 8 discriminator 2 view .LVU2090 + 6073 006e FF2B cmp r3, #255 + 6074 0070 37D9 bls .L387 +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 6075 .loc 1 2874 7 is_stmt 1 view .LVU2091 +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 6076 .loc 1 2874 22 is_stmt 0 view .LVU2092 + 6077 0072 FF23 movs r3, #255 + 6078 0074 2385 strh r3, [r4, #40] @ movhi +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6079 .loc 1 2875 7 is_stmt 1 view .LVU2093 + 6080 .LVL390: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6081 .loc 1 2875 16 is_stmt 0 view .LVU2094 + 6082 0076 4FF08078 mov r8, #16777216 + 6083 .LVL391: + 6084 .L388: +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 6085 .loc 1 2884 5 is_stmt 1 view .LVU2095 +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 6086 .loc 1 2884 9 is_stmt 0 view .LVU2096 + 6087 007a 0190 str r0, [sp, #4] + 6088 007c 1923 movs r3, #25 + 6089 007e 0093 str r3, [sp] + 6090 0080 3346 mov r3, r6 + 6091 0082 3A46 mov r2, r7 + 6092 0084 2946 mov r1, r5 + 6093 0086 2046 mov r0, r4 + 6094 .LVL392: +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 6095 .loc 1 2884 9 view .LVU2097 + 6096 0088 FFF7FEFF bl I2C_RequestMemoryWrite + 6097 .LVL393: +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) + 6098 .loc 1 2884 8 view .LVU2098 + 6099 008c 0028 cmp r0, #0 + 6100 008e 2DD1 bne .L398 +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6101 .loc 1 2893 5 is_stmt 1 view .LVU2099 +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6102 .loc 1 2893 13 is_stmt 0 view .LVU2100 + 6103 0090 A36B ldr r3, [r4, #56] +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6104 .loc 1 2893 8 view .LVU2101 + 6105 0092 002B cmp r3, #0 + 6106 0094 2FD0 beq .L390 +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6107 .loc 1 2896 7 is_stmt 1 view .LVU2102 +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6108 .loc 1 2896 38 is_stmt 0 view .LVU2103 + 6109 0096 334A ldr r2, .L400+8 + 6110 0098 DA62 str r2, [r3, #44] +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6111 .loc 1 2899 7 is_stmt 1 view .LVU2104 +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 263 + + + 6112 .loc 1 2899 11 is_stmt 0 view .LVU2105 + 6113 009a A36B ldr r3, [r4, #56] +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6114 .loc 1 2899 39 view .LVU2106 + 6115 009c 324A ldr r2, .L400+12 + 6116 009e 5A63 str r2, [r3, #52] +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 6117 .loc 1 2902 7 is_stmt 1 view .LVU2107 +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 6118 .loc 1 2902 11 is_stmt 0 view .LVU2108 + 6119 00a0 A26B ldr r2, [r4, #56] +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 6120 .loc 1 2902 42 view .LVU2109 + 6121 00a2 0023 movs r3, #0 + 6122 00a4 1363 str r3, [r2, #48] +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6123 .loc 1 2903 7 is_stmt 1 view .LVU2110 +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6124 .loc 1 2903 11 is_stmt 0 view .LVU2111 + 6125 00a6 A26B ldr r2, [r4, #56] +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6126 .loc 1 2903 39 view .LVU2112 + 6127 00a8 9363 str r3, [r2, #56] +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 6128 .loc 1 2906 7 is_stmt 1 view .LVU2113 +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 6129 .loc 1 2906 86 is_stmt 0 view .LVU2114 + 6130 00aa 2268 ldr r2, [r4] +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 6131 .loc 1 2906 23 view .LVU2115 + 6132 00ac 238D ldrh r3, [r4, #40] + 6133 00ae 2832 adds r2, r2, #40 + 6134 00b0 0899 ldr r1, [sp, #32] + 6135 00b2 A06B ldr r0, [r4, #56] + 6136 00b4 FFF7FEFF bl HAL_DMA_Start_IT + 6137 .LVL394: +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6138 .loc 1 2924 5 is_stmt 1 view .LVU2116 +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6139 .loc 1 2924 8 is_stmt 0 view .LVU2117 + 6140 00b8 0646 mov r6, r0 + 6141 00ba 50B3 cbz r0, .L399 +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6142 .loc 1 2948 7 is_stmt 1 view .LVU2118 +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6143 .loc 1 2948 23 is_stmt 0 view .LVU2119 + 6144 00bc 2023 movs r3, #32 + 6145 00be 84F84130 strb r3, [r4, #65] +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6146 .loc 1 2949 7 is_stmt 1 view .LVU2120 +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6147 .loc 1 2949 23 is_stmt 0 view .LVU2121 + 6148 00c2 0022 movs r2, #0 + 6149 00c4 84F84220 strb r2, [r4, #66] +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6150 .loc 1 2952 7 is_stmt 1 view .LVU2122 +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 264 + + + 6151 .loc 1 2952 11 is_stmt 0 view .LVU2123 + 6152 00c8 636C ldr r3, [r4, #68] +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6153 .loc 1 2952 23 view .LVU2124 + 6154 00ca 43F01003 orr r3, r3, #16 + 6155 00ce 6364 str r3, [r4, #68] +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6156 .loc 1 2955 7 is_stmt 1 view .LVU2125 +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6157 .loc 1 2955 7 view .LVU2126 + 6158 00d0 84F84020 strb r2, [r4, #64] +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6159 .loc 1 2955 7 view .LVU2127 +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6160 .loc 1 2957 7 view .LVU2128 +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6161 .loc 1 2957 14 is_stmt 0 view .LVU2129 + 6162 00d4 0126 movs r6, #1 + 6163 00d6 38E0 b .L384 + 6164 .LVL395: + 6165 .L385: +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6166 .loc 1 2847 7 is_stmt 1 view .LVU2130 +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6167 .loc 1 2847 23 is_stmt 0 view .LVU2131 + 6168 00d8 4FF40073 mov r3, #512 + 6169 00dc 6364 str r3, [r4, #68] +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6170 .loc 1 2848 7 is_stmt 1 view .LVU2132 +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6171 .loc 1 2848 15 is_stmt 0 view .LVU2133 + 6172 00de 0126 movs r6, #1 + 6173 00e0 33E0 b .L384 + 6174 .LVL396: + 6175 .L387: +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 6176 .loc 1 2879 7 is_stmt 1 view .LVU2134 +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 6177 .loc 1 2879 28 is_stmt 0 view .LVU2135 + 6178 00e2 638D ldrh r3, [r4, #42] +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 6179 .loc 1 2879 22 view .LVU2136 + 6180 00e4 2385 strh r3, [r4, #40] @ movhi +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6181 .loc 1 2880 7 is_stmt 1 view .LVU2137 + 6182 .LVL397: +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6183 .loc 1 2880 16 is_stmt 0 view .LVU2138 + 6184 00e6 4FF00078 mov r8, #33554432 + 6185 00ea C6E7 b .L388 + 6186 .LVL398: + 6187 .L398: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6188 .loc 1 2888 7 is_stmt 1 view .LVU2139 +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6189 .loc 1 2888 7 view .LVU2140 + 6190 00ec 0023 movs r3, #0 + ARM GAS /tmp/ccbUHtu7.s page 265 + + + 6191 00ee 84F84030 strb r3, [r4, #64] +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6192 .loc 1 2888 7 view .LVU2141 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6193 .loc 1 2889 7 view .LVU2142 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6194 .loc 1 2889 14 is_stmt 0 view .LVU2143 + 6195 00f2 0126 movs r6, #1 + 6196 00f4 29E0 b .L384 + 6197 .L390: +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6198 .loc 1 2912 7 is_stmt 1 view .LVU2144 +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6199 .loc 1 2912 23 is_stmt 0 view .LVU2145 + 6200 00f6 2023 movs r3, #32 + 6201 00f8 84F84130 strb r3, [r4, #65] +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6202 .loc 1 2913 7 is_stmt 1 view .LVU2146 +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6203 .loc 1 2913 23 is_stmt 0 view .LVU2147 + 6204 00fc 0022 movs r2, #0 + 6205 00fe 84F84220 strb r2, [r4, #66] +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6206 .loc 1 2916 7 is_stmt 1 view .LVU2148 +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6207 .loc 1 2916 11 is_stmt 0 view .LVU2149 + 6208 0102 636C ldr r3, [r4, #68] +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6209 .loc 1 2916 23 view .LVU2150 + 6210 0104 43F08003 orr r3, r3, #128 + 6211 0108 6364 str r3, [r4, #68] +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6212 .loc 1 2919 7 is_stmt 1 view .LVU2151 +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6213 .loc 1 2919 7 view .LVU2152 + 6214 010a 84F84020 strb r2, [r4, #64] +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6215 .loc 1 2919 7 view .LVU2153 +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6216 .loc 1 2921 7 view .LVU2154 +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6217 .loc 1 2921 14 is_stmt 0 view .LVU2155 + 6218 010e 0126 movs r6, #1 + 6219 0110 1BE0 b .L384 + 6220 .LVL399: + 6221 .L399: +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6222 .loc 1 2928 7 is_stmt 1 view .LVU2156 + 6223 0112 0027 movs r7, #0 + 6224 0114 0097 str r7, [sp] + 6225 0116 4346 mov r3, r8 + 6226 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 6227 011c 2946 mov r1, r5 + 6228 011e 2046 mov r0, r4 + 6229 .LVL400: +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6230 .loc 1 2928 7 is_stmt 0 view .LVU2157 + ARM GAS /tmp/ccbUHtu7.s page 266 + + + 6231 0120 FFF7FEFF bl I2C_TransferConfig + 6232 .LVL401: +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6233 .loc 1 2931 7 is_stmt 1 view .LVU2158 +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6234 .loc 1 2931 11 is_stmt 0 view .LVU2159 + 6235 0124 638D ldrh r3, [r4, #42] + 6236 0126 9BB2 uxth r3, r3 +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6237 .loc 1 2931 30 view .LVU2160 + 6238 0128 228D ldrh r2, [r4, #40] +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6239 .loc 1 2931 23 view .LVU2161 + 6240 012a 9B1A subs r3, r3, r2 + 6241 012c 9BB2 uxth r3, r3 + 6242 012e 6385 strh r3, [r4, #42] @ movhi +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6243 .loc 1 2934 7 is_stmt 1 view .LVU2162 +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6244 .loc 1 2934 7 view .LVU2163 + 6245 0130 84F84070 strb r7, [r4, #64] +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6246 .loc 1 2934 7 view .LVU2164 +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6247 .loc 1 2940 7 view .LVU2165 + 6248 0134 1021 movs r1, #16 + 6249 0136 2046 mov r0, r4 + 6250 0138 FFF7FEFF bl I2C_Enable_IRQ + 6251 .LVL402: +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6252 .loc 1 2943 7 view .LVU2166 +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6253 .loc 1 2943 11 is_stmt 0 view .LVU2167 + 6254 013c 2268 ldr r2, [r4] +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6255 .loc 1 2943 21 view .LVU2168 + 6256 013e 1368 ldr r3, [r2] +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6257 .loc 1 2943 27 view .LVU2169 + 6258 0140 43F48043 orr r3, r3, #16384 + 6259 0144 1360 str r3, [r2] +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6260 .loc 1 2960 5 is_stmt 1 view .LVU2170 +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6261 .loc 1 2960 12 is_stmt 0 view .LVU2171 + 6262 0146 00E0 b .L384 + 6263 .LVL403: + 6264 .L393: +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6265 .loc 1 2964 12 view .LVU2172 + 6266 0148 0226 movs r6, #2 + 6267 .LVL404: + 6268 .L384: +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6269 .loc 1 2966 1 view .LVU2173 + 6270 014a 3046 mov r0, r6 + 6271 014c 02B0 add sp, sp, #8 + ARM GAS /tmp/ccbUHtu7.s page 267 + + + 6272 .LCFI73: + 6273 .cfi_remember_state + 6274 .cfi_def_cfa_offset 24 + 6275 @ sp needed + 6276 014e BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 6277 .LVL405: + 6278 .L394: + 6279 .LCFI74: + 6280 .cfi_restore_state +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6281 .loc 1 2853 14 view .LVU2174 + 6282 0152 0226 movs r6, #2 + 6283 0154 F9E7 b .L384 + 6284 .L395: +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6285 .loc 1 2857 5 view .LVU2175 + 6286 0156 0226 movs r6, #2 + 6287 0158 F7E7 b .L384 + 6288 .L401: + 6289 015a 00BF .align 2 + 6290 .L400: + 6291 015c 0000FFFF .word -65536 + 6292 0160 00000000 .word I2C_Master_ISR_DMA + 6293 0164 00000000 .word I2C_DMAMasterTransmitCplt + 6294 0168 00000000 .word I2C_DMAError + 6295 .cfi_endproc + 6296 .LFE349: + 6298 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits + 6299 .align 1 + 6300 .global HAL_I2C_Mem_Read_DMA + 6301 .syntax unified + 6302 .thumb + 6303 .thumb_func + 6305 HAL_I2C_Mem_Read_DMA: + 6306 .LVL406: + 6307 .LFB350: +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 6308 .loc 1 2982 1 is_stmt 1 view -0 + 6309 .cfi_startproc + 6310 @ args = 8, pretend = 0, frame = 0 + 6311 @ frame_needed = 0, uses_anonymous_args = 0 +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 6312 .loc 1 2982 1 is_stmt 0 view .LVU2177 + 6313 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 6314 .LCFI75: + 6315 .cfi_def_cfa_offset 24 + 6316 .cfi_offset 4, -24 + 6317 .cfi_offset 5, -20 + 6318 .cfi_offset 6, -16 + 6319 .cfi_offset 7, -12 + 6320 .cfi_offset 8, -8 + 6321 .cfi_offset 14, -4 + 6322 0004 82B0 sub sp, sp, #8 + 6323 .LCFI76: + 6324 .cfi_def_cfa_offset 32 + 6325 0006 0446 mov r4, r0 + 6326 0008 BDF82480 ldrh r8, [sp, #36] + ARM GAS /tmp/ccbUHtu7.s page 268 + + +2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 6327 .loc 1 2983 3 is_stmt 1 view .LVU2178 +2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 6328 .loc 1 2984 3 view .LVU2179 +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6329 .loc 1 2985 3 view .LVU2180 +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6330 .loc 1 2988 3 view .LVU2181 +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6331 .loc 1 2990 3 view .LVU2182 +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6332 .loc 1 2990 11 is_stmt 0 view .LVU2183 + 6333 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 6334 .LVL407: +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6335 .loc 1 2990 11 view .LVU2184 + 6336 0010 C0B2 uxtb r0, r0 +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6337 .loc 1 2990 6 view .LVU2185 + 6338 0012 2028 cmp r0, #32 + 6339 0014 40F09980 bne .L412 + 6340 0018 0D46 mov r5, r1 + 6341 001a 1746 mov r7, r2 + 6342 001c 1E46 mov r6, r3 +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6343 .loc 1 2992 5 is_stmt 1 view .LVU2186 +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6344 .loc 1 2992 8 is_stmt 0 view .LVU2187 + 6345 001e 089B ldr r3, [sp, #32] + 6346 .LVL408: +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6347 .loc 1 2992 8 view .LVU2188 + 6348 0020 002B cmp r3, #0 + 6349 0022 59D0 beq .L404 +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6350 .loc 1 2992 25 discriminator 1 view .LVU2189 + 6351 0024 B8F1000F cmp r8, #0 + 6352 0028 56D0 beq .L404 +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6353 .loc 1 2998 5 is_stmt 1 view .LVU2190 +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6354 .loc 1 2998 9 is_stmt 0 view .LVU2191 + 6355 002a 2368 ldr r3, [r4] + 6356 002c 9B69 ldr r3, [r3, #24] +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6357 .loc 1 2998 8 view .LVU2192 + 6358 002e 13F4004F tst r3, #32768 + 6359 0032 40F08F80 bne .L413 +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6360 .loc 1 3004 5 is_stmt 1 view .LVU2193 +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6361 .loc 1 3004 5 view .LVU2194 + 6362 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 6363 003a 012B cmp r3, #1 + 6364 003c 00F08C80 beq .L414 +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6365 .loc 1 3004 5 discriminator 2 view .LVU2195 + ARM GAS /tmp/ccbUHtu7.s page 269 + + + 6366 0040 0123 movs r3, #1 + 6367 0042 84F84030 strb r3, [r4, #64] +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6368 .loc 1 3004 5 discriminator 2 view .LVU2196 +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6369 .loc 1 3007 5 discriminator 2 view .LVU2197 +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6370 .loc 1 3007 17 is_stmt 0 discriminator 2 view .LVU2198 + 6371 0046 FFF7FEFF bl HAL_GetTick + 6372 .LVL409: +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 6373 .loc 1 3009 5 is_stmt 1 discriminator 2 view .LVU2199 +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; + 6374 .loc 1 3009 23 is_stmt 0 discriminator 2 view .LVU2200 + 6375 004a 2223 movs r3, #34 + 6376 004c 84F84130 strb r3, [r4, #65] +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 6377 .loc 1 3010 5 is_stmt 1 discriminator 2 view .LVU2201 +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 6378 .loc 1 3010 23 is_stmt 0 discriminator 2 view .LVU2202 + 6379 0050 4023 movs r3, #64 + 6380 0052 84F84230 strb r3, [r4, #66] +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6381 .loc 1 3011 5 is_stmt 1 discriminator 2 view .LVU2203 +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6382 .loc 1 3011 23 is_stmt 0 discriminator 2 view .LVU2204 + 6383 0056 0023 movs r3, #0 + 6384 0058 6364 str r3, [r4, #68] +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 6385 .loc 1 3014 5 is_stmt 1 discriminator 2 view .LVU2205 +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 6386 .loc 1 3014 23 is_stmt 0 discriminator 2 view .LVU2206 + 6387 005a 089B ldr r3, [sp, #32] + 6388 005c 6362 str r3, [r4, #36] +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 6389 .loc 1 3015 5 is_stmt 1 discriminator 2 view .LVU2207 +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 6390 .loc 1 3015 23 is_stmt 0 discriminator 2 view .LVU2208 + 6391 005e A4F82A80 strh r8, [r4, #42] @ movhi +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 6392 .loc 1 3016 5 is_stmt 1 discriminator 2 view .LVU2209 +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 6393 .loc 1 3016 23 is_stmt 0 discriminator 2 view .LVU2210 + 6394 0062 3E4B ldr r3, .L419 + 6395 0064 E362 str r3, [r4, #44] +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6396 .loc 1 3017 5 is_stmt 1 discriminator 2 view .LVU2211 +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6397 .loc 1 3017 23 is_stmt 0 discriminator 2 view .LVU2212 + 6398 0066 3E4B ldr r3, .L419+4 + 6399 0068 6363 str r3, [r4, #52] +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6400 .loc 1 3019 5 is_stmt 1 discriminator 2 view .LVU2213 +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6401 .loc 1 3019 13 is_stmt 0 discriminator 2 view .LVU2214 + 6402 006a 638D ldrh r3, [r4, #42] + 6403 006c 9BB2 uxth r3, r3 + ARM GAS /tmp/ccbUHtu7.s page 270 + + +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6404 .loc 1 3019 8 discriminator 2 view .LVU2215 + 6405 006e FF2B cmp r3, #255 + 6406 0070 37D9 bls .L406 +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 6407 .loc 1 3021 7 is_stmt 1 view .LVU2216 +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 6408 .loc 1 3021 22 is_stmt 0 view .LVU2217 + 6409 0072 FF23 movs r3, #255 + 6410 0074 2385 strh r3, [r4, #40] @ movhi +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6411 .loc 1 3022 7 is_stmt 1 view .LVU2218 + 6412 .LVL410: +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6413 .loc 1 3022 16 is_stmt 0 view .LVU2219 + 6414 0076 4FF08078 mov r8, #16777216 + 6415 .LVL411: + 6416 .L407: +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6417 .loc 1 3031 5 is_stmt 1 view .LVU2220 +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6418 .loc 1 3031 9 is_stmt 0 view .LVU2221 + 6419 007a 0190 str r0, [sp, #4] + 6420 007c 1923 movs r3, #25 + 6421 007e 0093 str r3, [sp] + 6422 0080 3346 mov r3, r6 + 6423 0082 3A46 mov r2, r7 + 6424 0084 2946 mov r1, r5 + 6425 0086 2046 mov r0, r4 + 6426 .LVL412: +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6427 .loc 1 3031 9 view .LVU2222 + 6428 0088 FFF7FEFF bl I2C_RequestMemoryRead + 6429 .LVL413: +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6430 .loc 1 3031 8 view .LVU2223 + 6431 008c 0028 cmp r0, #0 + 6432 008e 2DD1 bne .L417 +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6433 .loc 1 3038 5 is_stmt 1 view .LVU2224 +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6434 .loc 1 3038 13 is_stmt 0 view .LVU2225 + 6435 0090 E36B ldr r3, [r4, #60] +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6436 .loc 1 3038 8 view .LVU2226 + 6437 0092 002B cmp r3, #0 + 6438 0094 2FD0 beq .L409 +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6439 .loc 1 3041 7 is_stmt 1 view .LVU2227 +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6440 .loc 1 3041 38 is_stmt 0 view .LVU2228 + 6441 0096 334A ldr r2, .L419+8 + 6442 0098 DA62 str r2, [r3, #44] +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6443 .loc 1 3044 7 is_stmt 1 view .LVU2229 +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6444 .loc 1 3044 11 is_stmt 0 view .LVU2230 + ARM GAS /tmp/ccbUHtu7.s page 271 + + + 6445 009a E36B ldr r3, [r4, #60] +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6446 .loc 1 3044 39 view .LVU2231 + 6447 009c 324A ldr r2, .L419+12 + 6448 009e 5A63 str r2, [r3, #52] +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 6449 .loc 1 3047 7 is_stmt 1 view .LVU2232 +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 6450 .loc 1 3047 11 is_stmt 0 view .LVU2233 + 6451 00a0 E26B ldr r2, [r4, #60] +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 6452 .loc 1 3047 42 view .LVU2234 + 6453 00a2 0023 movs r3, #0 + 6454 00a4 1363 str r3, [r2, #48] +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6455 .loc 1 3048 7 is_stmt 1 view .LVU2235 +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6456 .loc 1 3048 11 is_stmt 0 view .LVU2236 + 6457 00a6 E26B ldr r2, [r4, #60] +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6458 .loc 1 3048 39 view .LVU2237 + 6459 00a8 9363 str r3, [r2, #56] +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 6460 .loc 1 3051 7 is_stmt 1 view .LVU2238 +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 6461 .loc 1 3051 69 is_stmt 0 view .LVU2239 + 6462 00aa 2168 ldr r1, [r4] +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 6463 .loc 1 3051 23 view .LVU2240 + 6464 00ac 238D ldrh r3, [r4, #40] + 6465 00ae 089A ldr r2, [sp, #32] + 6466 00b0 2431 adds r1, r1, #36 + 6467 00b2 E06B ldr r0, [r4, #60] + 6468 00b4 FFF7FEFF bl HAL_DMA_Start_IT + 6469 .LVL414: +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6470 .loc 1 3069 5 is_stmt 1 view .LVU2241 +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6471 .loc 1 3069 8 is_stmt 0 view .LVU2242 + 6472 00b8 0646 mov r6, r0 + 6473 00ba 50B3 cbz r0, .L418 +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6474 .loc 1 3092 7 is_stmt 1 view .LVU2243 +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6475 .loc 1 3092 23 is_stmt 0 view .LVU2244 + 6476 00bc 2023 movs r3, #32 + 6477 00be 84F84130 strb r3, [r4, #65] +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6478 .loc 1 3093 7 is_stmt 1 view .LVU2245 +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6479 .loc 1 3093 23 is_stmt 0 view .LVU2246 + 6480 00c2 0022 movs r2, #0 + 6481 00c4 84F84220 strb r2, [r4, #66] +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6482 .loc 1 3096 7 is_stmt 1 view .LVU2247 +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6483 .loc 1 3096 11 is_stmt 0 view .LVU2248 + ARM GAS /tmp/ccbUHtu7.s page 272 + + + 6484 00c8 636C ldr r3, [r4, #68] +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6485 .loc 1 3096 23 view .LVU2249 + 6486 00ca 43F01003 orr r3, r3, #16 + 6487 00ce 6364 str r3, [r4, #68] +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6488 .loc 1 3099 7 is_stmt 1 view .LVU2250 +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6489 .loc 1 3099 7 view .LVU2251 + 6490 00d0 84F84020 strb r2, [r4, #64] +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6491 .loc 1 3099 7 view .LVU2252 +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6492 .loc 1 3101 7 view .LVU2253 +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6493 .loc 1 3101 14 is_stmt 0 view .LVU2254 + 6494 00d4 0126 movs r6, #1 + 6495 00d6 39E0 b .L403 + 6496 .LVL415: + 6497 .L404: +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6498 .loc 1 2994 7 is_stmt 1 view .LVU2255 +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6499 .loc 1 2994 23 is_stmt 0 view .LVU2256 + 6500 00d8 4FF40073 mov r3, #512 + 6501 00dc 6364 str r3, [r4, #68] +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6502 .loc 1 2995 7 is_stmt 1 view .LVU2257 +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6503 .loc 1 2995 15 is_stmt 0 view .LVU2258 + 6504 00de 0126 movs r6, #1 + 6505 00e0 34E0 b .L403 + 6506 .LVL416: + 6507 .L406: +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 6508 .loc 1 3026 7 is_stmt 1 view .LVU2259 +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 6509 .loc 1 3026 28 is_stmt 0 view .LVU2260 + 6510 00e2 638D ldrh r3, [r4, #42] +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; + 6511 .loc 1 3026 22 view .LVU2261 + 6512 00e4 2385 strh r3, [r4, #40] @ movhi +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6513 .loc 1 3027 7 is_stmt 1 view .LVU2262 + 6514 .LVL417: +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6515 .loc 1 3027 16 is_stmt 0 view .LVU2263 + 6516 00e6 4FF00078 mov r8, #33554432 + 6517 00ea C6E7 b .L407 + 6518 .LVL418: + 6519 .L417: +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6520 .loc 1 3034 7 is_stmt 1 view .LVU2264 +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6521 .loc 1 3034 7 view .LVU2265 + 6522 00ec 0023 movs r3, #0 + 6523 00ee 84F84030 strb r3, [r4, #64] + ARM GAS /tmp/ccbUHtu7.s page 273 + + +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 6524 .loc 1 3034 7 view .LVU2266 +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6525 .loc 1 3035 7 view .LVU2267 +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6526 .loc 1 3035 14 is_stmt 0 view .LVU2268 + 6527 00f2 0126 movs r6, #1 + 6528 00f4 2AE0 b .L403 + 6529 .L409: +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6530 .loc 1 3057 7 is_stmt 1 view .LVU2269 +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 6531 .loc 1 3057 23 is_stmt 0 view .LVU2270 + 6532 00f6 2023 movs r3, #32 + 6533 00f8 84F84130 strb r3, [r4, #65] +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6534 .loc 1 3058 7 is_stmt 1 view .LVU2271 +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6535 .loc 1 3058 23 is_stmt 0 view .LVU2272 + 6536 00fc 0022 movs r2, #0 + 6537 00fe 84F84220 strb r2, [r4, #66] +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6538 .loc 1 3061 7 is_stmt 1 view .LVU2273 +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6539 .loc 1 3061 11 is_stmt 0 view .LVU2274 + 6540 0102 636C ldr r3, [r4, #68] +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6541 .loc 1 3061 23 view .LVU2275 + 6542 0104 43F08003 orr r3, r3, #128 + 6543 0108 6364 str r3, [r4, #68] +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6544 .loc 1 3064 7 is_stmt 1 view .LVU2276 +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6545 .loc 1 3064 7 view .LVU2277 + 6546 010a 84F84020 strb r2, [r4, #64] +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6547 .loc 1 3064 7 view .LVU2278 +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6548 .loc 1 3066 7 view .LVU2279 +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6549 .loc 1 3066 14 is_stmt 0 view .LVU2280 + 6550 010e 0126 movs r6, #1 + 6551 0110 1CE0 b .L403 + 6552 .LVL419: + 6553 .L418: +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6554 .loc 1 3072 7 is_stmt 1 view .LVU2281 + 6555 0112 164B ldr r3, .L419+16 + 6556 0114 0093 str r3, [sp] + 6557 0116 4346 mov r3, r8 + 6558 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 6559 011c 2946 mov r1, r5 + 6560 011e 2046 mov r0, r4 + 6561 .LVL420: +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6562 .loc 1 3072 7 is_stmt 0 view .LVU2282 + 6563 0120 FFF7FEFF bl I2C_TransferConfig + ARM GAS /tmp/ccbUHtu7.s page 274 + + + 6564 .LVL421: +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6565 .loc 1 3075 7 is_stmt 1 view .LVU2283 +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6566 .loc 1 3075 11 is_stmt 0 view .LVU2284 + 6567 0124 638D ldrh r3, [r4, #42] + 6568 0126 9BB2 uxth r3, r3 +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6569 .loc 1 3075 30 view .LVU2285 + 6570 0128 228D ldrh r2, [r4, #40] +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6571 .loc 1 3075 23 view .LVU2286 + 6572 012a 9B1A subs r3, r3, r2 + 6573 012c 9BB2 uxth r3, r3 + 6574 012e 6385 strh r3, [r4, #42] @ movhi +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6575 .loc 1 3078 7 is_stmt 1 view .LVU2287 +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6576 .loc 1 3078 7 view .LVU2288 + 6577 0130 0023 movs r3, #0 + 6578 0132 84F84030 strb r3, [r4, #64] +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6579 .loc 1 3078 7 view .LVU2289 +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6580 .loc 1 3084 7 view .LVU2290 + 6581 0136 1021 movs r1, #16 + 6582 0138 2046 mov r0, r4 + 6583 013a FFF7FEFF bl I2C_Enable_IRQ + 6584 .LVL422: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6585 .loc 1 3087 7 view .LVU2291 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6586 .loc 1 3087 11 is_stmt 0 view .LVU2292 + 6587 013e 2268 ldr r2, [r4] +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6588 .loc 1 3087 21 view .LVU2293 + 6589 0140 1368 ldr r3, [r2] +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6590 .loc 1 3087 27 view .LVU2294 + 6591 0142 43F40043 orr r3, r3, #32768 + 6592 0146 1360 str r3, [r2] +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6593 .loc 1 3104 5 is_stmt 1 view .LVU2295 +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6594 .loc 1 3104 12 is_stmt 0 view .LVU2296 + 6595 0148 00E0 b .L403 + 6596 .LVL423: + 6597 .L412: +3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6598 .loc 1 3108 12 view .LVU2297 + 6599 014a 0226 movs r6, #2 + 6600 .LVL424: + 6601 .L403: +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6602 .loc 1 3110 1 view .LVU2298 + 6603 014c 3046 mov r0, r6 + 6604 014e 02B0 add sp, sp, #8 + ARM GAS /tmp/ccbUHtu7.s page 275 + + + 6605 .LCFI77: + 6606 .cfi_remember_state + 6607 .cfi_def_cfa_offset 24 + 6608 @ sp needed + 6609 0150 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 6610 .LVL425: + 6611 .L413: + 6612 .LCFI78: + 6613 .cfi_restore_state +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6614 .loc 1 3000 14 view .LVU2299 + 6615 0154 0226 movs r6, #2 + 6616 0156 F9E7 b .L403 + 6617 .L414: +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6618 .loc 1 3004 5 view .LVU2300 + 6619 0158 0226 movs r6, #2 + 6620 015a F7E7 b .L403 + 6621 .L420: + 6622 .align 2 + 6623 .L419: + 6624 015c 0000FFFF .word -65536 + 6625 0160 00000000 .word I2C_Master_ISR_DMA + 6626 0164 00000000 .word I2C_DMAMasterReceiveCplt + 6627 0168 00000000 .word I2C_DMAError + 6628 016c 00240080 .word -2147474432 + 6629 .cfi_endproc + 6630 .LFE350: + 6632 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits + 6633 .align 1 + 6634 .global HAL_I2C_IsDeviceReady + 6635 .syntax unified + 6636 .thumb + 6637 .thumb_func + 6639 HAL_I2C_IsDeviceReady: + 6640 .LVL426: + 6641 .LFB351: +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 6642 .loc 1 3125 1 is_stmt 1 view -0 + 6643 .cfi_startproc + 6644 @ args = 0, pretend = 0, frame = 8 + 6645 @ frame_needed = 0, uses_anonymous_args = 0 +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; + 6646 .loc 1 3125 1 is_stmt 0 view .LVU2302 + 6647 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} + 6648 .LCFI79: + 6649 .cfi_def_cfa_offset 28 + 6650 .cfi_offset 4, -28 + 6651 .cfi_offset 5, -24 + 6652 .cfi_offset 6, -20 + 6653 .cfi_offset 7, -16 + 6654 .cfi_offset 8, -12 + 6655 .cfi_offset 9, -8 + 6656 .cfi_offset 14, -4 + 6657 0004 85B0 sub sp, sp, #20 + 6658 .LCFI80: + 6659 .cfi_def_cfa_offset 48 + ARM GAS /tmp/ccbUHtu7.s page 276 + + + 6660 0006 1D46 mov r5, r3 +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6661 .loc 1 3126 3 is_stmt 1 view .LVU2303 +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6662 .loc 1 3128 3 view .LVU2304 +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6663 .loc 1 3128 17 is_stmt 0 view .LVU2305 + 6664 0008 0023 movs r3, #0 + 6665 .LVL427: +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6666 .loc 1 3128 17 view .LVU2306 + 6667 000a 0393 str r3, [sp, #12] +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; + 6668 .loc 1 3130 3 is_stmt 1 view .LVU2307 +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6669 .loc 1 3131 3 view .LVU2308 +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6670 .loc 1 3133 3 view .LVU2309 +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6671 .loc 1 3133 11 is_stmt 0 view .LVU2310 + 6672 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 6673 0010 DBB2 uxtb r3, r3 +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6674 .loc 1 3133 6 view .LVU2311 + 6675 0012 202B cmp r3, #32 + 6676 0014 40F09E80 bne .L433 + 6677 0018 0646 mov r6, r0 + 6678 001a 8946 mov r9, r1 + 6679 001c 9046 mov r8, r2 +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6680 .loc 1 3135 5 is_stmt 1 view .LVU2312 +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6681 .loc 1 3135 9 is_stmt 0 view .LVU2313 + 6682 001e 0368 ldr r3, [r0] + 6683 0020 9B69 ldr r3, [r3, #24] +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6684 .loc 1 3135 8 view .LVU2314 + 6685 0022 13F4004F tst r3, #32768 + 6686 0026 40F09780 bne .L434 +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6687 .loc 1 3141 5 is_stmt 1 view .LVU2315 +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6688 .loc 1 3141 5 view .LVU2316 + 6689 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 6690 002e 012B cmp r3, #1 + 6691 0030 00F09480 beq .L435 +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6692 .loc 1 3141 5 discriminator 2 view .LVU2317 + 6693 0034 0123 movs r3, #1 + 6694 0036 80F84030 strb r3, [r0, #64] +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6695 .loc 1 3141 5 discriminator 2 view .LVU2318 +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 6696 .loc 1 3143 5 discriminator 2 view .LVU2319 +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 6697 .loc 1 3143 17 is_stmt 0 discriminator 2 view .LVU2320 + 6698 003a 2423 movs r3, #36 + ARM GAS /tmp/ccbUHtu7.s page 277 + + + 6699 003c 80F84130 strb r3, [r0, #65] +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6700 .loc 1 3144 5 is_stmt 1 discriminator 2 view .LVU2321 +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6701 .loc 1 3144 21 is_stmt 0 discriminator 2 view .LVU2322 + 6702 0040 0023 movs r3, #0 + 6703 0042 4364 str r3, [r0, #68] + 6704 0044 44E0 b .L432 + 6705 .LVL428: + 6706 .L443: +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6707 .loc 1 3149 29 discriminator 1 view .LVU2323 + 6708 0046 C9F30903 ubfx r3, r9, #0, #10 + 6709 004a 43F00073 orr r3, r3, #33554432 + 6710 004e 43F40053 orr r3, r3, #8192 + 6711 0052 44E0 b .L424 + 6712 .LVL429: + 6713 .L426: +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + 6714 .loc 1 3177 9 is_stmt 1 view .LVU2324 +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + 6715 .loc 1 3177 16 is_stmt 0 view .LVU2325 + 6716 0054 3368 ldr r3, [r6] + 6717 0056 9C69 ldr r4, [r3, #24] + 6718 .LVL430: +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + 6719 .loc 1 3177 16 view .LVU2326 + 6720 0058 C4F34014 ubfx r4, r4, #5, #1 + 6721 .LVL431: +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6722 .loc 1 3178 9 is_stmt 1 view .LVU2327 +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6723 .loc 1 3178 16 is_stmt 0 view .LVU2328 + 6724 005c 9B69 ldr r3, [r3, #24] + 6725 005e C3F30013 ubfx r3, r3, #4, #1 + 6726 .LVL432: + 6727 .L425: +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6728 .loc 1 3158 30 is_stmt 1 view .LVU2329 + 6729 0062 C4B9 cbnz r4, .L428 +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6730 .loc 1 3158 30 is_stmt 0 discriminator 1 view .LVU2330 + 6731 0064 BBB9 cbnz r3, .L428 +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6732 .loc 1 3160 9 is_stmt 1 view .LVU2331 +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6733 .loc 1 3160 12 is_stmt 0 view .LVU2332 + 6734 0066 B5F1FF3F cmp r5, #-1 + 6735 006a F3D0 beq .L426 +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6736 .loc 1 3162 11 is_stmt 1 view .LVU2333 +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6737 .loc 1 3162 17 is_stmt 0 view .LVU2334 + 6738 006c FFF7FEFF bl HAL_GetTick + 6739 .LVL433: +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6740 .loc 1 3162 31 view .LVU2335 + ARM GAS /tmp/ccbUHtu7.s page 278 + + + 6741 0070 C01B subs r0, r0, r7 +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6742 .loc 1 3162 14 view .LVU2336 + 6743 0072 A842 cmp r0, r5 + 6744 0074 01D8 bhi .L427 +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6745 .loc 1 3162 55 discriminator 1 view .LVU2337 + 6746 0076 002D cmp r5, #0 + 6747 0078 ECD1 bne .L426 + 6748 .L427: +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6749 .loc 1 3165 13 is_stmt 1 view .LVU2338 +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6750 .loc 1 3165 25 is_stmt 0 view .LVU2339 + 6751 007a 2023 movs r3, #32 + 6752 007c 86F84130 strb r3, [r6, #65] +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6753 .loc 1 3168 13 is_stmt 1 view .LVU2340 +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6754 .loc 1 3168 17 is_stmt 0 view .LVU2341 + 6755 0080 736C ldr r3, [r6, #68] +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6756 .loc 1 3168 29 view .LVU2342 + 6757 0082 43F02003 orr r3, r3, #32 + 6758 0086 7364 str r3, [r6, #68] +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6759 .loc 1 3171 13 is_stmt 1 view .LVU2343 +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6760 .loc 1 3171 13 view .LVU2344 + 6761 0088 0023 movs r3, #0 + 6762 008a 86F84030 strb r3, [r6, #64] +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6763 .loc 1 3171 13 view .LVU2345 +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6764 .loc 1 3173 13 view .LVU2346 +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6765 .loc 1 3173 20 is_stmt 0 view .LVU2347 + 6766 008e 0120 movs r0, #1 + 6767 .LVL434: + 6768 .L422: +3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6769 .loc 1 3251 1 view .LVU2348 + 6770 0090 05B0 add sp, sp, #20 + 6771 .LCFI81: + 6772 .cfi_remember_state + 6773 .cfi_def_cfa_offset 28 + 6774 @ sp needed + 6775 0092 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} + 6776 .LVL435: + 6777 .L428: + 6778 .LCFI82: + 6779 .cfi_restore_state +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6780 .loc 1 3182 7 is_stmt 1 view .LVU2349 +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6781 .loc 1 3182 11 is_stmt 0 view .LVU2350 + 6782 0096 3368 ldr r3, [r6] + ARM GAS /tmp/ccbUHtu7.s page 279 + + + 6783 .LVL436: +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6784 .loc 1 3182 11 view .LVU2351 + 6785 0098 9B69 ldr r3, [r3, #24] +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6786 .loc 1 3182 10 view .LVU2352 + 6787 009a 13F0100F tst r3, #16 + 6788 009e 2BD0 beq .L440 +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6789 .loc 1 3204 9 is_stmt 1 view .LVU2353 +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6790 .loc 1 3204 13 is_stmt 0 view .LVU2354 + 6791 00a0 0097 str r7, [sp] + 6792 00a2 2B46 mov r3, r5 + 6793 00a4 0022 movs r2, #0 + 6794 00a6 2021 movs r1, #32 + 6795 00a8 3046 mov r0, r6 + 6796 00aa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 6797 .LVL437: +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6798 .loc 1 3204 12 view .LVU2355 + 6799 00ae 0028 cmp r0, #0 + 6800 00b0 58D1 bne .L437 +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6801 .loc 1 3210 9 is_stmt 1 view .LVU2356 + 6802 00b2 3368 ldr r3, [r6] + 6803 00b4 1022 movs r2, #16 + 6804 00b6 DA61 str r2, [r3, #28] +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6805 .loc 1 3213 9 view .LVU2357 + 6806 00b8 3368 ldr r3, [r6] + 6807 00ba 2022 movs r2, #32 + 6808 00bc DA61 str r2, [r3, #28] +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6809 .loc 1 3217 7 view .LVU2358 +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6810 .loc 1 3217 22 is_stmt 0 view .LVU2359 + 6811 00be 039B ldr r3, [sp, #12] +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6812 .loc 1 3217 10 view .LVU2360 + 6813 00c0 4345 cmp r3, r8 + 6814 00c2 2AD0 beq .L441 + 6815 .L431: +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); + 6816 .loc 1 3233 7 is_stmt 1 view .LVU2361 +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); + 6817 .loc 1 3233 17 is_stmt 0 view .LVU2362 + 6818 00c4 039B ldr r3, [sp, #12] + 6819 00c6 0133 adds r3, r3, #1 + 6820 00c8 0393 str r3, [sp, #12] +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6821 .loc 1 3234 25 is_stmt 1 view .LVU2363 + 6822 00ca 039B ldr r3, [sp, #12] + 6823 00cc 4345 cmp r3, r8 + 6824 00ce 35D2 bcs .L442 + 6825 .LVL438: + 6826 .L432: + ARM GAS /tmp/ccbUHtu7.s page 280 + + +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6827 .loc 1 3146 5 view .LVU2364 +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6828 .loc 1 3149 7 view .LVU2365 +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6829 .loc 1 3149 29 is_stmt 0 view .LVU2366 + 6830 00d0 F368 ldr r3, [r6, #12] + 6831 00d2 012B cmp r3, #1 + 6832 00d4 B7D0 beq .L443 +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6833 .loc 1 3149 29 discriminator 2 view .LVU2367 + 6834 00d6 C9F30903 ubfx r3, r9, #0, #10 + 6835 00da 43F42053 orr r3, r3, #10240 + 6836 .L424: +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6837 .loc 1 3149 11 discriminator 4 view .LVU2368 + 6838 00de 3268 ldr r2, [r6] +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6839 .loc 1 3149 27 discriminator 4 view .LVU2369 + 6840 00e0 5360 str r3, [r2, #4] +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6841 .loc 1 3153 7 is_stmt 1 discriminator 4 view .LVU2370 +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6842 .loc 1 3153 19 is_stmt 0 discriminator 4 view .LVU2371 + 6843 00e2 FFF7FEFF bl HAL_GetTick + 6844 .LVL439: + 6845 00e6 0746 mov r7, r0 + 6846 .LVL440: +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + 6847 .loc 1 3155 7 is_stmt 1 discriminator 4 view .LVU2372 +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + 6848 .loc 1 3155 14 is_stmt 0 discriminator 4 view .LVU2373 + 6849 00e8 3368 ldr r3, [r6] + 6850 00ea 9C69 ldr r4, [r3, #24] + 6851 00ec C4F34014 ubfx r4, r4, #5, #1 + 6852 .LVL441: +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6853 .loc 1 3156 7 is_stmt 1 discriminator 4 view .LVU2374 +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6854 .loc 1 3156 14 is_stmt 0 discriminator 4 view .LVU2375 + 6855 00f0 9B69 ldr r3, [r3, #24] + 6856 00f2 C3F30013 ubfx r3, r3, #4, #1 + 6857 .LVL442: +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6858 .loc 1 3158 7 is_stmt 1 discriminator 4 view .LVU2376 +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6859 .loc 1 3158 13 is_stmt 0 discriminator 4 view .LVU2377 + 6860 00f6 B4E7 b .L425 + 6861 .LVL443: + 6862 .L440: +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6863 .loc 1 3185 9 is_stmt 1 view .LVU2378 +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6864 .loc 1 3185 13 is_stmt 0 view .LVU2379 + 6865 00f8 0097 str r7, [sp] + 6866 00fa 2B46 mov r3, r5 + 6867 00fc 0022 movs r2, #0 + ARM GAS /tmp/ccbUHtu7.s page 281 + + + 6868 00fe 2021 movs r1, #32 + 6869 0100 3046 mov r0, r6 + 6870 0102 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 6871 .LVL444: +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6872 .loc 1 3185 12 view .LVU2380 + 6873 0106 58BB cbnz r0, .L436 +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6874 .loc 1 3191 9 is_stmt 1 view .LVU2381 + 6875 0108 3268 ldr r2, [r6] + 6876 010a 2023 movs r3, #32 + 6877 010c D361 str r3, [r2, #28] +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6878 .loc 1 3194 9 view .LVU2382 +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6879 .loc 1 3194 21 is_stmt 0 view .LVU2383 + 6880 010e 86F84130 strb r3, [r6, #65] +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6881 .loc 1 3197 9 is_stmt 1 view .LVU2384 +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6882 .loc 1 3197 9 view .LVU2385 + 6883 0112 0023 movs r3, #0 + 6884 0114 86F84030 strb r3, [r6, #64] +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6885 .loc 1 3197 9 view .LVU2386 +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6886 .loc 1 3199 9 view .LVU2387 +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6887 .loc 1 3199 16 is_stmt 0 view .LVU2388 + 6888 0118 BAE7 b .L422 + 6889 .L441: +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6890 .loc 1 3220 9 is_stmt 1 view .LVU2389 +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6891 .loc 1 3220 13 is_stmt 0 view .LVU2390 + 6892 011a 3268 ldr r2, [r6] +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6893 .loc 1 3220 23 view .LVU2391 + 6894 011c 5368 ldr r3, [r2, #4] +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6895 .loc 1 3220 29 view .LVU2392 + 6896 011e 43F48043 orr r3, r3, #16384 + 6897 0122 5360 str r3, [r2, #4] +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6898 .loc 1 3223 9 is_stmt 1 view .LVU2393 +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6899 .loc 1 3223 13 is_stmt 0 view .LVU2394 + 6900 0124 0097 str r7, [sp] + 6901 0126 2B46 mov r3, r5 + 6902 0128 0022 movs r2, #0 + 6903 012a 2021 movs r1, #32 + 6904 012c 3046 mov r0, r6 + 6905 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout + 6906 .LVL445: +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 6907 .loc 1 3223 12 view .LVU2395 + 6908 0132 C8B9 cbnz r0, .L438 + ARM GAS /tmp/ccbUHtu7.s page 282 + + +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6909 .loc 1 3229 9 is_stmt 1 view .LVU2396 + 6910 0134 3368 ldr r3, [r6] + 6911 0136 2022 movs r2, #32 + 6912 0138 DA61 str r2, [r3, #28] + 6913 013a C3E7 b .L431 + 6914 .L442: +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6915 .loc 1 3237 5 view .LVU2397 +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6916 .loc 1 3237 17 is_stmt 0 view .LVU2398 + 6917 013c 2023 movs r3, #32 + 6918 013e 86F84130 strb r3, [r6, #65] +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6919 .loc 1 3240 5 is_stmt 1 view .LVU2399 +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6920 .loc 1 3240 9 is_stmt 0 view .LVU2400 + 6921 0142 736C ldr r3, [r6, #68] +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6922 .loc 1 3240 21 view .LVU2401 + 6923 0144 43F02003 orr r3, r3, #32 + 6924 0148 7364 str r3, [r6, #68] +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6925 .loc 1 3243 5 is_stmt 1 view .LVU2402 +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6926 .loc 1 3243 5 view .LVU2403 + 6927 014a 0023 movs r3, #0 + 6928 014c 86F84030 strb r3, [r6, #64] +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6929 .loc 1 3243 5 view .LVU2404 +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6930 .loc 1 3245 5 view .LVU2405 +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6931 .loc 1 3245 12 is_stmt 0 view .LVU2406 + 6932 0150 0120 movs r0, #1 + 6933 0152 9DE7 b .L422 + 6934 .LVL446: + 6935 .L433: +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6936 .loc 1 3249 12 view .LVU2407 + 6937 0154 0220 movs r0, #2 + 6938 .LVL447: +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6939 .loc 1 3249 12 view .LVU2408 + 6940 0156 9BE7 b .L422 + 6941 .LVL448: + 6942 .L434: +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6943 .loc 1 3137 14 view .LVU2409 + 6944 0158 0220 movs r0, #2 + 6945 .LVL449: +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6946 .loc 1 3137 14 view .LVU2410 + 6947 015a 99E7 b .L422 + 6948 .LVL450: + 6949 .L435: +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 283 + + + 6950 .loc 1 3141 5 view .LVU2411 + 6951 015c 0220 movs r0, #2 + 6952 .LVL451: +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6953 .loc 1 3141 5 view .LVU2412 + 6954 015e 97E7 b .L422 + 6955 .LVL452: + 6956 .L436: +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6957 .loc 1 3187 18 view .LVU2413 + 6958 0160 0120 movs r0, #1 + 6959 0162 95E7 b .L422 + 6960 .L437: +3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6961 .loc 1 3206 18 view .LVU2414 + 6962 0164 0120 movs r0, #1 + 6963 0166 93E7 b .L422 + 6964 .L438: +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 6965 .loc 1 3225 18 view .LVU2415 + 6966 0168 0120 movs r0, #1 + 6967 016a 91E7 b .L422 + 6968 .cfi_endproc + 6969 .LFE351: + 6971 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits + 6972 .align 1 + 6973 .global HAL_I2C_Master_Seq_Transmit_IT + 6974 .syntax unified + 6975 .thumb + 6976 .thumb_func + 6978 HAL_I2C_Master_Seq_Transmit_IT: + 6979 .LVL453: + 6980 .LFB352: +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 6981 .loc 1 3267 1 is_stmt 1 view -0 + 6982 .cfi_startproc + 6983 @ args = 4, pretend = 0, frame = 0 + 6984 @ frame_needed = 0, uses_anonymous_args = 0 +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 6985 .loc 1 3267 1 is_stmt 0 view .LVU2417 + 6986 0000 70B5 push {r4, r5, r6, lr} + 6987 .LCFI83: + 6988 .cfi_def_cfa_offset 16 + 6989 .cfi_offset 4, -16 + 6990 .cfi_offset 5, -12 + 6991 .cfi_offset 6, -8 + 6992 .cfi_offset 14, -4 + 6993 0002 82B0 sub sp, sp, #8 + 6994 .LCFI84: + 6995 .cfi_def_cfa_offset 24 + 6996 0004 0446 mov r4, r0 +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; + 6997 .loc 1 3268 3 is_stmt 1 view .LVU2418 +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 6998 .loc 1 3269 3 view .LVU2419 + 6999 .LVL454: +3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 284 + + + 7000 .loc 1 3272 3 view .LVU2420 +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7001 .loc 1 3274 3 view .LVU2421 +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7002 .loc 1 3274 11 is_stmt 0 view .LVU2422 + 7003 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 7004 .LVL455: +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7005 .loc 1 3274 11 view .LVU2423 + 7006 000a C0B2 uxtb r0, r0 +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7007 .loc 1 3274 6 view .LVU2424 + 7008 000c 2028 cmp r0, #32 + 7009 000e 49D1 bne .L450 + 7010 0010 0D46 mov r5, r1 +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7011 .loc 1 3277 5 is_stmt 1 view .LVU2425 +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7012 .loc 1 3277 5 view .LVU2426 + 7013 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 + 7014 .LVL456: +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7015 .loc 1 3277 5 is_stmt 0 view .LVU2427 + 7016 0016 0129 cmp r1, #1 + 7017 0018 46D0 beq .L451 +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7018 .loc 1 3277 5 is_stmt 1 discriminator 2 view .LVU2428 + 7019 001a 0121 movs r1, #1 + 7020 001c 84F84010 strb r1, [r4, #64] +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7021 .loc 1 3277 5 discriminator 2 view .LVU2429 +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7022 .loc 1 3279 5 discriminator 2 view .LVU2430 +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7023 .loc 1 3279 21 is_stmt 0 discriminator 2 view .LVU2431 + 7024 0020 2121 movs r1, #33 + 7025 0022 84F84110 strb r1, [r4, #65] +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7026 .loc 1 3280 5 is_stmt 1 discriminator 2 view .LVU2432 +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7027 .loc 1 3280 21 is_stmt 0 discriminator 2 view .LVU2433 + 7028 0026 1021 movs r1, #16 + 7029 0028 84F84210 strb r1, [r4, #66] +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7030 .loc 1 3281 5 is_stmt 1 discriminator 2 view .LVU2434 +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7031 .loc 1 3281 21 is_stmt 0 discriminator 2 view .LVU2435 + 7032 002c 0021 movs r1, #0 + 7033 002e 6164 str r1, [r4, #68] +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7034 .loc 1 3284 5 is_stmt 1 discriminator 2 view .LVU2436 +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7035 .loc 1 3284 23 is_stmt 0 discriminator 2 view .LVU2437 + 7036 0030 6262 str r2, [r4, #36] +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7037 .loc 1 3285 5 is_stmt 1 discriminator 2 view .LVU2438 +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + ARM GAS /tmp/ccbUHtu7.s page 285 + + + 7038 .loc 1 3285 23 is_stmt 0 discriminator 2 view .LVU2439 + 7039 0032 6385 strh r3, [r4, #42] @ movhi +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 7040 .loc 1 3286 5 is_stmt 1 discriminator 2 view .LVU2440 +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 7041 .loc 1 3286 23 is_stmt 0 discriminator 2 view .LVU2441 + 7042 0034 069B ldr r3, [sp, #24] + 7043 .LVL457: +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 7044 .loc 1 3286 23 discriminator 2 view .LVU2442 + 7045 0036 E362 str r3, [r4, #44] + 7046 .LVL458: +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7047 .loc 1 3287 5 is_stmt 1 discriminator 2 view .LVU2443 +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7048 .loc 1 3287 23 is_stmt 0 discriminator 2 view .LVU2444 + 7049 0038 1C4B ldr r3, .L455 + 7050 003a 6363 str r3, [r4, #52] +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7051 .loc 1 3290 5 is_stmt 1 discriminator 2 view .LVU2445 +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7052 .loc 1 3290 13 is_stmt 0 discriminator 2 view .LVU2446 + 7053 003c 638D ldrh r3, [r4, #42] + 7054 003e 9BB2 uxth r3, r3 +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7055 .loc 1 3290 8 discriminator 2 view .LVU2447 + 7056 0040 FF2B cmp r3, #255 + 7057 0042 0ED9 bls .L446 +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7058 .loc 1 3292 7 is_stmt 1 view .LVU2448 +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7059 .loc 1 3292 22 is_stmt 0 view .LVU2449 + 7060 0044 FF23 movs r3, #255 + 7061 0046 2385 strh r3, [r4, #40] @ movhi +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7062 .loc 1 3293 7 is_stmt 1 view .LVU2450 + 7063 .LVL459: +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7064 .loc 1 3293 16 is_stmt 0 view .LVU2451 + 7065 0048 4FF08076 mov r6, #16777216 + 7066 .LVL460: + 7067 .L447: +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7068 .loc 1 3304 5 is_stmt 1 view .LVU2452 +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7069 .loc 1 3304 14 is_stmt 0 view .LVU2453 + 7070 004c 236B ldr r3, [r4, #48] +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7071 .loc 1 3304 8 view .LVU2454 + 7072 004e 112B cmp r3, #17 + 7073 0050 0BD1 bne .L448 +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7074 .loc 1 3305 10 view .LVU2455 + 7075 0052 069B ldr r3, [sp, #24] + 7076 0054 AA2B cmp r3, #170 + 7077 0056 08D0 beq .L448 +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 286 + + + 7078 .loc 1 3305 10 discriminator 2 view .LVU2456 + 7079 0058 B3F52A4F cmp r3, #43520 + 7080 005c 05D0 beq .L448 +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7081 .loc 1 3307 19 view .LVU2457 + 7082 005e 0023 movs r3, #0 + 7083 0060 0CE0 b .L449 + 7084 .LVL461: + 7085 .L446: +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7086 .loc 1 3297 7 is_stmt 1 view .LVU2458 +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7087 .loc 1 3297 28 is_stmt 0 view .LVU2459 + 7088 0062 638D ldrh r3, [r4, #42] +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7089 .loc 1 3297 22 view .LVU2460 + 7090 0064 2385 strh r3, [r4, #40] @ movhi +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7091 .loc 1 3298 7 is_stmt 1 view .LVU2461 +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7092 .loc 1 3298 16 is_stmt 0 view .LVU2462 + 7093 0066 E66A ldr r6, [r4, #44] + 7094 .LVL462: +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7095 .loc 1 3298 16 view .LVU2463 + 7096 0068 F0E7 b .L447 + 7097 .L448: +3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7098 .loc 1 3312 7 is_stmt 1 view .LVU2464 + 7099 006a 2046 mov r0, r4 + 7100 006c FFF7FEFF bl I2C_ConvertOtherXferOptions + 7101 .LVL463: +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7102 .loc 1 3315 7 view .LVU2465 +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7103 .loc 1 3315 15 is_stmt 0 view .LVU2466 + 7104 0070 638D ldrh r3, [r4, #42] + 7105 0072 9BB2 uxth r3, r3 +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7106 .loc 1 3315 10 view .LVU2467 + 7107 0074 FF2B cmp r3, #255 + 7108 0076 13D8 bhi .L453 +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7109 .loc 1 3317 9 is_stmt 1 view .LVU2468 +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7110 .loc 1 3317 18 is_stmt 0 view .LVU2469 + 7111 0078 E66A ldr r6, [r4, #44] + 7112 .LVL464: +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7113 .loc 1 3269 12 view .LVU2470 + 7114 007a 0D4B ldr r3, .L455+4 + 7115 .L449: + 7116 .LVL465: +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7117 .loc 1 3322 5 is_stmt 1 view .LVU2471 + 7118 007c 0093 str r3, [sp] + 7119 007e 3346 mov r3, r6 + ARM GAS /tmp/ccbUHtu7.s page 287 + + + 7120 .LVL466: +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7121 .loc 1 3322 5 is_stmt 0 view .LVU2472 + 7122 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 7123 0084 2946 mov r1, r5 + 7124 0086 2046 mov r0, r4 + 7125 0088 FFF7FEFF bl I2C_TransferConfig + 7126 .LVL467: +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7127 .loc 1 3325 5 is_stmt 1 view .LVU2473 +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7128 .loc 1 3325 5 view .LVU2474 + 7129 008c 0025 movs r5, #0 + 7130 008e 84F84050 strb r5, [r4, #64] +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7131 .loc 1 3325 5 view .LVU2475 +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7132 .loc 1 3330 5 view .LVU2476 + 7133 0092 0121 movs r1, #1 + 7134 0094 2046 mov r0, r4 + 7135 0096 FFF7FEFF bl I2C_Enable_IRQ + 7136 .LVL468: +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7137 .loc 1 3332 5 view .LVU2477 +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7138 .loc 1 3332 12 is_stmt 0 view .LVU2478 + 7139 009a 2846 mov r0, r5 + 7140 .LVL469: + 7141 .L445: +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7142 .loc 1 3338 1 view .LVU2479 + 7143 009c 02B0 add sp, sp, #8 + 7144 .LCFI85: + 7145 .cfi_remember_state + 7146 .cfi_def_cfa_offset 16 + 7147 @ sp needed + 7148 009e 70BD pop {r4, r5, r6, pc} + 7149 .LVL470: + 7150 .L453: + 7151 .LCFI86: + 7152 .cfi_restore_state +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7153 .loc 1 3269 12 view .LVU2480 + 7154 00a0 034B ldr r3, .L455+4 + 7155 00a2 EBE7 b .L449 + 7156 .LVL471: + 7157 .L450: +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7158 .loc 1 3336 12 view .LVU2481 + 7159 00a4 0220 movs r0, #2 + 7160 00a6 F9E7 b .L445 + 7161 .LVL472: + 7162 .L451: +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7163 .loc 1 3277 5 view .LVU2482 + 7164 00a8 0220 movs r0, #2 + 7165 00aa F7E7 b .L445 + ARM GAS /tmp/ccbUHtu7.s page 288 + + + 7166 .L456: + 7167 .align 2 + 7168 .L455: + 7169 00ac 00000000 .word I2C_Master_ISR_IT + 7170 00b0 00200080 .word -2147475456 + 7171 .cfi_endproc + 7172 .LFE352: + 7174 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits + 7175 .align 1 + 7176 .global HAL_I2C_Master_Seq_Transmit_DMA + 7177 .syntax unified + 7178 .thumb + 7179 .thumb_func + 7181 HAL_I2C_Master_Seq_Transmit_DMA: + 7182 .LVL473: + 7183 .LFB353: +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 7184 .loc 1 3354 1 is_stmt 1 view -0 + 7185 .cfi_startproc + 7186 @ args = 4, pretend = 0, frame = 0 + 7187 @ frame_needed = 0, uses_anonymous_args = 0 +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 7188 .loc 1 3354 1 is_stmt 0 view .LVU2484 + 7189 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 7190 .LCFI87: + 7191 .cfi_def_cfa_offset 24 + 7192 .cfi_offset 4, -24 + 7193 .cfi_offset 5, -20 + 7194 .cfi_offset 6, -16 + 7195 .cfi_offset 7, -12 + 7196 .cfi_offset 8, -8 + 7197 .cfi_offset 14, -4 + 7198 0004 82B0 sub sp, sp, #8 + 7199 .LCFI88: + 7200 .cfi_def_cfa_offset 32 + 7201 0006 0446 mov r4, r0 + 7202 0008 1546 mov r5, r2 + 7203 000a 089A ldr r2, [sp, #32] + 7204 .LVL474: +3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; + 7205 .loc 1 3355 3 is_stmt 1 view .LVU2485 +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 7206 .loc 1 3356 3 view .LVU2486 +3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7207 .loc 1 3357 3 view .LVU2487 +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7208 .loc 1 3360 3 view .LVU2488 +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7209 .loc 1 3362 3 view .LVU2489 +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7210 .loc 1 3362 11 is_stmt 0 view .LVU2490 + 7211 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 7212 .LVL475: +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7213 .loc 1 3362 11 view .LVU2491 + 7214 0010 C0B2 uxtb r0, r0 +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 289 + + + 7215 .loc 1 3362 6 view .LVU2492 + 7216 0012 2028 cmp r0, #32 + 7217 0014 40F09D80 bne .L468 + 7218 0018 0E46 mov r6, r1 +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7219 .loc 1 3365 5 is_stmt 1 view .LVU2493 +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7220 .loc 1 3365 5 view .LVU2494 + 7221 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 + 7222 .LVL476: +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7223 .loc 1 3365 5 is_stmt 0 view .LVU2495 + 7224 001e 0129 cmp r1, #1 + 7225 0020 00F09B80 beq .L469 +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7226 .loc 1 3365 5 is_stmt 1 discriminator 2 view .LVU2496 + 7227 0024 0121 movs r1, #1 + 7228 0026 84F84010 strb r1, [r4, #64] +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7229 .loc 1 3365 5 discriminator 2 view .LVU2497 +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7230 .loc 1 3367 5 discriminator 2 view .LVU2498 +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7231 .loc 1 3367 21 is_stmt 0 discriminator 2 view .LVU2499 + 7232 002a 2121 movs r1, #33 + 7233 002c 84F84110 strb r1, [r4, #65] +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7234 .loc 1 3368 5 is_stmt 1 discriminator 2 view .LVU2500 +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7235 .loc 1 3368 21 is_stmt 0 discriminator 2 view .LVU2501 + 7236 0030 1021 movs r1, #16 + 7237 0032 84F84210 strb r1, [r4, #66] +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7238 .loc 1 3369 5 is_stmt 1 discriminator 2 view .LVU2502 +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7239 .loc 1 3369 21 is_stmt 0 discriminator 2 view .LVU2503 + 7240 0036 0021 movs r1, #0 + 7241 0038 6164 str r1, [r4, #68] +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7242 .loc 1 3372 5 is_stmt 1 discriminator 2 view .LVU2504 +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7243 .loc 1 3372 23 is_stmt 0 discriminator 2 view .LVU2505 + 7244 003a 6562 str r5, [r4, #36] +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7245 .loc 1 3373 5 is_stmt 1 discriminator 2 view .LVU2506 +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7246 .loc 1 3373 23 is_stmt 0 discriminator 2 view .LVU2507 + 7247 003c 6385 strh r3, [r4, #42] @ movhi +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 7248 .loc 1 3374 5 is_stmt 1 discriminator 2 view .LVU2508 +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 7249 .loc 1 3374 23 is_stmt 0 discriminator 2 view .LVU2509 + 7250 003e E262 str r2, [r4, #44] +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7251 .loc 1 3375 5 is_stmt 1 discriminator 2 view .LVU2510 +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7252 .loc 1 3375 23 is_stmt 0 discriminator 2 view .LVU2511 + ARM GAS /tmp/ccbUHtu7.s page 290 + + + 7253 0040 474B ldr r3, .L475 + 7254 .LVL477: +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7255 .loc 1 3375 23 discriminator 2 view .LVU2512 + 7256 0042 6363 str r3, [r4, #52] +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7257 .loc 1 3378 5 is_stmt 1 discriminator 2 view .LVU2513 +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7258 .loc 1 3378 13 is_stmt 0 discriminator 2 view .LVU2514 + 7259 0044 638D ldrh r3, [r4, #42] + 7260 0046 9BB2 uxth r3, r3 +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7261 .loc 1 3378 8 discriminator 2 view .LVU2515 + 7262 0048 FF2B cmp r3, #255 + 7263 004a 0ED9 bls .L459 +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7264 .loc 1 3380 7 is_stmt 1 view .LVU2516 +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7265 .loc 1 3380 22 is_stmt 0 view .LVU2517 + 7266 004c FF23 movs r3, #255 + 7267 004e 2385 strh r3, [r4, #40] @ movhi +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7268 .loc 1 3381 7 is_stmt 1 view .LVU2518 + 7269 .LVL478: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7270 .loc 1 3381 16 is_stmt 0 view .LVU2519 + 7271 0050 4FF08077 mov r7, #16777216 + 7272 .LVL479: + 7273 .L460: +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7274 .loc 1 3392 5 is_stmt 1 view .LVU2520 +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7275 .loc 1 3392 14 is_stmt 0 view .LVU2521 + 7276 0054 236B ldr r3, [r4, #48] +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7277 .loc 1 3392 8 view .LVU2522 + 7278 0056 112B cmp r3, #17 + 7279 0058 0BD1 bne .L461 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7280 .loc 1 3393 10 view .LVU2523 + 7281 005a AA2A cmp r2, #170 + 7282 005c 09D0 beq .L461 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7283 .loc 1 3393 10 discriminator 2 view .LVU2524 + 7284 005e B2F52A4F cmp r2, #43520 + 7285 0062 06D0 beq .L461 +3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7286 .loc 1 3395 19 view .LVU2525 + 7287 0064 4FF00008 mov r8, #0 + 7288 0068 0DE0 b .L462 + 7289 .LVL480: + 7290 .L459: +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7291 .loc 1 3385 7 is_stmt 1 view .LVU2526 +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7292 .loc 1 3385 28 is_stmt 0 view .LVU2527 + 7293 006a 638D ldrh r3, [r4, #42] + ARM GAS /tmp/ccbUHtu7.s page 291 + + +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7294 .loc 1 3385 22 view .LVU2528 + 7295 006c 2385 strh r3, [r4, #40] @ movhi +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7296 .loc 1 3386 7 is_stmt 1 view .LVU2529 +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7297 .loc 1 3386 16 is_stmt 0 view .LVU2530 + 7298 006e E76A ldr r7, [r4, #44] + 7299 .LVL481: +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7300 .loc 1 3386 16 view .LVU2531 + 7301 0070 F0E7 b .L460 + 7302 .L461: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7303 .loc 1 3400 7 is_stmt 1 view .LVU2532 + 7304 0072 2046 mov r0, r4 + 7305 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions + 7306 .LVL482: +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7307 .loc 1 3403 7 view .LVU2533 +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7308 .loc 1 3403 15 is_stmt 0 view .LVU2534 + 7309 0078 638D ldrh r3, [r4, #42] + 7310 007a 9BB2 uxth r3, r3 +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7311 .loc 1 3403 10 view .LVU2535 + 7312 007c FF2B cmp r3, #255 + 7313 007e 27D8 bhi .L471 +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7314 .loc 1 3405 9 is_stmt 1 view .LVU2536 +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7315 .loc 1 3405 18 is_stmt 0 view .LVU2537 + 7316 0080 E76A ldr r7, [r4, #44] + 7317 .LVL483: +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 7318 .loc 1 3356 12 view .LVU2538 + 7319 0082 DFF8EC80 ldr r8, .L475+16 + 7320 .L462: + 7321 .LVL484: +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7322 .loc 1 3409 5 is_stmt 1 view .LVU2539 +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7323 .loc 1 3409 13 is_stmt 0 view .LVU2540 + 7324 0086 228D ldrh r2, [r4, #40] +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7325 .loc 1 3409 8 view .LVU2541 + 7326 0088 002A cmp r2, #0 + 7327 008a 4ED0 beq .L463 +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7328 .loc 1 3411 7 is_stmt 1 view .LVU2542 +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7329 .loc 1 3411 15 is_stmt 0 view .LVU2543 + 7330 008c A36B ldr r3, [r4, #56] +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7331 .loc 1 3411 10 view .LVU2544 + 7332 008e 13B3 cbz r3, .L464 +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 292 + + + 7333 .loc 1 3414 9 is_stmt 1 view .LVU2545 +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7334 .loc 1 3414 40 is_stmt 0 view .LVU2546 + 7335 0090 344A ldr r2, .L475+4 + 7336 0092 DA62 str r2, [r3, #44] +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7337 .loc 1 3417 9 is_stmt 1 view .LVU2547 +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7338 .loc 1 3417 13 is_stmt 0 view .LVU2548 + 7339 0094 A36B ldr r3, [r4, #56] +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7340 .loc 1 3417 41 view .LVU2549 + 7341 0096 344A ldr r2, .L475+8 + 7342 0098 5A63 str r2, [r3, #52] +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 7343 .loc 1 3420 9 is_stmt 1 view .LVU2550 +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 7344 .loc 1 3420 13 is_stmt 0 view .LVU2551 + 7345 009a A26B ldr r2, [r4, #56] +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 7346 .loc 1 3420 44 view .LVU2552 + 7347 009c 0023 movs r3, #0 + 7348 009e 1363 str r3, [r2, #48] +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7349 .loc 1 3421 9 is_stmt 1 view .LVU2553 +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7350 .loc 1 3421 13 is_stmt 0 view .LVU2554 + 7351 00a0 A26B ldr r2, [r4, #56] +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7352 .loc 1 3421 41 view .LVU2555 + 7353 00a2 9363 str r3, [r2, #56] +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 7354 .loc 1 3424 9 is_stmt 1 view .LVU2556 +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 7355 .loc 1 3424 88 is_stmt 0 view .LVU2557 + 7356 00a4 2268 ldr r2, [r4] +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 7357 .loc 1 3424 25 view .LVU2558 + 7358 00a6 238D ldrh r3, [r4, #40] + 7359 00a8 2832 adds r2, r2, #40 + 7360 00aa 2946 mov r1, r5 + 7361 00ac A06B ldr r0, [r4, #56] + 7362 00ae FFF7FEFF bl HAL_DMA_Start_IT + 7363 .LVL485: +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7364 .loc 1 3442 7 is_stmt 1 view .LVU2559 +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7365 .loc 1 3442 10 is_stmt 0 view .LVU2560 + 7366 00b2 F0B1 cbz r0, .L474 +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7367 .loc 1 3465 9 is_stmt 1 view .LVU2561 +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7368 .loc 1 3465 25 is_stmt 0 view .LVU2562 + 7369 00b4 2023 movs r3, #32 + 7370 00b6 84F84130 strb r3, [r4, #65] +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7371 .loc 1 3466 9 is_stmt 1 view .LVU2563 + ARM GAS /tmp/ccbUHtu7.s page 293 + + +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7372 .loc 1 3466 25 is_stmt 0 view .LVU2564 + 7373 00ba 0022 movs r2, #0 + 7374 00bc 84F84220 strb r2, [r4, #66] +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7375 .loc 1 3469 9 is_stmt 1 view .LVU2565 +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7376 .loc 1 3469 13 is_stmt 0 view .LVU2566 + 7377 00c0 636C ldr r3, [r4, #68] +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7378 .loc 1 3469 25 view .LVU2567 + 7379 00c2 43F01003 orr r3, r3, #16 + 7380 00c6 6364 str r3, [r4, #68] +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7381 .loc 1 3472 9 is_stmt 1 view .LVU2568 +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7382 .loc 1 3472 9 view .LVU2569 + 7383 00c8 84F84020 strb r2, [r4, #64] +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7384 .loc 1 3472 9 view .LVU2570 +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7385 .loc 1 3474 9 view .LVU2571 +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7386 .loc 1 3474 16 is_stmt 0 view .LVU2572 + 7387 00cc 0120 movs r0, #1 + 7388 .LVL486: +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7389 .loc 1 3474 16 view .LVU2573 + 7390 00ce 41E0 b .L458 + 7391 .LVL487: + 7392 .L471: +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 7393 .loc 1 3356 12 view .LVU2574 + 7394 00d0 DFF89C80 ldr r8, .L475+16 + 7395 00d4 D7E7 b .L462 + 7396 .LVL488: + 7397 .L464: +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7398 .loc 1 3430 9 is_stmt 1 view .LVU2575 +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7399 .loc 1 3430 25 is_stmt 0 view .LVU2576 + 7400 00d6 2023 movs r3, #32 + 7401 00d8 84F84130 strb r3, [r4, #65] +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7402 .loc 1 3431 9 is_stmt 1 view .LVU2577 +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7403 .loc 1 3431 25 is_stmt 0 view .LVU2578 + 7404 00dc 0022 movs r2, #0 + 7405 00de 84F84220 strb r2, [r4, #66] +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7406 .loc 1 3434 9 is_stmt 1 view .LVU2579 +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7407 .loc 1 3434 13 is_stmt 0 view .LVU2580 + 7408 00e2 636C ldr r3, [r4, #68] +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7409 .loc 1 3434 25 view .LVU2581 + 7410 00e4 43F08003 orr r3, r3, #128 + ARM GAS /tmp/ccbUHtu7.s page 294 + + + 7411 00e8 6364 str r3, [r4, #68] +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7412 .loc 1 3437 9 is_stmt 1 view .LVU2582 +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7413 .loc 1 3437 9 view .LVU2583 + 7414 00ea 84F84020 strb r2, [r4, #64] +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7415 .loc 1 3437 9 view .LVU2584 +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7416 .loc 1 3439 9 view .LVU2585 +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7417 .loc 1 3439 16 is_stmt 0 view .LVU2586 + 7418 00ee 0120 movs r0, #1 + 7419 00f0 30E0 b .L458 + 7420 .LVL489: + 7421 .L474: +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7422 .loc 1 3445 9 is_stmt 1 view .LVU2587 + 7423 00f2 CDF80080 str r8, [sp] + 7424 00f6 3B46 mov r3, r7 + 7425 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 7426 00fc 3146 mov r1, r6 + 7427 00fe 2046 mov r0, r4 + 7428 .LVL490: +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7429 .loc 1 3445 9 is_stmt 0 view .LVU2588 + 7430 0100 FFF7FEFF bl I2C_TransferConfig + 7431 .LVL491: +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7432 .loc 1 3448 9 is_stmt 1 view .LVU2589 +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7433 .loc 1 3448 13 is_stmt 0 view .LVU2590 + 7434 0104 638D ldrh r3, [r4, #42] + 7435 0106 9BB2 uxth r3, r3 +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7436 .loc 1 3448 32 view .LVU2591 + 7437 0108 228D ldrh r2, [r4, #40] +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7438 .loc 1 3448 25 view .LVU2592 + 7439 010a 9B1A subs r3, r3, r2 + 7440 010c 9BB2 uxth r3, r3 + 7441 010e 6385 strh r3, [r4, #42] @ movhi +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7442 .loc 1 3451 9 is_stmt 1 view .LVU2593 +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7443 .loc 1 3451 9 view .LVU2594 + 7444 0110 0023 movs r3, #0 + 7445 0112 84F84030 strb r3, [r4, #64] +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7446 .loc 1 3451 9 view .LVU2595 +3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7447 .loc 1 3457 9 view .LVU2596 + 7448 0116 1021 movs r1, #16 + 7449 0118 2046 mov r0, r4 + 7450 011a FFF7FEFF bl I2C_Enable_IRQ + 7451 .LVL492: +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 295 + + + 7452 .loc 1 3460 9 view .LVU2597 +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7453 .loc 1 3460 13 is_stmt 0 view .LVU2598 + 7454 011e 2268 ldr r2, [r4] +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7455 .loc 1 3460 23 view .LVU2599 + 7456 0120 1368 ldr r3, [r2] +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7457 .loc 1 3460 29 view .LVU2600 + 7458 0122 43F48043 orr r3, r3, #16384 + 7459 0126 1360 str r3, [r2] + 7460 0128 11E0 b .L467 + 7461 .LVL493: + 7462 .L463: +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7463 .loc 1 3480 7 is_stmt 1 view .LVU2601 +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7464 .loc 1 3480 21 is_stmt 0 view .LVU2602 + 7465 012a 104B ldr r3, .L475+12 + 7466 012c 6363 str r3, [r4, #52] +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); + 7467 .loc 1 3484 7 is_stmt 1 view .LVU2603 + 7468 012e 104B ldr r3, .L475+16 + 7469 0130 0093 str r3, [sp] + 7470 0132 4FF00073 mov r3, #33554432 + 7471 0136 D2B2 uxtb r2, r2 + 7472 0138 3146 mov r1, r6 + 7473 013a 2046 mov r0, r4 + 7474 013c FFF7FEFF bl I2C_TransferConfig + 7475 .LVL494: +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7476 .loc 1 3488 7 view .LVU2604 +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7477 .loc 1 3488 7 view .LVU2605 + 7478 0140 0023 movs r3, #0 + 7479 0142 84F84030 strb r3, [r4, #64] +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7480 .loc 1 3488 7 view .LVU2606 +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7481 .loc 1 3497 7 view .LVU2607 + 7482 0146 0121 movs r1, #1 + 7483 0148 2046 mov r0, r4 + 7484 014a FFF7FEFF bl I2C_Enable_IRQ + 7485 .LVL495: + 7486 .L467: +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7487 .loc 1 3500 5 view .LVU2608 +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7488 .loc 1 3500 12 is_stmt 0 view .LVU2609 + 7489 014e 0020 movs r0, #0 + 7490 0150 00E0 b .L458 + 7491 .LVL496: + 7492 .L468: +3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7493 .loc 1 3504 12 view .LVU2610 + 7494 0152 0220 movs r0, #2 + 7495 .LVL497: + ARM GAS /tmp/ccbUHtu7.s page 296 + + + 7496 .L458: +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7497 .loc 1 3506 1 view .LVU2611 + 7498 0154 02B0 add sp, sp, #8 + 7499 .LCFI89: + 7500 .cfi_remember_state + 7501 .cfi_def_cfa_offset 24 + 7502 @ sp needed + 7503 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 7504 .LVL498: + 7505 .L469: + 7506 .LCFI90: + 7507 .cfi_restore_state +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7508 .loc 1 3365 5 view .LVU2612 + 7509 015a 0220 movs r0, #2 + 7510 015c FAE7 b .L458 + 7511 .L476: + 7512 015e 00BF .align 2 + 7513 .L475: + 7514 0160 00000000 .word I2C_Master_ISR_DMA + 7515 0164 00000000 .word I2C_DMAMasterTransmitCplt + 7516 0168 00000000 .word I2C_DMAError + 7517 016c 00000000 .word I2C_Master_ISR_IT + 7518 0170 00200080 .word -2147475456 + 7519 .cfi_endproc + 7520 .LFE353: + 7522 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits + 7523 .align 1 + 7524 .global HAL_I2C_Master_Seq_Receive_IT + 7525 .syntax unified + 7526 .thumb + 7527 .thumb_func + 7529 HAL_I2C_Master_Seq_Receive_IT: + 7530 .LVL499: + 7531 .LFB354: +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 7532 .loc 1 3522 1 is_stmt 1 view -0 + 7533 .cfi_startproc + 7534 @ args = 4, pretend = 0, frame = 0 + 7535 @ frame_needed = 0, uses_anonymous_args = 0 +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 7536 .loc 1 3522 1 is_stmt 0 view .LVU2614 + 7537 0000 70B5 push {r4, r5, r6, lr} + 7538 .LCFI91: + 7539 .cfi_def_cfa_offset 16 + 7540 .cfi_offset 4, -16 + 7541 .cfi_offset 5, -12 + 7542 .cfi_offset 6, -8 + 7543 .cfi_offset 14, -4 + 7544 0002 82B0 sub sp, sp, #8 + 7545 .LCFI92: + 7546 .cfi_def_cfa_offset 24 + 7547 0004 0446 mov r4, r0 +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; + 7548 .loc 1 3523 3 is_stmt 1 view .LVU2615 +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 297 + + + 7549 .loc 1 3524 3 view .LVU2616 + 7550 .LVL500: +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7551 .loc 1 3527 3 view .LVU2617 +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7552 .loc 1 3529 3 view .LVU2618 +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7553 .loc 1 3529 11 is_stmt 0 view .LVU2619 + 7554 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 7555 .LVL501: +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7556 .loc 1 3529 11 view .LVU2620 + 7557 000a C0B2 uxtb r0, r0 +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7558 .loc 1 3529 6 view .LVU2621 + 7559 000c 2028 cmp r0, #32 + 7560 000e 49D1 bne .L483 + 7561 0010 0D46 mov r5, r1 +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7562 .loc 1 3532 5 is_stmt 1 view .LVU2622 +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7563 .loc 1 3532 5 view .LVU2623 + 7564 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 + 7565 .LVL502: +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7566 .loc 1 3532 5 is_stmt 0 view .LVU2624 + 7567 0016 0129 cmp r1, #1 + 7568 0018 46D0 beq .L484 +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7569 .loc 1 3532 5 is_stmt 1 discriminator 2 view .LVU2625 + 7570 001a 0121 movs r1, #1 + 7571 001c 84F84010 strb r1, [r4, #64] +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7572 .loc 1 3532 5 discriminator 2 view .LVU2626 +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7573 .loc 1 3534 5 discriminator 2 view .LVU2627 +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7574 .loc 1 3534 21 is_stmt 0 discriminator 2 view .LVU2628 + 7575 0020 2221 movs r1, #34 + 7576 0022 84F84110 strb r1, [r4, #65] +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7577 .loc 1 3535 5 is_stmt 1 discriminator 2 view .LVU2629 +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7578 .loc 1 3535 21 is_stmt 0 discriminator 2 view .LVU2630 + 7579 0026 1021 movs r1, #16 + 7580 0028 84F84210 strb r1, [r4, #66] +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7581 .loc 1 3536 5 is_stmt 1 discriminator 2 view .LVU2631 +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7582 .loc 1 3536 21 is_stmt 0 discriminator 2 view .LVU2632 + 7583 002c 0021 movs r1, #0 + 7584 002e 6164 str r1, [r4, #68] +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7585 .loc 1 3539 5 is_stmt 1 discriminator 2 view .LVU2633 +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7586 .loc 1 3539 23 is_stmt 0 discriminator 2 view .LVU2634 + 7587 0030 6262 str r2, [r4, #36] + ARM GAS /tmp/ccbUHtu7.s page 298 + + +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7588 .loc 1 3540 5 is_stmt 1 discriminator 2 view .LVU2635 +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7589 .loc 1 3540 23 is_stmt 0 discriminator 2 view .LVU2636 + 7590 0032 6385 strh r3, [r4, #42] @ movhi +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 7591 .loc 1 3541 5 is_stmt 1 discriminator 2 view .LVU2637 +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 7592 .loc 1 3541 23 is_stmt 0 discriminator 2 view .LVU2638 + 7593 0034 069B ldr r3, [sp, #24] + 7594 .LVL503: +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; + 7595 .loc 1 3541 23 discriminator 2 view .LVU2639 + 7596 0036 E362 str r3, [r4, #44] + 7597 .LVL504: +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7598 .loc 1 3542 5 is_stmt 1 discriminator 2 view .LVU2640 +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7599 .loc 1 3542 23 is_stmt 0 discriminator 2 view .LVU2641 + 7600 0038 1C4B ldr r3, .L488 + 7601 003a 6363 str r3, [r4, #52] +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7602 .loc 1 3545 5 is_stmt 1 discriminator 2 view .LVU2642 +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7603 .loc 1 3545 13 is_stmt 0 discriminator 2 view .LVU2643 + 7604 003c 638D ldrh r3, [r4, #42] + 7605 003e 9BB2 uxth r3, r3 +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7606 .loc 1 3545 8 discriminator 2 view .LVU2644 + 7607 0040 FF2B cmp r3, #255 + 7608 0042 0ED9 bls .L479 +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7609 .loc 1 3547 7 is_stmt 1 view .LVU2645 +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7610 .loc 1 3547 22 is_stmt 0 view .LVU2646 + 7611 0044 FF23 movs r3, #255 + 7612 0046 2385 strh r3, [r4, #40] @ movhi +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7613 .loc 1 3548 7 is_stmt 1 view .LVU2647 + 7614 .LVL505: +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7615 .loc 1 3548 16 is_stmt 0 view .LVU2648 + 7616 0048 4FF08076 mov r6, #16777216 + 7617 .LVL506: + 7618 .L480: +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7619 .loc 1 3559 5 is_stmt 1 view .LVU2649 +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7620 .loc 1 3559 14 is_stmt 0 view .LVU2650 + 7621 004c 236B ldr r3, [r4, #48] +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7622 .loc 1 3559 8 view .LVU2651 + 7623 004e 122B cmp r3, #18 + 7624 0050 0BD1 bne .L481 +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7625 .loc 1 3560 10 view .LVU2652 + 7626 0052 069B ldr r3, [sp, #24] + ARM GAS /tmp/ccbUHtu7.s page 299 + + + 7627 0054 AA2B cmp r3, #170 + 7628 0056 08D0 beq .L481 +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7629 .loc 1 3560 10 discriminator 2 view .LVU2653 + 7630 0058 B3F52A4F cmp r3, #43520 + 7631 005c 05D0 beq .L481 +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7632 .loc 1 3562 19 view .LVU2654 + 7633 005e 0023 movs r3, #0 + 7634 0060 0CE0 b .L482 + 7635 .LVL507: + 7636 .L479: +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7637 .loc 1 3552 7 is_stmt 1 view .LVU2655 +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7638 .loc 1 3552 28 is_stmt 0 view .LVU2656 + 7639 0062 638D ldrh r3, [r4, #42] +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7640 .loc 1 3552 22 view .LVU2657 + 7641 0064 2385 strh r3, [r4, #40] @ movhi +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7642 .loc 1 3553 7 is_stmt 1 view .LVU2658 +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7643 .loc 1 3553 16 is_stmt 0 view .LVU2659 + 7644 0066 E66A ldr r6, [r4, #44] + 7645 .LVL508: +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7646 .loc 1 3553 16 view .LVU2660 + 7647 0068 F0E7 b .L480 + 7648 .L481: +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7649 .loc 1 3567 7 is_stmt 1 view .LVU2661 + 7650 006a 2046 mov r0, r4 + 7651 006c FFF7FEFF bl I2C_ConvertOtherXferOptions + 7652 .LVL509: +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7653 .loc 1 3570 7 view .LVU2662 +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7654 .loc 1 3570 15 is_stmt 0 view .LVU2663 + 7655 0070 638D ldrh r3, [r4, #42] + 7656 0072 9BB2 uxth r3, r3 +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7657 .loc 1 3570 10 view .LVU2664 + 7658 0074 FF2B cmp r3, #255 + 7659 0076 13D8 bhi .L486 +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7660 .loc 1 3572 9 is_stmt 1 view .LVU2665 +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7661 .loc 1 3572 18 is_stmt 0 view .LVU2666 + 7662 0078 E66A ldr r6, [r4, #44] + 7663 .LVL510: +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7664 .loc 1 3524 12 view .LVU2667 + 7665 007a 0D4B ldr r3, .L488+4 + 7666 .L482: + 7667 .LVL511: +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 300 + + + 7668 .loc 1 3577 5 is_stmt 1 view .LVU2668 + 7669 007c 0093 str r3, [sp] + 7670 007e 3346 mov r3, r6 + 7671 .LVL512: +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7672 .loc 1 3577 5 is_stmt 0 view .LVU2669 + 7673 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 7674 0084 2946 mov r1, r5 + 7675 0086 2046 mov r0, r4 + 7676 0088 FFF7FEFF bl I2C_TransferConfig + 7677 .LVL513: +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7678 .loc 1 3580 5 is_stmt 1 view .LVU2670 +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7679 .loc 1 3580 5 view .LVU2671 + 7680 008c 0025 movs r5, #0 + 7681 008e 84F84050 strb r5, [r4, #64] +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7682 .loc 1 3580 5 view .LVU2672 +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7683 .loc 1 3585 5 view .LVU2673 + 7684 0092 0221 movs r1, #2 + 7685 0094 2046 mov r0, r4 + 7686 0096 FFF7FEFF bl I2C_Enable_IRQ + 7687 .LVL514: +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7688 .loc 1 3587 5 view .LVU2674 +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7689 .loc 1 3587 12 is_stmt 0 view .LVU2675 + 7690 009a 2846 mov r0, r5 + 7691 .LVL515: + 7692 .L478: +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7693 .loc 1 3593 1 view .LVU2676 + 7694 009c 02B0 add sp, sp, #8 + 7695 .LCFI93: + 7696 .cfi_remember_state + 7697 .cfi_def_cfa_offset 16 + 7698 @ sp needed + 7699 009e 70BD pop {r4, r5, r6, pc} + 7700 .LVL516: + 7701 .L486: + 7702 .LCFI94: + 7703 .cfi_restore_state +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7704 .loc 1 3524 12 view .LVU2677 + 7705 00a0 034B ldr r3, .L488+4 + 7706 00a2 EBE7 b .L482 + 7707 .LVL517: + 7708 .L483: +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7709 .loc 1 3591 12 view .LVU2678 + 7710 00a4 0220 movs r0, #2 + 7711 00a6 F9E7 b .L478 + 7712 .LVL518: + 7713 .L484: +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 301 + + + 7714 .loc 1 3532 5 view .LVU2679 + 7715 00a8 0220 movs r0, #2 + 7716 00aa F7E7 b .L478 + 7717 .L489: + 7718 .align 2 + 7719 .L488: + 7720 00ac 00000000 .word I2C_Master_ISR_IT + 7721 00b0 00240080 .word -2147474432 + 7722 .cfi_endproc + 7723 .LFE354: + 7725 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits + 7726 .align 1 + 7727 .global HAL_I2C_Master_Seq_Receive_DMA + 7728 .syntax unified + 7729 .thumb + 7730 .thumb_func + 7732 HAL_I2C_Master_Seq_Receive_DMA: + 7733 .LVL519: + 7734 .LFB355: +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 7735 .loc 1 3609 1 is_stmt 1 view -0 + 7736 .cfi_startproc + 7737 @ args = 4, pretend = 0, frame = 0 + 7738 @ frame_needed = 0, uses_anonymous_args = 0 +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 7739 .loc 1 3609 1 is_stmt 0 view .LVU2681 + 7740 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 7741 .LCFI95: + 7742 .cfi_def_cfa_offset 24 + 7743 .cfi_offset 4, -24 + 7744 .cfi_offset 5, -20 + 7745 .cfi_offset 6, -16 + 7746 .cfi_offset 7, -12 + 7747 .cfi_offset 8, -8 + 7748 .cfi_offset 14, -4 + 7749 0004 82B0 sub sp, sp, #8 + 7750 .LCFI96: + 7751 .cfi_def_cfa_offset 32 + 7752 0006 0446 mov r4, r0 + 7753 0008 1546 mov r5, r2 + 7754 000a 089A ldr r2, [sp, #32] + 7755 .LVL520: +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; + 7756 .loc 1 3610 3 is_stmt 1 view .LVU2682 +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 7757 .loc 1 3611 3 view .LVU2683 +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7758 .loc 1 3612 3 view .LVU2684 +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7759 .loc 1 3615 3 view .LVU2685 +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7760 .loc 1 3617 3 view .LVU2686 +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7761 .loc 1 3617 11 is_stmt 0 view .LVU2687 + 7762 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 7763 .LVL521: +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 302 + + + 7764 .loc 1 3617 11 view .LVU2688 + 7765 0010 C0B2 uxtb r0, r0 +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7766 .loc 1 3617 6 view .LVU2689 + 7767 0012 2028 cmp r0, #32 + 7768 0014 40F09D80 bne .L501 + 7769 0018 0E46 mov r6, r1 +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7770 .loc 1 3620 5 is_stmt 1 view .LVU2690 +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7771 .loc 1 3620 5 view .LVU2691 + 7772 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 + 7773 .LVL522: +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7774 .loc 1 3620 5 is_stmt 0 view .LVU2692 + 7775 001e 0129 cmp r1, #1 + 7776 0020 00F09B80 beq .L502 +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7777 .loc 1 3620 5 is_stmt 1 discriminator 2 view .LVU2693 + 7778 0024 0121 movs r1, #1 + 7779 0026 84F84010 strb r1, [r4, #64] +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7780 .loc 1 3620 5 discriminator 2 view .LVU2694 +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7781 .loc 1 3622 5 discriminator 2 view .LVU2695 +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; + 7782 .loc 1 3622 21 is_stmt 0 discriminator 2 view .LVU2696 + 7783 002a 2221 movs r1, #34 + 7784 002c 84F84110 strb r1, [r4, #65] +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7785 .loc 1 3623 5 is_stmt 1 discriminator 2 view .LVU2697 +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 7786 .loc 1 3623 21 is_stmt 0 discriminator 2 view .LVU2698 + 7787 0030 1021 movs r1, #16 + 7788 0032 84F84210 strb r1, [r4, #66] +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7789 .loc 1 3624 5 is_stmt 1 discriminator 2 view .LVU2699 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7790 .loc 1 3624 21 is_stmt 0 discriminator 2 view .LVU2700 + 7791 0036 0021 movs r1, #0 + 7792 0038 6164 str r1, [r4, #68] +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7793 .loc 1 3627 5 is_stmt 1 discriminator 2 view .LVU2701 +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 7794 .loc 1 3627 23 is_stmt 0 discriminator 2 view .LVU2702 + 7795 003a 6562 str r5, [r4, #36] +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7796 .loc 1 3628 5 is_stmt 1 discriminator 2 view .LVU2703 +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 7797 .loc 1 3628 23 is_stmt 0 discriminator 2 view .LVU2704 + 7798 003c 6385 strh r3, [r4, #42] @ movhi +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 7799 .loc 1 3629 5 is_stmt 1 discriminator 2 view .LVU2705 +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; + 7800 .loc 1 3629 23 is_stmt 0 discriminator 2 view .LVU2706 + 7801 003e E262 str r2, [r4, #44] +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 303 + + + 7802 .loc 1 3630 5 is_stmt 1 discriminator 2 view .LVU2707 +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7803 .loc 1 3630 23 is_stmt 0 discriminator 2 view .LVU2708 + 7804 0040 474B ldr r3, .L508 + 7805 .LVL523: +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7806 .loc 1 3630 23 discriminator 2 view .LVU2709 + 7807 0042 6363 str r3, [r4, #52] +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7808 .loc 1 3633 5 is_stmt 1 discriminator 2 view .LVU2710 +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7809 .loc 1 3633 13 is_stmt 0 discriminator 2 view .LVU2711 + 7810 0044 638D ldrh r3, [r4, #42] + 7811 0046 9BB2 uxth r3, r3 +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7812 .loc 1 3633 8 discriminator 2 view .LVU2712 + 7813 0048 FF2B cmp r3, #255 + 7814 004a 0ED9 bls .L492 +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7815 .loc 1 3635 7 is_stmt 1 view .LVU2713 +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 7816 .loc 1 3635 22 is_stmt 0 view .LVU2714 + 7817 004c FF23 movs r3, #255 + 7818 004e 2385 strh r3, [r4, #40] @ movhi +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7819 .loc 1 3636 7 is_stmt 1 view .LVU2715 + 7820 .LVL524: +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7821 .loc 1 3636 16 is_stmt 0 view .LVU2716 + 7822 0050 4FF08077 mov r7, #16777216 + 7823 .LVL525: + 7824 .L493: +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7825 .loc 1 3647 5 is_stmt 1 view .LVU2717 +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7826 .loc 1 3647 14 is_stmt 0 view .LVU2718 + 7827 0054 236B ldr r3, [r4, #48] +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + 7828 .loc 1 3647 8 view .LVU2719 + 7829 0056 122B cmp r3, #18 + 7830 0058 0BD1 bne .L494 +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7831 .loc 1 3648 10 view .LVU2720 + 7832 005a AA2A cmp r2, #170 + 7833 005c 09D0 beq .L494 +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7834 .loc 1 3648 10 discriminator 2 view .LVU2721 + 7835 005e B2F52A4F cmp r2, #43520 + 7836 0062 06D0 beq .L494 +3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7837 .loc 1 3650 19 view .LVU2722 + 7838 0064 4FF00008 mov r8, #0 + 7839 0068 0DE0 b .L495 + 7840 .LVL526: + 7841 .L492: +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7842 .loc 1 3640 7 is_stmt 1 view .LVU2723 + ARM GAS /tmp/ccbUHtu7.s page 304 + + +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7843 .loc 1 3640 28 is_stmt 0 view .LVU2724 + 7844 006a 638D ldrh r3, [r4, #42] +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; + 7845 .loc 1 3640 22 view .LVU2725 + 7846 006c 2385 strh r3, [r4, #40] @ movhi +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7847 .loc 1 3641 7 is_stmt 1 view .LVU2726 +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7848 .loc 1 3641 16 is_stmt 0 view .LVU2727 + 7849 006e E76A ldr r7, [r4, #44] + 7850 .LVL527: +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7851 .loc 1 3641 16 view .LVU2728 + 7852 0070 F0E7 b .L493 + 7853 .L494: +3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7854 .loc 1 3655 7 is_stmt 1 view .LVU2729 + 7855 0072 2046 mov r0, r4 + 7856 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions + 7857 .LVL528: +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7858 .loc 1 3658 7 view .LVU2730 +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7859 .loc 1 3658 15 is_stmt 0 view .LVU2731 + 7860 0078 638D ldrh r3, [r4, #42] + 7861 007a 9BB2 uxth r3, r3 +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7862 .loc 1 3658 10 view .LVU2732 + 7863 007c FF2B cmp r3, #255 + 7864 007e 27D8 bhi .L504 +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7865 .loc 1 3660 9 is_stmt 1 view .LVU2733 +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7866 .loc 1 3660 18 is_stmt 0 view .LVU2734 + 7867 0080 E76A ldr r7, [r4, #44] + 7868 .LVL529: +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 7869 .loc 1 3611 12 view .LVU2735 + 7870 0082 DFF8EC80 ldr r8, .L508+16 + 7871 .L495: + 7872 .LVL530: +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7873 .loc 1 3664 5 is_stmt 1 view .LVU2736 +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7874 .loc 1 3664 13 is_stmt 0 view .LVU2737 + 7875 0086 228D ldrh r2, [r4, #40] +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7876 .loc 1 3664 8 view .LVU2738 + 7877 0088 002A cmp r2, #0 + 7878 008a 4ED0 beq .L496 +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7879 .loc 1 3666 7 is_stmt 1 view .LVU2739 +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7880 .loc 1 3666 15 is_stmt 0 view .LVU2740 + 7881 008c E36B ldr r3, [r4, #60] +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 305 + + + 7882 .loc 1 3666 10 view .LVU2741 + 7883 008e 13B3 cbz r3, .L497 +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7884 .loc 1 3669 9 is_stmt 1 view .LVU2742 +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7885 .loc 1 3669 40 is_stmt 0 view .LVU2743 + 7886 0090 344A ldr r2, .L508+4 + 7887 0092 DA62 str r2, [r3, #44] +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7888 .loc 1 3672 9 is_stmt 1 view .LVU2744 +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7889 .loc 1 3672 13 is_stmt 0 view .LVU2745 + 7890 0094 E36B ldr r3, [r4, #60] +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7891 .loc 1 3672 41 view .LVU2746 + 7892 0096 344A ldr r2, .L508+8 + 7893 0098 5A63 str r2, [r3, #52] +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 7894 .loc 1 3675 9 is_stmt 1 view .LVU2747 +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 7895 .loc 1 3675 13 is_stmt 0 view .LVU2748 + 7896 009a E26B ldr r2, [r4, #60] +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 7897 .loc 1 3675 44 view .LVU2749 + 7898 009c 0023 movs r3, #0 + 7899 009e 1363 str r3, [r2, #48] +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7900 .loc 1 3676 9 is_stmt 1 view .LVU2750 +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7901 .loc 1 3676 13 is_stmt 0 view .LVU2751 + 7902 00a0 E26B ldr r2, [r4, #60] +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7903 .loc 1 3676 41 view .LVU2752 + 7904 00a2 9363 str r3, [r2, #56] +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 7905 .loc 1 3679 9 is_stmt 1 view .LVU2753 +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 7906 .loc 1 3679 71 is_stmt 0 view .LVU2754 + 7907 00a4 2168 ldr r1, [r4] +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 7908 .loc 1 3679 25 view .LVU2755 + 7909 00a6 238D ldrh r3, [r4, #40] + 7910 00a8 2A46 mov r2, r5 + 7911 00aa 2431 adds r1, r1, #36 + 7912 00ac E06B ldr r0, [r4, #60] + 7913 00ae FFF7FEFF bl HAL_DMA_Start_IT + 7914 .LVL531: +3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7915 .loc 1 3697 7 is_stmt 1 view .LVU2756 +3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 7916 .loc 1 3697 10 is_stmt 0 view .LVU2757 + 7917 00b2 F0B1 cbz r0, .L507 +3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7918 .loc 1 3720 9 is_stmt 1 view .LVU2758 +3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7919 .loc 1 3720 25 is_stmt 0 view .LVU2759 + 7920 00b4 2023 movs r3, #32 + ARM GAS /tmp/ccbUHtu7.s page 306 + + + 7921 00b6 84F84130 strb r3, [r4, #65] +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7922 .loc 1 3721 9 is_stmt 1 view .LVU2760 +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7923 .loc 1 3721 25 is_stmt 0 view .LVU2761 + 7924 00ba 0022 movs r2, #0 + 7925 00bc 84F84220 strb r2, [r4, #66] +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7926 .loc 1 3724 9 is_stmt 1 view .LVU2762 +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7927 .loc 1 3724 13 is_stmt 0 view .LVU2763 + 7928 00c0 636C ldr r3, [r4, #68] +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7929 .loc 1 3724 25 view .LVU2764 + 7930 00c2 43F01003 orr r3, r3, #16 + 7931 00c6 6364 str r3, [r4, #68] +3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7932 .loc 1 3727 9 is_stmt 1 view .LVU2765 +3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7933 .loc 1 3727 9 view .LVU2766 + 7934 00c8 84F84020 strb r2, [r4, #64] +3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7935 .loc 1 3727 9 view .LVU2767 +3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7936 .loc 1 3729 9 view .LVU2768 +3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7937 .loc 1 3729 16 is_stmt 0 view .LVU2769 + 7938 00cc 0120 movs r0, #1 + 7939 .LVL532: +3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7940 .loc 1 3729 16 view .LVU2770 + 7941 00ce 41E0 b .L491 + 7942 .LVL533: + 7943 .L504: +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 7944 .loc 1 3611 12 view .LVU2771 + 7945 00d0 DFF89C80 ldr r8, .L508+16 + 7946 00d4 D7E7 b .L495 + 7947 .LVL534: + 7948 .L497: +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7949 .loc 1 3685 9 is_stmt 1 view .LVU2772 +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 7950 .loc 1 3685 25 is_stmt 0 view .LVU2773 + 7951 00d6 2023 movs r3, #32 + 7952 00d8 84F84130 strb r3, [r4, #65] +3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7953 .loc 1 3686 9 is_stmt 1 view .LVU2774 +3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7954 .loc 1 3686 25 is_stmt 0 view .LVU2775 + 7955 00dc 0022 movs r2, #0 + 7956 00de 84F84220 strb r2, [r4, #66] +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7957 .loc 1 3689 9 is_stmt 1 view .LVU2776 +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7958 .loc 1 3689 13 is_stmt 0 view .LVU2777 + 7959 00e2 636C ldr r3, [r4, #68] + ARM GAS /tmp/ccbUHtu7.s page 307 + + +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7960 .loc 1 3689 25 view .LVU2778 + 7961 00e4 43F08003 orr r3, r3, #128 + 7962 00e8 6364 str r3, [r4, #68] +3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7963 .loc 1 3692 9 is_stmt 1 view .LVU2779 +3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7964 .loc 1 3692 9 view .LVU2780 + 7965 00ea 84F84020 strb r2, [r4, #64] +3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7966 .loc 1 3692 9 view .LVU2781 +3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7967 .loc 1 3694 9 view .LVU2782 +3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 7968 .loc 1 3694 16 is_stmt 0 view .LVU2783 + 7969 00ee 0120 movs r0, #1 + 7970 00f0 30E0 b .L491 + 7971 .LVL535: + 7972 .L507: +3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7973 .loc 1 3700 9 is_stmt 1 view .LVU2784 + 7974 00f2 CDF80080 str r8, [sp] + 7975 00f6 3B46 mov r3, r7 + 7976 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 7977 00fc 3146 mov r1, r6 + 7978 00fe 2046 mov r0, r4 + 7979 .LVL536: +3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7980 .loc 1 3700 9 is_stmt 0 view .LVU2785 + 7981 0100 FFF7FEFF bl I2C_TransferConfig + 7982 .LVL537: +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7983 .loc 1 3703 9 is_stmt 1 view .LVU2786 +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7984 .loc 1 3703 13 is_stmt 0 view .LVU2787 + 7985 0104 638D ldrh r3, [r4, #42] + 7986 0106 9BB2 uxth r3, r3 +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7987 .loc 1 3703 32 view .LVU2788 + 7988 0108 228D ldrh r2, [r4, #40] +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7989 .loc 1 3703 25 view .LVU2789 + 7990 010a 9B1A subs r3, r3, r2 + 7991 010c 9BB2 uxth r3, r3 + 7992 010e 6385 strh r3, [r4, #42] @ movhi +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7993 .loc 1 3706 9 is_stmt 1 view .LVU2790 +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7994 .loc 1 3706 9 view .LVU2791 + 7995 0110 0023 movs r3, #0 + 7996 0112 84F84030 strb r3, [r4, #64] +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7997 .loc 1 3706 9 view .LVU2792 +3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 7998 .loc 1 3712 9 view .LVU2793 + 7999 0116 1021 movs r1, #16 + 8000 0118 2046 mov r0, r4 + ARM GAS /tmp/ccbUHtu7.s page 308 + + + 8001 011a FFF7FEFF bl I2C_Enable_IRQ + 8002 .LVL538: +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8003 .loc 1 3715 9 view .LVU2794 +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8004 .loc 1 3715 13 is_stmt 0 view .LVU2795 + 8005 011e 2268 ldr r2, [r4] +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8006 .loc 1 3715 23 view .LVU2796 + 8007 0120 1368 ldr r3, [r2] +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8008 .loc 1 3715 29 view .LVU2797 + 8009 0122 43F40043 orr r3, r3, #32768 + 8010 0126 1360 str r3, [r2] + 8011 0128 11E0 b .L500 + 8012 .LVL539: + 8013 .L496: +3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8014 .loc 1 3735 7 is_stmt 1 view .LVU2798 +3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8015 .loc 1 3735 21 is_stmt 0 view .LVU2799 + 8016 012a 104B ldr r3, .L508+12 + 8017 012c 6363 str r3, [r4, #52] +3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); + 8018 .loc 1 3739 7 is_stmt 1 view .LVU2800 + 8019 012e 104B ldr r3, .L508+16 + 8020 0130 0093 str r3, [sp] + 8021 0132 4FF00073 mov r3, #33554432 + 8022 0136 D2B2 uxtb r2, r2 + 8023 0138 3146 mov r1, r6 + 8024 013a 2046 mov r0, r4 + 8025 013c FFF7FEFF bl I2C_TransferConfig + 8026 .LVL540: +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8027 .loc 1 3743 7 view .LVU2801 +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8028 .loc 1 3743 7 view .LVU2802 + 8029 0140 0023 movs r3, #0 + 8030 0142 84F84030 strb r3, [r4, #64] +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8031 .loc 1 3743 7 view .LVU2803 +3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8032 .loc 1 3752 7 view .LVU2804 + 8033 0146 0121 movs r1, #1 + 8034 0148 2046 mov r0, r4 + 8035 014a FFF7FEFF bl I2C_Enable_IRQ + 8036 .LVL541: + 8037 .L500: +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8038 .loc 1 3755 5 view .LVU2805 +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8039 .loc 1 3755 12 is_stmt 0 view .LVU2806 + 8040 014e 0020 movs r0, #0 + 8041 0150 00E0 b .L491 + 8042 .LVL542: + 8043 .L501: +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 309 + + + 8044 .loc 1 3759 12 view .LVU2807 + 8045 0152 0220 movs r0, #2 + 8046 .LVL543: + 8047 .L491: +3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8048 .loc 1 3761 1 view .LVU2808 + 8049 0154 02B0 add sp, sp, #8 + 8050 .LCFI97: + 8051 .cfi_remember_state + 8052 .cfi_def_cfa_offset 24 + 8053 @ sp needed + 8054 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 8055 .LVL544: + 8056 .L502: + 8057 .LCFI98: + 8058 .cfi_restore_state +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8059 .loc 1 3620 5 view .LVU2809 + 8060 015a 0220 movs r0, #2 + 8061 015c FAE7 b .L491 + 8062 .L509: + 8063 015e 00BF .align 2 + 8064 .L508: + 8065 0160 00000000 .word I2C_Master_ISR_DMA + 8066 0164 00000000 .word I2C_DMAMasterReceiveCplt + 8067 0168 00000000 .word I2C_DMAError + 8068 016c 00000000 .word I2C_Master_ISR_IT + 8069 0170 00240080 .word -2147474432 + 8070 .cfi_endproc + 8071 .LFE355: + 8073 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits + 8074 .align 1 + 8075 .global HAL_I2C_Slave_Seq_Transmit_IT + 8076 .syntax unified + 8077 .thumb + 8078 .thumb_func + 8080 HAL_I2C_Slave_Seq_Transmit_IT: + 8081 .LVL545: + 8082 .LFB356: +3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ + 8083 .loc 1 3775 1 is_stmt 1 view -0 + 8084 .cfi_startproc + 8085 @ args = 0, pretend = 0, frame = 0 + 8086 @ frame_needed = 0, uses_anonymous_args = 0 +3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ + 8087 .loc 1 3775 1 is_stmt 0 view .LVU2811 + 8088 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 8089 .LCFI99: + 8090 .cfi_def_cfa_offset 24 + 8091 .cfi_offset 3, -24 + 8092 .cfi_offset 4, -20 + 8093 .cfi_offset 5, -16 + 8094 .cfi_offset 6, -12 + 8095 .cfi_offset 7, -8 + 8096 .cfi_offset 14, -4 + 8097 0002 0446 mov r4, r0 +3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 310 + + + 8098 .loc 1 3777 3 is_stmt 1 view .LVU2812 +3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8099 .loc 1 3779 3 view .LVU2813 +3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8100 .loc 1 3779 22 is_stmt 0 view .LVU2814 + 8101 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 8102 .LVL546: +3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8103 .loc 1 3779 6 view .LVU2815 + 8104 0008 00F02800 and r0, r0, #40 + 8105 000c 2828 cmp r0, #40 + 8106 000e 5AD1 bne .L516 + 8107 0010 0F46 mov r7, r1 + 8108 0012 1646 mov r6, r2 + 8109 0014 1D46 mov r5, r3 +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8110 .loc 1 3781 5 is_stmt 1 view .LVU2816 +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8111 .loc 1 3781 8 is_stmt 0 view .LVU2817 + 8112 0016 01B1 cbz r1, .L512 +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8113 .loc 1 3781 25 discriminator 1 view .LVU2818 + 8114 0018 22B9 cbnz r2, .L513 + 8115 .L512: +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8116 .loc 1 3783 7 is_stmt 1 view .LVU2819 +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8117 .loc 1 3783 23 is_stmt 0 view .LVU2820 + 8118 001a 4FF40073 mov r3, #512 + 8119 .LVL547: +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8120 .loc 1 3783 23 view .LVU2821 + 8121 001e 6364 str r3, [r4, #68] +3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8122 .loc 1 3784 7 is_stmt 1 view .LVU2822 +3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8123 .loc 1 3784 15 is_stmt 0 view .LVU2823 + 8124 0020 0120 movs r0, #1 + 8125 0022 51E0 b .L511 + 8126 .LVL548: + 8127 .L513: +3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8128 .loc 1 3788 5 is_stmt 1 view .LVU2824 + 8129 0024 48F20101 movw r1, #32769 + 8130 .LVL549: +3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8131 .loc 1 3788 5 is_stmt 0 view .LVU2825 + 8132 0028 2046 mov r0, r4 + 8133 002a FFF7FEFF bl I2C_Disable_IRQ + 8134 .LVL550: +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8135 .loc 1 3791 5 is_stmt 1 view .LVU2826 +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8136 .loc 1 3791 5 view .LVU2827 + 8137 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 8138 0032 012B cmp r3, #1 + 8139 0034 49D0 beq .L517 + ARM GAS /tmp/ccbUHtu7.s page 311 + + +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8140 .loc 1 3791 5 discriminator 2 view .LVU2828 + 8141 0036 0123 movs r3, #1 + 8142 0038 84F84030 strb r3, [r4, #64] +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8143 .loc 1 3791 5 discriminator 2 view .LVU2829 +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8144 .loc 1 3795 5 discriminator 2 view .LVU2830 +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8145 .loc 1 3795 13 is_stmt 0 discriminator 2 view .LVU2831 + 8146 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 8147 0040 DBB2 uxtb r3, r3 +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8148 .loc 1 3795 8 discriminator 2 view .LVU2832 + 8149 0042 2A2B cmp r3, #42 + 8150 0044 24D0 beq .L519 + 8151 .L514: +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8152 .loc 1 3821 5 is_stmt 1 view .LVU2833 +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8153 .loc 1 3821 21 is_stmt 0 view .LVU2834 + 8154 0046 2923 movs r3, #41 + 8155 0048 84F84130 strb r3, [r4, #65] +3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8156 .loc 1 3822 5 is_stmt 1 view .LVU2835 +3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8157 .loc 1 3822 21 is_stmt 0 view .LVU2836 + 8158 004c 2023 movs r3, #32 + 8159 004e 84F84230 strb r3, [r4, #66] +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8160 .loc 1 3823 5 is_stmt 1 view .LVU2837 +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8161 .loc 1 3823 21 is_stmt 0 view .LVU2838 + 8162 0052 0023 movs r3, #0 + 8163 0054 6364 str r3, [r4, #68] +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8164 .loc 1 3826 5 is_stmt 1 view .LVU2839 +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8165 .loc 1 3826 9 is_stmt 0 view .LVU2840 + 8166 0056 2268 ldr r2, [r4] +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8167 .loc 1 3826 19 view .LVU2841 + 8168 0058 5368 ldr r3, [r2, #4] +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8169 .loc 1 3826 25 view .LVU2842 + 8170 005a 23F40043 bic r3, r3, #32768 + 8171 005e 5360 str r3, [r2, #4] +3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 8172 .loc 1 3829 5 is_stmt 1 view .LVU2843 +3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 8173 .loc 1 3829 23 is_stmt 0 view .LVU2844 + 8174 0060 6762 str r7, [r4, #36] +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 8175 .loc 1 3830 5 is_stmt 1 view .LVU2845 +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 8176 .loc 1 3830 23 is_stmt 0 view .LVU2846 + 8177 0062 6685 strh r6, [r4, #42] @ movhi + ARM GAS /tmp/ccbUHtu7.s page 312 + + +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8178 .loc 1 3831 5 is_stmt 1 view .LVU2847 +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8179 .loc 1 3831 29 is_stmt 0 view .LVU2848 + 8180 0064 638D ldrh r3, [r4, #42] +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8181 .loc 1 3831 23 view .LVU2849 + 8182 0066 2385 strh r3, [r4, #40] @ movhi +3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 8183 .loc 1 3832 5 is_stmt 1 view .LVU2850 +3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 8184 .loc 1 3832 23 is_stmt 0 view .LVU2851 + 8185 0068 E562 str r5, [r4, #44] +3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8186 .loc 1 3833 5 is_stmt 1 view .LVU2852 +3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8187 .loc 1 3833 23 is_stmt 0 view .LVU2853 + 8188 006a 194B ldr r3, .L520 + 8189 006c 6363 str r3, [r4, #52] +3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8190 .loc 1 3835 5 is_stmt 1 view .LVU2854 +3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8191 .loc 1 3835 9 is_stmt 0 view .LVU2855 + 8192 006e 2368 ldr r3, [r4] + 8193 0070 9A69 ldr r2, [r3, #24] +3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8194 .loc 1 3835 8 view .LVU2856 + 8195 0072 12F4803F tst r2, #65536 + 8196 0076 01D0 beq .L515 +3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8197 .loc 1 3839 7 is_stmt 1 view .LVU2857 + 8198 0078 0822 movs r2, #8 + 8199 007a DA61 str r2, [r3, #28] + 8200 .L515: +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8201 .loc 1 3843 5 view .LVU2858 +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8202 .loc 1 3843 5 view .LVU2859 + 8203 007c 0025 movs r5, #0 + 8204 .LVL551: +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8205 .loc 1 3843 5 is_stmt 0 view .LVU2860 + 8206 007e 84F84050 strb r5, [r4, #64] +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8207 .loc 1 3843 5 is_stmt 1 view .LVU2861 +3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8208 .loc 1 3849 5 view .LVU2862 + 8209 0082 48F20101 movw r1, #32769 + 8210 0086 2046 mov r0, r4 + 8211 0088 FFF7FEFF bl I2C_Enable_IRQ + 8212 .LVL552: +3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8213 .loc 1 3851 5 view .LVU2863 +3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8214 .loc 1 3851 12 is_stmt 0 view .LVU2864 + 8215 008c 2846 mov r0, r5 + 8216 008e 1BE0 b .L511 + ARM GAS /tmp/ccbUHtu7.s page 313 + + + 8217 .LVL553: + 8218 .L519: +3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8219 .loc 1 3798 7 is_stmt 1 view .LVU2865 + 8220 0090 0221 movs r1, #2 + 8221 0092 2046 mov r0, r4 + 8222 0094 FFF7FEFF bl I2C_Disable_IRQ + 8223 .LVL554: +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8224 .loc 1 3801 7 view .LVU2866 +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8225 .loc 1 3801 16 is_stmt 0 view .LVU2867 + 8226 0098 2368 ldr r3, [r4] +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8227 .loc 1 3801 26 view .LVU2868 + 8228 009a 1A68 ldr r2, [r3] +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8229 .loc 1 3801 10 view .LVU2869 + 8230 009c 12F4004F tst r2, #32768 + 8231 00a0 D1D0 beq .L514 +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8232 .loc 1 3803 9 is_stmt 1 view .LVU2870 +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8233 .loc 1 3803 23 is_stmt 0 view .LVU2871 + 8234 00a2 1A68 ldr r2, [r3] +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8235 .loc 1 3803 29 view .LVU2872 + 8236 00a4 22F40042 bic r2, r2, #32768 + 8237 00a8 1A60 str r2, [r3] +3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8238 .loc 1 3805 9 is_stmt 1 view .LVU2873 +3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8239 .loc 1 3805 17 is_stmt 0 view .LVU2874 + 8240 00aa E36B ldr r3, [r4, #60] +3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8241 .loc 1 3805 12 view .LVU2875 + 8242 00ac 002B cmp r3, #0 + 8243 00ae CAD0 beq .L514 +3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8244 .loc 1 3809 11 is_stmt 1 view .LVU2876 +3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8245 .loc 1 3809 43 is_stmt 0 view .LVU2877 + 8246 00b0 084A ldr r2, .L520+4 + 8247 00b2 9A63 str r2, [r3, #56] +3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8248 .loc 1 3812 11 is_stmt 1 view .LVU2878 +3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8249 .loc 1 3812 15 is_stmt 0 view .LVU2879 + 8250 00b4 E06B ldr r0, [r4, #60] + 8251 00b6 FFF7FEFF bl HAL_DMA_Abort_IT + 8252 .LVL555: +3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8253 .loc 1 3812 14 view .LVU2880 + 8254 00ba 0028 cmp r0, #0 + 8255 00bc C3D0 beq .L514 +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8256 .loc 1 3815 13 is_stmt 1 view .LVU2881 + ARM GAS /tmp/ccbUHtu7.s page 314 + + +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8257 .loc 1 3815 17 is_stmt 0 view .LVU2882 + 8258 00be E06B ldr r0, [r4, #60] +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8259 .loc 1 3815 25 view .LVU2883 + 8260 00c0 836B ldr r3, [r0, #56] +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8261 .loc 1 3815 13 view .LVU2884 + 8262 00c2 9847 blx r3 + 8263 .LVL556: + 8264 00c4 BFE7 b .L514 + 8265 .LVL557: + 8266 .L516: +3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8267 .loc 1 3855 12 view .LVU2885 + 8268 00c6 0120 movs r0, #1 + 8269 .LVL558: + 8270 .L511: +3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8271 .loc 1 3857 1 view .LVU2886 + 8272 00c8 F8BD pop {r3, r4, r5, r6, r7, pc} + 8273 .LVL559: + 8274 .L517: +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8275 .loc 1 3791 5 view .LVU2887 + 8276 00ca 0220 movs r0, #2 + 8277 00cc FCE7 b .L511 + 8278 .L521: + 8279 00ce 00BF .align 2 + 8280 .L520: + 8281 00d0 00000000 .word I2C_Slave_ISR_IT + 8282 00d4 00000000 .word I2C_DMAAbort + 8283 .cfi_endproc + 8284 .LFE356: + 8286 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits + 8287 .align 1 + 8288 .global HAL_I2C_Slave_Seq_Transmit_DMA + 8289 .syntax unified + 8290 .thumb + 8291 .thumb_func + 8293 HAL_I2C_Slave_Seq_Transmit_DMA: + 8294 .LVL560: + 8295 .LFB357: +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 8296 .loc 1 3871 1 is_stmt 1 view -0 + 8297 .cfi_startproc + 8298 @ args = 0, pretend = 0, frame = 0 + 8299 @ frame_needed = 0, uses_anonymous_args = 0 +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 8300 .loc 1 3871 1 is_stmt 0 view .LVU2889 + 8301 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 8302 .LCFI100: + 8303 .cfi_def_cfa_offset 24 + 8304 .cfi_offset 3, -24 + 8305 .cfi_offset 4, -20 + 8306 .cfi_offset 5, -16 + 8307 .cfi_offset 6, -12 + ARM GAS /tmp/ccbUHtu7.s page 315 + + + 8308 .cfi_offset 7, -8 + 8309 .cfi_offset 14, -4 + 8310 0002 0446 mov r4, r0 +3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8311 .loc 1 3872 3 is_stmt 1 view .LVU2890 +3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8312 .loc 1 3875 3 view .LVU2891 +3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8313 .loc 1 3877 3 view .LVU2892 +3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8314 .loc 1 3877 22 is_stmt 0 view .LVU2893 + 8315 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 8316 .LVL561: +3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8317 .loc 1 3877 6 view .LVU2894 + 8318 0008 00F02800 and r0, r0, #40 + 8319 000c 2828 cmp r0, #40 + 8320 000e 40F0BB80 bne .L533 + 8321 0012 0F46 mov r7, r1 + 8322 0014 1646 mov r6, r2 + 8323 0016 1D46 mov r5, r3 +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8324 .loc 1 3879 5 is_stmt 1 view .LVU2895 +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8325 .loc 1 3879 8 is_stmt 0 view .LVU2896 + 8326 0018 0029 cmp r1, #0 + 8327 001a 51D0 beq .L524 +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8328 .loc 1 3879 25 discriminator 1 view .LVU2897 + 8329 001c 002A cmp r2, #0 + 8330 001e 4FD0 beq .L524 +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8331 .loc 1 3886 5 is_stmt 1 view .LVU2898 +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8332 .loc 1 3886 5 view .LVU2899 + 8333 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 8334 .LVL562: +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8335 .loc 1 3886 5 is_stmt 0 view .LVU2900 + 8336 0024 012B cmp r3, #1 + 8337 0026 00F0B280 beq .L534 +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8338 .loc 1 3886 5 is_stmt 1 discriminator 2 view .LVU2901 + 8339 002a 0123 movs r3, #1 + 8340 002c 84F84030 strb r3, [r4, #64] +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8341 .loc 1 3886 5 discriminator 2 view .LVU2902 +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8342 .loc 1 3889 5 discriminator 2 view .LVU2903 + 8343 0030 48F20101 movw r1, #32769 + 8344 .LVL563: +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8345 .loc 1 3889 5 is_stmt 0 discriminator 2 view .LVU2904 + 8346 0034 2046 mov r0, r4 + 8347 0036 FFF7FEFF bl I2C_Disable_IRQ + 8348 .LVL564: +3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 316 + + + 8349 .loc 1 3893 5 is_stmt 1 discriminator 2 view .LVU2905 +3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8350 .loc 1 3893 13 is_stmt 0 discriminator 2 view .LVU2906 + 8351 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 8352 003e DBB2 uxtb r3, r3 +3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8353 .loc 1 3893 8 discriminator 2 view .LVU2907 + 8354 0040 2A2B cmp r3, #42 + 8355 0042 42D0 beq .L537 +3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8356 .loc 1 3918 10 is_stmt 1 view .LVU2908 +3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8357 .loc 1 3918 18 is_stmt 0 view .LVU2909 + 8358 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 8359 0048 DBB2 uxtb r3, r3 +3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8360 .loc 1 3918 13 view .LVU2910 + 8361 004a 292B cmp r3, #41 + 8362 004c 59D0 beq .L538 + 8363 .L527: +3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8364 .loc 1 3943 5 is_stmt 1 view .LVU2911 +3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8365 .loc 1 3945 5 view .LVU2912 +3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8366 .loc 1 3945 21 is_stmt 0 view .LVU2913 + 8367 004e 2923 movs r3, #41 + 8368 0050 84F84130 strb r3, [r4, #65] +3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8369 .loc 1 3946 5 is_stmt 1 view .LVU2914 +3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8370 .loc 1 3946 21 is_stmt 0 view .LVU2915 + 8371 0054 2023 movs r3, #32 + 8372 0056 84F84230 strb r3, [r4, #66] +3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8373 .loc 1 3947 5 is_stmt 1 view .LVU2916 +3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8374 .loc 1 3947 21 is_stmt 0 view .LVU2917 + 8375 005a 0023 movs r3, #0 + 8376 005c 6364 str r3, [r4, #68] +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8377 .loc 1 3950 5 is_stmt 1 view .LVU2918 +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8378 .loc 1 3950 9 is_stmt 0 view .LVU2919 + 8379 005e 2268 ldr r2, [r4] +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8380 .loc 1 3950 19 view .LVU2920 + 8381 0060 5368 ldr r3, [r2, #4] +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8382 .loc 1 3950 25 view .LVU2921 + 8383 0062 23F40043 bic r3, r3, #32768 + 8384 0066 5360 str r3, [r2, #4] +3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 8385 .loc 1 3953 5 is_stmt 1 view .LVU2922 +3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 8386 .loc 1 3953 23 is_stmt 0 view .LVU2923 + 8387 0068 6762 str r7, [r4, #36] + ARM GAS /tmp/ccbUHtu7.s page 317 + + +3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 8388 .loc 1 3954 5 is_stmt 1 view .LVU2924 +3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 8389 .loc 1 3954 23 is_stmt 0 view .LVU2925 + 8390 006a 6685 strh r6, [r4, #42] @ movhi +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8391 .loc 1 3955 5 is_stmt 1 view .LVU2926 +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8392 .loc 1 3955 29 is_stmt 0 view .LVU2927 + 8393 006c 638D ldrh r3, [r4, #42] +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8394 .loc 1 3955 23 view .LVU2928 + 8395 006e 2385 strh r3, [r4, #40] @ movhi +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 8396 .loc 1 3956 5 is_stmt 1 view .LVU2929 +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 8397 .loc 1 3956 23 is_stmt 0 view .LVU2930 + 8398 0070 E562 str r5, [r4, #44] +3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8399 .loc 1 3957 5 is_stmt 1 view .LVU2931 +3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8400 .loc 1 3957 23 is_stmt 0 view .LVU2932 + 8401 0072 484B ldr r3, .L539 + 8402 0074 6363 str r3, [r4, #52] +3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8403 .loc 1 3959 5 is_stmt 1 view .LVU2933 +3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8404 .loc 1 3959 13 is_stmt 0 view .LVU2934 + 8405 0076 A36B ldr r3, [r4, #56] +3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8406 .loc 1 3959 8 view .LVU2935 + 8407 0078 002B cmp r3, #0 + 8408 007a 59D0 beq .L528 +3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8409 .loc 1 3962 7 is_stmt 1 view .LVU2936 +3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8410 .loc 1 3962 38 is_stmt 0 view .LVU2937 + 8411 007c 464A ldr r2, .L539+4 + 8412 007e DA62 str r2, [r3, #44] +3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8413 .loc 1 3965 7 is_stmt 1 view .LVU2938 +3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8414 .loc 1 3965 11 is_stmt 0 view .LVU2939 + 8415 0080 A36B ldr r3, [r4, #56] +3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8416 .loc 1 3965 39 view .LVU2940 + 8417 0082 464A ldr r2, .L539+8 + 8418 0084 5A63 str r2, [r3, #52] +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 8419 .loc 1 3968 7 is_stmt 1 view .LVU2941 +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 8420 .loc 1 3968 11 is_stmt 0 view .LVU2942 + 8421 0086 A26B ldr r2, [r4, #56] +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; + 8422 .loc 1 3968 42 view .LVU2943 + 8423 0088 0023 movs r3, #0 + 8424 008a 1363 str r3, [r2, #48] + ARM GAS /tmp/ccbUHtu7.s page 318 + + +3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8425 .loc 1 3969 7 is_stmt 1 view .LVU2944 +3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8426 .loc 1 3969 11 is_stmt 0 view .LVU2945 + 8427 008c A26B ldr r2, [r4, #56] +3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8428 .loc 1 3969 39 view .LVU2946 + 8429 008e 9363 str r3, [r2, #56] +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 8430 .loc 1 3972 7 is_stmt 1 view .LVU2947 +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 8431 .loc 1 3972 86 is_stmt 0 view .LVU2948 + 8432 0090 2268 ldr r2, [r4] +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); + 8433 .loc 1 3972 23 view .LVU2949 + 8434 0092 238D ldrh r3, [r4, #40] + 8435 0094 2832 adds r2, r2, #40 + 8436 0096 3946 mov r1, r7 + 8437 0098 A06B ldr r0, [r4, #56] + 8438 009a FFF7FEFF bl HAL_DMA_Start_IT + 8439 .LVL565: +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8440 .loc 1 3990 5 is_stmt 1 view .LVU2950 +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8441 .loc 1 3990 8 is_stmt 0 view .LVU2951 + 8442 009e 0546 mov r5, r0 + 8443 .LVL566: +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8444 .loc 1 3990 8 view .LVU2952 + 8445 00a0 0028 cmp r0, #0 + 8446 00a2 53D0 beq .L529 +4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 8447 .loc 1 4001 7 is_stmt 1 view .LVU2953 +4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 8448 .loc 1 4001 23 is_stmt 0 view .LVU2954 + 8449 00a4 2823 movs r3, #40 + 8450 00a6 84F84130 strb r3, [r4, #65] +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8451 .loc 1 4002 7 is_stmt 1 view .LVU2955 +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8452 .loc 1 4002 23 is_stmt 0 view .LVU2956 + 8453 00aa 0022 movs r2, #0 + 8454 00ac 84F84220 strb r2, [r4, #66] +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8455 .loc 1 4005 7 is_stmt 1 view .LVU2957 +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8456 .loc 1 4005 11 is_stmt 0 view .LVU2958 + 8457 00b0 636C ldr r3, [r4, #68] +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8458 .loc 1 4005 23 view .LVU2959 + 8459 00b2 43F01003 orr r3, r3, #16 + 8460 00b6 6364 str r3, [r4, #68] +4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8461 .loc 1 4008 7 is_stmt 1 view .LVU2960 +4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8462 .loc 1 4008 7 view .LVU2961 + 8463 00b8 84F84020 strb r2, [r4, #64] + ARM GAS /tmp/ccbUHtu7.s page 319 + + +4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8464 .loc 1 4008 7 view .LVU2962 +4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8465 .loc 1 4010 7 view .LVU2963 +4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8466 .loc 1 4010 14 is_stmt 0 view .LVU2964 + 8467 00bc 0125 movs r5, #1 + 8468 00be 64E0 b .L523 + 8469 .LVL567: + 8470 .L524: +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8471 .loc 1 3881 7 is_stmt 1 view .LVU2965 +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8472 .loc 1 3881 23 is_stmt 0 view .LVU2966 + 8473 00c0 4FF40073 mov r3, #512 + 8474 .LVL568: +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8475 .loc 1 3881 23 view .LVU2967 + 8476 00c4 6364 str r3, [r4, #68] +3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8477 .loc 1 3882 7 is_stmt 1 view .LVU2968 +3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8478 .loc 1 3882 15 is_stmt 0 view .LVU2969 + 8479 00c6 0125 movs r5, #1 + 8480 .LVL569: +3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8481 .loc 1 3882 15 view .LVU2970 + 8482 00c8 5FE0 b .L523 + 8483 .LVL570: + 8484 .L537: +3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8485 .loc 1 3896 7 is_stmt 1 view .LVU2971 + 8486 00ca 0221 movs r1, #2 + 8487 00cc 2046 mov r0, r4 + 8488 00ce FFF7FEFF bl I2C_Disable_IRQ + 8489 .LVL571: +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8490 .loc 1 3898 7 view .LVU2972 +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8491 .loc 1 3898 16 is_stmt 0 view .LVU2973 + 8492 00d2 2368 ldr r3, [r4] +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8493 .loc 1 3898 26 view .LVU2974 + 8494 00d4 1A68 ldr r2, [r3] +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8495 .loc 1 3898 10 view .LVU2975 + 8496 00d6 12F4004F tst r2, #32768 + 8497 00da B8D0 beq .L527 +3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8498 .loc 1 3901 9 is_stmt 1 view .LVU2976 +3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8499 .loc 1 3901 17 is_stmt 0 view .LVU2977 + 8500 00dc E26B ldr r2, [r4, #60] +3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8501 .loc 1 3901 12 view .LVU2978 + 8502 00de 002A cmp r2, #0 + 8503 00e0 B5D0 beq .L527 + ARM GAS /tmp/ccbUHtu7.s page 320 + + +3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8504 .loc 1 3903 11 is_stmt 1 view .LVU2979 +3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8505 .loc 1 3903 25 is_stmt 0 view .LVU2980 + 8506 00e2 1A68 ldr r2, [r3] +3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8507 .loc 1 3903 31 view .LVU2981 + 8508 00e4 22F40042 bic r2, r2, #32768 + 8509 00e8 1A60 str r2, [r3] +3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8510 .loc 1 3907 11 is_stmt 1 view .LVU2982 +3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8511 .loc 1 3907 15 is_stmt 0 view .LVU2983 + 8512 00ea E36B ldr r3, [r4, #60] +3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8513 .loc 1 3907 43 view .LVU2984 + 8514 00ec 2C4A ldr r2, .L539+12 + 8515 00ee 9A63 str r2, [r3, #56] +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8516 .loc 1 3910 11 is_stmt 1 view .LVU2985 +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8517 .loc 1 3910 15 is_stmt 0 view .LVU2986 + 8518 00f0 E06B ldr r0, [r4, #60] + 8519 00f2 FFF7FEFF bl HAL_DMA_Abort_IT + 8520 .LVL572: +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8521 .loc 1 3910 14 view .LVU2987 + 8522 00f6 0028 cmp r0, #0 + 8523 00f8 A9D0 beq .L527 +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8524 .loc 1 3913 13 is_stmt 1 view .LVU2988 +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8525 .loc 1 3913 17 is_stmt 0 view .LVU2989 + 8526 00fa E06B ldr r0, [r4, #60] +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8527 .loc 1 3913 25 view .LVU2990 + 8528 00fc 836B ldr r3, [r0, #56] +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8529 .loc 1 3913 13 view .LVU2991 + 8530 00fe 9847 blx r3 + 8531 .LVL573: + 8532 0100 A5E7 b .L527 + 8533 .L538: +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8534 .loc 1 3920 7 is_stmt 1 view .LVU2992 +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8535 .loc 1 3920 16 is_stmt 0 view .LVU2993 + 8536 0102 2368 ldr r3, [r4] +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8537 .loc 1 3920 26 view .LVU2994 + 8538 0104 1A68 ldr r2, [r3] +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8539 .loc 1 3920 10 view .LVU2995 + 8540 0106 12F4804F tst r2, #16384 + 8541 010a A0D0 beq .L527 +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8542 .loc 1 3922 9 is_stmt 1 view .LVU2996 + ARM GAS /tmp/ccbUHtu7.s page 321 + + +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8543 .loc 1 3922 23 is_stmt 0 view .LVU2997 + 8544 010c 1A68 ldr r2, [r3] +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8545 .loc 1 3922 29 view .LVU2998 + 8546 010e 22F48042 bic r2, r2, #16384 + 8547 0112 1A60 str r2, [r3] +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8548 .loc 1 3925 9 is_stmt 1 view .LVU2999 +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8549 .loc 1 3925 17 is_stmt 0 view .LVU3000 + 8550 0114 A36B ldr r3, [r4, #56] +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8551 .loc 1 3925 12 view .LVU3001 + 8552 0116 002B cmp r3, #0 + 8553 0118 99D0 beq .L527 +3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8554 .loc 1 3929 11 is_stmt 1 view .LVU3002 +3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8555 .loc 1 3929 43 is_stmt 0 view .LVU3003 + 8556 011a 214A ldr r2, .L539+12 + 8557 011c 9A63 str r2, [r3, #56] +3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8558 .loc 1 3932 11 is_stmt 1 view .LVU3004 +3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8559 .loc 1 3932 15 is_stmt 0 view .LVU3005 + 8560 011e A06B ldr r0, [r4, #56] + 8561 0120 FFF7FEFF bl HAL_DMA_Abort_IT + 8562 .LVL574: +3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8563 .loc 1 3932 14 view .LVU3006 + 8564 0124 0028 cmp r0, #0 + 8565 0126 92D0 beq .L527 +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8566 .loc 1 3935 13 is_stmt 1 view .LVU3007 +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8567 .loc 1 3935 17 is_stmt 0 view .LVU3008 + 8568 0128 A06B ldr r0, [r4, #56] +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8569 .loc 1 3935 25 view .LVU3009 + 8570 012a 836B ldr r3, [r0, #56] +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8571 .loc 1 3935 13 view .LVU3010 + 8572 012c 9847 blx r3 + 8573 .LVL575: + 8574 012e 8EE7 b .L527 + 8575 .L528: +3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 8576 .loc 1 3978 7 is_stmt 1 view .LVU3011 +3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 8577 .loc 1 3978 23 is_stmt 0 view .LVU3012 + 8578 0130 2823 movs r3, #40 + 8579 0132 84F84130 strb r3, [r4, #65] +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8580 .loc 1 3979 7 is_stmt 1 view .LVU3013 +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8581 .loc 1 3979 23 is_stmt 0 view .LVU3014 + ARM GAS /tmp/ccbUHtu7.s page 322 + + + 8582 0136 0022 movs r2, #0 + 8583 0138 84F84220 strb r2, [r4, #66] +3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8584 .loc 1 3982 7 is_stmt 1 view .LVU3015 +3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8585 .loc 1 3982 11 is_stmt 0 view .LVU3016 + 8586 013c 636C ldr r3, [r4, #68] +3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8587 .loc 1 3982 23 view .LVU3017 + 8588 013e 43F08003 orr r3, r3, #128 + 8589 0142 6364 str r3, [r4, #68] +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8590 .loc 1 3985 7 is_stmt 1 view .LVU3018 +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8591 .loc 1 3985 7 view .LVU3019 + 8592 0144 84F84020 strb r2, [r4, #64] +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8593 .loc 1 3985 7 view .LVU3020 +3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8594 .loc 1 3987 7 view .LVU3021 +3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8595 .loc 1 3987 14 is_stmt 0 view .LVU3022 + 8596 0148 0125 movs r5, #1 + 8597 .LVL576: +3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8598 .loc 1 3987 14 view .LVU3023 + 8599 014a 1EE0 b .L523 + 8600 .LVL577: + 8601 .L529: +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8602 .loc 1 3993 7 is_stmt 1 view .LVU3024 +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8603 .loc 1 3993 11 is_stmt 0 view .LVU3025 + 8604 014c 638D ldrh r3, [r4, #42] + 8605 014e 9BB2 uxth r3, r3 +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8606 .loc 1 3993 30 view .LVU3026 + 8607 0150 228D ldrh r2, [r4, #40] +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8608 .loc 1 3993 23 view .LVU3027 + 8609 0152 9B1A subs r3, r3, r2 + 8610 0154 9BB2 uxth r3, r3 + 8611 0156 6385 strh r3, [r4, #42] @ movhi +3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8612 .loc 1 3996 7 is_stmt 1 view .LVU3028 +3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8613 .loc 1 3996 22 is_stmt 0 view .LVU3029 + 8614 0158 0023 movs r3, #0 + 8615 015a 2385 strh r3, [r4, #40] @ movhi +4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8616 .loc 1 4013 5 is_stmt 1 view .LVU3030 +4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8617 .loc 1 4013 9 is_stmt 0 view .LVU3031 + 8618 015c 2368 ldr r3, [r4] + 8619 015e 9A69 ldr r2, [r3, #24] +4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8620 .loc 1 4013 8 view .LVU3032 + ARM GAS /tmp/ccbUHtu7.s page 323 + + + 8621 0160 12F4803F tst r2, #65536 + 8622 0164 0DD1 bne .L531 + 8623 .L532: +4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8624 .loc 1 4021 5 is_stmt 1 view .LVU3033 +4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8625 .loc 1 4021 5 view .LVU3034 + 8626 0166 0023 movs r3, #0 + 8627 0168 84F84030 strb r3, [r4, #64] +4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8628 .loc 1 4021 5 view .LVU3035 +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8629 .loc 1 4024 5 view .LVU3036 +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8630 .loc 1 4024 9 is_stmt 0 view .LVU3037 + 8631 016c 2268 ldr r2, [r4] +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8632 .loc 1 4024 19 view .LVU3038 + 8633 016e 1368 ldr r3, [r2] +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8634 .loc 1 4024 25 view .LVU3039 + 8635 0170 43F48043 orr r3, r3, #16384 + 8636 0174 1360 str r3, [r2] +4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8637 .loc 1 4030 5 is_stmt 1 view .LVU3040 + 8638 0176 4FF40041 mov r1, #32768 + 8639 017a 2046 mov r0, r4 + 8640 .LVL578: +4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8641 .loc 1 4030 5 is_stmt 0 view .LVU3041 + 8642 017c FFF7FEFF bl I2C_Enable_IRQ + 8643 .LVL579: +4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8644 .loc 1 4032 5 is_stmt 1 view .LVU3042 +4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8645 .loc 1 4032 12 is_stmt 0 view .LVU3043 + 8646 0180 03E0 b .L523 + 8647 .LVL580: + 8648 .L531: +4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8649 .loc 1 4017 7 is_stmt 1 view .LVU3044 + 8650 0182 0822 movs r2, #8 + 8651 0184 DA61 str r2, [r3, #28] + 8652 0186 EEE7 b .L532 + 8653 .LVL581: + 8654 .L533: +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8655 .loc 1 4036 12 is_stmt 0 view .LVU3045 + 8656 0188 0125 movs r5, #1 + 8657 .LVL582: + 8658 .L523: +4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8659 .loc 1 4038 1 view .LVU3046 + 8660 018a 2846 mov r0, r5 + 8661 018c F8BD pop {r3, r4, r5, r6, r7, pc} + 8662 .LVL583: + 8663 .L534: + ARM GAS /tmp/ccbUHtu7.s page 324 + + +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8664 .loc 1 3886 5 view .LVU3047 + 8665 018e 0225 movs r5, #2 + 8666 .LVL584: +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8667 .loc 1 3886 5 view .LVU3048 + 8668 0190 FBE7 b .L523 + 8669 .L540: + 8670 0192 00BF .align 2 + 8671 .L539: + 8672 0194 00000000 .word I2C_Slave_ISR_DMA + 8673 0198 00000000 .word I2C_DMASlaveTransmitCplt + 8674 019c 00000000 .word I2C_DMAError + 8675 01a0 00000000 .word I2C_DMAAbort + 8676 .cfi_endproc + 8677 .LFE357: + 8679 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits + 8680 .align 1 + 8681 .global HAL_I2C_Slave_Seq_Receive_IT + 8682 .syntax unified + 8683 .thumb + 8684 .thumb_func + 8686 HAL_I2C_Slave_Seq_Receive_IT: + 8687 .LVL585: + 8688 .LFB358: +4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ + 8689 .loc 1 4052 1 is_stmt 1 view -0 + 8690 .cfi_startproc + 8691 @ args = 0, pretend = 0, frame = 0 + 8692 @ frame_needed = 0, uses_anonymous_args = 0 +4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ + 8693 .loc 1 4052 1 is_stmt 0 view .LVU3050 + 8694 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 8695 .LCFI101: + 8696 .cfi_def_cfa_offset 24 + 8697 .cfi_offset 3, -24 + 8698 .cfi_offset 4, -20 + 8699 .cfi_offset 5, -16 + 8700 .cfi_offset 6, -12 + 8701 .cfi_offset 7, -8 + 8702 .cfi_offset 14, -4 + 8703 0002 0446 mov r4, r0 +4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8704 .loc 1 4054 3 is_stmt 1 view .LVU3051 +4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8705 .loc 1 4056 3 view .LVU3052 +4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8706 .loc 1 4056 22 is_stmt 0 view .LVU3053 + 8707 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 8708 .LVL586: +4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8709 .loc 1 4056 6 view .LVU3054 + 8710 0008 00F02800 and r0, r0, #40 + 8711 000c 2828 cmp r0, #40 + 8712 000e 5AD1 bne .L547 + 8713 0010 0F46 mov r7, r1 + 8714 0012 1646 mov r6, r2 + ARM GAS /tmp/ccbUHtu7.s page 325 + + + 8715 0014 1D46 mov r5, r3 +4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8716 .loc 1 4058 5 is_stmt 1 view .LVU3055 +4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8717 .loc 1 4058 8 is_stmt 0 view .LVU3056 + 8718 0016 01B1 cbz r1, .L543 +4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8719 .loc 1 4058 25 discriminator 1 view .LVU3057 + 8720 0018 22B9 cbnz r2, .L544 + 8721 .L543: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8722 .loc 1 4060 7 is_stmt 1 view .LVU3058 +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8723 .loc 1 4060 23 is_stmt 0 view .LVU3059 + 8724 001a 4FF40073 mov r3, #512 + 8725 .LVL587: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8726 .loc 1 4060 23 view .LVU3060 + 8727 001e 6364 str r3, [r4, #68] +4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8728 .loc 1 4061 7 is_stmt 1 view .LVU3061 +4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8729 .loc 1 4061 15 is_stmt 0 view .LVU3062 + 8730 0020 0120 movs r0, #1 + 8731 0022 51E0 b .L542 + 8732 .LVL588: + 8733 .L544: +4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8734 .loc 1 4065 5 is_stmt 1 view .LVU3063 + 8735 0024 48F20201 movw r1, #32770 + 8736 .LVL589: +4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8737 .loc 1 4065 5 is_stmt 0 view .LVU3064 + 8738 0028 2046 mov r0, r4 + 8739 002a FFF7FEFF bl I2C_Disable_IRQ + 8740 .LVL590: +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8741 .loc 1 4068 5 is_stmt 1 view .LVU3065 +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8742 .loc 1 4068 5 view .LVU3066 + 8743 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 8744 0032 012B cmp r3, #1 + 8745 0034 49D0 beq .L548 +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8746 .loc 1 4068 5 discriminator 2 view .LVU3067 + 8747 0036 0123 movs r3, #1 + 8748 0038 84F84030 strb r3, [r4, #64] +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8749 .loc 1 4068 5 discriminator 2 view .LVU3068 +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8750 .loc 1 4072 5 discriminator 2 view .LVU3069 +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8751 .loc 1 4072 13 is_stmt 0 discriminator 2 view .LVU3070 + 8752 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 8753 0040 DBB2 uxtb r3, r3 +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8754 .loc 1 4072 8 discriminator 2 view .LVU3071 + ARM GAS /tmp/ccbUHtu7.s page 326 + + + 8755 0042 292B cmp r3, #41 + 8756 0044 24D0 beq .L550 + 8757 .L545: +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8758 .loc 1 4098 5 is_stmt 1 view .LVU3072 +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8759 .loc 1 4098 21 is_stmt 0 view .LVU3073 + 8760 0046 2A23 movs r3, #42 + 8761 0048 84F84130 strb r3, [r4, #65] +4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8762 .loc 1 4099 5 is_stmt 1 view .LVU3074 +4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8763 .loc 1 4099 21 is_stmt 0 view .LVU3075 + 8764 004c 2023 movs r3, #32 + 8765 004e 84F84230 strb r3, [r4, #66] +4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8766 .loc 1 4100 5 is_stmt 1 view .LVU3076 +4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8767 .loc 1 4100 21 is_stmt 0 view .LVU3077 + 8768 0052 0023 movs r3, #0 + 8769 0054 6364 str r3, [r4, #68] +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8770 .loc 1 4103 5 is_stmt 1 view .LVU3078 +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8771 .loc 1 4103 9 is_stmt 0 view .LVU3079 + 8772 0056 2268 ldr r2, [r4] +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8773 .loc 1 4103 19 view .LVU3080 + 8774 0058 5368 ldr r3, [r2, #4] +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8775 .loc 1 4103 25 view .LVU3081 + 8776 005a 23F40043 bic r3, r3, #32768 + 8777 005e 5360 str r3, [r2, #4] +4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 8778 .loc 1 4106 5 is_stmt 1 view .LVU3082 +4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 8779 .loc 1 4106 23 is_stmt 0 view .LVU3083 + 8780 0060 6762 str r7, [r4, #36] +4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 8781 .loc 1 4107 5 is_stmt 1 view .LVU3084 +4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 8782 .loc 1 4107 23 is_stmt 0 view .LVU3085 + 8783 0062 6685 strh r6, [r4, #42] @ movhi +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8784 .loc 1 4108 5 is_stmt 1 view .LVU3086 +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8785 .loc 1 4108 29 is_stmt 0 view .LVU3087 + 8786 0064 638D ldrh r3, [r4, #42] +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 8787 .loc 1 4108 23 view .LVU3088 + 8788 0066 2385 strh r3, [r4, #40] @ movhi +4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 8789 .loc 1 4109 5 is_stmt 1 view .LVU3089 +4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 8790 .loc 1 4109 23 is_stmt 0 view .LVU3090 + 8791 0068 E562 str r5, [r4, #44] +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 327 + + + 8792 .loc 1 4110 5 is_stmt 1 view .LVU3091 +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8793 .loc 1 4110 23 is_stmt 0 view .LVU3092 + 8794 006a 194B ldr r3, .L551 + 8795 006c 6363 str r3, [r4, #52] +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8796 .loc 1 4112 5 is_stmt 1 view .LVU3093 +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8797 .loc 1 4112 9 is_stmt 0 view .LVU3094 + 8798 006e 2368 ldr r3, [r4] + 8799 0070 9A69 ldr r2, [r3, #24] +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8800 .loc 1 4112 8 view .LVU3095 + 8801 0072 12F4803F tst r2, #65536 + 8802 0076 01D1 bne .L546 +4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8803 .loc 1 4116 7 is_stmt 1 view .LVU3096 + 8804 0078 0822 movs r2, #8 + 8805 007a DA61 str r2, [r3, #28] + 8806 .L546: +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8807 .loc 1 4120 5 view .LVU3097 +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8808 .loc 1 4120 5 view .LVU3098 + 8809 007c 0025 movs r5, #0 + 8810 .LVL591: +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8811 .loc 1 4120 5 is_stmt 0 view .LVU3099 + 8812 007e 84F84050 strb r5, [r4, #64] +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8813 .loc 1 4120 5 is_stmt 1 view .LVU3100 +4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8814 .loc 1 4126 5 view .LVU3101 + 8815 0082 48F20201 movw r1, #32770 + 8816 0086 2046 mov r0, r4 + 8817 0088 FFF7FEFF bl I2C_Enable_IRQ + 8818 .LVL592: +4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8819 .loc 1 4128 5 view .LVU3102 +4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8820 .loc 1 4128 12 is_stmt 0 view .LVU3103 + 8821 008c 2846 mov r0, r5 + 8822 008e 1BE0 b .L542 + 8823 .LVL593: + 8824 .L550: +4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8825 .loc 1 4075 7 is_stmt 1 view .LVU3104 + 8826 0090 0121 movs r1, #1 + 8827 0092 2046 mov r0, r4 + 8828 0094 FFF7FEFF bl I2C_Disable_IRQ + 8829 .LVL594: +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8830 .loc 1 4077 7 view .LVU3105 +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8831 .loc 1 4077 16 is_stmt 0 view .LVU3106 + 8832 0098 2368 ldr r3, [r4] +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 328 + + + 8833 .loc 1 4077 26 view .LVU3107 + 8834 009a 1A68 ldr r2, [r3] +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8835 .loc 1 4077 10 view .LVU3108 + 8836 009c 12F4804F tst r2, #16384 + 8837 00a0 D1D0 beq .L545 +4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8838 .loc 1 4079 9 is_stmt 1 view .LVU3109 +4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8839 .loc 1 4079 23 is_stmt 0 view .LVU3110 + 8840 00a2 1A68 ldr r2, [r3] +4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8841 .loc 1 4079 29 view .LVU3111 + 8842 00a4 22F48042 bic r2, r2, #16384 + 8843 00a8 1A60 str r2, [r3] +4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8844 .loc 1 4082 9 is_stmt 1 view .LVU3112 +4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8845 .loc 1 4082 17 is_stmt 0 view .LVU3113 + 8846 00aa A36B ldr r3, [r4, #56] +4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8847 .loc 1 4082 12 view .LVU3114 + 8848 00ac 002B cmp r3, #0 + 8849 00ae CAD0 beq .L545 +4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8850 .loc 1 4086 11 is_stmt 1 view .LVU3115 +4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8851 .loc 1 4086 43 is_stmt 0 view .LVU3116 + 8852 00b0 084A ldr r2, .L551+4 + 8853 00b2 9A63 str r2, [r3, #56] +4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8854 .loc 1 4089 11 is_stmt 1 view .LVU3117 +4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8855 .loc 1 4089 15 is_stmt 0 view .LVU3118 + 8856 00b4 A06B ldr r0, [r4, #56] + 8857 00b6 FFF7FEFF bl HAL_DMA_Abort_IT + 8858 .LVL595: +4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8859 .loc 1 4089 14 view .LVU3119 + 8860 00ba 0028 cmp r0, #0 + 8861 00bc C3D0 beq .L545 +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8862 .loc 1 4092 13 is_stmt 1 view .LVU3120 +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8863 .loc 1 4092 17 is_stmt 0 view .LVU3121 + 8864 00be A06B ldr r0, [r4, #56] +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8865 .loc 1 4092 25 view .LVU3122 + 8866 00c0 836B ldr r3, [r0, #56] +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8867 .loc 1 4092 13 view .LVU3123 + 8868 00c2 9847 blx r3 + 8869 .LVL596: + 8870 00c4 BFE7 b .L545 + 8871 .LVL597: + 8872 .L547: +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 329 + + + 8873 .loc 1 4132 12 view .LVU3124 + 8874 00c6 0120 movs r0, #1 + 8875 .LVL598: + 8876 .L542: +4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8877 .loc 1 4134 1 view .LVU3125 + 8878 00c8 F8BD pop {r3, r4, r5, r6, r7, pc} + 8879 .LVL599: + 8880 .L548: +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8881 .loc 1 4068 5 view .LVU3126 + 8882 00ca 0220 movs r0, #2 + 8883 00cc FCE7 b .L542 + 8884 .L552: + 8885 00ce 00BF .align 2 + 8886 .L551: + 8887 00d0 00000000 .word I2C_Slave_ISR_IT + 8888 00d4 00000000 .word I2C_DMAAbort + 8889 .cfi_endproc + 8890 .LFE358: + 8892 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits + 8893 .align 1 + 8894 .global HAL_I2C_Slave_Seq_Receive_DMA + 8895 .syntax unified + 8896 .thumb + 8897 .thumb_func + 8899 HAL_I2C_Slave_Seq_Receive_DMA: + 8900 .LVL600: + 8901 .LFB359: +4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 8902 .loc 1 4148 1 is_stmt 1 view -0 + 8903 .cfi_startproc + 8904 @ args = 0, pretend = 0, frame = 0 + 8905 @ frame_needed = 0, uses_anonymous_args = 0 +4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; + 8906 .loc 1 4148 1 is_stmt 0 view .LVU3128 + 8907 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 8908 .LCFI102: + 8909 .cfi_def_cfa_offset 24 + 8910 .cfi_offset 3, -24 + 8911 .cfi_offset 4, -20 + 8912 .cfi_offset 5, -16 + 8913 .cfi_offset 6, -12 + 8914 .cfi_offset 7, -8 + 8915 .cfi_offset 14, -4 + 8916 0002 0446 mov r4, r0 +4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8917 .loc 1 4149 3 is_stmt 1 view .LVU3129 +4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8918 .loc 1 4152 3 view .LVU3130 +4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8919 .loc 1 4154 3 view .LVU3131 +4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8920 .loc 1 4154 22 is_stmt 0 view .LVU3132 + 8921 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 8922 .LVL601: +4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 330 + + + 8923 .loc 1 4154 6 view .LVU3133 + 8924 0008 00F02800 and r0, r0, #40 + 8925 000c 2828 cmp r0, #40 + 8926 000e 40F0B980 bne .L564 + 8927 0012 0F46 mov r7, r1 + 8928 0014 1646 mov r6, r2 + 8929 0016 1D46 mov r5, r3 +4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8930 .loc 1 4156 5 is_stmt 1 view .LVU3134 +4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8931 .loc 1 4156 8 is_stmt 0 view .LVU3135 + 8932 0018 01B1 cbz r1, .L555 +4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8933 .loc 1 4156 25 discriminator 1 view .LVU3136 + 8934 001a 22B9 cbnz r2, .L556 + 8935 .L555: +4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8936 .loc 1 4158 7 is_stmt 1 view .LVU3137 +4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8937 .loc 1 4158 23 is_stmt 0 view .LVU3138 + 8938 001c 4FF40073 mov r3, #512 + 8939 .LVL602: +4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; + 8940 .loc 1 4158 23 view .LVU3139 + 8941 0020 6364 str r3, [r4, #68] +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8942 .loc 1 4159 7 is_stmt 1 view .LVU3140 +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8943 .loc 1 4159 15 is_stmt 0 view .LVU3141 + 8944 0022 0125 movs r5, #1 + 8945 .LVL603: +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 8946 .loc 1 4159 15 view .LVU3142 + 8947 0024 AFE0 b .L554 + 8948 .LVL604: + 8949 .L556: +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8950 .loc 1 4163 5 is_stmt 1 view .LVU3143 + 8951 0026 48F20201 movw r1, #32770 + 8952 .LVL605: +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8953 .loc 1 4163 5 is_stmt 0 view .LVU3144 + 8954 002a 2046 mov r0, r4 + 8955 002c FFF7FEFF bl I2C_Disable_IRQ + 8956 .LVL606: +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8957 .loc 1 4166 5 is_stmt 1 view .LVU3145 +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8958 .loc 1 4166 5 view .LVU3146 + 8959 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 + 8960 0034 012B cmp r3, #1 + 8961 0036 00F0A880 beq .L565 +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8962 .loc 1 4166 5 discriminator 2 view .LVU3147 + 8963 003a 0123 movs r3, #1 + 8964 003c 84F84030 strb r3, [r4, #64] +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 331 + + + 8965 .loc 1 4166 5 discriminator 2 view .LVU3148 +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8966 .loc 1 4170 5 discriminator 2 view .LVU3149 +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8967 .loc 1 4170 13 is_stmt 0 discriminator 2 view .LVU3150 + 8968 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 8969 0044 DBB2 uxtb r3, r3 +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8970 .loc 1 4170 8 discriminator 2 view .LVU3151 + 8971 0046 292B cmp r3, #41 + 8972 0048 3DD0 beq .L568 +4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8973 .loc 1 4195 10 is_stmt 1 view .LVU3152 +4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8974 .loc 1 4195 18 is_stmt 0 view .LVU3153 + 8975 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 8976 004e DBB2 uxtb r3, r3 +4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 8977 .loc 1 4195 13 view .LVU3154 + 8978 0050 2A2B cmp r3, #42 + 8979 0052 54D0 beq .L569 + 8980 .L558: +4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8981 .loc 1 4220 5 is_stmt 1 view .LVU3155 +4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8982 .loc 1 4222 5 view .LVU3156 +4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; + 8983 .loc 1 4222 21 is_stmt 0 view .LVU3157 + 8984 0054 2A23 movs r3, #42 + 8985 0056 84F84130 strb r3, [r4, #65] +4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8986 .loc 1 4223 5 is_stmt 1 view .LVU3158 +4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + 8987 .loc 1 4223 21 is_stmt 0 view .LVU3159 + 8988 005a 2023 movs r3, #32 + 8989 005c 84F84230 strb r3, [r4, #66] +4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8990 .loc 1 4224 5 is_stmt 1 view .LVU3160 +4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8991 .loc 1 4224 21 is_stmt 0 view .LVU3161 + 8992 0060 0023 movs r3, #0 + 8993 0062 6364 str r3, [r4, #68] +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8994 .loc 1 4227 5 is_stmt 1 view .LVU3162 +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8995 .loc 1 4227 9 is_stmt 0 view .LVU3163 + 8996 0064 2268 ldr r2, [r4] +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8997 .loc 1 4227 19 view .LVU3164 + 8998 0066 5368 ldr r3, [r2, #4] +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 8999 .loc 1 4227 25 view .LVU3165 + 9000 0068 23F40043 bic r3, r3, #32768 + 9001 006c 5360 str r3, [r2, #4] +4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + 9002 .loc 1 4230 5 is_stmt 1 view .LVU3166 +4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; + ARM GAS /tmp/ccbUHtu7.s page 332 + + + 9003 .loc 1 4230 23 is_stmt 0 view .LVU3167 + 9004 006e 6762 str r7, [r4, #36] +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 9005 .loc 1 4231 5 is_stmt 1 view .LVU3168 +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; + 9006 .loc 1 4231 23 is_stmt 0 view .LVU3169 + 9007 0070 6685 strh r6, [r4, #42] @ movhi +4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 9008 .loc 1 4232 5 is_stmt 1 view .LVU3170 +4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 9009 .loc 1 4232 29 is_stmt 0 view .LVU3171 + 9010 0072 638D ldrh r3, [r4, #42] +4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; + 9011 .loc 1 4232 23 view .LVU3172 + 9012 0074 2385 strh r3, [r4, #40] @ movhi +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 9013 .loc 1 4233 5 is_stmt 1 view .LVU3173 +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; + 9014 .loc 1 4233 23 is_stmt 0 view .LVU3174 + 9015 0076 E562 str r5, [r4, #44] +4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9016 .loc 1 4234 5 is_stmt 1 view .LVU3175 +4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9017 .loc 1 4234 23 is_stmt 0 view .LVU3176 + 9018 0078 454B ldr r3, .L570 + 9019 007a 6363 str r3, [r4, #52] +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9020 .loc 1 4236 5 is_stmt 1 view .LVU3177 +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9021 .loc 1 4236 13 is_stmt 0 view .LVU3178 + 9022 007c E36B ldr r3, [r4, #60] +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9023 .loc 1 4236 8 view .LVU3179 + 9024 007e 002B cmp r3, #0 + 9025 0080 54D0 beq .L559 +4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9026 .loc 1 4239 7 is_stmt 1 view .LVU3180 +4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9027 .loc 1 4239 38 is_stmt 0 view .LVU3181 + 9028 0082 444A ldr r2, .L570+4 + 9029 0084 DA62 str r2, [r3, #44] +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9030 .loc 1 4242 7 is_stmt 1 view .LVU3182 +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9031 .loc 1 4242 11 is_stmt 0 view .LVU3183 + 9032 0086 E36B ldr r3, [r4, #60] +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9033 .loc 1 4242 39 view .LVU3184 + 9034 0088 434A ldr r2, .L570+8 + 9035 008a 5A63 str r2, [r3, #52] +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 9036 .loc 1 4245 7 is_stmt 1 view .LVU3185 +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 9037 .loc 1 4245 11 is_stmt 0 view .LVU3186 + 9038 008c E26B ldr r2, [r4, #60] +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; + 9039 .loc 1 4245 42 view .LVU3187 + ARM GAS /tmp/ccbUHtu7.s page 333 + + + 9040 008e 0023 movs r3, #0 + 9041 0090 1363 str r3, [r2, #48] +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9042 .loc 1 4246 7 is_stmt 1 view .LVU3188 +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9043 .loc 1 4246 11 is_stmt 0 view .LVU3189 + 9044 0092 E26B ldr r2, [r4, #60] +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9045 .loc 1 4246 39 view .LVU3190 + 9046 0094 9363 str r3, [r2, #56] +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); + 9047 .loc 1 4249 7 is_stmt 1 view .LVU3191 +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); + 9048 .loc 1 4249 69 is_stmt 0 view .LVU3192 + 9049 0096 2168 ldr r1, [r4] +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); + 9050 .loc 1 4249 23 view .LVU3193 + 9051 0098 238D ldrh r3, [r4, #40] + 9052 009a 3A46 mov r2, r7 + 9053 009c 2431 adds r1, r1, #36 + 9054 009e E06B ldr r0, [r4, #60] + 9055 00a0 FFF7FEFF bl HAL_DMA_Start_IT + 9056 .LVL607: +4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9057 .loc 1 4267 5 is_stmt 1 view .LVU3194 +4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9058 .loc 1 4267 8 is_stmt 0 view .LVU3195 + 9059 00a4 0546 mov r5, r0 + 9060 .LVL608: +4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9061 .loc 1 4267 8 view .LVU3196 + 9062 00a6 0028 cmp r0, #0 + 9063 00a8 4ED0 beq .L560 +4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 9064 .loc 1 4278 7 is_stmt 1 view .LVU3197 +4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 9065 .loc 1 4278 23 is_stmt 0 view .LVU3198 + 9066 00aa 2823 movs r3, #40 + 9067 00ac 84F84130 strb r3, [r4, #65] +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9068 .loc 1 4279 7 is_stmt 1 view .LVU3199 +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9069 .loc 1 4279 23 is_stmt 0 view .LVU3200 + 9070 00b0 0022 movs r2, #0 + 9071 00b2 84F84220 strb r2, [r4, #66] +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9072 .loc 1 4282 7 is_stmt 1 view .LVU3201 +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9073 .loc 1 4282 11 is_stmt 0 view .LVU3202 + 9074 00b6 636C ldr r3, [r4, #68] +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9075 .loc 1 4282 23 view .LVU3203 + 9076 00b8 43F01003 orr r3, r3, #16 + 9077 00bc 6364 str r3, [r4, #68] +4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9078 .loc 1 4285 7 is_stmt 1 view .LVU3204 +4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 334 + + + 9079 .loc 1 4285 7 view .LVU3205 + 9080 00be 84F84020 strb r2, [r4, #64] +4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9081 .loc 1 4285 7 view .LVU3206 +4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9082 .loc 1 4287 7 view .LVU3207 +4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9083 .loc 1 4287 14 is_stmt 0 view .LVU3208 + 9084 00c2 0125 movs r5, #1 + 9085 00c4 5FE0 b .L554 + 9086 .LVL609: + 9087 .L568: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9088 .loc 1 4173 7 is_stmt 1 view .LVU3209 + 9089 00c6 0121 movs r1, #1 + 9090 00c8 2046 mov r0, r4 + 9091 00ca FFF7FEFF bl I2C_Disable_IRQ + 9092 .LVL610: +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9093 .loc 1 4175 7 view .LVU3210 +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9094 .loc 1 4175 16 is_stmt 0 view .LVU3211 + 9095 00ce 2368 ldr r3, [r4] +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9096 .loc 1 4175 26 view .LVU3212 + 9097 00d0 1A68 ldr r2, [r3] +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9098 .loc 1 4175 10 view .LVU3213 + 9099 00d2 12F4804F tst r2, #16384 + 9100 00d6 BDD0 beq .L558 +4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9101 .loc 1 4178 9 is_stmt 1 view .LVU3214 +4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9102 .loc 1 4178 17 is_stmt 0 view .LVU3215 + 9103 00d8 A26B ldr r2, [r4, #56] +4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9104 .loc 1 4178 12 view .LVU3216 + 9105 00da 002A cmp r2, #0 + 9106 00dc BAD0 beq .L558 +4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9107 .loc 1 4180 11 is_stmt 1 view .LVU3217 +4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9108 .loc 1 4180 25 is_stmt 0 view .LVU3218 + 9109 00de 1A68 ldr r2, [r3] +4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9110 .loc 1 4180 31 view .LVU3219 + 9111 00e0 22F48042 bic r2, r2, #16384 + 9112 00e4 1A60 str r2, [r3] +4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9113 .loc 1 4184 11 is_stmt 1 view .LVU3220 +4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9114 .loc 1 4184 15 is_stmt 0 view .LVU3221 + 9115 00e6 A36B ldr r3, [r4, #56] +4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9116 .loc 1 4184 43 view .LVU3222 + 9117 00e8 2C4A ldr r2, .L570+12 + 9118 00ea 9A63 str r2, [r3, #56] + ARM GAS /tmp/ccbUHtu7.s page 335 + + +4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9119 .loc 1 4187 11 is_stmt 1 view .LVU3223 +4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9120 .loc 1 4187 15 is_stmt 0 view .LVU3224 + 9121 00ec A06B ldr r0, [r4, #56] + 9122 00ee FFF7FEFF bl HAL_DMA_Abort_IT + 9123 .LVL611: +4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9124 .loc 1 4187 14 view .LVU3225 + 9125 00f2 0028 cmp r0, #0 + 9126 00f4 AED0 beq .L558 +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9127 .loc 1 4190 13 is_stmt 1 view .LVU3226 +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9128 .loc 1 4190 17 is_stmt 0 view .LVU3227 + 9129 00f6 A06B ldr r0, [r4, #56] +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9130 .loc 1 4190 25 view .LVU3228 + 9131 00f8 836B ldr r3, [r0, #56] +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9132 .loc 1 4190 13 view .LVU3229 + 9133 00fa 9847 blx r3 + 9134 .LVL612: + 9135 00fc AAE7 b .L558 + 9136 .L569: +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9137 .loc 1 4197 7 is_stmt 1 view .LVU3230 +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9138 .loc 1 4197 16 is_stmt 0 view .LVU3231 + 9139 00fe 2368 ldr r3, [r4] +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9140 .loc 1 4197 26 view .LVU3232 + 9141 0100 1A68 ldr r2, [r3] +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9142 .loc 1 4197 10 view .LVU3233 + 9143 0102 12F4004F tst r2, #32768 + 9144 0106 A5D0 beq .L558 +4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9145 .loc 1 4199 9 is_stmt 1 view .LVU3234 +4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9146 .loc 1 4199 23 is_stmt 0 view .LVU3235 + 9147 0108 1A68 ldr r2, [r3] +4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9148 .loc 1 4199 29 view .LVU3236 + 9149 010a 22F40042 bic r2, r2, #32768 + 9150 010e 1A60 str r2, [r3] +4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9151 .loc 1 4202 9 is_stmt 1 view .LVU3237 +4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9152 .loc 1 4202 17 is_stmt 0 view .LVU3238 + 9153 0110 E36B ldr r3, [r4, #60] +4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9154 .loc 1 4202 12 view .LVU3239 + 9155 0112 002B cmp r3, #0 + 9156 0114 9ED0 beq .L558 +4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9157 .loc 1 4206 11 is_stmt 1 view .LVU3240 + ARM GAS /tmp/ccbUHtu7.s page 336 + + +4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9158 .loc 1 4206 43 is_stmt 0 view .LVU3241 + 9159 0116 214A ldr r2, .L570+12 + 9160 0118 9A63 str r2, [r3, #56] +4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9161 .loc 1 4209 11 is_stmt 1 view .LVU3242 +4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9162 .loc 1 4209 15 is_stmt 0 view .LVU3243 + 9163 011a E06B ldr r0, [r4, #60] + 9164 011c FFF7FEFF bl HAL_DMA_Abort_IT + 9165 .LVL613: +4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9166 .loc 1 4209 14 view .LVU3244 + 9167 0120 0028 cmp r0, #0 + 9168 0122 97D0 beq .L558 +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9169 .loc 1 4212 13 is_stmt 1 view .LVU3245 +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9170 .loc 1 4212 17 is_stmt 0 view .LVU3246 + 9171 0124 E06B ldr r0, [r4, #60] +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9172 .loc 1 4212 25 view .LVU3247 + 9173 0126 836B ldr r3, [r0, #56] +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9174 .loc 1 4212 13 view .LVU3248 + 9175 0128 9847 blx r3 + 9176 .LVL614: + 9177 012a 93E7 b .L558 + 9178 .L559: +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 9179 .loc 1 4255 7 is_stmt 1 view .LVU3249 +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 9180 .loc 1 4255 23 is_stmt 0 view .LVU3250 + 9181 012c 2823 movs r3, #40 + 9182 012e 84F84130 strb r3, [r4, #65] +4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9183 .loc 1 4256 7 is_stmt 1 view .LVU3251 +4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9184 .loc 1 4256 23 is_stmt 0 view .LVU3252 + 9185 0132 0022 movs r2, #0 + 9186 0134 84F84220 strb r2, [r4, #66] +4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9187 .loc 1 4259 7 is_stmt 1 view .LVU3253 +4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9188 .loc 1 4259 11 is_stmt 0 view .LVU3254 + 9189 0138 636C ldr r3, [r4, #68] +4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9190 .loc 1 4259 23 view .LVU3255 + 9191 013a 43F08003 orr r3, r3, #128 + 9192 013e 6364 str r3, [r4, #68] +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9193 .loc 1 4262 7 is_stmt 1 view .LVU3256 +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9194 .loc 1 4262 7 view .LVU3257 + 9195 0140 84F84020 strb r2, [r4, #64] +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9196 .loc 1 4262 7 view .LVU3258 + ARM GAS /tmp/ccbUHtu7.s page 337 + + +4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9197 .loc 1 4264 7 view .LVU3259 +4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9198 .loc 1 4264 14 is_stmt 0 view .LVU3260 + 9199 0144 0125 movs r5, #1 + 9200 .LVL615: +4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9201 .loc 1 4264 14 view .LVU3261 + 9202 0146 1EE0 b .L554 + 9203 .LVL616: + 9204 .L560: +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9205 .loc 1 4270 7 is_stmt 1 view .LVU3262 +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9206 .loc 1 4270 11 is_stmt 0 view .LVU3263 + 9207 0148 638D ldrh r3, [r4, #42] + 9208 014a 9BB2 uxth r3, r3 +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9209 .loc 1 4270 30 view .LVU3264 + 9210 014c 228D ldrh r2, [r4, #40] +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9211 .loc 1 4270 23 view .LVU3265 + 9212 014e 9B1A subs r3, r3, r2 + 9213 0150 9BB2 uxth r3, r3 + 9214 0152 6385 strh r3, [r4, #42] @ movhi +4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9215 .loc 1 4273 7 is_stmt 1 view .LVU3266 +4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9216 .loc 1 4273 22 is_stmt 0 view .LVU3267 + 9217 0154 0023 movs r3, #0 + 9218 0156 2385 strh r3, [r4, #40] @ movhi +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9219 .loc 1 4290 5 is_stmt 1 view .LVU3268 +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9220 .loc 1 4290 9 is_stmt 0 view .LVU3269 + 9221 0158 2368 ldr r3, [r4] + 9222 015a 9A69 ldr r2, [r3, #24] +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9223 .loc 1 4290 8 view .LVU3270 + 9224 015c 12F4803F tst r2, #65536 + 9225 0160 0DD0 beq .L562 + 9226 .L563: +4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9227 .loc 1 4298 5 is_stmt 1 view .LVU3271 +4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9228 .loc 1 4298 5 view .LVU3272 + 9229 0162 0023 movs r3, #0 + 9230 0164 84F84030 strb r3, [r4, #64] +4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9231 .loc 1 4298 5 view .LVU3273 +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9232 .loc 1 4301 5 view .LVU3274 +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9233 .loc 1 4301 9 is_stmt 0 view .LVU3275 + 9234 0168 2268 ldr r2, [r4] +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9235 .loc 1 4301 19 view .LVU3276 + ARM GAS /tmp/ccbUHtu7.s page 338 + + + 9236 016a 1368 ldr r3, [r2] +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9237 .loc 1 4301 25 view .LVU3277 + 9238 016c 43F40043 orr r3, r3, #32768 + 9239 0170 1360 str r3, [r2] +4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9240 .loc 1 4307 5 is_stmt 1 view .LVU3278 + 9241 0172 48F20201 movw r1, #32770 + 9242 0176 2046 mov r0, r4 + 9243 .LVL617: +4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9244 .loc 1 4307 5 is_stmt 0 view .LVU3279 + 9245 0178 FFF7FEFF bl I2C_Enable_IRQ + 9246 .LVL618: +4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9247 .loc 1 4309 5 is_stmt 1 view .LVU3280 +4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9248 .loc 1 4309 12 is_stmt 0 view .LVU3281 + 9249 017c 03E0 b .L554 + 9250 .LVL619: + 9251 .L562: +4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9252 .loc 1 4294 7 is_stmt 1 view .LVU3282 + 9253 017e 0822 movs r2, #8 + 9254 0180 DA61 str r2, [r3, #28] + 9255 0182 EEE7 b .L563 + 9256 .LVL620: + 9257 .L564: +4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9258 .loc 1 4313 12 is_stmt 0 view .LVU3283 + 9259 0184 0125 movs r5, #1 + 9260 .LVL621: + 9261 .L554: +4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9262 .loc 1 4315 1 view .LVU3284 + 9263 0186 2846 mov r0, r5 + 9264 0188 F8BD pop {r3, r4, r5, r6, r7, pc} + 9265 .LVL622: + 9266 .L565: +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9267 .loc 1 4166 5 view .LVU3285 + 9268 018a 0225 movs r5, #2 + 9269 .LVL623: +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9270 .loc 1 4166 5 view .LVU3286 + 9271 018c FBE7 b .L554 + 9272 .L571: + 9273 018e 00BF .align 2 + 9274 .L570: + 9275 0190 00000000 .word I2C_Slave_ISR_DMA + 9276 0194 00000000 .word I2C_DMASlaveReceiveCplt + 9277 0198 00000000 .word I2C_DMAError + 9278 019c 00000000 .word I2C_DMAAbort + 9279 .cfi_endproc + 9280 .LFE359: + 9282 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits + 9283 .align 1 + ARM GAS /tmp/ccbUHtu7.s page 339 + + + 9284 .global HAL_I2C_EnableListen_IT + 9285 .syntax unified + 9286 .thumb + 9287 .thumb_func + 9289 HAL_I2C_EnableListen_IT: + 9290 .LVL624: + 9291 .LFB360: +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 9292 .loc 1 4324 1 is_stmt 1 view -0 + 9293 .cfi_startproc + 9294 @ args = 0, pretend = 0, frame = 0 + 9295 @ frame_needed = 0, uses_anonymous_args = 0 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 9296 .loc 1 4324 1 is_stmt 0 view .LVU3288 + 9297 0000 08B5 push {r3, lr} + 9298 .LCFI103: + 9299 .cfi_def_cfa_offset 8 + 9300 .cfi_offset 3, -8 + 9301 .cfi_offset 14, -4 +4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9302 .loc 1 4325 3 is_stmt 1 view .LVU3289 +4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9303 .loc 1 4325 11 is_stmt 0 view .LVU3290 + 9304 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 9305 0006 DBB2 uxtb r3, r3 +4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9306 .loc 1 4325 6 view .LVU3291 + 9307 0008 202B cmp r3, #32 + 9308 000a 01D0 beq .L576 +4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9309 .loc 1 4337 12 view .LVU3292 + 9310 000c 0220 movs r0, #2 + 9311 .LVL625: + 9312 .L573: +4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9313 .loc 1 4339 1 view .LVU3293 + 9314 000e 08BD pop {r3, pc} + 9315 .LVL626: + 9316 .L576: +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 9317 .loc 1 4327 5 is_stmt 1 view .LVU3294 +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 9318 .loc 1 4327 17 is_stmt 0 view .LVU3295 + 9319 0010 2823 movs r3, #40 + 9320 0012 80F84130 strb r3, [r0, #65] +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9321 .loc 1 4328 5 is_stmt 1 view .LVU3296 +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9322 .loc 1 4328 19 is_stmt 0 view .LVU3297 + 9323 0016 044B ldr r3, .L577 + 9324 0018 4363 str r3, [r0, #52] +4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9325 .loc 1 4331 5 is_stmt 1 view .LVU3298 + 9326 001a 4FF40041 mov r1, #32768 + 9327 001e FFF7FEFF bl I2C_Enable_IRQ + 9328 .LVL627: +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 340 + + + 9329 .loc 1 4333 5 view .LVU3299 +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9330 .loc 1 4333 12 is_stmt 0 view .LVU3300 + 9331 0022 0020 movs r0, #0 + 9332 0024 F3E7 b .L573 + 9333 .L578: + 9334 0026 00BF .align 2 + 9335 .L577: + 9336 0028 00000000 .word I2C_Slave_ISR_IT + 9337 .cfi_endproc + 9338 .LFE360: + 9340 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits + 9341 .align 1 + 9342 .global HAL_I2C_DisableListen_IT + 9343 .syntax unified + 9344 .thumb + 9345 .thumb_func + 9347 HAL_I2C_DisableListen_IT: + 9348 .LVL628: + 9349 .LFB361: +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ + 9350 .loc 1 4348 1 is_stmt 1 view -0 + 9351 .cfi_startproc + 9352 @ args = 0, pretend = 0, frame = 0 + 9353 @ frame_needed = 0, uses_anonymous_args = 0 +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9354 .loc 1 4350 3 view .LVU3302 +4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9355 .loc 1 4353 3 view .LVU3303 +4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9356 .loc 1 4353 11 is_stmt 0 view .LVU3304 + 9357 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 9358 0004 DBB2 uxtb r3, r3 +4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9359 .loc 1 4353 6 view .LVU3305 + 9360 0006 282B cmp r3, #40 + 9361 0008 01D0 beq .L586 +4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9362 .loc 1 4368 12 view .LVU3306 + 9363 000a 0220 movs r0, #2 + 9364 .LVL629: +4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9365 .loc 1 4370 1 view .LVU3307 + 9366 000c 7047 bx lr + 9367 .LVL630: + 9368 .L586: +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ + 9369 .loc 1 4348 1 view .LVU3308 + 9370 000e 10B5 push {r4, lr} + 9371 .LCFI104: + 9372 .cfi_def_cfa_offset 8 + 9373 .cfi_offset 4, -8 + 9374 .cfi_offset 14, -4 +4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); + 9375 .loc 1 4355 5 is_stmt 1 view .LVU3309 +4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); + 9376 .loc 1 4355 26 is_stmt 0 view .LVU3310 + ARM GAS /tmp/ccbUHtu7.s page 341 + + + 9377 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 + 9378 .LVL631: +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 9379 .loc 1 4356 5 is_stmt 1 view .LVU3311 +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 9380 .loc 1 4356 48 is_stmt 0 view .LVU3312 + 9381 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 9382 .loc 1 4356 31 view .LVU3313 + 9383 0018 02F00302 and r2, r2, #3 + 9384 .LVL632: +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 9385 .loc 1 4356 31 view .LVU3314 + 9386 001c 1343 orrs r3, r3, r2 +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 9387 .loc 1 4356 25 view .LVU3315 + 9388 001e 0363 str r3, [r0, #48] +4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 9389 .loc 1 4357 5 is_stmt 1 view .LVU3316 +4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 9390 .loc 1 4357 17 is_stmt 0 view .LVU3317 + 9391 0020 2023 movs r3, #32 + 9392 0022 80F84130 strb r3, [r0, #65] +4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 9393 .loc 1 4358 5 is_stmt 1 view .LVU3318 +4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 9394 .loc 1 4358 16 is_stmt 0 view .LVU3319 + 9395 0026 0024 movs r4, #0 + 9396 0028 80F84240 strb r4, [r0, #66] +4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9397 .loc 1 4359 5 is_stmt 1 view .LVU3320 +4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9398 .loc 1 4359 19 is_stmt 0 view .LVU3321 + 9399 002c 4463 str r4, [r0, #52] +4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9400 .loc 1 4362 5 is_stmt 1 view .LVU3322 + 9401 002e 4FF40041 mov r1, #32768 + 9402 0032 FFF7FEFF bl I2C_Disable_IRQ + 9403 .LVL633: +4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9404 .loc 1 4364 5 view .LVU3323 +4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9405 .loc 1 4364 12 is_stmt 0 view .LVU3324 + 9406 0036 2046 mov r0, r4 +4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9407 .loc 1 4370 1 view .LVU3325 + 9408 0038 10BD pop {r4, pc} + 9409 .cfi_endproc + 9410 .LFE361: + 9412 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits + 9413 .align 1 + 9414 .global HAL_I2C_Master_Abort_IT + 9415 .syntax unified + 9416 .thumb + 9417 .thumb_func + 9419 HAL_I2C_Master_Abort_IT: + 9420 .LVL634: + ARM GAS /tmp/ccbUHtu7.s page 342 + + + 9421 .LFB362: +4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) + 9422 .loc 1 4381 1 is_stmt 1 view -0 + 9423 .cfi_startproc + 9424 @ args = 0, pretend = 0, frame = 0 + 9425 @ frame_needed = 0, uses_anonymous_args = 0 +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9426 .loc 1 4382 3 view .LVU3327 +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9427 .loc 1 4382 11 is_stmt 0 view .LVU3328 + 9428 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 + 9429 0004 DBB2 uxtb r3, r3 +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9430 .loc 1 4382 6 view .LVU3329 + 9431 0006 102B cmp r3, #16 + 9432 0008 36D1 bne .L591 +4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) + 9433 .loc 1 4381 1 view .LVU3330 + 9434 000a 30B5 push {r4, r5, lr} + 9435 .LCFI105: + 9436 .cfi_def_cfa_offset 12 + 9437 .cfi_offset 4, -12 + 9438 .cfi_offset 5, -8 + 9439 .cfi_offset 14, -4 + 9440 000c 83B0 sub sp, sp, #12 + 9441 .LCFI106: + 9442 .cfi_def_cfa_offset 24 + 9443 000e 0446 mov r4, r0 + 9444 0010 0D46 mov r5, r1 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9445 .loc 1 4385 5 is_stmt 1 view .LVU3331 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9446 .loc 1 4385 5 view .LVU3332 + 9447 0012 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 9448 0016 012B cmp r3, #1 + 9449 0018 30D0 beq .L592 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9450 .loc 1 4385 5 discriminator 2 view .LVU3333 + 9451 001a 0123 movs r3, #1 + 9452 001c 80F84030 strb r3, [r0, #64] +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9453 .loc 1 4385 5 discriminator 2 view .LVU3334 +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9454 .loc 1 4388 5 discriminator 2 view .LVU3335 +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9455 .loc 1 4388 13 is_stmt 0 discriminator 2 view .LVU3336 + 9456 0020 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 9457 0024 DBB2 uxtb r3, r3 +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9458 .loc 1 4388 8 discriminator 2 view .LVU3337 + 9459 0026 212B cmp r3, #33 + 9460 0028 1AD0 beq .L597 +4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9461 .loc 1 4393 10 is_stmt 1 view .LVU3338 +4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9462 .loc 1 4393 18 is_stmt 0 view .LVU3339 + 9463 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + ARM GAS /tmp/ccbUHtu7.s page 343 + + + 9464 002e DBB2 uxtb r3, r3 +4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9465 .loc 1 4393 13 view .LVU3340 + 9466 0030 222B cmp r3, #34 + 9467 0032 1BD0 beq .L598 + 9468 .LVL635: + 9469 .L590: +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9470 .loc 1 4401 5 is_stmt 1 view .LVU3341 +4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9471 .loc 1 4404 5 view .LVU3342 +4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9472 .loc 1 4404 17 is_stmt 0 view .LVU3343 + 9473 0034 6023 movs r3, #96 + 9474 0036 84F84130 strb r3, [r4, #65] +4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9475 .loc 1 4408 5 is_stmt 1 view .LVU3344 + 9476 003a 114B ldr r3, .L599 + 9477 003c 0093 str r3, [sp] + 9478 003e 4FF00073 mov r3, #33554432 + 9479 0042 0122 movs r2, #1 + 9480 0044 2946 mov r1, r5 + 9481 0046 2046 mov r0, r4 + 9482 0048 FFF7FEFF bl I2C_TransferConfig + 9483 .LVL636: +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9484 .loc 1 4411 5 view .LVU3345 +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9485 .loc 1 4411 5 view .LVU3346 + 9486 004c 0025 movs r5, #0 + 9487 004e 84F84050 strb r5, [r4, #64] +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9488 .loc 1 4411 5 view .LVU3347 +4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9489 .loc 1 4416 5 view .LVU3348 + 9490 0052 2021 movs r1, #32 + 9491 0054 2046 mov r0, r4 + 9492 0056 FFF7FEFF bl I2C_Enable_IRQ + 9493 .LVL637: +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9494 .loc 1 4418 5 view .LVU3349 +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9495 .loc 1 4418 12 is_stmt 0 view .LVU3350 + 9496 005a 2846 mov r0, r5 + 9497 .L588: +4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9498 .loc 1 4426 1 view .LVU3351 + 9499 005c 03B0 add sp, sp, #12 + 9500 .LCFI107: + 9501 .cfi_remember_state + 9502 .cfi_def_cfa_offset 12 + 9503 @ sp needed + 9504 005e 30BD pop {r4, r5, pc} + 9505 .LVL638: + 9506 .L597: + 9507 .LCFI108: + 9508 .cfi_restore_state + ARM GAS /tmp/ccbUHtu7.s page 344 + + +4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + 9509 .loc 1 4390 7 is_stmt 1 view .LVU3352 + 9510 0060 0121 movs r1, #1 + 9511 .LVL639: +4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + 9512 .loc 1 4390 7 is_stmt 0 view .LVU3353 + 9513 0062 FFF7FEFF bl I2C_Disable_IRQ + 9514 .LVL640: +4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9515 .loc 1 4391 7 is_stmt 1 view .LVU3354 +4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9516 .loc 1 4391 27 is_stmt 0 view .LVU3355 + 9517 0066 1123 movs r3, #17 + 9518 0068 2363 str r3, [r4, #48] + 9519 006a E3E7 b .L590 + 9520 .LVL641: + 9521 .L598: +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + 9522 .loc 1 4395 7 is_stmt 1 view .LVU3356 + 9523 006c 0221 movs r1, #2 + 9524 .LVL642: +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + 9525 .loc 1 4395 7 is_stmt 0 view .LVU3357 + 9526 006e FFF7FEFF bl I2C_Disable_IRQ + 9527 .LVL643: +4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9528 .loc 1 4396 7 is_stmt 1 view .LVU3358 +4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9529 .loc 1 4396 27 is_stmt 0 view .LVU3359 + 9530 0072 1223 movs r3, #18 + 9531 0074 2363 str r3, [r4, #48] + 9532 0076 DDE7 b .L590 + 9533 .LVL644: + 9534 .L591: + 9535 .LCFI109: + 9536 .cfi_def_cfa_offset 0 + 9537 .cfi_restore 4 + 9538 .cfi_restore 5 + 9539 .cfi_restore 14 +4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9540 .loc 1 4424 12 view .LVU3360 + 9541 0078 0120 movs r0, #1 + 9542 .LVL645: +4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9543 .loc 1 4426 1 view .LVU3361 + 9544 007a 7047 bx lr + 9545 .LVL646: + 9546 .L592: + 9547 .LCFI110: + 9548 .cfi_def_cfa_offset 24 + 9549 .cfi_offset 4, -12 + 9550 .cfi_offset 5, -8 + 9551 .cfi_offset 14, -4 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9552 .loc 1 4385 5 view .LVU3362 + 9553 007c 0220 movs r0, #2 + 9554 .LVL647: + ARM GAS /tmp/ccbUHtu7.s page 345 + + +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9555 .loc 1 4385 5 view .LVU3363 + 9556 007e EDE7 b .L588 + 9557 .L600: + 9558 .align 2 + 9559 .L599: + 9560 0080 00400080 .word -2147467264 + 9561 .cfi_endproc + 9562 .LFE362: + 9564 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits + 9565 .align 1 + 9566 .global HAL_I2C_EV_IRQHandler + 9567 .syntax unified + 9568 .thumb + 9569 .thumb_func + 9571 HAL_I2C_EV_IRQHandler: + 9572 .LVL648: + 9573 .LFB363: +4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ + 9574 .loc 1 4443 1 is_stmt 1 view -0 + 9575 .cfi_startproc + 9576 @ args = 0, pretend = 0, frame = 0 + 9577 @ frame_needed = 0, uses_anonymous_args = 0 +4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ + 9578 .loc 1 4443 1 is_stmt 0 view .LVU3365 + 9579 0000 08B5 push {r3, lr} + 9580 .LCFI111: + 9581 .cfi_def_cfa_offset 8 + 9582 .cfi_offset 3, -8 + 9583 .cfi_offset 14, -4 +4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); + 9584 .loc 1 4445 3 is_stmt 1 view .LVU3366 +4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); + 9585 .loc 1 4445 24 is_stmt 0 view .LVU3367 + 9586 0002 0368 ldr r3, [r0] +4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); + 9587 .loc 1 4445 12 view .LVU3368 + 9588 0004 9969 ldr r1, [r3, #24] + 9589 .LVL649: +4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9590 .loc 1 4446 3 is_stmt 1 view .LVU3369 +4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9591 .loc 1 4446 12 is_stmt 0 view .LVU3370 + 9592 0006 1A68 ldr r2, [r3] + 9593 .LVL650: +4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9594 .loc 1 4449 3 is_stmt 1 view .LVU3371 +4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9595 .loc 1 4449 11 is_stmt 0 view .LVU3372 + 9596 0008 436B ldr r3, [r0, #52] +4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9597 .loc 1 4449 6 view .LVU3373 + 9598 000a 03B1 cbz r3, .L601 +4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9599 .loc 1 4451 5 is_stmt 1 view .LVU3374 + 9600 000c 9847 blx r3 + 9601 .LVL651: + ARM GAS /tmp/ccbUHtu7.s page 346 + + + 9602 .L601: +4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9603 .loc 1 4453 1 is_stmt 0 view .LVU3375 + 9604 000e 08BD pop {r3, pc} + 9605 .cfi_endproc + 9606 .LFE363: + 9608 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits + 9609 .align 1 + 9610 .weak HAL_I2C_MasterTxCpltCallback + 9611 .syntax unified + 9612 .thumb + 9613 .thumb_func + 9615 HAL_I2C_MasterTxCpltCallback: + 9616 .LVL652: + 9617 .LFB365: +4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 9618 .loc 1 4514 1 is_stmt 1 view -0 + 9619 .cfi_startproc + 9620 @ args = 0, pretend = 0, frame = 0 + 9621 @ frame_needed = 0, uses_anonymous_args = 0 + 9622 @ link register save eliminated. +4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9623 .loc 1 4516 3 view .LVU3377 +4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9624 .loc 1 4521 1 is_stmt 0 view .LVU3378 + 9625 0000 7047 bx lr + 9626 .cfi_endproc + 9627 .LFE365: + 9629 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits + 9630 .align 1 + 9631 .weak HAL_I2C_MasterRxCpltCallback + 9632 .syntax unified + 9633 .thumb + 9634 .thumb_func + 9636 HAL_I2C_MasterRxCpltCallback: + 9637 .LVL653: + 9638 .LFB366: +4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 9639 .loc 1 4530 1 is_stmt 1 view -0 + 9640 .cfi_startproc + 9641 @ args = 0, pretend = 0, frame = 0 + 9642 @ frame_needed = 0, uses_anonymous_args = 0 + 9643 @ link register save eliminated. +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9644 .loc 1 4532 3 view .LVU3380 +4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9645 .loc 1 4537 1 is_stmt 0 view .LVU3381 + 9646 0000 7047 bx lr + 9647 .cfi_endproc + 9648 .LFE366: + 9650 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits + 9651 .align 1 + 9652 .syntax unified + 9653 .thumb + 9654 .thumb_func + 9656 I2C_ITMasterSeqCplt: + 9657 .LVL654: + ARM GAS /tmp/ccbUHtu7.s page 347 + + + 9658 .LFB385: +5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ + 9659 .loc 1 5515 1 is_stmt 1 view -0 + 9660 .cfi_startproc + 9661 @ args = 0, pretend = 0, frame = 0 + 9662 @ frame_needed = 0, uses_anonymous_args = 0 +5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ + 9663 .loc 1 5515 1 is_stmt 0 view .LVU3383 + 9664 0000 38B5 push {r3, r4, r5, lr} + 9665 .LCFI112: + 9666 .cfi_def_cfa_offset 16 + 9667 .cfi_offset 3, -16 + 9668 .cfi_offset 4, -12 + 9669 .cfi_offset 5, -8 + 9670 .cfi_offset 14, -4 + 9671 0002 0446 mov r4, r0 +5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9672 .loc 1 5517 3 is_stmt 1 view .LVU3384 +5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9673 .loc 1 5517 14 is_stmt 0 view .LVU3385 + 9674 0004 0023 movs r3, #0 + 9675 0006 80F84230 strb r3, [r0, #66] +5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9676 .loc 1 5521 3 is_stmt 1 view .LVU3386 +5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9677 .loc 1 5521 11 is_stmt 0 view .LVU3387 + 9678 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 9679 000e DBB2 uxtb r3, r3 +5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9680 .loc 1 5521 6 view .LVU3388 + 9681 0010 212B cmp r3, #33 + 9682 0012 0FD0 beq .L610 +5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + 9683 .loc 1 5543 5 is_stmt 1 view .LVU3389 +5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + 9684 .loc 1 5543 25 is_stmt 0 view .LVU3390 + 9685 0014 2023 movs r3, #32 + 9686 0016 80F84130 strb r3, [r0, #65] +5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 9687 .loc 1 5544 5 is_stmt 1 view .LVU3391 +5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 9688 .loc 1 5544 25 is_stmt 0 view .LVU3392 + 9689 001a 1223 movs r3, #18 + 9690 001c 0363 str r3, [r0, #48] +5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9691 .loc 1 5545 5 is_stmt 1 view .LVU3393 +5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9692 .loc 1 5545 25 is_stmt 0 view .LVU3394 + 9693 001e 0025 movs r5, #0 + 9694 0020 4563 str r5, [r0, #52] +5548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9695 .loc 1 5548 5 is_stmt 1 view .LVU3395 + 9696 0022 0221 movs r1, #2 + 9697 0024 FFF7FEFF bl I2C_Disable_IRQ + 9698 .LVL655: +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9699 .loc 1 5551 5 view .LVU3396 + ARM GAS /tmp/ccbUHtu7.s page 348 + + +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9700 .loc 1 5551 5 view .LVU3397 + 9701 0028 84F84050 strb r5, [r4, #64] +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9702 .loc 1 5551 5 view .LVU3398 +5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 9703 .loc 1 5557 5 view .LVU3399 + 9704 002c 2046 mov r0, r4 + 9705 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback + 9706 .LVL656: + 9707 .L606: +5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9708 .loc 1 5560 1 is_stmt 0 view .LVU3400 + 9709 0032 38BD pop {r3, r4, r5, pc} + 9710 .LVL657: + 9711 .L610: +5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + 9712 .loc 1 5523 5 is_stmt 1 view .LVU3401 +5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + 9713 .loc 1 5523 25 is_stmt 0 view .LVU3402 + 9714 0034 2023 movs r3, #32 + 9715 0036 80F84130 strb r3, [r0, #65] +5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 9716 .loc 1 5524 5 is_stmt 1 view .LVU3403 +5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 9717 .loc 1 5524 25 is_stmt 0 view .LVU3404 + 9718 003a 1123 movs r3, #17 + 9719 003c 0363 str r3, [r0, #48] +5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9720 .loc 1 5525 5 is_stmt 1 view .LVU3405 +5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9721 .loc 1 5525 25 is_stmt 0 view .LVU3406 + 9722 003e 0025 movs r5, #0 + 9723 0040 4563 str r5, [r0, #52] +5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9724 .loc 1 5528 5 is_stmt 1 view .LVU3407 + 9725 0042 0121 movs r1, #1 + 9726 0044 FFF7FEFF bl I2C_Disable_IRQ + 9727 .LVL658: +5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9728 .loc 1 5531 5 view .LVU3408 +5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9729 .loc 1 5531 5 view .LVU3409 + 9730 0048 84F84050 strb r5, [r4, #64] +5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9731 .loc 1 5531 5 view .LVU3410 +5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 9732 .loc 1 5537 5 view .LVU3411 + 9733 004c 2046 mov r0, r4 + 9734 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback + 9735 .LVL659: + 9736 0052 EEE7 b .L606 + 9737 .cfi_endproc + 9738 .LFE385: + 9740 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits + 9741 .align 1 + 9742 .weak HAL_I2C_SlaveTxCpltCallback + ARM GAS /tmp/ccbUHtu7.s page 349 + + + 9743 .syntax unified + 9744 .thumb + 9745 .thumb_func + 9747 HAL_I2C_SlaveTxCpltCallback: + 9748 .LVL660: + 9749 .LFB367: +4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 9750 .loc 1 4545 1 view -0 + 9751 .cfi_startproc + 9752 @ args = 0, pretend = 0, frame = 0 + 9753 @ frame_needed = 0, uses_anonymous_args = 0 + 9754 @ link register save eliminated. +4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9755 .loc 1 4547 3 view .LVU3413 +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9756 .loc 1 4552 1 is_stmt 0 view .LVU3414 + 9757 0000 7047 bx lr + 9758 .cfi_endproc + 9759 .LFE367: + 9761 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits + 9762 .align 1 + 9763 .weak HAL_I2C_SlaveRxCpltCallback + 9764 .syntax unified + 9765 .thumb + 9766 .thumb_func + 9768 HAL_I2C_SlaveRxCpltCallback: + 9769 .LVL661: + 9770 .LFB368: +4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 9771 .loc 1 4561 1 is_stmt 1 view -0 + 9772 .cfi_startproc + 9773 @ args = 0, pretend = 0, frame = 0 + 9774 @ frame_needed = 0, uses_anonymous_args = 0 + 9775 @ link register save eliminated. +4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9776 .loc 1 4563 3 view .LVU3416 +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9777 .loc 1 4568 1 is_stmt 0 view .LVU3417 + 9778 0000 7047 bx lr + 9779 .cfi_endproc + 9780 .LFE368: + 9782 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits + 9783 .align 1 + 9784 .syntax unified + 9785 .thumb + 9786 .thumb_func + 9788 I2C_ITSlaveSeqCplt: + 9789 .LVL662: + 9790 .LFB386: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); + 9791 .loc 1 5568 1 is_stmt 1 view -0 + 9792 .cfi_startproc + 9793 @ args = 0, pretend = 0, frame = 0 + 9794 @ frame_needed = 0, uses_anonymous_args = 0 +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); + 9795 .loc 1 5568 1 is_stmt 0 view .LVU3419 + 9796 0000 10B5 push {r4, lr} + ARM GAS /tmp/ccbUHtu7.s page 350 + + + 9797 .LCFI113: + 9798 .cfi_def_cfa_offset 8 + 9799 .cfi_offset 4, -8 + 9800 .cfi_offset 14, -4 + 9801 0002 0446 mov r4, r0 +5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9802 .loc 1 5569 3 is_stmt 1 view .LVU3420 +5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9803 .loc 1 5569 26 is_stmt 0 view .LVU3421 + 9804 0004 0368 ldr r3, [r0] +5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9805 .loc 1 5569 12 view .LVU3422 + 9806 0006 1A68 ldr r2, [r3] + 9807 .LVL663: +5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9808 .loc 1 5572 3 is_stmt 1 view .LVU3423 +5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9809 .loc 1 5572 14 is_stmt 0 view .LVU3424 + 9810 0008 0021 movs r1, #0 + 9811 000a 80F84210 strb r1, [r0, #66] +5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9812 .loc 1 5575 3 is_stmt 1 view .LVU3425 +5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9813 .loc 1 5575 6 is_stmt 0 view .LVU3426 + 9814 000e 12F4804F tst r2, #16384 + 9815 0012 0ED0 beq .L614 +5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9816 .loc 1 5578 5 is_stmt 1 view .LVU3427 +5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9817 .loc 1 5578 19 is_stmt 0 view .LVU3428 + 9818 0014 1A68 ldr r2, [r3] + 9819 .LVL664: +5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9820 .loc 1 5578 25 view .LVU3429 + 9821 0016 22F48042 bic r2, r2, #16384 + 9822 001a 1A60 str r2, [r3] + 9823 .L615: +5588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9824 .loc 1 5588 3 is_stmt 1 view .LVU3430 +5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9825 .loc 1 5590 3 view .LVU3431 +5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9826 .loc 1 5590 11 is_stmt 0 view .LVU3432 + 9827 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 9828 0020 DBB2 uxtb r3, r3 +5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9829 .loc 1 5590 6 view .LVU3433 + 9830 0022 292B cmp r3, #41 + 9831 0024 0DD0 beq .L619 +5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9832 .loc 1 5610 8 is_stmt 1 view .LVU3434 +5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9833 .loc 1 5610 16 is_stmt 0 view .LVU3435 + 9834 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 9835 002a DBB2 uxtb r3, r3 +5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9836 .loc 1 5610 11 view .LVU3436 + ARM GAS /tmp/ccbUHtu7.s page 351 + + + 9837 002c 2A2B cmp r3, #42 + 9838 002e 18D0 beq .L620 + 9839 .LVL665: + 9840 .L613: +5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9841 .loc 1 5633 1 view .LVU3437 + 9842 0030 10BD pop {r4, pc} + 9843 .LVL666: + 9844 .L614: +5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9845 .loc 1 5580 8 is_stmt 1 view .LVU3438 +5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9846 .loc 1 5580 11 is_stmt 0 view .LVU3439 + 9847 0032 12F4004F tst r2, #32768 + 9848 0036 F1D0 beq .L615 +5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9849 .loc 1 5583 5 is_stmt 1 view .LVU3440 +5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9850 .loc 1 5583 19 is_stmt 0 view .LVU3441 + 9851 0038 1A68 ldr r2, [r3] + 9852 .LVL667: +5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9853 .loc 1 5583 25 view .LVU3442 + 9854 003a 22F40042 bic r2, r2, #32768 + 9855 003e 1A60 str r2, [r3] + 9856 0040 ECE7 b .L615 + 9857 .L619: +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + 9858 .loc 1 5593 5 is_stmt 1 view .LVU3443 +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + 9859 .loc 1 5593 25 is_stmt 0 view .LVU3444 + 9860 0042 2823 movs r3, #40 + 9861 0044 84F84130 strb r3, [r4, #65] +5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9862 .loc 1 5594 5 is_stmt 1 view .LVU3445 +5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9863 .loc 1 5594 25 is_stmt 0 view .LVU3446 + 9864 0048 2123 movs r3, #33 + 9865 004a 2363 str r3, [r4, #48] +5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9866 .loc 1 5597 5 is_stmt 1 view .LVU3447 + 9867 004c 0121 movs r1, #1 + 9868 004e 2046 mov r0, r4 + 9869 .LVL668: +5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9870 .loc 1 5597 5 is_stmt 0 view .LVU3448 + 9871 0050 FFF7FEFF bl I2C_Disable_IRQ + 9872 .LVL669: +5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9873 .loc 1 5600 5 is_stmt 1 view .LVU3449 +5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9874 .loc 1 5600 5 view .LVU3450 + 9875 0054 0023 movs r3, #0 + 9876 0056 84F84030 strb r3, [r4, #64] +5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9877 .loc 1 5600 5 view .LVU3451 +5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + ARM GAS /tmp/ccbUHtu7.s page 352 + + + 9878 .loc 1 5606 5 view .LVU3452 + 9879 005a 2046 mov r0, r4 + 9880 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback + 9881 .LVL670: + 9882 0060 E6E7 b .L613 + 9883 .LVL671: + 9884 .L620: +5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + 9885 .loc 1 5613 5 view .LVU3453 +5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + 9886 .loc 1 5613 25 is_stmt 0 view .LVU3454 + 9887 0062 2823 movs r3, #40 + 9888 0064 84F84130 strb r3, [r4, #65] +5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9889 .loc 1 5614 5 is_stmt 1 view .LVU3455 +5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9890 .loc 1 5614 25 is_stmt 0 view .LVU3456 + 9891 0068 2223 movs r3, #34 + 9892 006a 2363 str r3, [r4, #48] +5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9893 .loc 1 5617 5 is_stmt 1 view .LVU3457 + 9894 006c 0221 movs r1, #2 + 9895 006e 2046 mov r0, r4 + 9896 .LVL672: +5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9897 .loc 1 5617 5 is_stmt 0 view .LVU3458 + 9898 0070 FFF7FEFF bl I2C_Disable_IRQ + 9899 .LVL673: +5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9900 .loc 1 5620 5 is_stmt 1 view .LVU3459 +5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9901 .loc 1 5620 5 view .LVU3460 + 9902 0074 0023 movs r3, #0 + 9903 0076 84F84030 strb r3, [r4, #64] +5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9904 .loc 1 5620 5 view .LVU3461 +5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 9905 .loc 1 5626 5 view .LVU3462 + 9906 007a 2046 mov r0, r4 + 9907 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback + 9908 .LVL674: +5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9909 .loc 1 5632 3 view .LVU3463 +5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9910 .loc 1 5633 1 is_stmt 0 view .LVU3464 + 9911 0080 D6E7 b .L613 + 9912 .cfi_endproc + 9913 .LFE386: + 9915 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits + 9916 .align 1 + 9917 .syntax unified + 9918 .thumb + 9919 .thumb_func + 9921 I2C_DMASlaveTransmitCplt: + 9922 .LVL675: + 9923 .LFB394: +6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + ARM GAS /tmp/ccbUHtu7.s page 353 + + + 9924 .loc 1 6216 1 is_stmt 1 view -0 + 9925 .cfi_startproc + 9926 @ args = 0, pretend = 0, frame = 0 + 9927 @ frame_needed = 0, uses_anonymous_args = 0 +6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 9928 .loc 1 6216 1 is_stmt 0 view .LVU3466 + 9929 0000 08B5 push {r3, lr} + 9930 .LCFI114: + 9931 .cfi_def_cfa_offset 8 + 9932 .cfi_offset 3, -8 + 9933 .cfi_offset 14, -4 +6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 9934 .loc 1 6218 3 is_stmt 1 view .LVU3467 +6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 9935 .loc 1 6218 22 is_stmt 0 view .LVU3468 + 9936 0002 806A ldr r0, [r0, #40] + 9937 .LVL676: +6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9938 .loc 1 6219 3 is_stmt 1 view .LVU3469 +6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9939 .loc 1 6219 12 is_stmt 0 view .LVU3470 + 9940 0004 C36A ldr r3, [r0, #44] + 9941 .LVL677: +6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9942 .loc 1 6221 3 is_stmt 1 view .LVU3471 +6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9943 .loc 1 6221 6 is_stmt 0 view .LVU3472 + 9944 0006 B3F1807F cmp r3, #16777216 + 9945 000a 00D0 beq .L622 +6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 9946 .loc 1 6221 38 discriminator 1 view .LVU3473 + 9947 000c 33B9 cbnz r3, .L621 + 9948 .L622: +6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9949 .loc 1 6224 5 is_stmt 1 view .LVU3474 +6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9950 .loc 1 6224 9 is_stmt 0 view .LVU3475 + 9951 000e 0268 ldr r2, [r0] +6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9952 .loc 1 6224 19 view .LVU3476 + 9953 0010 1368 ldr r3, [r2] + 9954 .LVL678: +6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9955 .loc 1 6224 25 view .LVU3477 + 9956 0012 23F48043 bic r3, r3, #16384 + 9957 0016 1360 str r3, [r2] +6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 9958 .loc 1 6228 5 is_stmt 1 view .LVU3478 + 9959 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt + 9960 .LVL679: + 9961 .L621: +6236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9962 .loc 1 6236 1 is_stmt 0 view .LVU3479 + 9963 001c 08BD pop {r3, pc} + 9964 .cfi_endproc + 9965 .LFE394: + 9967 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits + ARM GAS /tmp/ccbUHtu7.s page 354 + + + 9968 .align 1 + 9969 .syntax unified + 9970 .thumb + 9971 .thumb_func + 9973 I2C_DMASlaveReceiveCplt: + 9974 .LVL680: + 9975 .LFB396: +6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 9976 .loc 1 6294 1 is_stmt 1 view -0 + 9977 .cfi_startproc + 9978 @ args = 0, pretend = 0, frame = 0 + 9979 @ frame_needed = 0, uses_anonymous_args = 0 +6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 9980 .loc 1 6294 1 is_stmt 0 view .LVU3481 + 9981 0000 08B5 push {r3, lr} + 9982 .LCFI115: + 9983 .cfi_def_cfa_offset 8 + 9984 .cfi_offset 3, -8 + 9985 .cfi_offset 14, -4 +6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 9986 .loc 1 6296 3 is_stmt 1 view .LVU3482 +6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 9987 .loc 1 6296 22 is_stmt 0 view .LVU3483 + 9988 0002 806A ldr r0, [r0, #40] + 9989 .LVL681: +6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9990 .loc 1 6297 3 is_stmt 1 view .LVU3484 +6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 9991 .loc 1 6297 12 is_stmt 0 view .LVU3485 + 9992 0004 C26A ldr r2, [r0, #44] + 9993 .LVL682: +6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 9994 .loc 1 6299 3 is_stmt 1 view .LVU3486 +6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 9995 .loc 1 6299 8 is_stmt 0 view .LVU3487 + 9996 0006 C36B ldr r3, [r0, #60] + 9997 0008 1B68 ldr r3, [r3] + 9998 000a 5B68 ldr r3, [r3, #4] +6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 9999 .loc 1 6299 6 view .LVU3488 + 10000 000c 13B9 cbnz r3, .L625 +6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 10001 .loc 1 6299 53 discriminator 1 view .LVU3489 + 10002 000e 12F5803F cmn r2, #65536 + 10003 0012 00D1 bne .L628 + 10004 .LVL683: + 10005 .L625: +6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10006 .loc 1 6314 1 view .LVU3490 + 10007 0014 08BD pop {r3, pc} + 10008 .LVL684: + 10009 .L628: +6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10010 .loc 1 6303 5 is_stmt 1 view .LVU3491 +6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10011 .loc 1 6303 9 is_stmt 0 view .LVU3492 + 10012 0016 0268 ldr r2, [r0] + ARM GAS /tmp/ccbUHtu7.s page 355 + + + 10013 .LVL685: +6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10014 .loc 1 6303 19 view .LVU3493 + 10015 0018 1368 ldr r3, [r2] +6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10016 .loc 1 6303 25 view .LVU3494 + 10017 001a 23F40043 bic r3, r3, #32768 + 10018 001e 1360 str r3, [r2] +6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10019 .loc 1 6306 5 is_stmt 1 view .LVU3495 + 10020 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt + 10021 .LVL686: +6313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10022 .loc 1 6313 3 view .LVU3496 +6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10023 .loc 1 6314 1 is_stmt 0 view .LVU3497 + 10024 0024 F6E7 b .L625 + 10025 .cfi_endproc + 10026 .LFE396: + 10028 .section .text.HAL_I2C_AddrCallback,"ax",%progbits + 10029 .align 1 + 10030 .weak HAL_I2C_AddrCallback + 10031 .syntax unified + 10032 .thumb + 10033 .thumb_func + 10035 HAL_I2C_AddrCallback: + 10036 .LVL687: + 10037 .LFB369: +4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 10038 .loc 1 4579 1 is_stmt 1 view -0 + 10039 .cfi_startproc + 10040 @ args = 0, pretend = 0, frame = 0 + 10041 @ frame_needed = 0, uses_anonymous_args = 0 + 10042 @ link register save eliminated. +4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); + 10043 .loc 1 4581 3 view .LVU3499 +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); + 10044 .loc 1 4582 3 view .LVU3500 +4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10045 .loc 1 4583 3 view .LVU3501 +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10046 .loc 1 4588 1 is_stmt 0 view .LVU3502 + 10047 0000 7047 bx lr + 10048 .cfi_endproc + 10049 .LFE369: + 10051 .section .text.I2C_ITAddrCplt,"ax",%progbits + 10052 .align 1 + 10053 .syntax unified + 10054 .thumb + 10055 .thumb_func + 10057 I2C_ITAddrCplt: + 10058 .LVL688: + 10059 .LFB384: +5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; + 10060 .loc 1 5420 1 is_stmt 1 view -0 + 10061 .cfi_startproc + 10062 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/ccbUHtu7.s page 356 + + + 10063 @ frame_needed = 0, uses_anonymous_args = 0 +5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; + 10064 .loc 1 5420 1 is_stmt 0 view .LVU3504 + 10065 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 10066 .LCFI116: + 10067 .cfi_def_cfa_offset 24 + 10068 .cfi_offset 3, -24 + 10069 .cfi_offset 4, -20 + 10070 .cfi_offset 5, -16 + 10071 .cfi_offset 6, -12 + 10072 .cfi_offset 7, -8 + 10073 .cfi_offset 14, -4 + 10074 0002 0446 mov r4, r0 +5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; + 10075 .loc 1 5421 3 is_stmt 1 view .LVU3505 +5422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; + 10076 .loc 1 5422 3 view .LVU3506 +5423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; + 10077 .loc 1 5423 3 view .LVU3507 +5424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10078 .loc 1 5424 3 view .LVU3508 +5427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10079 .loc 1 5427 3 view .LVU3509 +5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10080 .loc 1 5430 3 view .LVU3510 +5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10081 .loc 1 5430 22 is_stmt 0 view .LVU3511 + 10082 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 +5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10083 .loc 1 5430 6 view .LVU3512 + 10084 0008 03F02803 and r3, r3, #40 + 10085 000c 282B cmp r3, #40 + 10086 000e 06D0 beq .L636 +5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10087 .loc 1 5502 5 is_stmt 1 view .LVU3513 + 10088 0010 0368 ldr r3, [r0] + 10089 0012 0822 movs r2, #8 + 10090 0014 DA61 str r2, [r3, #28] +5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10091 .loc 1 5505 5 view .LVU3514 +5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10092 .loc 1 5505 5 view .LVU3515 + 10093 0016 0023 movs r3, #0 + 10094 0018 80F84030 strb r3, [r0, #64] +5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10095 .loc 1 5505 5 view .LVU3516 + 10096 .LVL689: + 10097 .L630: +5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10098 .loc 1 5507 1 is_stmt 0 view .LVU3517 + 10099 001c F8BD pop {r3, r4, r5, r6, r7, pc} + 10100 .LVL690: + 10101 .L636: +5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); + 10102 .loc 1 5432 5 is_stmt 1 view .LVU3518 +5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); + 10103 .loc 1 5432 25 is_stmt 0 view .LVU3519 + ARM GAS /tmp/ccbUHtu7.s page 357 + + + 10104 001e 0368 ldr r3, [r0] + 10105 0020 9E69 ldr r6, [r3, #24] +5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); + 10106 .loc 1 5432 23 view .LVU3520 + 10107 0022 C6F30046 ubfx r6, r6, #16, #1 + 10108 .LVL691: +5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); + 10109 .loc 1 5433 5 is_stmt 1 view .LVU3521 +5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); + 10110 .loc 1 5433 25 is_stmt 0 view .LVU3522 + 10111 0026 9A69 ldr r2, [r3, #24] + 10112 0028 120C lsrs r2, r2, #16 +5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); + 10113 .loc 1 5433 23 view .LVU3523 + 10114 002a 02F0FE05 and r5, r2, #254 + 10115 .LVL692: +5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); + 10116 .loc 1 5434 5 is_stmt 1 view .LVU3524 +5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); + 10117 .loc 1 5434 25 is_stmt 0 view .LVU3525 + 10118 002e 9A68 ldr r2, [r3, #8] +5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); + 10119 .loc 1 5434 23 view .LVU3526 + 10120 0030 C2F30902 ubfx r2, r2, #0, #10 + 10121 .LVL693: +5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10122 .loc 1 5435 5 is_stmt 1 view .LVU3527 +5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10123 .loc 1 5435 25 is_stmt 0 view .LVU3528 + 10124 0034 DF68 ldr r7, [r3, #12] +5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10125 .loc 1 5435 23 view .LVU3529 + 10126 0036 07F0FE07 and r7, r7, #254 + 10127 .LVL694: +5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10128 .loc 1 5438 5 is_stmt 1 view .LVU3530 +5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10129 .loc 1 5438 19 is_stmt 0 view .LVU3531 + 10130 003a C168 ldr r1, [r0, #12] + 10131 .LVL695: +5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10132 .loc 1 5438 8 view .LVU3532 + 10133 003c 0229 cmp r1, #2 + 10134 003e 22D1 bne .L632 +5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10135 .loc 1 5440 7 is_stmt 1 view .LVU3533 +5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10136 .loc 1 5440 44 is_stmt 0 view .LVU3534 + 10137 0040 85EAD215 eor r5, r5, r2, lsr #7 + 10138 .LVL696: +5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10139 .loc 1 5440 10 view .LVU3535 + 10140 0044 15F0060F tst r5, #6 + 10141 0048 10D1 bne .L633 +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; + 10142 .loc 1 5442 9 is_stmt 1 view .LVU3536 + 10143 .LVL697: + ARM GAS /tmp/ccbUHtu7.s page 358 + + +5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) + 10144 .loc 1 5443 9 view .LVU3537 +5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) + 10145 .loc 1 5443 13 is_stmt 0 view .LVU3538 + 10146 004a 816C ldr r1, [r0, #72] +5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) + 10147 .loc 1 5443 29 view .LVU3539 + 10148 004c 0131 adds r1, r1, #1 + 10149 004e 8164 str r1, [r0, #72] +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10150 .loc 1 5444 9 is_stmt 1 view .LVU3540 +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10151 .loc 1 5444 17 is_stmt 0 view .LVU3541 + 10152 0050 816C ldr r1, [r0, #72] +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10153 .loc 1 5444 12 view .LVU3542 + 10154 0052 0229 cmp r1, #2 + 10155 0054 E2D1 bne .L630 +5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10156 .loc 1 5447 11 is_stmt 1 view .LVU3543 +5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10157 .loc 1 5447 32 is_stmt 0 view .LVU3544 + 10158 0056 0021 movs r1, #0 + 10159 0058 8164 str r1, [r0, #72] +5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10160 .loc 1 5450 11 is_stmt 1 view .LVU3545 + 10161 005a 0820 movs r0, #8 + 10162 .LVL698: +5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10163 .loc 1 5450 11 is_stmt 0 view .LVU3546 + 10164 005c D861 str r0, [r3, #28] +5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10165 .loc 1 5453 11 is_stmt 1 view .LVU3547 +5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10166 .loc 1 5453 11 view .LVU3548 + 10167 005e 84F84010 strb r1, [r4, #64] +5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10168 .loc 1 5453 11 view .LVU3549 +5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10169 .loc 1 5459 11 view .LVU3550 + 10170 0062 3146 mov r1, r6 + 10171 0064 2046 mov r0, r4 + 10172 0066 FFF7FEFF bl HAL_I2C_AddrCallback + 10173 .LVL699: +5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10174 .loc 1 5459 11 is_stmt 0 view .LVU3551 + 10175 006a D7E7 b .L630 + 10176 .LVL700: + 10177 .L633: +5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10178 .loc 1 5465 9 is_stmt 1 view .LVU3552 +5468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10179 .loc 1 5468 9 view .LVU3553 + 10180 006c 4FF40041 mov r1, #32768 + 10181 0070 FFF7FEFF bl I2C_Disable_IRQ + 10182 .LVL701: +5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 359 + + + 10183 .loc 1 5471 9 view .LVU3554 +5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10184 .loc 1 5471 9 view .LVU3555 + 10185 0074 0023 movs r3, #0 + 10186 0076 84F84030 strb r3, [r4, #64] +5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10187 .loc 1 5471 9 view .LVU3556 +5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10188 .loc 1 5477 9 view .LVU3557 + 10189 007a 3A46 mov r2, r7 + 10190 007c 3146 mov r1, r6 + 10191 007e 2046 mov r0, r4 + 10192 0080 FFF7FEFF bl HAL_I2C_AddrCallback + 10193 .LVL702: + 10194 0084 CAE7 b .L630 + 10195 .LVL703: + 10196 .L632: +5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10197 .loc 1 5485 7 view .LVU3558 + 10198 0086 4FF40041 mov r1, #32768 + 10199 008a FFF7FEFF bl I2C_Disable_IRQ + 10200 .LVL704: +5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10201 .loc 1 5488 7 view .LVU3559 +5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10202 .loc 1 5488 7 view .LVU3560 + 10203 008e 0023 movs r3, #0 + 10204 0090 84F84030 strb r3, [r4, #64] +5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10205 .loc 1 5488 7 view .LVU3561 +5494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10206 .loc 1 5494 7 view .LVU3562 + 10207 0094 2A46 mov r2, r5 + 10208 0096 3146 mov r1, r6 + 10209 0098 2046 mov r0, r4 + 10210 009a FFF7FEFF bl HAL_I2C_AddrCallback + 10211 .LVL705: + 10212 009e BDE7 b .L630 + 10213 .cfi_endproc + 10214 .LFE384: + 10216 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits + 10217 .align 1 + 10218 .weak HAL_I2C_ListenCpltCallback + 10219 .syntax unified + 10220 .thumb + 10221 .thumb_func + 10223 HAL_I2C_ListenCpltCallback: + 10224 .LVL706: + 10225 .LFB370: +4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 10226 .loc 1 4597 1 view -0 + 10227 .cfi_startproc + 10228 @ args = 0, pretend = 0, frame = 0 + 10229 @ frame_needed = 0, uses_anonymous_args = 0 + 10230 @ link register save eliminated. +4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10231 .loc 1 4599 3 view .LVU3564 + ARM GAS /tmp/ccbUHtu7.s page 360 + + +4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10232 .loc 1 4604 1 is_stmt 0 view .LVU3565 + 10233 0000 7047 bx lr + 10234 .cfi_endproc + 10235 .LFE370: + 10237 .section .text.I2C_ITListenCplt,"ax",%progbits + 10238 .align 1 + 10239 .syntax unified + 10240 .thumb + 10241 .thumb_func + 10243 I2C_ITListenCplt: + 10244 .LVL707: + 10245 .LFB389: +5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ + 10246 .loc 1 5944 1 is_stmt 1 view -0 + 10247 .cfi_startproc + 10248 @ args = 0, pretend = 0, frame = 0 + 10249 @ frame_needed = 0, uses_anonymous_args = 0 +5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ + 10250 .loc 1 5944 1 is_stmt 0 view .LVU3567 + 10251 0000 10B5 push {r4, lr} + 10252 .LCFI117: + 10253 .cfi_def_cfa_offset 8 + 10254 .cfi_offset 4, -8 + 10255 .cfi_offset 14, -4 + 10256 0002 0446 mov r4, r0 +5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 10257 .loc 1 5946 3 is_stmt 1 view .LVU3568 +5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 10258 .loc 1 5946 21 is_stmt 0 view .LVU3569 + 10259 0004 174B ldr r3, .L641 + 10260 0006 C362 str r3, [r0, #44] +5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 10261 .loc 1 5947 3 is_stmt 1 view .LVU3570 +5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 10262 .loc 1 5947 23 is_stmt 0 view .LVU3571 + 10263 0008 0023 movs r3, #0 + 10264 000a 0363 str r3, [r0, #48] +5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 10265 .loc 1 5948 3 is_stmt 1 view .LVU3572 +5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; + 10266 .loc 1 5948 15 is_stmt 0 view .LVU3573 + 10267 000c 2022 movs r2, #32 + 10268 000e 80F84120 strb r2, [r0, #65] +5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 10269 .loc 1 5949 3 is_stmt 1 view .LVU3574 +5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 10270 .loc 1 5949 14 is_stmt 0 view .LVU3575 + 10271 0012 80F84230 strb r3, [r0, #66] +5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10272 .loc 1 5950 3 is_stmt 1 view .LVU3576 +5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10273 .loc 1 5950 17 is_stmt 0 view .LVU3577 + 10274 0016 4363 str r3, [r0, #52] +5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10275 .loc 1 5953 3 is_stmt 1 view .LVU3578 +5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 361 + + + 10276 .loc 1 5953 6 is_stmt 0 view .LVU3579 + 10277 0018 11F0040F tst r1, #4 + 10278 001c 13D0 beq .L639 +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10279 .loc 1 5956 5 is_stmt 1 view .LVU3580 +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10280 .loc 1 5956 36 is_stmt 0 view .LVU3581 + 10281 001e 0368 ldr r3, [r0] +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10282 .loc 1 5956 46 view .LVU3582 + 10283 0020 5A6A ldr r2, [r3, #36] +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10284 .loc 1 5956 10 view .LVU3583 + 10285 0022 436A ldr r3, [r0, #36] +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10286 .loc 1 5956 21 view .LVU3584 + 10287 0024 1A70 strb r2, [r3] +5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10288 .loc 1 5959 5 is_stmt 1 view .LVU3585 +5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10289 .loc 1 5959 9 is_stmt 0 view .LVU3586 + 10290 0026 436A ldr r3, [r0, #36] +5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10291 .loc 1 5959 19 view .LVU3587 + 10292 0028 0133 adds r3, r3, #1 + 10293 002a 4362 str r3, [r0, #36] +5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10294 .loc 1 5961 5 is_stmt 1 view .LVU3588 +5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10295 .loc 1 5961 14 is_stmt 0 view .LVU3589 + 10296 002c 038D ldrh r3, [r0, #40] +5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10297 .loc 1 5961 8 view .LVU3590 + 10298 002e 53B1 cbz r3, .L639 +5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 10299 .loc 1 5963 7 is_stmt 1 view .LVU3591 +5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 10300 .loc 1 5963 21 is_stmt 0 view .LVU3592 + 10301 0030 013B subs r3, r3, #1 + 10302 0032 0385 strh r3, [r0, #40] @ movhi +5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10303 .loc 1 5964 7 is_stmt 1 view .LVU3593 +5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10304 .loc 1 5964 11 is_stmt 0 view .LVU3594 + 10305 0034 438D ldrh r3, [r0, #42] + 10306 0036 9BB2 uxth r3, r3 +5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10307 .loc 1 5964 22 view .LVU3595 + 10308 0038 013B subs r3, r3, #1 + 10309 003a 9BB2 uxth r3, r3 + 10310 003c 4385 strh r3, [r0, #42] @ movhi +5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10311 .loc 1 5967 7 is_stmt 1 view .LVU3596 +5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10312 .loc 1 5967 11 is_stmt 0 view .LVU3597 + 10313 003e 436C ldr r3, [r0, #68] +5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 362 + + + 10314 .loc 1 5967 23 view .LVU3598 + 10315 0040 43F00403 orr r3, r3, #4 + 10316 0044 4364 str r3, [r0, #68] + 10317 .L639: +5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10318 .loc 1 5972 3 is_stmt 1 view .LVU3599 + 10319 0046 48F20301 movw r1, #32771 + 10320 .LVL708: +5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10321 .loc 1 5972 3 is_stmt 0 view .LVU3600 + 10322 004a 2046 mov r0, r4 + 10323 .LVL709: +5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10324 .loc 1 5972 3 view .LVU3601 + 10325 004c FFF7FEFF bl I2C_Disable_IRQ + 10326 .LVL710: +5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10327 .loc 1 5975 3 is_stmt 1 view .LVU3602 + 10328 0050 2368 ldr r3, [r4] + 10329 0052 1022 movs r2, #16 + 10330 0054 DA61 str r2, [r3, #28] +5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10331 .loc 1 5978 3 view .LVU3603 +5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10332 .loc 1 5978 3 view .LVU3604 + 10333 0056 0023 movs r3, #0 + 10334 0058 84F84030 strb r3, [r4, #64] +5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10335 .loc 1 5978 3 view .LVU3605 +5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10336 .loc 1 5984 3 view .LVU3606 + 10337 005c 2046 mov r0, r4 + 10338 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback + 10339 .LVL711: +5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10340 .loc 1 5986 1 is_stmt 0 view .LVU3607 + 10341 0062 10BD pop {r4, pc} + 10342 .LVL712: + 10343 .L642: +5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10344 .loc 1 5986 1 view .LVU3608 + 10345 .align 2 + 10346 .L641: + 10347 0064 0000FFFF .word -65536 + 10348 .cfi_endproc + 10349 .LFE389: + 10351 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits + 10352 .align 1 + 10353 .weak HAL_I2C_MemTxCpltCallback + 10354 .syntax unified + 10355 .thumb + 10356 .thumb_func + 10358 HAL_I2C_MemTxCpltCallback: + 10359 .LVL713: + 10360 .LFB371: +4613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 10361 .loc 1 4613 1 is_stmt 1 view -0 + ARM GAS /tmp/ccbUHtu7.s page 363 + + + 10362 .cfi_startproc + 10363 @ args = 0, pretend = 0, frame = 0 + 10364 @ frame_needed = 0, uses_anonymous_args = 0 + 10365 @ link register save eliminated. +4615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10366 .loc 1 4615 3 view .LVU3610 +4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10367 .loc 1 4620 1 is_stmt 0 view .LVU3611 + 10368 0000 7047 bx lr + 10369 .cfi_endproc + 10370 .LFE371: + 10372 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits + 10373 .align 1 + 10374 .weak HAL_I2C_MemRxCpltCallback + 10375 .syntax unified + 10376 .thumb + 10377 .thumb_func + 10379 HAL_I2C_MemRxCpltCallback: + 10380 .LVL714: + 10381 .LFB372: +4629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 10382 .loc 1 4629 1 is_stmt 1 view -0 + 10383 .cfi_startproc + 10384 @ args = 0, pretend = 0, frame = 0 + 10385 @ frame_needed = 0, uses_anonymous_args = 0 + 10386 @ link register save eliminated. +4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10387 .loc 1 4631 3 view .LVU3613 +4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10388 .loc 1 4636 1 is_stmt 0 view .LVU3614 + 10389 0000 7047 bx lr + 10390 .cfi_endproc + 10391 .LFE372: + 10393 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits + 10394 .align 1 + 10395 .weak HAL_I2C_ErrorCallback + 10396 .syntax unified + 10397 .thumb + 10398 .thumb_func + 10400 HAL_I2C_ErrorCallback: + 10401 .LVL715: + 10402 .LFB373: +4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 10403 .loc 1 4645 1 is_stmt 1 view -0 + 10404 .cfi_startproc + 10405 @ args = 0, pretend = 0, frame = 0 + 10406 @ frame_needed = 0, uses_anonymous_args = 0 + 10407 @ link register save eliminated. +4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10408 .loc 1 4647 3 view .LVU3616 +4652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10409 .loc 1 4652 1 is_stmt 0 view .LVU3617 + 10410 0000 7047 bx lr + 10411 .cfi_endproc + 10412 .LFE373: + 10414 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits + 10415 .align 1 + ARM GAS /tmp/ccbUHtu7.s page 364 + + + 10416 .weak HAL_I2C_AbortCpltCallback + 10417 .syntax unified + 10418 .thumb + 10419 .thumb_func + 10421 HAL_I2C_AbortCpltCallback: + 10422 .LVL716: + 10423 .LFB374: +4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ + 10424 .loc 1 4661 1 is_stmt 1 view -0 + 10425 .cfi_startproc + 10426 @ args = 0, pretend = 0, frame = 0 + 10427 @ frame_needed = 0, uses_anonymous_args = 0 + 10428 @ link register save eliminated. +4663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10429 .loc 1 4663 3 view .LVU3619 +4668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10430 .loc 1 4668 1 is_stmt 0 view .LVU3620 + 10431 0000 7047 bx lr + 10432 .cfi_endproc + 10433 .LFE374: + 10435 .section .text.I2C_TreatErrorCallback,"ax",%progbits + 10436 .align 1 + 10437 .syntax unified + 10438 .thumb + 10439 .thumb_func + 10441 I2C_TreatErrorCallback: + 10442 .LVL717: + 10443 .LFB391: +6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) + 10444 .loc 1 6107 1 is_stmt 1 view -0 + 10445 .cfi_startproc + 10446 @ args = 0, pretend = 0, frame = 0 + 10447 @ frame_needed = 0, uses_anonymous_args = 0 +6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) + 10448 .loc 1 6107 1 is_stmt 0 view .LVU3622 + 10449 0000 08B5 push {r3, lr} + 10450 .LCFI118: + 10451 .cfi_def_cfa_offset 8 + 10452 .cfi_offset 3, -8 + 10453 .cfi_offset 14, -4 +6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10454 .loc 1 6108 3 is_stmt 1 view .LVU3623 +6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10455 .loc 1 6108 11 is_stmt 0 view .LVU3624 + 10456 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 10457 0006 DBB2 uxtb r3, r3 +6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10458 .loc 1 6108 6 view .LVU3625 + 10459 0008 602B cmp r3, #96 + 10460 000a 06D0 beq .L651 +6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10461 .loc 1 6125 5 is_stmt 1 view .LVU3626 +6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10462 .loc 1 6125 25 is_stmt 0 view .LVU3627 + 10463 000c 0023 movs r3, #0 + 10464 000e 0363 str r3, [r0, #48] +6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 365 + + + 10465 .loc 1 6128 5 is_stmt 1 view .LVU3628 +6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10466 .loc 1 6128 5 view .LVU3629 + 10467 0010 80F84030 strb r3, [r0, #64] +6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10468 .loc 1 6128 5 view .LVU3630 +6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10469 .loc 1 6134 5 view .LVU3631 + 10470 0014 FFF7FEFF bl HAL_I2C_ErrorCallback + 10471 .LVL718: + 10472 .L647: +6137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10473 .loc 1 6137 1 is_stmt 0 view .LVU3632 + 10474 0018 08BD pop {r3, pc} + 10475 .LVL719: + 10476 .L651: +6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 10477 .loc 1 6110 5 is_stmt 1 view .LVU3633 +6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 10478 .loc 1 6110 17 is_stmt 0 view .LVU3634 + 10479 001a 2023 movs r3, #32 + 10480 001c 80F84130 strb r3, [r0, #65] +6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10481 .loc 1 6111 5 is_stmt 1 view .LVU3635 +6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10482 .loc 1 6111 25 is_stmt 0 view .LVU3636 + 10483 0020 0023 movs r3, #0 + 10484 0022 0363 str r3, [r0, #48] +6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10485 .loc 1 6114 5 is_stmt 1 view .LVU3637 +6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10486 .loc 1 6114 5 view .LVU3638 + 10487 0024 80F84030 strb r3, [r0, #64] +6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10488 .loc 1 6114 5 view .LVU3639 +6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10489 .loc 1 6120 5 view .LVU3640 + 10490 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback + 10491 .LVL720: +6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10492 .loc 1 6120 5 is_stmt 0 view .LVU3641 + 10493 002c F4E7 b .L647 + 10494 .cfi_endproc + 10495 .LFE391: + 10497 .section .text.I2C_ITError,"ax",%progbits + 10498 .align 1 + 10499 .syntax unified + 10500 .thumb + 10501 .thumb_func + 10503 I2C_ITError: + 10504 .LVL721: + 10505 .LFB390: +5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; + 10506 .loc 1 5995 1 is_stmt 1 view -0 + 10507 .cfi_startproc + 10508 @ args = 0, pretend = 0, frame = 0 + 10509 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/ccbUHtu7.s page 366 + + +5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; + 10510 .loc 1 5995 1 is_stmt 0 view .LVU3643 + 10511 0000 10B5 push {r4, lr} + 10512 .LCFI119: + 10513 .cfi_def_cfa_offset 8 + 10514 .cfi_offset 4, -8 + 10515 .cfi_offset 14, -4 + 10516 0002 0446 mov r4, r0 +5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; + 10517 .loc 1 5996 3 is_stmt 1 view .LVU3644 +5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; + 10518 .loc 1 5996 24 is_stmt 0 view .LVU3645 + 10519 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 10520 .LVL722: +5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10521 .loc 1 5997 3 is_stmt 1 view .LVU3646 +6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 10522 .loc 1 6000 3 view .LVU3647 +6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 10523 .loc 1 6000 23 is_stmt 0 view .LVU3648 + 10524 0008 0022 movs r2, #0 + 10525 000a 80F84220 strb r2, [r0, #66] +6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; + 10526 .loc 1 6001 3 is_stmt 1 view .LVU3649 +6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; + 10527 .loc 1 6001 23 is_stmt 0 view .LVU3650 + 10528 000e 3B48 ldr r0, .L666 + 10529 .LVL723: +6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; + 10530 .loc 1 6001 23 view .LVU3651 + 10531 0010 E062 str r0, [r4, #44] +6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10532 .loc 1 6002 3 is_stmt 1 view .LVU3652 +6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10533 .loc 1 6002 23 is_stmt 0 view .LVU3653 + 10534 0012 6285 strh r2, [r4, #42] @ movhi +6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10535 .loc 1 6005 3 is_stmt 1 view .LVU3654 +6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10536 .loc 1 6005 7 is_stmt 0 view .LVU3655 + 10537 0014 626C ldr r2, [r4, #68] +6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10538 .loc 1 6005 19 view .LVU3656 + 10539 0016 0A43 orrs r2, r2, r1 + 10540 0018 6264 str r2, [r4, #68] +6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || + 10541 .loc 1 6008 3 is_stmt 1 view .LVU3657 +6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) + 10542 .loc 1 6009 50 is_stmt 0 view .LVU3658 + 10543 001a 283B subs r3, r3, #40 + 10544 .LVL724: +6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) + 10545 .loc 1 6009 50 view .LVU3659 + 10546 001c DBB2 uxtb r3, r3 +6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || + 10547 .loc 1 6008 6 view .LVU3660 + 10548 001e 022B cmp r3, #2 + ARM GAS /tmp/ccbUHtu7.s page 367 + + + 10549 0020 19D8 bhi .L653 +6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10550 .loc 1 6013 5 is_stmt 1 view .LVU3661 + 10551 0022 0321 movs r1, #3 + 10552 .LVL725: +6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10553 .loc 1 6013 5 is_stmt 0 view .LVU3662 + 10554 0024 2046 mov r0, r4 + 10555 0026 FFF7FEFF bl I2C_Disable_IRQ + 10556 .LVL726: +6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 10557 .loc 1 6016 5 is_stmt 1 view .LVU3663 +6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; + 10558 .loc 1 6016 25 is_stmt 0 view .LVU3664 + 10559 002a 2823 movs r3, #40 + 10560 002c 84F84130 strb r3, [r4, #65] +6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10561 .loc 1 6017 5 is_stmt 1 view .LVU3665 +6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10562 .loc 1 6017 25 is_stmt 0 view .LVU3666 + 10563 0030 334B ldr r3, .L666+4 + 10564 0032 6363 str r3, [r4, #52] + 10565 .L654: +6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ + 10566 .loc 1 6035 3 is_stmt 1 view .LVU3667 +6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ + 10567 .loc 1 6035 20 is_stmt 0 view .LVU3668 + 10568 0034 236B ldr r3, [r4, #48] + 10569 .LVL727: +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) + 10570 .loc 1 6036 3 is_stmt 1 view .LVU3669 +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) + 10571 .loc 1 6036 12 is_stmt 0 view .LVU3670 + 10572 0036 A26B ldr r2, [r4, #56] +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) + 10573 .loc 1 6036 6 view .LVU3671 + 10574 0038 1AB1 cbz r2, .L656 +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) + 10575 .loc 1 6036 30 discriminator 1 view .LVU3672 + 10576 003a 112B cmp r3, #17 + 10577 003c 1BD0 beq .L657 +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) + 10578 .loc 1 6036 81 discriminator 2 view .LVU3673 + 10579 003e 212B cmp r3, #33 + 10580 0040 19D0 beq .L657 + 10581 .L656: +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) + 10582 .loc 1 6066 8 is_stmt 1 view .LVU3674 +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) + 10583 .loc 1 6066 17 is_stmt 0 view .LVU3675 + 10584 0042 E26B ldr r2, [r4, #60] +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) + 10585 .loc 1 6066 11 view .LVU3676 + 10586 0044 1AB1 cbz r2, .L661 +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) + 10587 .loc 1 6066 35 discriminator 1 view .LVU3677 + 10588 0046 122B cmp r3, #18 + ARM GAS /tmp/ccbUHtu7.s page 368 + + + 10589 0048 36D0 beq .L662 +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) + 10590 .loc 1 6066 86 discriminator 2 view .LVU3678 + 10591 004a 222B cmp r3, #34 + 10592 004c 34D0 beq .L662 + 10593 .L661: +6097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10594 .loc 1 6097 5 is_stmt 1 view .LVU3679 + 10595 004e 2046 mov r0, r4 + 10596 0050 FFF7FEFF bl I2C_TreatErrorCallback + 10597 .LVL728: + 10598 .L652: +6099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10599 .loc 1 6099 1 is_stmt 0 view .LVU3680 + 10600 0054 10BD pop {r4, pc} + 10601 .LVL729: + 10602 .L653: +6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10603 .loc 1 6022 5 is_stmt 1 view .LVU3681 + 10604 0056 48F20301 movw r1, #32771 + 10605 .LVL730: +6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10606 .loc 1 6022 5 is_stmt 0 view .LVU3682 + 10607 005a 2046 mov r0, r4 + 10608 005c FFF7FEFF bl I2C_Disable_IRQ + 10609 .LVL731: +6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10610 .loc 1 6026 5 is_stmt 1 view .LVU3683 +6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10611 .loc 1 6026 13 is_stmt 0 view .LVU3684 + 10612 0060 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 10613 0064 DBB2 uxtb r3, r3 +6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10614 .loc 1 6026 8 view .LVU3685 + 10615 0066 602B cmp r3, #96 + 10616 0068 02D0 beq .L655 +6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10617 .loc 1 6029 7 is_stmt 1 view .LVU3686 +6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10618 .loc 1 6029 27 is_stmt 0 view .LVU3687 + 10619 006a 2023 movs r3, #32 + 10620 006c 84F84130 strb r3, [r4, #65] + 10621 .L655: +6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10622 .loc 1 6031 5 is_stmt 1 view .LVU3688 +6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10623 .loc 1 6031 25 is_stmt 0 view .LVU3689 + 10624 0070 0023 movs r3, #0 + 10625 0072 6363 str r3, [r4, #52] + 10626 0074 DEE7 b .L654 + 10627 .LVL732: + 10628 .L657: +6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10629 .loc 1 6039 5 is_stmt 1 view .LVU3690 +6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10630 .loc 1 6039 14 is_stmt 0 view .LVU3691 + 10631 0076 2368 ldr r3, [r4] + ARM GAS /tmp/ccbUHtu7.s page 369 + + + 10632 .LVL733: +6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10633 .loc 1 6039 24 view .LVU3692 + 10634 0078 1A68 ldr r2, [r3] +6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10635 .loc 1 6039 8 view .LVU3693 + 10636 007a 12F4804F tst r2, #16384 + 10637 007e 03D0 beq .L658 +6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10638 .loc 1 6041 7 is_stmt 1 view .LVU3694 +6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10639 .loc 1 6041 21 is_stmt 0 view .LVU3695 + 10640 0080 1A68 ldr r2, [r3] +6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10641 .loc 1 6041 27 view .LVU3696 + 10642 0082 22F48042 bic r2, r2, #16384 + 10643 0086 1A60 str r2, [r3] + 10644 .L658: +6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10645 .loc 1 6044 5 is_stmt 1 view .LVU3697 +6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10646 .loc 1 6044 9 is_stmt 0 view .LVU3698 + 10647 0088 A06B ldr r0, [r4, #56] + 10648 008a FFF7FEFF bl HAL_DMA_GetState + 10649 .LVL734: +6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10650 .loc 1 6044 8 view .LVU3699 + 10651 008e 0128 cmp r0, #1 + 10652 0090 0ED0 beq .L659 +6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10653 .loc 1 6048 7 is_stmt 1 view .LVU3700 +6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10654 .loc 1 6048 11 is_stmt 0 view .LVU3701 + 10655 0092 A36B ldr r3, [r4, #56] +6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10656 .loc 1 6048 39 view .LVU3702 + 10657 0094 1B4A ldr r2, .L666+8 + 10658 0096 9A63 str r2, [r3, #56] +6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10659 .loc 1 6051 7 is_stmt 1 view .LVU3703 +6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10660 .loc 1 6051 7 view .LVU3704 + 10661 0098 0023 movs r3, #0 + 10662 009a 84F84030 strb r3, [r4, #64] +6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10663 .loc 1 6051 7 view .LVU3705 +6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10664 .loc 1 6054 7 view .LVU3706 +6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10665 .loc 1 6054 11 is_stmt 0 view .LVU3707 + 10666 009e A06B ldr r0, [r4, #56] + 10667 00a0 FFF7FEFF bl HAL_DMA_Abort_IT + 10668 .LVL735: +6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10669 .loc 1 6054 10 view .LVU3708 + 10670 00a4 0028 cmp r0, #0 + 10671 00a6 D5D0 beq .L652 + ARM GAS /tmp/ccbUHtu7.s page 370 + + +6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10672 .loc 1 6057 9 is_stmt 1 view .LVU3709 +6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10673 .loc 1 6057 13 is_stmt 0 view .LVU3710 + 10674 00a8 A06B ldr r0, [r4, #56] +6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10675 .loc 1 6057 21 view .LVU3711 + 10676 00aa 836B ldr r3, [r0, #56] +6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10677 .loc 1 6057 9 view .LVU3712 + 10678 00ac 9847 blx r3 + 10679 .LVL736: + 10680 00ae D1E7 b .L652 + 10681 .L659: +6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10682 .loc 1 6062 7 is_stmt 1 view .LVU3713 + 10683 00b0 2046 mov r0, r4 + 10684 00b2 FFF7FEFF bl I2C_TreatErrorCallback + 10685 .LVL737: + 10686 00b6 CDE7 b .L652 + 10687 .LVL738: + 10688 .L662: +6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10689 .loc 1 6069 5 view .LVU3714 +6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10690 .loc 1 6069 14 is_stmt 0 view .LVU3715 + 10691 00b8 2368 ldr r3, [r4] + 10692 .LVL739: +6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10693 .loc 1 6069 24 view .LVU3716 + 10694 00ba 1A68 ldr r2, [r3] +6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10695 .loc 1 6069 8 view .LVU3717 + 10696 00bc 12F4004F tst r2, #32768 + 10697 00c0 03D0 beq .L663 +6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10698 .loc 1 6071 7 is_stmt 1 view .LVU3718 +6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10699 .loc 1 6071 21 is_stmt 0 view .LVU3719 + 10700 00c2 1A68 ldr r2, [r3] +6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10701 .loc 1 6071 27 view .LVU3720 + 10702 00c4 22F40042 bic r2, r2, #32768 + 10703 00c8 1A60 str r2, [r3] + 10704 .L663: +6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10705 .loc 1 6074 5 is_stmt 1 view .LVU3721 +6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10706 .loc 1 6074 9 is_stmt 0 view .LVU3722 + 10707 00ca E06B ldr r0, [r4, #60] + 10708 00cc FFF7FEFF bl HAL_DMA_GetState + 10709 .LVL740: +6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10710 .loc 1 6074 8 view .LVU3723 + 10711 00d0 0128 cmp r0, #1 + 10712 00d2 0ED0 beq .L664 +6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 371 + + + 10713 .loc 1 6078 7 is_stmt 1 view .LVU3724 +6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10714 .loc 1 6078 11 is_stmt 0 view .LVU3725 + 10715 00d4 E36B ldr r3, [r4, #60] +6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10716 .loc 1 6078 39 view .LVU3726 + 10717 00d6 0B4A ldr r2, .L666+8 + 10718 00d8 9A63 str r2, [r3, #56] +6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10719 .loc 1 6081 7 is_stmt 1 view .LVU3727 +6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10720 .loc 1 6081 7 view .LVU3728 + 10721 00da 0023 movs r3, #0 + 10722 00dc 84F84030 strb r3, [r4, #64] +6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10723 .loc 1 6081 7 view .LVU3729 +6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10724 .loc 1 6084 7 view .LVU3730 +6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10725 .loc 1 6084 11 is_stmt 0 view .LVU3731 + 10726 00e0 E06B ldr r0, [r4, #60] + 10727 00e2 FFF7FEFF bl HAL_DMA_Abort_IT + 10728 .LVL741: +6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10729 .loc 1 6084 10 view .LVU3732 + 10730 00e6 0028 cmp r0, #0 + 10731 00e8 B4D0 beq .L652 +6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10732 .loc 1 6087 9 is_stmt 1 view .LVU3733 +6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10733 .loc 1 6087 13 is_stmt 0 view .LVU3734 + 10734 00ea E06B ldr r0, [r4, #60] +6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10735 .loc 1 6087 21 view .LVU3735 + 10736 00ec 836B ldr r3, [r0, #56] +6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10737 .loc 1 6087 9 view .LVU3736 + 10738 00ee 9847 blx r3 + 10739 .LVL742: + 10740 00f0 B0E7 b .L652 + 10741 .L664: +6092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10742 .loc 1 6092 7 is_stmt 1 view .LVU3737 + 10743 00f2 2046 mov r0, r4 + 10744 00f4 FFF7FEFF bl I2C_TreatErrorCallback + 10745 .LVL743: + 10746 00f8 ACE7 b .L652 + 10747 .L667: + 10748 00fa 00BF .align 2 + 10749 .L666: + 10750 00fc 0000FFFF .word -65536 + 10751 0100 00000000 .word I2C_Slave_ISR_IT + 10752 0104 00000000 .word I2C_DMAAbort + 10753 .cfi_endproc + 10754 .LFE390: + 10756 .section .text.I2C_ITSlaveCplt,"ax",%progbits + 10757 .align 1 + ARM GAS /tmp/ccbUHtu7.s page 372 + + + 10758 .syntax unified + 10759 .thumb + 10760 .thumb_func + 10762 I2C_ITSlaveCplt: + 10763 .LVL744: + 10764 .LFB388: +5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); + 10765 .loc 1 5785 1 view -0 + 10766 .cfi_startproc + 10767 @ args = 0, pretend = 0, frame = 0 + 10768 @ frame_needed = 0, uses_anonymous_args = 0 +5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); + 10769 .loc 1 5785 1 is_stmt 0 view .LVU3739 + 10770 0000 70B5 push {r4, r5, r6, lr} + 10771 .LCFI120: + 10772 .cfi_def_cfa_offset 16 + 10773 .cfi_offset 4, -16 + 10774 .cfi_offset 5, -12 + 10775 .cfi_offset 6, -8 + 10776 .cfi_offset 14, -4 + 10777 0002 0446 mov r4, r0 + 10778 0004 0D46 mov r5, r1 +5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 10779 .loc 1 5786 3 is_stmt 1 view .LVU3740 +5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 10780 .loc 1 5786 26 is_stmt 0 view .LVU3741 + 10781 0006 0268 ldr r2, [r0] +5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 10782 .loc 1 5786 12 view .LVU3742 + 10783 0008 1668 ldr r6, [r2] + 10784 .LVL745: +5787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; + 10785 .loc 1 5787 3 is_stmt 1 view .LVU3743 +5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10786 .loc 1 5788 3 view .LVU3744 +5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10787 .loc 1 5788 24 is_stmt 0 view .LVU3745 + 10788 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 10789 000e DBB2 uxtb r3, r3 + 10790 .LVL746: +5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10791 .loc 1 5791 3 is_stmt 1 view .LVU3746 + 10792 0010 2021 movs r1, #32 + 10793 .LVL747: +5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10794 .loc 1 5791 3 is_stmt 0 view .LVU3747 + 10795 0012 D161 str r1, [r2, #28] +5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10796 .loc 1 5794 3 is_stmt 1 view .LVU3748 +5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10797 .loc 1 5794 6 is_stmt 0 view .LVU3749 + 10798 0014 212B cmp r3, #33 + 10799 0016 0DD0 beq .L669 +5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10800 .loc 1 5794 43 discriminator 1 view .LVU3750 + 10801 0018 292B cmp r3, #41 + 10802 001a 0BD0 beq .L669 + ARM GAS /tmp/ccbUHtu7.s page 373 + + +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10803 .loc 1 5799 8 is_stmt 1 view .LVU3751 +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10804 .loc 1 5799 11 is_stmt 0 view .LVU3752 + 10805 001c 222B cmp r3, #34 + 10806 001e 01D0 beq .L672 +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10807 .loc 1 5799 48 discriminator 1 view .LVU3753 + 10808 0020 2A2B cmp r3, #42 + 10809 0022 0ED1 bne .L671 + 10810 .L672: +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + 10811 .loc 1 5801 5 is_stmt 1 view .LVU3754 + 10812 0024 48F20201 movw r1, #32770 + 10813 0028 2046 mov r0, r4 + 10814 .LVL748: +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + 10815 .loc 1 5801 5 is_stmt 0 view .LVU3755 + 10816 002a FFF7FEFF bl I2C_Disable_IRQ + 10817 .LVL749: +5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10818 .loc 1 5802 5 is_stmt 1 view .LVU3756 +5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10819 .loc 1 5802 25 is_stmt 0 view .LVU3757 + 10820 002e 2223 movs r3, #34 + 10821 0030 2363 str r3, [r4, #48] + 10822 0032 06E0 b .L671 + 10823 .LVL750: + 10824 .L669: +5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + 10825 .loc 1 5796 5 is_stmt 1 view .LVU3758 + 10826 0034 48F20101 movw r1, #32769 + 10827 0038 2046 mov r0, r4 + 10828 .LVL751: +5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + 10829 .loc 1 5796 5 is_stmt 0 view .LVU3759 + 10830 003a FFF7FEFF bl I2C_Disable_IRQ + 10831 .LVL752: +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10832 .loc 1 5797 5 is_stmt 1 view .LVU3760 +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10833 .loc 1 5797 25 is_stmt 0 view .LVU3761 + 10834 003e 2123 movs r3, #33 + 10835 0040 2363 str r3, [r4, #48] + 10836 .L671: +5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10837 .loc 1 5810 3 is_stmt 1 view .LVU3762 +5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10838 .loc 1 5810 7 is_stmt 0 view .LVU3763 + 10839 0042 2268 ldr r2, [r4] +5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10840 .loc 1 5810 17 view .LVU3764 + 10841 0044 5368 ldr r3, [r2, #4] +5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10842 .loc 1 5810 23 view .LVU3765 + 10843 0046 43F40043 orr r3, r3, #32768 + 10844 004a 5360 str r3, [r2, #4] + ARM GAS /tmp/ccbUHtu7.s page 374 + + +5813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10845 .loc 1 5813 3 is_stmt 1 view .LVU3766 + 10846 004c 2268 ldr r2, [r4] + 10847 004e 5368 ldr r3, [r2, #4] + 10848 0050 23F0FF73 bic r3, r3, #33423360 + 10849 0054 23F48B33 bic r3, r3, #71168 + 10850 0058 23F4FF73 bic r3, r3, #510 + 10851 005c 23F00103 bic r3, r3, #1 + 10852 0060 5360 str r3, [r2, #4] +5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10853 .loc 1 5816 3 view .LVU3767 + 10854 0062 2046 mov r0, r4 + 10855 0064 FFF7FEFF bl I2C_Flush_TXDR + 10856 .LVL753: +5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10857 .loc 1 5819 3 view .LVU3768 +5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10858 .loc 1 5819 6 is_stmt 0 view .LVU3769 + 10859 0068 16F4804F tst r6, #16384 + 10860 006c 40D0 beq .L673 +5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10861 .loc 1 5822 5 is_stmt 1 view .LVU3770 +5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10862 .loc 1 5822 9 is_stmt 0 view .LVU3771 + 10863 006e 2268 ldr r2, [r4] +5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10864 .loc 1 5822 19 view .LVU3772 + 10865 0070 1368 ldr r3, [r2] +5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10866 .loc 1 5822 25 view .LVU3773 + 10867 0072 23F48043 bic r3, r3, #16384 + 10868 0076 1360 str r3, [r2] +5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10869 .loc 1 5824 5 is_stmt 1 view .LVU3774 +5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10870 .loc 1 5824 13 is_stmt 0 view .LVU3775 + 10871 0078 A36B ldr r3, [r4, #56] +5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10872 .loc 1 5824 8 view .LVU3776 + 10873 007a 1BB1 cbz r3, .L674 +5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10874 .loc 1 5826 7 is_stmt 1 view .LVU3777 +5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10875 .loc 1 5826 35 is_stmt 0 view .LVU3778 + 10876 007c 1B68 ldr r3, [r3] + 10877 007e 5B68 ldr r3, [r3, #4] +5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10878 .loc 1 5826 25 view .LVU3779 + 10879 0080 9BB2 uxth r3, r3 +5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10880 .loc 1 5826 23 view .LVU3780 + 10881 0082 6385 strh r3, [r4, #42] @ movhi + 10882 .L674: +5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10883 .loc 1 5842 3 is_stmt 1 view .LVU3781 +5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10884 .loc 1 5845 3 view .LVU3782 + ARM GAS /tmp/ccbUHtu7.s page 375 + + +5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10885 .loc 1 5845 6 is_stmt 0 view .LVU3783 + 10886 0084 15F0040F tst r5, #4 + 10887 0088 11D0 beq .L675 +5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10888 .loc 1 5848 5 is_stmt 1 view .LVU3784 +5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10889 .loc 1 5848 16 is_stmt 0 view .LVU3785 + 10890 008a 25F00405 bic r5, r5, #4 + 10891 .LVL754: +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10892 .loc 1 5851 5 is_stmt 1 view .LVU3786 +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10893 .loc 1 5851 36 is_stmt 0 view .LVU3787 + 10894 008e 2368 ldr r3, [r4] +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10895 .loc 1 5851 46 view .LVU3788 + 10896 0090 5A6A ldr r2, [r3, #36] +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10897 .loc 1 5851 10 view .LVU3789 + 10898 0092 636A ldr r3, [r4, #36] +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10899 .loc 1 5851 21 view .LVU3790 + 10900 0094 1A70 strb r2, [r3] +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10901 .loc 1 5854 5 is_stmt 1 view .LVU3791 +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10902 .loc 1 5854 9 is_stmt 0 view .LVU3792 + 10903 0096 636A ldr r3, [r4, #36] +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10904 .loc 1 5854 19 view .LVU3793 + 10905 0098 0133 adds r3, r3, #1 + 10906 009a 6362 str r3, [r4, #36] +5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10907 .loc 1 5856 5 is_stmt 1 view .LVU3794 +5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10908 .loc 1 5856 14 is_stmt 0 view .LVU3795 + 10909 009c 238D ldrh r3, [r4, #40] +5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10910 .loc 1 5856 8 view .LVU3796 + 10911 009e 33B1 cbz r3, .L675 +5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 10912 .loc 1 5858 7 is_stmt 1 view .LVU3797 +5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 10913 .loc 1 5858 21 is_stmt 0 view .LVU3798 + 10914 00a0 013B subs r3, r3, #1 + 10915 00a2 2385 strh r3, [r4, #40] @ movhi +5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10916 .loc 1 5859 7 is_stmt 1 view .LVU3799 +5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10917 .loc 1 5859 11 is_stmt 0 view .LVU3800 + 10918 00a4 638D ldrh r3, [r4, #42] + 10919 00a6 9BB2 uxth r3, r3 +5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10920 .loc 1 5859 22 view .LVU3801 + 10921 00a8 013B subs r3, r3, #1 + 10922 00aa 9BB2 uxth r3, r3 + ARM GAS /tmp/ccbUHtu7.s page 376 + + + 10923 00ac 6385 strh r3, [r4, #42] @ movhi + 10924 .L675: +5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10925 .loc 1 5864 3 is_stmt 1 view .LVU3802 +5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10926 .loc 1 5864 11 is_stmt 0 view .LVU3803 + 10927 00ae 638D ldrh r3, [r4, #42] + 10928 00b0 9BB2 uxth r3, r3 +5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10929 .loc 1 5864 6 view .LVU3804 + 10930 00b2 1BB1 cbz r3, .L676 +5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10931 .loc 1 5867 5 is_stmt 1 view .LVU3805 +5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10932 .loc 1 5867 9 is_stmt 0 view .LVU3806 + 10933 00b4 636C ldr r3, [r4, #68] +5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 10934 .loc 1 5867 21 view .LVU3807 + 10935 00b6 43F00403 orr r3, r3, #4 + 10936 00ba 6364 str r3, [r4, #68] + 10937 .L676: +5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 10938 .loc 1 5870 3 is_stmt 1 view .LVU3808 +5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; + 10939 .loc 1 5870 14 is_stmt 0 view .LVU3809 + 10940 00bc 0023 movs r3, #0 + 10941 00be 84F84230 strb r3, [r4, #66] +5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10942 .loc 1 5871 3 is_stmt 1 view .LVU3810 +5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10943 .loc 1 5871 17 is_stmt 0 view .LVU3811 + 10944 00c2 6363 str r3, [r4, #52] +5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10945 .loc 1 5873 3 is_stmt 1 view .LVU3812 +5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10946 .loc 1 5873 11 is_stmt 0 view .LVU3813 + 10947 00c4 636C ldr r3, [r4, #68] +5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10948 .loc 1 5873 6 view .LVU3814 + 10949 00c6 1BBB cbnz r3, .L682 +5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10950 .loc 1 5885 8 is_stmt 1 view .LVU3815 +5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10951 .loc 1 5885 16 is_stmt 0 view .LVU3816 + 10952 00c8 E36A ldr r3, [r4, #44] +5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10953 .loc 1 5885 11 view .LVU3817 + 10954 00ca 13F5803F cmn r3, #65536 + 10955 00ce 2DD1 bne .L683 +5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10956 .loc 1 5905 8 is_stmt 1 view .LVU3818 +5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10957 .loc 1 5905 16 is_stmt 0 view .LVU3819 + 10958 00d0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 10959 00d4 DBB2 uxtb r3, r3 +5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10960 .loc 1 5905 11 view .LVU3820 + ARM GAS /tmp/ccbUHtu7.s page 377 + + + 10961 00d6 222B cmp r3, #34 + 10962 00d8 38D0 beq .L684 +5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 10963 .loc 1 5922 5 is_stmt 1 view .LVU3821 +5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 10964 .loc 1 5922 17 is_stmt 0 view .LVU3822 + 10965 00da 2023 movs r3, #32 + 10966 00dc 84F84130 strb r3, [r4, #65] +5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10967 .loc 1 5923 5 is_stmt 1 view .LVU3823 +5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10968 .loc 1 5923 25 is_stmt 0 view .LVU3824 + 10969 00e0 0023 movs r3, #0 + 10970 00e2 2363 str r3, [r4, #48] +5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10971 .loc 1 5926 5 is_stmt 1 view .LVU3825 +5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10972 .loc 1 5926 5 view .LVU3826 + 10973 00e4 84F84030 strb r3, [r4, #64] +5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10974 .loc 1 5926 5 view .LVU3827 +5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 10975 .loc 1 5932 5 view .LVU3828 + 10976 00e8 2046 mov r0, r4 + 10977 00ea FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback + 10978 .LVL755: +5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10979 .loc 1 5935 1 is_stmt 0 view .LVU3829 + 10980 00ee 2CE0 b .L668 + 10981 .LVL756: + 10982 .L673: +5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10983 .loc 1 5829 8 is_stmt 1 view .LVU3830 +5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10984 .loc 1 5829 11 is_stmt 0 view .LVU3831 + 10985 00f0 16F4004F tst r6, #32768 + 10986 00f4 C6D0 beq .L674 +5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10987 .loc 1 5832 5 is_stmt 1 view .LVU3832 +5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10988 .loc 1 5832 9 is_stmt 0 view .LVU3833 + 10989 00f6 2268 ldr r2, [r4] +5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10990 .loc 1 5832 19 view .LVU3834 + 10991 00f8 1368 ldr r3, [r2] +5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 10992 .loc 1 5832 25 view .LVU3835 + 10993 00fa 23F40043 bic r3, r3, #32768 + 10994 00fe 1360 str r3, [r2] +5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10995 .loc 1 5834 5 is_stmt 1 view .LVU3836 +5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10996 .loc 1 5834 13 is_stmt 0 view .LVU3837 + 10997 0100 E36B ldr r3, [r4, #60] +5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 10998 .loc 1 5834 8 view .LVU3838 + 10999 0102 002B cmp r3, #0 + ARM GAS /tmp/ccbUHtu7.s page 378 + + + 11000 0104 BED0 beq .L674 +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11001 .loc 1 5836 7 is_stmt 1 view .LVU3839 +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11002 .loc 1 5836 35 is_stmt 0 view .LVU3840 + 11003 0106 1B68 ldr r3, [r3] + 11004 0108 5B68 ldr r3, [r3, #4] +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11005 .loc 1 5836 25 view .LVU3841 + 11006 010a 9BB2 uxth r3, r3 +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11007 .loc 1 5836 23 view .LVU3842 + 11008 010c 6385 strh r3, [r4, #42] @ movhi + 11009 010e B9E7 b .L674 + 11010 .LVL757: + 11011 .L682: +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11012 .loc 1 5876 5 is_stmt 1 view .LVU3843 +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11013 .loc 1 5876 27 is_stmt 0 view .LVU3844 + 11014 0110 616C ldr r1, [r4, #68] +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11015 .loc 1 5876 5 view .LVU3845 + 11016 0112 2046 mov r0, r4 + 11017 0114 FFF7FEFF bl I2C_ITError + 11018 .LVL758: +5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11019 .loc 1 5879 5 is_stmt 1 view .LVU3846 +5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11020 .loc 1 5879 13 is_stmt 0 view .LVU3847 + 11021 0118 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11022 011c DBB2 uxtb r3, r3 +5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11023 .loc 1 5879 8 view .LVU3848 + 11024 011e 282B cmp r3, #40 + 11025 0120 13D1 bne .L668 +5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11026 .loc 1 5882 7 is_stmt 1 view .LVU3849 + 11027 0122 2946 mov r1, r5 + 11028 0124 2046 mov r0, r4 + 11029 0126 FFF7FEFF bl I2C_ITListenCplt + 11030 .LVL759: + 11031 012a 0EE0 b .L668 + 11032 .L683: +5888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11033 .loc 1 5888 5 view .LVU3850 + 11034 012c 2046 mov r0, r4 + 11035 012e FFF7FEFF bl I2C_ITSlaveSeqCplt + 11036 .LVL760: +5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 11037 .loc 1 5890 5 view .LVU3851 +5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; + 11038 .loc 1 5890 23 is_stmt 0 view .LVU3852 + 11039 0132 0C4B ldr r3, .L685 + 11040 0134 E362 str r3, [r4, #44] +5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11041 .loc 1 5891 5 is_stmt 1 view .LVU3853 + ARM GAS /tmp/ccbUHtu7.s page 379 + + +5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11042 .loc 1 5891 17 is_stmt 0 view .LVU3854 + 11043 0136 2023 movs r3, #32 + 11044 0138 84F84130 strb r3, [r4, #65] +5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11045 .loc 1 5892 5 is_stmt 1 view .LVU3855 +5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11046 .loc 1 5892 25 is_stmt 0 view .LVU3856 + 11047 013c 0023 movs r3, #0 + 11048 013e 2363 str r3, [r4, #48] +5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11049 .loc 1 5895 5 is_stmt 1 view .LVU3857 +5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11050 .loc 1 5895 5 view .LVU3858 + 11051 0140 84F84030 strb r3, [r4, #64] +5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11052 .loc 1 5895 5 view .LVU3859 +5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11053 .loc 1 5901 5 view .LVU3860 + 11054 0144 2046 mov r0, r4 + 11055 0146 FFF7FEFF bl HAL_I2C_ListenCpltCallback + 11056 .LVL761: + 11057 .L668: +5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11058 .loc 1 5935 1 is_stmt 0 view .LVU3861 + 11059 014a 70BD pop {r4, r5, r6, pc} + 11060 .LVL762: + 11061 .L684: +5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11062 .loc 1 5907 5 is_stmt 1 view .LVU3862 +5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11063 .loc 1 5907 17 is_stmt 0 view .LVU3863 + 11064 014c 2023 movs r3, #32 + 11065 014e 84F84130 strb r3, [r4, #65] +5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11066 .loc 1 5908 5 is_stmt 1 view .LVU3864 +5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11067 .loc 1 5908 25 is_stmt 0 view .LVU3865 + 11068 0152 0023 movs r3, #0 + 11069 0154 2363 str r3, [r4, #48] +5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11070 .loc 1 5911 5 is_stmt 1 view .LVU3866 +5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11071 .loc 1 5911 5 view .LVU3867 + 11072 0156 84F84030 strb r3, [r4, #64] +5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11073 .loc 1 5911 5 view .LVU3868 +5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11074 .loc 1 5917 5 view .LVU3869 + 11075 015a 2046 mov r0, r4 + 11076 015c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback + 11077 .LVL763: + 11078 0160 F3E7 b .L668 + 11079 .L686: + 11080 0162 00BF .align 2 + 11081 .L685: + 11082 0164 0000FFFF .word -65536 + ARM GAS /tmp/ccbUHtu7.s page 380 + + + 11083 .cfi_endproc + 11084 .LFE388: + 11086 .section .text.I2C_Slave_ISR_IT,"ax",%progbits + 11087 .align 1 + 11088 .syntax unified + 11089 .thumb + 11090 .thumb_func + 11092 I2C_Slave_ISR_IT: + 11093 .LVL764: + 11094 .LFB379: +4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 11095 .loc 1 4891 1 view -0 + 11096 .cfi_startproc + 11097 @ args = 0, pretend = 0, frame = 0 + 11098 @ frame_needed = 0, uses_anonymous_args = 0 +4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 11099 .loc 1 4891 1 is_stmt 0 view .LVU3871 + 11100 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 11101 .LCFI121: + 11102 .cfi_def_cfa_offset 24 + 11103 .cfi_offset 3, -24 + 11104 .cfi_offset 4, -20 + 11105 .cfi_offset 5, -16 + 11106 .cfi_offset 6, -12 + 11107 .cfi_offset 7, -8 + 11108 .cfi_offset 14, -4 +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 11109 .loc 1 4892 3 is_stmt 1 view .LVU3872 +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 11110 .loc 1 4892 12 is_stmt 0 view .LVU3873 + 11111 0002 C76A ldr r7, [r0, #44] + 11112 .LVL765: +4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11113 .loc 1 4893 3 is_stmt 1 view .LVU3874 +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11114 .loc 1 4896 3 view .LVU3875 +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11115 .loc 1 4896 3 view .LVU3876 + 11116 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 11117 0008 012B cmp r3, #1 + 11118 000a 00F09E80 beq .L701 + 11119 000e 0446 mov r4, r0 + 11120 0010 0D46 mov r5, r1 + 11121 0012 1646 mov r6, r2 +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11122 .loc 1 4896 3 discriminator 2 view .LVU3877 + 11123 0014 0123 movs r3, #1 + 11124 0016 80F84030 strb r3, [r0, #64] +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11125 .loc 1 4896 3 discriminator 2 view .LVU3878 +4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 11126 .loc 1 4899 3 discriminator 2 view .LVU3879 +4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 11127 .loc 1 4899 6 is_stmt 0 discriminator 2 view .LVU3880 + 11128 001a 11F0200F tst r1, #32 + 11129 001e 02D0 beq .L689 +4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + ARM GAS /tmp/ccbUHtu7.s page 381 + + + 11130 .loc 1 4899 61 discriminator 1 view .LVU3881 + 11131 0020 12F0200F tst r2, #32 + 11132 0024 19D1 bne .L703 + 11133 .LVL766: + 11134 .L689: +4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 11135 .loc 1 4906 3 is_stmt 1 view .LVU3882 +4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 11136 .loc 1 4906 6 is_stmt 0 view .LVU3883 + 11137 0026 15F0100F tst r5, #16 + 11138 002a 3ED0 beq .L690 +4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 11139 .loc 1 4906 58 discriminator 1 view .LVU3884 + 11140 002c 16F0100F tst r6, #16 + 11141 0030 3BD0 beq .L690 +4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11142 .loc 1 4913 5 is_stmt 1 view .LVU3885 +4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11143 .loc 1 4913 13 is_stmt 0 view .LVU3886 + 11144 0032 638D ldrh r3, [r4, #42] + 11145 0034 9BB2 uxth r3, r3 +4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11146 .loc 1 4913 8 view .LVU3887 + 11147 0036 43BB cbnz r3, .L691 +4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 11148 .loc 1 4915 7 is_stmt 1 view .LVU3888 +4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 11149 .loc 1 4915 16 is_stmt 0 view .LVU3889 + 11150 0038 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11151 003c DBB2 uxtb r3, r3 +4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 11152 .loc 1 4915 10 view .LVU3890 + 11153 003e 282B cmp r3, #40 + 11154 0040 0ED0 beq .L704 + 11155 .L692: +4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11156 .loc 1 4922 12 is_stmt 1 view .LVU3891 +4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11157 .loc 1 4922 21 is_stmt 0 view .LVU3892 + 11158 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11159 0046 DBB2 uxtb r3, r3 +4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11160 .loc 1 4922 15 view .LVU3893 + 11161 0048 292B cmp r3, #41 + 11162 004a 11D0 beq .L705 + 11163 .L694: +4937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11164 .loc 1 4937 9 is_stmt 1 view .LVU3894 + 11165 004c 2368 ldr r3, [r4] + 11166 004e 1022 movs r2, #16 + 11167 0050 DA61 str r2, [r3, #28] + 11168 .L693: +5014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11169 .loc 1 5014 3 view .LVU3895 +5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11170 .loc 1 5017 3 view .LVU3896 +5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 382 + + + 11171 .loc 1 5017 3 view .LVU3897 + 11172 0052 0020 movs r0, #0 + 11173 0054 84F84000 strb r0, [r4, #64] +5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11174 .loc 1 5017 3 view .LVU3898 +5019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11175 .loc 1 5019 3 view .LVU3899 + 11176 .LVL767: + 11177 .L688: +5020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11178 .loc 1 5020 1 is_stmt 0 view .LVU3900 + 11179 0058 F8BD pop {r3, r4, r5, r6, r7, pc} + 11180 .LVL768: + 11181 .L703: +4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11182 .loc 1 4903 5 is_stmt 1 view .LVU3901 + 11183 005a FFF7FEFF bl I2C_ITSlaveCplt + 11184 .LVL769: +4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11185 .loc 1 4903 5 is_stmt 0 view .LVU3902 + 11186 005e E2E7 b .L689 + 11187 .L704: +4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 11188 .loc 1 4915 49 discriminator 1 view .LVU3903 + 11189 0060 B7F1007F cmp r7, #33554432 + 11190 0064 EDD1 bne .L692 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11191 .loc 1 4920 9 is_stmt 1 view .LVU3904 + 11192 0066 2946 mov r1, r5 + 11193 0068 2046 mov r0, r4 + 11194 006a FFF7FEFF bl I2C_ITListenCplt + 11195 .LVL770: + 11196 006e F0E7 b .L693 + 11197 .L705: +4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11198 .loc 1 4922 62 is_stmt 0 discriminator 1 view .LVU3905 + 11199 0070 17F5803F cmn r7, #65536 + 11200 0074 EAD0 beq .L694 +4925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11201 .loc 1 4925 9 is_stmt 1 view .LVU3906 + 11202 0076 2368 ldr r3, [r4] + 11203 0078 1022 movs r2, #16 + 11204 007a DA61 str r2, [r3, #28] +4928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11205 .loc 1 4928 9 view .LVU3907 + 11206 007c 2046 mov r0, r4 + 11207 007e FFF7FEFF bl I2C_Flush_TXDR + 11208 .LVL771: +4932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11209 .loc 1 4932 9 view .LVU3908 + 11210 0082 2046 mov r0, r4 + 11211 0084 FFF7FEFF bl I2C_ITSlaveSeqCplt + 11212 .LVL772: + 11213 0088 E3E7 b .L693 + 11214 .L691: +4944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11215 .loc 1 4944 7 view .LVU3909 + ARM GAS /tmp/ccbUHtu7.s page 383 + + + 11216 008a 2368 ldr r3, [r4] + 11217 008c 1022 movs r2, #16 + 11218 008e DA61 str r2, [r3, #28] +4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11219 .loc 1 4947 7 view .LVU3910 +4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11220 .loc 1 4947 11 is_stmt 0 view .LVU3911 + 11221 0090 636C ldr r3, [r4, #68] +4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11222 .loc 1 4947 23 view .LVU3912 + 11223 0092 43F00403 orr r3, r3, #4 + 11224 0096 6364 str r3, [r4, #68] +4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11225 .loc 1 4949 7 is_stmt 1 view .LVU3913 +4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11226 .loc 1 4949 10 is_stmt 0 view .LVU3914 + 11227 0098 17B1 cbz r7, .L695 +4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11228 .loc 1 4949 43 discriminator 1 view .LVU3915 + 11229 009a B7F1807F cmp r7, #16777216 + 11230 009e D8D1 bne .L693 + 11231 .L695: +4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11232 .loc 1 4952 9 is_stmt 1 view .LVU3916 +4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11233 .loc 1 4952 31 is_stmt 0 view .LVU3917 + 11234 00a0 616C ldr r1, [r4, #68] +4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11235 .loc 1 4952 9 view .LVU3918 + 11236 00a2 2046 mov r0, r4 + 11237 00a4 FFF7FEFF bl I2C_ITError + 11238 .LVL773: + 11239 00a8 D3E7 b .L693 + 11240 .L690: +4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + 11241 .loc 1 4956 8 is_stmt 1 view .LVU3919 +4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + 11242 .loc 1 4956 11 is_stmt 0 view .LVU3920 + 11243 00aa 15F0040F tst r5, #4 + 11244 00ae 1FD0 beq .L696 +4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + 11245 .loc 1 4956 65 discriminator 1 view .LVU3921 + 11246 00b0 16F0040F tst r6, #4 + 11247 00b4 1CD0 beq .L696 +4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11248 .loc 1 4959 5 is_stmt 1 view .LVU3922 +4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11249 .loc 1 4959 13 is_stmt 0 view .LVU3923 + 11250 00b6 638D ldrh r3, [r4, #42] + 11251 00b8 9BB2 uxth r3, r3 +4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11252 .loc 1 4959 8 view .LVU3924 + 11253 00ba 73B1 cbz r3, .L697 +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11254 .loc 1 4962 7 is_stmt 1 view .LVU3925 +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11255 .loc 1 4962 38 is_stmt 0 view .LVU3926 + ARM GAS /tmp/ccbUHtu7.s page 384 + + + 11256 00bc 2368 ldr r3, [r4] +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11257 .loc 1 4962 48 view .LVU3927 + 11258 00be 5A6A ldr r2, [r3, #36] +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11259 .loc 1 4962 12 view .LVU3928 + 11260 00c0 636A ldr r3, [r4, #36] +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11261 .loc 1 4962 23 view .LVU3929 + 11262 00c2 1A70 strb r2, [r3] +4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11263 .loc 1 4965 7 is_stmt 1 view .LVU3930 +4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11264 .loc 1 4965 11 is_stmt 0 view .LVU3931 + 11265 00c4 636A ldr r3, [r4, #36] +4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11266 .loc 1 4965 21 view .LVU3932 + 11267 00c6 0133 adds r3, r3, #1 + 11268 00c8 6362 str r3, [r4, #36] +4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11269 .loc 1 4967 7 is_stmt 1 view .LVU3933 +4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11270 .loc 1 4967 11 is_stmt 0 view .LVU3934 + 11271 00ca 238D ldrh r3, [r4, #40] +4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11272 .loc 1 4967 21 view .LVU3935 + 11273 00cc 013B subs r3, r3, #1 + 11274 00ce 2385 strh r3, [r4, #40] @ movhi +4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11275 .loc 1 4968 7 is_stmt 1 view .LVU3936 +4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11276 .loc 1 4968 11 is_stmt 0 view .LVU3937 + 11277 00d0 638D ldrh r3, [r4, #42] + 11278 00d2 9BB2 uxth r3, r3 +4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11279 .loc 1 4968 22 view .LVU3938 + 11280 00d4 013B subs r3, r3, #1 + 11281 00d6 9BB2 uxth r3, r3 + 11282 00d8 6385 strh r3, [r4, #42] @ movhi + 11283 .L697: +4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 11284 .loc 1 4971 5 is_stmt 1 view .LVU3939 +4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 11285 .loc 1 4971 14 is_stmt 0 view .LVU3940 + 11286 00da 638D ldrh r3, [r4, #42] + 11287 00dc 9BB2 uxth r3, r3 +4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 11288 .loc 1 4971 8 view .LVU3941 + 11289 00de 002B cmp r3, #0 + 11290 00e0 B7D1 bne .L693 +4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) + 11291 .loc 1 4971 33 discriminator 1 view .LVU3942 + 11292 00e2 17F5803F cmn r7, #65536 + 11293 00e6 B4D0 beq .L693 +4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11294 .loc 1 4975 7 is_stmt 1 view .LVU3943 + 11295 00e8 2046 mov r0, r4 + ARM GAS /tmp/ccbUHtu7.s page 385 + + + 11296 00ea FFF7FEFF bl I2C_ITSlaveSeqCplt + 11297 .LVL774: + 11298 00ee B0E7 b .L693 + 11299 .L696: +4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + 11300 .loc 1 4978 8 view .LVU3944 +4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + 11301 .loc 1 4978 11 is_stmt 0 view .LVU3945 + 11302 00f0 15F0080F tst r5, #8 + 11303 00f4 02D0 beq .L698 +4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + 11304 .loc 1 4978 65 discriminator 1 view .LVU3946 + 11305 00f6 16F0080F tst r6, #8 + 11306 00fa 18D1 bne .L706 + 11307 .L698: +4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + 11308 .loc 1 4983 8 is_stmt 1 view .LVU3947 +4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + 11309 .loc 1 4983 11 is_stmt 0 view .LVU3948 + 11310 00fc 15F0020F tst r5, #2 + 11311 0100 A7D0 beq .L693 +4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + 11312 .loc 1 4983 65 discriminator 1 view .LVU3949 + 11313 0102 16F0020F tst r6, #2 + 11314 0106 A4D0 beq .L693 +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11315 .loc 1 4990 5 is_stmt 1 view .LVU3950 +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11316 .loc 1 4990 13 is_stmt 0 view .LVU3951 + 11317 0108 638D ldrh r3, [r4, #42] + 11318 010a 9BB2 uxth r3, r3 +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11319 .loc 1 4990 8 view .LVU3952 + 11320 010c A3B1 cbz r3, .L699 +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11321 .loc 1 4993 7 is_stmt 1 view .LVU3953 +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11322 .loc 1 4993 35 is_stmt 0 view .LVU3954 + 11323 010e 626A ldr r2, [r4, #36] +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11324 .loc 1 4993 11 view .LVU3955 + 11325 0110 2368 ldr r3, [r4] +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11326 .loc 1 4993 30 view .LVU3956 + 11327 0112 1278 ldrb r2, [r2] @ zero_extendqisi2 +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11328 .loc 1 4993 28 view .LVU3957 + 11329 0114 9A62 str r2, [r3, #40] +4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11330 .loc 1 4996 7 is_stmt 1 view .LVU3958 +4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11331 .loc 1 4996 11 is_stmt 0 view .LVU3959 + 11332 0116 636A ldr r3, [r4, #36] +4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11333 .loc 1 4996 21 view .LVU3960 + 11334 0118 0133 adds r3, r3, #1 + 11335 011a 6362 str r3, [r4, #36] + ARM GAS /tmp/ccbUHtu7.s page 386 + + +4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 11336 .loc 1 4998 7 is_stmt 1 view .LVU3961 +4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 11337 .loc 1 4998 11 is_stmt 0 view .LVU3962 + 11338 011c 638D ldrh r3, [r4, #42] + 11339 011e 9BB2 uxth r3, r3 +4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; + 11340 .loc 1 4998 22 view .LVU3963 + 11341 0120 013B subs r3, r3, #1 + 11342 0122 9BB2 uxth r3, r3 + 11343 0124 6385 strh r3, [r4, #42] @ movhi +4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11344 .loc 1 4999 7 is_stmt 1 view .LVU3964 +4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11345 .loc 1 4999 11 is_stmt 0 view .LVU3965 + 11346 0126 238D ldrh r3, [r4, #40] +4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11347 .loc 1 4999 21 view .LVU3966 + 11348 0128 013B subs r3, r3, #1 + 11349 012a 2385 strh r3, [r4, #40] @ movhi + 11350 012c 91E7 b .L693 + 11351 .L706: +4981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11352 .loc 1 4981 5 is_stmt 1 view .LVU3967 + 11353 012e 2946 mov r1, r5 + 11354 0130 2046 mov r0, r4 + 11355 0132 FFF7FEFF bl I2C_ITAddrCplt + 11356 .LVL775: + 11357 0136 8CE7 b .L693 + 11358 .L699: +5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11359 .loc 1 5003 7 view .LVU3968 +5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11360 .loc 1 5003 10 is_stmt 0 view .LVU3969 + 11361 0138 B7F1807F cmp r7, #16777216 + 11362 013c 01D0 beq .L700 +5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11363 .loc 1 5003 42 discriminator 1 view .LVU3970 + 11364 013e 002F cmp r7, #0 + 11365 0140 87D1 bne .L693 + 11366 .L700: +5007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11367 .loc 1 5007 9 is_stmt 1 view .LVU3971 + 11368 0142 2046 mov r0, r4 + 11369 0144 FFF7FEFF bl I2C_ITSlaveSeqCplt + 11370 .LVL776: + 11371 0148 83E7 b .L693 + 11372 .LVL777: + 11373 .L701: +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11374 .loc 1 4896 3 is_stmt 0 view .LVU3972 + 11375 014a 0220 movs r0, #2 + 11376 .LVL778: +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11377 .loc 1 4896 3 view .LVU3973 + 11378 014c 84E7 b .L688 + 11379 .cfi_endproc + ARM GAS /tmp/ccbUHtu7.s page 387 + + + 11380 .LFE379: + 11382 .section .text.I2C_ITMasterCplt,"ax",%progbits + 11383 .align 1 + 11384 .syntax unified + 11385 .thumb + 11386 .thumb_func + 11388 I2C_ITMasterCplt: + 11389 .LVL779: + 11390 .LFB387: +5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; + 11391 .loc 1 5642 1 is_stmt 1 view -0 + 11392 .cfi_startproc + 11393 @ args = 0, pretend = 0, frame = 8 + 11394 @ frame_needed = 0, uses_anonymous_args = 0 +5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; + 11395 .loc 1 5642 1 is_stmt 0 view .LVU3975 + 11396 0000 30B5 push {r4, r5, lr} + 11397 .LCFI122: + 11398 .cfi_def_cfa_offset 12 + 11399 .cfi_offset 4, -12 + 11400 .cfi_offset 5, -8 + 11401 .cfi_offset 14, -4 + 11402 0002 83B0 sub sp, sp, #12 + 11403 .LCFI123: + 11404 .cfi_def_cfa_offset 24 + 11405 0004 0446 mov r4, r0 + 11406 0006 0D46 mov r5, r1 +5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 11407 .loc 1 5643 3 is_stmt 1 view .LVU3976 +5644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; + 11408 .loc 1 5644 3 view .LVU3977 + 11409 .LVL780: +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11410 .loc 1 5645 3 view .LVU3978 +5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11411 .loc 1 5648 3 view .LVU3979 + 11412 0008 0368 ldr r3, [r0] + 11413 000a 2022 movs r2, #32 + 11414 000c DA61 str r2, [r3, #28] +5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11415 .loc 1 5651 3 view .LVU3980 +5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11416 .loc 1 5651 11 is_stmt 0 view .LVU3981 + 11417 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 11418 0012 DBB2 uxtb r3, r3 +5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11419 .loc 1 5651 6 view .LVU3982 + 11420 0014 212B cmp r3, #33 + 11421 0016 33D0 beq .L719 +5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11422 .loc 1 5656 8 is_stmt 1 view .LVU3983 +5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11423 .loc 1 5656 16 is_stmt 0 view .LVU3984 + 11424 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 11425 001c DBB2 uxtb r3, r3 +5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11426 .loc 1 5656 11 view .LVU3985 + ARM GAS /tmp/ccbUHtu7.s page 388 + + + 11427 001e 222B cmp r3, #34 + 11428 0020 34D0 beq .L720 + 11429 .LVL781: + 11430 .L709: +5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11431 .loc 1 5664 3 is_stmt 1 view .LVU3986 +5667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11432 .loc 1 5667 3 view .LVU3987 + 11433 0022 2268 ldr r2, [r4] + 11434 0024 5368 ldr r3, [r2, #4] + 11435 0026 23F0FF73 bic r3, r3, #33423360 + 11436 002a 23F48B33 bic r3, r3, #71168 + 11437 002e 23F4FF73 bic r3, r3, #510 + 11438 0032 23F00103 bic r3, r3, #1 + 11439 0036 5360 str r3, [r2, #4] +5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 11440 .loc 1 5670 3 view .LVU3988 +5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; + 11441 .loc 1 5670 23 is_stmt 0 view .LVU3989 + 11442 0038 0023 movs r3, #0 + 11443 003a 6363 str r3, [r4, #52] +5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11444 .loc 1 5671 3 is_stmt 1 view .LVU3990 +5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11445 .loc 1 5671 23 is_stmt 0 view .LVU3991 + 11446 003c A3F58033 sub r3, r3, #65536 + 11447 0040 E362 str r3, [r4, #44] +5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11448 .loc 1 5673 3 is_stmt 1 view .LVU3992 +5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11449 .loc 1 5673 6 is_stmt 0 view .LVU3993 + 11450 0042 15F0100F tst r5, #16 + 11451 0046 06D0 beq .L710 +5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11452 .loc 1 5676 5 is_stmt 1 view .LVU3994 + 11453 0048 2368 ldr r3, [r4] + 11454 004a 1022 movs r2, #16 + 11455 004c DA61 str r2, [r3, #28] +5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11456 .loc 1 5679 5 view .LVU3995 +5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11457 .loc 1 5679 9 is_stmt 0 view .LVU3996 + 11458 004e 636C ldr r3, [r4, #68] +5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11459 .loc 1 5679 21 view .LVU3997 + 11460 0050 43F00403 orr r3, r3, #4 + 11461 0054 6364 str r3, [r4, #68] + 11462 .L710: +5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11463 .loc 1 5683 3 is_stmt 1 view .LVU3998 +5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11464 .loc 1 5683 12 is_stmt 0 view .LVU3999 + 11465 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11466 005a DBB2 uxtb r3, r3 +5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11467 .loc 1 5683 6 view .LVU4000 + 11468 005c 602B cmp r3, #96 + ARM GAS /tmp/ccbUHtu7.s page 389 + + + 11469 005e 1BD0 beq .L721 + 11470 .L711: +5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11471 .loc 1 5691 3 is_stmt 1 view .LVU4001 + 11472 0060 2046 mov r0, r4 + 11473 0062 FFF7FEFF bl I2C_Flush_TXDR + 11474 .LVL782: +5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11475 .loc 1 5694 3 view .LVU4002 +5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11476 .loc 1 5694 12 is_stmt 0 view .LVU4003 + 11477 0066 626C ldr r2, [r4, #68] + 11478 .LVL783: +5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11479 .loc 1 5697 3 is_stmt 1 view .LVU4004 +5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11480 .loc 1 5697 12 is_stmt 0 view .LVU4005 + 11481 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11482 006c DBB2 uxtb r3, r3 +5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11483 .loc 1 5697 6 view .LVU4006 + 11484 006e 602B cmp r3, #96 + 11485 0070 00D0 beq .L712 +5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11486 .loc 1 5697 44 discriminator 1 view .LVU4007 + 11487 0072 D2B1 cbz r2, .L713 + 11488 .L712: +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11489 .loc 1 5700 5 is_stmt 1 view .LVU4008 +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11490 .loc 1 5700 27 is_stmt 0 view .LVU4009 + 11491 0074 616C ldr r1, [r4, #68] +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11492 .loc 1 5700 5 view .LVU4010 + 11493 0076 2046 mov r0, r4 + 11494 0078 FFF7FEFF bl I2C_ITError + 11495 .LVL784: + 11496 .L707: +5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11497 .loc 1 5776 1 view .LVU4011 + 11498 007c 03B0 add sp, sp, #12 + 11499 .LCFI124: + 11500 .cfi_remember_state + 11501 .cfi_def_cfa_offset 12 + 11502 @ sp needed + 11503 007e 30BD pop {r4, r5, pc} + 11504 .LVL785: + 11505 .L719: + 11506 .LCFI125: + 11507 .cfi_restore_state +5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + 11508 .loc 1 5653 5 is_stmt 1 view .LVU4012 + 11509 0080 0121 movs r1, #1 + 11510 .LVL786: +5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + 11511 .loc 1 5653 5 is_stmt 0 view .LVU4013 + 11512 0082 FFF7FEFF bl I2C_Disable_IRQ + ARM GAS /tmp/ccbUHtu7.s page 390 + + + 11513 .LVL787: +5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11514 .loc 1 5654 5 is_stmt 1 view .LVU4014 +5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11515 .loc 1 5654 25 is_stmt 0 view .LVU4015 + 11516 0086 1123 movs r3, #17 + 11517 0088 2363 str r3, [r4, #48] + 11518 008a CAE7 b .L709 + 11519 .LVL788: + 11520 .L720: +5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + 11521 .loc 1 5658 5 is_stmt 1 view .LVU4016 + 11522 008c 0221 movs r1, #2 + 11523 .LVL789: +5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + 11524 .loc 1 5658 5 is_stmt 0 view .LVU4017 + 11525 008e FFF7FEFF bl I2C_Disable_IRQ + 11526 .LVL790: +5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11527 .loc 1 5659 5 is_stmt 1 view .LVU4018 +5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11528 .loc 1 5659 25 is_stmt 0 view .LVU4019 + 11529 0092 1223 movs r3, #18 + 11530 0094 2363 str r3, [r4, #48] + 11531 0096 C4E7 b .L709 + 11532 .L721: +5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11533 .loc 1 5683 44 discriminator 1 view .LVU4020 + 11534 0098 15F0040F tst r5, #4 + 11535 009c E0D0 beq .L711 +5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); + 11536 .loc 1 5686 5 is_stmt 1 view .LVU4021 +5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); + 11537 .loc 1 5686 27 is_stmt 0 view .LVU4022 + 11538 009e 2368 ldr r3, [r4] +5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); + 11539 .loc 1 5686 37 view .LVU4023 + 11540 00a0 5B6A ldr r3, [r3, #36] + 11541 00a2 DBB2 uxtb r3, r3 +5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); + 11542 .loc 1 5686 12 view .LVU4024 + 11543 00a4 0193 str r3, [sp, #4] +5687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11544 .loc 1 5687 5 is_stmt 1 view .LVU4025 + 11545 00a6 019B ldr r3, [sp, #4] + 11546 00a8 DAE7 b .L711 + 11547 .LVL791: + 11548 .L713: +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11549 .loc 1 5703 8 view .LVU4026 +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11550 .loc 1 5703 16 is_stmt 0 view .LVU4027 + 11551 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11552 00ae DBB2 uxtb r3, r3 +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11553 .loc 1 5703 11 view .LVU4028 + 11554 00b0 212B cmp r3, #33 + ARM GAS /tmp/ccbUHtu7.s page 391 + + + 11555 00b2 17D0 beq .L722 +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11556 .loc 1 5738 8 is_stmt 1 view .LVU4029 +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11557 .loc 1 5738 16 is_stmt 0 view .LVU4030 + 11558 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 11559 00b8 DBB2 uxtb r3, r3 +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11560 .loc 1 5738 11 view .LVU4031 + 11561 00ba 222B cmp r3, #34 + 11562 00bc DED1 bne .L707 +5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11563 .loc 1 5740 5 is_stmt 1 view .LVU4032 +5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11564 .loc 1 5740 17 is_stmt 0 view .LVU4033 + 11565 00be 2023 movs r3, #32 + 11566 00c0 84F84130 strb r3, [r4, #65] +5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11567 .loc 1 5741 5 is_stmt 1 view .LVU4034 +5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11568 .loc 1 5741 25 is_stmt 0 view .LVU4035 + 11569 00c4 0023 movs r3, #0 + 11570 00c6 2363 str r3, [r4, #48] +5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11571 .loc 1 5743 5 is_stmt 1 view .LVU4036 +5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11572 .loc 1 5743 13 is_stmt 0 view .LVU4037 + 11573 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 + 11574 00cc DBB2 uxtb r3, r3 +5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11575 .loc 1 5743 8 view .LVU4038 + 11576 00ce 402B cmp r3, #64 + 11577 00d0 24D0 beq .L723 +5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11578 .loc 1 5759 7 is_stmt 1 view .LVU4039 +5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11579 .loc 1 5759 18 is_stmt 0 view .LVU4040 + 11580 00d2 0023 movs r3, #0 + 11581 00d4 84F84230 strb r3, [r4, #66] +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11582 .loc 1 5762 7 is_stmt 1 view .LVU4041 +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11583 .loc 1 5762 7 view .LVU4042 + 11584 00d8 84F84030 strb r3, [r4, #64] +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11585 .loc 1 5762 7 view .LVU4043 +5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11586 .loc 1 5768 7 view .LVU4044 + 11587 00dc 2046 mov r0, r4 + 11588 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback + 11589 .LVL792: +5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11590 .loc 1 5775 3 view .LVU4045 +5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11591 .loc 1 5776 1 is_stmt 0 view .LVU4046 + 11592 00e2 CBE7 b .L707 + 11593 .LVL793: + ARM GAS /tmp/ccbUHtu7.s page 392 + + + 11594 .L722: +5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11595 .loc 1 5705 5 is_stmt 1 view .LVU4047 +5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; + 11596 .loc 1 5705 17 is_stmt 0 view .LVU4048 + 11597 00e4 2023 movs r3, #32 + 11598 00e6 84F84130 strb r3, [r4, #65] +5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11599 .loc 1 5706 5 is_stmt 1 view .LVU4049 +5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11600 .loc 1 5706 25 is_stmt 0 view .LVU4050 + 11601 00ea 0023 movs r3, #0 + 11602 00ec 2363 str r3, [r4, #48] +5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11603 .loc 1 5708 5 is_stmt 1 view .LVU4051 +5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11604 .loc 1 5708 13 is_stmt 0 view .LVU4052 + 11605 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 + 11606 00f2 DBB2 uxtb r3, r3 +5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11607 .loc 1 5708 8 view .LVU4053 + 11608 00f4 402B cmp r3, #64 + 11609 00f6 08D0 beq .L724 +5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11610 .loc 1 5724 7 is_stmt 1 view .LVU4054 +5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11611 .loc 1 5724 18 is_stmt 0 view .LVU4055 + 11612 00f8 0023 movs r3, #0 + 11613 00fa 84F84230 strb r3, [r4, #66] +5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11614 .loc 1 5727 7 is_stmt 1 view .LVU4056 +5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11615 .loc 1 5727 7 view .LVU4057 + 11616 00fe 84F84030 strb r3, [r4, #64] +5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11617 .loc 1 5727 7 view .LVU4058 +5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11618 .loc 1 5733 7 view .LVU4059 + 11619 0102 2046 mov r0, r4 + 11620 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback + 11621 .LVL794: +5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11622 .loc 1 5733 7 is_stmt 0 view .LVU4060 + 11623 0108 B8E7 b .L707 + 11624 .LVL795: + 11625 .L724: +5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11626 .loc 1 5710 7 is_stmt 1 view .LVU4061 +5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11627 .loc 1 5710 18 is_stmt 0 view .LVU4062 + 11628 010a 0023 movs r3, #0 + 11629 010c 84F84230 strb r3, [r4, #66] +5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11630 .loc 1 5713 7 is_stmt 1 view .LVU4063 +5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11631 .loc 1 5713 7 view .LVU4064 + 11632 0110 84F84030 strb r3, [r4, #64] + ARM GAS /tmp/ccbUHtu7.s page 393 + + +5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11633 .loc 1 5713 7 view .LVU4065 +5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11634 .loc 1 5719 7 view .LVU4066 + 11635 0114 2046 mov r0, r4 + 11636 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback + 11637 .LVL796: +5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11638 .loc 1 5719 7 is_stmt 0 view .LVU4067 + 11639 011a AFE7 b .L707 + 11640 .LVL797: + 11641 .L723: +5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11642 .loc 1 5745 7 is_stmt 1 view .LVU4068 +5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11643 .loc 1 5745 18 is_stmt 0 view .LVU4069 + 11644 011c 0023 movs r3, #0 + 11645 011e 84F84230 strb r3, [r4, #66] +5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11646 .loc 1 5748 7 is_stmt 1 view .LVU4070 +5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11647 .loc 1 5748 7 view .LVU4071 + 11648 0122 84F84030 strb r3, [r4, #64] +5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11649 .loc 1 5748 7 view .LVU4072 +5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11650 .loc 1 5754 7 view .LVU4073 + 11651 0126 2046 mov r0, r4 + 11652 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback + 11653 .LVL798: +5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + 11654 .loc 1 5754 7 is_stmt 0 view .LVU4074 + 11655 012c A6E7 b .L707 + 11656 .cfi_endproc + 11657 .LFE387: + 11659 .section .text.I2C_Master_ISR_IT,"ax",%progbits + 11660 .align 1 + 11661 .syntax unified + 11662 .thumb + 11663 .thumb_func + 11665 I2C_Master_ISR_IT: + 11666 .LVL799: + 11667 .LFB378: +4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; + 11668 .loc 1 4745 1 is_stmt 1 view -0 + 11669 .cfi_startproc + 11670 @ args = 0, pretend = 0, frame = 0 + 11671 @ frame_needed = 0, uses_anonymous_args = 0 +4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; + 11672 .loc 1 4746 3 view .LVU4076 +4747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11673 .loc 1 4747 3 view .LVU4077 +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11674 .loc 1 4750 3 view .LVU4078 +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11675 .loc 1 4750 3 view .LVU4079 + 11676 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + ARM GAS /tmp/ccbUHtu7.s page 394 + + + 11677 0004 012B cmp r3, #1 + 11678 0006 00F0B980 beq .L739 +4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; + 11679 .loc 1 4745 1 is_stmt 0 discriminator 2 view .LVU4080 + 11680 000a 70B5 push {r4, r5, r6, lr} + 11681 .LCFI126: + 11682 .cfi_def_cfa_offset 16 + 11683 .cfi_offset 4, -16 + 11684 .cfi_offset 5, -12 + 11685 .cfi_offset 6, -8 + 11686 .cfi_offset 14, -4 + 11687 000c 82B0 sub sp, sp, #8 + 11688 .LCFI127: + 11689 .cfi_def_cfa_offset 24 + 11690 000e 0446 mov r4, r0 + 11691 0010 0D46 mov r5, r1 + 11692 0012 1646 mov r6, r2 +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11693 .loc 1 4750 3 is_stmt 1 discriminator 2 view .LVU4081 + 11694 0014 0123 movs r3, #1 + 11695 0016 80F84030 strb r3, [r0, #64] +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11696 .loc 1 4750 3 discriminator 2 view .LVU4082 +4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 11697 .loc 1 4752 3 discriminator 2 view .LVU4083 +4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 11698 .loc 1 4752 6 is_stmt 0 discriminator 2 view .LVU4084 + 11699 001a 11F0100F tst r1, #16 + 11700 001e 02D0 beq .L727 +4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 11701 .loc 1 4752 58 discriminator 1 view .LVU4085 + 11702 0020 12F0100F tst r2, #16 + 11703 0024 22D1 bne .L744 + 11704 .L727: +4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + 11705 .loc 1 4766 8 is_stmt 1 view .LVU4086 +4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + 11706 .loc 1 4766 11 is_stmt 0 view .LVU4087 + 11707 0026 15F0040F tst r5, #4 + 11708 002a 29D0 beq .L729 +4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + 11709 .loc 1 4766 65 discriminator 1 view .LVU4088 + 11710 002c 16F0040F tst r6, #4 + 11711 0030 26D0 beq .L729 +4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11712 .loc 1 4770 5 is_stmt 1 view .LVU4089 +4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11713 .loc 1 4770 16 is_stmt 0 view .LVU4090 + 11714 0032 25F00405 bic r5, r5, #4 + 11715 .LVL800: +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11716 .loc 1 4773 5 is_stmt 1 view .LVU4091 +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11717 .loc 1 4773 36 is_stmt 0 view .LVU4092 + 11718 0036 2368 ldr r3, [r4] +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11719 .loc 1 4773 46 view .LVU4093 + ARM GAS /tmp/ccbUHtu7.s page 395 + + + 11720 0038 5A6A ldr r2, [r3, #36] + 11721 .LVL801: +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11722 .loc 1 4773 10 view .LVU4094 + 11723 003a 636A ldr r3, [r4, #36] +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11724 .loc 1 4773 21 view .LVU4095 + 11725 003c 1A70 strb r2, [r3] +4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11726 .loc 1 4776 5 is_stmt 1 view .LVU4096 +4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11727 .loc 1 4776 9 is_stmt 0 view .LVU4097 + 11728 003e 636A ldr r3, [r4, #36] +4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11729 .loc 1 4776 19 view .LVU4098 + 11730 0040 0133 adds r3, r3, #1 + 11731 0042 6362 str r3, [r4, #36] +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11732 .loc 1 4778 5 is_stmt 1 view .LVU4099 +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11733 .loc 1 4778 9 is_stmt 0 view .LVU4100 + 11734 0044 238D ldrh r3, [r4, #40] +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11735 .loc 1 4778 19 view .LVU4101 + 11736 0046 013B subs r3, r3, #1 + 11737 0048 2385 strh r3, [r4, #40] @ movhi +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11738 .loc 1 4779 5 is_stmt 1 view .LVU4102 +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11739 .loc 1 4779 9 is_stmt 0 view .LVU4103 + 11740 004a 638D ldrh r3, [r4, #42] + 11741 004c 9BB2 uxth r3, r3 +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11742 .loc 1 4779 20 view .LVU4104 + 11743 004e 013B subs r3, r3, #1 + 11744 0050 9BB2 uxth r3, r3 + 11745 0052 6385 strh r3, [r4, #42] @ movhi + 11746 .LVL802: + 11747 .L728: +4866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11748 .loc 1 4866 3 is_stmt 1 view .LVU4105 +4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 11749 .loc 1 4868 3 view .LVU4106 +4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 11750 .loc 1 4868 6 is_stmt 0 view .LVU4107 + 11751 0054 15F0200F tst r5, #32 + 11752 0058 03D0 beq .L738 +4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 11753 .loc 1 4868 61 discriminator 1 view .LVU4108 + 11754 005a 16F0200F tst r6, #32 + 11755 005e 40F08880 bne .L745 + 11756 .L738: +4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11757 .loc 1 4876 3 is_stmt 1 view .LVU4109 +4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11758 .loc 1 4876 3 view .LVU4110 + 11759 0062 0020 movs r0, #0 + ARM GAS /tmp/ccbUHtu7.s page 396 + + + 11760 0064 84F84000 strb r0, [r4, #64] +4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11761 .loc 1 4876 3 view .LVU4111 +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11762 .loc 1 4878 3 view .LVU4112 +4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11763 .loc 1 4879 1 is_stmt 0 view .LVU4113 + 11764 0068 02B0 add sp, sp, #8 + 11765 .LCFI128: + 11766 .cfi_remember_state + 11767 .cfi_def_cfa_offset 16 + 11768 @ sp needed + 11769 006a 70BD pop {r4, r5, r6, pc} + 11770 .LVL803: + 11771 .L744: + 11772 .LCFI129: + 11773 .cfi_restore_state +4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11774 .loc 1 4756 5 is_stmt 1 view .LVU4114 + 11775 006c 0368 ldr r3, [r0] + 11776 006e 1022 movs r2, #16 + 11777 .LVL804: +4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11778 .loc 1 4756 5 is_stmt 0 view .LVU4115 + 11779 0070 DA61 str r2, [r3, #28] +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11780 .loc 1 4761 5 is_stmt 1 view .LVU4116 +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11781 .loc 1 4761 9 is_stmt 0 view .LVU4117 + 11782 0072 436C ldr r3, [r0, #68] +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11783 .loc 1 4761 21 view .LVU4118 + 11784 0074 43F00403 orr r3, r3, #4 + 11785 0078 4364 str r3, [r0, #68] +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11786 .loc 1 4764 5 is_stmt 1 view .LVU4119 + 11787 007a FFF7FEFF bl I2C_Flush_TXDR + 11788 .LVL805: +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11789 .loc 1 4764 5 is_stmt 0 view .LVU4120 + 11790 007e E9E7 b .L728 + 11791 .LVL806: + 11792 .L729: +4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + 11793 .loc 1 4781 8 is_stmt 1 view .LVU4121 +4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + 11794 .loc 1 4781 11 is_stmt 0 view .LVU4122 + 11795 0080 15F0020F tst r5, #2 + 11796 0084 12D0 beq .L730 +4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + 11797 .loc 1 4781 65 discriminator 1 view .LVU4123 + 11798 0086 16F0020F tst r6, #2 + 11799 008a 0FD0 beq .L730 +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11800 .loc 1 4785 5 is_stmt 1 view .LVU4124 +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11801 .loc 1 4785 33 is_stmt 0 view .LVU4125 + ARM GAS /tmp/ccbUHtu7.s page 397 + + + 11802 008c 626A ldr r2, [r4, #36] + 11803 .LVL807: +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11804 .loc 1 4785 9 view .LVU4126 + 11805 008e 2368 ldr r3, [r4] +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11806 .loc 1 4785 28 view .LVU4127 + 11807 0090 1278 ldrb r2, [r2] @ zero_extendqisi2 +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11808 .loc 1 4785 26 view .LVU4128 + 11809 0092 9A62 str r2, [r3, #40] +4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11810 .loc 1 4788 5 is_stmt 1 view .LVU4129 +4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11811 .loc 1 4788 9 is_stmt 0 view .LVU4130 + 11812 0094 636A ldr r3, [r4, #36] +4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11813 .loc 1 4788 19 view .LVU4131 + 11814 0096 0133 adds r3, r3, #1 + 11815 0098 6362 str r3, [r4, #36] +4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11816 .loc 1 4790 5 is_stmt 1 view .LVU4132 +4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11817 .loc 1 4790 9 is_stmt 0 view .LVU4133 + 11818 009a 238D ldrh r3, [r4, #40] +4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; + 11819 .loc 1 4790 19 view .LVU4134 + 11820 009c 013B subs r3, r3, #1 + 11821 009e 2385 strh r3, [r4, #40] @ movhi +4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11822 .loc 1 4791 5 is_stmt 1 view .LVU4135 +4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11823 .loc 1 4791 9 is_stmt 0 view .LVU4136 + 11824 00a0 638D ldrh r3, [r4, #42] + 11825 00a2 9BB2 uxth r3, r3 +4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11826 .loc 1 4791 20 view .LVU4137 + 11827 00a4 013B subs r3, r3, #1 + 11828 00a6 9BB2 uxth r3, r3 + 11829 00a8 6385 strh r3, [r4, #42] @ movhi + 11830 00aa D3E7 b .L728 + 11831 .LVL808: + 11832 .L730: +4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 11833 .loc 1 4793 8 is_stmt 1 view .LVU4138 +4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 11834 .loc 1 4793 11 is_stmt 0 view .LVU4139 + 11835 00ac 15F0800F tst r5, #128 + 11836 00b0 3FD0 beq .L731 +4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 11837 .loc 1 4793 64 discriminator 1 view .LVU4140 + 11838 00b2 16F0400F tst r6, #64 + 11839 00b6 3CD0 beq .L731 +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11840 .loc 1 4796 5 is_stmt 1 view .LVU4141 +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11841 .loc 1 4796 14 is_stmt 0 view .LVU4142 + ARM GAS /tmp/ccbUHtu7.s page 398 + + + 11842 00b8 638D ldrh r3, [r4, #42] + 11843 00ba 9BB2 uxth r3, r3 +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11844 .loc 1 4796 8 view .LVU4143 + 11845 00bc 5BB3 cbz r3, .L732 +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11846 .loc 1 4796 41 discriminator 1 view .LVU4144 + 11847 00be 238D ldrh r3, [r4, #40] +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11848 .loc 1 4796 33 discriminator 1 view .LVU4145 + 11849 00c0 4BBB cbnz r3, .L732 +4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11850 .loc 1 4798 7 is_stmt 1 view .LVU4146 +4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11851 .loc 1 4798 35 is_stmt 0 view .LVU4147 + 11852 00c2 2368 ldr r3, [r4] +4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11853 .loc 1 4798 45 view .LVU4148 + 11854 00c4 5968 ldr r1, [r3, #4] + 11855 .LVL809: +4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 11856 .loc 1 4798 18 view .LVU4149 + 11857 00c6 C1F30901 ubfx r1, r1, #0, #10 + 11858 .LVL810: +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11859 .loc 1 4800 7 is_stmt 1 view .LVU4150 +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11860 .loc 1 4800 15 is_stmt 0 view .LVU4151 + 11861 00ca 638D ldrh r3, [r4, #42] + 11862 00cc 9BB2 uxth r3, r3 +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11863 .loc 1 4800 10 view .LVU4152 + 11864 00ce FF2B cmp r3, #255 + 11865 00d0 0ED8 bhi .L746 +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + 11866 .loc 1 4807 9 is_stmt 1 view .LVU4153 +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + 11867 .loc 1 4807 30 is_stmt 0 view .LVU4154 + 11868 00d2 628D ldrh r2, [r4, #42] + 11869 .LVL811: +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + 11870 .loc 1 4807 30 view .LVU4155 + 11871 00d4 92B2 uxth r2, r2 +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + 11872 .loc 1 4807 24 view .LVU4156 + 11873 00d6 2285 strh r2, [r4, #40] @ movhi +4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11874 .loc 1 4808 9 is_stmt 1 view .LVU4157 +4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11875 .loc 1 4808 17 is_stmt 0 view .LVU4158 + 11876 00d8 E36A ldr r3, [r4, #44] +4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11877 .loc 1 4808 12 view .LVU4159 + 11878 00da 13F5803F cmn r3, #65536 + 11879 00de 11D0 beq .L734 +4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); + 11880 .loc 1 4810 11 is_stmt 1 view .LVU4160 + ARM GAS /tmp/ccbUHtu7.s page 399 + + +4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11881 .loc 1 4811 34 is_stmt 0 view .LVU4161 + 11882 00e0 E36A ldr r3, [r4, #44] +4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); + 11883 .loc 1 4810 11 view .LVU4162 + 11884 00e2 0020 movs r0, #0 + 11885 .LVL812: +4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); + 11886 .loc 1 4810 11 view .LVU4163 + 11887 00e4 0090 str r0, [sp] + 11888 00e6 D2B2 uxtb r2, r2 + 11889 00e8 2046 mov r0, r4 + 11890 00ea FFF7FEFF bl I2C_TransferConfig + 11891 .LVL813: +4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); + 11892 .loc 1 4810 11 view .LVU4164 + 11893 00ee B1E7 b .L728 + 11894 .LVL814: + 11895 .L746: +4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START + 11896 .loc 1 4802 9 is_stmt 1 view .LVU4165 +4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START + 11897 .loc 1 4802 24 is_stmt 0 view .LVU4166 + 11898 00f0 FF22 movs r2, #255 + 11899 .LVL815: +4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START + 11900 .loc 1 4802 24 view .LVU4167 + 11901 00f2 2285 strh r2, [r4, #40] @ movhi +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11902 .loc 1 4803 9 is_stmt 1 view .LVU4168 + 11903 00f4 0023 movs r3, #0 + 11904 00f6 0093 str r3, [sp] + 11905 00f8 4FF08073 mov r3, #16777216 + 11906 00fc 2046 mov r0, r4 + 11907 .LVL816: +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11908 .loc 1 4803 9 is_stmt 0 view .LVU4169 + 11909 00fe FFF7FEFF bl I2C_TransferConfig + 11910 .LVL817: +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11911 .loc 1 4803 9 view .LVU4170 + 11912 0102 A7E7 b .L728 + 11913 .LVL818: + 11914 .L734: +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + 11915 .loc 1 4815 11 is_stmt 1 view .LVU4171 + 11916 0104 0023 movs r3, #0 + 11917 0106 0093 str r3, [sp] + 11918 0108 4FF00073 mov r3, #33554432 + 11919 010c D2B2 uxtb r2, r2 + 11920 010e 2046 mov r0, r4 + 11921 .LVL819: +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + 11922 .loc 1 4815 11 is_stmt 0 view .LVU4172 + 11923 0110 FFF7FEFF bl I2C_TransferConfig + 11924 .LVL820: +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + ARM GAS /tmp/ccbUHtu7.s page 400 + + + 11925 .loc 1 4815 11 view .LVU4173 + 11926 0114 9EE7 b .L728 + 11927 .LVL821: + 11928 .L732: +4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11929 .loc 1 4823 7 is_stmt 1 view .LVU4174 +4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11930 .loc 1 4823 11 is_stmt 0 view .LVU4175 + 11931 0116 2368 ldr r3, [r4] + 11932 0118 5B68 ldr r3, [r3, #4] +4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11933 .loc 1 4823 10 view .LVU4176 + 11934 011a 13F0007F tst r3, #33554432 + 11935 011e 03D1 bne .L735 +4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11936 .loc 1 4826 9 is_stmt 1 view .LVU4177 + 11937 0120 2046 mov r0, r4 + 11938 .LVL822: +4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11939 .loc 1 4826 9 is_stmt 0 view .LVU4178 + 11940 0122 FFF7FEFF bl I2C_ITMasterSeqCplt + 11941 .LVL823: +4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11942 .loc 1 4826 9 view .LVU4179 + 11943 0126 95E7 b .L728 + 11944 .LVL824: + 11945 .L735: +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11946 .loc 1 4832 9 is_stmt 1 view .LVU4180 + 11947 0128 4021 movs r1, #64 + 11948 .LVL825: +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11949 .loc 1 4832 9 is_stmt 0 view .LVU4181 + 11950 012a 2046 mov r0, r4 + 11951 .LVL826: +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11952 .loc 1 4832 9 view .LVU4182 + 11953 012c FFF7FEFF bl I2C_ITError + 11954 .LVL827: +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11955 .loc 1 4832 9 view .LVU4183 + 11956 0130 90E7 b .L728 + 11957 .LVL828: + 11958 .L731: +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 11959 .loc 1 4836 8 is_stmt 1 view .LVU4184 +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 11960 .loc 1 4836 11 is_stmt 0 view .LVU4185 + 11961 0132 15F0400F tst r5, #64 + 11962 0136 8DD0 beq .L728 +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 11963 .loc 1 4836 63 discriminator 1 view .LVU4186 + 11964 0138 16F0400F tst r6, #64 + 11965 013c 8AD0 beq .L728 +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11966 .loc 1 4839 5 is_stmt 1 view .LVU4187 +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 401 + + + 11967 .loc 1 4839 13 is_stmt 0 view .LVU4188 + 11968 013e 638D ldrh r3, [r4, #42] + 11969 0140 9BB2 uxth r3, r3 +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11970 .loc 1 4839 8 view .LVU4189 + 11971 0142 8BB9 cbnz r3, .L736 +4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11972 .loc 1 4841 7 is_stmt 1 view .LVU4190 +4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11973 .loc 1 4841 11 is_stmt 0 view .LVU4191 + 11974 0144 2368 ldr r3, [r4] + 11975 0146 5A68 ldr r2, [r3, #4] + 11976 .LVL829: +4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11977 .loc 1 4841 10 view .LVU4192 + 11978 0148 12F0007F tst r2, #33554432 + 11979 014c 82D1 bne .L728 +4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11980 .loc 1 4844 9 is_stmt 1 view .LVU4193 +4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11981 .loc 1 4844 17 is_stmt 0 view .LVU4194 + 11982 014e E26A ldr r2, [r4, #44] +4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 11983 .loc 1 4844 12 view .LVU4195 + 11984 0150 12F5803F cmn r2, #65536 + 11985 0154 04D1 bne .L737 +4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11986 .loc 1 4847 11 is_stmt 1 view .LVU4196 +4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11987 .loc 1 4847 25 is_stmt 0 view .LVU4197 + 11988 0156 5A68 ldr r2, [r3, #4] +4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11989 .loc 1 4847 31 view .LVU4198 + 11990 0158 42F48042 orr r2, r2, #16384 + 11991 015c 5A60 str r2, [r3, #4] + 11992 015e 79E7 b .L728 + 11993 .L737: +4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11994 .loc 1 4852 11 is_stmt 1 view .LVU4199 + 11995 0160 2046 mov r0, r4 + 11996 .LVL830: +4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 11997 .loc 1 4852 11 is_stmt 0 view .LVU4200 + 11998 0162 FFF7FEFF bl I2C_ITMasterSeqCplt + 11999 .LVL831: +4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12000 .loc 1 4852 11 view .LVU4201 + 12001 0166 75E7 b .L728 + 12002 .LVL832: + 12003 .L736: +4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12004 .loc 1 4860 7 is_stmt 1 view .LVU4202 + 12005 0168 4021 movs r1, #64 + 12006 .LVL833: +4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12007 .loc 1 4860 7 is_stmt 0 view .LVU4203 + 12008 016a 2046 mov r0, r4 + ARM GAS /tmp/ccbUHtu7.s page 402 + + + 12009 .LVL834: +4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12010 .loc 1 4860 7 view .LVU4204 + 12011 016c FFF7FEFF bl I2C_ITError + 12012 .LVL835: +4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12013 .loc 1 4860 7 view .LVU4205 + 12014 0170 70E7 b .L728 + 12015 .LVL836: + 12016 .L745: +4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12017 .loc 1 4872 5 is_stmt 1 view .LVU4206 + 12018 0172 2946 mov r1, r5 + 12019 0174 2046 mov r0, r4 + 12020 0176 FFF7FEFF bl I2C_ITMasterCplt + 12021 .LVL837: + 12022 017a 72E7 b .L738 + 12023 .LVL838: + 12024 .L739: + 12025 .LCFI130: + 12026 .cfi_def_cfa_offset 0 + 12027 .cfi_restore 4 + 12028 .cfi_restore 5 + 12029 .cfi_restore 6 + 12030 .cfi_restore 14 +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12031 .loc 1 4750 3 is_stmt 0 view .LVU4207 + 12032 017c 0220 movs r0, #2 + 12033 .LVL839: +4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12034 .loc 1 4879 1 view .LVU4208 + 12035 017e 7047 bx lr + 12036 .cfi_endproc + 12037 .LFE378: + 12039 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits + 12040 .align 1 + 12041 .syntax unified + 12042 .thumb + 12043 .thumb_func + 12045 I2C_Slave_ISR_DMA: + 12046 .LVL840: + 12047 .LFB381: +5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 12048 .loc 1 5172 1 is_stmt 1 view -0 + 12049 .cfi_startproc + 12050 @ args = 0, pretend = 0, frame = 0 + 12051 @ frame_needed = 0, uses_anonymous_args = 0 +5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; + 12052 .loc 1 5172 1 is_stmt 0 view .LVU4210 + 12053 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 12054 .LCFI131: + 12055 .cfi_def_cfa_offset 24 + 12056 .cfi_offset 3, -24 + 12057 .cfi_offset 4, -20 + 12058 .cfi_offset 5, -16 + 12059 .cfi_offset 6, -12 + 12060 .cfi_offset 7, -8 + ARM GAS /tmp/ccbUHtu7.s page 403 + + + 12061 .cfi_offset 14, -4 +5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; + 12062 .loc 1 5173 3 is_stmt 1 view .LVU4211 +5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; + 12063 .loc 1 5173 12 is_stmt 0 view .LVU4212 + 12064 0002 C76A ldr r7, [r0, #44] + 12065 .LVL841: +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; + 12066 .loc 1 5174 3 is_stmt 1 view .LVU4213 +5175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12067 .loc 1 5175 3 view .LVU4214 +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12068 .loc 1 5178 3 view .LVU4215 +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12069 .loc 1 5178 3 view .LVU4216 + 12070 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 12071 0008 012B cmp r3, #1 + 12072 000a 00F08780 beq .L764 + 12073 000e 0446 mov r4, r0 + 12074 0010 0D46 mov r5, r1 + 12075 0012 1646 mov r6, r2 +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12076 .loc 1 5178 3 discriminator 2 view .LVU4217 + 12077 0014 0123 movs r3, #1 + 12078 0016 80F84030 strb r3, [r0, #64] +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12079 .loc 1 5178 3 discriminator 2 view .LVU4218 +5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 12080 .loc 1 5181 3 discriminator 2 view .LVU4219 +5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 12081 .loc 1 5181 6 is_stmt 0 discriminator 2 view .LVU4220 + 12082 001a 11F0200F tst r1, #32 + 12083 001e 02D0 beq .L749 +5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 12084 .loc 1 5181 58 discriminator 1 view .LVU4221 + 12085 0020 12F0200F tst r2, #32 + 12086 0024 12D1 bne .L769 + 12087 .LVL842: + 12088 .L749: +5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 12089 .loc 1 5188 3 is_stmt 1 view .LVU4222 +5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 12090 .loc 1 5188 6 is_stmt 0 view .LVU4223 + 12091 0026 15F0100F tst r5, #16 + 12092 002a 68D0 beq .L750 +5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 12093 .loc 1 5188 55 discriminator 1 view .LVU4224 + 12094 002c 16F0100F tst r6, #16 + 12095 0030 65D0 beq .L750 +5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) + 12096 .loc 1 5195 5 is_stmt 1 view .LVU4225 +5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) + 12097 .loc 1 5195 8 is_stmt 0 view .LVU4226 + 12098 0032 16F4404F tst r6, #49152 + 12099 0036 5ED0 beq .L751 +5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12100 .loc 1 5199 7 is_stmt 1 view .LVU4227 + ARM GAS /tmp/ccbUHtu7.s page 404 + + +5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12101 .loc 1 5199 15 is_stmt 0 view .LVU4228 + 12102 0038 E36B ldr r3, [r4, #60] +5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12103 .loc 1 5199 10 view .LVU4229 + 12104 003a 53B1 cbz r3, .L765 +5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12105 .loc 1 5201 9 is_stmt 1 view .LVU4230 +5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12106 .loc 1 5201 12 is_stmt 0 view .LVU4231 + 12107 003c 16F40042 ands r2, r6, #32768 + 12108 0040 08D0 beq .L752 +5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12109 .loc 1 5203 11 is_stmt 1 view .LVU4232 +5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12110 .loc 1 5203 15 is_stmt 0 view .LVU4233 + 12111 0042 1B68 ldr r3, [r3] + 12112 0044 5B68 ldr r3, [r3, #4] +5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12113 .loc 1 5203 14 view .LVU4234 + 12114 0046 3BB3 cbz r3, .L766 +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; + 12115 .loc 1 5174 12 view .LVU4235 + 12116 0048 0022 movs r2, #0 + 12117 004a 03E0 b .L752 + 12118 .LVL843: + 12119 .L769: +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12120 .loc 1 5185 5 is_stmt 1 view .LVU4236 + 12121 004c FFF7FEFF bl I2C_ITSlaveCplt + 12122 .LVL844: +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12123 .loc 1 5185 5 is_stmt 0 view .LVU4237 + 12124 0050 E9E7 b .L749 + 12125 .L765: +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; + 12126 .loc 1 5174 12 view .LVU4238 + 12127 0052 0022 movs r2, #0 + 12128 .L752: + 12129 .LVL845: +5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12130 .loc 1 5211 7 is_stmt 1 view .LVU4239 +5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12131 .loc 1 5211 15 is_stmt 0 view .LVU4240 + 12132 0054 A36B ldr r3, [r4, #56] +5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12133 .loc 1 5211 10 view .LVU4241 + 12134 0056 2BB1 cbz r3, .L753 +5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12135 .loc 1 5213 9 is_stmt 1 view .LVU4242 +5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12136 .loc 1 5213 12 is_stmt 0 view .LVU4243 + 12137 0058 16F4804F tst r6, #16384 + 12138 005c 02D0 beq .L753 +5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12139 .loc 1 5215 11 is_stmt 1 view .LVU4244 +5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + ARM GAS /tmp/ccbUHtu7.s page 405 + + + 12140 .loc 1 5215 15 is_stmt 0 view .LVU4245 + 12141 005e 1B68 ldr r3, [r3] + 12142 0060 5B68 ldr r3, [r3, #4] +5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12143 .loc 1 5215 14 view .LVU4246 + 12144 0062 DBB1 cbz r3, .L754 + 12145 .L753: +5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12146 .loc 1 5222 7 is_stmt 1 view .LVU4247 +5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12147 .loc 1 5222 10 is_stmt 0 view .LVU4248 + 12148 0064 012A cmp r2, #1 + 12149 0066 19D0 beq .L754 +5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12150 .loc 1 5253 9 is_stmt 1 view .LVU4249 + 12151 0068 2368 ldr r3, [r4] + 12152 006a 1022 movs r2, #16 + 12153 .LVL846: +5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12154 .loc 1 5253 9 is_stmt 0 view .LVU4250 + 12155 006c DA61 str r2, [r3, #28] +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12156 .loc 1 5256 9 is_stmt 1 view .LVU4251 +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12157 .loc 1 5256 13 is_stmt 0 view .LVU4252 + 12158 006e 636C ldr r3, [r4, #68] +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12159 .loc 1 5256 25 view .LVU4253 + 12160 0070 43F00403 orr r3, r3, #4 + 12161 0074 6364 str r3, [r4, #68] +5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12162 .loc 1 5259 9 is_stmt 1 view .LVU4254 +5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12163 .loc 1 5259 18 is_stmt 0 view .LVU4255 + 12164 0076 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 12165 007a DBB2 uxtb r3, r3 + 12166 .LVL847: +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12167 .loc 1 5261 9 is_stmt 1 view .LVU4256 +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12168 .loc 1 5261 12 is_stmt 0 view .LVU4257 + 12169 007c 17B1 cbz r7, .L759 +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12170 .loc 1 5261 45 discriminator 1 view .LVU4258 + 12171 007e B7F1807F cmp r7, #16777216 + 12172 0082 42D1 bne .L757 + 12173 .L759: +5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12174 .loc 1 5263 11 is_stmt 1 view .LVU4259 + 12175 0084 213B subs r3, r3, #33 + 12176 .LVL848: +5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12177 .loc 1 5263 11 is_stmt 0 view .LVU4260 + 12178 0086 092B cmp r3, #9 + 12179 0088 2DD8 bhi .L760 + 12180 008a DFE803F0 tbb [pc, r3] + 12181 .L762: + ARM GAS /tmp/ccbUHtu7.s page 406 + + + 12182 008e 2A .byte (.L763-.L762)/2 + 12183 008f 31 .byte (.L761-.L762)/2 + 12184 0090 2C .byte (.L760-.L762)/2 + 12185 0091 2C .byte (.L760-.L762)/2 + 12186 0092 2C .byte (.L760-.L762)/2 + 12187 0093 2C .byte (.L760-.L762)/2 + 12188 0094 2C .byte (.L760-.L762)/2 + 12189 0095 2C .byte (.L760-.L762)/2 + 12190 0096 2A .byte (.L763-.L762)/2 + 12191 0097 31 .byte (.L761-.L762)/2 + 12192 .LVL849: + 12193 .p2align 1 + 12194 .L766: +5205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12195 .loc 1 5205 26 view .LVU4261 + 12196 0098 0122 movs r2, #1 + 12197 009a DBE7 b .L752 + 12198 .LVL850: + 12199 .L754: +5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 12200 .loc 1 5224 9 is_stmt 1 view .LVU4262 +5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 12201 .loc 1 5224 18 is_stmt 0 view .LVU4263 + 12202 009c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 12203 00a0 DBB2 uxtb r3, r3 +5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 12204 .loc 1 5224 12 view .LVU4264 + 12205 00a2 282B cmp r3, #40 + 12206 00a4 08D0 beq .L770 + 12207 .L756: +5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12208 .loc 1 5231 14 is_stmt 1 view .LVU4265 +5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12209 .loc 1 5231 23 is_stmt 0 view .LVU4266 + 12210 00a6 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 12211 00aa DBB2 uxtb r3, r3 +5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12212 .loc 1 5231 17 view .LVU4267 + 12213 00ac 292B cmp r3, #41 + 12214 00ae 0BD0 beq .L771 + 12215 .L758: +5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12216 .loc 1 5246 11 is_stmt 1 view .LVU4268 + 12217 00b0 2368 ldr r3, [r4] + 12218 00b2 1022 movs r2, #16 + 12219 00b4 DA61 str r2, [r3, #28] + 12220 00b6 28E0 b .L757 + 12221 .L770: +5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + 12222 .loc 1 5224 51 is_stmt 0 discriminator 1 view .LVU4269 + 12223 00b8 B7F1007F cmp r7, #33554432 + 12224 00bc F3D1 bne .L756 +5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12225 .loc 1 5229 11 is_stmt 1 view .LVU4270 + 12226 00be 2946 mov r1, r5 + 12227 00c0 2046 mov r0, r4 + 12228 00c2 FFF7FEFF bl I2C_ITListenCplt + ARM GAS /tmp/ccbUHtu7.s page 407 + + + 12229 .LVL851: + 12230 00c6 20E0 b .L757 + 12231 .L771: +5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12232 .loc 1 5231 64 is_stmt 0 discriminator 1 view .LVU4271 + 12233 00c8 17F5803F cmn r7, #65536 + 12234 00cc F0D0 beq .L758 +5234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12235 .loc 1 5234 11 is_stmt 1 view .LVU4272 + 12236 00ce 2368 ldr r3, [r4] + 12237 00d0 1022 movs r2, #16 + 12238 00d2 DA61 str r2, [r3, #28] +5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12239 .loc 1 5237 11 view .LVU4273 + 12240 00d4 2046 mov r0, r4 + 12241 00d6 FFF7FEFF bl I2C_Flush_TXDR + 12242 .LVL852: +5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12243 .loc 1 5241 11 view .LVU4274 + 12244 00da 2046 mov r0, r4 + 12245 00dc FFF7FEFF bl I2C_ITSlaveSeqCplt + 12246 .LVL853: + 12247 00e0 13E0 b .L757 + 12248 .LVL854: + 12249 .L763: +5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12250 .loc 1 5265 13 view .LVU4275 +5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12251 .loc 1 5265 33 is_stmt 0 view .LVU4276 + 12252 00e2 2123 movs r3, #33 + 12253 .LVL855: +5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12254 .loc 1 5265 33 view .LVU4277 + 12255 00e4 2363 str r3, [r4, #48] + 12256 .L760: +5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12257 .loc 1 5277 11 is_stmt 1 view .LVU4278 +5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12258 .loc 1 5277 33 is_stmt 0 view .LVU4279 + 12259 00e6 616C ldr r1, [r4, #68] +5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12260 .loc 1 5277 11 view .LVU4280 + 12261 00e8 2046 mov r0, r4 + 12262 00ea FFF7FEFF bl I2C_ITError + 12263 .LVL856: + 12264 00ee 0CE0 b .L757 + 12265 .LVL857: + 12266 .L761: +5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12267 .loc 1 5269 13 is_stmt 1 view .LVU4281 +5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12268 .loc 1 5269 33 is_stmt 0 view .LVU4282 + 12269 00f0 2223 movs r3, #34 + 12270 .LVL858: +5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12271 .loc 1 5269 33 view .LVU4283 + 12272 00f2 2363 str r3, [r4, #48] + ARM GAS /tmp/ccbUHtu7.s page 408 + + + 12273 00f4 F7E7 b .L760 + 12274 .LVL859: + 12275 .L751: +5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12276 .loc 1 5284 7 is_stmt 1 view .LVU4284 + 12277 00f6 2368 ldr r3, [r4] + 12278 00f8 1022 movs r2, #16 + 12279 00fa DA61 str r2, [r3, #28] + 12280 00fc 05E0 b .L757 + 12281 .L750: +5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + 12282 .loc 1 5287 8 view .LVU4285 +5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + 12283 .loc 1 5287 11 is_stmt 0 view .LVU4286 + 12284 00fe 15F0080F tst r5, #8 + 12285 0102 02D0 beq .L757 +5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + 12286 .loc 1 5287 62 discriminator 1 view .LVU4287 + 12287 0104 16F0080F tst r6, #8 + 12288 0108 03D1 bne .L772 + 12289 .LVL860: + 12290 .L757: +5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12291 .loc 1 5295 3 is_stmt 1 view .LVU4288 +5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12292 .loc 1 5298 3 view .LVU4289 +5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12293 .loc 1 5298 3 view .LVU4290 + 12294 010a 0020 movs r0, #0 + 12295 010c 84F84000 strb r0, [r4, #64] +5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12296 .loc 1 5298 3 view .LVU4291 +5300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12297 .loc 1 5300 3 view .LVU4292 + 12298 .LVL861: + 12299 .L748: +5301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12300 .loc 1 5301 1 is_stmt 0 view .LVU4293 + 12301 0110 F8BD pop {r3, r4, r5, r6, r7, pc} + 12302 .LVL862: + 12303 .L772: +5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12304 .loc 1 5290 5 is_stmt 1 view .LVU4294 + 12305 0112 2946 mov r1, r5 + 12306 0114 2046 mov r0, r4 + 12307 0116 FFF7FEFF bl I2C_ITAddrCplt + 12308 .LVL863: + 12309 011a F6E7 b .L757 + 12310 .LVL864: + 12311 .L764: +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12312 .loc 1 5178 3 is_stmt 0 view .LVU4295 + 12313 011c 0220 movs r0, #2 + 12314 .LVL865: +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12315 .loc 1 5178 3 view .LVU4296 + 12316 011e F7E7 b .L748 + ARM GAS /tmp/ccbUHtu7.s page 409 + + + 12317 .cfi_endproc + 12318 .LFE381: + 12320 .section .text.I2C_Master_ISR_DMA,"ax",%progbits + 12321 .align 1 + 12322 .syntax unified + 12323 .thumb + 12324 .thumb_func + 12326 I2C_Master_ISR_DMA: + 12327 .LVL866: + 12328 .LFB380: +5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; + 12329 .loc 1 5032 1 is_stmt 1 view -0 + 12330 .cfi_startproc + 12331 @ args = 0, pretend = 0, frame = 0 + 12332 @ frame_needed = 0, uses_anonymous_args = 0 +5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; + 12333 .loc 1 5033 3 view .LVU4298 +5034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12334 .loc 1 5034 3 view .LVU4299 +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12335 .loc 1 5037 3 view .LVU4300 +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12336 .loc 1 5037 3 view .LVU4301 + 12337 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 12338 0004 012B cmp r3, #1 + 12339 0006 00F09A80 beq .L786 +5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; + 12340 .loc 1 5032 1 is_stmt 0 discriminator 2 view .LVU4302 + 12341 000a 10B5 push {r4, lr} + 12342 .LCFI132: + 12343 .cfi_def_cfa_offset 8 + 12344 .cfi_offset 4, -8 + 12345 .cfi_offset 14, -4 + 12346 000c 82B0 sub sp, sp, #8 + 12347 .LCFI133: + 12348 .cfi_def_cfa_offset 16 + 12349 000e 0446 mov r4, r0 +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12350 .loc 1 5037 3 is_stmt 1 discriminator 2 view .LVU4303 + 12351 0010 0123 movs r3, #1 + 12352 0012 80F84030 strb r3, [r0, #64] +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12353 .loc 1 5037 3 discriminator 2 view .LVU4304 +5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 12354 .loc 1 5039 3 discriminator 2 view .LVU4305 +5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 12355 .loc 1 5039 6 is_stmt 0 discriminator 2 view .LVU4306 + 12356 0016 11F0100F tst r1, #16 + 12357 001a 02D0 beq .L775 +5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + 12358 .loc 1 5039 55 discriminator 1 view .LVU4307 + 12359 001c 12F0100F tst r2, #16 + 12360 0020 32D1 bne .L792 + 12361 .L775: +5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 12362 .loc 1 5056 8 is_stmt 1 view .LVU4308 +5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + ARM GAS /tmp/ccbUHtu7.s page 410 + + + 12363 .loc 1 5056 11 is_stmt 0 view .LVU4309 + 12364 0022 11F0800F tst r1, #128 + 12365 0026 60D0 beq .L777 +5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 12366 .loc 1 5056 61 discriminator 1 view .LVU4310 + 12367 0028 12F0400F tst r2, #64 + 12368 002c 5DD0 beq .L777 +5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12369 .loc 1 5060 5 is_stmt 1 view .LVU4311 + 12370 002e 2268 ldr r2, [r4] + 12371 .LVL867: +5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12372 .loc 1 5060 5 is_stmt 0 view .LVU4312 + 12373 0030 1368 ldr r3, [r2] + 12374 0032 23F04003 bic r3, r3, #64 + 12375 0036 1360 str r3, [r2] +5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12376 .loc 1 5062 5 is_stmt 1 view .LVU4313 +5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12377 .loc 1 5062 13 is_stmt 0 view .LVU4314 + 12378 0038 638D ldrh r3, [r4, #42] + 12379 003a 9BB2 uxth r3, r3 +5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12380 .loc 1 5062 8 view .LVU4315 + 12381 003c 002B cmp r3, #0 + 12382 003e 46D0 beq .L778 +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12383 .loc 1 5065 7 is_stmt 1 view .LVU4316 +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12384 .loc 1 5065 35 is_stmt 0 view .LVU4317 + 12385 0040 2368 ldr r3, [r4] +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12386 .loc 1 5065 45 view .LVU4318 + 12387 0042 5968 ldr r1, [r3, #4] + 12388 .LVL868: +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12389 .loc 1 5065 18 view .LVU4319 + 12390 0044 C1F30901 ubfx r1, r1, #0, #10 + 12391 .LVL869: +5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12392 .loc 1 5068 7 is_stmt 1 view .LVU4320 +5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12393 .loc 1 5068 15 is_stmt 0 view .LVU4321 + 12394 0048 638D ldrh r3, [r4, #42] + 12395 004a 9BB2 uxth r3, r3 +5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12396 .loc 1 5068 10 view .LVU4322 + 12397 004c FF2B cmp r3, #255 + 12398 004e 2DD9 bls .L779 +5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 12399 .loc 1 5070 9 is_stmt 1 view .LVU4323 +5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; + 12400 .loc 1 5070 24 is_stmt 0 view .LVU4324 + 12401 0050 FF23 movs r3, #255 + 12402 0052 2385 strh r3, [r4, #40] @ movhi +5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12403 .loc 1 5071 9 is_stmt 1 view .LVU4325 + ARM GAS /tmp/ccbUHtu7.s page 411 + + + 12404 .LVL870: +5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12405 .loc 1 5071 18 is_stmt 0 view .LVU4326 + 12406 0054 4FF08073 mov r3, #16777216 + 12407 .LVL871: + 12408 .L780: +5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12409 .loc 1 5087 7 is_stmt 1 view .LVU4327 + 12410 0058 0022 movs r2, #0 + 12411 005a 0092 str r2, [sp] + 12412 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 + 12413 0060 2046 mov r0, r4 + 12414 .LVL872: +5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12415 .loc 1 5087 7 is_stmt 0 view .LVU4328 + 12416 0062 FFF7FEFF bl I2C_TransferConfig + 12417 .LVL873: +5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12418 .loc 1 5090 7 is_stmt 1 view .LVU4329 +5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12419 .loc 1 5090 11 is_stmt 0 view .LVU4330 + 12420 0066 638D ldrh r3, [r4, #42] + 12421 0068 9BB2 uxth r3, r3 +5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12422 .loc 1 5090 30 view .LVU4331 + 12423 006a 228D ldrh r2, [r4, #40] +5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12424 .loc 1 5090 23 view .LVU4332 + 12425 006c 9B1A subs r3, r3, r2 + 12426 006e 9BB2 uxth r3, r3 + 12427 0070 6385 strh r3, [r4, #42] @ movhi +5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12428 .loc 1 5093 7 is_stmt 1 view .LVU4333 +5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12429 .loc 1 5093 15 is_stmt 0 view .LVU4334 + 12430 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 + 12431 0076 DBB2 uxtb r3, r3 +5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12432 .loc 1 5093 10 view .LVU4335 + 12433 0078 222B cmp r3, #34 + 12434 007a 22D0 beq .L793 +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12435 .loc 1 5099 9 is_stmt 1 view .LVU4336 +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12436 .loc 1 5099 13 is_stmt 0 view .LVU4337 + 12437 007c 2268 ldr r2, [r4] +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12438 .loc 1 5099 23 view .LVU4338 + 12439 007e 1368 ldr r3, [r2] +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12440 .loc 1 5099 29 view .LVU4339 + 12441 0080 43F48043 orr r3, r3, #16384 + 12442 0084 1360 str r3, [r2] + 12443 0086 0CE0 b .L776 + 12444 .LVL874: + 12445 .L792: +5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + ARM GAS /tmp/ccbUHtu7.s page 412 + + + 12446 .loc 1 5043 5 is_stmt 1 view .LVU4340 + 12447 0088 0368 ldr r3, [r0] + 12448 008a 1022 movs r2, #16 + 12449 .LVL875: +5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12450 .loc 1 5043 5 is_stmt 0 view .LVU4341 + 12451 008c DA61 str r2, [r3, #28] +5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12452 .loc 1 5046 5 is_stmt 1 view .LVU4342 +5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12453 .loc 1 5046 9 is_stmt 0 view .LVU4343 + 12454 008e 436C ldr r3, [r0, #68] +5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12455 .loc 1 5046 21 view .LVU4344 + 12456 0090 43F00403 orr r3, r3, #4 + 12457 0094 4364 str r3, [r0, #68] +5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12458 .loc 1 5051 5 is_stmt 1 view .LVU4345 + 12459 0096 2021 movs r1, #32 + 12460 .LVL876: +5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12461 .loc 1 5051 5 is_stmt 0 view .LVU4346 + 12462 0098 FFF7FEFF bl I2C_Enable_IRQ + 12463 .LVL877: +5054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12464 .loc 1 5054 5 is_stmt 1 view .LVU4347 + 12465 009c 2046 mov r0, r4 + 12466 009e FFF7FEFF bl I2C_Flush_TXDR + 12467 .LVL878: + 12468 .L776: +5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12469 .loc 1 5154 3 view .LVU4348 +5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12470 .loc 1 5157 3 view .LVU4349 +5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12471 .loc 1 5157 3 view .LVU4350 + 12472 00a2 0020 movs r0, #0 + 12473 00a4 84F84000 strb r0, [r4, #64] +5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12474 .loc 1 5157 3 view .LVU4351 +5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12475 .loc 1 5159 3 view .LVU4352 +5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12476 .loc 1 5160 1 is_stmt 0 view .LVU4353 + 12477 00a8 02B0 add sp, sp, #8 + 12478 .LCFI134: + 12479 .cfi_remember_state + 12480 .cfi_def_cfa_offset 8 + 12481 @ sp needed + 12482 00aa 10BD pop {r4, pc} + 12483 .LVL879: + 12484 .L779: + 12485 .LCFI135: + 12486 .cfi_restore_state +5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + 12487 .loc 1 5075 9 is_stmt 1 view .LVU4354 +5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + ARM GAS /tmp/ccbUHtu7.s page 413 + + + 12488 .loc 1 5075 30 is_stmt 0 view .LVU4355 + 12489 00ac 638D ldrh r3, [r4, #42] +5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + 12490 .loc 1 5075 24 view .LVU4356 + 12491 00ae 2385 strh r3, [r4, #40] @ movhi +5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12492 .loc 1 5076 9 is_stmt 1 view .LVU4357 +5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12493 .loc 1 5076 17 is_stmt 0 view .LVU4358 + 12494 00b0 E36A ldr r3, [r4, #44] +5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12495 .loc 1 5076 12 view .LVU4359 + 12496 00b2 13F5803F cmn r3, #65536 + 12497 00b6 01D0 beq .L787 +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12498 .loc 1 5078 11 is_stmt 1 view .LVU4360 +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12499 .loc 1 5078 20 is_stmt 0 view .LVU4361 + 12500 00b8 E36A ldr r3, [r4, #44] + 12501 .LVL880: +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12502 .loc 1 5078 20 view .LVU4362 + 12503 00ba CDE7 b .L780 + 12504 .LVL881: + 12505 .L787: +5082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12506 .loc 1 5082 20 view .LVU4363 + 12507 00bc 4FF00073 mov r3, #33554432 + 12508 00c0 CAE7 b .L780 + 12509 .LVL882: + 12510 .L793: +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12511 .loc 1 5095 9 is_stmt 1 view .LVU4364 +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12512 .loc 1 5095 13 is_stmt 0 view .LVU4365 + 12513 00c2 2268 ldr r2, [r4] +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12514 .loc 1 5095 23 view .LVU4366 + 12515 00c4 1368 ldr r3, [r2] +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12516 .loc 1 5095 29 view .LVU4367 + 12517 00c6 43F40043 orr r3, r3, #32768 + 12518 00ca 1360 str r3, [r2] + 12519 00cc E9E7 b .L776 + 12520 .LVL883: + 12521 .L778: +5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12522 .loc 1 5105 7 is_stmt 1 view .LVU4368 +5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12523 .loc 1 5105 11 is_stmt 0 view .LVU4369 + 12524 00ce 2368 ldr r3, [r4] + 12525 00d0 5B68 ldr r3, [r3, #4] +5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12526 .loc 1 5105 10 view .LVU4370 + 12527 00d2 13F0007F tst r3, #33554432 + 12528 00d6 03D1 bne .L782 +5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + ARM GAS /tmp/ccbUHtu7.s page 414 + + + 12529 .loc 1 5108 9 is_stmt 1 view .LVU4371 + 12530 00d8 2046 mov r0, r4 + 12531 .LVL884: +5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12532 .loc 1 5108 9 is_stmt 0 view .LVU4372 + 12533 00da FFF7FEFF bl I2C_ITMasterSeqCplt + 12534 .LVL885: +5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12535 .loc 1 5108 9 view .LVU4373 + 12536 00de E0E7 b .L776 + 12537 .LVL886: + 12538 .L782: +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12539 .loc 1 5114 9 is_stmt 1 view .LVU4374 + 12540 00e0 4021 movs r1, #64 + 12541 .LVL887: +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12542 .loc 1 5114 9 is_stmt 0 view .LVU4375 + 12543 00e2 2046 mov r0, r4 + 12544 .LVL888: +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12545 .loc 1 5114 9 view .LVU4376 + 12546 00e4 FFF7FEFF bl I2C_ITError + 12547 .LVL889: + 12548 00e8 DBE7 b .L776 + 12549 .LVL890: + 12550 .L777: +5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 12551 .loc 1 5118 8 is_stmt 1 view .LVU4377 +5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 12552 .loc 1 5118 11 is_stmt 0 view .LVU4378 + 12553 00ea 11F0400F tst r1, #64 + 12554 00ee 1CD0 beq .L783 +5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + 12555 .loc 1 5118 60 discriminator 1 view .LVU4379 + 12556 00f0 12F0400F tst r2, #64 + 12557 00f4 19D0 beq .L783 +5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12558 .loc 1 5121 5 is_stmt 1 view .LVU4380 +5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12559 .loc 1 5121 13 is_stmt 0 view .LVU4381 + 12560 00f6 638D ldrh r3, [r4, #42] + 12561 00f8 9BB2 uxth r3, r3 +5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12562 .loc 1 5121 8 view .LVU4382 + 12563 00fa 8BB9 cbnz r3, .L784 +5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12564 .loc 1 5123 7 is_stmt 1 view .LVU4383 +5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12565 .loc 1 5123 11 is_stmt 0 view .LVU4384 + 12566 00fc 2368 ldr r3, [r4] + 12567 00fe 5A68 ldr r2, [r3, #4] + 12568 .LVL891: +5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12569 .loc 1 5123 10 view .LVU4385 + 12570 0100 12F0007F tst r2, #33554432 + 12571 0104 CDD1 bne .L776 + ARM GAS /tmp/ccbUHtu7.s page 415 + + +5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12572 .loc 1 5126 9 is_stmt 1 view .LVU4386 +5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12573 .loc 1 5126 17 is_stmt 0 view .LVU4387 + 12574 0106 E26A ldr r2, [r4, #44] +5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12575 .loc 1 5126 12 view .LVU4388 + 12576 0108 12F5803F cmn r2, #65536 + 12577 010c 04D1 bne .L785 +5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12578 .loc 1 5129 11 is_stmt 1 view .LVU4389 +5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12579 .loc 1 5129 25 is_stmt 0 view .LVU4390 + 12580 010e 5A68 ldr r2, [r3, #4] +5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12581 .loc 1 5129 31 view .LVU4391 + 12582 0110 42F48042 orr r2, r2, #16384 + 12583 0114 5A60 str r2, [r3, #4] + 12584 0116 C4E7 b .L776 + 12585 .L785: +5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12586 .loc 1 5134 11 is_stmt 1 view .LVU4392 + 12587 0118 2046 mov r0, r4 + 12588 .LVL892: +5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12589 .loc 1 5134 11 is_stmt 0 view .LVU4393 + 12590 011a FFF7FEFF bl I2C_ITMasterSeqCplt + 12591 .LVL893: +5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12592 .loc 1 5134 11 view .LVU4394 + 12593 011e C0E7 b .L776 + 12594 .LVL894: + 12595 .L784: +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12596 .loc 1 5142 7 is_stmt 1 view .LVU4395 + 12597 0120 4021 movs r1, #64 + 12598 .LVL895: +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12599 .loc 1 5142 7 is_stmt 0 view .LVU4396 + 12600 0122 2046 mov r0, r4 + 12601 .LVL896: +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12602 .loc 1 5142 7 view .LVU4397 + 12603 0124 FFF7FEFF bl I2C_ITError + 12604 .LVL897: +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12605 .loc 1 5142 7 view .LVU4398 + 12606 0128 BBE7 b .L776 + 12607 .LVL898: + 12608 .L783: +5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 12609 .loc 1 5145 8 is_stmt 1 view .LVU4399 +5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + 12610 .loc 1 5145 11 is_stmt 0 view .LVU4400 + 12611 012a 11F0200F tst r1, #32 + 12612 012e B8D0 beq .L776 +5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + ARM GAS /tmp/ccbUHtu7.s page 416 + + + 12613 .loc 1 5145 63 discriminator 1 view .LVU4401 + 12614 0130 12F0200F tst r2, #32 + 12615 0134 B5D0 beq .L776 +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12616 .loc 1 5149 5 is_stmt 1 view .LVU4402 + 12617 0136 2046 mov r0, r4 + 12618 .LVL899: +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12619 .loc 1 5149 5 is_stmt 0 view .LVU4403 + 12620 0138 FFF7FEFF bl I2C_ITMasterCplt + 12621 .LVL900: +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12622 .loc 1 5149 5 view .LVU4404 + 12623 013c B1E7 b .L776 + 12624 .LVL901: + 12625 .L786: + 12626 .LCFI136: + 12627 .cfi_def_cfa_offset 0 + 12628 .cfi_restore 4 + 12629 .cfi_restore 14 +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12630 .loc 1 5037 3 view .LVU4405 + 12631 013e 0220 movs r0, #2 + 12632 .LVL902: +5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12633 .loc 1 5160 1 view .LVU4406 + 12634 0140 7047 bx lr + 12635 .cfi_endproc + 12636 .LFE380: + 12638 .section .text.I2C_DMAError,"ax",%progbits + 12639 .align 1 + 12640 .syntax unified + 12641 .thumb + 12642 .thumb_func + 12644 I2C_DMAError: + 12645 .LVL903: + 12646 .LFB397: +6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 12647 .loc 1 6322 1 is_stmt 1 view -0 + 12648 .cfi_startproc + 12649 @ args = 0, pretend = 0, frame = 0 + 12650 @ frame_needed = 0, uses_anonymous_args = 0 +6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 12651 .loc 1 6322 1 is_stmt 0 view .LVU4408 + 12652 0000 08B5 push {r3, lr} + 12653 .LCFI137: + 12654 .cfi_def_cfa_offset 8 + 12655 .cfi_offset 3, -8 + 12656 .cfi_offset 14, -4 +6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12657 .loc 1 6324 3 is_stmt 1 view .LVU4409 +6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12658 .loc 1 6324 22 is_stmt 0 view .LVU4410 + 12659 0002 806A ldr r0, [r0, #40] + 12660 .LVL904: +6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12661 .loc 1 6327 3 is_stmt 1 view .LVU4411 + ARM GAS /tmp/ccbUHtu7.s page 417 + + +6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12662 .loc 1 6327 7 is_stmt 0 view .LVU4412 + 12663 0004 0268 ldr r2, [r0] +6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12664 .loc 1 6327 17 view .LVU4413 + 12665 0006 5368 ldr r3, [r2, #4] +6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12666 .loc 1 6327 23 view .LVU4414 + 12667 0008 43F40043 orr r3, r3, #32768 + 12668 000c 5360 str r3, [r2, #4] +6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12669 .loc 1 6330 3 is_stmt 1 view .LVU4415 + 12670 000e 1021 movs r1, #16 + 12671 0010 FFF7FEFF bl I2C_ITError + 12672 .LVL905: +6331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12673 .loc 1 6331 1 is_stmt 0 view .LVU4416 + 12674 0014 08BD pop {r3, pc} + 12675 .cfi_endproc + 12676 .LFE397: + 12678 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits + 12679 .align 1 + 12680 .syntax unified + 12681 .thumb + 12682 .thumb_func + 12684 I2C_DMAMasterTransmitCplt: + 12685 .LVL906: + 12686 .LFB393: +6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 12687 .loc 1 6166 1 is_stmt 1 view -0 + 12688 .cfi_startproc + 12689 @ args = 0, pretend = 0, frame = 0 + 12690 @ frame_needed = 0, uses_anonymous_args = 0 +6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 12691 .loc 1 6166 1 is_stmt 0 view .LVU4418 + 12692 0000 10B5 push {r4, lr} + 12693 .LCFI138: + 12694 .cfi_def_cfa_offset 8 + 12695 .cfi_offset 4, -8 + 12696 .cfi_offset 14, -4 +6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12697 .loc 1 6168 3 is_stmt 1 view .LVU4419 +6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12698 .loc 1 6168 22 is_stmt 0 view .LVU4420 + 12699 0002 846A ldr r4, [r0, #40] + 12700 .LVL907: +6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12701 .loc 1 6171 3 is_stmt 1 view .LVU4421 +6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12702 .loc 1 6171 7 is_stmt 0 view .LVU4422 + 12703 0004 2268 ldr r2, [r4] +6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12704 .loc 1 6171 17 view .LVU4423 + 12705 0006 1368 ldr r3, [r2] +6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12706 .loc 1 6171 23 view .LVU4424 + 12707 0008 23F48043 bic r3, r3, #16384 + ARM GAS /tmp/ccbUHtu7.s page 418 + + + 12708 000c 1360 str r3, [r2] +6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12709 .loc 1 6174 3 is_stmt 1 view .LVU4425 +6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12710 .loc 1 6174 11 is_stmt 0 view .LVU4426 + 12711 000e 638D ldrh r3, [r4, #42] + 12712 0010 9BB2 uxth r3, r3 +6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12713 .loc 1 6174 6 view .LVU4427 + 12714 0012 ABB1 cbz r3, .L803 +6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12715 .loc 1 6183 5 is_stmt 1 view .LVU4428 +6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12716 .loc 1 6183 9 is_stmt 0 view .LVU4429 + 12717 0014 616A ldr r1, [r4, #36] +6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12718 .loc 1 6183 27 view .LVU4430 + 12719 0016 238D ldrh r3, [r4, #40] +6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12720 .loc 1 6183 20 view .LVU4431 + 12721 0018 1944 add r1, r1, r3 + 12722 001a 6162 str r1, [r4, #36] +6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12723 .loc 1 6186 5 is_stmt 1 view .LVU4432 +6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12724 .loc 1 6186 13 is_stmt 0 view .LVU4433 + 12725 001c 638D ldrh r3, [r4, #42] + 12726 001e 9BB2 uxth r3, r3 +6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12727 .loc 1 6186 8 view .LVU4434 + 12728 0020 FF2B cmp r3, #255 + 12729 0022 12D9 bls .L799 +6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12730 .loc 1 6188 7 is_stmt 1 view .LVU4435 +6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12731 .loc 1 6188 22 is_stmt 0 view .LVU4436 + 12732 0024 FF23 movs r3, #255 + 12733 0026 2385 strh r3, [r4, #40] @ movhi + 12734 .L800: +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12735 .loc 1 6196 5 is_stmt 1 view .LVU4437 +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12736 .loc 1 6196 81 is_stmt 0 view .LVU4438 + 12737 0028 2268 ldr r2, [r4] +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12738 .loc 1 6196 9 view .LVU4439 + 12739 002a 238D ldrh r3, [r4, #40] + 12740 002c 2832 adds r2, r2, #40 + 12741 002e A06B ldr r0, [r4, #56] + 12742 .LVL908: +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12743 .loc 1 6196 9 view .LVU4440 + 12744 0030 FFF7FEFF bl HAL_DMA_Start_IT + 12745 .LVL909: +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12746 .loc 1 6196 8 view .LVU4441 + 12747 0034 60B1 cbz r0, .L801 + ARM GAS /tmp/ccbUHtu7.s page 419 + + +6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12748 .loc 1 6200 7 is_stmt 1 view .LVU4442 + 12749 0036 1021 movs r1, #16 + 12750 0038 2046 mov r0, r4 + 12751 003a FFF7FEFF bl I2C_ITError + 12752 .LVL910: + 12753 .L796: +6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12754 .loc 1 6208 1 is_stmt 0 view .LVU4443 + 12755 003e 10BD pop {r4, pc} + 12756 .LVL911: + 12757 .L803: +6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12758 .loc 1 6177 5 is_stmt 1 view .LVU4444 + 12759 0040 2021 movs r1, #32 + 12760 0042 2046 mov r0, r4 + 12761 .LVL912: +6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12762 .loc 1 6177 5 is_stmt 0 view .LVU4445 + 12763 0044 FFF7FEFF bl I2C_Enable_IRQ + 12764 .LVL913: + 12765 0048 F9E7 b .L796 + 12766 .LVL914: + 12767 .L799: +6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12768 .loc 1 6192 7 is_stmt 1 view .LVU4446 +6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12769 .loc 1 6192 28 is_stmt 0 view .LVU4447 + 12770 004a 638D ldrh r3, [r4, #42] +6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12771 .loc 1 6192 22 view .LVU4448 + 12772 004c 2385 strh r3, [r4, #40] @ movhi + 12773 004e EBE7 b .L800 + 12774 .LVL915: + 12775 .L801: +6205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12776 .loc 1 6205 7 is_stmt 1 view .LVU4449 + 12777 0050 4021 movs r1, #64 + 12778 0052 2046 mov r0, r4 + 12779 0054 FFF7FEFF bl I2C_Enable_IRQ + 12780 .LVL916: +6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12781 .loc 1 6208 1 is_stmt 0 view .LVU4450 + 12782 0058 F1E7 b .L796 + 12783 .cfi_endproc + 12784 .LFE393: + 12786 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits + 12787 .align 1 + 12788 .syntax unified + 12789 .thumb + 12790 .thumb_func + 12792 I2C_DMAMasterReceiveCplt: + 12793 .LVL917: + 12794 .LFB395: +6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 12795 .loc 1 6244 1 is_stmt 1 view -0 + 12796 .cfi_startproc + ARM GAS /tmp/ccbUHtu7.s page 420 + + + 12797 @ args = 0, pretend = 0, frame = 0 + 12798 @ frame_needed = 0, uses_anonymous_args = 0 +6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 12799 .loc 1 6244 1 is_stmt 0 view .LVU4452 + 12800 0000 10B5 push {r4, lr} + 12801 .LCFI139: + 12802 .cfi_def_cfa_offset 8 + 12803 .cfi_offset 4, -8 + 12804 .cfi_offset 14, -4 +6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12805 .loc 1 6246 3 is_stmt 1 view .LVU4453 +6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12806 .loc 1 6246 22 is_stmt 0 view .LVU4454 + 12807 0002 846A ldr r4, [r0, #40] + 12808 .LVL918: +6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12809 .loc 1 6249 3 is_stmt 1 view .LVU4455 +6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12810 .loc 1 6249 7 is_stmt 0 view .LVU4456 + 12811 0004 2268 ldr r2, [r4] +6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12812 .loc 1 6249 17 view .LVU4457 + 12813 0006 1368 ldr r3, [r2] +6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12814 .loc 1 6249 23 view .LVU4458 + 12815 0008 23F40043 bic r3, r3, #32768 + 12816 000c 1360 str r3, [r2] +6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12817 .loc 1 6252 3 is_stmt 1 view .LVU4459 +6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12818 .loc 1 6252 11 is_stmt 0 view .LVU4460 + 12819 000e 638D ldrh r3, [r4, #42] + 12820 0010 9BB2 uxth r3, r3 +6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12821 .loc 1 6252 6 view .LVU4461 + 12822 0012 ABB1 cbz r3, .L811 +6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12823 .loc 1 6261 5 is_stmt 1 view .LVU4462 +6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12824 .loc 1 6261 9 is_stmt 0 view .LVU4463 + 12825 0014 626A ldr r2, [r4, #36] +6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12826 .loc 1 6261 27 view .LVU4464 + 12827 0016 238D ldrh r3, [r4, #40] +6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12828 .loc 1 6261 20 view .LVU4465 + 12829 0018 1A44 add r2, r2, r3 + 12830 001a 6262 str r2, [r4, #36] +6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12831 .loc 1 6264 5 is_stmt 1 view .LVU4466 +6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12832 .loc 1 6264 13 is_stmt 0 view .LVU4467 + 12833 001c 638D ldrh r3, [r4, #42] + 12834 001e 9BB2 uxth r3, r3 +6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12835 .loc 1 6264 8 view .LVU4468 + 12836 0020 FF2B cmp r3, #255 + ARM GAS /tmp/ccbUHtu7.s page 421 + + + 12837 0022 12D9 bls .L807 +6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12838 .loc 1 6266 7 is_stmt 1 view .LVU4469 +6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12839 .loc 1 6266 22 is_stmt 0 view .LVU4470 + 12840 0024 FF23 movs r3, #255 + 12841 0026 2385 strh r3, [r4, #40] @ movhi + 12842 .L808: +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12843 .loc 1 6274 5 is_stmt 1 view .LVU4471 +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12844 .loc 1 6274 55 is_stmt 0 view .LVU4472 + 12845 0028 2168 ldr r1, [r4] +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12846 .loc 1 6274 9 view .LVU4473 + 12847 002a 238D ldrh r3, [r4, #40] + 12848 002c 2431 adds r1, r1, #36 + 12849 002e E06B ldr r0, [r4, #60] + 12850 .LVL919: +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12851 .loc 1 6274 9 view .LVU4474 + 12852 0030 FFF7FEFF bl HAL_DMA_Start_IT + 12853 .LVL920: +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) + 12854 .loc 1 6274 8 view .LVU4475 + 12855 0034 60B1 cbz r0, .L809 +6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12856 .loc 1 6278 7 is_stmt 1 view .LVU4476 + 12857 0036 1021 movs r1, #16 + 12858 0038 2046 mov r0, r4 + 12859 003a FFF7FEFF bl I2C_ITError + 12860 .LVL921: + 12861 .L804: +6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12862 .loc 1 6286 1 is_stmt 0 view .LVU4477 + 12863 003e 10BD pop {r4, pc} + 12864 .LVL922: + 12865 .L811: +6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12866 .loc 1 6255 5 is_stmt 1 view .LVU4478 + 12867 0040 2021 movs r1, #32 + 12868 0042 2046 mov r0, r4 + 12869 .LVL923: +6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12870 .loc 1 6255 5 is_stmt 0 view .LVU4479 + 12871 0044 FFF7FEFF bl I2C_Enable_IRQ + 12872 .LVL924: + 12873 0048 F9E7 b .L804 + 12874 .LVL925: + 12875 .L807: +6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12876 .loc 1 6270 7 is_stmt 1 view .LVU4480 +6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12877 .loc 1 6270 28 is_stmt 0 view .LVU4481 + 12878 004a 638D ldrh r3, [r4, #42] +6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12879 .loc 1 6270 22 view .LVU4482 + ARM GAS /tmp/ccbUHtu7.s page 422 + + + 12880 004c 2385 strh r3, [r4, #40] @ movhi + 12881 004e EBE7 b .L808 + 12882 .LVL926: + 12883 .L809: +6283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12884 .loc 1 6283 7 is_stmt 1 view .LVU4483 + 12885 0050 4021 movs r1, #64 + 12886 0052 2046 mov r0, r4 + 12887 0054 FFF7FEFF bl I2C_Enable_IRQ + 12888 .LVL927: +6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12889 .loc 1 6286 1 is_stmt 0 view .LVU4484 + 12890 0058 F1E7 b .L804 + 12891 .cfi_endproc + 12892 .LFE395: + 12894 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits + 12895 .align 1 + 12896 .global HAL_I2C_ER_IRQHandler + 12897 .syntax unified + 12898 .thumb + 12899 .thumb_func + 12901 HAL_I2C_ER_IRQHandler: + 12902 .LVL928: + 12903 .LFB364: +4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); + 12904 .loc 1 4462 1 is_stmt 1 view -0 + 12905 .cfi_startproc + 12906 @ args = 0, pretend = 0, frame = 0 + 12907 @ frame_needed = 0, uses_anonymous_args = 0 +4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); + 12908 .loc 1 4462 1 is_stmt 0 view .LVU4486 + 12909 0000 10B5 push {r4, lr} + 12910 .LCFI140: + 12911 .cfi_def_cfa_offset 8 + 12912 .cfi_offset 4, -8 + 12913 .cfi_offset 14, -4 +4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); + 12914 .loc 1 4463 3 is_stmt 1 view .LVU4487 +4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); + 12915 .loc 1 4463 24 is_stmt 0 view .LVU4488 + 12916 0002 0268 ldr r2, [r0] +4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); + 12917 .loc 1 4463 12 view .LVU4489 + 12918 0004 9369 ldr r3, [r2, #24] + 12919 .LVL929: +4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; + 12920 .loc 1 4464 3 is_stmt 1 view .LVU4490 +4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; + 12921 .loc 1 4464 12 is_stmt 0 view .LVU4491 + 12922 0006 1168 ldr r1, [r2] + 12923 .LVL930: +4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12924 .loc 1 4465 3 is_stmt 1 view .LVU4492 +4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12925 .loc 1 4468 3 view .LVU4493 +4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12926 .loc 1 4468 6 is_stmt 0 view .LVU4494 + ARM GAS /tmp/ccbUHtu7.s page 423 + + + 12927 0008 13F4807F tst r3, #256 + 12928 000c 09D0 beq .L813 +4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12929 .loc 1 4468 57 discriminator 1 view .LVU4495 + 12930 000e 11F0800F tst r1, #128 + 12931 0012 06D0 beq .L813 +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12932 .loc 1 4471 5 is_stmt 1 view .LVU4496 +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12933 .loc 1 4471 9 is_stmt 0 view .LVU4497 + 12934 0014 446C ldr r4, [r0, #68] +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12935 .loc 1 4471 21 view .LVU4498 + 12936 0016 44F00104 orr r4, r4, #1 + 12937 001a 4464 str r4, [r0, #68] +4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12938 .loc 1 4474 5 is_stmt 1 view .LVU4499 + 12939 001c 4FF48074 mov r4, #256 + 12940 0020 D461 str r4, [r2, #28] + 12941 .L813: +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12942 .loc 1 4478 3 view .LVU4500 +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12943 .loc 1 4478 6 is_stmt 0 view .LVU4501 + 12944 0022 13F4806F tst r3, #1024 + 12945 0026 0AD0 beq .L814 +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12946 .loc 1 4478 56 discriminator 1 view .LVU4502 + 12947 0028 11F0800F tst r1, #128 + 12948 002c 07D0 beq .L814 +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12949 .loc 1 4481 5 is_stmt 1 view .LVU4503 +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12950 .loc 1 4481 9 is_stmt 0 view .LVU4504 + 12951 002e 426C ldr r2, [r0, #68] +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12952 .loc 1 4481 21 view .LVU4505 + 12953 0030 42F00802 orr r2, r2, #8 + 12954 0034 4264 str r2, [r0, #68] +4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12955 .loc 1 4484 5 is_stmt 1 view .LVU4506 + 12956 0036 0268 ldr r2, [r0] + 12957 0038 4FF48064 mov r4, #1024 + 12958 003c D461 str r4, [r2, #28] + 12959 .L814: +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12960 .loc 1 4488 3 view .LVU4507 +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12961 .loc 1 4488 6 is_stmt 0 view .LVU4508 + 12962 003e 13F4007F tst r3, #512 + 12963 0042 0AD0 beq .L815 +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + 12964 .loc 1 4488 57 discriminator 1 view .LVU4509 + 12965 0044 11F0800F tst r1, #128 + 12966 0048 07D0 beq .L815 +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12967 .loc 1 4491 5 is_stmt 1 view .LVU4510 + ARM GAS /tmp/ccbUHtu7.s page 424 + + +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12968 .loc 1 4491 9 is_stmt 0 view .LVU4511 + 12969 004a 436C ldr r3, [r0, #68] + 12970 .LVL931: +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12971 .loc 1 4491 21 view .LVU4512 + 12972 004c 43F00203 orr r3, r3, #2 + 12973 0050 4364 str r3, [r0, #68] +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12974 .loc 1 4494 5 is_stmt 1 view .LVU4513 + 12975 0052 0368 ldr r3, [r0] + 12976 0054 4FF40072 mov r2, #512 + 12977 0058 DA61 str r2, [r3, #28] + 12978 .L815: +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12979 .loc 1 4498 3 view .LVU4514 +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12980 .loc 1 4498 12 is_stmt 0 view .LVU4515 + 12981 005a 416C ldr r1, [r0, #68] + 12982 .LVL932: +4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12983 .loc 1 4501 3 is_stmt 1 view .LVU4516 +4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 12984 .loc 1 4501 6 is_stmt 0 view .LVU4517 + 12985 005c 11F00B0F tst r1, #11 + 12986 0060 00D1 bne .L818 + 12987 .LVL933: + 12988 .L812: +4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12989 .loc 1 4505 1 view .LVU4518 + 12990 0062 10BD pop {r4, pc} + 12991 .LVL934: + 12992 .L818: +4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 12993 .loc 1 4503 5 is_stmt 1 view .LVU4519 + 12994 0064 FFF7FEFF bl I2C_ITError + 12995 .LVL935: +4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 12996 .loc 1 4505 1 is_stmt 0 view .LVU4520 + 12997 0068 FBE7 b .L812 + 12998 .cfi_endproc + 12999 .LFE364: + 13001 .section .text.I2C_DMAAbort,"ax",%progbits + 13002 .align 1 + 13003 .syntax unified + 13004 .thumb + 13005 .thumb_func + 13007 I2C_DMAAbort: + 13008 .LVL936: + 13009 .LFB398: +6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 13010 .loc 1 6340 1 is_stmt 1 view -0 + 13011 .cfi_startproc + 13012 @ args = 0, pretend = 0, frame = 0 + 13013 @ frame_needed = 0, uses_anonymous_args = 0 +6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ + 13014 .loc 1 6340 1 is_stmt 0 view .LVU4522 + ARM GAS /tmp/ccbUHtu7.s page 425 + + + 13015 0000 08B5 push {r3, lr} + 13016 .LCFI141: + 13017 .cfi_def_cfa_offset 8 + 13018 .cfi_offset 3, -8 + 13019 .cfi_offset 14, -4 +6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 13020 .loc 1 6342 3 is_stmt 1 view .LVU4523 +6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 13021 .loc 1 6342 22 is_stmt 0 view .LVU4524 + 13022 0002 806A ldr r0, [r0, #40] + 13023 .LVL937: +6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 13024 .loc 1 6345 3 is_stmt 1 view .LVU4525 +6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 13025 .loc 1 6345 11 is_stmt 0 view .LVU4526 + 13026 0004 836B ldr r3, [r0, #56] +6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 13027 .loc 1 6345 6 view .LVU4527 + 13028 0006 0BB1 cbz r3, .L820 +6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13029 .loc 1 6347 5 is_stmt 1 view .LVU4528 +6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13030 .loc 1 6347 37 is_stmt 0 view .LVU4529 + 13031 0008 0022 movs r2, #0 + 13032 000a 9A63 str r2, [r3, #56] + 13033 .L820: +6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 13034 .loc 1 6349 3 is_stmt 1 view .LVU4530 +6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 13035 .loc 1 6349 11 is_stmt 0 view .LVU4531 + 13036 000c C36B ldr r3, [r0, #60] +6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { + 13037 .loc 1 6349 6 view .LVU4532 + 13038 000e 0BB1 cbz r3, .L821 +6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13039 .loc 1 6351 5 is_stmt 1 view .LVU4533 +6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13040 .loc 1 6351 37 is_stmt 0 view .LVU4534 + 13041 0010 0022 movs r2, #0 + 13042 0012 9A63 str r2, [r3, #56] + 13043 .L821: +6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13044 .loc 1 6354 3 is_stmt 1 view .LVU4535 + 13045 0014 FFF7FEFF bl I2C_TreatErrorCallback + 13046 .LVL938: +6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 13047 .loc 1 6355 1 is_stmt 0 view .LVU4536 + 13048 0018 08BD pop {r3, pc} + 13049 .cfi_endproc + 13050 .LFE398: + 13052 .section .text.HAL_I2C_GetState,"ax",%progbits + 13053 .align 1 + 13054 .global HAL_I2C_GetState + 13055 .syntax unified + 13056 .thumb + 13057 .thumb_func + 13059 HAL_I2C_GetState: + ARM GAS /tmp/ccbUHtu7.s page 426 + + + 13060 .LVL939: + 13061 .LFB375: +4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ + 13062 .loc 1 4696 1 is_stmt 1 view -0 + 13063 .cfi_startproc + 13064 @ args = 0, pretend = 0, frame = 0 + 13065 @ frame_needed = 0, uses_anonymous_args = 0 + 13066 @ link register save eliminated. +4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13067 .loc 1 4698 3 view .LVU4538 +4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13068 .loc 1 4698 14 is_stmt 0 view .LVU4539 + 13069 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 13070 .LVL940: +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 13071 .loc 1 4699 1 view .LVU4540 + 13072 0004 7047 bx lr + 13073 .cfi_endproc + 13074 .LFE375: + 13076 .section .text.HAL_I2C_GetMode,"ax",%progbits + 13077 .align 1 + 13078 .global HAL_I2C_GetMode + 13079 .syntax unified + 13080 .thumb + 13081 .thumb_func + 13083 HAL_I2C_GetMode: + 13084 .LVL941: + 13085 .LFB376: +4708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; + 13086 .loc 1 4708 1 is_stmt 1 view -0 + 13087 .cfi_startproc + 13088 @ args = 0, pretend = 0, frame = 0 + 13089 @ frame_needed = 0, uses_anonymous_args = 0 + 13090 @ link register save eliminated. +4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13091 .loc 1 4709 3 view .LVU4542 +4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13092 .loc 1 4709 14 is_stmt 0 view .LVU4543 + 13093 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 + 13094 .LVL942: +4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 13095 .loc 1 4710 1 view .LVU4544 + 13096 0004 7047 bx lr + 13097 .cfi_endproc + 13098 .LFE376: + 13100 .section .text.HAL_I2C_GetError,"ax",%progbits + 13101 .align 1 + 13102 .global HAL_I2C_GetError + 13103 .syntax unified + 13104 .thumb + 13105 .thumb_func + 13107 HAL_I2C_GetError: + 13108 .LVL943: + 13109 .LFB377: +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; + 13110 .loc 1 4719 1 is_stmt 1 view -0 + 13111 .cfi_startproc + ARM GAS /tmp/ccbUHtu7.s page 427 + + + 13112 @ args = 0, pretend = 0, frame = 0 + 13113 @ frame_needed = 0, uses_anonymous_args = 0 + 13114 @ link register save eliminated. +4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13115 .loc 1 4720 3 view .LVU4546 +4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } + 13116 .loc 1 4720 14 is_stmt 0 view .LVU4547 + 13117 0000 406C ldr r0, [r0, #68] + 13118 .LVL944: +4721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** + 13119 .loc 1 4721 1 view .LVU4548 + 13120 0002 7047 bx lr + 13121 .cfi_endproc + 13122 .LFE377: + 13124 .text + 13125 .Letext0: + 13126 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 13127 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 13128 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 13129 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 13130 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 13131 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" + 13132 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccbUHtu7.s page 428 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_i2c.c + /tmp/ccbUHtu7.s:21 .text.I2C_Flush_TXDR:00000000 $t + /tmp/ccbUHtu7.s:26 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR + /tmp/ccbUHtu7.s:64 .text.I2C_TransferConfig:00000000 $t + /tmp/ccbUHtu7.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig + /tmp/ccbUHtu7.s:127 .text.I2C_Enable_IRQ:00000000 $t + /tmp/ccbUHtu7.s:132 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ + /tmp/ccbUHtu7.s:255 .text.I2C_Enable_IRQ:0000006c $d + /tmp/ccbUHtu7.s:12326 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA + /tmp/ccbUHtu7.s:12045 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA + /tmp/ccbUHtu7.s:261 .text.I2C_Disable_IRQ:00000000 $t + /tmp/ccbUHtu7.s:266 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ + /tmp/ccbUHtu7.s:390 .text.I2C_ConvertOtherXferOptions:00000000 $t + /tmp/ccbUHtu7.s:395 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions + /tmp/ccbUHtu7.s:436 .text.I2C_IsErrorOccurred:00000000 $t + /tmp/ccbUHtu7.s:441 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred + /tmp/ccbUHtu7.s:734 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t + /tmp/ccbUHtu7.s:739 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout + /tmp/ccbUHtu7.s:830 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t + /tmp/ccbUHtu7.s:835 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout + /tmp/ccbUHtu7.s:921 .text.I2C_RequestMemoryWrite:00000000 $t + /tmp/ccbUHtu7.s:926 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite + /tmp/ccbUHtu7.s:1045 .text.I2C_RequestMemoryWrite:00000078 $d + /tmp/ccbUHtu7.s:1050 .text.I2C_RequestMemoryRead:00000000 $t + /tmp/ccbUHtu7.s:1055 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead + /tmp/ccbUHtu7.s:1174 .text.I2C_RequestMemoryRead:00000074 $d + /tmp/ccbUHtu7.s:1179 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t + /tmp/ccbUHtu7.s:1184 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout + /tmp/ccbUHtu7.s:1271 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t + /tmp/ccbUHtu7.s:1276 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout + /tmp/ccbUHtu7.s:1430 .text.HAL_I2C_MspInit:00000000 $t + /tmp/ccbUHtu7.s:1436 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit + /tmp/ccbUHtu7.s:1451 .text.HAL_I2C_Init:00000000 $t + /tmp/ccbUHtu7.s:1457 .text.HAL_I2C_Init:00000000 HAL_I2C_Init + /tmp/ccbUHtu7.s:1649 .text.HAL_I2C_MspDeInit:00000000 $t + /tmp/ccbUHtu7.s:1655 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit + /tmp/ccbUHtu7.s:1670 .text.HAL_I2C_DeInit:00000000 $t + /tmp/ccbUHtu7.s:1676 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit + /tmp/ccbUHtu7.s:1741 .text.HAL_I2C_Master_Transmit:00000000 $t + /tmp/ccbUHtu7.s:1747 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit + /tmp/ccbUHtu7.s:2057 .text.HAL_I2C_Master_Transmit:00000178 $d + /tmp/ccbUHtu7.s:2062 .text.HAL_I2C_Master_Receive:00000000 $t + /tmp/ccbUHtu7.s:2068 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive + /tmp/ccbUHtu7.s:2377 .text.HAL_I2C_Master_Receive:00000178 $d + /tmp/ccbUHtu7.s:2382 .text.HAL_I2C_Slave_Transmit:00000000 $t + /tmp/ccbUHtu7.s:2388 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit + /tmp/ccbUHtu7.s:2766 .text.HAL_I2C_Slave_Receive:00000000 $t + /tmp/ccbUHtu7.s:2772 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive + /tmp/ccbUHtu7.s:3120 .text.HAL_I2C_Master_Transmit_IT:00000000 $t + /tmp/ccbUHtu7.s:3126 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT + /tmp/ccbUHtu7.s:3279 .text.HAL_I2C_Master_Transmit_IT:0000008c $d + /tmp/ccbUHtu7.s:11665 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT + /tmp/ccbUHtu7.s:3286 .text.HAL_I2C_Master_Receive_IT:00000000 $t + /tmp/ccbUHtu7.s:3292 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT + /tmp/ccbUHtu7.s:3445 .text.HAL_I2C_Master_Receive_IT:0000008c $d + /tmp/ccbUHtu7.s:3452 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t + ARM GAS /tmp/ccbUHtu7.s page 429 + + + /tmp/ccbUHtu7.s:3458 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT + /tmp/ccbUHtu7.s:3561 .text.HAL_I2C_Slave_Transmit_IT:0000005c $d + /tmp/ccbUHtu7.s:11092 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT + /tmp/ccbUHtu7.s:3567 .text.HAL_I2C_Slave_Receive_IT:00000000 $t + /tmp/ccbUHtu7.s:3573 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT + /tmp/ccbUHtu7.s:3676 .text.HAL_I2C_Slave_Receive_IT:0000005c $d + /tmp/ccbUHtu7.s:3682 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t + /tmp/ccbUHtu7.s:3688 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA + /tmp/ccbUHtu7.s:3990 .text.HAL_I2C_Master_Transmit_DMA:0000013c $d + /tmp/ccbUHtu7.s:12684 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt + /tmp/ccbUHtu7.s:12644 .text.I2C_DMAError:00000000 I2C_DMAError + /tmp/ccbUHtu7.s:4000 .text.HAL_I2C_Master_Receive_DMA:00000000 $t + /tmp/ccbUHtu7.s:4006 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA + /tmp/ccbUHtu7.s:4308 .text.HAL_I2C_Master_Receive_DMA:00000138 $d + /tmp/ccbUHtu7.s:12792 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt + /tmp/ccbUHtu7.s:4318 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t + /tmp/ccbUHtu7.s:4324 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA + /tmp/ccbUHtu7.s:4545 .text.HAL_I2C_Slave_Transmit_DMA:000000e0 $d + /tmp/ccbUHtu7.s:9921 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt + /tmp/ccbUHtu7.s:4553 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t + /tmp/ccbUHtu7.s:4559 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA + /tmp/ccbUHtu7.s:4782 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d + /tmp/ccbUHtu7.s:9973 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt + /tmp/ccbUHtu7.s:4790 .text.HAL_I2C_Mem_Write:00000000 $t + /tmp/ccbUHtu7.s:4796 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write + /tmp/ccbUHtu7.s:5154 .text.HAL_I2C_Mem_Read:00000000 $t + /tmp/ccbUHtu7.s:5160 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read + /tmp/ccbUHtu7.s:5518 .text.HAL_I2C_Mem_Read:000001ac $d + /tmp/ccbUHtu7.s:5523 .text.HAL_I2C_Mem_Write_IT:00000000 $t + /tmp/ccbUHtu7.s:5529 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT + /tmp/ccbUHtu7.s:5738 .text.HAL_I2C_Mem_Write_IT:000000dc $d + /tmp/ccbUHtu7.s:5744 .text.HAL_I2C_Mem_Read_IT:00000000 $t + /tmp/ccbUHtu7.s:5750 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT + /tmp/ccbUHtu7.s:5960 .text.HAL_I2C_Mem_Read_IT:000000dc $d + /tmp/ccbUHtu7.s:5967 .text.HAL_I2C_Mem_Write_DMA:00000000 $t + /tmp/ccbUHtu7.s:5973 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA + /tmp/ccbUHtu7.s:6291 .text.HAL_I2C_Mem_Write_DMA:0000015c $d + /tmp/ccbUHtu7.s:6299 .text.HAL_I2C_Mem_Read_DMA:00000000 $t + /tmp/ccbUHtu7.s:6305 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA + /tmp/ccbUHtu7.s:6624 .text.HAL_I2C_Mem_Read_DMA:0000015c $d + /tmp/ccbUHtu7.s:6633 .text.HAL_I2C_IsDeviceReady:00000000 $t + /tmp/ccbUHtu7.s:6639 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady + /tmp/ccbUHtu7.s:6972 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t + /tmp/ccbUHtu7.s:6978 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT + /tmp/ccbUHtu7.s:7169 .text.HAL_I2C_Master_Seq_Transmit_IT:000000ac $d + /tmp/ccbUHtu7.s:7175 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t + /tmp/ccbUHtu7.s:7181 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA + /tmp/ccbUHtu7.s:7514 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000160 $d + /tmp/ccbUHtu7.s:7523 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t + /tmp/ccbUHtu7.s:7529 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT + /tmp/ccbUHtu7.s:7720 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d + /tmp/ccbUHtu7.s:7726 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t + /tmp/ccbUHtu7.s:7732 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA + /tmp/ccbUHtu7.s:8065 .text.HAL_I2C_Master_Seq_Receive_DMA:00000160 $d + /tmp/ccbUHtu7.s:8074 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t + /tmp/ccbUHtu7.s:8080 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT + /tmp/ccbUHtu7.s:8281 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d0 $d + ARM GAS /tmp/ccbUHtu7.s page 430 + + + /tmp/ccbUHtu7.s:13007 .text.I2C_DMAAbort:00000000 I2C_DMAAbort + /tmp/ccbUHtu7.s:8287 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t + /tmp/ccbUHtu7.s:8293 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA + /tmp/ccbUHtu7.s:8672 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000194 $d + /tmp/ccbUHtu7.s:8680 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t + /tmp/ccbUHtu7.s:8686 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT + /tmp/ccbUHtu7.s:8887 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d0 $d + /tmp/ccbUHtu7.s:8893 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t + /tmp/ccbUHtu7.s:8899 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA + /tmp/ccbUHtu7.s:9275 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000190 $d + /tmp/ccbUHtu7.s:9283 .text.HAL_I2C_EnableListen_IT:00000000 $t + /tmp/ccbUHtu7.s:9289 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT + /tmp/ccbUHtu7.s:9336 .text.HAL_I2C_EnableListen_IT:00000028 $d + /tmp/ccbUHtu7.s:9341 .text.HAL_I2C_DisableListen_IT:00000000 $t + /tmp/ccbUHtu7.s:9347 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT + /tmp/ccbUHtu7.s:9413 .text.HAL_I2C_Master_Abort_IT:00000000 $t + /tmp/ccbUHtu7.s:9419 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT + /tmp/ccbUHtu7.s:9560 .text.HAL_I2C_Master_Abort_IT:00000080 $d + /tmp/ccbUHtu7.s:9565 .text.HAL_I2C_EV_IRQHandler:00000000 $t + /tmp/ccbUHtu7.s:9571 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler + /tmp/ccbUHtu7.s:9609 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:9615 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback + /tmp/ccbUHtu7.s:9630 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:9636 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback + /tmp/ccbUHtu7.s:9651 .text.I2C_ITMasterSeqCplt:00000000 $t + /tmp/ccbUHtu7.s:9656 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt + /tmp/ccbUHtu7.s:9741 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:9747 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback + /tmp/ccbUHtu7.s:9762 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:9768 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback + /tmp/ccbUHtu7.s:9783 .text.I2C_ITSlaveSeqCplt:00000000 $t + /tmp/ccbUHtu7.s:9788 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt + /tmp/ccbUHtu7.s:9916 .text.I2C_DMASlaveTransmitCplt:00000000 $t + /tmp/ccbUHtu7.s:9968 .text.I2C_DMASlaveReceiveCplt:00000000 $t + /tmp/ccbUHtu7.s:10029 .text.HAL_I2C_AddrCallback:00000000 $t + /tmp/ccbUHtu7.s:10035 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback + /tmp/ccbUHtu7.s:10052 .text.I2C_ITAddrCplt:00000000 $t + /tmp/ccbUHtu7.s:10057 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt + /tmp/ccbUHtu7.s:10217 .text.HAL_I2C_ListenCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:10223 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback + /tmp/ccbUHtu7.s:10238 .text.I2C_ITListenCplt:00000000 $t + /tmp/ccbUHtu7.s:10243 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt + /tmp/ccbUHtu7.s:10347 .text.I2C_ITListenCplt:00000064 $d + /tmp/ccbUHtu7.s:10352 .text.HAL_I2C_MemTxCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:10358 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback + /tmp/ccbUHtu7.s:10373 .text.HAL_I2C_MemRxCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:10379 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback + /tmp/ccbUHtu7.s:10394 .text.HAL_I2C_ErrorCallback:00000000 $t + /tmp/ccbUHtu7.s:10400 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback + /tmp/ccbUHtu7.s:10415 .text.HAL_I2C_AbortCpltCallback:00000000 $t + /tmp/ccbUHtu7.s:10421 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback + /tmp/ccbUHtu7.s:10436 .text.I2C_TreatErrorCallback:00000000 $t + /tmp/ccbUHtu7.s:10441 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback + /tmp/ccbUHtu7.s:10498 .text.I2C_ITError:00000000 $t + /tmp/ccbUHtu7.s:10503 .text.I2C_ITError:00000000 I2C_ITError + /tmp/ccbUHtu7.s:10750 .text.I2C_ITError:000000fc $d + /tmp/ccbUHtu7.s:10757 .text.I2C_ITSlaveCplt:00000000 $t + ARM GAS /tmp/ccbUHtu7.s page 431 + + + /tmp/ccbUHtu7.s:10762 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt + /tmp/ccbUHtu7.s:11082 .text.I2C_ITSlaveCplt:00000164 $d + /tmp/ccbUHtu7.s:11087 .text.I2C_Slave_ISR_IT:00000000 $t + /tmp/ccbUHtu7.s:11383 .text.I2C_ITMasterCplt:00000000 $t + /tmp/ccbUHtu7.s:11388 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt + /tmp/ccbUHtu7.s:11660 .text.I2C_Master_ISR_IT:00000000 $t + /tmp/ccbUHtu7.s:12040 .text.I2C_Slave_ISR_DMA:00000000 $t + /tmp/ccbUHtu7.s:12182 .text.I2C_Slave_ISR_DMA:0000008e $d + /tmp/ccbUHtu7.s:12193 .text.I2C_Slave_ISR_DMA:00000098 $t + /tmp/ccbUHtu7.s:12321 .text.I2C_Master_ISR_DMA:00000000 $t + /tmp/ccbUHtu7.s:12639 .text.I2C_DMAError:00000000 $t + /tmp/ccbUHtu7.s:12679 .text.I2C_DMAMasterTransmitCplt:00000000 $t + /tmp/ccbUHtu7.s:12787 .text.I2C_DMAMasterReceiveCplt:00000000 $t + /tmp/ccbUHtu7.s:12895 .text.HAL_I2C_ER_IRQHandler:00000000 $t + /tmp/ccbUHtu7.s:12901 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler + /tmp/ccbUHtu7.s:13002 .text.I2C_DMAAbort:00000000 $t + /tmp/ccbUHtu7.s:13053 .text.HAL_I2C_GetState:00000000 $t + /tmp/ccbUHtu7.s:13059 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState + /tmp/ccbUHtu7.s:13077 .text.HAL_I2C_GetMode:00000000 $t + /tmp/ccbUHtu7.s:13083 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode + /tmp/ccbUHtu7.s:13101 .text.HAL_I2C_GetError:00000000 $t + /tmp/ccbUHtu7.s:13107 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError + +UNDEFINED SYMBOLS +HAL_GetTick +HAL_DMA_Start_IT +HAL_DMA_Abort_IT +HAL_DMA_GetState diff --git a/squeow_sw/build/stm32g4xx_hal_i2c.o b/squeow_sw/build/stm32g4xx_hal_i2c.o new file mode 100644 index 0000000000000000000000000000000000000000..ab63d7dfc85a0dfd817a5f9b29c1be1ac01c1947 GIT binary patch literal 135312 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 MOeqInstance)); + 37 .loc 1 99 3 is_stmt 1 view .LVU2 + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter)); + 38 .loc 1 100 3 view .LVU3 + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 39 .loc 1 102 3 view .LVU4 + 40 .loc 1 102 11 is_stmt 0 view .LVU5 + 41 0002 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 + 42 0006 D2B2 uxtb r2, r2 + 43 .loc 1 102 6 view .LVU6 + 44 0008 202A cmp r2, #32 + 45 000a 23D1 bne .L3 + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Locked */ + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_LOCK(hi2c); + 46 .loc 1 105 5 is_stmt 1 view .LVU7 + 47 .loc 1 105 5 view .LVU8 + 48 000c 90F84020 ldrb r2, [r0, #64] @ zero_extendqisi2 + 49 0010 012A cmp r2, #1 + 50 0012 21D0 beq .L4 + 51 .loc 1 105 5 discriminator 2 view .LVU9 + 52 0014 0122 movs r2, #1 + 53 0016 80F84020 strb r2, [r0, #64] + 54 .loc 1 105 5 discriminator 2 view .LVU10 + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_BUSY; + 55 .loc 1 107 5 discriminator 2 view .LVU11 + 56 .loc 1 107 17 is_stmt 0 discriminator 2 view .LVU12 + 57 001a 2422 movs r2, #36 + 58 001c 80F84120 strb r2, [r0, #65] + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Disable the selected I2C peripheral */ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_DISABLE(hi2c); + 59 .loc 1 110 5 is_stmt 1 discriminator 2 view .LVU13 + 60 0020 0068 ldr r0, [r0] + 61 .LVL1: + 62 .loc 1 110 5 is_stmt 0 discriminator 2 view .LVU14 + ARM GAS /tmp/cc3umPGo.s page 4 + + + 63 0022 0268 ldr r2, [r0] + 64 0024 22F00102 bic r2, r2, #1 + 65 0028 0260 str r2, [r0] + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Reset I2Cx ANOFF bit */ + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->Instance->CR1 &= ~(I2C_CR1_ANFOFF); + 66 .loc 1 113 5 is_stmt 1 discriminator 2 view .LVU15 + 67 .loc 1 113 9 is_stmt 0 discriminator 2 view .LVU16 + 68 002a 1868 ldr r0, [r3] + 69 .loc 1 113 19 discriminator 2 view .LVU17 + 70 002c 0268 ldr r2, [r0] + 71 .loc 1 113 25 discriminator 2 view .LVU18 + 72 002e 22F48052 bic r2, r2, #4096 + 73 0032 0260 str r2, [r0] + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Set analog filter bit*/ + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->Instance->CR1 |= AnalogFilter; + 74 .loc 1 116 5 is_stmt 1 discriminator 2 view .LVU19 + 75 .loc 1 116 9 is_stmt 0 discriminator 2 view .LVU20 + 76 0034 1868 ldr r0, [r3] + 77 .loc 1 116 19 discriminator 2 view .LVU21 + 78 0036 0268 ldr r2, [r0] + 79 .loc 1 116 25 discriminator 2 view .LVU22 + 80 0038 1143 orrs r1, r1, r2 + 81 .LVL2: + 82 .loc 1 116 25 discriminator 2 view .LVU23 + 83 003a 0160 str r1, [r0] + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_ENABLE(hi2c); + 84 .loc 1 118 5 is_stmt 1 discriminator 2 view .LVU24 + 85 003c 1968 ldr r1, [r3] + 86 003e 0A68 ldr r2, [r1] + 87 0040 42F00102 orr r2, r2, #1 + 88 0044 0A60 str r2, [r1] + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_READY; + 89 .loc 1 120 5 discriminator 2 view .LVU25 + 90 .loc 1 120 17 is_stmt 0 discriminator 2 view .LVU26 + 91 0046 2022 movs r2, #32 + 92 0048 83F84120 strb r2, [r3, #65] + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Unlocked */ + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_UNLOCK(hi2c); + 93 .loc 1 123 5 is_stmt 1 discriminator 2 view .LVU27 + 94 .loc 1 123 5 discriminator 2 view .LVU28 + 95 004c 0020 movs r0, #0 + 96 004e 83F84000 strb r0, [r3, #64] + 97 .loc 1 123 5 discriminator 2 view .LVU29 + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_OK; + 98 .loc 1 125 5 discriminator 2 view .LVU30 + 99 .loc 1 125 12 is_stmt 0 discriminator 2 view .LVU31 + 100 0052 7047 bx lr + 101 .LVL3: + 102 .L3: + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** else + ARM GAS /tmp/cc3umPGo.s page 5 + + + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_BUSY; + 103 .loc 1 129 12 view .LVU32 + 104 0054 0220 movs r0, #2 + 105 .LVL4: + 106 .loc 1 129 12 view .LVU33 + 107 0056 7047 bx lr + 108 .LVL5: + 109 .L4: + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 110 .loc 1 105 5 view .LVU34 + 111 0058 0220 movs r0, #2 + 112 .LVL6: + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 113 .loc 1 131 1 view .LVU35 + 114 005a 7047 bx lr + 115 .cfi_endproc + 116 .LFE329: + 118 .section .text.HAL_I2CEx_ConfigDigitalFilter,"ax",%progbits + 119 .align 1 + 120 .global HAL_I2CEx_ConfigDigitalFilter + 121 .syntax unified + 122 .thumb + 123 .thumb_func + 125 HAL_I2CEx_ConfigDigitalFilter: + 126 .LVL7: + 127 .LFB330: + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief Configure I2C Digital noise filter. + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * the configuration information for the specified I2Cx peripheral. + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @param DigitalFilter Coefficient of digital noise filter between Min_Data=0x00 and Max_Data=0x + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @retval HAL status + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter) + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 128 .loc 1 141 1 is_stmt 1 view -0 + 129 .cfi_startproc + 130 @ args = 0, pretend = 0, frame = 0 + 131 @ frame_needed = 0, uses_anonymous_args = 0 + 132 @ link register save eliminated. + 133 .loc 1 141 1 is_stmt 0 view .LVU37 + 134 0000 0346 mov r3, r0 + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** uint32_t tmpreg; + 135 .loc 1 142 3 is_stmt 1 view .LVU38 + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Check the parameters */ + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + 136 .loc 1 145 3 view .LVU39 + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter)); + 137 .loc 1 146 3 view .LVU40 + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 138 .loc 1 148 3 view .LVU41 + 139 .loc 1 148 11 is_stmt 0 view .LVU42 + ARM GAS /tmp/cc3umPGo.s page 6 + + + 140 0002 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 + 141 0006 D2B2 uxtb r2, r2 + 142 .loc 1 148 6 view .LVU43 + 143 0008 202A cmp r2, #32 + 144 000a 21D1 bne .L7 + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Locked */ + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_LOCK(hi2c); + 145 .loc 1 151 5 is_stmt 1 view .LVU44 + 146 .loc 1 151 5 view .LVU45 + 147 000c 90F84020 ldrb r2, [r0, #64] @ zero_extendqisi2 + 148 0010 012A cmp r2, #1 + 149 0012 1FD0 beq .L8 + 150 .loc 1 151 5 discriminator 2 view .LVU46 + 151 0014 0122 movs r2, #1 + 152 0016 80F84020 strb r2, [r0, #64] + 153 .loc 1 151 5 discriminator 2 view .LVU47 + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_BUSY; + 154 .loc 1 153 5 discriminator 2 view .LVU48 + 155 .loc 1 153 17 is_stmt 0 discriminator 2 view .LVU49 + 156 001a 2422 movs r2, #36 + 157 001c 80F84120 strb r2, [r0, #65] + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Disable the selected I2C peripheral */ + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_DISABLE(hi2c); + 158 .loc 1 156 5 is_stmt 1 discriminator 2 view .LVU50 + 159 0020 0068 ldr r0, [r0] + 160 .LVL8: + 161 .loc 1 156 5 is_stmt 0 discriminator 2 view .LVU51 + 162 0022 0268 ldr r2, [r0] + 163 0024 22F00102 bic r2, r2, #1 + 164 0028 0260 str r2, [r0] + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Get the old register value */ + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** tmpreg = hi2c->Instance->CR1; + 165 .loc 1 159 5 is_stmt 1 discriminator 2 view .LVU52 + 166 .loc 1 159 18 is_stmt 0 discriminator 2 view .LVU53 + 167 002a 1868 ldr r0, [r3] + 168 .loc 1 159 12 discriminator 2 view .LVU54 + 169 002c 0268 ldr r2, [r0] + 170 .LVL9: + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Reset I2Cx DNF bits [11:8] */ + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** tmpreg &= ~(I2C_CR1_DNF); + 171 .loc 1 162 5 is_stmt 1 discriminator 2 view .LVU55 + 172 .loc 1 162 12 is_stmt 0 discriminator 2 view .LVU56 + 173 002e 22F47062 bic r2, r2, #3840 + 174 .LVL10: + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Set I2Cx DNF coefficient */ + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** tmpreg |= DigitalFilter << 8U; + 175 .loc 1 165 5 is_stmt 1 discriminator 2 view .LVU57 + 176 .loc 1 165 12 is_stmt 0 discriminator 2 view .LVU58 + 177 0032 42EA0122 orr r2, r2, r1, lsl #8 + 178 .LVL11: + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + ARM GAS /tmp/cc3umPGo.s page 7 + + + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Store the new register value */ + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->Instance->CR1 = tmpreg; + 179 .loc 1 168 5 is_stmt 1 discriminator 2 view .LVU59 + 180 .loc 1 168 25 is_stmt 0 discriminator 2 view .LVU60 + 181 0036 0260 str r2, [r0] + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_ENABLE(hi2c); + 182 .loc 1 170 5 is_stmt 1 discriminator 2 view .LVU61 + 183 0038 1968 ldr r1, [r3] + 184 .LVL12: + 185 .loc 1 170 5 is_stmt 0 discriminator 2 view .LVU62 + 186 003a 0A68 ldr r2, [r1] + 187 .LVL13: + 188 .loc 1 170 5 discriminator 2 view .LVU63 + 189 003c 42F00102 orr r2, r2, #1 + 190 0040 0A60 str r2, [r1] + 191 .LVL14: + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_READY; + 192 .loc 1 172 5 is_stmt 1 discriminator 2 view .LVU64 + 193 .loc 1 172 17 is_stmt 0 discriminator 2 view .LVU65 + 194 0042 2022 movs r2, #32 + 195 0044 83F84120 strb r2, [r3, #65] + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Unlocked */ + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_UNLOCK(hi2c); + 196 .loc 1 175 5 is_stmt 1 discriminator 2 view .LVU66 + 197 .loc 1 175 5 discriminator 2 view .LVU67 + 198 0048 0020 movs r0, #0 + 199 004a 83F84000 strb r0, [r3, #64] + 200 .loc 1 175 5 discriminator 2 view .LVU68 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_OK; + 201 .loc 1 177 5 discriminator 2 view .LVU69 + 202 .loc 1 177 12 is_stmt 0 discriminator 2 view .LVU70 + 203 004e 7047 bx lr + 204 .LVL15: + 205 .L7: + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** else + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_BUSY; + 206 .loc 1 181 12 view .LVU71 + 207 0050 0220 movs r0, #2 + 208 .LVL16: + 209 .loc 1 181 12 view .LVU72 + 210 0052 7047 bx lr + 211 .LVL17: + 212 .L8: + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 213 .loc 1 151 5 view .LVU73 + 214 0054 0220 movs r0, #2 + 215 .LVL18: + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 216 .loc 1 183 1 view .LVU74 + 217 0056 7047 bx lr + ARM GAS /tmp/cc3umPGo.s page 8 + + + 218 .cfi_endproc + 219 .LFE330: + 221 .section .text.HAL_I2CEx_EnableWakeUp,"ax",%progbits + 222 .align 1 + 223 .global HAL_I2CEx_EnableWakeUp + 224 .syntax unified + 225 .thumb + 226 .thumb_func + 228 HAL_I2CEx_EnableWakeUp: + 229 .LVL19: + 230 .LFB331: + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @} + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** @defgroup I2CEx_Exported_Functions_Group2 WakeUp Mode Functions + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief WakeUp Mode Functions + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** @verbatim + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** =============================================================================== + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** ##### WakeUp Mode Functions ##### + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** =============================================================================== + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** [..] This section provides functions allowing to: + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** (+) Configure Wake Up Feature + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** @endverbatim + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @{ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief Enable I2C wakeup from Stop mode(s). + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * the configuration information for the specified I2Cx peripheral. + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @retval HAL status + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c) + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 231 .loc 1 209 1 is_stmt 1 view -0 + 232 .cfi_startproc + 233 @ args = 0, pretend = 0, frame = 0 + 234 @ frame_needed = 0, uses_anonymous_args = 0 + 235 @ link register save eliminated. + 236 .loc 1 209 1 is_stmt 0 view .LVU76 + 237 0000 0346 mov r3, r0 + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Check the parameters */ + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_WAKEUP_FROMSTOP_INSTANCE(hi2c->Instance)); + 238 .loc 1 211 3 is_stmt 1 view .LVU77 + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 239 .loc 1 213 3 view .LVU78 + 240 .loc 1 213 11 is_stmt 0 view .LVU79 + 241 0002 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 + 242 0006 D2B2 uxtb r2, r2 + 243 .loc 1 213 6 view .LVU80 + 244 0008 202A cmp r2, #32 + 245 000a 1FD1 bne .L11 + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + ARM GAS /tmp/cc3umPGo.s page 9 + + + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Locked */ + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_LOCK(hi2c); + 246 .loc 1 216 5 is_stmt 1 view .LVU81 + 247 .loc 1 216 5 view .LVU82 + 248 000c 90F84020 ldrb r2, [r0, #64] @ zero_extendqisi2 + 249 0010 012A cmp r2, #1 + 250 0012 1DD0 beq .L12 + 251 .loc 1 216 5 discriminator 2 view .LVU83 + 252 0014 0122 movs r2, #1 + 253 0016 80F84020 strb r2, [r0, #64] + 254 .loc 1 216 5 discriminator 2 view .LVU84 + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_BUSY; + 255 .loc 1 218 5 discriminator 2 view .LVU85 + 256 .loc 1 218 17 is_stmt 0 discriminator 2 view .LVU86 + 257 001a 2422 movs r2, #36 + 258 001c 80F84120 strb r2, [r0, #65] + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Disable the selected I2C peripheral */ + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_DISABLE(hi2c); + 259 .loc 1 221 5 is_stmt 1 discriminator 2 view .LVU87 + 260 0020 0168 ldr r1, [r0] + 261 0022 0A68 ldr r2, [r1] + 262 0024 22F00102 bic r2, r2, #1 + 263 0028 0A60 str r2, [r1] + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Enable wakeup from stop mode */ + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->Instance->CR1 |= I2C_CR1_WUPEN; + 264 .loc 1 224 5 discriminator 2 view .LVU88 + 265 .loc 1 224 9 is_stmt 0 discriminator 2 view .LVU89 + 266 002a 0168 ldr r1, [r0] + 267 .loc 1 224 19 discriminator 2 view .LVU90 + 268 002c 0A68 ldr r2, [r1] + 269 .loc 1 224 25 discriminator 2 view .LVU91 + 270 002e 42F48022 orr r2, r2, #262144 + 271 0032 0A60 str r2, [r1] + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_ENABLE(hi2c); + 272 .loc 1 226 5 is_stmt 1 discriminator 2 view .LVU92 + 273 0034 0168 ldr r1, [r0] + 274 0036 0A68 ldr r2, [r1] + 275 0038 42F00102 orr r2, r2, #1 + 276 003c 0A60 str r2, [r1] + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_READY; + 277 .loc 1 228 5 discriminator 2 view .LVU93 + 278 .loc 1 228 17 is_stmt 0 discriminator 2 view .LVU94 + 279 003e 2022 movs r2, #32 + 280 0040 80F84120 strb r2, [r0, #65] + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Unlocked */ + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_UNLOCK(hi2c); + 281 .loc 1 231 5 is_stmt 1 discriminator 2 view .LVU95 + 282 .loc 1 231 5 discriminator 2 view .LVU96 + 283 0044 0020 movs r0, #0 + 284 .LVL20: + 285 .loc 1 231 5 is_stmt 0 discriminator 2 view .LVU97 + ARM GAS /tmp/cc3umPGo.s page 10 + + + 286 0046 83F84000 strb r0, [r3, #64] + 287 .loc 1 231 5 is_stmt 1 discriminator 2 view .LVU98 + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_OK; + 288 .loc 1 233 5 discriminator 2 view .LVU99 + 289 .loc 1 233 12 is_stmt 0 discriminator 2 view .LVU100 + 290 004a 7047 bx lr + 291 .LVL21: + 292 .L11: + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** else + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_BUSY; + 293 .loc 1 237 12 view .LVU101 + 294 004c 0220 movs r0, #2 + 295 .LVL22: + 296 .loc 1 237 12 view .LVU102 + 297 004e 7047 bx lr + 298 .LVL23: + 299 .L12: + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 300 .loc 1 216 5 view .LVU103 + 301 0050 0220 movs r0, #2 + 302 .LVL24: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 303 .loc 1 239 1 view .LVU104 + 304 0052 7047 bx lr + 305 .cfi_endproc + 306 .LFE331: + 308 .section .text.HAL_I2CEx_DisableWakeUp,"ax",%progbits + 309 .align 1 + 310 .global HAL_I2CEx_DisableWakeUp + 311 .syntax unified + 312 .thumb + 313 .thumb_func + 315 HAL_I2CEx_DisableWakeUp: + 316 .LVL25: + 317 .LFB332: + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief Disable I2C wakeup from Stop mode(s). + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * the configuration information for the specified I2Cx peripheral. + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @retval HAL status + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c) + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 318 .loc 1 248 1 is_stmt 1 view -0 + 319 .cfi_startproc + 320 @ args = 0, pretend = 0, frame = 0 + 321 @ frame_needed = 0, uses_anonymous_args = 0 + 322 @ link register save eliminated. + 323 .loc 1 248 1 is_stmt 0 view .LVU106 + 324 0000 0346 mov r3, r0 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Check the parameters */ + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_WAKEUP_FROMSTOP_INSTANCE(hi2c->Instance)); + ARM GAS /tmp/cc3umPGo.s page 11 + + + 325 .loc 1 250 3 is_stmt 1 view .LVU107 + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** if (hi2c->State == HAL_I2C_STATE_READY) + 326 .loc 1 252 3 view .LVU108 + 327 .loc 1 252 11 is_stmt 0 view .LVU109 + 328 0002 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 + 329 0006 D2B2 uxtb r2, r2 + 330 .loc 1 252 6 view .LVU110 + 331 0008 202A cmp r2, #32 + 332 000a 1FD1 bne .L15 + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Locked */ + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_LOCK(hi2c); + 333 .loc 1 255 5 is_stmt 1 view .LVU111 + 334 .loc 1 255 5 view .LVU112 + 335 000c 90F84020 ldrb r2, [r0, #64] @ zero_extendqisi2 + 336 0010 012A cmp r2, #1 + 337 0012 1DD0 beq .L16 + 338 .loc 1 255 5 discriminator 2 view .LVU113 + 339 0014 0122 movs r2, #1 + 340 0016 80F84020 strb r2, [r0, #64] + 341 .loc 1 255 5 discriminator 2 view .LVU114 + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_BUSY; + 342 .loc 1 257 5 discriminator 2 view .LVU115 + 343 .loc 1 257 17 is_stmt 0 discriminator 2 view .LVU116 + 344 001a 2422 movs r2, #36 + 345 001c 80F84120 strb r2, [r0, #65] + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Disable the selected I2C peripheral */ + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_DISABLE(hi2c); + 346 .loc 1 260 5 is_stmt 1 discriminator 2 view .LVU117 + 347 0020 0168 ldr r1, [r0] + 348 0022 0A68 ldr r2, [r1] + 349 0024 22F00102 bic r2, r2, #1 + 350 0028 0A60 str r2, [r1] + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Enable wakeup from stop mode */ + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->Instance->CR1 &= ~(I2C_CR1_WUPEN); + 351 .loc 1 263 5 discriminator 2 view .LVU118 + 352 .loc 1 263 9 is_stmt 0 discriminator 2 view .LVU119 + 353 002a 0168 ldr r1, [r0] + 354 .loc 1 263 19 discriminator 2 view .LVU120 + 355 002c 0A68 ldr r2, [r1] + 356 .loc 1 263 25 discriminator 2 view .LVU121 + 357 002e 22F48022 bic r2, r2, #262144 + 358 0032 0A60 str r2, [r1] + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_I2C_ENABLE(hi2c); + 359 .loc 1 265 5 is_stmt 1 discriminator 2 view .LVU122 + 360 0034 0168 ldr r1, [r0] + 361 0036 0A68 ldr r2, [r1] + 362 0038 42F00102 orr r2, r2, #1 + 363 003c 0A60 str r2, [r1] + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** hi2c->State = HAL_I2C_STATE_READY; + 364 .loc 1 267 5 discriminator 2 view .LVU123 + ARM GAS /tmp/cc3umPGo.s page 12 + + + 365 .loc 1 267 17 is_stmt 0 discriminator 2 view .LVU124 + 366 003e 2022 movs r2, #32 + 367 0040 80F84120 strb r2, [r0, #65] + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Process Unlocked */ + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_UNLOCK(hi2c); + 368 .loc 1 270 5 is_stmt 1 discriminator 2 view .LVU125 + 369 .loc 1 270 5 discriminator 2 view .LVU126 + 370 0044 0020 movs r0, #0 + 371 .LVL26: + 372 .loc 1 270 5 is_stmt 0 discriminator 2 view .LVU127 + 373 0046 83F84000 strb r0, [r3, #64] + 374 .loc 1 270 5 is_stmt 1 discriminator 2 view .LVU128 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_OK; + 375 .loc 1 272 5 discriminator 2 view .LVU129 + 376 .loc 1 272 12 is_stmt 0 discriminator 2 view .LVU130 + 377 004a 7047 bx lr + 378 .LVL27: + 379 .L15: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** else + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** return HAL_BUSY; + 380 .loc 1 276 12 view .LVU131 + 381 004c 0220 movs r0, #2 + 382 .LVL28: + 383 .loc 1 276 12 view .LVU132 + 384 004e 7047 bx lr + 385 .LVL29: + 386 .L16: + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 387 .loc 1 255 5 view .LVU133 + 388 0050 0220 movs r0, #2 + 389 .LVL30: + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 390 .loc 1 278 1 view .LVU134 + 391 0052 7047 bx lr + 392 .cfi_endproc + 393 .LFE332: + 395 .section .text.HAL_I2CEx_EnableFastModePlus,"ax",%progbits + 396 .align 1 + 397 .global HAL_I2CEx_EnableFastModePlus + 398 .syntax unified + 399 .thumb + 400 .thumb_func + 402 HAL_I2CEx_EnableFastModePlus: + 403 .LVL31: + 404 .LFB333: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @} + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** @defgroup I2CEx_Exported_Functions_Group3 Fast Mode Plus Functions + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief Fast Mode Plus Functions + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * + ARM GAS /tmp/cc3umPGo.s page 13 + + + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** @verbatim + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** =============================================================================== + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** ##### Fast Mode Plus Functions ##### + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** =============================================================================== + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** [..] This section provides functions allowing to: + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** (+) Configure Fast Mode Plus + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** @endverbatim + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @{ + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief Enable the I2C fast mode plus driving capability. + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @param ConfigFastModePlus Selects the pin. + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * This parameter can be one of the @ref I2CEx_FastModePlus values + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For I2C1, fast mode plus driving capability can be enabled on all selected + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * I2C1 pins using I2C_FASTMODEPLUS_I2C1 parameter or independently + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * on each one of the following pins PB6, PB7, PB8 and PB9. + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For remaining I2C1 pins (PA14, PA15...) fast mode plus driving capability + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * can be enabled only by using I2C_FASTMODEPLUS_I2C1 parameter. + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For all I2C2 pins fast mode plus driving capability can be enabled + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * only by using I2C_FASTMODEPLUS_I2C2 parameter. + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For all I2C3 pins fast mode plus driving capability can be enabled + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * only by using I2C_FASTMODEPLUS_I2C3 parameter. + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For all I2C4 pins fast mode plus driving capability can be enabled + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * only by using I2C_FASTMODEPLUS_I2C4 parameter. + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @retval None + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus) + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 405 .loc 1 315 1 is_stmt 1 view -0 + 406 .cfi_startproc + 407 @ args = 0, pretend = 0, frame = 8 + 408 @ frame_needed = 0, uses_anonymous_args = 0 + 409 @ link register save eliminated. + 410 .loc 1 315 1 is_stmt 0 view .LVU136 + 411 0000 82B0 sub sp, sp, #8 + 412 .LCFI0: + 413 .cfi_def_cfa_offset 8 + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Check the parameter */ + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_FASTMODEPLUS(ConfigFastModePlus)); + 414 .loc 1 317 3 is_stmt 1 view .LVU137 + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Enable SYSCFG clock */ + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_RCC_SYSCFG_CLK_ENABLE(); + 415 .loc 1 320 3 view .LVU138 + 416 .LBB2: + 417 .loc 1 320 3 view .LVU139 + 418 .loc 1 320 3 view .LVU140 + 419 0002 084B ldr r3, .L19 + 420 0004 1A6E ldr r2, [r3, #96] + 421 0006 42F00102 orr r2, r2, #1 + 422 000a 1A66 str r2, [r3, #96] + 423 .loc 1 320 3 view .LVU141 + 424 000c 1B6E ldr r3, [r3, #96] + 425 000e 03F00103 and r3, r3, #1 + 426 0012 0193 str r3, [sp, #4] + ARM GAS /tmp/cc3umPGo.s page 14 + + + 427 .loc 1 320 3 view .LVU142 + 428 0014 019B ldr r3, [sp, #4] + 429 .LBE2: + 430 .loc 1 320 3 view .LVU143 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Enable fast mode plus driving capability for selected pin */ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** SET_BIT(SYSCFG->CFGR1, (uint32_t)ConfigFastModePlus); + 431 .loc 1 323 3 view .LVU144 + 432 0016 044A ldr r2, .L19+4 + 433 0018 5368 ldr r3, [r2, #4] + 434 001a 0343 orrs r3, r3, r0 + 435 001c 5360 str r3, [r2, #4] + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 436 .loc 1 324 1 is_stmt 0 view .LVU145 + 437 001e 02B0 add sp, sp, #8 + 438 .LCFI1: + 439 .cfi_def_cfa_offset 0 + 440 @ sp needed + 441 0020 7047 bx lr + 442 .L20: + 443 0022 00BF .align 2 + 444 .L19: + 445 0024 00100240 .word 1073876992 + 446 0028 00000140 .word 1073807360 + 447 .cfi_endproc + 448 .LFE333: + 450 .section .text.HAL_I2CEx_DisableFastModePlus,"ax",%progbits + 451 .align 1 + 452 .global HAL_I2CEx_DisableFastModePlus + 453 .syntax unified + 454 .thumb + 455 .thumb_func + 457 HAL_I2CEx_DisableFastModePlus: + 458 .LVL32: + 459 .LFB334: + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /** + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @brief Disable the I2C fast mode plus driving capability. + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @param ConfigFastModePlus Selects the pin. + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * This parameter can be one of the @ref I2CEx_FastModePlus values + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For I2C1, fast mode plus driving capability can be disabled on all selected + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * I2C1 pins using I2C_FASTMODEPLUS_I2C1 parameter or independently + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * on each one of the following pins PB6, PB7, PB8 and PB9. + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For remaining I2C1 pins (PA14, PA15...) fast mode plus driving capability + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * can be disabled only by using I2C_FASTMODEPLUS_I2C1 parameter. + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For all I2C2 pins fast mode plus driving capability can be disabled + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * only by using I2C_FASTMODEPLUS_I2C2 parameter. + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For all I2C3 pins fast mode plus driving capability can be disabled + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * only by using I2C_FASTMODEPLUS_I2C3 parameter. + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @note For all I2C4 pins fast mode plus driving capability can be disabled + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * only by using I2C_FASTMODEPLUS_I2C4 parameter. + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** * @retval None + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus) + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** { + 460 .loc 1 344 1 is_stmt 1 view -0 + 461 .cfi_startproc + ARM GAS /tmp/cc3umPGo.s page 15 + + + 462 @ args = 0, pretend = 0, frame = 8 + 463 @ frame_needed = 0, uses_anonymous_args = 0 + 464 @ link register save eliminated. + 465 .loc 1 344 1 is_stmt 0 view .LVU147 + 466 0000 82B0 sub sp, sp, #8 + 467 .LCFI2: + 468 .cfi_def_cfa_offset 8 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Check the parameter */ + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** assert_param(IS_I2C_FASTMODEPLUS(ConfigFastModePlus)); + 469 .loc 1 346 3 is_stmt 1 view .LVU148 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Enable SYSCFG clock */ + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** __HAL_RCC_SYSCFG_CLK_ENABLE(); + 470 .loc 1 349 3 view .LVU149 + 471 .LBB3: + 472 .loc 1 349 3 view .LVU150 + 473 .loc 1 349 3 view .LVU151 + 474 0002 084B ldr r3, .L23 + 475 0004 1A6E ldr r2, [r3, #96] + 476 0006 42F00102 orr r2, r2, #1 + 477 000a 1A66 str r2, [r3, #96] + 478 .loc 1 349 3 view .LVU152 + 479 000c 1B6E ldr r3, [r3, #96] + 480 000e 03F00103 and r3, r3, #1 + 481 0012 0193 str r3, [sp, #4] + 482 .loc 1 349 3 view .LVU153 + 483 0014 019B ldr r3, [sp, #4] + 484 .LBE3: + 485 .loc 1 349 3 view .LVU154 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** /* Disable fast mode plus driving capability for selected pin */ + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** CLEAR_BIT(SYSCFG->CFGR1, (uint32_t)ConfigFastModePlus); + 486 .loc 1 352 3 view .LVU155 + 487 0016 044A ldr r2, .L23+4 + 488 0018 5368 ldr r3, [r2, #4] + 489 001a 23EA0003 bic r3, r3, r0 + 490 001e 5360 str r3, [r2, #4] + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c_ex.c **** } + 491 .loc 1 353 1 is_stmt 0 view .LVU156 + 492 0020 02B0 add sp, sp, #8 + 493 .LCFI3: + 494 .cfi_def_cfa_offset 0 + 495 @ sp needed + 496 0022 7047 bx lr + 497 .L24: + 498 .align 2 + 499 .L23: + 500 0024 00100240 .word 1073876992 + 501 0028 00000140 .word 1073807360 + 502 .cfi_endproc + 503 .LFE334: + 505 .text + 506 .Letext0: + 507 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 508 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 509 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 510 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + ARM GAS /tmp/cc3umPGo.s page 16 + + + 511 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" + ARM GAS /tmp/cc3umPGo.s page 17 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_i2c_ex.c + /tmp/cc3umPGo.s:21 .text.HAL_I2CEx_ConfigAnalogFilter:00000000 $t + /tmp/cc3umPGo.s:27 .text.HAL_I2CEx_ConfigAnalogFilter:00000000 HAL_I2CEx_ConfigAnalogFilter + /tmp/cc3umPGo.s:119 .text.HAL_I2CEx_ConfigDigitalFilter:00000000 $t + /tmp/cc3umPGo.s:125 .text.HAL_I2CEx_ConfigDigitalFilter:00000000 HAL_I2CEx_ConfigDigitalFilter + /tmp/cc3umPGo.s:222 .text.HAL_I2CEx_EnableWakeUp:00000000 $t + /tmp/cc3umPGo.s:228 .text.HAL_I2CEx_EnableWakeUp:00000000 HAL_I2CEx_EnableWakeUp + /tmp/cc3umPGo.s:309 .text.HAL_I2CEx_DisableWakeUp:00000000 $t + /tmp/cc3umPGo.s:315 .text.HAL_I2CEx_DisableWakeUp:00000000 HAL_I2CEx_DisableWakeUp + /tmp/cc3umPGo.s:396 .text.HAL_I2CEx_EnableFastModePlus:00000000 $t + /tmp/cc3umPGo.s:402 .text.HAL_I2CEx_EnableFastModePlus:00000000 HAL_I2CEx_EnableFastModePlus + /tmp/cc3umPGo.s:445 .text.HAL_I2CEx_EnableFastModePlus:00000024 $d + /tmp/cc3umPGo.s:451 .text.HAL_I2CEx_DisableFastModePlus:00000000 $t + /tmp/cc3umPGo.s:457 .text.HAL_I2CEx_DisableFastModePlus:00000000 HAL_I2CEx_DisableFastModePlus + /tmp/cc3umPGo.s:500 .text.HAL_I2CEx_DisableFastModePlus:00000024 $d + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_hal_i2c_ex.o b/squeow_sw/build/stm32g4xx_hal_i2c_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..4a85507bf39eedd27fcb528ab53b85398396c80e GIT binary patch literal 13644 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 ReT;dr+}0NPN4YY&{{^QUwBrB( literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_msp.d b/squeow_sw/build/stm32g4xx_hal_msp.d new file mode 100644 index 0000000..04a81c8 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_msp.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_msp.o: Src/stm32g4xx_hal_msp.c Inc/main.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Inc/main.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_msp.lst b/squeow_sw/build/stm32g4xx_hal_msp.lst new file mode 100644 index 0000000..bc51309 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_msp.lst @@ -0,0 +1,1953 @@ +ARM GAS /tmp/ccN6WdXz.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_msp.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/stm32g4xx_hal_msp.c" + 20 .section .text.HAL_MspInit,"ax",%progbits + 21 .align 1 + 22 .global HAL_MspInit + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 HAL_MspInit: + 28 .LFB329: + 1:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN Header */ + 2:Src/stm32g4xx_hal_msp.c **** /** + 3:Src/stm32g4xx_hal_msp.c **** ****************************************************************************** + 4:Src/stm32g4xx_hal_msp.c **** * @file stm32g4xx_hal_msp.c + 5:Src/stm32g4xx_hal_msp.c **** * @brief This file provides code for the MSP Initialization + 6:Src/stm32g4xx_hal_msp.c **** * and de-Initialization codes. + 7:Src/stm32g4xx_hal_msp.c **** ****************************************************************************** + 8:Src/stm32g4xx_hal_msp.c **** * @attention + 9:Src/stm32g4xx_hal_msp.c **** * + 10:Src/stm32g4xx_hal_msp.c **** * Copyright (c) 2022 STMicroelectronics. + 11:Src/stm32g4xx_hal_msp.c **** * All rights reserved. + 12:Src/stm32g4xx_hal_msp.c **** * + 13:Src/stm32g4xx_hal_msp.c **** * This software is licensed under terms that can be found in the LICENSE file + 14:Src/stm32g4xx_hal_msp.c **** * in the root directory of this software component. + 15:Src/stm32g4xx_hal_msp.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 16:Src/stm32g4xx_hal_msp.c **** * + 17:Src/stm32g4xx_hal_msp.c **** ****************************************************************************** + 18:Src/stm32g4xx_hal_msp.c **** */ + 19:Src/stm32g4xx_hal_msp.c **** /* USER CODE END Header */ + 20:Src/stm32g4xx_hal_msp.c **** + 21:Src/stm32g4xx_hal_msp.c **** /* Includes ------------------------------------------------------------------*/ + 22:Src/stm32g4xx_hal_msp.c **** #include "main.h" + 23:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN Includes */ + 24:Src/stm32g4xx_hal_msp.c **** + 25:Src/stm32g4xx_hal_msp.c **** /* USER CODE END Includes */ + 26:Src/stm32g4xx_hal_msp.c **** + 27:Src/stm32g4xx_hal_msp.c **** /* Private typedef -----------------------------------------------------------*/ + 28:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TD */ + 29:Src/stm32g4xx_hal_msp.c **** + 30:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TD */ + ARM GAS /tmp/ccN6WdXz.s page 2 + + + 31:Src/stm32g4xx_hal_msp.c **** + 32:Src/stm32g4xx_hal_msp.c **** /* Private define ------------------------------------------------------------*/ + 33:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN Define */ + 34:Src/stm32g4xx_hal_msp.c **** + 35:Src/stm32g4xx_hal_msp.c **** /* USER CODE END Define */ + 36:Src/stm32g4xx_hal_msp.c **** + 37:Src/stm32g4xx_hal_msp.c **** /* Private macro -------------------------------------------------------------*/ + 38:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN Macro */ + 39:Src/stm32g4xx_hal_msp.c **** + 40:Src/stm32g4xx_hal_msp.c **** /* USER CODE END Macro */ + 41:Src/stm32g4xx_hal_msp.c **** + 42:Src/stm32g4xx_hal_msp.c **** /* Private variables ---------------------------------------------------------*/ + 43:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN PV */ + 44:Src/stm32g4xx_hal_msp.c **** + 45:Src/stm32g4xx_hal_msp.c **** /* USER CODE END PV */ + 46:Src/stm32g4xx_hal_msp.c **** + 47:Src/stm32g4xx_hal_msp.c **** /* Private function prototypes -----------------------------------------------*/ + 48:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN PFP */ + 49:Src/stm32g4xx_hal_msp.c **** + 50:Src/stm32g4xx_hal_msp.c **** /* USER CODE END PFP */ + 51:Src/stm32g4xx_hal_msp.c **** + 52:Src/stm32g4xx_hal_msp.c **** /* External functions --------------------------------------------------------*/ + 53:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ExternalFunctions */ + 54:Src/stm32g4xx_hal_msp.c **** + 55:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ExternalFunctions */ + 56:Src/stm32g4xx_hal_msp.c **** + 57:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN 0 */ + 58:Src/stm32g4xx_hal_msp.c **** + 59:Src/stm32g4xx_hal_msp.c **** /* USER CODE END 0 */ + 60:Src/stm32g4xx_hal_msp.c **** + 61:Src/stm32g4xx_hal_msp.c **** void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + 62:Src/stm32g4xx_hal_msp.c **** /** + 63:Src/stm32g4xx_hal_msp.c **** * Initializes the Global MSP. + 64:Src/stm32g4xx_hal_msp.c **** */ + 65:Src/stm32g4xx_hal_msp.c **** void HAL_MspInit(void) + 66:Src/stm32g4xx_hal_msp.c **** { + 29 .loc 1 66 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 8 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 0000 00B5 push {lr} + 34 .LCFI0: + 35 .cfi_def_cfa_offset 4 + 36 .cfi_offset 14, -4 + 37 0002 83B0 sub sp, sp, #12 + 38 .LCFI1: + 39 .cfi_def_cfa_offset 16 + 67:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN MspInit 0 */ + 68:Src/stm32g4xx_hal_msp.c **** + 69:Src/stm32g4xx_hal_msp.c **** /* USER CODE END MspInit 0 */ + 70:Src/stm32g4xx_hal_msp.c **** + 71:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_SYSCFG_CLK_ENABLE(); + 40 .loc 1 71 3 view .LVU1 + 41 .LBB2: + 42 .loc 1 71 3 view .LVU2 + 43 .loc 1 71 3 view .LVU3 + 44 0004 0B4B ldr r3, .L3 + ARM GAS /tmp/ccN6WdXz.s page 3 + + + 45 0006 1A6E ldr r2, [r3, #96] + 46 0008 42F00102 orr r2, r2, #1 + 47 000c 1A66 str r2, [r3, #96] + 48 .loc 1 71 3 view .LVU4 + 49 000e 1A6E ldr r2, [r3, #96] + 50 0010 02F00102 and r2, r2, #1 + 51 0014 0092 str r2, [sp] + 52 .loc 1 71 3 view .LVU5 + 53 0016 009A ldr r2, [sp] + 54 .LBE2: + 55 .loc 1 71 3 view .LVU6 + 72:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_PWR_CLK_ENABLE(); + 56 .loc 1 72 3 view .LVU7 + 57 .LBB3: + 58 .loc 1 72 3 view .LVU8 + 59 .loc 1 72 3 view .LVU9 + 60 0018 9A6D ldr r2, [r3, #88] + 61 001a 42F08052 orr r2, r2, #268435456 + 62 001e 9A65 str r2, [r3, #88] + 63 .loc 1 72 3 view .LVU10 + 64 0020 9B6D ldr r3, [r3, #88] + 65 0022 03F08053 and r3, r3, #268435456 + 66 0026 0193 str r3, [sp, #4] + 67 .loc 1 72 3 view .LVU11 + 68 0028 019B ldr r3, [sp, #4] + 69 .LBE3: + 70 .loc 1 72 3 view .LVU12 + 73:Src/stm32g4xx_hal_msp.c **** + 74:Src/stm32g4xx_hal_msp.c **** /* System interrupt init*/ + 75:Src/stm32g4xx_hal_msp.c **** + 76:Src/stm32g4xx_hal_msp.c **** /** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral + 77:Src/stm32g4xx_hal_msp.c **** */ + 78:Src/stm32g4xx_hal_msp.c **** HAL_PWREx_DisableUCPDDeadBattery(); + 71 .loc 1 78 3 view .LVU13 + 72 002a FFF7FEFF bl HAL_PWREx_DisableUCPDDeadBattery + 73 .LVL0: + 79:Src/stm32g4xx_hal_msp.c **** + 80:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN MspInit 1 */ + 81:Src/stm32g4xx_hal_msp.c **** + 82:Src/stm32g4xx_hal_msp.c **** /* USER CODE END MspInit 1 */ + 83:Src/stm32g4xx_hal_msp.c **** } + 74 .loc 1 83 1 is_stmt 0 view .LVU14 + 75 002e 03B0 add sp, sp, #12 + 76 .LCFI2: + 77 .cfi_def_cfa_offset 4 + 78 @ sp needed + 79 0030 5DF804FB ldr pc, [sp], #4 + 80 .L4: + 81 .align 2 + 82 .L3: + 83 0034 00100240 .word 1073876992 + 84 .cfi_endproc + 85 .LFE329: + 87 .section .text.HAL_ADC_MspInit,"ax",%progbits + 88 .align 1 + 89 .global HAL_ADC_MspInit + 90 .syntax unified + ARM GAS /tmp/ccN6WdXz.s page 4 + + + 91 .thumb + 92 .thumb_func + 94 HAL_ADC_MspInit: + 95 .LVL1: + 96 .LFB330: + 84:Src/stm32g4xx_hal_msp.c **** + 85:Src/stm32g4xx_hal_msp.c **** static uint32_t HAL_RCC_ADC12_CLK_ENABLED=0; + 86:Src/stm32g4xx_hal_msp.c **** + 87:Src/stm32g4xx_hal_msp.c **** /** + 88:Src/stm32g4xx_hal_msp.c **** * @brief ADC MSP Initialization + 89:Src/stm32g4xx_hal_msp.c **** * This function configures the hardware resources used in this example + 90:Src/stm32g4xx_hal_msp.c **** * @param hadc: ADC handle pointer + 91:Src/stm32g4xx_hal_msp.c **** * @retval None + 92:Src/stm32g4xx_hal_msp.c **** */ + 93:Src/stm32g4xx_hal_msp.c **** void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) + 94:Src/stm32g4xx_hal_msp.c **** { + 97 .loc 1 94 1 is_stmt 1 view -0 + 98 .cfi_startproc + 99 @ args = 0, pretend = 0, frame = 104 + 100 @ frame_needed = 0, uses_anonymous_args = 0 + 101 .loc 1 94 1 is_stmt 0 view .LVU16 + 102 0000 10B5 push {r4, lr} + 103 .LCFI3: + 104 .cfi_def_cfa_offset 8 + 105 .cfi_offset 4, -8 + 106 .cfi_offset 14, -4 + 107 0002 9AB0 sub sp, sp, #104 + 108 .LCFI4: + 109 .cfi_def_cfa_offset 112 + 110 0004 0446 mov r4, r0 + 95:Src/stm32g4xx_hal_msp.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; + 111 .loc 1 95 3 is_stmt 1 view .LVU17 + 112 .loc 1 95 20 is_stmt 0 view .LVU18 + 113 0006 0021 movs r1, #0 + 114 0008 1591 str r1, [sp, #84] + 115 000a 1691 str r1, [sp, #88] + 116 000c 1791 str r1, [sp, #92] + 117 000e 1891 str r1, [sp, #96] + 118 0010 1991 str r1, [sp, #100] + 96:Src/stm32g4xx_hal_msp.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 119 .loc 1 96 3 is_stmt 1 view .LVU19 + 120 .loc 1 96 28 is_stmt 0 view .LVU20 + 121 0012 4422 movs r2, #68 + 122 0014 04A8 add r0, sp, #16 + 123 .LVL2: + 124 .loc 1 96 28 view .LVU21 + 125 0016 FFF7FEFF bl memset + 126 .LVL3: + 97:Src/stm32g4xx_hal_msp.c **** if(hadc->Instance==ADC1) + 127 .loc 1 97 3 is_stmt 1 view .LVU22 + 128 .loc 1 97 10 is_stmt 0 view .LVU23 + 129 001a 2368 ldr r3, [r4] + 130 .loc 1 97 5 view .LVU24 + 131 001c B3F1A04F cmp r3, #1342177280 + 132 0020 04D0 beq .L13 + 98:Src/stm32g4xx_hal_msp.c **** { + 99:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC1_MspInit 0 */ + ARM GAS /tmp/ccN6WdXz.s page 5 + + + 100:Src/stm32g4xx_hal_msp.c **** + 101:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC1_MspInit 0 */ + 102:Src/stm32g4xx_hal_msp.c **** + 103:Src/stm32g4xx_hal_msp.c **** /** Initializes the peripherals clocks + 104:Src/stm32g4xx_hal_msp.c **** */ + 105:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + 106:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 107:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 108:Src/stm32g4xx_hal_msp.c **** { + 109:Src/stm32g4xx_hal_msp.c **** Error_Handler(); + 110:Src/stm32g4xx_hal_msp.c **** } + 111:Src/stm32g4xx_hal_msp.c **** + 112:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock enable */ + 113:Src/stm32g4xx_hal_msp.c **** HAL_RCC_ADC12_CLK_ENABLED++; + 114:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 115:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_ENABLE(); + 116:Src/stm32g4xx_hal_msp.c **** } + 117:Src/stm32g4xx_hal_msp.c **** + 118:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 119:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 120:Src/stm32g4xx_hal_msp.c **** PB0 ------> ADC1_IN15 + 121:Src/stm32g4xx_hal_msp.c **** */ + 122:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pin = AUDIO_IN_Pin; + 123:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 124:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 125:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(AUDIO_IN_GPIO_Port, &GPIO_InitStruct); + 126:Src/stm32g4xx_hal_msp.c **** + 127:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC1_MspInit 1 */ + 128:Src/stm32g4xx_hal_msp.c **** + 129:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC1_MspInit 1 */ + 130:Src/stm32g4xx_hal_msp.c **** } + 131:Src/stm32g4xx_hal_msp.c **** else if(hadc->Instance==ADC2) + 133 .loc 1 131 8 is_stmt 1 view .LVU25 + 134 .loc 1 131 10 is_stmt 0 view .LVU26 + 135 0022 364A ldr r2, .L19 + 136 0024 9342 cmp r3, r2 + 137 0026 34D0 beq .L14 + 138 .L5: + 132:Src/stm32g4xx_hal_msp.c **** { + 133:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC2_MspInit 0 */ + 134:Src/stm32g4xx_hal_msp.c **** + 135:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC2_MspInit 0 */ + 136:Src/stm32g4xx_hal_msp.c **** + 137:Src/stm32g4xx_hal_msp.c **** /** Initializes the peripherals clocks + 138:Src/stm32g4xx_hal_msp.c **** */ + 139:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + 140:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 141:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 142:Src/stm32g4xx_hal_msp.c **** { + 143:Src/stm32g4xx_hal_msp.c **** Error_Handler(); + 144:Src/stm32g4xx_hal_msp.c **** } + 145:Src/stm32g4xx_hal_msp.c **** + 146:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock enable */ + 147:Src/stm32g4xx_hal_msp.c **** HAL_RCC_ADC12_CLK_ENABLED++; + 148:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 149:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_ENABLE(); + 150:Src/stm32g4xx_hal_msp.c **** } + ARM GAS /tmp/ccN6WdXz.s page 6 + + + 151:Src/stm32g4xx_hal_msp.c **** + 152:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOA_CLK_ENABLE(); + 153:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 154:Src/stm32g4xx_hal_msp.c **** PA4 ------> ADC2_IN17 + 155:Src/stm32g4xx_hal_msp.c **** PA5 ------> ADC2_IN13 + 156:Src/stm32g4xx_hal_msp.c **** PA6 ------> ADC2_IN3 + 157:Src/stm32g4xx_hal_msp.c **** PA7 ------> ADC2_IN4 + 158:Src/stm32g4xx_hal_msp.c **** */ + 159:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pin = TEMPERATURA_Pin|CORRENTE_Pin|DIRETTA_Pin|RIFLESSA_Pin; + 160:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 161:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 162:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 163:Src/stm32g4xx_hal_msp.c **** + 164:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC2_MspInit 1 */ + 165:Src/stm32g4xx_hal_msp.c **** + 166:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC2_MspInit 1 */ + 167:Src/stm32g4xx_hal_msp.c **** } + 168:Src/stm32g4xx_hal_msp.c **** + 169:Src/stm32g4xx_hal_msp.c **** } + 139 .loc 1 169 1 view .LVU27 + 140 0028 1AB0 add sp, sp, #104 + 141 .LCFI5: + 142 .cfi_remember_state + 143 .cfi_def_cfa_offset 8 + 144 @ sp needed + 145 002a 10BD pop {r4, pc} + 146 .LVL4: + 147 .L13: + 148 .LCFI6: + 149 .cfi_restore_state + 105:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 150 .loc 1 105 5 is_stmt 1 view .LVU28 + 105:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 151 .loc 1 105 40 is_stmt 0 view .LVU29 + 152 002c 4FF40043 mov r3, #32768 + 153 0030 0493 str r3, [sp, #16] + 106:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 154 .loc 1 106 5 is_stmt 1 view .LVU30 + 106:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 155 .loc 1 106 39 is_stmt 0 view .LVU31 + 156 0032 4FF00053 mov r3, #536870912 + 157 0036 1393 str r3, [sp, #76] + 107:Src/stm32g4xx_hal_msp.c **** { + 158 .loc 1 107 5 is_stmt 1 view .LVU32 + 107:Src/stm32g4xx_hal_msp.c **** { + 159 .loc 1 107 9 is_stmt 0 view .LVU33 + 160 0038 04A8 add r0, sp, #16 + 161 003a FFF7FEFF bl HAL_RCCEx_PeriphCLKConfig + 162 .LVL5: + 107:Src/stm32g4xx_hal_msp.c **** { + 163 .loc 1 107 8 view .LVU34 + 164 003e D0B9 cbnz r0, .L15 + 165 .L7: + 113:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 166 .loc 1 113 5 is_stmt 1 view .LVU35 + 113:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 167 .loc 1 113 30 is_stmt 0 view .LVU36 + ARM GAS /tmp/ccN6WdXz.s page 7 + + + 168 0040 2F4A ldr r2, .L19+4 + 169 0042 1368 ldr r3, [r2] + 170 0044 0133 adds r3, r3, #1 + 171 0046 1360 str r3, [r2] + 114:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_ENABLE(); + 172 .loc 1 114 5 is_stmt 1 view .LVU37 + 114:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_ENABLE(); + 173 .loc 1 114 7 is_stmt 0 view .LVU38 + 174 0048 012B cmp r3, #1 + 175 004a 17D0 beq .L16 + 176 .L8: + 115:Src/stm32g4xx_hal_msp.c **** } + 177 .loc 1 115 7 is_stmt 1 discriminator 1 view .LVU39 + 118:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 178 .loc 1 118 5 discriminator 1 view .LVU40 + 179 .LBB4: + 118:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 180 .loc 1 118 5 discriminator 1 view .LVU41 + 118:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 181 .loc 1 118 5 discriminator 1 view .LVU42 + 182 004c 2D4B ldr r3, .L19+8 + 183 004e DA6C ldr r2, [r3, #76] + 184 0050 42F00202 orr r2, r2, #2 + 185 0054 DA64 str r2, [r3, #76] + 118:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 186 .loc 1 118 5 discriminator 1 view .LVU43 + 187 0056 DB6C ldr r3, [r3, #76] + 188 0058 03F00203 and r3, r3, #2 + 189 005c 0193 str r3, [sp, #4] + 118:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 190 .loc 1 118 5 discriminator 1 view .LVU44 + 191 005e 019B ldr r3, [sp, #4] + 192 .LBE4: + 118:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 193 .loc 1 118 5 discriminator 1 view .LVU45 + 122:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 194 .loc 1 122 5 discriminator 1 view .LVU46 + 122:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 195 .loc 1 122 25 is_stmt 0 discriminator 1 view .LVU47 + 196 0060 0123 movs r3, #1 + 197 0062 1593 str r3, [sp, #84] + 123:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 198 .loc 1 123 5 is_stmt 1 discriminator 1 view .LVU48 + 123:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 199 .loc 1 123 26 is_stmt 0 discriminator 1 view .LVU49 + 200 0064 0323 movs r3, #3 + 201 0066 1693 str r3, [sp, #88] + 124:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(AUDIO_IN_GPIO_Port, &GPIO_InitStruct); + 202 .loc 1 124 5 is_stmt 1 discriminator 1 view .LVU50 + 124:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(AUDIO_IN_GPIO_Port, &GPIO_InitStruct); + 203 .loc 1 124 26 is_stmt 0 discriminator 1 view .LVU51 + 204 0068 0023 movs r3, #0 + 205 006a 1793 str r3, [sp, #92] + 125:Src/stm32g4xx_hal_msp.c **** + 206 .loc 1 125 5 is_stmt 1 discriminator 1 view .LVU52 + 207 006c 15A9 add r1, sp, #84 + 208 006e 2648 ldr r0, .L19+12 + ARM GAS /tmp/ccN6WdXz.s page 8 + + + 209 0070 FFF7FEFF bl HAL_GPIO_Init + 210 .LVL6: + 211 0074 D8E7 b .L5 + 212 .L15: + 109:Src/stm32g4xx_hal_msp.c **** } + 213 .loc 1 109 7 view .LVU53 + 214 0076 FFF7FEFF bl Error_Handler + 215 .LVL7: + 216 007a E1E7 b .L7 + 217 .L16: + 115:Src/stm32g4xx_hal_msp.c **** } + 218 .loc 1 115 7 view .LVU54 + 219 .LBB5: + 115:Src/stm32g4xx_hal_msp.c **** } + 220 .loc 1 115 7 view .LVU55 + 115:Src/stm32g4xx_hal_msp.c **** } + 221 .loc 1 115 7 view .LVU56 + 222 007c 214B ldr r3, .L19+8 + 223 007e DA6C ldr r2, [r3, #76] + 224 0080 42F40052 orr r2, r2, #8192 + 225 0084 DA64 str r2, [r3, #76] + 115:Src/stm32g4xx_hal_msp.c **** } + 226 .loc 1 115 7 view .LVU57 + 227 0086 DB6C ldr r3, [r3, #76] + 228 0088 03F40053 and r3, r3, #8192 + 229 008c 0093 str r3, [sp] + 115:Src/stm32g4xx_hal_msp.c **** } + 230 .loc 1 115 7 view .LVU58 + 231 008e 009B ldr r3, [sp] + 232 0090 DCE7 b .L8 + 233 .L14: + 234 .LBE5: + 139:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 235 .loc 1 139 5 view .LVU59 + 139:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + 236 .loc 1 139 40 is_stmt 0 view .LVU60 + 237 0092 4FF40043 mov r3, #32768 + 238 0096 0493 str r3, [sp, #16] + 140:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 239 .loc 1 140 5 is_stmt 1 view .LVU61 + 140:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 240 .loc 1 140 39 is_stmt 0 view .LVU62 + 241 0098 4FF00053 mov r3, #536870912 + 242 009c 1393 str r3, [sp, #76] + 141:Src/stm32g4xx_hal_msp.c **** { + 243 .loc 1 141 5 is_stmt 1 view .LVU63 + 141:Src/stm32g4xx_hal_msp.c **** { + 244 .loc 1 141 9 is_stmt 0 view .LVU64 + 245 009e 04A8 add r0, sp, #16 + 246 00a0 FFF7FEFF bl HAL_RCCEx_PeriphCLKConfig + 247 .LVL8: + 141:Src/stm32g4xx_hal_msp.c **** { + 248 .loc 1 141 8 view .LVU65 + 249 00a4 D8B9 cbnz r0, .L17 + 250 .L10: + 147:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 251 .loc 1 147 5 is_stmt 1 view .LVU66 + ARM GAS /tmp/ccN6WdXz.s page 9 + + + 147:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==1){ + 252 .loc 1 147 30 is_stmt 0 view .LVU67 + 253 00a6 164A ldr r2, .L19+4 + 254 00a8 1368 ldr r3, [r2] + 255 00aa 0133 adds r3, r3, #1 + 256 00ac 1360 str r3, [r2] + 148:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_ENABLE(); + 257 .loc 1 148 5 is_stmt 1 view .LVU68 + 148:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_ENABLE(); + 258 .loc 1 148 7 is_stmt 0 view .LVU69 + 259 00ae 012B cmp r3, #1 + 260 00b0 18D0 beq .L18 + 261 .L11: + 149:Src/stm32g4xx_hal_msp.c **** } + 262 .loc 1 149 7 is_stmt 1 discriminator 1 view .LVU70 + 152:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 263 .loc 1 152 5 discriminator 1 view .LVU71 + 264 .LBB6: + 152:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 265 .loc 1 152 5 discriminator 1 view .LVU72 + 152:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 266 .loc 1 152 5 discriminator 1 view .LVU73 + 267 00b2 144B ldr r3, .L19+8 + 268 00b4 DA6C ldr r2, [r3, #76] + 269 00b6 42F00102 orr r2, r2, #1 + 270 00ba DA64 str r2, [r3, #76] + 152:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 271 .loc 1 152 5 discriminator 1 view .LVU74 + 272 00bc DB6C ldr r3, [r3, #76] + 273 00be 03F00103 and r3, r3, #1 + 274 00c2 0393 str r3, [sp, #12] + 152:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 275 .loc 1 152 5 discriminator 1 view .LVU75 + 276 00c4 039B ldr r3, [sp, #12] + 277 .LBE6: + 152:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 278 .loc 1 152 5 discriminator 1 view .LVU76 + 159:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 279 .loc 1 159 5 discriminator 1 view .LVU77 + 159:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 280 .loc 1 159 25 is_stmt 0 discriminator 1 view .LVU78 + 281 00c6 F023 movs r3, #240 + 282 00c8 1593 str r3, [sp, #84] + 160:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 283 .loc 1 160 5 is_stmt 1 discriminator 1 view .LVU79 + 160:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 284 .loc 1 160 26 is_stmt 0 discriminator 1 view .LVU80 + 285 00ca 0323 movs r3, #3 + 286 00cc 1693 str r3, [sp, #88] + 161:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 287 .loc 1 161 5 is_stmt 1 discriminator 1 view .LVU81 + 161:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 288 .loc 1 161 26 is_stmt 0 discriminator 1 view .LVU82 + 289 00ce 0023 movs r3, #0 + 290 00d0 1793 str r3, [sp, #92] + 162:Src/stm32g4xx_hal_msp.c **** + 291 .loc 1 162 5 is_stmt 1 discriminator 1 view .LVU83 + ARM GAS /tmp/ccN6WdXz.s page 10 + + + 292 00d2 15A9 add r1, sp, #84 + 293 00d4 4FF09040 mov r0, #1207959552 + 294 00d8 FFF7FEFF bl HAL_GPIO_Init + 295 .LVL9: + 296 .loc 1 169 1 is_stmt 0 discriminator 1 view .LVU84 + 297 00dc A4E7 b .L5 + 298 .L17: + 143:Src/stm32g4xx_hal_msp.c **** } + 299 .loc 1 143 7 is_stmt 1 view .LVU85 + 300 00de FFF7FEFF bl Error_Handler + 301 .LVL10: + 302 00e2 E0E7 b .L10 + 303 .L18: + 149:Src/stm32g4xx_hal_msp.c **** } + 304 .loc 1 149 7 view .LVU86 + 305 .LBB7: + 149:Src/stm32g4xx_hal_msp.c **** } + 306 .loc 1 149 7 view .LVU87 + 149:Src/stm32g4xx_hal_msp.c **** } + 307 .loc 1 149 7 view .LVU88 + 308 00e4 074B ldr r3, .L19+8 + 309 00e6 DA6C ldr r2, [r3, #76] + 310 00e8 42F40052 orr r2, r2, #8192 + 311 00ec DA64 str r2, [r3, #76] + 149:Src/stm32g4xx_hal_msp.c **** } + 312 .loc 1 149 7 view .LVU89 + 313 00ee DB6C ldr r3, [r3, #76] + 314 00f0 03F40053 and r3, r3, #8192 + 315 00f4 0293 str r3, [sp, #8] + 149:Src/stm32g4xx_hal_msp.c **** } + 316 .loc 1 149 7 view .LVU90 + 317 00f6 029B ldr r3, [sp, #8] + 318 00f8 DBE7 b .L11 + 319 .L20: + 320 00fa 00BF .align 2 + 321 .L19: + 322 00fc 00010050 .word 1342177536 + 323 0100 00000000 .word HAL_RCC_ADC12_CLK_ENABLED + 324 0104 00100240 .word 1073876992 + 325 0108 00040048 .word 1207960576 + 326 .LBE7: + 327 .cfi_endproc + 328 .LFE330: + 330 .section .text.HAL_ADC_MspDeInit,"ax",%progbits + 331 .align 1 + 332 .global HAL_ADC_MspDeInit + 333 .syntax unified + 334 .thumb + 335 .thumb_func + 337 HAL_ADC_MspDeInit: + 338 .LVL11: + 339 .LFB331: + 170:Src/stm32g4xx_hal_msp.c **** + 171:Src/stm32g4xx_hal_msp.c **** /** + 172:Src/stm32g4xx_hal_msp.c **** * @brief ADC MSP De-Initialization + 173:Src/stm32g4xx_hal_msp.c **** * This function freeze the hardware resources used in this example + 174:Src/stm32g4xx_hal_msp.c **** * @param hadc: ADC handle pointer + ARM GAS /tmp/ccN6WdXz.s page 11 + + + 175:Src/stm32g4xx_hal_msp.c **** * @retval None + 176:Src/stm32g4xx_hal_msp.c **** */ + 177:Src/stm32g4xx_hal_msp.c **** void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) + 178:Src/stm32g4xx_hal_msp.c **** { + 340 .loc 1 178 1 view -0 + 341 .cfi_startproc + 342 @ args = 0, pretend = 0, frame = 0 + 343 @ frame_needed = 0, uses_anonymous_args = 0 + 344 .loc 1 178 1 is_stmt 0 view .LVU92 + 345 0000 08B5 push {r3, lr} + 346 .LCFI7: + 347 .cfi_def_cfa_offset 8 + 348 .cfi_offset 3, -8 + 349 .cfi_offset 14, -4 + 179:Src/stm32g4xx_hal_msp.c **** if(hadc->Instance==ADC1) + 350 .loc 1 179 3 is_stmt 1 view .LVU93 + 351 .loc 1 179 10 is_stmt 0 view .LVU94 + 352 0002 0368 ldr r3, [r0] + 353 .loc 1 179 5 view .LVU95 + 354 0004 B3F1A04F cmp r3, #1342177280 + 355 0008 03D0 beq .L27 + 180:Src/stm32g4xx_hal_msp.c **** { + 181:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC1_MspDeInit 0 */ + 182:Src/stm32g4xx_hal_msp.c **** + 183:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC1_MspDeInit 0 */ + 184:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock disable */ + 185:Src/stm32g4xx_hal_msp.c **** HAL_RCC_ADC12_CLK_ENABLED--; + 186:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==0){ + 187:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_DISABLE(); + 188:Src/stm32g4xx_hal_msp.c **** } + 189:Src/stm32g4xx_hal_msp.c **** + 190:Src/stm32g4xx_hal_msp.c **** /**ADC1 GPIO Configuration + 191:Src/stm32g4xx_hal_msp.c **** PB0 ------> ADC1_IN15 + 192:Src/stm32g4xx_hal_msp.c **** */ + 193:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_DeInit(AUDIO_IN_GPIO_Port, AUDIO_IN_Pin); + 194:Src/stm32g4xx_hal_msp.c **** + 195:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC1_MspDeInit 1 */ + 196:Src/stm32g4xx_hal_msp.c **** + 197:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC1_MspDeInit 1 */ + 198:Src/stm32g4xx_hal_msp.c **** } + 199:Src/stm32g4xx_hal_msp.c **** else if(hadc->Instance==ADC2) + 356 .loc 1 199 8 is_stmt 1 view .LVU96 + 357 .loc 1 199 10 is_stmt 0 view .LVU97 + 358 000a 114A ldr r2, .L29 + 359 000c 9342 cmp r3, r2 + 360 000e 0FD0 beq .L28 + 361 .LVL12: + 362 .L21: + 200:Src/stm32g4xx_hal_msp.c **** { + 201:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC2_MspDeInit 0 */ + 202:Src/stm32g4xx_hal_msp.c **** + 203:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC2_MspDeInit 0 */ + 204:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock disable */ + 205:Src/stm32g4xx_hal_msp.c **** HAL_RCC_ADC12_CLK_ENABLED--; + 206:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==0){ + 207:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_DISABLE(); + 208:Src/stm32g4xx_hal_msp.c **** } + ARM GAS /tmp/ccN6WdXz.s page 12 + + + 209:Src/stm32g4xx_hal_msp.c **** + 210:Src/stm32g4xx_hal_msp.c **** /**ADC2 GPIO Configuration + 211:Src/stm32g4xx_hal_msp.c **** PA4 ------> ADC2_IN17 + 212:Src/stm32g4xx_hal_msp.c **** PA5 ------> ADC2_IN13 + 213:Src/stm32g4xx_hal_msp.c **** PA6 ------> ADC2_IN3 + 214:Src/stm32g4xx_hal_msp.c **** PA7 ------> ADC2_IN4 + 215:Src/stm32g4xx_hal_msp.c **** */ + 216:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_DeInit(GPIOA, TEMPERATURA_Pin|CORRENTE_Pin|DIRETTA_Pin|RIFLESSA_Pin); + 217:Src/stm32g4xx_hal_msp.c **** + 218:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN ADC2_MspDeInit 1 */ + 219:Src/stm32g4xx_hal_msp.c **** + 220:Src/stm32g4xx_hal_msp.c **** /* USER CODE END ADC2_MspDeInit 1 */ + 221:Src/stm32g4xx_hal_msp.c **** } + 222:Src/stm32g4xx_hal_msp.c **** + 223:Src/stm32g4xx_hal_msp.c **** } + 363 .loc 1 223 1 view .LVU98 + 364 0010 08BD pop {r3, pc} + 365 .LVL13: + 366 .L27: + 185:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==0){ + 367 .loc 1 185 5 is_stmt 1 view .LVU99 + 185:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==0){ + 368 .loc 1 185 30 is_stmt 0 view .LVU100 + 369 0012 104A ldr r2, .L29+4 + 370 0014 1368 ldr r3, [r2] + 371 0016 013B subs r3, r3, #1 + 372 0018 1360 str r3, [r2] + 186:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_DISABLE(); + 373 .loc 1 186 5 is_stmt 1 view .LVU101 + 186:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_DISABLE(); + 374 .loc 1 186 7 is_stmt 0 view .LVU102 + 375 001a 23B9 cbnz r3, .L23 + 187:Src/stm32g4xx_hal_msp.c **** } + 376 .loc 1 187 7 is_stmt 1 view .LVU103 + 377 001c 0E4A ldr r2, .L29+8 + 378 001e D36C ldr r3, [r2, #76] + 379 0020 23F40053 bic r3, r3, #8192 + 380 0024 D364 str r3, [r2, #76] + 381 .L23: + 193:Src/stm32g4xx_hal_msp.c **** + 382 .loc 1 193 5 view .LVU104 + 383 0026 0121 movs r1, #1 + 384 0028 0C48 ldr r0, .L29+12 + 385 .LVL14: + 193:Src/stm32g4xx_hal_msp.c **** + 386 .loc 1 193 5 is_stmt 0 view .LVU105 + 387 002a FFF7FEFF bl HAL_GPIO_DeInit + 388 .LVL15: + 389 002e EFE7 b .L21 + 390 .LVL16: + 391 .L28: + 205:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==0){ + 392 .loc 1 205 5 is_stmt 1 view .LVU106 + 205:Src/stm32g4xx_hal_msp.c **** if(HAL_RCC_ADC12_CLK_ENABLED==0){ + 393 .loc 1 205 30 is_stmt 0 view .LVU107 + 394 0030 084A ldr r2, .L29+4 + 395 0032 1368 ldr r3, [r2] + ARM GAS /tmp/ccN6WdXz.s page 13 + + + 396 0034 013B subs r3, r3, #1 + 397 0036 1360 str r3, [r2] + 206:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_DISABLE(); + 398 .loc 1 206 5 is_stmt 1 view .LVU108 + 206:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_ADC12_CLK_DISABLE(); + 399 .loc 1 206 7 is_stmt 0 view .LVU109 + 400 0038 23B9 cbnz r3, .L25 + 207:Src/stm32g4xx_hal_msp.c **** } + 401 .loc 1 207 7 is_stmt 1 view .LVU110 + 402 003a 074A ldr r2, .L29+8 + 403 003c D36C ldr r3, [r2, #76] + 404 003e 23F40053 bic r3, r3, #8192 + 405 0042 D364 str r3, [r2, #76] + 406 .L25: + 216:Src/stm32g4xx_hal_msp.c **** + 407 .loc 1 216 5 view .LVU111 + 408 0044 F021 movs r1, #240 + 409 0046 4FF09040 mov r0, #1207959552 + 410 .LVL17: + 216:Src/stm32g4xx_hal_msp.c **** + 411 .loc 1 216 5 is_stmt 0 view .LVU112 + 412 004a FFF7FEFF bl HAL_GPIO_DeInit + 413 .LVL18: + 414 .loc 1 223 1 view .LVU113 + 415 004e DFE7 b .L21 + 416 .L30: + 417 .align 2 + 418 .L29: + 419 0050 00010050 .word 1342177536 + 420 0054 00000000 .word HAL_RCC_ADC12_CLK_ENABLED + 421 0058 00100240 .word 1073876992 + 422 005c 00040048 .word 1207960576 + 423 .cfi_endproc + 424 .LFE331: + 426 .section .text.HAL_I2C_MspInit,"ax",%progbits + 427 .align 1 + 428 .global HAL_I2C_MspInit + 429 .syntax unified + 430 .thumb + 431 .thumb_func + 433 HAL_I2C_MspInit: + 434 .LVL19: + 435 .LFB332: + 224:Src/stm32g4xx_hal_msp.c **** + 225:Src/stm32g4xx_hal_msp.c **** /** + 226:Src/stm32g4xx_hal_msp.c **** * @brief I2C MSP Initialization + 227:Src/stm32g4xx_hal_msp.c **** * This function configures the hardware resources used in this example + 228:Src/stm32g4xx_hal_msp.c **** * @param hi2c: I2C handle pointer + 229:Src/stm32g4xx_hal_msp.c **** * @retval None + 230:Src/stm32g4xx_hal_msp.c **** */ + 231:Src/stm32g4xx_hal_msp.c **** void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) + 232:Src/stm32g4xx_hal_msp.c **** { + 436 .loc 1 232 1 is_stmt 1 view -0 + 437 .cfi_startproc + 438 @ args = 0, pretend = 0, frame = 104 + 439 @ frame_needed = 0, uses_anonymous_args = 0 + 440 .loc 1 232 1 is_stmt 0 view .LVU115 + ARM GAS /tmp/ccN6WdXz.s page 14 + + + 441 0000 F0B5 push {r4, r5, r6, r7, lr} + 442 .LCFI8: + 443 .cfi_def_cfa_offset 20 + 444 .cfi_offset 4, -20 + 445 .cfi_offset 5, -16 + 446 .cfi_offset 6, -12 + 447 .cfi_offset 7, -8 + 448 .cfi_offset 14, -4 + 449 0002 9BB0 sub sp, sp, #108 + 450 .LCFI9: + 451 .cfi_def_cfa_offset 128 + 452 0004 0446 mov r4, r0 + 233:Src/stm32g4xx_hal_msp.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; + 453 .loc 1 233 3 is_stmt 1 view .LVU116 + 454 .loc 1 233 20 is_stmt 0 view .LVU117 + 455 0006 0021 movs r1, #0 + 456 0008 1591 str r1, [sp, #84] + 457 000a 1691 str r1, [sp, #88] + 458 000c 1791 str r1, [sp, #92] + 459 000e 1891 str r1, [sp, #96] + 460 0010 1991 str r1, [sp, #100] + 234:Src/stm32g4xx_hal_msp.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 461 .loc 1 234 3 is_stmt 1 view .LVU118 + 462 .loc 1 234 28 is_stmt 0 view .LVU119 + 463 0012 4422 movs r2, #68 + 464 0014 04A8 add r0, sp, #16 + 465 .LVL20: + 466 .loc 1 234 28 view .LVU120 + 467 0016 FFF7FEFF bl memset + 468 .LVL21: + 235:Src/stm32g4xx_hal_msp.c **** if(hi2c->Instance==I2C1) + 469 .loc 1 235 3 is_stmt 1 view .LVU121 + 470 .loc 1 235 10 is_stmt 0 view .LVU122 + 471 001a 2268 ldr r2, [r4] + 472 .loc 1 235 5 view .LVU123 + 473 001c 224B ldr r3, .L37 + 474 001e 9A42 cmp r2, r3 + 475 0020 01D0 beq .L35 + 476 .LVL22: + 477 .L31: + 236:Src/stm32g4xx_hal_msp.c **** { + 237:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 0 */ + 238:Src/stm32g4xx_hal_msp.c **** + 239:Src/stm32g4xx_hal_msp.c **** /* USER CODE END I2C1_MspInit 0 */ + 240:Src/stm32g4xx_hal_msp.c **** + 241:Src/stm32g4xx_hal_msp.c **** /** Initializes the peripherals clocks + 242:Src/stm32g4xx_hal_msp.c **** */ + 243:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; + 244:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + 245:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 246:Src/stm32g4xx_hal_msp.c **** { + 247:Src/stm32g4xx_hal_msp.c **** Error_Handler(); + 248:Src/stm32g4xx_hal_msp.c **** } + 249:Src/stm32g4xx_hal_msp.c **** + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOA_CLK_ENABLE(); + 251:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 252:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + ARM GAS /tmp/ccN6WdXz.s page 15 + + + 253:Src/stm32g4xx_hal_msp.c **** PA15 ------> I2C1_SCL + 254:Src/stm32g4xx_hal_msp.c **** PB7 ------> I2C1_SDA + 255:Src/stm32g4xx_hal_msp.c **** */ + 256:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pin = GPIO_PIN_15; + 257:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + 258:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 259:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 260:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + 261:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 262:Src/stm32g4xx_hal_msp.c **** + 263:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pin = GPIO_PIN_7; + 264:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + 265:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 266:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 267:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + 268:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + 269:Src/stm32g4xx_hal_msp.c **** + 270:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock enable */ + 271:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_I2C1_CLK_ENABLE(); + 272:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 273:Src/stm32g4xx_hal_msp.c **** + 274:Src/stm32g4xx_hal_msp.c **** /* USER CODE END I2C1_MspInit 1 */ + 275:Src/stm32g4xx_hal_msp.c **** } + 276:Src/stm32g4xx_hal_msp.c **** + 277:Src/stm32g4xx_hal_msp.c **** } + 478 .loc 1 277 1 view .LVU124 + 479 0022 1BB0 add sp, sp, #108 + 480 .LCFI10: + 481 .cfi_remember_state + 482 .cfi_def_cfa_offset 20 + 483 @ sp needed + 484 0024 F0BD pop {r4, r5, r6, r7, pc} + 485 .LVL23: + 486 .L35: + 487 .LCFI11: + 488 .cfi_restore_state + 243:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + 489 .loc 1 243 5 is_stmt 1 view .LVU125 + 243:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + 490 .loc 1 243 40 is_stmt 0 view .LVU126 + 491 0026 4023 movs r3, #64 + 492 0028 0493 str r3, [sp, #16] + 244:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 493 .loc 1 244 5 is_stmt 1 view .LVU127 + 245:Src/stm32g4xx_hal_msp.c **** { + 494 .loc 1 245 5 view .LVU128 + 245:Src/stm32g4xx_hal_msp.c **** { + 495 .loc 1 245 9 is_stmt 0 view .LVU129 + 496 002a 04A8 add r0, sp, #16 + 497 002c FFF7FEFF bl HAL_RCCEx_PeriphCLKConfig + 498 .LVL24: + 245:Src/stm32g4xx_hal_msp.c **** { + 499 .loc 1 245 8 view .LVU130 + 500 0030 0028 cmp r0, #0 + 501 0032 35D1 bne .L36 + 502 .L33: + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + ARM GAS /tmp/ccN6WdXz.s page 16 + + + 503 .loc 1 250 5 is_stmt 1 view .LVU131 + 504 .LBB8: + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 505 .loc 1 250 5 view .LVU132 + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 506 .loc 1 250 5 view .LVU133 + 507 0034 1D4C ldr r4, .L37+4 + 508 .LVL25: + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 509 .loc 1 250 5 is_stmt 0 view .LVU134 + 510 0036 E36C ldr r3, [r4, #76] + 511 0038 43F00103 orr r3, r3, #1 + 512 003c E364 str r3, [r4, #76] + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 513 .loc 1 250 5 is_stmt 1 view .LVU135 + 514 003e E36C ldr r3, [r4, #76] + 515 0040 03F00103 and r3, r3, #1 + 516 0044 0193 str r3, [sp, #4] + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 517 .loc 1 250 5 view .LVU136 + 518 0046 019B ldr r3, [sp, #4] + 519 .LBE8: + 250:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOB_CLK_ENABLE(); + 520 .loc 1 250 5 view .LVU137 + 251:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 521 .loc 1 251 5 view .LVU138 + 522 .LBB9: + 251:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 523 .loc 1 251 5 view .LVU139 + 251:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 524 .loc 1 251 5 view .LVU140 + 525 0048 E36C ldr r3, [r4, #76] + 526 004a 43F00203 orr r3, r3, #2 + 527 004e E364 str r3, [r4, #76] + 251:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 528 .loc 1 251 5 view .LVU141 + 529 0050 E36C ldr r3, [r4, #76] + 530 0052 03F00203 and r3, r3, #2 + 531 0056 0293 str r3, [sp, #8] + 251:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 532 .loc 1 251 5 view .LVU142 + 533 0058 029B ldr r3, [sp, #8] + 534 .LBE9: + 251:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 535 .loc 1 251 5 view .LVU143 + 256:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + 536 .loc 1 256 5 view .LVU144 + 256:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + 537 .loc 1 256 25 is_stmt 0 view .LVU145 + 538 005a 4FF40043 mov r3, #32768 + 539 005e 1593 str r3, [sp, #84] + 257:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 540 .loc 1 257 5 is_stmt 1 view .LVU146 + 257:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 541 .loc 1 257 26 is_stmt 0 view .LVU147 + 542 0060 1227 movs r7, #18 + 543 0062 1697 str r7, [sp, #88] + ARM GAS /tmp/ccN6WdXz.s page 17 + + + 258:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 544 .loc 1 258 5 is_stmt 1 view .LVU148 + 258:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 545 .loc 1 258 26 is_stmt 0 view .LVU149 + 546 0064 0025 movs r5, #0 + 547 0066 1795 str r5, [sp, #92] + 259:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + 548 .loc 1 259 5 is_stmt 1 view .LVU150 + 259:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + 549 .loc 1 259 27 is_stmt 0 view .LVU151 + 550 0068 1895 str r5, [sp, #96] + 260:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 551 .loc 1 260 5 is_stmt 1 view .LVU152 + 260:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 552 .loc 1 260 31 is_stmt 0 view .LVU153 + 553 006a 0426 movs r6, #4 + 554 006c 1996 str r6, [sp, #100] + 261:Src/stm32g4xx_hal_msp.c **** + 555 .loc 1 261 5 is_stmt 1 view .LVU154 + 556 006e 15A9 add r1, sp, #84 + 557 0070 4FF09040 mov r0, #1207959552 + 558 0074 FFF7FEFF bl HAL_GPIO_Init + 559 .LVL26: + 263:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + 560 .loc 1 263 5 view .LVU155 + 263:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + 561 .loc 1 263 25 is_stmt 0 view .LVU156 + 562 0078 8023 movs r3, #128 + 563 007a 1593 str r3, [sp, #84] + 264:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 564 .loc 1 264 5 is_stmt 1 view .LVU157 + 264:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 565 .loc 1 264 26 is_stmt 0 view .LVU158 + 566 007c 1697 str r7, [sp, #88] + 265:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 567 .loc 1 265 5 is_stmt 1 view .LVU159 + 265:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 568 .loc 1 265 26 is_stmt 0 view .LVU160 + 569 007e 1795 str r5, [sp, #92] + 266:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + 570 .loc 1 266 5 is_stmt 1 view .LVU161 + 266:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + 571 .loc 1 266 27 is_stmt 0 view .LVU162 + 572 0080 1895 str r5, [sp, #96] + 267:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + 573 .loc 1 267 5 is_stmt 1 view .LVU163 + 267:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + 574 .loc 1 267 31 is_stmt 0 view .LVU164 + 575 0082 1996 str r6, [sp, #100] + 268:Src/stm32g4xx_hal_msp.c **** + 576 .loc 1 268 5 is_stmt 1 view .LVU165 + 577 0084 15A9 add r1, sp, #84 + 578 0086 0A48 ldr r0, .L37+8 + 579 0088 FFF7FEFF bl HAL_GPIO_Init + 580 .LVL27: + 271:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 581 .loc 1 271 5 view .LVU166 + ARM GAS /tmp/ccN6WdXz.s page 18 + + + 582 .LBB10: + 271:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 583 .loc 1 271 5 view .LVU167 + 271:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 584 .loc 1 271 5 view .LVU168 + 585 008c A36D ldr r3, [r4, #88] + 586 008e 43F40013 orr r3, r3, #2097152 + 587 0092 A365 str r3, [r4, #88] + 271:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 588 .loc 1 271 5 view .LVU169 + 589 0094 A36D ldr r3, [r4, #88] + 590 0096 03F40013 and r3, r3, #2097152 + 591 009a 0393 str r3, [sp, #12] + 271:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 592 .loc 1 271 5 view .LVU170 + 593 009c 039B ldr r3, [sp, #12] + 594 .LBE10: + 271:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspInit 1 */ + 595 .loc 1 271 5 view .LVU171 + 596 .loc 1 277 1 is_stmt 0 view .LVU172 + 597 009e C0E7 b .L31 + 598 .LVL28: + 599 .L36: + 247:Src/stm32g4xx_hal_msp.c **** } + 600 .loc 1 247 7 is_stmt 1 view .LVU173 + 601 00a0 FFF7FEFF bl Error_Handler + 602 .LVL29: + 603 00a4 C6E7 b .L33 + 604 .L38: + 605 00a6 00BF .align 2 + 606 .L37: + 607 00a8 00540040 .word 1073763328 + 608 00ac 00100240 .word 1073876992 + 609 00b0 00040048 .word 1207960576 + 610 .cfi_endproc + 611 .LFE332: + 613 .section .text.HAL_I2C_MspDeInit,"ax",%progbits + 614 .align 1 + 615 .global HAL_I2C_MspDeInit + 616 .syntax unified + 617 .thumb + 618 .thumb_func + 620 HAL_I2C_MspDeInit: + 621 .LVL30: + 622 .LFB333: + 278:Src/stm32g4xx_hal_msp.c **** + 279:Src/stm32g4xx_hal_msp.c **** /** + 280:Src/stm32g4xx_hal_msp.c **** * @brief I2C MSP De-Initialization + 281:Src/stm32g4xx_hal_msp.c **** * This function freeze the hardware resources used in this example + 282:Src/stm32g4xx_hal_msp.c **** * @param hi2c: I2C handle pointer + 283:Src/stm32g4xx_hal_msp.c **** * @retval None + 284:Src/stm32g4xx_hal_msp.c **** */ + 285:Src/stm32g4xx_hal_msp.c **** void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c) + 286:Src/stm32g4xx_hal_msp.c **** { + 623 .loc 1 286 1 view -0 + 624 .cfi_startproc + 625 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/ccN6WdXz.s page 19 + + + 626 @ frame_needed = 0, uses_anonymous_args = 0 + 627 .loc 1 286 1 is_stmt 0 view .LVU175 + 628 0000 08B5 push {r3, lr} + 629 .LCFI12: + 630 .cfi_def_cfa_offset 8 + 631 .cfi_offset 3, -8 + 632 .cfi_offset 14, -4 + 287:Src/stm32g4xx_hal_msp.c **** if(hi2c->Instance==I2C1) + 633 .loc 1 287 3 is_stmt 1 view .LVU176 + 634 .loc 1 287 10 is_stmt 0 view .LVU177 + 635 0002 0268 ldr r2, [r0] + 636 .loc 1 287 5 view .LVU178 + 637 0004 094B ldr r3, .L43 + 638 0006 9A42 cmp r2, r3 + 639 0008 00D0 beq .L42 + 640 .LVL31: + 641 .L39: + 288:Src/stm32g4xx_hal_msp.c **** { + 289:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspDeInit 0 */ + 290:Src/stm32g4xx_hal_msp.c **** + 291:Src/stm32g4xx_hal_msp.c **** /* USER CODE END I2C1_MspDeInit 0 */ + 292:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock disable */ + 293:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_I2C1_CLK_DISABLE(); + 294:Src/stm32g4xx_hal_msp.c **** + 295:Src/stm32g4xx_hal_msp.c **** /**I2C1 GPIO Configuration + 296:Src/stm32g4xx_hal_msp.c **** PA15 ------> I2C1_SCL + 297:Src/stm32g4xx_hal_msp.c **** PB7 ------> I2C1_SDA + 298:Src/stm32g4xx_hal_msp.c **** */ + 299:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15); + 300:Src/stm32g4xx_hal_msp.c **** + 301:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7); + 302:Src/stm32g4xx_hal_msp.c **** + 303:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN I2C1_MspDeInit 1 */ + 304:Src/stm32g4xx_hal_msp.c **** + 305:Src/stm32g4xx_hal_msp.c **** /* USER CODE END I2C1_MspDeInit 1 */ + 306:Src/stm32g4xx_hal_msp.c **** } + 307:Src/stm32g4xx_hal_msp.c **** + 308:Src/stm32g4xx_hal_msp.c **** } + 642 .loc 1 308 1 view .LVU179 + 643 000a 08BD pop {r3, pc} + 644 .LVL32: + 645 .L42: + 293:Src/stm32g4xx_hal_msp.c **** + 646 .loc 1 293 5 is_stmt 1 view .LVU180 + 647 000c 084A ldr r2, .L43+4 + 648 000e 936D ldr r3, [r2, #88] + 649 0010 23F40013 bic r3, r3, #2097152 + 650 0014 9365 str r3, [r2, #88] + 299:Src/stm32g4xx_hal_msp.c **** + 651 .loc 1 299 5 view .LVU181 + 652 0016 4FF40041 mov r1, #32768 + 653 001a 4FF09040 mov r0, #1207959552 + 654 .LVL33: + 299:Src/stm32g4xx_hal_msp.c **** + 655 .loc 1 299 5 is_stmt 0 view .LVU182 + 656 001e FFF7FEFF bl HAL_GPIO_DeInit + 657 .LVL34: + ARM GAS /tmp/ccN6WdXz.s page 20 + + + 301:Src/stm32g4xx_hal_msp.c **** + 658 .loc 1 301 5 is_stmt 1 view .LVU183 + 659 0022 8021 movs r1, #128 + 660 0024 0348 ldr r0, .L43+8 + 661 0026 FFF7FEFF bl HAL_GPIO_DeInit + 662 .LVL35: + 663 .loc 1 308 1 is_stmt 0 view .LVU184 + 664 002a EEE7 b .L39 + 665 .L44: + 666 .align 2 + 667 .L43: + 668 002c 00540040 .word 1073763328 + 669 0030 00100240 .word 1073876992 + 670 0034 00040048 .word 1207960576 + 671 .cfi_endproc + 672 .LFE333: + 674 .section .text.HAL_TIM_Base_MspInit,"ax",%progbits + 675 .align 1 + 676 .global HAL_TIM_Base_MspInit + 677 .syntax unified + 678 .thumb + 679 .thumb_func + 681 HAL_TIM_Base_MspInit: + 682 .LVL36: + 683 .LFB334: + 309:Src/stm32g4xx_hal_msp.c **** + 310:Src/stm32g4xx_hal_msp.c **** /** + 311:Src/stm32g4xx_hal_msp.c **** * @brief TIM_Base MSP Initialization + 312:Src/stm32g4xx_hal_msp.c **** * This function configures the hardware resources used in this example + 313:Src/stm32g4xx_hal_msp.c **** * @param htim_base: TIM_Base handle pointer + 314:Src/stm32g4xx_hal_msp.c **** * @retval None + 315:Src/stm32g4xx_hal_msp.c **** */ + 316:Src/stm32g4xx_hal_msp.c **** void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) + 317:Src/stm32g4xx_hal_msp.c **** { + 684 .loc 1 317 1 is_stmt 1 view -0 + 685 .cfi_startproc + 686 @ args = 0, pretend = 0, frame = 8 + 687 @ frame_needed = 0, uses_anonymous_args = 0 + 688 .loc 1 317 1 is_stmt 0 view .LVU186 + 689 0000 00B5 push {lr} + 690 .LCFI13: + 691 .cfi_def_cfa_offset 4 + 692 .cfi_offset 14, -4 + 693 0002 83B0 sub sp, sp, #12 + 694 .LCFI14: + 695 .cfi_def_cfa_offset 16 + 318:Src/stm32g4xx_hal_msp.c **** if(htim_base->Instance==TIM2) + 696 .loc 1 318 3 is_stmt 1 view .LVU187 + 697 .loc 1 318 15 is_stmt 0 view .LVU188 + 698 0004 0368 ldr r3, [r0] + 699 .loc 1 318 5 view .LVU189 + 700 0006 B3F1804F cmp r3, #1073741824 + 701 000a 05D0 beq .L49 + 319:Src/stm32g4xx_hal_msp.c **** { + 320:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 0 */ + 321:Src/stm32g4xx_hal_msp.c **** + 322:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM2_MspInit 0 */ + ARM GAS /tmp/ccN6WdXz.s page 21 + + + 323:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock enable */ + 324:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_TIM2_CLK_ENABLE(); + 325:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + 326:Src/stm32g4xx_hal_msp.c **** + 327:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM2_MspInit 1 */ + 328:Src/stm32g4xx_hal_msp.c **** } + 329:Src/stm32g4xx_hal_msp.c **** else if(htim_base->Instance==TIM3) + 702 .loc 1 329 8 is_stmt 1 view .LVU190 + 703 .loc 1 329 10 is_stmt 0 view .LVU191 + 704 000c 124A ldr r2, .L51 + 705 000e 9342 cmp r3, r2 + 706 0010 0ED0 beq .L50 + 707 .LVL37: + 708 .L45: + 330:Src/stm32g4xx_hal_msp.c **** { + 331:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspInit 0 */ + 332:Src/stm32g4xx_hal_msp.c **** + 333:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM3_MspInit 0 */ + 334:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock enable */ + 335:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_TIM3_CLK_ENABLE(); + 336:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 337:Src/stm32g4xx_hal_msp.c **** HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0); + 338:Src/stm32g4xx_hal_msp.c **** HAL_NVIC_EnableIRQ(TIM3_IRQn); + 339:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspInit 1 */ + 340:Src/stm32g4xx_hal_msp.c **** + 341:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM3_MspInit 1 */ + 342:Src/stm32g4xx_hal_msp.c **** } + 343:Src/stm32g4xx_hal_msp.c **** + 344:Src/stm32g4xx_hal_msp.c **** } + 709 .loc 1 344 1 view .LVU192 + 710 0012 03B0 add sp, sp, #12 + 711 .LCFI15: + 712 .cfi_remember_state + 713 .cfi_def_cfa_offset 4 + 714 @ sp needed + 715 0014 5DF804FB ldr pc, [sp], #4 + 716 .LVL38: + 717 .L49: + 718 .LCFI16: + 719 .cfi_restore_state + 324:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + 720 .loc 1 324 5 is_stmt 1 view .LVU193 + 721 .LBB11: + 324:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + 722 .loc 1 324 5 view .LVU194 + 324:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + 723 .loc 1 324 5 view .LVU195 + 724 0018 03F50433 add r3, r3, #135168 + 725 001c 9A6D ldr r2, [r3, #88] + 726 001e 42F00102 orr r2, r2, #1 + 727 0022 9A65 str r2, [r3, #88] + 324:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + 728 .loc 1 324 5 view .LVU196 + 729 0024 9B6D ldr r3, [r3, #88] + 730 0026 03F00103 and r3, r3, #1 + 731 002a 0093 str r3, [sp] + 324:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + ARM GAS /tmp/ccN6WdXz.s page 22 + + + 732 .loc 1 324 5 view .LVU197 + 733 002c 009B ldr r3, [sp] + 734 .LBE11: + 324:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspInit 1 */ + 735 .loc 1 324 5 view .LVU198 + 736 002e F0E7 b .L45 + 737 .L50: + 335:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 738 .loc 1 335 5 view .LVU199 + 739 .LBB12: + 335:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 740 .loc 1 335 5 view .LVU200 + 335:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 741 .loc 1 335 5 view .LVU201 + 742 0030 0A4B ldr r3, .L51+4 + 743 0032 9A6D ldr r2, [r3, #88] + 744 0034 42F00202 orr r2, r2, #2 + 745 0038 9A65 str r2, [r3, #88] + 335:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 746 .loc 1 335 5 view .LVU202 + 747 003a 9B6D ldr r3, [r3, #88] + 748 003c 03F00203 and r3, r3, #2 + 749 0040 0193 str r3, [sp, #4] + 335:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 750 .loc 1 335 5 view .LVU203 + 751 0042 019B ldr r3, [sp, #4] + 752 .LBE12: + 335:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt Init */ + 753 .loc 1 335 5 view .LVU204 + 337:Src/stm32g4xx_hal_msp.c **** HAL_NVIC_EnableIRQ(TIM3_IRQn); + 754 .loc 1 337 5 view .LVU205 + 755 0044 0022 movs r2, #0 + 756 0046 1146 mov r1, r2 + 757 0048 1D20 movs r0, #29 + 758 .LVL39: + 337:Src/stm32g4xx_hal_msp.c **** HAL_NVIC_EnableIRQ(TIM3_IRQn); + 759 .loc 1 337 5 is_stmt 0 view .LVU206 + 760 004a FFF7FEFF bl HAL_NVIC_SetPriority + 761 .LVL40: + 338:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspInit 1 */ + 762 .loc 1 338 5 is_stmt 1 view .LVU207 + 763 004e 1D20 movs r0, #29 + 764 0050 FFF7FEFF bl HAL_NVIC_EnableIRQ + 765 .LVL41: + 766 .loc 1 344 1 is_stmt 0 view .LVU208 + 767 0054 DDE7 b .L45 + 768 .L52: + 769 0056 00BF .align 2 + 770 .L51: + 771 0058 00040040 .word 1073742848 + 772 005c 00100240 .word 1073876992 + 773 .cfi_endproc + 774 .LFE334: + 776 .section .text.HAL_TIM_MspPostInit,"ax",%progbits + 777 .align 1 + 778 .global HAL_TIM_MspPostInit + 779 .syntax unified + ARM GAS /tmp/ccN6WdXz.s page 23 + + + 780 .thumb + 781 .thumb_func + 783 HAL_TIM_MspPostInit: + 784 .LVL42: + 785 .LFB335: + 345:Src/stm32g4xx_hal_msp.c **** + 346:Src/stm32g4xx_hal_msp.c **** void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) + 347:Src/stm32g4xx_hal_msp.c **** { + 786 .loc 1 347 1 is_stmt 1 view -0 + 787 .cfi_startproc + 788 @ args = 0, pretend = 0, frame = 24 + 789 @ frame_needed = 0, uses_anonymous_args = 0 + 790 .loc 1 347 1 is_stmt 0 view .LVU210 + 791 0000 00B5 push {lr} + 792 .LCFI17: + 793 .cfi_def_cfa_offset 4 + 794 .cfi_offset 14, -4 + 795 0002 87B0 sub sp, sp, #28 + 796 .LCFI18: + 797 .cfi_def_cfa_offset 32 + 348:Src/stm32g4xx_hal_msp.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; + 798 .loc 1 348 3 is_stmt 1 view .LVU211 + 799 .loc 1 348 20 is_stmt 0 view .LVU212 + 800 0004 0023 movs r3, #0 + 801 0006 0193 str r3, [sp, #4] + 802 0008 0293 str r3, [sp, #8] + 803 000a 0393 str r3, [sp, #12] + 804 000c 0493 str r3, [sp, #16] + 805 000e 0593 str r3, [sp, #20] + 349:Src/stm32g4xx_hal_msp.c **** if(htim->Instance==TIM2) + 806 .loc 1 349 3 is_stmt 1 view .LVU213 + 807 .loc 1 349 10 is_stmt 0 view .LVU214 + 808 0010 0368 ldr r3, [r0] + 809 .loc 1 349 5 view .LVU215 + 810 0012 B3F1804F cmp r3, #1073741824 + 811 0016 02D0 beq .L56 + 812 .LVL43: + 813 .L53: + 350:Src/stm32g4xx_hal_msp.c **** { + 351:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspPostInit 0 */ + 352:Src/stm32g4xx_hal_msp.c **** + 353:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM2_MspPostInit 0 */ + 354:Src/stm32g4xx_hal_msp.c **** + 355:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOA_CLK_ENABLE(); + 356:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 357:Src/stm32g4xx_hal_msp.c **** PA0 ------> TIM2_CH1 + 358:Src/stm32g4xx_hal_msp.c **** PA1 ------> TIM2_CH2 + 359:Src/stm32g4xx_hal_msp.c **** PA2 ------> TIM2_CH3 + 360:Src/stm32g4xx_hal_msp.c **** PA3 ------> TIM2_CH4 + 361:Src/stm32g4xx_hal_msp.c **** */ + 362:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3; + 363:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 364:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 365:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 366:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + 367:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 368:Src/stm32g4xx_hal_msp.c **** + ARM GAS /tmp/ccN6WdXz.s page 24 + + + 369:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspPostInit 1 */ + 370:Src/stm32g4xx_hal_msp.c **** + 371:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM2_MspPostInit 1 */ + 372:Src/stm32g4xx_hal_msp.c **** } + 373:Src/stm32g4xx_hal_msp.c **** + 374:Src/stm32g4xx_hal_msp.c **** } + 814 .loc 1 374 1 view .LVU216 + 815 0018 07B0 add sp, sp, #28 + 816 .LCFI19: + 817 .cfi_remember_state + 818 .cfi_def_cfa_offset 4 + 819 @ sp needed + 820 001a 5DF804FB ldr pc, [sp], #4 + 821 .LVL44: + 822 .L56: + 823 .LCFI20: + 824 .cfi_restore_state + 355:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 825 .loc 1 355 5 is_stmt 1 view .LVU217 + 826 .LBB13: + 355:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 827 .loc 1 355 5 view .LVU218 + 355:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 828 .loc 1 355 5 view .LVU219 + 829 001e 03F50433 add r3, r3, #135168 + 830 0022 DA6C ldr r2, [r3, #76] + 831 0024 42F00102 orr r2, r2, #1 + 832 0028 DA64 str r2, [r3, #76] + 355:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 833 .loc 1 355 5 view .LVU220 + 834 002a DB6C ldr r3, [r3, #76] + 835 002c 03F00103 and r3, r3, #1 + 836 0030 0093 str r3, [sp] + 355:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 837 .loc 1 355 5 view .LVU221 + 838 0032 009B ldr r3, [sp] + 839 .LBE13: + 355:Src/stm32g4xx_hal_msp.c **** /**TIM2 GPIO Configuration + 840 .loc 1 355 5 view .LVU222 + 362:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 841 .loc 1 362 5 view .LVU223 + 362:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 842 .loc 1 362 25 is_stmt 0 view .LVU224 + 843 0034 0F23 movs r3, #15 + 844 0036 0193 str r3, [sp, #4] + 363:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 845 .loc 1 363 5 is_stmt 1 view .LVU225 + 363:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 846 .loc 1 363 26 is_stmt 0 view .LVU226 + 847 0038 0223 movs r3, #2 + 848 003a 0293 str r3, [sp, #8] + 364:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 849 .loc 1 364 5 is_stmt 1 view .LVU227 + 365:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + 850 .loc 1 365 5 view .LVU228 + 366:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 851 .loc 1 366 5 view .LVU229 + ARM GAS /tmp/ccN6WdXz.s page 25 + + + 366:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 852 .loc 1 366 31 is_stmt 0 view .LVU230 + 853 003c 0123 movs r3, #1 + 854 003e 0593 str r3, [sp, #20] + 367:Src/stm32g4xx_hal_msp.c **** + 855 .loc 1 367 5 is_stmt 1 view .LVU231 + 856 0040 01A9 add r1, sp, #4 + 857 0042 4FF09040 mov r0, #1207959552 + 858 .LVL45: + 367:Src/stm32g4xx_hal_msp.c **** + 859 .loc 1 367 5 is_stmt 0 view .LVU232 + 860 0046 FFF7FEFF bl HAL_GPIO_Init + 861 .LVL46: + 862 .loc 1 374 1 view .LVU233 + 863 004a E5E7 b .L53 + 864 .cfi_endproc + 865 .LFE335: + 867 .section .text.HAL_TIM_Base_MspDeInit,"ax",%progbits + 868 .align 1 + 869 .global HAL_TIM_Base_MspDeInit + 870 .syntax unified + 871 .thumb + 872 .thumb_func + 874 HAL_TIM_Base_MspDeInit: + 875 .LVL47: + 876 .LFB336: + 375:Src/stm32g4xx_hal_msp.c **** /** + 376:Src/stm32g4xx_hal_msp.c **** * @brief TIM_Base MSP De-Initialization + 377:Src/stm32g4xx_hal_msp.c **** * This function freeze the hardware resources used in this example + 378:Src/stm32g4xx_hal_msp.c **** * @param htim_base: TIM_Base handle pointer + 379:Src/stm32g4xx_hal_msp.c **** * @retval None + 380:Src/stm32g4xx_hal_msp.c **** */ + 381:Src/stm32g4xx_hal_msp.c **** void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) + 382:Src/stm32g4xx_hal_msp.c **** { + 877 .loc 1 382 1 is_stmt 1 view -0 + 878 .cfi_startproc + 879 @ args = 0, pretend = 0, frame = 0 + 880 @ frame_needed = 0, uses_anonymous_args = 0 + 881 .loc 1 382 1 is_stmt 0 view .LVU235 + 882 0000 08B5 push {r3, lr} + 883 .LCFI21: + 884 .cfi_def_cfa_offset 8 + 885 .cfi_offset 3, -8 + 886 .cfi_offset 14, -4 + 383:Src/stm32g4xx_hal_msp.c **** if(htim_base->Instance==TIM2) + 887 .loc 1 383 3 is_stmt 1 view .LVU236 + 888 .loc 1 383 15 is_stmt 0 view .LVU237 + 889 0002 0368 ldr r3, [r0] + 890 .loc 1 383 5 view .LVU238 + 891 0004 B3F1804F cmp r3, #1073741824 + 892 0008 03D0 beq .L61 + 384:Src/stm32g4xx_hal_msp.c **** { + 385:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspDeInit 0 */ + 386:Src/stm32g4xx_hal_msp.c **** + 387:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM2_MspDeInit 0 */ + 388:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock disable */ + 389:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_TIM2_CLK_DISABLE(); + ARM GAS /tmp/ccN6WdXz.s page 26 + + + 390:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspDeInit 1 */ + 391:Src/stm32g4xx_hal_msp.c **** + 392:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM2_MspDeInit 1 */ + 393:Src/stm32g4xx_hal_msp.c **** } + 394:Src/stm32g4xx_hal_msp.c **** else if(htim_base->Instance==TIM3) + 893 .loc 1 394 8 is_stmt 1 view .LVU239 + 894 .loc 1 394 10 is_stmt 0 view .LVU240 + 895 000a 0A4A ldr r2, .L63 + 896 000c 9342 cmp r3, r2 + 897 000e 06D0 beq .L62 + 898 .LVL48: + 899 .L57: + 395:Src/stm32g4xx_hal_msp.c **** { + 396:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspDeInit 0 */ + 397:Src/stm32g4xx_hal_msp.c **** + 398:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM3_MspDeInit 0 */ + 399:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock disable */ + 400:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_TIM3_CLK_DISABLE(); + 401:Src/stm32g4xx_hal_msp.c **** + 402:Src/stm32g4xx_hal_msp.c **** /* TIM3 interrupt DeInit */ + 403:Src/stm32g4xx_hal_msp.c **** HAL_NVIC_DisableIRQ(TIM3_IRQn); + 404:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspDeInit 1 */ + 405:Src/stm32g4xx_hal_msp.c **** + 406:Src/stm32g4xx_hal_msp.c **** /* USER CODE END TIM3_MspDeInit 1 */ + 407:Src/stm32g4xx_hal_msp.c **** } + 408:Src/stm32g4xx_hal_msp.c **** + 409:Src/stm32g4xx_hal_msp.c **** } + 900 .loc 1 409 1 view .LVU241 + 901 0010 08BD pop {r3, pc} + 902 .LVL49: + 903 .L61: + 389:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM2_MspDeInit 1 */ + 904 .loc 1 389 5 is_stmt 1 view .LVU242 + 905 0012 094A ldr r2, .L63+4 + 906 0014 936D ldr r3, [r2, #88] + 907 0016 23F00103 bic r3, r3, #1 + 908 001a 9365 str r3, [r2, #88] + 909 001c F8E7 b .L57 + 910 .L62: + 400:Src/stm32g4xx_hal_msp.c **** + 911 .loc 1 400 5 view .LVU243 + 912 001e 02F50332 add r2, r2, #134144 + 913 0022 936D ldr r3, [r2, #88] + 914 0024 23F00203 bic r3, r3, #2 + 915 0028 9365 str r3, [r2, #88] + 403:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspDeInit 1 */ + 916 .loc 1 403 5 view .LVU244 + 917 002a 1D20 movs r0, #29 + 918 .LVL50: + 403:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN TIM3_MspDeInit 1 */ + 919 .loc 1 403 5 is_stmt 0 view .LVU245 + 920 002c FFF7FEFF bl HAL_NVIC_DisableIRQ + 921 .LVL51: + 922 .loc 1 409 1 view .LVU246 + 923 0030 EEE7 b .L57 + 924 .L64: + 925 0032 00BF .align 2 + ARM GAS /tmp/ccN6WdXz.s page 27 + + + 926 .L63: + 927 0034 00040040 .word 1073742848 + 928 0038 00100240 .word 1073876992 + 929 .cfi_endproc + 930 .LFE336: + 932 .section .text.HAL_UART_MspInit,"ax",%progbits + 933 .align 1 + 934 .global HAL_UART_MspInit + 935 .syntax unified + 936 .thumb + 937 .thumb_func + 939 HAL_UART_MspInit: + 940 .LVL52: + 941 .LFB337: + 410:Src/stm32g4xx_hal_msp.c **** + 411:Src/stm32g4xx_hal_msp.c **** /** + 412:Src/stm32g4xx_hal_msp.c **** * @brief UART MSP Initialization + 413:Src/stm32g4xx_hal_msp.c **** * This function configures the hardware resources used in this example + 414:Src/stm32g4xx_hal_msp.c **** * @param huart: UART handle pointer + 415:Src/stm32g4xx_hal_msp.c **** * @retval None + 416:Src/stm32g4xx_hal_msp.c **** */ + 417:Src/stm32g4xx_hal_msp.c **** void HAL_UART_MspInit(UART_HandleTypeDef* huart) + 418:Src/stm32g4xx_hal_msp.c **** { + 942 .loc 1 418 1 is_stmt 1 view -0 + 943 .cfi_startproc + 944 @ args = 0, pretend = 0, frame = 96 + 945 @ frame_needed = 0, uses_anonymous_args = 0 + 946 .loc 1 418 1 is_stmt 0 view .LVU248 + 947 0000 10B5 push {r4, lr} + 948 .LCFI22: + 949 .cfi_def_cfa_offset 8 + 950 .cfi_offset 4, -8 + 951 .cfi_offset 14, -4 + 952 0002 98B0 sub sp, sp, #96 + 953 .LCFI23: + 954 .cfi_def_cfa_offset 104 + 955 0004 0446 mov r4, r0 + 419:Src/stm32g4xx_hal_msp.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; + 956 .loc 1 419 3 is_stmt 1 view .LVU249 + 957 .loc 1 419 20 is_stmt 0 view .LVU250 + 958 0006 0021 movs r1, #0 + 959 0008 1391 str r1, [sp, #76] + 960 000a 1491 str r1, [sp, #80] + 961 000c 1591 str r1, [sp, #84] + 962 000e 1691 str r1, [sp, #88] + 963 0010 1791 str r1, [sp, #92] + 420:Src/stm32g4xx_hal_msp.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 964 .loc 1 420 3 is_stmt 1 view .LVU251 + 965 .loc 1 420 28 is_stmt 0 view .LVU252 + 966 0012 4422 movs r2, #68 + 967 0014 02A8 add r0, sp, #8 + 968 .LVL53: + 969 .loc 1 420 28 view .LVU253 + 970 0016 FFF7FEFF bl memset + 971 .LVL54: + 421:Src/stm32g4xx_hal_msp.c **** if(huart->Instance==USART1) + 972 .loc 1 421 3 is_stmt 1 view .LVU254 + ARM GAS /tmp/ccN6WdXz.s page 28 + + + 973 .loc 1 421 11 is_stmt 0 view .LVU255 + 974 001a 2268 ldr r2, [r4] + 975 .loc 1 421 5 view .LVU256 + 976 001c 184B ldr r3, .L71 + 977 001e 9A42 cmp r2, r3 + 978 0020 01D0 beq .L69 + 979 .L65: + 422:Src/stm32g4xx_hal_msp.c **** { + 423:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN USART1_MspInit 0 */ + 424:Src/stm32g4xx_hal_msp.c **** + 425:Src/stm32g4xx_hal_msp.c **** /* USER CODE END USART1_MspInit 0 */ + 426:Src/stm32g4xx_hal_msp.c **** + 427:Src/stm32g4xx_hal_msp.c **** /** Initializes the peripherals clocks + 428:Src/stm32g4xx_hal_msp.c **** */ + 429:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; + 430:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + 431:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 432:Src/stm32g4xx_hal_msp.c **** { + 433:Src/stm32g4xx_hal_msp.c **** Error_Handler(); + 434:Src/stm32g4xx_hal_msp.c **** } + 435:Src/stm32g4xx_hal_msp.c **** + 436:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock enable */ + 437:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_USART1_CLK_ENABLE(); + 438:Src/stm32g4xx_hal_msp.c **** + 439:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_GPIOA_CLK_ENABLE(); + 440:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 441:Src/stm32g4xx_hal_msp.c **** PA9 ------> USART1_TX + 442:Src/stm32g4xx_hal_msp.c **** PA10 ------> USART1_RX + 443:Src/stm32g4xx_hal_msp.c **** */ + 444:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; + 445:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 446:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 447:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 448:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + 449:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 450:Src/stm32g4xx_hal_msp.c **** + 451:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN USART1_MspInit 1 */ + 452:Src/stm32g4xx_hal_msp.c **** + 453:Src/stm32g4xx_hal_msp.c **** /* USER CODE END USART1_MspInit 1 */ + 454:Src/stm32g4xx_hal_msp.c **** } + 455:Src/stm32g4xx_hal_msp.c **** + 456:Src/stm32g4xx_hal_msp.c **** } + 980 .loc 1 456 1 view .LVU257 + 981 0022 18B0 add sp, sp, #96 + 982 .LCFI24: + 983 .cfi_remember_state + 984 .cfi_def_cfa_offset 8 + 985 @ sp needed + 986 0024 10BD pop {r4, pc} + 987 .LVL55: + 988 .L69: + 989 .LCFI25: + 990 .cfi_restore_state + 429:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + 991 .loc 1 429 5 is_stmt 1 view .LVU258 + 429:Src/stm32g4xx_hal_msp.c **** PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; + 992 .loc 1 429 40 is_stmt 0 view .LVU259 + ARM GAS /tmp/ccN6WdXz.s page 29 + + + 993 0026 0123 movs r3, #1 + 994 0028 0293 str r3, [sp, #8] + 430:Src/stm32g4xx_hal_msp.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 995 .loc 1 430 5 is_stmt 1 view .LVU260 + 431:Src/stm32g4xx_hal_msp.c **** { + 996 .loc 1 431 5 view .LVU261 + 431:Src/stm32g4xx_hal_msp.c **** { + 997 .loc 1 431 9 is_stmt 0 view .LVU262 + 998 002a 02A8 add r0, sp, #8 + 999 002c FFF7FEFF bl HAL_RCCEx_PeriphCLKConfig + 1000 .LVL56: + 431:Src/stm32g4xx_hal_msp.c **** { + 1001 .loc 1 431 8 view .LVU263 + 1002 0030 10BB cbnz r0, .L70 + 1003 .L67: + 437:Src/stm32g4xx_hal_msp.c **** + 1004 .loc 1 437 5 is_stmt 1 view .LVU264 + 1005 .LBB14: + 437:Src/stm32g4xx_hal_msp.c **** + 1006 .loc 1 437 5 view .LVU265 + 437:Src/stm32g4xx_hal_msp.c **** + 1007 .loc 1 437 5 view .LVU266 + 1008 0032 144B ldr r3, .L71+4 + 1009 0034 1A6E ldr r2, [r3, #96] + 1010 0036 42F48042 orr r2, r2, #16384 + 1011 003a 1A66 str r2, [r3, #96] + 437:Src/stm32g4xx_hal_msp.c **** + 1012 .loc 1 437 5 view .LVU267 + 1013 003c 1A6E ldr r2, [r3, #96] + 1014 003e 02F48042 and r2, r2, #16384 + 1015 0042 0092 str r2, [sp] + 437:Src/stm32g4xx_hal_msp.c **** + 1016 .loc 1 437 5 view .LVU268 + 1017 0044 009A ldr r2, [sp] + 1018 .LBE14: + 437:Src/stm32g4xx_hal_msp.c **** + 1019 .loc 1 437 5 view .LVU269 + 439:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 1020 .loc 1 439 5 view .LVU270 + 1021 .LBB15: + 439:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 1022 .loc 1 439 5 view .LVU271 + 439:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 1023 .loc 1 439 5 view .LVU272 + 1024 0046 DA6C ldr r2, [r3, #76] + 1025 0048 42F00102 orr r2, r2, #1 + 1026 004c DA64 str r2, [r3, #76] + 439:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 1027 .loc 1 439 5 view .LVU273 + 1028 004e DB6C ldr r3, [r3, #76] + 1029 0050 03F00103 and r3, r3, #1 + 1030 0054 0193 str r3, [sp, #4] + 439:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 1031 .loc 1 439 5 view .LVU274 + 1032 0056 019B ldr r3, [sp, #4] + 1033 .LBE15: + 439:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + ARM GAS /tmp/ccN6WdXz.s page 30 + + + 1034 .loc 1 439 5 view .LVU275 + 444:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 1035 .loc 1 444 5 view .LVU276 + 444:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 1036 .loc 1 444 25 is_stmt 0 view .LVU277 + 1037 0058 4FF4C063 mov r3, #1536 + 1038 005c 1393 str r3, [sp, #76] + 445:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 1039 .loc 1 445 5 is_stmt 1 view .LVU278 + 445:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 1040 .loc 1 445 26 is_stmt 0 view .LVU279 + 1041 005e 0223 movs r3, #2 + 1042 0060 1493 str r3, [sp, #80] + 446:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 1043 .loc 1 446 5 is_stmt 1 view .LVU280 + 446:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 1044 .loc 1 446 26 is_stmt 0 view .LVU281 + 1045 0062 0023 movs r3, #0 + 1046 0064 1593 str r3, [sp, #84] + 447:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + 1047 .loc 1 447 5 is_stmt 1 view .LVU282 + 447:Src/stm32g4xx_hal_msp.c **** GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + 1048 .loc 1 447 27 is_stmt 0 view .LVU283 + 1049 0066 1693 str r3, [sp, #88] + 448:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 1050 .loc 1 448 5 is_stmt 1 view .LVU284 + 448:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 1051 .loc 1 448 31 is_stmt 0 view .LVU285 + 1052 0068 0723 movs r3, #7 + 1053 006a 1793 str r3, [sp, #92] + 449:Src/stm32g4xx_hal_msp.c **** + 1054 .loc 1 449 5 is_stmt 1 view .LVU286 + 1055 006c 13A9 add r1, sp, #76 + 1056 006e 4FF09040 mov r0, #1207959552 + 1057 0072 FFF7FEFF bl HAL_GPIO_Init + 1058 .LVL57: + 1059 .loc 1 456 1 is_stmt 0 view .LVU287 + 1060 0076 D4E7 b .L65 + 1061 .L70: + 433:Src/stm32g4xx_hal_msp.c **** } + 1062 .loc 1 433 7 is_stmt 1 view .LVU288 + 1063 0078 FFF7FEFF bl Error_Handler + 1064 .LVL58: + 1065 007c D9E7 b .L67 + 1066 .L72: + 1067 007e 00BF .align 2 + 1068 .L71: + 1069 0080 00380140 .word 1073821696 + 1070 0084 00100240 .word 1073876992 + 1071 .cfi_endproc + 1072 .LFE337: + 1074 .section .text.HAL_UART_MspDeInit,"ax",%progbits + 1075 .align 1 + 1076 .global HAL_UART_MspDeInit + 1077 .syntax unified + 1078 .thumb + 1079 .thumb_func + ARM GAS /tmp/ccN6WdXz.s page 31 + + + 1081 HAL_UART_MspDeInit: + 1082 .LVL59: + 1083 .LFB338: + 457:Src/stm32g4xx_hal_msp.c **** + 458:Src/stm32g4xx_hal_msp.c **** /** + 459:Src/stm32g4xx_hal_msp.c **** * @brief UART MSP De-Initialization + 460:Src/stm32g4xx_hal_msp.c **** * This function freeze the hardware resources used in this example + 461:Src/stm32g4xx_hal_msp.c **** * @param huart: UART handle pointer + 462:Src/stm32g4xx_hal_msp.c **** * @retval None + 463:Src/stm32g4xx_hal_msp.c **** */ + 464:Src/stm32g4xx_hal_msp.c **** void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) + 465:Src/stm32g4xx_hal_msp.c **** { + 1084 .loc 1 465 1 view -0 + 1085 .cfi_startproc + 1086 @ args = 0, pretend = 0, frame = 0 + 1087 @ frame_needed = 0, uses_anonymous_args = 0 + 1088 .loc 1 465 1 is_stmt 0 view .LVU290 + 1089 0000 08B5 push {r3, lr} + 1090 .LCFI26: + 1091 .cfi_def_cfa_offset 8 + 1092 .cfi_offset 3, -8 + 1093 .cfi_offset 14, -4 + 466:Src/stm32g4xx_hal_msp.c **** if(huart->Instance==USART1) + 1094 .loc 1 466 3 is_stmt 1 view .LVU291 + 1095 .loc 1 466 11 is_stmt 0 view .LVU292 + 1096 0002 0268 ldr r2, [r0] + 1097 .loc 1 466 5 view .LVU293 + 1098 0004 074B ldr r3, .L77 + 1099 0006 9A42 cmp r2, r3 + 1100 0008 00D0 beq .L76 + 1101 .LVL60: + 1102 .L73: + 467:Src/stm32g4xx_hal_msp.c **** { + 468:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN USART1_MspDeInit 0 */ + 469:Src/stm32g4xx_hal_msp.c **** + 470:Src/stm32g4xx_hal_msp.c **** /* USER CODE END USART1_MspDeInit 0 */ + 471:Src/stm32g4xx_hal_msp.c **** /* Peripheral clock disable */ + 472:Src/stm32g4xx_hal_msp.c **** __HAL_RCC_USART1_CLK_DISABLE(); + 473:Src/stm32g4xx_hal_msp.c **** + 474:Src/stm32g4xx_hal_msp.c **** /**USART1 GPIO Configuration + 475:Src/stm32g4xx_hal_msp.c **** PA9 ------> USART1_TX + 476:Src/stm32g4xx_hal_msp.c **** PA10 ------> USART1_RX + 477:Src/stm32g4xx_hal_msp.c **** */ + 478:Src/stm32g4xx_hal_msp.c **** HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + 479:Src/stm32g4xx_hal_msp.c **** + 480:Src/stm32g4xx_hal_msp.c **** /* USER CODE BEGIN USART1_MspDeInit 1 */ + 481:Src/stm32g4xx_hal_msp.c **** + 482:Src/stm32g4xx_hal_msp.c **** /* USER CODE END USART1_MspDeInit 1 */ + 483:Src/stm32g4xx_hal_msp.c **** } + 484:Src/stm32g4xx_hal_msp.c **** + 485:Src/stm32g4xx_hal_msp.c **** } + 1103 .loc 1 485 1 view .LVU294 + 1104 000a 08BD pop {r3, pc} + 1105 .LVL61: + 1106 .L76: + 472:Src/stm32g4xx_hal_msp.c **** + 1107 .loc 1 472 5 is_stmt 1 view .LVU295 + ARM GAS /tmp/ccN6WdXz.s page 32 + + + 1108 000c 064A ldr r2, .L77+4 + 1109 000e 136E ldr r3, [r2, #96] + 1110 0010 23F48043 bic r3, r3, #16384 + 1111 0014 1366 str r3, [r2, #96] + 478:Src/stm32g4xx_hal_msp.c **** + 1112 .loc 1 478 5 view .LVU296 + 1113 0016 4FF4C061 mov r1, #1536 + 1114 001a 4FF09040 mov r0, #1207959552 + 1115 .LVL62: + 478:Src/stm32g4xx_hal_msp.c **** + 1116 .loc 1 478 5 is_stmt 0 view .LVU297 + 1117 001e FFF7FEFF bl HAL_GPIO_DeInit + 1118 .LVL63: + 1119 .loc 1 485 1 view .LVU298 + 1120 0022 F2E7 b .L73 + 1121 .L78: + 1122 .align 2 + 1123 .L77: + 1124 0024 00380140 .word 1073821696 + 1125 0028 00100240 .word 1073876992 + 1126 .cfi_endproc + 1127 .LFE338: + 1129 .section .bss.HAL_RCC_ADC12_CLK_ENABLED,"aw",%nobits + 1130 .align 2 + 1133 HAL_RCC_ADC12_CLK_ENABLED: + 1134 0000 00000000 .space 4 + 1135 .text + 1136 .Letext0: + 1137 .file 2 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1138 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1139 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 1140 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1141 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h" + 1142 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h" + 1143 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 1144 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h" + 1145 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" + 1146 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h" + 1147 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" + 1148 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h" + 1149 .file 14 "Inc/main.h" + 1150 .file 15 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h" + 1151 .file 16 "" + ARM GAS /tmp/ccN6WdXz.s page 33 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_msp.c + /tmp/ccN6WdXz.s:21 .text.HAL_MspInit:00000000 $t + /tmp/ccN6WdXz.s:27 .text.HAL_MspInit:00000000 HAL_MspInit + /tmp/ccN6WdXz.s:83 .text.HAL_MspInit:00000034 $d + /tmp/ccN6WdXz.s:88 .text.HAL_ADC_MspInit:00000000 $t + /tmp/ccN6WdXz.s:94 .text.HAL_ADC_MspInit:00000000 HAL_ADC_MspInit + /tmp/ccN6WdXz.s:322 .text.HAL_ADC_MspInit:000000fc $d + /tmp/ccN6WdXz.s:1133 .bss.HAL_RCC_ADC12_CLK_ENABLED:00000000 HAL_RCC_ADC12_CLK_ENABLED + /tmp/ccN6WdXz.s:331 .text.HAL_ADC_MspDeInit:00000000 $t + /tmp/ccN6WdXz.s:337 .text.HAL_ADC_MspDeInit:00000000 HAL_ADC_MspDeInit + /tmp/ccN6WdXz.s:419 .text.HAL_ADC_MspDeInit:00000050 $d + /tmp/ccN6WdXz.s:427 .text.HAL_I2C_MspInit:00000000 $t + /tmp/ccN6WdXz.s:433 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit + /tmp/ccN6WdXz.s:607 .text.HAL_I2C_MspInit:000000a8 $d + /tmp/ccN6WdXz.s:614 .text.HAL_I2C_MspDeInit:00000000 $t + /tmp/ccN6WdXz.s:620 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit + /tmp/ccN6WdXz.s:668 .text.HAL_I2C_MspDeInit:0000002c $d + /tmp/ccN6WdXz.s:675 .text.HAL_TIM_Base_MspInit:00000000 $t + /tmp/ccN6WdXz.s:681 .text.HAL_TIM_Base_MspInit:00000000 HAL_TIM_Base_MspInit + /tmp/ccN6WdXz.s:771 .text.HAL_TIM_Base_MspInit:00000058 $d + /tmp/ccN6WdXz.s:777 .text.HAL_TIM_MspPostInit:00000000 $t + /tmp/ccN6WdXz.s:783 .text.HAL_TIM_MspPostInit:00000000 HAL_TIM_MspPostInit + /tmp/ccN6WdXz.s:868 .text.HAL_TIM_Base_MspDeInit:00000000 $t + /tmp/ccN6WdXz.s:874 .text.HAL_TIM_Base_MspDeInit:00000000 HAL_TIM_Base_MspDeInit + /tmp/ccN6WdXz.s:927 .text.HAL_TIM_Base_MspDeInit:00000034 $d + /tmp/ccN6WdXz.s:933 .text.HAL_UART_MspInit:00000000 $t + /tmp/ccN6WdXz.s:939 .text.HAL_UART_MspInit:00000000 HAL_UART_MspInit + /tmp/ccN6WdXz.s:1069 .text.HAL_UART_MspInit:00000080 $d + /tmp/ccN6WdXz.s:1075 .text.HAL_UART_MspDeInit:00000000 $t + /tmp/ccN6WdXz.s:1081 .text.HAL_UART_MspDeInit:00000000 HAL_UART_MspDeInit + /tmp/ccN6WdXz.s:1124 .text.HAL_UART_MspDeInit:00000024 $d + /tmp/ccN6WdXz.s:1130 .bss.HAL_RCC_ADC12_CLK_ENABLED:00000000 $d + +UNDEFINED SYMBOLS +HAL_PWREx_DisableUCPDDeadBattery +memset +HAL_RCCEx_PeriphCLKConfig +HAL_GPIO_Init +Error_Handler +HAL_GPIO_DeInit +HAL_NVIC_SetPriority +HAL_NVIC_EnableIRQ +HAL_NVIC_DisableIRQ diff --git a/squeow_sw/build/stm32g4xx_hal_msp.o b/squeow_sw/build/stm32g4xx_hal_msp.o new file mode 100644 index 0000000000000000000000000000000000000000..4f9cea57eebc6d6d09546fb577bf3f769f5096e9 GIT binary patch literal 30676 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_pcd.d b/squeow_sw/build/stm32g4xx_hal_pcd.d new file mode 100644 index 0000000..cca8447 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_pcd.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_pcd.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_pcd.lst b/squeow_sw/build/stm32g4xx_hal_pcd.lst new file mode 100644 index 0000000..ab4f021 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_pcd.lst @@ -0,0 +1,7846 @@ +ARM GAS /tmp/ccJPteqL.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_pcd.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c" + 20 .section .text.HAL_PCD_EP_DB_Receive,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 HAL_PCD_EP_DB_Receive: + 27 .LVL0: + 28 .LFB362: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @file stm32g4xx_hal_pcd.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief PCD HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * functionalities of the USB Peripheral Controller: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + IO operation functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + Peripheral Control functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + Peripheral State functions + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ****************************************************************************** + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @attention + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * Copyright (c) 2019 STMicroelectronics. + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * All rights reserved. + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * This software is licensed under terms that can be found in the LICENSE file + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * in the root directory of this software component. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ****************************************************************************** + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @verbatim + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ============================================================================== + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ##### How to use this driver ##### + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ============================================================================== + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** [..] + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** The PCD HAL driver can be used as follows: + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (#) Declare a PCD_HandleTypeDef handle structure, for example: + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_HandleTypeDef hpcd; + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (#) Fill parameters of Init structure in HCD handle + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (#) Call HAL_PCD_Init() API to initialize the PCD peripheral (Core, Device core, ...) + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (#) Initialize the PCD low level resources through the HAL_PCD_MspInit() API: + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (##) Enable the PCD/USB Low Level interface clock using + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (+++) __HAL_RCC_USB_CLK_ENABLE(); For USB Device only FS peripheral + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (##) Initialize the related GPIO clocks + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (##) Configure PCD pin-out + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (##) Configure PCD NVIC interrupt + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (#)Associate the Upper USB device stack to the HAL PCD Driver: + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (##) hpcd.pData = pdev; + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (#)Enable PCD transmission and reception: + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (##) HAL_PCD_Start(); + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @endverbatim + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ****************************************************************************** + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Includes ------------------------------------------------------------------*/ + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #include "stm32g4xx_hal.h" + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @addtogroup STM32G4xx_HAL_Driver + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD PCD + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief PCD HAL module driver + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #ifdef HAL_PCD_MODULE_ENABLED + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if defined (USB) + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Private types -------------------------------------------------------------*/ + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Private variables ---------------------------------------------------------*/ + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Private constants ---------------------------------------------------------*/ + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Private macros ------------------------------------------------------------*/ + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Private_Macros PCD Private Macros + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #define PCD_MIN(a, b) (((a) < (b)) ? (a) : (b)) + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #define PCD_MAX(a, b) (((a) > (b)) ? (a) : (b)) + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Private functions prototypes ----------------------------------------------*/ + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Private_Functions PCD Private Functions + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + ARM GAS /tmp/ccJPteqL.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd); + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_ + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_t wEPVal); + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Exported functions --------------------------------------------------------*/ + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Exported_Functions PCD Exported Functions + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Initialization and Configuration functions + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @verbatim + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ##### Initialization and de-initialization functions ##### + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** [..] This section provides functions allowing to: + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @endverbatim + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Initializes the PCD according to the specified + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * parameters in the PCD_InitTypeDef and initialize the associated handle. + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd) + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint8_t i; + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Check the PCD handle allocation */ + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd == NULL) + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Check the parameters */ + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** assert_param(IS_PCD_ALL_INSTANCE(hpcd->Instance)); + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_RESET) + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Allocate lock resource and initialize it */ + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Lock = HAL_UNLOCKED; + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SOFCallback = HAL_PCD_SOFCallback; + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; + ARM GAS /tmp/ccJPteqL.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResetCallback = HAL_PCD_ResetCallback; + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SuspendCallback = HAL_PCD_SuspendCallback; + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResumeCallback = HAL_PCD_ResumeCallback; + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ConnectCallback = HAL_PCD_ConnectCallback; + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPMCallback = HAL_PCDEx_LPM_Callback; + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->BCDCallback = HAL_PCDEx_BCD_Callback; + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->MspInitCallback == NULL) + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspInitCallback = HAL_PCD_MspInit; + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Init the low level hardware */ + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspInitCallback(hpcd); + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_MspInit(hpcd); + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_HAL_PCD_REGISTER_CALLBACKS) */ + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->State = HAL_PCD_STATE_BUSY; + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Disable the Interrupts */ + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Init endpoints structures */ + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** for (i = 0U; i < hpcd->Init.dev_endpoints; i++) + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Init ep structure */ + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].is_in = 1U; + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].num = i; + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].tx_fifo_num = i; + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Control until ep is activated */ + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].type = EP_TYPE_CTRL; + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].maxpacket = 0U; + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].xfer_buff = 0U; + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].xfer_len = 0U; + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** for (i = 0U; i < hpcd->Init.dev_endpoints; i++) + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].is_in = 0U; + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].num = i; + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Control until ep is activated */ + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].type = EP_TYPE_CTRL; + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].maxpacket = 0U; + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].xfer_buff = 0U; + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].xfer_len = 0U; + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Init Device */ + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevInit(hpcd->Instance, hpcd->Init); + ARM GAS /tmp/ccJPteqL.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = 0U; + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->State = HAL_PCD_STATE_READY; + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Activate LPM */ + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->Init.lpm_enable == 1U) + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)HAL_PCDEx_ActivateLPM(hpcd); + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief DeInitializes the PCD peripheral. + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd) + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Check the PCD handle allocation */ + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd == NULL) + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->State = HAL_PCD_STATE_BUSY; + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Stop Device */ + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (USB_StopDevice(hpcd->Instance) != HAL_OK) + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->MspDeInitCallback == NULL) + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; /* Legacy weak MspDeInit */ + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DeInit the low level hardware */ + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspDeInitCallback(hpcd); + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DeInit the low level hardware: CLOCK, NVIC.*/ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_MspDeInit(hpcd); + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->State = HAL_PCD_STATE_RESET; + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Initializes the PCD MSP. + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + ARM GAS /tmp/ccJPteqL.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_MspInit could be implemented in the user file + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief DeInitializes PCD MSP. + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd) + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_MspDeInit could be implemented in the user file + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register a User USB PCD Callback + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak predefined callback + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd USB PCD handle + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param CallbackID ID of the callback to be registered + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * This parameter can be one of the following values: + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_SOF_CB_ID USB PCD SOF callback ID + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_SETUPSTAGE_CB_ID USB PCD Setup callback ID + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_RESET_CB_ID USB PCD Reset callback ID + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_SUSPEND_CB_ID USB PCD Suspend callback ID + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_RESUME_CB_ID USB PCD Resume callback ID + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_CONNECT_CB_ID USB PCD Connect callback ID + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_DISCONNECT_CB_ID OTG PCD Disconnect callback ID + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_MSPINIT_CB_ID MspDeInit callback ID + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_MSPDEINIT_CB_ID MspDeInit callback ID + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the Callback function + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_CallbackIDTypeDef CallbackID, + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** pPCD_CallbackTypeDef pCallback) + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + ARM GAS /tmp/ccJPteqL.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** switch (CallbackID) + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_SOF_CB_ID : + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SOFCallback = pCallback; + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_SETUPSTAGE_CB_ID : + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SetupStageCallback = pCallback; + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_RESET_CB_ID : + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResetCallback = pCallback; + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_SUSPEND_CB_ID : + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SuspendCallback = pCallback; + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_RESUME_CB_ID : + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResumeCallback = pCallback; + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_CONNECT_CB_ID : + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ConnectCallback = pCallback; + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_DISCONNECT_CB_ID : + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DisconnectCallback = pCallback; + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPINIT_CB_ID : + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspInitCallback = pCallback; + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPDEINIT_CB_ID : + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspDeInitCallback = pCallback; + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** default : + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else if (hpcd->State == HAL_PCD_STATE_RESET) + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** switch (CallbackID) + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPINIT_CB_ID : + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspInitCallback = pCallback; + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + ARM GAS /tmp/ccJPteqL.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPDEINIT_CB_ID : + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspDeInitCallback = pCallback; + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** default : + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister an USB PCD Callback + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB PCD callabck is redirected to the weak predefined callback + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd USB PCD handle + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param CallbackID ID of the callback to be unregistered + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * This parameter can be one of the following values: + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_SOF_CB_ID USB PCD SOF callback ID + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_SETUPSTAGE_CB_ID USB PCD Setup callback ID + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_RESET_CB_ID USB PCD Reset callback ID + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_SUSPEND_CB_ID USB PCD Suspend callback ID + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_RESUME_CB_ID USB PCD Resume callback ID + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_CONNECT_CB_ID USB PCD Connect callback ID + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_DISCONNECT_CB_ID OTG PCD Disconnect callback ID + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_MSPINIT_CB_ID MspDeInit callback ID + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @arg @ref HAL_PCD_MSPDEINIT_CB_ID MspDeInit callback ID + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef Cal + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Setup Legacy weak Callbacks */ + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** switch (CallbackID) + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_SOF_CB_ID : + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SOFCallback = HAL_PCD_SOFCallback; + ARM GAS /tmp/ccJPteqL.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_SETUPSTAGE_CB_ID : + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_RESET_CB_ID : + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResetCallback = HAL_PCD_ResetCallback; + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_SUSPEND_CB_ID : + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SuspendCallback = HAL_PCD_SuspendCallback; + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_RESUME_CB_ID : + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResumeCallback = HAL_PCD_ResumeCallback; + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_CONNECT_CB_ID : + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ConnectCallback = HAL_PCD_ConnectCallback; + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_DISCONNECT_CB_ID : + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPINIT_CB_ID : + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspInitCallback = HAL_PCD_MspInit; + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPDEINIT_CB_ID : + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** default : + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else if (hpcd->State == HAL_PCD_STATE_RESET) + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** switch (CallbackID) + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPINIT_CB_ID : + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspInitCallback = HAL_PCD_MspInit; + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** case HAL_PCD_MSPDEINIT_CB_ID : + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** default : + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + ARM GAS /tmp/ccJPteqL.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** break; + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register USB PCD Data OUT Stage Callback + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak HAL_PCD_DataOutStageCallback() predefined callback + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the USB PCD Data OUT Stage Callback function + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** pPCD_DataOutStageCallbackTypeDef pCallback) + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataOutStageCallback = pCallback; + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister the USB PCD Data OUT Stage Callback + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB PCD Data OUT Stage Callback is redirected to the weak HAL_PCD_DataOutStageCallback( + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd) + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; /* Legacy weak DataOutStageCallback + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register USB PCD Data IN Stage Callback + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak HAL_PCD_DataInStageCallback() predefined callback + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the USB PCD Data IN Stage Callback function + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** pPCD_DataInStageCallbackTypeDef pCallback) + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback = pCallback; + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister the USB PCD Data IN Stage Callback + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB PCD Data OUT Stage Callback is redirected to the weak HAL_PCD_DataInStageCallback() + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd) + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; /* Legacy weak DataInStageCallback */ + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register USB PCD Iso OUT incomplete Callback + ARM GAS /tmp/ccJPteqL.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak HAL_PCD_ISOOUTIncompleteCallback() predefined callback + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the USB PCD Iso OUT incomplete Callback function + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** pPCD_IsoOutIncpltCallbackTypeDef pCallback) + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ISOOUTIncompleteCallback = pCallback; + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister the USB PCD Iso OUT incomplete Callback + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB PCD Iso OUT incomplete Callback is redirected + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * to the weak HAL_PCD_ISOOUTIncompleteCallback() predefined callback + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd) + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; /* Legacy weak ISOOUTIncompl + ARM GAS /tmp/ccJPteqL.s page 14 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register USB PCD Iso IN incomplete Callback + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak HAL_PCD_ISOINIncompleteCallback() predefined callback + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the USB PCD Iso IN incomplete Callback function + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** pPCD_IsoInIncpltCallbackTypeDef pCallback) + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ISOINIncompleteCallback = pCallback; + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 15 + + + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister the USB PCD Iso IN incomplete Callback + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB PCD Iso IN incomplete Callback is redirected + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * to the weak HAL_PCD_ISOINIncompleteCallback() predefined callback + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd) + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; /* Legacy weak ISOINIncomplete + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register USB PCD BCD Callback + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak HAL_PCDEx_BCD_Callback() predefined callback + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the USB PCD BCD Callback function + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, pPCD_BcdCallbackTypeDef pCal + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + ARM GAS /tmp/ccJPteqL.s page 16 + + + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->BCDCallback = pCallback; + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister the USB PCD BCD Callback + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB BCD Callback is redirected to the weak HAL_PCDEx_BCD_Callback() predefined callback + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd) + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->BCDCallback = HAL_PCDEx_BCD_Callback; /* Legacy weak HAL_PCDEx_BCD_Callback */ + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Register USB PCD LPM Callback + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * To be used instead of the weak HAL_PCDEx_LPM_Callback() predefined callback + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pCallback pointer to the USB PCD LPM Callback function + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + ARM GAS /tmp/ccJPteqL.s page 17 + + + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCal + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (pCallback == NULL) + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPMCallback = pCallback; + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Unregister the USB PCD LPM Callback + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * USB LPM Callback is redirected to the weak HAL_PCDEx_LPM_Callback() predefined callback + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd) + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef status = HAL_OK; + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process locked */ + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->State == HAL_PCD_STATE_READY) + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPMCallback = HAL_PCDEx_LPM_Callback; /* Legacy weak HAL_PCDEx_LPM_Callback */ + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Update the error code */ + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Return error status */ + ARM GAS /tmp/ccJPteqL.s page 18 + + + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** status = HAL_ERROR; + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Release Lock */ + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return status; + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Exported_Functions_Group2 Input and Output operation functions + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Data transfers functions + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @verbatim + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ##### IO operation functions ##### + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** [..] + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** This subsection provides a set of functions allowing to manage the PCD data + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** transfers. + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @endverbatim + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Start the USB device + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd) + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_ENABLE(hpcd); + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Stop the USB device. + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd) + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + ARM GAS /tmp/ccJPteqL.s page 19 + + +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief This function handles PCD interrupt request. +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd) +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint32_t wIstr = USB_ReadInterrupts(hpcd->Instance); +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_CTR) == USB_ISTR_CTR) +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* servicing of the endpoint correct transfer interrupt */ +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* clear of the CTR flag into the sub */ +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)PCD_EP_ISR_Handler(hpcd); +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_RESET) == USB_ISTR_RESET) +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_RESET); +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResetCallback(hpcd); +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_ResetCallback(hpcd); +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)HAL_PCD_SetAddress(hpcd, 0U); +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_PMAOVR) == USB_ISTR_PMAOVR) +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_PMAOVR); +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_ERR) == USB_ISTR_ERR) +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_ERR); +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_WKUP) == USB_ISTR_WKUP) +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_LPMODE); +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->LPM_State == LPM_L1) +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 20 + + +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPM_State = LPM_L0; +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPMCallback(hpcd, PCD_LPM_L0_ACTIVE); +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCDEx_LPM_Callback(hpcd, PCD_LPM_L0_ACTIVE); +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->ResumeCallback(hpcd); +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_ResumeCallback(hpcd); +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_WKUP); +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_SUSP) == USB_ISTR_SUSP) +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Force low-power mode in the macrocell */ +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* clear of the ISTR bit must be done after setting of CNTR_FSUSP */ +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SUSP); +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_LPMODE; +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SuspendCallback(hpcd); +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_SuspendCallback(hpcd); +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Handle LPM Interrupt */ +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_L1REQ) == USB_ISTR_L1REQ) +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_L1REQ); +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->LPM_State == LPM_L0) +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Force suspend and low-power mode before going to L1 state*/ +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_LPMODE; +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPM_State = LPM_L1; +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->BESL = ((uint32_t)hpcd->Instance->LPMCSR & USB_LPMCSR_BESL) >> 2; +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->LPMCallback(hpcd, PCD_LPM_L1_ACTIVE); +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCDEx_LPM_Callback(hpcd, PCD_LPM_L1_ACTIVE); +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + ARM GAS /tmp/ccJPteqL.s page 21 + + +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SuspendCallback(hpcd); +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_SuspendCallback(hpcd); +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_SOF) == USB_ISTR_SOF) +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SOF); +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SOFCallback(hpcd); +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_SOFCallback(hpcd); +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_ESOF) == USB_ISTR_ESOF) +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* clear ESOF flag in ISTR */ +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_ESOF); +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return; +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Data OUT stage callback. +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param epnum endpoint number +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_DataOutStageCallback could be implemented in the user file +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Data IN stage callback +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param epnum endpoint number +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ + ARM GAS /tmp/ccJPteqL.s page 22 + + +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_DataInStageCallback could be implemented in the user file +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Setup stage callback +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_SetupStageCallback could be implemented in the user file +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief USB Start Of Frame callback. +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_SOFCallback could be implemented in the user file +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief USB Reset callback. +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_ResetCallback could be implemented in the user file +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Suspend event callback. + ARM GAS /tmp/ccJPteqL.s page 23 + + +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_SuspendCallback could be implemented in the user file +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Resume event callback. +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_ResumeCallback could be implemented in the user file +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Incomplete ISO OUT callback. +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param epnum endpoint number +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_ISOOUTIncompleteCallback could be implemented in the user file +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Incomplete ISO IN callback. +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param epnum endpoint number +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 24 + + +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_ISOINIncompleteCallback could be implemented in the user file +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Connection event callback. +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_ConnectCallback could be implemented in the user file +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Disconnection event callback. +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval None +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __weak void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* NOTE : This function should not be modified, when the callback is needed, +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** the HAL_PCD_DisconnectCallback could be implemented in the user file +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Exported_Functions_Group3 Peripheral Control functions +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief management functions +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @verbatim +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ##### Peripheral Control functions ##### +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** [..] +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** This subsection provides a set of functions allowing to control the PCD data +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** transfers. +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @endverbatim +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Connect the USB device +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle + ARM GAS /tmp/ccJPteqL.s page 25 + + +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd) +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Disconnect the USB device. +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd) +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Set the USB Device address. +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param address new device address +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address) +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = address; +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_SetDevAddress(hpcd->Instance, address); +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Open and configure an endpoint. +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_mps endpoint max packet size +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_type endpoint type +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t ep_mps, uint8_t ep_type) +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef ret = HAL_OK; +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((ep_addr & 0x80U) == 0x80U) +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + ARM GAS /tmp/ccJPteqL.s page 26 + + +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->maxpacket = ep_mps; +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->type = ep_type; +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->is_in != 0U) +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Assign a Tx FIFO */ +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->tx_fifo_num = ep->num; +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Set initial data PID. */ +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep_type == EP_TYPE_BULK) +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->data_pid_start = 0U; +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_ActivateEndpoint(hpcd->Instance, ep); +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return ret; +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Deactivate an endpoint. +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((ep_addr & 0x80U) == 0x80U) +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DeactivateEndpoint(hpcd->Instance, ep); +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 27 + + +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Receive an amount of data. +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pBuf pointer to the reception buffer +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param len amount of data to be received +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint3 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /*setup and start the Xfer */ +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff = pBuf; +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = len; +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = 0U; +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((ep_addr & EP_ADDR_MSK) == 0U) +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EP0StartXfer(hpcd->Instance, ep); +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Get Received Data Size +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval Data Size +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return hpcd->OUT_ep[ep_addr & EP_ADDR_MSK].xfer_count; +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Send an amount of data +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param pBuf pointer to the transmission buffer +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param len amount of data to be sent +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 28 + + +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /*setup and start the Xfer */ +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff = pBuf; +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = len; +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 1U; +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = len; +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = 0U; +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((ep_addr & EP_ADDR_MSK) == 0U) +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EP0StartXfer(hpcd->Instance, ep); +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Set a STALL condition over an endpoint +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (((uint32_t)ep_addr & EP_ADDR_MSK) > hpcd->Init.dev_endpoints) +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((0x80U & ep_addr) == 0x80U) +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[ep_addr]; +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_stall = 1U; +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPSetStall(hpcd->Instance, ep); +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + ARM GAS /tmp/ccJPteqL.s page 29 + + +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Clear a STALL condition over in an endpoint +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (((uint32_t)ep_addr & 0x0FU) > hpcd->Init.dev_endpoints) +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_ERROR; +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((0x80U & ep_addr) == 0x80U) +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_stall = 0U; +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPClearStall(hpcd->Instance, ep); +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Flush an endpoint +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep_addr endpoint address +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(hpcd); +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(ep_addr); +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Activate remote wakeup signalling + ARM GAS /tmp/ccJPteqL.s page 30 + + +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return (USB_ActivateRemoteWakeup(hpcd->Instance)); +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief De-activate remote wakeup signalling. +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return (USB_DeActivateRemoteWakeup(hpcd->Instance)); +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @defgroup PCD_Exported_Functions_Group4 Peripheral State functions +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Peripheral State functions +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @verbatim +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ##### Peripheral State functions ##### +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** =============================================================================== +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** [..] +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** This subsection permits to get in run-time the status of the peripheral +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** and the data flow. +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** @endverbatim +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Return the PCD handle state. +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL state +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd) +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return hpcd->State; +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @} +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Private functions ---------------------------------------------------------*/ +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** @addtogroup PCD_Private_Functions + ARM GAS /tmp/ccJPteqL.s page 31 + + +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @{ +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief This function handles PCD Endpoint interrupt request. +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t count; +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t wIstr; +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t wEPVal; +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t TxPctSize; +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint8_t epindex; +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* stay in loop while pending interrupts */ +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** while ((hpcd->Instance->ISTR & USB_ISTR_CTR) != 0U) +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** wIstr = hpcd->Instance->ISTR; +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* extract highest priority endpoint number */ +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** epindex = (uint8_t)(wIstr & USB_ISTR_EP_ID); +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (epindex == 0U) +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Decode and service control endpoint interrupt */ +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR bit = origin of the interrupt */ +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wIstr & USB_ISTR_DIR) == 0U) +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR = 0 */ +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR = 0 => IN int */ +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR = 0 implies that (EP_CTR_TX = 1) always */ +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_CLEAR_TX_EP_CTR(hpcd->Instance, PCD_ENDP0); +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += ep->xfer_count; +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* TX COMPLETE */ +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback(hpcd, 0U); +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataInStageCallback(hpcd, 0U); +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((hpcd->USB_Address > 0U) && (ep->xfer_len == 0U)) +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->DADDR = ((uint16_t)hpcd->USB_Address | USB_DADDR_EF); +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = 0U; +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + ARM GAS /tmp/ccJPteqL.s page 32 + + +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR = 1 */ +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR = 1 & CTR_RX => SETUP or OUT int */ +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* DIR = 1 & (CTR_TX | CTR_RX) => 2 int pending */ +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[0]; +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0); +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_SETUP) != 0U) +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Get SETUP Packet */ +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, (uint8_t *)hpcd->Setup, +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->pmaadress, (uint16_t)ep->xfer_count); +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* SETUP bit kept frozen while CTR_RX = 1 */ +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_CLEAR_RX_EP_CTR(hpcd->Instance, PCD_ENDP0); +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process SETUP Packet*/ +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->SetupStageCallback(hpcd); +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_SetupStageCallback(hpcd); +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else if ((wEPVal & USB_EP_CTR_RX) != 0U) +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_CLEAR_RX_EP_CTR(hpcd->Instance, PCD_ENDP0); +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Get Control Data OUT Packet */ +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((ep->xfer_count != 0U) && (ep->xfer_buff != 0U)) +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, ep->xfer_buff, +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->pmaadress, (uint16_t)ep->xfer_count); +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += ep->xfer_count; +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Process Control Data OUT Packet */ +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataOutStageCallback(hpcd, 0U); +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataOutStageCallback(hpcd, 0U); +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0) & USB_EP_SETUP) == 0U) +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_CNT(hpcd->Instance, PCD_ENDP0, ep->maxpacket); +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else + ARM GAS /tmp/ccJPteqL.s page 33 + + +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Decode and service non control endpoints interrupt */ +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* process related endpoint register */ +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, epindex); +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_CTR_RX) != 0U) +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* clear int flag */ +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_CLEAR_RX_EP_CTR(hpcd->Instance, epindex); +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* OUT Single Buffering */ +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->doublebuffer == 0U) +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** count = (uint16_t)PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (count != 0U) +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaadress, count); +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* manage double buffer bulk out */ +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->type == EP_TYPE_BULK) +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** count = HAL_PCD_EP_DB_Receive(hpcd, ep, wEPVal); +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else /* manage double buffer iso out */ +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* free EP OUT Buffer */ +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((PCD_GET_ENDPOINT(hpcd->Instance, ep->num) & USB_EP_DTOG_RX) != 0U) +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* read from endpoint BUF0Addr buffer */ +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (count != 0U) +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* read from endpoint BUF1Addr buffer */ +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (count != 0U) +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + ARM GAS /tmp/ccJPteqL.s page 34 + + +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* multi-packet on the NON control OUT endpoint */ +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += count; +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += count; +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((ep->xfer_len == 0U) || (count < ep->maxpacket)) +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* RX COMPLETE */ +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataOutStageCallback(hpcd, ep->num); +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataOutStageCallback(hpcd, ep->num); +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void) USB_EPStartXfer(hpcd->Instance, ep); +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_CTR_TX) != 0U) +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[epindex]; +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* clear int flag */ +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_CLEAR_TX_EP_CTR(hpcd->Instance, epindex); +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->type != EP_TYPE_BULK) +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = 0U; +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->doublebuffer != 0U) +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_TX) != 0U) +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* TX COMPLETE */ +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback(hpcd, ep->num); +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataInStageCallback(hpcd, ep->num); +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Manage Bulk Single Buffer Transaction */ +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_KIND) == 0U) +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 35 + + +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* multi-packet on the NON control IN endpoint */ +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** TxPctSize = (uint16_t)PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len > TxPctSize) +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len -= TxPctSize; +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = 0U; +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Zero Length Packet? */ +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len == 0U) +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* TX COMPLETE */ +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback(hpcd, ep->num); +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataInStageCallback(hpcd, ep->num); +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Transfer is not yet Done */ +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += TxPctSize; +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Double Buffer bulk IN (bulk transfer Len > Ep_Mps) */ +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)HAL_PCD_EP_DB_Transmit(hpcd, ep, wEPVal); +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Manage double buffer bulk out transaction from ISR +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep current endpoint handle +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param wEPVal Last snapshot of EPRx register value taken in ISR +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep, uint16_t wEPVal) +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 36 + + + 29 .loc 1 1968 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 .loc 1 1968 1 is_stmt 0 view .LVU1 + 34 0000 38B5 push {r3, r4, r5, lr} + 35 .LCFI0: + 36 .cfi_def_cfa_offset 16 + 37 .cfi_offset 3, -16 + 38 .cfi_offset 4, -12 + 39 .cfi_offset 5, -8 + 40 .cfi_offset 14, -4 +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t count; + 41 .loc 1 1969 3 is_stmt 1 view .LVU2 +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Manage Buffer0 OUT */ +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_RX) != 0U) + 42 .loc 1 1972 3 view .LVU3 + 43 .loc 1 1972 6 is_stmt 0 view .LVU4 + 44 0002 12F4804F tst r2, #16384 + 45 0006 43D0 beq .L2 +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Get count of received Data on buffer0 */ +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); + 46 .loc 1 1975 5 is_stmt 1 view .LVU5 + 47 .loc 1 1975 23 is_stmt 0 view .LVU6 + 48 0008 0468 ldr r4, [r0] + 49 000a B4F85030 ldrh r3, [r4, #80] + 50 000e 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 51 0012 4FEACC0E lsl lr, ip, #3 + 52 0016 1EFA83F3 uxtah r3, lr, r3 + 53 001a 2344 add r3, r3, r4 + 54 001c B3F80244 ldrh r4, [r3, #1026] + 55 .loc 1 1975 11 view .LVU7 + 56 0020 C4F30904 ubfx r4, r4, #0, #10 + 57 .LVL1: +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len >= count) + 58 .loc 1 1977 5 is_stmt 1 view .LVU8 + 59 .loc 1 1977 11 is_stmt 0 view .LVU9 + 60 0024 8B69 ldr r3, [r1, #24] + 61 .loc 1 1977 8 view .LVU10 + 62 0026 A342 cmp r3, r4 + 63 0028 28D3 bcc .L3 +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len -= count; + 64 .loc 1 1979 7 is_stmt 1 view .LVU11 + 65 .loc 1 1979 20 is_stmt 0 view .LVU12 + 66 002a 1B1B subs r3, r3, r4 + 67 002c 8B61 str r3, [r1, #24] + 68 .L4: +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = 0U; +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 37 + + +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len == 0U) + 69 .loc 1 1986 5 is_stmt 1 view .LVU13 + 70 .loc 1 1986 11 is_stmt 0 view .LVU14 + 71 002e 8B69 ldr r3, [r1, #24] + 72 .loc 1 1986 8 view .LVU15 + 73 0030 7BB9 cbnz r3, .L5 +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* set NAK to OUT endpoint since double buffer is enabled */ +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); + 74 .loc 1 1989 7 is_stmt 1 view .LVU16 + 75 .LBB2: + 76 .loc 1 1989 7 view .LVU17 + 77 .loc 1 1989 7 view .LVU18 + 78 0032 0568 ldr r5, [r0] + 79 0034 35F82C30 ldrh r3, [r5, ip, lsl #2] + 80 0038 9BB2 uxth r3, r3 + 81 003a 23F48043 bic r3, r3, #16384 + 82 003e 23F07003 bic r3, r3, #112 + 83 .LVL2: + 84 .loc 1 1989 7 view .LVU19 + 85 .loc 1 1989 7 view .LVU20 + 86 .loc 1 1989 7 view .LVU21 + 87 0042 83F40053 eor r3, r3, #8192 + 88 .LVL3: + 89 .loc 1 1989 7 view .LVU22 + 90 0046 43F40043 orr r3, r3, #32768 + 91 .LVL4: + 92 .loc 1 1989 7 is_stmt 0 view .LVU23 + 93 004a 43F08003 orr r3, r3, #128 + 94 004e 25F82C30 strh r3, [r5, ip, lsl #2] @ movhi + 95 .LVL5: + 96 .L5: + 97 .loc 1 1989 7 view .LVU24 + 98 .LBE2: + 99 .loc 1 1989 7 is_stmt 1 discriminator 7 view .LVU25 +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Check if Buffer1 is in blocked state which requires to toggle */ +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_TX) != 0U) + 100 .loc 1 1993 5 discriminator 7 view .LVU26 + 101 .loc 1 1993 8 is_stmt 0 discriminator 7 view .LVU27 + 102 0052 12F0400F tst r2, #64 + 103 0056 0ED0 beq .L6 +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); + 104 .loc 1 1995 7 is_stmt 1 discriminator 1 view .LVU28 + 105 .loc 1 1995 7 discriminator 1 view .LVU29 + 106 .loc 1 1995 7 discriminator 1 view .LVU30 + 107 .LBB3: + 108 .loc 1 1995 7 discriminator 1 view .LVU31 + 109 .loc 1 1995 7 discriminator 1 view .LVU32 + 110 0058 0268 ldr r2, [r0] + 111 .LVL6: + 112 .loc 1 1995 7 is_stmt 0 discriminator 1 view .LVU33 + 113 005a 0D78 ldrb r5, [r1] @ zero_extendqisi2 + 114 005c 32F82530 ldrh r3, [r2, r5, lsl #2] + 115 0060 9BB2 uxth r3, r3 + ARM GAS /tmp/ccJPteqL.s page 38 + + + 116 0062 23F4E043 bic r3, r3, #28672 + 117 0066 23F07003 bic r3, r3, #112 + 118 .LVL7: + 119 .loc 1 1995 7 is_stmt 1 discriminator 1 view .LVU34 + 120 006a 43F40043 orr r3, r3, #32768 + 121 .LVL8: + 122 .loc 1 1995 7 is_stmt 0 discriminator 1 view .LVU35 + 123 006e 43F0C003 orr r3, r3, #192 + 124 0072 22F82530 strh r3, [r2, r5, lsl #2] @ movhi + 125 .LBE3: + 126 .loc 1 1995 7 is_stmt 1 discriminator 1 view .LVU36 + 127 .LVL9: + 128 .L6: + 129 .loc 1 1995 7 discriminator 6 view .LVU37 + 130 .loc 1 1995 7 discriminator 6 view .LVU38 +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (count != 0U) + 131 .loc 1 1998 5 discriminator 6 view .LVU39 + 132 .loc 1 1998 8 is_stmt 0 discriminator 6 view .LVU40 + 133 0076 24B9 cbnz r4, .L13 + 134 .LVL10: + 135 .L7: +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Manage Buffer 1 DTOG_RX=0 */ +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Get count of received data */ +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len >= count) +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len -= count; +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = 0U; +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len == 0U) +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* set NAK on the current endpoint */ +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /*Need to FreeUser Buffer*/ +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_TX) == 0U) +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (count != 0U) +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); + ARM GAS /tmp/ccJPteqL.s page 39 + + +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return count; + 136 .loc 1 2036 3 is_stmt 1 view .LVU41 +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 137 .loc 1 2037 1 is_stmt 0 view .LVU42 + 138 0078 2046 mov r0, r4 + 139 007a 38BD pop {r3, r4, r5, pc} + 140 .LVL11: + 141 .L3: +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 142 .loc 1 1983 7 is_stmt 1 view .LVU43 +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 143 .loc 1 1983 20 is_stmt 0 view .LVU44 + 144 007c 0023 movs r3, #0 + 145 007e 8B61 str r3, [r1, #24] + 146 0080 D5E7 b .L4 + 147 .LVL12: + 148 .L13: +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 149 .loc 1 2000 7 is_stmt 1 view .LVU45 + 150 0082 2346 mov r3, r4 + 151 0084 0A89 ldrh r2, [r1, #8] + 152 0086 4969 ldr r1, [r1, #20] + 153 .LVL13: +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 154 .loc 1 2000 7 is_stmt 0 view .LVU46 + 155 0088 0068 ldr r0, [r0] + 156 .LVL14: +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 157 .loc 1 2000 7 view .LVU47 + 158 008a FFF7FEFF bl USB_ReadPMA + 159 .LVL15: + 160 008e F3E7 b .L7 + 161 .LVL16: + 162 .L2: +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 163 .loc 1 2007 5 is_stmt 1 view .LVU48 +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 164 .loc 1 2007 23 is_stmt 0 view .LVU49 + 165 0090 0468 ldr r4, [r0] + 166 0092 B4F85030 ldrh r3, [r4, #80] + 167 0096 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 168 009a 4FEACC0E lsl lr, ip, #3 + 169 009e 1EFA83F3 uxtah r3, lr, r3 + 170 00a2 2344 add r3, r3, r4 + 171 00a4 B3F80644 ldrh r4, [r3, #1030] +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 172 .loc 1 2007 11 view .LVU50 + 173 00a8 C4F30904 ubfx r4, r4, #0, #10 + 174 .LVL17: +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 175 .loc 1 2009 5 is_stmt 1 view .LVU51 +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 176 .loc 1 2009 11 is_stmt 0 view .LVU52 + 177 00ac 8B69 ldr r3, [r1, #24] + ARM GAS /tmp/ccJPteqL.s page 40 + + +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 178 .loc 1 2009 8 view .LVU53 + 179 00ae A342 cmp r3, r4 + 180 00b0 2FD3 bcc .L8 +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 181 .loc 1 2011 7 is_stmt 1 view .LVU54 +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 182 .loc 1 2011 20 is_stmt 0 view .LVU55 + 183 00b2 1B1B subs r3, r3, r4 + 184 00b4 8B61 str r3, [r1, #24] + 185 .L9: +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 186 .loc 1 2018 5 is_stmt 1 view .LVU56 +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 187 .loc 1 2018 11 is_stmt 0 view .LVU57 + 188 00b6 8B69 ldr r3, [r1, #24] +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 189 .loc 1 2018 8 view .LVU58 + 190 00b8 7BB9 cbnz r3, .L10 +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 191 .loc 1 2021 7 is_stmt 1 view .LVU59 + 192 .LBB4: +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 193 .loc 1 2021 7 view .LVU60 +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 194 .loc 1 2021 7 view .LVU61 + 195 00ba 0568 ldr r5, [r0] + 196 00bc 35F82C30 ldrh r3, [r5, ip, lsl #2] + 197 00c0 9BB2 uxth r3, r3 + 198 00c2 23F48043 bic r3, r3, #16384 + 199 00c6 23F07003 bic r3, r3, #112 + 200 .LVL18: +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 201 .loc 1 2021 7 view .LVU62 +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 202 .loc 1 2021 7 view .LVU63 +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 203 .loc 1 2021 7 view .LVU64 + 204 00ca 83F40053 eor r3, r3, #8192 + 205 .LVL19: +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 206 .loc 1 2021 7 view .LVU65 + 207 00ce 43F40043 orr r3, r3, #32768 + 208 .LVL20: +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 209 .loc 1 2021 7 is_stmt 0 view .LVU66 + 210 00d2 43F08003 orr r3, r3, #128 + 211 00d6 25F82C30 strh r3, [r5, ip, lsl #2] @ movhi + 212 .LVL21: + 213 .L10: +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 214 .loc 1 2021 7 view .LVU67 + 215 .LBE4: +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 216 .loc 1 2021 7 is_stmt 1 discriminator 7 view .LVU68 +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 217 .loc 1 2025 5 discriminator 7 view .LVU69 + ARM GAS /tmp/ccJPteqL.s page 41 + + +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 218 .loc 1 2025 8 is_stmt 0 discriminator 7 view .LVU70 + 219 00da 12F0400F tst r2, #64 + 220 00de 0FD1 bne .L11 +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 221 .loc 1 2027 7 is_stmt 1 discriminator 1 view .LVU71 +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 222 .loc 1 2027 7 discriminator 1 view .LVU72 +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 223 .loc 1 2027 7 discriminator 1 view .LVU73 + 224 .LBB5: +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 225 .loc 1 2027 7 discriminator 1 view .LVU74 +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 226 .loc 1 2027 7 discriminator 1 view .LVU75 + 227 00e0 0268 ldr r2, [r0] + 228 .LVL22: +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 229 .loc 1 2027 7 is_stmt 0 discriminator 1 view .LVU76 + 230 00e2 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 231 00e6 32F82C30 ldrh r3, [r2, ip, lsl #2] + 232 00ea 9BB2 uxth r3, r3 + 233 00ec 23F4E043 bic r3, r3, #28672 + 234 00f0 23F07003 bic r3, r3, #112 + 235 .LVL23: +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 236 .loc 1 2027 7 is_stmt 1 discriminator 1 view .LVU77 + 237 00f4 43F40043 orr r3, r3, #32768 + 238 .LVL24: +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 239 .loc 1 2027 7 is_stmt 0 discriminator 1 view .LVU78 + 240 00f8 43F0C003 orr r3, r3, #192 + 241 00fc 22F82C30 strh r3, [r2, ip, lsl #2] @ movhi + 242 .LBE5: +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 243 .loc 1 2027 7 is_stmt 1 discriminator 1 view .LVU79 + 244 .LVL25: + 245 .L11: +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 246 .loc 1 2027 7 discriminator 6 view .LVU80 +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 247 .loc 1 2027 7 discriminator 6 view .LVU81 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 248 .loc 1 2030 5 discriminator 6 view .LVU82 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 249 .loc 1 2030 8 is_stmt 0 discriminator 6 view .LVU83 + 250 0100 002C cmp r4, #0 + 251 0102 B9D0 beq .L7 +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 252 .loc 1 2032 7 is_stmt 1 view .LVU84 + 253 0104 2346 mov r3, r4 + 254 0106 4A89 ldrh r2, [r1, #10] + 255 0108 4969 ldr r1, [r1, #20] + 256 .LVL26: +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 257 .loc 1 2032 7 is_stmt 0 view .LVU85 + 258 010a 0068 ldr r0, [r0] + ARM GAS /tmp/ccJPteqL.s page 42 + + + 259 .LVL27: +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 260 .loc 1 2032 7 view .LVU86 + 261 010c FFF7FEFF bl USB_ReadPMA + 262 .LVL28: + 263 0110 B2E7 b .L7 + 264 .LVL29: + 265 .L8: +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 266 .loc 1 2015 7 is_stmt 1 view .LVU87 +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 267 .loc 1 2015 20 is_stmt 0 view .LVU88 + 268 0112 0023 movs r3, #0 + 269 0114 8B61 str r3, [r1, #24] + 270 0116 CEE7 b .L9 + 271 .cfi_endproc + 272 .LFE362: + 274 .section .text.HAL_PCD_MspInit,"ax",%progbits + 275 .align 1 + 276 .weak HAL_PCD_MspInit + 277 .syntax unified + 278 .thumb + 279 .thumb_func + 281 HAL_PCD_MspInit: + 282 .LVL30: + 283 .LFB331: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 284 .loc 1 260 1 is_stmt 1 view -0 + 285 .cfi_startproc + 286 @ args = 0, pretend = 0, frame = 0 + 287 @ frame_needed = 0, uses_anonymous_args = 0 + 288 @ link register save eliminated. + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 289 .loc 1 262 3 view .LVU90 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 290 .loc 1 267 1 is_stmt 0 view .LVU91 + 291 0000 7047 bx lr + 292 .cfi_endproc + 293 .LFE331: + 295 .section .text.HAL_PCD_Init,"ax",%progbits + 296 .align 1 + 297 .global HAL_PCD_Init + 298 .syntax unified + 299 .thumb + 300 .thumb_func + 302 HAL_PCD_Init: + 303 .LVL31: + 304 .LFB329: + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint8_t i; + 305 .loc 1 125 1 is_stmt 1 view -0 + 306 .cfi_startproc + 307 @ args = 0, pretend = 0, frame = 0 + 308 @ frame_needed = 0, uses_anonymous_args = 0 + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 309 .loc 1 126 3 view .LVU93 + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 310 .loc 1 129 3 view .LVU94 + ARM GAS /tmp/ccJPteqL.s page 43 + + + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 311 .loc 1 129 6 is_stmt 0 view .LVU95 + 312 0000 0028 cmp r0, #0 + 313 0002 6DD0 beq .L22 + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint8_t i; + 314 .loc 1 125 1 view .LVU96 + 315 0004 30B5 push {r4, r5, lr} + 316 .LCFI1: + 317 .cfi_def_cfa_offset 12 + 318 .cfi_offset 4, -12 + 319 .cfi_offset 5, -8 + 320 .cfi_offset 14, -4 + 321 0006 87B0 sub sp, sp, #28 + 322 .LCFI2: + 323 .cfi_def_cfa_offset 40 + 324 0008 0446 mov r4, r0 + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 325 .loc 1 135 3 is_stmt 1 view .LVU97 + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 326 .loc 1 137 3 view .LVU98 + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 327 .loc 1 137 11 is_stmt 0 view .LVU99 + 328 000a 90F8A932 ldrb r3, [r0, #681] @ zero_extendqisi2 + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 329 .loc 1 137 6 view .LVU100 + 330 000e 3BB1 cbz r3, .L28 + 331 .LVL32: + 332 .L17: + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 333 .loc 1 170 3 is_stmt 1 view .LVU101 + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 334 .loc 1 170 15 is_stmt 0 view .LVU102 + 335 0010 0323 movs r3, #3 + 336 0012 84F8A932 strb r3, [r4, #681] + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 337 .loc 1 173 3 is_stmt 1 view .LVU103 + 338 0016 2068 ldr r0, [r4] + 339 0018 FFF7FEFF bl USB_DisableGlobalInt + 340 .LVL33: + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 341 .loc 1 176 3 view .LVU104 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 342 .loc 1 176 10 is_stmt 0 view .LVU105 + 343 001c 0023 movs r3, #0 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 344 .loc 1 176 3 view .LVU106 + 345 001e 1FE0 b .L18 + 346 .LVL34: + 347 .L28: + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 348 .loc 1 140 5 is_stmt 1 view .LVU107 + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 349 .loc 1 140 16 is_stmt 0 view .LVU108 + 350 0020 80F8A832 strb r3, [r0, #680] + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_HAL_PCD_REGISTER_CALLBACKS) */ + 351 .loc 1 166 5 is_stmt 1 view .LVU109 + 352 0024 FFF7FEFF bl HAL_PCD_MspInit + ARM GAS /tmp/ccJPteqL.s page 44 + + + 353 .LVL35: + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* (USE_HAL_PCD_REGISTER_CALLBACKS) */ + 354 .loc 1 166 5 is_stmt 0 view .LVU110 + 355 0028 F2E7 b .L17 + 356 .LVL36: + 357 .L19: + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].num = i; + 358 .loc 1 179 5 is_stmt 1 discriminator 3 view .LVU111 + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].num = i; + 359 .loc 1 179 26 is_stmt 0 discriminator 3 view .LVU112 + 360 002a 5A1C adds r2, r3, #1 + 361 002c 02EB8201 add r1, r2, r2, lsl #2 + 362 0030 04EBC101 add r1, r4, r1, lsl #3 + 363 0034 0120 movs r0, #1 + 364 0036 4870 strb r0, [r1, #1] + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].tx_fifo_num = i; + 365 .loc 1 180 5 is_stmt 1 discriminator 3 view .LVU113 + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].tx_fifo_num = i; + 366 .loc 1 180 24 is_stmt 0 discriminator 3 view .LVU114 + 367 0038 02EB8201 add r1, r2, r2, lsl #2 + 368 003c 04F83130 strb r3, [r4, r1, lsl #3] + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Control until ep is activated */ + 369 .loc 1 181 5 is_stmt 1 discriminator 3 view .LVU115 + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Control until ep is activated */ + 370 .loc 1 181 32 is_stmt 0 discriminator 3 view .LVU116 + 371 0040 03EB8301 add r1, r3, r3, lsl #2 + 372 0044 04EBC101 add r1, r4, r1, lsl #3 + 373 0048 CB86 strh r3, [r1, #54] @ movhi + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].maxpacket = 0U; + 374 .loc 1 183 5 is_stmt 1 discriminator 3 view .LVU117 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].maxpacket = 0U; + 375 .loc 1 183 25 is_stmt 0 discriminator 3 view .LVU118 + 376 004a 02EB820C add ip, r2, r2, lsl #2 + 377 004e 04EBCC0C add ip, r4, ip, lsl #3 + 378 0052 0020 movs r0, #0 + 379 0054 8CF80300 strb r0, [ip, #3] + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].xfer_buff = 0U; + 380 .loc 1 184 5 is_stmt 1 discriminator 3 view .LVU119 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].xfer_buff = 0U; + 381 .loc 1 184 30 is_stmt 0 discriminator 3 view .LVU120 + 382 0058 8863 str r0, [r1, #56] + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].xfer_len = 0U; + 383 .loc 1 185 5 is_stmt 1 discriminator 3 view .LVU121 + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->IN_ep[i].xfer_len = 0U; + 384 .loc 1 185 30 is_stmt 0 discriminator 3 view .LVU122 + 385 005a C863 str r0, [r1, #60] + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 386 .loc 1 186 5 is_stmt 1 discriminator 3 view .LVU123 + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 387 .loc 1 186 29 is_stmt 0 discriminator 3 view .LVU124 + 388 005c 0864 str r0, [r1, #64] + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 389 .loc 1 176 47 is_stmt 1 discriminator 3 view .LVU125 + 390 005e D3B2 uxtb r3, r2 + 391 .LVL37: + 392 .L18: + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 45 + + + 393 .loc 1 176 18 discriminator 1 view .LVU126 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 394 .loc 1 176 30 is_stmt 0 discriminator 1 view .LVU127 + 395 0060 6068 ldr r0, [r4, #4] + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 396 .loc 1 176 18 discriminator 1 view .LVU128 + 397 0062 8342 cmp r3, r0 + 398 0064 E1D3 bcc .L19 + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 399 .loc 1 189 10 view .LVU129 + 400 0066 0023 movs r3, #0 + 401 .LVL38: + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 402 .loc 1 189 10 view .LVU130 + 403 0068 16E0 b .L20 + 404 .LVL39: + 405 .L21: + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].num = i; + 406 .loc 1 191 5 is_stmt 1 discriminator 3 view .LVU131 + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].num = i; + 407 .loc 1 191 27 is_stmt 0 discriminator 3 view .LVU132 + 408 006a 03EB8302 add r2, r3, r3, lsl #2 + 409 006e 04EBC202 add r2, r4, r2, lsl #3 + 410 0072 0021 movs r1, #0 + 411 0074 82F86911 strb r1, [r2, #361] + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Control until ep is activated */ + 412 .loc 1 192 5 is_stmt 1 discriminator 3 view .LVU133 + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Control until ep is activated */ + 413 .loc 1 192 25 is_stmt 0 discriminator 3 view .LVU134 + 414 0078 82F86831 strb r3, [r2, #360] + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].maxpacket = 0U; + 415 .loc 1 194 5 is_stmt 1 discriminator 3 view .LVU135 + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].maxpacket = 0U; + 416 .loc 1 194 26 is_stmt 0 discriminator 3 view .LVU136 + 417 007c 82F86B11 strb r1, [r2, #363] + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].xfer_buff = 0U; + 418 .loc 1 195 5 is_stmt 1 discriminator 3 view .LVU137 + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].xfer_buff = 0U; + 419 .loc 1 195 31 is_stmt 0 discriminator 3 view .LVU138 + 420 0080 C2F87811 str r1, [r2, #376] + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].xfer_len = 0U; + 421 .loc 1 196 5 is_stmt 1 discriminator 3 view .LVU139 + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->OUT_ep[i].xfer_len = 0U; + 422 .loc 1 196 31 is_stmt 0 discriminator 3 view .LVU140 + 423 0084 C2F87C11 str r1, [r2, #380] + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 424 .loc 1 197 5 is_stmt 1 discriminator 3 view .LVU141 + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 425 .loc 1 197 30 is_stmt 0 discriminator 3 view .LVU142 + 426 0088 03EB8302 add r2, r3, r3, lsl #2 + 427 008c 04EBC202 add r2, r4, r2, lsl #3 + 428 0090 C2F88011 str r1, [r2, #384] + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 429 .loc 1 189 47 is_stmt 1 discriminator 3 view .LVU143 + 430 0094 0133 adds r3, r3, #1 + 431 .LVL40: + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 46 + + + 432 .loc 1 189 47 is_stmt 0 discriminator 3 view .LVU144 + 433 0096 DBB2 uxtb r3, r3 + 434 .LVL41: + 435 .L20: + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 436 .loc 1 189 18 is_stmt 1 discriminator 1 view .LVU145 + 437 0098 9842 cmp r0, r3 + 438 009a E6D8 bhi .L21 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 439 .loc 1 201 3 view .LVU146 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 440 .loc 1 201 25 is_stmt 0 view .LVU147 + 441 009c A446 mov ip, r4 + 442 009e 5CF8105B ldr r5, [ip], #16 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 443 .loc 1 201 9 view .LVU148 + 444 00a2 EE46 mov lr, sp + 445 00a4 BCE80F00 ldmia ip!, {r0, r1, r2, r3} + 446 .LVL42: + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 447 .loc 1 201 9 view .LVU149 + 448 00a8 AEE80F00 stmia lr!, {r0, r1, r2, r3} + 449 00ac DCF80030 ldr r3, [ip] + 450 00b0 CEF80030 str r3, [lr] + 451 00b4 231D adds r3, r4, #4 + 452 00b6 0ECB ldm r3, {r1, r2, r3} + 453 00b8 2846 mov r0, r5 + 454 00ba FFF7FEFF bl USB_DevInit + 455 .LVL43: + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->State = HAL_PCD_STATE_READY; + 456 .loc 1 203 3 is_stmt 1 view .LVU150 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->State = HAL_PCD_STATE_READY; + 457 .loc 1 203 21 is_stmt 0 view .LVU151 + 458 00be 0023 movs r3, #0 + 459 00c0 84F82430 strb r3, [r4, #36] + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 460 .loc 1 204 3 is_stmt 1 view .LVU152 + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 461 .loc 1 204 15 is_stmt 0 view .LVU153 + 462 00c4 0123 movs r3, #1 + 463 00c6 84F8A932 strb r3, [r4, #681] + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 464 .loc 1 207 3 is_stmt 1 view .LVU154 + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 465 .loc 1 207 17 is_stmt 0 view .LVU155 + 466 00ca E369 ldr r3, [r4, #28] + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 467 .loc 1 207 6 view .LVU156 + 468 00cc 012B cmp r3, #1 + 469 00ce 02D0 beq .L29 + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 470 .loc 1 212 10 view .LVU157 + 471 00d0 0020 movs r0, #0 + 472 .L16: + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 473 .loc 1 213 1 view .LVU158 + 474 00d2 07B0 add sp, sp, #28 + ARM GAS /tmp/ccJPteqL.s page 47 + + + 475 .LCFI3: + 476 .cfi_remember_state + 477 .cfi_def_cfa_offset 12 + 478 @ sp needed + 479 00d4 30BD pop {r4, r5, pc} + 480 .LVL44: + 481 .L29: + 482 .LCFI4: + 483 .cfi_restore_state + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 484 .loc 1 209 5 is_stmt 1 view .LVU159 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 485 .loc 1 209 11 is_stmt 0 view .LVU160 + 486 00d6 2046 mov r0, r4 + 487 00d8 FFF7FEFF bl HAL_PCDEx_ActivateLPM + 488 .LVL45: + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 489 .loc 1 212 10 view .LVU161 + 490 00dc 0020 movs r0, #0 + 491 00de F8E7 b .L16 + 492 .LVL46: + 493 .L22: + 494 .LCFI5: + 495 .cfi_def_cfa_offset 0 + 496 .cfi_restore 4 + 497 .cfi_restore 5 + 498 .cfi_restore 14 + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 499 .loc 1 131 12 view .LVU162 + 500 00e0 0120 movs r0, #1 + 501 .LVL47: + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 502 .loc 1 213 1 view .LVU163 + 503 00e2 7047 bx lr + 504 .cfi_endproc + 505 .LFE329: + 507 .section .text.HAL_PCD_MspDeInit,"ax",%progbits + 508 .align 1 + 509 .weak HAL_PCD_MspDeInit + 510 .syntax unified + 511 .thumb + 512 .thumb_func + 514 HAL_PCD_MspDeInit: + 515 .LVL48: + 516 .LFB332: + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 517 .loc 1 275 1 is_stmt 1 view -0 + 518 .cfi_startproc + 519 @ args = 0, pretend = 0, frame = 0 + 520 @ frame_needed = 0, uses_anonymous_args = 0 + 521 @ link register save eliminated. + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 522 .loc 1 277 3 view .LVU165 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 523 .loc 1 282 1 is_stmt 0 view .LVU166 + 524 0000 7047 bx lr + 525 .cfi_endproc + ARM GAS /tmp/ccJPteqL.s page 48 + + + 526 .LFE332: + 528 .section .text.HAL_PCD_DeInit,"ax",%progbits + 529 .align 1 + 530 .global HAL_PCD_DeInit + 531 .syntax unified + 532 .thumb + 533 .thumb_func + 535 HAL_PCD_DeInit: + 536 .LVL49: + 537 .LFB330: + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Check the PCD handle allocation */ + 538 .loc 1 221 1 is_stmt 1 view -0 + 539 .cfi_startproc + 540 @ args = 0, pretend = 0, frame = 0 + 541 @ frame_needed = 0, uses_anonymous_args = 0 + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Check the PCD handle allocation */ + 542 .loc 1 221 1 is_stmt 0 view .LVU168 + 543 0000 38B5 push {r3, r4, r5, lr} + 544 .LCFI6: + 545 .cfi_def_cfa_offset 16 + 546 .cfi_offset 3, -16 + 547 .cfi_offset 4, -12 + 548 .cfi_offset 5, -8 + 549 .cfi_offset 14, -4 + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 550 .loc 1 223 3 is_stmt 1 view .LVU169 + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 551 .loc 1 223 6 is_stmt 0 view .LVU170 + 552 0002 90B1 cbz r0, .L33 + 553 0004 0446 mov r4, r0 + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 554 .loc 1 228 3 is_stmt 1 view .LVU171 + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 555 .loc 1 228 15 is_stmt 0 view .LVU172 + 556 0006 0323 movs r3, #3 + 557 0008 80F8A932 strb r3, [r0, #681] + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 558 .loc 1 231 3 is_stmt 1 view .LVU173 + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 559 .loc 1 231 7 is_stmt 0 view .LVU174 + 560 000c 0068 ldr r0, [r0] + 561 .LVL50: + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 562 .loc 1 231 7 view .LVU175 + 563 000e FFF7FEFF bl USB_StopDevice + 564 .LVL51: + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 565 .loc 1 231 6 view .LVU176 + 566 0012 0546 mov r5, r0 + 567 0014 10B1 cbz r0, .L36 + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 568 .loc 1 233 12 view .LVU177 + 569 0016 0125 movs r5, #1 + 570 .LVL52: + 571 .L32: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 572 .loc 1 252 1 view .LVU178 + ARM GAS /tmp/ccJPteqL.s page 49 + + + 573 0018 2846 mov r0, r5 + 574 001a 38BD pop {r3, r4, r5, pc} + 575 .LVL53: + 576 .L36: + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 577 .loc 1 246 3 is_stmt 1 view .LVU179 + 578 001c 2046 mov r0, r4 + 579 001e FFF7FEFF bl HAL_PCD_MspDeInit + 580 .LVL54: + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 581 .loc 1 249 3 view .LVU180 + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 582 .loc 1 249 15 is_stmt 0 view .LVU181 + 583 0022 0023 movs r3, #0 + 584 0024 84F8A932 strb r3, [r4, #681] + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 585 .loc 1 251 3 is_stmt 1 view .LVU182 + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 586 .loc 1 251 10 is_stmt 0 view .LVU183 + 587 0028 F6E7 b .L32 + 588 .LVL55: + 589 .L33: + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 590 .loc 1 225 12 view .LVU184 + 591 002a 0125 movs r5, #1 + 592 002c F4E7 b .L32 + 593 .cfi_endproc + 594 .LFE330: + 596 .section .text.HAL_PCD_Start,"ax",%progbits + 597 .align 1 + 598 .global HAL_PCD_Start + 599 .syntax unified + 600 .thumb + 601 .thumb_func + 603 HAL_PCD_Start: + 604 .LVL56: + 605 .LFB333: + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 606 .loc 1 978 1 is_stmt 1 view -0 + 607 .cfi_startproc + 608 @ args = 0, pretend = 0, frame = 0 + 609 @ frame_needed = 0, uses_anonymous_args = 0 + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_ENABLE(hpcd); + 610 .loc 1 979 3 view .LVU186 + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_ENABLE(hpcd); + 611 .loc 1 979 3 view .LVU187 + 612 0000 90F8A832 ldrb r3, [r0, #680] @ zero_extendqisi2 + 613 0004 012B cmp r3, #1 + 614 0006 0ED0 beq .L39 + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 615 .loc 1 978 1 is_stmt 0 discriminator 2 view .LVU188 + 616 0008 10B5 push {r4, lr} + 617 .LCFI7: + 618 .cfi_def_cfa_offset 8 + 619 .cfi_offset 4, -8 + 620 .cfi_offset 14, -4 + 621 000a 0446 mov r4, r0 + ARM GAS /tmp/ccJPteqL.s page 50 + + + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_ENABLE(hpcd); + 622 .loc 1 979 3 is_stmt 1 discriminator 2 view .LVU189 + 623 000c 0123 movs r3, #1 + 624 000e 80F8A832 strb r3, [r0, #680] + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_ENABLE(hpcd); + 625 .loc 1 979 3 discriminator 2 view .LVU190 + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 626 .loc 1 980 3 discriminator 2 view .LVU191 + 627 0012 0068 ldr r0, [r0] + 628 .LVL57: + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 629 .loc 1 980 3 is_stmt 0 discriminator 2 view .LVU192 + 630 0014 FFF7FEFF bl USB_EnableGlobalInt + 631 .LVL58: + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 632 .loc 1 981 3 is_stmt 1 discriminator 2 view .LVU193 + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 633 .loc 1 981 9 is_stmt 0 discriminator 2 view .LVU194 + 634 0018 2068 ldr r0, [r4] + 635 001a FFF7FEFF bl USB_DevConnect + 636 .LVL59: + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 637 .loc 1 982 3 is_stmt 1 discriminator 2 view .LVU195 + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 638 .loc 1 982 3 discriminator 2 view .LVU196 + 639 001e 0020 movs r0, #0 + 640 0020 84F8A802 strb r0, [r4, #680] + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 641 .loc 1 982 3 discriminator 2 view .LVU197 + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 642 .loc 1 984 3 discriminator 2 view .LVU198 + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 643 .loc 1 985 1 is_stmt 0 discriminator 2 view .LVU199 + 644 0024 10BD pop {r4, pc} + 645 .LVL60: + 646 .L39: + 647 .LCFI8: + 648 .cfi_def_cfa_offset 0 + 649 .cfi_restore 4 + 650 .cfi_restore 14 + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_ENABLE(hpcd); + 651 .loc 1 979 3 view .LVU200 + 652 0026 0220 movs r0, #2 + 653 .LVL61: + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 654 .loc 1 985 1 view .LVU201 + 655 0028 7047 bx lr + 656 .cfi_endproc + 657 .LFE333: + 659 .section .text.HAL_PCD_Stop,"ax",%progbits + 660 .align 1 + 661 .global HAL_PCD_Stop + 662 .syntax unified + 663 .thumb + 664 .thumb_func + 666 HAL_PCD_Stop: + 667 .LVL62: + ARM GAS /tmp/ccJPteqL.s page 51 + + + 668 .LFB334: + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 669 .loc 1 993 1 is_stmt 1 view -0 + 670 .cfi_startproc + 671 @ args = 0, pretend = 0, frame = 0 + 672 @ frame_needed = 0, uses_anonymous_args = 0 + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 673 .loc 1 994 3 view .LVU203 + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 674 .loc 1 994 3 view .LVU204 + 675 0000 90F8A832 ldrb r3, [r0, #680] @ zero_extendqisi2 + 676 0004 012B cmp r3, #1 + 677 0006 0ED0 beq .L46 + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 678 .loc 1 993 1 is_stmt 0 discriminator 2 view .LVU205 + 679 0008 10B5 push {r4, lr} + 680 .LCFI9: + 681 .cfi_def_cfa_offset 8 + 682 .cfi_offset 4, -8 + 683 .cfi_offset 14, -4 + 684 000a 0446 mov r4, r0 + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 685 .loc 1 994 3 is_stmt 1 discriminator 2 view .LVU206 + 686 000c 0123 movs r3, #1 + 687 000e 80F8A832 strb r3, [r0, #680] + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 688 .loc 1 994 3 discriminator 2 view .LVU207 + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 689 .loc 1 995 3 discriminator 2 view .LVU208 + 690 0012 0068 ldr r0, [r0] + 691 .LVL63: + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 692 .loc 1 995 3 is_stmt 0 discriminator 2 view .LVU209 + 693 0014 FFF7FEFF bl USB_DisableGlobalInt + 694 .LVL64: + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 695 .loc 1 996 3 is_stmt 1 discriminator 2 view .LVU210 + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 696 .loc 1 996 9 is_stmt 0 discriminator 2 view .LVU211 + 697 0018 2068 ldr r0, [r4] + 698 001a FFF7FEFF bl USB_DevDisconnect + 699 .LVL65: + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 700 .loc 1 997 3 is_stmt 1 discriminator 2 view .LVU212 + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 701 .loc 1 997 3 discriminator 2 view .LVU213 + 702 001e 0020 movs r0, #0 + 703 0020 84F8A802 strb r0, [r4, #680] + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 704 .loc 1 997 3 discriminator 2 view .LVU214 + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 705 .loc 1 999 3 discriminator 2 view .LVU215 +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 706 .loc 1 1000 1 is_stmt 0 discriminator 2 view .LVU216 + 707 0024 10BD pop {r4, pc} + 708 .LVL66: + 709 .L46: + ARM GAS /tmp/ccJPteqL.s page 52 + + + 710 .LCFI10: + 711 .cfi_def_cfa_offset 0 + 712 .cfi_restore 4 + 713 .cfi_restore 14 + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_PCD_DISABLE(hpcd); + 714 .loc 1 994 3 view .LVU217 + 715 0026 0220 movs r0, #2 + 716 .LVL67: +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 717 .loc 1 1000 1 view .LVU218 + 718 0028 7047 bx lr + 719 .cfi_endproc + 720 .LFE334: + 722 .section .text.HAL_PCD_DataOutStageCallback,"ax",%progbits + 723 .align 1 + 724 .weak HAL_PCD_DataOutStageCallback + 725 .syntax unified + 726 .thumb + 727 .thumb_func + 729 HAL_PCD_DataOutStageCallback: + 730 .LVL68: + 731 .LFB336: +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 732 .loc 1 1155 1 is_stmt 1 view -0 + 733 .cfi_startproc + 734 @ args = 0, pretend = 0, frame = 0 + 735 @ frame_needed = 0, uses_anonymous_args = 0 + 736 @ link register save eliminated. +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); + 737 .loc 1 1157 3 view .LVU220 +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 738 .loc 1 1158 3 view .LVU221 +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 739 .loc 1 1163 1 is_stmt 0 view .LVU222 + 740 0000 7047 bx lr + 741 .cfi_endproc + 742 .LFE336: + 744 .section .text.HAL_PCD_DataInStageCallback,"ax",%progbits + 745 .align 1 + 746 .weak HAL_PCD_DataInStageCallback + 747 .syntax unified + 748 .thumb + 749 .thumb_func + 751 HAL_PCD_DataInStageCallback: + 752 .LVL69: + 753 .LFB337: +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 754 .loc 1 1172 1 is_stmt 1 view -0 + 755 .cfi_startproc + 756 @ args = 0, pretend = 0, frame = 0 + 757 @ frame_needed = 0, uses_anonymous_args = 0 + 758 @ link register save eliminated. +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); + 759 .loc 1 1174 3 view .LVU224 +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 760 .loc 1 1175 3 view .LVU225 +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + ARM GAS /tmp/ccJPteqL.s page 53 + + + 761 .loc 1 1180 1 is_stmt 0 view .LVU226 + 762 0000 7047 bx lr + 763 .cfi_endproc + 764 .LFE337: + 766 .section .text.HAL_PCD_EP_DB_Transmit,"ax",%progbits + 767 .align 1 + 768 .syntax unified + 769 .thumb + 770 .thumb_func + 772 HAL_PCD_EP_DB_Transmit: + 773 .LVL70: + 774 .LFB363: +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @brief Manage double buffer bulk IN transaction from ISR +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param hpcd PCD handle +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param ep current endpoint handle +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @param wEPVal Last snapshot of EPRx register value taken in ISR +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** * @retval HAL status +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** */ +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep, uint16_t wEPVal) +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 775 .loc 1 2049 1 is_stmt 1 view -0 + 776 .cfi_startproc + 777 @ args = 0, pretend = 0, frame = 0 + 778 @ frame_needed = 0, uses_anonymous_args = 0 + 779 .loc 1 2049 1 is_stmt 0 view .LVU228 + 780 0000 70B5 push {r4, r5, r6, lr} + 781 .LCFI11: + 782 .cfi_def_cfa_offset 16 + 783 .cfi_offset 4, -16 + 784 .cfi_offset 5, -12 + 785 .cfi_offset 6, -8 + 786 .cfi_offset 14, -4 + 787 0002 0546 mov r5, r0 + 788 0004 0C46 mov r4, r1 + 789 0006 1646 mov r6, r2 +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint32_t len; + 790 .loc 1 2050 3 is_stmt 1 view .LVU229 +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t TxPctSize; + 791 .loc 1 2051 3 view .LVU230 +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Data Buffer0 ACK received */ +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_TX) != 0U) + 792 .loc 1 2054 3 view .LVU231 + 793 .loc 1 2054 6 is_stmt 0 view .LVU232 + 794 0008 12F0400F tst r2, #64 + 795 000c 00F00981 beq .L54 +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* multi-packet on the NON control IN endpoint */ +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** TxPctSize = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); + 796 .loc 1 2057 5 is_stmt 1 view .LVU233 + 797 .loc 1 2057 27 is_stmt 0 view .LVU234 + 798 0010 0268 ldr r2, [r0] + 799 .LVL71: + ARM GAS /tmp/ccJPteqL.s page 54 + + + 800 .loc 1 2057 27 view .LVU235 + 801 0012 B2F85030 ldrh r3, [r2, #80] + 802 0016 0978 ldrb r1, [r1] @ zero_extendqisi2 + 803 .LVL72: + 804 .loc 1 2057 27 view .LVU236 + 805 0018 C800 lsls r0, r1, #3 + 806 .LVL73: + 807 .loc 1 2057 27 view .LVU237 + 808 001a 10FA83F3 uxtah r3, r0, r3 + 809 001e 1344 add r3, r3, r2 + 810 0020 B3F80224 ldrh r2, [r3, #1026] + 811 .loc 1 2057 15 view .LVU238 + 812 0024 C2F30902 ubfx r2, r2, #0, #10 + 813 .LVL74: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len > TxPctSize) + 814 .loc 1 2059 5 is_stmt 1 view .LVU239 + 815 .loc 1 2059 11 is_stmt 0 view .LVU240 + 816 0028 A369 ldr r3, [r4, #24] + 817 .loc 1 2059 8 view .LVU241 + 818 002a 9342 cmp r3, r2 + 819 002c 51D9 bls .L55 +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len -= TxPctSize; + 820 .loc 1 2061 7 is_stmt 1 view .LVU242 + 821 .loc 1 2061 20 is_stmt 0 view .LVU243 + 822 002e 9B1A subs r3, r3, r2 + 823 0030 A361 str r3, [r4, #24] + 824 .L56: +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = 0U; +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Transfer is completed */ +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len == 0U) + 825 .loc 1 2069 5 is_stmt 1 view .LVU244 + 826 .loc 1 2069 11 is_stmt 0 view .LVU245 + 827 0032 A369 ldr r3, [r4, #24] + 828 .loc 1 2069 8 view .LVU246 + 829 0034 002B cmp r3, #0 + 830 0036 68D1 bne .L57 +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 831 .loc 1 2071 7 is_stmt 1 view .LVU247 + 832 .loc 1 2071 7 view .LVU248 + 833 0038 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 834 003a 002B cmp r3, #0 + 835 003c 4CD1 bne .L58 + 836 .loc 1 2071 7 discriminator 1 view .LVU249 + 837 .LBB6: + 838 .loc 1 2071 7 discriminator 1 view .LVU250 + 839 003e 2A68 ldr r2, [r5] + 840 .LVL75: + 841 .loc 1 2071 7 discriminator 1 view .LVU251 + 842 .loc 1 2071 7 discriminator 1 view .LVU252 + ARM GAS /tmp/ccJPteqL.s page 55 + + + 843 0040 B2F85030 ldrh r3, [r2, #80] + 844 0044 12FA83F3 uxtah r3, r2, r3 + 845 .LVL76: + 846 .loc 1 2071 7 discriminator 1 view .LVU253 + 847 0048 0344 add r3, r3, r0 + 848 .LVL77: + 849 .loc 1 2071 7 discriminator 1 view .LVU254 + 850 .LBB7: + 851 .loc 1 2071 7 discriminator 1 view .LVU255 + 852 .loc 1 2071 7 discriminator 1 view .LVU256 + 853 .loc 1 2071 7 discriminator 1 view .LVU257 + 854 .loc 1 2071 7 discriminator 1 view .LVU258 + 855 004a B3F80224 ldrh r2, [r3, #1026] + 856 004e 92B2 uxth r2, r2 + 857 0050 22F4F842 bic r2, r2, #31744 + 858 0054 92B2 uxth r2, r2 + 859 0056 A3F80224 strh r2, [r3, #1026] @ movhi + 860 .loc 1 2071 7 discriminator 1 view .LVU259 + 861 005a B3F80224 ldrh r2, [r3, #1026] + 862 005e 6FEA4242 mvn r2, r2, lsl #17 + 863 0062 6FEA5242 mvn r2, r2, lsr #17 + 864 0066 92B2 uxth r2, r2 + 865 0068 A3F80224 strh r2, [r3, #1026] @ movhi + 866 .LVL78: + 867 .L59: + 868 .loc 1 2071 7 is_stmt 0 discriminator 1 view .LVU260 + 869 .LBE7: + 870 .LBE6: + 871 .loc 1 2071 7 is_stmt 1 discriminator 18 view .LVU261 + 872 .loc 1 2071 7 discriminator 18 view .LVU262 +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 873 .loc 1 2072 7 discriminator 18 view .LVU263 + 874 .LBB8: + 875 .loc 1 2072 7 discriminator 18 view .LVU264 + 876 006c 2A68 ldr r2, [r5] + 877 .LVL79: + 878 .loc 1 2072 7 discriminator 18 view .LVU265 + 879 .loc 1 2072 7 discriminator 18 view .LVU266 + 880 006e 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 881 0070 002B cmp r3, #0 + 882 0072 3DD1 bne .L60 + 883 .loc 1 2072 7 discriminator 1 view .LVU267 + 884 .LBB9: + 885 .loc 1 2072 7 discriminator 1 view .LVU268 + 886 .LVL80: + 887 .loc 1 2072 7 discriminator 1 view .LVU269 + 888 .loc 1 2072 7 discriminator 1 view .LVU270 + 889 0074 B2F85030 ldrh r3, [r2, #80] + 890 0078 12FA83F3 uxtah r3, r2, r3 + 891 .LVL81: + 892 .loc 1 2072 7 discriminator 1 view .LVU271 + 893 007c 2278 ldrb r2, [r4] @ zero_extendqisi2 + 894 .LVL82: + 895 .loc 1 2072 7 is_stmt 0 discriminator 1 view .LVU272 + 896 007e 03EBC203 add r3, r3, r2, lsl #3 + 897 .LVL83: + 898 .loc 1 2072 7 is_stmt 1 discriminator 1 view .LVU273 + ARM GAS /tmp/ccJPteqL.s page 56 + + + 899 .LBB10: + 900 .loc 1 2072 7 discriminator 1 view .LVU274 + 901 .loc 1 2072 7 discriminator 1 view .LVU275 + 902 .loc 1 2072 7 discriminator 1 view .LVU276 + 903 .loc 1 2072 7 discriminator 1 view .LVU277 + 904 0082 B3F80624 ldrh r2, [r3, #1030] + 905 0086 92B2 uxth r2, r2 + 906 0088 22F4F842 bic r2, r2, #31744 + 907 008c 92B2 uxth r2, r2 + 908 008e A3F80624 strh r2, [r3, #1030] @ movhi + 909 .LVL84: + 910 .loc 1 2072 7 discriminator 1 view .LVU278 + 911 0092 B3F80624 ldrh r2, [r3, #1030] + 912 0096 6FEA4242 mvn r2, r2, lsl #17 + 913 009a 6FEA5242 mvn r2, r2, lsr #17 + 914 009e 92B2 uxth r2, r2 + 915 00a0 A3F80624 strh r2, [r3, #1030] @ movhi + 916 .LVL85: + 917 .L61: + 918 .loc 1 2072 7 is_stmt 0 discriminator 1 view .LVU279 + 919 .LBE10: + 920 .LBE9: + 921 .LBE8: + 922 .loc 1 2072 7 is_stmt 1 discriminator 18 view .LVU280 +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* TX COMPLETE */ +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback(hpcd, ep->num); +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataInStageCallback(hpcd, ep->num); + 923 .loc 1 2078 7 discriminator 18 view .LVU281 + 924 00a4 2178 ldrb r1, [r4] @ zero_extendqisi2 + 925 00a6 2846 mov r0, r5 + 926 00a8 FFF7FEFF bl HAL_PCD_DataInStageCallback + 927 .LVL86: +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_RX) != 0U) + 928 .loc 1 2081 7 discriminator 18 view .LVU282 + 929 .loc 1 2081 10 is_stmt 0 discriminator 18 view .LVU283 + 930 00ac 16F4804F tst r6, #16384 + 931 00b0 40D0 beq .L62 +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); + 932 .loc 1 2083 9 is_stmt 1 discriminator 4 view .LVU284 + 933 .loc 1 2083 9 discriminator 4 view .LVU285 + 934 .loc 1 2083 9 discriminator 4 view .LVU286 + 935 .loc 1 2083 9 discriminator 4 view .LVU287 + 936 .LBB11: + 937 .loc 1 2083 9 discriminator 4 view .LVU288 + 938 .loc 1 2083 9 discriminator 4 view .LVU289 + 939 00b2 2A68 ldr r2, [r5] + 940 00b4 2178 ldrb r1, [r4] @ zero_extendqisi2 + 941 00b6 32F82130 ldrh r3, [r2, r1, lsl #2] + 942 00ba 9BB2 uxth r3, r3 + 943 00bc 23F4E043 bic r3, r3, #28672 + 944 00c0 23F07003 bic r3, r3, #112 + ARM GAS /tmp/ccJPteqL.s page 57 + + + 945 .LVL87: + 946 .loc 1 2083 9 discriminator 4 view .LVU290 + 947 00c4 43F44043 orr r3, r3, #49152 + 948 .LVL88: + 949 .loc 1 2083 9 is_stmt 0 discriminator 4 view .LVU291 + 950 00c8 43F08003 orr r3, r3, #128 + 951 00cc 22F82130 strh r3, [r2, r1, lsl #2] @ movhi + 952 00d0 30E0 b .L62 + 953 .LVL89: + 954 .L55: + 955 .loc 1 2083 9 discriminator 4 view .LVU292 + 956 .LBE11: +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 957 .loc 1 2065 7 is_stmt 1 view .LVU293 +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 958 .loc 1 2065 20 is_stmt 0 view .LVU294 + 959 00d2 0023 movs r3, #0 + 960 00d4 A361 str r3, [r4, #24] + 961 00d6 ACE7 b .L56 + 962 .L58: +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 963 .loc 1 2071 7 is_stmt 1 discriminator 2 view .LVU295 + 964 00d8 012B cmp r3, #1 + 965 00da C7D1 bne .L59 +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 966 .loc 1 2071 7 discriminator 16 view .LVU296 + 967 .LBB12: +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 968 .loc 1 2071 7 discriminator 16 view .LVU297 + 969 00dc 2A68 ldr r2, [r5] + 970 .LVL90: +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 971 .loc 1 2071 7 discriminator 16 view .LVU298 +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 972 .loc 1 2071 7 discriminator 16 view .LVU299 + 973 00de B2F85030 ldrh r3, [r2, #80] + 974 00e2 12FA83F3 uxtah r3, r2, r3 + 975 .LVL91: +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 976 .loc 1 2071 7 discriminator 16 view .LVU300 + 977 00e6 0344 add r3, r3, r0 + 978 .LVL92: +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 979 .loc 1 2071 7 discriminator 16 view .LVU301 + 980 00e8 0022 movs r2, #0 + 981 00ea A3F80224 strh r2, [r3, #1026] @ movhi + 982 00ee BDE7 b .L59 + 983 .LVL93: + 984 .L60: +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 985 .loc 1 2071 7 is_stmt 0 discriminator 16 view .LVU302 + 986 .LBE12: + 987 .LBB13: +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 988 .loc 1 2072 7 is_stmt 1 discriminator 2 view .LVU303 + 989 00f0 012B cmp r3, #1 + 990 00f2 D7D1 bne .L61 + ARM GAS /tmp/ccJPteqL.s page 58 + + +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 991 .loc 1 2072 7 discriminator 16 view .LVU304 + 992 00f4 B2F85030 ldrh r3, [r2, #80] + 993 00f8 12FA83F3 uxtah r3, r2, r3 + 994 .LVL94: +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 995 .loc 1 2072 7 discriminator 16 view .LVU305 + 996 00fc 2278 ldrb r2, [r4] @ zero_extendqisi2 + 997 00fe 03EBC203 add r3, r3, r2, lsl #3 + 998 .LVL95: +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 999 .loc 1 2072 7 discriminator 16 view .LVU306 + 1000 0102 0022 movs r2, #0 + 1001 0104 A3F80624 strh r2, [r3, #1030] @ movhi + 1002 0108 CCE7 b .L61 + 1003 .LVL96: + 1004 .L57: +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1005 .loc 1 2072 7 is_stmt 0 discriminator 16 view .LVU307 + 1006 .LBE13: +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else /* Transfer is not yet Done */ +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* need to Free USB Buff */ +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_RX) != 0U) + 1007 .loc 1 2089 7 is_stmt 1 view .LVU308 + 1008 .loc 1 2089 10 is_stmt 0 view .LVU309 + 1009 010a 16F4804F tst r6, #16384 + 1010 010e 0DD0 beq .L63 +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); + 1011 .loc 1 2091 9 is_stmt 1 discriminator 4 view .LVU310 + 1012 .loc 1 2091 9 discriminator 4 view .LVU311 + 1013 .loc 1 2091 9 discriminator 4 view .LVU312 + 1014 .loc 1 2091 9 discriminator 4 view .LVU313 + 1015 .LBB14: + 1016 .loc 1 2091 9 discriminator 4 view .LVU314 + 1017 .loc 1 2091 9 discriminator 4 view .LVU315 + 1018 0110 2868 ldr r0, [r5] + 1019 0112 30F82130 ldrh r3, [r0, r1, lsl #2] + 1020 0116 9BB2 uxth r3, r3 + 1021 0118 23F4E043 bic r3, r3, #28672 + 1022 011c 23F07003 bic r3, r3, #112 + 1023 .LVL97: + 1024 .loc 1 2091 9 discriminator 4 view .LVU316 + 1025 0120 43F44043 orr r3, r3, #49152 + 1026 .LVL98: + 1027 .loc 1 2091 9 is_stmt 0 discriminator 4 view .LVU317 + 1028 0124 43F08003 orr r3, r3, #128 + 1029 0128 20F82130 strh r3, [r0, r1, lsl #2] @ movhi + 1030 .LVL99: + 1031 .L63: + 1032 .loc 1 2091 9 discriminator 4 view .LVU318 + 1033 .LBE14: + 1034 .loc 1 2091 9 is_stmt 1 discriminator 6 view .LVU319 + 1035 .loc 1 2091 9 discriminator 6 view .LVU320 + ARM GAS /tmp/ccJPteqL.s page 59 + + +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Still there is data to Fill in the next Buffer */ +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_fill_db == 1U) + 1036 .loc 1 2095 7 discriminator 6 view .LVU321 + 1037 .loc 1 2095 13 is_stmt 0 discriminator 6 view .LVU322 + 1038 012c 94F82430 ldrb r3, [r4, #36] @ zero_extendqisi2 + 1039 .loc 1 2095 10 discriminator 6 view .LVU323 + 1040 0130 012B cmp r3, #1 + 1041 0132 12D0 beq .L91 + 1042 .LVL100: + 1043 .L62: +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += TxPctSize; +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Calculate the len of the new buffer to fill */ +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len_db >= ep->maxpacket) +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = ep->maxpacket; +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db -= len; +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else if (ep->xfer_len_db == 0U) +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = TxPctSize; +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = ep->xfer_len_db; +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = 0U; +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Write remaining Data to Buffer */ +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Set the Double buffer counter for pma buffer1 */ +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, len); +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Copy user buffer to USB PMA */ +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, (uint16_t)len); +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else /* Data Buffer1 ACK received */ +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* multi-packet on the NON control IN endpoint */ +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** TxPctSize = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len >= TxPctSize) +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len -= TxPctSize; +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = 0U; +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 60 + + +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Transfer is completed */ +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len == 0U) +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* TX COMPLETE */ +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->DataInStageCallback(hpcd, ep->num); +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #else +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_PCD_DataInStageCallback(hpcd, ep->num); +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* need to Free USB Buff */ +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_RX) == 0U) +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else /* Transfer is not yet Done */ +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* need to Free USB Buff */ +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if ((wEPVal & USB_EP_DTOG_RX) == 0U) +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Still there is data to Fill in the next Buffer */ +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_fill_db == 1U) +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += TxPctSize; +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Calculate the len of the new buffer to fill */ +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (ep->xfer_len_db >= ep->maxpacket) +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = ep->maxpacket; +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db -= len; +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else if (ep->xfer_len_db == 0U) +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = TxPctSize; +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** else +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = ep->xfer_len_db; +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = 0U; +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0; +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Set the Double buffer counter for pmabuffer1 */ +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, len); +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Copy the user buffer to USB PMA */ +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, (uint16_t)len); +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 61 + + +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /*enable endpoint IN*/ +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_TX_STATUS(hpcd->Instance, ep->num, USB_EP_TX_VALID); + 1044 .loc 1 2202 3 is_stmt 1 view .LVU324 + 1045 .LBB15: + 1046 .loc 1 2202 3 view .LVU325 + 1047 .loc 1 2202 3 view .LVU326 + 1048 0134 2A68 ldr r2, [r5] + 1049 0136 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1050 0138 32F82130 ldrh r3, [r2, r1, lsl #2] + 1051 013c 9BB2 uxth r3, r3 + 1052 013e 23F4E043 bic r3, r3, #28672 + 1053 0142 23F04003 bic r3, r3, #64 + 1054 .LVL101: + 1055 .loc 1 2202 3 view .LVU327 + 1056 .loc 1 2202 3 view .LVU328 + 1057 .loc 1 2202 3 view .LVU329 + 1058 .loc 1 2202 3 view .LVU330 + 1059 0146 83F03003 eor r3, r3, #48 + 1060 .LVL102: + 1061 .loc 1 2202 3 view .LVU331 + 1062 014a 43F40043 orr r3, r3, #32768 + 1063 .LVL103: + 1064 .loc 1 2202 3 is_stmt 0 view .LVU332 + 1065 014e 43F08003 orr r3, r3, #128 + 1066 0152 22F82130 strh r3, [r2, r1, lsl #2] @ movhi + 1067 .LBE15: + 1068 .loc 1 2202 3 is_stmt 1 view .LVU333 +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 1069 .loc 1 2204 3 view .LVU334 +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1070 .loc 1 2205 1 is_stmt 0 view .LVU335 + 1071 0156 0020 movs r0, #0 + 1072 0158 70BD pop {r4, r5, r6, pc} + 1073 .LVL104: + 1074 .L91: +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 1075 .loc 1 2097 9 is_stmt 1 view .LVU336 +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 1076 .loc 1 2097 11 is_stmt 0 view .LVU337 + 1077 015a 6369 ldr r3, [r4, #20] +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 1078 .loc 1 2097 23 view .LVU338 + 1079 015c 1344 add r3, r3, r2 + 1080 015e 6361 str r3, [r4, #20] +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1081 .loc 1 2098 9 is_stmt 1 view .LVU339 +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1082 .loc 1 2098 11 is_stmt 0 view .LVU340 + 1083 0160 E369 ldr r3, [r4, #28] +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1084 .loc 1 2098 24 view .LVU341 + 1085 0162 1344 add r3, r3, r2 + 1086 0164 E361 str r3, [r4, #28] + ARM GAS /tmp/ccJPteqL.s page 62 + + +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1087 .loc 1 2101 9 is_stmt 1 view .LVU342 +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1088 .loc 1 2101 15 is_stmt 0 view .LVU343 + 1089 0166 216A ldr r1, [r4, #32] +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1090 .loc 1 2101 34 view .LVU344 + 1091 0168 2369 ldr r3, [r4, #16] +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1092 .loc 1 2101 12 view .LVU345 + 1093 016a 9942 cmp r1, r3 + 1094 016c 1BD3 bcc .L64 +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db -= len; + 1095 .loc 1 2103 11 is_stmt 1 view .LVU346 + 1096 .LVL105: +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1097 .loc 1 2104 11 view .LVU347 +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1098 .loc 1 2104 27 is_stmt 0 view .LVU348 + 1099 016e C91A subs r1, r1, r3 + 1100 0170 2162 str r1, [r4, #32] + 1101 .L65: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1102 .loc 1 2120 9 is_stmt 1 view .LVU349 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1103 .loc 1 2120 9 view .LVU350 + 1104 0172 6278 ldrb r2, [r4, #1] @ zero_extendqisi2 + 1105 .LVL106: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1106 .loc 1 2120 9 is_stmt 0 view .LVU351 + 1107 0174 002A cmp r2, #0 + 1108 0176 3FD1 bne .L67 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1109 .loc 1 2120 9 is_stmt 1 discriminator 1 view .LVU352 + 1110 .LBB16: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1111 .loc 1 2120 9 discriminator 1 view .LVU353 + 1112 0178 2968 ldr r1, [r5] + 1113 .LVL107: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1114 .loc 1 2120 9 discriminator 1 view .LVU354 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1115 .loc 1 2120 9 discriminator 1 view .LVU355 + 1116 017a B1F85020 ldrh r2, [r1, #80] + 1117 017e 11FA82F2 uxtah r2, r1, r2 + 1118 .LVL108: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1119 .loc 1 2120 9 discriminator 1 view .LVU356 + 1120 0182 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1121 0184 02EBC102 add r2, r2, r1, lsl #3 + 1122 .LVL109: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1123 .loc 1 2120 9 discriminator 1 view .LVU357 + 1124 .LBB17: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1125 .loc 1 2120 9 discriminator 1 view .LVU358 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 63 + + + 1126 .loc 1 2120 9 discriminator 1 view .LVU359 + 1127 0188 3E2B cmp r3, #62 + 1128 018a 18D9 bls .L68 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1129 .loc 1 2120 9 discriminator 3 view .LVU360 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1130 .loc 1 2120 9 discriminator 3 view .LVU361 + 1131 018c 5909 lsrs r1, r3, #5 + 1132 .LVL110: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1133 .loc 1 2120 9 discriminator 3 view .LVU362 + 1134 018e 13F01F0F tst r3, #31 + 1135 0192 00D1 bne .L69 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1136 .loc 1 2120 9 discriminator 5 view .LVU363 + 1137 0194 0139 subs r1, r1, #1 + 1138 .LVL111: + 1139 .L69: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1140 .loc 1 2120 9 discriminator 7 view .LVU364 + 1141 0196 6FEAC161 mvn r1, r1, lsl #27 + 1142 .LVL112: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1143 .loc 1 2120 9 is_stmt 0 discriminator 7 view .LVU365 + 1144 019a 6FEA5141 mvn r1, r1, lsr #17 + 1145 019e 89B2 uxth r1, r1 + 1146 01a0 A2F80214 strh r1, [r2, #1026] @ movhi +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1147 .loc 1 2120 9 is_stmt 1 discriminator 7 view .LVU366 + 1148 01a4 2AE0 b .L70 + 1149 .LVL113: + 1150 .L64: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1151 .loc 1 2120 9 is_stmt 0 discriminator 7 view .LVU367 + 1152 .LBE17: + 1153 .LBE16: +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1154 .loc 1 2106 14 is_stmt 1 view .LVU368 +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1155 .loc 1 2106 17 is_stmt 0 view .LVU369 + 1156 01a6 21B9 cbnz r1, .L66 +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; + 1157 .loc 1 2108 11 is_stmt 1 view .LVU370 + 1158 .LVL114: +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1159 .loc 1 2109 11 view .LVU371 +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1160 .loc 1 2109 28 is_stmt 0 view .LVU372 + 1161 01a8 0023 movs r3, #0 + 1162 01aa 84F82430 strb r3, [r4, #36] +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; + 1163 .loc 1 2108 15 view .LVU373 + 1164 01ae 1346 mov r3, r2 + 1165 01b0 DFE7 b .L65 + 1166 .LVL115: + 1167 .L66: +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = ep->xfer_len_db; + ARM GAS /tmp/ccJPteqL.s page 64 + + + 1168 .loc 1 2113 11 is_stmt 1 view .LVU374 +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** len = ep->xfer_len_db; + 1169 .loc 1 2113 28 is_stmt 0 view .LVU375 + 1170 01b2 0023 movs r3, #0 + 1171 01b4 84F82430 strb r3, [r4, #36] +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = 0U; + 1172 .loc 1 2114 11 is_stmt 1 view .LVU376 + 1173 .LVL116: +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1174 .loc 1 2115 11 view .LVU377 +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1175 .loc 1 2115 27 is_stmt 0 view .LVU378 + 1176 01b8 2362 str r3, [r4, #32] +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = 0U; + 1177 .loc 1 2114 15 view .LVU379 + 1178 01ba 0B46 mov r3, r1 + 1179 01bc D9E7 b .L65 + 1180 .LVL117: + 1181 .L68: + 1182 .LBB19: + 1183 .LBB18: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1184 .loc 1 2120 9 is_stmt 1 discriminator 4 view .LVU380 + 1185 01be 8BB9 cbnz r3, .L71 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1186 .loc 1 2120 9 discriminator 9 view .LVU381 + 1187 01c0 B2F80214 ldrh r1, [r2, #1026] + 1188 01c4 89B2 uxth r1, r1 + 1189 01c6 21F4F841 bic r1, r1, #31744 + 1190 01ca 89B2 uxth r1, r1 + 1191 01cc A2F80214 strh r1, [r2, #1026] @ movhi +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1192 .loc 1 2120 9 discriminator 9 view .LVU382 + 1193 01d0 B2F80214 ldrh r1, [r2, #1026] + 1194 01d4 6FEA4141 mvn r1, r1, lsl #17 + 1195 01d8 6FEA5141 mvn r1, r1, lsr #17 + 1196 01dc 89B2 uxth r1, r1 + 1197 01de A2F80214 strh r1, [r2, #1026] @ movhi + 1198 01e2 0BE0 b .L70 + 1199 .L71: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1200 .loc 1 2120 9 discriminator 10 view .LVU383 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1201 .loc 1 2120 9 discriminator 10 view .LVU384 + 1202 01e4 5908 lsrs r1, r3, #1 + 1203 .LVL118: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1204 .loc 1 2120 9 discriminator 10 view .LVU385 + 1205 01e6 13F0010F tst r3, #1 + 1206 01ea 00D0 beq .L72 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1207 .loc 1 2120 9 discriminator 12 view .LVU386 + 1208 01ec 0131 adds r1, r1, #1 + 1209 .LVL119: + 1210 .L72: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1211 .loc 1 2120 9 discriminator 14 view .LVU387 + ARM GAS /tmp/ccJPteqL.s page 65 + + + 1212 01ee 8902 lsls r1, r1, #10 + 1213 .LVL120: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1214 .loc 1 2120 9 is_stmt 0 discriminator 14 view .LVU388 + 1215 01f0 89B2 uxth r1, r1 + 1216 01f2 A2F80214 strh r1, [r2, #1026] @ movhi + 1217 01f6 01E0 b .L70 + 1218 .LVL121: + 1219 .L67: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1220 .loc 1 2120 9 discriminator 14 view .LVU389 + 1221 .LBE18: + 1222 .LBE19: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1223 .loc 1 2120 9 is_stmt 1 discriminator 2 view .LVU390 + 1224 01f8 012A cmp r2, #1 + 1225 01fa 06D0 beq .L92 + 1226 .L70: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1227 .loc 1 2120 9 discriminator 18 view .LVU391 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1228 .loc 1 2120 9 discriminator 18 view .LVU392 +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1229 .loc 1 2123 9 discriminator 18 view .LVU393 + 1230 01fc 9BB2 uxth r3, r3 + 1231 .LVL122: +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1232 .loc 1 2123 9 is_stmt 0 discriminator 18 view .LVU394 + 1233 01fe 2289 ldrh r2, [r4, #8] + 1234 0200 6169 ldr r1, [r4, #20] + 1235 0202 2868 ldr r0, [r5] + 1236 0204 FFF7FEFF bl USB_WritePMA + 1237 .LVL123: + 1238 0208 94E7 b .L62 + 1239 .LVL124: + 1240 .L92: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1241 .loc 1 2120 9 is_stmt 1 discriminator 16 view .LVU395 + 1242 .LBB20: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1243 .loc 1 2120 9 discriminator 16 view .LVU396 + 1244 020a 2968 ldr r1, [r5] + 1245 .LVL125: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1246 .loc 1 2120 9 discriminator 16 view .LVU397 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1247 .loc 1 2120 9 discriminator 16 view .LVU398 + 1248 020c B1F85020 ldrh r2, [r1, #80] + 1249 0210 11FA82F2 uxtah r2, r1, r2 + 1250 .LVL126: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1251 .loc 1 2120 9 discriminator 16 view .LVU399 + 1252 0214 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1253 0216 02EBC102 add r2, r2, r1, lsl #3 + 1254 .LVL127: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1255 .loc 1 2120 9 discriminator 16 view .LVU400 + ARM GAS /tmp/ccJPteqL.s page 66 + + + 1256 021a 99B2 uxth r1, r3 + 1257 021c A2F80214 strh r1, [r2, #1026] @ movhi + 1258 0220 ECE7 b .L70 + 1259 .LVL128: + 1260 .L54: +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1261 .loc 1 2120 9 is_stmt 0 discriminator 16 view .LVU401 + 1262 .LBE20: +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1263 .loc 1 2130 5 is_stmt 1 view .LVU402 +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1264 .loc 1 2130 27 is_stmt 0 view .LVU403 + 1265 0222 0268 ldr r2, [r0] + 1266 .LVL129: +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1267 .loc 1 2130 27 view .LVU404 + 1268 0224 B2F85030 ldrh r3, [r2, #80] + 1269 0228 0978 ldrb r1, [r1] @ zero_extendqisi2 + 1270 .LVL130: +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1271 .loc 1 2130 27 view .LVU405 + 1272 022a C800 lsls r0, r1, #3 + 1273 .LVL131: +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1274 .loc 1 2130 27 view .LVU406 + 1275 022c 10FA83F3 uxtah r3, r0, r3 + 1276 0230 1344 add r3, r3, r2 + 1277 0232 B3F80624 ldrh r2, [r3, #1030] +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1278 .loc 1 2130 15 view .LVU407 + 1279 0236 C2F30902 ubfx r2, r2, #0, #10 + 1280 .LVL132: +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1281 .loc 1 2132 5 is_stmt 1 view .LVU408 +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1282 .loc 1 2132 11 is_stmt 0 view .LVU409 + 1283 023a A369 ldr r3, [r4, #24] +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1284 .loc 1 2132 8 view .LVU410 + 1285 023c 9342 cmp r3, r2 + 1286 023e 52D3 bcc .L73 +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1287 .loc 1 2134 7 is_stmt 1 view .LVU411 +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1288 .loc 1 2134 20 is_stmt 0 view .LVU412 + 1289 0240 9B1A subs r3, r3, r2 + 1290 0242 A361 str r3, [r4, #24] + 1291 .L74: +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1292 .loc 1 2142 5 is_stmt 1 view .LVU413 +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1293 .loc 1 2142 11 is_stmt 0 view .LVU414 + 1294 0244 A369 ldr r3, [r4, #24] +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1295 .loc 1 2142 8 view .LVU415 + 1296 0246 002B cmp r3, #0 + 1297 0248 69D1 bne .L75 + ARM GAS /tmp/ccJPteqL.s page 67 + + +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1298 .loc 1 2144 7 is_stmt 1 view .LVU416 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1299 .loc 1 2144 7 view .LVU417 + 1300 024a 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 1301 024c 002B cmp r3, #0 + 1302 024e 4DD1 bne .L76 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1303 .loc 1 2144 7 discriminator 1 view .LVU418 + 1304 .LBB21: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1305 .loc 1 2144 7 discriminator 1 view .LVU419 + 1306 0250 2A68 ldr r2, [r5] + 1307 .LVL133: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1308 .loc 1 2144 7 discriminator 1 view .LVU420 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1309 .loc 1 2144 7 discriminator 1 view .LVU421 + 1310 0252 B2F85030 ldrh r3, [r2, #80] + 1311 0256 12FA83F3 uxtah r3, r2, r3 + 1312 .LVL134: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1313 .loc 1 2144 7 discriminator 1 view .LVU422 + 1314 025a 0344 add r3, r3, r0 + 1315 .LVL135: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1316 .loc 1 2144 7 discriminator 1 view .LVU423 + 1317 .LBB22: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1318 .loc 1 2144 7 discriminator 1 view .LVU424 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1319 .loc 1 2144 7 discriminator 1 view .LVU425 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1320 .loc 1 2144 7 discriminator 1 view .LVU426 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1321 .loc 1 2144 7 discriminator 1 view .LVU427 + 1322 025c B3F80224 ldrh r2, [r3, #1026] + 1323 0260 92B2 uxth r2, r2 + 1324 0262 22F4F842 bic r2, r2, #31744 + 1325 0266 92B2 uxth r2, r2 + 1326 0268 A3F80224 strh r2, [r3, #1026] @ movhi +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1327 .loc 1 2144 7 discriminator 1 view .LVU428 + 1328 026c B3F80224 ldrh r2, [r3, #1026] + 1329 0270 6FEA4242 mvn r2, r2, lsl #17 + 1330 0274 6FEA5242 mvn r2, r2, lsr #17 + 1331 0278 92B2 uxth r2, r2 + 1332 027a A3F80224 strh r2, [r3, #1026] @ movhi + 1333 .LVL136: + 1334 .L77: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1335 .loc 1 2144 7 is_stmt 0 discriminator 1 view .LVU429 + 1336 .LBE22: + 1337 .LBE21: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1338 .loc 1 2144 7 is_stmt 1 discriminator 18 view .LVU430 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + ARM GAS /tmp/ccJPteqL.s page 68 + + + 1339 .loc 1 2144 7 discriminator 18 view .LVU431 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1340 .loc 1 2145 7 discriminator 18 view .LVU432 + 1341 .LBB23: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1342 .loc 1 2145 7 discriminator 18 view .LVU433 + 1343 027e 2A68 ldr r2, [r5] + 1344 .LVL137: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1345 .loc 1 2145 7 discriminator 18 view .LVU434 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1346 .loc 1 2145 7 discriminator 18 view .LVU435 + 1347 0280 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 1348 0282 002B cmp r3, #0 + 1349 0284 3ED1 bne .L78 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1350 .loc 1 2145 7 discriminator 1 view .LVU436 + 1351 .LBB24: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1352 .loc 1 2145 7 discriminator 1 view .LVU437 + 1353 .LVL138: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1354 .loc 1 2145 7 discriminator 1 view .LVU438 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1355 .loc 1 2145 7 discriminator 1 view .LVU439 + 1356 0286 B2F85030 ldrh r3, [r2, #80] + 1357 028a 12FA83F3 uxtah r3, r2, r3 + 1358 .LVL139: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1359 .loc 1 2145 7 discriminator 1 view .LVU440 + 1360 028e 2278 ldrb r2, [r4] @ zero_extendqisi2 + 1361 .LVL140: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1362 .loc 1 2145 7 is_stmt 0 discriminator 1 view .LVU441 + 1363 0290 03EBC203 add r3, r3, r2, lsl #3 + 1364 .LVL141: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1365 .loc 1 2145 7 is_stmt 1 discriminator 1 view .LVU442 + 1366 .LBB25: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1367 .loc 1 2145 7 discriminator 1 view .LVU443 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1368 .loc 1 2145 7 discriminator 1 view .LVU444 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1369 .loc 1 2145 7 discriminator 1 view .LVU445 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1370 .loc 1 2145 7 discriminator 1 view .LVU446 + 1371 0294 B3F80624 ldrh r2, [r3, #1030] + 1372 0298 92B2 uxth r2, r2 + 1373 029a 22F4F842 bic r2, r2, #31744 + 1374 029e 92B2 uxth r2, r2 + 1375 02a0 A3F80624 strh r2, [r3, #1030] @ movhi + 1376 .LVL142: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1377 .loc 1 2145 7 discriminator 1 view .LVU447 + 1378 02a4 B3F80624 ldrh r2, [r3, #1030] + 1379 02a8 6FEA4242 mvn r2, r2, lsl #17 + ARM GAS /tmp/ccJPteqL.s page 69 + + + 1380 02ac 6FEA5242 mvn r2, r2, lsr #17 + 1381 02b0 92B2 uxth r2, r2 + 1382 02b2 A3F80624 strh r2, [r3, #1030] @ movhi + 1383 .LVL143: + 1384 .L79: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1385 .loc 1 2145 7 is_stmt 0 discriminator 1 view .LVU448 + 1386 .LBE25: + 1387 .LBE24: + 1388 .LBE23: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1389 .loc 1 2145 7 is_stmt 1 discriminator 18 view .LVU449 +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 1390 .loc 1 2151 7 discriminator 18 view .LVU450 + 1391 02b6 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1392 02b8 2846 mov r0, r5 + 1393 02ba FFF7FEFF bl HAL_PCD_DataInStageCallback + 1394 .LVL144: +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1395 .loc 1 2155 7 discriminator 18 view .LVU451 +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1396 .loc 1 2155 10 is_stmt 0 discriminator 18 view .LVU452 + 1397 02be 16F4804F tst r6, #16384 + 1398 02c2 7FF437AF bne .L62 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1399 .loc 1 2157 9 is_stmt 1 discriminator 4 view .LVU453 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1400 .loc 1 2157 9 discriminator 4 view .LVU454 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1401 .loc 1 2157 9 discriminator 4 view .LVU455 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1402 .loc 1 2157 9 discriminator 4 view .LVU456 + 1403 .LBB26: +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1404 .loc 1 2157 9 discriminator 4 view .LVU457 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1405 .loc 1 2157 9 discriminator 4 view .LVU458 + 1406 02c6 2A68 ldr r2, [r5] + 1407 02c8 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1408 02ca 32F82130 ldrh r3, [r2, r1, lsl #2] + 1409 02ce 9BB2 uxth r3, r3 + 1410 02d0 23F4E043 bic r3, r3, #28672 + 1411 02d4 23F07003 bic r3, r3, #112 + 1412 .LVL145: +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1413 .loc 1 2157 9 discriminator 4 view .LVU459 + 1414 02d8 43F44043 orr r3, r3, #49152 + 1415 .LVL146: +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1416 .loc 1 2157 9 is_stmt 0 discriminator 4 view .LVU460 + 1417 02dc 43F08003 orr r3, r3, #128 + 1418 02e0 22F82130 strh r3, [r2, r1, lsl #2] @ movhi + 1419 02e4 26E7 b .L62 + 1420 .LVL147: + 1421 .L73: +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1422 .loc 1 2157 9 discriminator 4 view .LVU461 + ARM GAS /tmp/ccJPteqL.s page 70 + + + 1423 .LBE26: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1424 .loc 1 2138 7 is_stmt 1 view .LVU462 +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1425 .loc 1 2138 20 is_stmt 0 view .LVU463 + 1426 02e6 0023 movs r3, #0 + 1427 02e8 A361 str r3, [r4, #24] + 1428 02ea ABE7 b .L74 + 1429 .L76: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1430 .loc 1 2144 7 is_stmt 1 discriminator 2 view .LVU464 + 1431 02ec 012B cmp r3, #1 + 1432 02ee C6D1 bne .L77 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1433 .loc 1 2144 7 discriminator 16 view .LVU465 + 1434 .LBB27: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1435 .loc 1 2144 7 discriminator 16 view .LVU466 + 1436 02f0 2A68 ldr r2, [r5] + 1437 .LVL148: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1438 .loc 1 2144 7 discriminator 16 view .LVU467 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1439 .loc 1 2144 7 discriminator 16 view .LVU468 + 1440 02f2 B2F85030 ldrh r3, [r2, #80] + 1441 02f6 12FA83F3 uxtah r3, r2, r3 + 1442 .LVL149: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1443 .loc 1 2144 7 discriminator 16 view .LVU469 + 1444 02fa 0344 add r3, r3, r0 + 1445 .LVL150: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1446 .loc 1 2144 7 discriminator 16 view .LVU470 + 1447 02fc 0022 movs r2, #0 + 1448 02fe A3F80224 strh r2, [r3, #1026] @ movhi + 1449 0302 BCE7 b .L77 + 1450 .LVL151: + 1451 .L78: +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); + 1452 .loc 1 2144 7 is_stmt 0 discriminator 16 view .LVU471 + 1453 .LBE27: + 1454 .LBB28: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1455 .loc 1 2145 7 is_stmt 1 discriminator 2 view .LVU472 + 1456 0304 012B cmp r3, #1 + 1457 0306 D6D1 bne .L79 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1458 .loc 1 2145 7 discriminator 16 view .LVU473 + 1459 0308 B2F85030 ldrh r3, [r2, #80] + 1460 030c 12FA83F3 uxtah r3, r2, r3 + 1461 .LVL152: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1462 .loc 1 2145 7 discriminator 16 view .LVU474 + 1463 0310 2278 ldrb r2, [r4] @ zero_extendqisi2 + 1464 0312 03EBC203 add r3, r3, r2, lsl #3 + 1465 .LVL153: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 71 + + + 1466 .loc 1 2145 7 discriminator 16 view .LVU475 + 1467 0316 0022 movs r2, #0 + 1468 0318 A3F80624 strh r2, [r3, #1030] @ movhi + 1469 031c CBE7 b .L79 + 1470 .LVL154: + 1471 .L75: +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1472 .loc 1 2145 7 is_stmt 0 discriminator 16 view .LVU476 + 1473 .LBE28: +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1474 .loc 1 2163 7 is_stmt 1 view .LVU477 +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1475 .loc 1 2163 10 is_stmt 0 view .LVU478 + 1476 031e 16F4804F tst r6, #16384 + 1477 0322 0DD1 bne .L80 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1478 .loc 1 2165 9 is_stmt 1 discriminator 4 view .LVU479 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1479 .loc 1 2165 9 discriminator 4 view .LVU480 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1480 .loc 1 2165 9 discriminator 4 view .LVU481 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1481 .loc 1 2165 9 discriminator 4 view .LVU482 + 1482 .LBB29: +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1483 .loc 1 2165 9 discriminator 4 view .LVU483 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1484 .loc 1 2165 9 discriminator 4 view .LVU484 + 1485 0324 2868 ldr r0, [r5] + 1486 0326 30F82130 ldrh r3, [r0, r1, lsl #2] + 1487 032a 9BB2 uxth r3, r3 + 1488 032c 23F4E043 bic r3, r3, #28672 + 1489 0330 23F07003 bic r3, r3, #112 + 1490 .LVL155: +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1491 .loc 1 2165 9 discriminator 4 view .LVU485 + 1492 0334 43F44043 orr r3, r3, #49152 + 1493 .LVL156: +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1494 .loc 1 2165 9 is_stmt 0 discriminator 4 view .LVU486 + 1495 0338 43F08003 orr r3, r3, #128 + 1496 033c 20F82130 strh r3, [r0, r1, lsl #2] @ movhi + 1497 .LVL157: + 1498 .L80: +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1499 .loc 1 2165 9 discriminator 4 view .LVU487 + 1500 .LBE29: +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1501 .loc 1 2165 9 is_stmt 1 discriminator 6 view .LVU488 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1502 .loc 1 2165 9 discriminator 6 view .LVU489 +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1503 .loc 1 2169 7 discriminator 6 view .LVU490 +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1504 .loc 1 2169 13 is_stmt 0 discriminator 6 view .LVU491 + 1505 0340 94F82430 ldrb r3, [r4, #36] @ zero_extendqisi2 +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 72 + + + 1506 .loc 1 2169 10 discriminator 6 view .LVU492 + 1507 0344 012B cmp r3, #1 + 1508 0346 7FF4F5AE bne .L62 +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 1509 .loc 1 2171 9 is_stmt 1 view .LVU493 +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 1510 .loc 1 2171 11 is_stmt 0 view .LVU494 + 1511 034a 6369 ldr r3, [r4, #20] +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 1512 .loc 1 2171 23 view .LVU495 + 1513 034c 1344 add r3, r3, r2 + 1514 034e 6361 str r3, [r4, #20] +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1515 .loc 1 2172 9 is_stmt 1 view .LVU496 +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1516 .loc 1 2172 11 is_stmt 0 view .LVU497 + 1517 0350 E369 ldr r3, [r4, #28] +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1518 .loc 1 2172 24 view .LVU498 + 1519 0352 1344 add r3, r3, r2 + 1520 0354 E361 str r3, [r4, #28] +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1521 .loc 1 2175 9 is_stmt 1 view .LVU499 +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1522 .loc 1 2175 15 is_stmt 0 view .LVU500 + 1523 0356 216A ldr r1, [r4, #32] +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1524 .loc 1 2175 34 view .LVU501 + 1525 0358 2369 ldr r3, [r4, #16] +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1526 .loc 1 2175 12 view .LVU502 + 1527 035a 9942 cmp r1, r3 + 1528 035c 1BD3 bcc .L81 +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db -= len; + 1529 .loc 1 2177 11 is_stmt 1 view .LVU503 + 1530 .LVL158: +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1531 .loc 1 2178 11 view .LVU504 +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1532 .loc 1 2178 27 is_stmt 0 view .LVU505 + 1533 035e C91A subs r1, r1, r3 + 1534 0360 2162 str r1, [r4, #32] + 1535 .L82: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1536 .loc 1 2193 9 is_stmt 1 view .LVU506 + 1537 .LBB30: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1538 .loc 1 2193 9 view .LVU507 + 1539 0362 2968 ldr r1, [r5] + 1540 .LVL159: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1541 .loc 1 2193 9 view .LVU508 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1542 .loc 1 2193 9 view .LVU509 + 1543 0364 6278 ldrb r2, [r4, #1] @ zero_extendqisi2 + 1544 .LVL160: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 73 + + + 1545 .loc 1 2193 9 is_stmt 0 view .LVU510 + 1546 0366 002A cmp r2, #0 + 1547 0368 3ED1 bne .L84 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1548 .loc 1 2193 9 is_stmt 1 discriminator 1 view .LVU511 + 1549 .LBB31: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1550 .loc 1 2193 9 discriminator 1 view .LVU512 + 1551 .LVL161: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1552 .loc 1 2193 9 discriminator 1 view .LVU513 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1553 .loc 1 2193 9 discriminator 1 view .LVU514 + 1554 036a B1F85020 ldrh r2, [r1, #80] + 1555 036e 11FA82F2 uxtah r2, r1, r2 + 1556 .LVL162: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1557 .loc 1 2193 9 discriminator 1 view .LVU515 + 1558 0372 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1559 .LVL163: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1560 .loc 1 2193 9 is_stmt 0 discriminator 1 view .LVU516 + 1561 0374 02EBC102 add r2, r2, r1, lsl #3 + 1562 .LVL164: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1563 .loc 1 2193 9 is_stmt 1 discriminator 1 view .LVU517 + 1564 .LBB32: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1565 .loc 1 2193 9 discriminator 1 view .LVU518 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1566 .loc 1 2193 9 discriminator 1 view .LVU519 + 1567 0378 3E2B cmp r3, #62 + 1568 037a 18D9 bls .L85 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1569 .loc 1 2193 9 discriminator 3 view .LVU520 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1570 .loc 1 2193 9 discriminator 3 view .LVU521 + 1571 037c 5909 lsrs r1, r3, #5 + 1572 .LVL165: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1573 .loc 1 2193 9 discriminator 3 view .LVU522 + 1574 037e 13F01F0F tst r3, #31 + 1575 0382 00D1 bne .L86 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1576 .loc 1 2193 9 discriminator 5 view .LVU523 + 1577 0384 0139 subs r1, r1, #1 + 1578 .LVL166: + 1579 .L86: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1580 .loc 1 2193 9 discriminator 7 view .LVU524 + 1581 0386 6FEAC161 mvn r1, r1, lsl #27 + 1582 .LVL167: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1583 .loc 1 2193 9 is_stmt 0 discriminator 7 view .LVU525 + 1584 038a 6FEA5141 mvn r1, r1, lsr #17 + 1585 038e 89B2 uxth r1, r1 + 1586 0390 A2F80614 strh r1, [r2, #1030] @ movhi + ARM GAS /tmp/ccJPteqL.s page 74 + + + 1587 .LVL168: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1588 .loc 1 2193 9 is_stmt 1 discriminator 7 view .LVU526 + 1589 0394 2AE0 b .L87 + 1590 .LVL169: + 1591 .L81: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1592 .loc 1 2193 9 is_stmt 0 discriminator 7 view .LVU527 + 1593 .LBE32: + 1594 .LBE31: + 1595 .LBE30: +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1596 .loc 1 2180 14 is_stmt 1 view .LVU528 +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1597 .loc 1 2180 17 is_stmt 0 view .LVU529 + 1598 0396 21B9 cbnz r1, .L83 +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; + 1599 .loc 1 2182 11 is_stmt 1 view .LVU530 + 1600 .LVL170: +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1601 .loc 1 2183 11 view .LVU531 +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1602 .loc 1 2183 28 is_stmt 0 view .LVU532 + 1603 0398 0023 movs r3, #0 + 1604 039a 84F82430 strb r3, [r4, #36] +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0U; + 1605 .loc 1 2182 15 view .LVU533 + 1606 039e 1346 mov r3, r2 + 1607 03a0 DFE7 b .L82 + 1608 .LVL171: + 1609 .L83: +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = 0U; + 1610 .loc 1 2187 11 is_stmt 1 view .LVU534 +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0; + 1611 .loc 1 2188 11 view .LVU535 +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 0; + 1612 .loc 1 2188 27 is_stmt 0 view .LVU536 + 1613 03a2 0023 movs r3, #0 + 1614 03a4 2362 str r3, [r4, #32] +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1615 .loc 1 2189 11 is_stmt 1 view .LVU537 +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1616 .loc 1 2189 28 is_stmt 0 view .LVU538 + 1617 03a6 84F82430 strb r3, [r4, #36] +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = 0U; + 1618 .loc 1 2187 15 view .LVU539 + 1619 03aa 0B46 mov r3, r1 + 1620 03ac D9E7 b .L82 + 1621 .LVL172: + 1622 .L85: + 1623 .LBB35: + 1624 .LBB34: + 1625 .LBB33: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1626 .loc 1 2193 9 is_stmt 1 discriminator 4 view .LVU540 + 1627 03ae 8BB9 cbnz r3, .L88 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 75 + + + 1628 .loc 1 2193 9 discriminator 9 view .LVU541 + 1629 03b0 B2F80614 ldrh r1, [r2, #1030] + 1630 03b4 89B2 uxth r1, r1 + 1631 03b6 21F4F841 bic r1, r1, #31744 + 1632 03ba 89B2 uxth r1, r1 + 1633 03bc A2F80614 strh r1, [r2, #1030] @ movhi + 1634 .LVL173: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1635 .loc 1 2193 9 discriminator 9 view .LVU542 + 1636 03c0 B2F80614 ldrh r1, [r2, #1030] + 1637 03c4 6FEA4141 mvn r1, r1, lsl #17 + 1638 03c8 6FEA5141 mvn r1, r1, lsr #17 + 1639 03cc 89B2 uxth r1, r1 + 1640 03ce A2F80614 strh r1, [r2, #1030] @ movhi + 1641 03d2 0BE0 b .L87 + 1642 .LVL174: + 1643 .L88: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1644 .loc 1 2193 9 discriminator 10 view .LVU543 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1645 .loc 1 2193 9 discriminator 10 view .LVU544 + 1646 03d4 5908 lsrs r1, r3, #1 + 1647 .LVL175: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1648 .loc 1 2193 9 discriminator 10 view .LVU545 + 1649 03d6 13F0010F tst r3, #1 + 1650 03da 00D0 beq .L89 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1651 .loc 1 2193 9 discriminator 12 view .LVU546 + 1652 03dc 0131 adds r1, r1, #1 + 1653 .LVL176: + 1654 .L89: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1655 .loc 1 2193 9 discriminator 14 view .LVU547 + 1656 03de 8902 lsls r1, r1, #10 + 1657 .LVL177: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1658 .loc 1 2193 9 is_stmt 0 discriminator 14 view .LVU548 + 1659 03e0 89B2 uxth r1, r1 + 1660 03e2 A2F80614 strh r1, [r2, #1030] @ movhi + 1661 .LVL178: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1662 .loc 1 2193 9 discriminator 14 view .LVU549 + 1663 03e6 01E0 b .L87 + 1664 .LVL179: + 1665 .L84: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1666 .loc 1 2193 9 discriminator 14 view .LVU550 + 1667 .LBE33: + 1668 .LBE34: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1669 .loc 1 2193 9 is_stmt 1 discriminator 2 view .LVU551 + 1670 03e8 012A cmp r2, #1 + 1671 03ea 06D0 beq .L93 + 1672 .LVL180: + 1673 .L87: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 76 + + + 1674 .loc 1 2193 9 is_stmt 0 discriminator 2 view .LVU552 + 1675 .LBE35: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1676 .loc 1 2193 9 is_stmt 1 discriminator 18 view .LVU553 +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1677 .loc 1 2196 9 discriminator 18 view .LVU554 + 1678 03ec 9BB2 uxth r3, r3 + 1679 .LVL181: +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1680 .loc 1 2196 9 is_stmt 0 discriminator 18 view .LVU555 + 1681 03ee 6289 ldrh r2, [r4, #10] + 1682 03f0 6169 ldr r1, [r4, #20] + 1683 03f2 2868 ldr r0, [r5] + 1684 03f4 FFF7FEFF bl USB_WritePMA + 1685 .LVL182: + 1686 03f8 9CE6 b .L62 + 1687 .LVL183: + 1688 .L93: + 1689 .LBB36: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1690 .loc 1 2193 9 is_stmt 1 discriminator 16 view .LVU556 + 1691 03fa B1F85020 ldrh r2, [r1, #80] + 1692 03fe 11FA82F2 uxtah r2, r1, r2 + 1693 .LVL184: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1694 .loc 1 2193 9 discriminator 16 view .LVU557 + 1695 0402 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1696 0404 02EBC102 add r2, r2, r1, lsl #3 + 1697 .LVL185: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1698 .loc 1 2193 9 discriminator 16 view .LVU558 + 1699 0408 99B2 uxth r1, r3 + 1700 040a A2F80614 strh r1, [r2, #1030] @ movhi + 1701 040e EDE7 b .L87 + 1702 .LBE36: + 1703 .cfi_endproc + 1704 .LFE363: + 1706 .section .text.HAL_PCD_SetupStageCallback,"ax",%progbits + 1707 .align 1 + 1708 .weak HAL_PCD_SetupStageCallback + 1709 .syntax unified + 1710 .thumb + 1711 .thumb_func + 1713 HAL_PCD_SetupStageCallback: + 1714 .LVL186: + 1715 .LFB338: +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 1716 .loc 1 1187 1 view -0 + 1717 .cfi_startproc + 1718 @ args = 0, pretend = 0, frame = 0 + 1719 @ frame_needed = 0, uses_anonymous_args = 0 + 1720 @ link register save eliminated. +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1721 .loc 1 1189 3 view .LVU560 +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1722 .loc 1 1194 1 is_stmt 0 view .LVU561 + 1723 0000 7047 bx lr + ARM GAS /tmp/ccJPteqL.s page 77 + + + 1724 .cfi_endproc + 1725 .LFE338: + 1727 .section .text.PCD_EP_ISR_Handler,"ax",%progbits + 1728 .align 1 + 1729 .syntax unified + 1730 .thumb + 1731 .thumb_func + 1733 PCD_EP_ISR_Handler: + 1734 .LVL187: + 1735 .LFB361: +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 1736 .loc 1 1694 1 is_stmt 1 view -0 + 1737 .cfi_startproc + 1738 @ args = 0, pretend = 0, frame = 0 + 1739 @ frame_needed = 0, uses_anonymous_args = 0 +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 1740 .loc 1 1694 1 is_stmt 0 view .LVU563 + 1741 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 1742 .LCFI12: + 1743 .cfi_def_cfa_offset 24 + 1744 .cfi_offset 4, -24 + 1745 .cfi_offset 5, -20 + 1746 .cfi_offset 6, -16 + 1747 .cfi_offset 7, -12 + 1748 .cfi_offset 8, -8 + 1749 .cfi_offset 14, -4 + 1750 0004 0546 mov r5, r0 +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t count; + 1751 .loc 1 1695 3 is_stmt 1 view .LVU564 +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t wIstr; + 1752 .loc 1 1696 3 view .LVU565 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t wEPVal; + 1753 .loc 1 1697 3 view .LVU566 +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint16_t TxPctSize; + 1754 .loc 1 1698 3 view .LVU567 +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint8_t epindex; + 1755 .loc 1 1699 3 view .LVU568 +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1756 .loc 1 1700 3 view .LVU569 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1757 .loc 1 1703 3 view .LVU570 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1758 .loc 1 1703 9 is_stmt 0 view .LVU571 + 1759 0006 CAE0 b .L96 + 1760 .LVL188: + 1761 .L127: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1762 .loc 1 1721 9 is_stmt 1 view .LVU572 + 1763 .LBB37: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1764 .loc 1 1721 9 view .LVU573 +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1765 .loc 1 1721 9 view .LVU574 + 1766 0008 0388 ldrh r3, [r0] + 1767 .LVL189: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1768 .loc 1 1721 9 is_stmt 0 view .LVU575 + ARM GAS /tmp/ccJPteqL.s page 78 + + + 1769 000a 9BB2 uxth r3, r3 + 1770 000c 23F4E143 bic r3, r3, #28800 + 1771 0010 23F07003 bic r3, r3, #112 + 1772 .LVL190: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1773 .loc 1 1721 9 is_stmt 1 view .LVU576 + 1774 0014 6FEA4343 mvn r3, r3, lsl #17 + 1775 .LVL191: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1776 .loc 1 1721 9 is_stmt 0 view .LVU577 + 1777 0018 6FEA5343 mvn r3, r3, lsr #17 + 1778 001c 9BB2 uxth r3, r3 + 1779 001e 0380 strh r3, [r0] @ movhi + 1780 .LBE37: +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->IN_ep[0]; + 1781 .loc 1 1721 9 is_stmt 1 view .LVU578 +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1782 .loc 1 1722 9 view .LVU579 + 1783 .LVL192: +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += ep->xfer_count; + 1784 .loc 1 1724 9 view .LVU580 +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += ep->xfer_count; + 1785 .loc 1 1724 26 is_stmt 0 view .LVU581 + 1786 0020 2968 ldr r1, [r5] + 1787 0022 B1F85030 ldrh r3, [r1, #80] + 1788 0026 95F82820 ldrb r2, [r5, #40] @ zero_extendqisi2 + 1789 002a D200 lsls r2, r2, #3 + 1790 002c 12FA83F3 uxtah r3, r2, r3 + 1791 0030 0B44 add r3, r3, r1 + 1792 0032 B3F80234 ldrh r3, [r3, #1026] + 1793 0036 C3F30903 ubfx r3, r3, #0, #10 +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += ep->xfer_count; + 1794 .loc 1 1724 24 view .LVU582 + 1795 003a 6B64 str r3, [r5, #68] +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1796 .loc 1 1725 9 is_stmt 1 view .LVU583 +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1797 .loc 1 1725 11 is_stmt 0 view .LVU584 + 1798 003c EA6B ldr r2, [r5, #60] +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1799 .loc 1 1725 23 view .LVU585 + 1800 003e 1A44 add r2, r2, r3 + 1801 0040 EA63 str r2, [r5, #60] +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 1802 .loc 1 1731 9 is_stmt 1 view .LVU586 + 1803 0042 0021 movs r1, #0 + 1804 0044 2846 mov r0, r5 + 1805 0046 FFF7FEFF bl HAL_PCD_DataInStageCallback + 1806 .LVL193: +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1807 .loc 1 1734 9 view .LVU587 +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1808 .loc 1 1734 18 is_stmt 0 view .LVU588 + 1809 004a 95F82430 ldrb r3, [r5, #36] @ zero_extendqisi2 +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1810 .loc 1 1734 12 view .LVU589 + 1811 004e 002B cmp r3, #0 + ARM GAS /tmp/ccJPteqL.s page 79 + + + 1812 0050 00F0A580 beq .L96 +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1813 .loc 1 1734 44 discriminator 1 view .LVU590 + 1814 0054 2B6C ldr r3, [r5, #64] +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1815 .loc 1 1734 38 discriminator 1 view .LVU591 + 1816 0056 002B cmp r3, #0 + 1817 0058 40F0A180 bne .L96 +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = 0U; + 1818 .loc 1 1736 11 is_stmt 1 view .LVU592 +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = 0U; + 1819 .loc 1 1736 50 is_stmt 0 view .LVU593 + 1820 005c 95F82430 ldrb r3, [r5, #36] @ zero_extendqisi2 +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = 0U; + 1821 .loc 1 1736 15 view .LVU594 + 1822 0060 2A68 ldr r2, [r5] +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = 0U; + 1823 .loc 1 1736 33 view .LVU595 + 1824 0062 43F08003 orr r3, r3, #128 + 1825 0066 A2F84C30 strh r3, [r2, #76] @ movhi +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1826 .loc 1 1737 11 is_stmt 1 view .LVU596 +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1827 .loc 1 1737 29 is_stmt 0 view .LVU597 + 1828 006a 0023 movs r3, #0 + 1829 006c 85F82430 strb r3, [r5, #36] + 1830 0070 95E0 b .L96 + 1831 .LVL194: + 1832 .L128: +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1833 .loc 1 1752 11 is_stmt 1 view .LVU598 +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1834 .loc 1 1752 28 is_stmt 0 view .LVU599 + 1835 0072 B0F85030 ldrh r3, [r0, #80] + 1836 0076 95F86821 ldrb r2, [r5, #360] @ zero_extendqisi2 + 1837 .LVL195: +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1838 .loc 1 1752 28 view .LVU600 + 1839 007a D200 lsls r2, r2, #3 + 1840 007c 12FA83F3 uxtah r3, r2, r3 + 1841 0080 0344 add r3, r3, r0 + 1842 0082 B3F80634 ldrh r3, [r3, #1030] + 1843 0086 C3F30903 ubfx r3, r3, #0, #10 +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1844 .loc 1 1752 26 view .LVU601 + 1845 008a C5F88431 str r3, [r5, #388] +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->pmaadress, (uint16_t)ep->xfer_count); + 1846 .loc 1 1754 11 is_stmt 1 view .LVU602 + 1847 008e B5F86E21 ldrh r2, [r5, #366] + 1848 0092 05F52C71 add r1, r5, #688 + 1849 0096 FFF7FEFF bl USB_ReadPMA + 1850 .LVL196: +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1851 .loc 1 1758 11 view .LVU603 + 1852 .LBB38: +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1853 .loc 1 1758 11 view .LVU604 + ARM GAS /tmp/ccJPteqL.s page 80 + + +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1854 .loc 1 1758 11 view .LVU605 + 1855 009a 2A68 ldr r2, [r5] + 1856 009c 1388 ldrh r3, [r2] + 1857 009e 23F07003 bic r3, r3, #112 + 1858 00a2 1B05 lsls r3, r3, #20 + 1859 00a4 1B0D lsrs r3, r3, #20 + 1860 .LVL197: +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1861 .loc 1 1758 11 view .LVU606 + 1862 00a6 43F08003 orr r3, r3, #128 + 1863 .LVL198: +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1864 .loc 1 1758 11 is_stmt 0 view .LVU607 + 1865 00aa 1380 strh r3, [r2] @ movhi + 1866 .LBE38: +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1867 .loc 1 1758 11 is_stmt 1 view .LVU608 +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 1868 .loc 1 1764 11 view .LVU609 + 1869 00ac 2846 mov r0, r5 + 1870 00ae FFF7FEFF bl HAL_PCD_SetupStageCallback + 1871 .LVL199: + 1872 00b2 74E0 b .L96 + 1873 .LVL200: + 1874 .L102: + 1875 .LBB39: + 1876 .LBB40: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1877 .loc 1 1791 13 discriminator 2 view .LVU610 + 1878 00b4 89B9 cbnz r1, .L105 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1879 .loc 1 1791 13 discriminator 7 view .LVU611 + 1880 00b6 B3F80624 ldrh r2, [r3, #1030] + 1881 00ba 92B2 uxth r2, r2 + 1882 00bc 22F4F842 bic r2, r2, #31744 + 1883 00c0 92B2 uxth r2, r2 + 1884 00c2 A3F80624 strh r2, [r3, #1030] @ movhi +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1885 .loc 1 1791 13 discriminator 7 view .LVU612 + 1886 00c6 B3F80624 ldrh r2, [r3, #1030] + 1887 00ca 6FEA4242 mvn r2, r2, lsl #17 + 1888 00ce 6FEA5242 mvn r2, r2, lsr #17 + 1889 00d2 92B2 uxth r2, r2 + 1890 00d4 A3F80624 strh r2, [r3, #1030] @ movhi + 1891 00d8 BFE0 b .L104 + 1892 .L105: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1893 .loc 1 1791 13 discriminator 8 view .LVU613 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1894 .loc 1 1791 13 discriminator 8 view .LVU614 + 1895 00da 4A08 lsrs r2, r1, #1 + 1896 .LVL201: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1897 .loc 1 1791 13 discriminator 8 view .LVU615 + 1898 00dc 11F0010F tst r1, #1 + 1899 00e0 00D0 beq .L106 + ARM GAS /tmp/ccJPteqL.s page 81 + + +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1900 .loc 1 1791 13 discriminator 10 view .LVU616 + 1901 00e2 0132 adds r2, r2, #1 + 1902 .LVL202: + 1903 .L106: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1904 .loc 1 1791 13 discriminator 12 view .LVU617 + 1905 00e4 9202 lsls r2, r2, #10 + 1906 .LVL203: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1907 .loc 1 1791 13 is_stmt 0 discriminator 12 view .LVU618 + 1908 00e6 92B2 uxth r2, r2 + 1909 00e8 A3F80624 strh r2, [r3, #1030] @ movhi + 1910 00ec B5E0 b .L104 + 1911 .LVL204: + 1912 .L97: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 1913 .loc 1 1791 13 discriminator 12 view .LVU619 + 1914 .LBE40: + 1915 .LBE39: +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1916 .loc 1 1801 7 is_stmt 1 view .LVU620 +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1917 .loc 1 1801 14 is_stmt 0 view .LVU621 + 1918 00ee 30F82430 ldrh r3, [r0, r4, lsl #2] + 1919 .LVL205: +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1920 .loc 1 1801 14 view .LVU622 + 1921 00f2 9EB2 uxth r6, r3 + 1922 .LVL206: +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1923 .loc 1 1803 7 is_stmt 1 view .LVU623 +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1924 .loc 1 1803 10 is_stmt 0 view .LVU624 + 1925 00f4 13F4004F tst r3, #32768 + 1926 00f8 40F0BE80 bne .L125 + 1927 .L107: +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1928 .loc 1 1875 7 is_stmt 1 view .LVU625 +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1929 .loc 1 1875 10 is_stmt 0 view .LVU626 + 1930 00fc 16F0800F tst r6, #128 + 1931 0100 4DD0 beq .L96 +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1932 .loc 1 1877 9 is_stmt 1 view .LVU627 +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1933 .loc 1 1877 12 is_stmt 0 view .LVU628 + 1934 0102 621C adds r2, r4, #1 + 1935 0104 02EB8201 add r1, r2, r2, lsl #2 + 1936 0108 05EBC101 add r1, r5, r1, lsl #3 + 1937 .LVL207: +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1938 .loc 1 1880 9 is_stmt 1 view .LVU629 + 1939 .LBB42: +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1940 .loc 1 1880 9 view .LVU630 +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 82 + + + 1941 .loc 1 1880 9 view .LVU631 + 1942 010c 2868 ldr r0, [r5] + 1943 010e 30F82430 ldrh r3, [r0, r4, lsl #2] + 1944 0112 9BB2 uxth r3, r3 + 1945 0114 23F4E143 bic r3, r3, #28800 + 1946 0118 23F07003 bic r3, r3, #112 + 1947 .LVL208: +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1948 .loc 1 1880 9 view .LVU632 + 1949 011c 6FEA4343 mvn r3, r3, lsl #17 + 1950 .LVL209: +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1951 .loc 1 1880 9 is_stmt 0 view .LVU633 + 1952 0120 6FEA5343 mvn r3, r3, lsr #17 + 1953 0124 9BB2 uxth r3, r3 + 1954 0126 20F82430 strh r3, [r0, r4, lsl #2] @ movhi + 1955 .LBE42: +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1956 .loc 1 1880 9 is_stmt 1 view .LVU634 +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1957 .loc 1 1882 9 view .LVU635 +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1958 .loc 1 1882 15 is_stmt 0 view .LVU636 + 1959 012a CB78 ldrb r3, [r1, #3] @ zero_extendqisi2 +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1960 .loc 1 1882 12 view .LVU637 + 1961 012c 022B cmp r3, #2 + 1962 012e 00F0A781 beq .L114 +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1963 .loc 1 1884 11 is_stmt 1 view .LVU638 +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 1964 .loc 1 1884 24 is_stmt 0 view .LVU639 + 1965 0132 04EB8403 add r3, r4, r4, lsl #2 + 1966 0136 05EBC303 add r3, r5, r3, lsl #3 + 1967 013a 0022 movs r2, #0 + 1968 013c 1A64 str r2, [r3, #64] +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1969 .loc 1 1887 11 is_stmt 1 view .LVU640 +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1970 .loc 1 1887 17 is_stmt 0 view .LVU641 + 1971 013e 93F83430 ldrb r3, [r3, #52] @ zero_extendqisi2 +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1972 .loc 1 1887 14 view .LVU642 + 1973 0142 23B3 cbz r3, .L115 +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1974 .loc 1 1889 13 is_stmt 1 view .LVU643 +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 1975 .loc 1 1889 16 is_stmt 0 view .LVU644 + 1976 0144 16F0400F tst r6, #64 + 1977 0148 00F06381 beq .L116 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1978 .loc 1 1891 15 is_stmt 1 view .LVU645 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1979 .loc 1 1891 15 view .LVU646 + 1980 014c 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 1981 014e 002B cmp r3, #0 + 1982 0150 40F04C81 bne .L117 + ARM GAS /tmp/ccJPteqL.s page 83 + + +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1983 .loc 1 1891 15 discriminator 1 view .LVU647 + 1984 .LBB43: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1985 .loc 1 1891 15 discriminator 1 view .LVU648 + 1986 0154 2A68 ldr r2, [r5] + 1987 .LVL210: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1988 .loc 1 1891 15 discriminator 1 view .LVU649 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1989 .loc 1 1891 15 discriminator 1 view .LVU650 + 1990 0156 B2F85030 ldrh r3, [r2, #80] + 1991 015a 12FA83F3 uxtah r3, r2, r3 + 1992 .LVL211: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1993 .loc 1 1891 15 discriminator 1 view .LVU651 + 1994 015e 621C adds r2, r4, #1 + 1995 0160 02EB8202 add r2, r2, r2, lsl #2 + 1996 0164 15F83220 ldrb r2, [r5, r2, lsl #3] @ zero_extendqisi2 + 1997 0168 03EBC203 add r3, r3, r2, lsl #3 + 1998 .LVL212: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 1999 .loc 1 1891 15 discriminator 1 view .LVU652 + 2000 .LBB44: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2001 .loc 1 1891 15 discriminator 1 view .LVU653 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2002 .loc 1 1891 15 discriminator 1 view .LVU654 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2003 .loc 1 1891 15 discriminator 1 view .LVU655 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2004 .loc 1 1891 15 discriminator 1 view .LVU656 + 2005 016c B3F80224 ldrh r2, [r3, #1026] + 2006 0170 92B2 uxth r2, r2 + 2007 0172 22F4F842 bic r2, r2, #31744 + 2008 0176 92B2 uxth r2, r2 + 2009 0178 A3F80224 strh r2, [r3, #1026] @ movhi +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2010 .loc 1 1891 15 discriminator 1 view .LVU657 + 2011 017c B3F80224 ldrh r2, [r3, #1026] + 2012 0180 6FEA4242 mvn r2, r2, lsl #17 + 2013 0184 6FEA5242 mvn r2, r2, lsr #17 + 2014 0188 92B2 uxth r2, r2 + 2015 018a A3F80224 strh r2, [r3, #1026] @ movhi + 2016 .LVL213: + 2017 .L115: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2018 .loc 1 1891 15 is_stmt 0 discriminator 1 view .LVU658 + 2019 .LBE44: + 2020 .LBE43: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2021 .loc 1 1895 15 is_stmt 1 discriminator 18 view .LVU659 +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2022 .loc 1 1904 11 discriminator 18 view .LVU660 + 2023 018e 0134 adds r4, r4, #1 + 2024 0190 04EB8404 add r4, r4, r4, lsl #2 + 2025 0194 15F83410 ldrb r1, [r5, r4, lsl #3] @ zero_extendqisi2 + ARM GAS /tmp/ccJPteqL.s page 84 + + + 2026 .LVL214: +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2027 .loc 1 1904 11 is_stmt 0 discriminator 18 view .LVU661 + 2028 0198 2846 mov r0, r5 + 2029 019a FFF7FEFF bl HAL_PCD_DataInStageCallback + 2030 .LVL215: + 2031 .L96: +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2032 .loc 1 1703 48 is_stmt 1 view .LVU662 +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2033 .loc 1 1703 15 is_stmt 0 view .LVU663 + 2034 019e 2868 ldr r0, [r5] +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2035 .loc 1 1703 25 view .LVU664 + 2036 01a0 B0F84430 ldrh r3, [r0, #68] +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2037 .loc 1 1703 48 view .LVU665 + 2038 01a4 13F4004F tst r3, #32768 + 2039 01a8 00F0B281 beq .L126 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2040 .loc 1 1705 5 is_stmt 1 view .LVU666 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2041 .loc 1 1705 11 is_stmt 0 view .LVU667 + 2042 01ac B0F84440 ldrh r4, [r0, #68] + 2043 01b0 A3B2 uxth r3, r4 + 2044 .LVL216: +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2045 .loc 1 1708 5 is_stmt 1 view .LVU668 +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2046 .loc 1 1710 5 view .LVU669 +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2047 .loc 1 1710 8 is_stmt 0 view .LVU670 + 2048 01b2 14F00F04 ands r4, r4, #15 + 2049 .LVL217: +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2050 .loc 1 1710 8 view .LVU671 + 2051 01b6 9AD1 bne .L97 +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2052 .loc 1 1715 7 is_stmt 1 view .LVU672 +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2053 .loc 1 1715 10 is_stmt 0 view .LVU673 + 2054 01b8 13F0100F tst r3, #16 + 2055 01bc 3FF424AF beq .L127 +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0); + 2056 .loc 1 1746 9 is_stmt 1 view .LVU674 + 2057 .LVL218: +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2058 .loc 1 1747 9 view .LVU675 +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2059 .loc 1 1747 16 is_stmt 0 view .LVU676 + 2060 01c0 0388 ldrh r3, [r0] + 2061 .LVL219: +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2062 .loc 1 1747 16 view .LVU677 + 2063 01c2 9AB2 uxth r2, r3 + 2064 .LVL220: +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 85 + + + 2065 .loc 1 1749 9 is_stmt 1 view .LVU678 +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2066 .loc 1 1749 12 is_stmt 0 view .LVU679 + 2067 01c4 13F4006F tst r3, #2048 + 2068 01c8 7FF453AF bne .L128 +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2069 .loc 1 1767 14 is_stmt 1 view .LVU680 +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2070 .loc 1 1767 17 is_stmt 0 view .LVU681 + 2071 01cc 12F4004F tst r2, #32768 + 2072 01d0 E5D0 beq .L96 +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2073 .loc 1 1769 11 is_stmt 1 view .LVU682 + 2074 .LBB45: +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2075 .loc 1 1769 11 view .LVU683 +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2076 .loc 1 1769 11 view .LVU684 + 2077 01d2 0388 ldrh r3, [r0] + 2078 01d4 23F07003 bic r3, r3, #112 + 2079 01d8 1B05 lsls r3, r3, #20 + 2080 01da 1B0D lsrs r3, r3, #20 + 2081 .LVL221: +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2082 .loc 1 1769 11 view .LVU685 + 2083 01dc 43F08003 orr r3, r3, #128 + 2084 .LVL222: +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2085 .loc 1 1769 11 is_stmt 0 view .LVU686 + 2086 01e0 0380 strh r3, [r0] @ movhi + 2087 .LBE45: +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2088 .loc 1 1769 11 is_stmt 1 view .LVU687 +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2089 .loc 1 1772 11 view .LVU688 +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2090 .loc 1 1772 28 is_stmt 0 view .LVU689 + 2091 01e2 2868 ldr r0, [r5] + 2092 01e4 B0F85030 ldrh r3, [r0, #80] + 2093 01e8 95F86821 ldrb r2, [r5, #360] @ zero_extendqisi2 + 2094 .LVL223: +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2095 .loc 1 1772 28 view .LVU690 + 2096 01ec D200 lsls r2, r2, #3 + 2097 01ee 12FA83F3 uxtah r3, r2, r3 + 2098 01f2 0344 add r3, r3, r0 + 2099 01f4 B3F80634 ldrh r3, [r3, #1030] + 2100 01f8 C3F30903 ubfx r3, r3, #0, #10 +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2101 .loc 1 1772 26 view .LVU691 + 2102 01fc C5F88431 str r3, [r5, #388] +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2103 .loc 1 1774 11 is_stmt 1 view .LVU692 +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2104 .loc 1 1774 14 is_stmt 0 view .LVU693 + 2105 0200 8BB1 cbz r3, .L101 +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 86 + + + 2106 .loc 1 1774 44 discriminator 1 view .LVU694 + 2107 0202 D5F87C11 ldr r1, [r5, #380] +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2108 .loc 1 1774 38 discriminator 1 view .LVU695 + 2109 0206 71B1 cbz r1, .L101 +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->pmaadress, (uint16_t)ep->xfer_count); + 2110 .loc 1 1776 13 is_stmt 1 view .LVU696 + 2111 0208 B5F86E21 ldrh r2, [r5, #366] + 2112 020c FFF7FEFF bl USB_ReadPMA + 2113 .LVL224: +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2114 .loc 1 1779 13 view .LVU697 +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2115 .loc 1 1779 15 is_stmt 0 view .LVU698 + 2116 0210 D5F87C31 ldr r3, [r5, #380] +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2117 .loc 1 1779 32 view .LVU699 + 2118 0214 D5F88421 ldr r2, [r5, #388] +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2119 .loc 1 1779 27 view .LVU700 + 2120 0218 1344 add r3, r3, r2 + 2121 021a C5F87C31 str r3, [r5, #380] +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2122 .loc 1 1785 13 is_stmt 1 view .LVU701 + 2123 021e 0021 movs r1, #0 + 2124 0220 2846 mov r0, r5 + 2125 0222 FFF7FEFF bl HAL_PCD_DataOutStageCallback + 2126 .LVL225: + 2127 .L101: +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2128 .loc 1 1789 11 view .LVU702 +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2129 .loc 1 1789 16 is_stmt 0 view .LVU703 + 2130 0226 2B68 ldr r3, [r5] + 2131 0228 1A88 ldrh r2, [r3] +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2132 .loc 1 1789 14 view .LVU704 + 2133 022a 12F4006F tst r2, #2048 + 2134 022e B6D1 bne .L96 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2135 .loc 1 1791 13 is_stmt 1 view .LVU705 + 2136 .LBB46: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2137 .loc 1 1791 13 view .LVU706 + 2138 .LVL226: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2139 .loc 1 1791 13 view .LVU707 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2140 .loc 1 1791 13 view .LVU708 + 2141 0230 B3F85020 ldrh r2, [r3, #80] + 2142 0234 13FA82F3 uxtah r3, r3, r2 + 2143 .LVL227: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2144 .loc 1 1791 13 view .LVU709 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2145 .loc 1 1791 13 view .LVU710 + 2146 .LBB41: + ARM GAS /tmp/ccJPteqL.s page 87 + + +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2147 .loc 1 1791 13 view .LVU711 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2148 .loc 1 1791 13 view .LVU712 + 2149 0238 D5F87811 ldr r1, [r5, #376] + 2150 023c 3E29 cmp r1, #62 + 2151 023e 7FF639AF bls .L102 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2152 .loc 1 1791 13 discriminator 1 view .LVU713 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2153 .loc 1 1791 13 discriminator 1 view .LVU714 + 2154 0242 4A09 lsrs r2, r1, #5 + 2155 .LVL228: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2156 .loc 1 1791 13 discriminator 1 view .LVU715 + 2157 0244 11F01F0F tst r1, #31 + 2158 0248 00D1 bne .L103 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2159 .loc 1 1791 13 discriminator 3 view .LVU716 + 2160 024a 013A subs r2, r2, #1 + 2161 .LVL229: + 2162 .L103: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2163 .loc 1 1791 13 discriminator 5 view .LVU717 + 2164 024c 6FEAC262 mvn r2, r2, lsl #27 + 2165 .LVL230: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2166 .loc 1 1791 13 is_stmt 0 discriminator 5 view .LVU718 + 2167 0250 6FEA5242 mvn r2, r2, lsr #17 + 2168 0254 92B2 uxth r2, r2 + 2169 0256 A3F80624 strh r2, [r3, #1030] @ movhi +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2170 .loc 1 1791 13 is_stmt 1 discriminator 5 view .LVU719 + 2171 .LVL231: + 2172 .L104: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2173 .loc 1 1791 13 discriminator 13 view .LVU720 + 2174 .LBE41: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2175 .loc 1 1791 13 discriminator 13 view .LVU721 + 2176 .LBE46: +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); + 2177 .loc 1 1791 13 discriminator 13 view .LVU722 +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2178 .loc 1 1792 13 discriminator 13 view .LVU723 + 2179 .LBB47: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2180 .loc 1 1792 13 discriminator 13 view .LVU724 +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2181 .loc 1 1792 13 discriminator 13 view .LVU725 + 2182 025a 2A68 ldr r2, [r5] + 2183 025c 1388 ldrh r3, [r2] + 2184 .LVL232: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2185 .loc 1 1792 13 is_stmt 0 discriminator 13 view .LVU726 + 2186 025e 9BB2 uxth r3, r3 + 2187 0260 23F48043 bic r3, r3, #16384 + ARM GAS /tmp/ccJPteqL.s page 88 + + + 2188 0264 23F07003 bic r3, r3, #112 + 2189 .LVL233: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2190 .loc 1 1792 13 is_stmt 1 discriminator 13 view .LVU727 +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2191 .loc 1 1792 13 discriminator 13 view .LVU728 +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2192 .loc 1 1792 13 discriminator 13 view .LVU729 +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2193 .loc 1 1792 13 discriminator 13 view .LVU730 + 2194 0268 83F44053 eor r3, r3, #12288 + 2195 .LVL234: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2196 .loc 1 1792 13 discriminator 13 view .LVU731 + 2197 026c 43F40043 orr r3, r3, #32768 + 2198 .LVL235: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2199 .loc 1 1792 13 is_stmt 0 discriminator 13 view .LVU732 + 2200 0270 43F08003 orr r3, r3, #128 + 2201 0274 1380 strh r3, [r2] @ movhi + 2202 0276 92E7 b .L96 + 2203 .LVL236: + 2204 .L125: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2205 .loc 1 1792 13 discriminator 13 view .LVU733 + 2206 .LBE47: +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; + 2207 .loc 1 1806 9 is_stmt 1 view .LVU734 + 2208 .LBB48: +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; + 2209 .loc 1 1806 9 view .LVU735 +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; + 2210 .loc 1 1806 9 view .LVU736 + 2211 0278 30F82430 ldrh r3, [r0, r4, lsl #2] + 2212 027c 23F07003 bic r3, r3, #112 + 2213 0280 1B05 lsls r3, r3, #20 + 2214 0282 1B0D lsrs r3, r3, #20 + 2215 .LVL237: +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; + 2216 .loc 1 1806 9 view .LVU737 + 2217 0284 43F08003 orr r3, r3, #128 + 2218 .LVL238: +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; + 2219 .loc 1 1806 9 is_stmt 0 view .LVU738 + 2220 0288 20F82430 strh r3, [r0, r4, lsl #2] @ movhi + 2221 .LBE48: +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep = &hpcd->OUT_ep[epindex]; + 2222 .loc 1 1806 9 is_stmt 1 view .LVU739 +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2223 .loc 1 1807 9 view .LVU740 +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2224 .loc 1 1807 12 is_stmt 0 view .LVU741 + 2225 028c 04EB8401 add r1, r4, r4, lsl #2 + 2226 0290 C900 lsls r1, r1, #3 + 2227 0292 01F5B471 add r1, r1, #360 + 2228 0296 05EB0108 add r8, r5, r1 + 2229 .LVL239: + ARM GAS /tmp/ccJPteqL.s page 89 + + +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2230 .loc 1 1810 9 is_stmt 1 view .LVU742 +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2231 .loc 1 1810 15 is_stmt 0 view .LVU743 + 2232 029a 04EB8403 add r3, r4, r4, lsl #2 + 2233 029e 05EBC303 add r3, r5, r3, lsl #3 + 2234 02a2 93F87431 ldrb r3, [r3, #372] @ zero_extendqisi2 +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2235 .loc 1 1810 12 view .LVU744 + 2236 02a6 002B cmp r3, #0 + 2237 02a8 40D1 bne .L108 +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2238 .loc 1 1812 11 is_stmt 1 view .LVU745 +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2239 .loc 1 1812 29 is_stmt 0 view .LVU746 + 2240 02aa 2868 ldr r0, [r5] + 2241 02ac B0F85030 ldrh r3, [r0, #80] + 2242 02b0 04EB8402 add r2, r4, r4, lsl #2 + 2243 02b4 05EBC202 add r2, r5, r2, lsl #3 + 2244 02b8 92F86821 ldrb r2, [r2, #360] @ zero_extendqisi2 + 2245 02bc D200 lsls r2, r2, #3 + 2246 02be 12FA83F3 uxtah r3, r2, r3 + 2247 02c2 0344 add r3, r3, r0 + 2248 02c4 B3F80674 ldrh r7, [r3, #1030] +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2249 .loc 1 1812 17 view .LVU747 + 2250 02c8 C7F30907 ubfx r7, r7, #0, #10 + 2251 .LVL240: +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2252 .loc 1 1814 11 is_stmt 1 view .LVU748 +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2253 .loc 1 1814 14 is_stmt 0 view .LVU749 + 2254 02cc 17BB cbnz r7, .L129 + 2255 .L109: +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += count; + 2256 .loc 1 1857 9 is_stmt 1 view .LVU750 +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += count; + 2257 .loc 1 1857 11 is_stmt 0 view .LVU751 + 2258 02ce 04EB8403 add r3, r4, r4, lsl #2 + 2259 02d2 05EBC303 add r3, r5, r3, lsl #3 + 2260 02d6 D3F88421 ldr r2, [r3, #388] +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_buff += count; + 2261 .loc 1 1857 24 view .LVU752 + 2262 02da 3A44 add r2, r2, r7 + 2263 02dc C3F88421 str r2, [r3, #388] +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2264 .loc 1 1858 9 is_stmt 1 view .LVU753 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2265 .loc 1 1858 11 is_stmt 0 view .LVU754 + 2266 02e0 D3F87C21 ldr r2, [r3, #380] +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2267 .loc 1 1858 23 view .LVU755 + 2268 02e4 3A44 add r2, r2, r7 + 2269 02e6 C3F87C21 str r2, [r3, #380] +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2270 .loc 1 1860 9 is_stmt 1 view .LVU756 +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + ARM GAS /tmp/ccJPteqL.s page 90 + + + 2271 .loc 1 1860 16 is_stmt 0 view .LVU757 + 2272 02ea D3F88031 ldr r3, [r3, #384] +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2273 .loc 1 1860 12 view .LVU758 + 2274 02ee 3BB1 cbz r3, .L112 +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2275 .loc 1 1860 48 discriminator 1 view .LVU759 + 2276 02f0 04EB8403 add r3, r4, r4, lsl #2 + 2277 02f4 05EBC303 add r3, r5, r3, lsl #3 + 2278 02f8 D3F87831 ldr r3, [r3, #376] +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2279 .loc 1 1860 34 discriminator 1 view .LVU760 + 2280 02fc 9F42 cmp r7, r3 + 2281 02fe 70D2 bcs .L113 + 2282 .L112: +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2283 .loc 1 1866 11 is_stmt 1 view .LVU761 + 2284 0300 04EB8403 add r3, r4, r4, lsl #2 + 2285 0304 05EBC303 add r3, r5, r3, lsl #3 + 2286 0308 93F86811 ldrb r1, [r3, #360] @ zero_extendqisi2 + 2287 030c 2846 mov r0, r5 + 2288 030e FFF7FEFF bl HAL_PCD_DataOutStageCallback + 2289 .LVL241: + 2290 0312 F3E6 b .L107 + 2291 .L129: +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2292 .loc 1 1816 13 view .LVU762 + 2293 0314 04EB8401 add r1, r4, r4, lsl #2 + 2294 0318 05EBC101 add r1, r5, r1, lsl #3 + 2295 031c 3B46 mov r3, r7 + 2296 031e B1F86E21 ldrh r2, [r1, #366] + 2297 0322 D1F87C11 ldr r1, [r1, #380] + 2298 0326 FFF7FEFF bl USB_ReadPMA + 2299 .LVL242: + 2300 032a D0E7 b .L109 + 2301 .LVL243: + 2302 .L108: +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2303 .loc 1 1823 11 view .LVU763 +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2304 .loc 1 1823 17 is_stmt 0 view .LVU764 + 2305 032c 04EB8403 add r3, r4, r4, lsl #2 + 2306 0330 05EBC303 add r3, r5, r3, lsl #3 + 2307 0334 93F86B31 ldrb r3, [r3, #363] @ zero_extendqisi2 +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2308 .loc 1 1823 14 view .LVU765 + 2309 0338 022B cmp r3, #2 + 2310 033a 33D0 beq .L130 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2311 .loc 1 1830 13 is_stmt 1 discriminator 1 view .LVU766 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2312 .loc 1 1830 13 discriminator 1 view .LVU767 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2313 .loc 1 1830 13 discriminator 1 view .LVU768 + 2314 .LBB49: +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2315 .loc 1 1830 13 discriminator 1 view .LVU769 + ARM GAS /tmp/ccJPteqL.s page 91 + + +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2316 .loc 1 1830 13 discriminator 1 view .LVU770 + 2317 033c 2968 ldr r1, [r5] + 2318 033e 04EB8402 add r2, r4, r4, lsl #2 + 2319 0342 05EBC202 add r2, r5, r2, lsl #3 + 2320 0346 92F86801 ldrb r0, [r2, #360] @ zero_extendqisi2 + 2321 034a 31F82030 ldrh r3, [r1, r0, lsl #2] + 2322 034e 9BB2 uxth r3, r3 + 2323 0350 23F4E043 bic r3, r3, #28672 + 2324 0354 23F07003 bic r3, r3, #112 + 2325 .LVL244: +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2326 .loc 1 1830 13 discriminator 1 view .LVU771 + 2327 0358 43F40043 orr r3, r3, #32768 + 2328 .LVL245: +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2329 .loc 1 1830 13 is_stmt 0 discriminator 1 view .LVU772 + 2330 035c 43F0C003 orr r3, r3, #192 + 2331 0360 21F82030 strh r3, [r1, r0, lsl #2] @ movhi + 2332 .LBE49: +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2333 .loc 1 1830 13 is_stmt 1 discriminator 1 view .LVU773 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2334 .loc 1 1830 13 discriminator 1 view .LVU774 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2335 .loc 1 1830 13 discriminator 1 view .LVU775 +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2336 .loc 1 1832 13 discriminator 1 view .LVU776 +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2337 .loc 1 1832 18 is_stmt 0 discriminator 1 view .LVU777 + 2338 0364 2868 ldr r0, [r5] + 2339 0366 92F86831 ldrb r3, [r2, #360] @ zero_extendqisi2 + 2340 036a 30F82320 ldrh r2, [r0, r3, lsl #2] +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2341 .loc 1 1832 16 discriminator 1 view .LVU778 + 2342 036e 12F4804F tst r2, #16384 + 2343 0372 1ED0 beq .L111 +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2344 .loc 1 1835 15 is_stmt 1 view .LVU779 +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2345 .loc 1 1835 33 is_stmt 0 view .LVU780 + 2346 0374 B0F85020 ldrh r2, [r0, #80] + 2347 0378 DB00 lsls r3, r3, #3 + 2348 037a 13FA82F3 uxtah r3, r3, r2 + 2349 037e 0344 add r3, r3, r0 + 2350 0380 B3F80274 ldrh r7, [r3, #1026] +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2351 .loc 1 1835 21 view .LVU781 + 2352 0384 C7F30907 ubfx r7, r7, #0, #10 + 2353 .LVL246: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2354 .loc 1 1837 15 is_stmt 1 view .LVU782 +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2355 .loc 1 1837 18 is_stmt 0 view .LVU783 + 2356 0388 002F cmp r7, #0 + 2357 038a A0D0 beq .L109 +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 92 + + + 2358 .loc 1 1839 17 is_stmt 1 view .LVU784 + 2359 038c 04EB8401 add r1, r4, r4, lsl #2 + 2360 0390 05EBC101 add r1, r5, r1, lsl #3 + 2361 0394 3B46 mov r3, r7 + 2362 0396 B1F87021 ldrh r2, [r1, #368] + 2363 039a D1F87C11 ldr r1, [r1, #380] + 2364 039e FFF7FEFF bl USB_ReadPMA + 2365 .LVL247: + 2366 03a2 94E7 b .L109 + 2367 .LVL248: + 2368 .L130: +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2369 .loc 1 1825 13 view .LVU785 +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2370 .loc 1 1825 21 is_stmt 0 view .LVU786 + 2371 03a4 3246 mov r2, r6 + 2372 03a6 4146 mov r1, r8 + 2373 03a8 2846 mov r0, r5 + 2374 03aa FFF7FEFF bl HAL_PCD_EP_DB_Receive + 2375 .LVL249: + 2376 03ae 0746 mov r7, r0 + 2377 .LVL250: +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2378 .loc 1 1825 21 view .LVU787 + 2379 03b0 8DE7 b .L109 + 2380 .LVL251: + 2381 .L111: +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2382 .loc 1 1845 15 is_stmt 1 view .LVU788 +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2383 .loc 1 1845 33 is_stmt 0 view .LVU789 + 2384 03b2 B0F85020 ldrh r2, [r0, #80] + 2385 03b6 DB00 lsls r3, r3, #3 + 2386 03b8 13FA82F3 uxtah r3, r3, r2 + 2387 03bc 0344 add r3, r3, r0 + 2388 03be B3F80674 ldrh r7, [r3, #1030] +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2389 .loc 1 1845 21 view .LVU790 + 2390 03c2 C7F30907 ubfx r7, r7, #0, #10 + 2391 .LVL252: +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2392 .loc 1 1847 15 is_stmt 1 view .LVU791 +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2393 .loc 1 1847 18 is_stmt 0 view .LVU792 + 2394 03c6 002F cmp r7, #0 + 2395 03c8 81D0 beq .L109 +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2396 .loc 1 1849 17 is_stmt 1 view .LVU793 + 2397 03ca 04EB8401 add r1, r4, r4, lsl #2 + 2398 03ce 05EBC101 add r1, r5, r1, lsl #3 + 2399 03d2 3B46 mov r3, r7 + 2400 03d4 B1F87221 ldrh r2, [r1, #370] + 2401 03d8 D1F87C11 ldr r1, [r1, #380] + 2402 03dc FFF7FEFF bl USB_ReadPMA + 2403 .LVL253: + 2404 03e0 75E7 b .L109 + 2405 .LVL254: + ARM GAS /tmp/ccJPteqL.s page 93 + + + 2406 .L113: +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2407 .loc 1 1871 11 view .LVU794 +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2408 .loc 1 1871 18 is_stmt 0 view .LVU795 + 2409 03e2 4146 mov r1, r8 + 2410 03e4 2868 ldr r0, [r5] + 2411 03e6 FFF7FEFF bl USB_EPStartXfer + 2412 .LVL255: + 2413 03ea 87E6 b .L107 + 2414 .LVL256: + 2415 .L117: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2416 .loc 1 1891 15 is_stmt 1 discriminator 2 view .LVU796 + 2417 03ec 012B cmp r3, #1 + 2418 03ee 7FF4CEAE bne .L115 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2419 .loc 1 1891 15 discriminator 16 view .LVU797 + 2420 .LBB50: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2421 .loc 1 1891 15 discriminator 16 view .LVU798 + 2422 03f2 2A68 ldr r2, [r5] + 2423 .LVL257: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2424 .loc 1 1891 15 discriminator 16 view .LVU799 +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2425 .loc 1 1891 15 discriminator 16 view .LVU800 + 2426 03f4 B2F85030 ldrh r3, [r2, #80] + 2427 03f8 12FA83F3 uxtah r3, r2, r3 + 2428 .LVL258: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2429 .loc 1 1891 15 discriminator 16 view .LVU801 + 2430 03fc 621C adds r2, r4, #1 + 2431 03fe 02EB8202 add r2, r2, r2, lsl #2 + 2432 0402 15F83220 ldrb r2, [r5, r2, lsl #3] @ zero_extendqisi2 + 2433 0406 03EBC203 add r3, r3, r2, lsl #3 + 2434 .LVL259: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2435 .loc 1 1891 15 discriminator 16 view .LVU802 + 2436 040a 0022 movs r2, #0 + 2437 040c A3F80224 strh r2, [r3, #1026] @ movhi + 2438 0410 BDE6 b .L115 + 2439 .LVL260: + 2440 .L116: +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2441 .loc 1 1891 15 is_stmt 0 discriminator 16 view .LVU803 + 2442 .LBE50: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2443 .loc 1 1895 15 is_stmt 1 view .LVU804 + 2444 .LBB51: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2445 .loc 1 1895 15 view .LVU805 + 2446 0412 2A68 ldr r2, [r5] + 2447 .LVL261: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2448 .loc 1 1895 15 view .LVU806 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 94 + + + 2449 .loc 1 1895 15 view .LVU807 + 2450 0414 631C adds r3, r4, #1 + 2451 0416 03EB8303 add r3, r3, r3, lsl #2 + 2452 041a 05EBC303 add r3, r5, r3, lsl #3 + 2453 041e 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 + 2454 0420 E3B9 cbnz r3, .L118 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2455 .loc 1 1895 15 discriminator 1 view .LVU808 + 2456 .LBB52: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2457 .loc 1 1895 15 discriminator 1 view .LVU809 + 2458 .LVL262: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2459 .loc 1 1895 15 discriminator 1 view .LVU810 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2460 .loc 1 1895 15 discriminator 1 view .LVU811 + 2461 0422 B2F85030 ldrh r3, [r2, #80] + 2462 0426 12FA83F3 uxtah r3, r2, r3 + 2463 .LVL263: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2464 .loc 1 1895 15 discriminator 1 view .LVU812 + 2465 042a 621C adds r2, r4, #1 + 2466 .LVL264: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2467 .loc 1 1895 15 is_stmt 0 discriminator 1 view .LVU813 + 2468 042c 02EB8202 add r2, r2, r2, lsl #2 + 2469 0430 15F83220 ldrb r2, [r5, r2, lsl #3] @ zero_extendqisi2 + 2470 0434 03EBC203 add r3, r3, r2, lsl #3 + 2471 .LVL265: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2472 .loc 1 1895 15 is_stmt 1 discriminator 1 view .LVU814 + 2473 .LBB53: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2474 .loc 1 1895 15 discriminator 1 view .LVU815 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2475 .loc 1 1895 15 discriminator 1 view .LVU816 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2476 .loc 1 1895 15 discriminator 1 view .LVU817 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2477 .loc 1 1895 15 discriminator 1 view .LVU818 + 2478 0438 B3F80624 ldrh r2, [r3, #1030] + 2479 043c 92B2 uxth r2, r2 + 2480 043e 22F4F842 bic r2, r2, #31744 + 2481 0442 92B2 uxth r2, r2 + 2482 0444 A3F80624 strh r2, [r3, #1030] @ movhi + 2483 .LVL266: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2484 .loc 1 1895 15 discriminator 1 view .LVU819 + 2485 0448 B3F80624 ldrh r2, [r3, #1030] + 2486 044c 6FEA4242 mvn r2, r2, lsl #17 + 2487 0450 6FEA5242 mvn r2, r2, lsr #17 + 2488 0454 92B2 uxth r2, r2 + 2489 0456 A3F80624 strh r2, [r3, #1030] @ movhi + 2490 045a 98E6 b .L115 + 2491 .LVL267: + 2492 .L118: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 95 + + + 2493 .loc 1 1895 15 is_stmt 0 discriminator 1 view .LVU820 + 2494 .LBE53: + 2495 .LBE52: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2496 .loc 1 1895 15 is_stmt 1 discriminator 2 view .LVU821 + 2497 045c 012B cmp r3, #1 + 2498 045e 7FF496AE bne .L115 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2499 .loc 1 1895 15 discriminator 16 view .LVU822 + 2500 0462 B2F85030 ldrh r3, [r2, #80] + 2501 0466 12FA83F3 uxtah r3, r2, r3 + 2502 .LVL268: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2503 .loc 1 1895 15 discriminator 16 view .LVU823 + 2504 046a 621C adds r2, r4, #1 + 2505 046c 02EB8202 add r2, r2, r2, lsl #2 + 2506 0470 15F83220 ldrb r2, [r5, r2, lsl #3] @ zero_extendqisi2 + 2507 0474 03EBC203 add r3, r3, r2, lsl #3 + 2508 .LVL269: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2509 .loc 1 1895 15 discriminator 16 view .LVU824 + 2510 0478 0022 movs r2, #0 + 2511 047a A3F80624 strh r2, [r3, #1030] @ movhi + 2512 047e 86E6 b .L115 + 2513 .LVL270: + 2514 .L114: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2515 .loc 1 1895 15 is_stmt 0 discriminator 16 view .LVU825 + 2516 .LBE51: +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2517 .loc 1 1910 11 is_stmt 1 view .LVU826 +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2518 .loc 1 1910 14 is_stmt 0 view .LVU827 + 2519 0480 16F4807F tst r6, #256 + 2520 0484 3FD1 bne .L119 +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2521 .loc 1 1913 13 is_stmt 1 view .LVU828 +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2522 .loc 1 1913 35 is_stmt 0 view .LVU829 + 2523 0486 2868 ldr r0, [r5] + 2524 0488 B0F85030 ldrh r3, [r0, #80] + 2525 048c 621C adds r2, r4, #1 + 2526 048e 02EB8202 add r2, r2, r2, lsl #2 + 2527 0492 15F83260 ldrb r6, [r5, r2, lsl #3] @ zero_extendqisi2 + 2528 .LVL271: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2529 .loc 1 1913 35 view .LVU830 + 2530 0496 F200 lsls r2, r6, #3 + 2531 0498 12FA83F3 uxtah r3, r2, r3 + 2532 049c 0344 add r3, r3, r0 + 2533 049e B3F80234 ldrh r3, [r3, #1026] +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2534 .loc 1 1913 23 view .LVU831 + 2535 04a2 C3F30903 ubfx r3, r3, #0, #10 + 2536 .LVL272: +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2537 .loc 1 1915 13 is_stmt 1 view .LVU832 + ARM GAS /tmp/ccJPteqL.s page 96 + + +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2538 .loc 1 1915 19 is_stmt 0 view .LVU833 + 2539 04a6 04EB8402 add r2, r4, r4, lsl #2 + 2540 04aa 05EBC202 add r2, r5, r2, lsl #3 + 2541 04ae 126C ldr r2, [r2, #64] +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2542 .loc 1 1915 16 view .LVU834 + 2543 04b0 9A42 cmp r2, r3 + 2544 04b2 10D9 bls .L120 +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2545 .loc 1 1917 15 is_stmt 1 view .LVU835 +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2546 .loc 1 1917 28 is_stmt 0 view .LVU836 + 2547 04b4 04EB8407 add r7, r4, r4, lsl #2 + 2548 04b8 05EBC707 add r7, r5, r7, lsl #3 + 2549 04bc D21A subs r2, r2, r3 + 2550 04be 3A64 str r2, [r7, #64] + 2551 .L121: +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2552 .loc 1 1925 13 is_stmt 1 view .LVU837 +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2553 .loc 1 1925 19 is_stmt 0 view .LVU838 + 2554 04c0 04EB8402 add r2, r4, r4, lsl #2 + 2555 04c4 05EBC202 add r2, r5, r2, lsl #3 + 2556 04c8 126C ldr r2, [r2, #64] +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 2557 .loc 1 1925 16 view .LVU839 + 2558 04ca 5AB9 cbnz r2, .L122 +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2559 .loc 1 1931 15 is_stmt 1 view .LVU840 + 2560 04cc 3146 mov r1, r6 + 2561 .LVL273: +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2562 .loc 1 1931 15 is_stmt 0 view .LVU841 + 2563 04ce 2846 mov r0, r5 + 2564 04d0 FFF7FEFF bl HAL_PCD_DataInStageCallback + 2565 .LVL274: +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 2566 .loc 1 1931 15 view .LVU842 + 2567 04d4 63E6 b .L96 + 2568 .LVL275: + 2569 .L120: +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2570 .loc 1 1921 15 is_stmt 1 view .LVU843 +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2571 .loc 1 1921 28 is_stmt 0 view .LVU844 + 2572 04d6 04EB8402 add r2, r4, r4, lsl #2 + 2573 04da 05EBC202 add r2, r5, r2, lsl #3 + 2574 04de 0027 movs r7, #0 + 2575 04e0 1764 str r7, [r2, #64] + 2576 04e2 EDE7 b .L121 + 2577 .L122: +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 2578 .loc 1 1937 15 is_stmt 1 view .LVU845 +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 2579 .loc 1 1937 17 is_stmt 0 view .LVU846 + 2580 04e4 04EB8402 add r2, r4, r4, lsl #2 + ARM GAS /tmp/ccJPteqL.s page 97 + + + 2581 04e8 05EBC202 add r2, r5, r2, lsl #3 + 2582 04ec D66B ldr r6, [r2, #60] +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count += TxPctSize; + 2583 .loc 1 1937 29 view .LVU847 + 2584 04ee 1E44 add r6, r6, r3 + 2585 04f0 D663 str r6, [r2, #60] +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); + 2586 .loc 1 1938 15 is_stmt 1 view .LVU848 +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); + 2587 .loc 1 1938 17 is_stmt 0 view .LVU849 + 2588 04f2 526C ldr r2, [r2, #68] +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); + 2589 .loc 1 1938 30 view .LVU850 + 2590 04f4 04EB8404 add r4, r4, r4, lsl #2 + 2591 04f8 05EBC404 add r4, r5, r4, lsl #3 + 2592 04fc 1344 add r3, r3, r2 + 2593 .LVL276: +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPStartXfer(hpcd->Instance, ep); + 2594 .loc 1 1938 30 view .LVU851 + 2595 04fe 6364 str r3, [r4, #68] +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2596 .loc 1 1939 15 is_stmt 1 view .LVU852 +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2597 .loc 1 1939 21 is_stmt 0 view .LVU853 + 2598 0500 FFF7FEFF bl USB_EPStartXfer + 2599 .LVL277: +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2600 .loc 1 1939 21 view .LVU854 + 2601 0504 4BE6 b .L96 + 2602 .LVL278: + 2603 .L119: +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2604 .loc 1 1946 13 is_stmt 1 view .LVU855 +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2605 .loc 1 1946 19 is_stmt 0 view .LVU856 + 2606 0506 3246 mov r2, r6 + 2607 0508 2846 mov r0, r5 + 2608 050a FFF7FEFF bl HAL_PCD_EP_DB_Transmit + 2609 .LVL279: +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2610 .loc 1 1946 19 view .LVU857 + 2611 050e 46E6 b .L96 + 2612 .LVL280: + 2613 .L126: +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2614 .loc 1 1954 3 is_stmt 1 view .LVU858 +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2615 .loc 1 1955 1 is_stmt 0 view .LVU859 + 2616 0510 0020 movs r0, #0 + 2617 0512 BDE8F081 pop {r4, r5, r6, r7, r8, pc} +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2618 .loc 1 1955 1 view .LVU860 + 2619 .cfi_endproc + 2620 .LFE361: + 2622 .section .text.HAL_PCD_SOFCallback,"ax",%progbits + 2623 .align 1 + 2624 .weak HAL_PCD_SOFCallback + ARM GAS /tmp/ccJPteqL.s page 98 + + + 2625 .syntax unified + 2626 .thumb + 2627 .thumb_func + 2629 HAL_PCD_SOFCallback: + 2630 .LVL281: + 2631 .LFB339: +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2632 .loc 1 1202 1 is_stmt 1 view -0 + 2633 .cfi_startproc + 2634 @ args = 0, pretend = 0, frame = 0 + 2635 @ frame_needed = 0, uses_anonymous_args = 0 + 2636 @ link register save eliminated. +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2637 .loc 1 1204 3 view .LVU862 +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2638 .loc 1 1209 1 is_stmt 0 view .LVU863 + 2639 0000 7047 bx lr + 2640 .cfi_endproc + 2641 .LFE339: + 2643 .section .text.HAL_PCD_ResetCallback,"ax",%progbits + 2644 .align 1 + 2645 .weak HAL_PCD_ResetCallback + 2646 .syntax unified + 2647 .thumb + 2648 .thumb_func + 2650 HAL_PCD_ResetCallback: + 2651 .LVL282: + 2652 .LFB340: +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2653 .loc 1 1217 1 is_stmt 1 view -0 + 2654 .cfi_startproc + 2655 @ args = 0, pretend = 0, frame = 0 + 2656 @ frame_needed = 0, uses_anonymous_args = 0 + 2657 @ link register save eliminated. +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2658 .loc 1 1219 3 view .LVU865 +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2659 .loc 1 1224 1 is_stmt 0 view .LVU866 + 2660 0000 7047 bx lr + 2661 .cfi_endproc + 2662 .LFE340: + 2664 .section .text.HAL_PCD_SuspendCallback,"ax",%progbits + 2665 .align 1 + 2666 .weak HAL_PCD_SuspendCallback + 2667 .syntax unified + 2668 .thumb + 2669 .thumb_func + 2671 HAL_PCD_SuspendCallback: + 2672 .LVL283: + 2673 .LFB341: +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2674 .loc 1 1232 1 is_stmt 1 view -0 + 2675 .cfi_startproc + 2676 @ args = 0, pretend = 0, frame = 0 + 2677 @ frame_needed = 0, uses_anonymous_args = 0 + 2678 @ link register save eliminated. +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 99 + + + 2679 .loc 1 1234 3 view .LVU868 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2680 .loc 1 1239 1 is_stmt 0 view .LVU869 + 2681 0000 7047 bx lr + 2682 .cfi_endproc + 2683 .LFE341: + 2685 .section .text.HAL_PCD_ResumeCallback,"ax",%progbits + 2686 .align 1 + 2687 .weak HAL_PCD_ResumeCallback + 2688 .syntax unified + 2689 .thumb + 2690 .thumb_func + 2692 HAL_PCD_ResumeCallback: + 2693 .LVL284: + 2694 .LFB342: +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2695 .loc 1 1247 1 is_stmt 1 view -0 + 2696 .cfi_startproc + 2697 @ args = 0, pretend = 0, frame = 0 + 2698 @ frame_needed = 0, uses_anonymous_args = 0 + 2699 @ link register save eliminated. +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2700 .loc 1 1249 3 view .LVU871 +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2701 .loc 1 1254 1 is_stmt 0 view .LVU872 + 2702 0000 7047 bx lr + 2703 .cfi_endproc + 2704 .LFE342: + 2706 .section .text.HAL_PCD_ISOOUTIncompleteCallback,"ax",%progbits + 2707 .align 1 + 2708 .weak HAL_PCD_ISOOUTIncompleteCallback + 2709 .syntax unified + 2710 .thumb + 2711 .thumb_func + 2713 HAL_PCD_ISOOUTIncompleteCallback: + 2714 .LVL285: + 2715 .LFB343: +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2716 .loc 1 1263 1 is_stmt 1 view -0 + 2717 .cfi_startproc + 2718 @ args = 0, pretend = 0, frame = 0 + 2719 @ frame_needed = 0, uses_anonymous_args = 0 + 2720 @ link register save eliminated. +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); + 2721 .loc 1 1265 3 view .LVU874 +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2722 .loc 1 1266 3 view .LVU875 +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2723 .loc 1 1271 1 is_stmt 0 view .LVU876 + 2724 0000 7047 bx lr + 2725 .cfi_endproc + 2726 .LFE343: + 2728 .section .text.HAL_PCD_ISOINIncompleteCallback,"ax",%progbits + 2729 .align 1 + 2730 .weak HAL_PCD_ISOINIncompleteCallback + 2731 .syntax unified + 2732 .thumb + ARM GAS /tmp/ccJPteqL.s page 100 + + + 2733 .thumb_func + 2735 HAL_PCD_ISOINIncompleteCallback: + 2736 .LVL286: + 2737 .LFB344: +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2738 .loc 1 1280 1 is_stmt 1 view -0 + 2739 .cfi_startproc + 2740 @ args = 0, pretend = 0, frame = 0 + 2741 @ frame_needed = 0, uses_anonymous_args = 0 + 2742 @ link register save eliminated. +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(epnum); + 2743 .loc 1 1282 3 view .LVU878 +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2744 .loc 1 1283 3 view .LVU879 +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2745 .loc 1 1288 1 is_stmt 0 view .LVU880 + 2746 0000 7047 bx lr + 2747 .cfi_endproc + 2748 .LFE344: + 2750 .section .text.HAL_PCD_ConnectCallback,"ax",%progbits + 2751 .align 1 + 2752 .weak HAL_PCD_ConnectCallback + 2753 .syntax unified + 2754 .thumb + 2755 .thumb_func + 2757 HAL_PCD_ConnectCallback: + 2758 .LVL287: + 2759 .LFB345: +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2760 .loc 1 1296 1 is_stmt 1 view -0 + 2761 .cfi_startproc + 2762 @ args = 0, pretend = 0, frame = 0 + 2763 @ frame_needed = 0, uses_anonymous_args = 0 + 2764 @ link register save eliminated. +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2765 .loc 1 1298 3 view .LVU882 +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2766 .loc 1 1303 1 is_stmt 0 view .LVU883 + 2767 0000 7047 bx lr + 2768 .cfi_endproc + 2769 .LFE345: + 2771 .section .text.HAL_PCD_DisconnectCallback,"ax",%progbits + 2772 .align 1 + 2773 .weak HAL_PCD_DisconnectCallback + 2774 .syntax unified + 2775 .thumb + 2776 .thumb_func + 2778 HAL_PCD_DisconnectCallback: + 2779 .LVL288: + 2780 .LFB346: +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 2781 .loc 1 1311 1 is_stmt 1 view -0 + 2782 .cfi_startproc + 2783 @ args = 0, pretend = 0, frame = 0 + 2784 @ frame_needed = 0, uses_anonymous_args = 0 + 2785 @ link register save eliminated. +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 101 + + + 2786 .loc 1 1313 3 view .LVU885 +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2787 .loc 1 1318 1 is_stmt 0 view .LVU886 + 2788 0000 7047 bx lr + 2789 .cfi_endproc + 2790 .LFE346: + 2792 .section .text.HAL_PCD_DevConnect,"ax",%progbits + 2793 .align 1 + 2794 .global HAL_PCD_DevConnect + 2795 .syntax unified + 2796 .thumb + 2797 .thumb_func + 2799 HAL_PCD_DevConnect: + 2800 .LVL289: + 2801 .LFB347: +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 2802 .loc 1 1345 1 is_stmt 1 view -0 + 2803 .cfi_startproc + 2804 @ args = 0, pretend = 0, frame = 0 + 2805 @ frame_needed = 0, uses_anonymous_args = 0 +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 2806 .loc 1 1346 3 view .LVU888 +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 2807 .loc 1 1346 3 view .LVU889 + 2808 0000 90F8A832 ldrb r3, [r0, #680] @ zero_extendqisi2 + 2809 0004 012B cmp r3, #1 + 2810 0006 0BD0 beq .L141 +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 2811 .loc 1 1345 1 is_stmt 0 discriminator 2 view .LVU890 + 2812 0008 10B5 push {r4, lr} + 2813 .LCFI13: + 2814 .cfi_def_cfa_offset 8 + 2815 .cfi_offset 4, -8 + 2816 .cfi_offset 14, -4 + 2817 000a 0446 mov r4, r0 +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 2818 .loc 1 1346 3 is_stmt 1 discriminator 2 view .LVU891 + 2819 000c 0123 movs r3, #1 + 2820 000e 80F8A832 strb r3, [r0, #680] +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 2821 .loc 1 1346 3 discriminator 2 view .LVU892 +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2822 .loc 1 1347 3 discriminator 2 view .LVU893 +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2823 .loc 1 1347 9 is_stmt 0 discriminator 2 view .LVU894 + 2824 0012 0068 ldr r0, [r0] + 2825 .LVL290: +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2826 .loc 1 1347 9 discriminator 2 view .LVU895 + 2827 0014 FFF7FEFF bl USB_DevConnect + 2828 .LVL291: +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2829 .loc 1 1348 3 is_stmt 1 discriminator 2 view .LVU896 +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2830 .loc 1 1348 3 discriminator 2 view .LVU897 + 2831 0018 0020 movs r0, #0 + 2832 001a 84F8A802 strb r0, [r4, #680] + ARM GAS /tmp/ccJPteqL.s page 102 + + +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2833 .loc 1 1348 3 discriminator 2 view .LVU898 +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2834 .loc 1 1350 3 discriminator 2 view .LVU899 +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2835 .loc 1 1351 1 is_stmt 0 discriminator 2 view .LVU900 + 2836 001e 10BD pop {r4, pc} + 2837 .LVL292: + 2838 .L141: + 2839 .LCFI14: + 2840 .cfi_def_cfa_offset 0 + 2841 .cfi_restore 4 + 2842 .cfi_restore 14 +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevConnect(hpcd->Instance); + 2843 .loc 1 1346 3 view .LVU901 + 2844 0020 0220 movs r0, #2 + 2845 .LVL293: +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2846 .loc 1 1351 1 view .LVU902 + 2847 0022 7047 bx lr + 2848 .cfi_endproc + 2849 .LFE347: + 2851 .section .text.HAL_PCD_DevDisconnect,"ax",%progbits + 2852 .align 1 + 2853 .global HAL_PCD_DevDisconnect + 2854 .syntax unified + 2855 .thumb + 2856 .thumb_func + 2858 HAL_PCD_DevDisconnect: + 2859 .LVL294: + 2860 .LFB348: +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 2861 .loc 1 1359 1 is_stmt 1 view -0 + 2862 .cfi_startproc + 2863 @ args = 0, pretend = 0, frame = 0 + 2864 @ frame_needed = 0, uses_anonymous_args = 0 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 2865 .loc 1 1360 3 view .LVU904 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 2866 .loc 1 1360 3 view .LVU905 + 2867 0000 90F8A832 ldrb r3, [r0, #680] @ zero_extendqisi2 + 2868 0004 012B cmp r3, #1 + 2869 0006 0BD0 beq .L148 +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 2870 .loc 1 1359 1 is_stmt 0 discriminator 2 view .LVU906 + 2871 0008 10B5 push {r4, lr} + 2872 .LCFI15: + 2873 .cfi_def_cfa_offset 8 + 2874 .cfi_offset 4, -8 + 2875 .cfi_offset 14, -4 + 2876 000a 0446 mov r4, r0 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 2877 .loc 1 1360 3 is_stmt 1 discriminator 2 view .LVU907 + 2878 000c 0123 movs r3, #1 + 2879 000e 80F8A832 strb r3, [r0, #680] +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 2880 .loc 1 1360 3 discriminator 2 view .LVU908 + ARM GAS /tmp/ccJPteqL.s page 103 + + +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2881 .loc 1 1361 3 discriminator 2 view .LVU909 +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2882 .loc 1 1361 9 is_stmt 0 discriminator 2 view .LVU910 + 2883 0012 0068 ldr r0, [r0] + 2884 .LVL295: +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2885 .loc 1 1361 9 discriminator 2 view .LVU911 + 2886 0014 FFF7FEFF bl USB_DevDisconnect + 2887 .LVL296: +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2888 .loc 1 1362 3 is_stmt 1 discriminator 2 view .LVU912 +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2889 .loc 1 1362 3 discriminator 2 view .LVU913 + 2890 0018 0020 movs r0, #0 + 2891 001a 84F8A802 strb r0, [r4, #680] +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2892 .loc 1 1362 3 discriminator 2 view .LVU914 +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2893 .loc 1 1364 3 discriminator 2 view .LVU915 +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2894 .loc 1 1365 1 is_stmt 0 discriminator 2 view .LVU916 + 2895 001e 10BD pop {r4, pc} + 2896 .LVL297: + 2897 .L148: + 2898 .LCFI16: + 2899 .cfi_def_cfa_offset 0 + 2900 .cfi_restore 4 + 2901 .cfi_restore 14 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DevDisconnect(hpcd->Instance); + 2902 .loc 1 1360 3 view .LVU917 + 2903 0020 0220 movs r0, #2 + 2904 .LVL298: +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2905 .loc 1 1365 1 view .LVU918 + 2906 0022 7047 bx lr + 2907 .cfi_endproc + 2908 .LFE348: + 2910 .section .text.HAL_PCD_SetAddress,"ax",%progbits + 2911 .align 1 + 2912 .global HAL_PCD_SetAddress + 2913 .syntax unified + 2914 .thumb + 2915 .thumb_func + 2917 HAL_PCD_SetAddress: + 2918 .LVL299: + 2919 .LFB349: +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 2920 .loc 1 1374 1 is_stmt 1 view -0 + 2921 .cfi_startproc + 2922 @ args = 0, pretend = 0, frame = 0 + 2923 @ frame_needed = 0, uses_anonymous_args = 0 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = address; + 2924 .loc 1 1375 3 view .LVU920 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = address; + 2925 .loc 1 1375 3 view .LVU921 + 2926 0000 90F8A832 ldrb r3, [r0, #680] @ zero_extendqisi2 + ARM GAS /tmp/ccJPteqL.s page 104 + + + 2927 0004 012B cmp r3, #1 + 2928 0006 0DD0 beq .L155 +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_LOCK(hpcd); + 2929 .loc 1 1374 1 is_stmt 0 discriminator 2 view .LVU922 + 2930 0008 10B5 push {r4, lr} + 2931 .LCFI17: + 2932 .cfi_def_cfa_offset 8 + 2933 .cfi_offset 4, -8 + 2934 .cfi_offset 14, -4 + 2935 000a 0446 mov r4, r0 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = address; + 2936 .loc 1 1375 3 is_stmt 1 discriminator 2 view .LVU923 + 2937 000c 0123 movs r3, #1 + 2938 000e 80F8A832 strb r3, [r0, #680] +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = address; + 2939 .loc 1 1375 3 discriminator 2 view .LVU924 +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_SetDevAddress(hpcd->Instance, address); + 2940 .loc 1 1376 3 discriminator 2 view .LVU925 +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_SetDevAddress(hpcd->Instance, address); + 2941 .loc 1 1376 21 is_stmt 0 discriminator 2 view .LVU926 + 2942 0012 80F82410 strb r1, [r0, #36] +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2943 .loc 1 1377 3 is_stmt 1 discriminator 2 view .LVU927 +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2944 .loc 1 1377 9 is_stmt 0 discriminator 2 view .LVU928 + 2945 0016 0068 ldr r0, [r0] + 2946 .LVL300: +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 2947 .loc 1 1377 9 discriminator 2 view .LVU929 + 2948 0018 FFF7FEFF bl USB_SetDevAddress + 2949 .LVL301: +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2950 .loc 1 1378 3 is_stmt 1 discriminator 2 view .LVU930 +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2951 .loc 1 1378 3 discriminator 2 view .LVU931 + 2952 001c 0020 movs r0, #0 + 2953 001e 84F8A802 strb r0, [r4, #680] +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2954 .loc 1 1378 3 discriminator 2 view .LVU932 +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 2955 .loc 1 1380 3 discriminator 2 view .LVU933 +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 2956 .loc 1 1381 1 is_stmt 0 discriminator 2 view .LVU934 + 2957 0022 10BD pop {r4, pc} + 2958 .LVL302: + 2959 .L155: + 2960 .LCFI18: + 2961 .cfi_def_cfa_offset 0 + 2962 .cfi_restore 4 + 2963 .cfi_restore 14 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->USB_Address = address; + 2964 .loc 1 1375 3 view .LVU935 + 2965 0024 0220 movs r0, #2 + 2966 .LVL303: +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 2967 .loc 1 1381 1 view .LVU936 + 2968 0026 7047 bx lr + ARM GAS /tmp/ccJPteqL.s page 105 + + + 2969 .cfi_endproc + 2970 .LFE349: + 2972 .section .text.HAL_PCD_IRQHandler,"ax",%progbits + 2973 .align 1 + 2974 .global HAL_PCD_IRQHandler + 2975 .syntax unified + 2976 .thumb + 2977 .thumb_func + 2979 HAL_PCD_IRQHandler: + 2980 .LVL304: + 2981 .LFB335: +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint32_t wIstr = USB_ReadInterrupts(hpcd->Instance); + 2982 .loc 1 1009 1 is_stmt 1 view -0 + 2983 .cfi_startproc + 2984 @ args = 0, pretend = 0, frame = 0 + 2985 @ frame_needed = 0, uses_anonymous_args = 0 +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** uint32_t wIstr = USB_ReadInterrupts(hpcd->Instance); + 2986 .loc 1 1009 1 is_stmt 0 view .LVU938 + 2987 0000 10B5 push {r4, lr} + 2988 .LCFI19: + 2989 .cfi_def_cfa_offset 8 + 2990 .cfi_offset 4, -8 + 2991 .cfi_offset 14, -4 + 2992 0002 0446 mov r4, r0 +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2993 .loc 1 1010 3 is_stmt 1 view .LVU939 +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2994 .loc 1 1010 20 is_stmt 0 view .LVU940 + 2995 0004 0068 ldr r0, [r0] + 2996 .LVL305: +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 2997 .loc 1 1010 20 view .LVU941 + 2998 0006 FFF7FEFF bl USB_ReadInterrupts + 2999 .LVL306: +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3000 .loc 1 1012 3 is_stmt 1 view .LVU942 +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3001 .loc 1 1012 6 is_stmt 0 view .LVU943 + 3002 000a 10F4004F tst r0, #32768 + 3003 000e 23D1 bne .L174 +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3004 .loc 1 1021 3 is_stmt 1 view .LVU944 +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3005 .loc 1 1021 6 is_stmt 0 view .LVU945 + 3006 0010 10F4806F tst r0, #1024 + 3007 0014 24D1 bne .L175 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3008 .loc 1 1036 3 is_stmt 1 view .LVU946 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3009 .loc 1 1036 6 is_stmt 0 view .LVU947 + 3010 0016 10F4804F tst r0, #16384 + 3011 001a 32D1 bne .L176 +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3012 .loc 1 1043 3 is_stmt 1 view .LVU948 +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3013 .loc 1 1043 6 is_stmt 0 view .LVU949 + 3014 001c 10F4005F tst r0, #8192 + ARM GAS /tmp/ccJPteqL.s page 106 + + + 3015 0020 39D1 bne .L177 +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3016 .loc 1 1050 3 is_stmt 1 view .LVU950 +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3017 .loc 1 1050 6 is_stmt 0 view .LVU951 + 3018 0022 10F4805F tst r0, #4096 + 3019 0026 40D1 bne .L178 +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3020 .loc 1 1076 3 is_stmt 1 view .LVU952 +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3021 .loc 1 1076 6 is_stmt 0 view .LVU953 + 3022 0028 10F4006F tst r0, #2048 + 3023 002c 67D1 bne .L179 +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3024 .loc 1 1096 3 is_stmt 1 view .LVU954 +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3025 .loc 1 1096 6 is_stmt 0 view .LVU955 + 3026 002e 10F0800F tst r0, #128 + 3027 0032 40F08180 bne .L180 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3028 .loc 1 1125 3 is_stmt 1 view .LVU956 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3029 .loc 1 1125 6 is_stmt 0 view .LVU957 + 3030 0036 10F4007F tst r0, #512 + 3031 003a 40F0AD80 bne .L181 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3032 .loc 1 1138 3 is_stmt 1 view .LVU958 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3033 .loc 1 1138 6 is_stmt 0 view .LVU959 + 3034 003e 10F4807F tst r0, #256 + 3035 0042 27D0 beq .L160 +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3036 .loc 1 1141 5 is_stmt 1 view .LVU960 + 3037 0044 2268 ldr r2, [r4] + 3038 0046 B2F84430 ldrh r3, [r2, #68] + 3039 004a 9BB2 uxth r3, r3 + 3040 004c 23F48073 bic r3, r3, #256 + 3041 0050 9BB2 uxth r3, r3 + 3042 0052 A2F84430 strh r3, [r2, #68] @ movhi +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3043 .loc 1 1143 5 view .LVU961 + 3044 0056 1DE0 b .L160 + 3045 .L174: +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3046 .loc 1 1016 5 view .LVU962 +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3047 .loc 1 1016 11 is_stmt 0 view .LVU963 + 3048 0058 2046 mov r0, r4 + 3049 .LVL307: +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3050 .loc 1 1016 11 view .LVU964 + 3051 005a FFF7FEFF bl PCD_EP_ISR_Handler + 3052 .LVL308: +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3053 .loc 1 1018 5 is_stmt 1 view .LVU965 + 3054 005e 19E0 b .L160 + 3055 .LVL309: + ARM GAS /tmp/ccJPteqL.s page 107 + + + 3056 .L175: +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3057 .loc 1 1023 5 view .LVU966 + 3058 0060 2268 ldr r2, [r4] + 3059 0062 B2F84430 ldrh r3, [r2, #68] + 3060 0066 9BB2 uxth r3, r3 + 3061 0068 23F48063 bic r3, r3, #1024 + 3062 006c 9BB2 uxth r3, r3 + 3063 006e A2F84430 strh r3, [r2, #68] @ movhi +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3064 .loc 1 1028 5 view .LVU967 + 3065 0072 2046 mov r0, r4 + 3066 .LVL310: +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3067 .loc 1 1028 5 is_stmt 0 view .LVU968 + 3068 0074 FFF7FEFF bl HAL_PCD_ResetCallback + 3069 .LVL311: +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3070 .loc 1 1031 5 is_stmt 1 view .LVU969 +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3071 .loc 1 1031 11 is_stmt 0 view .LVU970 + 3072 0078 0021 movs r1, #0 + 3073 007a 2046 mov r0, r4 + 3074 007c FFF7FEFF bl HAL_PCD_SetAddress + 3075 .LVL312: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3076 .loc 1 1033 5 is_stmt 1 view .LVU971 + 3077 0080 08E0 b .L160 + 3078 .LVL313: + 3079 .L176: +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3080 .loc 1 1038 5 view .LVU972 + 3081 0082 2268 ldr r2, [r4] + 3082 0084 B2F84430 ldrh r3, [r2, #68] + 3083 0088 9BB2 uxth r3, r3 + 3084 008a 23F48043 bic r3, r3, #16384 + 3085 008e 9BB2 uxth r3, r3 + 3086 0090 A2F84430 strh r3, [r2, #68] @ movhi +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3087 .loc 1 1040 5 view .LVU973 + 3088 .LVL314: + 3089 .L160: +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3090 .loc 1 1145 1 is_stmt 0 view .LVU974 + 3091 0094 10BD pop {r4, pc} + 3092 .LVL315: + 3093 .L177: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3094 .loc 1 1045 5 is_stmt 1 view .LVU975 + 3095 0096 2268 ldr r2, [r4] + 3096 0098 B2F84430 ldrh r3, [r2, #68] + 3097 009c 9BB2 uxth r3, r3 + 3098 009e 23F40053 bic r3, r3, #8192 + 3099 00a2 9BB2 uxth r3, r3 + 3100 00a4 A2F84430 strh r3, [r2, #68] @ movhi +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3101 .loc 1 1047 5 view .LVU976 + ARM GAS /tmp/ccJPteqL.s page 108 + + + 3102 00a8 F4E7 b .L160 + 3103 .L178: +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); + 3104 .loc 1 1052 5 view .LVU977 +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); + 3105 .loc 1 1052 9 is_stmt 0 view .LVU978 + 3106 00aa 2268 ldr r2, [r4] +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); + 3107 .loc 1 1052 19 view .LVU979 + 3108 00ac B2F84030 ldrh r3, [r2, #64] + 3109 00b0 9BB2 uxth r3, r3 +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); + 3110 .loc 1 1052 26 view .LVU980 + 3111 00b2 23F00403 bic r3, r3, #4 + 3112 00b6 9BB2 uxth r3, r3 + 3113 00b8 A2F84030 strh r3, [r2, #64] @ movhi +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3114 .loc 1 1053 5 is_stmt 1 view .LVU981 +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3115 .loc 1 1053 9 is_stmt 0 view .LVU982 + 3116 00bc 2268 ldr r2, [r4] +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3117 .loc 1 1053 19 view .LVU983 + 3118 00be B2F84030 ldrh r3, [r2, #64] + 3119 00c2 9BB2 uxth r3, r3 +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3120 .loc 1 1053 26 view .LVU984 + 3121 00c4 23F00803 bic r3, r3, #8 + 3122 00c8 9BB2 uxth r3, r3 + 3123 00ca A2F84030 strh r3, [r2, #64] @ movhi +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3124 .loc 1 1055 5 is_stmt 1 view .LVU985 +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3125 .loc 1 1055 13 is_stmt 0 view .LVU986 + 3126 00ce 94F8E032 ldrb r3, [r4, #736] @ zero_extendqisi2 +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3127 .loc 1 1055 8 view .LVU987 + 3128 00d2 012B cmp r3, #1 + 3129 00d4 0CD0 beq .L182 + 3130 .LVL316: + 3131 .L167: +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3132 .loc 1 1068 5 is_stmt 1 view .LVU988 + 3133 00d6 2046 mov r0, r4 + 3134 00d8 FFF7FEFF bl HAL_PCD_ResumeCallback + 3135 .LVL317: +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3136 .loc 1 1071 5 view .LVU989 + 3137 00dc 2268 ldr r2, [r4] + 3138 00de B2F84430 ldrh r3, [r2, #68] + 3139 00e2 9BB2 uxth r3, r3 + 3140 00e4 23F48053 bic r3, r3, #4096 + 3141 00e8 9BB2 uxth r3, r3 + 3142 00ea A2F84430 strh r3, [r2, #68] @ movhi +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3143 .loc 1 1073 5 view .LVU990 + 3144 00ee D1E7 b .L160 + ARM GAS /tmp/ccJPteqL.s page 109 + + + 3145 .LVL318: + 3146 .L182: +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3147 .loc 1 1057 7 view .LVU991 +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3148 .loc 1 1057 23 is_stmt 0 view .LVU992 + 3149 00f0 0021 movs r1, #0 + 3150 00f2 84F8E012 strb r1, [r4, #736] +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3151 .loc 1 1061 7 is_stmt 1 view .LVU993 + 3152 00f6 2046 mov r0, r4 + 3153 .LVL319: +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3154 .loc 1 1061 7 is_stmt 0 view .LVU994 + 3155 00f8 FFF7FEFF bl HAL_PCDEx_LPM_Callback + 3156 .LVL320: + 3157 00fc EBE7 b .L167 + 3158 .LVL321: + 3159 .L179: +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3160 .loc 1 1079 5 is_stmt 1 view .LVU995 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3161 .loc 1 1079 9 is_stmt 0 view .LVU996 + 3162 00fe 2268 ldr r2, [r4] +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3163 .loc 1 1079 19 view .LVU997 + 3164 0100 B2F84030 ldrh r3, [r2, #64] + 3165 0104 9BB2 uxth r3, r3 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3166 .loc 1 1079 26 view .LVU998 + 3167 0106 43F00803 orr r3, r3, #8 + 3168 010a A2F84030 strh r3, [r2, #64] @ movhi +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3169 .loc 1 1082 5 is_stmt 1 view .LVU999 + 3170 010e 2268 ldr r2, [r4] + 3171 0110 B2F84430 ldrh r3, [r2, #68] + 3172 0114 9BB2 uxth r3, r3 + 3173 0116 23F40063 bic r3, r3, #2048 + 3174 011a 9BB2 uxth r3, r3 + 3175 011c A2F84430 strh r3, [r2, #68] @ movhi +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3176 .loc 1 1084 5 view .LVU1000 +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3177 .loc 1 1084 9 is_stmt 0 view .LVU1001 + 3178 0120 2268 ldr r2, [r4] +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3179 .loc 1 1084 19 view .LVU1002 + 3180 0122 B2F84030 ldrh r3, [r2, #64] + 3181 0126 9BB2 uxth r3, r3 +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3182 .loc 1 1084 26 view .LVU1003 + 3183 0128 43F00403 orr r3, r3, #4 + 3184 012c A2F84030 strh r3, [r2, #64] @ movhi +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3185 .loc 1 1089 5 is_stmt 1 view .LVU1004 + 3186 0130 2046 mov r0, r4 + 3187 .LVL322: + ARM GAS /tmp/ccJPteqL.s page 110 + + +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3188 .loc 1 1089 5 is_stmt 0 view .LVU1005 + 3189 0132 FFF7FEFF bl HAL_PCD_SuspendCallback + 3190 .LVL323: +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3191 .loc 1 1092 5 is_stmt 1 view .LVU1006 + 3192 0136 ADE7 b .L160 + 3193 .LVL324: + 3194 .L180: +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** if (hpcd->LPM_State == LPM_L0) + 3195 .loc 1 1098 5 view .LVU1007 + 3196 0138 2268 ldr r2, [r4] + 3197 013a B2F84430 ldrh r3, [r2, #68] + 3198 013e 9BB2 uxth r3, r3 + 3199 0140 23F08003 bic r3, r3, #128 + 3200 0144 9BB2 uxth r3, r3 + 3201 0146 A2F84430 strh r3, [r2, #68] @ movhi +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3202 .loc 1 1099 5 view .LVU1008 +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3203 .loc 1 1099 13 is_stmt 0 view .LVU1009 + 3204 014a 94F8E032 ldrb r3, [r4, #736] @ zero_extendqisi2 +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3205 .loc 1 1099 8 view .LVU1010 + 3206 014e FBB9 cbnz r3, .L170 +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; + 3207 .loc 1 1102 7 is_stmt 1 view .LVU1011 +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; + 3208 .loc 1 1102 11 is_stmt 0 view .LVU1012 + 3209 0150 2268 ldr r2, [r4] +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; + 3210 .loc 1 1102 21 view .LVU1013 + 3211 0152 B2F84030 ldrh r3, [r2, #64] + 3212 0156 9BB2 uxth r3, r3 +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; + 3213 .loc 1 1102 28 view .LVU1014 + 3214 0158 43F00403 orr r3, r3, #4 + 3215 015c A2F84030 strh r3, [r2, #64] @ movhi +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3216 .loc 1 1103 7 is_stmt 1 view .LVU1015 +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3217 .loc 1 1103 11 is_stmt 0 view .LVU1016 + 3218 0160 2268 ldr r2, [r4] +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3219 .loc 1 1103 21 view .LVU1017 + 3220 0162 B2F84030 ldrh r3, [r2, #64] + 3221 0166 9BB2 uxth r3, r3 +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3222 .loc 1 1103 28 view .LVU1018 + 3223 0168 43F00803 orr r3, r3, #8 + 3224 016c A2F84030 strh r3, [r2, #64] @ movhi +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->BESL = ((uint32_t)hpcd->Instance->LPMCSR & USB_LPMCSR_BESL) >> 2; + 3225 .loc 1 1105 7 is_stmt 1 view .LVU1019 +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** hpcd->BESL = ((uint32_t)hpcd->Instance->LPMCSR & USB_LPMCSR_BESL) >> 2; + 3226 .loc 1 1105 23 is_stmt 0 view .LVU1020 + 3227 0170 0121 movs r1, #1 + 3228 0172 84F8E012 strb r1, [r4, #736] + ARM GAS /tmp/ccJPteqL.s page 111 + + +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3229 .loc 1 1106 7 is_stmt 1 view .LVU1021 +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3230 .loc 1 1106 35 is_stmt 0 view .LVU1022 + 3231 0176 2368 ldr r3, [r4] +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3232 .loc 1 1106 45 view .LVU1023 + 3233 0178 B3F85430 ldrh r3, [r3, #84] +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3234 .loc 1 1106 73 view .LVU1024 + 3235 017c C3F38D03 ubfx r3, r3, #2, #14 + 3236 0180 03F03C03 and r3, r3, #60 +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 3237 .loc 1 1106 18 view .LVU1025 + 3238 0184 C4F8E432 str r3, [r4, #740] +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3239 .loc 1 1110 7 is_stmt 1 view .LVU1026 + 3240 0188 2046 mov r0, r4 + 3241 .LVL325: +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3242 .loc 1 1110 7 is_stmt 0 view .LVU1027 + 3243 018a FFF7FEFF bl HAL_PCDEx_LPM_Callback + 3244 .LVL326: + 3245 018e 81E7 b .L160 + 3246 .LVL327: + 3247 .L170: +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3248 .loc 1 1118 7 is_stmt 1 view .LVU1028 + 3249 0190 2046 mov r0, r4 + 3250 .LVL328: +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3251 .loc 1 1118 7 is_stmt 0 view .LVU1029 + 3252 0192 FFF7FEFF bl HAL_PCD_SuspendCallback + 3253 .LVL329: +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3254 .loc 1 1122 5 is_stmt 1 view .LVU1030 + 3255 0196 7DE7 b .L160 + 3256 .LVL330: + 3257 .L181: +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3258 .loc 1 1127 5 view .LVU1031 + 3259 0198 2268 ldr r2, [r4] + 3260 019a B2F84430 ldrh r3, [r2, #68] + 3261 019e 9BB2 uxth r3, r3 + 3262 01a0 23F40073 bic r3, r3, #512 + 3263 01a4 9BB2 uxth r3, r3 + 3264 01a6 A2F84430 strh r3, [r2, #68] @ movhi +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3265 .loc 1 1132 5 view .LVU1032 + 3266 01aa 2046 mov r0, r4 + 3267 .LVL331: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 3268 .loc 1 1132 5 is_stmt 0 view .LVU1033 + 3269 01ac FFF7FEFF bl HAL_PCD_SOFCallback + 3270 .LVL332: +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3271 .loc 1 1135 5 is_stmt 1 view .LVU1034 + ARM GAS /tmp/ccJPteqL.s page 112 + + + 3272 01b0 70E7 b .L160 + 3273 .cfi_endproc + 3274 .LFE335: + 3276 .section .text.HAL_PCD_EP_Open,"ax",%progbits + 3277 .align 1 + 3278 .global HAL_PCD_EP_Open + 3279 .syntax unified + 3280 .thumb + 3281 .thumb_func + 3283 HAL_PCD_EP_Open: + 3284 .LVL333: + 3285 .LFB350: +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef ret = HAL_OK; + 3286 .loc 1 1392 1 view -0 + 3287 .cfi_startproc + 3288 @ args = 0, pretend = 0, frame = 0 + 3289 @ frame_needed = 0, uses_anonymous_args = 0 +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** HAL_StatusTypeDef ret = HAL_OK; + 3290 .loc 1 1392 1 is_stmt 0 view .LVU1036 + 3291 0000 10B5 push {r4, lr} + 3292 .LCFI20: + 3293 .cfi_def_cfa_offset 8 + 3294 .cfi_offset 4, -8 + 3295 .cfi_offset 14, -4 + 3296 0002 0446 mov r4, r0 + 3297 0004 8C46 mov ip, r1 +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3298 .loc 1 1393 3 is_stmt 1 view .LVU1037 + 3299 .LVL334: +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3300 .loc 1 1394 3 view .LVU1038 +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3301 .loc 1 1396 3 view .LVU1039 +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3302 .loc 1 1396 6 is_stmt 0 view .LVU1040 + 3303 0006 11F0800F tst r1, #128 + 3304 000a 2AD1 bne .L191 +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3305 .loc 1 1403 5 is_stmt 1 view .LVU1041 +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3306 .loc 1 1403 32 is_stmt 0 view .LVU1042 + 3307 000c 01F00700 and r0, r1, #7 + 3308 .LVL335: +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3309 .loc 1 1403 8 view .LVU1043 + 3310 0010 00EB8001 add r1, r0, r0, lsl #2 + 3311 .LVL336: +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3312 .loc 1 1403 8 view .LVU1044 + 3313 0014 C900 lsls r1, r1, #3 + 3314 0016 01F5B47E add lr, r1, #360 + 3315 001a 04EB0E01 add r1, r4, lr + 3316 .LVL337: +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3317 .loc 1 1404 5 is_stmt 1 view .LVU1045 +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3318 .loc 1 1404 15 is_stmt 0 view .LVU1046 + ARM GAS /tmp/ccJPteqL.s page 113 + + + 3319 001e 00EB8000 add r0, r0, r0, lsl #2 + 3320 0022 04EBC000 add r0, r4, r0, lsl #3 + 3321 0026 4FF0000E mov lr, #0 + 3322 002a 80F869E1 strb lr, [r0, #361] + 3323 .L185: +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->maxpacket = ep_mps; + 3324 .loc 1 1407 3 is_stmt 1 view .LVU1047 +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->maxpacket = ep_mps; + 3325 .loc 1 1407 21 is_stmt 0 view .LVU1048 + 3326 002e 0CF0070C and ip, ip, #7 +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->maxpacket = ep_mps; + 3327 .loc 1 1407 11 view .LVU1049 + 3328 0032 81F800C0 strb ip, [r1] +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->type = ep_type; + 3329 .loc 1 1408 3 is_stmt 1 view .LVU1050 +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->type = ep_type; + 3330 .loc 1 1408 17 is_stmt 0 view .LVU1051 + 3331 0036 0A61 str r2, [r1, #16] +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3332 .loc 1 1409 3 is_stmt 1 view .LVU1052 +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3333 .loc 1 1409 12 is_stmt 0 view .LVU1053 + 3334 0038 CB70 strb r3, [r1, #3] +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3335 .loc 1 1411 3 is_stmt 1 view .LVU1054 +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3336 .loc 1 1411 9 is_stmt 0 view .LVU1055 + 3337 003a 4A78 ldrb r2, [r1, #1] @ zero_extendqisi2 + 3338 .LVL338: +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3339 .loc 1 1411 6 view .LVU1056 + 3340 003c 0AB1 cbz r2, .L186 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3341 .loc 1 1414 5 is_stmt 1 view .LVU1057 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3342 .loc 1 1414 21 is_stmt 0 view .LVU1058 + 3343 003e A1F80EC0 strh ip, [r1, #14] @ movhi + 3344 .L186: +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3345 .loc 1 1417 3 is_stmt 1 view .LVU1059 +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3346 .loc 1 1417 6 is_stmt 0 view .LVU1060 + 3347 0042 022B cmp r3, #2 + 3348 0044 19D0 beq .L192 + 3349 .LVL339: + 3350 .L187: +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_ActivateEndpoint(hpcd->Instance, ep); + 3351 .loc 1 1422 3 is_stmt 1 view .LVU1061 +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_ActivateEndpoint(hpcd->Instance, ep); + 3352 .loc 1 1422 3 view .LVU1062 + 3353 0046 94F8A832 ldrb r3, [r4, #680] @ zero_extendqisi2 + 3354 004a 012B cmp r3, #1 + 3355 004c 18D0 beq .L189 +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_ActivateEndpoint(hpcd->Instance, ep); + 3356 .loc 1 1422 3 discriminator 2 view .LVU1063 + 3357 004e 0123 movs r3, #1 + 3358 0050 84F8A832 strb r3, [r4, #680] + ARM GAS /tmp/ccJPteqL.s page 114 + + + 3359 .LVL340: +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_ActivateEndpoint(hpcd->Instance, ep); + 3360 .loc 1 1422 3 discriminator 2 view .LVU1064 +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 3361 .loc 1 1423 3 discriminator 2 view .LVU1065 +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 3362 .loc 1 1423 9 is_stmt 0 discriminator 2 view .LVU1066 + 3363 0054 2068 ldr r0, [r4] + 3364 0056 FFF7FEFF bl USB_ActivateEndpoint + 3365 .LVL341: +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3366 .loc 1 1424 3 is_stmt 1 discriminator 2 view .LVU1067 +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3367 .loc 1 1424 3 discriminator 2 view .LVU1068 + 3368 005a 0020 movs r0, #0 + 3369 005c 84F8A802 strb r0, [r4, #680] +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3370 .loc 1 1424 3 discriminator 2 view .LVU1069 +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3371 .loc 1 1426 3 discriminator 2 view .LVU1070 + 3372 .L188: +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3373 .loc 1 1427 1 is_stmt 0 view .LVU1071 + 3374 0060 10BD pop {r4, pc} + 3375 .LVL342: + 3376 .L191: +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3377 .loc 1 1398 5 is_stmt 1 view .LVU1072 +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3378 .loc 1 1398 31 is_stmt 0 view .LVU1073 + 3379 0062 01F00700 and r0, r1, #7 + 3380 .LVL343: +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3381 .loc 1 1398 8 view .LVU1074 + 3382 0066 0130 adds r0, r0, #1 + 3383 0068 00EB8001 add r1, r0, r0, lsl #2 + 3384 .LVL344: +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3385 .loc 1 1398 8 view .LVU1075 + 3386 006c 04EBC101 add r1, r4, r1, lsl #3 + 3387 .LVL345: +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3388 .loc 1 1399 5 is_stmt 1 view .LVU1076 +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3389 .loc 1 1399 15 is_stmt 0 view .LVU1077 + 3390 0070 4FF0010E mov lr, #1 + 3391 0074 81F801E0 strb lr, [r1, #1] + 3392 0078 D9E7 b .L185 + 3393 .LVL346: + 3394 .L192: +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3395 .loc 1 1419 5 is_stmt 1 view .LVU1078 +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3396 .loc 1 1419 24 is_stmt 0 view .LVU1079 + 3397 007a 0023 movs r3, #0 + 3398 .LVL347: +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 115 + + + 3399 .loc 1 1419 24 view .LVU1080 + 3400 007c 0B71 strb r3, [r1, #4] + 3401 007e E2E7 b .L187 + 3402 .L189: +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_ActivateEndpoint(hpcd->Instance, ep); + 3403 .loc 1 1422 3 view .LVU1081 + 3404 0080 0220 movs r0, #2 + 3405 0082 EDE7 b .L188 + 3406 .cfi_endproc + 3407 .LFE350: + 3409 .section .text.HAL_PCD_EP_Close,"ax",%progbits + 3410 .align 1 + 3411 .global HAL_PCD_EP_Close + 3412 .syntax unified + 3413 .thumb + 3414 .thumb_func + 3416 HAL_PCD_EP_Close: + 3417 .LVL348: + 3418 .LFB351: +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3419 .loc 1 1436 1 is_stmt 1 view -0 + 3420 .cfi_startproc + 3421 @ args = 0, pretend = 0, frame = 0 + 3422 @ frame_needed = 0, uses_anonymous_args = 0 +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3423 .loc 1 1436 1 is_stmt 0 view .LVU1083 + 3424 0000 10B5 push {r4, lr} + 3425 .LCFI21: + 3426 .cfi_def_cfa_offset 8 + 3427 .cfi_offset 4, -8 + 3428 .cfi_offset 14, -4 + 3429 0002 0446 mov r4, r0 + 3430 0004 0B46 mov r3, r1 +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3431 .loc 1 1437 3 is_stmt 1 view .LVU1084 +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3432 .loc 1 1439 3 view .LVU1085 +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3433 .loc 1 1439 6 is_stmt 0 view .LVU1086 + 3434 0006 11F0800F tst r1, #128 + 3435 000a 1FD1 bne .L199 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3436 .loc 1 1446 5 is_stmt 1 view .LVU1087 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3437 .loc 1 1446 32 is_stmt 0 view .LVU1088 + 3438 000c 01F00702 and r2, r1, #7 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3439 .loc 1 1446 8 view .LVU1089 + 3440 0010 02EB8201 add r1, r2, r2, lsl #2 + 3441 .LVL349: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3442 .loc 1 1446 8 view .LVU1090 + 3443 0014 C900 lsls r1, r1, #3 + 3444 0016 01F5B471 add r1, r1, #360 + 3445 001a 0144 add r1, r1, r0 + 3446 .LVL350: +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 116 + + + 3447 .loc 1 1447 5 is_stmt 1 view .LVU1091 +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3448 .loc 1 1447 15 is_stmt 0 view .LVU1092 + 3449 001c 02EB8202 add r2, r2, r2, lsl #2 + 3450 0020 00EBC202 add r2, r0, r2, lsl #3 + 3451 0024 0020 movs r0, #0 + 3452 .LVL351: +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3453 .loc 1 1447 15 view .LVU1093 + 3454 0026 82F86901 strb r0, [r2, #361] + 3455 .L195: +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3456 .loc 1 1449 3 is_stmt 1 view .LVU1094 +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3457 .loc 1 1449 23 is_stmt 0 view .LVU1095 + 3458 002a 03F00703 and r3, r3, #7 +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3459 .loc 1 1449 13 view .LVU1096 + 3460 002e 0B70 strb r3, [r1] +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DeactivateEndpoint(hpcd->Instance, ep); + 3461 .loc 1 1451 3 is_stmt 1 view .LVU1097 +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DeactivateEndpoint(hpcd->Instance, ep); + 3462 .loc 1 1451 3 view .LVU1098 + 3463 0030 94F8A832 ldrb r3, [r4, #680] @ zero_extendqisi2 + 3464 0034 012B cmp r3, #1 + 3465 0036 13D0 beq .L197 +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DeactivateEndpoint(hpcd->Instance, ep); + 3466 .loc 1 1451 3 discriminator 2 view .LVU1099 + 3467 0038 0123 movs r3, #1 + 3468 003a 84F8A832 strb r3, [r4, #680] +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DeactivateEndpoint(hpcd->Instance, ep); + 3469 .loc 1 1451 3 discriminator 2 view .LVU1100 +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 3470 .loc 1 1452 3 discriminator 2 view .LVU1101 +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 3471 .loc 1 1452 9 is_stmt 0 discriminator 2 view .LVU1102 + 3472 003e 2068 ldr r0, [r4] + 3473 0040 FFF7FEFF bl USB_DeactivateEndpoint + 3474 .LVL352: +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 3475 .loc 1 1453 3 is_stmt 1 discriminator 2 view .LVU1103 +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 3476 .loc 1 1453 3 discriminator 2 view .LVU1104 + 3477 0044 0020 movs r0, #0 + 3478 0046 84F8A802 strb r0, [r4, #680] +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return HAL_OK; + 3479 .loc 1 1453 3 discriminator 2 view .LVU1105 +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3480 .loc 1 1454 3 discriminator 2 view .LVU1106 + 3481 .L196: +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3482 .loc 1 1455 1 is_stmt 0 view .LVU1107 + 3483 004a 10BD pop {r4, pc} + 3484 .LVL353: + 3485 .L199: +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3486 .loc 1 1441 5 is_stmt 1 view .LVU1108 + ARM GAS /tmp/ccJPteqL.s page 117 + + +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3487 .loc 1 1441 31 is_stmt 0 view .LVU1109 + 3488 004c 01F00702 and r2, r1, #7 +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3489 .loc 1 1441 8 view .LVU1110 + 3490 0050 0132 adds r2, r2, #1 + 3491 0052 02EB8201 add r1, r2, r2, lsl #2 + 3492 .LVL354: +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3493 .loc 1 1441 8 view .LVU1111 + 3494 0056 00EBC101 add r1, r0, r1, lsl #3 + 3495 .LVL355: +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3496 .loc 1 1442 5 is_stmt 1 view .LVU1112 +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3497 .loc 1 1442 15 is_stmt 0 view .LVU1113 + 3498 005a 0120 movs r0, #1 + 3499 .LVL356: +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3500 .loc 1 1442 15 view .LVU1114 + 3501 005c 4870 strb r0, [r1, #1] + 3502 005e E4E7 b .L195 + 3503 .L197: +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_DeactivateEndpoint(hpcd->Instance, ep); + 3504 .loc 1 1451 3 view .LVU1115 + 3505 0060 0220 movs r0, #2 + 3506 0062 F2E7 b .L196 + 3507 .cfi_endproc + 3508 .LFE351: + 3510 .section .text.HAL_PCD_EP_Receive,"ax",%progbits + 3511 .align 1 + 3512 .global HAL_PCD_EP_Receive + 3513 .syntax unified + 3514 .thumb + 3515 .thumb_func + 3517 HAL_PCD_EP_Receive: + 3518 .LVL357: + 3519 .LFB352: +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3520 .loc 1 1467 1 is_stmt 1 view -0 + 3521 .cfi_startproc + 3522 @ args = 0, pretend = 0, frame = 0 + 3523 @ frame_needed = 0, uses_anonymous_args = 0 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3524 .loc 1 1467 1 is_stmt 0 view .LVU1117 + 3525 0000 10B5 push {r4, lr} + 3526 .LCFI22: + 3527 .cfi_def_cfa_offset 8 + 3528 .cfi_offset 4, -8 + 3529 .cfi_offset 14, -4 +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3530 .loc 1 1468 3 is_stmt 1 view .LVU1118 +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3531 .loc 1 1470 3 view .LVU1119 + 3532 0002 01F00704 and r4, r1, #7 +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3533 .loc 1 1470 6 is_stmt 0 view .LVU1120 + ARM GAS /tmp/ccJPteqL.s page 118 + + + 3534 0006 04EB8401 add r1, r4, r4, lsl #2 + 3535 .LVL358: +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3536 .loc 1 1470 6 view .LVU1121 + 3537 000a C900 lsls r1, r1, #3 + 3538 000c 01F5B471 add r1, r1, #360 + 3539 0010 0144 add r1, r1, r0 + 3540 .LVL359: +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = len; + 3541 .loc 1 1473 3 is_stmt 1 view .LVU1122 +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = len; + 3542 .loc 1 1473 17 is_stmt 0 view .LVU1123 + 3543 0012 04EB840C add ip, r4, r4, lsl #2 + 3544 0016 00EBCC0C add ip, r0, ip, lsl #3 + 3545 001a CCF87C21 str r2, [ip, #380] +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = 0U; + 3546 .loc 1 1474 3 is_stmt 1 view .LVU1124 +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = 0U; + 3547 .loc 1 1474 16 is_stmt 0 view .LVU1125 + 3548 001e CCF88031 str r3, [ip, #384] +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3549 .loc 1 1475 3 is_stmt 1 view .LVU1126 +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3550 .loc 1 1475 18 is_stmt 0 view .LVU1127 + 3551 0022 0023 movs r3, #0 + 3552 .LVL360: +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3553 .loc 1 1475 18 view .LVU1128 + 3554 0024 CCF88431 str r3, [ip, #388] +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3555 .loc 1 1476 3 is_stmt 1 view .LVU1129 +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3556 .loc 1 1476 13 is_stmt 0 view .LVU1130 + 3557 0028 8CF86931 strb r3, [ip, #361] +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3558 .loc 1 1477 3 is_stmt 1 view .LVU1131 +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3559 .loc 1 1477 11 is_stmt 0 view .LVU1132 + 3560 002c 8CF86841 strb r4, [ip, #360] +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3561 .loc 1 1479 3 is_stmt 1 view .LVU1133 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3562 .loc 1 1479 6 is_stmt 0 view .LVU1134 + 3563 0030 24B9 cbnz r4, .L201 +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3564 .loc 1 1481 5 is_stmt 1 view .LVU1135 +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3565 .loc 1 1481 11 is_stmt 0 view .LVU1136 + 3566 0032 0068 ldr r0, [r0] + 3567 .LVL361: +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3568 .loc 1 1481 11 view .LVU1137 + 3569 0034 FFF7FEFF bl USB_EPStartXfer + 3570 .LVL362: + 3571 .L202: +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3572 .loc 1 1488 3 is_stmt 1 view .LVU1138 + ARM GAS /tmp/ccJPteqL.s page 119 + + +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3573 .loc 1 1489 1 is_stmt 0 view .LVU1139 + 3574 0038 0020 movs r0, #0 + 3575 003a 10BD pop {r4, pc} + 3576 .LVL363: + 3577 .L201: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3578 .loc 1 1485 5 is_stmt 1 view .LVU1140 +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3579 .loc 1 1485 11 is_stmt 0 view .LVU1141 + 3580 003c 0068 ldr r0, [r0] + 3581 .LVL364: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3582 .loc 1 1485 11 view .LVU1142 + 3583 003e FFF7FEFF bl USB_EPStartXfer + 3584 .LVL365: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3585 .loc 1 1485 11 view .LVU1143 + 3586 0042 F9E7 b .L202 + 3587 .cfi_endproc + 3588 .LFE352: + 3590 .section .text.HAL_PCD_EP_GetRxCount,"ax",%progbits + 3591 .align 1 + 3592 .global HAL_PCD_EP_GetRxCount + 3593 .syntax unified + 3594 .thumb + 3595 .thumb_func + 3597 HAL_PCD_EP_GetRxCount: + 3598 .LVL366: + 3599 .LFB353: +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return hpcd->OUT_ep[ep_addr & EP_ADDR_MSK].xfer_count; + 3600 .loc 1 1498 1 is_stmt 1 view -0 + 3601 .cfi_startproc + 3602 @ args = 0, pretend = 0, frame = 0 + 3603 @ frame_needed = 0, uses_anonymous_args = 0 + 3604 @ link register save eliminated. +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3605 .loc 1 1499 3 view .LVU1145 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3606 .loc 1 1499 31 is_stmt 0 view .LVU1146 + 3607 0000 01F00701 and r1, r1, #7 + 3608 .LVL367: +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3609 .loc 1 1499 45 view .LVU1147 + 3610 0004 01EB8101 add r1, r1, r1, lsl #2 + 3611 0008 00EBC100 add r0, r0, r1, lsl #3 + 3612 .LVL368: +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /** + 3613 .loc 1 1500 1 view .LVU1148 + 3614 000c D0F88401 ldr r0, [r0, #388] + 3615 0010 7047 bx lr + 3616 .cfi_endproc + 3617 .LFE353: + 3619 .section .text.HAL_PCD_EP_Transmit,"ax",%progbits + 3620 .align 1 + 3621 .global HAL_PCD_EP_Transmit + 3622 .syntax unified + ARM GAS /tmp/ccJPteqL.s page 120 + + + 3623 .thumb + 3624 .thumb_func + 3626 HAL_PCD_EP_Transmit: + 3627 .LVL369: + 3628 .LFB354: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3629 .loc 1 1510 1 is_stmt 1 view -0 + 3630 .cfi_startproc + 3631 @ args = 0, pretend = 0, frame = 0 + 3632 @ frame_needed = 0, uses_anonymous_args = 0 +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3633 .loc 1 1510 1 is_stmt 0 view .LVU1150 + 3634 0000 10B5 push {r4, lr} + 3635 .LCFI23: + 3636 .cfi_def_cfa_offset 8 + 3637 .cfi_offset 4, -8 + 3638 .cfi_offset 14, -4 +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3639 .loc 1 1511 3 is_stmt 1 view .LVU1151 +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3640 .loc 1 1513 3 view .LVU1152 + 3641 0002 01F00704 and r4, r1, #7 +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3642 .loc 1 1513 6 is_stmt 0 view .LVU1153 + 3643 0006 04F1010C add ip, r4, #1 + 3644 000a 0CEB8C01 add r1, ip, ip, lsl #2 + 3645 .LVL370: +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3646 .loc 1 1513 6 view .LVU1154 + 3647 000e 00EBC101 add r1, r0, r1, lsl #3 + 3648 .LVL371: +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = len; + 3649 .loc 1 1516 3 is_stmt 1 view .LVU1155 +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len = len; + 3650 .loc 1 1516 17 is_stmt 0 view .LVU1156 + 3651 0012 04EB840E add lr, r4, r4, lsl #2 + 3652 0016 00EBCE0E add lr, r0, lr, lsl #3 + 3653 001a CEF83C20 str r2, [lr, #60] +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 1U; + 3654 .loc 1 1517 3 is_stmt 1 view .LVU1157 +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_fill_db = 1U; + 3655 .loc 1 1517 16 is_stmt 0 view .LVU1158 + 3656 001e CEF84030 str r3, [lr, #64] +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = len; + 3657 .loc 1 1518 3 is_stmt 1 view .LVU1159 +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = len; + 3658 .loc 1 1518 20 is_stmt 0 view .LVU1160 + 3659 0022 0122 movs r2, #1 + 3660 .LVL372: +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_len_db = len; + 3661 .loc 1 1518 20 view .LVU1161 + 3662 0024 8EF84C20 strb r2, [lr, #76] +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = 0U; + 3663 .loc 1 1519 3 is_stmt 1 view .LVU1162 +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->xfer_count = 0U; + 3664 .loc 1 1519 19 is_stmt 0 view .LVU1163 + 3665 0028 CEF84830 str r3, [lr, #72] + ARM GAS /tmp/ccJPteqL.s page 121 + + +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3666 .loc 1 1520 3 is_stmt 1 view .LVU1164 +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3667 .loc 1 1520 18 is_stmt 0 view .LVU1165 + 3668 002c 0023 movs r3, #0 + 3669 .LVL373: +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3670 .loc 1 1520 18 view .LVU1166 + 3671 002e CEF84430 str r3, [lr, #68] +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3672 .loc 1 1521 3 is_stmt 1 view .LVU1167 +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3673 .loc 1 1521 13 is_stmt 0 view .LVU1168 + 3674 0032 4A70 strb r2, [r1, #1] + 3675 .LVL374: +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3676 .loc 1 1522 3 is_stmt 1 view .LVU1169 +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3677 .loc 1 1522 11 is_stmt 0 view .LVU1170 + 3678 0034 0CEB8C0C add ip, ip, ip, lsl #2 + 3679 0038 00F83C40 strb r4, [r0, ip, lsl #3] +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3680 .loc 1 1524 3 is_stmt 1 view .LVU1171 +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3681 .loc 1 1524 6 is_stmt 0 view .LVU1172 + 3682 003c 24B9 cbnz r4, .L206 +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3683 .loc 1 1526 5 is_stmt 1 view .LVU1173 +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3684 .loc 1 1526 11 is_stmt 0 view .LVU1174 + 3685 003e 0068 ldr r0, [r0] + 3686 .LVL375: +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3687 .loc 1 1526 11 view .LVU1175 + 3688 0040 FFF7FEFF bl USB_EPStartXfer + 3689 .LVL376: + 3690 .L207: +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3691 .loc 1 1533 3 is_stmt 1 view .LVU1176 +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3692 .loc 1 1534 1 is_stmt 0 view .LVU1177 + 3693 0044 0020 movs r0, #0 + 3694 0046 10BD pop {r4, pc} + 3695 .LVL377: + 3696 .L206: +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3697 .loc 1 1530 5 is_stmt 1 view .LVU1178 +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3698 .loc 1 1530 11 is_stmt 0 view .LVU1179 + 3699 0048 0068 ldr r0, [r0] + 3700 .LVL378: +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3701 .loc 1 1530 11 view .LVU1180 + 3702 004a FFF7FEFF bl USB_EPStartXfer + 3703 .LVL379: +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3704 .loc 1 1530 11 view .LVU1181 + ARM GAS /tmp/ccJPteqL.s page 122 + + + 3705 004e F9E7 b .L207 + 3706 .cfi_endproc + 3707 .LFE354: + 3709 .section .text.HAL_PCD_EP_SetStall,"ax",%progbits + 3710 .align 1 + 3711 .global HAL_PCD_EP_SetStall + 3712 .syntax unified + 3713 .thumb + 3714 .thumb_func + 3716 HAL_PCD_EP_SetStall: + 3717 .LVL380: + 3718 .LFB355: +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3719 .loc 1 1543 1 is_stmt 1 view -0 + 3720 .cfi_startproc + 3721 @ args = 0, pretend = 0, frame = 0 + 3722 @ frame_needed = 0, uses_anonymous_args = 0 +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3723 .loc 1 1543 1 is_stmt 0 view .LVU1183 + 3724 0000 0B46 mov r3, r1 +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3725 .loc 1 1544 3 is_stmt 1 view .LVU1184 +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3726 .loc 1 1546 3 view .LVU1185 + 3727 0002 01F00702 and r2, r1, #7 +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3728 .loc 1 1546 53 is_stmt 0 view .LVU1186 + 3729 0006 4168 ldr r1, [r0, #4] + 3730 .LVL381: +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3731 .loc 1 1546 6 view .LVU1187 + 3732 0008 8A42 cmp r2, r1 + 3733 000a 2AD8 bhi .L213 +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3734 .loc 1 1543 1 view .LVU1188 + 3735 000c 10B5 push {r4, lr} + 3736 .LCFI24: + 3737 .cfi_def_cfa_offset 8 + 3738 .cfi_offset 4, -8 + 3739 .cfi_offset 14, -4 + 3740 000e 0446 mov r4, r0 +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3741 .loc 1 1551 3 is_stmt 1 view .LVU1189 +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3742 .loc 1 1551 6 is_stmt 0 view .LVU1190 + 3743 0010 13F0800F tst r3, #128 + 3744 0014 1DD1 bne .L219 +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3745 .loc 1 1558 5 is_stmt 1 view .LVU1191 +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3746 .loc 1 1558 8 is_stmt 0 view .LVU1192 + 3747 0016 03EB8301 add r1, r3, r3, lsl #2 + 3748 001a C900 lsls r1, r1, #3 + 3749 001c 01F5B471 add r1, r1, #360 + 3750 0020 0144 add r1, r1, r0 + 3751 .LVL382: +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + ARM GAS /tmp/ccJPteqL.s page 123 + + + 3752 .loc 1 1559 5 is_stmt 1 view .LVU1193 +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3753 .loc 1 1559 15 is_stmt 0 view .LVU1194 + 3754 0022 03EB8303 add r3, r3, r3, lsl #2 + 3755 0026 00EBC303 add r3, r0, r3, lsl #3 + 3756 002a 0020 movs r0, #0 + 3757 .LVL383: +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3758 .loc 1 1559 15 view .LVU1195 + 3759 002c 83F86901 strb r0, [r3, #361] + 3760 .L212: +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3761 .loc 1 1562 3 is_stmt 1 view .LVU1196 +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3762 .loc 1 1562 16 is_stmt 0 view .LVU1197 + 3763 0030 0123 movs r3, #1 + 3764 0032 8B70 strb r3, [r1, #2] +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3765 .loc 1 1563 3 is_stmt 1 view .LVU1198 +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3766 .loc 1 1563 11 is_stmt 0 view .LVU1199 + 3767 0034 0A70 strb r2, [r1] +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3768 .loc 1 1565 3 is_stmt 1 view .LVU1200 +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3769 .loc 1 1565 3 view .LVU1201 + 3770 0036 94F8A832 ldrb r3, [r4, #680] @ zero_extendqisi2 + 3771 003a 012B cmp r3, #1 + 3772 003c 13D0 beq .L214 +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3773 .loc 1 1565 3 discriminator 2 view .LVU1202 + 3774 003e 0123 movs r3, #1 + 3775 0040 84F8A832 strb r3, [r4, #680] +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3776 .loc 1 1565 3 discriminator 2 view .LVU1203 +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3777 .loc 1 1567 3 discriminator 2 view .LVU1204 +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3778 .loc 1 1567 9 is_stmt 0 discriminator 2 view .LVU1205 + 3779 0044 2068 ldr r0, [r4] + 3780 0046 FFF7FEFF bl USB_EPSetStall + 3781 .LVL384: +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3782 .loc 1 1569 3 is_stmt 1 discriminator 2 view .LVU1206 +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3783 .loc 1 1569 3 discriminator 2 view .LVU1207 + 3784 004a 0020 movs r0, #0 + 3785 004c 84F8A802 strb r0, [r4, #680] +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3786 .loc 1 1569 3 discriminator 2 view .LVU1208 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3787 .loc 1 1571 3 discriminator 2 view .LVU1209 + 3788 .L210: +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3789 .loc 1 1572 1 is_stmt 0 view .LVU1210 + 3790 0050 10BD pop {r4, pc} + 3791 .LVL385: + ARM GAS /tmp/ccJPteqL.s page 124 + + + 3792 .L219: +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3793 .loc 1 1553 5 is_stmt 1 view .LVU1211 +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3794 .loc 1 1553 8 is_stmt 0 view .LVU1212 + 3795 0052 531C adds r3, r2, #1 + 3796 0054 03EB8301 add r1, r3, r3, lsl #2 + 3797 0058 00EBC101 add r1, r0, r1, lsl #3 + 3798 .LVL386: +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3799 .loc 1 1554 5 is_stmt 1 view .LVU1213 +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3800 .loc 1 1554 15 is_stmt 0 view .LVU1214 + 3801 005c 0120 movs r0, #1 + 3802 .LVL387: +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3803 .loc 1 1554 15 view .LVU1215 + 3804 005e 4870 strb r0, [r1, #1] + 3805 0060 E6E7 b .L212 + 3806 .LVL388: + 3807 .L213: + 3808 .LCFI25: + 3809 .cfi_def_cfa_offset 0 + 3810 .cfi_restore 4 + 3811 .cfi_restore 14 +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3812 .loc 1 1548 12 view .LVU1216 + 3813 0062 0120 movs r0, #1 + 3814 .LVL389: +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3815 .loc 1 1572 1 view .LVU1217 + 3816 0064 7047 bx lr + 3817 .LVL390: + 3818 .L214: + 3819 .LCFI26: + 3820 .cfi_def_cfa_offset 8 + 3821 .cfi_offset 4, -8 + 3822 .cfi_offset 14, -4 +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3823 .loc 1 1565 3 view .LVU1218 + 3824 0066 0220 movs r0, #2 + 3825 0068 F2E7 b .L210 + 3826 .cfi_endproc + 3827 .LFE355: + 3829 .section .text.HAL_PCD_EP_ClrStall,"ax",%progbits + 3830 .align 1 + 3831 .global HAL_PCD_EP_ClrStall + 3832 .syntax unified + 3833 .thumb + 3834 .thumb_func + 3836 HAL_PCD_EP_ClrStall: + 3837 .LVL391: + 3838 .LFB356: +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3839 .loc 1 1581 1 is_stmt 1 view -0 + 3840 .cfi_startproc + 3841 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/ccJPteqL.s page 125 + + + 3842 @ frame_needed = 0, uses_anonymous_args = 0 +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3843 .loc 1 1581 1 is_stmt 0 view .LVU1220 + 3844 0000 0B46 mov r3, r1 +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3845 .loc 1 1582 3 is_stmt 1 view .LVU1221 +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3846 .loc 1 1584 3 view .LVU1222 +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3847 .loc 1 1584 26 is_stmt 0 view .LVU1223 + 3848 0002 01F00F01 and r1, r1, #15 + 3849 .LVL392: +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3850 .loc 1 1584 47 view .LVU1224 + 3851 0006 4268 ldr r2, [r0, #4] +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3852 .loc 1 1584 6 view .LVU1225 + 3853 0008 9142 cmp r1, r2 + 3854 000a 30D8 bhi .L224 +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** PCD_EPTypeDef *ep; + 3855 .loc 1 1581 1 view .LVU1226 + 3856 000c 10B5 push {r4, lr} + 3857 .LCFI27: + 3858 .cfi_def_cfa_offset 8 + 3859 .cfi_offset 4, -8 + 3860 .cfi_offset 14, -4 + 3861 000e 0446 mov r4, r0 +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3862 .loc 1 1589 3 is_stmt 1 view .LVU1227 +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** { + 3863 .loc 1 1589 6 is_stmt 0 view .LVU1228 + 3864 0010 13F0800F tst r3, #128 + 3865 0014 21D1 bne .L230 +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3866 .loc 1 1596 5 is_stmt 1 view .LVU1229 +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3867 .loc 1 1596 32 is_stmt 0 view .LVU1230 + 3868 0016 03F00702 and r2, r3, #7 +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 0U; + 3869 .loc 1 1596 8 view .LVU1231 + 3870 001a 02EB8201 add r1, r2, r2, lsl #2 + 3871 001e C900 lsls r1, r1, #3 + 3872 0020 01F5B471 add r1, r1, #360 + 3873 0024 0144 add r1, r1, r0 + 3874 .LVL393: +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3875 .loc 1 1597 5 is_stmt 1 view .LVU1232 +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3876 .loc 1 1597 15 is_stmt 0 view .LVU1233 + 3877 0026 02EB8202 add r2, r2, r2, lsl #2 + 3878 002a 00EBC202 add r2, r0, r2, lsl #3 + 3879 002e 0020 movs r0, #0 + 3880 .LVL394: +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3881 .loc 1 1597 15 view .LVU1234 + 3882 0030 82F86901 strb r0, [r2, #361] + 3883 .L223: + ARM GAS /tmp/ccJPteqL.s page 126 + + +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3884 .loc 1 1600 3 is_stmt 1 view .LVU1235 +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->num = ep_addr & EP_ADDR_MSK; + 3885 .loc 1 1600 16 is_stmt 0 view .LVU1236 + 3886 0034 0022 movs r2, #0 + 3887 0036 8A70 strb r2, [r1, #2] +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3888 .loc 1 1601 3 is_stmt 1 view .LVU1237 +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3889 .loc 1 1601 21 is_stmt 0 view .LVU1238 + 3890 0038 03F00703 and r3, r3, #7 +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3891 .loc 1 1601 11 view .LVU1239 + 3892 003c 0B70 strb r3, [r1] +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPClearStall(hpcd->Instance, ep); + 3893 .loc 1 1603 3 is_stmt 1 view .LVU1240 +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPClearStall(hpcd->Instance, ep); + 3894 .loc 1 1603 3 view .LVU1241 + 3895 003e 94F8A832 ldrb r3, [r4, #680] @ zero_extendqisi2 + 3896 0042 012B cmp r3, #1 + 3897 0044 15D0 beq .L225 +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPClearStall(hpcd->Instance, ep); + 3898 .loc 1 1603 3 discriminator 2 view .LVU1242 + 3899 0046 0123 movs r3, #1 + 3900 0048 84F8A832 strb r3, [r4, #680] +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPClearStall(hpcd->Instance, ep); + 3901 .loc 1 1603 3 discriminator 2 view .LVU1243 +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 3902 .loc 1 1604 3 discriminator 2 view .LVU1244 +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** __HAL_UNLOCK(hpcd); + 3903 .loc 1 1604 9 is_stmt 0 discriminator 2 view .LVU1245 + 3904 004c 2068 ldr r0, [r4] + 3905 004e FFF7FEFF bl USB_EPClearStall + 3906 .LVL395: +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3907 .loc 1 1605 3 is_stmt 1 discriminator 2 view .LVU1246 +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3908 .loc 1 1605 3 discriminator 2 view .LVU1247 + 3909 0052 0020 movs r0, #0 + 3910 0054 84F8A802 strb r0, [r4, #680] +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3911 .loc 1 1605 3 discriminator 2 view .LVU1248 +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3912 .loc 1 1607 3 discriminator 2 view .LVU1249 + 3913 .L221: +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3914 .loc 1 1608 1 is_stmt 0 view .LVU1250 + 3915 0058 10BD pop {r4, pc} + 3916 .LVL396: + 3917 .L230: +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3918 .loc 1 1591 5 is_stmt 1 view .LVU1251 +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3919 .loc 1 1591 31 is_stmt 0 view .LVU1252 + 3920 005a 03F00702 and r2, r3, #7 +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** ep->is_in = 1U; + 3921 .loc 1 1591 8 view .LVU1253 + ARM GAS /tmp/ccJPteqL.s page 127 + + + 3922 005e 0132 adds r2, r2, #1 + 3923 0060 02EB8201 add r1, r2, r2, lsl #2 + 3924 0064 00EBC101 add r1, r0, r1, lsl #3 + 3925 .LVL397: +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3926 .loc 1 1592 5 is_stmt 1 view .LVU1254 +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3927 .loc 1 1592 15 is_stmt 0 view .LVU1255 + 3928 0068 0120 movs r0, #1 + 3929 .LVL398: +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3930 .loc 1 1592 15 view .LVU1256 + 3931 006a 4870 strb r0, [r1, #1] + 3932 006c E2E7 b .L223 + 3933 .LVL399: + 3934 .L224: + 3935 .LCFI28: + 3936 .cfi_def_cfa_offset 0 + 3937 .cfi_restore 4 + 3938 .cfi_restore 14 +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3939 .loc 1 1586 12 view .LVU1257 + 3940 006e 0120 movs r0, #1 + 3941 .LVL400: +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3942 .loc 1 1608 1 view .LVU1258 + 3943 0070 7047 bx lr + 3944 .LVL401: + 3945 .L225: + 3946 .LCFI29: + 3947 .cfi_def_cfa_offset 8 + 3948 .cfi_offset 4, -8 + 3949 .cfi_offset 14, -4 +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** (void)USB_EPClearStall(hpcd->Instance, ep); + 3950 .loc 1 1603 3 view .LVU1259 + 3951 0072 0220 movs r0, #2 + 3952 0074 F0E7 b .L221 + 3953 .cfi_endproc + 3954 .LFE356: + 3956 .section .text.HAL_PCD_EP_Flush,"ax",%progbits + 3957 .align 1 + 3958 .global HAL_PCD_EP_Flush + 3959 .syntax unified + 3960 .thumb + 3961 .thumb_func + 3963 HAL_PCD_EP_Flush: + 3964 .LVL402: + 3965 .LFB357: +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** /* Prevent unused argument(s) compilation warning */ + 3966 .loc 1 1617 1 is_stmt 1 view -0 + 3967 .cfi_startproc + 3968 @ args = 0, pretend = 0, frame = 0 + 3969 @ frame_needed = 0, uses_anonymous_args = 0 + 3970 @ link register save eliminated. +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** UNUSED(ep_addr); + 3971 .loc 1 1619 3 view .LVU1261 +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + ARM GAS /tmp/ccJPteqL.s page 128 + + + 3972 .loc 1 1620 3 view .LVU1262 +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 3973 .loc 1 1622 3 view .LVU1263 +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3974 .loc 1 1623 1 is_stmt 0 view .LVU1264 + 3975 0000 0020 movs r0, #0 + 3976 .LVL403: +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 3977 .loc 1 1623 1 view .LVU1265 + 3978 0002 7047 bx lr + 3979 .cfi_endproc + 3980 .LFE357: + 3982 .section .text.HAL_PCD_ActivateRemoteWakeup,"ax",%progbits + 3983 .align 1 + 3984 .global HAL_PCD_ActivateRemoteWakeup + 3985 .syntax unified + 3986 .thumb + 3987 .thumb_func + 3989 HAL_PCD_ActivateRemoteWakeup: + 3990 .LVL404: + 3991 .LFB358: +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return (USB_ActivateRemoteWakeup(hpcd->Instance)); + 3992 .loc 1 1631 1 is_stmt 1 view -0 + 3993 .cfi_startproc + 3994 @ args = 0, pretend = 0, frame = 0 + 3995 @ frame_needed = 0, uses_anonymous_args = 0 +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return (USB_ActivateRemoteWakeup(hpcd->Instance)); + 3996 .loc 1 1631 1 is_stmt 0 view .LVU1267 + 3997 0000 08B5 push {r3, lr} + 3998 .LCFI30: + 3999 .cfi_def_cfa_offset 8 + 4000 .cfi_offset 3, -8 + 4001 .cfi_offset 14, -4 +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4002 .loc 1 1632 3 is_stmt 1 view .LVU1268 +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4003 .loc 1 1632 11 is_stmt 0 view .LVU1269 + 4004 0002 0068 ldr r0, [r0] + 4005 .LVL405: +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4006 .loc 1 1632 11 view .LVU1270 + 4007 0004 FFF7FEFF bl USB_ActivateRemoteWakeup + 4008 .LVL406: +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 4009 .loc 1 1633 1 view .LVU1271 + 4010 0008 08BD pop {r3, pc} + 4011 .cfi_endproc + 4012 .LFE358: + 4014 .section .text.HAL_PCD_DeActivateRemoteWakeup,"ax",%progbits + 4015 .align 1 + 4016 .global HAL_PCD_DeActivateRemoteWakeup + 4017 .syntax unified + 4018 .thumb + 4019 .thumb_func + 4021 HAL_PCD_DeActivateRemoteWakeup: + 4022 .LVL407: + 4023 .LFB359: + ARM GAS /tmp/ccJPteqL.s page 129 + + +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return (USB_DeActivateRemoteWakeup(hpcd->Instance)); + 4024 .loc 1 1641 1 is_stmt 1 view -0 + 4025 .cfi_startproc + 4026 @ args = 0, pretend = 0, frame = 0 + 4027 @ frame_needed = 0, uses_anonymous_args = 0 +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return (USB_DeActivateRemoteWakeup(hpcd->Instance)); + 4028 .loc 1 1641 1 is_stmt 0 view .LVU1273 + 4029 0000 08B5 push {r3, lr} + 4030 .LCFI31: + 4031 .cfi_def_cfa_offset 8 + 4032 .cfi_offset 3, -8 + 4033 .cfi_offset 14, -4 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4034 .loc 1 1642 3 is_stmt 1 view .LVU1274 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4035 .loc 1 1642 11 is_stmt 0 view .LVU1275 + 4036 0002 0068 ldr r0, [r0] + 4037 .LVL408: +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4038 .loc 1 1642 11 view .LVU1276 + 4039 0004 FFF7FEFF bl USB_DeActivateRemoteWakeup + 4040 .LVL409: +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 4041 .loc 1 1643 1 view .LVU1277 + 4042 0008 08BD pop {r3, pc} + 4043 .cfi_endproc + 4044 .LFE359: + 4046 .section .text.HAL_PCD_GetState,"ax",%progbits + 4047 .align 1 + 4048 .global HAL_PCD_GetState + 4049 .syntax unified + 4050 .thumb + 4051 .thumb_func + 4053 HAL_PCD_GetState: + 4054 .LVL410: + 4055 .LFB360: +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** return hpcd->State; + 4056 .loc 1 1670 1 is_stmt 1 view -0 + 4057 .cfi_startproc + 4058 @ args = 0, pretend = 0, frame = 0 + 4059 @ frame_needed = 0, uses_anonymous_args = 0 + 4060 @ link register save eliminated. +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4061 .loc 1 1671 3 view .LVU1279 +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** } + 4062 .loc 1 1671 14 is_stmt 0 view .LVU1280 + 4063 0000 90F8A902 ldrb r0, [r0, #681] @ zero_extendqisi2 + 4064 .LVL411: +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd.c **** + 4065 .loc 1 1672 1 view .LVU1281 + 4066 0004 7047 bx lr + 4067 .cfi_endproc + 4068 .LFE360: + 4070 .text + 4071 .Letext0: + 4072 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 4073 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + ARM GAS /tmp/ccJPteqL.s page 130 + + + 4074 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 4075 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h" + 4076 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h" + 4077 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h" + ARM GAS /tmp/ccJPteqL.s page 131 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_pcd.c + /tmp/ccJPteqL.s:21 .text.HAL_PCD_EP_DB_Receive:00000000 $t + /tmp/ccJPteqL.s:26 .text.HAL_PCD_EP_DB_Receive:00000000 HAL_PCD_EP_DB_Receive + /tmp/ccJPteqL.s:275 .text.HAL_PCD_MspInit:00000000 $t + /tmp/ccJPteqL.s:281 .text.HAL_PCD_MspInit:00000000 HAL_PCD_MspInit + /tmp/ccJPteqL.s:296 .text.HAL_PCD_Init:00000000 $t + /tmp/ccJPteqL.s:302 .text.HAL_PCD_Init:00000000 HAL_PCD_Init + /tmp/ccJPteqL.s:508 .text.HAL_PCD_MspDeInit:00000000 $t + /tmp/ccJPteqL.s:514 .text.HAL_PCD_MspDeInit:00000000 HAL_PCD_MspDeInit + /tmp/ccJPteqL.s:529 .text.HAL_PCD_DeInit:00000000 $t + /tmp/ccJPteqL.s:535 .text.HAL_PCD_DeInit:00000000 HAL_PCD_DeInit + /tmp/ccJPteqL.s:597 .text.HAL_PCD_Start:00000000 $t + /tmp/ccJPteqL.s:603 .text.HAL_PCD_Start:00000000 HAL_PCD_Start + /tmp/ccJPteqL.s:660 .text.HAL_PCD_Stop:00000000 $t + /tmp/ccJPteqL.s:666 .text.HAL_PCD_Stop:00000000 HAL_PCD_Stop + /tmp/ccJPteqL.s:723 .text.HAL_PCD_DataOutStageCallback:00000000 $t + /tmp/ccJPteqL.s:729 .text.HAL_PCD_DataOutStageCallback:00000000 HAL_PCD_DataOutStageCallback + /tmp/ccJPteqL.s:745 .text.HAL_PCD_DataInStageCallback:00000000 $t + /tmp/ccJPteqL.s:751 .text.HAL_PCD_DataInStageCallback:00000000 HAL_PCD_DataInStageCallback + /tmp/ccJPteqL.s:767 .text.HAL_PCD_EP_DB_Transmit:00000000 $t + /tmp/ccJPteqL.s:772 .text.HAL_PCD_EP_DB_Transmit:00000000 HAL_PCD_EP_DB_Transmit + /tmp/ccJPteqL.s:1707 .text.HAL_PCD_SetupStageCallback:00000000 $t + /tmp/ccJPteqL.s:1713 .text.HAL_PCD_SetupStageCallback:00000000 HAL_PCD_SetupStageCallback + /tmp/ccJPteqL.s:1728 .text.PCD_EP_ISR_Handler:00000000 $t + /tmp/ccJPteqL.s:1733 .text.PCD_EP_ISR_Handler:00000000 PCD_EP_ISR_Handler + /tmp/ccJPteqL.s:2623 .text.HAL_PCD_SOFCallback:00000000 $t + /tmp/ccJPteqL.s:2629 .text.HAL_PCD_SOFCallback:00000000 HAL_PCD_SOFCallback + /tmp/ccJPteqL.s:2644 .text.HAL_PCD_ResetCallback:00000000 $t + /tmp/ccJPteqL.s:2650 .text.HAL_PCD_ResetCallback:00000000 HAL_PCD_ResetCallback + /tmp/ccJPteqL.s:2665 .text.HAL_PCD_SuspendCallback:00000000 $t + /tmp/ccJPteqL.s:2671 .text.HAL_PCD_SuspendCallback:00000000 HAL_PCD_SuspendCallback + /tmp/ccJPteqL.s:2686 .text.HAL_PCD_ResumeCallback:00000000 $t + /tmp/ccJPteqL.s:2692 .text.HAL_PCD_ResumeCallback:00000000 HAL_PCD_ResumeCallback + /tmp/ccJPteqL.s:2707 .text.HAL_PCD_ISOOUTIncompleteCallback:00000000 $t + /tmp/ccJPteqL.s:2713 .text.HAL_PCD_ISOOUTIncompleteCallback:00000000 HAL_PCD_ISOOUTIncompleteCallback + /tmp/ccJPteqL.s:2729 .text.HAL_PCD_ISOINIncompleteCallback:00000000 $t + /tmp/ccJPteqL.s:2735 .text.HAL_PCD_ISOINIncompleteCallback:00000000 HAL_PCD_ISOINIncompleteCallback + /tmp/ccJPteqL.s:2751 .text.HAL_PCD_ConnectCallback:00000000 $t + /tmp/ccJPteqL.s:2757 .text.HAL_PCD_ConnectCallback:00000000 HAL_PCD_ConnectCallback + /tmp/ccJPteqL.s:2772 .text.HAL_PCD_DisconnectCallback:00000000 $t + /tmp/ccJPteqL.s:2778 .text.HAL_PCD_DisconnectCallback:00000000 HAL_PCD_DisconnectCallback + /tmp/ccJPteqL.s:2793 .text.HAL_PCD_DevConnect:00000000 $t + /tmp/ccJPteqL.s:2799 .text.HAL_PCD_DevConnect:00000000 HAL_PCD_DevConnect + /tmp/ccJPteqL.s:2852 .text.HAL_PCD_DevDisconnect:00000000 $t + /tmp/ccJPteqL.s:2858 .text.HAL_PCD_DevDisconnect:00000000 HAL_PCD_DevDisconnect + /tmp/ccJPteqL.s:2911 .text.HAL_PCD_SetAddress:00000000 $t + /tmp/ccJPteqL.s:2917 .text.HAL_PCD_SetAddress:00000000 HAL_PCD_SetAddress + /tmp/ccJPteqL.s:2973 .text.HAL_PCD_IRQHandler:00000000 $t + /tmp/ccJPteqL.s:2979 .text.HAL_PCD_IRQHandler:00000000 HAL_PCD_IRQHandler + /tmp/ccJPteqL.s:3277 .text.HAL_PCD_EP_Open:00000000 $t + /tmp/ccJPteqL.s:3283 .text.HAL_PCD_EP_Open:00000000 HAL_PCD_EP_Open + /tmp/ccJPteqL.s:3410 .text.HAL_PCD_EP_Close:00000000 $t + /tmp/ccJPteqL.s:3416 .text.HAL_PCD_EP_Close:00000000 HAL_PCD_EP_Close + /tmp/ccJPteqL.s:3511 .text.HAL_PCD_EP_Receive:00000000 $t + /tmp/ccJPteqL.s:3517 .text.HAL_PCD_EP_Receive:00000000 HAL_PCD_EP_Receive + /tmp/ccJPteqL.s:3591 .text.HAL_PCD_EP_GetRxCount:00000000 $t + ARM GAS /tmp/ccJPteqL.s page 132 + + + /tmp/ccJPteqL.s:3597 .text.HAL_PCD_EP_GetRxCount:00000000 HAL_PCD_EP_GetRxCount + /tmp/ccJPteqL.s:3620 .text.HAL_PCD_EP_Transmit:00000000 $t + /tmp/ccJPteqL.s:3626 .text.HAL_PCD_EP_Transmit:00000000 HAL_PCD_EP_Transmit + /tmp/ccJPteqL.s:3710 .text.HAL_PCD_EP_SetStall:00000000 $t + /tmp/ccJPteqL.s:3716 .text.HAL_PCD_EP_SetStall:00000000 HAL_PCD_EP_SetStall + /tmp/ccJPteqL.s:3830 .text.HAL_PCD_EP_ClrStall:00000000 $t + /tmp/ccJPteqL.s:3836 .text.HAL_PCD_EP_ClrStall:00000000 HAL_PCD_EP_ClrStall + /tmp/ccJPteqL.s:3957 .text.HAL_PCD_EP_Flush:00000000 $t + /tmp/ccJPteqL.s:3963 .text.HAL_PCD_EP_Flush:00000000 HAL_PCD_EP_Flush + /tmp/ccJPteqL.s:3983 .text.HAL_PCD_ActivateRemoteWakeup:00000000 $t + /tmp/ccJPteqL.s:3989 .text.HAL_PCD_ActivateRemoteWakeup:00000000 HAL_PCD_ActivateRemoteWakeup + /tmp/ccJPteqL.s:4015 .text.HAL_PCD_DeActivateRemoteWakeup:00000000 $t + /tmp/ccJPteqL.s:4021 .text.HAL_PCD_DeActivateRemoteWakeup:00000000 HAL_PCD_DeActivateRemoteWakeup + /tmp/ccJPteqL.s:4047 .text.HAL_PCD_GetState:00000000 $t + /tmp/ccJPteqL.s:4053 .text.HAL_PCD_GetState:00000000 HAL_PCD_GetState + +UNDEFINED SYMBOLS +USB_ReadPMA +USB_DisableGlobalInt +USB_DevInit +HAL_PCDEx_ActivateLPM +USB_StopDevice +USB_EnableGlobalInt +USB_DevConnect +USB_DevDisconnect +USB_WritePMA +USB_EPStartXfer +USB_SetDevAddress +USB_ReadInterrupts +HAL_PCDEx_LPM_Callback +USB_ActivateEndpoint +USB_DeactivateEndpoint +USB_EPSetStall +USB_EPClearStall +USB_ActivateRemoteWakeup +USB_DeActivateRemoteWakeup diff --git a/squeow_sw/build/stm32g4xx_hal_pcd.o b/squeow_sw/build/stm32g4xx_hal_pcd.o new file mode 100644 index 0000000000000000000000000000000000000000..2768787d5b95db2e7c0c03db4eefde89e3b7f9bb GIT binary patch literal 51184 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

)c4KU;!=4T@h7&OJ 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 icE+*8~5DLZfDXV^+o`)|M%{>5>Z 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 ZDO76n{NZ+5j9vf7EQ_C|^)}D${{UX@1h)VH literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_pcd_ex.d b/squeow_sw/build/stm32g4xx_hal_pcd_ex.d new file mode 100644 index 0000000..bad7882 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_pcd_ex.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_pcd_ex.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_pcd_ex.lst b/squeow_sw/build/stm32g4xx_hal_pcd_ex.lst new file mode 100644 index 0000000..e6f6dc4 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_pcd_ex.lst @@ -0,0 +1,970 @@ +ARM GAS /tmp/ccXnw0bT.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_pcd_ex.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c" + 20 .section .text.HAL_PCDEx_PMAConfig,"ax",%progbits + 21 .align 1 + 22 .global HAL_PCDEx_PMAConfig + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 HAL_PCDEx_PMAConfig: + 28 .LVL0: + 29 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @file stm32g4xx_hal_pcd_ex.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief PCD Extended HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * functionalities of the USB Peripheral Controller: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * + Extended features functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ****************************************************************************** + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @attention + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * Copyright (c) 2019 STMicroelectronics. + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * All rights reserved. + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * This software is licensed under terms that can be found in the LICENSE file + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * in the root directory of this software component. + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ****************************************************************************** + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Includes ------------------------------------------------------------------*/ + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #include "stm32g4xx_hal.h" + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @{ + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + ARM GAS /tmp/ccXnw0bT.s page 2 + + + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @defgroup PCDEx PCDEx + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief PCD Extended HAL module driver + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @{ + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #ifdef HAL_PCD_MODULE_ENABLED + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if defined (USB) + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private types -------------------------------------------------------------*/ + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private variables ---------------------------------------------------------*/ + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private constants ---------------------------------------------------------*/ + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private macros ------------------------------------------------------------*/ + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private functions ---------------------------------------------------------*/ + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Exported functions --------------------------------------------------------*/ + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @defgroup PCDEx_Exported_Functions PCDEx Exported Functions + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @{ + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @defgroup PCDEx_Exported_Functions_Group1 Peripheral Control functions + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief PCDEx control functions + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** @verbatim + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** =============================================================================== + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ##### Extended features functions ##### + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** =============================================================================== + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** [..] This section provides functions allowing to: + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** (+) Update FIFO configuration + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** @endverbatim + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @{ + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Configure PMA for EP + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd Device instance + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param ep_addr endpoint address + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param ep_kind endpoint Kind + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * USB_SNG_BUF: Single Buffer used + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * USB_DBL_BUF: Double Buffer used + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param pmaadress: EP address in The PMA: In case of single buffer endpoint + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * this parameter is 16-bit value providing the address + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * in PMA allocated to endpoint. + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * In case of double buffer endpoint this parameter + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * is a 32-bit value providing the endpoint buffer 0 address + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * in the LSB part of 32-bit value and endpoint buffer 1 address + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * in the MSB part of 32-bit value. + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, uint16_t ep_addr, + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** uint16_t ep_kind, uint32_t pmaadress) + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 30 .loc 1 82 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/ccXnw0bT.s page 3 + + + 34 @ link register save eliminated. + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** PCD_EPTypeDef *ep; + 35 .loc 1 83 3 view .LVU1 + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* initialize ep structure*/ + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** if ((0x80U & ep_addr) == 0x80U) + 36 .loc 1 86 3 view .LVU2 + 37 .loc 1 86 6 is_stmt 0 view .LVU3 + 38 0000 11F0800F tst r1, #128 + 39 0004 0BD0 beq .L2 + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + 40 .loc 1 88 5 is_stmt 1 view .LVU4 + 41 .loc 1 88 31 is_stmt 0 view .LVU5 + 42 0006 01F00701 and r1, r1, #7 + 43 .LVL1: + 44 .loc 1 88 8 view .LVU6 + 45 000a 0131 adds r1, r1, #1 + 46 000c 01EB8101 add r1, r1, r1, lsl #2 + 47 0010 00EBC100 add r0, r0, r1, lsl #3 + 48 .LVL2: + 49 .L3: + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** else + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep = &hpcd->OUT_ep[ep_addr]; + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Here we check if the endpoint is single or double Buffer*/ + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** if (ep_kind == PCD_SNG_BUF) + 50 .loc 1 96 3 is_stmt 1 view .LVU7 + 51 .loc 1 96 6 is_stmt 0 view .LVU8 + 52 0014 52B9 cbnz r2, .L4 + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Single Buffer */ + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->doublebuffer = 0U; + 53 .loc 1 99 5 is_stmt 1 view .LVU9 + 54 .loc 1 99 22 is_stmt 0 view .LVU10 + 55 0016 0273 strb r2, [r0, #12] + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Configure the PMA */ + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->pmaadress = (uint16_t)pmaadress; + 56 .loc 1 101 5 is_stmt 1 view .LVU11 + 57 .loc 1 101 19 is_stmt 0 view .LVU12 + 58 0018 C380 strh r3, [r0, #6] @ movhi + 59 .LVL3: + 60 .L5: + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** else /* USB_DBL_BUF */ + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Double Buffer Endpoint */ + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->doublebuffer = 1U; + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Configure the PMA */ + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->pmaaddr0 = (uint16_t)(pmaadress & 0xFFFFU); + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->pmaaddr1 = (uint16_t)((pmaadress & 0xFFFF0000U) >> 16); + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + ARM GAS /tmp/ccXnw0bT.s page 4 + + + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** return HAL_OK; + 61 .loc 1 114 3 is_stmt 1 view .LVU13 + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 62 .loc 1 115 1 is_stmt 0 view .LVU14 + 63 001a 0020 movs r0, #0 + 64 .LVL4: + 65 .loc 1 115 1 view .LVU15 + 66 001c 7047 bx lr + 67 .LVL5: + 68 .L2: + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 69 .loc 1 92 5 is_stmt 1 view .LVU16 + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 70 .loc 1 92 8 is_stmt 0 view .LVU17 + 71 001e 01EB8101 add r1, r1, r1, lsl #2 + 72 .LVL6: + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 73 .loc 1 92 8 view .LVU18 + 74 0022 C900 lsls r1, r1, #3 + 75 0024 01F5B471 add r1, r1, #360 + 76 0028 0844 add r0, r0, r1 + 77 .LVL7: + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 78 .loc 1 92 8 view .LVU19 + 79 002a F3E7 b .L3 + 80 .L4: + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Configure the PMA */ + 81 .loc 1 107 5 is_stmt 1 view .LVU20 + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Configure the PMA */ + 82 .loc 1 107 22 is_stmt 0 view .LVU21 + 83 002c 0122 movs r2, #1 + 84 .LVL8: + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Configure the PMA */ + 85 .loc 1 107 22 view .LVU22 + 86 002e 0273 strb r2, [r0, #12] + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->pmaaddr1 = (uint16_t)((pmaadress & 0xFFFF0000U) >> 16); + 87 .loc 1 109 5 is_stmt 1 view .LVU23 + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** ep->pmaaddr1 = (uint16_t)((pmaadress & 0xFFFF0000U) >> 16); + 88 .loc 1 109 18 is_stmt 0 view .LVU24 + 89 0030 0381 strh r3, [r0, #8] @ movhi + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 90 .loc 1 110 5 is_stmt 1 view .LVU25 + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 91 .loc 1 110 20 is_stmt 0 view .LVU26 + 92 0032 1B0C lsrs r3, r3, #16 + 93 .LVL9: + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 94 .loc 1 110 18 view .LVU27 + 95 0034 4381 strh r3, [r0, #10] @ movhi + 96 0036 F0E7 b .L5 + 97 .cfi_endproc + 98 .LFE329: + 100 .section .text.HAL_PCDEx_ActivateBCD,"ax",%progbits + 101 .align 1 + 102 .global HAL_PCDEx_ActivateBCD + 103 .syntax unified + ARM GAS /tmp/ccXnw0bT.s page 5 + + + 104 .thumb + 105 .thumb_func + 107 HAL_PCDEx_ActivateBCD: + 108 .LVL10: + 109 .LFB330: + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Activate BatteryCharging feature. + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd) + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 110 .loc 1 123 1 is_stmt 1 view -0 + 111 .cfi_startproc + 112 @ args = 0, pretend = 0, frame = 0 + 113 @ frame_needed = 0, uses_anonymous_args = 0 + 114 @ link register save eliminated. + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 115 .loc 1 124 3 view .LVU29 + 116 .loc 1 124 16 is_stmt 0 view .LVU30 + 117 0000 0368 ldr r3, [r0] + 118 .LVL11: + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->battery_charging_active = 1U; + 119 .loc 1 125 3 is_stmt 1 view .LVU31 + 120 .loc 1 125 33 is_stmt 0 view .LVU32 + 121 0002 0122 movs r2, #1 + 122 0004 C0F8EC22 str r2, [r0, #748] + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Enable BCD feature */ + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR |= USB_BCDR_BCDEN; + 123 .loc 1 128 3 is_stmt 1 view .LVU33 + 124 .loc 1 128 7 is_stmt 0 view .LVU34 + 125 0008 B3F85820 ldrh r2, [r3, #88] + 126 000c 92B2 uxth r2, r2 + 127 .loc 1 128 14 view .LVU35 + 128 000e 42F00102 orr r2, r2, #1 + 129 0012 A3F85820 strh r2, [r3, #88] @ movhi + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Enable DCD : Data Contact Detect */ + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR &= ~(USB_BCDR_PDEN); + 130 .loc 1 131 3 is_stmt 1 view .LVU36 + 131 .loc 1 131 7 is_stmt 0 view .LVU37 + 132 0016 B3F85820 ldrh r2, [r3, #88] + 133 001a 92B2 uxth r2, r2 + 134 .loc 1 131 14 view .LVU38 + 135 001c 22F00402 bic r2, r2, #4 + 136 0020 92B2 uxth r2, r2 + 137 0022 A3F85820 strh r2, [r3, #88] @ movhi + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR &= ~(USB_BCDR_SDEN); + 138 .loc 1 132 3 is_stmt 1 view .LVU39 + 139 .loc 1 132 7 is_stmt 0 view .LVU40 + 140 0026 B3F85820 ldrh r2, [r3, #88] + 141 002a 92B2 uxth r2, r2 + 142 .loc 1 132 14 view .LVU41 + 143 002c 22F00802 bic r2, r2, #8 + 144 0030 92B2 uxth r2, r2 + ARM GAS /tmp/ccXnw0bT.s page 6 + + + 145 0032 A3F85820 strh r2, [r3, #88] @ movhi + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR |= USB_BCDR_DCDEN; + 146 .loc 1 133 3 is_stmt 1 view .LVU42 + 147 .loc 1 133 7 is_stmt 0 view .LVU43 + 148 0036 B3F85820 ldrh r2, [r3, #88] + 149 003a 92B2 uxth r2, r2 + 150 .loc 1 133 14 view .LVU44 + 151 003c 42F00202 orr r2, r2, #2 + 152 0040 A3F85820 strh r2, [r3, #88] @ movhi + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** return HAL_OK; + 153 .loc 1 135 3 is_stmt 1 view .LVU45 + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 154 .loc 1 136 1 is_stmt 0 view .LVU46 + 155 0044 0020 movs r0, #0 + 156 .LVL12: + 157 .loc 1 136 1 view .LVU47 + 158 0046 7047 bx lr + 159 .cfi_endproc + 160 .LFE330: + 162 .section .text.HAL_PCDEx_DeActivateBCD,"ax",%progbits + 163 .align 1 + 164 .global HAL_PCDEx_DeActivateBCD + 165 .syntax unified + 166 .thumb + 167 .thumb_func + 169 HAL_PCDEx_DeActivateBCD: + 170 .LVL13: + 171 .LFB331: + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Deactivate BatteryCharging feature. + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd) + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 172 .loc 1 144 1 is_stmt 1 view -0 + 173 .cfi_startproc + 174 @ args = 0, pretend = 0, frame = 0 + 175 @ frame_needed = 0, uses_anonymous_args = 0 + 176 @ link register save eliminated. + 177 .loc 1 144 1 is_stmt 0 view .LVU49 + 178 0000 0346 mov r3, r0 + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 179 .loc 1 145 3 is_stmt 1 view .LVU50 + 180 .loc 1 145 16 is_stmt 0 view .LVU51 + 181 0002 0268 ldr r2, [r0] + 182 .LVL14: + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->battery_charging_active = 0U; + 183 .loc 1 146 3 is_stmt 1 view .LVU52 + 184 .loc 1 146 33 is_stmt 0 view .LVU53 + 185 0004 0020 movs r0, #0 + 186 .LVL15: + 187 .loc 1 146 33 view .LVU54 + 188 0006 C3F8EC02 str r0, [r3, #748] + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + ARM GAS /tmp/ccXnw0bT.s page 7 + + + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Disable BCD feature */ + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR &= ~(USB_BCDR_BCDEN); + 189 .loc 1 149 3 is_stmt 1 view .LVU55 + 190 .loc 1 149 7 is_stmt 0 view .LVU56 + 191 000a B2F85830 ldrh r3, [r2, #88] + 192 .LVL16: + 193 .loc 1 149 7 view .LVU57 + 194 000e 9BB2 uxth r3, r3 + 195 .loc 1 149 14 view .LVU58 + 196 0010 23F00103 bic r3, r3, #1 + 197 0014 9BB2 uxth r3, r3 + 198 0016 A2F85830 strh r3, [r2, #88] @ movhi + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** return HAL_OK; + 199 .loc 1 151 3 is_stmt 1 view .LVU59 + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 200 .loc 1 152 1 is_stmt 0 view .LVU60 + 201 001a 7047 bx lr + 202 .cfi_endproc + 203 .LFE331: + 205 .section .text.HAL_PCDEx_ActivateLPM,"ax",%progbits + 206 .align 1 + 207 .global HAL_PCDEx_ActivateLPM + 208 .syntax unified + 209 .thumb + 210 .thumb_func + 212 HAL_PCDEx_ActivateLPM: + 213 .LVL17: + 214 .LFB333: + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Handle BatteryCharging Process. + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd) + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** uint32_t tickstart = HAL_GetTick(); + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Wait Detect flag or a timeout is happen */ + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** while ((USBx->BCDR & USB_BCDR_DCDET) == 0U) + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Check for the Timeout */ + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** if ((HAL_GetTick() - tickstart) > 1000U) + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->BCDCallback(hpcd, PCD_BCD_ERROR); + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR); + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** return; + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(200U); + ARM GAS /tmp/ccXnw0bT.s page 8 + + + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Data Pin Contact ? Check Detect flag */ + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** if ((USBx->BCDR & USB_BCDR_DCDET) == USB_BCDR_DCDET) + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->BCDCallback(hpcd, PCD_BCD_CONTACT_DETECTION); + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CONTACT_DETECTION); + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Primary detection: checks if connected to Standard Downstream Port + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** (without charging capability) */ + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR &= ~(USB_BCDR_DCDEN); + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR |= (USB_BCDR_PDEN); + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* If Charger detect ? */ + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** if ((USBx->BCDR & USB_BCDR_PDET) == USB_BCDR_PDET) + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Start secondary detection to check connection to Charging Downstream + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** Port or Dedicated Charging Port */ + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR &= ~(USB_BCDR_PDEN); + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR |= (USB_BCDR_SDEN); + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* If CDP ? */ + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** if ((USBx->BCDR & USB_BCDR_SDET) == USB_BCDR_SDET) + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Dedicated Downstream Port DCP */ + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->BCDCallback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT); + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT); + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** else + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Charging Downstream Port CDP */ + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->BCDCallback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT); + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT); + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** else /* NO */ + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Standard Downstream Port */ + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->BCDCallback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT); + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT); + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + ARM GAS /tmp/ccXnw0bT.s page 9 + + + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Battery Charging capability discovery finished Start Enumeration */ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** (void)HAL_PCDEx_DeActivateBCD(hpcd); + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->BCDCallback(hpcd, PCD_BCD_DISCOVERY_COMPLETED); + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED); + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Activate LPM feature. + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd) + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 215 .loc 1 254 1 is_stmt 1 view -0 + 216 .cfi_startproc + 217 @ args = 0, pretend = 0, frame = 0 + 218 @ frame_needed = 0, uses_anonymous_args = 0 + 219 @ link register save eliminated. + 220 .loc 1 254 1 is_stmt 0 view .LVU62 + 221 0000 0346 mov r3, r0 + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 222 .loc 1 256 3 is_stmt 1 view .LVU63 + 223 .loc 1 256 16 is_stmt 0 view .LVU64 + 224 0002 0268 ldr r2, [r0] + 225 .LVL18: + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->lpm_active = 1U; + 226 .loc 1 257 3 is_stmt 1 view .LVU65 + 227 .loc 1 257 20 is_stmt 0 view .LVU66 + 228 0004 0121 movs r1, #1 + 229 0006 C0F8E812 str r1, [r0, #744] + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->LPM_State = LPM_L0; + 230 .loc 1 258 3 is_stmt 1 view .LVU67 + 231 .loc 1 258 19 is_stmt 0 view .LVU68 + 232 000a 0020 movs r0, #0 + 233 .LVL19: + 234 .loc 1 258 19 view .LVU69 + 235 000c 83F8E002 strb r0, [r3, #736] + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->LPMCSR |= USB_LPMCSR_LMPEN; + 236 .loc 1 260 3 is_stmt 1 view .LVU70 + 237 .loc 1 260 7 is_stmt 0 view .LVU71 + 238 0010 B2F85430 ldrh r3, [r2, #84] + 239 .LVL20: + 240 .loc 1 260 7 view .LVU72 + 241 0014 9BB2 uxth r3, r3 + 242 .loc 1 260 16 view .LVU73 + 243 0016 0B43 orrs r3, r3, r1 + 244 0018 A2F85430 strh r3, [r2, #84] @ movhi + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->LPMCSR |= USB_LPMCSR_LPMACK; + 245 .loc 1 261 3 is_stmt 1 view .LVU74 + 246 .loc 1 261 7 is_stmt 0 view .LVU75 + 247 001c B2F85430 ldrh r3, [r2, #84] + ARM GAS /tmp/ccXnw0bT.s page 10 + + + 248 0020 9BB2 uxth r3, r3 + 249 .loc 1 261 16 view .LVU76 + 250 0022 43F00203 orr r3, r3, #2 + 251 0026 A2F85430 strh r3, [r2, #84] @ movhi + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** return HAL_OK; + 252 .loc 1 263 3 is_stmt 1 view .LVU77 + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 253 .loc 1 264 1 is_stmt 0 view .LVU78 + 254 002a 7047 bx lr + 255 .cfi_endproc + 256 .LFE333: + 258 .section .text.HAL_PCDEx_DeActivateLPM,"ax",%progbits + 259 .align 1 + 260 .global HAL_PCDEx_DeActivateLPM + 261 .syntax unified + 262 .thumb + 263 .thumb_func + 265 HAL_PCDEx_DeActivateLPM: + 266 .LVL21: + 267 .LFB334: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Deactivate LPM feature. + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd) + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 268 .loc 1 272 1 is_stmt 1 view -0 + 269 .cfi_startproc + 270 @ args = 0, pretend = 0, frame = 0 + 271 @ frame_needed = 0, uses_anonymous_args = 0 + 272 @ link register save eliminated. + 273 .loc 1 272 1 is_stmt 0 view .LVU80 + 274 0000 0346 mov r3, r0 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 275 .loc 1 273 3 is_stmt 1 view .LVU81 + 276 .loc 1 273 16 is_stmt 0 view .LVU82 + 277 0002 0268 ldr r2, [r0] + 278 .LVL22: + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** hpcd->lpm_active = 0U; + 279 .loc 1 275 3 is_stmt 1 view .LVU83 + 280 .loc 1 275 20 is_stmt 0 view .LVU84 + 281 0004 0020 movs r0, #0 + 282 .LVL23: + 283 .loc 1 275 20 view .LVU85 + 284 0006 C3F8E802 str r0, [r3, #744] + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->LPMCSR &= ~(USB_LPMCSR_LMPEN); + 285 .loc 1 277 3 is_stmt 1 view .LVU86 + 286 .loc 1 277 7 is_stmt 0 view .LVU87 + 287 000a B2F85430 ldrh r3, [r2, #84] + 288 .LVL24: + 289 .loc 1 277 7 view .LVU88 + 290 000e 9BB2 uxth r3, r3 + ARM GAS /tmp/ccXnw0bT.s page 11 + + + 291 .loc 1 277 16 view .LVU89 + 292 0010 23F00103 bic r3, r3, #1 + 293 0014 9BB2 uxth r3, r3 + 294 0016 A2F85430 strh r3, [r2, #84] @ movhi + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->LPMCSR &= ~(USB_LPMCSR_LPMACK); + 295 .loc 1 278 3 is_stmt 1 view .LVU90 + 296 .loc 1 278 7 is_stmt 0 view .LVU91 + 297 001a B2F85430 ldrh r3, [r2, #84] + 298 001e 9BB2 uxth r3, r3 + 299 .loc 1 278 16 view .LVU92 + 300 0020 23F00203 bic r3, r3, #2 + 301 0024 9BB2 uxth r3, r3 + 302 0026 A2F85430 strh r3, [r2, #84] @ movhi + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** return HAL_OK; + 303 .loc 1 280 3 is_stmt 1 view .LVU93 + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 304 .loc 1 281 1 is_stmt 0 view .LVU94 + 305 002a 7047 bx lr + 306 .cfi_endproc + 307 .LFE334: + 309 .section .text.HAL_PCDEx_LPM_Callback,"ax",%progbits + 310 .align 1 + 311 .weak HAL_PCDEx_LPM_Callback + 312 .syntax unified + 313 .thumb + 314 .thumb_func + 316 HAL_PCDEx_LPM_Callback: + 317 .LVL25: + 318 .LFB335: + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Send LPM message to user layer callback. + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param msg LPM message + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** __weak void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg) + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 319 .loc 1 292 1 is_stmt 1 view -0 + 320 .cfi_startproc + 321 @ args = 0, pretend = 0, frame = 0 + 322 @ frame_needed = 0, uses_anonymous_args = 0 + 323 @ link register save eliminated. + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Prevent unused argument(s) compilation warning */ + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** UNUSED(hpcd); + 324 .loc 1 294 3 view .LVU96 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** UNUSED(msg); + 325 .loc 1 295 3 view .LVU97 + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** the HAL_PCDEx_LPM_Callback could be implemented in the user file + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 326 .loc 1 300 1 is_stmt 0 view .LVU98 + ARM GAS /tmp/ccXnw0bT.s page 12 + + + 327 0000 7047 bx lr + 328 .cfi_endproc + 329 .LFE335: + 331 .section .text.HAL_PCDEx_BCD_Callback,"ax",%progbits + 332 .align 1 + 333 .weak HAL_PCDEx_BCD_Callback + 334 .syntax unified + 335 .thumb + 336 .thumb_func + 338 HAL_PCDEx_BCD_Callback: + 339 .LVL26: + 340 .LFB336: + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @brief Send BatteryCharging message to user layer callback. + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param hpcd PCD handle + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @param msg LPM message + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** * @retval HAL status + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** __weak void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg) + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 341 .loc 1 309 1 is_stmt 1 view -0 + 342 .cfi_startproc + 343 @ args = 0, pretend = 0, frame = 0 + 344 @ frame_needed = 0, uses_anonymous_args = 0 + 345 @ link register save eliminated. + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Prevent unused argument(s) compilation warning */ + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** UNUSED(hpcd); + 346 .loc 1 311 3 view .LVU100 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** UNUSED(msg); + 347 .loc 1 312 3 view .LVU101 + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** the HAL_PCDEx_BCD_Callback could be implemented in the user file + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** */ + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 348 .loc 1 317 1 is_stmt 0 view .LVU102 + 349 0000 7047 bx lr + 350 .cfi_endproc + 351 .LFE336: + 353 .section .text.HAL_PCDEx_BCD_VBUSDetect,"ax",%progbits + 354 .align 1 + 355 .global HAL_PCDEx_BCD_VBUSDetect + 356 .syntax unified + 357 .thumb + 358 .thumb_func + 360 HAL_PCDEx_BCD_VBUSDetect: + 361 .LVL27: + 362 .LFB332: + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 363 .loc 1 160 1 is_stmt 1 view -0 + 364 .cfi_startproc + 365 @ args = 0, pretend = 0, frame = 0 + 366 @ frame_needed = 0, uses_anonymous_args = 0 + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USB_TypeDef *USBx = hpcd->Instance; + 367 .loc 1 160 1 is_stmt 0 view .LVU104 + 368 0000 70B5 push {r4, r5, r6, lr} + ARM GAS /tmp/ccXnw0bT.s page 13 + + + 369 .LCFI0: + 370 .cfi_def_cfa_offset 16 + 371 .cfi_offset 4, -16 + 372 .cfi_offset 5, -12 + 373 .cfi_offset 6, -8 + 374 .cfi_offset 14, -4 + 375 0002 0646 mov r6, r0 + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** uint32_t tickstart = HAL_GetTick(); + 376 .loc 1 161 3 is_stmt 1 view .LVU105 + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** uint32_t tickstart = HAL_GetTick(); + 377 .loc 1 161 16 is_stmt 0 view .LVU106 + 378 0004 0468 ldr r4, [r0] + 379 .LVL28: + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 380 .loc 1 162 3 is_stmt 1 view .LVU107 + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 381 .loc 1 162 24 is_stmt 0 view .LVU108 + 382 0006 FFF7FEFF bl HAL_GetTick + 383 .LVL29: + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 384 .loc 1 162 24 view .LVU109 + 385 000a 0546 mov r5, r0 + 386 .LVL30: + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 387 .loc 1 165 3 is_stmt 1 view .LVU110 + 388 .L13: + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 389 .loc 1 165 40 view .LVU111 + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 390 .loc 1 165 15 is_stmt 0 view .LVU112 + 391 000c B4F85830 ldrh r3, [r4, #88] + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 392 .loc 1 165 40 view .LVU113 + 393 0010 13F0100F tst r3, #16 + 394 0014 0AD1 bne .L21 + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 395 .loc 1 168 5 is_stmt 1 view .LVU114 + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 396 .loc 1 168 10 is_stmt 0 view .LVU115 + 397 0016 FFF7FEFF bl HAL_GetTick + 398 .LVL31: + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 399 .loc 1 168 24 view .LVU116 + 400 001a 401B subs r0, r0, r5 + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 401 .loc 1 168 8 view .LVU117 + 402 001c B0F57A7F cmp r0, #1000 + 403 0020 F4D9 bls .L13 + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 404 .loc 1 173 7 is_stmt 1 view .LVU118 + 405 0022 FF21 movs r1, #255 + 406 0024 3046 mov r0, r6 + 407 0026 FFF7FEFF bl HAL_PCDEx_BCD_Callback + 408 .LVL32: + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** } + 409 .loc 1 176 7 view .LVU119 + 410 002a 55E0 b .L12 + ARM GAS /tmp/ccXnw0bT.s page 14 + + + 411 .L21: + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 412 .loc 1 180 3 view .LVU120 + 413 002c C820 movs r0, #200 + 414 002e FFF7FEFF bl HAL_Delay + 415 .LVL33: + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 416 .loc 1 183 3 view .LVU121 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 417 .loc 1 183 12 is_stmt 0 view .LVU122 + 418 0032 B4F85830 ldrh r3, [r4, #88] + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 419 .loc 1 183 6 view .LVU123 + 420 0036 13F0100F tst r3, #16 + 421 003a 38D1 bne .L22 + 422 .L16: + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 423 .loc 1 193 3 is_stmt 1 view .LVU124 + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 424 .loc 1 193 7 is_stmt 0 view .LVU125 + 425 003c B4F85830 ldrh r3, [r4, #88] + 426 0040 9BB2 uxth r3, r3 + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 427 .loc 1 193 14 view .LVU126 + 428 0042 23F00203 bic r3, r3, #2 + 429 0046 9BB2 uxth r3, r3 + 430 0048 A4F85830 strh r3, [r4, #88] @ movhi + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR |= (USB_BCDR_PDEN); + 431 .loc 1 194 3 is_stmt 1 view .LVU127 + 432 004c 3220 movs r0, #50 + 433 004e FFF7FEFF bl HAL_Delay + 434 .LVL34: + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 435 .loc 1 195 3 view .LVU128 + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 436 .loc 1 195 7 is_stmt 0 view .LVU129 + 437 0052 B4F85830 ldrh r3, [r4, #88] + 438 0056 9BB2 uxth r3, r3 + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 439 .loc 1 195 14 view .LVU130 + 440 0058 43F00403 orr r3, r3, #4 + 441 005c A4F85830 strh r3, [r4, #88] @ movhi + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 442 .loc 1 196 3 is_stmt 1 view .LVU131 + 443 0060 3220 movs r0, #50 + 444 0062 FFF7FEFF bl HAL_Delay + 445 .LVL35: + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 446 .loc 1 199 3 view .LVU132 + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 447 .loc 1 199 12 is_stmt 0 view .LVU133 + 448 0066 B4F85830 ldrh r3, [r4, #88] + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 449 .loc 1 199 6 view .LVU134 + 450 006a 13F0200F tst r3, #32 + 451 006e 28D0 beq .L17 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + ARM GAS /tmp/ccXnw0bT.s page 15 + + + 452 .loc 1 203 5 is_stmt 1 view .LVU135 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 453 .loc 1 203 9 is_stmt 0 view .LVU136 + 454 0070 B4F85830 ldrh r3, [r4, #88] + 455 0074 9BB2 uxth r3, r3 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 456 .loc 1 203 16 view .LVU137 + 457 0076 23F00403 bic r3, r3, #4 + 458 007a 9BB2 uxth r3, r3 + 459 007c A4F85830 strh r3, [r4, #88] @ movhi + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** USBx->BCDR |= (USB_BCDR_SDEN); + 460 .loc 1 204 5 is_stmt 1 view .LVU138 + 461 0080 3220 movs r0, #50 + 462 0082 FFF7FEFF bl HAL_Delay + 463 .LVL36: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 464 .loc 1 205 5 view .LVU139 + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 465 .loc 1 205 9 is_stmt 0 view .LVU140 + 466 0086 B4F85830 ldrh r3, [r4, #88] + 467 008a 9BB2 uxth r3, r3 + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_Delay(50U); + 468 .loc 1 205 16 view .LVU141 + 469 008c 43F00803 orr r3, r3, #8 + 470 0090 A4F85830 strh r3, [r4, #88] @ movhi + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 471 .loc 1 206 5 is_stmt 1 view .LVU142 + 472 0094 3220 movs r0, #50 + 473 0096 FFF7FEFF bl HAL_Delay + 474 .LVL37: + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 475 .loc 1 209 5 view .LVU143 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 476 .loc 1 209 14 is_stmt 0 view .LVU144 + 477 009a B4F85830 ldrh r3, [r4, #88] + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** { + 478 .loc 1 209 8 view .LVU145 + 479 009e 13F0400F tst r3, #64 + 480 00a2 09D0 beq .L18 + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 481 .loc 1 215 7 is_stmt 1 view .LVU146 + 482 00a4 FB21 movs r1, #251 + 483 00a6 3046 mov r0, r6 + 484 00a8 FFF7FEFF bl HAL_PCDEx_BCD_Callback + 485 .LVL38: + 486 00ac 0DE0 b .L19 + 487 .L22: + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 488 .loc 1 188 5 view .LVU147 + 489 00ae FE21 movs r1, #254 + 490 00b0 3046 mov r0, r6 + 491 00b2 FFF7FEFF bl HAL_PCDEx_BCD_Callback + 492 .LVL39: + 493 00b6 C1E7 b .L16 + 494 .L18: + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 495 .loc 1 224 7 view .LVU148 + ARM GAS /tmp/ccXnw0bT.s page 16 + + + 496 00b8 FC21 movs r1, #252 + 497 00ba 3046 mov r0, r6 + 498 00bc FFF7FEFF bl HAL_PCDEx_BCD_Callback + 499 .LVL40: + 500 00c0 03E0 b .L19 + 501 .L17: + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 502 .loc 1 234 5 view .LVU149 + 503 00c2 FD21 movs r1, #253 + 504 00c4 3046 mov r0, r6 + 505 00c6 FFF7FEFF bl HAL_PCDEx_BCD_Callback + 506 .LVL41: + 507 .L19: + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 508 .loc 1 239 3 view .LVU150 + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 509 .loc 1 239 9 is_stmt 0 view .LVU151 + 510 00ca 3046 mov r0, r6 + 511 00cc FFF7FEFF bl HAL_PCDEx_DeActivateBCD + 512 .LVL42: + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 513 .loc 1 243 3 is_stmt 1 view .LVU152 + 514 00d0 0021 movs r1, #0 + 515 00d2 3046 mov r0, r6 + 516 00d4 FFF7FEFF bl HAL_PCDEx_BCD_Callback + 517 .LVL43: + 518 .L12: + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 519 .loc 1 245 1 is_stmt 0 view .LVU153 + 520 00d8 70BD pop {r4, r5, r6, pc} + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** + 521 .loc 1 245 1 view .LVU154 + 522 .cfi_endproc + 523 .LFE332: + 525 .text + 526 .Letext0: + 527 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 528 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 529 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 530 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h" + 531 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h" + 532 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccXnw0bT.s page 17 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_pcd_ex.c + /tmp/ccXnw0bT.s:21 .text.HAL_PCDEx_PMAConfig:00000000 $t + /tmp/ccXnw0bT.s:27 .text.HAL_PCDEx_PMAConfig:00000000 HAL_PCDEx_PMAConfig + /tmp/ccXnw0bT.s:101 .text.HAL_PCDEx_ActivateBCD:00000000 $t + /tmp/ccXnw0bT.s:107 .text.HAL_PCDEx_ActivateBCD:00000000 HAL_PCDEx_ActivateBCD + /tmp/ccXnw0bT.s:163 .text.HAL_PCDEx_DeActivateBCD:00000000 $t + /tmp/ccXnw0bT.s:169 .text.HAL_PCDEx_DeActivateBCD:00000000 HAL_PCDEx_DeActivateBCD + /tmp/ccXnw0bT.s:206 .text.HAL_PCDEx_ActivateLPM:00000000 $t + /tmp/ccXnw0bT.s:212 .text.HAL_PCDEx_ActivateLPM:00000000 HAL_PCDEx_ActivateLPM + /tmp/ccXnw0bT.s:259 .text.HAL_PCDEx_DeActivateLPM:00000000 $t + /tmp/ccXnw0bT.s:265 .text.HAL_PCDEx_DeActivateLPM:00000000 HAL_PCDEx_DeActivateLPM + /tmp/ccXnw0bT.s:310 .text.HAL_PCDEx_LPM_Callback:00000000 $t + /tmp/ccXnw0bT.s:316 .text.HAL_PCDEx_LPM_Callback:00000000 HAL_PCDEx_LPM_Callback + /tmp/ccXnw0bT.s:332 .text.HAL_PCDEx_BCD_Callback:00000000 $t + /tmp/ccXnw0bT.s:338 .text.HAL_PCDEx_BCD_Callback:00000000 HAL_PCDEx_BCD_Callback + /tmp/ccXnw0bT.s:354 .text.HAL_PCDEx_BCD_VBUSDetect:00000000 $t + /tmp/ccXnw0bT.s:360 .text.HAL_PCDEx_BCD_VBUSDetect:00000000 HAL_PCDEx_BCD_VBUSDetect + +UNDEFINED SYMBOLS +HAL_GetTick +HAL_Delay diff --git a/squeow_sw/build/stm32g4xx_hal_pcd_ex.o b/squeow_sw/build/stm32g4xx_hal_pcd_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..bee0fab1fccdb40fd2f21eae18cb908e329c2a00 GIT binary patch literal 13200 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, PWR_CR1_DBP); + 66 .loc 1 106 3 view .LVU5 + 67 0000 024A ldr r2, .L5 + 68 0002 1368 ldr r3, [r2] + ARM GAS /tmp/cchsYltI.s page 4 + + + 69 0004 43F48073 orr r3, r3, #256 + 70 0008 1360 str r3, [r2] + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 71 .loc 1 107 1 is_stmt 0 view .LVU6 + 72 000a 7047 bx lr + 73 .L6: + 74 .align 2 + 75 .L5: + 76 000c 00700040 .word 1073770496 + 77 .cfi_endproc + 78 .LFE330: + 80 .section .text.HAL_PWR_DisableBkUpAccess,"ax",%progbits + 81 .align 1 + 82 .global HAL_PWR_DisableBkUpAccess + 83 .syntax unified + 84 .thumb + 85 .thumb_func + 87 HAL_PWR_DisableBkUpAccess: + 88 .LFB331: + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Disable access to the backup domain + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * (RTC registers, RTC backup data registers). + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_DisableBkUpAccess(void) + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 89 .loc 1 115 1 is_stmt 1 view -0 + 90 .cfi_startproc + 91 @ args = 0, pretend = 0, frame = 0 + 92 @ frame_needed = 0, uses_anonymous_args = 0 + 93 @ link register save eliminated. + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** CLEAR_BIT(PWR->CR1, PWR_CR1_DBP); + 94 .loc 1 116 3 view .LVU8 + 95 0000 024A ldr r2, .L8 + 96 0002 1368 ldr r3, [r2] + 97 0004 23F48073 bic r3, r3, #256 + 98 0008 1360 str r3, [r2] + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 99 .loc 1 117 1 is_stmt 0 view .LVU9 + 100 000a 7047 bx lr + 101 .L9: + 102 .align 2 + 103 .L8: + 104 000c 00700040 .word 1073770496 + 105 .cfi_endproc + 106 .LFE331: + 108 .section .text.HAL_PWR_ConfigPVD,"ax",%progbits + 109 .align 1 + 110 .global HAL_PWR_ConfigPVD + 111 .syntax unified + 112 .thumb + 113 .thumb_func + 115 HAL_PWR_ConfigPVD: + 116 .LVL0: + 117 .LFB332: + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + ARM GAS /tmp/cchsYltI.s page 5 + + + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @} + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** @defgroup PWR_Exported_Functions_Group2 Peripheral Control functions + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Low Power modes configuration functions + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** @verbatim + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** =============================================================================== + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ##### Peripheral Control functions ##### + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** =============================================================================== + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** PVD configuration *** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ========================= + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) The PVD is used to monitor the VDD power supply by comparing it to a + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** threshold selected by the PVD Level (PLS[2:0] bits in PWR_CR2 register). + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) PVDO flag is available to indicate if VDD/VDDA is higher or lower + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** than the PVD threshold. This event is internally connected to the EXTI + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** line16 and can generate an interrupt if enabled. This is done through + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PVD_EXTI_ENABLE_IT() macro. + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) The PVD is stopped in Standby mode. + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** WakeUp pin configuration *** + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ================================ + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) WakeUp pins are used to wakeup the system from Standby mode or Shutdown mode. + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The polarity of these pins can be set to configure event detection on high + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** level (rising edge) or low level (falling edge). + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Low Power modes configuration *** + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ===================================== + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The devices feature 8 low-power modes: + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Low-power Run mode: core and peripherals are running, main regulator off, low power regul + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Sleep mode: Cortex-M4 core stopped, peripherals kept running, main and low power regulato + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Low-power Sleep mode: Cortex-M4 core stopped, peripherals kept running, main regulator of + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Stop 0 mode: all clocks are stopped except LSI and LSE, main and low power regulators on. + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Stop 1 mode: all clocks are stopped except LSI and LSE, main regulator off, low power reg + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Standby mode with SRAM2: all clocks are stopped except LSI and LSE, SRAM2 content preserv + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Standby mode without SRAM2: all clocks are stopped except LSI and LSE, main and low power + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Shutdown mode: all clocks are stopped except LSE, main and low power regulators off. + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Low-power run mode *** + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ========================== + ARM GAS /tmp/cchsYltI.s page 6 + + + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Entry: (from main run mode) + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) set LPR bit with HAL_PWREx_EnableLowPowerRunMode() API after having decreased the syst + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Exit: + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) clear LPR bit then wait for REGLP bit to be reset with HAL_PWREx_DisableLowPowerRunMod + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** then can the system clock frequency be increased above 2 MHz. + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Sleep mode / Low-power sleep mode *** + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ========================================= + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Entry: + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The Sleep mode / Low-power Sleep mode is entered through HAL_PWR_EnterSLEEPMode() API + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** in specifying whether or not the regulator is forced to low-power mode and if exit is int + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_MAINREGULATOR_ON: Sleep mode (regulator in main mode). + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_LOWPOWERREGULATOR_ON: Low-power sleep (regulator in low power mode). + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** In the latter case, the system clock frequency must have been decreased below 2 MHz befor + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) WFI Exit: + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Any peripheral interrupt acknowledged by the nested vectored interrupt + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** controller (NVIC) or any wake-up event. + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) WFE Exit: + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Any wake-up event such as an EXTI line configured in event mode. + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] When exiting the Low-power sleep mode by issuing an interrupt or a wakeup event, + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** the MCU is in Low-power Run mode. + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Stop 0, Stop 1 modes *** + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** =============================== + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Entry: + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The Stop 0, Stop 1 modes are entered through the following API's: + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) HAL_PWREx_EnterSTOP0Mode() for mode 0 or HAL_PWREx_EnterSTOP1Mode() for mode 1 or fo + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Regulator setting (applicable to HAL_PWR_EnterSTOPMode() only): + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_MAINREGULATOR_ON + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_LOWPOWERREGULATOR_ON + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Exit (interrupt or event-triggered, specified when entering STOP mode): + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_STOPENTRY_WFI: enter Stop mode with WFI instruction + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) PWR_STOPENTRY_WFE: enter Stop mode with WFE instruction + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) WFI Exit: + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Any EXTI Line (Internal or External) configured in Interrupt mode. + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Some specific communication peripherals (USART, LPUART, I2C) interrupts + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** when programmed in wakeup mode. + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) WFE Exit: + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Any EXTI Line (Internal or External) configured in Event mode. + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** When exiting Stop 0 and Stop 1 modes, the MCU is either in Run mode or in Low-power Run m + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** depending on the LPR bit setting. + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Standby mode *** + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ==================== + ARM GAS /tmp/cchsYltI.s page 7 + + + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The Standby mode offers two options: + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) option a) all clocks off except LSI and LSE, RRS bit set (keeps voltage regulator in low + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SRAM and registers contents are lost except for the SRAM2 content, the RTC registers, RTC b + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** and Standby circuitry. + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) option b) all clocks off except LSI and LSE, RRS bit cleared (voltage regulator then disa + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SRAM and register contents are lost except for the RTC registers, RTC backup registers + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** and Standby circuitry. + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Entry: + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+++) The Standby mode is entered through HAL_PWR_EnterSTANDBYMode() API. + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SRAM1 and register contents are lost except for registers in the Backup domain and + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** Standby circuitry. SRAM2 content can be preserved if the bit RRS is set in PWR_CR3 + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** To enable this feature, the user can resort to HAL_PWREx_EnableSRAM2ContentRetentio + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** to set RRS bit. + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) Exit: + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+++) WKUP pin rising edge, RTC alarm or wakeup, tamper event, time-stamp event, + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** external reset in NRST pin, IWDG reset. + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] After waking up from Standby mode, program execution restarts in the same way as afte + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Shutdown mode *** + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ====================== + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** In Shutdown mode, + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** voltage regulator is disabled, all clocks are off except LSE, RRS bit is cleared. + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SRAM and registers contents are lost except for backup domain registers. + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Entry: + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The Shutdown mode is entered through HAL_PWREx_EnterSHUTDOWNMode() API. + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) Exit: + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) WKUP pin rising edge, RTC alarm or wakeup, tamper event, time-stamp event, + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** external reset in NRST pin. + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] After waking up from Shutdown mode, program execution restarts in the same way as aft + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** *** Auto-wakeup (AWU) from low-power mode *** + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** ============================================= + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** [..] + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The MCU can be woken up from low-power mode by an RTC Alarm event, an RTC + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** Wakeup event, a tamper event or a time-stamp event, without depending on + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** an external interrupt (Auto-wakeup mode). + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (+) RTC auto-wakeup (AWU) from the Stop, Standby and Shutdown modes + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) To wake up from the Stop mode with an RTC alarm event, it is necessary to + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** configure the RTC to generate the RTC alarm using the HAL_RTC_SetAlarm_IT() function. + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) To wake up from the Stop mode with an RTC Tamper or time stamp event, it + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** is necessary to configure the RTC to detect the tamper or time stamp event using the + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** HAL_RTCEx_SetTimeStamp_IT() or HAL_RTCEx_SetTamper_IT() functions. + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + ARM GAS /tmp/cchsYltI.s page 8 + + + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (++) To wake up from the Stop mode with an RTC WakeUp event, it is necessary to + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** configure the RTC to generate the RTC WakeUp event using the HAL_RTCEx_SetWakeUpTimer + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** @endverbatim + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @{ + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Configure the voltage threshold detected by the Power Voltage Detector (PVD). + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param sConfigPVD: pointer to a PWR_PVDTypeDef structure that contains the PVD + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * configuration information. + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note Refer to the electrical characteristics of your device datasheet for + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * more details about the voltage thresholds corresponding to each + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * detection level. + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** HAL_StatusTypeDef HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD) + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 118 .loc 1 309 1 is_stmt 1 view -0 + 119 .cfi_startproc + 120 @ args = 0, pretend = 0, frame = 0 + 121 @ frame_needed = 0, uses_anonymous_args = 0 + 122 @ link register save eliminated. + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Check the parameters */ + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_PVD_LEVEL(sConfigPVD->PVDLevel)); + 123 .loc 1 311 3 view .LVU11 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_PVD_MODE(sConfigPVD->Mode)); + 124 .loc 1 312 3 view .LVU12 + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Set PLS bits according to PVDLevel value */ + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** MODIFY_REG(PWR->CR2, PWR_CR2_PLS, sConfigPVD->PVDLevel); + 125 .loc 1 315 3 view .LVU13 + 126 0000 1E4A ldr r2, .L15 + 127 0002 5368 ldr r3, [r2, #4] + 128 0004 23F00E03 bic r3, r3, #14 + 129 0008 0168 ldr r1, [r0] + 130 000a 0B43 orrs r3, r3, r1 + 131 000c 5360 str r3, [r2, #4] + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_EVENT(); + 132 .loc 1 318 3 view .LVU14 + 133 000e 1C4B ldr r3, .L15+4 + 134 0010 5A68 ldr r2, [r3, #4] + 135 0012 22F48032 bic r2, r2, #65536 + 136 0016 5A60 str r2, [r3, #4] + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_IT(); + 137 .loc 1 319 3 view .LVU15 + 138 0018 1A68 ldr r2, [r3] + 139 001a 22F48032 bic r2, r2, #65536 + 140 001e 1A60 str r2, [r3] + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); + 141 .loc 1 320 3 view .LVU16 + 142 0020 DA68 ldr r2, [r3, #12] + 143 0022 22F48032 bic r2, r2, #65536 + ARM GAS /tmp/cchsYltI.s page 9 + + + 144 0026 DA60 str r2, [r3, #12] + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); + 145 .loc 1 321 3 view .LVU17 + 146 0028 9A68 ldr r2, [r3, #8] + 147 002a 22F48032 bic r2, r2, #65536 + 148 002e 9A60 str r2, [r3, #8] + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Configure interrupt mode */ + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_MODE_IT) == PVD_MODE_IT) + 149 .loc 1 324 3 view .LVU18 + 150 .loc 1 324 17 is_stmt 0 view .LVU19 + 151 0030 4368 ldr r3, [r0, #4] + 152 .loc 1 324 5 view .LVU20 + 153 0032 13F4803F tst r3, #65536 + 154 0036 04D0 beq .L11 + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_IT(); + 155 .loc 1 326 5 is_stmt 1 view .LVU21 + 156 0038 114A ldr r2, .L15+4 + 157 003a 1368 ldr r3, [r2] + 158 003c 43F48033 orr r3, r3, #65536 + 159 0040 1360 str r3, [r2] + 160 .L11: + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Configure event mode */ + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_MODE_EVT) == PVD_MODE_EVT) + 161 .loc 1 330 3 view .LVU22 + 162 .loc 1 330 17 is_stmt 0 view .LVU23 + 163 0042 4368 ldr r3, [r0, #4] + 164 .loc 1 330 5 view .LVU24 + 165 0044 13F4003F tst r3, #131072 + 166 0048 04D0 beq .L12 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_EVENT(); + 167 .loc 1 332 5 is_stmt 1 view .LVU25 + 168 004a 0D4A ldr r2, .L15+4 + 169 004c 5368 ldr r3, [r2, #4] + 170 004e 43F48033 orr r3, r3, #65536 + 171 0052 5360 str r3, [r2, #4] + 172 .L12: + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Configure the edge */ + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_RISING_EDGE) == PVD_RISING_EDGE) + 173 .loc 1 336 3 view .LVU26 + 174 .loc 1 336 17 is_stmt 0 view .LVU27 + 175 0054 4368 ldr r3, [r0, #4] + 176 .loc 1 336 5 view .LVU28 + 177 0056 13F0010F tst r3, #1 + 178 005a 04D0 beq .L13 + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); + 179 .loc 1 338 5 is_stmt 1 view .LVU29 + 180 005c 084A ldr r2, .L15+4 + 181 005e 9368 ldr r3, [r2, #8] + 182 0060 43F48033 orr r3, r3, #65536 + ARM GAS /tmp/cchsYltI.s page 10 + + + 183 0064 9360 str r3, [r2, #8] + 184 .L13: + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_FALLING_EDGE) == PVD_FALLING_EDGE) + 185 .loc 1 341 3 view .LVU30 + 186 .loc 1 341 17 is_stmt 0 view .LVU31 + 187 0066 4368 ldr r3, [r0, #4] + 188 .loc 1 341 5 view .LVU32 + 189 0068 13F0020F tst r3, #2 + 190 006c 04D0 beq .L14 + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); + 191 .loc 1 343 5 is_stmt 1 view .LVU33 + 192 006e 044A ldr r2, .L15+4 + 193 0070 D368 ldr r3, [r2, #12] + 194 0072 43F48033 orr r3, r3, #65536 + 195 0076 D360 str r3, [r2, #12] + 196 .L14: + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** return HAL_OK; + 197 .loc 1 346 3 view .LVU34 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 198 .loc 1 347 1 is_stmt 0 view .LVU35 + 199 0078 0020 movs r0, #0 + 200 .LVL1: + 201 .loc 1 347 1 view .LVU36 + 202 007a 7047 bx lr + 203 .L16: + 204 .align 2 + 205 .L15: + 206 007c 00700040 .word 1073770496 + 207 0080 00040140 .word 1073808384 + 208 .cfi_endproc + 209 .LFE332: + 211 .section .text.HAL_PWR_EnablePVD,"ax",%progbits + 212 .align 1 + 213 .global HAL_PWR_EnablePVD + 214 .syntax unified + 215 .thumb + 216 .thumb_func + 218 HAL_PWR_EnablePVD: + 219 .LFB333: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Enable the Power Voltage Detector (PVD). + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnablePVD(void) + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 220 .loc 1 355 1 is_stmt 1 view -0 + 221 .cfi_startproc + 222 @ args = 0, pretend = 0, frame = 0 + 223 @ frame_needed = 0, uses_anonymous_args = 0 + 224 @ link register save eliminated. + ARM GAS /tmp/cchsYltI.s page 11 + + + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SET_BIT(PWR->CR2, PWR_CR2_PVDE); + 225 .loc 1 356 3 view .LVU38 + 226 0000 024A ldr r2, .L18 + 227 0002 5368 ldr r3, [r2, #4] + 228 0004 43F00103 orr r3, r3, #1 + 229 0008 5360 str r3, [r2, #4] + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 230 .loc 1 357 1 is_stmt 0 view .LVU39 + 231 000a 7047 bx lr + 232 .L19: + 233 .align 2 + 234 .L18: + 235 000c 00700040 .word 1073770496 + 236 .cfi_endproc + 237 .LFE333: + 239 .section .text.HAL_PWR_DisablePVD,"ax",%progbits + 240 .align 1 + 241 .global HAL_PWR_DisablePVD + 242 .syntax unified + 243 .thumb + 244 .thumb_func + 246 HAL_PWR_DisablePVD: + 247 .LFB334: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Disable the Power Voltage Detector (PVD). + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_DisablePVD(void) + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 248 .loc 1 364 1 is_stmt 1 view -0 + 249 .cfi_startproc + 250 @ args = 0, pretend = 0, frame = 0 + 251 @ frame_needed = 0, uses_anonymous_args = 0 + 252 @ link register save eliminated. + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** CLEAR_BIT(PWR->CR2, PWR_CR2_PVDE); + 253 .loc 1 365 3 view .LVU41 + 254 0000 024A ldr r2, .L21 + 255 0002 5368 ldr r3, [r2, #4] + 256 0004 23F00103 bic r3, r3, #1 + 257 0008 5360 str r3, [r2, #4] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 258 .loc 1 366 1 is_stmt 0 view .LVU42 + 259 000a 7047 bx lr + 260 .L22: + 261 .align 2 + 262 .L21: + 263 000c 00700040 .word 1073770496 + 264 .cfi_endproc + 265 .LFE334: + 267 .section .text.HAL_PWR_EnableWakeUpPin,"ax",%progbits + 268 .align 1 + 269 .global HAL_PWR_EnableWakeUpPin + 270 .syntax unified + 271 .thumb + 272 .thumb_func + 274 HAL_PWR_EnableWakeUpPin: + ARM GAS /tmp/cchsYltI.s page 12 + + + 275 .LVL2: + 276 .LFB335: + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Enable the WakeUp PINx functionality. + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param WakeUpPinPolarity: Specifies which Wake-Up pin to enable. + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * This parameter can be one of the following legacy values which set the default polarity + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * i.e. detection on high level (rising edge): + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN1, PWR_WAKEUP_PIN2, PWR_WAKEUP_PIN3, PWR_WAKEUP_PIN4, PWR_WAK + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * or one of the following value where the user can explicitly specify the enabled pin and + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * the chosen polarity: + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN1_HIGH or PWR_WAKEUP_PIN1_LOW + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN2_HIGH or PWR_WAKEUP_PIN2_LOW + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN3_HIGH or PWR_WAKEUP_PIN3_LOW + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN4_HIGH or PWR_WAKEUP_PIN4_LOW + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN5_HIGH or PWR_WAKEUP_PIN5_LOW + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note PWR_WAKEUP_PINx and PWR_WAKEUP_PINx_HIGH are equivalent. + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinPolarity) + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 277 .loc 1 389 1 is_stmt 1 view -0 + 278 .cfi_startproc + 279 @ args = 0, pretend = 0, frame = 0 + 280 @ frame_needed = 0, uses_anonymous_args = 0 + 281 @ link register save eliminated. + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinPolarity)); + 282 .loc 1 390 3 view .LVU44 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Specifies the Wake-Up pin polarity for the event detection + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (rising or falling edge) */ + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** MODIFY_REG(PWR->CR4, (PWR_CR3_EWUP & WakeUpPinPolarity), (WakeUpPinPolarity >> PWR_WUP_POLARITY_S + 283 .loc 1 394 3 view .LVU45 + 284 0000 064A ldr r2, .L24 + 285 0002 D368 ldr r3, [r2, #12] + 286 0004 00F01F01 and r1, r0, #31 + 287 0008 23EA0103 bic r3, r3, r1 + 288 000c 43EA5010 orr r0, r3, r0, lsr #5 + 289 .LVL3: + 290 .loc 1 394 3 is_stmt 0 view .LVU46 + 291 0010 D060 str r0, [r2, #12] + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Enable wake-up pin */ + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SET_BIT(PWR->CR3, (PWR_CR3_EWUP & WakeUpPinPolarity)); + 292 .loc 1 397 3 is_stmt 1 view .LVU47 + 293 0012 9368 ldr r3, [r2, #8] + 294 0014 1943 orrs r1, r1, r3 + 295 0016 9160 str r1, [r2, #8] + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 296 .loc 1 400 1 is_stmt 0 view .LVU48 + 297 0018 7047 bx lr + ARM GAS /tmp/cchsYltI.s page 13 + + + 298 .L25: + 299 001a 00BF .align 2 + 300 .L24: + 301 001c 00700040 .word 1073770496 + 302 .cfi_endproc + 303 .LFE335: + 305 .section .text.HAL_PWR_DisableWakeUpPin,"ax",%progbits + 306 .align 1 + 307 .global HAL_PWR_DisableWakeUpPin + 308 .syntax unified + 309 .thumb + 310 .thumb_func + 312 HAL_PWR_DisableWakeUpPin: + 313 .LVL4: + 314 .LFB336: + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Disable the WakeUp PINx functionality. + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param WakeUpPinx: Specifies the Power Wake-Up pin to disable. + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * This parameter can be one of the following values: + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_WAKEUP_PIN1, PWR_WAKEUP_PIN2, PWR_WAKEUP_PIN3, PWR_WAKEUP_PIN4, PWR_WAK + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx) + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 315 .loc 1 410 1 is_stmt 1 view -0 + 316 .cfi_startproc + 317 @ args = 0, pretend = 0, frame = 0 + 318 @ frame_needed = 0, uses_anonymous_args = 0 + 319 @ link register save eliminated. + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx)); + 320 .loc 1 411 3 view .LVU50 + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** CLEAR_BIT(PWR->CR3, (PWR_CR3_EWUP & WakeUpPinx)); + 321 .loc 1 413 3 view .LVU51 + 322 0000 034A ldr r2, .L27 + 323 0002 9368 ldr r3, [r2, #8] + 324 0004 00F01F00 and r0, r0, #31 + 325 .LVL5: + 326 .loc 1 413 3 is_stmt 0 view .LVU52 + 327 0008 23EA0003 bic r3, r3, r0 + 328 000c 9360 str r3, [r2, #8] + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 329 .loc 1 414 1 view .LVU53 + 330 000e 7047 bx lr + 331 .L28: + 332 .align 2 + 333 .L27: + 334 0010 00700040 .word 1073770496 + 335 .cfi_endproc + 336 .LFE336: + 338 .section .text.HAL_PWR_EnterSLEEPMode,"ax",%progbits + 339 .align 1 + 340 .global HAL_PWR_EnterSLEEPMode + 341 .syntax unified + 342 .thumb + 343 .thumb_func + ARM GAS /tmp/cchsYltI.s page 14 + + + 345 HAL_PWR_EnterSLEEPMode: + 346 .LVL6: + 347 .LFB337: + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Enter Sleep or Low-power Sleep mode. + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note In Sleep/Low-power Sleep mode, all I/O pins keep the same state as in Run mode. + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param Regulator: Specifies the regulator state in Sleep/Low-power Sleep mode. + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * This parameter can be one of the following values: + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_MAINREGULATOR_ON Sleep mode (regulator in main mode) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_LOWPOWERREGULATOR_ON Low-power Sleep mode (regulator in low-power mode + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note Low-power Sleep mode is entered from Low-power Run mode. Therefore, if not yet + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * in Low-power Run mode before calling HAL_PWR_EnterSLEEPMode() with Regulator set + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * to PWR_LOWPOWERREGULATOR_ON, the user can optionally configure the + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Flash in power-down monde in setting the SLEEP_PD bit in FLASH_ACR register. + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Additionally, the clock frequency must be reduced below 2 MHz. + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Setting SLEEP_PD in FLASH_ACR then appropriately reducing the clock frequency must + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * be done before calling HAL_PWR_EnterSLEEPMode() API. + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note When exiting Low-power Sleep mode, the MCU is in Low-power Run mode. To move in + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Run mode, the user must resort to HAL_PWREx_DisableLowPowerRunMode() API. + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param SLEEPEntry: Specifies if Sleep mode is entered with WFI or WFE instruction. + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * This parameter can be one of the following values: + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_SLEEPENTRY_WFI enter Sleep or Low-power Sleep mode with WFI instructio + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_SLEEPENTRY_WFE enter Sleep or Low-power Sleep mode with WFE instructio + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note When WFI entry is used, tick interrupt have to be disabled if not desired as + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * the interrupt wake up source. + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry) + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 348 .loc 1 442 1 is_stmt 1 view -0 + 349 .cfi_startproc + 350 @ args = 0, pretend = 0, frame = 0 + 351 @ frame_needed = 0, uses_anonymous_args = 0 + 352 .loc 1 442 1 is_stmt 0 view .LVU55 + 353 0000 10B5 push {r4, lr} + 354 .LCFI0: + 355 .cfi_def_cfa_offset 8 + 356 .cfi_offset 4, -8 + 357 .cfi_offset 14, -4 + 358 0002 0C46 mov r4, r1 + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Check the parameters */ + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_REGULATOR(Regulator)); + 359 .loc 1 444 3 is_stmt 1 view .LVU56 + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry)); + 360 .loc 1 445 3 view .LVU57 + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Set Regulator parameter */ + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if (Regulator == PWR_MAINREGULATOR_ON) + 361 .loc 1 448 3 view .LVU58 + 362 .loc 1 448 6 is_stmt 0 view .LVU59 + 363 0004 90B9 cbnz r0, .L30 + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* If in low-power run mode at this point, exit it */ + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) + 364 .loc 1 451 5 is_stmt 1 view .LVU60 + ARM GAS /tmp/cchsYltI.s page 15 + + + 365 .loc 1 451 9 is_stmt 0 view .LVU61 + 366 0006 0E4B ldr r3, .L37 + 367 0008 5B69 ldr r3, [r3, #20] + 368 .loc 1 451 8 view .LVU62 + 369 000a 13F4007F tst r3, #512 + 370 000e 0AD1 bne .L35 + 371 .LVL7: + 372 .L31: + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** (void)HAL_PWREx_DisableLowPowerRunMode(); + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Regulator now in main mode. */ + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** else + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* If in run mode, first move to low-power run mode. + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** The system clock frequency must be below 2 MHz at this point. */ + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF) == 0U) + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** HAL_PWREx_EnableLowPowerRunMode(); + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Clear SLEEPDEEP bit of Cortex System Control Register */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 373 .loc 1 468 3 is_stmt 1 view .LVU63 + 374 0010 0C4A ldr r2, .L37+4 + 375 0012 1369 ldr r3, [r2, #16] + 376 0014 23F00403 bic r3, r3, #4 + 377 0018 1361 str r3, [r2, #16] + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Select SLEEP mode entry -------------------------------------------------*/ + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if(SLEEPEntry == PWR_SLEEPENTRY_WFI) + 378 .loc 1 471 3 view .LVU64 + 379 .loc 1 471 5 is_stmt 0 view .LVU65 + 380 001a 012C cmp r4, #1 + 381 001c 0ED0 beq .L36 + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Request Wait For Interrupt */ + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __WFI(); + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** else + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Request Wait For Event */ + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __SEV(); + 382 .loc 1 479 5 is_stmt 1 view .LVU66 + 383 .syntax unified + 384 @ 479 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c" 1 + 385 001e 40BF sev + 386 @ 0 "" 2 + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __WFE(); + 387 .loc 1 480 5 view .LVU67 + 388 @ 480 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c" 1 + 389 0020 20BF wfe + 390 @ 0 "" 2 + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __WFE(); + 391 .loc 1 481 5 view .LVU68 + ARM GAS /tmp/cchsYltI.s page 16 + + + 392 @ 481 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c" 1 + 393 0022 20BF wfe + 394 @ 0 "" 2 + 395 .thumb + 396 .syntax unified + 397 .L29: + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 398 .loc 1 484 1 is_stmt 0 view .LVU69 + 399 0024 10BD pop {r4, pc} + 400 .LVL8: + 401 .L35: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 402 .loc 1 453 7 is_stmt 1 view .LVU70 + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 403 .loc 1 453 13 is_stmt 0 view .LVU71 + 404 0026 FFF7FEFF bl HAL_PWREx_DisableLowPowerRunMode + 405 .LVL9: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 406 .loc 1 453 13 view .LVU72 + 407 002a F1E7 b .L31 + 408 .LVL10: + 409 .L30: + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 410 .loc 1 461 5 is_stmt 1 view .LVU73 + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 411 .loc 1 461 9 is_stmt 0 view .LVU74 + 412 002c 044B ldr r3, .L37 + 413 002e 5B69 ldr r3, [r3, #20] + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 414 .loc 1 461 8 view .LVU75 + 415 0030 13F4007F tst r3, #512 + 416 0034 ECD1 bne .L31 + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 417 .loc 1 463 7 is_stmt 1 view .LVU76 + 418 0036 FFF7FEFF bl HAL_PWREx_EnableLowPowerRunMode + 419 .LVL11: + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 420 .loc 1 463 7 is_stmt 0 view .LVU77 + 421 003a E9E7 b .L31 + 422 .L36: + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 423 .loc 1 474 5 is_stmt 1 view .LVU78 + 424 .syntax unified + 425 @ 474 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c" 1 + 426 003c 30BF wfi + 427 @ 0 "" 2 + 428 .thumb + 429 .syntax unified + 430 003e F1E7 b .L29 + 431 .L38: + 432 .align 2 + 433 .L37: + 434 0040 00700040 .word 1073770496 + 435 0044 00ED00E0 .word -536810240 + 436 .cfi_endproc + ARM GAS /tmp/cchsYltI.s page 17 + + + 437 .LFE337: + 439 .section .text.HAL_PWR_EnterSTOPMode,"ax",%progbits + 440 .align 1 + 441 .global HAL_PWR_EnterSTOPMode + 442 .syntax unified + 443 .thumb + 444 .thumb_func + 446 HAL_PWR_EnterSTOPMode: + 447 .LVL12: + 448 .LFB338: + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Enter Stop mode + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note This API is named HAL_PWR_EnterSTOPMode to ensure compatibility with legacy code running + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * on devices where only "Stop mode" is mentioned with main or low power regulator ON. + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note In Stop mode, all I/O pins keep the same state as in Run mode. + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note All clocks in the VCORE domain are stopped; the PLL, + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * the HSI and the HSE oscillators are disabled. Some peripherals with the wakeup capabilit + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * (I2Cx, USARTx and LPUART) can switch on the HSI to receive a frame, and switch off the H + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * after receiving the frame if it is not a wakeup frame. In this case, the HSI clock is pr + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * only to the peripheral requesting it. + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * SRAM1, SRAM2 and register contents are preserved. + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * The BOR is available. + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * The voltage regulator can be configured either in normal (Stop 0) or low-power mode (Sto + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note When exiting Stop 0 or Stop 1 mode by issuing an interrupt or a wakeup event, + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * the HSI RC oscillator is selected as system clock. + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note When the voltage regulator operates in low power mode (Stop 1), an additional + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * startup delay is incurred when waking up. + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * By keeping the internal regulator ON during Stop mode (Stop 0), the consumption + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * is higher although the startup time is reduced. + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param Regulator: Specifies the regulator state in Stop mode. + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * This parameter can be one of the following values: + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_MAINREGULATOR_ON Stop 0 mode (main regulator ON) + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_LOWPOWERREGULATOR_ON Stop 1 mode (low power regulator ON) + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @param STOPEntry: Specifies Stop 0 or Stop 1 mode is entered with WFI or WFE instruction. + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * This parameter can be one of the following values: + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_STOPENTRY_WFI Enter Stop 0 or Stop 1 mode with WFI instruction. + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @arg @ref PWR_STOPENTRY_WFE Enter Stop 0 or Stop 1 mode with WFE instruction. + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry) + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 449 .loc 1 517 1 view -0 + 450 .cfi_startproc + 451 @ args = 0, pretend = 0, frame = 0 + 452 @ frame_needed = 0, uses_anonymous_args = 0 + 453 .loc 1 517 1 is_stmt 0 view .LVU80 + 454 0000 08B5 push {r3, lr} + 455 .LCFI1: + 456 .cfi_def_cfa_offset 8 + 457 .cfi_offset 3, -8 + 458 .cfi_offset 14, -4 + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Check the parameters */ + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** assert_param(IS_PWR_REGULATOR(Regulator)); + 459 .loc 1 519 3 is_stmt 1 view .LVU81 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + ARM GAS /tmp/cchsYltI.s page 18 + + + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** if(Regulator == PWR_LOWPOWERREGULATOR_ON) + 460 .loc 1 521 3 view .LVU82 + 461 .loc 1 521 5 is_stmt 0 view .LVU83 + 462 0002 B0F5804F cmp r0, #16384 + 463 0006 03D0 beq .L43 + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** HAL_PWREx_EnterSTOP1Mode(STOPEntry); + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** else + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** HAL_PWREx_EnterSTOP0Mode(STOPEntry); + 464 .loc 1 527 5 is_stmt 1 view .LVU84 + 465 0008 0846 mov r0, r1 + 466 .LVL13: + 467 .loc 1 527 5 is_stmt 0 view .LVU85 + 468 000a FFF7FEFF bl HAL_PWREx_EnterSTOP0Mode + 469 .LVL14: + 470 .L39: + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 471 .loc 1 529 1 view .LVU86 + 472 000e 08BD pop {r3, pc} + 473 .LVL15: + 474 .L43: + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 475 .loc 1 523 5 is_stmt 1 view .LVU87 + 476 0010 0846 mov r0, r1 + 477 .LVL16: + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 478 .loc 1 523 5 is_stmt 0 view .LVU88 + 479 0012 FFF7FEFF bl HAL_PWREx_EnterSTOP1Mode + 480 .LVL17: + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 481 .loc 1 523 5 view .LVU89 + 482 0016 FAE7 b .L39 + 483 .cfi_endproc + 484 .LFE338: + 486 .section .text.HAL_PWR_EnterSTANDBYMode,"ax",%progbits + 487 .align 1 + 488 .global HAL_PWR_EnterSTANDBYMode + 489 .syntax unified + 490 .thumb + 491 .thumb_func + 493 HAL_PWR_EnterSTANDBYMode: + 494 .LFB339: + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Enter Standby mode. + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note In Standby mode, the PLL, the HSI and the HSE oscillators are switched + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * off. The voltage regulator is disabled, except when SRAM2 content is preserved + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * in which case the regulator is in low-power mode. + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * SRAM1 and register contents are lost except for registers in the Backup domain and + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Standby circuitry. SRAM2 content can be preserved if the bit RRS is set in PWR_CR3 regis + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * To enable this feature, the user can resort to HAL_PWREx_EnableSRAM2ContentRetention() A + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * to set RRS bit. + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * The BOR is available. + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note The I/Os can be configured either with a pull-up or pull-down or can be kept in analog s + ARM GAS /tmp/cchsYltI.s page 19 + + + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * HAL_PWREx_EnableGPIOPullUp() and HAL_PWREx_EnableGPIOPullDown() respectively enable Pull + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Pull Down state, HAL_PWREx_DisableGPIOPullUp() and HAL_PWREx_DisableGPIOPullDown() disab + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * same. + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * These states are effective in Standby mode only if APC bit is set through + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * HAL_PWREx_EnablePullUpPullDownConfig() API. + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnterSTANDBYMode(void) + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 495 .loc 1 550 1 is_stmt 1 view -0 + 496 .cfi_startproc + 497 @ args = 0, pretend = 0, frame = 0 + 498 @ frame_needed = 0, uses_anonymous_args = 0 + 499 @ link register save eliminated. + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Set Stand-by mode */ + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_STANDBY); + 500 .loc 1 552 3 view .LVU91 + 501 0000 064A ldr r2, .L45 + 502 0002 1368 ldr r3, [r2] + 503 0004 23F00703 bic r3, r3, #7 + 504 0008 43F00303 orr r3, r3, #3 + 505 000c 1360 str r3, [r2] + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Set SLEEPDEEP bit of Cortex System Control Register */ + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 506 .loc 1 555 3 view .LVU92 + 507 000e 044A ldr r2, .L45+4 + 508 0010 1369 ldr r3, [r2, #16] + 509 0012 43F00403 orr r3, r3, #4 + 510 0016 1361 str r3, [r2, #16] + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* This option is used to ensure that store operations are completed */ + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** #if defined ( __CC_ARM) + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __force_stores(); + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** #endif + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Request Wait For Interrupt */ + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __WFI(); + 511 .loc 1 562 3 view .LVU93 + 512 .syntax unified + 513 @ 562 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c" 1 + 514 0018 30BF wfi + 515 @ 0 "" 2 + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 516 .loc 1 563 1 is_stmt 0 view .LVU94 + 517 .thumb + 518 .syntax unified + 519 001a 7047 bx lr + 520 .L46: + 521 .align 2 + 522 .L45: + 523 001c 00700040 .word 1073770496 + 524 0020 00ED00E0 .word -536810240 + 525 .cfi_endproc + 526 .LFE339: + 528 .section .text.HAL_PWR_EnableSleepOnExit,"ax",%progbits + 529 .align 1 + 530 .global HAL_PWR_EnableSleepOnExit + ARM GAS /tmp/cchsYltI.s page 20 + + + 531 .syntax unified + 532 .thumb + 533 .thumb_func + 535 HAL_PWR_EnableSleepOnExit: + 536 .LFB340: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Indicate Sleep-On-Exit when returning from Handler mode to Thread mode. + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note Set SLEEPONEXIT bit of SCR register. When this bit is set, the processor + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * re-enters SLEEP mode when an interruption handling is over. + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * Setting this bit is useful when the processor is expected to run only on + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * interruptions handling. + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnableSleepOnExit(void) + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 537 .loc 1 576 1 is_stmt 1 view -0 + 538 .cfi_startproc + 539 @ args = 0, pretend = 0, frame = 0 + 540 @ frame_needed = 0, uses_anonymous_args = 0 + 541 @ link register save eliminated. + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Set SLEEPONEXIT bit of Cortex System Control Register */ + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); + 542 .loc 1 578 3 view .LVU96 + 543 0000 024A ldr r2, .L48 + 544 0002 1369 ldr r3, [r2, #16] + 545 0004 43F00203 orr r3, r3, #2 + 546 0008 1361 str r3, [r2, #16] + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 547 .loc 1 579 1 is_stmt 0 view .LVU97 + 548 000a 7047 bx lr + 549 .L49: + 550 .align 2 + 551 .L48: + 552 000c 00ED00E0 .word -536810240 + 553 .cfi_endproc + 554 .LFE340: + 556 .section .text.HAL_PWR_DisableSleepOnExit,"ax",%progbits + 557 .align 1 + 558 .global HAL_PWR_DisableSleepOnExit + 559 .syntax unified + 560 .thumb + 561 .thumb_func + 563 HAL_PWR_DisableSleepOnExit: + 564 .LFB341: + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Disable Sleep-On-Exit feature when returning from Handler mode to Thread mode. + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note Clear SLEEPONEXIT bit of SCR register. When this bit is set, the processor + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * re-enters SLEEP mode when an interruption handling is over. + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_DisableSleepOnExit(void) + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + ARM GAS /tmp/cchsYltI.s page 21 + + + 565 .loc 1 589 1 is_stmt 1 view -0 + 566 .cfi_startproc + 567 @ args = 0, pretend = 0, frame = 0 + 568 @ frame_needed = 0, uses_anonymous_args = 0 + 569 @ link register save eliminated. + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Clear SLEEPONEXIT bit of Cortex System Control Register */ + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); + 570 .loc 1 591 3 view .LVU99 + 571 0000 024A ldr r2, .L51 + 572 0002 1369 ldr r3, [r2, #16] + 573 0004 23F00203 bic r3, r3, #2 + 574 0008 1361 str r3, [r2, #16] + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 575 .loc 1 592 1 is_stmt 0 view .LVU100 + 576 000a 7047 bx lr + 577 .L52: + 578 .align 2 + 579 .L51: + 580 000c 00ED00E0 .word -536810240 + 581 .cfi_endproc + 582 .LFE341: + 584 .section .text.HAL_PWR_EnableSEVOnPend,"ax",%progbits + 585 .align 1 + 586 .global HAL_PWR_EnableSEVOnPend + 587 .syntax unified + 588 .thumb + 589 .thumb_func + 591 HAL_PWR_EnableSEVOnPend: + 592 .LFB342: + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Enable CORTEX M4 SEVONPEND bit. + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note Set SEVONPEND bit of SCR register. When this bit is set, this causes + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * WFE to wake up when an interrupt moves from inactive to pended. + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_EnableSEVOnPend(void) + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 593 .loc 1 603 1 is_stmt 1 view -0 + 594 .cfi_startproc + 595 @ args = 0, pretend = 0, frame = 0 + 596 @ frame_needed = 0, uses_anonymous_args = 0 + 597 @ link register save eliminated. + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Set SEVONPEND bit of Cortex System Control Register */ + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); + 598 .loc 1 605 3 view .LVU102 + 599 0000 024A ldr r2, .L54 + 600 0002 1369 ldr r3, [r2, #16] + 601 0004 43F01003 orr r3, r3, #16 + 602 0008 1361 str r3, [r2, #16] + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 603 .loc 1 606 1 is_stmt 0 view .LVU103 + 604 000a 7047 bx lr + 605 .L55: + 606 .align 2 + ARM GAS /tmp/cchsYltI.s page 22 + + + 607 .L54: + 608 000c 00ED00E0 .word -536810240 + 609 .cfi_endproc + 610 .LFE342: + 612 .section .text.HAL_PWR_DisableSEVOnPend,"ax",%progbits + 613 .align 1 + 614 .global HAL_PWR_DisableSEVOnPend + 615 .syntax unified + 616 .thumb + 617 .thumb_func + 619 HAL_PWR_DisableSEVOnPend: + 620 .LFB343: + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief Disable CORTEX M4 SEVONPEND bit. + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @note Clear SEVONPEND bit of SCR register. When this bit is set, this causes + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * WFE to wake up when an interrupt moves from inactive to pended. + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** void HAL_PWR_DisableSEVOnPend(void) + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 621 .loc 1 616 1 is_stmt 1 view -0 + 622 .cfi_startproc + 623 @ args = 0, pretend = 0, frame = 0 + 624 @ frame_needed = 0, uses_anonymous_args = 0 + 625 @ link register save eliminated. + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* Clear SEVONPEND bit of Cortex System Control Register */ + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); + 626 .loc 1 618 3 view .LVU105 + 627 0000 024A ldr r2, .L57 + 628 0002 1369 ldr r3, [r2, #16] + 629 0004 23F01003 bic r3, r3, #16 + 630 0008 1361 str r3, [r2, #16] + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 631 .loc 1 619 1 is_stmt 0 view .LVU106 + 632 000a 7047 bx lr + 633 .L58: + 634 .align 2 + 635 .L57: + 636 000c 00ED00E0 .word -536810240 + 637 .cfi_endproc + 638 .LFE343: + 640 .section .text.HAL_PWR_PVDCallback,"ax",%progbits + 641 .align 1 + 642 .weak HAL_PWR_PVDCallback + 643 .syntax unified + 644 .thumb + 645 .thumb_func + 647 HAL_PWR_PVDCallback: + 648 .LFB344: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /** + ARM GAS /tmp/cchsYltI.s page 23 + + + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @brief PWR PVD interrupt callback + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** * @retval None + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** __weak void HAL_PWR_PVDCallback(void) + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** { + 649 .loc 1 630 1 is_stmt 1 view -0 + 650 .cfi_startproc + 651 @ args = 0, pretend = 0, frame = 0 + 652 @ frame_needed = 0, uses_anonymous_args = 0 + 653 @ link register save eliminated. + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** /* NOTE : This function should not be modified; when the callback is needed, + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** the HAL_PWR_PVDCallback can be implemented in the user file + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** */ + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr.c **** } + 654 .loc 1 634 1 view .LVU108 + 655 0000 7047 bx lr + 656 .cfi_endproc + 657 .LFE344: + 659 .text + 660 .Letext0: + 661 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 662 .file 3 "Drivers/CMSIS/Include/core_cm4.h" + 663 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 664 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 665 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h" + 666 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h" + ARM GAS /tmp/cchsYltI.s page 24 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_pwr.c + /tmp/cchsYltI.s:21 .text.HAL_PWR_DeInit:00000000 $t + /tmp/cchsYltI.s:27 .text.HAL_PWR_DeInit:00000000 HAL_PWR_DeInit + /tmp/cchsYltI.s:48 .text.HAL_PWR_DeInit:00000014 $d + /tmp/cchsYltI.s:53 .text.HAL_PWR_EnableBkUpAccess:00000000 $t + /tmp/cchsYltI.s:59 .text.HAL_PWR_EnableBkUpAccess:00000000 HAL_PWR_EnableBkUpAccess + /tmp/cchsYltI.s:76 .text.HAL_PWR_EnableBkUpAccess:0000000c $d + /tmp/cchsYltI.s:81 .text.HAL_PWR_DisableBkUpAccess:00000000 $t + /tmp/cchsYltI.s:87 .text.HAL_PWR_DisableBkUpAccess:00000000 HAL_PWR_DisableBkUpAccess + /tmp/cchsYltI.s:104 .text.HAL_PWR_DisableBkUpAccess:0000000c $d + /tmp/cchsYltI.s:109 .text.HAL_PWR_ConfigPVD:00000000 $t + /tmp/cchsYltI.s:115 .text.HAL_PWR_ConfigPVD:00000000 HAL_PWR_ConfigPVD + /tmp/cchsYltI.s:206 .text.HAL_PWR_ConfigPVD:0000007c $d + /tmp/cchsYltI.s:212 .text.HAL_PWR_EnablePVD:00000000 $t + /tmp/cchsYltI.s:218 .text.HAL_PWR_EnablePVD:00000000 HAL_PWR_EnablePVD + /tmp/cchsYltI.s:235 .text.HAL_PWR_EnablePVD:0000000c $d + /tmp/cchsYltI.s:240 .text.HAL_PWR_DisablePVD:00000000 $t + /tmp/cchsYltI.s:246 .text.HAL_PWR_DisablePVD:00000000 HAL_PWR_DisablePVD + /tmp/cchsYltI.s:263 .text.HAL_PWR_DisablePVD:0000000c $d + /tmp/cchsYltI.s:268 .text.HAL_PWR_EnableWakeUpPin:00000000 $t + /tmp/cchsYltI.s:274 .text.HAL_PWR_EnableWakeUpPin:00000000 HAL_PWR_EnableWakeUpPin + /tmp/cchsYltI.s:301 .text.HAL_PWR_EnableWakeUpPin:0000001c $d + /tmp/cchsYltI.s:306 .text.HAL_PWR_DisableWakeUpPin:00000000 $t + /tmp/cchsYltI.s:312 .text.HAL_PWR_DisableWakeUpPin:00000000 HAL_PWR_DisableWakeUpPin + /tmp/cchsYltI.s:334 .text.HAL_PWR_DisableWakeUpPin:00000010 $d + /tmp/cchsYltI.s:339 .text.HAL_PWR_EnterSLEEPMode:00000000 $t + /tmp/cchsYltI.s:345 .text.HAL_PWR_EnterSLEEPMode:00000000 HAL_PWR_EnterSLEEPMode + /tmp/cchsYltI.s:434 .text.HAL_PWR_EnterSLEEPMode:00000040 $d + /tmp/cchsYltI.s:440 .text.HAL_PWR_EnterSTOPMode:00000000 $t + /tmp/cchsYltI.s:446 .text.HAL_PWR_EnterSTOPMode:00000000 HAL_PWR_EnterSTOPMode + /tmp/cchsYltI.s:487 .text.HAL_PWR_EnterSTANDBYMode:00000000 $t + /tmp/cchsYltI.s:493 .text.HAL_PWR_EnterSTANDBYMode:00000000 HAL_PWR_EnterSTANDBYMode + /tmp/cchsYltI.s:523 .text.HAL_PWR_EnterSTANDBYMode:0000001c $d + /tmp/cchsYltI.s:529 .text.HAL_PWR_EnableSleepOnExit:00000000 $t + /tmp/cchsYltI.s:535 .text.HAL_PWR_EnableSleepOnExit:00000000 HAL_PWR_EnableSleepOnExit + /tmp/cchsYltI.s:552 .text.HAL_PWR_EnableSleepOnExit:0000000c $d + /tmp/cchsYltI.s:557 .text.HAL_PWR_DisableSleepOnExit:00000000 $t + /tmp/cchsYltI.s:563 .text.HAL_PWR_DisableSleepOnExit:00000000 HAL_PWR_DisableSleepOnExit + /tmp/cchsYltI.s:580 .text.HAL_PWR_DisableSleepOnExit:0000000c $d + /tmp/cchsYltI.s:585 .text.HAL_PWR_EnableSEVOnPend:00000000 $t + /tmp/cchsYltI.s:591 .text.HAL_PWR_EnableSEVOnPend:00000000 HAL_PWR_EnableSEVOnPend + /tmp/cchsYltI.s:608 .text.HAL_PWR_EnableSEVOnPend:0000000c $d + /tmp/cchsYltI.s:613 .text.HAL_PWR_DisableSEVOnPend:00000000 $t + /tmp/cchsYltI.s:619 .text.HAL_PWR_DisableSEVOnPend:00000000 HAL_PWR_DisableSEVOnPend + /tmp/cchsYltI.s:636 .text.HAL_PWR_DisableSEVOnPend:0000000c $d + /tmp/cchsYltI.s:641 .text.HAL_PWR_PVDCallback:00000000 $t + /tmp/cchsYltI.s:647 .text.HAL_PWR_PVDCallback:00000000 HAL_PWR_PVDCallback + +UNDEFINED SYMBOLS +HAL_PWREx_DisableLowPowerRunMode +HAL_PWREx_EnableLowPowerRunMode +HAL_PWREx_EnterSTOP0Mode +HAL_PWREx_EnterSTOP1Mode diff --git a/squeow_sw/build/stm32g4xx_hal_pwr.o b/squeow_sw/build/stm32g4xx_hal_pwr.o new file mode 100644 index 0000000000000000000000000000000000000000..cb264221889990859ee76fd369aae86d0e929277 GIT binary patch literal 14356 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_pwr_ex.d b/squeow_sw/build/stm32g4xx_hal_pwr_ex.d new file mode 100644 index 0000000..6735abd --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_pwr_ex.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_pwr_ex.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_pwr_ex.lst b/squeow_sw/build/stm32g4xx_hal_pwr_ex.lst new file mode 100644 index 0000000..134fdaf --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_pwr_ex.lst @@ -0,0 +1,3933 @@ +ARM GAS /tmp/cchjGo05.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_pwr_ex.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" + 20 .section .text.HAL_PWREx_GetVoltageRange,"ax",%progbits + 21 .align 1 + 22 .global HAL_PWREx_GetVoltageRange + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 HAL_PWREx_GetVoltageRange: + 28 .LFB329: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @file stm32g4xx_hal_pwr_ex.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Extended PWR HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * functionalities of the Power Controller (PWR) peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + Extended Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + Extended Peripheral Control functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** ****************************************************************************** + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @attention + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * Copyright (c) 2019 STMicroelectronics. + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * All rights reserved. + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This software is licensed under terms that can be found in the LICENSE file + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * in the root directory of this software component. + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** ****************************************************************************** + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Includes ------------------------------------------------------------------*/ + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #include "stm32g4xx_hal.h" + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + ARM GAS /tmp/cchjGo05.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @defgroup PWREx PWREx + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief PWR Extended HAL module driver + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #ifdef HAL_PWR_MODULE_ENABLED + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Private typedef -----------------------------------------------------------*/ + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Private define ------------------------------------------------------------*/ + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined (STM32G471xx) || defined (STM32G473xx) || defined (STM32G474xx) || defined (STM32G483xx + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PWR_PORTF_AVAILABLE_PINS 0x0000FFFFU /* PF0..PF15 */ + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PWR_PORTG_AVAILABLE_PINS 0x000007FFU /* PG0..PG10 */ + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #elif defined (STM32G431xx) || defined (STM32G441xx) || defined (STM32GBK1CB) || defined (STM32G491 + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PWR_PORTF_AVAILABLE_PINS 0x00000607U /* PF0..PF2 and PF9 and PF10 */ + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PWR_PORTG_AVAILABLE_PINS 0x00000400U /* PG10 */ + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @defgroup PWR_Extended_Private_Defines PWR Extended Private Defines + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @defgroup PWREx_PVM_Mode_Mask PWR PVM Mode Mask + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PVM_MODE_IT 0x00010000U /*!< Mask for interruption yielded by PVM threshol + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PVM_MODE_EVT 0x00020000U /*!< Mask for event yielded by PVM threshold cross + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PVM_RISING_EDGE 0x00000001U /*!< Mask for rising edge set as PVM trigger + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PVM_FALLING_EDGE 0x00000002U /*!< Mask for falling edge set as PVM trigger + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @} + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @defgroup PWREx_TimeOut_Value PWR Extended Flag Setting Time Out Value + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #define PWR_FLAG_SETTING_DELAY_US 50UL /*!< Time out value for REGLPF and VO + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @} + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @} + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Private macro -------------------------------------------------------------*/ + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Private variables ---------------------------------------------------------*/ + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Private function prototypes -----------------------------------------------*/ + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Exported functions --------------------------------------------------------*/ + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @defgroup PWREx_Exported_Functions PWR Extended Exported Functions + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + ARM GAS /tmp/cchjGo05.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** @defgroup PWREx_Exported_Functions_Group1 Extended Peripheral Control functions + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Extended Peripheral Control functions + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** @verbatim + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** =============================================================================== + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** ##### Extended Peripheral Initialization and de-initialization functions ##### + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** =============================================================================== + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** [..] + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** @endverbatim + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @{ + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Return Voltage Scaling Range. + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1 or PWR_REGULATOR_VOLTAGE_SCALE2 + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * or PWR_REGULATOR_VOLTAGE_SCALE1_BOOST when applicable) + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** uint32_t HAL_PWREx_GetVoltageRange(void) + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 29 .loc 1 110 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + 34 .loc 1 111 3 view .LVU1 + 35 .loc 1 111 7 is_stmt 0 view .LVU2 + 36 0000 074B ldr r3, .L4 + 37 0002 1868 ldr r0, [r3] + 38 0004 00F4C060 and r0, r0, #1536 + 39 .loc 1 111 6 view .LVU3 + 40 0008 B0F5806F cmp r0, #1024 + 41 000c 04D0 beq .L1 + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return PWR_REGULATOR_VOLTAGE_SCALE2; + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else if (READ_BIT(PWR->CR5, PWR_CR5_R1MODE) == PWR_CR5_R1MODE) + 42 .loc 1 115 8 is_stmt 1 view .LVU4 + 43 .loc 1 115 12 is_stmt 0 view .LVU5 + 44 000e D3F88000 ldr r0, [r3, #128] + 45 .loc 1 115 11 view .LVU6 + 46 0012 10F48070 ands r0, r0, #256 + 47 0016 00D1 bne .L3 + 48 .L1: + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR_CR5_R1MODE bit set means that Range 1 Boost is disabled */ + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return PWR_REGULATOR_VOLTAGE_SCALE1; + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return PWR_REGULATOR_VOLTAGE_SCALE1_BOOST; + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + ARM GAS /tmp/cchjGo05.s page 4 + + + 49 .loc 1 124 1 view .LVU7 + 50 0018 7047 bx lr + 51 .L3: + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 52 .loc 1 118 12 view .LVU8 + 53 001a 4FF40070 mov r0, #512 + 54 001e FBE7 b .L1 + 55 .L5: + 56 .align 2 + 57 .L4: + 58 0020 00700040 .word 1073770496 + 59 .cfi_endproc + 60 .LFE329: + 62 .section .text.HAL_PWREx_ControlVoltageScaling,"ax",%progbits + 63 .align 1 + 64 .global HAL_PWREx_ControlVoltageScaling + 65 .syntax unified + 66 .thumb + 67 .thumb_func + 69 HAL_PWREx_ControlVoltageScaling: + 70 .LVL0: + 71 .LFB330: + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Configure the main internal regulator output voltage. + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param VoltageScaling: specifies the regulator output voltage to achieve + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * a tradeoff between performance and power consumption. + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1_BOOST when available, Regulator voltage outpu + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * typical output voltage at 1.28 V, + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * system frequency up to 170 MHz. + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1 Regulator voltage output range 1 mode, + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * typical output voltage at 1.2 V, + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * system frequency up to 150 MHz. + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE2 Regulator voltage output range 2 mode, + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * typical output voltage at 1.0 V, + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * system frequency up to 26 MHz. + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When moving from Range 1 to Range 2, the system frequency must be decreased to + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * a value below 26 MHz before calling HAL_PWREx_ControlVoltageScaling() API. + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * When moving from Range 2 to Range 1, the system frequency can be increased to + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * a value up to 150 MHz after calling HAL_PWREx_ControlVoltageScaling() API. + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * When moving from Range 1 to Boost Mode Range 1, the system frequency can be increased to + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * a value up to 170 MHz after calling HAL_PWREx_ControlVoltageScaling() API. + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When moving from Range 2 to Range 1, the API waits for VOSF flag to be + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * cleared before returning the status. If the flag is not cleared within + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * 50 microseconds, HAL_TIMEOUT status is reported. + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL Status + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling) + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 72 .loc 1 154 1 is_stmt 1 view -0 + 73 .cfi_startproc + 74 @ args = 0, pretend = 0, frame = 0 + 75 @ frame_needed = 0, uses_anonymous_args = 0 + 76 @ link register save eliminated. + ARM GAS /tmp/cchjGo05.s page 5 + + + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** uint32_t wait_loop_index; + 77 .loc 1 155 3 view .LVU10 + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_VOLTAGE_SCALING_RANGE(VoltageScaling)); + 78 .loc 1 157 3 view .LVU11 + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) + 79 .loc 1 159 3 view .LVU12 + 80 .loc 1 159 6 is_stmt 0 view .LVU13 + 81 0000 0028 cmp r0, #0 + 82 0002 36D1 bne .L7 + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* If current range is range 2 */ + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + 83 .loc 1 162 5 is_stmt 1 view .LVU14 + 84 .loc 1 162 9 is_stmt 0 view .LVU15 + 85 0004 3E4B ldr r3, .L23 + 86 0006 1B68 ldr r3, [r3] + 87 0008 03F4C063 and r3, r3, #1536 + 88 .loc 1 162 8 view .LVU16 + 89 000c B3F5806F cmp r3, #1024 + 90 0010 08D0 beq .L20 + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Make sure Range 1 Boost is enabled */ + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set Range 1 */ + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Wait until VOSF is cleared */ + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** wait_loop_index--; + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return HAL_TIMEOUT; + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* If current range is range 1 normal or boost mode */ + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Enable Range 1 Boost (no issue if bit already reset) */ + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); + 91 .loc 1 185 7 is_stmt 1 view .LVU17 + 92 0012 3B4A ldr r2, .L23 + 93 0014 D2F88030 ldr r3, [r2, #128] + 94 0018 23F48073 bic r3, r3, #256 + 95 001c C2F88030 str r3, [r2, #128] + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1) + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* If current range is range 2 */ + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (READ_BIT(PWR->CR1, PWR_CR1_VOS) == PWR_REGULATOR_VOLTAGE_SCALE2) + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + ARM GAS /tmp/cchjGo05.s page 6 + + + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Make sure Range 1 Boost is disabled */ + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR5, PWR_CR5_R1MODE); + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set Range 1 */ + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Wait until VOSF is cleared */ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** wait_loop_index--; + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return HAL_TIMEOUT; + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* If current range is range 1 normal or boost mode */ + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Disable Range 1 Boost (no issue if bit already set) */ + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR5, PWR_CR5_R1MODE); + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set Range 2 */ + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE2); + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* No need to wait for VOSF to be cleared for this transition */ + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR_CR5_R1MODE bit setting has no effect in Range 2 */ + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return HAL_OK; + 96 .loc 1 225 10 is_stmt 0 view .LVU18 + 97 0020 0020 movs r0, #0 + 98 .LVL1: + 99 .loc 1 225 10 view .LVU19 + 100 0022 7047 bx lr + 101 .LVL2: + 102 .L20: + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 103 .loc 1 165 7 is_stmt 1 view .LVU20 + 104 0024 364A ldr r2, .L23 + 105 0026 D2F88030 ldr r3, [r2, #128] + 106 002a 23F48073 bic r3, r3, #256 + 107 002e C2F88030 str r3, [r2, #128] + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 108 .loc 1 168 7 view .LVU21 + 109 0032 1368 ldr r3, [r2] + 110 0034 23F4C063 bic r3, r3, #1536 + 111 0038 43F40073 orr r3, r3, #512 + 112 003c 1360 str r3, [r2] + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 113 .loc 1 171 7 view .LVU22 + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 114 .loc 1 171 53 is_stmt 0 view .LVU23 + 115 003e 314B ldr r3, .L23+4 + ARM GAS /tmp/cchjGo05.s page 7 + + + 116 0040 1B68 ldr r3, [r3] + 117 0042 3222 movs r2, #50 + 118 0044 02FB03F3 mul r3, r2, r3 + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 119 .loc 1 171 72 view .LVU24 + 120 0048 2F4A ldr r2, .L23+8 + 121 004a A2FB0323 umull r2, r3, r2, r3 + 122 004e 9B0C lsrs r3, r3, #18 + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 123 .loc 1 171 23 view .LVU25 + 124 0050 0133 adds r3, r3, #1 + 125 .LVL3: + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 126 .loc 1 172 7 is_stmt 1 view .LVU26 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 127 .loc 1 172 13 is_stmt 0 view .LVU27 + 128 0052 00E0 b .L9 + 129 .L11: + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 130 .loc 1 174 9 is_stmt 1 view .LVU28 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 131 .loc 1 174 24 is_stmt 0 view .LVU29 + 132 0054 013B subs r3, r3, #1 + 133 .LVL4: + 134 .L9: + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 135 .loc 1 172 55 is_stmt 1 view .LVU30 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 136 .loc 1 172 15 is_stmt 0 view .LVU31 + 137 0056 2A4A ldr r2, .L23 + 138 0058 5269 ldr r2, [r2, #20] + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 139 .loc 1 172 55 view .LVU32 + 140 005a 12F4806F tst r2, #1024 + 141 005e 01D0 beq .L10 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 142 .loc 1 172 55 discriminator 1 view .LVU33 + 143 0060 002B cmp r3, #0 + 144 0062 F7D1 bne .L11 + 145 .L10: + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 146 .loc 1 176 7 is_stmt 1 view .LVU34 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 147 .loc 1 176 11 is_stmt 0 view .LVU35 + 148 0064 264B ldr r3, .L23 + 149 .LVL5: + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 150 .loc 1 176 11 view .LVU36 + 151 0066 5B69 ldr r3, [r3, #20] + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 152 .loc 1 176 10 view .LVU37 + 153 0068 13F4806F tst r3, #1024 + 154 006c 44D1 bne .L18 + 155 .loc 1 225 10 view .LVU38 + 156 006e 0020 movs r0, #0 + 157 .LVL6: + 158 .loc 1 225 10 view .LVU39 + ARM GAS /tmp/cchjGo05.s page 8 + + + 159 0070 7047 bx lr + 160 .LVL7: + 161 .L7: + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 162 .loc 1 188 8 is_stmt 1 view .LVU40 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 163 .loc 1 188 11 is_stmt 0 view .LVU41 + 164 0072 B0F5007F cmp r0, #512 + 165 0076 08D0 beq .L21 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* No need to wait for VOSF to be cleared for this transition */ + 166 .loc 1 220 5 is_stmt 1 view .LVU42 + 167 0078 214A ldr r2, .L23 + 168 007a 1368 ldr r3, [r2] + 169 007c 23F4C063 bic r3, r3, #1536 + 170 0080 43F48063 orr r3, r3, #1024 + 171 0084 1360 str r3, [r2] + 172 .loc 1 225 10 is_stmt 0 view .LVU43 + 173 0086 0020 movs r0, #0 + 174 .LVL8: + 175 .loc 1 225 10 view .LVU44 + 176 0088 7047 bx lr + 177 .LVL9: + 178 .L21: + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 179 .loc 1 191 5 is_stmt 1 view .LVU45 + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 180 .loc 1 191 9 is_stmt 0 view .LVU46 + 181 008a 1D4B ldr r3, .L23 + 182 008c 1B68 ldr r3, [r3] + 183 008e 03F4C063 and r3, r3, #1536 + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 184 .loc 1 191 8 view .LVU47 + 185 0092 B3F5806F cmp r3, #1024 + 186 0096 08D0 beq .L22 + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 187 .loc 1 214 7 is_stmt 1 view .LVU48 + 188 0098 194A ldr r2, .L23 + 189 009a D2F88030 ldr r3, [r2, #128] + 190 009e 43F48073 orr r3, r3, #256 + 191 00a2 C2F88030 str r3, [r2, #128] + 192 .loc 1 225 10 is_stmt 0 view .LVU49 + 193 00a6 0020 movs r0, #0 + 194 .LVL10: + 195 .loc 1 225 10 view .LVU50 + 196 00a8 7047 bx lr + 197 .LVL11: + 198 .L22: + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 199 .loc 1 194 7 is_stmt 1 view .LVU51 + 200 00aa 154A ldr r2, .L23 + 201 00ac D2F88030 ldr r3, [r2, #128] + 202 00b0 43F48073 orr r3, r3, #256 + 203 00b4 C2F88030 str r3, [r2, #128] + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 204 .loc 1 197 7 view .LVU52 + 205 00b8 1368 ldr r3, [r2] + 206 00ba 23F4C063 bic r3, r3, #1536 + ARM GAS /tmp/cchjGo05.s page 9 + + + 207 00be 43F40073 orr r3, r3, #512 + 208 00c2 1360 str r3, [r2] + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 209 .loc 1 200 7 view .LVU53 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 210 .loc 1 200 53 is_stmt 0 view .LVU54 + 211 00c4 0F4B ldr r3, .L23+4 + 212 00c6 1B68 ldr r3, [r3] + 213 00c8 3222 movs r2, #50 + 214 00ca 02FB03F3 mul r3, r2, r3 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 215 .loc 1 200 72 view .LVU55 + 216 00ce 0E4A ldr r2, .L23+8 + 217 00d0 A2FB0323 umull r2, r3, r2, r3 + 218 00d4 9B0C lsrs r3, r3, #18 + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) + 219 .loc 1 200 23 view .LVU56 + 220 00d6 0133 adds r3, r3, #1 + 221 .LVL12: + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 222 .loc 1 201 7 is_stmt 1 view .LVU57 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 223 .loc 1 201 13 is_stmt 0 view .LVU58 + 224 00d8 00E0 b .L15 + 225 .L17: + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 226 .loc 1 203 9 is_stmt 1 view .LVU59 + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 227 .loc 1 203 24 is_stmt 0 view .LVU60 + 228 00da 013B subs r3, r3, #1 + 229 .LVL13: + 230 .L15: + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 231 .loc 1 201 55 is_stmt 1 view .LVU61 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 232 .loc 1 201 15 is_stmt 0 view .LVU62 + 233 00dc 084A ldr r2, .L23 + 234 00de 5269 ldr r2, [r2, #20] + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 235 .loc 1 201 55 view .LVU63 + 236 00e0 12F4806F tst r2, #1024 + 237 00e4 01D0 beq .L16 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 238 .loc 1 201 55 discriminator 1 view .LVU64 + 239 00e6 002B cmp r3, #0 + 240 00e8 F7D1 bne .L17 + 241 .L16: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 242 .loc 1 205 7 is_stmt 1 view .LVU65 + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 243 .loc 1 205 11 is_stmt 0 view .LVU66 + 244 00ea 054B ldr r3, .L23 + 245 .LVL14: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 246 .loc 1 205 11 view .LVU67 + 247 00ec 5B69 ldr r3, [r3, #20] + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + ARM GAS /tmp/cchjGo05.s page 10 + + + 248 .loc 1 205 10 view .LVU68 + 249 00ee 13F4806F tst r3, #1024 + 250 00f2 03D1 bne .L19 + 251 .loc 1 225 10 view .LVU69 + 252 00f4 0020 movs r0, #0 + 253 .LVL15: + 254 .loc 1 225 10 view .LVU70 + 255 00f6 7047 bx lr + 256 .LVL16: + 257 .L18: + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 258 .loc 1 178 16 view .LVU71 + 259 00f8 0320 movs r0, #3 + 260 .LVL17: + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 261 .loc 1 178 16 view .LVU72 + 262 00fa 7047 bx lr + 263 .LVL18: + 264 .L19: + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 265 .loc 1 207 16 view .LVU73 + 266 00fc 0320 movs r0, #3 + 267 .LVL19: + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 268 .loc 1 226 1 view .LVU74 + 269 00fe 7047 bx lr + 270 .L24: + 271 .align 2 + 272 .L23: + 273 0100 00700040 .word 1073770496 + 274 0104 00000000 .word SystemCoreClock + 275 0108 83DE1B43 .word 1125899907 + 276 .cfi_endproc + 277 .LFE330: + 279 .section .text.HAL_PWREx_EnableBatteryCharging,"ax",%progbits + 280 .align 1 + 281 .global HAL_PWREx_EnableBatteryCharging + 282 .syntax unified + 283 .thumb + 284 .thumb_func + 286 HAL_PWREx_EnableBatteryCharging: + 287 .LVL20: + 288 .LFB331: + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable battery charging. + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * When VDD is present, charge the external battery on VBAT through an internal resistor. + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param ResistorSelection: specifies the resistor impedance. + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_BATTERY_CHARGING_RESISTOR_5 5 kOhms resistor + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_BATTERY_CHARGING_RESISTOR_1_5 1.5 kOhms resistor + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnableBatteryCharging(uint32_t ResistorSelection) + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 289 .loc 1 239 1 is_stmt 1 view -0 + ARM GAS /tmp/cchjGo05.s page 11 + + + 290 .cfi_startproc + 291 @ args = 0, pretend = 0, frame = 0 + 292 @ frame_needed = 0, uses_anonymous_args = 0 + 293 @ link register save eliminated. + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_BATTERY_RESISTOR_SELECT(ResistorSelection)); + 294 .loc 1 240 3 view .LVU76 + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Specify resistor selection */ + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR4, PWR_CR4_VBRS, ResistorSelection); + 295 .loc 1 243 3 view .LVU77 + 296 0000 054A ldr r2, .L26 + 297 0002 D368 ldr r3, [r2, #12] + 298 0004 23F40073 bic r3, r3, #512 + 299 0008 0343 orrs r3, r3, r0 + 300 000a D360 str r3, [r2, #12] + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Enable battery charging */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR4, PWR_CR4_VBE); + 301 .loc 1 246 3 view .LVU78 + 302 000c D368 ldr r3, [r2, #12] + 303 000e 43F48073 orr r3, r3, #256 + 304 0012 D360 str r3, [r2, #12] + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 305 .loc 1 247 1 is_stmt 0 view .LVU79 + 306 0014 7047 bx lr + 307 .L27: + 308 0016 00BF .align 2 + 309 .L26: + 310 0018 00700040 .word 1073770496 + 311 .cfi_endproc + 312 .LFE331: + 314 .section .text.HAL_PWREx_DisableBatteryCharging,"ax",%progbits + 315 .align 1 + 316 .global HAL_PWREx_DisableBatteryCharging + 317 .syntax unified + 318 .thumb + 319 .thumb_func + 321 HAL_PWREx_DisableBatteryCharging: + 322 .LFB332: + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable battery charging. + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisableBatteryCharging(void) + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 323 .loc 1 255 1 is_stmt 1 view -0 + 324 .cfi_startproc + 325 @ args = 0, pretend = 0, frame = 0 + 326 @ frame_needed = 0, uses_anonymous_args = 0 + 327 @ link register save eliminated. + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR4, PWR_CR4_VBE); + 328 .loc 1 256 3 view .LVU81 + 329 0000 024A ldr r2, .L29 + 330 0002 D368 ldr r3, [r2, #12] + 331 0004 23F48073 bic r3, r3, #256 + ARM GAS /tmp/cchjGo05.s page 12 + + + 332 0008 D360 str r3, [r2, #12] + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 333 .loc 1 257 1 is_stmt 0 view .LVU82 + 334 000a 7047 bx lr + 335 .L30: + 336 .align 2 + 337 .L29: + 338 000c 00700040 .word 1073770496 + 339 .cfi_endproc + 340 .LFE332: + 342 .section .text.HAL_PWREx_EnableInternalWakeUpLine,"ax",%progbits + 343 .align 1 + 344 .global HAL_PWREx_EnableInternalWakeUpLine + 345 .syntax unified + 346 .thumb + 347 .thumb_func + 349 HAL_PWREx_EnableInternalWakeUpLine: + 350 .LFB333: + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable Internal Wake-up Line. + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnableInternalWakeUpLine(void) + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 351 .loc 1 265 1 is_stmt 1 view -0 + 352 .cfi_startproc + 353 @ args = 0, pretend = 0, frame = 0 + 354 @ frame_needed = 0, uses_anonymous_args = 0 + 355 @ link register save eliminated. + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR3, PWR_CR3_EIWF); + 356 .loc 1 266 3 view .LVU84 + 357 0000 024A ldr r2, .L32 + 358 0002 9368 ldr r3, [r2, #8] + 359 0004 43F40043 orr r3, r3, #32768 + 360 0008 9360 str r3, [r2, #8] + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 361 .loc 1 267 1 is_stmt 0 view .LVU85 + 362 000a 7047 bx lr + 363 .L33: + 364 .align 2 + 365 .L32: + 366 000c 00700040 .word 1073770496 + 367 .cfi_endproc + 368 .LFE333: + 370 .section .text.HAL_PWREx_DisableInternalWakeUpLine,"ax",%progbits + 371 .align 1 + 372 .global HAL_PWREx_DisableInternalWakeUpLine + 373 .syntax unified + 374 .thumb + 375 .thumb_func + 377 HAL_PWREx_DisableInternalWakeUpLine: + 378 .LFB334: + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + ARM GAS /tmp/cchjGo05.s page 13 + + + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable Internal Wake-up Line. + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisableInternalWakeUpLine(void) + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 379 .loc 1 275 1 is_stmt 1 view -0 + 380 .cfi_startproc + 381 @ args = 0, pretend = 0, frame = 0 + 382 @ frame_needed = 0, uses_anonymous_args = 0 + 383 @ link register save eliminated. + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR3, PWR_CR3_EIWF); + 384 .loc 1 276 3 view .LVU87 + 385 0000 024A ldr r2, .L35 + 386 0002 9368 ldr r3, [r2, #8] + 387 0004 23F40043 bic r3, r3, #32768 + 388 0008 9360 str r3, [r2, #8] + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 389 .loc 1 277 1 is_stmt 0 view .LVU88 + 390 000a 7047 bx lr + 391 .L36: + 392 .align 2 + 393 .L35: + 394 000c 00700040 .word 1073770496 + 395 .cfi_endproc + 396 .LFE334: + 398 .section .text.HAL_PWREx_EnableGPIOPullUp,"ax",%progbits + 399 .align 1 + 400 .global HAL_PWREx_EnableGPIOPullUp + 401 .syntax unified + 402 .thumb + 403 .thumb_func + 405 HAL_PWREx_EnableGPIOPullUp: + 406 .LVL21: + 407 .LFB335: + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable GPIO pull-up state in Standby and Shutdown modes. + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Set the relevant PUy bits of PWR_PUCRx register to configure the I/O in + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * pull-up state in Standby and Shutdown modes. + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note This state is effective in Standby and Shutdown modes only if APC bit + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * is set through HAL_PWREx_EnablePullUpPullDownConfig() API. + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note The configuration is lost when exiting the Shutdown mode due to the + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * power-on reset, maintained when exiting the Standby mode. + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note To avoid any conflict at Standby and Shutdown modes exits, the corresponding + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PDy bit of PWR_PDCRx register is cleared unless it is reserved. + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Even if a PUy bit to set is reserved, the other PUy bits entered as input + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * parameter at the same time are set. + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIO: Specify the IO port. This parameter can be PWR_GPIO_A, ..., PWR_GPIO_G + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIONumber: Specify the I/O pins numbers. + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * I/O pins are available) or the logical OR of several of them to set + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * several bits for a given port in a single API call. + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL Status + ARM GAS /tmp/cchjGo05.s page 14 + + + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 408 .loc 1 303 1 is_stmt 1 view -0 + 409 .cfi_startproc + 410 @ args = 0, pretend = 0, frame = 0 + 411 @ frame_needed = 0, uses_anonymous_args = 0 + 412 @ link register save eliminated. + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 413 .loc 1 304 3 view .LVU90 + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO(GPIO)); + 414 .loc 1 306 3 view .LVU91 + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + 415 .loc 1 307 3 view .LVU92 + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** switch (GPIO) + 416 .loc 1 309 3 view .LVU93 + 417 0000 0628 cmp r0, #6 + 418 0002 55D8 bhi .L47 + 419 0004 DFE800F0 tbb [pc, r0] + 420 .L40: + 421 0008 04 .byte (.L46-.L40)/2 + 422 0009 12 .byte (.L45-.L40)/2 + 423 000a 1E .byte (.L44-.L40)/2 + 424 000b 28 .byte (.L43-.L40)/2 + 425 000c 32 .byte (.L42-.L40)/2 + 426 000d 3C .byte (.L41-.L40)/2 + 427 000e 4A .byte (.L39-.L40)/2 + 428 000f 00 .p2align 1 + 429 .L46: + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_A: + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRA, (GPIONumber & (~(PWR_GPIO_BIT_14)))); + 430 .loc 1 312 8 view .LVU94 + 431 0010 284B ldr r3, .L48 + 432 0012 1A6A ldr r2, [r3, #32] + 433 0014 21F48040 bic r0, r1, #16384 + 434 .LVL22: + 435 .loc 1 312 8 is_stmt 0 view .LVU95 + 436 0018 0243 orrs r2, r2, r0 + 437 001a 1A62 str r2, [r3, #32] + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRA, (GPIONumber & (~(PWR_GPIO_BIT_13|PWR_GPIO_BIT_15)))); + 438 .loc 1 313 8 is_stmt 1 view .LVU96 + 439 001c 5A6A ldr r2, [r3, #36] + 440 001e 21F42041 bic r1, r1, #40960 + 441 .LVL23: + 442 .loc 1 313 8 is_stmt 0 view .LVU97 + 443 0022 22EA0102 bic r2, r2, r1 + 444 0026 5A62 str r2, [r3, #36] + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 445 .loc 1 314 8 is_stmt 1 view .LVU98 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 446 .loc 1 304 21 is_stmt 0 view .LVU99 + 447 0028 0020 movs r0, #0 + 448 .loc 1 314 8 view .LVU100 + 449 002a 7047 bx lr + ARM GAS /tmp/cchjGo05.s page 15 + + + 450 .LVL24: + 451 .L45: + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_B: + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRB, GPIONumber); + 452 .loc 1 316 8 is_stmt 1 view .LVU101 + 453 002c 214B ldr r3, .L48 + 454 002e 9A6A ldr r2, [r3, #40] + 455 0030 0A43 orrs r2, r2, r1 + 456 0032 9A62 str r2, [r3, #40] + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRB, (GPIONumber & (~(PWR_GPIO_BIT_4)))); + 457 .loc 1 317 8 view .LVU102 + 458 0034 DA6A ldr r2, [r3, #44] + 459 0036 21F01001 bic r1, r1, #16 + 460 .LVL25: + 461 .loc 1 317 8 is_stmt 0 view .LVU103 + 462 003a 22EA0102 bic r2, r2, r1 + 463 003e DA62 str r2, [r3, #44] + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 464 .loc 1 318 8 is_stmt 1 view .LVU104 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 465 .loc 1 304 21 is_stmt 0 view .LVU105 + 466 0040 0020 movs r0, #0 + 467 .LVL26: + 468 .loc 1 318 8 view .LVU106 + 469 0042 7047 bx lr + 470 .LVL27: + 471 .L44: + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_C: + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRC, GPIONumber); + 472 .loc 1 320 8 is_stmt 1 view .LVU107 + 473 0044 1B4B ldr r3, .L48 + 474 0046 1A6B ldr r2, [r3, #48] + 475 0048 0A43 orrs r2, r2, r1 + 476 004a 1A63 str r2, [r3, #48] + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRC, GPIONumber); + 477 .loc 1 321 8 view .LVU108 + 478 004c 5A6B ldr r2, [r3, #52] + 479 004e 22EA0102 bic r2, r2, r1 + 480 0052 5A63 str r2, [r3, #52] + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 481 .loc 1 322 8 view .LVU109 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 482 .loc 1 304 21 is_stmt 0 view .LVU110 + 483 0054 0020 movs r0, #0 + 484 .LVL28: + 485 .loc 1 322 8 view .LVU111 + 486 0056 7047 bx lr + 487 .LVL29: + 488 .L43: + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_D: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRD, GPIONumber); + 489 .loc 1 324 8 is_stmt 1 view .LVU112 + 490 0058 164B ldr r3, .L48 + 491 005a 9A6B ldr r2, [r3, #56] + 492 005c 0A43 orrs r2, r2, r1 + 493 005e 9A63 str r2, [r3, #56] + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRD, GPIONumber); + ARM GAS /tmp/cchjGo05.s page 16 + + + 494 .loc 1 325 8 view .LVU113 + 495 0060 DA6B ldr r2, [r3, #60] + 496 0062 22EA0102 bic r2, r2, r1 + 497 0066 DA63 str r2, [r3, #60] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 498 .loc 1 326 8 view .LVU114 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 499 .loc 1 304 21 is_stmt 0 view .LVU115 + 500 0068 0020 movs r0, #0 + 501 .LVL30: + 502 .loc 1 326 8 view .LVU116 + 503 006a 7047 bx lr + 504 .LVL31: + 505 .L42: + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_E: + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRE, GPIONumber); + 506 .loc 1 328 8 is_stmt 1 view .LVU117 + 507 006c 114B ldr r3, .L48 + 508 006e 1A6C ldr r2, [r3, #64] + 509 0070 0A43 orrs r2, r2, r1 + 510 0072 1A64 str r2, [r3, #64] + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRE, GPIONumber); + 511 .loc 1 329 8 view .LVU118 + 512 0074 5A6C ldr r2, [r3, #68] + 513 0076 22EA0102 bic r2, r2, r1 + 514 007a 5A64 str r2, [r3, #68] + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 515 .loc 1 330 8 view .LVU119 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 516 .loc 1 304 21 is_stmt 0 view .LVU120 + 517 007c 0020 movs r0, #0 + 518 .LVL32: + 519 .loc 1 330 8 view .LVU121 + 520 007e 7047 bx lr + 521 .LVL33: + 522 .L41: + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_F: + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + 523 .loc 1 332 8 is_stmt 1 view .LVU122 + 524 0080 0C4B ldr r3, .L48 + 525 0082 9A6C ldr r2, [r3, #72] + 526 0084 21F4FC71 bic r1, r1, #504 + 527 .LVL34: + 528 .loc 1 332 8 is_stmt 0 view .LVU123 + 529 0088 4905 lsls r1, r1, #21 + 530 008a 490D lsrs r1, r1, #21 + 531 008c 0A43 orrs r2, r2, r1 + 532 008e 9A64 str r2, [r3, #72] + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + 533 .loc 1 333 8 is_stmt 1 view .LVU124 + 534 0090 DA6C ldr r2, [r3, #76] + 535 0092 22EA0102 bic r2, r2, r1 + 536 0096 DA64 str r2, [r3, #76] + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 537 .loc 1 334 8 view .LVU125 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 538 .loc 1 304 21 is_stmt 0 view .LVU126 + ARM GAS /tmp/cchjGo05.s page 17 + + + 539 0098 0020 movs r0, #0 + 540 .LVL35: + 541 .loc 1 334 8 view .LVU127 + 542 009a 7047 bx lr + 543 .LVL36: + 544 .L39: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_G: + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PUCRG, (GPIONumber & PWR_PORTG_AVAILABLE_PINS)); + 545 .loc 1 336 8 is_stmt 1 view .LVU128 + 546 009c 054B ldr r3, .L48 + 547 009e 1A6D ldr r2, [r3, #80] + 548 00a0 01F48061 and r1, r1, #1024 + 549 .LVL37: + 550 .loc 1 336 8 is_stmt 0 view .LVU129 + 551 00a4 0A43 orrs r2, r2, r1 + 552 00a6 1A65 str r2, [r3, #80] + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRG, ((GPIONumber & PWR_PORTG_AVAILABLE_PINS) & (~(PWR_GPIO_BIT_10)))); + 553 .loc 1 337 8 is_stmt 1 view .LVU130 + 554 00a8 5A6D ldr r2, [r3, #84] + 555 00aa 5A65 str r2, [r3, #84] + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 556 .loc 1 338 8 view .LVU131 + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 557 .loc 1 304 21 is_stmt 0 view .LVU132 + 558 00ac 0020 movs r0, #0 + 559 .LVL38: + 560 .loc 1 338 8 view .LVU133 + 561 00ae 7047 bx lr + 562 .LVL39: + 563 .L47: + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 564 .loc 1 309 3 view .LVU134 + 565 00b0 0120 movs r0, #1 + 566 .LVL40: + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** default: + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** status = HAL_ERROR; + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return status; + 567 .loc 1 344 3 is_stmt 1 view .LVU135 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 568 .loc 1 345 1 is_stmt 0 view .LVU136 + 569 00b2 7047 bx lr + 570 .L49: + 571 .align 2 + 572 .L48: + 573 00b4 00700040 .word 1073770496 + 574 .cfi_endproc + 575 .LFE335: + 577 .section .text.HAL_PWREx_DisableGPIOPullUp,"ax",%progbits + 578 .align 1 + 579 .global HAL_PWREx_DisableGPIOPullUp + 580 .syntax unified + 581 .thumb + 582 .thumb_func + 584 HAL_PWREx_DisableGPIOPullUp: + ARM GAS /tmp/cchjGo05.s page 18 + + + 585 .LVL41: + 586 .LFB336: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable GPIO pull-up state in Standby mode and Shutdown modes. + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Reset the relevant PUy bits of PWR_PUCRx register used to configure the I/O + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * in pull-up state in Standby and Shutdown modes. + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Even if a PUy bit to reset is reserved, the other PUy bits entered as input + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * parameter at the same time are reset. + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIO: Specifies the IO port. This parameter can be PWR_GPIO_A, ..., PWR_GPIO_G + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIONumber: Specify the I/O pins numbers. + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * I/O pins are available) or the logical OR of several of them to reset + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * several bits for a given port in a single API call. + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL Status + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 587 .loc 1 364 1 is_stmt 1 view -0 + 588 .cfi_startproc + 589 @ args = 0, pretend = 0, frame = 0 + 590 @ frame_needed = 0, uses_anonymous_args = 0 + 591 @ link register save eliminated. + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 592 .loc 1 365 3 view .LVU138 + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO(GPIO)); + 593 .loc 1 367 3 view .LVU139 + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + 594 .loc 1 368 3 view .LVU140 + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** switch (GPIO) + 595 .loc 1 370 3 view .LVU141 + 596 0000 0628 cmp r0, #6 + 597 0002 3ED8 bhi .L60 + 598 0004 DFE800F0 tbb [pc, r0] + 599 .L53: + 600 0008 04 .byte (.L59-.L53)/2 + 601 0009 0D .byte (.L58-.L53)/2 + 602 000a 14 .byte (.L57-.L53)/2 + 603 000b 1B .byte (.L56-.L53)/2 + 604 000c 22 .byte (.L55-.L53)/2 + 605 000d 29 .byte (.L54-.L53)/2 + 606 000e 34 .byte (.L52-.L53)/2 + 607 000f 00 .p2align 1 + 608 .L59: + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_A: + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRA, (GPIONumber & (~(PWR_GPIO_BIT_14)))); + 609 .loc 1 373 8 view .LVU142 + 610 0010 1D4A ldr r2, .L61 + 611 0012 136A ldr r3, [r2, #32] + 612 0014 21F48041 bic r1, r1, #16384 + 613 .LVL42: + ARM GAS /tmp/cchjGo05.s page 19 + + + 614 .loc 1 373 8 is_stmt 0 view .LVU143 + 615 0018 23EA0101 bic r1, r3, r1 + 616 001c 1162 str r1, [r2, #32] + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 617 .loc 1 374 8 is_stmt 1 view .LVU144 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 618 .loc 1 365 21 is_stmt 0 view .LVU145 + 619 001e 0020 movs r0, #0 + 620 .LVL43: + 621 .loc 1 374 8 view .LVU146 + 622 0020 7047 bx lr + 623 .LVL44: + 624 .L58: + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_B: + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRB, GPIONumber); + 625 .loc 1 376 8 is_stmt 1 view .LVU147 + 626 0022 194A ldr r2, .L61 + 627 0024 936A ldr r3, [r2, #40] + 628 0026 23EA0103 bic r3, r3, r1 + 629 002a 9362 str r3, [r2, #40] + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 630 .loc 1 377 8 view .LVU148 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 631 .loc 1 365 21 is_stmt 0 view .LVU149 + 632 002c 0020 movs r0, #0 + 633 .LVL45: + 634 .loc 1 377 8 view .LVU150 + 635 002e 7047 bx lr + 636 .LVL46: + 637 .L57: + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_C: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRC, GPIONumber); + 638 .loc 1 379 8 is_stmt 1 view .LVU151 + 639 0030 154A ldr r2, .L61 + 640 0032 136B ldr r3, [r2, #48] + 641 0034 23EA0103 bic r3, r3, r1 + 642 0038 1363 str r3, [r2, #48] + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 643 .loc 1 380 8 view .LVU152 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 644 .loc 1 365 21 is_stmt 0 view .LVU153 + 645 003a 0020 movs r0, #0 + 646 .LVL47: + 647 .loc 1 380 8 view .LVU154 + 648 003c 7047 bx lr + 649 .LVL48: + 650 .L56: + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_D: + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRD, GPIONumber); + 651 .loc 1 382 8 is_stmt 1 view .LVU155 + 652 003e 124A ldr r2, .L61 + 653 0040 936B ldr r3, [r2, #56] + 654 0042 23EA0103 bic r3, r3, r1 + 655 0046 9363 str r3, [r2, #56] + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 656 .loc 1 383 8 view .LVU156 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + ARM GAS /tmp/cchjGo05.s page 20 + + + 657 .loc 1 365 21 is_stmt 0 view .LVU157 + 658 0048 0020 movs r0, #0 + 659 .LVL49: + 660 .loc 1 383 8 view .LVU158 + 661 004a 7047 bx lr + 662 .LVL50: + 663 .L55: + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_E: + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRE, GPIONumber); + 664 .loc 1 385 8 is_stmt 1 view .LVU159 + 665 004c 0E4A ldr r2, .L61 + 666 004e 136C ldr r3, [r2, #64] + 667 0050 23EA0103 bic r3, r3, r1 + 668 0054 1364 str r3, [r2, #64] + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 669 .loc 1 386 8 view .LVU160 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 670 .loc 1 365 21 is_stmt 0 view .LVU161 + 671 0056 0020 movs r0, #0 + 672 .LVL51: + 673 .loc 1 386 8 view .LVU162 + 674 0058 7047 bx lr + 675 .LVL52: + 676 .L54: + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_F: + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + 677 .loc 1 388 8 is_stmt 1 view .LVU163 + 678 005a 0B4A ldr r2, .L61 + 679 005c 936C ldr r3, [r2, #72] + 680 005e 21F4FC71 bic r1, r1, #504 + 681 .LVL53: + 682 .loc 1 388 8 is_stmt 0 view .LVU164 + 683 0062 4905 lsls r1, r1, #21 + 684 0064 490D lsrs r1, r1, #21 + 685 0066 23EA0101 bic r1, r3, r1 + 686 006a 9164 str r1, [r2, #72] + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 687 .loc 1 389 8 is_stmt 1 view .LVU165 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 688 .loc 1 365 21 is_stmt 0 view .LVU166 + 689 006c 0020 movs r0, #0 + 690 .LVL54: + 691 .loc 1 389 8 view .LVU167 + 692 006e 7047 bx lr + 693 .LVL55: + 694 .L52: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_G: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRG, (GPIONumber & PWR_PORTG_AVAILABLE_PINS)); + 695 .loc 1 391 8 is_stmt 1 view .LVU168 + 696 0070 054A ldr r2, .L61 + 697 0072 136D ldr r3, [r2, #80] + 698 0074 01F48061 and r1, r1, #1024 + 699 .LVL56: + 700 .loc 1 391 8 is_stmt 0 view .LVU169 + 701 0078 23EA0103 bic r3, r3, r1 + 702 007c 1365 str r3, [r2, #80] + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + ARM GAS /tmp/cchjGo05.s page 21 + + + 703 .loc 1 392 8 is_stmt 1 view .LVU170 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 704 .loc 1 365 21 is_stmt 0 view .LVU171 + 705 007e 0020 movs r0, #0 + 706 .LVL57: + 707 .loc 1 392 8 view .LVU172 + 708 0080 7047 bx lr + 709 .LVL58: + 710 .L60: + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 711 .loc 1 370 3 view .LVU173 + 712 0082 0120 movs r0, #1 + 713 .LVL59: + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** default: + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** status = HAL_ERROR; + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return status; + 714 .loc 1 398 3 is_stmt 1 view .LVU174 + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 715 .loc 1 399 1 is_stmt 0 view .LVU175 + 716 0084 7047 bx lr + 717 .L62: + 718 0086 00BF .align 2 + 719 .L61: + 720 0088 00700040 .word 1073770496 + 721 .cfi_endproc + 722 .LFE336: + 724 .section .text.HAL_PWREx_EnableGPIOPullDown,"ax",%progbits + 725 .align 1 + 726 .global HAL_PWREx_EnableGPIOPullDown + 727 .syntax unified + 728 .thumb + 729 .thumb_func + 731 HAL_PWREx_EnableGPIOPullDown: + 732 .LVL60: + 733 .LFB337: + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable GPIO pull-down state in Standby and Shutdown modes. + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Set the relevant PDy bits of PWR_PDCRx register to configure the I/O in + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * pull-down state in Standby and Shutdown modes. + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note This state is effective in Standby and Shutdown modes only if APC bit + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * is set through HAL_PWREx_EnablePullUpPullDownConfig() API. + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note The configuration is lost when exiting the Shutdown mode due to the + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * power-on reset, maintained when exiting the Standby mode. + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note To avoid any conflict at Standby and Shutdown modes exits, the corresponding + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PUy bit of PWR_PUCRx register is cleared unless it is reserved. + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Even if a PDy bit to set is reserved, the other PDy bits entered as input + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * parameter at the same time are set. + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIO: Specify the IO port. This parameter can be PWR_GPIO_A..PWR_GPIO_G + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIONumber: Specify the I/O pins numbers. + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + ARM GAS /tmp/cchjGo05.s page 22 + + + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * I/O pins are available) or the logical OR of several of them to set + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * several bits for a given port in a single API call. + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL Status + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 734 .loc 1 425 1 is_stmt 1 view -0 + 735 .cfi_startproc + 736 @ args = 0, pretend = 0, frame = 0 + 737 @ frame_needed = 0, uses_anonymous_args = 0 + 738 @ link register save eliminated. + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 739 .loc 1 426 3 view .LVU177 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO(GPIO)); + 740 .loc 1 428 3 view .LVU178 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + 741 .loc 1 429 3 view .LVU179 + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** switch (GPIO) + 742 .loc 1 431 3 view .LVU180 + 743 0000 0628 cmp r0, #6 + 744 0002 56D8 bhi .L73 + 745 0004 DFE800F0 tbb [pc, r0] + 746 .L66: + 747 0008 04 .byte (.L72-.L66)/2 + 748 0009 12 .byte (.L71-.L66)/2 + 749 000a 1E .byte (.L70-.L66)/2 + 750 000b 28 .byte (.L69-.L66)/2 + 751 000c 32 .byte (.L68-.L66)/2 + 752 000d 3C .byte (.L67-.L66)/2 + 753 000e 4A .byte (.L65-.L66)/2 + 754 000f 00 .p2align 1 + 755 .L72: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_A: + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRA, (GPIONumber & (~(PWR_GPIO_BIT_13|PWR_GPIO_BIT_15)))); + 756 .loc 1 434 8 view .LVU181 + 757 0010 294B ldr r3, .L74 + 758 0012 5A6A ldr r2, [r3, #36] + 759 0014 21F42040 bic r0, r1, #40960 + 760 .LVL61: + 761 .loc 1 434 8 is_stmt 0 view .LVU182 + 762 0018 0243 orrs r2, r2, r0 + 763 001a 5A62 str r2, [r3, #36] + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRA, (GPIONumber & (~(PWR_GPIO_BIT_14)))); + 764 .loc 1 435 8 is_stmt 1 view .LVU183 + 765 001c 1A6A ldr r2, [r3, #32] + 766 001e 21F48041 bic r1, r1, #16384 + 767 .LVL62: + 768 .loc 1 435 8 is_stmt 0 view .LVU184 + 769 0022 22EA0102 bic r2, r2, r1 + 770 0026 1A62 str r2, [r3, #32] + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 771 .loc 1 436 8 is_stmt 1 view .LVU185 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + ARM GAS /tmp/cchjGo05.s page 23 + + + 772 .loc 1 426 21 is_stmt 0 view .LVU186 + 773 0028 0020 movs r0, #0 + 774 .loc 1 436 8 view .LVU187 + 775 002a 7047 bx lr + 776 .LVL63: + 777 .L71: + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_B: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRB, (GPIONumber & (~(PWR_GPIO_BIT_4)))); + 778 .loc 1 438 8 is_stmt 1 view .LVU188 + 779 002c 224B ldr r3, .L74 + 780 002e DA6A ldr r2, [r3, #44] + 781 0030 21F01000 bic r0, r1, #16 + 782 .LVL64: + 783 .loc 1 438 8 is_stmt 0 view .LVU189 + 784 0034 0243 orrs r2, r2, r0 + 785 0036 DA62 str r2, [r3, #44] + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRB, GPIONumber); + 786 .loc 1 439 8 is_stmt 1 view .LVU190 + 787 0038 9A6A ldr r2, [r3, #40] + 788 003a 22EA0102 bic r2, r2, r1 + 789 003e 9A62 str r2, [r3, #40] + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 790 .loc 1 440 8 view .LVU191 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 791 .loc 1 426 21 is_stmt 0 view .LVU192 + 792 0040 0020 movs r0, #0 + 793 .loc 1 440 8 view .LVU193 + 794 0042 7047 bx lr + 795 .LVL65: + 796 .L70: + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_C: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRC, GPIONumber); + 797 .loc 1 442 8 is_stmt 1 view .LVU194 + 798 0044 1C4B ldr r3, .L74 + 799 0046 5A6B ldr r2, [r3, #52] + 800 0048 0A43 orrs r2, r2, r1 + 801 004a 5A63 str r2, [r3, #52] + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRC, GPIONumber); + 802 .loc 1 443 8 view .LVU195 + 803 004c 1A6B ldr r2, [r3, #48] + 804 004e 22EA0102 bic r2, r2, r1 + 805 0052 1A63 str r2, [r3, #48] + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 806 .loc 1 444 8 view .LVU196 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 807 .loc 1 426 21 is_stmt 0 view .LVU197 + 808 0054 0020 movs r0, #0 + 809 .LVL66: + 810 .loc 1 444 8 view .LVU198 + 811 0056 7047 bx lr + 812 .LVL67: + 813 .L69: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_D: + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRD, GPIONumber); + 814 .loc 1 446 8 is_stmt 1 view .LVU199 + 815 0058 174B ldr r3, .L74 + 816 005a DA6B ldr r2, [r3, #60] + ARM GAS /tmp/cchjGo05.s page 24 + + + 817 005c 0A43 orrs r2, r2, r1 + 818 005e DA63 str r2, [r3, #60] + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRD, GPIONumber); + 819 .loc 1 447 8 view .LVU200 + 820 0060 9A6B ldr r2, [r3, #56] + 821 0062 22EA0102 bic r2, r2, r1 + 822 0066 9A63 str r2, [r3, #56] + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 823 .loc 1 448 8 view .LVU201 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 824 .loc 1 426 21 is_stmt 0 view .LVU202 + 825 0068 0020 movs r0, #0 + 826 .LVL68: + 827 .loc 1 448 8 view .LVU203 + 828 006a 7047 bx lr + 829 .LVL69: + 830 .L68: + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_E: + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRE, GPIONumber); + 831 .loc 1 450 8 is_stmt 1 view .LVU204 + 832 006c 124B ldr r3, .L74 + 833 006e 5A6C ldr r2, [r3, #68] + 834 0070 0A43 orrs r2, r2, r1 + 835 0072 5A64 str r2, [r3, #68] + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRE, GPIONumber); + 836 .loc 1 451 8 view .LVU205 + 837 0074 1A6C ldr r2, [r3, #64] + 838 0076 22EA0102 bic r2, r2, r1 + 839 007a 1A64 str r2, [r3, #64] + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 840 .loc 1 452 8 view .LVU206 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 841 .loc 1 426 21 is_stmt 0 view .LVU207 + 842 007c 0020 movs r0, #0 + 843 .LVL70: + 844 .loc 1 452 8 view .LVU208 + 845 007e 7047 bx lr + 846 .LVL71: + 847 .L67: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_F: + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + 848 .loc 1 454 8 is_stmt 1 view .LVU209 + 849 0080 0D4B ldr r3, .L74 + 850 0082 DA6C ldr r2, [r3, #76] + 851 0084 21F4FC71 bic r1, r1, #504 + 852 .LVL72: + 853 .loc 1 454 8 is_stmt 0 view .LVU210 + 854 0088 4905 lsls r1, r1, #21 + 855 008a 490D lsrs r1, r1, #21 + 856 008c 0A43 orrs r2, r2, r1 + 857 008e DA64 str r2, [r3, #76] + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + 858 .loc 1 455 8 is_stmt 1 view .LVU211 + 859 0090 9A6C ldr r2, [r3, #72] + 860 0092 22EA0102 bic r2, r2, r1 + 861 0096 9A64 str r2, [r3, #72] + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + ARM GAS /tmp/cchjGo05.s page 25 + + + 862 .loc 1 456 8 view .LVU212 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 863 .loc 1 426 21 is_stmt 0 view .LVU213 + 864 0098 0020 movs r0, #0 + 865 .LVL73: + 866 .loc 1 456 8 view .LVU214 + 867 009a 7047 bx lr + 868 .LVL74: + 869 .L65: + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_G: + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->PDCRG, ((GPIONumber & PWR_PORTG_AVAILABLE_PINS) & (~(PWR_GPIO_BIT_10)))); + 870 .loc 1 458 8 is_stmt 1 view .LVU215 + 871 009c 064B ldr r3, .L74 + 872 009e 5A6D ldr r2, [r3, #84] + 873 00a0 5A65 str r2, [r3, #84] + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PUCRG, (GPIONumber & PWR_PORTG_AVAILABLE_PINS)); + 874 .loc 1 459 8 view .LVU216 + 875 00a2 1A6D ldr r2, [r3, #80] + 876 00a4 01F48061 and r1, r1, #1024 + 877 .LVL75: + 878 .loc 1 459 8 is_stmt 0 view .LVU217 + 879 00a8 22EA0102 bic r2, r2, r1 + 880 00ac 1A65 str r2, [r3, #80] + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 881 .loc 1 460 8 is_stmt 1 view .LVU218 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 882 .loc 1 426 21 is_stmt 0 view .LVU219 + 883 00ae 0020 movs r0, #0 + 884 .LVL76: + 885 .loc 1 460 8 view .LVU220 + 886 00b0 7047 bx lr + 887 .LVL77: + 888 .L73: + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 889 .loc 1 431 3 view .LVU221 + 890 00b2 0120 movs r0, #1 + 891 .LVL78: + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** default: + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** status = HAL_ERROR; + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return status; + 892 .loc 1 466 3 is_stmt 1 view .LVU222 + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 893 .loc 1 467 1 is_stmt 0 view .LVU223 + 894 00b4 7047 bx lr + 895 .L75: + 896 00b6 00BF .align 2 + 897 .L74: + 898 00b8 00700040 .word 1073770496 + 899 .cfi_endproc + 900 .LFE337: + 902 .section .text.HAL_PWREx_DisableGPIOPullDown,"ax",%progbits + 903 .align 1 + 904 .global HAL_PWREx_DisableGPIOPullDown + 905 .syntax unified + ARM GAS /tmp/cchjGo05.s page 26 + + + 906 .thumb + 907 .thumb_func + 909 HAL_PWREx_DisableGPIOPullDown: + 910 .LVL79: + 911 .LFB338: + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable GPIO pull-down state in Standby and Shutdown modes. + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Reset the relevant PDy bits of PWR_PDCRx register used to configure the I/O + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * in pull-down state in Standby and Shutdown modes. + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Even if a PDy bit to reset is reserved, the other PDy bits entered as input + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * parameter at the same time are reset. + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIO: Specifies the IO port. This parameter can be PWR_GPIO_A..PWR_GPIO_G + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * (or PWR_GPIO_I depending on the devices) to select the GPIO peripheral. + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param GPIONumber: Specify the I/O pins numbers. + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PWR_GPIO_BIT_0, ..., PWR_GPIO_BIT_15 (except for the port where less + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * I/O pins are available) or the logical OR of several of them to reset + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * several bits for a given port in a single API call. + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL Status + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 912 .loc 1 486 1 is_stmt 1 view -0 + 913 .cfi_startproc + 914 @ args = 0, pretend = 0, frame = 0 + 915 @ frame_needed = 0, uses_anonymous_args = 0 + 916 @ link register save eliminated. + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 917 .loc 1 487 3 view .LVU225 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO(GPIO)); + 918 .loc 1 489 3 view .LVU226 + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_GPIO_BIT_NUMBER(GPIONumber)); + 919 .loc 1 490 3 view .LVU227 + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** switch (GPIO) + 920 .loc 1 492 3 view .LVU228 + 921 0000 0628 cmp r0, #6 + 922 0002 3CD8 bhi .L86 + 923 0004 DFE800F0 tbb [pc, r0] + 924 .L79: + 925 0008 04 .byte (.L85-.L79)/2 + 926 0009 0D .byte (.L84-.L79)/2 + 927 000a 16 .byte (.L83-.L79)/2 + 928 000b 1D .byte (.L82-.L79)/2 + 929 000c 24 .byte (.L81-.L79)/2 + 930 000d 2B .byte (.L80-.L79)/2 + 931 000e 36 .byte (.L78-.L79)/2 + 932 000f 00 .p2align 1 + 933 .L85: + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_A: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRA, (GPIONumber & (~(PWR_GPIO_BIT_13|PWR_GPIO_BIT_15)))); + 934 .loc 1 495 8 view .LVU229 + 935 0010 1C4A ldr r2, .L87 + ARM GAS /tmp/cchjGo05.s page 27 + + + 936 0012 536A ldr r3, [r2, #36] + 937 0014 21F42041 bic r1, r1, #40960 + 938 .LVL80: + 939 .loc 1 495 8 is_stmt 0 view .LVU230 + 940 0018 23EA0101 bic r1, r3, r1 + 941 001c 5162 str r1, [r2, #36] + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 942 .loc 1 496 8 is_stmt 1 view .LVU231 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 943 .loc 1 487 21 is_stmt 0 view .LVU232 + 944 001e 0020 movs r0, #0 + 945 .LVL81: + 946 .loc 1 496 8 view .LVU233 + 947 0020 7047 bx lr + 948 .LVL82: + 949 .L84: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_B: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRB, (GPIONumber & (~(PWR_GPIO_BIT_4)))); + 950 .loc 1 498 8 is_stmt 1 view .LVU234 + 951 0022 184A ldr r2, .L87 + 952 0024 D36A ldr r3, [r2, #44] + 953 0026 21F01001 bic r1, r1, #16 + 954 .LVL83: + 955 .loc 1 498 8 is_stmt 0 view .LVU235 + 956 002a 23EA0101 bic r1, r3, r1 + 957 002e D162 str r1, [r2, #44] + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 958 .loc 1 499 8 is_stmt 1 view .LVU236 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 959 .loc 1 487 21 is_stmt 0 view .LVU237 + 960 0030 0020 movs r0, #0 + 961 .LVL84: + 962 .loc 1 499 8 view .LVU238 + 963 0032 7047 bx lr + 964 .LVL85: + 965 .L83: + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_C: + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRC, GPIONumber); + 966 .loc 1 501 8 is_stmt 1 view .LVU239 + 967 0034 134A ldr r2, .L87 + 968 0036 536B ldr r3, [r2, #52] + 969 0038 23EA0103 bic r3, r3, r1 + 970 003c 5363 str r3, [r2, #52] + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 971 .loc 1 502 8 view .LVU240 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 972 .loc 1 487 21 is_stmt 0 view .LVU241 + 973 003e 0020 movs r0, #0 + 974 .LVL86: + 975 .loc 1 502 8 view .LVU242 + 976 0040 7047 bx lr + 977 .LVL87: + 978 .L82: + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_D: + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRD, GPIONumber); + 979 .loc 1 504 8 is_stmt 1 view .LVU243 + 980 0042 104A ldr r2, .L87 + ARM GAS /tmp/cchjGo05.s page 28 + + + 981 0044 D36B ldr r3, [r2, #60] + 982 0046 23EA0103 bic r3, r3, r1 + 983 004a D363 str r3, [r2, #60] + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 984 .loc 1 505 8 view .LVU244 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 985 .loc 1 487 21 is_stmt 0 view .LVU245 + 986 004c 0020 movs r0, #0 + 987 .LVL88: + 988 .loc 1 505 8 view .LVU246 + 989 004e 7047 bx lr + 990 .LVL89: + 991 .L81: + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_E: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRE, GPIONumber); + 992 .loc 1 507 8 is_stmt 1 view .LVU247 + 993 0050 0C4A ldr r2, .L87 + 994 0052 536C ldr r3, [r2, #68] + 995 0054 23EA0103 bic r3, r3, r1 + 996 0058 5364 str r3, [r2, #68] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 997 .loc 1 508 8 view .LVU248 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 998 .loc 1 487 21 is_stmt 0 view .LVU249 + 999 005a 0020 movs r0, #0 + 1000 .LVL90: + 1001 .loc 1 508 8 view .LVU250 + 1002 005c 7047 bx lr + 1003 .LVL91: + 1004 .L80: + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_F: + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRF, (GPIONumber & PWR_PORTF_AVAILABLE_PINS)); + 1005 .loc 1 510 8 is_stmt 1 view .LVU251 + 1006 005e 094A ldr r2, .L87 + 1007 0060 D36C ldr r3, [r2, #76] + 1008 0062 21F4FC71 bic r1, r1, #504 + 1009 .LVL92: + 1010 .loc 1 510 8 is_stmt 0 view .LVU252 + 1011 0066 4905 lsls r1, r1, #21 + 1012 0068 490D lsrs r1, r1, #21 + 1013 006a 23EA0103 bic r3, r3, r1 + 1014 006e D364 str r3, [r2, #76] + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 1015 .loc 1 511 8 is_stmt 1 view .LVU253 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1016 .loc 1 487 21 is_stmt 0 view .LVU254 + 1017 0070 0020 movs r0, #0 + 1018 .LVL93: + 1019 .loc 1 511 8 view .LVU255 + 1020 0072 7047 bx lr + 1021 .LVL94: + 1022 .L78: + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_GPIO_G: + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->PDCRG, ((GPIONumber & PWR_PORTG_AVAILABLE_PINS) & (~(PWR_GPIO_BIT_10)))); + 1023 .loc 1 513 8 is_stmt 1 view .LVU256 + 1024 0074 034B ldr r3, .L87 + 1025 0076 5A6D ldr r2, [r3, #84] + ARM GAS /tmp/cchjGo05.s page 29 + + + 1026 0078 5A65 str r2, [r3, #84] + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 1027 .loc 1 514 8 view .LVU257 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1028 .loc 1 487 21 is_stmt 0 view .LVU258 + 1029 007a 0020 movs r0, #0 + 1030 .LVL95: + 1031 .loc 1 514 8 view .LVU259 + 1032 007c 7047 bx lr + 1033 .LVL96: + 1034 .L86: + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1035 .loc 1 492 3 view .LVU260 + 1036 007e 0120 movs r0, #1 + 1037 .LVL97: + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** default: + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** status = HAL_ERROR; + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return status; + 1038 .loc 1 520 3 is_stmt 1 view .LVU261 + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1039 .loc 1 521 1 is_stmt 0 view .LVU262 + 1040 0080 7047 bx lr + 1041 .L88: + 1042 0082 00BF .align 2 + 1043 .L87: + 1044 0084 00700040 .word 1073770496 + 1045 .cfi_endproc + 1046 .LFE338: + 1048 .section .text.HAL_PWREx_EnablePullUpPullDownConfig,"ax",%progbits + 1049 .align 1 + 1050 .global HAL_PWREx_EnablePullUpPullDownConfig + 1051 .syntax unified + 1052 .thumb + 1053 .thumb_func + 1055 HAL_PWREx_EnablePullUpPullDownConfig: + 1056 .LFB339: + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable pull-up and pull-down configuration. + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When APC bit is set, the I/O pull-up and pull-down configurations defined in + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PWR_PUCRx and PWR_PDCRx registers are applied in Standby and Shutdown modes. + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Pull-up set by PUy bit of PWR_PUCRx register is not activated if the corresponding + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PDy bit of PWR_PDCRx register is also set (pull-down configuration priority is higher). + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * HAL_PWREx_EnableGPIOPullUp() and HAL_PWREx_EnableGPIOPullDown() API's ensure there + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * is no conflict when setting PUy or PDy bit. + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnablePullUpPullDownConfig(void) + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1057 .loc 1 536 1 is_stmt 1 view -0 + 1058 .cfi_startproc + 1059 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/cchjGo05.s page 30 + + + 1060 @ frame_needed = 0, uses_anonymous_args = 0 + 1061 @ link register save eliminated. + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR3, PWR_CR3_APC); + 1062 .loc 1 537 3 view .LVU264 + 1063 0000 024A ldr r2, .L90 + 1064 0002 9368 ldr r3, [r2, #8] + 1065 0004 43F48063 orr r3, r3, #1024 + 1066 0008 9360 str r3, [r2, #8] + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1067 .loc 1 538 1 is_stmt 0 view .LVU265 + 1068 000a 7047 bx lr + 1069 .L91: + 1070 .align 2 + 1071 .L90: + 1072 000c 00700040 .word 1073770496 + 1073 .cfi_endproc + 1074 .LFE339: + 1076 .section .text.HAL_PWREx_DisablePullUpPullDownConfig,"ax",%progbits + 1077 .align 1 + 1078 .global HAL_PWREx_DisablePullUpPullDownConfig + 1079 .syntax unified + 1080 .thumb + 1081 .thumb_func + 1083 HAL_PWREx_DisablePullUpPullDownConfig: + 1084 .LFB340: + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable pull-up and pull-down configuration. + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When APC bit is cleared, the I/O pull-up and pull-down configurations defined in + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PWR_PUCRx and PWR_PDCRx registers are not applied in Standby and Shutdown modes. + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisablePullUpPullDownConfig(void) + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1085 .loc 1 548 1 is_stmt 1 view -0 + 1086 .cfi_startproc + 1087 @ args = 0, pretend = 0, frame = 0 + 1088 @ frame_needed = 0, uses_anonymous_args = 0 + 1089 @ link register save eliminated. + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR3, PWR_CR3_APC); + 1090 .loc 1 549 3 view .LVU267 + 1091 0000 024A ldr r2, .L93 + 1092 0002 9368 ldr r3, [r2, #8] + 1093 0004 23F48063 bic r3, r3, #1024 + 1094 0008 9360 str r3, [r2, #8] + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1095 .loc 1 550 1 is_stmt 0 view .LVU268 + 1096 000a 7047 bx lr + 1097 .L94: + 1098 .align 2 + 1099 .L93: + 1100 000c 00700040 .word 1073770496 + 1101 .cfi_endproc + 1102 .LFE340: + 1104 .section .text.HAL_PWREx_EnableSRAM2ContentRetention,"ax",%progbits + 1105 .align 1 + ARM GAS /tmp/cchjGo05.s page 31 + + + 1106 .global HAL_PWREx_EnableSRAM2ContentRetention + 1107 .syntax unified + 1108 .thumb + 1109 .thumb_func + 1111 HAL_PWREx_EnableSRAM2ContentRetention: + 1112 .LFB341: + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable SRAM2 content retention in Standby mode. + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When RRS bit is set, SRAM2 is powered by the low-power regulator in + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * Standby mode and its content is kept. + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnableSRAM2ContentRetention(void) + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1113 .loc 1 561 1 is_stmt 1 view -0 + 1114 .cfi_startproc + 1115 @ args = 0, pretend = 0, frame = 0 + 1116 @ frame_needed = 0, uses_anonymous_args = 0 + 1117 @ link register save eliminated. + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR3, PWR_CR3_RRS); + 1118 .loc 1 562 3 view .LVU270 + 1119 0000 024A ldr r2, .L96 + 1120 0002 9368 ldr r3, [r2, #8] + 1121 0004 43F48073 orr r3, r3, #256 + 1122 0008 9360 str r3, [r2, #8] + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1123 .loc 1 563 1 is_stmt 0 view .LVU271 + 1124 000a 7047 bx lr + 1125 .L97: + 1126 .align 2 + 1127 .L96: + 1128 000c 00700040 .word 1073770496 + 1129 .cfi_endproc + 1130 .LFE341: + 1132 .section .text.HAL_PWREx_DisableSRAM2ContentRetention,"ax",%progbits + 1133 .align 1 + 1134 .global HAL_PWREx_DisableSRAM2ContentRetention + 1135 .syntax unified + 1136 .thumb + 1137 .thumb_func + 1139 HAL_PWREx_DisableSRAM2ContentRetention: + 1140 .LFB342: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable SRAM2 content retention in Standby mode. + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When RRS bit is reset, SRAM2 is powered off in Standby mode + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * and its content is lost. + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisableSRAM2ContentRetention(void) + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1141 .loc 1 573 1 is_stmt 1 view -0 + 1142 .cfi_startproc + ARM GAS /tmp/cchjGo05.s page 32 + + + 1143 @ args = 0, pretend = 0, frame = 0 + 1144 @ frame_needed = 0, uses_anonymous_args = 0 + 1145 @ link register save eliminated. + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR3, PWR_CR3_RRS); + 1146 .loc 1 574 3 view .LVU273 + 1147 0000 024A ldr r2, .L99 + 1148 0002 9368 ldr r3, [r2, #8] + 1149 0004 23F48073 bic r3, r3, #256 + 1150 0008 9360 str r3, [r2, #8] + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1151 .loc 1 575 1 is_stmt 0 view .LVU274 + 1152 000a 7047 bx lr + 1153 .L100: + 1154 .align 2 + 1155 .L99: + 1156 000c 00700040 .word 1073770496 + 1157 .cfi_endproc + 1158 .LFE342: + 1160 .section .text.HAL_PWREx_EnablePVM1,"ax",%progbits + 1161 .align 1 + 1162 .global HAL_PWREx_EnablePVM1 + 1163 .syntax unified + 1164 .thumb + 1165 .thumb_func + 1167 HAL_PWREx_EnablePVM1: + 1168 .LFB343: + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME1) + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable the Power Voltage Monitoring 1: VDDA versus FASTCOMP minimum voltage. + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnablePVM1(void) + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1169 .loc 1 586 1 is_stmt 1 view -0 + 1170 .cfi_startproc + 1171 @ args = 0, pretend = 0, frame = 0 + 1172 @ frame_needed = 0, uses_anonymous_args = 0 + 1173 @ link register save eliminated. + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR2, PWR_PVM_1); + 1174 .loc 1 587 3 view .LVU276 + 1175 0000 024A ldr r2, .L102 + 1176 0002 5368 ldr r3, [r2, #4] + 1177 0004 43F01003 orr r3, r3, #16 + 1178 0008 5360 str r3, [r2, #4] + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1179 .loc 1 588 1 is_stmt 0 view .LVU277 + 1180 000a 7047 bx lr + 1181 .L103: + 1182 .align 2 + 1183 .L102: + 1184 000c 00700040 .word 1073770496 + 1185 .cfi_endproc + 1186 .LFE343: + ARM GAS /tmp/cchjGo05.s page 33 + + + 1188 .section .text.HAL_PWREx_DisablePVM1,"ax",%progbits + 1189 .align 1 + 1190 .global HAL_PWREx_DisablePVM1 + 1191 .syntax unified + 1192 .thumb + 1193 .thumb_func + 1195 HAL_PWREx_DisablePVM1: + 1196 .LFB344: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable the Power Voltage Monitoring 1: VDDA versus FASTCOMP minimum voltage. + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisablePVM1(void) + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1197 .loc 1 595 1 is_stmt 1 view -0 + 1198 .cfi_startproc + 1199 @ args = 0, pretend = 0, frame = 0 + 1200 @ frame_needed = 0, uses_anonymous_args = 0 + 1201 @ link register save eliminated. + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR2, PWR_PVM_1); + 1202 .loc 1 596 3 view .LVU279 + 1203 0000 024A ldr r2, .L105 + 1204 0002 5368 ldr r3, [r2, #4] + 1205 0004 23F01003 bic r3, r3, #16 + 1206 0008 5360 str r3, [r2, #4] + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1207 .loc 1 597 1 is_stmt 0 view .LVU280 + 1208 000a 7047 bx lr + 1209 .L106: + 1210 .align 2 + 1211 .L105: + 1212 000c 00700040 .word 1073770496 + 1213 .cfi_endproc + 1214 .LFE344: + 1216 .section .text.HAL_PWREx_EnablePVM2,"ax",%progbits + 1217 .align 1 + 1218 .global HAL_PWREx_EnablePVM2 + 1219 .syntax unified + 1220 .thumb + 1221 .thumb_func + 1223 HAL_PWREx_EnablePVM2: + 1224 .LFB345: + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME1 */ + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME2) + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable the Power Voltage Monitoring 2: VDDA versus FASTDAC minimum voltage. + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnablePVM2(void) + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1225 .loc 1 607 1 is_stmt 1 view -0 + 1226 .cfi_startproc + 1227 @ args = 0, pretend = 0, frame = 0 + 1228 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cchjGo05.s page 34 + + + 1229 @ link register save eliminated. + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR2, PWR_PVM_2); + 1230 .loc 1 608 3 view .LVU282 + 1231 0000 024A ldr r2, .L108 + 1232 0002 5368 ldr r3, [r2, #4] + 1233 0004 43F02003 orr r3, r3, #32 + 1234 0008 5360 str r3, [r2, #4] + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1235 .loc 1 609 1 is_stmt 0 view .LVU283 + 1236 000a 7047 bx lr + 1237 .L109: + 1238 .align 2 + 1239 .L108: + 1240 000c 00700040 .word 1073770496 + 1241 .cfi_endproc + 1242 .LFE345: + 1244 .section .text.HAL_PWREx_DisablePVM2,"ax",%progbits + 1245 .align 1 + 1246 .global HAL_PWREx_DisablePVM2 + 1247 .syntax unified + 1248 .thumb + 1249 .thumb_func + 1251 HAL_PWREx_DisablePVM2: + 1252 .LFB346: + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable the Power Voltage Monitoring 2: VDDA versus FASTDAC minimum voltage. + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisablePVM2(void) + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1253 .loc 1 616 1 is_stmt 1 view -0 + 1254 .cfi_startproc + 1255 @ args = 0, pretend = 0, frame = 0 + 1256 @ frame_needed = 0, uses_anonymous_args = 0 + 1257 @ link register save eliminated. + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR2, PWR_PVM_2); + 1258 .loc 1 617 3 view .LVU285 + 1259 0000 024A ldr r2, .L111 + 1260 0002 5368 ldr r3, [r2, #4] + 1261 0004 23F02003 bic r3, r3, #32 + 1262 0008 5360 str r3, [r2, #4] + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1263 .loc 1 618 1 is_stmt 0 view .LVU286 + 1264 000a 7047 bx lr + 1265 .L112: + 1266 .align 2 + 1267 .L111: + 1268 000c 00700040 .word 1073770496 + 1269 .cfi_endproc + 1270 .LFE346: + 1272 .section .text.HAL_PWREx_EnablePVM3,"ax",%progbits + 1273 .align 1 + 1274 .global HAL_PWREx_EnablePVM3 + 1275 .syntax unified + 1276 .thumb + 1277 .thumb_func + ARM GAS /tmp/cchjGo05.s page 35 + + + 1279 HAL_PWREx_EnablePVM3: + 1280 .LFB347: + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME2 */ + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable the Power Voltage Monitoring 3: VDDA versus ADC minimum voltage 1.62V. + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnablePVM3(void) + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1281 .loc 1 627 1 is_stmt 1 view -0 + 1282 .cfi_startproc + 1283 @ args = 0, pretend = 0, frame = 0 + 1284 @ frame_needed = 0, uses_anonymous_args = 0 + 1285 @ link register save eliminated. + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR2, PWR_PVM_3); + 1286 .loc 1 628 3 view .LVU288 + 1287 0000 024A ldr r2, .L114 + 1288 0002 5368 ldr r3, [r2, #4] + 1289 0004 43F04003 orr r3, r3, #64 + 1290 0008 5360 str r3, [r2, #4] + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1291 .loc 1 629 1 is_stmt 0 view .LVU289 + 1292 000a 7047 bx lr + 1293 .L115: + 1294 .align 2 + 1295 .L114: + 1296 000c 00700040 .word 1073770496 + 1297 .cfi_endproc + 1298 .LFE347: + 1300 .section .text.HAL_PWREx_DisablePVM3,"ax",%progbits + 1301 .align 1 + 1302 .global HAL_PWREx_DisablePVM3 + 1303 .syntax unified + 1304 .thumb + 1305 .thumb_func + 1307 HAL_PWREx_DisablePVM3: + 1308 .LFB348: + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable the Power Voltage Monitoring 3: VDDA versus ADC minimum voltage 1.62V. + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisablePVM3(void) + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1309 .loc 1 636 1 is_stmt 1 view -0 + 1310 .cfi_startproc + 1311 @ args = 0, pretend = 0, frame = 0 + 1312 @ frame_needed = 0, uses_anonymous_args = 0 + 1313 @ link register save eliminated. + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR2, PWR_PVM_3); + 1314 .loc 1 637 3 view .LVU291 + 1315 0000 024A ldr r2, .L117 + 1316 0002 5368 ldr r3, [r2, #4] + 1317 0004 23F04003 bic r3, r3, #64 + 1318 0008 5360 str r3, [r2, #4] + ARM GAS /tmp/cchjGo05.s page 36 + + + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1319 .loc 1 638 1 is_stmt 0 view .LVU292 + 1320 000a 7047 bx lr + 1321 .L118: + 1322 .align 2 + 1323 .L117: + 1324 000c 00700040 .word 1073770496 + 1325 .cfi_endproc + 1326 .LFE348: + 1328 .section .text.HAL_PWREx_EnablePVM4,"ax",%progbits + 1329 .align 1 + 1330 .global HAL_PWREx_EnablePVM4 + 1331 .syntax unified + 1332 .thumb + 1333 .thumb_func + 1335 HAL_PWREx_EnablePVM4: + 1336 .LFB349: + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable the Power Voltage Monitoring 4: VDDA versus OPAMP/DAC minimum voltage 1.8V. + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnablePVM4(void) + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1337 .loc 1 646 1 is_stmt 1 view -0 + 1338 .cfi_startproc + 1339 @ args = 0, pretend = 0, frame = 0 + 1340 @ frame_needed = 0, uses_anonymous_args = 0 + 1341 @ link register save eliminated. + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR2, PWR_PVM_4); + 1342 .loc 1 647 3 view .LVU294 + 1343 0000 024A ldr r2, .L120 + 1344 0002 5368 ldr r3, [r2, #4] + 1345 0004 43F08003 orr r3, r3, #128 + 1346 0008 5360 str r3, [r2, #4] + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1347 .loc 1 648 1 is_stmt 0 view .LVU295 + 1348 000a 7047 bx lr + 1349 .L121: + 1350 .align 2 + 1351 .L120: + 1352 000c 00700040 .word 1073770496 + 1353 .cfi_endproc + 1354 .LFE349: + 1356 .section .text.HAL_PWREx_DisablePVM4,"ax",%progbits + 1357 .align 1 + 1358 .global HAL_PWREx_DisablePVM4 + 1359 .syntax unified + 1360 .thumb + 1361 .thumb_func + 1363 HAL_PWREx_DisablePVM4: + 1364 .LFB350: + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable the Power Voltage Monitoring 4: VDDA versus OPAMP/DAC minimum voltage 1.8V. + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + ARM GAS /tmp/cchjGo05.s page 37 + + + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisablePVM4(void) + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1365 .loc 1 655 1 is_stmt 1 view -0 + 1366 .cfi_startproc + 1367 @ args = 0, pretend = 0, frame = 0 + 1368 @ frame_needed = 0, uses_anonymous_args = 0 + 1369 @ link register save eliminated. + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR2, PWR_PVM_4); + 1370 .loc 1 656 3 view .LVU297 + 1371 0000 024A ldr r2, .L123 + 1372 0002 5368 ldr r3, [r2, #4] + 1373 0004 23F08003 bic r3, r3, #128 + 1374 0008 5360 str r3, [r2, #4] + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1375 .loc 1 657 1 is_stmt 0 view .LVU298 + 1376 000a 7047 bx lr + 1377 .L124: + 1378 .align 2 + 1379 .L123: + 1380 000c 00700040 .word 1073770496 + 1381 .cfi_endproc + 1382 .LFE350: + 1384 .section .text.HAL_PWREx_ConfigPVM,"ax",%progbits + 1385 .align 1 + 1386 .global HAL_PWREx_ConfigPVM + 1387 .syntax unified + 1388 .thumb + 1389 .thumb_func + 1391 HAL_PWREx_ConfigPVM: + 1392 .LVL98: + 1393 .LFB351: + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Configure the Peripheral Voltage Monitoring (PVM). + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param sConfigPVM: pointer to a PWR_PVMTypeDef structure that contains the + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * PVM configuration information. + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note The API configures a single PVM according to the information contained + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * in the input structure. To configure several PVMs, the API must be singly + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * called for each PVM used. + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Refer to the electrical characteristics of your device datasheet for + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * more details about the voltage thresholds corresponding to each + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * detection level and to each monitored supply. + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL status + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_ConfigPVM(PWR_PVMTypeDef *sConfigPVM) + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1394 .loc 1 675 1 is_stmt 1 view -0 + 1395 .cfi_startproc + 1396 @ args = 0, pretend = 0, frame = 0 + 1397 @ frame_needed = 0, uses_anonymous_args = 0 + 1398 @ link register save eliminated. + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1399 .loc 1 676 3 view .LVU300 + ARM GAS /tmp/cchjGo05.s page 38 + + + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Check the parameters */ + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_PVM_TYPE(sConfigPVM->PVMType)); + 1400 .loc 1 679 3 view .LVU301 + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_PVM_MODE(sConfigPVM->Mode)); + 1401 .loc 1 680 3 view .LVU302 + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure EXTI 35 to 38 interrupts if so required: + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** scan through PVMType to detect which PVMx is set and + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** configure the corresponding EXTI line accordingly. */ + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** switch (sConfigPVM->PVMType) + 1402 .loc 1 686 3 view .LVU303 + 1403 .loc 1 686 21 is_stmt 0 view .LVU304 + 1404 0000 0368 ldr r3, [r0] + 1405 .loc 1 686 3 view .LVU305 + 1406 0002 402B cmp r3, #64 + 1407 0004 00F0B180 beq .L126 + 1408 0008 3DD8 bhi .L127 + 1409 000a 102B cmp r3, #16 + 1410 000c 76D0 beq .L128 + 1411 000e 202B cmp r3, #32 + 1412 0010 37D1 bne .L148 + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME1) + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_PVM_1: + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_EVENT(); + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_IT(); + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE(); + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE(); + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure interrupt mode */ + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_ENABLE_IT(); + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure event mode */ + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_ENABLE_EVENT(); + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure the edge */ + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_ENABLE_RISING_EDGE(); + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_ENABLE_FALLING_EDGE(); + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME1 */ + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + ARM GAS /tmp/cchjGo05.s page 39 + + + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME2) + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_PVM_2: + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_DISABLE_EVENT(); + 1413 .loc 1 724 7 is_stmt 1 view .LVU306 + 1414 0012 754B ldr r3, .L150 + 1415 0014 5A6A ldr r2, [r3, #36] + 1416 0016 22F01002 bic r2, r2, #16 + 1417 001a 5A62 str r2, [r3, #36] + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_DISABLE_IT(); + 1418 .loc 1 725 7 view .LVU307 + 1419 001c 1A6A ldr r2, [r3, #32] + 1420 001e 22F01002 bic r2, r2, #16 + 1421 0022 1A62 str r2, [r3, #32] + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_DISABLE_FALLING_EDGE(); + 1422 .loc 1 726 7 view .LVU308 + 1423 0024 DA6A ldr r2, [r3, #44] + 1424 0026 22F01002 bic r2, r2, #16 + 1425 002a DA62 str r2, [r3, #44] + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_DISABLE_RISING_EDGE(); + 1426 .loc 1 727 7 view .LVU309 + 1427 002c 9A6A ldr r2, [r3, #40] + 1428 002e 22F01002 bic r2, r2, #16 + 1429 0032 9A62 str r2, [r3, #40] + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure interrupt mode */ + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + 1430 .loc 1 730 7 view .LVU310 + 1431 .loc 1 730 21 is_stmt 0 view .LVU311 + 1432 0034 4368 ldr r3, [r0, #4] + 1433 .loc 1 730 9 view .LVU312 + 1434 0036 13F4803F tst r3, #65536 + 1435 003a 04D0 beq .L135 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_ENABLE_IT(); + 1436 .loc 1 732 9 is_stmt 1 view .LVU313 + 1437 003c 6A4A ldr r2, .L150 + 1438 003e 136A ldr r3, [r2, #32] + 1439 0040 43F01003 orr r3, r3, #16 + 1440 0044 1362 str r3, [r2, #32] + 1441 .L135: + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure event mode */ + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + 1442 .loc 1 736 7 view .LVU314 + 1443 .loc 1 736 21 is_stmt 0 view .LVU315 + 1444 0046 4368 ldr r3, [r0, #4] + 1445 .loc 1 736 9 view .LVU316 + 1446 0048 13F4003F tst r3, #131072 + 1447 004c 04D0 beq .L136 + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_ENABLE_EVENT(); + 1448 .loc 1 738 9 is_stmt 1 view .LVU317 + 1449 004e 664A ldr r2, .L150 + 1450 0050 536A ldr r3, [r2, #36] + 1451 0052 43F01003 orr r3, r3, #16 + ARM GAS /tmp/cchjGo05.s page 40 + + + 1452 0056 5362 str r3, [r2, #36] + 1453 .L136: + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure the edge */ + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + 1454 .loc 1 742 7 view .LVU318 + 1455 .loc 1 742 21 is_stmt 0 view .LVU319 + 1456 0058 4368 ldr r3, [r0, #4] + 1457 .loc 1 742 9 view .LVU320 + 1458 005a 13F0010F tst r3, #1 + 1459 005e 04D0 beq .L137 + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_ENABLE_RISING_EDGE(); + 1460 .loc 1 744 9 is_stmt 1 view .LVU321 + 1461 0060 614A ldr r2, .L150 + 1462 0062 936A ldr r3, [r2, #40] + 1463 0064 43F01003 orr r3, r3, #16 + 1464 0068 9362 str r3, [r2, #40] + 1465 .L137: + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + 1466 .loc 1 747 7 view .LVU322 + 1467 .loc 1 747 21 is_stmt 0 view .LVU323 + 1468 006a 4368 ldr r3, [r0, #4] + 1469 .loc 1 747 9 view .LVU324 + 1470 006c 13F0020F tst r3, #2 + 1471 0070 00F0B480 beq .L145 + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_ENABLE_FALLING_EDGE(); + 1472 .loc 1 749 9 is_stmt 1 view .LVU325 + 1473 0074 5C4A ldr r2, .L150 + 1474 0076 D36A ldr r3, [r2, #44] + 1475 0078 43F01003 orr r3, r3, #16 + 1476 007c D362 str r3, [r2, #44] + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1477 .loc 1 676 21 is_stmt 0 view .LVU326 + 1478 007e 0020 movs r0, #0 + 1479 .LVL99: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1480 .loc 1 676 21 view .LVU327 + 1481 0080 7047 bx lr + 1482 .LVL100: + 1483 .L148: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1484 .loc 1 686 3 view .LVU328 + 1485 0082 0120 movs r0, #1 + 1486 .LVL101: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1487 .loc 1 686 3 view .LVU329 + 1488 0084 7047 bx lr + 1489 .LVL102: + 1490 .L127: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1491 .loc 1 686 3 view .LVU330 + 1492 0086 802B cmp r3, #128 + ARM GAS /tmp/cchjGo05.s page 41 + + + 1493 0088 36D1 bne .L149 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME2 */ + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_PVM_3: + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_EVENT(); + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_IT(); + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE(); + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE(); + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure interrupt mode */ + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_ENABLE_IT(); + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure event mode */ + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_ENABLE_EVENT(); + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure the edge */ + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_ENABLE_RISING_EDGE(); + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_ENABLE_FALLING_EDGE(); + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** case PWR_PVM_4: + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear any previous config. Keep it clear if no event or IT mode is selected */ + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_DISABLE_EVENT(); + 1494 .loc 1 787 7 is_stmt 1 view .LVU331 + 1495 008a 574B ldr r3, .L150 + 1496 008c 5A6A ldr r2, [r3, #36] + 1497 008e 22F04002 bic r2, r2, #64 + 1498 0092 5A62 str r2, [r3, #36] + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_DISABLE_IT(); + 1499 .loc 1 788 7 view .LVU332 + 1500 0094 1A6A ldr r2, [r3, #32] + 1501 0096 22F04002 bic r2, r2, #64 + 1502 009a 1A62 str r2, [r3, #32] + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_DISABLE_FALLING_EDGE(); + 1503 .loc 1 789 7 view .LVU333 + 1504 009c DA6A ldr r2, [r3, #44] + 1505 009e 22F04002 bic r2, r2, #64 + 1506 00a2 DA62 str r2, [r3, #44] + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_DISABLE_RISING_EDGE(); + 1507 .loc 1 790 7 view .LVU334 + 1508 00a4 9A6A ldr r2, [r3, #40] + ARM GAS /tmp/cchjGo05.s page 42 + + + 1509 00a6 22F04002 bic r2, r2, #64 + 1510 00aa 9A62 str r2, [r3, #40] + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure interrupt mode */ + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_IT) == PVM_MODE_IT) + 1511 .loc 1 793 7 view .LVU335 + 1512 .loc 1 793 21 is_stmt 0 view .LVU336 + 1513 00ac 4368 ldr r3, [r0, #4] + 1514 .loc 1 793 9 view .LVU337 + 1515 00ae 13F4803F tst r3, #65536 + 1516 00b2 04D0 beq .L141 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_ENABLE_IT(); + 1517 .loc 1 795 9 is_stmt 1 view .LVU338 + 1518 00b4 4C4A ldr r2, .L150 + 1519 00b6 136A ldr r3, [r2, #32] + 1520 00b8 43F04003 orr r3, r3, #64 + 1521 00bc 1362 str r3, [r2, #32] + 1522 .L141: + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure event mode */ + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_MODE_EVT) == PVM_MODE_EVT) + 1523 .loc 1 799 7 view .LVU339 + 1524 .loc 1 799 21 is_stmt 0 view .LVU340 + 1525 00be 4368 ldr r3, [r0, #4] + 1526 .loc 1 799 9 view .LVU341 + 1527 00c0 13F4003F tst r3, #131072 + 1528 00c4 04D0 beq .L142 + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_ENABLE_EVENT(); + 1529 .loc 1 801 9 is_stmt 1 view .LVU342 + 1530 00c6 484A ldr r2, .L150 + 1531 00c8 536A ldr r3, [r2, #36] + 1532 00ca 43F04003 orr r3, r3, #64 + 1533 00ce 5362 str r3, [r2, #36] + 1534 .L142: + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Configure the edge */ + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_RISING_EDGE) == PVM_RISING_EDGE) + 1535 .loc 1 805 7 view .LVU343 + 1536 .loc 1 805 21 is_stmt 0 view .LVU344 + 1537 00d0 4368 ldr r3, [r0, #4] + 1538 .loc 1 805 9 view .LVU345 + 1539 00d2 13F0010F tst r3, #1 + 1540 00d6 04D0 beq .L143 + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_ENABLE_RISING_EDGE(); + 1541 .loc 1 807 9 is_stmt 1 view .LVU346 + 1542 00d8 434A ldr r2, .L150 + 1543 00da 936A ldr r3, [r2, #40] + 1544 00dc 43F04003 orr r3, r3, #64 + 1545 00e0 9362 str r3, [r2, #40] + 1546 .L143: + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + ARM GAS /tmp/cchjGo05.s page 43 + + + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if((sConfigPVM->Mode & PVM_FALLING_EDGE) == PVM_FALLING_EDGE) + 1547 .loc 1 810 7 view .LVU347 + 1548 .loc 1 810 21 is_stmt 0 view .LVU348 + 1549 00e2 4368 ldr r3, [r0, #4] + 1550 .loc 1 810 9 view .LVU349 + 1551 00e4 13F0020F tst r3, #2 + 1552 00e8 7CD0 beq .L147 + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_ENABLE_FALLING_EDGE(); + 1553 .loc 1 812 9 is_stmt 1 view .LVU350 + 1554 00ea 3F4A ldr r2, .L150 + 1555 00ec D36A ldr r3, [r2, #44] + 1556 00ee 43F04003 orr r3, r3, #64 + 1557 00f2 D362 str r3, [r2, #44] + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1558 .loc 1 676 21 is_stmt 0 view .LVU351 + 1559 00f4 0020 movs r0, #0 + 1560 .LVL103: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1561 .loc 1 676 21 view .LVU352 + 1562 00f6 7047 bx lr + 1563 .LVL104: + 1564 .L149: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1565 .loc 1 686 3 view .LVU353 + 1566 00f8 0120 movs r0, #1 + 1567 .LVL105: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1568 .loc 1 686 3 view .LVU354 + 1569 00fa 7047 bx lr + 1570 .LVL106: + 1571 .L128: + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_IT(); + 1572 .loc 1 691 7 is_stmt 1 view .LVU355 + 1573 00fc 3A4B ldr r3, .L150 + 1574 00fe 5A6A ldr r2, [r3, #36] + 1575 0100 22F00802 bic r2, r2, #8 + 1576 0104 5A62 str r2, [r3, #36] + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE(); + 1577 .loc 1 692 7 view .LVU356 + 1578 0106 1A6A ldr r2, [r3, #32] + 1579 0108 22F00802 bic r2, r2, #8 + 1580 010c 1A62 str r2, [r3, #32] + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE(); + 1581 .loc 1 693 7 view .LVU357 + 1582 010e DA6A ldr r2, [r3, #44] + 1583 0110 22F00802 bic r2, r2, #8 + 1584 0114 DA62 str r2, [r3, #44] + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1585 .loc 1 694 7 view .LVU358 + 1586 0116 9A6A ldr r2, [r3, #40] + 1587 0118 22F00802 bic r2, r2, #8 + 1588 011c 9A62 str r2, [r3, #40] + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1589 .loc 1 697 7 view .LVU359 + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1590 .loc 1 697 21 is_stmt 0 view .LVU360 + ARM GAS /tmp/cchjGo05.s page 44 + + + 1591 011e 4368 ldr r3, [r0, #4] + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1592 .loc 1 697 9 view .LVU361 + 1593 0120 13F4803F tst r3, #65536 + 1594 0124 04D0 beq .L132 + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1595 .loc 1 699 9 is_stmt 1 view .LVU362 + 1596 0126 304A ldr r2, .L150 + 1597 0128 136A ldr r3, [r2, #32] + 1598 012a 43F00803 orr r3, r3, #8 + 1599 012e 1362 str r3, [r2, #32] + 1600 .L132: + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1601 .loc 1 703 7 view .LVU363 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1602 .loc 1 703 21 is_stmt 0 view .LVU364 + 1603 0130 4368 ldr r3, [r0, #4] + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1604 .loc 1 703 9 view .LVU365 + 1605 0132 13F4003F tst r3, #131072 + 1606 0136 04D0 beq .L133 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1607 .loc 1 705 9 is_stmt 1 view .LVU366 + 1608 0138 2B4A ldr r2, .L150 + 1609 013a 536A ldr r3, [r2, #36] + 1610 013c 43F00803 orr r3, r3, #8 + 1611 0140 5362 str r3, [r2, #36] + 1612 .L133: + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1613 .loc 1 709 7 view .LVU367 + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1614 .loc 1 709 21 is_stmt 0 view .LVU368 + 1615 0142 4368 ldr r3, [r0, #4] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1616 .loc 1 709 9 view .LVU369 + 1617 0144 13F0010F tst r3, #1 + 1618 0148 04D0 beq .L134 + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1619 .loc 1 711 9 is_stmt 1 view .LVU370 + 1620 014a 274A ldr r2, .L150 + 1621 014c 936A ldr r3, [r2, #40] + 1622 014e 43F00803 orr r3, r3, #8 + 1623 0152 9362 str r3, [r2, #40] + 1624 .L134: + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1625 .loc 1 714 7 view .LVU371 + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1626 .loc 1 714 21 is_stmt 0 view .LVU372 + 1627 0154 4368 ldr r3, [r0, #4] + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1628 .loc 1 714 9 view .LVU373 + 1629 0156 13F0020F tst r3, #2 + 1630 015a 3DD0 beq .L144 + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1631 .loc 1 716 9 is_stmt 1 view .LVU374 + 1632 015c 224A ldr r2, .L150 + 1633 015e D36A ldr r3, [r2, #44] + ARM GAS /tmp/cchjGo05.s page 45 + + + 1634 0160 43F00803 orr r3, r3, #8 + 1635 0164 D362 str r3, [r2, #44] + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1636 .loc 1 676 21 is_stmt 0 view .LVU375 + 1637 0166 0020 movs r0, #0 + 1638 .LVL107: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1639 .loc 1 676 21 view .LVU376 + 1640 0168 7047 bx lr + 1641 .LVL108: + 1642 .L126: + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_IT(); + 1643 .loc 1 756 7 is_stmt 1 view .LVU377 + 1644 016a 1F4B ldr r3, .L150 + 1645 016c 5A6A ldr r2, [r3, #36] + 1646 016e 22F02002 bic r2, r2, #32 + 1647 0172 5A62 str r2, [r3, #36] + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE(); + 1648 .loc 1 757 7 view .LVU378 + 1649 0174 1A6A ldr r2, [r3, #32] + 1650 0176 22F02002 bic r2, r2, #32 + 1651 017a 1A62 str r2, [r3, #32] + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE(); + 1652 .loc 1 758 7 view .LVU379 + 1653 017c DA6A ldr r2, [r3, #44] + 1654 017e 22F02002 bic r2, r2, #32 + 1655 0182 DA62 str r2, [r3, #44] + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1656 .loc 1 759 7 view .LVU380 + 1657 0184 9A6A ldr r2, [r3, #40] + 1658 0186 22F02002 bic r2, r2, #32 + 1659 018a 9A62 str r2, [r3, #40] + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1660 .loc 1 762 7 view .LVU381 + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1661 .loc 1 762 21 is_stmt 0 view .LVU382 + 1662 018c 4368 ldr r3, [r0, #4] + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1663 .loc 1 762 9 view .LVU383 + 1664 018e 13F4803F tst r3, #65536 + 1665 0192 04D0 beq .L138 + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1666 .loc 1 764 9 is_stmt 1 view .LVU384 + 1667 0194 144A ldr r2, .L150 + 1668 0196 136A ldr r3, [r2, #32] + 1669 0198 43F02003 orr r3, r3, #32 + 1670 019c 1362 str r3, [r2, #32] + 1671 .L138: + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1672 .loc 1 768 7 view .LVU385 + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1673 .loc 1 768 21 is_stmt 0 view .LVU386 + 1674 019e 4368 ldr r3, [r0, #4] + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1675 .loc 1 768 9 view .LVU387 + 1676 01a0 13F4003F tst r3, #131072 + 1677 01a4 04D0 beq .L139 + ARM GAS /tmp/cchjGo05.s page 46 + + + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1678 .loc 1 770 9 is_stmt 1 view .LVU388 + 1679 01a6 104A ldr r2, .L150 + 1680 01a8 536A ldr r3, [r2, #36] + 1681 01aa 43F02003 orr r3, r3, #32 + 1682 01ae 5362 str r3, [r2, #36] + 1683 .L139: + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1684 .loc 1 774 7 view .LVU389 + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1685 .loc 1 774 21 is_stmt 0 view .LVU390 + 1686 01b0 4368 ldr r3, [r0, #4] + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1687 .loc 1 774 9 view .LVU391 + 1688 01b2 13F0010F tst r3, #1 + 1689 01b6 04D0 beq .L140 + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1690 .loc 1 776 9 is_stmt 1 view .LVU392 + 1691 01b8 0B4A ldr r2, .L150 + 1692 01ba 936A ldr r3, [r2, #40] + 1693 01bc 43F02003 orr r3, r3, #32 + 1694 01c0 9362 str r3, [r2, #40] + 1695 .L140: + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1696 .loc 1 779 7 view .LVU393 + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1697 .loc 1 779 21 is_stmt 0 view .LVU394 + 1698 01c2 4368 ldr r3, [r0, #4] + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1699 .loc 1 779 9 view .LVU395 + 1700 01c4 13F0020F tst r3, #2 + 1701 01c8 0AD0 beq .L146 + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1702 .loc 1 781 9 is_stmt 1 view .LVU396 + 1703 01ca 074A ldr r2, .L150 + 1704 01cc D36A ldr r3, [r2, #44] + 1705 01ce 43F02003 orr r3, r3, #32 + 1706 01d2 D362 str r3, [r2, #44] + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1707 .loc 1 676 21 is_stmt 0 view .LVU397 + 1708 01d4 0020 movs r0, #0 + 1709 .LVL109: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1710 .loc 1 676 21 view .LVU398 + 1711 01d6 7047 bx lr + 1712 .LVL110: + 1713 .L144: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1714 .loc 1 676 21 view .LVU399 + 1715 01d8 0020 movs r0, #0 + 1716 .LVL111: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1717 .loc 1 676 21 view .LVU400 + 1718 01da 7047 bx lr + 1719 .LVL112: + 1720 .L145: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + ARM GAS /tmp/cchjGo05.s page 47 + + + 1721 .loc 1 676 21 view .LVU401 + 1722 01dc 0020 movs r0, #0 + 1723 .LVL113: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1724 .loc 1 676 21 view .LVU402 + 1725 01de 7047 bx lr + 1726 .LVL114: + 1727 .L146: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1728 .loc 1 676 21 view .LVU403 + 1729 01e0 0020 movs r0, #0 + 1730 .LVL115: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1731 .loc 1 676 21 view .LVU404 + 1732 01e2 7047 bx lr + 1733 .LVL116: + 1734 .L147: + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 1735 .loc 1 676 21 view .LVU405 + 1736 01e4 0020 movs r0, #0 + 1737 .LVL117: + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** default: + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** status = HAL_ERROR; + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** break; + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return status; + 1738 .loc 1 821 3 is_stmt 1 view .LVU406 + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1739 .loc 1 822 1 is_stmt 0 view .LVU407 + 1740 01e6 7047 bx lr + 1741 .L151: + 1742 .align 2 + 1743 .L150: + 1744 01e8 00040140 .word 1073808384 + 1745 .cfi_endproc + 1746 .LFE351: + 1748 .section .text.HAL_PWREx_EnableLowPowerRunMode,"ax",%progbits + 1749 .align 1 + 1750 .global HAL_PWREx_EnableLowPowerRunMode + 1751 .syntax unified + 1752 .thumb + 1753 .thumb_func + 1755 HAL_PWREx_EnableLowPowerRunMode: + 1756 .LFB352: + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enter Low-power Run mode + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note In Low-power Run mode, all I/O pins keep the same state as in Run mode. + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When Regulator is set to PWR_LOWPOWERREGULATOR_ON, the user can optionally configure the + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * Flash in power-down monde in setting the RUN_PD bit in FLASH_ACR register. + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * Additionally, the clock frequency must be reduced below 2 MHz. + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * Setting RUN_PD in FLASH_ACR then appropriately reducing the clock frequency must + ARM GAS /tmp/cchjGo05.s page 48 + + + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * be done before calling HAL_PWREx_EnableLowPowerRunMode() API. + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnableLowPowerRunMode(void) + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1757 .loc 1 836 1 is_stmt 1 view -0 + 1758 .cfi_startproc + 1759 @ args = 0, pretend = 0, frame = 0 + 1760 @ frame_needed = 0, uses_anonymous_args = 0 + 1761 @ link register save eliminated. + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set Regulator parameter */ + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR1, PWR_CR1_LPR); + 1762 .loc 1 838 3 view .LVU409 + 1763 0000 024A ldr r2, .L153 + 1764 0002 1368 ldr r3, [r2] + 1765 0004 43F48043 orr r3, r3, #16384 + 1766 0008 1360 str r3, [r2] + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1767 .loc 1 839 1 is_stmt 0 view .LVU410 + 1768 000a 7047 bx lr + 1769 .L154: + 1770 .align 2 + 1771 .L153: + 1772 000c 00700040 .word 1073770496 + 1773 .cfi_endproc + 1774 .LFE352: + 1776 .section .text.HAL_PWREx_DisableLowPowerRunMode,"ax",%progbits + 1777 .align 1 + 1778 .global HAL_PWREx_DisableLowPowerRunMode + 1779 .syntax unified + 1780 .thumb + 1781 .thumb_func + 1783 HAL_PWREx_DisableLowPowerRunMode: + 1784 .LFB353: + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Exit Low-power Run mode. + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Before HAL_PWREx_DisableLowPowerRunMode() completion, the function checks that + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * REGLPF has been properly reset (otherwise, HAL_PWREx_DisableLowPowerRunMode + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * returns HAL_TIMEOUT status). The system clock frequency can then be + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * increased above 2 MHz. + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval HAL Status + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void) + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1785 .loc 1 851 1 is_stmt 1 view -0 + 1786 .cfi_startproc + 1787 @ args = 0, pretend = 0, frame = 0 + 1788 @ frame_needed = 0, uses_anonymous_args = 0 + 1789 @ link register save eliminated. + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** uint32_t wait_loop_index; + 1790 .loc 1 852 3 view .LVU412 + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear LPR bit */ + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR1, PWR_CR1_LPR); + 1791 .loc 1 855 3 view .LVU413 + ARM GAS /tmp/cchjGo05.s page 49 + + + 1792 0000 124A ldr r2, .L161 + 1793 0002 1368 ldr r3, [r2] + 1794 0004 23F48043 bic r3, r3, #16384 + 1795 0008 1360 str r3, [r2] + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Wait until REGLPF is reset */ + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** wait_loop_index = (PWR_FLAG_SETTING_DELAY_US * (SystemCoreClock / 1000000U)); + 1796 .loc 1 858 3 view .LVU414 + 1797 .loc 1 858 67 is_stmt 0 view .LVU415 + 1798 000a 114B ldr r3, .L161+4 + 1799 000c 1B68 ldr r3, [r3] + 1800 000e 02F14672 add r2, r2, #51904512 + 1801 0012 02F55B32 add r2, r2, #224256 + 1802 0016 02F28322 addw r2, r2, #643 + 1803 001a A2FB0323 umull r2, r3, r2, r3 + 1804 001e 9B0C lsrs r3, r3, #18 + 1805 .loc 1 858 19 view .LVU416 + 1806 0020 3222 movs r2, #50 + 1807 0022 02FB03F3 mul r3, r2, r3 + 1808 .LVL118: + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U)) + 1809 .loc 1 859 3 is_stmt 1 view .LVU417 + 1810 .loc 1 859 9 is_stmt 0 view .LVU418 + 1811 0026 00E0 b .L156 + 1812 .L158: + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** wait_loop_index--; + 1813 .loc 1 861 5 is_stmt 1 view .LVU419 + 1814 .loc 1 861 20 is_stmt 0 view .LVU420 + 1815 0028 013B subs r3, r3, #1 + 1816 .LVL119: + 1817 .L156: + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U)) + 1818 .loc 1 859 53 is_stmt 1 view .LVU421 + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U)) + 1819 .loc 1 859 11 is_stmt 0 view .LVU422 + 1820 002a 084A ldr r2, .L161 + 1821 002c 5269 ldr r2, [r2, #20] + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U)) + 1822 .loc 1 859 53 view .LVU423 + 1823 002e 12F4007F tst r2, #512 + 1824 0032 01D0 beq .L157 + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U)) + 1825 .loc 1 859 53 discriminator 1 view .LVU424 + 1826 0034 002B cmp r3, #0 + 1827 0036 F7D1 bne .L158 + 1828 .L157: + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) + 1829 .loc 1 863 3 is_stmt 1 view .LVU425 + 1830 .loc 1 863 7 is_stmt 0 view .LVU426 + 1831 0038 044B ldr r3, .L161 + 1832 .LVL120: + 1833 .loc 1 863 7 view .LVU427 + 1834 003a 5B69 ldr r3, [r3, #20] + 1835 .loc 1 863 6 view .LVU428 + 1836 003c 13F4007F tst r3, #512 + ARM GAS /tmp/cchjGo05.s page 50 + + + 1837 0040 01D1 bne .L160 + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return HAL_TIMEOUT; + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** return HAL_OK; + 1838 .loc 1 868 10 view .LVU429 + 1839 0042 0020 movs r0, #0 + 1840 0044 7047 bx lr + 1841 .L160: + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1842 .loc 1 865 12 view .LVU430 + 1843 0046 0320 movs r0, #3 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1844 .loc 1 869 1 view .LVU431 + 1845 0048 7047 bx lr + 1846 .L162: + 1847 004a 00BF .align 2 + 1848 .L161: + 1849 004c 00700040 .word 1073770496 + 1850 0050 00000000 .word SystemCoreClock + 1851 .cfi_endproc + 1852 .LFE353: + 1854 .section .text.HAL_PWREx_EnterSTOP0Mode,"ax",%progbits + 1855 .align 1 + 1856 .global HAL_PWREx_EnterSTOP0Mode + 1857 .syntax unified + 1858 .thumb + 1859 .thumb_func + 1861 HAL_PWREx_EnterSTOP0Mode: + 1862 .LVL121: + 1863 .LFB354: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enter Stop 0 mode. + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note In Stop 0 mode, main and low voltage regulators are ON. + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note In Stop 0 mode, all I/O pins keep the same state as in Run mode. + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note All clocks in the VCORE domain are stopped; the PLL, the HSI + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * and the HSE oscillators are disabled. Some peripherals with the wakeup capability + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * (I2Cx, USARTx and LPUART) can switch on the HSI to receive a frame, and switch off the H + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * after receiving the frame if it is not a wakeup frame. In this case, the HSI clock is pr + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * only to the peripheral requesting it. + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * SRAM1, SRAM2 and register contents are preserved. + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * The BOR is available. + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When exiting Stop 0 mode by issuing an interrupt or a wakeup event, + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * the HSI RC oscillator is selected as system clock if STOPWUCK bit in RCC_CFGR register + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * is set; the HSI oscillator is selected if STOPWUCK is cleared. + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note By keeping the internal regulator ON during Stop 0 mode, the consumption + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * is higher although the startup time is reduced. + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param STOPEntry specifies if Stop mode in entered with WFI or WFE instruction. + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_STOPENTRY_WFI Enter Stop mode with WFI instruction + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_STOPENTRY_WFE Enter Stop mode with WFE instruction + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnterSTOP0Mode(uint8_t STOPEntry) + ARM GAS /tmp/cchjGo05.s page 51 + + + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1864 .loc 1 895 1 is_stmt 1 view -0 + 1865 .cfi_startproc + 1866 @ args = 0, pretend = 0, frame = 0 + 1867 @ frame_needed = 0, uses_anonymous_args = 0 + 1868 @ link register save eliminated. + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Check the parameters */ + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_STOP_ENTRY(STOPEntry)); + 1869 .loc 1 897 3 view .LVU433 + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Stop 0 mode with Main Regulator */ + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_STOP0); + 1870 .loc 1 900 3 view .LVU434 + 1871 0000 0B4A ldr r2, .L167 + 1872 0002 1368 ldr r3, [r2] + 1873 0004 23F00703 bic r3, r3, #7 + 1874 0008 1360 str r3, [r2] + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set SLEEPDEEP bit of Cortex System Control Register */ + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 1875 .loc 1 903 3 view .LVU435 + 1876 000a 0A4A ldr r2, .L167+4 + 1877 000c 1369 ldr r3, [r2, #16] + 1878 000e 43F00403 orr r3, r3, #4 + 1879 0012 1361 str r3, [r2, #16] + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Select Stop mode entry --------------------------------------------------*/ + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(STOPEntry == PWR_STOPENTRY_WFI) + 1880 .loc 1 906 3 view .LVU436 + 1881 .loc 1 906 5 is_stmt 0 view .LVU437 + 1882 0014 0128 cmp r0, #1 + 1883 0016 08D0 beq .L166 + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Request Wait For Interrupt */ + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFI(); + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Request Wait For Event */ + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __SEV(); + 1884 .loc 1 914 5 is_stmt 1 view .LVU438 + 1885 .syntax unified + 1886 @ 914 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1887 0018 40BF sev + 1888 @ 0 "" 2 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFE(); + 1889 .loc 1 915 5 view .LVU439 + 1890 @ 915 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1891 001a 20BF wfe + 1892 @ 0 "" 2 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFE(); + 1893 .loc 1 916 5 view .LVU440 + 1894 @ 916 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1895 001c 20BF wfe + 1896 @ 0 "" 2 + 1897 .thumb + 1898 .syntax unified + ARM GAS /tmp/cchjGo05.s page 52 + + + 1899 .L165: + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Reset SLEEPDEEP bit of Cortex System Control Register */ + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 1900 .loc 1 920 3 view .LVU441 + 1901 001e 054A ldr r2, .L167+4 + 1902 0020 1369 ldr r3, [r2, #16] + 1903 0022 23F00403 bic r3, r3, #4 + 1904 0026 1361 str r3, [r2, #16] + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1905 .loc 1 921 1 is_stmt 0 view .LVU442 + 1906 0028 7047 bx lr + 1907 .L166: + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1908 .loc 1 909 5 is_stmt 1 view .LVU443 + 1909 .syntax unified + 1910 @ 909 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1911 002a 30BF wfi + 1912 @ 0 "" 2 + 1913 .thumb + 1914 .syntax unified + 1915 002c F7E7 b .L165 + 1916 .L168: + 1917 002e 00BF .align 2 + 1918 .L167: + 1919 0030 00700040 .word 1073770496 + 1920 0034 00ED00E0 .word -536810240 + 1921 .cfi_endproc + 1922 .LFE354: + 1924 .section .text.HAL_PWREx_EnterSTOP1Mode,"ax",%progbits + 1925 .align 1 + 1926 .global HAL_PWREx_EnterSTOP1Mode + 1927 .syntax unified + 1928 .thumb + 1929 .thumb_func + 1931 HAL_PWREx_EnterSTOP1Mode: + 1932 .LVL122: + 1933 .LFB355: + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enter Stop 1 mode. + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note In Stop 1 mode, only low power voltage regulator is ON. + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note In Stop 1 mode, all I/O pins keep the same state as in Run mode. + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note All clocks in the VCORE domain are stopped; the PLL, the HSI + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * and the HSE oscillators are disabled. Some peripherals with the wakeup capability + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * (I2Cx, USARTx and LPUART) can switch on the HSI to receive a frame, and switch off the H + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * after receiving the frame if it is not a wakeup frame. In this case, the HSI clock is pr + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * only to the peripheral requesting it. + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * SRAM1, SRAM2 and register contents are preserved. + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * The BOR is available. + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note When exiting Stop 1 mode by issuing an interrupt or a wakeup event, + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * the HSI RC oscillator is selected as system clock if STOPWUCK bit in RCC_CFGR register + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * is set. + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note Due to low power mode, an additional startup delay is incurred when waking up from Stop + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @param STOPEntry specifies if Stop mode in entered with WFI or WFE instruction. + ARM GAS /tmp/cchjGo05.s page 53 + + + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * This parameter can be one of the following values: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_STOPENTRY_WFI Enter Stop mode with WFI instruction + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @arg @ref PWR_STOPENTRY_WFE Enter Stop mode with WFE instruction + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnterSTOP1Mode(uint8_t STOPEntry) + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 1934 .loc 1 946 1 view -0 + 1935 .cfi_startproc + 1936 @ args = 0, pretend = 0, frame = 0 + 1937 @ frame_needed = 0, uses_anonymous_args = 0 + 1938 @ link register save eliminated. + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Check the parameters */ + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** assert_param(IS_PWR_STOP_ENTRY(STOPEntry)); + 1939 .loc 1 948 3 view .LVU445 + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Stop 1 mode with Low-Power Regulator */ + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_STOP1); + 1940 .loc 1 951 3 view .LVU446 + 1941 0000 0C4A ldr r2, .L173 + 1942 0002 1368 ldr r3, [r2] + 1943 0004 23F00703 bic r3, r3, #7 + 1944 0008 43F00103 orr r3, r3, #1 + 1945 000c 1360 str r3, [r2] + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set SLEEPDEEP bit of Cortex System Control Register */ + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 1946 .loc 1 954 3 view .LVU447 + 1947 000e 0A4A ldr r2, .L173+4 + 1948 0010 1369 ldr r3, [r2, #16] + 1949 0012 43F00403 orr r3, r3, #4 + 1950 0016 1361 str r3, [r2, #16] + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Select Stop mode entry --------------------------------------------------*/ + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(STOPEntry == PWR_STOPENTRY_WFI) + 1951 .loc 1 957 3 view .LVU448 + 1952 .loc 1 957 5 is_stmt 0 view .LVU449 + 1953 0018 0128 cmp r0, #1 + 1954 001a 08D0 beq .L172 + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Request Wait For Interrupt */ + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFI(); + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** else + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Request Wait For Event */ + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __SEV(); + 1955 .loc 1 965 5 is_stmt 1 view .LVU450 + 1956 .syntax unified + 1957 @ 965 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1958 001c 40BF sev + 1959 @ 0 "" 2 + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFE(); + 1960 .loc 1 966 5 view .LVU451 + 1961 @ 966 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1962 001e 20BF wfe + 1963 @ 0 "" 2 + ARM GAS /tmp/cchjGo05.s page 54 + + + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFE(); + 1964 .loc 1 967 5 view .LVU452 + 1965 @ 967 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1966 0020 20BF wfe + 1967 @ 0 "" 2 + 1968 .thumb + 1969 .syntax unified + 1970 .L171: + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Reset SLEEPDEEP bit of Cortex System Control Register */ + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 1971 .loc 1 971 3 view .LVU453 + 1972 0022 054A ldr r2, .L173+4 + 1973 0024 1369 ldr r3, [r2, #16] + 1974 0026 23F00403 bic r3, r3, #4 + 1975 002a 1361 str r3, [r2, #16] + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1976 .loc 1 972 1 is_stmt 0 view .LVU454 + 1977 002c 7047 bx lr + 1978 .L172: + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 1979 .loc 1 960 5 is_stmt 1 view .LVU455 + 1980 .syntax unified + 1981 @ 960 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 1982 002e 30BF wfi + 1983 @ 0 "" 2 + 1984 .thumb + 1985 .syntax unified + 1986 0030 F7E7 b .L171 + 1987 .L174: + 1988 0032 00BF .align 2 + 1989 .L173: + 1990 0034 00700040 .word 1073770496 + 1991 0038 00ED00E0 .word -536810240 + 1992 .cfi_endproc + 1993 .LFE355: + 1995 .section .text.HAL_PWREx_EnterSHUTDOWNMode,"ax",%progbits + 1996 .align 1 + 1997 .global HAL_PWREx_EnterSHUTDOWNMode + 1998 .syntax unified + 1999 .thumb + 2000 .thumb_func + 2002 HAL_PWREx_EnterSHUTDOWNMode: + 2003 .LFB356: + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enter Shutdown mode. + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note In Shutdown mode, the PLL, the HSI, the LSI and the HSE oscillators are switched + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * off. The voltage regulator is disabled and Vcore domain is powered off. + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * SRAM1, SRAM2 and registers contents are lost except for registers in the Backup domain. + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * The BOR is not available. + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note The I/Os can be configured either with a pull-up or pull-down or can be kept in analog s + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None + ARM GAS /tmp/cchjGo05.s page 55 + + + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnterSHUTDOWNMode(void) + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2004 .loc 1 987 1 view -0 + 2005 .cfi_startproc + 2006 @ args = 0, pretend = 0, frame = 0 + 2007 @ frame_needed = 0, uses_anonymous_args = 0 + 2008 @ link register save eliminated. + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set Shutdown mode */ + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_CR1_LPMS_SHUTDOWN); + 2009 .loc 1 990 3 view .LVU457 + 2010 0000 064A ldr r2, .L176 + 2011 0002 1368 ldr r3, [r2] + 2012 0004 23F00703 bic r3, r3, #7 + 2013 0008 43F00403 orr r3, r3, #4 + 2014 000c 1360 str r3, [r2] + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Set SLEEPDEEP bit of Cortex System Control Register */ + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + 2015 .loc 1 993 3 view .LVU458 + 2016 000e 044A ldr r2, .L176+4 + 2017 0010 1369 ldr r3, [r2, #16] + 2018 0012 43F00403 orr r3, r3, #4 + 2019 0016 1361 str r3, [r2, #16] + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* This option is used to ensure that store operations are completed */ + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined ( __CC_ARM) + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __force_stores(); + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Request Wait For Interrupt */ +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __WFI(); + 2020 .loc 1 1000 3 view .LVU459 + 2021 .syntax unified + 2022 @ 1000 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c" 1 + 2023 0018 30BF wfi + 2024 @ 0 "" 2 +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2025 .loc 1 1001 1 is_stmt 0 view .LVU460 + 2026 .thumb + 2027 .syntax unified + 2028 001a 7047 bx lr + 2029 .L177: + 2030 .align 2 + 2031 .L176: + 2032 001c 00700040 .word 1073770496 + 2033 0020 00ED00E0 .word -536810240 + 2034 .cfi_endproc + 2035 .LFE356: + 2037 .section .text.HAL_PWREx_PVM1Callback,"ax",%progbits + 2038 .align 1 + 2039 .weak HAL_PWREx_PVM1Callback + 2040 .syntax unified + 2041 .thumb + 2042 .thumb_func + 2044 HAL_PWREx_PVM1Callback: + 2045 .LFB358: + ARM GAS /tmp/cchjGo05.s page 56 + + +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief This function handles the PWR PVD/PVMx interrupt request. +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note This API should be called under the PVD_PVM_IRQHandler(). +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_PVD_PVM_IRQHandler(void) +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Check PWR exti flag */ +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(__HAL_PWR_PVD_EXTI_GET_FLAG() != 0U) +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR PVD interrupt user callback */ +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWR_PVDCallback(); +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear PVD exti pending bit */ +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVD_EXTI_CLEAR_FLAG(); +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Next, successively check PVMx exti flags */ +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME1) +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(__HAL_PWR_PVM1_EXTI_GET_FLAG() != 0U) +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR PVM1 interrupt user callback */ +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM1Callback(); +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear PVM1 exti pending bit */ +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM1_EXTI_CLEAR_FLAG(); +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME1 */ +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME2) +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(__HAL_PWR_PVM2_EXTI_GET_FLAG() != 0U) +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR PVM2 interrupt user callback */ +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM2Callback(); +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear PVM2 exti pending bit */ +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM2_EXTI_CLEAR_FLAG(); +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME2 */ +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(__HAL_PWR_PVM3_EXTI_GET_FLAG() != 0U) +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR PVM3 interrupt user callback */ +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM3Callback(); +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear PVM3 exti pending bit */ +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM3_EXTI_CLEAR_FLAG(); +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** if(__HAL_PWR_PVM4_EXTI_GET_FLAG() != 0U) +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* PWR PVM4 interrupt user callback */ +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM4Callback(); +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Clear PVM4 exti pending bit */ +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __HAL_PWR_PVM4_EXTI_CLEAR_FLAG(); +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + ARM GAS /tmp/cchjGo05.s page 57 + + +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME1) +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief PWR PVM1 interrupt callback +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __weak void HAL_PWREx_PVM1Callback(void) +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2046 .loc 1 1068 1 is_stmt 1 view -0 + 2047 .cfi_startproc + 2048 @ args = 0, pretend = 0, frame = 0 + 2049 @ frame_needed = 0, uses_anonymous_args = 0 + 2050 @ link register save eliminated. +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* NOTE : This function should not be modified; when the callback is needed, +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM1Callback() API can be implemented in the user file +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2051 .loc 1 1072 1 view .LVU462 + 2052 0000 7047 bx lr + 2053 .cfi_endproc + 2054 .LFE358: + 2056 .section .text.HAL_PWREx_PVM2Callback,"ax",%progbits + 2057 .align 1 + 2058 .weak HAL_PWREx_PVM2Callback + 2059 .syntax unified + 2060 .thumb + 2061 .thumb_func + 2063 HAL_PWREx_PVM2Callback: + 2064 .LFB359: +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME1 */ +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR2_PVME2) +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief PWR PVM2 interrupt callback +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __weak void HAL_PWREx_PVM2Callback(void) +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2065 .loc 1 1081 1 view -0 + 2066 .cfi_startproc + 2067 @ args = 0, pretend = 0, frame = 0 + 2068 @ frame_needed = 0, uses_anonymous_args = 0 + 2069 @ link register save eliminated. +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* NOTE : This function should not be modified; when the callback is needed, +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM2Callback() API can be implemented in the user file +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2070 .loc 1 1085 1 view .LVU464 + 2071 0000 7047 bx lr + 2072 .cfi_endproc + 2073 .LFE359: + 2075 .section .text.HAL_PWREx_PVM3Callback,"ax",%progbits + 2076 .align 1 + 2077 .weak HAL_PWREx_PVM3Callback + 2078 .syntax unified + ARM GAS /tmp/cchjGo05.s page 58 + + + 2079 .thumb + 2080 .thumb_func + 2082 HAL_PWREx_PVM3Callback: + 2083 .LFB360: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR2_PVME2 */ +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief PWR PVM3 interrupt callback +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __weak void HAL_PWREx_PVM3Callback(void) +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2084 .loc 1 1093 1 view -0 + 2085 .cfi_startproc + 2086 @ args = 0, pretend = 0, frame = 0 + 2087 @ frame_needed = 0, uses_anonymous_args = 0 + 2088 @ link register save eliminated. +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* NOTE : This function should not be modified; when the callback is needed, +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM3Callback() API can be implemented in the user file +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2089 .loc 1 1097 1 view .LVU466 + 2090 0000 7047 bx lr + 2091 .cfi_endproc + 2092 .LFE360: + 2094 .section .text.HAL_PWREx_PVM4Callback,"ax",%progbits + 2095 .align 1 + 2096 .weak HAL_PWREx_PVM4Callback + 2097 .syntax unified + 2098 .thumb + 2099 .thumb_func + 2101 HAL_PWREx_PVM4Callback: + 2102 .LFB361: +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief PWR PVM4 interrupt callback +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** __weak void HAL_PWREx_PVM4Callback(void) +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2103 .loc 1 1104 1 view -0 + 2104 .cfi_startproc + 2105 @ args = 0, pretend = 0, frame = 0 + 2106 @ frame_needed = 0, uses_anonymous_args = 0 + 2107 @ link register save eliminated. +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* NOTE : This function should not be modified; when the callback is needed, +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** HAL_PWREx_PVM4Callback() API can be implemented in the user file +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2108 .loc 1 1108 1 view .LVU468 + 2109 0000 7047 bx lr + 2110 .cfi_endproc + 2111 .LFE361: + 2113 .section .text.HAL_PWREx_PVD_PVM_IRQHandler,"ax",%progbits + 2114 .align 1 + 2115 .global HAL_PWREx_PVD_PVM_IRQHandler + 2116 .syntax unified + ARM GAS /tmp/cchjGo05.s page 59 + + + 2117 .thumb + 2118 .thumb_func + 2120 HAL_PWREx_PVD_PVM_IRQHandler: + 2121 .LFB357: +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Check PWR exti flag */ + 2122 .loc 1 1012 1 view -0 + 2123 .cfi_startproc + 2124 @ args = 0, pretend = 0, frame = 0 + 2125 @ frame_needed = 0, uses_anonymous_args = 0 + 2126 0000 08B5 push {r3, lr} + 2127 .LCFI0: + 2128 .cfi_def_cfa_offset 8 + 2129 .cfi_offset 3, -8 + 2130 .cfi_offset 14, -4 +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2131 .loc 1 1014 3 view .LVU470 +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2132 .loc 1 1014 6 is_stmt 0 view .LVU471 + 2133 0002 1C4B ldr r3, .L194 + 2134 0004 5B69 ldr r3, [r3, #20] +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2135 .loc 1 1014 5 view .LVU472 + 2136 0006 13F4803F tst r3, #65536 + 2137 000a 14D1 bne .L189 + 2138 .L183: +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2139 .loc 1 1024 3 is_stmt 1 view .LVU473 +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2140 .loc 1 1024 6 is_stmt 0 view .LVU474 + 2141 000c 194B ldr r3, .L194 + 2142 000e 5B6B ldr r3, [r3, #52] +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2143 .loc 1 1024 5 view .LVU475 + 2144 0010 13F0080F tst r3, #8 + 2145 0014 16D1 bne .L190 + 2146 .L184: +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2147 .loc 1 1034 3 is_stmt 1 view .LVU476 +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2148 .loc 1 1034 6 is_stmt 0 view .LVU477 + 2149 0016 174B ldr r3, .L194 + 2150 0018 5B6B ldr r3, [r3, #52] +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2151 .loc 1 1034 5 view .LVU478 + 2152 001a 13F0100F tst r3, #16 + 2153 001e 17D1 bne .L191 + 2154 .L185: +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2155 .loc 1 1043 3 is_stmt 1 view .LVU479 +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2156 .loc 1 1043 6 is_stmt 0 view .LVU480 + 2157 0020 144B ldr r3, .L194 + 2158 0022 5B6B ldr r3, [r3, #52] +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2159 .loc 1 1043 5 view .LVU481 + 2160 0024 13F0200F tst r3, #32 + 2161 0028 18D1 bne .L192 + ARM GAS /tmp/cchjGo05.s page 60 + + + 2162 .L186: +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2163 .loc 1 1051 3 is_stmt 1 view .LVU482 +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2164 .loc 1 1051 6 is_stmt 0 view .LVU483 + 2165 002a 124B ldr r3, .L194 + 2166 002c 5B6B ldr r3, [r3, #52] +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2167 .loc 1 1051 5 view .LVU484 + 2168 002e 13F0400F tst r3, #64 + 2169 0032 19D1 bne .L193 + 2170 .L182: +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2171 .loc 1 1059 1 view .LVU485 + 2172 0034 08BD pop {r3, pc} + 2173 .L189: +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2174 .loc 1 1017 5 is_stmt 1 view .LVU486 + 2175 0036 FFF7FEFF bl HAL_PWR_PVDCallback + 2176 .LVL123: +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2177 .loc 1 1020 5 view .LVU487 + 2178 003a 0E4B ldr r3, .L194 + 2179 003c 4FF48032 mov r2, #65536 + 2180 0040 5A61 str r2, [r3, #20] + 2181 0042 E3E7 b .L183 + 2182 .L190: +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2183 .loc 1 1027 5 view .LVU488 + 2184 0044 FFF7FEFF bl HAL_PWREx_PVM1Callback + 2185 .LVL124: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2186 .loc 1 1030 5 view .LVU489 + 2187 0048 0A4B ldr r3, .L194 + 2188 004a 0822 movs r2, #8 + 2189 004c 5A63 str r2, [r3, #52] + 2190 004e E2E7 b .L184 + 2191 .L191: +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2192 .loc 1 1037 5 view .LVU490 + 2193 0050 FFF7FEFF bl HAL_PWREx_PVM2Callback + 2194 .LVL125: +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2195 .loc 1 1040 5 view .LVU491 + 2196 0054 074B ldr r3, .L194 + 2197 0056 1022 movs r2, #16 + 2198 0058 5A63 str r2, [r3, #52] + 2199 005a E1E7 b .L185 + 2200 .L192: +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2201 .loc 1 1046 5 view .LVU492 + 2202 005c FFF7FEFF bl HAL_PWREx_PVM3Callback + 2203 .LVL126: +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2204 .loc 1 1049 5 view .LVU493 + 2205 0060 044B ldr r3, .L194 + 2206 0062 2022 movs r2, #32 + ARM GAS /tmp/cchjGo05.s page 61 + + + 2207 0064 5A63 str r2, [r3, #52] + 2208 0066 E0E7 b .L186 + 2209 .L193: +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2210 .loc 1 1054 5 view .LVU494 + 2211 0068 FFF7FEFF bl HAL_PWREx_PVM4Callback + 2212 .LVL127: +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2213 .loc 1 1057 5 view .LVU495 + 2214 006c 014B ldr r3, .L194 + 2215 006e 4022 movs r2, #64 + 2216 0070 5A63 str r2, [r3, #52] +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** + 2217 .loc 1 1059 1 is_stmt 0 view .LVU496 + 2218 0072 DFE7 b .L182 + 2219 .L195: + 2220 .align 2 + 2221 .L194: + 2222 0074 00040140 .word 1073808384 + 2223 .cfi_endproc + 2224 .LFE357: + 2226 .section .text.HAL_PWREx_EnableUCPDStandbyMode,"ax",%progbits + 2227 .align 1 + 2228 .global HAL_PWREx_EnableUCPDStandbyMode + 2229 .syntax unified + 2230 .thumb + 2231 .thumb_func + 2233 HAL_PWREx_EnableUCPDStandbyMode: + 2234 .LFB362: +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR3_UCPD_STDBY) +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable UCPD configuration memorization in Standby. +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnableUCPDStandbyMode(void) +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2235 .loc 1 1116 1 is_stmt 1 view -0 + 2236 .cfi_startproc + 2237 @ args = 0, pretend = 0, frame = 0 + 2238 @ frame_needed = 0, uses_anonymous_args = 0 + 2239 @ link register save eliminated. +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Memorize UCPD configuration when entering standby mode */ +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY); + 2240 .loc 1 1118 3 view .LVU498 + 2241 0000 024A ldr r2, .L197 + 2242 0002 9368 ldr r3, [r2, #8] + 2243 0004 43F40053 orr r3, r3, #8192 + 2244 0008 9360 str r3, [r2, #8] +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2245 .loc 1 1119 1 is_stmt 0 view .LVU499 + 2246 000a 7047 bx lr + 2247 .L198: + 2248 .align 2 + 2249 .L197: + 2250 000c 00700040 .word 1073770496 + 2251 .cfi_endproc + ARM GAS /tmp/cchjGo05.s page 62 + + + 2252 .LFE362: + 2254 .section .text.HAL_PWREx_DisableUCPDStandbyMode,"ax",%progbits + 2255 .align 1 + 2256 .global HAL_PWREx_DisableUCPDStandbyMode + 2257 .syntax unified + 2258 .thumb + 2259 .thumb_func + 2261 HAL_PWREx_DisableUCPDStandbyMode: + 2262 .LFB363: +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable UCPD configuration memorization in Standby. +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note This function must be called on exiting the Standby mode and before any UCPD +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * configuration update. +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisableUCPDStandbyMode(void) +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2263 .loc 1 1128 1 is_stmt 1 view -0 + 2264 .cfi_startproc + 2265 @ args = 0, pretend = 0, frame = 0 + 2266 @ frame_needed = 0, uses_anonymous_args = 0 + 2267 @ link register save eliminated. +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Write 0 immediately after Standby exit when using UCPD, +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** and before writing any UCPD registers */ +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR3, PWR_CR3_UCPD_STDBY); + 2268 .loc 1 1131 3 view .LVU501 + 2269 0000 024A ldr r2, .L200 + 2270 0002 9368 ldr r3, [r2, #8] + 2271 0004 23F40053 bic r3, r3, #8192 + 2272 0008 9360 str r3, [r2, #8] +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2273 .loc 1 1132 1 is_stmt 0 view .LVU502 + 2274 000a 7047 bx lr + 2275 .L201: + 2276 .align 2 + 2277 .L200: + 2278 000c 00700040 .word 1073770496 + 2279 .cfi_endproc + 2280 .LFE363: + 2282 .section .text.HAL_PWREx_EnableUCPDDeadBattery,"ax",%progbits + 2283 .align 1 + 2284 .global HAL_PWREx_EnableUCPDDeadBattery + 2285 .syntax unified + 2286 .thumb + 2287 .thumb_func + 2289 HAL_PWREx_EnableUCPDDeadBattery: + 2290 .LFB364: +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #endif /* PWR_CR3_UCPD_STDBY */ +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** #if defined(PWR_CR3_UCPD_DBDIS) +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Enable the USB Type-C dead battery pull-down behavior +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * on UCPDx_CC1 and UCPDx_CC2 pins +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_EnableUCPDDeadBattery(void) + ARM GAS /tmp/cchjGo05.s page 63 + + +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2291 .loc 1 1142 1 is_stmt 1 view -0 + 2292 .cfi_startproc + 2293 @ args = 0, pretend = 0, frame = 0 + 2294 @ frame_needed = 0, uses_anonymous_args = 0 + 2295 @ link register save eliminated. +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Write 0 to enable the USB Type-C dead battery pull-down behavior */ +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** CLEAR_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); + 2296 .loc 1 1144 3 view .LVU504 + 2297 0000 024A ldr r2, .L203 + 2298 0002 9368 ldr r3, [r2, #8] + 2299 0004 23F48043 bic r3, r3, #16384 + 2300 0008 9360 str r3, [r2, #8] +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2301 .loc 1 1145 1 is_stmt 0 view .LVU505 + 2302 000a 7047 bx lr + 2303 .L204: + 2304 .align 2 + 2305 .L203: + 2306 000c 00700040 .word 1073770496 + 2307 .cfi_endproc + 2308 .LFE364: + 2310 .section .text.HAL_PWREx_DisableUCPDDeadBattery,"ax",%progbits + 2311 .align 1 + 2312 .global HAL_PWREx_DisableUCPDDeadBattery + 2313 .syntax unified + 2314 .thumb + 2315 .thumb_func + 2317 HAL_PWREx_DisableUCPDDeadBattery: + 2318 .LFB365: +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /** +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @brief Disable the USB Type-C dead battery pull-down behavior +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * on UCPDx_CC1 and UCPDx_CC2 pins +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @note After exiting reset, the USB Type-C dead battery behavior will be enabled, +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * which may have a pull-down effect on CC1 and CC2 pins. +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * It is recommended to disable it in all cases, either to stop this pull-down +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * or to hand over control to the UCPD (which should therefore be +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * initialized before doing the disable). +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** * @retval None +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** */ +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** void HAL_PWREx_DisableUCPDDeadBattery(void) +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** { + 2319 .loc 1 1158 1 is_stmt 1 view -0 + 2320 .cfi_startproc + 2321 @ args = 0, pretend = 0, frame = 0 + 2322 @ frame_needed = 0, uses_anonymous_args = 0 + 2323 @ link register save eliminated. +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** /* Write 1 to disable the USB Type-C dead battery pull-down behavior */ +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** SET_BIT(PWR->CR3, PWR_CR3_UCPD_DBDIS); + 2324 .loc 1 1160 3 view .LVU507 + 2325 0000 024A ldr r2, .L206 + 2326 0002 9368 ldr r3, [r2, #8] + 2327 0004 43F48043 orr r3, r3, #16384 + 2328 0008 9360 str r3, [r2, #8] +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pwr_ex.c **** } + 2329 .loc 1 1161 1 is_stmt 0 view .LVU508 + ARM GAS /tmp/cchjGo05.s page 64 + + + 2330 000a 7047 bx lr + 2331 .L207: + 2332 .align 2 + 2333 .L206: + 2334 000c 00700040 .word 1073770496 + 2335 .cfi_endproc + 2336 .LFE365: + 2338 .text + 2339 .Letext0: + 2340 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 2341 .file 3 "Drivers/CMSIS/Include/core_cm4.h" + 2342 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 2343 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 2344 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h" + 2345 .file 7 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" + 2346 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h" + ARM GAS /tmp/cchjGo05.s page 65 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_pwr_ex.c + /tmp/cchjGo05.s:21 .text.HAL_PWREx_GetVoltageRange:00000000 $t + /tmp/cchjGo05.s:27 .text.HAL_PWREx_GetVoltageRange:00000000 HAL_PWREx_GetVoltageRange + /tmp/cchjGo05.s:58 .text.HAL_PWREx_GetVoltageRange:00000020 $d + /tmp/cchjGo05.s:63 .text.HAL_PWREx_ControlVoltageScaling:00000000 $t + /tmp/cchjGo05.s:69 .text.HAL_PWREx_ControlVoltageScaling:00000000 HAL_PWREx_ControlVoltageScaling + /tmp/cchjGo05.s:273 .text.HAL_PWREx_ControlVoltageScaling:00000100 $d + /tmp/cchjGo05.s:280 .text.HAL_PWREx_EnableBatteryCharging:00000000 $t + /tmp/cchjGo05.s:286 .text.HAL_PWREx_EnableBatteryCharging:00000000 HAL_PWREx_EnableBatteryCharging + /tmp/cchjGo05.s:310 .text.HAL_PWREx_EnableBatteryCharging:00000018 $d + /tmp/cchjGo05.s:315 .text.HAL_PWREx_DisableBatteryCharging:00000000 $t + /tmp/cchjGo05.s:321 .text.HAL_PWREx_DisableBatteryCharging:00000000 HAL_PWREx_DisableBatteryCharging + /tmp/cchjGo05.s:338 .text.HAL_PWREx_DisableBatteryCharging:0000000c $d + /tmp/cchjGo05.s:343 .text.HAL_PWREx_EnableInternalWakeUpLine:00000000 $t + /tmp/cchjGo05.s:349 .text.HAL_PWREx_EnableInternalWakeUpLine:00000000 HAL_PWREx_EnableInternalWakeUpLine + /tmp/cchjGo05.s:366 .text.HAL_PWREx_EnableInternalWakeUpLine:0000000c $d + /tmp/cchjGo05.s:371 .text.HAL_PWREx_DisableInternalWakeUpLine:00000000 $t + /tmp/cchjGo05.s:377 .text.HAL_PWREx_DisableInternalWakeUpLine:00000000 HAL_PWREx_DisableInternalWakeUpLine + /tmp/cchjGo05.s:394 .text.HAL_PWREx_DisableInternalWakeUpLine:0000000c $d + /tmp/cchjGo05.s:399 .text.HAL_PWREx_EnableGPIOPullUp:00000000 $t + /tmp/cchjGo05.s:405 .text.HAL_PWREx_EnableGPIOPullUp:00000000 HAL_PWREx_EnableGPIOPullUp + /tmp/cchjGo05.s:421 .text.HAL_PWREx_EnableGPIOPullUp:00000008 $d + /tmp/cchjGo05.s:573 .text.HAL_PWREx_EnableGPIOPullUp:000000b4 $d + /tmp/cchjGo05.s:578 .text.HAL_PWREx_DisableGPIOPullUp:00000000 $t + /tmp/cchjGo05.s:584 .text.HAL_PWREx_DisableGPIOPullUp:00000000 HAL_PWREx_DisableGPIOPullUp + /tmp/cchjGo05.s:600 .text.HAL_PWREx_DisableGPIOPullUp:00000008 $d + /tmp/cchjGo05.s:720 .text.HAL_PWREx_DisableGPIOPullUp:00000088 $d + /tmp/cchjGo05.s:725 .text.HAL_PWREx_EnableGPIOPullDown:00000000 $t + /tmp/cchjGo05.s:731 .text.HAL_PWREx_EnableGPIOPullDown:00000000 HAL_PWREx_EnableGPIOPullDown + /tmp/cchjGo05.s:747 .text.HAL_PWREx_EnableGPIOPullDown:00000008 $d + /tmp/cchjGo05.s:898 .text.HAL_PWREx_EnableGPIOPullDown:000000b8 $d + /tmp/cchjGo05.s:903 .text.HAL_PWREx_DisableGPIOPullDown:00000000 $t + /tmp/cchjGo05.s:909 .text.HAL_PWREx_DisableGPIOPullDown:00000000 HAL_PWREx_DisableGPIOPullDown + /tmp/cchjGo05.s:925 .text.HAL_PWREx_DisableGPIOPullDown:00000008 $d + /tmp/cchjGo05.s:1044 .text.HAL_PWREx_DisableGPIOPullDown:00000084 $d + /tmp/cchjGo05.s:1049 .text.HAL_PWREx_EnablePullUpPullDownConfig:00000000 $t + /tmp/cchjGo05.s:1055 .text.HAL_PWREx_EnablePullUpPullDownConfig:00000000 HAL_PWREx_EnablePullUpPullDownConfig + /tmp/cchjGo05.s:1072 .text.HAL_PWREx_EnablePullUpPullDownConfig:0000000c $d + /tmp/cchjGo05.s:1077 .text.HAL_PWREx_DisablePullUpPullDownConfig:00000000 $t + /tmp/cchjGo05.s:1083 .text.HAL_PWREx_DisablePullUpPullDownConfig:00000000 HAL_PWREx_DisablePullUpPullDownConfig + /tmp/cchjGo05.s:1100 .text.HAL_PWREx_DisablePullUpPullDownConfig:0000000c $d + /tmp/cchjGo05.s:1105 .text.HAL_PWREx_EnableSRAM2ContentRetention:00000000 $t + /tmp/cchjGo05.s:1111 .text.HAL_PWREx_EnableSRAM2ContentRetention:00000000 HAL_PWREx_EnableSRAM2ContentRetention + /tmp/cchjGo05.s:1128 .text.HAL_PWREx_EnableSRAM2ContentRetention:0000000c $d + /tmp/cchjGo05.s:1133 .text.HAL_PWREx_DisableSRAM2ContentRetention:00000000 $t + /tmp/cchjGo05.s:1139 .text.HAL_PWREx_DisableSRAM2ContentRetention:00000000 HAL_PWREx_DisableSRAM2ContentRetention + /tmp/cchjGo05.s:1156 .text.HAL_PWREx_DisableSRAM2ContentRetention:0000000c $d + /tmp/cchjGo05.s:1161 .text.HAL_PWREx_EnablePVM1:00000000 $t + /tmp/cchjGo05.s:1167 .text.HAL_PWREx_EnablePVM1:00000000 HAL_PWREx_EnablePVM1 + /tmp/cchjGo05.s:1184 .text.HAL_PWREx_EnablePVM1:0000000c $d + /tmp/cchjGo05.s:1189 .text.HAL_PWREx_DisablePVM1:00000000 $t + /tmp/cchjGo05.s:1195 .text.HAL_PWREx_DisablePVM1:00000000 HAL_PWREx_DisablePVM1 + /tmp/cchjGo05.s:1212 .text.HAL_PWREx_DisablePVM1:0000000c $d + /tmp/cchjGo05.s:1217 .text.HAL_PWREx_EnablePVM2:00000000 $t + /tmp/cchjGo05.s:1223 .text.HAL_PWREx_EnablePVM2:00000000 HAL_PWREx_EnablePVM2 + /tmp/cchjGo05.s:1240 .text.HAL_PWREx_EnablePVM2:0000000c $d + ARM GAS /tmp/cchjGo05.s page 66 + + + /tmp/cchjGo05.s:1245 .text.HAL_PWREx_DisablePVM2:00000000 $t + /tmp/cchjGo05.s:1251 .text.HAL_PWREx_DisablePVM2:00000000 HAL_PWREx_DisablePVM2 + /tmp/cchjGo05.s:1268 .text.HAL_PWREx_DisablePVM2:0000000c $d + /tmp/cchjGo05.s:1273 .text.HAL_PWREx_EnablePVM3:00000000 $t + /tmp/cchjGo05.s:1279 .text.HAL_PWREx_EnablePVM3:00000000 HAL_PWREx_EnablePVM3 + /tmp/cchjGo05.s:1296 .text.HAL_PWREx_EnablePVM3:0000000c $d + /tmp/cchjGo05.s:1301 .text.HAL_PWREx_DisablePVM3:00000000 $t + /tmp/cchjGo05.s:1307 .text.HAL_PWREx_DisablePVM3:00000000 HAL_PWREx_DisablePVM3 + /tmp/cchjGo05.s:1324 .text.HAL_PWREx_DisablePVM3:0000000c $d + /tmp/cchjGo05.s:1329 .text.HAL_PWREx_EnablePVM4:00000000 $t + /tmp/cchjGo05.s:1335 .text.HAL_PWREx_EnablePVM4:00000000 HAL_PWREx_EnablePVM4 + /tmp/cchjGo05.s:1352 .text.HAL_PWREx_EnablePVM4:0000000c $d + /tmp/cchjGo05.s:1357 .text.HAL_PWREx_DisablePVM4:00000000 $t + /tmp/cchjGo05.s:1363 .text.HAL_PWREx_DisablePVM4:00000000 HAL_PWREx_DisablePVM4 + /tmp/cchjGo05.s:1380 .text.HAL_PWREx_DisablePVM4:0000000c $d + /tmp/cchjGo05.s:1385 .text.HAL_PWREx_ConfigPVM:00000000 $t + /tmp/cchjGo05.s:1391 .text.HAL_PWREx_ConfigPVM:00000000 HAL_PWREx_ConfigPVM + /tmp/cchjGo05.s:1744 .text.HAL_PWREx_ConfigPVM:000001e8 $d + /tmp/cchjGo05.s:1749 .text.HAL_PWREx_EnableLowPowerRunMode:00000000 $t + /tmp/cchjGo05.s:1755 .text.HAL_PWREx_EnableLowPowerRunMode:00000000 HAL_PWREx_EnableLowPowerRunMode + /tmp/cchjGo05.s:1772 .text.HAL_PWREx_EnableLowPowerRunMode:0000000c $d + /tmp/cchjGo05.s:1777 .text.HAL_PWREx_DisableLowPowerRunMode:00000000 $t + /tmp/cchjGo05.s:1783 .text.HAL_PWREx_DisableLowPowerRunMode:00000000 HAL_PWREx_DisableLowPowerRunMode + /tmp/cchjGo05.s:1849 .text.HAL_PWREx_DisableLowPowerRunMode:0000004c $d + /tmp/cchjGo05.s:1855 .text.HAL_PWREx_EnterSTOP0Mode:00000000 $t + /tmp/cchjGo05.s:1861 .text.HAL_PWREx_EnterSTOP0Mode:00000000 HAL_PWREx_EnterSTOP0Mode + /tmp/cchjGo05.s:1919 .text.HAL_PWREx_EnterSTOP0Mode:00000030 $d + /tmp/cchjGo05.s:1925 .text.HAL_PWREx_EnterSTOP1Mode:00000000 $t + /tmp/cchjGo05.s:1931 .text.HAL_PWREx_EnterSTOP1Mode:00000000 HAL_PWREx_EnterSTOP1Mode + /tmp/cchjGo05.s:1990 .text.HAL_PWREx_EnterSTOP1Mode:00000034 $d + /tmp/cchjGo05.s:1996 .text.HAL_PWREx_EnterSHUTDOWNMode:00000000 $t + /tmp/cchjGo05.s:2002 .text.HAL_PWREx_EnterSHUTDOWNMode:00000000 HAL_PWREx_EnterSHUTDOWNMode + /tmp/cchjGo05.s:2032 .text.HAL_PWREx_EnterSHUTDOWNMode:0000001c $d + /tmp/cchjGo05.s:2038 .text.HAL_PWREx_PVM1Callback:00000000 $t + /tmp/cchjGo05.s:2044 .text.HAL_PWREx_PVM1Callback:00000000 HAL_PWREx_PVM1Callback + /tmp/cchjGo05.s:2057 .text.HAL_PWREx_PVM2Callback:00000000 $t + /tmp/cchjGo05.s:2063 .text.HAL_PWREx_PVM2Callback:00000000 HAL_PWREx_PVM2Callback + /tmp/cchjGo05.s:2076 .text.HAL_PWREx_PVM3Callback:00000000 $t + /tmp/cchjGo05.s:2082 .text.HAL_PWREx_PVM3Callback:00000000 HAL_PWREx_PVM3Callback + /tmp/cchjGo05.s:2095 .text.HAL_PWREx_PVM4Callback:00000000 $t + /tmp/cchjGo05.s:2101 .text.HAL_PWREx_PVM4Callback:00000000 HAL_PWREx_PVM4Callback + /tmp/cchjGo05.s:2114 .text.HAL_PWREx_PVD_PVM_IRQHandler:00000000 $t + /tmp/cchjGo05.s:2120 .text.HAL_PWREx_PVD_PVM_IRQHandler:00000000 HAL_PWREx_PVD_PVM_IRQHandler + /tmp/cchjGo05.s:2222 .text.HAL_PWREx_PVD_PVM_IRQHandler:00000074 $d + /tmp/cchjGo05.s:2227 .text.HAL_PWREx_EnableUCPDStandbyMode:00000000 $t + /tmp/cchjGo05.s:2233 .text.HAL_PWREx_EnableUCPDStandbyMode:00000000 HAL_PWREx_EnableUCPDStandbyMode + /tmp/cchjGo05.s:2250 .text.HAL_PWREx_EnableUCPDStandbyMode:0000000c $d + /tmp/cchjGo05.s:2255 .text.HAL_PWREx_DisableUCPDStandbyMode:00000000 $t + /tmp/cchjGo05.s:2261 .text.HAL_PWREx_DisableUCPDStandbyMode:00000000 HAL_PWREx_DisableUCPDStandbyMode + /tmp/cchjGo05.s:2278 .text.HAL_PWREx_DisableUCPDStandbyMode:0000000c $d + /tmp/cchjGo05.s:2283 .text.HAL_PWREx_EnableUCPDDeadBattery:00000000 $t + /tmp/cchjGo05.s:2289 .text.HAL_PWREx_EnableUCPDDeadBattery:00000000 HAL_PWREx_EnableUCPDDeadBattery + /tmp/cchjGo05.s:2306 .text.HAL_PWREx_EnableUCPDDeadBattery:0000000c $d + /tmp/cchjGo05.s:2311 .text.HAL_PWREx_DisableUCPDDeadBattery:00000000 $t + /tmp/cchjGo05.s:2317 .text.HAL_PWREx_DisableUCPDDeadBattery:00000000 HAL_PWREx_DisableUCPDDeadBattery + /tmp/cchjGo05.s:2334 .text.HAL_PWREx_DisableUCPDDeadBattery:0000000c $d + /tmp/cchjGo05.s:428 .text.HAL_PWREx_EnableGPIOPullUp:0000000f $d + ARM GAS /tmp/cchjGo05.s page 67 + + + /tmp/cchjGo05.s:428 .text.HAL_PWREx_EnableGPIOPullUp:00000010 $t + /tmp/cchjGo05.s:607 .text.HAL_PWREx_DisableGPIOPullUp:0000000f $d + /tmp/cchjGo05.s:607 .text.HAL_PWREx_DisableGPIOPullUp:00000010 $t + /tmp/cchjGo05.s:754 .text.HAL_PWREx_EnableGPIOPullDown:0000000f $d + /tmp/cchjGo05.s:754 .text.HAL_PWREx_EnableGPIOPullDown:00000010 $t + /tmp/cchjGo05.s:932 .text.HAL_PWREx_DisableGPIOPullDown:0000000f $d + /tmp/cchjGo05.s:932 .text.HAL_PWREx_DisableGPIOPullDown:00000010 $t + +UNDEFINED SYMBOLS +SystemCoreClock +HAL_PWR_PVDCallback diff --git a/squeow_sw/build/stm32g4xx_hal_pwr_ex.o b/squeow_sw/build/stm32g4xx_hal_pwr_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..792c3b8d1b48994b23d7c98245239fef88152d29 GIT binary patch literal 27596 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 RCC_MCO_GPI + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** #define RCC_GET_MCO_GPIO_INDEX(__RCC_MCOx__) (((__RCC_MCOx__) & RCC_MCO_GPIOPORT_MASK) >> RCC_MCO_G + ARM GAS /tmp/ccu53ZgF.s page 3 + + + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** #define RCC_GET_MCO_GPIO_PORT(__RCC_MCOx__) (AHB2PERIPH_BASE + ((0x00000400UL) * RCC_GET_MCO_GPIO_ + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** #define RCC_PLL_OSCSOURCE_CONFIG(__HAL_RCC_PLLSOURCE__) \ + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, (__HAL_RCC_PLLSOURCE__))) + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @} + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Private variables ---------------------------------------------------------*/ + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Private function prototypes -----------------------------------------------*/ + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** @defgroup RCC_Private_Functions RCC Private Functions + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @{ + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** static uint32_t RCC_GetSysClockFreqFromPLLSource(void); + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @} + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Exported functions --------------------------------------------------------*/ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** @defgroup RCC_Exported_Functions RCC Exported Functions + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @{ + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** @defgroup RCC_Exported_Functions_Group1 Initialization and de-initialization functions + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Initialization and Configuration functions + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** @verbatim + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** =============================================================================== + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** ##### Initialization and de-initialization functions ##### + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** =============================================================================== + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** [..] + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** This section provides functions allowing to configure the internal and external oscillators + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (HSE, HSI, LSE, LSI, PLL, CSS and MCO) and the System buses clocks (SYSCLK, AHB, APB1 + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** and APB2). + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** [..] Internal/external clock and PLL configuration + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) HSI (high-speed internal): 16 MHz factory-trimmed RC used directly or through + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** the PLL as System clock source. + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) LSI (low-speed internal): 32 KHz low consumption RC used as IWDG and/or RTC + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** clock source. + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) HSE (high-speed external): 4 to 48 MHz crystal oscillator used directly or + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** through the PLL as System clock source. Can be used also optionally as RTC clock sourc + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) LSE (low-speed external): 32.768 KHz oscillator used optionally as RTC clock source. + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) PLL (clocked by HSI, HSE) providing up to three independent output clocks: + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (++) The first output is used to generate the high speed system clock (up to 170 MHz). + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (++) The second output is used to generate the clock for the USB (48 MHz), + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** the QSPI (<= 48 MHz), the FDCAN, the SAI and the I2S. + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (++) The third output is used to generate a clock for ADC + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) CSS (Clock security system): once enabled, if a HSE clock failure occurs + ARM GAS /tmp/ccu53ZgF.s page 4 + + + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (HSE used directly or through PLL as System clock source), the System clock + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** is automatically switched to HSI and an interrupt is generated if enabled. + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** The interrupt is linked to the Cortex-M4 NMI (Non-Maskable Interrupt) + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** exception vector. + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) MCO (microcontroller clock output): used to output LSI, HSI, LSE, HSE, + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** main PLL clock, system clock or RC48 clock (through a configurable prescaler) on PA8 p + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** [..] System, AHB and APB buses clocks configuration + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) Several clock sources can be used to drive the System clock (SYSCLK): HSI, + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HSE and main PLL. + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** The AHB clock (HCLK) is derived from System clock through configurable + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** prescaler and used to clock the CPU, memory and peripherals mapped + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** on AHB bus (DMA, GPIO...). APB1 (PCLK1) and APB2 (PCLK2) clocks are derived + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** from AHB clock through configurable prescalers and used to clock + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** the peripherals mapped on these buses. You can use + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** "HAL_RCC_GetSysClockFreq()" function to retrieve the frequencies of these clocks. + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** -@- All the peripheral clocks are derived from the System clock (SYSCLK) except: + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+@) RTC: the RTC clock can be derived either from the LSI, LSE or HSE clock + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** divided by 2 to 31. + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** You have to use __HAL_RCC_RTC_ENABLE() and HAL_RCCEx_PeriphCLKConfig() function + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** to configure this clock. + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+@) USB FS and RNG: USB FS requires a frequency equal to 48 MHz + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** to work correctly, while the RNG peripheral requires a frequency + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** equal or lower than to 48 MHz. This clock is derived of the main PLL + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** through PLLQ divider. You have to enable the peripheral clock and use + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_RCCEx_PeriphCLKConfig() function to configure this clock. + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+@) IWDG clock which is always the LSI clock. + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) The maximum frequency of the SYSCLK, HCLK, PCLK1 and PCLK2 is 170 MHz. + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** The clock source frequency should be adapted depending on the device voltage range + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** as listed in the Reference Manual "Clock source frequency versus voltage scaling" chap + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** @endverbatim + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** Table 1. HCLK clock frequency for STM32G4xx devices + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +----------------------------------------------------------------------------+ + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** | Latency | HCLK clock frequency (MHz) | + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** | |----------------------------------------------------------| + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** | | voltage range 1 | voltage range 1 | voltage range 2 | + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** | | boost mode 1.28 V | normal mode 1.2 V | 1.0 V | + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |-----------------|-------------------|-------------------|------------------| + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |0WS(1 CPU cycles)| HCLK <= 34 | HCLK <= 30 | HCLK <= 13 | + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |-----------------|-------------------|-------------------|------------------| + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |1WS(2 CPU cycles)| HCLK <= 68 | HCLK <= 60 | HCLK <= 26 | + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |-----------------|-------------------|-------------------|------------------| + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |2WS(3 CPU cycles)| HCLK <= 102 | HCLK <= 90 | - | + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |-----------------|-------------------|-------------------|------------------| + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |3WS(4 CPU cycles)| HCLK <= 136 | HCLK <= 120 | - | + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |-----------------|-------------------|-------------------|------------------| + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** |4WS(5 CPU cycles)| HCLK <= 170 | HCLK <= 150 | - | + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +----------------------------------------------------------------------------+ + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @{ + ARM GAS /tmp/ccu53ZgF.s page 5 + + + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Reset the RCC clock configuration to the default reset state. + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The default reset state of the clock configuration is given below: + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - HSI ON and used as system clock source + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - HSE, PLL OFF + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - AHB, APB1 and APB2 prescaler set to 1. + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - CSS, MCO1 OFF + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - All interrupts disabled + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - All interrupt and reset flags cleared + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note This function doesn't modify the configuration of the + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - Peripheral clocks + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * - LSI, LSE and RTC clocks + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval HAL status + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_StatusTypeDef HAL_RCC_DeInit(void) + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set HSION bit to the reset value */ + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->CR, RCC_CR_HSION); + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSI is ready */ + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set HSITRIM[6:0] bits to the reset value */ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->ICSCR, RCC_HSICALIBRATION_DEFAULT << RCC_ICSCR_HSITRIM_Pos); + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Reset CFGR register (HSI is selected as system clock source) */ + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC->CFGR = 0x00000001u; + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSI is ready */ + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CFGR, RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI) + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Update the SystemCoreClock global variable */ + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SystemCoreClock = HSI_VALUE; + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Adapt Systick interrupt period */ + ARM GAS /tmp/ccu53ZgF.s page 6 + + + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (HAL_InitTick(uwTickPrio) != HAL_OK) + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Clear CR register in 2 steps: first to clear HSEON in case bypass was enabled */ + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC->CR = RCC_CR_HSION; + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Then again to HSEBYP in case bypass was enabled */ + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC->CR = RCC_CR_HSION; + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till PLL is OFF */ + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* once PLL is OFF, reset PLLCFGR register to default value */ + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC->PLLCFGR = RCC_PLLCFGR_PLLN_4; + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable all interrupts */ + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** CLEAR_REG(RCC->CIER); + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Clear all interrupt flags */ + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** WRITE_REG(RCC->CICR, 0xFFFFFFFFU); + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Clear all reset flags */ + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->CSR, RCC_CSR_RMVF); + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_OK; + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Initialize the RCC Oscillators according to the specified parameters in the + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * RCC_OscInitTypeDef. + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_OscInitStruct pointer to an RCC_OscInitTypeDef structure that + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * contains the configuration information for the RCC Oscillators. + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The PLL is not disabled when used as system clock. + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Transitions LSE Bypass to LSE On and LSE On to LSE Bypass are not + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * supported by this macro. User should request a transition to LSE Off + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * first and then LSE On or LSE Bypass. + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Transition HSE Bypass to HSE On and HSE On to HSE Bypass are not + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * supported by this macro. User should request a transition to HSE Off + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * first and then HSE On or HSE Bypass. + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval HAL status + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t temp_sysclksrc; + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t temp_pllckcfg; + ARM GAS /tmp/ccu53ZgF.s page 7 + + + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check Null pointer */ + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_OscInitStruct == NULL) + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*------------------------------- HSE Configuration ------------------------*/ + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE(); + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowe + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSE)) || (temp_sys + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set the new HSE configuration ---------------------------------------*/ + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the HSE State */ + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSE is ready */ + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSE is disabled */ + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 8 + + + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*----------------------------- HSI Configuration --------------------------*/ + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_HSI_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock * + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE(); + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSI)) || (temp_sys + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* When HSI is used as system clock it will not be disabled */ + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Otherwise, just the calibration is allowed */ + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Adapt Systick interrupt period */ + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (HAL_InitTick(uwTickPrio) != HAL_OK) + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the HSI State */ + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Enable the Internal High Speed oscillator (HSI). */ + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSI_ENABLE(); + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSI is ready */ + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + ARM GAS /tmp/ccu53ZgF.s page 9 + + + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable the Internal High Speed oscillator (HSI). */ + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSI_DISABLE(); + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSI is disabled */ + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*------------------------------ LSI Configuration -------------------------*/ + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the LSI State */ + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Enable the Internal Low Speed oscillator (LSI). */ + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_LSI_ENABLE(); + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till LSI is ready */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable the Internal Low Speed oscillator (LSI). */ + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_LSI_DISABLE(); + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till LSI is disabled */ + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + ARM GAS /tmp/ccu53ZgF.s page 10 + + + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*------------------------------ LSE Configuration -------------------------*/ + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** FlagStatus pwrclkchanged = RESET; + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Update LSE configuration in Backup Domain control register */ + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Requires to enable write access to Backup Domain if necessary */ + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (__HAL_RCC_PWR_IS_CLK_DISABLED() != 0U) + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PWR_CLK_ENABLE(); + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Enable write access to Backup domain */ + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(PWR->CR1, PWR_CR1_DBP); + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait for Backup domain Write protection disable */ + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set the new LSE configuration -----------------------------------------*/ + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the LSE State */ + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till LSE is ready */ + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + ARM GAS /tmp/ccu53ZgF.s page 11 + + + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till LSE is disabled */ + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Restore clock configuration if changed */ + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (pwrclkchanged == SET) + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PWR_CLK_DISABLE(); + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*------------------------------ HSI48 Configuration -----------------------*/ + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI48) == RCC_OSCILLATORTYPE_HSI48) + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_HSI48(RCC_OscInitStruct->HSI48State)); + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the HSI48 State */ + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(RCC_OscInitStruct->HSI48State != RCC_HSI48_OFF) + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Enable the Internal Low Speed oscillator (HSI48). */ + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSI48_ENABLE(); + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSI48 is ready */ + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) == 0U) + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable the Internal Low Speed oscillator (HSI48). */ + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_HSI48_DISABLE(); + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till HSI48 is disabled */ + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48RDY) != 0U) + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 12 + + + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((HAL_GetTick() - tickstart) > HSI48_TIMEOUT_VALUE) + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*-------------------------------- PLL Configuration -----------------------*/ + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_OscInitStruct->PLL.PLLState != RCC_PLL_NONE) + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check if the PLL is used as system clock or not */ + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_CFGR_SWS_PLL) + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_OscInitStruct->PLL.PLLState == RCC_PLL_ON) + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLM_VALUE(RCC_OscInitStruct->PLL.PLLM)); + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLN_VALUE(RCC_OscInitStruct->PLL.PLLN)); + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->PLL.PLLP)); + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable the main PLL. */ + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLL_DISABLE(); + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till PLL is ready */ + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Configure the main PLL clock source, multiplication and division factors. */ + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLM, + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN, + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP, + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLQ, + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR); + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Enable the main PLL. */ + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLL_ENABLE(); + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Enable PLL System Clock output. */ + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + ARM GAS /tmp/ccu53ZgF.s page 13 + + + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till PLL is ready */ + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable the main PLL. */ + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLL_DISABLE(); + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Disable all PLL outputs to save power if no PLLs on */ + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, RCC_PLLSOURCE_NONE); + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLLCLKOUT_DISABLE(RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_ADCCLK); + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Wait till PLL is disabled */ + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check if there is a request to disable the PLL used as System clock source */ + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Do not return HAL_ERROR if request repeats the current configuration */ + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = RCC->PLLCFGR; + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFG + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLL + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 14 + + + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_OK; + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Initialize the CPU, AHB and APB buses clocks according to the specified + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * parameters in the RCC_ClkInitStruct. + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_ClkInitStruct pointer to an RCC_OscInitTypeDef structure that + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * contains the configuration information for the RCC peripheral. + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param FLatency FLASH Latency + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * This parameter can be one of the following values: + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_0 FLASH 0 Latency cycle + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_1 FLASH 1 Latency cycle + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_2 FLASH 2 Latency cycles + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_3 FLASH 3 Latency cycles + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_4 FLASH 4 Latency cycles + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_5 FLASH 5 Latency cycles + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_6 FLASH 6 Latency cycles + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_7 FLASH 7 Latency cycles + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_8 FLASH 8 Latency cycles + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_9 FLASH 9 Latency cycles + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_10 FLASH 10 Latency cycles + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_11 FLASH 11 Latency cycles + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_12 FLASH 12 Latency cycles + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_13 FLASH 13 Latency cycles + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_14 FLASH 14 Latency cycles + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg FLASH_LATENCY_15 FLASH 15 Latency cycles + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * and updated by HAL_RCC_GetHCLKFreq() function called within this function + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The HSI is used by default as system clock source after + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * startup from Reset, wake-up from STANDBY mode. After restart from Reset, + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * the HSI frequency is set to its default value 16 MHz. + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The HSI can be selected as system clock source after + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * from STOP modes or in case of failure of the HSE used directly or indirectly + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * as system clock (if the Clock Security System CSS is enabled). + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note A switch from one clock source to another occurs only if the target + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * clock source is ready (clock stable after startup delay or PLL locked). + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * If a clock source which is not yet ready is selected, the switch will + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * occur when the clock source is ready. + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note You can use HAL_RCC_GetClockConfig() function to know which clock is + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * currently used as system clock source. + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Depending on the device voltage range, the software has to set correctly + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * (for more details refer to section above "Initialization/de-initialization functions") + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t pllfreq; + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t hpre = RCC_SYSCLK_DIV1; + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 15 + + + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check Null pointer */ + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_ClkInitStruct == NULL) + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_CLOCKTYPE(RCC_ClkInitStruct->ClockType)); + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_FLASH_LATENCY(FLatency)); + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** must be correctly programmed according to the frequency of the CPU clock + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (HCLK) and the supply voltage of the device. */ + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Increasing the number of wait states because of higher CPU frequency */ + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (FLatency > __HAL_FLASH_GET_LATENCY()) + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_FLASH_SET_LATENCY(FLatency); + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check that the new number of wait states is taken into account to access the Flash + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** memory by reading the FLASH_ACR register */ + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (__HAL_FLASH_GET_LATENCY() != FLatency) + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*------------------------- SYSCLK Configuration ---------------------------*/ + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* PLL is selected as System Clock Source */ + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the PLL ready flag */ + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Undershoot management when selection PLL as SYSCLK source and frequency above 80Mhz */ + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Compute target PLL output frequency */ + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllfreq = RCC_GetSysClockFreqFromPLLSource(); + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Intermediate step with HCLK prescaler 2 necessary before to go over 80Mhz */ + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(pllfreq > 80000000U) + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1)) || + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (RCC_ClkInitStruct->AHBCLKDivider == RCC_SYSCLK_DIV1)))) + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** hpre = RCC_SYSCLK_DIV2; + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + ARM GAS /tmp/ccu53ZgF.s page 16 + + + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* HSE is selected as System Clock Source */ + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the HSE ready flag */ + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* HSI is selected as System Clock Source */ + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the HSI ready flag */ + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_ERROR; + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Overshoot management when going down from PLL as SYSCLK source and frequency above 80Mhz * + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllfreq = HAL_RCC_GetSysClockFreq(); + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Intermediate step with HCLK prescaler 2 necessary before to go under 80Mhz */ + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(pllfreq > 80000000U) + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** hpre = RCC_SYSCLK_DIV2; + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource); + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get Start Tick*/ + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*-------------------------- HCLK Configuration --------------------------*/ + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set the highest APB divider in order to ensure that we do not go through + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** a non-spec phase whatever we decrease or increase HCLK. */ + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 17 + + + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, RCC_HCLK_DIV16); + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set the new HCLK clock divider */ + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Is intermediate HCLK prescaler 2 applied internally, complete with HCLK prescaler 1 */ + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(hpre == RCC_SYSCLK_DIV2) + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV1); + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Decreasing the number of wait states because of lower CPU frequency */ + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (FLatency < __HAL_FLASH_GET_LATENCY()) + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_FLASH_SET_LATENCY(FLatency); + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check that the new number of wait states is taken into account to access the Flash + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** memory by polling the FLASH_ACR register */ + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** tickstart = HAL_GetTick(); + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** while (__HAL_FLASH_GET_LATENCY() != FLatency) + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_TIMEOUT; + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*-------------------------- PCLK1 Configuration ---------------------------*/ + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /*-------------------------- PCLK2 Configuration ---------------------------*/ + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Update the SystemCoreClock global variable */ + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Configure the source of time base considering new system clocks settings*/ + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return HAL_InitTick(uwTickPrio); + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + ARM GAS /tmp/ccu53ZgF.s page 18 + + + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @} + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** @defgroup RCC_Exported_Functions_Group2 Peripheral Control functions + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief RCC clocks control functions + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** @verbatim + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** =============================================================================== + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** ##### Peripheral Control functions ##### + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** =============================================================================== + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** [..] + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** This subsection provides a set of functions allowing to: + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) Output clock to MCO pin. + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) Retrieve current clock frequencies. + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (+) Enable the Clock Security System. + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** @endverbatim + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @{ + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Select the clock source to output on MCO pin(PA8/PG10). + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note PA8/PG10 should be configured in alternate function mode. + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The default configuration of the GPIOG pin 10 (PG10) is set to reset mode (NRST pin) + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * and user shall set the NRST_MODE Bit in the FLASH OPTR register to be able to use it + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * as an MCO pin. + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * The @ref HAL_FLASHEx_OBProgram() API can be used to configure the NRST_MODE Bit value. + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_MCOx specifies the output direction for the clock source. + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * For STM32G4xx family this parameter can have only one value: + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO_PA8 Clock source to output on MCO1 pin(PA8). + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO_PG10 Clock source to output on MCO1 pin(PG10). + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_MCOSource specifies the clock source to output. + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * This parameter can be one of the following values: + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_NOCLOCK MCO output disabled, no clock on MCO + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_SYSCLK system clock selected as MCO source + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_HSI HSI clock selected as MCO source + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_HSE HSE clock selected as MCO sourcee + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_PLLCLK main PLL clock selected as MCO source + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_LSI LSI clock selected as MCO source + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_LSE LSE clock selected as MCO source + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCO1SOURCE_HSI48 HSI48 clock selected as MCO source for devices with + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_MCODiv specifies the MCO prescaler. + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * This parameter can be one of the following values: + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCODIV_1 no division applied to MCO clock + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCODIV_2 division by 2 applied to MCO clock + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCODIV_4 division by 4 applied to MCO clock + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCODIV_8 division by 8 applied to MCO clock + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @arg @ref RCC_MCODIV_16 division by 16 applied to MCO clock + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv) + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** GPIO_InitTypeDef gpio_initstruct; + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t mcoindex; + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t mco_gpio_index; +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** GPIO_TypeDef * mco_gpio_port; + ARM GAS /tmp/ccu53ZgF.s page 19 + + +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_MCO(RCC_MCOx)); +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Common GPIO init parameters */ +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Mode = GPIO_MODE_AF_PP; +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Pull = GPIO_NOPULL; +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get MCOx selection */ +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** mcoindex = RCC_MCOx & RCC_MCO_INDEX_MASK; +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get MCOx GPIO Port */ +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** mco_gpio_port = (GPIO_TypeDef *) RCC_GET_MCO_GPIO_PORT(RCC_MCOx); +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* MCOx Clock Enable */ +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** mco_gpio_index = RCC_GET_MCO_GPIO_INDEX(RCC_MCOx); +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->AHB2ENR, (1UL << mco_gpio_index )); +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Configure the MCOx pin in alternate function mode */ +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Pin = RCC_GET_MCO_GPIO_PIN(RCC_MCOx); +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Alternate = RCC_GET_MCO_GPIO_AF(RCC_MCOx); +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_GPIO_Init(mco_gpio_port, &gpio_initstruct); +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (mcoindex == RCC_MCO1_INDEX) +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_MCODIV(RCC_MCODiv)); +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource)); +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Mask MCOSEL[] and MCOPRE[] bits then set MCO clock source and prescaler */ +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE), (RCC_MCOSource | RCC_MCODiv)); +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Return the SYSCLK frequency. +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The system frequency computed by this function is not the real +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * frequency in the chip. It is calculated based on the predefined +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * constant and the selected clock source: +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note If SYSCLK source is HSI, function returns values based on HSI_VALUE(*) +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note If SYSCLK source is HSE, function returns values based on HSE_VALUE(**) +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note If SYSCLK source is PLL, function returns values based on HSE_VALUE(**), +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * HSI_VALUE(*) Value multiplied/divided by the PLL factors. +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note (*) HSI_VALUE is a constant defined in stm32g4xx_hal_conf.h file (default value +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * 16 MHz) but the real value may vary depending on the variations +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * in voltage and temperature. +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note (**) HSE_VALUE is a constant defined in stm32g4xx_hal_conf.h file (default value +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * 8 MHz), user has to ensure that HSE_VALUE is same as the real +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * frequency of the crystal used. Otherwise, this function may +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * have wrong result. +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The result of this function could be not correct when using fractional +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * value for HSE crystal. +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note This function can be used by the user application to compute the +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * baudrate for the communication peripherals or configure other parameters. +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * + ARM GAS /tmp/ccu53ZgF.s page 20 + + +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Each time SYSCLK changes, this function must be called to update the +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * right SYSCLK value. Otherwise, any configuration based on this function will be incorre +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval SYSCLK frequency +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t HAL_RCC_GetSysClockFreq(void) +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t pllvco, pllsource, pllr, pllm; +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t sysclockfreq; +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* HSI used as system clock source */ +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = HSI_VALUE; +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* HSE used as system clock source */ +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = HSE_VALUE; +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* PLL used as system clock source */ +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* PLL_VCO = ((HSE_VALUE or HSI_VALUE)/ PLLM) * PLLN +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SYSCLK = PLL_VCO / PLLR +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** switch (pllsource) +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllvco = (HSE_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_P +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** default: +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllvco = (HSI_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_P +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = 0U; +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return sysclockfreq; +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Return the HCLK frequency. +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Each time HCLK changes, this function must be called to update the +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * right HCLK value. Otherwise, any configuration based on this function will be incorrect + ARM GAS /tmp/ccu53ZgF.s page 21 + + +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval HCLK frequency in Hz +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t HAL_RCC_GetHCLKFreq(void) +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return SystemCoreClock; +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Return the PCLK1 frequency. +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Each time PCLK1 changes, this function must be called to update the +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * right PCLK1 value. Otherwise, any configuration based on this function will be incorrec +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval PCLK1 frequency in Hz +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t HAL_RCC_GetPCLK1Freq(void) +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return (HAL_RCC_GetHCLKFreq() >> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1) >> RCC_CFGR_P +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Return the PCLK2 frequency. +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note Each time PCLK2 changes, this function must be called to update the +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * right PCLK2 value. Otherwise, any configuration based on this function will be incorrec +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval PCLK2 frequency in Hz +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t HAL_RCC_GetPCLK2Freq(void) +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return (HAL_RCC_GetHCLKFreq()>> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> RCC_CFGR_PP +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Configure the RCC_OscInitStruct according to the internal +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * RCC configuration registers. +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_OscInitStruct pointer to an RCC_OscInitTypeDef structure that +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * will be configured. +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(RCC_OscInitStruct != (void *)NULL); +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set all possible values for the Oscillator type parameter ---------------*/ +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | \ +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLA +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the HSE configuration -----------------------------------------------*/ +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CR, RCC_CR_HSEBYP) == RCC_CR_HSEBYP) +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSEState = RCC_HSE_BYPASS; +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else if(READ_BIT(RCC->CR, RCC_CR_HSEON) == RCC_CR_HSEON) +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSEState = RCC_HSE_ON; + ARM GAS /tmp/ccu53ZgF.s page 22 + + +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSEState = RCC_HSE_OFF; +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the HSI configuration -----------------------------------------------*/ +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CR, RCC_CR_HSION) == RCC_CR_HSION) +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSIState = RCC_HSI_ON; +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSIState = RCC_HSI_OFF; +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSICalibrationValue = READ_BIT(RCC->ICSCR, RCC_ICSCR_HSITRIM) >> RCC_ICSCR_HSI +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the LSE configuration -----------------------------------------------*/ +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->BDCR, RCC_BDCR_LSEBYP) == RCC_BDCR_LSEBYP) +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->LSEState = RCC_LSE_BYPASS; +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else if(READ_BIT(RCC->BDCR, RCC_BDCR_LSEON) == RCC_BDCR_LSEON) +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->LSEState = RCC_LSE_ON; +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->LSEState = RCC_LSE_OFF; +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the LSI configuration -----------------------------------------------*/ +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CSR, RCC_CSR_LSION) == RCC_CSR_LSION) +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->LSIState = RCC_LSI_ON; +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->LSIState = RCC_LSI_OFF; +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the HSI48 configuration ---------------------------------------------*/ +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON) == RCC_CRRCR_HSI48ON) +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSI48State = RCC_HSI48_ON; +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->HSI48State = RCC_HSI48_OFF; +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the PLL configuration -----------------------------------------------*/ +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(READ_BIT(RCC->CR, RCC_CR_PLLON) == RCC_CR_PLLON) +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLState = RCC_PLL_ON; +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + ARM GAS /tmp/ccu53ZgF.s page 23 + + +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** else +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLState = RCC_PLL_OFF; +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLSource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLM = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Configure the RCC_ClkInitStruct according to the internal +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * RCC configuration registers. +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param RCC_ClkInitStruct pointer to an RCC_ClkInitTypeDef structure that +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * will be configured. +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @param pFLatency Pointer on the Flash Latency. +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency) +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(RCC_ClkInitStruct != (void *)NULL); +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(pFLatency != (void *)NULL); +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Set all possible values for the Clock type parameter --------------------*/ +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_ClkInitStruct->ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the SYSCLK configuration --------------------------------------------*/ +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_ClkInitStruct->SYSCLKSource = READ_BIT(RCC->CFGR, RCC_CFGR_SW); +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the HCLK configuration ----------------------------------------------*/ +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_ClkInitStruct->AHBCLKDivider = READ_BIT(RCC->CFGR, RCC_CFGR_HPRE); +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the APB1 configuration ----------------------------------------------*/ +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_ClkInitStruct->APB1CLKDivider = READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1); +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the APB2 configuration ----------------------------------------------*/ +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_ClkInitStruct->APB2CLKDivider = (READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> 3U); +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get the Flash Wait State (Latency) configuration ------------------------*/ +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** *pFLatency = __HAL_FLASH_GET_LATENCY(); +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Enable the Clock Security System. +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note If a failure is detected on the HSE oscillator clock, this oscillator +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * is automatically disabled and an interrupt is generated to inform the +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * software about the failure (Clock Security System Interrupt, CSSI), +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * allowing the MCU to perform rescue operations. The CSSI is linked to +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * the Cortex-M4 NMI (Non-Maskable Interrupt) exception vector. +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The Clock Security System can only be cleared by reset. +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_EnableCSS(void) +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 24 + + +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->CR, RCC_CR_CSSON) ; +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Enable the LSE Clock Security System. +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note If a failure is detected on the external 32 kHz oscillator, +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * the LSE clock is no longer supplied to the RTC but no hardware action +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * is made to the registers. If enabled, an interrupt will be generated +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * and handle through @ref RCCEx_EXTI_LINE_LSECSS +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The Clock Security System can only be cleared by reset or after a LSE failure detection +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_EnableLSECSS(void) +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Disable the LSE Clock Security System. +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note After LSE failure detection, the software must disable LSECSSON +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note The Clock Security System can only be cleared by reset otherwise. +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_DisableLSECSS(void) +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Handle the RCC Clock Security System interrupt request. +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @note This API should be called under the NMI_Handler(). +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval None +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** void HAL_RCC_NMI_IRQHandler(void) +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check RCC CSSF interrupt flag */ +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if(__HAL_RCC_GET_IT(RCC_IT_CSS)) +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* RCC Clock Security System interrupt user callback */ +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_RCC_CSSCallback(); +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Clear RCC CSS pending bit */ +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_CLEAR_IT(RCC_IT_CSS); +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief RCC Clock Security System interrupt callback. +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval none +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __weak void HAL_RCC_CSSCallback(void) +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* NOTE : This function should not be modified, when the callback is needed, +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** the HAL_RCC_CSSCallback should be implemented in the user file +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 25 + + +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @} +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @} +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Private function prototypes -----------------------------------------------*/ +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** @addtogroup RCC_Private_Functions +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @{ +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /** +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @brief Compute SYSCLK frequency based on PLL SYSCLK source. +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** * @retval SYSCLK frequency +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** static uint32_t RCC_GetSysClockFreqFromPLLSource(void) +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 28 .loc 1 1361 1 view -0 + 29 .cfi_startproc + 30 @ args = 0, pretend = 0, frame = 0 + 31 @ frame_needed = 0, uses_anonymous_args = 0 + 32 @ link register save eliminated. +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t pllvco, pllsource, pllr, pllm; + 33 .loc 1 1362 3 view .LVU1 +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t sysclockfreq; + 34 .loc 1 1363 3 view .LVU2 +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* PLL_VCO = (HSE_VALUE or HSI_VALUE/ PLLM) * PLLN +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SYSCLK = PLL_VCO / PLLR +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** */ +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); + 35 .loc 1 1368 3 view .LVU3 + 36 .loc 1 1368 15 is_stmt 0 view .LVU4 + 37 0000 124B ldr r3, .L5 + 38 0002 DA68 ldr r2, [r3, #12] + 39 .loc 1 1368 13 view .LVU5 + 40 0004 02F00302 and r2, r2, #3 + 41 .LVL0: +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + 42 .loc 1 1369 3 is_stmt 1 view .LVU6 + 43 .loc 1 1369 11 is_stmt 0 view .LVU7 + 44 0008 DB68 ldr r3, [r3, #12] + 45 .loc 1 1369 52 view .LVU8 + 46 000a C3F30313 ubfx r3, r3, #4, #4 + 47 .loc 1 1369 8 view .LVU9 + 48 000e 0133 adds r3, r3, #1 + 49 .LVL1: +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** switch (pllsource) + 50 .loc 1 1371 3 is_stmt 1 view .LVU10 + 51 0010 032A cmp r2, #3 + 52 0012 11D0 beq .L4 +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllvco = (HSE_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos + ARM GAS /tmp/ccu53ZgF.s page 26 + + +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** default: +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllvco = (HSI_VALUE / pllm) * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos + 53 .loc 1 1379 5 view .LVU11 + 54 .loc 1 1379 25 is_stmt 0 view .LVU12 + 55 0014 0E48 ldr r0, .L5+4 + 56 0016 B0FBF3F0 udiv r0, r0, r3 + 57 .loc 1 1379 36 view .LVU13 + 58 001a 0C4B ldr r3, .L5 + 59 .LVL2: + 60 .loc 1 1379 36 view .LVU14 + 61 001c DB68 ldr r3, [r3, #12] + 62 .loc 1 1379 77 view .LVU15 + 63 001e C3F30623 ubfx r3, r3, #8, #7 + 64 .loc 1 1379 12 view .LVU16 + 65 0022 03FB00F0 mul r0, r3, r0 + 66 .LVL3: +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 67 .loc 1 1380 5 is_stmt 1 view .LVU17 + 68 .L3: +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; + 69 .loc 1 1383 3 view .LVU18 + 70 .loc 1 1383 12 is_stmt 0 view .LVU19 + 71 0026 094B ldr r3, .L5 + 72 0028 DB68 ldr r3, [r3, #12] + 73 .loc 1 1383 53 view .LVU20 + 74 002a C3F34163 ubfx r3, r3, #25, #2 + 75 .loc 1 1383 78 view .LVU21 + 76 002e 0133 adds r3, r3, #1 + 77 .loc 1 1383 8 view .LVU22 + 78 0030 5B00 lsls r3, r3, #1 + 79 .LVL4: +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; + 80 .loc 1 1384 3 is_stmt 1 view .LVU23 +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return sysclockfreq; + 81 .loc 1 1386 3 view .LVU24 +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 82 .loc 1 1387 1 is_stmt 0 view .LVU25 + 83 0032 B0FBF3F0 udiv r0, r0, r3 + 84 .LVL5: + 85 .loc 1 1387 1 view .LVU26 + 86 0036 7047 bx lr + 87 .LVL6: + 88 .L4: +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 89 .loc 1 1374 5 is_stmt 1 view .LVU27 +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 90 .loc 1 1374 25 is_stmt 0 view .LVU28 + 91 0038 0648 ldr r0, .L5+8 + 92 003a B0FBF3F0 udiv r0, r0, r3 +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 93 .loc 1 1374 36 view .LVU29 + ARM GAS /tmp/ccu53ZgF.s page 27 + + + 94 003e 034B ldr r3, .L5 + 95 .LVL7: +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 96 .loc 1 1374 36 view .LVU30 + 97 0040 DB68 ldr r3, [r3, #12] +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 98 .loc 1 1374 77 view .LVU31 + 99 0042 C3F30623 ubfx r3, r3, #8, #7 +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 100 .loc 1 1374 12 view .LVU32 + 101 0046 03FB00F0 mul r0, r3, r0 + 102 .LVL8: +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 103 .loc 1 1375 5 is_stmt 1 view .LVU33 + 104 004a ECE7 b .L3 + 105 .L6: + 106 .align 2 + 107 .L5: + 108 004c 00100240 .word 1073876992 + 109 0050 0024F400 .word 16000000 + 110 0054 0080BB00 .word 12288000 + 111 .cfi_endproc + 112 .LFE344: + 114 .section .text.HAL_RCC_DeInit,"ax",%progbits + 115 .align 1 + 116 .global HAL_RCC_DeInit + 117 .syntax unified + 118 .thumb + 119 .thumb_func + 121 HAL_RCC_DeInit: + 122 .LFB329: + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 123 .loc 1 220 1 view -0 + 124 .cfi_startproc + 125 @ args = 0, pretend = 0, frame = 0 + 126 @ frame_needed = 0, uses_anonymous_args = 0 + 127 0000 38B5 push {r3, r4, r5, lr} + 128 .LCFI0: + 129 .cfi_def_cfa_offset 16 + 130 .cfi_offset 3, -16 + 131 .cfi_offset 4, -12 + 132 .cfi_offset 5, -8 + 133 .cfi_offset 14, -4 + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 134 .loc 1 221 3 view .LVU35 + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 135 .loc 1 224 3 view .LVU36 + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 136 .loc 1 224 15 is_stmt 0 view .LVU37 + 137 0002 FFF7FEFF bl HAL_GetTick + 138 .LVL9: + 139 0006 0446 mov r4, r0 + 140 .LVL10: + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 141 .loc 1 227 3 is_stmt 1 view .LVU38 + 142 0008 2C4A ldr r2, .L24 + 143 000a 1368 ldr r3, [r2] + ARM GAS /tmp/ccu53ZgF.s page 28 + + + 144 000c 43F48073 orr r3, r3, #256 + 145 0010 1360 str r3, [r2] + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 146 .loc 1 230 3 view .LVU39 + 147 .LVL11: + 148 .L8: + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 149 .loc 1 230 43 view .LVU40 + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 150 .loc 1 230 10 is_stmt 0 view .LVU41 + 151 0012 2A4B ldr r3, .L24 + 152 0014 1B68 ldr r3, [r3] + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 153 .loc 1 230 43 view .LVU42 + 154 0016 13F4806F tst r3, #1024 + 155 001a 07D1 bne .L20 + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 156 .loc 1 232 5 is_stmt 1 view .LVU43 + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 157 .loc 1 232 10 is_stmt 0 view .LVU44 + 158 001c FFF7FEFF bl HAL_GetTick + 159 .LVL12: + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 160 .loc 1 232 24 view .LVU45 + 161 0020 001B subs r0, r0, r4 + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 162 .loc 1 232 8 view .LVU46 + 163 0022 0228 cmp r0, #2 + 164 0024 F5D9 bls .L8 + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 165 .loc 1 234 14 view .LVU47 + 166 0026 0324 movs r4, #3 + 167 .LVL13: + 168 .L9: + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 169 .loc 1 296 1 view .LVU48 + 170 0028 2046 mov r0, r4 + 171 002a 38BD pop {r3, r4, r5, pc} + 172 .LVL14: + 173 .L20: + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 174 .loc 1 239 3 is_stmt 1 view .LVU49 + 175 002c 234D ldr r5, .L24 + 176 002e 6B68 ldr r3, [r5, #4] + 177 0030 43F08043 orr r3, r3, #1073741824 + 178 0034 6B60 str r3, [r5, #4] + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 179 .loc 1 242 3 view .LVU50 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 180 .loc 1 242 15 is_stmt 0 view .LVU51 + 181 0036 FFF7FEFF bl HAL_GetTick + 182 .LVL15: + 183 003a 0446 mov r4, r0 + 184 .LVL16: + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 185 .loc 1 245 3 is_stmt 1 view .LVU52 + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 29 + + + 186 .loc 1 245 13 is_stmt 0 view .LVU53 + 187 003c 0123 movs r3, #1 + 188 003e AB60 str r3, [r5, #8] + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 189 .loc 1 248 3 is_stmt 1 view .LVU54 + 190 .LVL17: + 191 .L11: + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 192 .loc 1 248 44 view .LVU55 + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 193 .loc 1 248 10 is_stmt 0 view .LVU56 + 194 0040 1E4B ldr r3, .L24 + 195 0042 9B68 ldr r3, [r3, #8] + 196 0044 03F00C03 and r3, r3, #12 + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 197 .loc 1 248 44 view .LVU57 + 198 0048 042B cmp r3, #4 + 199 004a 08D0 beq .L21 + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 200 .loc 1 250 5 is_stmt 1 view .LVU58 + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 201 .loc 1 250 10 is_stmt 0 view .LVU59 + 202 004c FFF7FEFF bl HAL_GetTick + 203 .LVL18: + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 204 .loc 1 250 24 view .LVU60 + 205 0050 001B subs r0, r0, r4 + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 206 .loc 1 250 8 view .LVU61 + 207 0052 41F28833 movw r3, #5000 + 208 0056 9842 cmp r0, r3 + 209 0058 F2D9 bls .L11 + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 210 .loc 1 252 14 view .LVU62 + 211 005a 0324 movs r4, #3 + 212 .LVL19: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 213 .loc 1 252 14 view .LVU63 + 214 005c E4E7 b .L9 + 215 .LVL20: + 216 .L21: + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 217 .loc 1 257 3 is_stmt 1 view .LVU64 + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 218 .loc 1 257 19 is_stmt 0 view .LVU65 + 219 005e 184B ldr r3, .L24+4 + 220 0060 184A ldr r2, .L24+8 + 221 0062 1A60 str r2, [r3] + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 222 .loc 1 260 3 is_stmt 1 view .LVU66 + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 223 .loc 1 260 7 is_stmt 0 view .LVU67 + 224 0064 184B ldr r3, .L24+12 + 225 0066 1868 ldr r0, [r3] + 226 0068 FFF7FEFF bl HAL_InitTick + 227 .LVL21: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 30 + + + 228 .loc 1 260 6 view .LVU68 + 229 006c 0446 mov r4, r0 + 230 .LVL22: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 231 .loc 1 260 6 view .LVU69 + 232 006e 08B1 cbz r0, .L22 + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 233 .loc 1 262 12 view .LVU70 + 234 0070 0124 movs r4, #1 + 235 0072 D9E7 b .L9 + 236 .L22: + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 237 .loc 1 266 3 is_stmt 1 view .LVU71 + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 238 .loc 1 266 11 is_stmt 0 view .LVU72 + 239 0074 114B ldr r3, .L24 + 240 0076 4FF48072 mov r2, #256 + 241 007a 1A60 str r2, [r3] + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 242 .loc 1 269 3 is_stmt 1 view .LVU73 + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 243 .loc 1 269 11 is_stmt 0 view .LVU74 + 244 007c 1A60 str r2, [r3] + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 245 .loc 1 272 3 is_stmt 1 view .LVU75 + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 246 .loc 1 272 15 is_stmt 0 view .LVU76 + 247 007e FFF7FEFF bl HAL_GetTick + 248 .LVL23: + 249 0082 0546 mov r5, r0 + 250 .LVL24: + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 251 .loc 1 275 3 is_stmt 1 view .LVU77 + 252 .L13: + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 253 .loc 1 275 43 view .LVU78 + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 254 .loc 1 275 10 is_stmt 0 view .LVU79 + 255 0084 0D4B ldr r3, .L24 + 256 0086 1B68 ldr r3, [r3] + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 257 .loc 1 275 43 view .LVU80 + 258 0088 13F0007F tst r3, #33554432 + 259 008c 06D0 beq .L23 + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 260 .loc 1 277 5 is_stmt 1 view .LVU81 + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 261 .loc 1 277 10 is_stmt 0 view .LVU82 + 262 008e FFF7FEFF bl HAL_GetTick + 263 .LVL25: + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 264 .loc 1 277 24 view .LVU83 + 265 0092 401B subs r0, r0, r5 + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 266 .loc 1 277 8 view .LVU84 + 267 0094 0228 cmp r0, #2 + 268 0096 F5D9 bls .L13 + ARM GAS /tmp/ccu53ZgF.s page 31 + + + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 269 .loc 1 279 14 view .LVU85 + 270 0098 0324 movs r4, #3 + 271 009a C5E7 b .L9 + 272 .L23: + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 273 .loc 1 284 3 is_stmt 1 view .LVU86 + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 274 .loc 1 284 16 is_stmt 0 view .LVU87 + 275 009c 074B ldr r3, .L24 + 276 009e 4FF48052 mov r2, #4096 + 277 00a2 DA60 str r2, [r3, #12] + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 278 .loc 1 287 3 is_stmt 1 view .LVU88 + 279 00a4 0022 movs r2, #0 + 280 00a6 9A61 str r2, [r3, #24] + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 281 .loc 1 290 3 view .LVU89 + 282 00a8 4FF0FF32 mov r2, #-1 + 283 00ac 1A62 str r2, [r3, #32] + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 284 .loc 1 293 3 view .LVU90 + 285 00ae D3F89420 ldr r2, [r3, #148] + 286 00b2 42F40002 orr r2, r2, #8388608 + 287 00b6 C3F89420 str r2, [r3, #148] + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 288 .loc 1 295 3 view .LVU91 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 289 .loc 1 295 10 is_stmt 0 view .LVU92 + 290 00ba B5E7 b .L9 + 291 .L25: + 292 .align 2 + 293 .L24: + 294 00bc 00100240 .word 1073876992 + 295 00c0 00000000 .word SystemCoreClock + 296 00c4 0024F400 .word 16000000 + 297 00c8 00000000 .word uwTickPrio + 298 .cfi_endproc + 299 .LFE329: + 301 .section .text.HAL_RCC_OscConfig,"ax",%progbits + 302 .align 1 + 303 .global HAL_RCC_OscConfig + 304 .syntax unified + 305 .thumb + 306 .thumb_func + 308 HAL_RCC_OscConfig: + 309 .LVL26: + 310 .LFB330: + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 311 .loc 1 313 1 is_stmt 1 view -0 + 312 .cfi_startproc + 313 @ args = 0, pretend = 0, frame = 8 + 314 @ frame_needed = 0, uses_anonymous_args = 0 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t temp_sysclksrc; + 315 .loc 1 314 3 view .LVU94 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t temp_pllckcfg; + 316 .loc 1 315 3 view .LVU95 + ARM GAS /tmp/ccu53ZgF.s page 32 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 317 .loc 1 316 3 view .LVU96 + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 318 .loc 1 319 3 view .LVU97 + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 319 .loc 1 319 6 is_stmt 0 view .LVU98 + 320 0000 0028 cmp r0, #0 + 321 0002 00F05482 beq .L84 + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 322 .loc 1 313 1 view .LVU99 + 323 0006 70B5 push {r4, r5, r6, lr} + 324 .LCFI1: + 325 .cfi_def_cfa_offset 16 + 326 .cfi_offset 4, -16 + 327 .cfi_offset 5, -12 + 328 .cfi_offset 6, -8 + 329 .cfi_offset 14, -4 + 330 0008 82B0 sub sp, sp, #8 + 331 .LCFI2: + 332 .cfi_def_cfa_offset 24 + 333 000a 0446 mov r4, r0 + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 334 .loc 1 325 3 is_stmt 1 view .LVU100 + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 335 .loc 1 328 3 view .LVU101 + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 336 .loc 1 328 26 is_stmt 0 view .LVU102 + 337 000c 0368 ldr r3, [r0] + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 338 .loc 1 328 6 view .LVU103 + 339 000e 13F0010F tst r3, #1 + 340 0012 37D0 beq .L28 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 341 .loc 1 331 5 is_stmt 1 view .LVU104 + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 342 .loc 1 333 5 view .LVU105 + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 343 .loc 1 333 22 is_stmt 0 view .LVU106 + 344 0014 A44A ldr r2, .L130 + 345 0016 9368 ldr r3, [r2, #8] + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 346 .loc 1 333 20 view .LVU107 + 347 0018 03F00C03 and r3, r3, #12 + 348 .LVL27: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 349 .loc 1 334 5 is_stmt 1 view .LVU108 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 350 .loc 1 334 21 is_stmt 0 view .LVU109 + 351 001c D268 ldr r2, [r2, #12] + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 352 .loc 1 334 19 view .LVU110 + 353 001e 02F00302 and r2, r2, #3 + 354 .LVL28: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 355 .loc 1 337 5 is_stmt 1 view .LVU111 + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 356 .loc 1 337 8 is_stmt 0 view .LVU112 + ARM GAS /tmp/ccu53ZgF.s page 33 + + + 357 0022 0C2B cmp r3, #12 + 358 0024 23D0 beq .L115 + 359 .L29: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 360 .loc 1 337 88 discriminator 3 view .LVU113 + 361 0026 082B cmp r3, #8 + 362 0028 23D0 beq .L30 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 363 .loc 1 347 7 is_stmt 1 view .LVU114 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 364 .loc 1 347 7 view .LVU115 + 365 002a 6368 ldr r3, [r4, #4] + 366 .LVL29: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 367 .loc 1 347 7 is_stmt 0 view .LVU116 + 368 002c B3F5803F cmp r3, #65536 + 369 0030 4ED0 beq .L116 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 370 .loc 1 347 7 is_stmt 1 discriminator 2 view .LVU117 + 371 0032 B3F5A02F cmp r3, #327680 + 372 0036 51D0 beq .L117 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 373 .loc 1 347 7 discriminator 5 view .LVU118 + 374 0038 9B4B ldr r3, .L130 + 375 003a 1A68 ldr r2, [r3] + 376 .LVL30: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 377 .loc 1 347 7 is_stmt 0 discriminator 5 view .LVU119 + 378 003c 22F48032 bic r2, r2, #65536 + 379 0040 1A60 str r2, [r3] + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 380 .loc 1 347 7 is_stmt 1 discriminator 5 view .LVU120 + 381 0042 1A68 ldr r2, [r3] + 382 0044 22F48022 bic r2, r2, #262144 + 383 0048 1A60 str r2, [r3] + 384 .L33: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 385 .loc 1 347 7 discriminator 7 view .LVU121 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 386 .loc 1 350 7 discriminator 7 view .LVU122 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 387 .loc 1 350 28 is_stmt 0 discriminator 7 view .LVU123 + 388 004a 6368 ldr r3, [r4, #4] + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 389 .loc 1 350 10 discriminator 7 view .LVU124 + 390 004c 002B cmp r3, #0 + 391 004e 52D0 beq .L35 + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 392 .loc 1 353 9 is_stmt 1 view .LVU125 + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 393 .loc 1 353 21 is_stmt 0 view .LVU126 + 394 0050 FFF7FEFF bl HAL_GetTick + 395 .LVL31: + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 396 .loc 1 353 21 view .LVU127 + 397 0054 0546 mov r5, r0 + 398 .LVL32: + ARM GAS /tmp/ccu53ZgF.s page 34 + + + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 399 .loc 1 356 9 is_stmt 1 view .LVU128 + 400 .L36: + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 401 .loc 1 356 49 view .LVU129 + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 402 .loc 1 356 16 is_stmt 0 view .LVU130 + 403 0056 944B ldr r3, .L130 + 404 0058 1B68 ldr r3, [r3] + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 405 .loc 1 356 49 view .LVU131 + 406 005a 13F4003F tst r3, #131072 + 407 005e 11D1 bne .L28 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 408 .loc 1 358 11 is_stmt 1 view .LVU132 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 409 .loc 1 358 16 is_stmt 0 view .LVU133 + 410 0060 FFF7FEFF bl HAL_GetTick + 411 .LVL33: + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 412 .loc 1 358 30 view .LVU134 + 413 0064 401B subs r0, r0, r5 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 414 .loc 1 358 14 view .LVU135 + 415 0066 6428 cmp r0, #100 + 416 0068 F5D9 bls .L36 + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 417 .loc 1 360 20 view .LVU136 + 418 006a 0320 movs r0, #3 + 419 006c 28E2 b .L27 + 420 .LVL34: + 421 .L115: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 422 .loc 1 337 47 discriminator 1 view .LVU137 + 423 006e 032A cmp r2, #3 + 424 0070 D9D1 bne .L29 + 425 .L30: + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 426 .loc 1 339 7 is_stmt 1 view .LVU138 + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 427 .loc 1 339 12 is_stmt 0 view .LVU139 + 428 0072 8D4B ldr r3, .L130 + 429 .LVL35: + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 430 .loc 1 339 12 view .LVU140 + 431 0074 1B68 ldr r3, [r3] + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 432 .loc 1 339 10 view .LVU141 + 433 0076 13F4003F tst r3, #131072 + 434 007a 03D0 beq .L28 + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 435 .loc 1 339 73 discriminator 1 view .LVU142 + 436 007c 6368 ldr r3, [r4, #4] + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 437 .loc 1 339 52 discriminator 1 view .LVU143 + 438 007e 002B cmp r3, #0 + 439 0080 00F01782 beq .L118 + ARM GAS /tmp/ccu53ZgF.s page 35 + + + 440 .LVL36: + 441 .L28: + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 442 .loc 1 381 3 is_stmt 1 view .LVU144 + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 443 .loc 1 381 26 is_stmt 0 view .LVU145 + 444 0084 2368 ldr r3, [r4] + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 445 .loc 1 381 6 view .LVU146 + 446 0086 13F0020F tst r3, #2 + 447 008a 5DD0 beq .L40 + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_HSI_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + 448 .loc 1 384 5 is_stmt 1 view .LVU147 + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 449 .loc 1 385 5 view .LVU148 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 450 .loc 1 388 5 view .LVU149 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 451 .loc 1 388 22 is_stmt 0 view .LVU150 + 452 008c 864A ldr r2, .L130 + 453 008e 9368 ldr r3, [r2, #8] + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** temp_pllckcfg = __HAL_RCC_GET_PLL_OSCSOURCE(); + 454 .loc 1 388 20 view .LVU151 + 455 0090 03F00C03 and r3, r3, #12 + 456 .LVL37: + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSI)) || (temp_sys + 457 .loc 1 389 5 is_stmt 1 view .LVU152 + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSI)) || (temp_sys + 458 .loc 1 389 21 is_stmt 0 view .LVU153 + 459 0094 D268 ldr r2, [r2, #12] + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if (((temp_sysclksrc == RCC_CFGR_SWS_PLL) && (temp_pllckcfg == RCC_PLLSOURCE_HSI)) || (temp_sys + 460 .loc 1 389 19 view .LVU154 + 461 0096 02F00302 and r2, r2, #3 + 462 .LVL38: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 463 .loc 1 390 5 is_stmt 1 view .LVU155 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 464 .loc 1 390 8 is_stmt 0 view .LVU156 + 465 009a 0C2B cmp r3, #12 + 466 009c 3AD0 beq .L119 + 467 .L41: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 468 .loc 1 390 88 discriminator 3 view .LVU157 + 469 009e 042B cmp r3, #4 + 470 00a0 3AD0 beq .L42 + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 471 .loc 1 413 7 is_stmt 1 view .LVU158 + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 472 .loc 1 413 28 is_stmt 0 view .LVU159 + 473 00a2 E368 ldr r3, [r4, #12] + 474 .LVL39: + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 475 .loc 1 413 10 view .LVU160 + 476 00a4 002B cmp r3, #0 + 477 00a6 75D0 beq .L45 + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 478 .loc 1 416 9 is_stmt 1 view .LVU161 + ARM GAS /tmp/ccu53ZgF.s page 36 + + + 479 00a8 7F4A ldr r2, .L130 + 480 .LVL40: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 481 .loc 1 416 9 is_stmt 0 view .LVU162 + 482 00aa 1368 ldr r3, [r2] + 483 00ac 43F48073 orr r3, r3, #256 + 484 00b0 1360 str r3, [r2] + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 485 .loc 1 419 9 is_stmt 1 view .LVU163 + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 486 .loc 1 419 21 is_stmt 0 view .LVU164 + 487 00b2 FFF7FEFF bl HAL_GetTick + 488 .LVL41: + 489 00b6 0546 mov r5, r0 + 490 .LVL42: + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 491 .loc 1 422 9 is_stmt 1 view .LVU165 + 492 .L46: + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 493 .loc 1 422 49 view .LVU166 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 494 .loc 1 422 16 is_stmt 0 view .LVU167 + 495 00b8 7B4B ldr r3, .L130 + 496 00ba 1B68 ldr r3, [r3] + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 497 .loc 1 422 49 view .LVU168 + 498 00bc 13F4806F tst r3, #1024 + 499 00c0 5FD1 bne .L120 + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 500 .loc 1 424 11 is_stmt 1 view .LVU169 + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 501 .loc 1 424 16 is_stmt 0 view .LVU170 + 502 00c2 FFF7FEFF bl HAL_GetTick + 503 .LVL43: + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 504 .loc 1 424 30 view .LVU171 + 505 00c6 401B subs r0, r0, r5 + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 506 .loc 1 424 14 view .LVU172 + 507 00c8 0228 cmp r0, #2 + 508 00ca F5D9 bls .L46 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 509 .loc 1 426 20 view .LVU173 + 510 00cc 0320 movs r0, #3 + 511 00ce F7E1 b .L27 + 512 .LVL44: + 513 .L116: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 514 .loc 1 347 7 is_stmt 1 discriminator 1 view .LVU174 + 515 00d0 754A ldr r2, .L130 + 516 .LVL45: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 517 .loc 1 347 7 is_stmt 0 discriminator 1 view .LVU175 + 518 00d2 1368 ldr r3, [r2] + 519 00d4 43F48033 orr r3, r3, #65536 + 520 00d8 1360 str r3, [r2] + 521 00da B6E7 b .L33 + ARM GAS /tmp/ccu53ZgF.s page 37 + + + 522 .LVL46: + 523 .L117: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 524 .loc 1 347 7 is_stmt 1 discriminator 4 view .LVU176 + 525 00dc 03F18043 add r3, r3, #1073741824 + 526 00e0 A3F53C33 sub r3, r3, #192512 + 527 00e4 1A68 ldr r2, [r3] + 528 .LVL47: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 529 .loc 1 347 7 is_stmt 0 discriminator 4 view .LVU177 + 530 00e6 42F48022 orr r2, r2, #262144 + 531 00ea 1A60 str r2, [r3] + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 532 .loc 1 347 7 is_stmt 1 discriminator 4 view .LVU178 + 533 00ec 1A68 ldr r2, [r3] + 534 00ee 42F48032 orr r2, r2, #65536 + 535 00f2 1A60 str r2, [r3] + 536 00f4 A9E7 b .L33 + 537 .L35: + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 538 .loc 1 367 9 view .LVU179 + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 539 .loc 1 367 21 is_stmt 0 view .LVU180 + 540 00f6 FFF7FEFF bl HAL_GetTick + 541 .LVL48: + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 542 .loc 1 367 21 view .LVU181 + 543 00fa 0546 mov r5, r0 + 544 .LVL49: + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 545 .loc 1 370 9 is_stmt 1 view .LVU182 + 546 .L38: + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 547 .loc 1 370 49 view .LVU183 + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 548 .loc 1 370 16 is_stmt 0 view .LVU184 + 549 00fc 6A4B ldr r3, .L130 + 550 00fe 1B68 ldr r3, [r3] + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 551 .loc 1 370 49 view .LVU185 + 552 0100 13F4003F tst r3, #131072 + 553 0104 BED0 beq .L28 + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 554 .loc 1 372 11 is_stmt 1 view .LVU186 + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 555 .loc 1 372 16 is_stmt 0 view .LVU187 + 556 0106 FFF7FEFF bl HAL_GetTick + 557 .LVL50: + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 558 .loc 1 372 30 view .LVU188 + 559 010a 401B subs r0, r0, r5 + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 560 .loc 1 372 14 view .LVU189 + 561 010c 6428 cmp r0, #100 + 562 010e F5D9 bls .L38 + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 563 .loc 1 374 20 view .LVU190 + ARM GAS /tmp/ccu53ZgF.s page 38 + + + 564 0110 0320 movs r0, #3 + 565 0112 D5E1 b .L27 + 566 .LVL51: + 567 .L119: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 568 .loc 1 390 47 discriminator 1 view .LVU191 + 569 0114 022A cmp r2, #2 + 570 0116 C2D1 bne .L41 + 571 .L42: + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 572 .loc 1 393 7 is_stmt 1 view .LVU192 + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 573 .loc 1 393 12 is_stmt 0 view .LVU193 + 574 0118 634B ldr r3, .L130 + 575 .LVL52: + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 576 .loc 1 393 12 view .LVU194 + 577 011a 1B68 ldr r3, [r3] + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 578 .loc 1 393 10 view .LVU195 + 579 011c 13F4806F tst r3, #1024 + 580 0120 03D0 beq .L44 + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 581 .loc 1 393 73 discriminator 1 view .LVU196 + 582 0122 E368 ldr r3, [r4, #12] + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 583 .loc 1 393 52 discriminator 1 view .LVU197 + 584 0124 002B cmp r3, #0 + 585 0126 00F0C681 beq .L88 + 586 .L44: + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 587 .loc 1 401 9 is_stmt 1 view .LVU198 + 588 012a 5F4A ldr r2, .L130 + 589 .LVL53: + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 590 .loc 1 401 9 is_stmt 0 view .LVU199 + 591 012c 5368 ldr r3, [r2, #4] + 592 012e 23F0FE43 bic r3, r3, #2130706432 + 593 0132 2169 ldr r1, [r4, #16] + 594 0134 43EA0163 orr r3, r3, r1, lsl #24 + 595 0138 5360 str r3, [r2, #4] + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 596 .loc 1 404 9 is_stmt 1 view .LVU200 + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 597 .loc 1 404 13 is_stmt 0 view .LVU201 + 598 013a 5C4B ldr r3, .L130+4 + 599 013c 1868 ldr r0, [r3] + 600 013e FFF7FEFF bl HAL_InitTick + 601 .LVL54: + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 602 .loc 1 404 12 view .LVU202 + 603 0142 0028 cmp r0, #0 + 604 0144 40F0B981 bne .L121 + 605 .LVL55: + 606 .L40: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 607 .loc 1 453 3 is_stmt 1 view .LVU203 + ARM GAS /tmp/ccu53ZgF.s page 39 + + + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 608 .loc 1 453 26 is_stmt 0 view .LVU204 + 609 0148 2368 ldr r3, [r4] + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 610 .loc 1 453 6 view .LVU205 + 611 014a 13F0080F tst r3, #8 + 612 014e 4CD0 beq .L50 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 613 .loc 1 456 5 is_stmt 1 view .LVU206 + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 614 .loc 1 459 5 view .LVU207 + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 615 .loc 1 459 25 is_stmt 0 view .LVU208 + 616 0150 6369 ldr r3, [r4, #20] + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 617 .loc 1 459 7 view .LVU209 + 618 0152 9BB3 cbz r3, .L51 + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 619 .loc 1 462 7 is_stmt 1 view .LVU210 + 620 0154 544A ldr r2, .L130 + 621 0156 D2F89430 ldr r3, [r2, #148] + 622 015a 43F00103 orr r3, r3, #1 + 623 015e C2F89430 str r3, [r2, #148] + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 624 .loc 1 465 7 view .LVU211 + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 625 .loc 1 465 19 is_stmt 0 view .LVU212 + 626 0162 FFF7FEFF bl HAL_GetTick + 627 .LVL56: + 628 0166 0546 mov r5, r0 + 629 .LVL57: + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 630 .loc 1 468 7 is_stmt 1 view .LVU213 + 631 .L52: + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 632 .loc 1 468 49 view .LVU214 + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 633 .loc 1 468 14 is_stmt 0 view .LVU215 + 634 0168 4F4B ldr r3, .L130 + 635 016a D3F89430 ldr r3, [r3, #148] + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 636 .loc 1 468 49 view .LVU216 + 637 016e 13F0020F tst r3, #2 + 638 0172 3AD1 bne .L50 + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 639 .loc 1 470 9 is_stmt 1 view .LVU217 + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 640 .loc 1 470 14 is_stmt 0 view .LVU218 + 641 0174 FFF7FEFF bl HAL_GetTick + 642 .LVL58: + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 643 .loc 1 470 28 view .LVU219 + 644 0178 401B subs r0, r0, r5 + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 645 .loc 1 470 12 view .LVU220 + 646 017a 0228 cmp r0, #2 + 647 017c F4D9 bls .L52 + ARM GAS /tmp/ccu53ZgF.s page 40 + + + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 648 .loc 1 472 18 view .LVU221 + 649 017e 0320 movs r0, #3 + 650 0180 9EE1 b .L27 + 651 .LVL59: + 652 .L120: + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 653 .loc 1 431 9 is_stmt 1 view .LVU222 + 654 0182 494A ldr r2, .L130 + 655 0184 5368 ldr r3, [r2, #4] + 656 0186 23F0FE43 bic r3, r3, #2130706432 + 657 018a 2169 ldr r1, [r4, #16] + 658 018c 43EA0163 orr r3, r3, r1, lsl #24 + 659 0190 5360 str r3, [r2, #4] + 660 0192 D9E7 b .L40 + 661 .LVL60: + 662 .L45: + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 663 .loc 1 436 9 view .LVU223 + 664 0194 444A ldr r2, .L130 + 665 .LVL61: + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 666 .loc 1 436 9 is_stmt 0 view .LVU224 + 667 0196 1368 ldr r3, [r2] + 668 0198 23F48073 bic r3, r3, #256 + 669 019c 1360 str r3, [r2] + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 670 .loc 1 439 9 is_stmt 1 view .LVU225 + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 671 .loc 1 439 21 is_stmt 0 view .LVU226 + 672 019e FFF7FEFF bl HAL_GetTick + 673 .LVL62: + 674 01a2 0546 mov r5, r0 + 675 .LVL63: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 676 .loc 1 442 9 is_stmt 1 view .LVU227 + 677 .L48: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 678 .loc 1 442 49 view .LVU228 + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 679 .loc 1 442 16 is_stmt 0 view .LVU229 + 680 01a4 404B ldr r3, .L130 + 681 01a6 1B68 ldr r3, [r3] + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 682 .loc 1 442 49 view .LVU230 + 683 01a8 13F4806F tst r3, #1024 + 684 01ac CCD0 beq .L40 + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 685 .loc 1 444 11 is_stmt 1 view .LVU231 + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 686 .loc 1 444 16 is_stmt 0 view .LVU232 + 687 01ae FFF7FEFF bl HAL_GetTick + 688 .LVL64: + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 689 .loc 1 444 30 view .LVU233 + 690 01b2 401B subs r0, r0, r5 + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 41 + + + 691 .loc 1 444 14 view .LVU234 + 692 01b4 0228 cmp r0, #2 + 693 01b6 F5D9 bls .L48 + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 694 .loc 1 446 20 view .LVU235 + 695 01b8 0320 movs r0, #3 + 696 01ba 81E1 b .L27 + 697 .LVL65: + 698 .L51: + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 699 .loc 1 479 7 is_stmt 1 view .LVU236 + 700 01bc 3A4A ldr r2, .L130 + 701 01be D2F89430 ldr r3, [r2, #148] + 702 01c2 23F00103 bic r3, r3, #1 + 703 01c6 C2F89430 str r3, [r2, #148] + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 704 .loc 1 482 7 view .LVU237 + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 705 .loc 1 482 19 is_stmt 0 view .LVU238 + 706 01ca FFF7FEFF bl HAL_GetTick + 707 .LVL66: + 708 01ce 0546 mov r5, r0 + 709 .LVL67: + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 710 .loc 1 485 7 is_stmt 1 view .LVU239 + 711 .L54: + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 712 .loc 1 485 48 view .LVU240 + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 713 .loc 1 485 13 is_stmt 0 view .LVU241 + 714 01d0 354B ldr r3, .L130 + 715 01d2 D3F89430 ldr r3, [r3, #148] + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 716 .loc 1 485 48 view .LVU242 + 717 01d6 13F0020F tst r3, #2 + 718 01da 06D0 beq .L50 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 719 .loc 1 487 9 is_stmt 1 view .LVU243 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 720 .loc 1 487 13 is_stmt 0 view .LVU244 + 721 01dc FFF7FEFF bl HAL_GetTick + 722 .LVL68: + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 723 .loc 1 487 27 view .LVU245 + 724 01e0 401B subs r0, r0, r5 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 725 .loc 1 487 11 view .LVU246 + 726 01e2 0228 cmp r0, #2 + 727 01e4 F4D9 bls .L54 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 728 .loc 1 489 18 view .LVU247 + 729 01e6 0320 movs r0, #3 + 730 01e8 6AE1 b .L27 + 731 .LVL69: + 732 .L50: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 733 .loc 1 495 3 is_stmt 1 view .LVU248 + ARM GAS /tmp/ccu53ZgF.s page 42 + + + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 734 .loc 1 495 26 is_stmt 0 view .LVU249 + 735 01ea 2368 ldr r3, [r4] + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 736 .loc 1 495 6 view .LVU250 + 737 01ec 13F0040F tst r3, #4 + 738 01f0 00F08180 beq .L56 + 739 .LBB2: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 740 .loc 1 497 5 is_stmt 1 view .LVU251 + 741 .LVL70: + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 742 .loc 1 500 5 view .LVU252 + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 743 .loc 1 504 5 view .LVU253 + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 744 .loc 1 504 9 is_stmt 0 view .LVU254 + 745 01f4 2C4B ldr r3, .L130 + 746 01f6 9B6D ldr r3, [r3, #88] + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 747 .loc 1 504 41 view .LVU255 + 748 01f8 13F0805F tst r3, #268435456 + 749 01fc 36D1 bne .L94 + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 750 .loc 1 506 7 is_stmt 1 view .LVU256 + 751 .LBB3: + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 752 .loc 1 506 7 view .LVU257 + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 753 .loc 1 506 7 view .LVU258 + 754 01fe 2A4B ldr r3, .L130 + 755 0200 9A6D ldr r2, [r3, #88] + 756 0202 42F08052 orr r2, r2, #268435456 + 757 0206 9A65 str r2, [r3, #88] + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 758 .loc 1 506 7 view .LVU259 + 759 0208 9B6D ldr r3, [r3, #88] + 760 020a 03F08053 and r3, r3, #268435456 + 761 020e 0193 str r3, [sp, #4] + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 762 .loc 1 506 7 view .LVU260 + 763 0210 019B ldr r3, [sp, #4] + 764 .LBE3: + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pwrclkchanged = SET; + 765 .loc 1 506 7 view .LVU261 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 766 .loc 1 507 7 view .LVU262 + 767 .LVL71: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 768 .loc 1 507 21 is_stmt 0 view .LVU263 + 769 0212 0125 movs r5, #1 + 770 .LVL72: + 771 .L57: + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 772 .loc 1 510 5 is_stmt 1 view .LVU264 + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 773 .loc 1 510 9 is_stmt 0 view .LVU265 + ARM GAS /tmp/ccu53ZgF.s page 43 + + + 774 0214 264B ldr r3, .L130+8 + 775 0216 1B68 ldr r3, [r3] + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 776 .loc 1 510 8 view .LVU266 + 777 0218 13F4807F tst r3, #256 + 778 021c 28D0 beq .L122 + 779 .L58: + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 780 .loc 1 528 5 is_stmt 1 view .LVU267 + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 781 .loc 1 528 5 view .LVU268 + 782 021e A368 ldr r3, [r4, #8] + 783 0220 012B cmp r3, #1 + 784 0222 39D0 beq .L123 + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 785 .loc 1 528 5 discriminator 2 view .LVU269 + 786 0224 052B cmp r3, #5 + 787 0226 45D0 beq .L124 + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 788 .loc 1 528 5 discriminator 5 view .LVU270 + 789 0228 1F4B ldr r3, .L130 + 790 022a D3F89020 ldr r2, [r3, #144] + 791 022e 22F00102 bic r2, r2, #1 + 792 0232 C3F89020 str r2, [r3, #144] + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 793 .loc 1 528 5 discriminator 5 view .LVU271 + 794 0236 D3F89020 ldr r2, [r3, #144] + 795 023a 22F00402 bic r2, r2, #4 + 796 023e C3F89020 str r2, [r3, #144] + 797 .L62: + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 798 .loc 1 528 5 discriminator 7 view .LVU272 + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 799 .loc 1 531 5 discriminator 7 view .LVU273 + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 800 .loc 1 531 26 is_stmt 0 discriminator 7 view .LVU274 + 801 0242 A368 ldr r3, [r4, #8] + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 802 .loc 1 531 8 discriminator 7 view .LVU275 + 803 0244 002B cmp r3, #0 + 804 0246 43D0 beq .L64 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 805 .loc 1 534 7 is_stmt 1 view .LVU276 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 806 .loc 1 534 19 is_stmt 0 view .LVU277 + 807 0248 FFF7FEFF bl HAL_GetTick + 808 .LVL73: + 809 024c 0646 mov r6, r0 + 810 .LVL74: + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 811 .loc 1 537 7 is_stmt 1 view .LVU278 + 812 .L65: + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 813 .loc 1 537 51 view .LVU279 + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 814 .loc 1 537 14 is_stmt 0 view .LVU280 + 815 024e 164B ldr r3, .L130 + ARM GAS /tmp/ccu53ZgF.s page 44 + + + 816 0250 D3F89030 ldr r3, [r3, #144] + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 817 .loc 1 537 51 view .LVU281 + 818 0254 13F0020F tst r3, #2 + 819 0258 4CD1 bne .L67 + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 820 .loc 1 539 9 is_stmt 1 view .LVU282 + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 821 .loc 1 539 13 is_stmt 0 view .LVU283 + 822 025a FFF7FEFF bl HAL_GetTick + 823 .LVL75: + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 824 .loc 1 539 27 view .LVU284 + 825 025e 801B subs r0, r0, r6 + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 826 .loc 1 539 11 view .LVU285 + 827 0260 41F28833 movw r3, #5000 + 828 0264 9842 cmp r0, r3 + 829 0266 F2D9 bls .L65 + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 830 .loc 1 541 18 view .LVU286 + 831 0268 0320 movs r0, #3 + 832 026a 29E1 b .L27 + 833 .LVL76: + 834 .L94: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 835 .loc 1 497 22 view .LVU287 + 836 026c 0025 movs r5, #0 + 837 026e D1E7 b .L57 + 838 .LVL77: + 839 .L122: + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 840 .loc 1 513 7 is_stmt 1 view .LVU288 + 841 0270 0F4A ldr r2, .L130+8 + 842 0272 1368 ldr r3, [r2] + 843 0274 43F48073 orr r3, r3, #256 + 844 0278 1360 str r3, [r2] + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 845 .loc 1 516 7 view .LVU289 + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 846 .loc 1 516 19 is_stmt 0 view .LVU290 + 847 027a FFF7FEFF bl HAL_GetTick + 848 .LVL78: + 849 027e 0646 mov r6, r0 + 850 .LVL79: + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 851 .loc 1 518 7 is_stmt 1 view .LVU291 + 852 .L59: + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 853 .loc 1 518 14 view .LVU292 + 854 0280 0B4B ldr r3, .L130+8 + 855 0282 1B68 ldr r3, [r3] + 856 0284 13F4807F tst r3, #256 + 857 0288 C9D1 bne .L58 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 858 .loc 1 520 9 view .LVU293 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 45 + + + 859 .loc 1 520 14 is_stmt 0 view .LVU294 + 860 028a FFF7FEFF bl HAL_GetTick + 861 .LVL80: + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 862 .loc 1 520 28 view .LVU295 + 863 028e 801B subs r0, r0, r6 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 864 .loc 1 520 12 view .LVU296 + 865 0290 0228 cmp r0, #2 + 866 0292 F5D9 bls .L59 + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 867 .loc 1 522 18 view .LVU297 + 868 0294 0320 movs r0, #3 + 869 0296 13E1 b .L27 + 870 .LVL81: + 871 .L123: + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 872 .loc 1 528 5 is_stmt 1 discriminator 1 view .LVU298 + 873 0298 034A ldr r2, .L130 + 874 029a D2F89030 ldr r3, [r2, #144] + 875 029e 43F00103 orr r3, r3, #1 + 876 02a2 C2F89030 str r3, [r2, #144] + 877 02a6 CCE7 b .L62 + 878 .L131: + 879 .align 2 + 880 .L130: + 881 02a8 00100240 .word 1073876992 + 882 02ac 00000000 .word uwTickPrio + 883 02b0 00700040 .word 1073770496 + 884 .L124: + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 885 .loc 1 528 5 discriminator 4 view .LVU299 + 886 02b4 8A4B ldr r3, .L132 + 887 02b6 D3F89020 ldr r2, [r3, #144] + 888 02ba 42F00402 orr r2, r2, #4 + 889 02be C3F89020 str r2, [r3, #144] + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 890 .loc 1 528 5 discriminator 4 view .LVU300 + 891 02c2 D3F89020 ldr r2, [r3, #144] + 892 02c6 42F00102 orr r2, r2, #1 + 893 02ca C3F89020 str r2, [r3, #144] + 894 02ce B8E7 b .L62 + 895 .L64: + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 896 .loc 1 548 7 view .LVU301 + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 897 .loc 1 548 19 is_stmt 0 view .LVU302 + 898 02d0 FFF7FEFF bl HAL_GetTick + 899 .LVL82: + 900 02d4 0646 mov r6, r0 + 901 .LVL83: + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 902 .loc 1 551 7 is_stmt 1 view .LVU303 + 903 .L68: + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 904 .loc 1 551 51 view .LVU304 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 46 + + + 905 .loc 1 551 14 is_stmt 0 view .LVU305 + 906 02d6 824B ldr r3, .L132 + 907 02d8 D3F89030 ldr r3, [r3, #144] + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 908 .loc 1 551 51 view .LVU306 + 909 02dc 13F0020F tst r3, #2 + 910 02e0 08D0 beq .L67 + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 911 .loc 1 553 9 is_stmt 1 view .LVU307 + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 912 .loc 1 553 13 is_stmt 0 view .LVU308 + 913 02e2 FFF7FEFF bl HAL_GetTick + 914 .LVL84: + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 915 .loc 1 553 27 view .LVU309 + 916 02e6 801B subs r0, r0, r6 + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 917 .loc 1 553 11 view .LVU310 + 918 02e8 41F28833 movw r3, #5000 + 919 02ec 9842 cmp r0, r3 + 920 02ee F2D9 bls .L68 + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 921 .loc 1 555 18 view .LVU311 + 922 02f0 0320 movs r0, #3 + 923 02f2 E5E0 b .L27 + 924 .L67: + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 925 .loc 1 561 5 is_stmt 1 view .LVU312 + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 926 .loc 1 561 8 is_stmt 0 view .LVU313 + 927 02f4 E5B9 cbnz r5, .L125 + 928 .LVL85: + 929 .L56: + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 930 .loc 1 561 8 view .LVU314 + 931 .LBE2: + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 932 .loc 1 568 3 is_stmt 1 view .LVU315 + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 933 .loc 1 568 25 is_stmt 0 view .LVU316 + 934 02f6 2368 ldr r3, [r4] + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 935 .loc 1 568 5 view .LVU317 + 936 02f8 13F0200F tst r3, #32 + 937 02fc 35D0 beq .L70 + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 938 .loc 1 571 5 is_stmt 1 view .LVU318 + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 939 .loc 1 574 5 view .LVU319 + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 940 .loc 1 574 25 is_stmt 0 view .LVU320 + 941 02fe A369 ldr r3, [r4, #24] + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 942 .loc 1 574 7 view .LVU321 + 943 0300 E3B1 cbz r3, .L71 + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 944 .loc 1 577 7 is_stmt 1 view .LVU322 + ARM GAS /tmp/ccu53ZgF.s page 47 + + + 945 0302 774A ldr r2, .L132 + 946 0304 D2F89830 ldr r3, [r2, #152] + 947 0308 43F00103 orr r3, r3, #1 + 948 030c C2F89830 str r3, [r2, #152] + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 949 .loc 1 580 7 view .LVU323 + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 950 .loc 1 580 19 is_stmt 0 view .LVU324 + 951 0310 FFF7FEFF bl HAL_GetTick + 952 .LVL86: + 953 0314 0546 mov r5, r0 + 954 .LVL87: + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 955 .loc 1 583 7 is_stmt 1 view .LVU325 + 956 .L72: + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 957 .loc 1 583 54 view .LVU326 + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 958 .loc 1 583 13 is_stmt 0 view .LVU327 + 959 0316 724B ldr r3, .L132 + 960 0318 D3F89830 ldr r3, [r3, #152] + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 961 .loc 1 583 54 view .LVU328 + 962 031c 13F0020F tst r3, #2 + 963 0320 23D1 bne .L70 + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 964 .loc 1 585 9 is_stmt 1 view .LVU329 + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 965 .loc 1 585 13 is_stmt 0 view .LVU330 + 966 0322 FFF7FEFF bl HAL_GetTick + 967 .LVL88: + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 968 .loc 1 585 27 view .LVU331 + 969 0326 401B subs r0, r0, r5 + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 970 .loc 1 585 11 view .LVU332 + 971 0328 0228 cmp r0, #2 + 972 032a F4D9 bls .L72 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 973 .loc 1 587 18 view .LVU333 + 974 032c 0320 movs r0, #3 + 975 032e C7E0 b .L27 + 976 .LVL89: + 977 .L125: + 978 .LBB4: + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 979 .loc 1 563 7 is_stmt 1 view .LVU334 + 980 0330 6B4A ldr r2, .L132 + 981 0332 936D ldr r3, [r2, #88] + 982 0334 23F08053 bic r3, r3, #268435456 + 983 0338 9365 str r3, [r2, #88] + 984 033a DCE7 b .L56 + 985 .LVL90: + 986 .L71: + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 987 .loc 1 563 7 is_stmt 0 view .LVU335 + 988 .LBE4: + ARM GAS /tmp/ccu53ZgF.s page 48 + + + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 989 .loc 1 594 7 is_stmt 1 view .LVU336 + 990 033c 684A ldr r2, .L132 + 991 033e D2F89830 ldr r3, [r2, #152] + 992 0342 23F00103 bic r3, r3, #1 + 993 0346 C2F89830 str r3, [r2, #152] + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 994 .loc 1 597 7 view .LVU337 + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 995 .loc 1 597 19 is_stmt 0 view .LVU338 + 996 034a FFF7FEFF bl HAL_GetTick + 997 .LVL91: + 998 034e 0546 mov r5, r0 + 999 .LVL92: + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1000 .loc 1 600 7 is_stmt 1 view .LVU339 + 1001 .L74: + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1002 .loc 1 600 54 view .LVU340 + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1003 .loc 1 600 13 is_stmt 0 view .LVU341 + 1004 0350 634B ldr r3, .L132 + 1005 0352 D3F89830 ldr r3, [r3, #152] + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1006 .loc 1 600 54 view .LVU342 + 1007 0356 13F0020F tst r3, #2 + 1008 035a 06D0 beq .L70 + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1009 .loc 1 602 9 is_stmt 1 view .LVU343 + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1010 .loc 1 602 13 is_stmt 0 view .LVU344 + 1011 035c FFF7FEFF bl HAL_GetTick + 1012 .LVL93: + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1013 .loc 1 602 27 view .LVU345 + 1014 0360 401B subs r0, r0, r5 + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1015 .loc 1 602 11 view .LVU346 + 1016 0362 0228 cmp r0, #2 + 1017 0364 F4D9 bls .L74 + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1018 .loc 1 604 18 view .LVU347 + 1019 0366 0320 movs r0, #3 + 1020 0368 AAE0 b .L27 + 1021 .LVL94: + 1022 .L70: + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1023 .loc 1 612 3 is_stmt 1 view .LVU348 + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1024 .loc 1 614 3 view .LVU349 + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1025 .loc 1 614 29 is_stmt 0 view .LVU350 + 1026 036a E369 ldr r3, [r4, #28] + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1027 .loc 1 614 6 view .LVU351 + 1028 036c 002B cmp r3, #0 + 1029 036e 00F0A680 beq .L100 + ARM GAS /tmp/ccu53ZgF.s page 49 + + + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1030 .loc 1 617 5 is_stmt 1 view .LVU352 + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1031 .loc 1 617 9 is_stmt 0 view .LVU353 + 1032 0372 5B4A ldr r2, .L132 + 1033 0374 9268 ldr r2, [r2, #8] + 1034 0376 02F00C02 and r2, r2, #12 + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1035 .loc 1 617 8 view .LVU354 + 1036 037a 0C2A cmp r2, #12 + 1037 037c 69D0 beq .L76 + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1038 .loc 1 619 7 is_stmt 1 view .LVU355 + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1039 .loc 1 619 10 is_stmt 0 view .LVU356 + 1040 037e 022B cmp r3, #2 + 1041 0380 1DD0 beq .L126 + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1042 .loc 1 673 9 is_stmt 1 view .LVU357 + 1043 0382 574B ldr r3, .L132 + 1044 0384 1A68 ldr r2, [r3] + 1045 0386 22F08072 bic r2, r2, #16777216 + 1046 038a 1A60 str r2, [r3] + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** __HAL_RCC_PLLCLKOUT_DISABLE(RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_ADCCLK); + 1047 .loc 1 676 11 view .LVU358 + 1048 038c DA68 ldr r2, [r3, #12] + 1049 038e 22F00302 bic r2, r2, #3 + 1050 0392 DA60 str r2, [r3, #12] + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1051 .loc 1 677 9 view .LVU359 + 1052 0394 DA68 ldr r2, [r3, #12] + 1053 0396 22F08872 bic r2, r2, #17825792 + 1054 039a 22F48032 bic r2, r2, #65536 + 1055 039e DA60 str r2, [r3, #12] + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1056 .loc 1 680 9 view .LVU360 + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1057 .loc 1 680 21 is_stmt 0 view .LVU361 + 1058 03a0 FFF7FEFF bl HAL_GetTick + 1059 .LVL95: + 1060 03a4 0446 mov r4, r0 + 1061 .LVL96: + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1062 .loc 1 683 9 is_stmt 1 view .LVU362 + 1063 .L82: + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1064 .loc 1 683 49 view .LVU363 + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1065 .loc 1 683 16 is_stmt 0 view .LVU364 + 1066 03a6 4E4B ldr r3, .L132 + 1067 03a8 1B68 ldr r3, [r3] + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1068 .loc 1 683 49 view .LVU365 + 1069 03aa 13F0007F tst r3, #33554432 + 1070 03ae 4ED0 beq .L127 + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1071 .loc 1 685 11 is_stmt 1 view .LVU366 + ARM GAS /tmp/ccu53ZgF.s page 50 + + + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1072 .loc 1 685 16 is_stmt 0 view .LVU367 + 1073 03b0 FFF7FEFF bl HAL_GetTick + 1074 .LVL97: + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1075 .loc 1 685 30 view .LVU368 + 1076 03b4 001B subs r0, r0, r4 + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1077 .loc 1 685 14 view .LVU369 + 1078 03b6 0228 cmp r0, #2 + 1079 03b8 F5D9 bls .L82 + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1080 .loc 1 687 20 view .LVU370 + 1081 03ba 0320 movs r0, #3 + 1082 03bc 80E0 b .L27 + 1083 .LVL98: + 1084 .L126: + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLM_VALUE(RCC_OscInitStruct->PLL.PLLM)); + 1085 .loc 1 622 9 is_stmt 1 view .LVU371 + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLN_VALUE(RCC_OscInitStruct->PLL.PLLN)); + 1086 .loc 1 623 9 view .LVU372 + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->PLL.PLLP)); + 1087 .loc 1 624 9 view .LVU373 + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); + 1088 .loc 1 625 9 view .LVU374 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); + 1089 .loc 1 626 9 view .LVU375 + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1090 .loc 1 627 9 view .LVU376 + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1091 .loc 1 630 9 view .LVU377 + 1092 03be 484A ldr r2, .L132 + 1093 03c0 1368 ldr r3, [r2] + 1094 03c2 23F08073 bic r3, r3, #16777216 + 1095 03c6 1360 str r3, [r2] + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1096 .loc 1 633 9 view .LVU378 + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1097 .loc 1 633 21 is_stmt 0 view .LVU379 + 1098 03c8 FFF7FEFF bl HAL_GetTick + 1099 .LVL99: + 1100 03cc 0546 mov r5, r0 + 1101 .LVL100: + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1102 .loc 1 636 9 is_stmt 1 view .LVU380 + 1103 .L78: + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1104 .loc 1 636 49 view .LVU381 + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1105 .loc 1 636 16 is_stmt 0 view .LVU382 + 1106 03ce 444B ldr r3, .L132 + 1107 03d0 1B68 ldr r3, [r3] + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1108 .loc 1 636 49 view .LVU383 + 1109 03d2 13F0007F tst r3, #33554432 + 1110 03d6 06D0 beq .L128 + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 51 + + + 1111 .loc 1 638 11 is_stmt 1 view .LVU384 + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1112 .loc 1 638 16 is_stmt 0 view .LVU385 + 1113 03d8 FFF7FEFF bl HAL_GetTick + 1114 .LVL101: + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1115 .loc 1 638 30 view .LVU386 + 1116 03dc 401B subs r0, r0, r5 + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1117 .loc 1 638 14 view .LVU387 + 1118 03de 0228 cmp r0, #2 + 1119 03e0 F5D9 bls .L78 + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1120 .loc 1 640 20 view .LVU388 + 1121 03e2 0320 movs r0, #3 + 1122 03e4 6CE0 b .L27 + 1123 .L128: + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLM, + 1124 .loc 1 645 9 is_stmt 1 view .LVU389 + 1125 03e6 3E4A ldr r2, .L132 + 1126 03e8 D368 ldr r3, [r2, #12] + 1127 03ea 3E49 ldr r1, .L132+4 + 1128 03ec 1940 ands r1, r1, r3 + 1129 03ee 236A ldr r3, [r4, #32] + 1130 03f0 606A ldr r0, [r4, #36] + 1131 03f2 0138 subs r0, r0, #1 + 1132 03f4 43EA0013 orr r3, r3, r0, lsl #4 + 1133 03f8 A06A ldr r0, [r4, #40] + 1134 03fa 43EA0023 orr r3, r3, r0, lsl #8 + 1135 03fe 206B ldr r0, [r4, #48] + 1136 0400 4008 lsrs r0, r0, #1 + 1137 0402 0138 subs r0, r0, #1 + 1138 0404 43EA4053 orr r3, r3, r0, lsl #21 + 1139 0408 606B ldr r0, [r4, #52] + 1140 040a 4008 lsrs r0, r0, #1 + 1141 040c 0138 subs r0, r0, #1 + 1142 040e 43EA4063 orr r3, r3, r0, lsl #25 + 1143 0412 E06A ldr r0, [r4, #44] + 1144 0414 43EAC063 orr r3, r3, r0, lsl #27 + 1145 0418 1943 orrs r1, r1, r3 + 1146 041a D160 str r1, [r2, #12] + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1147 .loc 1 653 9 view .LVU390 + 1148 041c 1368 ldr r3, [r2] + 1149 041e 43F08073 orr r3, r3, #16777216 + 1150 0422 1360 str r3, [r2] + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1151 .loc 1 656 10 view .LVU391 + 1152 0424 D368 ldr r3, [r2, #12] + 1153 0426 43F08073 orr r3, r3, #16777216 + 1154 042a D360 str r3, [r2, #12] + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1155 .loc 1 659 9 view .LVU392 + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1156 .loc 1 659 21 is_stmt 0 view .LVU393 + 1157 042c FFF7FEFF bl HAL_GetTick + 1158 .LVL102: + ARM GAS /tmp/ccu53ZgF.s page 52 + + + 1159 0430 0446 mov r4, r0 + 1160 .LVL103: + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1161 .loc 1 662 9 is_stmt 1 view .LVU394 + 1162 .L80: + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1163 .loc 1 662 49 view .LVU395 + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1164 .loc 1 662 16 is_stmt 0 view .LVU396 + 1165 0432 2B4B ldr r3, .L132 + 1166 0434 1B68 ldr r3, [r3] + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1167 .loc 1 662 49 view .LVU397 + 1168 0436 13F0007F tst r3, #33554432 + 1169 043a 06D1 bne .L129 + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1170 .loc 1 664 11 is_stmt 1 view .LVU398 + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1171 .loc 1 664 16 is_stmt 0 view .LVU399 + 1172 043c FFF7FEFF bl HAL_GetTick + 1173 .LVL104: + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1174 .loc 1 664 30 view .LVU400 + 1175 0440 001B subs r0, r0, r4 + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1176 .loc 1 664 14 view .LVU401 + 1177 0442 0228 cmp r0, #2 + 1178 0444 F5D9 bls .L80 + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1179 .loc 1 666 20 view .LVU402 + 1180 0446 0320 movs r0, #3 + 1181 0448 3AE0 b .L27 + 1182 .L129: + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1183 .loc 1 716 10 view .LVU403 + 1184 044a 0020 movs r0, #0 + 1185 044c 38E0 b .L27 + 1186 .L127: + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1187 .loc 1 716 10 view .LVU404 + 1188 044e 0020 movs r0, #0 + 1189 0450 36E0 b .L27 + 1190 .LVL105: + 1191 .L76: + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1192 .loc 1 695 7 is_stmt 1 view .LVU405 + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1193 .loc 1 695 9 is_stmt 0 view .LVU406 + 1194 0452 012B cmp r3, #1 + 1195 0454 36D0 beq .L104 + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 1196 .loc 1 702 7 is_stmt 1 view .LVU407 + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** if((READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 1197 .loc 1 702 21 is_stmt 0 view .LVU408 + 1198 0456 224B ldr r3, .L132 + 1199 0458 DB68 ldr r3, [r3, #12] + 1200 .LVL106: + ARM GAS /tmp/ccu53ZgF.s page 53 + + + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC + 1201 .loc 1 703 7 is_stmt 1 view .LVU409 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC + 1202 .loc 1 703 11 is_stmt 0 view .LVU410 + 1203 045a 03F00301 and r1, r3, #3 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC + 1204 .loc 1 703 80 view .LVU411 + 1205 045e 226A ldr r2, [r4, #32] + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC + 1206 .loc 1 703 9 view .LVU412 + 1207 0460 9142 cmp r1, r2 + 1208 0462 31D1 bne .L105 + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFG + 1209 .loc 1 704 11 discriminator 1 view .LVU413 + 1210 0464 03F0F002 and r2, r3, #240 + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFG + 1211 .loc 1 704 81 discriminator 1 view .LVU414 + 1212 0468 616A ldr r1, [r4, #36] + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFG + 1213 .loc 1 704 88 discriminator 1 view .LVU415 + 1214 046a 0139 subs r1, r1, #1 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLM) != (((RCC_OscInitStruct->PLL.PLLM) - 1U) << RCC + 1215 .loc 1 703 92 discriminator 1 view .LVU416 + 1216 046c B2EB011F cmp r2, r1, lsl #4 + 1217 0470 2CD1 bne .L106 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLL + 1218 .loc 1 705 11 view .LVU417 + 1219 0472 03F4FE42 and r2, r3, #32512 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLL + 1220 .loc 1 705 80 view .LVU418 + 1221 0476 A16A ldr r1, [r4, #40] + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLN) != ((RCC_OscInitStruct->PLL.PLLN) << RCC_PLLCFG + 1222 .loc 1 704 120 view .LVU419 + 1223 0478 B2EB012F cmp r2, r1, lsl #8 + 1224 047c 28D1 bne .L107 + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U + 1225 .loc 1 706 11 view .LVU420 + 1226 047e 03F07842 and r2, r3, #-134217728 + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U + 1227 .loc 1 706 83 view .LVU421 + 1228 0482 E16A ldr r1, [r4, #44] + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLPDIV) != ((RCC_OscInitStruct->PLL.PLLP) << RCC_PLL + 1229 .loc 1 705 113 view .LVU422 + 1230 0484 B2EBC16F cmp r2, r1, lsl #27 + 1231 0488 24D1 bne .L108 + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U + 1232 .loc 1 707 11 view .LVU423 + 1233 048a 03F4C001 and r1, r3, #6291456 + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U + 1234 .loc 1 707 82 view .LVU424 + 1235 048e 226B ldr r2, [r4, #48] + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U + 1236 .loc 1 707 89 view .LVU425 + 1237 0490 5208 lsrs r2, r2, #1 + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U + 1238 .loc 1 707 96 view .LVU426 + 1239 0492 013A subs r2, r2, #1 + ARM GAS /tmp/ccu53ZgF.s page 54 + + + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U + 1240 .loc 1 706 119 view .LVU427 + 1241 0494 B1EB425F cmp r1, r2, lsl #21 + 1242 0498 1ED1 bne .L109 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1243 .loc 1 708 11 view .LVU428 + 1244 049a 03F0C063 and r3, r3, #100663296 + 1245 .LVL107: + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1246 .loc 1 708 82 view .LVU429 + 1247 049e 626B ldr r2, [r4, #52] + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1248 .loc 1 708 89 view .LVU430 + 1249 04a0 5208 lsrs r2, r2, #1 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1250 .loc 1 708 96 view .LVU431 + 1251 04a2 013A subs r2, r2, #1 + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (READ_BIT(temp_pllckcfg, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U + 1252 .loc 1 707 128 view .LVU432 + 1253 04a4 B3EB426F cmp r3, r2, lsl #25 + 1254 04a8 18D1 bne .L110 + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1255 .loc 1 716 10 view .LVU433 + 1256 04aa 0020 movs r0, #0 + 1257 04ac 08E0 b .L27 + 1258 .LVL108: + 1259 .L84: + 1260 .LCFI3: + 1261 .cfi_def_cfa_offset 0 + 1262 .cfi_restore 4 + 1263 .cfi_restore 5 + 1264 .cfi_restore 6 + 1265 .cfi_restore 14 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1266 .loc 1 321 12 view .LVU434 + 1267 04ae 0120 movs r0, #1 + 1268 .LVL109: + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1269 .loc 1 717 1 view .LVU435 + 1270 04b0 7047 bx lr + 1271 .LVL110: + 1272 .L118: + 1273 .LCFI4: + 1274 .cfi_def_cfa_offset 24 + 1275 .cfi_offset 4, -16 + 1276 .cfi_offset 5, -12 + 1277 .cfi_offset 6, -8 + 1278 .cfi_offset 14, -4 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1279 .loc 1 341 16 view .LVU436 + 1280 04b2 0120 movs r0, #1 + 1281 .LVL111: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1282 .loc 1 341 16 view .LVU437 + 1283 04b4 04E0 b .L27 + 1284 .L88: + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + ARM GAS /tmp/ccu53ZgF.s page 55 + + + 1285 .loc 1 395 16 view .LVU438 + 1286 04b6 0120 movs r0, #1 + 1287 04b8 02E0 b .L27 + 1288 .LVL112: + 1289 .L121: + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1290 .loc 1 406 18 view .LVU439 + 1291 04ba 0120 movs r0, #1 + 1292 04bc 00E0 b .L27 + 1293 .LVL113: + 1294 .L100: + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1295 .loc 1 716 10 view .LVU440 + 1296 04be 0020 movs r0, #0 + 1297 .LVL114: + 1298 .L27: + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1299 .loc 1 717 1 view .LVU441 + 1300 04c0 02B0 add sp, sp, #8 + 1301 .LCFI5: + 1302 .cfi_remember_state + 1303 .cfi_def_cfa_offset 16 + 1304 @ sp needed + 1305 04c2 70BD pop {r4, r5, r6, pc} + 1306 .LVL115: + 1307 .L104: + 1308 .LCFI6: + 1309 .cfi_restore_state + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1310 .loc 1 697 16 view .LVU442 + 1311 04c4 0120 movs r0, #1 + 1312 04c6 FBE7 b .L27 + 1313 .LVL116: + 1314 .L105: + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1315 .loc 1 710 16 view .LVU443 + 1316 04c8 0120 movs r0, #1 + 1317 04ca F9E7 b .L27 + 1318 .L106: + 1319 04cc 0120 movs r0, #1 + 1320 04ce F7E7 b .L27 + 1321 .L107: + 1322 04d0 0120 movs r0, #1 + 1323 04d2 F5E7 b .L27 + 1324 .L108: + 1325 04d4 0120 movs r0, #1 + 1326 04d6 F3E7 b .L27 + 1327 .L109: + 1328 04d8 0120 movs r0, #1 + 1329 04da F1E7 b .L27 + 1330 .LVL117: + 1331 .L110: + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1332 .loc 1 710 16 view .LVU444 + 1333 04dc 0120 movs r0, #1 + 1334 04de EFE7 b .L27 + 1335 .L133: + ARM GAS /tmp/ccu53ZgF.s page 56 + + + 1336 .align 2 + 1337 .L132: + 1338 04e0 00100240 .word 1073876992 + 1339 04e4 0C809F01 .word 27230220 + 1340 .cfi_endproc + 1341 .LFE330: + 1343 .section .text.HAL_RCC_MCOConfig,"ax",%progbits + 1344 .align 1 + 1345 .global HAL_RCC_MCOConfig + 1346 .syntax unified + 1347 .thumb + 1348 .thumb_func + 1350 HAL_RCC_MCOConfig: + 1351 .LVL118: + 1352 .LFB332: + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** GPIO_InitTypeDef gpio_initstruct; + 1353 .loc 1 996 1 is_stmt 1 view -0 + 1354 .cfi_startproc + 1355 @ args = 0, pretend = 0, frame = 24 + 1356 @ frame_needed = 0, uses_anonymous_args = 0 + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** GPIO_InitTypeDef gpio_initstruct; + 1357 .loc 1 996 1 is_stmt 0 view .LVU446 + 1358 0000 70B5 push {r4, r5, r6, lr} + 1359 .LCFI7: + 1360 .cfi_def_cfa_offset 16 + 1361 .cfi_offset 4, -16 + 1362 .cfi_offset 5, -12 + 1363 .cfi_offset 6, -8 + 1364 .cfi_offset 14, -4 + 1365 0002 86B0 sub sp, sp, #24 + 1366 .LCFI8: + 1367 .cfi_def_cfa_offset 40 + 1368 0004 0C46 mov r4, r1 + 1369 0006 1546 mov r5, r2 + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t mcoindex; + 1370 .loc 1 997 3 is_stmt 1 view .LVU447 + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t mco_gpio_index; + 1371 .loc 1 998 3 view .LVU448 + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** GPIO_TypeDef * mco_gpio_port; + 1372 .loc 1 999 3 view .LVU449 +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1373 .loc 1 1000 3 view .LVU450 +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1374 .loc 1 1003 3 view .LVU451 +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + 1375 .loc 1 1006 3 view .LVU452 +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + 1376 .loc 1 1006 29 is_stmt 0 view .LVU453 + 1377 0008 0223 movs r3, #2 + 1378 000a 0293 str r3, [sp, #8] +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Pull = GPIO_NOPULL; + 1379 .loc 1 1007 3 is_stmt 1 view .LVU454 +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Pull = GPIO_NOPULL; + 1380 .loc 1 1007 29 is_stmt 0 view .LVU455 + 1381 000c 0323 movs r3, #3 + 1382 000e 0493 str r3, [sp, #16] +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 57 + + + 1383 .loc 1 1008 3 is_stmt 1 view .LVU456 +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1384 .loc 1 1008 29 is_stmt 0 view .LVU457 + 1385 0010 0023 movs r3, #0 + 1386 0012 0393 str r3, [sp, #12] +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1387 .loc 1 1011 3 is_stmt 1 view .LVU458 +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1388 .loc 1 1011 12 is_stmt 0 view .LVU459 + 1389 0014 00F08056 and r6, r0, #268435456 + 1390 .LVL119: +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1391 .loc 1 1014 3 is_stmt 1 view .LVU460 +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1392 .loc 1 1014 36 is_stmt 0 view .LVU461 + 1393 0018 C0F3034C ubfx ip, r0, #16, #4 + 1394 001c 0CF5901E add lr, ip, #1179648 + 1395 .LVL120: +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->AHB2ENR, (1UL << mco_gpio_index )); + 1396 .loc 1 1017 3 is_stmt 1 view .LVU462 +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1397 .loc 1 1018 3 view .LVU463 + 1398 0020 0D4A ldr r2, .L137 + 1399 .LVL121: +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1400 .loc 1 1018 3 is_stmt 0 view .LVU464 + 1401 0022 D36C ldr r3, [r2, #76] + 1402 0024 0121 movs r1, #1 + 1403 .LVL122: +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1404 .loc 1 1018 3 view .LVU465 + 1405 0026 01FA0CF1 lsl r1, r1, ip + 1406 002a 0B43 orrs r3, r3, r1 + 1407 002c D364 str r3, [r2, #76] +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Alternate = RCC_GET_MCO_GPIO_AF(RCC_MCOx); + 1408 .loc 1 1021 3 is_stmt 1 view .LVU466 +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Alternate = RCC_GET_MCO_GPIO_AF(RCC_MCOx); + 1409 .loc 1 1021 25 is_stmt 0 view .LVU467 + 1410 002e 83B2 uxth r3, r0 +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** gpio_initstruct.Alternate = RCC_GET_MCO_GPIO_AF(RCC_MCOx); + 1411 .loc 1 1021 23 view .LVU468 + 1412 0030 0193 str r3, [sp, #4] +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_GPIO_Init(mco_gpio_port, &gpio_initstruct); + 1413 .loc 1 1022 3 is_stmt 1 view .LVU469 +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_GPIO_Init(mco_gpio_port, &gpio_initstruct); + 1414 .loc 1 1022 31 is_stmt 0 view .LVU470 + 1415 0032 C0F30750 ubfx r0, r0, #20, #8 + 1416 .LVL123: +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** HAL_GPIO_Init(mco_gpio_port, &gpio_initstruct); + 1417 .loc 1 1022 29 view .LVU471 + 1418 0036 0590 str r0, [sp, #20] +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1419 .loc 1 1023 3 is_stmt 1 view .LVU472 + 1420 0038 01A9 add r1, sp, #4 + 1421 003a 4FEA8E20 lsl r0, lr, #10 + 1422 .LVL124: +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 58 + + + 1423 .loc 1 1023 3 is_stmt 0 view .LVU473 + 1424 003e FFF7FEFF bl HAL_GPIO_Init + 1425 .LVL125: +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1426 .loc 1 1025 4 is_stmt 1 view .LVU474 +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1427 .loc 1 1025 7 is_stmt 0 view .LVU475 + 1428 0042 36B9 cbnz r6, .L134 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource)); + 1429 .loc 1 1027 5 is_stmt 1 view .LVU476 +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Mask MCOSEL[] and MCOPRE[] bits then set MCO clock source and prescaler */ + 1430 .loc 1 1028 5 view .LVU477 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1431 .loc 1 1030 5 view .LVU478 + 1432 0044 044A ldr r2, .L137 + 1433 0046 9368 ldr r3, [r2, #8] + 1434 0048 23F0FE43 bic r3, r3, #2130706432 + 1435 004c 2C43 orrs r4, r4, r5 + 1436 .LVL126: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1437 .loc 1 1030 5 is_stmt 0 view .LVU479 + 1438 004e 1C43 orrs r4, r4, r3 + 1439 0050 9460 str r4, [r2, #8] + 1440 .L134: +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1441 .loc 1 1032 1 view .LVU480 + 1442 0052 06B0 add sp, sp, #24 + 1443 .LCFI9: + 1444 .cfi_def_cfa_offset 16 + 1445 @ sp needed + 1446 0054 70BD pop {r4, r5, r6, pc} + 1447 .LVL127: + 1448 .L138: +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1449 .loc 1 1032 1 view .LVU481 + 1450 0056 00BF .align 2 + 1451 .L137: + 1452 0058 00100240 .word 1073876992 + 1453 .cfi_endproc + 1454 .LFE332: + 1456 .section .text.HAL_RCC_GetSysClockFreq,"ax",%progbits + 1457 .align 1 + 1458 .global HAL_RCC_GetSysClockFreq + 1459 .syntax unified + 1460 .thumb + 1461 .thumb_func + 1463 HAL_RCC_GetSysClockFreq: + 1464 .LFB333: +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t pllvco, pllsource, pllr, pllm; + 1465 .loc 1 1065 1 is_stmt 1 view -0 + 1466 .cfi_startproc + 1467 @ args = 0, pretend = 0, frame = 0 + 1468 @ frame_needed = 0, uses_anonymous_args = 0 + 1469 @ link register save eliminated. +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t sysclockfreq; + 1470 .loc 1 1066 3 view .LVU483 +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 59 + + + 1471 .loc 1 1067 3 view .LVU484 +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1472 .loc 1 1069 3 view .LVU485 +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1473 .loc 1 1069 7 is_stmt 0 view .LVU486 + 1474 0000 1E4B ldr r3, .L148 + 1475 0002 9B68 ldr r3, [r3, #8] + 1476 0004 03F00C03 and r3, r3, #12 +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1477 .loc 1 1069 6 view .LVU487 + 1478 0008 042B cmp r3, #4 + 1479 000a 33D0 beq .L143 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1480 .loc 1 1074 8 is_stmt 1 view .LVU488 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1481 .loc 1 1074 12 is_stmt 0 view .LVU489 + 1482 000c 1B4B ldr r3, .L148 + 1483 000e 9B68 ldr r3, [r3, #8] + 1484 0010 03F00C03 and r3, r3, #12 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1485 .loc 1 1074 11 view .LVU490 + 1486 0014 082B cmp r3, #8 + 1487 0016 2FD0 beq .L144 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1488 .loc 1 1079 8 is_stmt 1 view .LVU491 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1489 .loc 1 1079 12 is_stmt 0 view .LVU492 + 1490 0018 184B ldr r3, .L148 + 1491 001a 9B68 ldr r3, [r3, #8] + 1492 001c 03F00C03 and r3, r3, #12 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1493 .loc 1 1079 11 view .LVU493 + 1494 0020 0C2B cmp r3, #12 + 1495 0022 01D0 beq .L146 +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1496 .loc 1 1105 18 view .LVU494 + 1497 0024 0020 movs r0, #0 + 1498 .LVL128: +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1499 .loc 1 1108 3 is_stmt 1 view .LVU495 +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1500 .loc 1 1109 1 is_stmt 0 view .LVU496 + 1501 0026 7047 bx lr + 1502 .LVL129: + 1503 .L146: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + 1504 .loc 1 1086 5 is_stmt 1 view .LVU497 +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + 1505 .loc 1 1086 17 is_stmt 0 view .LVU498 + 1506 0028 144B ldr r3, .L148 + 1507 002a DA68 ldr r2, [r3, #12] +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; + 1508 .loc 1 1086 15 view .LVU499 + 1509 002c 02F00302 and r2, r2, #3 + 1510 .LVL130: +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1511 .loc 1 1087 5 is_stmt 1 view .LVU500 + ARM GAS /tmp/ccu53ZgF.s page 60 + + +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1512 .loc 1 1087 13 is_stmt 0 view .LVU501 + 1513 0030 DB68 ldr r3, [r3, #12] +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1514 .loc 1 1087 54 view .LVU502 + 1515 0032 C3F30313 ubfx r3, r3, #4, #4 +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1516 .loc 1 1087 10 view .LVU503 + 1517 0036 0133 adds r3, r3, #1 + 1518 .LVL131: +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1519 .loc 1 1089 5 is_stmt 1 view .LVU504 + 1520 0038 032A cmp r2, #3 + 1521 003a 11D0 beq .L147 +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1522 .loc 1 1097 7 view .LVU505 +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1523 .loc 1 1097 27 is_stmt 0 view .LVU506 + 1524 003c 1048 ldr r0, .L148+4 + 1525 003e B0FBF3F0 udiv r0, r0, r3 +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1526 .loc 1 1097 38 view .LVU507 + 1527 0042 0E4B ldr r3, .L148 + 1528 .LVL132: +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1529 .loc 1 1097 38 view .LVU508 + 1530 0044 DB68 ldr r3, [r3, #12] +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1531 .loc 1 1097 79 view .LVU509 + 1532 0046 C3F30623 ubfx r3, r3, #8, #7 +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1533 .loc 1 1097 14 view .LVU510 + 1534 004a 03FB00F0 mul r0, r3, r0 + 1535 .LVL133: +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1536 .loc 1 1098 7 is_stmt 1 view .LVU511 + 1537 .L142: +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; + 1538 .loc 1 1100 5 view .LVU512 +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; + 1539 .loc 1 1100 14 is_stmt 0 view .LVU513 + 1540 004e 0B4B ldr r3, .L148 + 1541 0050 DB68 ldr r3, [r3, #12] +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; + 1542 .loc 1 1100 55 view .LVU514 + 1543 0052 C3F34163 ubfx r3, r3, #25, #2 +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; + 1544 .loc 1 1100 80 view .LVU515 + 1545 0056 0133 adds r3, r3, #1 +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** sysclockfreq = pllvco/pllr; + 1546 .loc 1 1100 10 view .LVU516 + 1547 0058 5B00 lsls r3, r3, #1 + 1548 .LVL134: +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1549 .loc 1 1101 5 is_stmt 1 view .LVU517 +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1550 .loc 1 1101 18 is_stmt 0 view .LVU518 + ARM GAS /tmp/ccu53ZgF.s page 61 + + + 1551 005a B0FBF3F0 udiv r0, r0, r3 + 1552 .LVL135: +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1553 .loc 1 1101 18 view .LVU519 + 1554 005e 7047 bx lr + 1555 .LVL136: + 1556 .L147: +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1557 .loc 1 1092 7 is_stmt 1 view .LVU520 +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1558 .loc 1 1092 27 is_stmt 0 view .LVU521 + 1559 0060 0848 ldr r0, .L148+8 + 1560 0062 B0FBF3F0 udiv r0, r0, r3 +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1561 .loc 1 1092 38 view .LVU522 + 1562 0066 054B ldr r3, .L148 + 1563 .LVL137: +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1564 .loc 1 1092 38 view .LVU523 + 1565 0068 DB68 ldr r3, [r3, #12] +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1566 .loc 1 1092 79 view .LVU524 + 1567 006a C3F30623 ubfx r3, r3, #8, #7 +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** break; + 1568 .loc 1 1092 14 view .LVU525 + 1569 006e 03FB00F0 mul r0, r3, r0 + 1570 .LVL138: +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1571 .loc 1 1093 7 is_stmt 1 view .LVU526 + 1572 0072 ECE7 b .L142 + 1573 .LVL139: + 1574 .L143: +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1575 .loc 1 1072 18 is_stmt 0 view .LVU527 + 1576 0074 0248 ldr r0, .L148+4 + 1577 0076 7047 bx lr + 1578 .L144: +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1579 .loc 1 1077 18 view .LVU528 + 1580 0078 0248 ldr r0, .L148+8 + 1581 007a 7047 bx lr + 1582 .L149: + 1583 .align 2 + 1584 .L148: + 1585 007c 00100240 .word 1073876992 + 1586 0080 0024F400 .word 16000000 + 1587 0084 0080BB00 .word 12288000 + 1588 .cfi_endproc + 1589 .LFE333: + 1591 .section .text.HAL_RCC_ClockConfig,"ax",%progbits + 1592 .align 1 + 1593 .global HAL_RCC_ClockConfig + 1594 .syntax unified + 1595 .thumb + 1596 .thumb_func + 1598 HAL_RCC_ClockConfig: + 1599 .LVL140: + ARM GAS /tmp/ccu53ZgF.s page 62 + + + 1600 .LFB331: + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 1601 .loc 1 768 1 is_stmt 1 view -0 + 1602 .cfi_startproc + 1603 @ args = 0, pretend = 0, frame = 0 + 1604 @ frame_needed = 0, uses_anonymous_args = 0 + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t pllfreq; + 1605 .loc 1 769 3 view .LVU530 + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t hpre = RCC_SYSCLK_DIV1; + 1606 .loc 1 770 3 view .LVU531 + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1607 .loc 1 771 3 view .LVU532 + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1608 .loc 1 774 3 view .LVU533 + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1609 .loc 1 774 6 is_stmt 0 view .LVU534 + 1610 0000 0028 cmp r0, #0 + 1611 0002 00F0E680 beq .L170 + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** uint32_t tickstart; + 1612 .loc 1 768 1 view .LVU535 + 1613 0006 F8B5 push {r3, r4, r5, r6, r7, lr} + 1614 .LCFI10: + 1615 .cfi_def_cfa_offset 24 + 1616 .cfi_offset 3, -24 + 1617 .cfi_offset 4, -20 + 1618 .cfi_offset 5, -16 + 1619 .cfi_offset 6, -12 + 1620 .cfi_offset 7, -8 + 1621 .cfi_offset 14, -4 + 1622 0008 0C46 mov r4, r1 + 1623 000a 0546 mov r5, r0 + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(IS_FLASH_LATENCY(FLatency)); + 1624 .loc 1 780 3 is_stmt 1 view .LVU536 + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1625 .loc 1 781 3 view .LVU537 + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1626 .loc 1 788 3 view .LVU538 + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1627 .loc 1 788 18 is_stmt 0 view .LVU539 + 1628 000c 744B ldr r3, .L188 + 1629 000e 1B68 ldr r3, [r3] + 1630 0010 03F00F03 and r3, r3, #15 + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1631 .loc 1 788 6 view .LVU540 + 1632 0014 8B42 cmp r3, r1 + 1633 0016 0BD2 bcs .L152 + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1634 .loc 1 791 5 is_stmt 1 view .LVU541 + 1635 0018 714A ldr r2, .L188 + 1636 001a 1368 ldr r3, [r2] + 1637 001c 23F00F03 bic r3, r3, #15 + 1638 0020 0B43 orrs r3, r3, r1 + 1639 0022 1360 str r3, [r2] + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1640 .loc 1 795 5 view .LVU542 + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1641 .loc 1 795 9 is_stmt 0 view .LVU543 + ARM GAS /tmp/ccu53ZgF.s page 63 + + + 1642 0024 1368 ldr r3, [r2] + 1643 0026 03F00F03 and r3, r3, #15 + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1644 .loc 1 795 8 view .LVU544 + 1645 002a 8B42 cmp r3, r1 + 1646 002c 40F0D380 bne .L171 + 1647 .L152: + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1648 .loc 1 802 3 is_stmt 1 view .LVU545 + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1649 .loc 1 802 25 is_stmt 0 view .LVU546 + 1650 0030 2E68 ldr r6, [r5] + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1651 .loc 1 802 5 view .LVU547 + 1652 0032 16F00106 ands r6, r6, #1 + 1653 0036 5FD0 beq .L153 + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1654 .loc 1 804 5 is_stmt 1 view .LVU548 + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1655 .loc 1 807 5 view .LVU549 + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1656 .loc 1 807 26 is_stmt 0 view .LVU550 + 1657 0038 6B68 ldr r3, [r5, #4] + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1658 .loc 1 807 8 view .LVU551 + 1659 003a 032B cmp r3, #3 + 1660 003c 2FD0 beq .L184 + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1661 .loc 1 833 7 is_stmt 1 view .LVU552 + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1662 .loc 1 833 10 is_stmt 0 view .LVU553 + 1663 003e 022B cmp r3, #2 + 1664 0040 4DD0 beq .L185 + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1665 .loc 1 845 9 is_stmt 1 view .LVU554 + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1666 .loc 1 845 12 is_stmt 0 view .LVU555 + 1667 0042 684B ldr r3, .L188+4 + 1668 0044 1B68 ldr r3, [r3] + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1669 .loc 1 845 11 view .LVU556 + 1670 0046 13F4806F tst r3, #1024 + 1671 004a 00F0C680 beq .L176 + 1672 .L158: + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1673 .loc 1 851 7 is_stmt 1 view .LVU557 + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1674 .loc 1 851 17 is_stmt 0 view .LVU558 + 1675 004e FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1676 .LVL141: + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1677 .loc 1 854 7 is_stmt 1 view .LVU559 + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1678 .loc 1 854 9 is_stmt 0 view .LVU560 + 1679 0052 654B ldr r3, .L188+8 + 1680 0054 9842 cmp r0, r3 + 1681 0056 4DD9 bls .L177 + ARM GAS /tmp/ccu53ZgF.s page 64 + + + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** hpre = RCC_SYSCLK_DIV2; + 1682 .loc 1 856 9 is_stmt 1 view .LVU561 + 1683 0058 624A ldr r2, .L188+4 + 1684 005a 9368 ldr r3, [r2, #8] + 1685 005c 23F0F003 bic r3, r3, #240 + 1686 0060 43F08003 orr r3, r3, #128 + 1687 0064 9360 str r3, [r2, #8] + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1688 .loc 1 857 9 view .LVU562 + 1689 .LVL142: + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1690 .loc 1 857 14 is_stmt 0 view .LVU563 + 1691 0066 8026 movs r6, #128 + 1692 .LVL143: + 1693 .L155: + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1694 .loc 1 862 5 is_stmt 1 view .LVU564 + 1695 0068 5E4A ldr r2, .L188+4 + 1696 006a 9368 ldr r3, [r2, #8] + 1697 006c 23F00303 bic r3, r3, #3 + 1698 0070 6968 ldr r1, [r5, #4] + 1699 0072 0B43 orrs r3, r3, r1 + 1700 0074 9360 str r3, [r2, #8] + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1701 .loc 1 865 5 view .LVU565 + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1702 .loc 1 865 17 is_stmt 0 view .LVU566 + 1703 0076 FFF7FEFF bl HAL_GetTick + 1704 .LVL144: + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1705 .loc 1 865 17 view .LVU567 + 1706 007a 0746 mov r7, r0 + 1707 .LVL145: + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1708 .loc 1 867 5 is_stmt 1 view .LVU568 + 1709 .L159: + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1710 .loc 1 867 42 view .LVU569 + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1711 .loc 1 867 12 is_stmt 0 view .LVU570 + 1712 007c 594B ldr r3, .L188+4 + 1713 007e 9B68 ldr r3, [r3, #8] + 1714 0080 03F00C03 and r3, r3, #12 + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1715 .loc 1 867 63 view .LVU571 + 1716 0084 6A68 ldr r2, [r5, #4] + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1717 .loc 1 867 42 view .LVU572 + 1718 0086 B3EB820F cmp r3, r2, lsl #2 + 1719 008a 35D0 beq .L153 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1720 .loc 1 869 7 is_stmt 1 view .LVU573 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1721 .loc 1 869 12 is_stmt 0 view .LVU574 + 1722 008c FFF7FEFF bl HAL_GetTick + 1723 .LVL146: + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 65 + + + 1724 .loc 1 869 26 view .LVU575 + 1725 0090 C01B subs r0, r0, r7 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1726 .loc 1 869 10 view .LVU576 + 1727 0092 41F28833 movw r3, #5000 + 1728 0096 9842 cmp r0, r3 + 1729 0098 F0D9 bls .L159 + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1730 .loc 1 871 16 view .LVU577 + 1731 009a 0320 movs r0, #3 + 1732 009c 78E0 b .L151 + 1733 .LVL147: + 1734 .L184: + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1735 .loc 1 810 7 is_stmt 1 view .LVU578 + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1736 .loc 1 810 11 is_stmt 0 view .LVU579 + 1737 009e 514B ldr r3, .L188+4 + 1738 00a0 1B68 ldr r3, [r3] + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1739 .loc 1 810 10 view .LVU580 + 1740 00a2 13F0007F tst r3, #33554432 + 1741 00a6 01D1 bne .L186 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1742 .loc 1 812 16 view .LVU581 + 1743 00a8 0120 movs r0, #1 + 1744 .LVL148: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1745 .loc 1 812 16 view .LVU582 + 1746 00aa 71E0 b .L151 + 1747 .LVL149: + 1748 .L186: + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1749 .loc 1 816 7 is_stmt 1 view .LVU583 + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1750 .loc 1 816 17 is_stmt 0 view .LVU584 + 1751 00ac FFF7FEFF bl RCC_GetSysClockFreqFromPLLSource + 1752 .LVL150: + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1753 .loc 1 819 7 is_stmt 1 view .LVU585 + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1754 .loc 1 819 9 is_stmt 0 view .LVU586 + 1755 00b0 4D4B ldr r3, .L188+8 + 1756 00b2 9842 cmp r0, r3 + 1757 00b4 1AD9 bls .L173 + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 1758 .loc 1 821 9 is_stmt 1 view .LVU587 + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 1759 .loc 1 821 15 is_stmt 0 view .LVU588 + 1760 00b6 4B4B ldr r3, .L188+4 + 1761 00b8 9B68 ldr r3, [r3, #8] + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 1762 .loc 1 821 12 view .LVU589 + 1763 00ba 13F0F00F tst r3, #240 + 1764 00be 05D0 beq .L156 + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (RCC_ClkInitStruct->AHBCLKDivider == RCC_SYSCLK_DIV1)))) + 1765 .loc 1 822 35 discriminator 1 view .LVU590 + ARM GAS /tmp/ccu53ZgF.s page 66 + + + 1766 00c0 2E68 ldr r6, [r5] + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (((((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) && + 1767 .loc 1 821 71 discriminator 1 view .LVU591 + 1768 00c2 16F00206 ands r6, r6, #2 + 1769 00c6 CFD0 beq .L155 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1770 .loc 1 823 33 view .LVU592 + 1771 00c8 AB68 ldr r3, [r5, #8] + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** (RCC_ClkInitStruct->AHBCLKDivider == RCC_SYSCLK_DIV1)))) + 1772 .loc 1 822 93 view .LVU593 + 1773 00ca 8BB9 cbnz r3, .L174 + 1774 .L156: + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** hpre = RCC_SYSCLK_DIV2; + 1775 .loc 1 825 11 is_stmt 1 view .LVU594 + 1776 00cc 454A ldr r2, .L188+4 + 1777 00ce 9368 ldr r3, [r2, #8] + 1778 00d0 23F0F003 bic r3, r3, #240 + 1779 00d4 43F08003 orr r3, r3, #128 + 1780 00d8 9360 str r3, [r2, #8] + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1781 .loc 1 826 11 view .LVU595 + 1782 .LVL151: + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1783 .loc 1 826 16 is_stmt 0 view .LVU596 + 1784 00da 8026 movs r6, #128 + 1785 00dc C4E7 b .L155 + 1786 .LVL152: + 1787 .L185: + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1788 .loc 1 836 9 is_stmt 1 view .LVU597 + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1789 .loc 1 836 12 is_stmt 0 view .LVU598 + 1790 00de 414B ldr r3, .L188+4 + 1791 00e0 1B68 ldr r3, [r3] + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1792 .loc 1 836 11 view .LVU599 + 1793 00e2 13F4003F tst r3, #131072 + 1794 00e6 B2D1 bne .L158 + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1795 .loc 1 838 18 view .LVU600 + 1796 00e8 0120 movs r0, #1 + 1797 .LVL153: + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1798 .loc 1 838 18 view .LVU601 + 1799 00ea 51E0 b .L151 + 1800 .LVL154: + 1801 .L173: + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1802 .loc 1 771 12 view .LVU602 + 1803 00ec 0026 movs r6, #0 + 1804 00ee BBE7 b .L155 + 1805 .L174: + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1806 .loc 1 771 12 view .LVU603 + 1807 00f0 0026 movs r6, #0 + 1808 00f2 B9E7 b .L155 + 1809 .L177: + ARM GAS /tmp/ccu53ZgF.s page 67 + + + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1810 .loc 1 771 12 view .LVU604 + 1811 00f4 0026 movs r6, #0 + 1812 00f6 B7E7 b .L155 + 1813 .LVL155: + 1814 .L153: + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1815 .loc 1 877 3 is_stmt 1 view .LVU605 + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1816 .loc 1 877 26 is_stmt 0 view .LVU606 + 1817 00f8 2B68 ldr r3, [r5] + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1818 .loc 1 877 6 view .LVU607 + 1819 00fa 13F0020F tst r3, #2 + 1820 00fe 48D0 beq .L161 + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1821 .loc 1 881 5 is_stmt 1 view .LVU608 + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1822 .loc 1 881 8 is_stmt 0 view .LVU609 + 1823 0100 13F0040F tst r3, #4 + 1824 0104 04D0 beq .L162 + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1825 .loc 1 883 7 is_stmt 1 view .LVU610 + 1826 0106 374A ldr r2, .L188+4 + 1827 0108 9368 ldr r3, [r2, #8] + 1828 010a 43F4E063 orr r3, r3, #1792 + 1829 010e 9360 str r3, [r2, #8] + 1830 .L162: + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1831 .loc 1 885 5 view .LVU611 + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1832 .loc 1 885 28 is_stmt 0 view .LVU612 + 1833 0110 2B68 ldr r3, [r5] + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1834 .loc 1 885 8 view .LVU613 + 1835 0112 13F0080F tst r3, #8 + 1836 0116 06D0 beq .L163 + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1837 .loc 1 887 7 is_stmt 1 view .LVU614 + 1838 0118 324A ldr r2, .L188+4 + 1839 011a 9368 ldr r3, [r2, #8] + 1840 011c 23F47C53 bic r3, r3, #16128 + 1841 0120 43F4E063 orr r3, r3, #1792 + 1842 0124 9360 str r3, [r2, #8] + 1843 .L163: + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 1844 .loc 1 891 5 view .LVU615 + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1845 .loc 1 892 5 view .LVU616 + 1846 0126 2F4A ldr r2, .L188+4 + 1847 0128 9368 ldr r3, [r2, #8] + 1848 012a 23F0F003 bic r3, r3, #240 + 1849 012e A968 ldr r1, [r5, #8] + 1850 0130 0B43 orrs r3, r3, r1 + 1851 0132 9360 str r3, [r2, #8] + 1852 .L164: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + ARM GAS /tmp/ccu53ZgF.s page 68 + + + 1853 .loc 1 904 3 view .LVU617 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1854 .loc 1 904 18 is_stmt 0 view .LVU618 + 1855 0134 2A4B ldr r3, .L188 + 1856 0136 1B68 ldr r3, [r3] + 1857 0138 03F00F03 and r3, r3, #15 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1858 .loc 1 904 6 view .LVU619 + 1859 013c A342 cmp r3, r4 + 1860 013e 30D8 bhi .L187 + 1861 .LVL156: + 1862 .L165: + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1863 .loc 1 923 3 is_stmt 1 view .LVU620 + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1864 .loc 1 923 26 is_stmt 0 view .LVU621 + 1865 0140 2B68 ldr r3, [r5] + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1866 .loc 1 923 6 view .LVU622 + 1867 0142 13F0040F tst r3, #4 + 1868 0146 06D0 beq .L168 + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 1869 .loc 1 925 5 is_stmt 1 view .LVU623 + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1870 .loc 1 926 5 view .LVU624 + 1871 0148 264A ldr r2, .L188+4 + 1872 014a 9368 ldr r3, [r2, #8] + 1873 014c 23F4E063 bic r3, r3, #1792 + 1874 0150 E968 ldr r1, [r5, #12] + 1875 0152 0B43 orrs r3, r3, r1 + 1876 0154 9360 str r3, [r2, #8] + 1877 .L168: + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1878 .loc 1 930 3 view .LVU625 + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1879 .loc 1 930 25 is_stmt 0 view .LVU626 + 1880 0156 2B68 ldr r3, [r5] + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1881 .loc 1 930 5 view .LVU627 + 1882 0158 13F0080F tst r3, #8 + 1883 015c 07D0 beq .L169 + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + 1884 .loc 1 932 5 is_stmt 1 view .LVU628 + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1885 .loc 1 933 5 view .LVU629 + 1886 015e 214A ldr r2, .L188+4 + 1887 0160 9368 ldr r3, [r2, #8] + 1888 0162 23F46053 bic r3, r3, #14336 + 1889 0166 2969 ldr r1, [r5, #16] + 1890 0168 43EAC103 orr r3, r3, r1, lsl #3 + 1891 016c 9360 str r3, [r2, #8] + 1892 .L169: + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1893 .loc 1 937 3 view .LVU630 + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1894 .loc 1 937 21 is_stmt 0 view .LVU631 + 1895 016e FFF7FEFF bl HAL_RCC_GetSysClockFreq + ARM GAS /tmp/ccu53ZgF.s page 69 + + + 1896 .LVL157: + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1897 .loc 1 937 65 view .LVU632 + 1898 0172 1C4B ldr r3, .L188+4 + 1899 0174 9B68 ldr r3, [r3, #8] + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1900 .loc 1 937 100 view .LVU633 + 1901 0176 C3F30313 ubfx r3, r3, #4, #4 + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1902 .loc 1 937 64 view .LVU634 + 1903 017a 1C4A ldr r2, .L188+12 + 1904 017c D35C ldrb r3, [r2, r3] @ zero_extendqisi2 + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1905 .loc 1 937 122 view .LVU635 + 1906 017e 03F01F03 and r3, r3, #31 + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1907 .loc 1 937 47 view .LVU636 + 1908 0182 D840 lsrs r0, r0, r3 + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1909 .loc 1 937 19 view .LVU637 + 1910 0184 1A4B ldr r3, .L188+16 + 1911 0186 1860 str r0, [r3] + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1912 .loc 1 940 3 is_stmt 1 view .LVU638 + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1913 .loc 1 940 10 is_stmt 0 view .LVU639 + 1914 0188 1A4B ldr r3, .L188+20 + 1915 018a 1868 ldr r0, [r3] + 1916 018c FFF7FEFF bl HAL_InitTick + 1917 .LVL158: + 1918 .L151: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1919 .loc 1 941 1 view .LVU640 + 1920 0190 F8BD pop {r3, r4, r5, r6, r7, pc} + 1921 .LVL159: + 1922 .L161: + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1923 .loc 1 897 5 is_stmt 1 view .LVU641 + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1924 .loc 1 897 7 is_stmt 0 view .LVU642 + 1925 0192 802E cmp r6, #128 + 1926 0194 CED1 bne .L164 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1927 .loc 1 899 7 is_stmt 1 view .LVU643 + 1928 0196 134A ldr r2, .L188+4 + 1929 0198 9368 ldr r3, [r2, #8] + 1930 019a 23F0F003 bic r3, r3, #240 + 1931 019e 9360 str r3, [r2, #8] + 1932 01a0 C8E7 b .L164 + 1933 .L187: + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1934 .loc 1 907 5 view .LVU644 + 1935 01a2 0F4A ldr r2, .L188 + 1936 01a4 1368 ldr r3, [r2] + 1937 01a6 23F00F03 bic r3, r3, #15 + 1938 01aa 2343 orrs r3, r3, r4 + 1939 01ac 1360 str r3, [r2] + ARM GAS /tmp/ccu53ZgF.s page 70 + + + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1940 .loc 1 911 5 view .LVU645 + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1941 .loc 1 911 17 is_stmt 0 view .LVU646 + 1942 01ae FFF7FEFF bl HAL_GetTick + 1943 .LVL160: + 1944 01b2 0646 mov r6, r0 + 1945 .LVL161: + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1946 .loc 1 913 5 is_stmt 1 view .LVU647 + 1947 .L166: + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1948 .loc 1 913 38 view .LVU648 + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1949 .loc 1 913 12 is_stmt 0 view .LVU649 + 1950 01b4 0A4B ldr r3, .L188 + 1951 01b6 1B68 ldr r3, [r3] + 1952 01b8 03F00F03 and r3, r3, #15 + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1953 .loc 1 913 38 view .LVU650 + 1954 01bc A342 cmp r3, r4 + 1955 01be BFD0 beq .L165 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1956 .loc 1 915 7 is_stmt 1 view .LVU651 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1957 .loc 1 915 12 is_stmt 0 view .LVU652 + 1958 01c0 FFF7FEFF bl HAL_GetTick + 1959 .LVL162: + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1960 .loc 1 915 26 view .LVU653 + 1961 01c4 801B subs r0, r0, r6 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 1962 .loc 1 915 10 view .LVU654 + 1963 01c6 41F28833 movw r3, #5000 + 1964 01ca 9842 cmp r0, r3 + 1965 01cc F2D9 bls .L166 + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1966 .loc 1 917 16 view .LVU655 + 1967 01ce 0320 movs r0, #3 + 1968 01d0 DEE7 b .L151 + 1969 .LVL163: + 1970 .L170: + 1971 .LCFI11: + 1972 .cfi_def_cfa_offset 0 + 1973 .cfi_restore 3 + 1974 .cfi_restore 4 + 1975 .cfi_restore 5 + 1976 .cfi_restore 6 + 1977 .cfi_restore 7 + 1978 .cfi_restore 14 + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1979 .loc 1 776 12 view .LVU656 + 1980 01d2 0120 movs r0, #1 + 1981 .LVL164: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 1982 .loc 1 941 1 view .LVU657 + 1983 01d4 7047 bx lr + ARM GAS /tmp/ccu53ZgF.s page 71 + + + 1984 .LVL165: + 1985 .L171: + 1986 .LCFI12: + 1987 .cfi_def_cfa_offset 24 + 1988 .cfi_offset 3, -24 + 1989 .cfi_offset 4, -20 + 1990 .cfi_offset 5, -16 + 1991 .cfi_offset 6, -12 + 1992 .cfi_offset 7, -8 + 1993 .cfi_offset 14, -4 + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1994 .loc 1 797 14 view .LVU658 + 1995 01d6 0120 movs r0, #1 + 1996 .LVL166: + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 1997 .loc 1 797 14 view .LVU659 + 1998 01d8 DAE7 b .L151 + 1999 .LVL167: + 2000 .L176: + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2001 .loc 1 847 18 view .LVU660 + 2002 01da 0120 movs r0, #1 + 2003 .LVL168: + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2004 .loc 1 847 18 view .LVU661 + 2005 01dc D8E7 b .L151 + 2006 .L189: + 2007 01de 00BF .align 2 + 2008 .L188: + 2009 01e0 00200240 .word 1073881088 + 2010 01e4 00100240 .word 1073876992 + 2011 01e8 00B4C404 .word 80000000 + 2012 01ec 00000000 .word AHBPrescTable + 2013 01f0 00000000 .word SystemCoreClock + 2014 01f4 00000000 .word uwTickPrio + 2015 .cfi_endproc + 2016 .LFE331: + 2018 .section .text.HAL_RCC_GetHCLKFreq,"ax",%progbits + 2019 .align 1 + 2020 .global HAL_RCC_GetHCLKFreq + 2021 .syntax unified + 2022 .thumb + 2023 .thumb_func + 2025 HAL_RCC_GetHCLKFreq: + 2026 .LFB334: +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** return SystemCoreClock; + 2027 .loc 1 1120 1 is_stmt 1 view -0 + 2028 .cfi_startproc + 2029 @ args = 0, pretend = 0, frame = 0 + 2030 @ frame_needed = 0, uses_anonymous_args = 0 + 2031 @ link register save eliminated. +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2032 .loc 1 1121 3 view .LVU663 +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2033 .loc 1 1122 1 is_stmt 0 view .LVU664 + 2034 0000 014B ldr r3, .L191 + 2035 0002 1868 ldr r0, [r3] + ARM GAS /tmp/ccu53ZgF.s page 72 + + + 2036 0004 7047 bx lr + 2037 .L192: + 2038 0006 00BF .align 2 + 2039 .L191: + 2040 0008 00000000 .word SystemCoreClock + 2041 .cfi_endproc + 2042 .LFE334: + 2044 .section .text.HAL_RCC_GetPCLK1Freq,"ax",%progbits + 2045 .align 1 + 2046 .global HAL_RCC_GetPCLK1Freq + 2047 .syntax unified + 2048 .thumb + 2049 .thumb_func + 2051 HAL_RCC_GetPCLK1Freq: + 2052 .LFB335: +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ + 2053 .loc 1 1131 1 is_stmt 1 view -0 + 2054 .cfi_startproc + 2055 @ args = 0, pretend = 0, frame = 0 + 2056 @ frame_needed = 0, uses_anonymous_args = 0 + 2057 0000 08B5 push {r3, lr} + 2058 .LCFI13: + 2059 .cfi_def_cfa_offset 8 + 2060 .cfi_offset 3, -8 + 2061 .cfi_offset 14, -4 +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2062 .loc 1 1133 3 view .LVU666 +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2063 .loc 1 1133 11 is_stmt 0 view .LVU667 + 2064 0002 FFF7FEFF bl HAL_RCC_GetHCLKFreq + 2065 .LVL169: +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2066 .loc 1 1133 51 view .LVU668 + 2067 0006 054B ldr r3, .L195 + 2068 0008 9B68 ldr r3, [r3, #8] +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2069 .loc 1 1133 87 view .LVU669 + 2070 000a C3F30223 ubfx r3, r3, #8, #3 +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2071 .loc 1 1133 50 view .LVU670 + 2072 000e 044A ldr r2, .L195+4 + 2073 0010 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2074 .loc 1 1133 110 view .LVU671 + 2075 0012 03F01F03 and r3, r3, #31 +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2076 .loc 1 1134 1 view .LVU672 + 2077 0016 D840 lsrs r0, r0, r3 + 2078 0018 08BD pop {r3, pc} + 2079 .L196: + 2080 001a 00BF .align 2 + 2081 .L195: + 2082 001c 00100240 .word 1073876992 + 2083 0020 00000000 .word APBPrescTable + 2084 .cfi_endproc + 2085 .LFE335: + 2087 .section .text.HAL_RCC_GetPCLK2Freq,"ax",%progbits + ARM GAS /tmp/ccu53ZgF.s page 73 + + + 2088 .align 1 + 2089 .global HAL_RCC_GetPCLK2Freq + 2090 .syntax unified + 2091 .thumb + 2092 .thumb_func + 2094 HAL_RCC_GetPCLK2Freq: + 2095 .LFB336: +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ + 2096 .loc 1 1143 1 is_stmt 1 view -0 + 2097 .cfi_startproc + 2098 @ args = 0, pretend = 0, frame = 0 + 2099 @ frame_needed = 0, uses_anonymous_args = 0 + 2100 0000 08B5 push {r3, lr} + 2101 .LCFI14: + 2102 .cfi_def_cfa_offset 8 + 2103 .cfi_offset 3, -8 + 2104 .cfi_offset 14, -4 +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2105 .loc 1 1145 3 view .LVU674 +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2106 .loc 1 1145 11 is_stmt 0 view .LVU675 + 2107 0002 FFF7FEFF bl HAL_RCC_GetHCLKFreq + 2108 .LVL170: +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2109 .loc 1 1145 50 view .LVU676 + 2110 0006 054B ldr r3, .L199 + 2111 0008 9B68 ldr r3, [r3, #8] +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2112 .loc 1 1145 86 view .LVU677 + 2113 000a C3F3C223 ubfx r3, r3, #11, #3 +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2114 .loc 1 1145 49 view .LVU678 + 2115 000e 044A ldr r2, .L199+4 + 2116 0010 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2117 .loc 1 1145 109 view .LVU679 + 2118 0012 03F01F03 and r3, r3, #31 +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2119 .loc 1 1146 1 view .LVU680 + 2120 0016 D840 lsrs r0, r0, r3 + 2121 0018 08BD pop {r3, pc} + 2122 .L200: + 2123 001a 00BF .align 2 + 2124 .L199: + 2125 001c 00100240 .word 1073876992 + 2126 0020 00000000 .word APBPrescTable + 2127 .cfi_endproc + 2128 .LFE336: + 2130 .section .text.HAL_RCC_GetOscConfig,"ax",%progbits + 2131 .align 1 + 2132 .global HAL_RCC_GetOscConfig + 2133 .syntax unified + 2134 .thumb + 2135 .thumb_func + 2137 HAL_RCC_GetOscConfig: + 2138 .LVL171: + 2139 .LFB337: + ARM GAS /tmp/ccu53ZgF.s page 74 + + +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 2140 .loc 1 1156 1 is_stmt 1 view -0 + 2141 .cfi_startproc + 2142 @ args = 0, pretend = 0, frame = 0 + 2143 @ frame_needed = 0, uses_anonymous_args = 0 + 2144 @ link register save eliminated. +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2145 .loc 1 1158 3 view .LVU682 +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLA + 2146 .loc 1 1161 3 view .LVU683 +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLA + 2147 .loc 1 1161 37 is_stmt 0 view .LVU684 + 2148 0000 2F23 movs r3, #47 + 2149 0002 0360 str r3, [r0] +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2150 .loc 1 1165 3 is_stmt 1 view .LVU685 +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2151 .loc 1 1165 6 is_stmt 0 view .LVU686 + 2152 0004 3A4B ldr r3, .L216 + 2153 0006 1B68 ldr r3, [r3] +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2154 .loc 1 1165 5 view .LVU687 + 2155 0008 13F4802F tst r3, #262144 + 2156 000c 4BD0 beq .L202 +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2157 .loc 1 1167 5 is_stmt 1 view .LVU688 +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2158 .loc 1 1167 33 is_stmt 0 view .LVU689 + 2159 000e 4FF4A023 mov r3, #327680 + 2160 0012 4360 str r3, [r0, #4] + 2161 .L203: +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2162 .loc 1 1179 3 is_stmt 1 view .LVU690 +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2163 .loc 1 1179 6 is_stmt 0 view .LVU691 + 2164 0014 364B ldr r3, .L216 + 2165 0016 1B68 ldr r3, [r3] +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2166 .loc 1 1179 5 view .LVU692 + 2167 0018 13F4807F tst r3, #256 + 2168 001c 4FD0 beq .L205 +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2169 .loc 1 1181 5 is_stmt 1 view .LVU693 +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2170 .loc 1 1181 33 is_stmt 0 view .LVU694 + 2171 001e 4FF48073 mov r3, #256 + 2172 0022 C360 str r3, [r0, #12] + 2173 .L206: +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2174 .loc 1 1188 3 is_stmt 1 view .LVU695 +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2175 .loc 1 1188 44 is_stmt 0 view .LVU696 + 2176 0024 324A ldr r2, .L216 + 2177 0026 5368 ldr r3, [r2, #4] +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2178 .loc 1 1188 84 view .LVU697 + 2179 0028 C3F30663 ubfx r3, r3, #24, #7 + ARM GAS /tmp/ccu53ZgF.s page 75 + + +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2180 .loc 1 1188 42 view .LVU698 + 2181 002c 0361 str r3, [r0, #16] +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2182 .loc 1 1191 3 is_stmt 1 view .LVU699 +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2183 .loc 1 1191 6 is_stmt 0 view .LVU700 + 2184 002e D2F89030 ldr r3, [r2, #144] +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2185 .loc 1 1191 5 view .LVU701 + 2186 0032 13F0040F tst r3, #4 + 2187 0036 45D0 beq .L207 +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2188 .loc 1 1193 5 is_stmt 1 view .LVU702 +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2189 .loc 1 1193 33 is_stmt 0 view .LVU703 + 2190 0038 0523 movs r3, #5 + 2191 003a 8360 str r3, [r0, #8] + 2192 .L208: +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2193 .loc 1 1205 3 is_stmt 1 view .LVU704 +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2194 .loc 1 1205 6 is_stmt 0 view .LVU705 + 2195 003c 2C4B ldr r3, .L216 + 2196 003e D3F89430 ldr r3, [r3, #148] +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2197 .loc 1 1205 5 view .LVU706 + 2198 0042 13F0010F tst r3, #1 + 2199 0046 49D0 beq .L210 +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2200 .loc 1 1207 5 is_stmt 1 view .LVU707 +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2201 .loc 1 1207 33 is_stmt 0 view .LVU708 + 2202 0048 0123 movs r3, #1 + 2203 004a 4361 str r3, [r0, #20] + 2204 .L211: +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2205 .loc 1 1215 3 is_stmt 1 view .LVU709 +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2206 .loc 1 1215 6 is_stmt 0 view .LVU710 + 2207 004c 284B ldr r3, .L216 + 2208 004e D3F89830 ldr r3, [r3, #152] +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2209 .loc 1 1215 5 view .LVU711 + 2210 0052 13F0010F tst r3, #1 + 2211 0056 44D0 beq .L212 +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2212 .loc 1 1217 5 is_stmt 1 view .LVU712 +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2213 .loc 1 1217 35 is_stmt 0 view .LVU713 + 2214 0058 0123 movs r3, #1 + 2215 005a 8361 str r3, [r0, #24] + 2216 .L213: +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2217 .loc 1 1225 3 is_stmt 1 view .LVU714 +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2218 .loc 1 1225 6 is_stmt 0 view .LVU715 + ARM GAS /tmp/ccu53ZgF.s page 76 + + + 2219 005c 244B ldr r3, .L216 + 2220 005e 1B68 ldr r3, [r3] +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2221 .loc 1 1225 5 view .LVU716 + 2222 0060 13F0807F tst r3, #16777216 + 2223 0064 40D0 beq .L214 +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2224 .loc 1 1227 5 is_stmt 1 view .LVU717 +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2225 .loc 1 1227 37 is_stmt 0 view .LVU718 + 2226 0066 0223 movs r3, #2 + 2227 0068 C361 str r3, [r0, #28] + 2228 .L215: +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLM = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 2229 .loc 1 1233 3 is_stmt 1 view .LVU719 +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLM = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 2230 .loc 1 1233 38 is_stmt 0 view .LVU720 + 2231 006a 214A ldr r2, .L216 + 2232 006c D368 ldr r3, [r2, #12] + 2233 006e 03F00303 and r3, r3, #3 +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLM = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 2234 .loc 1 1233 36 view .LVU721 + 2235 0072 0362 str r3, [r0, #32] +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + 2236 .loc 1 1234 3 is_stmt 1 view .LVU722 +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + 2237 .loc 1 1234 34 is_stmt 0 view .LVU723 + 2238 0074 D368 ldr r3, [r2, #12] +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + 2239 .loc 1 1234 75 view .LVU724 + 2240 0076 C3F30313 ubfx r3, r3, #4, #4 +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + 2241 .loc 1 1234 100 view .LVU725 + 2242 007a 0133 adds r3, r3, #1 +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; + 2243 .loc 1 1234 31 view .LVU726 + 2244 007c 4362 str r3, [r0, #36] +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos + 2245 .loc 1 1235 3 is_stmt 1 view .LVU727 +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos + 2246 .loc 1 1235 33 is_stmt 0 view .LVU728 + 2247 007e D368 ldr r3, [r2, #12] +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos + 2248 .loc 1 1235 74 view .LVU729 + 2249 0080 C3F30623 ubfx r3, r3, #8, #7 +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos + 2250 .loc 1 1235 31 view .LVU730 + 2251 0084 8362 str r3, [r0, #40] +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos + 2252 .loc 1 1236 3 is_stmt 1 view .LVU731 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos + 2253 .loc 1 1236 36 is_stmt 0 view .LVU732 + 2254 0086 D368 ldr r3, [r2, #12] +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos + 2255 .loc 1 1236 77 view .LVU733 + 2256 0088 C3F34153 ubfx r3, r3, #21, #2 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos + ARM GAS /tmp/ccu53ZgF.s page 77 + + + 2257 .loc 1 1236 102 view .LVU734 + 2258 008c 0133 adds r3, r3, #1 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos + 2259 .loc 1 1236 108 view .LVU735 + 2260 008e 5B00 lsls r3, r3, #1 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos + 2261 .loc 1 1236 31 view .LVU736 + 2262 0090 0363 str r3, [r0, #48] +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ + 2263 .loc 1 1237 3 is_stmt 1 view .LVU737 +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ + 2264 .loc 1 1237 36 is_stmt 0 view .LVU738 + 2265 0092 D368 ldr r3, [r2, #12] +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ + 2266 .loc 1 1237 77 view .LVU739 + 2267 0094 C3F34163 ubfx r3, r3, #25, #2 +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ + 2268 .loc 1 1237 102 view .LVU740 + 2269 0098 0133 adds r3, r3, #1 +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ + 2270 .loc 1 1237 108 view .LVU741 + 2271 009a 5B00 lsls r3, r3, #1 +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_ + 2272 .loc 1 1237 31 view .LVU742 + 2273 009c 4363 str r3, [r0, #52] +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2274 .loc 1 1238 3 is_stmt 1 view .LVU743 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2275 .loc 1 1238 33 is_stmt 0 view .LVU744 + 2276 009e D368 ldr r3, [r2, #12] +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2277 .loc 1 1238 77 view .LVU745 + 2278 00a0 DB0E lsrs r3, r3, #27 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2279 .loc 1 1238 31 view .LVU746 + 2280 00a2 C362 str r3, [r0, #44] +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2281 .loc 1 1239 1 view .LVU747 + 2282 00a4 7047 bx lr + 2283 .L202: +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2284 .loc 1 1169 8 is_stmt 1 view .LVU748 +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2285 .loc 1 1169 11 is_stmt 0 view .LVU749 + 2286 00a6 124B ldr r3, .L216 + 2287 00a8 1B68 ldr r3, [r3] +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2288 .loc 1 1169 10 view .LVU750 + 2289 00aa 13F4803F tst r3, #65536 + 2290 00ae 03D0 beq .L204 +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2291 .loc 1 1171 5 is_stmt 1 view .LVU751 +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2292 .loc 1 1171 33 is_stmt 0 view .LVU752 + 2293 00b0 4FF48033 mov r3, #65536 + 2294 00b4 4360 str r3, [r0, #4] + 2295 00b6 ADE7 b .L203 + ARM GAS /tmp/ccu53ZgF.s page 78 + + + 2296 .L204: +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2297 .loc 1 1175 5 is_stmt 1 view .LVU753 +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2298 .loc 1 1175 33 is_stmt 0 view .LVU754 + 2299 00b8 0023 movs r3, #0 + 2300 00ba 4360 str r3, [r0, #4] + 2301 00bc AAE7 b .L203 + 2302 .L205: +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2303 .loc 1 1185 5 is_stmt 1 view .LVU755 +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2304 .loc 1 1185 33 is_stmt 0 view .LVU756 + 2305 00be 0023 movs r3, #0 + 2306 00c0 C360 str r3, [r0, #12] + 2307 00c2 AFE7 b .L206 + 2308 .L207: +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2309 .loc 1 1195 8 is_stmt 1 view .LVU757 +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2310 .loc 1 1195 11 is_stmt 0 view .LVU758 + 2311 00c4 0A4B ldr r3, .L216 + 2312 00c6 D3F89030 ldr r3, [r3, #144] +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2313 .loc 1 1195 10 view .LVU759 + 2314 00ca 13F0010F tst r3, #1 + 2315 00ce 02D0 beq .L209 +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2316 .loc 1 1197 5 is_stmt 1 view .LVU760 +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2317 .loc 1 1197 33 is_stmt 0 view .LVU761 + 2318 00d0 0123 movs r3, #1 + 2319 00d2 8360 str r3, [r0, #8] + 2320 00d4 B2E7 b .L208 + 2321 .L209: +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2322 .loc 1 1201 5 is_stmt 1 view .LVU762 +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2323 .loc 1 1201 33 is_stmt 0 view .LVU763 + 2324 00d6 0023 movs r3, #0 + 2325 00d8 8360 str r3, [r0, #8] + 2326 00da AFE7 b .L208 + 2327 .L210: +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2328 .loc 1 1211 5 is_stmt 1 view .LVU764 +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2329 .loc 1 1211 33 is_stmt 0 view .LVU765 + 2330 00dc 0023 movs r3, #0 + 2331 00de 4361 str r3, [r0, #20] + 2332 00e0 B4E7 b .L211 + 2333 .L212: +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2334 .loc 1 1221 5 is_stmt 1 view .LVU766 +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2335 .loc 1 1221 35 is_stmt 0 view .LVU767 + 2336 00e2 0023 movs r3, #0 + 2337 00e4 8361 str r3, [r0, #24] + ARM GAS /tmp/ccu53ZgF.s page 79 + + + 2338 00e6 B9E7 b .L213 + 2339 .L214: +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2340 .loc 1 1231 5 is_stmt 1 view .LVU768 +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2341 .loc 1 1231 37 is_stmt 0 view .LVU769 + 2342 00e8 0123 movs r3, #1 + 2343 00ea C361 str r3, [r0, #28] + 2344 00ec BDE7 b .L215 + 2345 .L217: + 2346 00ee 00BF .align 2 + 2347 .L216: + 2348 00f0 00100240 .word 1073876992 + 2349 .cfi_endproc + 2350 .LFE337: + 2352 .section .text.HAL_RCC_GetClockConfig,"ax",%progbits + 2353 .align 1 + 2354 .global HAL_RCC_GetClockConfig + 2355 .syntax unified + 2356 .thumb + 2357 .thumb_func + 2359 HAL_RCC_GetClockConfig: + 2360 .LVL172: + 2361 .LFB338: +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check the parameters */ + 2362 .loc 1 1250 1 is_stmt 1 view -0 + 2363 .cfi_startproc + 2364 @ args = 0, pretend = 0, frame = 0 + 2365 @ frame_needed = 0, uses_anonymous_args = 0 + 2366 @ link register save eliminated. +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** assert_param(pFLatency != (void *)NULL); + 2367 .loc 1 1252 3 view .LVU771 +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2368 .loc 1 1253 3 view .LVU772 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2369 .loc 1 1256 3 view .LVU773 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2370 .loc 1 1256 32 is_stmt 0 view .LVU774 + 2371 0000 0F23 movs r3, #15 + 2372 0002 0360 str r3, [r0] +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2373 .loc 1 1259 3 is_stmt 1 view .LVU775 +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2374 .loc 1 1259 37 is_stmt 0 view .LVU776 + 2375 0004 0B4B ldr r3, .L219 + 2376 0006 9A68 ldr r2, [r3, #8] + 2377 0008 02F00302 and r2, r2, #3 +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2378 .loc 1 1259 35 view .LVU777 + 2379 000c 4260 str r2, [r0, #4] +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2380 .loc 1 1262 3 is_stmt 1 view .LVU778 +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2381 .loc 1 1262 38 is_stmt 0 view .LVU779 + 2382 000e 9A68 ldr r2, [r3, #8] + 2383 0010 02F0F002 and r2, r2, #240 +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + ARM GAS /tmp/ccu53ZgF.s page 80 + + + 2384 .loc 1 1262 36 view .LVU780 + 2385 0014 8260 str r2, [r0, #8] +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2386 .loc 1 1265 3 is_stmt 1 view .LVU781 +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2387 .loc 1 1265 39 is_stmt 0 view .LVU782 + 2388 0016 9A68 ldr r2, [r3, #8] + 2389 0018 02F4E062 and r2, r2, #1792 +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2390 .loc 1 1265 37 view .LVU783 + 2391 001c C260 str r2, [r0, #12] +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2392 .loc 1 1268 3 is_stmt 1 view .LVU784 +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2393 .loc 1 1268 40 is_stmt 0 view .LVU785 + 2394 001e 9B68 ldr r3, [r3, #8] +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2395 .loc 1 1268 76 view .LVU786 + 2396 0020 DB08 lsrs r3, r3, #3 + 2397 0022 03F4E063 and r3, r3, #1792 +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2398 .loc 1 1268 37 view .LVU787 + 2399 0026 0361 str r3, [r0, #16] +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2400 .loc 1 1271 3 is_stmt 1 view .LVU788 +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2401 .loc 1 1271 16 is_stmt 0 view .LVU789 + 2402 0028 034B ldr r3, .L219+4 + 2403 002a 1B68 ldr r3, [r3] + 2404 002c 03F00F03 and r3, r3, #15 +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2405 .loc 1 1271 14 view .LVU790 + 2406 0030 0B60 str r3, [r1] +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2407 .loc 1 1272 1 view .LVU791 + 2408 0032 7047 bx lr + 2409 .L220: + 2410 .align 2 + 2411 .L219: + 2412 0034 00100240 .word 1073876992 + 2413 0038 00200240 .word 1073881088 + 2414 .cfi_endproc + 2415 .LFE338: + 2417 .section .text.HAL_RCC_EnableCSS,"ax",%progbits + 2418 .align 1 + 2419 .global HAL_RCC_EnableCSS + 2420 .syntax unified + 2421 .thumb + 2422 .thumb_func + 2424 HAL_RCC_EnableCSS: + 2425 .LFB339: +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->CR, RCC_CR_CSSON) ; + 2426 .loc 1 1285 1 is_stmt 1 view -0 + 2427 .cfi_startproc + 2428 @ args = 0, pretend = 0, frame = 0 + 2429 @ frame_needed = 0, uses_anonymous_args = 0 + 2430 @ link register save eliminated. + ARM GAS /tmp/ccu53ZgF.s page 81 + + +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2431 .loc 1 1286 3 view .LVU793 + 2432 0000 024A ldr r2, .L222 + 2433 0002 1368 ldr r3, [r2] + 2434 0004 43F40023 orr r3, r3, #524288 + 2435 0008 1360 str r3, [r2] +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2436 .loc 1 1287 1 is_stmt 0 view .LVU794 + 2437 000a 7047 bx lr + 2438 .L223: + 2439 .align 2 + 2440 .L222: + 2441 000c 00100240 .word 1073876992 + 2442 .cfi_endproc + 2443 .LFE339: + 2445 .section .text.HAL_RCC_EnableLSECSS,"ax",%progbits + 2446 .align 1 + 2447 .global HAL_RCC_EnableLSECSS + 2448 .syntax unified + 2449 .thumb + 2450 .thumb_func + 2452 HAL_RCC_EnableLSECSS: + 2453 .LFB340: +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + 2454 .loc 1 1299 1 is_stmt 1 view -0 + 2455 .cfi_startproc + 2456 @ args = 0, pretend = 0, frame = 0 + 2457 @ frame_needed = 0, uses_anonymous_args = 0 + 2458 @ link register save eliminated. +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2459 .loc 1 1300 3 view .LVU796 + 2460 0000 034A ldr r2, .L225 + 2461 0002 D2F89030 ldr r3, [r2, #144] + 2462 0006 43F02003 orr r3, r3, #32 + 2463 000a C2F89030 str r3, [r2, #144] +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2464 .loc 1 1301 1 is_stmt 0 view .LVU797 + 2465 000e 7047 bx lr + 2466 .L226: + 2467 .align 2 + 2468 .L225: + 2469 0010 00100240 .word 1073876992 + 2470 .cfi_endproc + 2471 .LFE340: + 2473 .section .text.HAL_RCC_DisableLSECSS,"ax",%progbits + 2474 .align 1 + 2475 .global HAL_RCC_DisableLSECSS + 2476 .syntax unified + 2477 .thumb + 2478 .thumb_func + 2480 HAL_RCC_DisableLSECSS: + 2481 .LFB341: +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + 2482 .loc 1 1310 1 is_stmt 1 view -0 + 2483 .cfi_startproc + 2484 @ args = 0, pretend = 0, frame = 0 + 2485 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/ccu53ZgF.s page 82 + + + 2486 @ link register save eliminated. +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2487 .loc 1 1311 3 view .LVU799 + 2488 0000 034A ldr r2, .L228 + 2489 0002 D2F89030 ldr r3, [r2, #144] + 2490 0006 23F02003 bic r3, r3, #32 + 2491 000a C2F89030 str r3, [r2, #144] +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2492 .loc 1 1312 1 is_stmt 0 view .LVU800 + 2493 000e 7047 bx lr + 2494 .L229: + 2495 .align 2 + 2496 .L228: + 2497 0010 00100240 .word 1073876992 + 2498 .cfi_endproc + 2499 .LFE341: + 2501 .section .text.HAL_RCC_CSSCallback,"ax",%progbits + 2502 .align 1 + 2503 .weak HAL_RCC_CSSCallback + 2504 .syntax unified + 2505 .thumb + 2506 .thumb_func + 2508 HAL_RCC_CSSCallback: + 2509 .LFB343: +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* NOTE : This function should not be modified, when the callback is needed, + 2510 .loc 1 1337 1 is_stmt 1 view -0 + 2511 .cfi_startproc + 2512 @ args = 0, pretend = 0, frame = 0 + 2513 @ frame_needed = 0, uses_anonymous_args = 0 + 2514 @ link register save eliminated. +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2515 .loc 1 1341 1 view .LVU802 + 2516 0000 7047 bx lr + 2517 .cfi_endproc + 2518 .LFE343: + 2520 .section .text.HAL_RCC_NMI_IRQHandler,"ax",%progbits + 2521 .align 1 + 2522 .global HAL_RCC_NMI_IRQHandler + 2523 .syntax unified + 2524 .thumb + 2525 .thumb_func + 2527 HAL_RCC_NMI_IRQHandler: + 2528 .LFB342: +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** /* Check RCC CSSF interrupt flag */ + 2529 .loc 1 1320 1 view -0 + 2530 .cfi_startproc + 2531 @ args = 0, pretend = 0, frame = 0 + 2532 @ frame_needed = 0, uses_anonymous_args = 0 + 2533 0000 08B5 push {r3, lr} + 2534 .LCFI15: + 2535 .cfi_def_cfa_offset 8 + 2536 .cfi_offset 3, -8 + 2537 .cfi_offset 14, -4 +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2538 .loc 1 1322 3 view .LVU804 +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2539 .loc 1 1322 6 is_stmt 0 view .LVU805 + ARM GAS /tmp/ccu53ZgF.s page 83 + + + 2540 0002 064B ldr r3, .L235 + 2541 0004 DB69 ldr r3, [r3, #28] +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** { + 2542 .loc 1 1322 5 view .LVU806 + 2543 0006 13F4807F tst r3, #256 + 2544 000a 00D1 bne .L234 + 2545 .L231: +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2546 .loc 1 1330 1 view .LVU807 + 2547 000c 08BD pop {r3, pc} + 2548 .L234: +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2549 .loc 1 1325 5 is_stmt 1 view .LVU808 + 2550 000e FFF7FEFF bl HAL_RCC_CSSCallback + 2551 .LVL173: +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** } + 2552 .loc 1 1328 5 view .LVU809 + 2553 0012 024B ldr r3, .L235 + 2554 0014 4FF48072 mov r2, #256 + 2555 0018 1A62 str r2, [r3, #32] +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc.c **** + 2556 .loc 1 1330 1 is_stmt 0 view .LVU810 + 2557 001a F7E7 b .L231 + 2558 .L236: + 2559 .align 2 + 2560 .L235: + 2561 001c 00100240 .word 1073876992 + 2562 .cfi_endproc + 2563 .LFE342: + 2565 .text + 2566 .Letext0: + 2567 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 2568 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" + 2569 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 2570 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 2571 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 2572 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h" + 2573 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h" + 2574 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccu53ZgF.s page 84 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_rcc.c + /tmp/ccu53ZgF.s:21 .text.RCC_GetSysClockFreqFromPLLSource:00000000 $t + /tmp/ccu53ZgF.s:26 .text.RCC_GetSysClockFreqFromPLLSource:00000000 RCC_GetSysClockFreqFromPLLSource + /tmp/ccu53ZgF.s:108 .text.RCC_GetSysClockFreqFromPLLSource:0000004c $d + /tmp/ccu53ZgF.s:115 .text.HAL_RCC_DeInit:00000000 $t + /tmp/ccu53ZgF.s:121 .text.HAL_RCC_DeInit:00000000 HAL_RCC_DeInit + /tmp/ccu53ZgF.s:294 .text.HAL_RCC_DeInit:000000bc $d + /tmp/ccu53ZgF.s:302 .text.HAL_RCC_OscConfig:00000000 $t + /tmp/ccu53ZgF.s:308 .text.HAL_RCC_OscConfig:00000000 HAL_RCC_OscConfig + /tmp/ccu53ZgF.s:881 .text.HAL_RCC_OscConfig:000002a8 $d + /tmp/ccu53ZgF.s:886 .text.HAL_RCC_OscConfig:000002b4 $t + /tmp/ccu53ZgF.s:1338 .text.HAL_RCC_OscConfig:000004e0 $d + /tmp/ccu53ZgF.s:1344 .text.HAL_RCC_MCOConfig:00000000 $t + /tmp/ccu53ZgF.s:1350 .text.HAL_RCC_MCOConfig:00000000 HAL_RCC_MCOConfig + /tmp/ccu53ZgF.s:1452 .text.HAL_RCC_MCOConfig:00000058 $d + /tmp/ccu53ZgF.s:1457 .text.HAL_RCC_GetSysClockFreq:00000000 $t + /tmp/ccu53ZgF.s:1463 .text.HAL_RCC_GetSysClockFreq:00000000 HAL_RCC_GetSysClockFreq + /tmp/ccu53ZgF.s:1585 .text.HAL_RCC_GetSysClockFreq:0000007c $d + /tmp/ccu53ZgF.s:1592 .text.HAL_RCC_ClockConfig:00000000 $t + /tmp/ccu53ZgF.s:1598 .text.HAL_RCC_ClockConfig:00000000 HAL_RCC_ClockConfig + /tmp/ccu53ZgF.s:2009 .text.HAL_RCC_ClockConfig:000001e0 $d + /tmp/ccu53ZgF.s:2019 .text.HAL_RCC_GetHCLKFreq:00000000 $t + /tmp/ccu53ZgF.s:2025 .text.HAL_RCC_GetHCLKFreq:00000000 HAL_RCC_GetHCLKFreq + /tmp/ccu53ZgF.s:2040 .text.HAL_RCC_GetHCLKFreq:00000008 $d + /tmp/ccu53ZgF.s:2045 .text.HAL_RCC_GetPCLK1Freq:00000000 $t + /tmp/ccu53ZgF.s:2051 .text.HAL_RCC_GetPCLK1Freq:00000000 HAL_RCC_GetPCLK1Freq + /tmp/ccu53ZgF.s:2082 .text.HAL_RCC_GetPCLK1Freq:0000001c $d + /tmp/ccu53ZgF.s:2088 .text.HAL_RCC_GetPCLK2Freq:00000000 $t + /tmp/ccu53ZgF.s:2094 .text.HAL_RCC_GetPCLK2Freq:00000000 HAL_RCC_GetPCLK2Freq + /tmp/ccu53ZgF.s:2125 .text.HAL_RCC_GetPCLK2Freq:0000001c $d + /tmp/ccu53ZgF.s:2131 .text.HAL_RCC_GetOscConfig:00000000 $t + /tmp/ccu53ZgF.s:2137 .text.HAL_RCC_GetOscConfig:00000000 HAL_RCC_GetOscConfig + /tmp/ccu53ZgF.s:2348 .text.HAL_RCC_GetOscConfig:000000f0 $d + /tmp/ccu53ZgF.s:2353 .text.HAL_RCC_GetClockConfig:00000000 $t + /tmp/ccu53ZgF.s:2359 .text.HAL_RCC_GetClockConfig:00000000 HAL_RCC_GetClockConfig + /tmp/ccu53ZgF.s:2412 .text.HAL_RCC_GetClockConfig:00000034 $d + /tmp/ccu53ZgF.s:2418 .text.HAL_RCC_EnableCSS:00000000 $t + /tmp/ccu53ZgF.s:2424 .text.HAL_RCC_EnableCSS:00000000 HAL_RCC_EnableCSS + /tmp/ccu53ZgF.s:2441 .text.HAL_RCC_EnableCSS:0000000c $d + /tmp/ccu53ZgF.s:2446 .text.HAL_RCC_EnableLSECSS:00000000 $t + /tmp/ccu53ZgF.s:2452 .text.HAL_RCC_EnableLSECSS:00000000 HAL_RCC_EnableLSECSS + /tmp/ccu53ZgF.s:2469 .text.HAL_RCC_EnableLSECSS:00000010 $d + /tmp/ccu53ZgF.s:2474 .text.HAL_RCC_DisableLSECSS:00000000 $t + /tmp/ccu53ZgF.s:2480 .text.HAL_RCC_DisableLSECSS:00000000 HAL_RCC_DisableLSECSS + /tmp/ccu53ZgF.s:2497 .text.HAL_RCC_DisableLSECSS:00000010 $d + /tmp/ccu53ZgF.s:2502 .text.HAL_RCC_CSSCallback:00000000 $t + /tmp/ccu53ZgF.s:2508 .text.HAL_RCC_CSSCallback:00000000 HAL_RCC_CSSCallback + /tmp/ccu53ZgF.s:2521 .text.HAL_RCC_NMI_IRQHandler:00000000 $t + /tmp/ccu53ZgF.s:2527 .text.HAL_RCC_NMI_IRQHandler:00000000 HAL_RCC_NMI_IRQHandler + /tmp/ccu53ZgF.s:2561 .text.HAL_RCC_NMI_IRQHandler:0000001c $d + +UNDEFINED SYMBOLS +HAL_GetTick +HAL_InitTick +SystemCoreClock +uwTickPrio + ARM GAS /tmp/ccu53ZgF.s page 85 + + +HAL_GPIO_Init +AHBPrescTable +APBPrescTable diff --git a/squeow_sw/build/stm32g4xx_hal_rcc.o b/squeow_sw/build/stm32g4xx_hal_rcc.o new file mode 100644 index 0000000000000000000000000000000000000000..58fc026959930478e1e32bf942858f5fa779a902 GIT binary patch literal 27248 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 + 52 .loc 1 131 3 view .LVU6 + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- RTC clock source configuration ----------------------*/ + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) + 53 .loc 1 134 3 view .LVU7 + 54 .loc 1 134 20 is_stmt 0 view .LVU8 + 55 0006 0368 ldr r3, [r0] + 56 .loc 1 134 5 view .LVU9 + 57 0008 13F4002F tst r3, #524288 + 58 000c 69D0 beq .L27 + 59 .LBB2: + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus pwrclkchanged = RESET; + 60 .loc 1 136 5 is_stmt 1 view .LVU10 + 61 .LVL2: + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check for RTC Parameters used to output RTCCLK */ + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + 62 .loc 1 139 5 view .LVU11 + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable Power Clock */ + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 63 .loc 1 142 5 view .LVU12 + 64 .loc 1 142 8 is_stmt 0 view .LVU13 + 65 000e AE4B ldr r3, .L40 + 66 0010 9B6D ldr r3, [r3, #88] + 67 .loc 1 142 7 view .LVU14 + 68 0012 13F0805F tst r3, #268435456 + 69 0016 1ED1 bne .L28 + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PWR_CLK_ENABLE(); + 70 .loc 1 144 7 is_stmt 1 view .LVU15 + 71 .LBB3: + 72 .loc 1 144 7 view .LVU16 + 73 .loc 1 144 7 view .LVU17 + 74 0018 AB4B ldr r3, .L40 + 75 001a 9A6D ldr r2, [r3, #88] + 76 001c 42F08052 orr r2, r2, #268435456 + 77 0020 9A65 str r2, [r3, #88] + 78 .loc 1 144 7 view .LVU18 + 79 0022 9B6D ldr r3, [r3, #88] + 80 0024 03F08053 and r3, r3, #268435456 + 81 0028 0193 str r3, [sp, #4] + 82 .loc 1 144 7 view .LVU19 + 83 002a 019B ldr r3, [sp, #4] + 84 .LBE3: + 85 .loc 1 144 7 view .LVU20 + ARM GAS /tmp/ccXzHHIc.s page 5 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pwrclkchanged = SET; + 86 .loc 1 145 7 view .LVU21 + 87 .LVL3: + 88 .loc 1 145 21 is_stmt 0 view .LVU22 + 89 002c 0126 movs r6, #1 + 90 .LVL4: + 91 .L3: + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable write access to Backup domain */ + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** SET_BIT(PWR->CR1, PWR_CR1_DBP); + 92 .loc 1 149 5 is_stmt 1 view .LVU23 + 93 002e A74A ldr r2, .L40+4 + 94 0030 1368 ldr r3, [r2] + 95 0032 43F48073 orr r3, r3, #256 + 96 0036 1360 str r3, [r2] + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Wait for Backup domain Write protection disable */ + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** tickstart = HAL_GetTick(); + 97 .loc 1 152 5 view .LVU24 + 98 .loc 1 152 17 is_stmt 0 view .LVU25 + 99 0038 FFF7FEFF bl HAL_GetTick + 100 .LVL5: + 101 .loc 1 152 17 view .LVU26 + 102 003c 0546 mov r5, r0 + 103 .LVL6: + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** while((PWR->CR1 & PWR_CR1_DBP) == 0U) + 104 .loc 1 154 5 is_stmt 1 view .LVU27 + 105 .L4: + 106 .loc 1 154 36 view .LVU28 + 107 .loc 1 154 15 is_stmt 0 view .LVU29 + 108 003e A34B ldr r3, .L40+4 + 109 0040 1B68 ldr r3, [r3] + 110 .loc 1 154 36 view .LVU30 + 111 0042 13F4807F tst r3, #256 + 112 0046 08D1 bne .L32 + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 113 .loc 1 156 7 is_stmt 1 view .LVU31 + 114 .loc 1 156 11 is_stmt 0 view .LVU32 + 115 0048 FFF7FEFF bl HAL_GetTick + 116 .LVL7: + 117 .loc 1 156 25 view .LVU33 + 118 004c 401B subs r0, r0, r5 + 119 .loc 1 156 9 view .LVU34 + 120 004e 0228 cmp r0, #2 + 121 0050 F5D9 bls .L4 + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** ret = HAL_TIMEOUT; + 122 .loc 1 158 13 view .LVU35 + 123 0052 0325 movs r5, #3 + 124 .LVL8: + 125 .loc 1 158 13 view .LVU36 + 126 0054 02E0 b .L5 + 127 .LVL9: + 128 .L28: + ARM GAS /tmp/ccXzHHIc.s page 6 + + + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 129 .loc 1 136 22 view .LVU37 + 130 0056 0026 movs r6, #0 + 131 0058 E9E7 b .L3 + 132 .LVL10: + 133 .L32: + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 134 .loc 1 136 22 view .LVU38 + 135 .LBE2: + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_StatusTypeDef status = HAL_OK; /* Final status */ + 136 .loc 1 127 21 view .LVU39 + 137 005a 0025 movs r5, #0 + 138 .LVL11: + 139 .L5: + 140 .LBB4: + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(ret == HAL_OK) + 141 .loc 1 163 5 is_stmt 1 view .LVU40 + 142 .loc 1 163 7 is_stmt 0 view .LVU41 + 143 005c 45BB cbnz r5, .L7 + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Reset the Backup domain only if the RTC Clock source selection is modified from default */ + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** tmpregister = READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL); + 144 .loc 1 166 7 is_stmt 1 view .LVU42 + 145 .loc 1 166 21 is_stmt 0 view .LVU43 + 146 005e 9A4B ldr r3, .L40 + 147 0060 D3F89030 ldr r3, [r3, #144] + 148 .LVL12: + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((tmpregister != RCC_RTCCLKSOURCE_NONE) && (tmpregister != PeriphClkInit->RTCClockSelection + 149 .loc 1 168 7 is_stmt 1 view .LVU44 + 150 .loc 1 168 9 is_stmt 0 view .LVU45 + 151 0064 13F44073 ands r3, r3, #768 + 152 .LVL13: + 153 .loc 1 168 9 view .LVU46 + 154 0068 15D0 beq .L8 + 155 .loc 1 168 81 discriminator 1 view .LVU47 + 156 006a 226C ldr r2, [r4, #64] + 157 .loc 1 168 49 discriminator 1 view .LVU48 + 158 006c 9A42 cmp r2, r3 + 159 006e 12D0 beq .L8 + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Store the content of BDCR register before the reset of Backup Domain */ + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** tmpregister = READ_BIT(RCC->BDCR, ~(RCC_BDCR_RTCSEL)); + 160 .loc 1 171 9 is_stmt 1 view .LVU49 + 161 .loc 1 171 23 is_stmt 0 view .LVU50 + 162 0070 954A ldr r2, .L40 + 163 0072 D2F89030 ldr r3, [r2, #144] + 164 .LVL14: + 165 .loc 1 171 21 view .LVU51 + 166 0076 23F44073 bic r3, r3, #768 + 167 .LVL15: + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* RTC Clock selection can be changed only if the Backup Domain is reset */ + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_BACKUPRESET_FORCE(); + ARM GAS /tmp/ccXzHHIc.s page 7 + + + 168 .loc 1 173 9 is_stmt 1 view .LVU52 + 169 007a D2F89010 ldr r1, [r2, #144] + 170 007e 41F48031 orr r1, r1, #65536 + 171 0082 C2F89010 str r1, [r2, #144] + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_BACKUPRESET_RELEASE(); + 172 .loc 1 174 9 view .LVU53 + 173 0086 D2F89010 ldr r1, [r2, #144] + 174 008a 21F48031 bic r1, r1, #65536 + 175 008e C2F89010 str r1, [r2, #144] + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Restore the Content of BDCR register */ + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC->BDCR = tmpregister; + 176 .loc 1 176 9 view .LVU54 + 177 .loc 1 176 19 is_stmt 0 view .LVU55 + 178 0092 C2F89030 str r3, [r2, #144] + 179 .L8: + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if (HAL_IS_BIT_SET(tmpregister, RCC_BDCR_LSEON)) + 180 .loc 1 180 7 is_stmt 1 view .LVU56 + 181 .loc 1 180 10 is_stmt 0 view .LVU57 + 182 0096 13F0010F tst r3, #1 + 183 009a 10D1 bne .L33 + 184 .LVL16: + 185 .L9: + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get Start Tick*/ + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** tickstart = HAL_GetTick(); + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Wait till LSE is ready */ + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** ret = HAL_TIMEOUT; + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(ret == HAL_OK) + 186 .loc 1 196 7 is_stmt 1 view .LVU58 + 187 .loc 1 196 9 is_stmt 0 view .LVU59 + 188 009c 45B9 cbnz r5, .L7 + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Apply new RTC clock source selection */ + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); + 189 .loc 1 199 9 is_stmt 1 view .LVU60 + 190 009e 8A4A ldr r2, .L40 + 191 00a0 D2F89030 ldr r3, [r2, #144] + 192 00a4 23F44073 bic r3, r3, #768 + 193 00a8 216C ldr r1, [r4, #64] + 194 00aa 0B43 orrs r3, r3, r1 + 195 00ac C2F89030 str r3, [r2, #144] + 196 .LVL17: + 197 .L7: + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + ARM GAS /tmp/ccXzHHIc.s page 8 + + + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* set overall return value */ + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** status = ret; + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* set overall return value */ + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** status = ret; + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Restore clock configuration if changed */ + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pwrclkchanged == SET) + 198 .loc 1 214 5 view .LVU61 + 199 .loc 1 214 7 is_stmt 0 view .LVU62 + 200 00b0 C6B1 cbz r6, .L2 + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PWR_CLK_DISABLE(); + 201 .loc 1 216 7 is_stmt 1 view .LVU63 + 202 00b2 854A ldr r2, .L40 + 203 00b4 936D ldr r3, [r2, #88] + 204 00b6 23F08053 bic r3, r3, #268435456 + 205 00ba 9365 str r3, [r2, #88] + 206 00bc 12E0 b .L2 + 207 .LVL18: + 208 .L33: + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 209 .loc 1 183 9 view .LVU64 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 210 .loc 1 183 21 is_stmt 0 view .LVU65 + 211 00be FFF7FEFF bl HAL_GetTick + 212 .LVL19: + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 213 .loc 1 183 21 view .LVU66 + 214 00c2 0746 mov r7, r0 + 215 .LVL20: + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 216 .loc 1 186 9 is_stmt 1 view .LVU67 + 217 .L10: + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 218 .loc 1 186 52 view .LVU68 + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 219 .loc 1 186 15 is_stmt 0 view .LVU69 + 220 00c4 804B ldr r3, .L40 + 221 00c6 D3F89030 ldr r3, [r3, #144] + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 222 .loc 1 186 52 view .LVU70 + 223 00ca 13F0020F tst r3, #2 + 224 00ce E5D1 bne .L9 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 225 .loc 1 188 11 is_stmt 1 view .LVU71 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 226 .loc 1 188 15 is_stmt 0 view .LVU72 + 227 00d0 FFF7FEFF bl HAL_GetTick + 228 .LVL21: + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 9 + + + 229 .loc 1 188 29 view .LVU73 + 230 00d4 C01B subs r0, r0, r7 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 231 .loc 1 188 13 view .LVU74 + 232 00d6 41F28833 movw r3, #5000 + 233 00da 9842 cmp r0, r3 + 234 00dc F2D9 bls .L10 + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 235 .loc 1 190 17 view .LVU75 + 236 00de 0325 movs r5, #3 + 237 .LVL22: + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 238 .loc 1 190 17 view .LVU76 + 239 00e0 DCE7 b .L9 + 240 .LVL23: + 241 .L27: + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 242 .loc 1 190 17 view .LVU77 + 243 .LBE4: + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 244 .loc 1 128 21 view .LVU78 + 245 00e2 0025 movs r5, #0 + 246 .LVL24: + 247 .L2: + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- USART1 clock source configuration -------------------*/ + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) + 248 .loc 1 221 3 is_stmt 1 view .LVU79 + 249 .loc 1 221 21 is_stmt 0 view .LVU80 + 250 00e4 2368 ldr r3, [r4] + 251 .loc 1 221 5 view .LVU81 + 252 00e6 13F0010F tst r3, #1 + 253 00ea 08D0 beq .L12 + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); + 254 .loc 1 224 5 is_stmt 1 view .LVU82 + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the USART1 clock source */ + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); + 255 .loc 1 227 5 view .LVU83 + 256 00ec 764A ldr r2, .L40 + 257 00ee D2F88830 ldr r3, [r2, #136] + 258 00f2 23F00303 bic r3, r3, #3 + 259 00f6 6168 ldr r1, [r4, #4] + 260 00f8 0B43 orrs r3, r3, r1 + 261 00fa C2F88830 str r3, [r2, #136] + 262 .L12: + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- USART2 clock source configuration -------------------*/ + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) + 263 .loc 1 231 3 view .LVU84 + 264 .loc 1 231 21 is_stmt 0 view .LVU85 + 265 00fe 2368 ldr r3, [r4] + ARM GAS /tmp/ccXzHHIc.s page 10 + + + 266 .loc 1 231 5 view .LVU86 + 267 0100 13F0020F tst r3, #2 + 268 0104 08D0 beq .L13 + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); + 269 .loc 1 234 5 is_stmt 1 view .LVU87 + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the USART2 clock source */ + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); + 270 .loc 1 237 5 view .LVU88 + 271 0106 704A ldr r2, .L40 + 272 0108 D2F88830 ldr r3, [r2, #136] + 273 010c 23F00C03 bic r3, r3, #12 + 274 0110 A168 ldr r1, [r4, #8] + 275 0112 0B43 orrs r3, r3, r1 + 276 0114 C2F88830 str r3, [r2, #136] + 277 .L13: + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- USART3 clock source configuration -------------------*/ + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) + 278 .loc 1 241 3 view .LVU89 + 279 .loc 1 241 21 is_stmt 0 view .LVU90 + 280 0118 2368 ldr r3, [r4] + 281 .loc 1 241 5 view .LVU91 + 282 011a 13F0040F tst r3, #4 + 283 011e 08D0 beq .L14 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); + 284 .loc 1 244 5 is_stmt 1 view .LVU92 + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the USART3 clock source */ + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); + 285 .loc 1 247 5 view .LVU93 + 286 0120 694A ldr r2, .L40 + 287 0122 D2F88830 ldr r3, [r2, #136] + 288 0126 23F03003 bic r3, r3, #48 + 289 012a E168 ldr r1, [r4, #12] + 290 012c 0B43 orrs r3, r3, r1 + 291 012e C2F88830 str r3, [r2, #136] + 292 .L14: + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(UART4) + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- UART4 clock source configuration --------------------*/ + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) + 293 .loc 1 252 3 view .LVU94 + 294 .loc 1 252 21 is_stmt 0 view .LVU95 + 295 0132 2368 ldr r3, [r4] + 296 .loc 1 252 5 view .LVU96 + 297 0134 13F0080F tst r3, #8 + 298 0138 08D0 beq .L15 + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); + ARM GAS /tmp/ccXzHHIc.s page 11 + + + 299 .loc 1 255 5 is_stmt 1 view .LVU97 + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the UART4 clock source */ + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); + 300 .loc 1 258 5 view .LVU98 + 301 013a 634A ldr r2, .L40 + 302 013c D2F88830 ldr r3, [r2, #136] + 303 0140 23F0C003 bic r3, r3, #192 + 304 0144 2169 ldr r1, [r4, #16] + 305 0146 0B43 orrs r3, r3, r1 + 306 0148 C2F88830 str r3, [r2, #136] + 307 .L15: + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* UART4 */ + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(UART5) + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- UART5 clock source configuration --------------------*/ + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the UART5 clock source */ + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* UART5 */ + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- LPUART1 clock source configuration ------------------*/ + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) + 308 .loc 1 277 3 view .LVU99 + 309 .loc 1 277 21 is_stmt 0 view .LVU100 + 310 014c 2368 ldr r3, [r4] + 311 .loc 1 277 5 view .LVU101 + 312 014e 13F0200F tst r3, #32 + 313 0152 08D0 beq .L16 + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_LPUART1CLKSOURCE(PeriphClkInit->Lpuart1ClockSelection)); + 314 .loc 1 280 5 is_stmt 1 view .LVU102 + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the LPUAR1 clock source */ + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_LPUART1_CONFIG(PeriphClkInit->Lpuart1ClockSelection); + 315 .loc 1 283 5 view .LVU103 + 316 0154 5C4A ldr r2, .L40 + 317 0156 D2F88830 ldr r3, [r2, #136] + 318 015a 23F44063 bic r3, r3, #3072 + 319 015e 6169 ldr r1, [r4, #20] + 320 0160 0B43 orrs r3, r3, r1 + 321 0162 C2F88830 str r3, [r2, #136] + 322 .L16: + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- I2C1 clock source configuration ---------------------*/ + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) + 323 .loc 1 287 3 view .LVU104 + ARM GAS /tmp/ccXzHHIc.s page 12 + + + 324 .loc 1 287 21 is_stmt 0 view .LVU105 + 325 0166 2368 ldr r3, [r4] + 326 .loc 1 287 5 view .LVU106 + 327 0168 13F0400F tst r3, #64 + 328 016c 08D0 beq .L17 + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); + 329 .loc 1 290 5 is_stmt 1 view .LVU107 + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the I2C1 clock source */ + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); + 330 .loc 1 293 5 view .LVU108 + 331 016e 564A ldr r2, .L40 + 332 0170 D2F88830 ldr r3, [r2, #136] + 333 0174 23F44053 bic r3, r3, #12288 + 334 0178 A169 ldr r1, [r4, #24] + 335 017a 0B43 orrs r3, r3, r1 + 336 017c C2F88830 str r3, [r2, #136] + 337 .L17: + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- I2C2 clock source configuration ---------------------*/ + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) + 338 .loc 1 297 3 view .LVU109 + 339 .loc 1 297 21 is_stmt 0 view .LVU110 + 340 0180 2368 ldr r3, [r4] + 341 .loc 1 297 5 view .LVU111 + 342 0182 13F0800F tst r3, #128 + 343 0186 08D0 beq .L18 + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); + 344 .loc 1 300 5 is_stmt 1 view .LVU112 + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the I2C2 clock source */ + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); + 345 .loc 1 303 5 view .LVU113 + 346 0188 4F4A ldr r2, .L40 + 347 018a D2F88830 ldr r3, [r2, #136] + 348 018e 23F44043 bic r3, r3, #49152 + 349 0192 E169 ldr r1, [r4, #28] + 350 0194 0B43 orrs r3, r3, r1 + 351 0196 C2F88830 str r3, [r2, #136] + 352 .L18: + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- I2C3 clock source configuration ---------------------*/ + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) + 353 .loc 1 307 3 view .LVU114 + 354 .loc 1 307 21 is_stmt 0 view .LVU115 + 355 019a 2368 ldr r3, [r4] + 356 .loc 1 307 5 view .LVU116 + 357 019c 13F4807F tst r3, #256 + 358 01a0 08D0 beq .L19 + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + ARM GAS /tmp/ccXzHHIc.s page 13 + + + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); + 359 .loc 1 310 5 is_stmt 1 view .LVU117 + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the I2C3 clock source */ + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); + 360 .loc 1 313 5 view .LVU118 + 361 01a2 494A ldr r2, .L40 + 362 01a4 D2F88830 ldr r3, [r2, #136] + 363 01a8 23F44033 bic r3, r3, #196608 + 364 01ac 216A ldr r1, [r4, #32] + 365 01ae 0B43 orrs r3, r3, r1 + 366 01b0 C2F88830 str r3, [r2, #136] + 367 .L19: + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(I2C4) + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- I2C4 clock source configuration ---------------------*/ + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the I2C4 clock source */ + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* I2C4 */ + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- LPTIM1 clock source configuration ---------------------*/ + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) + 368 .loc 1 331 3 view .LVU119 + 369 .loc 1 331 21 is_stmt 0 view .LVU120 + 370 01b4 2368 ldr r3, [r4] + 371 .loc 1 331 5 view .LVU121 + 372 01b6 13F4007F tst r3, #512 + 373 01ba 08D0 beq .L20 + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_LPTIM1CLKSOURCE(PeriphClkInit->Lptim1ClockSelection)); + 374 .loc 1 334 5 is_stmt 1 view .LVU122 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the LPTIM1 clock source */ + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); + 375 .loc 1 337 5 view .LVU123 + 376 01bc 424A ldr r2, .L40 + 377 01be D2F88830 ldr r3, [r2, #136] + 378 01c2 23F44023 bic r3, r3, #786432 + 379 01c6 616A ldr r1, [r4, #36] + 380 01c8 0B43 orrs r3, r3, r1 + 381 01ca C2F88830 str r3, [r2, #136] + 382 .L20: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- SAI1 clock source configuration ---------------------*/ + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) + 383 .loc 1 341 3 view .LVU124 + ARM GAS /tmp/ccXzHHIc.s page 14 + + + 384 .loc 1 341 21 is_stmt 0 view .LVU125 + 385 01ce 2368 ldr r3, [r4] + 386 .loc 1 341 5 view .LVU126 + 387 01d0 13F4806F tst r3, #1024 + 388 01d4 0CD0 beq .L21 + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); + 389 .loc 1 344 5 is_stmt 1 view .LVU127 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the SAI1 interface clock source */ + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); + 390 .loc 1 347 5 view .LVU128 + 391 01d6 3C4A ldr r2, .L40 + 392 01d8 D2F88830 ldr r3, [r2, #136] + 393 01dc 23F44013 bic r3, r3, #3145728 + 394 01e0 A16A ldr r1, [r4, #40] + 395 01e2 0B43 orrs r3, r3, r1 + 396 01e4 C2F88830 str r3, [r2, #136] + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLL) + 397 .loc 1 349 5 view .LVU129 + 398 .loc 1 349 21 is_stmt 0 view .LVU130 + 399 01e8 A36A ldr r3, [r4, #40] + 400 .loc 1 349 7 view .LVU131 + 401 01ea B3F5801F cmp r3, #1048576 + 402 01ee 57D0 beq .L34 + 403 .L21: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLL48M1CLK output */ + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- I2S clock source configuration ---------------------*/ + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) + 404 .loc 1 357 3 is_stmt 1 view .LVU132 + 405 .loc 1 357 21 is_stmt 0 view .LVU133 + 406 01f0 2368 ldr r3, [r4] + 407 .loc 1 357 5 view .LVU134 + 408 01f2 13F4006F tst r3, #2048 + 409 01f6 0CD0 beq .L22 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); + 410 .loc 1 360 5 is_stmt 1 view .LVU135 + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the I2S interface clock source */ + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); + 411 .loc 1 363 5 view .LVU136 + 412 01f8 334A ldr r2, .L40 + 413 01fa D2F88830 ldr r3, [r2, #136] + 414 01fe 23F44003 bic r3, r3, #12582912 + 415 0202 E16A ldr r1, [r4, #44] + 416 0204 0B43 orrs r3, r3, r1 + 417 0206 C2F88830 str r3, [r2, #136] + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + ARM GAS /tmp/ccXzHHIc.s page 15 + + + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLL) + 418 .loc 1 365 5 view .LVU137 + 419 .loc 1 365 21 is_stmt 0 view .LVU138 + 420 020a E36A ldr r3, [r4, #44] + 421 .loc 1 365 7 view .LVU139 + 422 020c B3F5800F cmp r3, #4194304 + 423 0210 4BD0 beq .L35 + 424 .L22: + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLL48M1CLK output */ + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(FDCAN1) + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- FDCAN clock source configuration ---------------------*/ + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_FDCAN) == RCC_PERIPHCLK_FDCAN) + 425 .loc 1 374 3 is_stmt 1 view .LVU140 + 426 .loc 1 374 21 is_stmt 0 view .LVU141 + 427 0212 2368 ldr r3, [r4] + 428 .loc 1 374 5 view .LVU142 + 429 0214 13F4805F tst r3, #4096 + 430 0218 0CD0 beq .L23 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_FDCANCLKSOURCE(PeriphClkInit->FdcanClockSelection)); + 431 .loc 1 377 5 is_stmt 1 view .LVU143 + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the FDCAN interface clock source */ + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_FDCAN_CONFIG(PeriphClkInit->FdcanClockSelection); + 432 .loc 1 380 5 view .LVU144 + 433 021a 2B4A ldr r2, .L40 + 434 021c D2F88830 ldr r3, [r2, #136] + 435 0220 23F04073 bic r3, r3, #50331648 + 436 0224 216B ldr r1, [r4, #48] + 437 0226 0B43 orrs r3, r3, r1 + 438 0228 C2F88830 str r3, [r2, #136] + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->FdcanClockSelection == RCC_FDCANCLKSOURCE_PLL) + 439 .loc 1 382 5 view .LVU145 + 440 .loc 1 382 21 is_stmt 0 view .LVU146 + 441 022c 236B ldr r3, [r4, #48] + 442 .loc 1 382 7 view .LVU147 + 443 022e B3F1807F cmp r3, #16777216 + 444 0232 3FD0 beq .L36 + 445 .L23: + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLL48M1CLK output */ + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* FDCAN1 */ + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(USB) + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- USB clock source configuration ----------------------*/ + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == (RCC_PERIPHCLK_USB)) + ARM GAS /tmp/ccXzHHIc.s page 16 + + + 446 .loc 1 393 3 is_stmt 1 view .LVU148 + 447 .loc 1 393 21 is_stmt 0 view .LVU149 + 448 0234 2368 ldr r3, [r4] + 449 .loc 1 393 5 view .LVU150 + 450 0236 13F4005F tst r3, #8192 + 451 023a 0CD0 beq .L24 + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_USBCLKSOURCE(PeriphClkInit->UsbClockSelection)); + 452 .loc 1 395 5 is_stmt 1 view .LVU151 + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection); + 453 .loc 1 396 5 view .LVU152 + 454 023c 224A ldr r2, .L40 + 455 023e D2F88830 ldr r3, [r2, #136] + 456 0242 23F04063 bic r3, r3, #201326592 + 457 0246 616B ldr r1, [r4, #52] + 458 0248 0B43 orrs r3, r3, r1 + 459 024a C2F88830 str r3, [r2, #136] + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLL) + 460 .loc 1 398 5 view .LVU153 + 461 .loc 1 398 21 is_stmt 0 view .LVU154 + 462 024e 636B ldr r3, [r4, #52] + 463 .loc 1 398 7 view .LVU155 + 464 0250 B3F1006F cmp r3, #134217728 + 465 0254 33D0 beq .L37 + 466 .L24: + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLL48M1CLK output */ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* USB */ + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- RNG clock source configuration ----------------------*/ + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RNG) == (RCC_PERIPHCLK_RNG)) + 467 .loc 1 408 3 is_stmt 1 view .LVU156 + 468 .loc 1 408 21 is_stmt 0 view .LVU157 + 469 0256 2368 ldr r3, [r4] + 470 .loc 1 408 5 view .LVU158 + 471 0258 13F4804F tst r3, #16384 + 472 025c 0CD0 beq .L25 + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_RNGCLKSOURCE(PeriphClkInit->RngClockSelection)); + 473 .loc 1 410 5 is_stmt 1 view .LVU159 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_RNG_CONFIG(PeriphClkInit->RngClockSelection); + 474 .loc 1 411 5 view .LVU160 + 475 025e 1A4A ldr r2, .L40 + 476 0260 D2F88830 ldr r3, [r2, #136] + 477 0264 23F04063 bic r3, r3, #201326592 + 478 0268 A16B ldr r1, [r4, #56] + 479 026a 0B43 orrs r3, r3, r1 + 480 026c C2F88830 str r3, [r2, #136] + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLL) + 481 .loc 1 413 5 view .LVU161 + 482 .loc 1 413 21 is_stmt 0 view .LVU162 + ARM GAS /tmp/ccXzHHIc.s page 17 + + + 483 0270 A36B ldr r3, [r4, #56] + 484 .loc 1 413 7 view .LVU163 + 485 0272 B3F1006F cmp r3, #134217728 + 486 0276 2BD0 beq .L38 + 487 .L25: + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLL48M1CLK output */ + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- ADC12 clock source configuration ----------------------*/ + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) + 488 .loc 1 421 3 is_stmt 1 view .LVU164 + 489 .loc 1 421 21 is_stmt 0 view .LVU165 + 490 0278 2368 ldr r3, [r4] + 491 .loc 1 421 5 view .LVU166 + 492 027a 13F4004F tst r3, #32768 + 493 027e 0CD0 beq .L26 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_ADC12CLKSOURCE(PeriphClkInit->Adc12ClockSelection)); + 494 .loc 1 424 5 is_stmt 1 view .LVU167 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the ADC12 interface clock source */ + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_ADC12_CONFIG(PeriphClkInit->Adc12ClockSelection); + 495 .loc 1 427 5 view .LVU168 + 496 0280 114A ldr r2, .L40 + 497 0282 D2F88830 ldr r3, [r2, #136] + 498 0286 23F04053 bic r3, r3, #805306368 + 499 028a E16B ldr r1, [r4, #60] + 500 028c 0B43 orrs r3, r3, r1 + 501 028e C2F88830 str r3, [r2, #136] + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->Adc12ClockSelection == RCC_ADC12CLKSOURCE_PLL) + 502 .loc 1 429 5 view .LVU169 + 503 .loc 1 429 21 is_stmt 0 view .LVU170 + 504 0292 E36B ldr r3, [r4, #60] + 505 .loc 1 429 7 view .LVU171 + 506 0294 B3F1805F cmp r3, #268435456 + 507 0298 1FD0 beq .L39 + 508 .L26: + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLLADCCLK output */ + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK); + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(ADC345_COMMON) + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- ADC345 clock source configuration ----------------------*/ + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC345) == RCC_PERIPHCLK_ADC345) + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_ADC345CLKSOURCE(PeriphClkInit->Adc345ClockSelection)); + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the ADC345 interface clock source */ + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_ADC345_CONFIG(PeriphClkInit->Adc345ClockSelection); + ARM GAS /tmp/ccXzHHIc.s page 18 + + + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->Adc345ClockSelection == RCC_ADC345CLKSOURCE_PLL) + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLLADCCLK output */ + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK); + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* ADC345_COMMON */ + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(QUADSPI) + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /*-------------------------- QuadSPIx clock source configuration ----------------*/ + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_QSPI) == RCC_PERIPHCLK_QSPI) + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_QSPICLKSOURCE(PeriphClkInit->QspiClockSelection)); + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the QuadSPI clock source */ + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_QSPI_CONFIG(PeriphClkInit->QspiClockSelection); + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClkInit->QspiClockSelection == RCC_QSPICLKSOURCE_PLL) + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable PLL48M1CLK output */ + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* QUADSPI */ + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** return status; + 509 .loc 1 474 3 is_stmt 1 view .LVU172 + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 510 .loc 1 475 1 is_stmt 0 view .LVU173 + 511 029a 2846 mov r0, r5 + 512 029c 03B0 add sp, sp, #12 + 513 .LCFI2: + 514 .cfi_remember_state + 515 .cfi_def_cfa_offset 20 + 516 @ sp needed + 517 029e F0BD pop {r4, r5, r6, r7, pc} + 518 .LVL25: + 519 .L34: + 520 .LCFI3: + 521 .cfi_restore_state + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 522 .loc 1 352 7 is_stmt 1 view .LVU174 + 523 02a0 D368 ldr r3, [r2, #12] + 524 02a2 43F48013 orr r3, r3, #1048576 + 525 02a6 D360 str r3, [r2, #12] + 526 02a8 A2E7 b .L21 + 527 .L35: + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 528 .loc 1 368 7 view .LVU175 + 529 02aa D368 ldr r3, [r2, #12] + 530 02ac 43F48013 orr r3, r3, #1048576 + 531 02b0 D360 str r3, [r2, #12] + 532 02b2 AEE7 b .L22 + ARM GAS /tmp/ccXzHHIc.s page 19 + + + 533 .L36: + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 534 .loc 1 385 7 view .LVU176 + 535 02b4 D368 ldr r3, [r2, #12] + 536 02b6 43F48013 orr r3, r3, #1048576 + 537 02ba D360 str r3, [r2, #12] + 538 02bc BAE7 b .L23 + 539 .L37: + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 540 .loc 1 401 7 view .LVU177 + 541 02be D368 ldr r3, [r2, #12] + 542 02c0 43F48013 orr r3, r3, #1048576 + 543 02c4 D360 str r3, [r2, #12] + 544 02c6 C6E7 b .L24 + 545 .L41: + 546 .align 2 + 547 .L40: + 548 02c8 00100240 .word 1073876992 + 549 02cc 00700040 .word 1073770496 + 550 .L38: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 551 .loc 1 416 7 view .LVU178 + 552 02d0 D368 ldr r3, [r2, #12] + 553 02d2 43F48013 orr r3, r3, #1048576 + 554 02d6 D360 str r3, [r2, #12] + 555 02d8 CEE7 b .L25 + 556 .L39: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 557 .loc 1 432 7 view .LVU179 + 558 02da D368 ldr r3, [r2, #12] + 559 02dc 43F48033 orr r3, r3, #65536 + 560 02e0 D360 str r3, [r2, #12] + 561 02e2 DAE7 b .L26 + 562 .cfi_endproc + 563 .LFE329: + 565 .section .text.HAL_RCCEx_GetPeriphCLKConfig,"ax",%progbits + 566 .align 1 + 567 .global HAL_RCCEx_GetPeriphCLKConfig + 568 .syntax unified + 569 .thumb + 570 .thumb_func + 572 HAL_RCCEx_GetPeriphCLKConfig: + 573 .LVL26: + 574 .LFB330: + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Get the RCC_ClkInitStruct according to the internal RCC configuration registers. + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param PeriphClkInit pointer to an RCC_PeriphCLKInitTypeDef structure that + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * returns the configuration information for the Extended Peripherals + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * clocks(USART1, USART2, USART3, UART4, UART5, LPUART1, I2C1, I2C2, I2C3, I2C4, + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * LPTIM1, SAI1, I2Sx, FDCANx, USB, RNG, ADCx, RTC, QSPI). + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 575 .loc 1 486 1 view -0 + 576 .cfi_startproc + ARM GAS /tmp/ccXzHHIc.s page 20 + + + 577 @ args = 0, pretend = 0, frame = 0 + 578 @ frame_needed = 0, uses_anonymous_args = 0 + 579 @ link register save eliminated. + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set all possible values for the extended clock type parameter------------*/ + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(STM32G474xx) || defined(STM32G484xx) + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCL + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_UART5 | \ + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCL + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_I2C4 | \ + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCL + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCL + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_QSPI | \ + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RTC; + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #elif defined(STM32G491xx) || defined(STM32G4A1xx) + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCL + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_UART5 | \ + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCL + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCL + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCL + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_QSPI | \ + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RTC; + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #elif defined(STM32G473xx) || defined(STM32G483xx) + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCL + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_UART5 | \ + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCL + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_I2C4 | \ + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCL + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCL + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_QSPI | \ + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RTC; + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #elif defined(STM32G471xx) + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCL + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_UART5 | \ + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCL + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_I2C4 | \ + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCL + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCL + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RTC; + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #elif defined(STM32G431xx) || defined(STM32G441xx) + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCL + 580 .loc 1 531 3 view .LVU181 + 581 .loc 1 531 39 is_stmt 0 view .LVU182 + 582 0000 294B ldr r3, .L43 + 583 0002 0360 str r3, [r0] + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCL + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCL + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCL + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RTC; + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #elif defined(STM32GBK1CB) + ARM GAS /tmp/ccXzHHIc.s page 21 + + + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCL + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCL + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_LPTIM1 | RCC_PERIPHCLK_SAI1 | RCC_PERIPHCL + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB | RCC_PERIPHCL + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** RCC_PERIPHCLK_RTC; + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* STM32G431xx */ + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the USART1 clock source ---------------------------------------------*/ + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Usart1ClockSelection = __HAL_RCC_GET_USART1_SOURCE(); + 584 .loc 1 548 3 is_stmt 1 view .LVU183 + 585 .loc 1 548 42 is_stmt 0 view .LVU184 + 586 0004 294B ldr r3, .L43+4 + 587 0006 D3F88820 ldr r2, [r3, #136] + 588 000a 02F00302 and r2, r2, #3 + 589 .loc 1 548 40 view .LVU185 + 590 000e 4260 str r2, [r0, #4] + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the USART2 clock source ---------------------------------------------*/ + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Usart2ClockSelection = __HAL_RCC_GET_USART2_SOURCE(); + 591 .loc 1 550 3 is_stmt 1 view .LVU186 + 592 .loc 1 550 42 is_stmt 0 view .LVU187 + 593 0010 D3F88820 ldr r2, [r3, #136] + 594 0014 02F00C02 and r2, r2, #12 + 595 .loc 1 550 40 view .LVU188 + 596 0018 8260 str r2, [r0, #8] + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the USART3 clock source ---------------------------------------------*/ + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Usart3ClockSelection = __HAL_RCC_GET_USART3_SOURCE(); + 597 .loc 1 552 3 is_stmt 1 view .LVU189 + 598 .loc 1 552 42 is_stmt 0 view .LVU190 + 599 001a D3F88820 ldr r2, [r3, #136] + 600 001e 02F03002 and r2, r2, #48 + 601 .loc 1 552 40 view .LVU191 + 602 0022 C260 str r2, [r0, #12] + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(UART4) + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the UART4 clock source ----------------------------------------------*/ + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Uart4ClockSelection = __HAL_RCC_GET_UART4_SOURCE(); + 603 .loc 1 556 3 is_stmt 1 view .LVU192 + 604 .loc 1 556 42 is_stmt 0 view .LVU193 + 605 0024 D3F88820 ldr r2, [r3, #136] + 606 0028 02F0C002 and r2, r2, #192 + 607 .loc 1 556 40 view .LVU194 + 608 002c 0261 str r2, [r0, #16] + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* UART4 */ + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(UART5) + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the UART5 clock source ----------------------------------------------*/ + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Uart5ClockSelection = __HAL_RCC_GET_UART5_SOURCE(); + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* UART5 */ + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the LPUART1 clock source --------------------------------------------*/ + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Lpuart1ClockSelection = __HAL_RCC_GET_LPUART1_SOURCE(); + 609 .loc 1 565 3 is_stmt 1 view .LVU195 + 610 .loc 1 565 42 is_stmt 0 view .LVU196 + 611 002e D3F88820 ldr r2, [r3, #136] + ARM GAS /tmp/ccXzHHIc.s page 22 + + + 612 0032 02F44062 and r2, r2, #3072 + 613 .loc 1 565 40 view .LVU197 + 614 0036 4261 str r2, [r0, #20] + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the I2C1 clock source -----------------------------------------------*/ + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->I2c1ClockSelection = __HAL_RCC_GET_I2C1_SOURCE(); + 615 .loc 1 568 3 is_stmt 1 view .LVU198 + 616 .loc 1 568 42 is_stmt 0 view .LVU199 + 617 0038 D3F88820 ldr r2, [r3, #136] + 618 003c 02F44052 and r2, r2, #12288 + 619 .loc 1 568 40 view .LVU200 + 620 0040 8261 str r2, [r0, #24] + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the I2C2 clock source ----------------------------------------------*/ + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->I2c2ClockSelection = __HAL_RCC_GET_I2C2_SOURCE(); + 621 .loc 1 571 3 is_stmt 1 view .LVU201 + 622 .loc 1 571 42 is_stmt 0 view .LVU202 + 623 0042 D3F88820 ldr r2, [r3, #136] + 624 0046 02F44042 and r2, r2, #49152 + 625 .loc 1 571 40 view .LVU203 + 626 004a C261 str r2, [r0, #28] + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the I2C3 clock source -----------------------------------------------*/ + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->I2c3ClockSelection = __HAL_RCC_GET_I2C3_SOURCE(); + 627 .loc 1 574 3 is_stmt 1 view .LVU204 + 628 .loc 1 574 42 is_stmt 0 view .LVU205 + 629 004c D3F88820 ldr r2, [r3, #136] + 630 0050 02F44032 and r2, r2, #196608 + 631 .loc 1 574 40 view .LVU206 + 632 0054 0262 str r2, [r0, #32] + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(I2C4) + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the I2C4 clock source -----------------------------------------------*/ + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->I2c4ClockSelection = __HAL_RCC_GET_I2C4_SOURCE(); + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* I2C4 */ + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the LPTIM1 clock source ---------------------------------------------*/ + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Lptim1ClockSelection = __HAL_RCC_GET_LPTIM1_SOURCE(); + 633 .loc 1 582 3 is_stmt 1 view .LVU207 + 634 .loc 1 582 42 is_stmt 0 view .LVU208 + 635 0056 D3F88820 ldr r2, [r3, #136] + 636 005a 02F44022 and r2, r2, #786432 + 637 .loc 1 582 40 view .LVU209 + 638 005e 4262 str r2, [r0, #36] + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the SAI1 clock source -----------------------------------------------*/ + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Sai1ClockSelection = __HAL_RCC_GET_SAI1_SOURCE(); + 639 .loc 1 585 3 is_stmt 1 view .LVU210 + 640 .loc 1 585 42 is_stmt 0 view .LVU211 + 641 0060 D3F88820 ldr r2, [r3, #136] + 642 0064 02F44012 and r2, r2, #3145728 + 643 .loc 1 585 40 view .LVU212 + 644 0068 8262 str r2, [r0, #40] + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the I2S clock source -----------------------------------------------*/ + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->I2sClockSelection = __HAL_RCC_GET_I2S_SOURCE(); + 645 .loc 1 588 3 is_stmt 1 view .LVU213 + ARM GAS /tmp/ccXzHHIc.s page 23 + + + 646 .loc 1 588 41 is_stmt 0 view .LVU214 + 647 006a D3F88820 ldr r2, [r3, #136] + 648 006e 02F44002 and r2, r2, #12582912 + 649 .loc 1 588 39 view .LVU215 + 650 0072 C262 str r2, [r0, #44] + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(FDCAN1) + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the FDCAN clock source -----------------------------------------------*/ + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->FdcanClockSelection = __HAL_RCC_GET_FDCAN_SOURCE(); + 651 .loc 1 592 3 is_stmt 1 view .LVU216 + 652 .loc 1 592 43 is_stmt 0 view .LVU217 + 653 0074 D3F88820 ldr r2, [r3, #136] + 654 0078 02F04072 and r2, r2, #50331648 + 655 .loc 1 592 41 view .LVU218 + 656 007c 0263 str r2, [r0, #48] + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* FDCAN1 */ + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(USB) + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the USB clock source ------------------------------------------------*/ + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->UsbClockSelection = __HAL_RCC_GET_USB_SOURCE(); + 657 .loc 1 597 3 is_stmt 1 view .LVU219 + 658 .loc 1 597 40 is_stmt 0 view .LVU220 + 659 007e D3F88820 ldr r2, [r3, #136] + 660 0082 02F04062 and r2, r2, #201326592 + 661 .loc 1 597 38 view .LVU221 + 662 0086 4263 str r2, [r0, #52] + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* USB */ + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the RNG clock source ------------------------------------------------*/ + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->RngClockSelection = __HAL_RCC_GET_RNG_SOURCE(); + 663 .loc 1 601 3 is_stmt 1 view .LVU222 + 664 .loc 1 601 40 is_stmt 0 view .LVU223 + 665 0088 D3F88820 ldr r2, [r3, #136] + 666 008c 02F04062 and r2, r2, #201326592 + 667 .loc 1 601 38 view .LVU224 + 668 0090 8263 str r2, [r0, #56] + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the ADC12 clock source -----------------------------------------------*/ + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Adc12ClockSelection = __HAL_RCC_GET_ADC12_SOURCE(); + 669 .loc 1 604 3 is_stmt 1 view .LVU225 + 670 .loc 1 604 44 is_stmt 0 view .LVU226 + 671 0092 D3F88820 ldr r2, [r3, #136] + 672 0096 02F04052 and r2, r2, #805306368 + 673 .loc 1 604 42 view .LVU227 + 674 009a C263 str r2, [r0, #60] + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(ADC345_COMMON) + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the ADC345 clock source ----------------------------------------------*/ + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->Adc345ClockSelection = __HAL_RCC_GET_ADC345_SOURCE(); + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* ADC345_COMMON */ + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(QUADSPI) + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the QuadSPIclock source --------------------------------------------*/ + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->QspiClockSelection = __HAL_RCC_GET_QSPI_SOURCE(); + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* QUADSPI */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the RTC clock source ------------------------------------------------*/ + ARM GAS /tmp/ccXzHHIc.s page 24 + + + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** PeriphClkInit->RTCClockSelection = __HAL_RCC_GET_RTC_SOURCE(); + 675 .loc 1 617 3 is_stmt 1 view .LVU228 + 676 .loc 1 617 42 is_stmt 0 view .LVU229 + 677 009c D3F89030 ldr r3, [r3, #144] + 678 00a0 03F44073 and r3, r3, #768 + 679 .loc 1 617 40 view .LVU230 + 680 00a4 0364 str r3, [r0, #64] + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 681 .loc 1 619 1 view .LVU231 + 682 00a6 7047 bx lr + 683 .L44: + 684 .align 2 + 685 .L43: + 686 00a8 EFFF0800 .word 589807 + 687 00ac 00100240 .word 1073876992 + 688 .cfi_endproc + 689 .LFE330: + 691 .section .text.HAL_RCCEx_GetPeriphCLKFreq,"ax",%progbits + 692 .align 1 + 693 .global HAL_RCCEx_GetPeriphCLKFreq + 694 .syntax unified + 695 .thumb + 696 .thumb_func + 698 HAL_RCCEx_GetPeriphCLKFreq: + 699 .LVL27: + 700 .LFB331: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Return the peripheral clock frequency for peripherals with clock source from PLL + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @note Return 0 if peripheral clock identifier not managed by this API + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param PeriphClk Peripheral clock identifier + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * This parameter can be one of the following values: + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_USART1 USART1 peripheral clock + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock (only for devices with UART4) + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock (only for devices with UART5) + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_LPUART1 LPUART1 peripheral clock + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_I2C1 I2C1 peripheral clock + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_I2C4 I2C4 peripheral clock (only for devices with I2C4) + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_LPTIM1 LPTIM1 peripheral clock + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_SAI1 SAI1 peripheral clock + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_I2S SPI peripheral clock + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_FDCAN FDCAN peripheral clock (only for devices with FDCAN) + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_RNG RNG peripheral clock + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock (only for devices with USB) + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_ADC12 ADC1 and ADC2 peripheral clock + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_ADC345 ADC3, ADC4 and ADC5 peripheral clock (only for devic + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_QSPI QSPI peripheral clock (only for devices with QSPI) + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_PERIPHCLK_RTC RTC peripheral clock + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval Frequency in Hz + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 25 + + + 701 .loc 1 649 1 is_stmt 1 view -0 + 702 .cfi_startproc + 703 @ args = 0, pretend = 0, frame = 0 + 704 @ frame_needed = 0, uses_anonymous_args = 0 + 705 .loc 1 649 1 is_stmt 0 view .LVU233 + 706 0000 08B5 push {r3, lr} + 707 .LCFI4: + 708 .cfi_def_cfa_offset 8 + 709 .cfi_offset 3, -8 + 710 .cfi_offset 14, -4 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t frequency = 0U; + 711 .loc 1 650 3 is_stmt 1 view .LVU234 + 712 .LVL28: + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 713 .loc 1 651 3 view .LVU235 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t pllvco, plln, pllp; + 714 .loc 1 652 3 view .LVU236 + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_PERIPHCLOCK(PeriphClk)); + 715 .loc 1 655 3 view .LVU237 + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(PeriphClk == RCC_PERIPHCLK_RTC) + 716 .loc 1 657 3 view .LVU238 + 717 .loc 1 657 5 is_stmt 0 view .LVU239 + 718 0002 B0F5002F cmp r0, #524288 + 719 0006 43D0 beq .L137 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current RTC source */ + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_RTC_SOURCE(); + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check if LSE is ready and if RTC clock selection is LSE */ + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if ((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_RTCCLKSOURCE_LSE)) + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check if LSI is ready and if RTC clock selection is LSI */ + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if ((HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY)) && (srcclk == RCC_RTCCLKSOURCE_LSI)) + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSI_VALUE; + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check if HSE is ready and if RTC clock selection is HSI_DIV32*/ + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if ((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY)) && (srcclk == RCC_RTCCLKSOURCE_HSE_DIV32)) + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSE_VALUE / 32U; + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for RTC*/ + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Other external peripheral clock source than RTC */ + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Compute PLL clock input */ + ARM GAS /tmp/ccXzHHIc.s page 26 + + + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI) /* HSI ? */ + 720 .loc 1 688 5 is_stmt 1 view .LVU240 + 721 .loc 1 688 8 is_stmt 0 view .LVU241 + 722 0008 9C4B ldr r3, .L173 + 723 000a DB68 ldr r3, [r3, #12] + 724 000c 03F00303 and r3, r3, #3 + 725 .loc 1 688 7 view .LVU242 + 726 0010 022B cmp r3, #2 + 727 0012 61D0 beq .L138 + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllvco = HSI_VALUE; + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllvco = 0U; + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) /* HSE ? */ + 728 .loc 1 699 10 is_stmt 1 view .LVU243 + 729 .loc 1 699 13 is_stmt 0 view .LVU244 + 730 0014 994B ldr r3, .L173 + 731 0016 DB68 ldr r3, [r3, #12] + 732 0018 03F00303 and r3, r3, #3 + 733 .loc 1 699 12 view .LVU245 + 734 001c 032B cmp r3, #3 + 735 001e 62D0 beq .L139 + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY)) + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllvco = HSE_VALUE; + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllvco = 0U; + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else /* No source */ + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllvco = 0U; + 736 .loc 1 712 14 view .LVU246 + 737 0020 0022 movs r2, #0 + 738 .L51: + 739 .LVL29: + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLL Source) / PLLM */ + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllvco = (pllvco / ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U)); + 740 .loc 1 716 5 is_stmt 1 view .LVU247 + 741 .loc 1 716 26 is_stmt 0 view .LVU248 + 742 0022 964B ldr r3, .L173 + 743 0024 DB68 ldr r3, [r3, #12] + 744 .loc 1 716 67 view .LVU249 + 745 0026 C3F30313 ubfx r3, r3, #4, #4 + 746 .loc 1 716 92 view .LVU250 + 747 002a 0133 adds r3, r3, #1 + ARM GAS /tmp/ccXzHHIc.s page 27 + + + 748 .loc 1 716 12 view .LVU251 + 749 002c B2FBF3F2 udiv r2, r2, r3 + 750 .LVL30: + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** switch(PeriphClk) + 751 .loc 1 718 5 is_stmt 1 view .LVU252 + 752 0030 B0F5807F cmp r0, #256 + 753 0034 00F0D481 beq .L52 + 754 0038 7AD8 bhi .L53 + 755 003a 2028 cmp r0, #32 + 756 003c 5AD8 bhi .L54 + 757 003e 0028 cmp r0, #0 + 758 0040 00F0BB82 beq .L108 + 759 0044 0138 subs r0, r0, #1 + 760 .LVL31: + 761 .loc 1 718 5 is_stmt 0 view .LVU253 + 762 0046 1F28 cmp r0, #31 + 763 0048 00F2B982 bhi .L109 + 764 004c DFE810F0 tbh [pc, r0, lsl #1] + 765 .L56: + 766 0050 F300 .2byte (.L60-.L56)/2 + 767 0052 1C01 .2byte (.L59-.L56)/2 + 768 0054 B702 .2byte (.L109-.L56)/2 + 769 0056 3E01 .2byte (.L58-.L56)/2 + 770 0058 B702 .2byte (.L109-.L56)/2 + 771 005a B702 .2byte (.L109-.L56)/2 + 772 005c B702 .2byte (.L109-.L56)/2 + 773 005e 6001 .2byte (.L57-.L56)/2 + 774 0060 B702 .2byte (.L109-.L56)/2 + 775 0062 B702 .2byte (.L109-.L56)/2 + 776 0064 B702 .2byte (.L109-.L56)/2 + 777 0066 B702 .2byte (.L109-.L56)/2 + 778 0068 B702 .2byte (.L109-.L56)/2 + 779 006a B702 .2byte (.L109-.L56)/2 + 780 006c B702 .2byte (.L109-.L56)/2 + 781 006e B702 .2byte (.L109-.L56)/2 + 782 0070 B702 .2byte (.L109-.L56)/2 + 783 0072 B702 .2byte (.L109-.L56)/2 + 784 0074 B702 .2byte (.L109-.L56)/2 + 785 0076 B702 .2byte (.L109-.L56)/2 + 786 0078 B702 .2byte (.L109-.L56)/2 + 787 007a B702 .2byte (.L109-.L56)/2 + 788 007c B702 .2byte (.L109-.L56)/2 + 789 007e B702 .2byte (.L109-.L56)/2 + 790 0080 B702 .2byte (.L109-.L56)/2 + 791 0082 B702 .2byte (.L109-.L56)/2 + 792 0084 B702 .2byte (.L109-.L56)/2 + 793 0086 B702 .2byte (.L109-.L56)/2 + 794 0088 B702 .2byte (.L109-.L56)/2 + 795 008a B702 .2byte (.L109-.L56)/2 + 796 008c B702 .2byte (.L109-.L56)/2 + 797 008e 8201 .2byte (.L55-.L56)/2 + 798 .LVL32: + 799 .p2align 1 + 800 .L137: + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 801 .loc 1 660 5 is_stmt 1 view .LVU254 + ARM GAS /tmp/ccXzHHIc.s page 28 + + + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 802 .loc 1 660 14 is_stmt 0 view .LVU255 + 803 0090 7A4A ldr r2, .L173 + 804 0092 D2F89030 ldr r3, [r2, #144] + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 805 .loc 1 660 12 view .LVU256 + 806 0096 03F44073 and r3, r3, #768 + 807 .LVL33: + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 808 .loc 1 663 5 is_stmt 1 view .LVU257 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 809 .loc 1 663 10 is_stmt 0 view .LVU258 + 810 009a D2F89020 ldr r2, [r2, #144] + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 811 .loc 1 663 8 view .LVU259 + 812 009e 12F0020F tst r2, #2 + 813 00a2 03D0 beq .L47 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 814 .loc 1 663 54 discriminator 1 view .LVU260 + 815 00a4 B3F5807F cmp r3, #256 + 816 00a8 00F07F82 beq .L104 + 817 .L47: + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 818 .loc 1 668 10 is_stmt 1 view .LVU261 + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 819 .loc 1 668 15 is_stmt 0 view .LVU262 + 820 00ac 734A ldr r2, .L173 + 821 00ae D2F89420 ldr r2, [r2, #148] + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 822 .loc 1 668 13 view .LVU263 + 823 00b2 12F0020F tst r2, #2 + 824 00b6 03D0 beq .L49 + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 825 .loc 1 668 57 discriminator 1 view .LVU264 + 826 00b8 B3F5007F cmp r3, #512 + 827 00bc 00F07882 beq .L105 + 828 .L49: + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 829 .loc 1 673 10 is_stmt 1 view .LVU265 + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 830 .loc 1 673 15 is_stmt 0 view .LVU266 + 831 00c0 6E4A ldr r2, .L173 + 832 00c2 1068 ldr r0, [r2] + 833 .LVL34: + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 834 .loc 1 673 13 view .LVU267 + 835 00c4 10F40030 ands r0, r0, #131072 + 836 00c8 00F07A82 beq .L45 + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 837 .loc 1 673 55 discriminator 1 view .LVU268 + 838 00cc B3F5407F cmp r3, #768 + 839 00d0 00F07182 beq .L106 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 840 .loc 1 650 12 view .LVU269 + 841 00d4 0020 movs r0, #0 + 842 00d6 73E2 b .L45 + 843 .LVL35: + ARM GAS /tmp/ccXzHHIc.s page 29 + + + 844 .L138: + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 845 .loc 1 690 7 is_stmt 1 view .LVU270 + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 846 .loc 1 690 10 is_stmt 0 view .LVU271 + 847 00d8 684B ldr r3, .L173 + 848 00da 1A68 ldr r2, [r3] + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 849 .loc 1 690 9 view .LVU272 + 850 00dc 12F48062 ands r2, r2, #1024 + 851 00e0 9FD0 beq .L51 + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 852 .loc 1 692 16 view .LVU273 + 853 00e2 674A ldr r2, .L173+4 + 854 00e4 9DE7 b .L51 + 855 .L139: + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 856 .loc 1 701 7 is_stmt 1 view .LVU274 + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 857 .loc 1 701 10 is_stmt 0 view .LVU275 + 858 00e6 654B ldr r3, .L173 + 859 00e8 1A68 ldr r2, [r3] + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 860 .loc 1 701 9 view .LVU276 + 861 00ea 12F40032 ands r2, r2, #131072 + 862 00ee 98D0 beq .L51 + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 863 .loc 1 703 16 view .LVU277 + 864 00f0 644A ldr r2, .L173+8 + 865 00f2 96E7 b .L51 + 866 .LVL36: + 867 .L54: + 868 .loc 1 718 5 view .LVU278 + 869 00f4 4028 cmp r0, #64 + 870 00f6 00F05281 beq .L61 + 871 00fa 8028 cmp r0, #128 + 872 00fc 16D1 bne .L140 + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_USART1: + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current USART1 source */ + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_USART1_SOURCE(); + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_USART1CLKSOURCE_PCLK2) + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK2Freq(); + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_USART1CLKSOURCE_SYSCLK) + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_USART1CLKSOURCE_HSI) ) + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_USART1CLKSOURCE_LSE)) + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 30 + + + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for USART1 */ + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_USART2: + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current USART2 source */ + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_USART2_SOURCE(); + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_USART2CLKSOURCE_PCLK1) + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_USART2CLKSOURCE_SYSCLK) + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_USART2CLKSOURCE_HSI)) + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_USART2CLKSOURCE_LSE)) + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for USART2 */ + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_USART3: + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current USART3 source */ + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_USART3_SOURCE(); + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_USART3CLKSOURCE_PCLK1) + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_USART3CLKSOURCE_SYSCLK) + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_USART3CLKSOURCE_HSI)) + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_USART3CLKSOURCE_LSE)) + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for USART3 */ + ARM GAS /tmp/ccXzHHIc.s page 31 + + + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(UART4) + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_UART4: + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current UART4 source */ + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_UART4_SOURCE(); + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_UART4CLKSOURCE_PCLK1) + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_UART4CLKSOURCE_SYSCLK) + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_UART4CLKSOURCE_HSI)) + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_UART4CLKSOURCE_LSE)) + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for UART4 */ + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* UART4 */ + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(UART5) + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_UART5: + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current UART5 source */ + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_UART5_SOURCE(); + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_UART5CLKSOURCE_PCLK1) + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_UART5CLKSOURCE_SYSCLK) + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_UART5CLKSOURCE_HSI)) + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_UART5CLKSOURCE_LSE)) + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for UART5 */ + ARM GAS /tmp/ccXzHHIc.s page 32 + + + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* UART5 */ + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_LPUART1: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current LPUART1 source */ + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_LPUART1_SOURCE(); + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_LPUART1CLKSOURCE_PCLK1) + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_LPUART1CLKSOURCE_SYSCLK) + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_LPUART1CLKSOURCE_HSI)) + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_LPUART1CLKSOURCE_LSE)) + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for LPUART1 */ + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_I2C1: + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current I2C1 source */ + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_I2C1_SOURCE(); + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_I2C1CLKSOURCE_PCLK1) + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_I2C1CLKSOURCE_SYSCLK) + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C1CLKSOURCE_HSI)) + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for I2C1 */ + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + ARM GAS /tmp/ccXzHHIc.s page 33 + + + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_I2C2: + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current I2C2 source */ + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_I2C2_SOURCE(); + 873 .loc 1 912 7 is_stmt 1 view .LVU279 + 874 .loc 1 912 16 is_stmt 0 view .LVU280 + 875 00fe 5F4B ldr r3, .L173 + 876 0100 D3F88830 ldr r3, [r3, #136] + 877 .LVL37: + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_I2C2CLKSOURCE_PCLK1) + 878 .loc 1 914 7 is_stmt 1 view .LVU281 + 879 .loc 1 914 9 is_stmt 0 view .LVU282 + 880 0104 13F44043 ands r3, r3, #49152 + 881 .LVL38: + 882 .loc 1 914 9 view .LVU283 + 883 0108 00F06481 beq .L141 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_I2C2CLKSOURCE_SYSCLK) + 884 .loc 1 918 12 is_stmt 1 view .LVU284 + 885 .loc 1 918 14 is_stmt 0 view .LVU285 + 886 010c B3F5804F cmp r3, #16384 + 887 0110 00F06381 beq .L142 + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C2CLKSOURCE_HSI)) + 888 .loc 1 922 12 is_stmt 1 view .LVU286 + 889 .loc 1 922 16 is_stmt 0 view .LVU287 + 890 0114 594A ldr r2, .L173 + 891 .LVL39: + 892 .loc 1 922 16 view .LVU288 + 893 0116 1068 ldr r0, [r2] + 894 .LVL40: + 895 .loc 1 922 14 view .LVU289 + 896 0118 10F48060 ands r0, r0, #1024 + 897 011c 00F05082 beq .L45 + 898 .loc 1 922 56 discriminator 1 view .LVU290 + 899 0120 B3F5004F cmp r3, #32768 + 900 0124 00F06882 beq .L121 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 901 .loc 1 650 12 view .LVU291 + 902 0128 0020 movs r0, #0 + 903 012a 49E2 b .L45 + 904 .LVL41: + 905 .L140: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 906 .loc 1 718 5 view .LVU292 + 907 012c 0020 movs r0, #0 + 908 .LVL42: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 909 .loc 1 718 5 view .LVU293 + 910 012e 47E2 b .L45 + 911 .LVL43: + 912 .L53: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 34 + + + 913 .loc 1 718 5 view .LVU294 + 914 0130 B0F5805F cmp r0, #4096 + 915 0134 00F0BD81 beq .L63 + 916 0138 15D9 bls .L143 + 917 013a B0F5804F cmp r0, #16384 + 918 013e 00F0F181 beq .L68 + 919 0142 B0F5004F cmp r0, #32768 + 920 0146 5CD1 bne .L144 + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for I2C2 */ + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_I2C3: + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current I2C3 source */ + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_I2C3_SOURCE(); + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_I2C3CLKSOURCE_PCLK1) + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_I2C3CLKSOURCE_SYSCLK) + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C3CLKSOURCE_HSI)) + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for I2C3 */ + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(I2C4) + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_I2C4: + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current I2C4 source */ + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_I2C4_SOURCE(); + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_I2C4CLKSOURCE_PCLK1) + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_I2C4CLKSOURCE_SYSCLK) + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2C4CLKSOURCE_HSI)) + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 35 + + + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for I2C4 */ + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* I2C4 */ + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_LPTIM1: + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current LPTIM1 source */ + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_LPTIM1_SOURCE(); + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_LPTIM1CLKSOURCE_PCLK1) + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY)) && (srcclk == RCC_LPTIM1CLKSOURCE_LSI)) + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSI_VALUE; + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_LPTIM1CLKSOURCE_HSI)) + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if ((HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY)) && (srcclk == RCC_LPTIM1CLKSOURCE_LSE)) +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = LSE_VALUE; +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for LPTIM1 */ +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_SAI1: +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current SAI1 source */ +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_SAI1_SOURCE(); +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_SAI1CLKSOURCE_SYSCLK) +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_SAI1CLKSOURCE_PLL) +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_48M1CLK) != 0U) +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_SAI1CLKSOURCE_EXT) +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 36 + + +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* External clock used.*/ +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = EXTERNAL_CLOCK_VALUE; +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_SAI1CLKSOURCE_HSI)) +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for SAI1 */ +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_I2S: +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current I2Sx source */ +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_I2S_SOURCE(); +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_I2SCLKSOURCE_SYSCLK) +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_I2SCLKSOURCE_PLL) +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_48M1CLK) != 0U) +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_I2SCLKSOURCE_EXT) +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* External clock used.*/ +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = EXTERNAL_CLOCK_VALUE; +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY)) && (srcclk == RCC_I2SCLKSOURCE_HSI)) +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for I2S */ +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(FDCAN1) +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_FDCAN: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current FDCANx source */ +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_FDCAN_SOURCE(); +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_FDCANCLKSOURCE_PCLK1) +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetPCLK1Freq(); +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_FDCANCLKSOURCE_HSE) + ARM GAS /tmp/ccXzHHIc.s page 37 + + +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSE_VALUE; +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_FDCANCLKSOURCE_PLL) +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_48M1CLK) != 0U) +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for FDCAN */ +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* FDCAN1 */ +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(USB) +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_USB: +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current USB source */ +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_USB_SOURCE(); +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_USBCLKSOURCE_PLL) /* PLL ? */ +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if((HAL_IS_BIT_SET(RCC->CRRCR, RCC_CRRCR_HSI48RDY)) && (srcclk == RCC_USBCLKSOURCE_HSI48 +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI48_VALUE; +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else /* No clock source */ +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* USB */ +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_RNG: +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current RNG source */ +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_RNG_SOURCE(); +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_RNGCLKSOURCE_PLL) /* PLL ? */ +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if( (HAL_IS_BIT_SET(RCC->CRRCR, RCC_CRRCR_HSI48RDY)) && (srcclk == RCC_RNGCLKSOURCE_HSI4 +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI48_VALUE; + ARM GAS /tmp/ccXzHHIc.s page 38 + + +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else /* No clock source */ +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_ADC12: +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current ADC12 source */ +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_ADC12_SOURCE(); + 921 .loc 1 1152 7 is_stmt 1 view .LVU295 + 922 .loc 1 1152 16 is_stmt 0 view .LVU296 + 923 0148 4C4B ldr r3, .L173 + 924 014a D3F88830 ldr r3, [r3, #136] + 925 .loc 1 1152 14 view .LVU297 + 926 014e 03F04053 and r3, r3, #805306368 + 927 .LVL44: +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_ADC12CLKSOURCE_PLL) + 928 .loc 1 1154 7 is_stmt 1 view .LVU298 + 929 .loc 1 1154 9 is_stmt 0 view .LVU299 + 930 0152 B3F1805F cmp r3, #268435456 + 931 0156 00F00A82 beq .L145 +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_ADCCLK) != 0U) +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLP) = f(VCO input) * PLLN / PLLP */ +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pllp == 0U) +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP) != 0U) +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = 17U; +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = 7U; +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / pllp; +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_ADC12CLKSOURCE_SYSCLK) + 932 .loc 1 1175 12 is_stmt 1 view .LVU300 + 933 .loc 1 1175 14 is_stmt 0 view .LVU301 + 934 015a B3F1005F cmp r3, #536870912 + 935 015e 00F02182 beq .L146 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 936 .loc 1 650 12 view .LVU302 + 937 0162 0020 movs r0, #0 + 938 .LVL45: +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for ADC12 */ +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + ARM GAS /tmp/ccXzHHIc.s page 39 + + +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(ADC345_COMMON) +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_ADC345: +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current ADC345 source */ +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_ADC345_SOURCE(); +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_ADC345CLKSOURCE_PLL) +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_PLLCLKOUT_CONFIG(RCC_PLL_ADCCLK) != 0U) +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLP) = f(VCO input) * PLLN / PLLP */ +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pllp == 0U) +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP) != 0U) +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = 17U; +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = 7U; +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / pllp; +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_ADC345CLKSOURCE_SYSCLK) +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clock not enabled for ADC345 */ +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* ADC345_COMMON */ +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(QUADSPI) +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** case RCC_PERIPHCLK_QSPI: +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the current QSPI source */ +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** srcclk = __HAL_RCC_GET_QSPI_SOURCE(); +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(srcclk == RCC_QSPICLKSOURCE_PLL) /* PLL ? */ +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* f(PLLQ) = f(VCO input) * PLLN / PLLQ */ +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** plln = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_QSPICLKSOURCE_HSI) +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 40 + + +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HSI_VALUE; +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(srcclk == RCC_QSPICLKSOURCE_SYSCLK) +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = HAL_RCC_GetSysClockFreq(); +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else /* No clock source */ +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* nothing to do: frequency already initialized to 0 */ +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #endif /* QUADSPI */ +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** default: +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** break; +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** return(frequency); + 939 .loc 1 1257 3 is_stmt 1 view .LVU303 + 940 .loc 1 1257 9 is_stmt 0 view .LVU304 + 941 0164 2CE2 b .L45 + 942 .LVL46: + 943 .L143: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 944 .loc 1 718 5 view .LVU305 + 945 0166 B0F5806F cmp r0, #1024 + 946 016a 00F05781 beq .L65 + 947 016e B0F5006F cmp r0, #2048 + 948 0172 1AD1 bne .L147 +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 949 .loc 1 1045 7 is_stmt 1 view .LVU306 +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 950 .loc 1 1045 16 is_stmt 0 view .LVU307 + 951 0174 414B ldr r3, .L173 + 952 0176 D3F88830 ldr r3, [r3, #136] + 953 .LVL47: +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 954 .loc 1 1047 7 is_stmt 1 view .LVU308 +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 955 .loc 1 1047 9 is_stmt 0 view .LVU309 + 956 017a 13F44003 ands r3, r3, #12582912 + 957 .LVL48: +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 958 .loc 1 1047 9 view .LVU310 + 959 017e 00F07F81 beq .L148 +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 960 .loc 1 1051 12 is_stmt 1 view .LVU311 +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 961 .loc 1 1051 14 is_stmt 0 view .LVU312 + 962 0182 B3F5800F cmp r3, #4194304 + 963 0186 00F07E81 beq .L149 +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 964 .loc 1 1060 12 is_stmt 1 view .LVU313 +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 965 .loc 1 1060 14 is_stmt 0 view .LVU314 + ARM GAS /tmp/ccXzHHIc.s page 41 + + + 966 018a B3F5000F cmp r3, #8388608 + 967 018e 00F04382 beq .L128 +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 968 .loc 1 1065 12 is_stmt 1 view .LVU315 +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 969 .loc 1 1065 16 is_stmt 0 view .LVU316 + 970 0192 3A4A ldr r2, .L173 + 971 .LVL49: +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 972 .loc 1 1065 16 view .LVU317 + 973 0194 1068 ldr r0, [r2] + 974 .LVL50: +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 975 .loc 1 1065 14 view .LVU318 + 976 0196 10F48060 ands r0, r0, #1024 + 977 019a 00F01182 beq .L45 +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 978 .loc 1 1065 56 discriminator 1 view .LVU319 + 979 019e B3F5400F cmp r3, #12582912 + 980 01a2 00F03B82 beq .L129 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 981 .loc 1 650 12 view .LVU320 + 982 01a6 0020 movs r0, #0 + 983 01a8 0AE2 b .L45 + 984 .LVL51: + 985 .L147: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 986 .loc 1 718 5 view .LVU321 + 987 01aa B0F5007F cmp r0, #512 + 988 01ae 26D1 bne .L150 + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 989 .loc 1 985 7 is_stmt 1 view .LVU322 + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 990 .loc 1 985 16 is_stmt 0 view .LVU323 + 991 01b0 324B ldr r3, .L173 + 992 01b2 D3F88830 ldr r3, [r3, #136] + 993 .LVL52: + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 994 .loc 1 987 7 is_stmt 1 view .LVU324 + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 995 .loc 1 987 9 is_stmt 0 view .LVU325 + 996 01b6 13F44023 ands r3, r3, #786432 + 997 .LVL53: + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 998 .loc 1 987 9 view .LVU326 + 999 01ba 00F02C81 beq .L151 + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1000 .loc 1 991 12 is_stmt 1 view .LVU327 + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1001 .loc 1 991 16 is_stmt 0 view .LVU328 + 1002 01be 2F4A ldr r2, .L173 + 1003 .LVL54: + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1004 .loc 1 991 16 view .LVU329 + 1005 01c0 D2F89420 ldr r2, [r2, #148] + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1006 .loc 1 991 14 view .LVU330 + ARM GAS /tmp/ccXzHHIc.s page 42 + + + 1007 01c4 12F0020F tst r2, #2 + 1008 01c8 03D0 beq .L93 + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1009 .loc 1 991 58 discriminator 1 view .LVU331 + 1010 01ca B3F5802F cmp r3, #262144 + 1011 01ce 00F01782 beq .L123 + 1012 .L93: + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1013 .loc 1 995 12 is_stmt 1 view .LVU332 + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1014 .loc 1 995 16 is_stmt 0 view .LVU333 + 1015 01d2 2A4A ldr r2, .L173 + 1016 01d4 1268 ldr r2, [r2] + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1017 .loc 1 995 14 view .LVU334 + 1018 01d6 12F4806F tst r2, #1024 + 1019 01da 03D0 beq .L94 + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1020 .loc 1 995 56 discriminator 1 view .LVU335 + 1021 01dc B3F5002F cmp r3, #524288 + 1022 01e0 00F01182 beq .L124 + 1023 .L94: + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1024 .loc 1 999 12 is_stmt 1 view .LVU336 + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1025 .loc 1 999 17 is_stmt 0 view .LVU337 + 1026 01e4 254A ldr r2, .L173 + 1027 01e6 D2F89000 ldr r0, [r2, #144] + 1028 .LVL55: + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1029 .loc 1 999 15 view .LVU338 + 1030 01ea 10F00200 ands r0, r0, #2 + 1031 01ee 00F0E781 beq .L45 + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1032 .loc 1 999 61 discriminator 1 view .LVU339 + 1033 01f2 B3F5402F cmp r3, #786432 + 1034 01f6 00F00882 beq .L125 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1035 .loc 1 650 12 view .LVU340 + 1036 01fa 0020 movs r0, #0 + 1037 01fc E0E1 b .L45 + 1038 .LVL56: + 1039 .L150: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1040 .loc 1 718 5 view .LVU341 + 1041 01fe 0020 movs r0, #0 + 1042 .LVL57: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1043 .loc 1 718 5 view .LVU342 + 1044 0200 DEE1 b .L45 + 1045 .LVL58: + 1046 .L144: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1047 .loc 1 718 5 view .LVU343 + 1048 0202 B0F5005F cmp r0, #8192 + 1049 0206 14D1 bne .L152 +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + ARM GAS /tmp/ccXzHHIc.s page 43 + + + 1050 .loc 1 1110 7 is_stmt 1 view .LVU344 +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1051 .loc 1 1110 16 is_stmt 0 view .LVU345 + 1052 0208 1C4B ldr r3, .L173 + 1053 020a D3F88830 ldr r3, [r3, #136] +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1054 .loc 1 1110 14 view .LVU346 + 1055 020e 03F04063 and r3, r3, #201326592 + 1056 .LVL59: +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1057 .loc 1 1112 7 is_stmt 1 view .LVU347 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1058 .loc 1 1112 9 is_stmt 0 view .LVU348 + 1059 0212 B3F1006F cmp r3, #134217728 + 1060 0216 00F07481 beq .L153 +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1061 .loc 1 1118 12 is_stmt 1 view .LVU349 +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1062 .loc 1 1118 16 is_stmt 0 view .LVU350 + 1063 021a 184A ldr r2, .L173 + 1064 .LVL60: +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1065 .loc 1 1118 16 view .LVU351 + 1066 021c D2F89800 ldr r0, [r2, #152] + 1067 .LVL61: +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1068 .loc 1 1118 14 view .LVU352 + 1069 0220 10F00200 ands r0, r0, #2 + 1070 0224 00F0CC81 beq .L45 +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1071 .loc 1 1118 64 discriminator 1 view .LVU353 + 1072 0228 002B cmp r3, #0 + 1073 022a 00F0FB81 beq .L132 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1074 .loc 1 650 12 view .LVU354 + 1075 022e 0020 movs r0, #0 + 1076 0230 C6E1 b .L45 + 1077 .LVL62: + 1078 .L152: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1079 .loc 1 718 5 view .LVU355 + 1080 0232 0020 movs r0, #0 + 1081 .LVL63: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1082 .loc 1 718 5 view .LVU356 + 1083 0234 C4E1 b .L45 + 1084 .LVL64: + 1085 .L60: + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1086 .loc 1 723 7 is_stmt 1 view .LVU357 + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1087 .loc 1 723 16 is_stmt 0 view .LVU358 + 1088 0236 114B ldr r3, .L173 + 1089 0238 D3F88830 ldr r3, [r3, #136] + 1090 .LVL65: + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1091 .loc 1 725 7 is_stmt 1 view .LVU359 + ARM GAS /tmp/ccXzHHIc.s page 44 + + + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1092 .loc 1 725 9 is_stmt 0 view .LVU360 + 1093 023c 13F00303 ands r3, r3, #3 + 1094 .LVL66: + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1095 .loc 1 725 9 view .LVU361 + 1096 0240 15D0 beq .L154 + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1097 .loc 1 729 12 is_stmt 1 view .LVU362 + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1098 .loc 1 729 14 is_stmt 0 view .LVU363 + 1099 0242 012B cmp r3, #1 + 1100 0244 16D0 beq .L155 + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1101 .loc 1 733 12 is_stmt 1 view .LVU364 + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1102 .loc 1 733 16 is_stmt 0 view .LVU365 + 1103 0246 0D4A ldr r2, .L173 + 1104 .LVL67: + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1105 .loc 1 733 16 view .LVU366 + 1106 0248 1268 ldr r2, [r2] + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1107 .loc 1 733 14 view .LVU367 + 1108 024a 12F4806F tst r2, #1024 + 1109 024e 02D0 beq .L73 + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1110 .loc 1 733 56 discriminator 1 view .LVU368 + 1111 0250 022B cmp r3, #2 + 1112 0252 00F0B681 beq .L110 + 1113 .L73: + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1114 .loc 1 737 12 is_stmt 1 view .LVU369 + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1115 .loc 1 737 16 is_stmt 0 view .LVU370 + 1116 0256 094A ldr r2, .L173 + 1117 0258 D2F89000 ldr r0, [r2, #144] + 1118 .LVL68: + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1119 .loc 1 737 14 view .LVU371 + 1120 025c 10F00200 ands r0, r0, #2 + 1121 0260 00F0AE81 beq .L45 + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1122 .loc 1 737 60 discriminator 1 view .LVU372 + 1123 0264 032B cmp r3, #3 + 1124 0266 00F0AE81 beq .L111 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1125 .loc 1 650 12 view .LVU373 + 1126 026a 0020 movs r0, #0 + 1127 026c A8E1 b .L45 + 1128 .LVL69: + 1129 .L154: + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1130 .loc 1 727 9 is_stmt 1 view .LVU374 + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1131 .loc 1 727 21 is_stmt 0 view .LVU375 + 1132 026e FFF7FEFF bl HAL_RCC_GetPCLK2Freq + ARM GAS /tmp/ccXzHHIc.s page 45 + + + 1133 .LVL70: + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1134 .loc 1 727 21 view .LVU376 + 1135 0272 A5E1 b .L45 + 1136 .LVL71: + 1137 .L155: + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1138 .loc 1 731 9 is_stmt 1 view .LVU377 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1139 .loc 1 731 21 is_stmt 0 view .LVU378 + 1140 0274 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1141 .LVL72: + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1142 .loc 1 731 21 view .LVU379 + 1143 0278 A2E1 b .L45 + 1144 .L174: + 1145 027a 00BF .align 2 + 1146 .L173: + 1147 027c 00100240 .word 1073876992 + 1148 0280 0024F400 .word 16000000 + 1149 0284 0080BB00 .word 12288000 + 1150 .LVL73: + 1151 .L59: + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1152 .loc 1 750 7 is_stmt 1 view .LVU380 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1153 .loc 1 750 16 is_stmt 0 view .LVU381 + 1154 0288 AF4B ldr r3, .L175 + 1155 028a D3F88830 ldr r3, [r3, #136] + 1156 .LVL74: + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1157 .loc 1 752 7 is_stmt 1 view .LVU382 + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1158 .loc 1 752 9 is_stmt 0 view .LVU383 + 1159 028e 13F00C03 ands r3, r3, #12 + 1160 .LVL75: + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1161 .loc 1 752 9 view .LVU384 + 1162 0292 15D0 beq .L156 + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1163 .loc 1 756 12 is_stmt 1 view .LVU385 + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1164 .loc 1 756 14 is_stmt 0 view .LVU386 + 1165 0294 042B cmp r3, #4 + 1166 0296 16D0 beq .L157 + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1167 .loc 1 760 12 is_stmt 1 view .LVU387 + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1168 .loc 1 760 16 is_stmt 0 view .LVU388 + 1169 0298 AB4A ldr r2, .L175 + 1170 .LVL76: + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1171 .loc 1 760 16 view .LVU389 + 1172 029a 1268 ldr r2, [r2] + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1173 .loc 1 760 14 view .LVU390 + 1174 029c 12F4806F tst r2, #1024 + ARM GAS /tmp/ccXzHHIc.s page 46 + + + 1175 02a0 02D0 beq .L76 + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1176 .loc 1 760 56 discriminator 1 view .LVU391 + 1177 02a2 082B cmp r3, #8 + 1178 02a4 00F09281 beq .L112 + 1179 .L76: + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1180 .loc 1 764 12 is_stmt 1 view .LVU392 + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1181 .loc 1 764 16 is_stmt 0 view .LVU393 + 1182 02a8 A74A ldr r2, .L175 + 1183 02aa D2F89000 ldr r0, [r2, #144] + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1184 .loc 1 764 14 view .LVU394 + 1185 02ae 10F00200 ands r0, r0, #2 + 1186 02b2 00F08581 beq .L45 + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1187 .loc 1 764 61 discriminator 1 view .LVU395 + 1188 02b6 0C2B cmp r3, #12 + 1189 02b8 00F08A81 beq .L113 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1190 .loc 1 650 12 view .LVU396 + 1191 02bc 0020 movs r0, #0 + 1192 02be 7FE1 b .L45 + 1193 .LVL77: + 1194 .L156: + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1195 .loc 1 754 9 is_stmt 1 view .LVU397 + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1196 .loc 1 754 21 is_stmt 0 view .LVU398 + 1197 02c0 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1198 .LVL78: + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1199 .loc 1 754 21 view .LVU399 + 1200 02c4 7CE1 b .L45 + 1201 .LVL79: + 1202 .L157: + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1203 .loc 1 758 9 is_stmt 1 view .LVU400 + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1204 .loc 1 758 21 is_stmt 0 view .LVU401 + 1205 02c6 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1206 .LVL80: + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1207 .loc 1 758 21 view .LVU402 + 1208 02ca 79E1 b .L45 + 1209 .LVL81: + 1210 .L58: + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1211 .loc 1 777 7 is_stmt 1 view .LVU403 + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1212 .loc 1 777 16 is_stmt 0 view .LVU404 + 1213 02cc 9E4B ldr r3, .L175 + 1214 02ce D3F88830 ldr r3, [r3, #136] + 1215 .LVL82: + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1216 .loc 1 779 7 is_stmt 1 view .LVU405 + ARM GAS /tmp/ccXzHHIc.s page 47 + + + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1217 .loc 1 779 9 is_stmt 0 view .LVU406 + 1218 02d2 13F03003 ands r3, r3, #48 + 1219 .LVL83: + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1220 .loc 1 779 9 view .LVU407 + 1221 02d6 15D0 beq .L158 + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1222 .loc 1 783 12 is_stmt 1 view .LVU408 + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1223 .loc 1 783 14 is_stmt 0 view .LVU409 + 1224 02d8 102B cmp r3, #16 + 1225 02da 16D0 beq .L159 + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1226 .loc 1 787 12 is_stmt 1 view .LVU410 + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1227 .loc 1 787 16 is_stmt 0 view .LVU411 + 1228 02dc 9A4A ldr r2, .L175 + 1229 .LVL84: + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1230 .loc 1 787 16 view .LVU412 + 1231 02de 1268 ldr r2, [r2] + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1232 .loc 1 787 14 view .LVU413 + 1233 02e0 12F4806F tst r2, #1024 + 1234 02e4 02D0 beq .L79 + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1235 .loc 1 787 56 discriminator 1 view .LVU414 + 1236 02e6 202B cmp r3, #32 + 1237 02e8 00F07581 beq .L114 + 1238 .L79: + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1239 .loc 1 791 12 is_stmt 1 view .LVU415 + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1240 .loc 1 791 16 is_stmt 0 view .LVU416 + 1241 02ec 964A ldr r2, .L175 + 1242 02ee D2F89000 ldr r0, [r2, #144] + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1243 .loc 1 791 14 view .LVU417 + 1244 02f2 10F00200 ands r0, r0, #2 + 1245 02f6 00F06381 beq .L45 + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1246 .loc 1 791 60 discriminator 1 view .LVU418 + 1247 02fa 302B cmp r3, #48 + 1248 02fc 00F06D81 beq .L115 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1249 .loc 1 650 12 view .LVU419 + 1250 0300 0020 movs r0, #0 + 1251 0302 5DE1 b .L45 + 1252 .LVL85: + 1253 .L158: + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1254 .loc 1 781 9 is_stmt 1 view .LVU420 + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1255 .loc 1 781 21 is_stmt 0 view .LVU421 + 1256 0304 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1257 .LVL86: + ARM GAS /tmp/ccXzHHIc.s page 48 + + + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1258 .loc 1 781 21 view .LVU422 + 1259 0308 5AE1 b .L45 + 1260 .LVL87: + 1261 .L159: + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1262 .loc 1 785 9 is_stmt 1 view .LVU423 + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1263 .loc 1 785 21 is_stmt 0 view .LVU424 + 1264 030a FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1265 .LVL88: + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1266 .loc 1 785 21 view .LVU425 + 1267 030e 57E1 b .L45 + 1268 .LVL89: + 1269 .L57: + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1270 .loc 1 805 7 is_stmt 1 view .LVU426 + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1271 .loc 1 805 16 is_stmt 0 view .LVU427 + 1272 0310 8D4B ldr r3, .L175 + 1273 0312 D3F88830 ldr r3, [r3, #136] + 1274 .LVL90: + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1275 .loc 1 807 7 is_stmt 1 view .LVU428 + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1276 .loc 1 807 9 is_stmt 0 view .LVU429 + 1277 0316 13F0C003 ands r3, r3, #192 + 1278 .LVL91: + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1279 .loc 1 807 9 view .LVU430 + 1280 031a 15D0 beq .L160 + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1281 .loc 1 811 12 is_stmt 1 view .LVU431 + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1282 .loc 1 811 14 is_stmt 0 view .LVU432 + 1283 031c 402B cmp r3, #64 + 1284 031e 16D0 beq .L161 + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1285 .loc 1 815 12 is_stmt 1 view .LVU433 + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1286 .loc 1 815 16 is_stmt 0 view .LVU434 + 1287 0320 894A ldr r2, .L175 + 1288 .LVL92: + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1289 .loc 1 815 16 view .LVU435 + 1290 0322 1268 ldr r2, [r2] + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1291 .loc 1 815 14 view .LVU436 + 1292 0324 12F4806F tst r2, #1024 + 1293 0328 02D0 beq .L82 + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1294 .loc 1 815 56 discriminator 1 view .LVU437 + 1295 032a 802B cmp r3, #128 + 1296 032c 00F05881 beq .L116 + 1297 .L82: + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 49 + + + 1298 .loc 1 819 12 is_stmt 1 view .LVU438 + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1299 .loc 1 819 16 is_stmt 0 view .LVU439 + 1300 0330 854A ldr r2, .L175 + 1301 0332 D2F89000 ldr r0, [r2, #144] + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1302 .loc 1 819 14 view .LVU440 + 1303 0336 10F00200 ands r0, r0, #2 + 1304 033a 00F04181 beq .L45 + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1305 .loc 1 819 60 discriminator 1 view .LVU441 + 1306 033e C02B cmp r3, #192 + 1307 0340 00F05081 beq .L117 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1308 .loc 1 650 12 view .LVU442 + 1309 0344 0020 movs r0, #0 + 1310 0346 3BE1 b .L45 + 1311 .LVL93: + 1312 .L160: + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1313 .loc 1 809 9 is_stmt 1 view .LVU443 + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1314 .loc 1 809 21 is_stmt 0 view .LVU444 + 1315 0348 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1316 .LVL94: + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1317 .loc 1 809 21 view .LVU445 + 1318 034c 38E1 b .L45 + 1319 .LVL95: + 1320 .L161: + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1321 .loc 1 813 9 is_stmt 1 view .LVU446 + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1322 .loc 1 813 21 is_stmt 0 view .LVU447 + 1323 034e FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1324 .LVL96: + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1325 .loc 1 813 21 view .LVU448 + 1326 0352 35E1 b .L45 + 1327 .LVL97: + 1328 .L55: + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1329 .loc 1 862 7 is_stmt 1 view .LVU449 + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1330 .loc 1 862 16 is_stmt 0 view .LVU450 + 1331 0354 7C4B ldr r3, .L175 + 1332 0356 D3F88830 ldr r3, [r3, #136] + 1333 .LVL98: + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1334 .loc 1 864 7 is_stmt 1 view .LVU451 + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1335 .loc 1 864 9 is_stmt 0 view .LVU452 + 1336 035a 13F44063 ands r3, r3, #3072 + 1337 .LVL99: + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1338 .loc 1 864 9 view .LVU453 + 1339 035e 18D0 beq .L162 + ARM GAS /tmp/ccXzHHIc.s page 50 + + + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1340 .loc 1 868 12 is_stmt 1 view .LVU454 + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1341 .loc 1 868 14 is_stmt 0 view .LVU455 + 1342 0360 B3F5806F cmp r3, #1024 + 1343 0364 18D0 beq .L163 + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1344 .loc 1 872 12 is_stmt 1 view .LVU456 + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1345 .loc 1 872 16 is_stmt 0 view .LVU457 + 1346 0366 784A ldr r2, .L175 + 1347 .LVL100: + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1348 .loc 1 872 16 view .LVU458 + 1349 0368 1268 ldr r2, [r2] + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1350 .loc 1 872 14 view .LVU459 + 1351 036a 12F4806F tst r2, #1024 + 1352 036e 03D0 beq .L85 + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1353 .loc 1 872 56 discriminator 1 view .LVU460 + 1354 0370 B3F5006F cmp r3, #2048 + 1355 0374 00F03981 beq .L118 + 1356 .L85: + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1357 .loc 1 876 12 is_stmt 1 view .LVU461 + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1358 .loc 1 876 16 is_stmt 0 view .LVU462 + 1359 0378 734A ldr r2, .L175 + 1360 037a D2F89000 ldr r0, [r2, #144] + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1361 .loc 1 876 14 view .LVU463 + 1362 037e 10F00200 ands r0, r0, #2 + 1363 0382 00F01D81 beq .L45 + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1364 .loc 1 876 60 discriminator 1 view .LVU464 + 1365 0386 B3F5406F cmp r3, #3072 + 1366 038a 00F03081 beq .L119 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1367 .loc 1 650 12 view .LVU465 + 1368 038e 0020 movs r0, #0 + 1369 0390 16E1 b .L45 + 1370 .LVL101: + 1371 .L162: + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1372 .loc 1 866 9 is_stmt 1 view .LVU466 + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1373 .loc 1 866 21 is_stmt 0 view .LVU467 + 1374 0392 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1375 .LVL102: + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1376 .loc 1 866 21 view .LVU468 + 1377 0396 13E1 b .L45 + 1378 .LVL103: + 1379 .L163: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1380 .loc 1 870 9 is_stmt 1 view .LVU469 + ARM GAS /tmp/ccXzHHIc.s page 51 + + + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1381 .loc 1 870 21 is_stmt 0 view .LVU470 + 1382 0398 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1383 .LVL104: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1384 .loc 1 870 21 view .LVU471 + 1385 039c 10E1 b .L45 + 1386 .LVL105: + 1387 .L61: + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1388 .loc 1 889 7 is_stmt 1 view .LVU472 + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1389 .loc 1 889 16 is_stmt 0 view .LVU473 + 1390 039e 6A4B ldr r3, .L175 + 1391 03a0 D3F88830 ldr r3, [r3, #136] + 1392 .LVL106: + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1393 .loc 1 891 7 is_stmt 1 view .LVU474 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1394 .loc 1 891 9 is_stmt 0 view .LVU475 + 1395 03a4 13F44053 ands r3, r3, #12288 + 1396 .LVL107: + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1397 .loc 1 891 9 view .LVU476 + 1398 03a8 0ED0 beq .L164 + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1399 .loc 1 895 12 is_stmt 1 view .LVU477 + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1400 .loc 1 895 14 is_stmt 0 view .LVU478 + 1401 03aa B3F5805F cmp r3, #4096 + 1402 03ae 0ED0 beq .L165 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1403 .loc 1 899 12 is_stmt 1 view .LVU479 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1404 .loc 1 899 16 is_stmt 0 view .LVU480 + 1405 03b0 654A ldr r2, .L175 + 1406 .LVL108: + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1407 .loc 1 899 16 view .LVU481 + 1408 03b2 1068 ldr r0, [r2] + 1409 .LVL109: + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1410 .loc 1 899 14 view .LVU482 + 1411 03b4 10F48060 ands r0, r0, #1024 + 1412 03b8 00F00281 beq .L45 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1413 .loc 1 899 56 discriminator 1 view .LVU483 + 1414 03bc B3F5005F cmp r3, #8192 + 1415 03c0 00F01881 beq .L120 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1416 .loc 1 650 12 view .LVU484 + 1417 03c4 0020 movs r0, #0 + 1418 03c6 FBE0 b .L45 + 1419 .LVL110: + 1420 .L164: + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1421 .loc 1 893 9 is_stmt 1 view .LVU485 + ARM GAS /tmp/ccXzHHIc.s page 52 + + + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1422 .loc 1 893 21 is_stmt 0 view .LVU486 + 1423 03c8 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1424 .LVL111: + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1425 .loc 1 893 21 view .LVU487 + 1426 03cc F8E0 b .L45 + 1427 .LVL112: + 1428 .L165: + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1429 .loc 1 897 9 is_stmt 1 view .LVU488 + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1430 .loc 1 897 21 is_stmt 0 view .LVU489 + 1431 03ce FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1432 .LVL113: + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1433 .loc 1 897 21 view .LVU490 + 1434 03d2 F5E0 b .L45 + 1435 .LVL114: + 1436 .L141: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1437 .loc 1 916 9 is_stmt 1 view .LVU491 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1438 .loc 1 916 21 is_stmt 0 view .LVU492 + 1439 03d4 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1440 .LVL115: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1441 .loc 1 916 21 view .LVU493 + 1442 03d8 F2E0 b .L45 + 1443 .LVL116: + 1444 .L142: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1445 .loc 1 920 9 is_stmt 1 view .LVU494 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1446 .loc 1 920 21 is_stmt 0 view .LVU495 + 1447 03da FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1448 .LVL117: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1449 .loc 1 920 21 view .LVU496 + 1450 03de EFE0 b .L45 + 1451 .LVL118: + 1452 .L52: + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1453 .loc 1 935 7 is_stmt 1 view .LVU497 + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1454 .loc 1 935 16 is_stmt 0 view .LVU498 + 1455 03e0 594B ldr r3, .L175 + 1456 03e2 D3F88830 ldr r3, [r3, #136] + 1457 .LVL119: + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1458 .loc 1 937 7 is_stmt 1 view .LVU499 + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1459 .loc 1 937 9 is_stmt 0 view .LVU500 + 1460 03e6 13F44033 ands r3, r3, #196608 + 1461 .LVL120: + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1462 .loc 1 937 9 view .LVU501 + ARM GAS /tmp/ccXzHHIc.s page 53 + + + 1463 03ea 0ED0 beq .L166 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1464 .loc 1 941 12 is_stmt 1 view .LVU502 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1465 .loc 1 941 14 is_stmt 0 view .LVU503 + 1466 03ec B3F5803F cmp r3, #65536 + 1467 03f0 0ED0 beq .L167 + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1468 .loc 1 945 12 is_stmt 1 view .LVU504 + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1469 .loc 1 945 16 is_stmt 0 view .LVU505 + 1470 03f2 554A ldr r2, .L175 + 1471 .LVL121: + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1472 .loc 1 945 16 view .LVU506 + 1473 03f4 1068 ldr r0, [r2] + 1474 .LVL122: + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1475 .loc 1 945 14 view .LVU507 + 1476 03f6 10F48060 ands r0, r0, #1024 + 1477 03fa 00F0E180 beq .L45 + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1478 .loc 1 945 56 discriminator 1 view .LVU508 + 1479 03fe B3F5003F cmp r3, #131072 + 1480 0402 00F0FB80 beq .L122 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1481 .loc 1 650 12 view .LVU509 + 1482 0406 0020 movs r0, #0 + 1483 0408 DAE0 b .L45 + 1484 .LVL123: + 1485 .L166: + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1486 .loc 1 939 9 is_stmt 1 view .LVU510 + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1487 .loc 1 939 21 is_stmt 0 view .LVU511 + 1488 040a FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1489 .LVL124: + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1490 .loc 1 939 21 view .LVU512 + 1491 040e D7E0 b .L45 + 1492 .LVL125: + 1493 .L167: + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1494 .loc 1 943 9 is_stmt 1 view .LVU513 + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1495 .loc 1 943 21 is_stmt 0 view .LVU514 + 1496 0410 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1497 .LVL126: + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1498 .loc 1 943 21 view .LVU515 + 1499 0414 D4E0 b .L45 + 1500 .LVL127: + 1501 .L151: + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1502 .loc 1 989 9 is_stmt 1 view .LVU516 + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1503 .loc 1 989 21 is_stmt 0 view .LVU517 + ARM GAS /tmp/ccXzHHIc.s page 54 + + + 1504 0416 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1505 .LVL128: + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1506 .loc 1 989 21 view .LVU518 + 1507 041a D1E0 b .L45 + 1508 .LVL129: + 1509 .L65: +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1510 .loc 1 1012 7 is_stmt 1 view .LVU519 +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1511 .loc 1 1012 16 is_stmt 0 view .LVU520 + 1512 041c 4A4B ldr r3, .L175 + 1513 041e D3F88830 ldr r3, [r3, #136] + 1514 .LVL130: +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1515 .loc 1 1014 7 is_stmt 1 view .LVU521 +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1516 .loc 1 1014 9 is_stmt 0 view .LVU522 + 1517 0422 13F44013 ands r3, r3, #3145728 + 1518 .LVL131: +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1519 .loc 1 1014 9 view .LVU523 + 1520 0426 12D0 beq .L168 +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1521 .loc 1 1018 12 is_stmt 1 view .LVU524 +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1522 .loc 1 1018 14 is_stmt 0 view .LVU525 + 1523 0428 B3F5801F cmp r3, #1048576 + 1524 042c 12D0 beq .L169 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1525 .loc 1 1027 12 is_stmt 1 view .LVU526 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1526 .loc 1 1027 14 is_stmt 0 view .LVU527 + 1527 042e B3F5001F cmp r3, #2097152 + 1528 0432 00F0ED80 beq .L126 +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1529 .loc 1 1032 12 is_stmt 1 view .LVU528 +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1530 .loc 1 1032 16 is_stmt 0 view .LVU529 + 1531 0436 444A ldr r2, .L175 + 1532 .LVL132: +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1533 .loc 1 1032 16 view .LVU530 + 1534 0438 1068 ldr r0, [r2] + 1535 .LVL133: +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1536 .loc 1 1032 14 view .LVU531 + 1537 043a 10F48060 ands r0, r0, #1024 + 1538 043e 00F0BF80 beq .L45 +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1539 .loc 1 1032 56 discriminator 1 view .LVU532 + 1540 0442 B3F5401F cmp r3, #3145728 + 1541 0446 00F0E580 beq .L127 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1542 .loc 1 650 12 view .LVU533 + 1543 044a 0020 movs r0, #0 + 1544 044c B8E0 b .L45 + ARM GAS /tmp/ccXzHHIc.s page 55 + + + 1545 .LVL134: + 1546 .L168: +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1547 .loc 1 1016 9 is_stmt 1 view .LVU534 +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1548 .loc 1 1016 21 is_stmt 0 view .LVU535 + 1549 044e FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1550 .LVL135: +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1551 .loc 1 1016 21 view .LVU536 + 1552 0452 B5E0 b .L45 + 1553 .LVL136: + 1554 .L169: +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1555 .loc 1 1020 9 is_stmt 1 view .LVU537 +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1556 .loc 1 1020 12 is_stmt 0 view .LVU538 + 1557 0454 03F18043 add r3, r3, #1073741824 + 1558 .LVL137: +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1559 .loc 1 1020 12 view .LVU539 + 1560 0458 A3F55F23 sub r3, r3, #913408 + 1561 .LVL138: +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1562 .loc 1 1020 12 view .LVU540 + 1563 045c D868 ldr r0, [r3, #12] + 1564 .LVL139: +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1565 .loc 1 1020 11 view .LVU541 + 1566 045e 10F48010 ands r0, r0, #1048576 + 1567 0462 00F0AD80 beq .L45 +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1568 .loc 1 1023 11 is_stmt 1 view .LVU542 +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1569 .loc 1 1023 18 is_stmt 0 view .LVU543 + 1570 0466 D868 ldr r0, [r3, #12] +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1571 .loc 1 1023 16 view .LVU544 + 1572 0468 C0F30620 ubfx r0, r0, #8, #7 + 1573 .LVL140: +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1574 .loc 1 1024 11 is_stmt 1 view .LVU545 +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1575 .loc 1 1024 31 is_stmt 0 view .LVU546 + 1576 046c 02FB00F0 mul r0, r2, r0 + 1577 .LVL141: +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1578 .loc 1 1024 44 view .LVU547 + 1579 0470 DB68 ldr r3, [r3, #12] + 1580 .LVL142: +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1581 .loc 1 1024 85 view .LVU548 + 1582 0472 C3F34153 ubfx r3, r3, #21, #2 +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1583 .loc 1 1024 110 view .LVU549 + 1584 0476 0133 adds r3, r3, #1 +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + ARM GAS /tmp/ccXzHHIc.s page 56 + + + 1585 .loc 1 1024 116 view .LVU550 + 1586 0478 5B00 lsls r3, r3, #1 +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1587 .loc 1 1024 21 view .LVU551 + 1588 047a B0FBF3F0 udiv r0, r0, r3 + 1589 .LVL143: +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1590 .loc 1 1024 21 view .LVU552 + 1591 047e 9FE0 b .L45 + 1592 .LVL144: + 1593 .L148: +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1594 .loc 1 1049 9 is_stmt 1 view .LVU553 +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1595 .loc 1 1049 21 is_stmt 0 view .LVU554 + 1596 0480 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1597 .LVL145: +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1598 .loc 1 1049 21 view .LVU555 + 1599 0484 9CE0 b .L45 + 1600 .LVL146: + 1601 .L149: +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1602 .loc 1 1053 9 is_stmt 1 view .LVU556 +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1603 .loc 1 1053 12 is_stmt 0 view .LVU557 + 1604 0486 03F17F53 add r3, r3, #1069547520 + 1605 .LVL147: +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1606 .loc 1 1053 12 view .LVU558 + 1607 048a 03F50433 add r3, r3, #135168 + 1608 .LVL148: +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1609 .loc 1 1053 12 view .LVU559 + 1610 048e D868 ldr r0, [r3, #12] + 1611 .LVL149: +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1612 .loc 1 1053 11 view .LVU560 + 1613 0490 10F48010 ands r0, r0, #1048576 + 1614 0494 00F09480 beq .L45 +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1615 .loc 1 1056 11 is_stmt 1 view .LVU561 +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1616 .loc 1 1056 18 is_stmt 0 view .LVU562 + 1617 0498 D868 ldr r0, [r3, #12] +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1618 .loc 1 1056 16 view .LVU563 + 1619 049a C0F30620 ubfx r0, r0, #8, #7 + 1620 .LVL150: +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1621 .loc 1 1057 11 is_stmt 1 view .LVU564 +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1622 .loc 1 1057 31 is_stmt 0 view .LVU565 + 1623 049e 02FB00F0 mul r0, r2, r0 + 1624 .LVL151: +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1625 .loc 1 1057 44 view .LVU566 + ARM GAS /tmp/ccXzHHIc.s page 57 + + + 1626 04a2 DB68 ldr r3, [r3, #12] + 1627 .LVL152: +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1628 .loc 1 1057 85 view .LVU567 + 1629 04a4 C3F34153 ubfx r3, r3, #21, #2 +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1630 .loc 1 1057 110 view .LVU568 + 1631 04a8 0133 adds r3, r3, #1 +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1632 .loc 1 1057 116 view .LVU569 + 1633 04aa 5B00 lsls r3, r3, #1 +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1634 .loc 1 1057 21 view .LVU570 + 1635 04ac B0FBF3F0 udiv r0, r0, r3 + 1636 .LVL153: +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1637 .loc 1 1057 21 view .LVU571 + 1638 04b0 86E0 b .L45 + 1639 .LVL154: + 1640 .L63: +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1641 .loc 1 1079 7 is_stmt 1 view .LVU572 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1642 .loc 1 1079 16 is_stmt 0 view .LVU573 + 1643 04b2 254B ldr r3, .L175 + 1644 04b4 D3F88830 ldr r3, [r3, #136] +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1645 .loc 1 1079 14 view .LVU574 + 1646 04b8 03F04073 and r3, r3, #50331648 + 1647 .LVL155: +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1648 .loc 1 1081 7 is_stmt 1 view .LVU575 +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1649 .loc 1 1081 9 is_stmt 0 view .LVU576 + 1650 04bc B3F1007F cmp r3, #33554432 + 1651 04c0 07D0 beq .L170 +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1652 .loc 1 1085 12 is_stmt 1 view .LVU577 +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1653 .loc 1 1085 14 is_stmt 0 view .LVU578 + 1654 04c2 002B cmp r3, #0 + 1655 04c4 00F0AC80 beq .L130 +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1656 .loc 1 1089 12 is_stmt 1 view .LVU579 +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1657 .loc 1 1089 14 is_stmt 0 view .LVU580 + 1658 04c8 B3F1807F cmp r3, #16777216 + 1659 04cc 04D0 beq .L171 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1660 .loc 1 650 12 view .LVU581 + 1661 04ce 0020 movs r0, #0 + 1662 .LVL156: + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1663 .loc 1 650 12 view .LVU582 + 1664 04d0 76E0 b .L45 + 1665 .LVL157: + 1666 .L170: + ARM GAS /tmp/ccXzHHIc.s page 58 + + +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1667 .loc 1 1083 9 is_stmt 1 view .LVU583 +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1668 .loc 1 1083 21 is_stmt 0 view .LVU584 + 1669 04d2 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 1670 .LVL158: +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1671 .loc 1 1083 21 view .LVU585 + 1672 04d6 73E0 b .L45 + 1673 .LVL159: + 1674 .L171: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1675 .loc 1 1091 9 is_stmt 1 view .LVU586 +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1676 .loc 1 1091 12 is_stmt 0 view .LVU587 + 1677 04d8 03F17C53 add r3, r3, #1056964608 + 1678 .LVL160: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1679 .loc 1 1091 12 view .LVU588 + 1680 04dc 03F50433 add r3, r3, #135168 + 1681 .LVL161: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1682 .loc 1 1091 12 view .LVU589 + 1683 04e0 D868 ldr r0, [r3, #12] + 1684 .LVL162: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1685 .loc 1 1091 11 view .LVU590 + 1686 04e2 10F48010 ands r0, r0, #1048576 + 1687 04e6 6BD0 beq .L45 +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1688 .loc 1 1094 11 is_stmt 1 view .LVU591 +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1689 .loc 1 1094 18 is_stmt 0 view .LVU592 + 1690 04e8 D868 ldr r0, [r3, #12] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_ + 1691 .loc 1 1094 16 view .LVU593 + 1692 04ea C0F30620 ubfx r0, r0, #8, #7 + 1693 .LVL163: +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1694 .loc 1 1095 11 is_stmt 1 view .LVU594 +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1695 .loc 1 1095 31 is_stmt 0 view .LVU595 + 1696 04ee 02FB00F0 mul r0, r2, r0 + 1697 .LVL164: +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1698 .loc 1 1095 44 view .LVU596 + 1699 04f2 DB68 ldr r3, [r3, #12] + 1700 .LVL165: +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1701 .loc 1 1095 85 view .LVU597 + 1702 04f4 C3F34153 ubfx r3, r3, #21, #2 +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1703 .loc 1 1095 110 view .LVU598 + 1704 04f8 0133 adds r3, r3, #1 +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1705 .loc 1 1095 116 view .LVU599 + 1706 04fa 5B00 lsls r3, r3, #1 + ARM GAS /tmp/ccXzHHIc.s page 59 + + +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1707 .loc 1 1095 21 view .LVU600 + 1708 04fc B0FBF3F0 udiv r0, r0, r3 + 1709 .LVL166: +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1710 .loc 1 1095 21 view .LVU601 + 1711 0500 5EE0 b .L45 + 1712 .LVL167: + 1713 .L153: +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1714 .loc 1 1115 9 is_stmt 1 view .LVU602 +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1715 .loc 1 1115 16 is_stmt 0 view .LVU603 + 1716 0502 03F16053 add r3, r3, #939524096 + 1717 .LVL168: +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1718 .loc 1 1115 16 view .LVU604 + 1719 0506 03F50433 add r3, r3, #135168 + 1720 .LVL169: +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1721 .loc 1 1115 16 view .LVU605 + 1722 050a D868 ldr r0, [r3, #12] + 1723 .LVL170: +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1724 .loc 1 1115 14 view .LVU606 + 1725 050c C0F30620 ubfx r0, r0, #8, #7 + 1726 .LVL171: +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1727 .loc 1 1116 9 is_stmt 1 view .LVU607 +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1728 .loc 1 1116 29 is_stmt 0 view .LVU608 + 1729 0510 02FB00F0 mul r0, r2, r0 + 1730 .LVL172: +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1731 .loc 1 1116 42 view .LVU609 + 1732 0514 DB68 ldr r3, [r3, #12] + 1733 .LVL173: +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1734 .loc 1 1116 83 view .LVU610 + 1735 0516 C3F34153 ubfx r3, r3, #21, #2 +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1736 .loc 1 1116 108 view .LVU611 + 1737 051a 0133 adds r3, r3, #1 +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1738 .loc 1 1116 114 view .LVU612 + 1739 051c 5B00 lsls r3, r3, #1 +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1740 .loc 1 1116 19 view .LVU613 + 1741 051e B0FBF3F0 udiv r0, r0, r3 + 1742 .LVL174: +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1743 .loc 1 1116 19 view .LVU614 + 1744 0522 4DE0 b .L45 + 1745 .LVL175: + 1746 .L68: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1747 .loc 1 1132 7 is_stmt 1 view .LVU615 + ARM GAS /tmp/ccXzHHIc.s page 60 + + +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1748 .loc 1 1132 16 is_stmt 0 view .LVU616 + 1749 0524 084B ldr r3, .L175 + 1750 0526 D3F88830 ldr r3, [r3, #136] +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 1751 .loc 1 1132 14 view .LVU617 + 1752 052a 03F04063 and r3, r3, #201326592 + 1753 .LVL176: +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1754 .loc 1 1134 7 is_stmt 1 view .LVU618 +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1755 .loc 1 1134 9 is_stmt 0 view .LVU619 + 1756 052e B3F1006F cmp r3, #134217728 + 1757 0532 0BD0 beq .L172 +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1758 .loc 1 1140 12 is_stmt 1 view .LVU620 +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1759 .loc 1 1140 17 is_stmt 0 view .LVU621 + 1760 0534 044A ldr r2, .L175 + 1761 .LVL177: +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1762 .loc 1 1140 17 view .LVU622 + 1763 0536 D2F89800 ldr r0, [r2, #152] + 1764 .LVL178: +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1765 .loc 1 1140 14 view .LVU623 + 1766 053a 10F00200 ands r0, r0, #2 + 1767 053e 3FD0 beq .L45 +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1768 .loc 1 1140 65 discriminator 1 view .LVU624 + 1769 0540 002B cmp r3, #0 + 1770 0542 71D0 beq .L133 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t srcclk; + 1771 .loc 1 650 12 view .LVU625 + 1772 0544 0020 movs r0, #0 + 1773 0546 3BE0 b .L45 + 1774 .L176: + 1775 .align 2 + 1776 .L175: + 1777 0548 00100240 .word 1073876992 + 1778 .LVL179: + 1779 .L172: +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1780 .loc 1 1137 9 is_stmt 1 view .LVU626 +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1781 .loc 1 1137 16 is_stmt 0 view .LVU627 + 1782 054c 03F16053 add r3, r3, #939524096 + 1783 .LVL180: +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1784 .loc 1 1137 16 view .LVU628 + 1785 0550 03F50433 add r3, r3, #135168 + 1786 .LVL181: +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + 1787 .loc 1 1137 16 view .LVU629 + 1788 0554 D868 ldr r0, [r3, #12] + 1789 .LVL182: +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** frequency = (pllvco * plln) / (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PL + ARM GAS /tmp/ccXzHHIc.s page 61 + + + 1790 .loc 1 1137 14 view .LVU630 + 1791 0556 C0F30620 ubfx r0, r0, #8, #7 + 1792 .LVL183: +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1793 .loc 1 1138 9 is_stmt 1 view .LVU631 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1794 .loc 1 1138 29 is_stmt 0 view .LVU632 + 1795 055a 02FB00F0 mul r0, r2, r0 + 1796 .LVL184: +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1797 .loc 1 1138 42 view .LVU633 + 1798 055e DB68 ldr r3, [r3, #12] + 1799 .LVL185: +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1800 .loc 1 1138 83 view .LVU634 + 1801 0560 C3F34153 ubfx r3, r3, #21, #2 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1802 .loc 1 1138 108 view .LVU635 + 1803 0564 0133 adds r3, r3, #1 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1804 .loc 1 1138 114 view .LVU636 + 1805 0566 5B00 lsls r3, r3, #1 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1806 .loc 1 1138 19 view .LVU637 + 1807 0568 B0FBF3F0 udiv r0, r0, r3 + 1808 .LVL186: +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1809 .loc 1 1138 19 view .LVU638 + 1810 056c 28E0 b .L45 + 1811 .LVL187: + 1812 .L145: +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1813 .loc 1 1156 9 is_stmt 1 view .LVU639 +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1814 .loc 1 1156 12 is_stmt 0 view .LVU640 + 1815 056e 03F14053 add r3, r3, #805306368 + 1816 .LVL188: +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1817 .loc 1 1156 12 view .LVU641 + 1818 0572 03F50433 add r3, r3, #135168 + 1819 .LVL189: +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1820 .loc 1 1156 12 view .LVU642 + 1821 0576 D868 ldr r0, [r3, #12] + 1822 .LVL190: +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1823 .loc 1 1156 11 view .LVU643 + 1824 0578 10F48030 ands r0, r0, #65536 + 1825 057c 20D0 beq .L45 +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; + 1826 .loc 1 1159 11 is_stmt 1 view .LVU644 +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; + 1827 .loc 1 1159 18 is_stmt 0 view .LVU645 + 1828 057e D968 ldr r1, [r3, #12] +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pllp = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos; + 1829 .loc 1 1159 16 view .LVU646 + 1830 0580 C1F30621 ubfx r1, r1, #8, #7 + ARM GAS /tmp/ccXzHHIc.s page 62 + + + 1831 .LVL191: +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pllp == 0U) + 1832 .loc 1 1160 11 is_stmt 1 view .LVU647 +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pllp == 0U) + 1833 .loc 1 1160 18 is_stmt 0 view .LVU648 + 1834 0584 DB68 ldr r3, [r3, #12] + 1835 .LVL192: +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1836 .loc 1 1161 11 is_stmt 1 view .LVU649 +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1837 .loc 1 1161 13 is_stmt 0 view .LVU650 + 1838 0586 DB0E lsrs r3, r3, #27 + 1839 .LVL193: +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1840 .loc 1 1161 13 view .LVU651 + 1841 0588 05D1 bne .L103 +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1842 .loc 1 1163 13 is_stmt 1 view .LVU652 +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1843 .loc 1 1163 16 is_stmt 0 view .LVU653 + 1844 058a 284B ldr r3, .L177 + 1845 .LVL194: +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1846 .loc 1 1163 16 view .LVU654 + 1847 058c DB68 ldr r3, [r3, #12] +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1848 .loc 1 1163 15 view .LVU655 + 1849 058e 13F4003F tst r3, #131072 + 1850 0592 05D0 beq .L134 +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1851 .loc 1 1165 20 view .LVU656 + 1852 0594 1123 movs r3, #17 + 1853 .L103: + 1854 .LVL195: +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1855 .loc 1 1172 11 is_stmt 1 view .LVU657 +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1856 .loc 1 1172 31 is_stmt 0 view .LVU658 + 1857 0596 01FB02F2 mul r2, r1, r2 + 1858 .LVL196: +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1859 .loc 1 1172 21 view .LVU659 + 1860 059a B2FBF3F0 udiv r0, r2, r3 + 1861 .LVL197: +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1862 .loc 1 1172 21 view .LVU660 + 1863 059e 0FE0 b .L45 + 1864 .LVL198: + 1865 .L134: +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1866 .loc 1 1169 20 view .LVU661 + 1867 05a0 0723 movs r3, #7 + 1868 05a2 F8E7 b .L103 + 1869 .LVL199: + 1870 .L146: +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1871 .loc 1 1177 9 is_stmt 1 view .LVU662 + ARM GAS /tmp/ccXzHHIc.s page 63 + + +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1872 .loc 1 1177 21 is_stmt 0 view .LVU663 + 1873 05a4 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 1874 .LVL200: +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1875 .loc 1 1177 21 view .LVU664 + 1876 05a8 0AE0 b .L45 + 1877 .LVL201: + 1878 .L104: + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1879 .loc 1 665 17 view .LVU665 + 1880 05aa 4FF40040 mov r0, #32768 + 1881 .LVL202: + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1882 .loc 1 665 17 view .LVU666 + 1883 05ae 07E0 b .L45 + 1884 .LVL203: + 1885 .L105: + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1886 .loc 1 670 17 view .LVU667 + 1887 05b0 4FF4FA40 mov r0, #32000 + 1888 .LVL204: + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1889 .loc 1 670 17 view .LVU668 + 1890 05b4 04E0 b .L45 + 1891 .L106: + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1892 .loc 1 675 17 view .LVU669 + 1893 05b6 1E48 ldr r0, .L177+4 + 1894 05b8 02E0 b .L45 + 1895 .LVL205: + 1896 .L108: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1897 .loc 1 718 5 view .LVU670 + 1898 05ba 0020 movs r0, #0 + 1899 .LVL206: + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 1900 .loc 1 718 5 view .LVU671 + 1901 05bc 00E0 b .L45 + 1902 .L109: + 1903 05be 0020 movs r0, #0 + 1904 .LVL207: + 1905 .L45: +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1906 .loc 1 1258 1 view .LVU672 + 1907 05c0 08BD pop {r3, pc} + 1908 .LVL208: + 1909 .L110: + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1910 .loc 1 735 19 view .LVU673 + 1911 05c2 1C48 ldr r0, .L177+8 + 1912 .LVL209: + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1913 .loc 1 735 19 view .LVU674 + 1914 05c4 FCE7 b .L45 + 1915 .L111: + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + ARM GAS /tmp/ccXzHHIc.s page 64 + + + 1916 .loc 1 739 19 view .LVU675 + 1917 05c6 4FF40040 mov r0, #32768 + 1918 05ca F9E7 b .L45 + 1919 .L112: + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1920 .loc 1 762 19 view .LVU676 + 1921 05cc 1948 ldr r0, .L177+8 + 1922 05ce F7E7 b .L45 + 1923 .L113: + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1924 .loc 1 766 19 view .LVU677 + 1925 05d0 4FF40040 mov r0, #32768 + 1926 05d4 F4E7 b .L45 + 1927 .L114: + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1928 .loc 1 789 19 view .LVU678 + 1929 05d6 1748 ldr r0, .L177+8 + 1930 05d8 F2E7 b .L45 + 1931 .L115: + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1932 .loc 1 793 19 view .LVU679 + 1933 05da 4FF40040 mov r0, #32768 + 1934 05de EFE7 b .L45 + 1935 .L116: + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1936 .loc 1 817 19 view .LVU680 + 1937 05e0 1448 ldr r0, .L177+8 + 1938 05e2 EDE7 b .L45 + 1939 .L117: + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1940 .loc 1 821 19 view .LVU681 + 1941 05e4 4FF40040 mov r0, #32768 + 1942 05e8 EAE7 b .L45 + 1943 .L118: + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1944 .loc 1 874 19 view .LVU682 + 1945 05ea 1248 ldr r0, .L177+8 + 1946 05ec E8E7 b .L45 + 1947 .L119: + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1948 .loc 1 878 19 view .LVU683 + 1949 05ee 4FF40040 mov r0, #32768 + 1950 05f2 E5E7 b .L45 + 1951 .L120: + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1952 .loc 1 901 19 view .LVU684 + 1953 05f4 0F48 ldr r0, .L177+8 + 1954 05f6 E3E7 b .L45 + 1955 .L121: + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1956 .loc 1 924 19 view .LVU685 + 1957 05f8 0E48 ldr r0, .L177+8 + 1958 05fa E1E7 b .L45 + 1959 .L122: + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1960 .loc 1 947 19 view .LVU686 + 1961 05fc 0D48 ldr r0, .L177+8 + ARM GAS /tmp/ccXzHHIc.s page 65 + + + 1962 05fe DFE7 b .L45 + 1963 .LVL210: + 1964 .L123: + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1965 .loc 1 993 19 view .LVU687 + 1966 0600 4FF4FA40 mov r0, #32000 + 1967 .LVL211: + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1968 .loc 1 993 19 view .LVU688 + 1969 0604 DCE7 b .L45 + 1970 .LVL212: + 1971 .L124: + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1972 .loc 1 997 19 view .LVU689 + 1973 0606 0B48 ldr r0, .L177+8 + 1974 .LVL213: + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1975 .loc 1 997 19 view .LVU690 + 1976 0608 DAE7 b .L45 + 1977 .L125: +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1978 .loc 1 1001 19 view .LVU691 + 1979 060a 4FF40040 mov r0, #32768 + 1980 060e D7E7 b .L45 + 1981 .LVL214: + 1982 .L126: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1983 .loc 1 1030 19 view .LVU692 + 1984 0610 0948 ldr r0, .L177+12 + 1985 .LVL215: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1986 .loc 1 1030 19 view .LVU693 + 1987 0612 D5E7 b .L45 + 1988 .LVL216: + 1989 .L127: +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1990 .loc 1 1034 19 view .LVU694 + 1991 0614 0748 ldr r0, .L177+8 + 1992 0616 D3E7 b .L45 + 1993 .LVL217: + 1994 .L128: +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1995 .loc 1 1063 19 view .LVU695 + 1996 0618 0748 ldr r0, .L177+12 + 1997 .LVL218: +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 1998 .loc 1 1063 19 view .LVU696 + 1999 061a D1E7 b .L45 + 2000 .LVL219: + 2001 .L129: +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2002 .loc 1 1067 19 view .LVU697 + 2003 061c 0548 ldr r0, .L177+8 + 2004 061e CFE7 b .L45 + 2005 .LVL220: + 2006 .L130: +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + ARM GAS /tmp/ccXzHHIc.s page 66 + + + 2007 .loc 1 1087 19 view .LVU698 + 2008 0620 0548 ldr r0, .L177+12 + 2009 .LVL221: +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2010 .loc 1 1087 19 view .LVU699 + 2011 0622 CDE7 b .L45 + 2012 .LVL222: + 2013 .L132: +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2014 .loc 1 1120 19 view .LVU700 + 2015 0624 0548 ldr r0, .L177+16 + 2016 0626 CBE7 b .L45 + 2017 .L133: +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2018 .loc 1 1142 19 view .LVU701 + 2019 0628 0448 ldr r0, .L177+16 + 2020 062a C9E7 b .L45 + 2021 .L178: + 2022 .align 2 + 2023 .L177: + 2024 062c 00100240 .word 1073876992 + 2025 0630 00DC0500 .word 384000 + 2026 0634 0024F400 .word 16000000 + 2027 0638 0080BB00 .word 12288000 + 2028 063c 006CDC02 .word 48000000 + 2029 .cfi_endproc + 2030 .LFE331: + 2032 .section .text.HAL_RCCEx_EnableLSECSS,"ax",%progbits + 2033 .align 1 + 2034 .global HAL_RCCEx_EnableLSECSS + 2035 .syntax unified + 2036 .thumb + 2037 .thumb_func + 2039 HAL_RCCEx_EnableLSECSS: + 2040 .LFB332: +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @} +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** @defgroup RCCEx_Exported_Functions_Group2 Extended Clock management functions +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Extended Clock management functions +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** @verbatim +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** =============================================================================== +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** ##### Extended clock management functions ##### +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** =============================================================================== +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** [..] +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** This subsection provides a set of functions allowing to control the +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** activation or deactivation of LSE CSS, +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** Low speed clock output and clock after wake-up from STOP mode. +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** @endverbatim +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @{ +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Enable the LSE Clock Security System. + ARM GAS /tmp/ccXzHHIc.s page 67 + + +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @note Prior to enable the LSE Clock Security System, LSE oscillator is to be enabled +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * with HAL_RCC_OscConfig() and the LSE oscillator clock is to be selected as RTC +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * clock with HAL_RCCEx_PeriphCLKConfig(). +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_EnableLSECSS(void) +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2041 .loc 1 1287 1 is_stmt 1 view -0 + 2042 .cfi_startproc + 2043 @ args = 0, pretend = 0, frame = 0 + 2044 @ frame_needed = 0, uses_anonymous_args = 0 + 2045 @ link register save eliminated. +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + 2046 .loc 1 1288 3 view .LVU703 + 2047 0000 034A ldr r2, .L180 + 2048 0002 D2F89030 ldr r3, [r2, #144] + 2049 0006 43F02003 orr r3, r3, #32 + 2050 000a C2F89030 str r3, [r2, #144] +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2051 .loc 1 1289 1 is_stmt 0 view .LVU704 + 2052 000e 7047 bx lr + 2053 .L181: + 2054 .align 2 + 2055 .L180: + 2056 0010 00100240 .word 1073876992 + 2057 .cfi_endproc + 2058 .LFE332: + 2060 .section .text.HAL_RCCEx_DisableLSECSS,"ax",%progbits + 2061 .align 1 + 2062 .global HAL_RCCEx_DisableLSECSS + 2063 .syntax unified + 2064 .thumb + 2065 .thumb_func + 2067 HAL_RCCEx_DisableLSECSS: + 2068 .LFB333: +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Disable the LSE Clock Security System. +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @note LSE Clock Security System can only be disabled after a LSE failure detection. +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_DisableLSECSS(void) +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2069 .loc 1 1297 1 is_stmt 1 view -0 + 2070 .cfi_startproc + 2071 @ args = 0, pretend = 0, frame = 0 + 2072 @ frame_needed = 0, uses_anonymous_args = 0 + 2073 @ link register save eliminated. +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + 2074 .loc 1 1298 3 view .LVU706 + 2075 0000 054B ldr r3, .L183 + 2076 0002 D3F89020 ldr r2, [r3, #144] + 2077 0006 22F02002 bic r2, r2, #32 + 2078 000a C3F89020 str r2, [r3, #144] +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Disable LSE CSS IT if any */ +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_DISABLE_IT(RCC_IT_LSECSS); + ARM GAS /tmp/ccXzHHIc.s page 68 + + + 2079 .loc 1 1301 3 view .LVU707 + 2080 000e 9A69 ldr r2, [r3, #24] + 2081 0010 22F40072 bic r2, r2, #512 + 2082 0014 9A61 str r2, [r3, #24] +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2083 .loc 1 1302 1 is_stmt 0 view .LVU708 + 2084 0016 7047 bx lr + 2085 .L184: + 2086 .align 2 + 2087 .L183: + 2088 0018 00100240 .word 1073876992 + 2089 .cfi_endproc + 2090 .LFE333: + 2092 .section .text.HAL_RCCEx_EnableLSECSS_IT,"ax",%progbits + 2093 .align 1 + 2094 .global HAL_RCCEx_EnableLSECSS_IT + 2095 .syntax unified + 2096 .thumb + 2097 .thumb_func + 2099 HAL_RCCEx_EnableLSECSS_IT: + 2100 .LFB334: +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Enable the LSE Clock Security System Interrupt & corresponding EXTI line. +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @note LSE Clock Security System Interrupt is mapped on RTC EXTI line 19 +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_EnableLSECSS_IT(void) +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2101 .loc 1 1310 1 is_stmt 1 view -0 + 2102 .cfi_startproc + 2103 @ args = 0, pretend = 0, frame = 0 + 2104 @ frame_needed = 0, uses_anonymous_args = 0 + 2105 @ link register save eliminated. +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable LSE CSS */ +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** SET_BIT(RCC->BDCR, RCC_BDCR_LSECSSON) ; + 2106 .loc 1 1312 3 view .LVU710 + 2107 0000 0A4B ldr r3, .L186 + 2108 0002 D3F89020 ldr r2, [r3, #144] + 2109 0006 42F02002 orr r2, r2, #32 + 2110 000a C3F89020 str r2, [r3, #144] +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable LSE CSS IT */ +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_ENABLE_IT(RCC_IT_LSECSS); + 2111 .loc 1 1315 3 view .LVU711 + 2112 000e 9A69 ldr r2, [r3, #24] + 2113 0010 42F40072 orr r2, r2, #512 + 2114 0014 9A61 str r2, [r3, #24] +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable IT on EXTI Line 19 */ +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_LSECSS_EXTI_ENABLE_IT(); + 2115 .loc 1 1318 3 view .LVU712 + 2116 0016 A3F58633 sub r3, r3, #68608 + 2117 001a 1A68 ldr r2, [r3] + 2118 001c 42F40022 orr r2, r2, #524288 + 2119 0020 1A60 str r2, [r3] +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE(); + ARM GAS /tmp/ccXzHHIc.s page 69 + + + 2120 .loc 1 1319 3 view .LVU713 + 2121 0022 9A68 ldr r2, [r3, #8] + 2122 0024 42F40022 orr r2, r2, #524288 + 2123 0028 9A60 str r2, [r3, #8] +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2124 .loc 1 1320 1 is_stmt 0 view .LVU714 + 2125 002a 7047 bx lr + 2126 .L187: + 2127 .align 2 + 2128 .L186: + 2129 002c 00100240 .word 1073876992 + 2130 .cfi_endproc + 2131 .LFE334: + 2133 .section .text.HAL_RCCEx_LSECSS_Callback,"ax",%progbits + 2134 .align 1 + 2135 .weak HAL_RCCEx_LSECSS_Callback + 2136 .syntax unified + 2137 .thumb + 2138 .thumb_func + 2140 HAL_RCCEx_LSECSS_Callback: + 2141 .LFB336: +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Handle the RCC LSE Clock Security System interrupt request. +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_LSECSS_IRQHandler(void) +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check RCC LSE CSSF flag */ +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_GET_IT(RCC_IT_LSECSS)) +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* RCC LSE Clock Security System interrupt user callback */ +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_LSECSS_Callback(); +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear RCC LSE CSS pending bit */ +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CLEAR_IT(RCC_IT_LSECSS); +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief RCCEx LSE Clock Security System interrupt callback. +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval none +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __weak void HAL_RCCEx_LSECSS_Callback(void) +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2142 .loc 1 1344 1 is_stmt 1 view -0 + 2143 .cfi_startproc + 2144 @ args = 0, pretend = 0, frame = 0 + 2145 @ frame_needed = 0, uses_anonymous_args = 0 + 2146 @ link register save eliminated. +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** the @ref HAL_RCCEx_LSECSS_Callback should be implemented in the user file +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2147 .loc 1 1348 1 view .LVU716 + 2148 0000 7047 bx lr + 2149 .cfi_endproc + ARM GAS /tmp/ccXzHHIc.s page 70 + + + 2150 .LFE336: + 2152 .section .text.HAL_RCCEx_LSECSS_IRQHandler,"ax",%progbits + 2153 .align 1 + 2154 .global HAL_RCCEx_LSECSS_IRQHandler + 2155 .syntax unified + 2156 .thumb + 2157 .thumb_func + 2159 HAL_RCCEx_LSECSS_IRQHandler: + 2160 .LFB335: +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check RCC LSE CSSF flag */ + 2161 .loc 1 1327 1 view -0 + 2162 .cfi_startproc + 2163 @ args = 0, pretend = 0, frame = 0 + 2164 @ frame_needed = 0, uses_anonymous_args = 0 + 2165 0000 08B5 push {r3, lr} + 2166 .LCFI5: + 2167 .cfi_def_cfa_offset 8 + 2168 .cfi_offset 3, -8 + 2169 .cfi_offset 14, -4 +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2170 .loc 1 1329 3 view .LVU718 +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2171 .loc 1 1329 6 is_stmt 0 view .LVU719 + 2172 0002 064B ldr r3, .L193 + 2173 0004 DB69 ldr r3, [r3, #28] +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2174 .loc 1 1329 5 view .LVU720 + 2175 0006 13F4007F tst r3, #512 + 2176 000a 00D1 bne .L192 + 2177 .L189: +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2178 .loc 1 1337 1 view .LVU721 + 2179 000c 08BD pop {r3, pc} + 2180 .L192: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2181 .loc 1 1332 5 is_stmt 1 view .LVU722 + 2182 000e FFF7FEFF bl HAL_RCCEx_LSECSS_Callback + 2183 .LVL223: +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2184 .loc 1 1335 5 view .LVU723 + 2185 0012 024B ldr r3, .L193 + 2186 0014 4FF40072 mov r2, #512 + 2187 0018 1A62 str r2, [r3, #32] +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2188 .loc 1 1337 1 is_stmt 0 view .LVU724 + 2189 001a F7E7 b .L189 + 2190 .L194: + 2191 .align 2 + 2192 .L193: + 2193 001c 00100240 .word 1073876992 + 2194 .cfi_endproc + 2195 .LFE335: + 2197 .section .text.HAL_RCCEx_EnableLSCO,"ax",%progbits + 2198 .align 1 + 2199 .global HAL_RCCEx_EnableLSCO + 2200 .syntax unified + 2201 .thumb + ARM GAS /tmp/ccXzHHIc.s page 71 + + + 2202 .thumb_func + 2204 HAL_RCCEx_EnableLSCO: + 2205 .LVL224: + 2206 .LFB337: +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Select the Low Speed clock source to output on LSCO pin (PA2). +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param LSCOSource specifies the Low Speed clock source to output. +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * This parameter can be one of the following values: +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_LSCOSOURCE_LSI LSI clock selected as LSCO source +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_LSCOSOURCE_LSE LSE clock selected as LSCO source +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_EnableLSCO(uint32_t LSCOSource) +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2207 .loc 1 1359 1 is_stmt 1 view -0 + 2208 .cfi_startproc + 2209 @ args = 0, pretend = 0, frame = 32 + 2210 @ frame_needed = 0, uses_anonymous_args = 0 + 2211 .loc 1 1359 1 is_stmt 0 view .LVU726 + 2212 0000 30B5 push {r4, r5, lr} + 2213 .LCFI6: + 2214 .cfi_def_cfa_offset 12 + 2215 .cfi_offset 4, -12 + 2216 .cfi_offset 5, -8 + 2217 .cfi_offset 14, -4 + 2218 0002 89B0 sub sp, sp, #36 + 2219 .LCFI7: + 2220 .cfi_def_cfa_offset 48 + 2221 0004 0546 mov r5, r0 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** GPIO_InitTypeDef GPIO_InitStruct; + 2222 .loc 1 1360 3 is_stmt 1 view .LVU727 +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus pwrclkchanged = RESET; + 2223 .loc 1 1361 3 view .LVU728 + 2224 .LVL225: +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus backupchanged = RESET; + 2225 .loc 1 1362 3 view .LVU729 +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_LSCOSOURCE(LSCOSource)); + 2226 .loc 1 1365 3 view .LVU730 +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* LSCO Pin Clock Enable */ +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __LSCO_CLK_ENABLE(); + 2227 .loc 1 1368 3 view .LVU731 + 2228 .LBB5: + 2229 .loc 1 1368 3 view .LVU732 + 2230 .loc 1 1368 3 view .LVU733 + 2231 0006 244C ldr r4, .L206 + 2232 0008 E36C ldr r3, [r4, #76] + 2233 000a 43F00103 orr r3, r3, #1 + 2234 000e E364 str r3, [r4, #76] + 2235 .loc 1 1368 3 view .LVU734 + 2236 0010 E36C ldr r3, [r4, #76] + 2237 0012 03F00103 and r3, r3, #1 + 2238 0016 0193 str r3, [sp, #4] + 2239 .loc 1 1368 3 view .LVU735 + ARM GAS /tmp/ccXzHHIc.s page 72 + + + 2240 0018 019B ldr r3, [sp, #4] + 2241 .LBE5: + 2242 .loc 1 1368 3 view .LVU736 +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Configure the LSCO pin in analog mode */ +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** GPIO_InitStruct.Pin = LSCO_PIN; + 2243 .loc 1 1371 3 view .LVU737 + 2244 .loc 1 1371 23 is_stmt 0 view .LVU738 + 2245 001a 0423 movs r3, #4 + 2246 001c 0393 str r3, [sp, #12] +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + 2247 .loc 1 1372 3 is_stmt 1 view .LVU739 + 2248 .loc 1 1372 24 is_stmt 0 view .LVU740 + 2249 001e 0323 movs r3, #3 + 2250 0020 0493 str r3, [sp, #16] +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + 2251 .loc 1 1373 3 is_stmt 1 view .LVU741 + 2252 .loc 1 1373 25 is_stmt 0 view .LVU742 + 2253 0022 0223 movs r3, #2 + 2254 0024 0693 str r3, [sp, #24] +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; + 2255 .loc 1 1374 3 is_stmt 1 view .LVU743 + 2256 .loc 1 1374 24 is_stmt 0 view .LVU744 + 2257 0026 0023 movs r3, #0 + 2258 0028 0593 str r3, [sp, #20] +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_GPIO_Init(LSCO_GPIO_PORT, &GPIO_InitStruct); + 2259 .loc 1 1375 3 is_stmt 1 view .LVU745 + 2260 002a 03A9 add r1, sp, #12 + 2261 002c 4FF09040 mov r0, #1207959552 + 2262 .LVL226: + 2263 .loc 1 1375 3 is_stmt 0 view .LVU746 + 2264 0030 FFF7FEFF bl HAL_GPIO_Init + 2265 .LVL227: +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Update LSCOSEL clock source in Backup Domain control register */ +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 2266 .loc 1 1378 3 is_stmt 1 view .LVU747 + 2267 .loc 1 1378 6 is_stmt 0 view .LVU748 + 2268 0034 A36D ldr r3, [r4, #88] + 2269 .loc 1 1378 5 view .LVU749 + 2270 0036 13F0805F tst r3, #268435456 + 2271 003a 1DD1 bne .L200 +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PWR_CLK_ENABLE(); + 2272 .loc 1 1380 5 is_stmt 1 view .LVU750 + 2273 .LBB6: + 2274 .loc 1 1380 5 view .LVU751 + 2275 .loc 1 1380 5 view .LVU752 + 2276 003c A26D ldr r2, [r4, #88] + 2277 003e 42F08052 orr r2, r2, #268435456 + 2278 0042 A265 str r2, [r4, #88] + 2279 .loc 1 1380 5 view .LVU753 + 2280 0044 A36D ldr r3, [r4, #88] + 2281 0046 03F08053 and r3, r3, #268435456 + 2282 004a 0293 str r3, [sp, #8] + 2283 .loc 1 1380 5 view .LVU754 + 2284 004c 029B ldr r3, [sp, #8] + ARM GAS /tmp/ccXzHHIc.s page 73 + + + 2285 .LBE6: + 2286 .loc 1 1380 5 view .LVU755 +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pwrclkchanged = SET; + 2287 .loc 1 1381 5 view .LVU756 + 2288 .LVL228: + 2289 .loc 1 1381 19 is_stmt 0 view .LVU757 + 2290 004e 0124 movs r4, #1 + 2291 .LVL229: + 2292 .L196: +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 2293 .loc 1 1383 3 is_stmt 1 view .LVU758 + 2294 .loc 1 1383 6 is_stmt 0 view .LVU759 + 2295 0050 124B ldr r3, .L206+4 + 2296 0052 1B68 ldr r3, [r3] + 2297 .loc 1 1383 5 view .LVU760 + 2298 0054 13F4807F tst r3, #256 + 2299 0058 10D0 beq .L203 +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2300 .loc 1 1362 20 view .LVU761 + 2301 005a 0022 movs r2, #0 + 2302 .LVL230: + 2303 .L197: +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_PWR_EnableBkUpAccess(); +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** backupchanged = SET; +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** MODIFY_REG(RCC->BDCR, RCC_BDCR_LSCOSEL | RCC_BDCR_LSCOEN, LSCOSource | RCC_BDCR_LSCOEN); + 2304 .loc 1 1389 3 is_stmt 1 view .LVU762 + 2305 005c 0E4B ldr r3, .L206 + 2306 005e D3F89000 ldr r0, [r3, #144] + 2307 0062 20F04070 bic r0, r0, #50331648 + 2308 0066 2843 orrs r0, r0, r5 + 2309 0068 40F08070 orr r0, r0, #16777216 + 2310 006c C3F89000 str r0, [r3, #144] +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(backupchanged == SET) + 2311 .loc 1 1391 3 view .LVU763 + 2312 .loc 1 1391 5 is_stmt 0 view .LVU764 + 2313 0070 42B9 cbnz r2, .L204 + 2314 .LVL231: + 2315 .L198: +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_PWR_DisableBkUpAccess(); +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pwrclkchanged == SET) + 2316 .loc 1 1395 3 is_stmt 1 view .LVU765 + 2317 .loc 1 1395 5 is_stmt 0 view .LVU766 + 2318 0072 54B9 cbnz r4, .L205 + 2319 .L195: +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PWR_CLK_DISABLE(); +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2320 .loc 1 1399 1 view .LVU767 + 2321 0074 09B0 add sp, sp, #36 + ARM GAS /tmp/ccXzHHIc.s page 74 + + + 2322 .LCFI8: + 2323 .cfi_remember_state + 2324 .cfi_def_cfa_offset 12 + 2325 @ sp needed + 2326 0076 30BD pop {r4, r5, pc} + 2327 .LVL232: + 2328 .L200: + 2329 .LCFI9: + 2330 .cfi_restore_state +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus backupchanged = RESET; + 2331 .loc 1 1361 20 view .LVU768 + 2332 0078 0024 movs r4, #0 + 2333 007a E9E7 b .L196 + 2334 .LVL233: + 2335 .L203: +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** backupchanged = SET; + 2336 .loc 1 1385 5 is_stmt 1 view .LVU769 + 2337 007c FFF7FEFF bl HAL_PWR_EnableBkUpAccess + 2338 .LVL234: +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2339 .loc 1 1386 5 view .LVU770 +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2340 .loc 1 1386 19 is_stmt 0 view .LVU771 + 2341 0080 0122 movs r2, #1 + 2342 0082 EBE7 b .L197 + 2343 .LVL235: + 2344 .L204: +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2345 .loc 1 1393 5 is_stmt 1 view .LVU772 + 2346 0084 FFF7FEFF bl HAL_PWR_DisableBkUpAccess + 2347 .LVL236: +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2348 .loc 1 1393 5 is_stmt 0 view .LVU773 + 2349 0088 F3E7 b .L198 + 2350 .L205: +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2351 .loc 1 1397 5 is_stmt 1 view .LVU774 + 2352 008a 034A ldr r2, .L206 + 2353 008c 936D ldr r3, [r2, #88] + 2354 008e 23F08053 bic r3, r3, #268435456 + 2355 0092 9365 str r3, [r2, #88] + 2356 .loc 1 1399 1 is_stmt 0 view .LVU775 + 2357 0094 EEE7 b .L195 + 2358 .L207: + 2359 0096 00BF .align 2 + 2360 .L206: + 2361 0098 00100240 .word 1073876992 + 2362 009c 00700040 .word 1073770496 + 2363 .cfi_endproc + 2364 .LFE337: + 2366 .section .text.HAL_RCCEx_DisableLSCO,"ax",%progbits + 2367 .align 1 + 2368 .global HAL_RCCEx_DisableLSCO + 2369 .syntax unified + 2370 .thumb + 2371 .thumb_func + 2373 HAL_RCCEx_DisableLSCO: + ARM GAS /tmp/ccXzHHIc.s page 75 + + + 2374 .LFB338: +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Disable the Low Speed clock output. +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_DisableLSCO(void) +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2375 .loc 1 1406 1 is_stmt 1 view -0 + 2376 .cfi_startproc + 2377 @ args = 0, pretend = 0, frame = 8 + 2378 @ frame_needed = 0, uses_anonymous_args = 0 + 2379 0000 10B5 push {r4, lr} + 2380 .LCFI10: + 2381 .cfi_def_cfa_offset 8 + 2382 .cfi_offset 4, -8 + 2383 .cfi_offset 14, -4 + 2384 0002 82B0 sub sp, sp, #8 + 2385 .LCFI11: + 2386 .cfi_def_cfa_offset 16 +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus pwrclkchanged = RESET; + 2387 .loc 1 1407 3 view .LVU777 + 2388 .LVL237: +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus backupchanged = RESET; + 2389 .loc 1 1408 3 view .LVU778 +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Update LSCOEN bit in Backup Domain control register */ +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 2390 .loc 1 1411 3 view .LVU779 + 2391 .loc 1 1411 6 is_stmt 0 view .LVU780 + 2392 0004 174B ldr r3, .L219 + 2393 0006 9B6D ldr r3, [r3, #88] + 2394 .loc 1 1411 5 view .LVU781 + 2395 0008 13F0805F tst r3, #268435456 + 2396 000c 1BD1 bne .L213 +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PWR_CLK_ENABLE(); + 2397 .loc 1 1413 5 is_stmt 1 view .LVU782 + 2398 .LBB7: + 2399 .loc 1 1413 5 view .LVU783 + 2400 .loc 1 1413 5 view .LVU784 + 2401 000e 154B ldr r3, .L219 + 2402 0010 9A6D ldr r2, [r3, #88] + 2403 0012 42F08052 orr r2, r2, #268435456 + 2404 0016 9A65 str r2, [r3, #88] + 2405 .loc 1 1413 5 view .LVU785 + 2406 0018 9B6D ldr r3, [r3, #88] + 2407 001a 03F08053 and r3, r3, #268435456 + 2408 001e 0193 str r3, [sp, #4] + 2409 .loc 1 1413 5 view .LVU786 + 2410 0020 019B ldr r3, [sp, #4] + 2411 .LBE7: + 2412 .loc 1 1413 5 view .LVU787 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pwrclkchanged = SET; + 2413 .loc 1 1414 5 view .LVU788 + 2414 .LVL238: + 2415 .loc 1 1414 19 is_stmt 0 view .LVU789 + ARM GAS /tmp/ccXzHHIc.s page 76 + + + 2416 0022 0124 movs r4, #1 + 2417 .LVL239: + 2418 .L209: +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 2419 .loc 1 1416 3 is_stmt 1 view .LVU790 + 2420 .loc 1 1416 6 is_stmt 0 view .LVU791 + 2421 0024 104B ldr r3, .L219+4 + 2422 0026 1B68 ldr r3, [r3] + 2423 .loc 1 1416 5 view .LVU792 + 2424 0028 13F4807F tst r3, #256 + 2425 002c 0DD0 beq .L216 +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2426 .loc 1 1408 20 view .LVU793 + 2427 002e 0021 movs r1, #0 + 2428 .LVL240: + 2429 .L210: +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable access to the backup domain */ +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_PWR_EnableBkUpAccess(); +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** backupchanged = SET; +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSCOEN); + 2430 .loc 1 1423 3 is_stmt 1 view .LVU794 + 2431 0030 0C4A ldr r2, .L219 + 2432 0032 D2F89030 ldr r3, [r2, #144] + 2433 0036 23F08073 bic r3, r3, #16777216 + 2434 003a C2F89030 str r3, [r2, #144] +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Restore previous configuration */ +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(backupchanged == SET) + 2435 .loc 1 1426 3 view .LVU795 + 2436 .loc 1 1426 5 is_stmt 0 view .LVU796 + 2437 003e 41B9 cbnz r1, .L217 + 2438 .LVL241: + 2439 .L211: +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Disable access to the backup domain */ +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_PWR_DisableBkUpAccess(); +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(pwrclkchanged == SET) + 2440 .loc 1 1431 3 is_stmt 1 view .LVU797 + 2441 .loc 1 1431 5 is_stmt 0 view .LVU798 + 2442 0040 54B9 cbnz r4, .L218 + 2443 .L208: +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_PWR_CLK_DISABLE(); +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2444 .loc 1 1435 1 view .LVU799 + 2445 0042 02B0 add sp, sp, #8 + 2446 .LCFI12: + 2447 .cfi_remember_state + 2448 .cfi_def_cfa_offset 8 + 2449 @ sp needed + 2450 0044 10BD pop {r4, pc} + ARM GAS /tmp/ccXzHHIc.s page 77 + + + 2451 .LVL242: + 2452 .L213: + 2453 .LCFI13: + 2454 .cfi_restore_state +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** FlagStatus backupchanged = RESET; + 2455 .loc 1 1407 20 view .LVU800 + 2456 0046 0024 movs r4, #0 + 2457 0048 ECE7 b .L209 + 2458 .LVL243: + 2459 .L216: +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** backupchanged = SET; + 2460 .loc 1 1419 5 is_stmt 1 view .LVU801 + 2461 004a FFF7FEFF bl HAL_PWR_EnableBkUpAccess + 2462 .LVL244: +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2463 .loc 1 1420 5 view .LVU802 +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2464 .loc 1 1420 19 is_stmt 0 view .LVU803 + 2465 004e 0121 movs r1, #1 + 2466 0050 EEE7 b .L210 + 2467 .LVL245: + 2468 .L217: +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2469 .loc 1 1429 5 is_stmt 1 view .LVU804 + 2470 0052 FFF7FEFF bl HAL_PWR_DisableBkUpAccess + 2471 .LVL246: +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2472 .loc 1 1429 5 is_stmt 0 view .LVU805 + 2473 0056 F3E7 b .L211 + 2474 .L218: +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2475 .loc 1 1433 5 is_stmt 1 view .LVU806 + 2476 0058 024A ldr r2, .L219 + 2477 005a 936D ldr r3, [r2, #88] + 2478 005c 23F08053 bic r3, r3, #268435456 + 2479 0060 9365 str r3, [r2, #88] + 2480 .loc 1 1435 1 is_stmt 0 view .LVU807 + 2481 0062 EEE7 b .L208 + 2482 .L220: + 2483 .align 2 + 2484 .L219: + 2485 0064 00100240 .word 1073876992 + 2486 0068 00700040 .word 1073770496 + 2487 .cfi_endproc + 2488 .LFE338: + 2490 .section .text.HAL_RCCEx_CRSConfig,"ax",%progbits + 2491 .align 1 + 2492 .global HAL_RCCEx_CRSConfig + 2493 .syntax unified + 2494 .thumb + 2495 .thumb_func + 2497 HAL_RCCEx_CRSConfig: + 2498 .LVL247: + 2499 .LFB339: +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** + ARM GAS /tmp/ccXzHHIc.s page 78 + + +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @} +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** #if defined(CRS) +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** @defgroup RCCEx_Exported_Functions_Group3 Extended Clock Recovery System Control functions +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Extended Clock Recovery System Control functions +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** @verbatim +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** =============================================================================== +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** ##### Extended Clock Recovery System Control functions ##### +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** =============================================================================== +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** [..] +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** For devices with Clock Recovery System feature (CRS), RCC Extension HAL driver can be used as +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) In System clock config, HSI48 needs to be enabled +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) Enable CRS clock in IP MSP init which will use CRS functions +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) Call CRS functions as follows: +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (##) Prepare synchronization configuration necessary for HSI48 calibration +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) Default values can be set for frequency Error Measurement (reload and error lim +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** and also HSI48 oscillator smooth trimming. +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) Macro __HAL_RCC_CRS_RELOADVALUE_CALCULATE can be also used to calculate +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** directly reload value with target and sychronization frequencies values +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (##) Call function HAL_RCCEx_CRSConfig which +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) Resets CRS registers to their default values. +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) Configures CRS registers with synchronization configuration +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) Enables automatic calibration and frequency error counter feature +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** Note: When using USB LPM (Link Power Management) and the device is in Sleep mode, the +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** periodic USB SOF will not be generated by the host. No SYNC signal will therefore be +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** provided to the CRS to calibrate the HSI48 on the run. To guarantee the required clock +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** precision after waking up from Sleep mode, the LSE or reference clock on the GPIOs +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** should be used as SYNC signal. +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (##) A polling function is provided to wait for complete synchronization +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) Call function HAL_RCCEx_CRSWaitSynchronization() +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) According to CRS status, user can decide to adjust again the calibration or con +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** application if synchronization is OK +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) User can retrieve information related to synchronization in calling function +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_CRSGetSynchronizationInfo() +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) Regarding synchronization status and synchronization information, user can try a new cali +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** in changing synchronization configuration and call again HAL_RCCEx_CRSConfig. +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** Note: When the SYNC event is detected during the downcounting phase (before reaching the +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** it means that the actual frequency is lower than the target (and so, that the TRIM value +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** incremented), while when it is detected during the upcounting phase it means that the ac +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** is higher (and that the TRIM value should be decremented). +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) In interrupt mode, user can resort to the available macros (__HAL_RCC_CRS_XXX_IT). Interr +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** through CRS Handler (CRS_IRQn/CRS_IRQHandler) +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (++) Call function HAL_RCCEx_CRSConfig() +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (++) Enable CRS_IRQn (thanks to NVIC functions) +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (++) Enable CRS interrupt (__HAL_RCC_CRS_ENABLE_IT) +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (++) Implement CRS status management in the following user callbacks called from +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_CRS_IRQHandler(): + ARM GAS /tmp/ccXzHHIc.s page 79 + + +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) HAL_RCCEx_CRS_SyncOkCallback() +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) HAL_RCCEx_CRS_SyncWarnCallback() +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) HAL_RCCEx_CRS_ExpectedSyncCallback() +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (+++) HAL_RCCEx_CRS_ErrorCallback() +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** (#) To force a SYNC EVENT, user can use the function HAL_RCCEx_CRSSoftwareSynchronizationGene +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** This function can be called before calling HAL_RCCEx_CRSConfig (for instance in Systick h +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** @endverbatim +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @{ +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Start automatic synchronization for polling mode +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param pInit Pointer on RCC_CRSInitTypeDef structure +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_CRSConfig(RCC_CRSInitTypeDef *pInit) +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2500 .loc 1 1514 1 is_stmt 1 view -0 + 2501 .cfi_startproc + 2502 @ args = 0, pretend = 0, frame = 0 + 2503 @ frame_needed = 0, uses_anonymous_args = 0 + 2504 @ link register save eliminated. +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t value; + 2505 .loc 1 1515 3 view .LVU809 +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameters */ +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_CRS_SYNC_DIV(pInit->Prescaler)); + 2506 .loc 1 1518 3 view .LVU810 +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_CRS_SYNC_SOURCE(pInit->Source)); + 2507 .loc 1 1519 3 view .LVU811 +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_CRS_SYNC_POLARITY(pInit->Polarity)); + 2508 .loc 1 1520 3 view .LVU812 +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_CRS_RELOADVALUE(pInit->ReloadValue)); + 2509 .loc 1 1521 3 view .LVU813 +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_CRS_ERRORLIMIT(pInit->ErrorLimitValue)); + 2510 .loc 1 1522 3 view .LVU814 +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(IS_RCC_CRS_HSI48CALIBRATION(pInit->HSI48CalibrationValue)); + 2511 .loc 1 1523 3 view .LVU815 +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* CONFIGURATION */ +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Before configuration, reset CRS registers to their default values*/ +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_FORCE_RESET(); + 2512 .loc 1 1528 3 view .LVU816 + 2513 0000 104B ldr r3, .L222 + 2514 0002 9A6B ldr r2, [r3, #56] + 2515 0004 42F48072 orr r2, r2, #256 + 2516 0008 9A63 str r2, [r3, #56] +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_RELEASE_RESET(); + 2517 .loc 1 1529 3 view .LVU817 + 2518 000a 9A6B ldr r2, [r3, #56] + 2519 000c 22F48072 bic r2, r2, #256 + 2520 0010 9A63 str r2, [r3, #56] +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set the SYNCDIV[2:0] bits according to Prescaler value */ + ARM GAS /tmp/ccXzHHIc.s page 80 + + +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set the SYNCSRC[1:0] bits according to Source value */ +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set the SYNCSPOL bit according to Polarity value */ +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** value = (pInit->Prescaler | pInit->Source | pInit->Polarity); + 2521 .loc 1 1534 3 view .LVU818 + 2522 .loc 1 1534 17 is_stmt 0 view .LVU819 + 2523 0012 0368 ldr r3, [r0] + 2524 .loc 1 1534 36 view .LVU820 + 2525 0014 4268 ldr r2, [r0, #4] + 2526 .loc 1 1534 29 view .LVU821 + 2527 0016 1343 orrs r3, r3, r2 + 2528 .loc 1 1534 52 view .LVU822 + 2529 0018 8268 ldr r2, [r0, #8] + 2530 .loc 1 1534 9 view .LVU823 + 2531 001a 1A43 orrs r2, r2, r3 + 2532 .LVL248: +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set the RELOAD[15:0] bits according to ReloadValue value */ +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** value |= pInit->ReloadValue; + 2533 .loc 1 1536 3 is_stmt 1 view .LVU824 + 2534 .loc 1 1536 17 is_stmt 0 view .LVU825 + 2535 001c C368 ldr r3, [r0, #12] + 2536 .loc 1 1536 9 view .LVU826 + 2537 001e 1343 orrs r3, r3, r2 + 2538 .LVL249: +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set the FELIM[7:0] bits according to ErrorLimitValue value */ +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** value |= (pInit->ErrorLimitValue << CRS_CFGR_FELIM_Pos); + 2539 .loc 1 1538 3 is_stmt 1 view .LVU827 + 2540 .loc 1 1538 18 is_stmt 0 view .LVU828 + 2541 0020 0269 ldr r2, [r0, #16] + 2542 .loc 1 1538 9 view .LVU829 + 2543 0022 43EA0242 orr r2, r3, r2, lsl #16 + 2544 .LVL250: +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** WRITE_REG(CRS->CFGR, value); + 2545 .loc 1 1539 3 is_stmt 1 view .LVU830 + 2546 0026 084B ldr r3, .L222+4 + 2547 0028 5A60 str r2, [r3, #4] +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Adjust HSI48 oscillator smooth trimming */ +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Set the TRIM[6:0] bits according to RCC_CRS_HSI48CalibrationValue value */ +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** MODIFY_REG(CRS->CR, CRS_CR_TRIM, (pInit->HSI48CalibrationValue << CRS_CR_TRIM_Pos)); + 2548 .loc 1 1543 3 view .LVU831 + 2549 002a 1A68 ldr r2, [r3] + 2550 .LVL251: + 2551 .loc 1 1543 3 is_stmt 0 view .LVU832 + 2552 002c 22F4FE42 bic r2, r2, #32512 + 2553 0030 4169 ldr r1, [r0, #20] + 2554 0032 42EA0122 orr r2, r2, r1, lsl #8 + 2555 0036 1A60 str r2, [r3] + 2556 .LVL252: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* START AUTOMATIC SYNCHRONIZATION*/ +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Enable Automatic trimming & Frequency error counter */ +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** SET_BIT(CRS->CR, CRS_CR_AUTOTRIMEN | CRS_CR_CEN); + 2557 .loc 1 1548 3 is_stmt 1 view .LVU833 + 2558 0038 1A68 ldr r2, [r3] + 2559 003a 42F06002 orr r2, r2, #96 + 2560 003e 1A60 str r2, [r3] + ARM GAS /tmp/ccXzHHIc.s page 81 + + +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2561 .loc 1 1549 1 is_stmt 0 view .LVU834 + 2562 0040 7047 bx lr + 2563 .L223: + 2564 0042 00BF .align 2 + 2565 .L222: + 2566 0044 00100240 .word 1073876992 + 2567 0048 00200040 .word 1073750016 + 2568 .cfi_endproc + 2569 .LFE339: + 2571 .section .text.HAL_RCCEx_CRSSoftwareSynchronizationGenerate,"ax",%progbits + 2572 .align 1 + 2573 .global HAL_RCCEx_CRSSoftwareSynchronizationGenerate + 2574 .syntax unified + 2575 .thumb + 2576 .thumb_func + 2578 HAL_RCCEx_CRSSoftwareSynchronizationGenerate: + 2579 .LFB340: +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Generate the software synchronization event +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_CRSSoftwareSynchronizationGenerate(void) +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2580 .loc 1 1556 1 is_stmt 1 view -0 + 2581 .cfi_startproc + 2582 @ args = 0, pretend = 0, frame = 0 + 2583 @ frame_needed = 0, uses_anonymous_args = 0 + 2584 @ link register save eliminated. +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** SET_BIT(CRS->CR, CRS_CR_SWSYNC); + 2585 .loc 1 1557 3 view .LVU836 + 2586 0000 024A ldr r2, .L225 + 2587 0002 1368 ldr r3, [r2] + 2588 0004 43F08003 orr r3, r3, #128 + 2589 0008 1360 str r3, [r2] +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2590 .loc 1 1558 1 is_stmt 0 view .LVU837 + 2591 000a 7047 bx lr + 2592 .L226: + 2593 .align 2 + 2594 .L225: + 2595 000c 00200040 .word 1073750016 + 2596 .cfi_endproc + 2597 .LFE340: + 2599 .section .text.HAL_RCCEx_CRSGetSynchronizationInfo,"ax",%progbits + 2600 .align 1 + 2601 .global HAL_RCCEx_CRSGetSynchronizationInfo + 2602 .syntax unified + 2603 .thumb + 2604 .thumb_func + 2606 HAL_RCCEx_CRSGetSynchronizationInfo: + 2607 .LVL253: + 2608 .LFB341: +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Return synchronization info + ARM GAS /tmp/ccXzHHIc.s page 82 + + +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param pSynchroInfo Pointer on RCC_CRSSynchroInfoTypeDef structure +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_CRSGetSynchronizationInfo(RCC_CRSSynchroInfoTypeDef *pSynchroInfo) +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2609 .loc 1 1566 1 is_stmt 1 view -0 + 2610 .cfi_startproc + 2611 @ args = 0, pretend = 0, frame = 0 + 2612 @ frame_needed = 0, uses_anonymous_args = 0 + 2613 @ link register save eliminated. +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check the parameter */ +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** assert_param(pSynchroInfo != (void *)NULL); + 2614 .loc 1 1568 3 view .LVU839 +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get the reload value */ +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pSynchroInfo->ReloadValue = (READ_BIT(CRS->CFGR, CRS_CFGR_RELOAD)); + 2615 .loc 1 1571 3 view .LVU840 + 2616 .loc 1 1571 32 is_stmt 0 view .LVU841 + 2617 0000 074B ldr r3, .L228 + 2618 0002 5A68 ldr r2, [r3, #4] + 2619 0004 92B2 uxth r2, r2 + 2620 .loc 1 1571 29 view .LVU842 + 2621 0006 0260 str r2, [r0] +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get HSI48 oscillator smooth trimming */ +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pSynchroInfo->HSI48CalibrationValue = (READ_BIT(CRS->CR, CRS_CR_TRIM) >> CRS_CR_TRIM_Pos); + 2622 .loc 1 1574 3 is_stmt 1 view .LVU843 + 2623 .loc 1 1574 42 is_stmt 0 view .LVU844 + 2624 0008 1A68 ldr r2, [r3] + 2625 .loc 1 1574 73 view .LVU845 + 2626 000a C2F30622 ubfx r2, r2, #8, #7 + 2627 .loc 1 1574 39 view .LVU846 + 2628 000e 4260 str r2, [r0, #4] +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get Frequency error capture */ +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pSynchroInfo->FreqErrorCapture = (READ_BIT(CRS->ISR, CRS_ISR_FECAP) >> CRS_ISR_FECAP_Pos); + 2629 .loc 1 1577 3 is_stmt 1 view .LVU847 + 2630 .loc 1 1577 37 is_stmt 0 view .LVU848 + 2631 0010 9A68 ldr r2, [r3, #8] + 2632 .loc 1 1577 71 view .LVU849 + 2633 0012 120C lsrs r2, r2, #16 + 2634 .loc 1 1577 34 view .LVU850 + 2635 0014 8260 str r2, [r0, #8] +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get Frequency error direction */ +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** pSynchroInfo->FreqErrorDirection = (READ_BIT(CRS->ISR, CRS_ISR_FEDIR)); + 2636 .loc 1 1580 3 is_stmt 1 view .LVU851 + 2637 .loc 1 1580 39 is_stmt 0 view .LVU852 + 2638 0016 9B68 ldr r3, [r3, #8] + 2639 0018 03F40043 and r3, r3, #32768 + 2640 .loc 1 1580 36 view .LVU853 + 2641 001c C360 str r3, [r0, #12] +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2642 .loc 1 1581 1 view .LVU854 + 2643 001e 7047 bx lr + 2644 .L229: + 2645 .align 2 + ARM GAS /tmp/ccXzHHIc.s page 83 + + + 2646 .L228: + 2647 0020 00200040 .word 1073750016 + 2648 .cfi_endproc + 2649 .LFE341: + 2651 .section .text.HAL_RCCEx_CRSWaitSynchronization,"ax",%progbits + 2652 .align 1 + 2653 .global HAL_RCCEx_CRSWaitSynchronization + 2654 .syntax unified + 2655 .thumb + 2656 .thumb_func + 2658 HAL_RCCEx_CRSWaitSynchronization: + 2659 .LVL254: + 2660 .LFB342: +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Wait for CRS Synchronization status. +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param Timeout Duration of the timeout +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @note Timeout is based on the maximum time to receive a SYNC event based on synchronization +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * frequency. +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @note If Timeout set to HAL_MAX_DELAY, HAL_TIMEOUT will be never returned. +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval Combination of Synchronization status +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * This parameter can be a combination of the following values: +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_TIMEOUT +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_SYNCOK +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_SYNCWARN +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_SYNCERR +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_SYNCMISS +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_TRIMOVF +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t HAL_RCCEx_CRSWaitSynchronization(uint32_t Timeout) +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2661 .loc 1 1599 1 is_stmt 1 view -0 + 2662 .cfi_startproc + 2663 @ args = 0, pretend = 0, frame = 0 + 2664 @ frame_needed = 0, uses_anonymous_args = 0 + 2665 .loc 1 1599 1 is_stmt 0 view .LVU856 + 2666 0000 70B5 push {r4, r5, r6, lr} + 2667 .LCFI14: + 2668 .cfi_def_cfa_offset 16 + 2669 .cfi_offset 4, -16 + 2670 .cfi_offset 5, -12 + 2671 .cfi_offset 6, -8 + 2672 .cfi_offset 14, -4 + 2673 0002 0546 mov r5, r0 +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t crsstatus = RCC_CRS_NONE; + 2674 .loc 1 1600 3 is_stmt 1 view .LVU857 + 2675 .LVL255: +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t tickstart; + 2676 .loc 1 1601 3 view .LVU858 +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get timeout */ +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** tickstart = HAL_GetTick(); + 2677 .loc 1 1604 3 view .LVU859 + 2678 .loc 1 1604 15 is_stmt 0 view .LVU860 + 2679 0004 FFF7FEFF bl HAL_GetTick + 2680 .LVL256: + 2681 .loc 1 1604 15 view .LVU861 + ARM GAS /tmp/ccXzHHIc.s page 84 + + + 2682 0008 0646 mov r6, r0 + 2683 .LVL257: +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t tickstart; + 2684 .loc 1 1600 12 view .LVU862 + 2685 000a 0024 movs r4, #0 + 2686 000c 0EE0 b .L238 + 2687 .LVL258: + 2688 .L243: +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Wait for CRS flag or timeout detection */ +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** do +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(Timeout != HAL_MAX_DELAY) +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + 2689 .loc 1 1611 7 is_stmt 1 view .LVU863 + 2690 .loc 1 1611 12 is_stmt 0 view .LVU864 + 2691 000e FFF7FEFF bl HAL_GetTick + 2692 .LVL259: + 2693 .loc 1 1611 26 view .LVU865 + 2694 0012 801B subs r0, r0, r6 + 2695 .loc 1 1611 9 view .LVU866 + 2696 0014 A842 cmp r0, r5 + 2697 0016 02D8 bhi .L239 + 2698 .loc 1 1611 50 discriminator 1 view .LVU867 + 2699 0018 5DB9 cbnz r5, .L231 +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crsstatus = RCC_CRS_TIMEOUT; + 2700 .loc 1 1613 19 view .LVU868 + 2701 001a 0124 movs r4, #1 + 2702 .LVL260: + 2703 .loc 1 1613 19 view .LVU869 + 2704 001c 09E0 b .L231 + 2705 .LVL261: + 2706 .L239: + 2707 .loc 1 1613 19 view .LVU870 + 2708 001e 0124 movs r4, #1 + 2709 .LVL262: + 2710 .loc 1 1613 19 view .LVU871 + 2711 0020 07E0 b .L231 + 2712 .LVL263: + 2713 .L244: +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS SYNCOK flag */ +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCOK)) +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* CRS SYNC event OK */ +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crsstatus |= RCC_CRS_SYNCOK; +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS SYNC event OK bit */ +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCOK); +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS SYNCWARN flag */ +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCWARN)) +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + ARM GAS /tmp/ccXzHHIc.s page 85 + + +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* CRS SYNC warning */ +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crsstatus |= RCC_CRS_SYNCWARN; +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS SYNCWARN bit */ +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCWARN); +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS TRIM overflow flag */ +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_TRIMOVF)) +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* CRS SYNC Error */ +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crsstatus |= RCC_CRS_TRIMOVF; +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS Error bit */ +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_TRIMOVF); +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS Error flag */ +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCERR)) +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* CRS SYNC Error */ +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crsstatus |= RCC_CRS_SYNCERR; +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS Error bit */ +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCERR); +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS SYNC Missed flag */ +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_SYNCMISS)) +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* CRS SYNC Missed */ +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crsstatus |= RCC_CRS_SYNCMISS; +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS SYNC Missed bit */ +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_SYNCMISS); +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS Expected SYNC flag */ +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(__HAL_RCC_CRS_GET_FLAG(RCC_CRS_FLAG_ESYNC)) +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* frequency error counter reached a zero value */ +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __HAL_RCC_CRS_CLEAR_FLAG(RCC_CRS_FLAG_ESYNC); + 2714 .loc 1 1670 7 is_stmt 1 discriminator 2 view .LVU872 + 2715 .loc 1 1670 7 discriminator 2 view .LVU873 + 2716 .loc 1 1670 7 discriminator 2 view .LVU874 + 2717 0022 214B ldr r3, .L245 + 2718 0024 0822 movs r2, #8 + 2719 0026 DA60 str r2, [r3, #12] + 2720 .L237: + 2721 .loc 1 1670 7 discriminator 4 view .LVU875 +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } while(RCC_CRS_NONE == crsstatus); + 2722 .loc 1 1672 24 discriminator 4 view .LVU876 + 2723 0028 002C cmp r4, #0 + 2724 002a 3AD1 bne .L242 + 2725 .LVL264: + 2726 .L238: + ARM GAS /tmp/ccXzHHIc.s page 86 + + +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2727 .loc 1 1607 3 view .LVU877 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2728 .loc 1 1609 5 view .LVU878 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2729 .loc 1 1609 7 is_stmt 0 view .LVU879 + 2730 002c B5F1FF3F cmp r5, #-1 + 2731 0030 EDD1 bne .L243 + 2732 .LVL265: + 2733 .L231: +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2734 .loc 1 1617 5 is_stmt 1 view .LVU880 +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2735 .loc 1 1617 8 is_stmt 0 view .LVU881 + 2736 0032 1D4B ldr r3, .L245 + 2737 0034 9B68 ldr r3, [r3, #8] +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2738 .loc 1 1617 7 view .LVU882 + 2739 0036 13F0010F tst r3, #1 + 2740 003a 04D0 beq .L232 +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2741 .loc 1 1620 7 is_stmt 1 view .LVU883 +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2742 .loc 1 1620 17 is_stmt 0 view .LVU884 + 2743 003c 44F00204 orr r4, r4, #2 + 2744 .LVL266: +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2745 .loc 1 1623 7 is_stmt 1 view .LVU885 +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2746 .loc 1 1623 7 view .LVU886 +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2747 .loc 1 1623 7 view .LVU887 + 2748 0040 194B ldr r3, .L245 + 2749 0042 0122 movs r2, #1 + 2750 0044 DA60 str r2, [r3, #12] + 2751 .L232: +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2752 .loc 1 1623 7 discriminator 4 view .LVU888 +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2753 .loc 1 1627 5 discriminator 4 view .LVU889 +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2754 .loc 1 1627 8 is_stmt 0 discriminator 4 view .LVU890 + 2755 0046 184B ldr r3, .L245 + 2756 0048 9B68 ldr r3, [r3, #8] +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2757 .loc 1 1627 7 discriminator 4 view .LVU891 + 2758 004a 13F0020F tst r3, #2 + 2759 004e 04D0 beq .L233 +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2760 .loc 1 1630 7 is_stmt 1 view .LVU892 +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2761 .loc 1 1630 17 is_stmt 0 view .LVU893 + 2762 0050 44F00404 orr r4, r4, #4 + 2763 .LVL267: +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2764 .loc 1 1633 7 is_stmt 1 view .LVU894 +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + ARM GAS /tmp/ccXzHHIc.s page 87 + + + 2765 .loc 1 1633 7 view .LVU895 +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2766 .loc 1 1633 7 view .LVU896 + 2767 0054 144B ldr r3, .L245 + 2768 0056 0222 movs r2, #2 + 2769 0058 DA60 str r2, [r3, #12] + 2770 .L233: +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2771 .loc 1 1633 7 discriminator 4 view .LVU897 +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2772 .loc 1 1637 5 discriminator 4 view .LVU898 +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2773 .loc 1 1637 8 is_stmt 0 discriminator 4 view .LVU899 + 2774 005a 134B ldr r3, .L245 + 2775 005c 9B68 ldr r3, [r3, #8] +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2776 .loc 1 1637 7 discriminator 4 view .LVU900 + 2777 005e 13F4806F tst r3, #1024 + 2778 0062 04D0 beq .L234 +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2779 .loc 1 1640 7 is_stmt 1 view .LVU901 +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2780 .loc 1 1640 17 is_stmt 0 view .LVU902 + 2781 0064 44F02004 orr r4, r4, #32 + 2782 .LVL268: +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2783 .loc 1 1643 7 is_stmt 1 view .LVU903 +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2784 .loc 1 1643 7 view .LVU904 +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2785 .loc 1 1643 7 view .LVU905 + 2786 0068 0F4B ldr r3, .L245 + 2787 006a 0422 movs r2, #4 + 2788 006c DA60 str r2, [r3, #12] + 2789 .L234: +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2790 .loc 1 1643 7 discriminator 4 view .LVU906 +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2791 .loc 1 1647 5 discriminator 4 view .LVU907 +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2792 .loc 1 1647 8 is_stmt 0 discriminator 4 view .LVU908 + 2793 006e 0E4B ldr r3, .L245 + 2794 0070 9B68 ldr r3, [r3, #8] +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2795 .loc 1 1647 7 discriminator 4 view .LVU909 + 2796 0072 13F4807F tst r3, #256 + 2797 0076 04D0 beq .L235 +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2798 .loc 1 1650 7 is_stmt 1 view .LVU910 +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2799 .loc 1 1650 17 is_stmt 0 view .LVU911 + 2800 0078 44F00804 orr r4, r4, #8 + 2801 .LVL269: +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2802 .loc 1 1653 7 is_stmt 1 view .LVU912 +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2803 .loc 1 1653 7 view .LVU913 + ARM GAS /tmp/ccXzHHIc.s page 88 + + +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2804 .loc 1 1653 7 view .LVU914 + 2805 007c 0A4B ldr r3, .L245 + 2806 007e 0422 movs r2, #4 + 2807 0080 DA60 str r2, [r3, #12] + 2808 .L235: +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2809 .loc 1 1653 7 discriminator 4 view .LVU915 +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2810 .loc 1 1657 5 discriminator 4 view .LVU916 +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2811 .loc 1 1657 8 is_stmt 0 discriminator 4 view .LVU917 + 2812 0082 094B ldr r3, .L245 + 2813 0084 9B68 ldr r3, [r3, #8] +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2814 .loc 1 1657 7 discriminator 4 view .LVU918 + 2815 0086 13F4007F tst r3, #512 + 2816 008a 04D0 beq .L236 +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2817 .loc 1 1660 7 is_stmt 1 view .LVU919 +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2818 .loc 1 1660 17 is_stmt 0 view .LVU920 + 2819 008c 44F01004 orr r4, r4, #16 + 2820 .LVL270: +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2821 .loc 1 1663 7 is_stmt 1 view .LVU921 +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2822 .loc 1 1663 7 view .LVU922 +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2823 .loc 1 1663 7 view .LVU923 + 2824 0090 054B ldr r3, .L245 + 2825 0092 0422 movs r2, #4 + 2826 0094 DA60 str r2, [r3, #12] + 2827 .L236: +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2828 .loc 1 1663 7 discriminator 4 view .LVU924 +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2829 .loc 1 1667 5 discriminator 4 view .LVU925 +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2830 .loc 1 1667 8 is_stmt 0 discriminator 4 view .LVU926 + 2831 0096 044B ldr r3, .L245 + 2832 0098 9B68 ldr r3, [r3, #8] +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2833 .loc 1 1667 7 discriminator 4 view .LVU927 + 2834 009a 13F0080F tst r3, #8 + 2835 009e C3D0 beq .L237 +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2836 .loc 1 1667 7 discriminator 4 view .LVU928 + 2837 00a0 BFE7 b .L244 + 2838 .L242: +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** return crsstatus; + 2839 .loc 1 1674 3 is_stmt 1 view .LVU929 +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2840 .loc 1 1675 1 is_stmt 0 view .LVU930 + 2841 00a2 2046 mov r0, r4 + 2842 00a4 70BD pop {r4, r5, r6, pc} + ARM GAS /tmp/ccXzHHIc.s page 89 + + + 2843 .LVL271: + 2844 .L246: + 2845 .loc 1 1675 1 view .LVU931 + 2846 00a6 00BF .align 2 + 2847 .L245: + 2848 00a8 00200040 .word 1073750016 + 2849 .cfi_endproc + 2850 .LFE342: + 2852 .section .text.HAL_RCCEx_CRS_SyncOkCallback,"ax",%progbits + 2853 .align 1 + 2854 .weak HAL_RCCEx_CRS_SyncOkCallback + 2855 .syntax unified + 2856 .thumb + 2857 .thumb_func + 2859 HAL_RCCEx_CRS_SyncOkCallback: + 2860 .LFB344: +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief Handle the Clock Recovery System interrupt request. +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval None +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** void HAL_RCCEx_CRS_IRQHandler(void) +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t crserror = RCC_CRS_NONE; +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get current IT flags and IT sources values */ +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t itflags = READ_REG(CRS->ISR); +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t itsources = READ_REG(CRS->CR); +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS SYNCOK flag */ +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((itflags & RCC_CRS_FLAG_SYNCOK) != 0U) && ((itsources & RCC_CRS_IT_SYNCOK) != 0U)) +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS SYNC event OK flag */ +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** WRITE_REG(CRS->ICR, CRS_ICR_SYNCOKC); +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* user callback */ +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_CRS_SyncOkCallback(); +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS SYNCWARN flag */ +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(((itflags & RCC_CRS_FLAG_SYNCWARN) != 0U) && ((itsources & RCC_CRS_IT_SYNCWARN) != 0U)) +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS SYNCWARN flag */ +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** WRITE_REG(CRS->ICR, CRS_ICR_SYNCWARNC); +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* user callback */ +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_CRS_SyncWarnCallback(); +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS Expected SYNC flag */ +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else if(((itflags & RCC_CRS_FLAG_ESYNC) != 0U) && ((itsources & RCC_CRS_IT_ESYNC) != 0U)) +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* frequency error counter reached a zero value */ +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** WRITE_REG(CRS->ICR, CRS_ICR_ESYNCC); +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* user callback */ +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_CRS_ExpectedSyncCallback(); +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Check CRS Error flags */ +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** else + ARM GAS /tmp/ccXzHHIc.s page 90 + + +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if(((itflags & RCC_CRS_FLAG_ERR) != 0U) && ((itsources & RCC_CRS_IT_ERR) != 0U)) +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((itflags & RCC_CRS_FLAG_SYNCERR) != 0U) +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crserror |= RCC_CRS_SYNCERR; +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((itflags & RCC_CRS_FLAG_SYNCMISS) != 0U) +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crserror |= RCC_CRS_SYNCMISS; +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** if((itflags & RCC_CRS_FLAG_TRIMOVF) != 0U) +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** crserror |= RCC_CRS_TRIMOVF; +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Clear CRS Error flags */ +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** WRITE_REG(CRS->ICR, CRS_ICR_ERRC); +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* user error callback */ +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** HAL_RCCEx_CRS_ErrorCallback(crserror); +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief RCCEx Clock Recovery System SYNCOK interrupt callback. +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval none +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __weak void HAL_RCCEx_CRS_SyncOkCallback(void) +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2861 .loc 1 1747 1 is_stmt 1 view -0 + 2862 .cfi_startproc + 2863 @ args = 0, pretend = 0, frame = 0 + 2864 @ frame_needed = 0, uses_anonymous_args = 0 + 2865 @ link register save eliminated. +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** the @ref HAL_RCCEx_CRS_SyncOkCallback should be implemented in the user file +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2866 .loc 1 1751 1 view .LVU933 + 2867 0000 7047 bx lr + 2868 .cfi_endproc + 2869 .LFE344: + 2871 .section .text.HAL_RCCEx_CRS_SyncWarnCallback,"ax",%progbits + 2872 .align 1 + 2873 .weak HAL_RCCEx_CRS_SyncWarnCallback + 2874 .syntax unified + 2875 .thumb + 2876 .thumb_func + 2878 HAL_RCCEx_CRS_SyncWarnCallback: + 2879 .LFB345: +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief RCCEx Clock Recovery System SYNCWARN interrupt callback. +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval none +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ + ARM GAS /tmp/ccXzHHIc.s page 91 + + +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __weak void HAL_RCCEx_CRS_SyncWarnCallback(void) +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2880 .loc 1 1758 1 view -0 + 2881 .cfi_startproc + 2882 @ args = 0, pretend = 0, frame = 0 + 2883 @ frame_needed = 0, uses_anonymous_args = 0 + 2884 @ link register save eliminated. +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** the @ref HAL_RCCEx_CRS_SyncWarnCallback should be implemented in the user file +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2885 .loc 1 1762 1 view .LVU935 + 2886 0000 7047 bx lr + 2887 .cfi_endproc + 2888 .LFE345: + 2890 .section .text.HAL_RCCEx_CRS_ExpectedSyncCallback,"ax",%progbits + 2891 .align 1 + 2892 .weak HAL_RCCEx_CRS_ExpectedSyncCallback + 2893 .syntax unified + 2894 .thumb + 2895 .thumb_func + 2897 HAL_RCCEx_CRS_ExpectedSyncCallback: + 2898 .LFB346: +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief RCCEx Clock Recovery System Expected SYNC interrupt callback. +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval none +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __weak void HAL_RCCEx_CRS_ExpectedSyncCallback(void) +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2899 .loc 1 1769 1 view -0 + 2900 .cfi_startproc + 2901 @ args = 0, pretend = 0, frame = 0 + 2902 @ frame_needed = 0, uses_anonymous_args = 0 + 2903 @ link register save eliminated. +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** the @ref HAL_RCCEx_CRS_ExpectedSyncCallback should be implemented in the user file +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2904 .loc 1 1773 1 view .LVU937 + 2905 0000 7047 bx lr + 2906 .cfi_endproc + 2907 .LFE346: + 2909 .section .text.HAL_RCCEx_CRS_ErrorCallback,"ax",%progbits + 2910 .align 1 + 2911 .weak HAL_RCCEx_CRS_ErrorCallback + 2912 .syntax unified + 2913 .thumb + 2914 .thumb_func + 2916 HAL_RCCEx_CRS_ErrorCallback: + 2917 .LVL272: + 2918 .LFB347: +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /** +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @brief RCCEx Clock Recovery System Error interrupt callback. +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @param Error Combination of Error status. +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * This parameter can be a combination of the following values: + ARM GAS /tmp/ccXzHHIc.s page 92 + + +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_SYNCERR +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_SYNCMISS +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @arg @ref RCC_CRS_TRIMOVF +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** * @retval none +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** __weak void HAL_RCCEx_CRS_ErrorCallback(uint32_t Error) +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2919 .loc 1 1785 1 view -0 + 2920 .cfi_startproc + 2921 @ args = 0, pretend = 0, frame = 0 + 2922 @ frame_needed = 0, uses_anonymous_args = 0 + 2923 @ link register save eliminated. +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Prevent unused argument(s) compilation warning */ +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** UNUSED(Error); + 2924 .loc 1 1787 3 view .LVU939 +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** the @ref HAL_RCCEx_CRS_ErrorCallback should be implemented in the user file +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** */ +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2925 .loc 1 1792 1 is_stmt 0 view .LVU940 + 2926 0000 7047 bx lr + 2927 .cfi_endproc + 2928 .LFE347: + 2930 .section .text.HAL_RCCEx_CRS_IRQHandler,"ax",%progbits + 2931 .align 1 + 2932 .global HAL_RCCEx_CRS_IRQHandler + 2933 .syntax unified + 2934 .thumb + 2935 .thumb_func + 2937 HAL_RCCEx_CRS_IRQHandler: + 2938 .LFB343: +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t crserror = RCC_CRS_NONE; + 2939 .loc 1 1682 1 is_stmt 1 view -0 + 2940 .cfi_startproc + 2941 @ args = 0, pretend = 0, frame = 0 + 2942 @ frame_needed = 0, uses_anonymous_args = 0 + 2943 0000 08B5 push {r3, lr} + 2944 .LCFI15: + 2945 .cfi_def_cfa_offset 8 + 2946 .cfi_offset 3, -8 + 2947 .cfi_offset 14, -4 +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** /* Get current IT flags and IT sources values */ + 2948 .loc 1 1683 3 view .LVU942 + 2949 .LVL273: +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t itsources = READ_REG(CRS->CR); + 2950 .loc 1 1685 3 view .LVU943 +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** uint32_t itsources = READ_REG(CRS->CR); + 2951 .loc 1 1685 12 is_stmt 0 view .LVU944 + 2952 0002 204A ldr r2, .L264 + 2953 0004 9368 ldr r3, [r2, #8] + 2954 .LVL274: +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2955 .loc 1 1686 3 is_stmt 1 view .LVU945 +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 2956 .loc 1 1686 12 is_stmt 0 view .LVU946 + 2957 0006 1268 ldr r2, [r2] + ARM GAS /tmp/ccXzHHIc.s page 93 + + + 2958 .LVL275: +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2959 .loc 1 1689 3 is_stmt 1 view .LVU947 +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2960 .loc 1 1689 5 is_stmt 0 view .LVU948 + 2961 0008 13F0010F tst r3, #1 + 2962 000c 02D0 beq .L252 +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2963 .loc 1 1689 46 discriminator 1 view .LVU949 + 2964 000e 12F0010F tst r2, #1 + 2965 0012 25D1 bne .L261 + 2966 .L252: +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2967 .loc 1 1698 8 is_stmt 1 view .LVU950 +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2968 .loc 1 1698 10 is_stmt 0 view .LVU951 + 2969 0014 13F0020F tst r3, #2 + 2970 0018 02D0 beq .L254 +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2971 .loc 1 1698 53 discriminator 1 view .LVU952 + 2972 001a 12F0020F tst r2, #2 + 2973 001e 25D1 bne .L262 + 2974 .L254: +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2975 .loc 1 1707 8 is_stmt 1 view .LVU953 +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2976 .loc 1 1707 10 is_stmt 0 view .LVU954 + 2977 0020 13F0080F tst r3, #8 + 2978 0024 02D0 beq .L255 +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2979 .loc 1 1707 50 discriminator 1 view .LVU955 + 2980 0026 12F0080F tst r2, #8 + 2981 002a 25D1 bne .L263 + 2982 .L255: +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2983 .loc 1 1718 5 is_stmt 1 view .LVU956 +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2984 .loc 1 1718 7 is_stmt 0 view .LVU957 + 2985 002c 13F0040F tst r3, #4 + 2986 0030 1BD0 beq .L251 +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2987 .loc 1 1718 45 discriminator 1 view .LVU958 + 2988 0032 12F0040F tst r2, #4 + 2989 0036 18D0 beq .L251 +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2990 .loc 1 1720 7 is_stmt 1 view .LVU959 +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2991 .loc 1 1720 9 is_stmt 0 view .LVU960 + 2992 0038 13F48070 ands r0, r3, #256 + 2993 003c 00D0 beq .L256 +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 2994 .loc 1 1722 18 view .LVU961 + 2995 003e 0820 movs r0, #8 + 2996 .L256: + 2997 .LVL276: +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2998 .loc 1 1724 7 is_stmt 1 view .LVU962 + ARM GAS /tmp/ccXzHHIc.s page 94 + + +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 2999 .loc 1 1724 9 is_stmt 0 view .LVU963 + 3000 0040 13F4007F tst r3, #512 + 3001 0044 01D0 beq .L257 +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3002 .loc 1 1726 9 is_stmt 1 view .LVU964 +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3003 .loc 1 1726 18 is_stmt 0 view .LVU965 + 3004 0046 40F01000 orr r0, r0, #16 + 3005 .LVL277: + 3006 .L257: +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 3007 .loc 1 1728 7 is_stmt 1 view .LVU966 +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** { + 3008 .loc 1 1728 9 is_stmt 0 view .LVU967 + 3009 004a 13F4806F tst r3, #1024 + 3010 004e 01D0 beq .L258 +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3011 .loc 1 1730 9 is_stmt 1 view .LVU968 +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3012 .loc 1 1730 18 is_stmt 0 view .LVU969 + 3013 0050 40F02000 orr r0, r0, #32 + 3014 .LVL278: + 3015 .L258: +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3016 .loc 1 1734 7 is_stmt 1 view .LVU970 + 3017 0054 0B4B ldr r3, .L264 + 3018 .LVL279: +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3019 .loc 1 1734 7 is_stmt 0 view .LVU971 + 3020 0056 0422 movs r2, #4 + 3021 .LVL280: +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3022 .loc 1 1734 7 view .LVU972 + 3023 0058 DA60 str r2, [r3, #12] +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3024 .loc 1 1737 7 is_stmt 1 view .LVU973 + 3025 005a FFF7FEFF bl HAL_RCCEx_CRS_ErrorCallback + 3026 .LVL281: +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3027 .loc 1 1740 1 is_stmt 0 view .LVU974 + 3028 005e 04E0 b .L251 + 3029 .LVL282: + 3030 .L261: +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3031 .loc 1 1692 5 is_stmt 1 view .LVU975 + 3032 0060 084B ldr r3, .L264 + 3033 .LVL283: +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3034 .loc 1 1692 5 is_stmt 0 view .LVU976 + 3035 0062 0122 movs r2, #1 + 3036 .LVL284: +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3037 .loc 1 1692 5 view .LVU977 + 3038 0064 DA60 str r2, [r3, #12] +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3039 .loc 1 1695 5 is_stmt 1 view .LVU978 + ARM GAS /tmp/ccXzHHIc.s page 95 + + + 3040 0066 FFF7FEFF bl HAL_RCCEx_CRS_SyncOkCallback + 3041 .LVL285: + 3042 .L251: +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3043 .loc 1 1740 1 is_stmt 0 view .LVU979 + 3044 006a 08BD pop {r3, pc} + 3045 .LVL286: + 3046 .L262: +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3047 .loc 1 1701 5 is_stmt 1 view .LVU980 + 3048 006c 054B ldr r3, .L264 + 3049 .LVL287: +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3050 .loc 1 1701 5 is_stmt 0 view .LVU981 + 3051 006e 0222 movs r2, #2 + 3052 .LVL288: +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3053 .loc 1 1701 5 view .LVU982 + 3054 0070 DA60 str r2, [r3, #12] +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3055 .loc 1 1704 5 is_stmt 1 view .LVU983 + 3056 0072 FFF7FEFF bl HAL_RCCEx_CRS_SyncWarnCallback + 3057 .LVL289: + 3058 0076 F8E7 b .L251 + 3059 .LVL290: + 3060 .L263: +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3061 .loc 1 1710 5 view .LVU984 + 3062 0078 024B ldr r3, .L264 + 3063 .LVL291: +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3064 .loc 1 1710 5 is_stmt 0 view .LVU985 + 3065 007a 0822 movs r2, #8 + 3066 .LVL292: +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** + 3067 .loc 1 1710 5 view .LVU986 + 3068 007c DA60 str r2, [r3, #12] +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_rcc_ex.c **** } + 3069 .loc 1 1713 5 is_stmt 1 view .LVU987 + 3070 007e FFF7FEFF bl HAL_RCCEx_CRS_ExpectedSyncCallback + 3071 .LVL293: + 3072 0082 F2E7 b .L251 + 3073 .L265: + 3074 .align 2 + 3075 .L264: + 3076 0084 00200040 .word 1073750016 + 3077 .cfi_endproc + 3078 .LFE343: + 3080 .text + 3081 .Letext0: + 3082 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 3083 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 3084 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 3085 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 3086 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h" + 3087 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h" + 3088 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h" + ARM GAS /tmp/ccXzHHIc.s page 96 + + + 3089 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h" + 3090 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccXzHHIc.s page 97 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_rcc_ex.c + /tmp/ccXzHHIc.s:21 .text.HAL_RCCEx_PeriphCLKConfig:00000000 $t + /tmp/ccXzHHIc.s:27 .text.HAL_RCCEx_PeriphCLKConfig:00000000 HAL_RCCEx_PeriphCLKConfig + /tmp/ccXzHHIc.s:548 .text.HAL_RCCEx_PeriphCLKConfig:000002c8 $d + /tmp/ccXzHHIc.s:552 .text.HAL_RCCEx_PeriphCLKConfig:000002d0 $t + /tmp/ccXzHHIc.s:566 .text.HAL_RCCEx_GetPeriphCLKConfig:00000000 $t + /tmp/ccXzHHIc.s:572 .text.HAL_RCCEx_GetPeriphCLKConfig:00000000 HAL_RCCEx_GetPeriphCLKConfig + /tmp/ccXzHHIc.s:686 .text.HAL_RCCEx_GetPeriphCLKConfig:000000a8 $d + /tmp/ccXzHHIc.s:692 .text.HAL_RCCEx_GetPeriphCLKFreq:00000000 $t + /tmp/ccXzHHIc.s:698 .text.HAL_RCCEx_GetPeriphCLKFreq:00000000 HAL_RCCEx_GetPeriphCLKFreq + /tmp/ccXzHHIc.s:766 .text.HAL_RCCEx_GetPeriphCLKFreq:00000050 $d + /tmp/ccXzHHIc.s:799 .text.HAL_RCCEx_GetPeriphCLKFreq:00000090 $t + /tmp/ccXzHHIc.s:1147 .text.HAL_RCCEx_GetPeriphCLKFreq:0000027c $d + /tmp/ccXzHHIc.s:1154 .text.HAL_RCCEx_GetPeriphCLKFreq:00000288 $t + /tmp/ccXzHHIc.s:1777 .text.HAL_RCCEx_GetPeriphCLKFreq:00000548 $d + /tmp/ccXzHHIc.s:1782 .text.HAL_RCCEx_GetPeriphCLKFreq:0000054c $t + /tmp/ccXzHHIc.s:2024 .text.HAL_RCCEx_GetPeriphCLKFreq:0000062c $d + /tmp/ccXzHHIc.s:2033 .text.HAL_RCCEx_EnableLSECSS:00000000 $t + /tmp/ccXzHHIc.s:2039 .text.HAL_RCCEx_EnableLSECSS:00000000 HAL_RCCEx_EnableLSECSS + /tmp/ccXzHHIc.s:2056 .text.HAL_RCCEx_EnableLSECSS:00000010 $d + /tmp/ccXzHHIc.s:2061 .text.HAL_RCCEx_DisableLSECSS:00000000 $t + /tmp/ccXzHHIc.s:2067 .text.HAL_RCCEx_DisableLSECSS:00000000 HAL_RCCEx_DisableLSECSS + /tmp/ccXzHHIc.s:2088 .text.HAL_RCCEx_DisableLSECSS:00000018 $d + /tmp/ccXzHHIc.s:2093 .text.HAL_RCCEx_EnableLSECSS_IT:00000000 $t + /tmp/ccXzHHIc.s:2099 .text.HAL_RCCEx_EnableLSECSS_IT:00000000 HAL_RCCEx_EnableLSECSS_IT + /tmp/ccXzHHIc.s:2129 .text.HAL_RCCEx_EnableLSECSS_IT:0000002c $d + /tmp/ccXzHHIc.s:2134 .text.HAL_RCCEx_LSECSS_Callback:00000000 $t + /tmp/ccXzHHIc.s:2140 .text.HAL_RCCEx_LSECSS_Callback:00000000 HAL_RCCEx_LSECSS_Callback + /tmp/ccXzHHIc.s:2153 .text.HAL_RCCEx_LSECSS_IRQHandler:00000000 $t + /tmp/ccXzHHIc.s:2159 .text.HAL_RCCEx_LSECSS_IRQHandler:00000000 HAL_RCCEx_LSECSS_IRQHandler + /tmp/ccXzHHIc.s:2193 .text.HAL_RCCEx_LSECSS_IRQHandler:0000001c $d + /tmp/ccXzHHIc.s:2198 .text.HAL_RCCEx_EnableLSCO:00000000 $t + /tmp/ccXzHHIc.s:2204 .text.HAL_RCCEx_EnableLSCO:00000000 HAL_RCCEx_EnableLSCO + /tmp/ccXzHHIc.s:2361 .text.HAL_RCCEx_EnableLSCO:00000098 $d + /tmp/ccXzHHIc.s:2367 .text.HAL_RCCEx_DisableLSCO:00000000 $t + /tmp/ccXzHHIc.s:2373 .text.HAL_RCCEx_DisableLSCO:00000000 HAL_RCCEx_DisableLSCO + /tmp/ccXzHHIc.s:2485 .text.HAL_RCCEx_DisableLSCO:00000064 $d + /tmp/ccXzHHIc.s:2491 .text.HAL_RCCEx_CRSConfig:00000000 $t + /tmp/ccXzHHIc.s:2497 .text.HAL_RCCEx_CRSConfig:00000000 HAL_RCCEx_CRSConfig + /tmp/ccXzHHIc.s:2566 .text.HAL_RCCEx_CRSConfig:00000044 $d + /tmp/ccXzHHIc.s:2572 .text.HAL_RCCEx_CRSSoftwareSynchronizationGenerate:00000000 $t + /tmp/ccXzHHIc.s:2578 .text.HAL_RCCEx_CRSSoftwareSynchronizationGenerate:00000000 HAL_RCCEx_CRSSoftwareSynchronizationGenerate + /tmp/ccXzHHIc.s:2595 .text.HAL_RCCEx_CRSSoftwareSynchronizationGenerate:0000000c $d + /tmp/ccXzHHIc.s:2600 .text.HAL_RCCEx_CRSGetSynchronizationInfo:00000000 $t + /tmp/ccXzHHIc.s:2606 .text.HAL_RCCEx_CRSGetSynchronizationInfo:00000000 HAL_RCCEx_CRSGetSynchronizationInfo + /tmp/ccXzHHIc.s:2647 .text.HAL_RCCEx_CRSGetSynchronizationInfo:00000020 $d + /tmp/ccXzHHIc.s:2652 .text.HAL_RCCEx_CRSWaitSynchronization:00000000 $t + /tmp/ccXzHHIc.s:2658 .text.HAL_RCCEx_CRSWaitSynchronization:00000000 HAL_RCCEx_CRSWaitSynchronization + /tmp/ccXzHHIc.s:2848 .text.HAL_RCCEx_CRSWaitSynchronization:000000a8 $d + /tmp/ccXzHHIc.s:2853 .text.HAL_RCCEx_CRS_SyncOkCallback:00000000 $t + /tmp/ccXzHHIc.s:2859 .text.HAL_RCCEx_CRS_SyncOkCallback:00000000 HAL_RCCEx_CRS_SyncOkCallback + /tmp/ccXzHHIc.s:2872 .text.HAL_RCCEx_CRS_SyncWarnCallback:00000000 $t + /tmp/ccXzHHIc.s:2878 .text.HAL_RCCEx_CRS_SyncWarnCallback:00000000 HAL_RCCEx_CRS_SyncWarnCallback + /tmp/ccXzHHIc.s:2891 .text.HAL_RCCEx_CRS_ExpectedSyncCallback:00000000 $t + /tmp/ccXzHHIc.s:2897 .text.HAL_RCCEx_CRS_ExpectedSyncCallback:00000000 HAL_RCCEx_CRS_ExpectedSyncCallback + /tmp/ccXzHHIc.s:2910 .text.HAL_RCCEx_CRS_ErrorCallback:00000000 $t + ARM GAS /tmp/ccXzHHIc.s page 98 + + + /tmp/ccXzHHIc.s:2916 .text.HAL_RCCEx_CRS_ErrorCallback:00000000 HAL_RCCEx_CRS_ErrorCallback + /tmp/ccXzHHIc.s:2931 .text.HAL_RCCEx_CRS_IRQHandler:00000000 $t + /tmp/ccXzHHIc.s:2937 .text.HAL_RCCEx_CRS_IRQHandler:00000000 HAL_RCCEx_CRS_IRQHandler + /tmp/ccXzHHIc.s:3076 .text.HAL_RCCEx_CRS_IRQHandler:00000084 $d + +UNDEFINED SYMBOLS +HAL_GetTick +HAL_RCC_GetPCLK2Freq +HAL_RCC_GetSysClockFreq +HAL_RCC_GetPCLK1Freq +HAL_GPIO_Init +HAL_PWR_EnableBkUpAccess +HAL_PWR_DisableBkUpAccess diff --git a/squeow_sw/build/stm32g4xx_hal_rcc_ex.o b/squeow_sw/build/stm32g4xx_hal_rcc_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..a87cc26da24f5a3e82b7ba4ad323838e0a454ecd GIT binary patch literal 35292 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 ZqyHi@I#uPG6zTWuCHNQ4A{36_{{m_?^1lE8 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_tim.d b/squeow_sw/build/stm32g4xx_hal_tim.d new file mode 100644 index 0000000..4f8e955 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_tim.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_tim.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_tim.lst b/squeow_sw/build/stm32g4xx_hal_tim.lst new file mode 100644 index 0000000..138ef5f --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_tim.lst @@ -0,0 +1,31027 @@ +ARM GAS /tmp/cc0wMqvE.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_tim.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c" + 20 .section .text.TIM_OC1_SetConfig,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 TIM_OC1_SetConfig: + 27 .LVL0: + 28 .LFB434: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @file stm32g4xx_hal_tim.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * functionalities of the Timer (TIM) peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Time Base Initialization + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Time Base Start + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Time Base Start Interruption + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Time Base Start DMA + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Output Compare/PWM Initialization + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Output Compare/PWM Channel Configuration + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Output Compare/PWM Start + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Output Compare/PWM Start Interruption + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Output Compare/PWM Start DMA + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Input Capture Initialization + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Input Capture Channel Configuration + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Input Capture Start + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Input Capture Start Interruption + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Input Capture Start DMA + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM One Pulse Initialization + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM One Pulse Channel Configuration + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM One Pulse Start + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Encoder Interface Initialization + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Encoder Interface Start + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Encoder Interface Start Interruption + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM Encoder Interface Start DMA + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + Commutation Event configuration with Interruption and DMA + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM OCRef clear configuration + ARM GAS /tmp/cc0wMqvE.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + TIM External Clock configuration + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ****************************************************************************** + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @attention + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Copyright (c) 2019 STMicroelectronics. + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * All rights reserved. + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This software is licensed under terms that can be found in the LICENSE file + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * in the root directory of this software component. + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ****************************************************************************** + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIMER Generic features ##### + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] The Timer features include: + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) 16-bit up, down, up/down auto-reload counter. + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) 16-bit programmable prescaler allowing dividing (also on the fly) the + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** counter clock frequency either by any factor between 1 and 65536. + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Up to 4 independent channels for: + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Input Capture + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Output Compare + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) PWM generation (Edge and Center-aligned Mode) + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) One-pulse mode output + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Synchronization circuit to control the timer with external signals and to interconnect + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** several timers together. + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Supports incremental encoder for positioning purposes + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### How to use this driver ##### + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Initialize the TIM low level resources by implementing the following functions + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** depending on the selected feature: + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Time Base : HAL_TIM_Base_MspInit() + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Input Capture : HAL_TIM_IC_MspInit() + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Output Compare : HAL_TIM_OC_MspInit() + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) PWM generation : HAL_TIM_PWM_MspInit() + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) One-pulse mode output : HAL_TIM_OnePulse_MspInit() + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Encoder mode output : HAL_TIM_Encoder_MspInit() + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Initialize the TIM low level resources : + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE(); + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (##) TIM pins configuration + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+++) Enable the clock for the TIM GPIOs using the following function: + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_RCC_GPIOx_CLK_ENABLE(); + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init(); + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) The external Clock can be configured, if needed (the default clock is the + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** internal clock from the APBx), using the following function: + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ConfigClockSource, the clock configuration should be done before + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** any start function. + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Configure the TIM in the desired functioning mode using one of the + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Initialization function of this driver: + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) HAL_TIM_Base_Init: to use the Timer to generate a simple time base + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) HAL_TIM_OC_Init, HAL_TIM_OC_ConfigChannel and optionally HAL_TIMEx_OC_ConfigPulseOnComp + ARM GAS /tmp/cc0wMqvE.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** to use the Timer to generate an Output Compare signal. + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) HAL_TIM_PWM_Init and HAL_TIM_PWM_ConfigChannel: to use the Timer to generate a + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** PWM signal. + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) HAL_TIM_IC_Init and HAL_TIM_IC_ConfigChannel: to use the Timer to measure an + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** external signal. + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) HAL_TIM_OnePulse_Init and HAL_TIM_OnePulse_ConfigChannel: to use the Timer + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** in One Pulse Mode. + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) HAL_TIM_Encoder_Init: to use the Timer Encoder Interface. + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) Activate the TIM peripheral using one of the start functions depending from the feature us + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Time Base : HAL_TIM_Base_Start(), HAL_TIM_Base_Start_DMA(), HAL_TIM_Base_Start_IT() + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Input Capture : HAL_TIM_IC_Start(), HAL_TIM_IC_Start_DMA(), HAL_TIM_IC_Start_IT() + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Output Compare : HAL_TIM_OC_Start(), HAL_TIM_OC_Start_DMA(), HAL_TIM_OC_Start_IT() + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) PWM generation : HAL_TIM_PWM_Start(), HAL_TIM_PWM_Start_DMA(), HAL_TIM_PWM_Start_IT + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) One-pulse mode output : HAL_TIM_OnePulse_Start(), HAL_TIM_OnePulse_Start_IT() + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (++) Encoder mode output : HAL_TIM_Encoder_Start(), HAL_TIM_Encoder_Start_DMA(), HAL_TIM + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (#) The DMA Burst is managed with the two following functions: + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_DMABurst_WriteStart() + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_DMABurst_ReadStart() + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** *** Callback registration *** + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================= + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** The compilation define USE_HAL_TIM_REGISTER_CALLBACKS when set to 1 + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** allows the user to configure dynamically the driver callbacks. + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Use Function HAL_TIM_RegisterCallback() to register a callback. + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_RegisterCallback() takes as parameters the HAL peripheral handle, + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the Callback ID and a pointer to the user callback function. + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Use function HAL_TIM_UnRegisterCallback() to reset a callback to the default + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** weak function. + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_UnRegisterCallback takes as parameters the HAL peripheral handle, + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** and the Callback ID. + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** These functions allow to register/unregister following callbacks: + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Base_MspInitCallback : TIM Base Msp Init Callback. + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Base_MspDeInitCallback : TIM Base Msp DeInit Callback. + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) IC_MspInitCallback : TIM IC Msp Init Callback. + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) IC_MspDeInitCallback : TIM IC Msp DeInit Callback. + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) OC_MspInitCallback : TIM OC Msp Init Callback. + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) OC_MspDeInitCallback : TIM OC Msp DeInit Callback. + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) PWM_MspInitCallback : TIM PWM Msp Init Callback. + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) PWM_MspDeInitCallback : TIM PWM Msp DeInit Callback. + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) OnePulse_MspInitCallback : TIM One Pulse Msp Init Callback. + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) OnePulse_MspDeInitCallback : TIM One Pulse Msp DeInit Callback. + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Encoder_MspInitCallback : TIM Encoder Msp Init Callback. + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Encoder_MspDeInitCallback : TIM Encoder Msp DeInit Callback. + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) HallSensor_MspInitCallback : TIM Hall Sensor Msp Init Callback. + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) HallSensor_MspDeInitCallback : TIM Hall Sensor Msp DeInit Callback. + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) PeriodElapsedCallback : TIM Period Elapsed Callback. + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) PeriodElapsedHalfCpltCallback : TIM Period Elapsed half complete Callback. + ARM GAS /tmp/cc0wMqvE.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TriggerCallback : TIM Trigger Callback. + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TriggerHalfCpltCallback : TIM Trigger half complete Callback. + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) IC_CaptureCallback : TIM Input Capture Callback. + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) IC_CaptureHalfCpltCallback : TIM Input Capture half complete Callback. + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) OC_DelayElapsedCallback : TIM Output Compare Delay Elapsed Callback. + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) PWM_PulseFinishedCallback : TIM PWM Pulse Finished Callback. + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) PWM_PulseFinishedHalfCpltCallback : TIM PWM Pulse Finished half complete Callback. + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) ErrorCallback : TIM Error Callback. + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) CommutationCallback : TIM Commutation Callback. + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) CommutationHalfCpltCallback : TIM Commutation half complete Callback. + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) BreakCallback : TIM Break Callback. + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Break2Callback : TIM Break2 Callback. + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) EncoderIndexCallback : TIM Encoder Index Callback. + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) DirectionChangeCallback : TIM Direction Change Callback + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) IndexErrorCallback : TIM Index Error Callback. + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TransitionErrorCallback : TIM Transition Error Callback + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** By default, after the Init and when the state is HAL_TIM_STATE_RESET + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** all interrupt callbacks are set to the corresponding weak functions: + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** examples HAL_TIM_TriggerCallback(), HAL_TIM_ErrorCallback(). + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Exception done for MspInit and MspDeInit functions that are reset to the legacy weak + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** functionalities in the Init / DeInit only when these callbacks are null + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (not registered beforehand). If not, MspInit or MspDeInit are not null, the Init / DeInit + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** keep and use the user MspInit / MspDeInit callbacks(registered beforehand) + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Callbacks can be registered / unregistered in HAL_TIM_STATE_READY state only. + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Exception done MspInit / MspDeInit that can be registered / unregistered + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** in HAL_TIM_STATE_READY or HAL_TIM_STATE_RESET state, + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** thus registered(user) MspInit / DeInit callbacks can be used during the Init / DeInit. + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** In that case first register the MspInit/MspDeInit user callbacks + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** using HAL_TIM_RegisterCallback() before calling DeInit or Init function. + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** When The compilation define USE_HAL_TIM_REGISTER_CALLBACKS is set to 0 or + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** not defined, the callback registration feature is not available and all callbacks + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** are set to the corresponding weak functions. + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ****************************************************************************** + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Includes ------------------------------------------------------------------*/ + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #include "stm32g4xx_hal.h" + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @addtogroup STM32G4xx_HAL_Driver + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM TIM + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM HAL module driver + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #ifdef HAL_TIM_MODULE_ENABLED + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Private typedef -----------------------------------------------------------*/ + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Private define ------------------------------------------------------------*/ + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @addtogroup TIM_Private_Constants + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #define TIMx_AF2_OCRSEL TIM1_AF2_OCRSEL + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Private macros ------------------------------------------------------------*/ + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Private variables ---------------------------------------------------------*/ + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Private function prototypes -----------------------------------------------*/ + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @addtogroup TIM_Private_Functions + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFil + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter); + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFil + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter); + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter); + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource); + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma); + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma); + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma); + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma); + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma); + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_SlaveConfigTypeDef *sSlaveConfig); + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Exported functions --------------------------------------------------------*/ + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions TIM Exported Functions + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group1 TIM Time Base functions + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Time Base functions + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### Time Base functions ##### + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: + ARM GAS /tmp/cc0wMqvE.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Initialize and configure the TIM base. + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) De-initialize the TIM base. + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the Time Base. + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the Time Base. + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the Time Base and enable interrupt. + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the Time Base and disable interrupt. + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the Time Base and enable DMA transfer. + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the Time Base and disable DMA transfer. + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Time base Unit according to the specified + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_HandleTypeDef and initialize the associated handle. + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * requires a timer reset to avoid unexpected direction + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * due to DIR bit readonly in center aligned mode. + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim == NULL) + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_RESET) + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Allocate lock resource and initialize it */ + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Lock = HAL_UNLOCKED; + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset interrupt callbacks to legacy weak callbacks */ + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ResetCallback(htim); + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->Base_MspInitCallback == NULL) + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspInitCallback(htim); + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_Base_MspInit(htim); + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Time Base configuration */ + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the DMA burst operation state */ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM channels state */ + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM state*/ + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes the TIM Base peripheral + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim) + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Peripheral Clock */ + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->Base_MspDeInitCallback == NULL) + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware */ + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspDeInitCallback(htim); + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_Base_MspDeInit(htim); + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the TIM channels state */ + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change TIM state */ + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_RESET; + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ + ARM GAS /tmp/cc0wMqvE.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Base MSP. + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim) + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_Base_MspInit could be implemented in the user file + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes TIM Base MSP. + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim) + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_Base_MspDeInit could be implemented in the user file + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Base generation. + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim) + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM state */ + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State != HAL_TIM_STATE_READY) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Base generation. + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim) + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Base generation in interrupt mode. + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM state */ + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State != HAL_TIM_STATE_READY) + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + ARM GAS /tmp/cc0wMqvE.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Update interrupt */ + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Base generation in interrupt mode. + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim) + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Update interrupt */ + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE); + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Base generation in DMA mode. + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pData The source Buffer address. + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Length The length of data to be transferred from memory to peripheral. + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length) + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_INSTANCE(htim->Instance)); + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_BUSY) + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (htim->State == HAL_TIM_STATE_READY) + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((pData == NULL) && (Length > 0U)) + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA Period elapsed callbacks */ + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt; + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ; + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)pData, (uint32_t)&htim->Instance->A + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Update DMA request */ + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE); + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + ARM GAS /tmp/cc0wMqvE.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Base generation in DMA mode. + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim) + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_INSTANCE(htim->Instance)); + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Update DMA request */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_UPDATE); + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_UPDATE]); + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group2 TIM Output Compare functions + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM Output Compare functions + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIM Output Compare functions ##### + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Initialize and configure the TIM Output Compare. + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) De-initialize the TIM Output Compare. + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Output Compare. + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Output Compare. + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Output Compare and enable interrupt. + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Output Compare and disable interrupt. + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Output Compare and enable DMA transfer. + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Output Compare and disable DMA transfer. + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Output Compare according to the specified + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_HandleTypeDef and initializes the associated handle. + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + ARM GAS /tmp/cc0wMqvE.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * requires a timer reset to avoid unexpected direction + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * due to DIR bit readonly in center aligned mode. + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: call @ref HAL_TIM_OC_DeInit() before HAL_TIM_OC_Init() + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim) + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim == NULL) + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_RESET) + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Allocate lock resource and initialize it */ + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Lock = HAL_UNLOCKED; + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset interrupt callbacks to legacy weak callbacks */ + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ResetCallback(htim); + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->OC_MspInitCallback == NULL) + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspInitCallback(htim); + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OC_MspInit(htim); + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the base time for the Output Compare */ + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the DMA burst operation state */ + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM channels state */ + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM state*/ + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 14 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes the TIM peripheral + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim) + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Peripheral Clock */ + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->OC_MspDeInitCallback == NULL) + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware */ + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspDeInitCallback(htim); + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */ + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OC_MspDeInit(htim); + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the TIM channels state */ + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change TIM state */ + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_RESET; + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Output Compare MSP. + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim) + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, + ARM GAS /tmp/cc0wMqvE.s page 15 + + + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_OC_MspInit could be implemented in the user file + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes TIM Output Compare MSP. + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim) + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_OC_MspDeInit could be implemented in the user file + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Output Compare signal generation. + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be enabled + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel) + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channel state */ + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Output compare channel */ + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 16 + + + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Output Compare signal generation. + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be disabled + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Output compare channel */ + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Output Compare signal generation in interrupt mode. + ARM GAS /tmp/cc0wMqvE.s page 17 + + + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be enabled + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channel state */ + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 interrupt */ + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 interrupt */ + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 3 interrupt */ + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 4 interrupt */ + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: + ARM GAS /tmp/cc0wMqvE.s page 18 + + + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Output compare channel */ + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Output Compare signal generation in interrupt mode. + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be disabled + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 interrupt */ + ARM GAS /tmp/cc0wMqvE.s page 19 + + +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 interrupt */ +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 3 interrupt */ +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 4 interrupt */ +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Output compare channel */ +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Output Compare signal generation in DMA mode. +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be enabled +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: + ARM GAS /tmp/cc0wMqvE.s page 20 + + +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pData The source Buffer address. +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Length The length of data to be transferred from memory to TIM peripheral +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((pData == NULL) && (Length > 0U)) +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt; +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance-> +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 DMA request */ + ARM GAS /tmp/cc0wMqvE.s page 21 + + +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt; +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance-> +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 DMA request */ +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt; +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance-> +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 3 DMA request */ +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt; +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ + ARM GAS /tmp/cc0wMqvE.s page 22 + + +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance-> +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 4 DMA request */ +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Output compare channel */ +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Output Compare signal generation in DMA mode. +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be disabled +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + ARM GAS /tmp/cc0wMqvE.s page 23 + + +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 DMA request */ +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 DMA request */ +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 3 DMA request */ +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 4 interrupt */ +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Output compare channel */ +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 24 + + +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group3 TIM PWM functions +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM PWM functions +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIM PWM functions ##### +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Initialize and configure the TIM PWM. +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) De-initialize the TIM PWM. +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM PWM. +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM PWM. +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM PWM and enable interrupt. +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM PWM and disable interrupt. +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM PWM and enable DMA transfer. +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM PWM and disable DMA transfer. +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM PWM Time Base according to the specified +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_HandleTypeDef and initializes the associated handle. +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * requires a timer reset to avoid unexpected direction +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * due to DIR bit readonly in center aligned mode. +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: call @ref HAL_TIM_PWM_DeInit() before HAL_TIM_PWM_Init() +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim) +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim == NULL) +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + ARM GAS /tmp/cc0wMqvE.s page 25 + + +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_RESET) +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Allocate lock resource and initialize it */ +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Lock = HAL_UNLOCKED; +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset interrupt callbacks to legacy weak callbacks */ +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ResetCallback(htim); +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->PWM_MspInitCallback == NULL) +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspInitCallback(htim); +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_MspInit(htim); +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the base time for the PWM */ +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the DMA burst operation state */ +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM channels state */ +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM state*/ +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes the TIM peripheral +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim) +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Peripheral Clock */ +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + ARM GAS /tmp/cc0wMqvE.s page 26 + + +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->PWM_MspDeInitCallback == NULL) +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware */ +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspDeInitCallback(htim); +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */ +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_MspDeInit(htim); +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the TIM channels state */ +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change TIM state */ +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_RESET; +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM PWM MSP. +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_PWM_MspInit could be implemented in the user file +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes TIM PWM MSP. +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim) +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_PWM_MspDeInit could be implemented in the user file +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ + ARM GAS /tmp/cc0wMqvE.s page 27 + + +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the PWM signal generation. +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channel state */ +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare channel */ +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 28 + + +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the PWM signal generation. +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Capture compare channel */ +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the PWM signal generation in interrupt mode. +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to be enabled +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 29 + + +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channel state */ +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 interrupt */ +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 interrupt */ +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 3 interrupt */ +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 4 interrupt */ +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare channel */ +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + ARM GAS /tmp/cc0wMqvE.s page 30 + + +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the PWM signal generation in interrupt mode. +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 interrupt */ +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 interrupt */ +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 3 interrupt */ +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 31 + + +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 4 interrupt */ +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Capture compare channel */ +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM PWM signal generation in DMA mode. +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pData The source Buffer address. +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Length The length of data to be transferred from memory to TIM peripheral +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ + ARM GAS /tmp/cc0wMqvE.s page 32 + + +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (TIM_CHANNEL_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((pData == NULL) && (Length > 0U)) +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt; +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance-> +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 DMA request */ +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt; +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance-> +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 33 + + +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 DMA request */ +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt; +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance-> +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Output Capture/Compare 3 request */ +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt; +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance-> +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 4 DMA request */ +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 34 + + +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare channel */ +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM PWM signal generation in DMA mode. +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 DMA request */ +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: + ARM GAS /tmp/cc0wMqvE.s page 35 + + +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 DMA request */ +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 3 DMA request */ +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 4 interrupt */ +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Capture compare channel */ +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group4 TIM Input Capture functions +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM Input Capture functions +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * + ARM GAS /tmp/cc0wMqvE.s page 36 + + +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIM Input Capture functions ##### +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Initialize and configure the TIM Input Capture. +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) De-initialize the TIM Input Capture. +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Input Capture. +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Input Capture. +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Input Capture and enable interrupt. +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Input Capture and disable interrupt. +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Input Capture and enable DMA transfer. +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Input Capture and disable DMA transfer. +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Input Capture Time base according to the specified +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_HandleTypeDef and initializes the associated handle. +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * requires a timer reset to avoid unexpected direction +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * due to DIR bit readonly in center aligned mode. +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: call @ref HAL_TIM_IC_DeInit() before HAL_TIM_IC_Init() +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim) +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim == NULL) +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_RESET) +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Allocate lock resource and initialize it */ +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Lock = HAL_UNLOCKED; +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset interrupt callbacks to legacy weak callbacks */ +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ResetCallback(htim); +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->IC_MspInitCallback == NULL) +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspInitCallback(htim); + ARM GAS /tmp/cc0wMqvE.s page 37 + + +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_MspInit(htim); +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the base time for the input capture */ +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the DMA burst operation state */ +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM channels state */ +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM state*/ +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes the TIM peripheral +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim) +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Peripheral Clock */ +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->IC_MspDeInitCallback == NULL) +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware */ +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspDeInitCallback(htim); +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */ +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_MspDeInit(htim); +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the TIM channels state */ +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + ARM GAS /tmp/cc0wMqvE.s page 38 + + +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change TIM state */ +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_RESET; +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Input Capture MSP. +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim) +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_IC_MspInit could be implemented in the user file +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes TIM Input Capture MSP. +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim) +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_IC_MspDeInit could be implemented in the user file +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Input Capture measurement. +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + ARM GAS /tmp/cc0wMqvE.s page 39 + + +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channel state */ +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_state != HAL_TIM_CHANNEL_STATE_READY) +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Input Capture channel */ +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Input Capture measurement. +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Input Capture channel */ +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); + ARM GAS /tmp/cc0wMqvE.s page 40 + + +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Input Capture measurement in interrupt mode. +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channel state */ +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_state != HAL_TIM_CHANNEL_STATE_READY) +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 interrupt */ +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 interrupt */ +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 41 + + +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 3 interrupt */ +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 4 interrupt */ +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Input Capture channel */ +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Input Capture measurement in interrupt mode. +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 42 + + +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 interrupt */ +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 interrupt */ +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 3 interrupt */ +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 4 interrupt */ +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Input Capture channel */ +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 43 + + +2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Input Capture measurement in DMA mode. +2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pData The destination Buffer address. +2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Length The length of data to be transferred from TIM peripheral to memory. +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance)); +2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_state == HAL_TIM_CHANNEL_STATE_BUSY) +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state == HAL_TIM_CHANNEL_STATE_BUSY)) +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if ((channel_state == HAL_TIM_CHANNEL_STATE_READY) +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_state == HAL_TIM_CHANNEL_STATE_READY)) +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((pData == NULL) && (Length > 0U)) +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Input Capture channel */ +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ + ARM GAS /tmp/cc0wMqvE.s page 44 + + +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)p +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 DMA request */ +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)p +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 DMA request */ +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMACaptureCplt; +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->CCR3, (uint32_t)p +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 3 DMA request */ +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + ARM GAS /tmp/cc0wMqvE.s page 45 + + +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMACaptureCplt; +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; +2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->CCR4, (uint32_t)p +2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 4 DMA request */ +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Input Capture measurement in DMA mode. +2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Input Capture handle +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + ARM GAS /tmp/cc0wMqvE.s page 46 + + +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance)); +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Input Capture channel */ +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE); +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 DMA request */ +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 DMA request */ +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 3 DMA request */ +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 4 DMA request */ +2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ + ARM GAS /tmp/cc0wMqvE.s page 47 + + +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group5 TIM One Pulse functions +2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM One Pulse functions +2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIM One Pulse functions ##### +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: +2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Initialize and configure the TIM One Pulse. +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) De-initialize the TIM One Pulse. +2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM One Pulse. +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM One Pulse. +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM One Pulse and enable interrupt. +2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM One Pulse and disable interrupt. +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM One Pulse and enable DMA transfer. +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM One Pulse and disable DMA transfer. +2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM One Pulse Time Base according to the specified +2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_HandleTypeDef and initializes the associated handle. +2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) +2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * requires a timer reset to avoid unexpected direction +2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * due to DIR bit readonly in center aligned mode. +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: call @ref HAL_TIM_OnePulse_DeInit() before HAL_TIM_OnePulse_Init() +2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note When the timer instance is initialized in One Pulse mode, timer +2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * channels 1 and channel 2 are reserved and cannot be used for other +2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * purpose. +2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OnePulseMode Select the One pulse mode. +2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_OPMODE_SINGLE: Only one pulse will be generated. +2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_OPMODE_REPETITIVE: Repetitive pulses will be generated. +2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode) +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim == NULL) +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 48 + + +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); +2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OPM_MODE(OnePulseMode)); +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); +2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_RESET) +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Allocate lock resource and initialize it */ +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Lock = HAL_UNLOCKED; +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset interrupt callbacks to legacy weak callbacks */ +2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ResetCallback(htim); +2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->OnePulse_MspInitCallback == NULL) +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; +2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ +2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspInitCallback(htim); +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OnePulse_MspInit(htim); +2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Time base in the One Pulse Mode */ +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); +2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the OPM Bit */ +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CR1 &= ~TIM_CR1_OPM; +2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the OPM Mode */ +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CR1 |= OnePulseMode; +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the DMA burst operation state */ +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; +2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM channels state */ +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM state*/ +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes the TIM One Pulse + ARM GAS /tmp/cc0wMqvE.s page 49 + + +2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim) +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Peripheral Clock */ +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->OnePulse_MspDeInitCallback == NULL) +2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; +2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware */ +2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspDeInitCallback(htim); +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OnePulse_MspDeInit(htim); +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; +2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel state */ +2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); +2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); +2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); +2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change TIM state */ +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_RESET; +2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM One Pulse MSP. +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim) +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_OnePulse_MspInit could be implemented in the user file +2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 50 + + +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes TIM One Pulse MSP. +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim) +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_OnePulse_MspDeInit could be implemented in the user file +2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM One Pulse signal generation. +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Though OutputChannel parameter is deprecated and ignored by the function +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * it has been kept to avoid HAL_TIM API compatibility break. +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note The pulse output channel is determined when calling +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OutputChannel See note above +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(OutputChannel); +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channels state */ +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channels state */ +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare and the Input Capture channels +2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2 +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 51 + + +2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** No need to enable the counter, it's enabled automatically by hardware +2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (the counter starts in response to a stimulus and generate a pulse */ +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ +2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); +2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM One Pulse signal generation. +2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Though OutputChannel parameter is deprecated and ignored by the function +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * it has been kept to avoid HAL_TIM API compatibility break. +2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note The pulse output channel is determined when calling +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OutputChannel See note above +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(OutputChannel); +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Capture compare and the Input Capture channels +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */ +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channels state */ +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; + ARM GAS /tmp/cc0wMqvE.s page 52 + + +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM One Pulse signal generation in interrupt mode. +2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Though OutputChannel parameter is deprecated and ignored by the function +2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * it has been kept to avoid HAL_TIM API compatibility break. +2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note The pulse output channel is determined when calling +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OutputChannel See note above +2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(OutputChannel); +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM channels state */ +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channels state */ +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare and the Input Capture channels +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2 +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output +2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** No need to enable the counter, it's enabled automatically by hardware +2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (the counter starts in response to a stimulus and generate a pulse */ +2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 1 interrupt */ +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Capture/Compare 2 interrupt */ +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 53 + + +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the main output */ +2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_ENABLE(htim); +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM One Pulse signal generation in interrupt mode. +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Though OutputChannel parameter is deprecated and ignored by the function +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * it has been kept to avoid HAL_TIM API compatibility break. +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note The pulse output channel is determined when calling +2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OutputChannel See note above +2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(OutputChannel); +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 1 interrupt */ +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Capture/Compare 2 interrupt */ +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Capture compare and the Input Capture channels +2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2) +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */ +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Main Output */ +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_MOE_DISABLE(htim); +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channels state */ +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + ARM GAS /tmp/cc0wMqvE.s page 54 + + +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group6 TIM Encoder functions +2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM Encoder functions +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIM Encoder functions ##### +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Initialize and configure the TIM Encoder. +3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) De-initialize the TIM Encoder. +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Encoder. +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Encoder. +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Encoder and enable interrupt. +3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Encoder and disable interrupt. +3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Start the TIM Encoder and enable DMA transfer. +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Stop the TIM Encoder and disable DMA transfer. +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Encoder Interface and initialize the associated handle. +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * requires a timer reset to avoid unexpected direction +3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * due to DIR bit readonly in center aligned mode. +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: call @ref HAL_TIM_Encoder_DeInit() before HAL_TIM_Encoder_Init() +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Encoder mode and External clock mode 2 are not compatible and must not be selected toge +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * Ex: A call for @ref HAL_TIM_Encoder_Init will erase the settings of @ref HAL_TIM_Config +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * using TIM_CLOCKSOURCE_ETRMODE2 and vice versa +3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note When the timer instance is initialized in Encoder mode, timer +3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * channels 1 and channel 2 are reserved and cannot be used for other +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * purpose. +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sConfig TIM Encoder Interface configuration structure +3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, TIM_Encoder_InitTypeDef *sConfig) +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; +3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim == NULL) +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + ARM GAS /tmp/cc0wMqvE.s page 55 + + +3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_MODE(sConfig->EncoderMode)); +3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_SELECTION(sConfig->IC1Selection)); +3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_SELECTION(sConfig->IC2Selection)); +3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->IC1Polarity)); +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->IC2Polarity)); +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->IC1Prescaler)); +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->IC2Prescaler)); +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_FILTER(sConfig->IC1Filter)); +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_FILTER(sConfig->IC2Filter)); +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_RESET) +3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Allocate lock resource and initialize it */ +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Lock = HAL_UNLOCKED; +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset interrupt callbacks to legacy weak callbacks */ +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ResetCallback(htim); +3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->Encoder_MspInitCallback == NULL) +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspInitCallback(htim); +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_Encoder_MspInit(htim); +3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM state */ +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the SMS and ECE bits */ +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR &= ~(TIM_SMCR_SMS | TIM_SMCR_ECE); +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Time base in the Encoder Mode */ +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); +3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx SMCR register value */ +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR; +3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR1 register value */ +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = htim->Instance->CCMR1; +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = htim->Instance->CCER; +3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the encoder Mode */ +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= sConfig->EncoderMode; +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Capture Compare 1 and the Capture Compare 2 as input */ +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~(TIM_CCMR1_CC1S | TIM_CCMR1_CC2S); +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Selection | (sConfig->IC2Selection << 8U)); +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare 1 and the Capture Compare 2 prescalers and filters */ + ARM GAS /tmp/cc0wMqvE.s page 56 + + +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~(TIM_CCMR1_IC1PSC | TIM_CCMR1_IC2PSC); +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~(TIM_CCMR1_IC1F | TIM_CCMR1_IC2F); +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= sConfig->IC1Prescaler | (sConfig->IC2Prescaler << 8U); +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Filter << 4U) | (sConfig->IC2Filter << 12U); +3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TI1 and the TI2 Polarities */ +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC2P); +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC1NP | TIM_CCER_CC2NP); +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= sConfig->IC1Polarity | (sConfig->IC2Polarity << 4U); +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR = tmpsmcr; +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 */ +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 = tmpccmr1; +3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER = tmpccer; +3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the DMA burst operation state */ +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channels state */ +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Initialize the TIM state*/ +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes the TIM Encoder interface +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim) +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Peripheral Clock */ +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->Encoder_MspDeInitCallback == NULL) +3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware */ +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspDeInitCallback(htim); + ARM GAS /tmp/cc0wMqvE.s page 57 + + +3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_Encoder_MspDeInit(htim); +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channels state */ +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); +3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change TIM state */ +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_RESET; +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Encoder Interface MSP. +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim) +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_Encoder_MspInit could be implemented in the user file +3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief DeInitializes TIM Encoder Interface MSP. +3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim) +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_Encoder_MspDeInit could be implemented in the user file +3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Encoder Interface. +3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled + ARM GAS /tmp/cc0wMqvE.s page 58 + + +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected +3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel(s) state */ +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (Channel == TIM_CHANNEL_1) +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) +3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_2) +3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + ARM GAS /tmp/cc0wMqvE.s page 59 + + +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the encoder interface channels */ +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral */ +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Encoder Interface. +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected +3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Input Capture channels 1 and 2 +3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the EncoderInterface the two possible channels that can be used are TIM_CHANNEL_1 and TIM_C +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 60 + + +3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel(s) state */ +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2)) +3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Encoder Interface in interrupt mode. +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel(s) state */ + ARM GAS /tmp/cc0wMqvE.s page 61 + + +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (Channel == TIM_CHANNEL_1) +3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) +3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_2) +3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the encoder interface channels */ +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the capture compare Interrupts 1 and/or 2 */ +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 62 + + +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral */ +3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Encoder Interface in interrupt mode. +3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be disabled +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected +3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Input Capture channels 1 and 2 +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the EncoderInterface the two possible channels that can be used are TIM_CHANNEL_1 and TIM_C +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (Channel == TIM_CHANNEL_1) +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the capture compare Interrupts 1 */ +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_2) +3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the capture compare Interrupts 2 */ +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + ARM GAS /tmp/cc0wMqvE.s page 63 + + +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the capture compare Interrupts 1 and 2 */ +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel(s) state */ +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2)) +3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Starts the TIM Encoder Interface in DMA mode. +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected +3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pData1 The destination Buffer address for IC1. +3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pData2 The destination Buffer address for IC2. +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Length The length of data to be transferred from TIM peripheral to memory. +3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pD +3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t *pData2, uint16_t Length) +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel(s) state */ +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (Channel == TIM_CHANNEL_1) +3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) +3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 64 + + +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) +3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) +3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((pData1 == NULL) && (Length > 0U)) +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_2) +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) +3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if ((channel_2_state == HAL_TIM_CHANNEL_STATE_READY) +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) +3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((pData2 == NULL) && (Length > 0U)) +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) +3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) +3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY) +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + ARM GAS /tmp/cc0wMqvE.s page 65 + + +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((((pData1 == NULL) || (pData2 == NULL))) && (Length > 0U)) +3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)p +3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Input Capture DMA request */ +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare channel */ +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral */ +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ + ARM GAS /tmp/cc0wMqvE.s page 66 + + +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError; +3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)p +3682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Input Capture DMA request */ +3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare channel */ +3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral */ +3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +3695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)p +3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +3711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; +3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)p +3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) +3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Input Capture DMA request */ +3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); +3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Input Capture DMA request */ +3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); +3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 67 + + +3736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Capture compare channel */ +3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); +3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); +3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the Peripheral */ +3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE(htim); +3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +3748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM Encoder Interface in DMA mode. +3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +3754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +3758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_ALL: TIM Channel 1 and TIM Channel 2 are selected +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Input Capture channels 1 and 2 +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (in the EncoderInterface the two possible channels that can be used are TIM_CHANNEL_1 and TIM_C +3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (Channel == TIM_CHANNEL_1) +3769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the capture compare DMA Request 1 */ +3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_2) +3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the capture compare DMA Request 2 */ +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); +3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); +3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the capture compare DMA Request 1 and 2 */ +3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + ARM GAS /tmp/cc0wMqvE.s page 68 + + +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Peripheral */ +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE(htim); +3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TIM channel(s) state */ +3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2)) +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group7 TIM IRQ handler management +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM IRQ handler management +3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +3824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +3825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### IRQ handler management ##### +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides Timer IRQ handler function. +3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief This function handles TIM interrupts requests. +3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +3836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) +3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Capture compare 1 event */ +3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) +3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) +3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + ARM GAS /tmp/cc0wMqvE.s page 69 + + +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) +3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback(htim); +3854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_CaptureCallback(htim); +3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Output compare event */ +3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_DelayElapsedCallback(htim); +3863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback(htim); +3864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OC_DelayElapsedCallback(htim); +3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); +3867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Capture compare 2 event */ +3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) +3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) +3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) +3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback(htim); +3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_CaptureCallback(htim); +3887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Output compare event */ +3890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_DelayElapsedCallback(htim); +3894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback(htim); +3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OC_DelayElapsedCallback(htim); +3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Capture compare 3 event */ +3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) +3905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) + ARM GAS /tmp/cc0wMqvE.s page 70 + + +3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); +3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) +3912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback(htim); +3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_CaptureCallback(htim); +3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Output compare event */ +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_DelayElapsedCallback(htim); +3924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback(htim); +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OC_DelayElapsedCallback(htim); +3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); +3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Capture compare 4 event */ +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) +3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); +3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) +3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback(htim); +3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_CaptureCallback(htim); +3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Output compare event */ +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_DelayElapsedCallback(htim); +3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback(htim); +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_OC_DelayElapsedCallback(htim); +3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); +3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Update event */ + ARM GAS /tmp/cc0wMqvE.s page 71 + + +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) +3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) +3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); +3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedCallback(htim); +3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PeriodElapsedCallback(htim); +3973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Break input event */ +3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) +3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) +3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); +3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->BreakCallback(htim); +3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_BreakCallback(htim); +3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +3989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Break2 input event */ +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET) +3991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2); +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Break2Callback(htim); +3997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_Break2Callback(htim); +3999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +4000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Trigger detection event */ +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) +4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) +4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); +4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerCallback(htim); +4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_TriggerCallback(htim); +4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM commutation event */ +4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) +4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) +4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); + ARM GAS /tmp/cc0wMqvE.s page 72 + + +4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->CommutationCallback(htim); +4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_CommutCallback(htim); +4025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Encoder index event */ +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_IDX) != RESET) +4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_IDX) != RESET) +4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_IDX); +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->EncoderIndexCallback(htim); +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_EncoderIndexCallback(htim); +4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Direction change event */ +4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_DIR) != RESET) +4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_DIR) != RESET) +4045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_DIR); +4047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +4048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DirectionChangeCallback(htim); +4049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_DirectionChangeCallback(htim); +4051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Index error event */ +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_IERR) != RESET) +4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_IERR) != RESET) +4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_IERR); +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IndexErrorCallback(htim); +4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_IndexErrorCallback(htim); +4064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TIM Transition error event */ +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TERR) != RESET) +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TERR) != RESET) +4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_TERR); +4073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +4074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TransitionErrorCallback(htim); +4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIMEx_TransitionErrorCallback(htim); +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + ARM GAS /tmp/cc0wMqvE.s page 73 + + +4078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group8 TIM Peripheral Control functions +4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM Peripheral Control functions +4088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +4090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +4091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### Peripheral Control functions ##### +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +4094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides functions allowing to: +4095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Configure The Input Output channels for OC, PWM, IC or One Pulse mode. +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Configure External Clock source. +4097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Configure Complementary channels, break features and dead time. +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Configure Master and the Slave synchronization. +4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) Configure the DMA Burst Mode. +4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +4102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Output Compare Channels according to the specified +4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_OC_InitTypeDef. +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle +4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sConfig TIM Output Compare configuration structure +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to configure +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +4114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected +4117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected +4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, +4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC_InitTypeDef *sConfig, +4122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t Channel) +4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +4125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CHANNELS(Channel)); +4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OC_CHANNEL_MODE(sConfig->OCMode, Channel)); +4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); +4130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) + ARM GAS /tmp/cc0wMqvE.s page 74 + + +4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the TIM Channel 1 in Output Compare */ +4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC1_SetConfig(htim->Instance, sConfig); +4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +4147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +4150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the TIM Channel 2 in Output Compare */ +4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC2_SetConfig(htim->Instance, sConfig); +4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +4157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); +4160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the TIM Channel 3 in Output Compare */ +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC3_SetConfig(htim->Instance, sConfig); +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the TIM Channel 4 in Output Compare */ +4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC4_SetConfig(htim->Instance, sConfig); +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_5: +4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC5_INSTANCE(htim->Instance)); +4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the TIM Channel 5 in Output Compare */ +4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC5_SetConfig(htim->Instance, sConfig); +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_6: +4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC6_INSTANCE(htim->Instance)); +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the TIM Channel 6 in Output Compare */ + ARM GAS /tmp/cc0wMqvE.s page 75 + + +4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC6_SetConfig(htim->Instance, sConfig); +4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM Input Capture Channels according to the specified +4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_IC_InitTypeDef. +4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM IC handle +4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sConfig TIM Input Capture configuration structure +4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel to configure +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +4214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +4216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_IC_InitTypeDef *sConfig, ui +4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_POLARITY(sConfig->ICPolarity)); +4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_SELECTION(sConfig->ICSelection)); +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->ICPrescaler)); +4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_FILTER(sConfig->ICFilter)); +4229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (Channel == TIM_CHANNEL_1) +4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TI1 Configuration */ +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI1_SetConfig(htim->Instance, +4237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, +4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, +4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICFilter); +4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the IC1PSC Bits */ +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC; +4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the IC1PSC value */ +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->ICPrescaler; +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_2) +4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 76 + + +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TI2 Configuration */ +4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI2_SetConfig(htim->Instance, +4253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, +4254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICFilter); +4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the IC2PSC Bits */ +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC; +4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the IC2PSC value */ +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= (sConfig->ICPrescaler << 8U); +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_3) +4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TI3 Configuration */ +4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); +4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI3_SetConfig(htim->Instance, +4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, +4271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICFilter); +4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the IC3PSC Bits */ +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC; +4275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the IC3PSC value */ +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->ICPrescaler; +4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (Channel == TIM_CHANNEL_4) +4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* TI4 Configuration */ +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); +4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI4_SetConfig(htim->Instance, +4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, +4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, +4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICFilter); +4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the IC4PSC Bits */ +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC; +4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the IC4PSC value */ +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= (sConfig->ICPrescaler << 8U); +4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + ARM GAS /tmp/cc0wMqvE.s page 77 + + +4306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM PWM channels according to the specified +4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_OC_InitTypeDef. +4308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM PWM handle +4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sConfig TIM PWM configuration structure +4310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be configured +4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +4314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +4316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected +4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected +4318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, +4321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC_InitTypeDef *sConfig, +4322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t Channel) +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CHANNELS(Channel)); +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_PWM_MODE(sConfig->OCMode)); +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_FAST_STATE(sConfig->OCFastMode)); +4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Channel 1 in PWM mode */ +4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC1_SetConfig(htim->Instance, sConfig); +4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Preload enable bit for channel1 */ +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= TIM_CCMR1_OC1PE; +4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Output Fast mode */ +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE; +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode; +4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Channel 2 in PWM mode */ +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC2_SetConfig(htim->Instance, sConfig); +4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Preload enable bit for channel2 */ + ARM GAS /tmp/cc0wMqvE.s page 78 + + +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= TIM_CCMR1_OC2PE; +4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Output Fast mode */ +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE; +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; +4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); +4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Channel 3 in PWM mode */ +4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC3_SetConfig(htim->Instance, sConfig); +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Preload enable bit for channel3 */ +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= TIM_CCMR2_OC3PE; +4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Output Fast mode */ +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE; +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode; +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +4389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); +4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Channel 4 in PWM mode */ +4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC4_SetConfig(htim->Instance, sConfig); +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Preload enable bit for channel4 */ +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= TIM_CCMR2_OC4PE; +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Output Fast mode */ +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE; +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; +4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_5: +4406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC5_INSTANCE(htim->Instance)); +4409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Channel 5 in PWM mode */ +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC5_SetConfig(htim->Instance, sConfig); +4412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Preload enable bit for channel5*/ +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= TIM_CCMR3_OC5PE; +4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Output Fast mode */ +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE; +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode; +4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + ARM GAS /tmp/cc0wMqvE.s page 79 + + +4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_6: +4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC6_INSTANCE(htim->Instance)); +4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Channel 6 in PWM mode */ +4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC6_SetConfig(htim->Instance, sConfig); +4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Preload enable bit for channel6 */ +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= TIM_CCMR3_OC6PE; +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the Output Fast mode */ +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE; +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; +4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Initializes the TIM One Pulse Channels according to the specified +4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * parameters in the TIM_OnePulse_InitTypeDef. +4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM One Pulse handle +4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sConfig TIM One Pulse configuration structure +4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OutputChannel TIM output channel to configure +4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param InputChannel TIM input Channel to configure +4459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +4461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note To output a waveform with a minimum delay user can enable the fast +4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * mode by calling the @ref __HAL_TIM_ENABLE_OCxFAST macro. Then CCx +4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * output is forced in response to the edge detection on TIx input, +4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * without taking in account the comparison. +4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef +4469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t OutputChannel, uint32_t InputChannel) +4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC_InitTypeDef temp1; +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OPM_CHANNELS(OutputChannel)); +4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OPM_CHANNELS(InputChannel)); + ARM GAS /tmp/cc0wMqvE.s page 80 + + +4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (OutputChannel != InputChannel) +4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +4482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Extract the Output compare configuration from sConfig structure */ +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCMode = sConfig->OCMode; +4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.Pulse = sConfig->Pulse; +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCPolarity = sConfig->OCPolarity; +4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNPolarity = sConfig->OCNPolarity; +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCIdleState = sConfig->OCIdleState; +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNIdleState = sConfig->OCNIdleState; +4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (OutputChannel) +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC1_SetConfig(htim->Instance, &temp1); +4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC2_SetConfig(htim->Instance, &temp1); +4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +4512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +4517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (InputChannel) +4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +4523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI1_SetConfig(htim->Instance, sConfig->ICPolarity, +4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, sConfig->ICFilter); +4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the IC1PSC Bits */ +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC; +4529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Trigger source */ +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR &= ~TIM_SMCR_TS; +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI1FP1; +4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 81 + + +4534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Slave Mode */ +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR &= ~TIM_SMCR_SMS; +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; +4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +4541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +4543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI2_SetConfig(htim->Instance, sConfig->ICPolarity, +4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, sConfig->ICFilter); +4546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the IC2PSC Bits */ +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC; +4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Trigger source */ +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR &= ~TIM_SMCR_TS; +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI2FP2; +4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Slave Mode */ +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR &= ~TIM_SMCR_SMS; +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; +4557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +4567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +4569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +4573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the DMA Burst to transfer Data from the memory to the TIM peripheral +4580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBaseAddress TIM Base address from where the DMA will start the Data write +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR1 +4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR2 +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SMCR +4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DIER +4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SR +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_EGR +4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR1 +4590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR2 + ARM GAS /tmp/cc0wMqvE.s page 82 + + +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCER +4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CNT +4593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_PSC +4594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ARR +4595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_RCR +4596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR1 +4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR2 +4598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR3 +4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR4 +4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_BDTR +4601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR3 +4602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR5 +4603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR6 +4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DTR2 +4605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ECR +4606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_TISEL +4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF1 +4608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF2 +4609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_OR +4610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstRequestSrc TIM DMA Request sources +4611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_UPDATE: TIM update Interrupt source +4613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source +4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source +4615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source +4616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source +4617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_COM: TIM Commutation DMA source +4618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source +4619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBuffer The Buffer address. +4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstLength DMA Burst length. This parameter can be one value +4621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. +4622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note This function should be used only when BurstLength is equal to DMA data transfer length +4623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, +4626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint +4627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status; +4629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_TIM_DMABurst_MultiWriteStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, B +4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ((BurstLength) >> 8U) + 1U); +4632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral +4640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBaseAddress TIM Base address from where the DMA will start the Data write +4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR1 +4644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR2 +4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SMCR +4646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DIER +4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SR + ARM GAS /tmp/cc0wMqvE.s page 83 + + +4648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_EGR +4649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR1 +4650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR2 +4651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCER +4652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CNT +4653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_PSC +4654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ARR +4655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_RCR +4656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR1 +4657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR2 +4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR3 +4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR4 +4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_BDTR +4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR3 +4662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR5 +4663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR6 +4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DTR2 +4665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ECR +4666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_TISEL +4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF1 +4668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF2 +4669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_OR +4670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstRequestSrc TIM DMA Request sources +4671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_UPDATE: TIM update Interrupt source +4673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source +4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source +4675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source +4676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source +4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_COM: TIM Commutation DMA source +4678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source +4679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBuffer The Buffer address. +4680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstLength DMA Burst length. This parameter can be one value +4681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. +4682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param DataLength Data length. This parameter can be one value +4683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * between 1 and 0xFFFF. +4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddre +4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t BurstRequestSrc, uint32_t *BurstBuffer, +4688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t BurstLength, uint32_t DataLength) +4689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +4691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance)); +4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_BASE(BurstBaseAddress)); +4695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); +4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_LENGTH(BurstLength)); +4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength)); +4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->DMABurstState == HAL_DMA_BURST_STATE_BUSY) +4700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +4702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (htim->DMABurstState == HAL_DMA_BURST_STATE_READY) +4704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 84 + + +4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((BurstBuffer == NULL) && (BurstLength > 0U)) +4706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_BUSY; +4712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +4715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* nothing to do */ +4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (BurstRequestSrc) +4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_UPDATE: +4722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA Period elapsed callbacks */ +4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt; +4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; +4726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ; +4729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)BurstBuffer, +4732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC1: +4740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt; +4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +4744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +4747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)BurstBuffer, +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC2: +4758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt; +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + ARM GAS /tmp/cc0wMqvE.s page 85 + + +4762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; +4765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)BurstBuffer, +4768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC3: +4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt; +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +4780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; +4783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)BurstBuffer, +4786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC4: +4794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA compare callbacks */ +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt; +4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; +4801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)BurstBuffer, +4804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_COM: +4812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA commutation callbacks */ +4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferCpltCallback = TIMEx_DMACommutationCplt; +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; +4816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback = TIM_DMAError ; + ARM GAS /tmp/cc0wMqvE.s page 86 + + +4819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)BurstBuffer, +4822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_TRIGGER: +4830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA trigger callbacks */ +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferCpltCallback = TIM_DMATriggerCplt; +4833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; +4834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ; +4837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)BurstBuffer, +4840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) +4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +4848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +4853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the DMA Burst Mode */ +4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->DCR = (BurstBaseAddress | BurstLength); +4856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM DMA Request */ +4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc); +4858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +4861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stops the TIM DMA Burst mode +4866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +4867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstRequestSrc TIM DMA Request sources to disable +4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc) +4871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +4873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +4875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + ARM GAS /tmp/cc0wMqvE.s page 87 + + +4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Abort the DMA transfer (at least disable the DMA channel) */ +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (BurstRequestSrc) +4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_UPDATE: +4881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_UPDATE]); +4883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC1: +4886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +4888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC2: +4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC3: +4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +4898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC4: +4901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_COM: +4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_COMMUTATION]); +4908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_TRIGGER: +4911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_TRIGGER]); +4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +4917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +4918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +4921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Update DMA request */ +4923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc); +4924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ +4926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; +4927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +4930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +4931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 88 + + +4933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the DMA Burst to transfer Data from the TIM peripheral to the memory +4935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +4936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBaseAddress TIM Base address from where the DMA will start the Data read +4937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR1 +4939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR2 +4940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SMCR +4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DIER +4942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SR +4943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_EGR +4944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR1 +4945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR2 +4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCER +4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CNT +4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_PSC +4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ARR +4950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_RCR +4951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR1 +4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR2 +4953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR3 +4954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR4 +4955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_BDTR +4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR3 +4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR5 +4958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR6 +4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DTR2 +4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ECR +4961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_TISEL +4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF1 +4963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF2 +4964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_OR +4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstRequestSrc TIM DMA Request sources +4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_UPDATE: TIM update Interrupt source +4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source +4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source +4970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source +4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source +4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_COM: TIM Commutation DMA source +4973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source +4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBuffer The Buffer address. +4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstLength DMA Burst length. This parameter can be one value +4976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. +4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note This function should be used only when BurstLength is equal to DMA data transfer length +4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +4979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +4980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, +4981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint +4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status; +4984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_TIM_DMABurst_MultiReadStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, Bu +4986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ((BurstLength) >> 8U) + 1U); +4987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; + ARM GAS /tmp/cc0wMqvE.s page 89 + + +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +4992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the DMA Burst to transfer Data from the TIM peripheral to the memory +4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +4995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBaseAddress TIM Base address from where the DMA will start the Data read +4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR1 +4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CR2 +4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SMCR +5000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DIER +5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_SR +5002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_EGR +5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR1 +5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR2 +5005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCER +5006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CNT +5007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_PSC +5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ARR +5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_RCR +5010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR1 +5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR2 +5012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR3 +5013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR4 +5014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_BDTR +5015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCMR3 +5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR5 +5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_CCR6 +5018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_DTR2 +5019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_ECR +5020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_TISEL +5021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF1 +5022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_AF2 +5023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMABASE_OR +5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstRequestSrc TIM DMA Request sources +5025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +5026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_UPDATE: TIM update Interrupt source +5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source +5028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source +5029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source +5030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source +5031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_COM: TIM Commutation DMA source +5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_DMA_TRIGGER: TIM Trigger DMA source +5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstBuffer The Buffer address. +5034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstLength DMA Burst length. This parameter can be one value +5035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * between: TIM_DMABURSTLENGTH_1TRANSFER and TIM_DMABURSTLENGTH_26TRANSFER. +5036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param DataLength Data length. This parameter can be one value +5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * between 1 and 0xFFFF. +5038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddres +5041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t BurstRequestSrc, uint32_t *BurstBuffer, +5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t BurstLength, uint32_t DataLength) +5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + ARM GAS /tmp/cc0wMqvE.s page 90 + + +5047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance)); +5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_BASE(BurstBaseAddress)); +5049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); +5050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_LENGTH(BurstLength)); +5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength)); +5052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->DMABurstState == HAL_DMA_BURST_STATE_BUSY) +5054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_BUSY; +5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (htim->DMABurstState == HAL_DMA_BURST_STATE_READY) +5058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((BurstBuffer == NULL) && (BurstLength > 0U)) +5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_BUSY; +5066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* nothing to do */ +5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (BurstRequestSrc) +5073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_UPDATE: +5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA Period elapsed callbacks */ +5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt; +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; +5079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ; +5082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)&htim->Instance->DMAR, (uint32_ +5085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) +5086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC1: +5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; +5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; +5100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->DMAR, (uint32_t)B +5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + ARM GAS /tmp/cc0wMqvE.s page 91 + + +5104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC2: +5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt; +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +5115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ; +5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->DMAR, (uint32_t)B +5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) +5122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC3: +5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMACaptureCplt; +5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +5133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ; +5136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->DMAR, (uint32_t)B +5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) +5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC4: +5147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA capture callbacks */ +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMACaptureCplt; +5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; +5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ; +5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->DMAR, (uint32_t)B +5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) +5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + ARM GAS /tmp/cc0wMqvE.s page 92 + + +5161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_COM: +5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA commutation callbacks */ +5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferCpltCallback = TIMEx_DMACommutationCplt; +5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; +5169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback = TIM_DMAError ; +5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)&htim->Instance->DMAR, (ui +5175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) +5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_TRIGGER: +5183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA trigger callbacks */ +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferCpltCallback = TIM_DMATriggerCplt; +5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; +5187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the DMA error callback */ +5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ; +5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ +5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)&htim->Instance->DMAR, (uint32 +5193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) +5194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +5196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +5202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +5206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the DMA Burst Mode */ +5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->DCR = (BurstBaseAddress | BurstLength); +5209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM DMA Request */ +5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc); +5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 93 + + +5218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Stop the DMA burst reading +5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param BurstRequestSrc TIM DMA Request sources to disable. +5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc) +5225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +5227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); +5230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Abort the DMA transfer (at least disable the DMA channel) */ +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (BurstRequestSrc) +5233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_UPDATE: +5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_UPDATE]); +5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC1: +5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +5242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC2: +5245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC3: +5250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +5252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_CC4: +5255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +5257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_COM: +5260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_COMMUTATION]); +5262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_DMA_TRIGGER: +5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_TRIGGER]); +5267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +5270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) + ARM GAS /tmp/cc0wMqvE.s page 94 + + +5275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the TIM Update DMA request */ +5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc); +5278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the DMA burst operation state */ +5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; +5281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +5285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Generate a software event +5289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param EventSource specifies the event source. +5291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_UPDATE: Timer update Event source +5293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_CC1: Timer Capture Compare 1 Event source +5294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_CC2: Timer Capture Compare 2 Event source +5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_CC3: Timer Capture Compare 3 Event source +5296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_CC4: Timer Capture Compare 4 Event source +5297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_COM: Timer COM event source +5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_TRIGGER: Timer Trigger Event source +5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_BREAK: Timer Break event source +5300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_EVENTSOURCE_BREAK2: Timer Break2 event source +5301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note Basic timers can only generate an update event. +5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note TIM_EVENTSOURCE_COM is relevant only with advanced timer instances. +5303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note TIM_EVENTSOURCE_BREAK and TIM_EVENTSOURCE_BREAK2 are relevant +5304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * only for timer instances supporting break input(s). +5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource) +5309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +5312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_EVENT_SOURCE(EventSource)); +5313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +5316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the TIM state */ +5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the event sources */ +5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->EGR = EventSource; +5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Change the TIM state */ +5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return function status */ +5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +5330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 95 + + +5332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configures the OCRef clear feature +5334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sClearInputConfig pointer to a TIM_ClearInputConfigTypeDef structure that +5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * contains the OCREF clear feature and parameters for the TIM peripheral. +5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel specifies the TIM Channel +5338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 +5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 +5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 +5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 +5343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 +5344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 +5345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, +5348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ClearInputConfigTypeDef *sClearInputConfig, +5349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t Channel) +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +5352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCXREF_CLEAR_INSTANCE(htim->Instance)); +5355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_SOURCE(sClearInputConfig->ClearInputSource)); +5356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +5359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +5361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (sClearInputConfig->ClearInputSource) +5363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_NONE: +5365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Clear the OCREF clear selection bit and the the ETR Bits */ +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_OCCS_INSTANCE(htim->Instance)) +5368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_OCCS | TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_EC +5370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Clear TIMx_AF2_OCRSEL (reset value) */ +5372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->AF2, TIMx_AF2_OCRSEL); +5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP +5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP1: +5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP2: +5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP3: +5384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP4: +5385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (COMP5) +5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP5: +5387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* COMP5 */ +5388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (COMP6) + ARM GAS /tmp/cc0wMqvE.s page 96 + + +5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP6: +5390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* COMP6 */ +5391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (COMP7) +5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_COMP7: +5393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* COMP7 */ +5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_OCCS_INSTANCE(htim->Instance)) +5396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Clear the OCREF clear selection bit */ +5398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS); +5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Clear TIM1_AF2_OCRSEL (reset value) */ +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** MODIFY_REG(htim->Instance->AF2, TIMx_AF2_OCRSEL, sClearInputConfig->ClearInputSource); +5402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLEARINPUTSOURCE_ETR: +5407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_POLARITY(sClearInputConfig->ClearInputPolarity)); +5410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_PRESCALER(sClearInputConfig->ClearInputPrescaler)); +5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_FILTER(sClearInputConfig->ClearInputFilter)); +5412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* When OCRef clear feature is used with ETR source, ETR prescaler must be off */ +5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputPrescaler != TIM_CLEARINPUTPRESCALER_DIV1) +5415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ETR_SetConfig(htim->Instance, +5422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClearInputConfig->ClearInputPrescaler, +5423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClearInputConfig->ClearInputPolarity, +5424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClearInputConfig->ClearInputFilter); +5425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_OCCS_INSTANCE(htim->Instance)) +5427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the OCREF clear selection bit */ +5429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS); +5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Clear TIMx_AF2_OCRSEL (reset value) */ +5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->AF2, TIMx_AF2_OCRSEL); +5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +5439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (status == HAL_OK) +5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +5445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 97 + + +5446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) +5449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the OCREF clear feature for Channel 1 */ +5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE); +5452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the OCREF clear feature for Channel 1 */ +5456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE); +5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) +5463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the OCREF clear feature for Channel 2 */ +5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE); +5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the OCREF clear feature for Channel 2 */ +5470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE); +5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +5475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) +5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the OCREF clear feature for Channel 3 */ +5479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE); +5480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the OCREF clear feature for Channel 3 */ +5484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE); +5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +5489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) +5491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the OCREF clear feature for Channel 4 */ +5493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE); +5494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the OCREF clear feature for Channel 4 */ +5498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE); +5499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_5: + ARM GAS /tmp/cc0wMqvE.s page 98 + + +5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) +5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the OCREF clear feature for Channel 5 */ +5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC5CE); +5508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the OCREF clear feature for Channel 5 */ +5512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC5CE); +5513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_6: +5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (sClearInputConfig->ClearInputState != (uint32_t)DISABLE) +5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the OCREF clear feature for Channel 6 */ +5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** SET_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC6CE); +5522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the OCREF clear feature for Channel 6 */ +5526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** CLEAR_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC6CE); +5527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +5540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configures the clock source to be used +5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sClockSourceConfig pointer to a TIM_ClockConfigTypeDef structure that +5546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * contains the clock source information for the TIM peripheral. +5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef *sClock +5550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +5552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +5553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process Locked */ +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +5558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + ARM GAS /tmp/cc0wMqvE.s page 99 + + +5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource)); +5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the SMS, TS, ECE, ETPS and ETRF bits */ +5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR; +5564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); +5565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); +5566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR = tmpsmcr; +5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (sClockSourceConfig->ClockSource) +5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_INTERNAL: +5571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ETRMODE1: +5577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check whether or not the timer instance supports external trigger input mode 1 (ETRF)*/ +5579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance)); +5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check ETR input conditioning related parameters */ +5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler)); +5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); +5584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); +5585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the ETR Clock source */ +5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ETR_SetConfig(htim->Instance, +5588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, +5589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, +5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockFilter); +5591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the External clock mode1 and the ETRF trigger */ +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR; +5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); +5595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ +5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR = tmpsmcr; +5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ETRMODE2: +5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check whether or not the timer instance supports external trigger input mode 2 (ETRF)*/ +5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(htim->Instance)); +5604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check ETR input conditioning related parameters */ +5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler)); +5607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); +5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); +5609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the ETR Clock source */ +5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ETR_SetConfig(htim->Instance, +5612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, +5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, +5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockFilter); +5615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the External clock mode2 */ +5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SMCR_ECE; + ARM GAS /tmp/cc0wMqvE.s page 100 + + +5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_TI1: +5621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check whether or not the timer instance supports external clock mode 1 */ +5623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance)); +5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check TI1 input conditioning related parameters */ +5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); +5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); +5628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI1_ConfigInputStage(htim->Instance, +5630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, +5631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockFilter); +5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1); +5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_TI2: +5637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check whether or not the timer instance supports external clock mode 1 (ETRF)*/ +5639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance)); +5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check TI2 input conditioning related parameters */ +5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); +5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); +5644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI2_ConfigInputStage(htim->Instance, +5646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, +5647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockFilter); +5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2); +5649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_TI1ED: +5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check whether or not the timer instance supports external clock mode 1 */ +5655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance)); +5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check TI1 input conditioning related parameters */ +5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); +5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); +5660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI1_ConfigInputStage(htim->Instance, +5662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, +5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockFilter); +5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED); +5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR0: +5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR1: +5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR2: +5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR3: +5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (TIM5) +5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR4: + ARM GAS /tmp/cc0wMqvE.s page 101 + + +5674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* TIM5 */ +5675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR5: +5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR6: +5677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR7: +5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR8: +5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (TIM20) +5680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR9: +5681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* TIM20 */ +5682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (HRTIM1) +5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR10: +5684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* HRTIM1 */ +5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CLOCKSOURCE_ITR11: +5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check whether or not the timer instance supports internal trigger input */ +5688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_INSTANCE((htim->Instance), sClockSourceConfig->ClockSource)); +5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); +5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +5696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Selects the signal connected to the TI1 input: direct from CH1_input +5707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * or a XOR combination between CH1_input, CH2_input & CH3_input +5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle. +5709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TI1_Selection Indicate whether or not channel 1 is connected to the +5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * output of a XOR gate. +5711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TI1SELECTION_CH1: The TIMx_CH1 pin is connected to TI1 input +5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TI1SELECTION_XORCOMBINATION: The TIMx_CH1, CH2 and CH3 +5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * pins are connected to the TI1 input (XOR combination) +5715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection) +5718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; +5720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_XOR_INSTANCE(htim->Instance)); +5723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TI1SELECTION(TI1_Selection)); +5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = htim->Instance->CR2; +5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the TI1 selection */ +5729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_TI1S; +5730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 102 + + +5731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the TI1 selection */ +5732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= TI1_Selection; +5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMxCR2 */ +5735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CR2 = tmpcr2; +5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configures the TIM in Slave mode +5742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle. +5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sSlaveConfig pointer to a TIM_SlaveConfigTypeDef structure that +5744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * contains the selected trigger (internal trigger input, filtered +5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * timer input or external trigger input) and the Slave mode +5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (Disable, Reset, Gated, Trigger, External clock mode 1, Reset + Trigger, Gated + Reset) +5747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status +5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlav +5750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); +5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->SlaveMode)); +5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGER_INSTANCE(htim->Instance, sSlaveConfig->InputTrigger)); +5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +5757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_SlaveTimer_SetConfig(htim, sSlaveConfig) != HAL_OK) +5761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable Trigger Interrupt */ +5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_TRIGGER); +5769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable Trigger DMA request */ +5771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER); +5772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +5778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configures the TIM in Slave mode in interrupt mode +5782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle. +5783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sSlaveConfig pointer to a TIM_SlaveConfigTypeDef structure that +5784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * contains the selected trigger (internal trigger input, filtered +5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * timer input or external trigger input) and the Slave mode +5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (Disable, Reset, Gated, Trigger, External clock mode 1, Reset + Trigger, Gated + Reset) +5787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL status + ARM GAS /tmp/cc0wMqvE.s page 103 + + +5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, +5790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_SlaveConfigTypeDef *sSlaveConfig) +5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); +5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->SlaveMode)); +5795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGER_INSTANCE(htim->Instance, sSlaveConfig->InputTrigger)); +5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +5798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_BUSY; +5800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (TIM_SlaveTimer_SetConfig(htim, sSlaveConfig) != HAL_OK) +5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +5806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable Trigger Interrupt */ +5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_TRIGGER); +5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable Trigger DMA request */ +5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER); +5813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +5815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +5817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_OK; +5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Read the captured value from Capture Compare unit +5823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle. +5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channels to be enabled +5825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +5828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval Captured value +5831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel) +5833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpreg = 0U; +5835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (Channel) +5837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_1: +5839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return the capture 1 value */ +5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpreg = htim->Instance->CCR1; + ARM GAS /tmp/cc0wMqvE.s page 104 + + +5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_2: +5849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +5852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return the capture 2 value */ +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpreg = htim->Instance->CCR2; +5855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_3: +5860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); +5863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return the capture 3 value */ +5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpreg = htim->Instance->CCR3; +5866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_CHANNEL_4: +5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); +5874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return the capture 4 value */ +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpreg = htim->Instance->CCR4; +5877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +5883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return tmpreg; +5886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group9 TIM Callbacks functions +5893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM Callbacks functions +5894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +5896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +5897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### TIM Callbacks functions ##### +5898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +5899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +5900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This section provides TIM callback functions: +5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Period elapsed callback + ARM GAS /tmp/cc0wMqvE.s page 105 + + +5902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Output Compare callback +5903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Input capture callback +5904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Trigger callback +5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Error callback +5906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Index callback +5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Direction change callback +5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Index error callback +5909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (+) TIM Transition error callback +5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +5912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +5913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Period elapsed callback in non-blocking mode +5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +5919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +5921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_PeriodElapsedCallback could be implemented in the user file +5927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Period elapsed half complete callback in non-blocking mode +5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim) +5936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +5938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +5939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +5941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_PeriodElapsedHalfCpltCallback could be implemented in the user file +5942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Output Compare callback in non-blocking mode +5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM OC handle +5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) +5951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +5954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file +5957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 106 + + +5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Input Capture callback in non-blocking mode +5962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM IC handle +5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) +5966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +5968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +5969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +5971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_IC_CaptureCallback could be implemented in the user file +5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Input Capture half complete callback in non-blocking mode +5977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM IC handle +5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +5979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim) +5981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +5983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_IC_CaptureHalfCpltCallback could be implemented in the user file +5987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +5989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +5990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +5991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief PWM Pulse finished callback in non-blocking mode +5992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +5993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +5994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) +5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +5998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +5999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file +6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief PWM Pulse finished half complete callback in non-blocking mode +6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim) +6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, + ARM GAS /tmp/cc0wMqvE.s page 107 + + +6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_PWM_PulseFinishedHalfCpltCallback could be implemented in the user file +6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Hall Trigger detection callback in non-blocking mode +6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) +6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +6028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_TriggerCallback could be implemented in the user file +6032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Hall Trigger detection half complete callback in non-blocking mode +6037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim) +6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +6043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +6046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_TriggerHalfCpltCallback could be implemented in the user file +6047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer error callback in non-blocking mode +6052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim) +6056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ +6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** UNUSED(htim); +6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* NOTE : This function should not be modified, when the callback is needed, +6061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** the HAL_TIM_ErrorCallback could be implemented in the user file +6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Register a User TIM callback to be used instead of the weak predefined callback +6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim tim handle +6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param CallbackID ID of the callback to be registered +6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BASE_MSPINIT_CB_ID Base MspInit Callback ID +6072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BASE_MSPDEINIT_CB_ID Base MspDeInit Callback ID + ARM GAS /tmp/cc0wMqvE.s page 108 + + +6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_MSPINIT_CB_ID IC MspInit Callback ID +6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_MSPDEINIT_CB_ID IC MspDeInit Callback ID +6075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_OC_MSPINIT_CB_ID OC MspInit Callback ID +6076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_OC_MSPDEINIT_CB_ID OC MspDeInit Callback ID +6077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_MSPINIT_CB_ID PWM MspInit Callback ID +6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_MSPDEINIT_CB_ID PWM MspDeInit Callback ID +6079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ONE_PULSE_MSPINIT_CB_ID One Pulse MspInit Callback ID +6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID One Pulse MspDeInit Callback ID +6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ENCODER_MSPINIT_CB_ID Encoder MspInit Callback ID +6082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ENCODER_MSPDEINIT_CB_ID Encoder MspDeInit Callback ID +6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID Hall Sensor MspInit Callback ID +6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID Hall Sensor MspDeInit Callback ID +6085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PERIOD_ELAPSED_CB_ID Period Elapsed Callback ID +6086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID Period Elapsed half complete Callback ID +6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_TRIGGER_CB_ID Trigger Callback ID +6088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_TRIGGER_HALF_CB_ID Trigger half complete Callback ID +6089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_CAPTURE_CB_ID Input Capture Callback ID +6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_CAPTURE_HALF_CB_ID Input Capture half complete Callback ID +6091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_OC_DELAY_ELAPSED_CB_ID Output Compare Delay Elapsed Callback ID +6092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_CB_ID PWM Pulse Finished Callback ID +6093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID PWM Pulse Finished half complete Callb +6094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ERROR_CB_ID Error Callback ID +6095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_COMMUTATION_CB_ID Commutation Callback ID +6096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_COMMUTATION_HALF_CB_ID Commutation half complete Callback ID +6097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BREAK_CB_ID Break Callback ID +6098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BREAK2_CB_ID Break2 Callback ID +6099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ENCODER_INDEX_CB_ID Encoder Index Callback ID +6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_DIRECTION_CHANGE_CB_ID Direction Change Callback ID +6101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_INDEX_ERROR_CB_ID Index Error Callback ID +6102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_TRANSITION_ERROR_CB_ID Transition Error Callback ID +6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param pCallback pointer to the callback function +6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval status +6105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef Callb +6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** pTIM_CallbackTypeDef pCallback) +6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (pCallback == NULL) +6112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process locked */ +6116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +6117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_READY) +6119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (CallbackID) +6121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPINIT_CB_ID : +6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspInitCallback = pCallback; +6124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPDEINIT_CB_ID : +6127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspDeInitCallback = pCallback; +6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 109 + + +6130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPINIT_CB_ID : +6131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspInitCallback = pCallback; +6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPDEINIT_CB_ID : +6135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspDeInitCallback = pCallback; +6136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPINIT_CB_ID : +6139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspInitCallback = pCallback; +6140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPDEINIT_CB_ID : +6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspDeInitCallback = pCallback; +6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPINIT_CB_ID : +6147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspInitCallback = pCallback; +6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPDEINIT_CB_ID : +6151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspDeInitCallback = pCallback; +6152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : +6155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspInitCallback = pCallback; +6156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : +6159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspDeInitCallback = pCallback; +6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPINIT_CB_ID : +6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspInitCallback = pCallback; +6164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : +6167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspDeInitCallback = pCallback; +6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : +6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspInitCallback = pCallback; +6172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : +6175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspDeInitCallback = pCallback; +6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PERIOD_ELAPSED_CB_ID : +6179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedCallback = pCallback; +6180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID : +6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedHalfCpltCallback = pCallback; +6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_TRIGGER_CB_ID : + ARM GAS /tmp/cc0wMqvE.s page 110 + + +6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerCallback = pCallback; +6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_TRIGGER_HALF_CB_ID : +6191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerHalfCpltCallback = pCallback; +6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_CAPTURE_CB_ID : +6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback = pCallback; +6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_CAPTURE_HALF_CB_ID : +6199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureHalfCpltCallback = pCallback; +6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_DELAY_ELAPSED_CB_ID : +6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_DelayElapsedCallback = pCallback; +6204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_PULSE_FINISHED_CB_ID : +6207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback = pCallback; +6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID : +6211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedHalfCpltCallback = pCallback; +6212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ERROR_CB_ID : +6215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->ErrorCallback = pCallback; +6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_COMMUTATION_CB_ID : +6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->CommutationCallback = pCallback; +6220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_COMMUTATION_HALF_CB_ID : +6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->CommutationHalfCpltCallback = pCallback; +6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BREAK_CB_ID : +6227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->BreakCallback = pCallback; +6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BREAK2_CB_ID : +6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Break2Callback = pCallback; +6232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_INDEX_CB_ID : +6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->EncoderIndexCallback = pCallback; +6236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_DIRECTION_CHANGE_CB_ID : +6239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DirectionChangeCallback = pCallback; +6240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_INDEX_ERROR_CB_ID : +6243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IndexErrorCallback = pCallback; + ARM GAS /tmp/cc0wMqvE.s page 111 + + +6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_TRANSITION_ERROR_CB_ID : +6247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TransitionErrorCallback = pCallback; +6248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +6251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +6253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (htim->State == HAL_TIM_STATE_RESET) +6257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (CallbackID) +6259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPINIT_CB_ID : +6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspInitCallback = pCallback; +6262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPDEINIT_CB_ID : +6265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspDeInitCallback = pCallback; +6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPINIT_CB_ID : +6269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspInitCallback = pCallback; +6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPDEINIT_CB_ID : +6273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspDeInitCallback = pCallback; +6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPINIT_CB_ID : +6277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspInitCallback = pCallback; +6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPDEINIT_CB_ID : +6281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspDeInitCallback = pCallback; +6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPINIT_CB_ID : +6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspInitCallback = pCallback; +6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPDEINIT_CB_ID : +6289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspDeInitCallback = pCallback; +6290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : +6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspInitCallback = pCallback; +6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : +6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspDeInitCallback = pCallback; +6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPINIT_CB_ID : + ARM GAS /tmp/cc0wMqvE.s page 112 + + +6301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspInitCallback = pCallback; +6302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : +6305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspDeInitCallback = pCallback; +6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : +6309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspInitCallback = pCallback; +6310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : +6313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspDeInitCallback = pCallback; +6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +6317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +6319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +6323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +6326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ +6329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Unregister a TIM callback +6336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * TIM callback is redirected to the weak predefined callback +6337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim tim handle +6338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param CallbackID ID of the callback to be unregistered +6339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BASE_MSPINIT_CB_ID Base MspInit Callback ID +6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BASE_MSPDEINIT_CB_ID Base MspDeInit Callback ID +6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_MSPINIT_CB_ID IC MspInit Callback ID +6343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_MSPDEINIT_CB_ID IC MspDeInit Callback ID +6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_OC_MSPINIT_CB_ID OC MspInit Callback ID +6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_OC_MSPDEINIT_CB_ID OC MspDeInit Callback ID +6346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_MSPINIT_CB_ID PWM MspInit Callback ID +6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_MSPDEINIT_CB_ID PWM MspDeInit Callback ID +6348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ONE_PULSE_MSPINIT_CB_ID One Pulse MspInit Callback ID +6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID One Pulse MspDeInit Callback ID +6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ENCODER_MSPINIT_CB_ID Encoder MspInit Callback ID +6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ENCODER_MSPDEINIT_CB_ID Encoder MspDeInit Callback ID +6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID Hall Sensor MspInit Callback ID +6353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID Hall Sensor MspDeInit Callback ID +6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PERIOD_ELAPSED_CB_ID Period Elapsed Callback ID +6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID Period Elapsed half complete Callback ID +6356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_TRIGGER_CB_ID Trigger Callback ID +6357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_TRIGGER_HALF_CB_ID Trigger half complete Callback ID + ARM GAS /tmp/cc0wMqvE.s page 113 + + +6358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_CAPTURE_CB_ID Input Capture Callback ID +6359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_IC_CAPTURE_HALF_CB_ID Input Capture half complete Callback ID +6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_OC_DELAY_ELAPSED_CB_ID Output Compare Delay Elapsed Callback ID +6361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_CB_ID PWM Pulse Finished Callback ID +6362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID PWM Pulse Finished half complete Callb +6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ERROR_CB_ID Error Callback ID +6364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_COMMUTATION_CB_ID Commutation Callback ID +6365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_COMMUTATION_HALF_CB_ID Commutation half complete Callback ID +6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BREAK_CB_ID Break Callback ID +6367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_BREAK2_CB_ID Break2 Callback ID +6368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_ENCODER_INDEX_CB_ID Encoder Index Callback ID +6369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_DIRECTION_CHANGE_CB_ID Direction Change Callback ID +6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_INDEX_ERROR_CB_ID Index Error Callback ID +6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg @ref HAL_TIM_TRANSITION_ERROR_CB_ID Transition Error Callback ID +6372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval status +6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef Cal +6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +6377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Process locked */ +6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_LOCK(htim); +6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->State == HAL_TIM_STATE_READY) +6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (CallbackID) +6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPINIT_CB_ID : +6386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Base MspInit Callback */ +6387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; +6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPDEINIT_CB_ID : +6391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Base Msp DeInit Callback */ +6392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; +6393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPINIT_CB_ID : +6396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak IC Msp Init Callback */ +6397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; +6398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPDEINIT_CB_ID : +6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak IC Msp DeInit Callback */ +6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; +6403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPINIT_CB_ID : +6406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak OC Msp Init Callback */ +6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; +6408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPDEINIT_CB_ID : +6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak OC Msp DeInit Callback */ +6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; +6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 114 + + +6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPINIT_CB_ID : +6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak PWM Msp Init Callback */ +6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; +6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPDEINIT_CB_ID : +6421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak PWM Msp DeInit Callback */ +6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; +6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : +6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak One Pulse Msp Init Callback */ +6427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; +6428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : +6431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak One Pulse Msp DeInit Callback */ +6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; +6433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPINIT_CB_ID : +6436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Encoder Msp Init Callback */ +6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; +6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : +6441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Encoder Msp DeInit Callback */ +6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; +6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : +6446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Hall Sensor Msp Init Callback */ +6447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; +6448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : +6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Hall Sensor Msp DeInit Callback */ +6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; +6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PERIOD_ELAPSED_CB_ID : +6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Period Elapsed Callback */ +6457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedCallback = HAL_TIM_PeriodElapsedCallback; +6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID : +6461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Period Elapsed half complete Callback */ +6462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedHalfCpltCallback = HAL_TIM_PeriodElapsedHalfCpltCallback; +6463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_TRIGGER_CB_ID : +6466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Trigger Callback */ +6467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerCallback = HAL_TIM_TriggerCallback; +6468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_TRIGGER_HALF_CB_ID : +6471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Trigger half complete Callback */ + ARM GAS /tmp/cc0wMqvE.s page 115 + + +6472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerHalfCpltCallback = HAL_TIM_TriggerHalfCpltCallback; +6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_CAPTURE_CB_ID : +6476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak IC Capture Callback */ +6477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback = HAL_TIM_IC_CaptureCallback; +6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_CAPTURE_HALF_CB_ID : +6481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak IC Capture half complete Callback */ +6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureHalfCpltCallback = HAL_TIM_IC_CaptureHalfCpltCallback; +6483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_DELAY_ELAPSED_CB_ID : +6486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak OC Delay Elapsed Callback */ +6487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_DelayElapsedCallback = HAL_TIM_OC_DelayElapsedCallback; +6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_PULSE_FINISHED_CB_ID : +6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak PWM Pulse Finished Callback */ +6492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback = HAL_TIM_PWM_PulseFinishedCallback; +6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID : +6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak PWM Pulse Finished half complete Callback */ +6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; +6498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ERROR_CB_ID : +6501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Error Callback */ +6502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->ErrorCallback = HAL_TIM_ErrorCallback; +6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_COMMUTATION_CB_ID : +6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Commutation Callback */ +6507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->CommutationCallback = HAL_TIMEx_CommutCallback; +6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_COMMUTATION_HALF_CB_ID : +6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Commutation half complete Callback */ +6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->CommutationHalfCpltCallback = HAL_TIMEx_CommutHalfCpltCallback; +6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BREAK_CB_ID : +6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Break Callback */ +6517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->BreakCallback = HAL_TIMEx_BreakCallback; +6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BREAK2_CB_ID : +6521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Break2 Callback */ +6522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Break2Callback = HAL_TIMEx_Break2Callback; +6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_INDEX_CB_ID : +6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Encoder Index Callback */ +6527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->EncoderIndexCallback = HAL_TIMEx_EncoderIndexCallback; +6528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + ARM GAS /tmp/cc0wMqvE.s page 116 + + +6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_DIRECTION_CHANGE_CB_ID : +6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Direction Change Callback */ +6532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->DirectionChangeCallback = HAL_TIMEx_DirectionChangeCallback; +6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_INDEX_ERROR_CB_ID : +6536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Index Error Callback */ +6537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IndexErrorCallback = HAL_TIMEx_IndexErrorCallback; +6538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_TRANSITION_ERROR_CB_ID : +6541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Transition Error Callback */ +6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TransitionErrorCallback = HAL_TIMEx_TransitionErrorCallback; +6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (htim->State == HAL_TIM_STATE_RESET) +6552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (CallbackID) +6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPINIT_CB_ID : +6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Base MspInit Callback */ +6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; +6558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_BASE_MSPDEINIT_CB_ID : +6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Base Msp DeInit Callback */ +6562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; +6563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPINIT_CB_ID : +6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak IC Msp Init Callback */ +6567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; +6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_IC_MSPDEINIT_CB_ID : +6571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak IC Msp DeInit Callback */ +6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; +6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPINIT_CB_ID : +6576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak OC Msp Init Callback */ +6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; +6578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_OC_MSPDEINIT_CB_ID : +6581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak OC Msp DeInit Callback */ +6582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; +6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPINIT_CB_ID : + ARM GAS /tmp/cc0wMqvE.s page 117 + + +6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak PWM Msp Init Callback */ +6587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; +6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_PWM_MSPDEINIT_CB_ID : +6591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak PWM Msp DeInit Callback */ +6592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; +6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : +6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak One Pulse Msp Init Callback */ +6597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; +6598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : +6601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak One Pulse Msp DeInit Callback */ +6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; +6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPINIT_CB_ID : +6606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Encoder Msp Init Callback */ +6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; +6608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : +6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Encoder Msp DeInit Callback */ +6612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; +6613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : +6616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Hall Sensor Msp Init Callback */ +6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; +6618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : +6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Legacy weak Hall Sensor Msp DeInit Callback */ +6622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; +6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default : +6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +6627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +6628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +6629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Return error status */ +6634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Release Lock */ +6638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); +6639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + ARM GAS /tmp/cc0wMqvE.s page 118 + + +6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Exported_Functions_Group10 TIM Peripheral State functions +6649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM Peripheral State functions +6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @verbatim +6652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ##### Peripheral State functions ##### +6654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ============================================================================== +6655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** [..] +6656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** This subsection permits to get in run-time the status of the peripheral +6657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** and the data flow. +6658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** @endverbatim +6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM Base handle state. +6665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Base handle +6666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL state +6667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim) +6669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; +6671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM OC handle state. +6675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Output Compare handle +6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL state +6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(TIM_HandleTypeDef *htim) +6679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; +6681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM PWM handle state. +6685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL state +6687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(TIM_HandleTypeDef *htim) +6689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; +6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM Input Capture handle state. +6695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM IC handle +6696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL state +6697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(TIM_HandleTypeDef *htim) +6699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 119 + + +6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; +6701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM One Pulse Mode handle state. +6705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM OPM handle +6706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL state +6707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(TIM_HandleTypeDef *htim) +6709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; +6711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM Encoder Mode handle state. +6715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM Encoder Interface handle +6716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval HAL state +6717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(TIM_HandleTypeDef *htim) +6719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; +6721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return the TIM Encoder Mode handle state. +6725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval Active channel +6727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(TIM_HandleTypeDef *htim) +6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->Channel; +6731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return actual state of the TIM channel. +6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel TIM Channel +6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 +6739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 +6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 +6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 +6742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 +6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 +6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval TIM Channel state +6745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(TIM_HandleTypeDef *htim, uint32_t Channel) +6747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_state; +6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +6751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); +6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); +6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return channel_state; +6756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 120 + + +6757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Return actual state of a DMA burst operation. +6760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +6761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval DMA burst state +6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(TIM_HandleTypeDef *htim) +6764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance)); +6767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->DMABurstState; +6769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +6773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @} +6777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** @defgroup TIM_Private_Functions TIM Private Functions +6780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @{ +6781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA error callback +6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_DMAError(DMA_HandleTypeDef *hdma) +6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +6793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +6796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +6798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +6800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +6801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +6803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +6805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); +6806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) +6808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +6810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); +6811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +6813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 121 + + +6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +6815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->ErrorCallback(htim); +6819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ErrorCallback(htim); +6821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +6822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Delay Pulse complete callback. +6828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma) +6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +6845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +6847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +6851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +6856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); +6860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) +6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); +6869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 122 + + +6871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* nothing to do */ +6874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +6877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedCallback(htim); +6878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +6879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); +6880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +6881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Delay Pulse half complete callback. +6887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +6888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma) +6891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +6893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +6895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +6899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +6901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +6903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +6905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) +6907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +6909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +6911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* nothing to do */ +6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PWM_PulseFinishedHalfCpltCallback(htim); +6917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedHalfCpltCallback(htim); +6919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Capture complete callback. +6926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +6927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None + ARM GAS /tmp/cc0wMqvE.s page 123 + + +6928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma) +6930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +6932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +6934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +6936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +6940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +6941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +6944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +6950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +6951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); +6960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); +6961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) +6964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +6966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma->Init.Mode == DMA_NORMAL) +6968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); +6970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); +6971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +6974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* nothing to do */ +6976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +6979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureCallback(htim); +6980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +6981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_CaptureCallback(htim); +6982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; + ARM GAS /tmp/cc0wMqvE.s page 124 + + +6985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +6988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Capture half complete callback. +6989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +6990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +6991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +6992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma) +6993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +6995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +6997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +6999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +7001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +7005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +7007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) +7009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +7011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +7013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* nothing to do */ +7015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +7018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->IC_CaptureHalfCpltCallback(htim); +7019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +7020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_IC_CaptureHalfCpltCallback(htim); +7021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +7022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Period Elapse complete callback. +7028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +7029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma) +7032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +7034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->hdma[TIM_DMA_ID_UPDATE]->Init.Mode == DMA_NORMAL) +7036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +7038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +7041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedCallback(htim); + ARM GAS /tmp/cc0wMqvE.s page 125 + + +7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +7043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PeriodElapsedCallback(htim); +7044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +7045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Period Elapse half complete callback. +7049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +7050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma) +7053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +7055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +7057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->PeriodElapsedHalfCpltCallback(htim); +7058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +7059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PeriodElapsedHalfCpltCallback(htim); +7060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +7061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Trigger callback. +7065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +7066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma) +7069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +7071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (htim->hdma[TIM_DMA_ID_TRIGGER]->Init.Mode == DMA_NORMAL) +7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->State = HAL_TIM_STATE_READY; +7075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +7078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerCallback(htim); +7079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +7080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_TriggerCallback(htim); +7081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +7082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief TIM DMA Trigger half complete callback. +7086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param hdma pointer to DMA handle. +7087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma) +7090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +7092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +7094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->TriggerHalfCpltCallback(htim); +7095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #else +7096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_TriggerHalfCpltCallback(htim); +7097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +7098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 126 + + +7099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Time Base configuration +7102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx TIM peripheral +7103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Structure TIM Base configuration structure +7104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) +7107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr1; +7109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 = TIMx->CR1; +7110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set TIM Time Base Unit parameters ---------------------------------------*/ +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) +7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Counter Mode */ +7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); +7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 |= Structure->CounterMode; +7117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) +7120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the clock division */ +7122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 &= ~TIM_CR1_CKD; +7123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 |= (uint32_t)Structure->ClockDivision; +7124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the auto-reload preload */ +7127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); +7128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR1 = tmpcr1; +7130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Autoreload value */ +7132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->ARR = (uint32_t)Structure->Period ; +7133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Prescaler value */ +7135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->PSC = Structure->Prescaler; +7136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) +7138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Repetition Counter value */ +7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->RCR = Structure->RepetitionCounter; +7141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Generate an update event to reload the Prescaler +7144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** and the repetition counter (only for advanced timer) value immediately */ +7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->EGR = TIM_EGR_UG; +7146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer Output Compare 1 configuration +7150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OC_Config The output configuration structure +7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +7155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 127 + + + 29 .loc 1 7155 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 34 .loc 1 7155 1 is_stmt 0 view .LVU1 + 35 0000 30B4 push {r4, r5} + 36 .LCFI0: + 37 .cfi_def_cfa_offset 8 + 38 .cfi_offset 4, -8 + 39 .cfi_offset 5, -4 +7156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 40 .loc 1 7156 3 is_stmt 1 view .LVU2 +7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 41 .loc 1 7157 3 view .LVU3 +7158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 42 .loc 1 7158 3 view .LVU4 +7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 1: Reset the CC1E Bit */ +7161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC1E; + 43 .loc 1 7161 3 view .LVU5 + 44 .loc 1 7161 7 is_stmt 0 view .LVU6 + 45 0002 036A ldr r3, [r0, #32] + 46 .loc 1 7161 14 view .LVU7 + 47 0004 23F00103 bic r3, r3, #1 + 48 0008 0362 str r3, [r0, #32] +7162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +7164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 49 .loc 1 7164 3 is_stmt 1 view .LVU8 + 50 .loc 1 7164 11 is_stmt 0 view .LVU9 + 51 000a 026A ldr r2, [r0, #32] + 52 .LVL1: +7165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +7166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = TIMx->CR2; + 53 .loc 1 7166 3 is_stmt 1 view .LVU10 + 54 .loc 1 7166 10 is_stmt 0 view .LVU11 + 55 000c 4468 ldr r4, [r0, #4] + 56 .LVL2: +7167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR1 register value */ +7169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx = TIMx->CCMR1; + 57 .loc 1 7169 3 is_stmt 1 view .LVU12 + 58 .loc 1 7169 12 is_stmt 0 view .LVU13 + 59 000e 8369 ldr r3, [r0, #24] + 60 .LVL3: +7170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare Mode Bits */ +7172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR1_OC1M; + 61 .loc 1 7172 3 is_stmt 1 view .LVU14 +7173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR1_CC1S; + 62 .loc 1 7173 3 view .LVU15 + 63 .loc 1 7173 12 is_stmt 0 view .LVU16 + 64 0010 23F48033 bic r3, r3, #65536 + 65 .LVL4: + 66 .loc 1 7173 12 view .LVU17 + 67 0014 23F07303 bic r3, r3, #115 + ARM GAS /tmp/cc0wMqvE.s page 128 + + + 68 .LVL5: +7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Output Compare Mode */ +7175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx |= OC_Config->OCMode; + 69 .loc 1 7175 3 is_stmt 1 view .LVU18 + 70 .loc 1 7175 24 is_stmt 0 view .LVU19 + 71 0018 0D68 ldr r5, [r1] + 72 .loc 1 7175 12 view .LVU20 + 73 001a 1D43 orrs r5, r5, r3 + 74 .LVL6: +7176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Polarity level */ +7178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC1P; + 75 .loc 1 7178 3 is_stmt 1 view .LVU21 + 76 .loc 1 7178 11 is_stmt 0 view .LVU22 + 77 001c 22F00202 bic r2, r2, #2 + 78 .LVL7: +7179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ +7180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= OC_Config->OCPolarity; + 79 .loc 1 7180 3 is_stmt 1 view .LVU23 + 80 .loc 1 7180 23 is_stmt 0 view .LVU24 + 81 0020 8B68 ldr r3, [r1, #8] + 82 .loc 1 7180 11 view .LVU25 + 83 0022 1343 orrs r3, r3, r2 + 84 .LVL8: +7181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_1)) + 85 .loc 1 7182 3 is_stmt 1 view .LVU26 + 86 .loc 1 7182 6 is_stmt 0 view .LVU27 + 87 0024 1C4A ldr r2, .L7 + 88 0026 9042 cmp r0, r2 + 89 0028 0FD0 beq .L2 + 90 .loc 1 7182 7 discriminator 1 view .LVU28 + 91 002a 02F50062 add r2, r2, #2048 + 92 002e 9042 cmp r0, r2 + 93 0030 0BD0 beq .L2 + 94 .loc 1 7182 7 discriminator 2 view .LVU29 + 95 0032 02F54062 add r2, r2, #3072 + 96 0036 9042 cmp r0, r2 + 97 0038 07D0 beq .L2 + 98 .loc 1 7182 7 discriminator 3 view .LVU30 + 99 003a 02F58062 add r2, r2, #1024 + 100 003e 9042 cmp r0, r2 + 101 0040 03D0 beq .L2 + 102 .loc 1 7182 7 discriminator 4 view .LVU31 + 103 0042 02F58062 add r2, r2, #1024 + 104 0046 9042 cmp r0, r2 + 105 0048 05D1 bne .L3 + 106 .L2: +7183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check parameters */ +7185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + 107 .loc 1 7185 5 is_stmt 1 view .LVU32 +7186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N Polarity level */ +7188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC1NP; + 108 .loc 1 7188 5 view .LVU33 + 109 .loc 1 7188 13 is_stmt 0 view .LVU34 + ARM GAS /tmp/cc0wMqvE.s page 129 + + + 110 004a 23F00803 bic r3, r3, #8 + 111 .LVL9: +7189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Polarity */ +7190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= OC_Config->OCNPolarity; + 112 .loc 1 7190 5 is_stmt 1 view .LVU35 + 113 .loc 1 7190 25 is_stmt 0 view .LVU36 + 114 004e CA68 ldr r2, [r1, #12] + 115 .loc 1 7190 13 view .LVU37 + 116 0050 1A43 orrs r2, r2, r3 + 117 .LVL10: +7191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ +7192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC1NE; + 118 .loc 1 7192 5 is_stmt 1 view .LVU38 + 119 .loc 1 7192 13 is_stmt 0 view .LVU39 + 120 0052 22F00403 bic r3, r2, #4 + 121 .LVL11: + 122 .L3: +7193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(TIMx)) + 123 .loc 1 7195 3 is_stmt 1 view .LVU40 + 124 .loc 1 7195 6 is_stmt 0 view .LVU41 + 125 0056 104A ldr r2, .L7 + 126 0058 9042 cmp r0, r2 + 127 005a 0FD0 beq .L4 + 128 .loc 1 7195 7 discriminator 1 view .LVU42 + 129 005c 02F50062 add r2, r2, #2048 + 130 0060 9042 cmp r0, r2 + 131 0062 0BD0 beq .L4 + 132 .loc 1 7195 7 discriminator 2 view .LVU43 + 133 0064 02F54062 add r2, r2, #3072 + 134 0068 9042 cmp r0, r2 + 135 006a 07D0 beq .L4 + 136 .loc 1 7195 7 discriminator 3 view .LVU44 + 137 006c 02F58062 add r2, r2, #1024 + 138 0070 9042 cmp r0, r2 + 139 0072 03D0 beq .L4 + 140 .loc 1 7195 7 discriminator 4 view .LVU45 + 141 0074 02F58062 add r2, r2, #1024 + 142 0078 9042 cmp r0, r2 + 143 007a 05D1 bne .L5 + 144 .L4: +7196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check parameters */ +7198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + 145 .loc 1 7198 5 is_stmt 1 view .LVU46 +7199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + 146 .loc 1 7199 5 view .LVU47 +7200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare and Output Compare N IDLE State */ +7202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS1; + 147 .loc 1 7202 5 view .LVU48 + 148 .LVL12: +7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS1N; + 149 .loc 1 7203 5 view .LVU49 + 150 .loc 1 7203 12 is_stmt 0 view .LVU50 + 151 007c 24F44074 bic r4, r4, #768 + ARM GAS /tmp/cc0wMqvE.s page 130 + + + 152 .LVL13: +7204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ +7205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= OC_Config->OCIdleState; + 153 .loc 1 7205 5 is_stmt 1 view .LVU51 + 154 .loc 1 7205 24 is_stmt 0 view .LVU52 + 155 0080 4A69 ldr r2, [r1, #20] + 156 .loc 1 7205 12 view .LVU53 + 157 0082 2243 orrs r2, r2, r4 + 158 .LVL14: +7206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ +7207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= OC_Config->OCNIdleState; + 159 .loc 1 7207 5 is_stmt 1 view .LVU54 + 160 .loc 1 7207 24 is_stmt 0 view .LVU55 + 161 0084 8C69 ldr r4, [r1, #24] + 162 .loc 1 7207 12 view .LVU56 + 163 0086 1443 orrs r4, r4, r2 + 164 .LVL15: + 165 .L5: +7208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CR2 */ +7211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR2 = tmpcr2; + 166 .loc 1 7211 3 is_stmt 1 view .LVU57 + 167 .loc 1 7211 13 is_stmt 0 view .LVU58 + 168 0088 4460 str r4, [r0, #4] +7212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 */ +7214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR1 = tmpccmrx; + 169 .loc 1 7214 3 is_stmt 1 view .LVU59 + 170 .loc 1 7214 15 is_stmt 0 view .LVU60 + 171 008a 8561 str r5, [r0, #24] +7215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare Register value */ +7217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCR1 = OC_Config->Pulse; + 172 .loc 1 7217 3 is_stmt 1 view .LVU61 + 173 .loc 1 7217 25 is_stmt 0 view .LVU62 + 174 008c 4A68 ldr r2, [r1, #4] + 175 .loc 1 7217 14 view .LVU63 + 176 008e 4263 str r2, [r0, #52] +7218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +7220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 177 .loc 1 7220 3 is_stmt 1 view .LVU64 + 178 .loc 1 7220 14 is_stmt 0 view .LVU65 + 179 0090 0362 str r3, [r0, #32] +7221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 180 .loc 1 7221 1 view .LVU66 + 181 0092 30BC pop {r4, r5} + 182 .LCFI1: + 183 .cfi_restore 5 + 184 .cfi_restore 4 + 185 .cfi_def_cfa_offset 0 + 186 .LVL16: + 187 .loc 1 7221 1 view .LVU67 + 188 0094 7047 bx lr + 189 .L8: + 190 0096 00BF .align 2 + ARM GAS /tmp/cc0wMqvE.s page 131 + + + 191 .L7: + 192 0098 002C0140 .word 1073818624 + 193 .cfi_endproc + 194 .LFE434: + 196 .section .text.TIM_OC3_SetConfig,"ax",%progbits + 197 .align 1 + 198 .syntax unified + 199 .thumb + 200 .thumb_func + 202 TIM_OC3_SetConfig: + 203 .LVL17: + 204 .LFB436: +7222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer Output Compare 2 configuration +7225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OC_Config The output configuration structure +7227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +7230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; +7232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; +7233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; +7234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 2: Reset the CC2E Bit */ +7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC2E; +7237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; +7240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +7241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = TIMx->CR2; +7242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR1 register value */ +7244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx = TIMx->CCMR1; +7245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare mode and Capture/Compare selection Bits */ +7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR1_OC2M; +7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR1_CC2S; +7249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Output Compare Mode */ +7251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx |= (OC_Config->OCMode << 8U); +7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Polarity level */ +7254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC2P; +7255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ +7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCPolarity << 4U); +7257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2)) +7259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); +7261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N Polarity level */ +7263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC2NP; +7264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Polarity */ +7265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCNPolarity << 4U); +7266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ + ARM GAS /tmp/cc0wMqvE.s page 132 + + +7267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC2NE; +7268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(TIMx)) +7272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check parameters */ +7274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); +7275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); +7276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare and Output Compare N IDLE State */ +7278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS2; +7279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS2N; +7280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ +7281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCIdleState << 2U); +7282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ +7283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCNIdleState << 2U); +7284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CR2 */ +7287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR2 = tmpcr2; +7288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 */ +7290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR1 = tmpccmrx; +7291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare Register value */ +7293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCR2 = OC_Config->Pulse; +7294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +7296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; +7297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer Output Compare 3 configuration +7301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OC_Config The output configuration structure +7303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +7306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 205 .loc 1 7306 1 is_stmt 1 view -0 + 206 .cfi_startproc + 207 @ args = 0, pretend = 0, frame = 0 + 208 @ frame_needed = 0, uses_anonymous_args = 0 + 209 @ link register save eliminated. + 210 .loc 1 7306 1 is_stmt 0 view .LVU69 + 211 0000 30B4 push {r4, r5} + 212 .LCFI2: + 213 .cfi_def_cfa_offset 8 + 214 .cfi_offset 4, -8 + 215 .cfi_offset 5, -4 +7307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 216 .loc 1 7307 3 is_stmt 1 view .LVU70 +7308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 217 .loc 1 7308 3 view .LVU71 +7309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 218 .loc 1 7309 3 view .LVU72 + ARM GAS /tmp/cc0wMqvE.s page 133 + + +7310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 3: Reset the CC2E Bit */ +7312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC3E; + 219 .loc 1 7312 3 view .LVU73 + 220 .loc 1 7312 7 is_stmt 0 view .LVU74 + 221 0002 036A ldr r3, [r0, #32] + 222 .loc 1 7312 14 view .LVU75 + 223 0004 23F48073 bic r3, r3, #256 + 224 0008 0362 str r3, [r0, #32] +7313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +7315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 225 .loc 1 7315 3 is_stmt 1 view .LVU76 + 226 .loc 1 7315 11 is_stmt 0 view .LVU77 + 227 000a 036A ldr r3, [r0, #32] + 228 .LVL18: +7316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +7317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = TIMx->CR2; + 229 .loc 1 7317 3 is_stmt 1 view .LVU78 + 230 .loc 1 7317 10 is_stmt 0 view .LVU79 + 231 000c 4468 ldr r4, [r0, #4] + 232 .LVL19: +7318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR2 register value */ +7320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx = TIMx->CCMR2; + 233 .loc 1 7320 3 is_stmt 1 view .LVU80 + 234 .loc 1 7320 12 is_stmt 0 view .LVU81 + 235 000e C269 ldr r2, [r0, #28] + 236 .LVL20: +7321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare mode and Capture/Compare selection Bits */ +7323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR2_OC3M; + 237 .loc 1 7323 3 is_stmt 1 view .LVU82 +7324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR2_CC3S; + 238 .loc 1 7324 3 view .LVU83 + 239 .loc 1 7324 12 is_stmt 0 view .LVU84 + 240 0010 22F48032 bic r2, r2, #65536 + 241 .LVL21: + 242 .loc 1 7324 12 view .LVU85 + 243 0014 22F07302 bic r2, r2, #115 + 244 .LVL22: +7325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Output Compare Mode */ +7326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx |= OC_Config->OCMode; + 245 .loc 1 7326 3 is_stmt 1 view .LVU86 + 246 .loc 1 7326 24 is_stmt 0 view .LVU87 + 247 0018 0D68 ldr r5, [r1] + 248 .loc 1 7326 12 view .LVU88 + 249 001a 1543 orrs r5, r5, r2 + 250 .LVL23: +7327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Polarity level */ +7329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC3P; + 251 .loc 1 7329 3 is_stmt 1 view .LVU89 + 252 .loc 1 7329 11 is_stmt 0 view .LVU90 + 253 001c 23F40073 bic r3, r3, #512 + 254 .LVL24: +7330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ + ARM GAS /tmp/cc0wMqvE.s page 134 + + +7331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCPolarity << 8U); + 255 .loc 1 7331 3 is_stmt 1 view .LVU91 + 256 .loc 1 7331 24 is_stmt 0 view .LVU92 + 257 0020 8A68 ldr r2, [r1, #8] + 258 .loc 1 7331 11 view .LVU93 + 259 0022 43EA0223 orr r3, r3, r2, lsl #8 + 260 .LVL25: +7332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3)) + 261 .loc 1 7333 3 is_stmt 1 view .LVU94 + 262 .loc 1 7333 6 is_stmt 0 view .LVU95 + 263 0026 184A ldr r2, .L15 + 264 0028 9042 cmp r0, r2 + 265 002a 03D0 beq .L10 + 266 .loc 1 7333 7 discriminator 1 view .LVU96 + 267 002c 02F50062 add r2, r2, #2048 + 268 0030 9042 cmp r0, r2 + 269 0032 06D1 bne .L11 + 270 .L10: +7334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + 271 .loc 1 7335 5 is_stmt 1 view .LVU97 +7336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N Polarity level */ +7338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC3NP; + 272 .loc 1 7338 5 view .LVU98 + 273 .loc 1 7338 13 is_stmt 0 view .LVU99 + 274 0034 23F40063 bic r3, r3, #2048 + 275 .LVL26: +7339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Polarity */ +7340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCNPolarity << 8U); + 276 .loc 1 7340 5 is_stmt 1 view .LVU100 + 277 .loc 1 7340 26 is_stmt 0 view .LVU101 + 278 0038 CA68 ldr r2, [r1, #12] + 279 .loc 1 7340 13 view .LVU102 + 280 003a 43EA0223 orr r3, r3, r2, lsl #8 + 281 .LVL27: +7341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ +7342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC3NE; + 282 .loc 1 7342 5 is_stmt 1 view .LVU103 + 283 .loc 1 7342 13 is_stmt 0 view .LVU104 + 284 003e 23F48063 bic r3, r3, #1024 + 285 .LVL28: + 286 .L11: +7343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(TIMx)) + 287 .loc 1 7345 3 is_stmt 1 view .LVU105 + 288 .loc 1 7345 6 is_stmt 0 view .LVU106 + 289 0042 114A ldr r2, .L15 + 290 0044 9042 cmp r0, r2 + 291 0046 0FD0 beq .L12 + 292 .loc 1 7345 7 discriminator 1 view .LVU107 + 293 0048 02F50062 add r2, r2, #2048 + 294 004c 9042 cmp r0, r2 + 295 004e 0BD0 beq .L12 + 296 .loc 1 7345 7 discriminator 2 view .LVU108 + ARM GAS /tmp/cc0wMqvE.s page 135 + + + 297 0050 02F54062 add r2, r2, #3072 + 298 0054 9042 cmp r0, r2 + 299 0056 07D0 beq .L12 + 300 .loc 1 7345 7 discriminator 3 view .LVU109 + 301 0058 02F58062 add r2, r2, #1024 + 302 005c 9042 cmp r0, r2 + 303 005e 03D0 beq .L12 + 304 .loc 1 7345 7 discriminator 4 view .LVU110 + 305 0060 02F58062 add r2, r2, #1024 + 306 0064 9042 cmp r0, r2 + 307 0066 07D1 bne .L13 + 308 .L12: +7346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check parameters */ +7348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + 309 .loc 1 7348 5 is_stmt 1 view .LVU111 +7349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + 310 .loc 1 7349 5 view .LVU112 +7350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare and Output Compare N IDLE State */ +7352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS3; + 311 .loc 1 7352 5 view .LVU113 + 312 .LVL29: +7353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS3N; + 313 .loc 1 7353 5 view .LVU114 + 314 .loc 1 7353 12 is_stmt 0 view .LVU115 + 315 0068 24F44052 bic r2, r4, #12288 + 316 .LVL30: +7354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ +7355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCIdleState << 4U); + 317 .loc 1 7355 5 is_stmt 1 view .LVU116 + 318 .loc 1 7355 25 is_stmt 0 view .LVU117 + 319 006c 4C69 ldr r4, [r1, #20] + 320 .loc 1 7355 12 view .LVU118 + 321 006e 42EA0412 orr r2, r2, r4, lsl #4 + 322 .LVL31: +7356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ +7357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCNIdleState << 4U); + 323 .loc 1 7357 5 is_stmt 1 view .LVU119 + 324 .loc 1 7357 25 is_stmt 0 view .LVU120 + 325 0072 8C69 ldr r4, [r1, #24] + 326 .loc 1 7357 12 view .LVU121 + 327 0074 42EA0414 orr r4, r2, r4, lsl #4 + 328 .LVL32: + 329 .L13: +7358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CR2 */ +7361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR2 = tmpcr2; + 330 .loc 1 7361 3 is_stmt 1 view .LVU122 + 331 .loc 1 7361 13 is_stmt 0 view .LVU123 + 332 0078 4460 str r4, [r0, #4] +7362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR2 */ +7364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR2 = tmpccmrx; + 333 .loc 1 7364 3 is_stmt 1 view .LVU124 + 334 .loc 1 7364 15 is_stmt 0 view .LVU125 + ARM GAS /tmp/cc0wMqvE.s page 136 + + + 335 007a C561 str r5, [r0, #28] +7365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare Register value */ +7367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCR3 = OC_Config->Pulse; + 336 .loc 1 7367 3 is_stmt 1 view .LVU126 + 337 .loc 1 7367 25 is_stmt 0 view .LVU127 + 338 007c 4A68 ldr r2, [r1, #4] + 339 .loc 1 7367 14 view .LVU128 + 340 007e C263 str r2, [r0, #60] +7368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +7370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 341 .loc 1 7370 3 is_stmt 1 view .LVU129 + 342 .loc 1 7370 14 is_stmt 0 view .LVU130 + 343 0080 0362 str r3, [r0, #32] +7371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 344 .loc 1 7371 1 view .LVU131 + 345 0082 30BC pop {r4, r5} + 346 .LCFI3: + 347 .cfi_restore 5 + 348 .cfi_restore 4 + 349 .cfi_def_cfa_offset 0 + 350 .LVL33: + 351 .loc 1 7371 1 view .LVU132 + 352 0084 7047 bx lr + 353 .L16: + 354 0086 00BF .align 2 + 355 .L15: + 356 0088 002C0140 .word 1073818624 + 357 .cfi_endproc + 358 .LFE436: + 360 .section .text.TIM_OC4_SetConfig,"ax",%progbits + 361 .align 1 + 362 .syntax unified + 363 .thumb + 364 .thumb_func + 366 TIM_OC4_SetConfig: + 367 .LVL34: + 368 .LFB437: +7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer Output Compare 4 configuration +7375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OC_Config The output configuration structure +7377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +7380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 369 .loc 1 7380 1 is_stmt 1 view -0 + 370 .cfi_startproc + 371 @ args = 0, pretend = 0, frame = 0 + 372 @ frame_needed = 0, uses_anonymous_args = 0 + 373 @ link register save eliminated. + 374 .loc 1 7380 1 is_stmt 0 view .LVU134 + 375 0000 30B4 push {r4, r5} + 376 .LCFI4: + 377 .cfi_def_cfa_offset 8 + ARM GAS /tmp/cc0wMqvE.s page 137 + + + 378 .cfi_offset 4, -8 + 379 .cfi_offset 5, -4 +7381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 380 .loc 1 7381 3 is_stmt 1 view .LVU135 +7382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 381 .loc 1 7382 3 view .LVU136 +7383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 382 .loc 1 7383 3 view .LVU137 +7384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 4: Reset the CC4E Bit */ +7386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC4E; + 383 .loc 1 7386 3 view .LVU138 + 384 .loc 1 7386 7 is_stmt 0 view .LVU139 + 385 0002 036A ldr r3, [r0, #32] + 386 .loc 1 7386 14 view .LVU140 + 387 0004 23F48053 bic r3, r3, #4096 + 388 0008 0362 str r3, [r0, #32] +7387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +7389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 389 .loc 1 7389 3 is_stmt 1 view .LVU141 + 390 .loc 1 7389 11 is_stmt 0 view .LVU142 + 391 000a 036A ldr r3, [r0, #32] + 392 .LVL35: +7390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +7391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = TIMx->CR2; + 393 .loc 1 7391 3 is_stmt 1 view .LVU143 + 394 .loc 1 7391 10 is_stmt 0 view .LVU144 + 395 000c 4468 ldr r4, [r0, #4] + 396 .LVL36: +7392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR2 register value */ +7394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx = TIMx->CCMR2; + 397 .loc 1 7394 3 is_stmt 1 view .LVU145 + 398 .loc 1 7394 12 is_stmt 0 view .LVU146 + 399 000e C269 ldr r2, [r0, #28] + 400 .LVL37: +7395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare mode and Capture/Compare selection Bits */ +7397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR2_OC4M; + 401 .loc 1 7397 3 is_stmt 1 view .LVU147 +7398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR2_CC4S; + 402 .loc 1 7398 3 view .LVU148 + 403 .loc 1 7398 12 is_stmt 0 view .LVU149 + 404 0010 22F08072 bic r2, r2, #16777216 + 405 .LVL38: + 406 .loc 1 7398 12 view .LVU150 + 407 0014 22F4E642 bic r2, r2, #29440 + 408 .LVL39: +7399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Output Compare Mode */ +7401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx |= (OC_Config->OCMode << 8U); + 409 .loc 1 7401 3 is_stmt 1 view .LVU151 + 410 .loc 1 7401 25 is_stmt 0 view .LVU152 + 411 0018 0D68 ldr r5, [r1] + 412 .loc 1 7401 12 view .LVU153 + 413 001a 42EA0522 orr r2, r2, r5, lsl #8 + ARM GAS /tmp/cc0wMqvE.s page 138 + + + 414 .LVL40: +7402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Polarity level */ +7404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC4P; + 415 .loc 1 7404 3 is_stmt 1 view .LVU154 + 416 .loc 1 7404 11 is_stmt 0 view .LVU155 + 417 001e 23F40053 bic r3, r3, #8192 + 418 .LVL41: +7405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ +7406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCPolarity << 12U); + 419 .loc 1 7406 3 is_stmt 1 view .LVU156 + 420 .loc 1 7406 24 is_stmt 0 view .LVU157 + 421 0022 8D68 ldr r5, [r1, #8] + 422 .loc 1 7406 11 view .LVU158 + 423 0024 43EA0533 orr r3, r3, r5, lsl #12 + 424 .LVL42: +7407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_4)) + 425 .loc 1 7408 3 is_stmt 1 view .LVU159 + 426 .loc 1 7408 6 is_stmt 0 view .LVU160 + 427 0028 174D ldr r5, .L23 + 428 002a A842 cmp r0, r5 + 429 002c 03D0 beq .L18 + 430 .loc 1 7408 7 discriminator 1 view .LVU161 + 431 002e 05F50065 add r5, r5, #2048 + 432 0032 A842 cmp r0, r5 + 433 0034 06D1 bne .L19 + 434 .L18: +7409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + 435 .loc 1 7410 5 is_stmt 1 view .LVU162 +7411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N Polarity level */ +7413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC4NP; + 436 .loc 1 7413 5 view .LVU163 + 437 .loc 1 7413 13 is_stmt 0 view .LVU164 + 438 0036 23F40043 bic r3, r3, #32768 + 439 .LVL43: +7414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Polarity */ +7415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCNPolarity << 12U); + 440 .loc 1 7415 5 is_stmt 1 view .LVU165 + 441 .loc 1 7415 26 is_stmt 0 view .LVU166 + 442 003a CD68 ldr r5, [r1, #12] + 443 .loc 1 7415 13 view .LVU167 + 444 003c 43EA0533 orr r3, r3, r5, lsl #12 + 445 .LVL44: +7416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ +7417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC4NE; + 446 .loc 1 7417 5 is_stmt 1 view .LVU168 + 447 .loc 1 7417 13 is_stmt 0 view .LVU169 + 448 0040 23F48043 bic r3, r3, #16384 + 449 .LVL45: + 450 .L19: +7418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(TIMx)) + 451 .loc 1 7420 3 is_stmt 1 view .LVU170 + ARM GAS /tmp/cc0wMqvE.s page 139 + + + 452 .loc 1 7420 6 is_stmt 0 view .LVU171 + 453 0044 104D ldr r5, .L23 + 454 0046 A842 cmp r0, r5 + 455 0048 0FD0 beq .L20 + 456 .loc 1 7420 7 discriminator 1 view .LVU172 + 457 004a 05F50065 add r5, r5, #2048 + 458 004e A842 cmp r0, r5 + 459 0050 0BD0 beq .L20 + 460 .loc 1 7420 7 discriminator 2 view .LVU173 + 461 0052 05F54065 add r5, r5, #3072 + 462 0056 A842 cmp r0, r5 + 463 0058 07D0 beq .L20 + 464 .loc 1 7420 7 discriminator 3 view .LVU174 + 465 005a 05F58065 add r5, r5, #1024 + 466 005e A842 cmp r0, r5 + 467 0060 03D0 beq .L20 + 468 .loc 1 7420 7 discriminator 4 view .LVU175 + 469 0062 05F58065 add r5, r5, #1024 + 470 0066 A842 cmp r0, r5 + 471 0068 07D1 bne .L21 + 472 .L20: +7421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check parameters */ +7423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + 473 .loc 1 7423 5 is_stmt 1 view .LVU176 +7424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + 474 .loc 1 7424 5 view .LVU177 +7425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare IDLE State */ +7427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS4; + 475 .loc 1 7427 5 view .LVU178 + 476 .LVL46: +7428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare N IDLE State */ +7429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS4N; + 477 .loc 1 7429 5 view .LVU179 + 478 .loc 1 7429 12 is_stmt 0 view .LVU180 + 479 006a 24F4404C bic ip, r4, #49152 + 480 .LVL47: +7430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ +7432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCIdleState << 6U); + 481 .loc 1 7432 5 is_stmt 1 view .LVU181 + 482 .loc 1 7432 25 is_stmt 0 view .LVU182 + 483 006e 4C69 ldr r4, [r1, #20] + 484 .loc 1 7432 12 view .LVU183 + 485 0070 4CEA841C orr ip, ip, r4, lsl #6 + 486 .LVL48: +7433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ +7434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCNIdleState << 6U); + 487 .loc 1 7434 5 is_stmt 1 view .LVU184 + 488 .loc 1 7434 25 is_stmt 0 view .LVU185 + 489 0074 8C69 ldr r4, [r1, #24] + 490 .loc 1 7434 12 view .LVU186 + 491 0076 4CEA8414 orr r4, ip, r4, lsl #6 + 492 .LVL49: + 493 .L21: +7435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 140 + + +7436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CR2 */ +7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR2 = tmpcr2; + 494 .loc 1 7438 3 is_stmt 1 view .LVU187 + 495 .loc 1 7438 13 is_stmt 0 view .LVU188 + 496 007a 4460 str r4, [r0, #4] +7439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR2 */ +7441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR2 = tmpccmrx; + 497 .loc 1 7441 3 is_stmt 1 view .LVU189 + 498 .loc 1 7441 15 is_stmt 0 view .LVU190 + 499 007c C261 str r2, [r0, #28] +7442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare Register value */ +7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCR4 = OC_Config->Pulse; + 500 .loc 1 7444 3 is_stmt 1 view .LVU191 + 501 .loc 1 7444 25 is_stmt 0 view .LVU192 + 502 007e 4A68 ldr r2, [r1, #4] + 503 .LVL50: + 504 .loc 1 7444 14 view .LVU193 + 505 0080 0264 str r2, [r0, #64] + 506 .LVL51: +7445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +7447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 507 .loc 1 7447 3 is_stmt 1 view .LVU194 + 508 .loc 1 7447 14 is_stmt 0 view .LVU195 + 509 0082 0362 str r3, [r0, #32] +7448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 510 .loc 1 7448 1 view .LVU196 + 511 0084 30BC pop {r4, r5} + 512 .LCFI5: + 513 .cfi_restore 5 + 514 .cfi_restore 4 + 515 .cfi_def_cfa_offset 0 + 516 .LVL52: + 517 .loc 1 7448 1 view .LVU197 + 518 0086 7047 bx lr + 519 .L24: + 520 .align 2 + 521 .L23: + 522 0088 002C0140 .word 1073818624 + 523 .cfi_endproc + 524 .LFE437: + 526 .section .text.TIM_OC5_SetConfig,"ax",%progbits + 527 .align 1 + 528 .syntax unified + 529 .thumb + 530 .thumb_func + 532 TIM_OC5_SetConfig: + 533 .LVL53: + 534 .LFB438: +7449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer Output Compare 5 configuration +7452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OC_Config The output configuration structure + ARM GAS /tmp/cc0wMqvE.s page 141 + + +7454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, +7457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC_InitTypeDef *OC_Config) +7458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 535 .loc 1 7458 1 is_stmt 1 view -0 + 536 .cfi_startproc + 537 @ args = 0, pretend = 0, frame = 0 + 538 @ frame_needed = 0, uses_anonymous_args = 0 + 539 @ link register save eliminated. + 540 .loc 1 7458 1 is_stmt 0 view .LVU199 + 541 0000 30B4 push {r4, r5} + 542 .LCFI6: + 543 .cfi_def_cfa_offset 8 + 544 .cfi_offset 4, -8 + 545 .cfi_offset 5, -4 +7459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 546 .loc 1 7459 3 is_stmt 1 view .LVU200 +7460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 547 .loc 1 7460 3 view .LVU201 +7461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 548 .loc 1 7461 3 view .LVU202 +7462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the output: Reset the CCxE Bit */ +7464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC5E; + 549 .loc 1 7464 3 view .LVU203 + 550 .loc 1 7464 7 is_stmt 0 view .LVU204 + 551 0002 036A ldr r3, [r0, #32] + 552 .loc 1 7464 14 view .LVU205 + 553 0004 23F48033 bic r3, r3, #65536 + 554 0008 0362 str r3, [r0, #32] +7465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +7467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 555 .loc 1 7467 3 is_stmt 1 view .LVU206 + 556 .loc 1 7467 11 is_stmt 0 view .LVU207 + 557 000a 036A ldr r3, [r0, #32] + 558 .LVL54: +7468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +7469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = TIMx->CR2; + 559 .loc 1 7469 3 is_stmt 1 view .LVU208 + 560 .loc 1 7469 10 is_stmt 0 view .LVU209 + 561 000c 4468 ldr r4, [r0, #4] + 562 .LVL55: +7470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR1 register value */ +7471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx = TIMx->CCMR3; + 563 .loc 1 7471 3 is_stmt 1 view .LVU210 + 564 .loc 1 7471 12 is_stmt 0 view .LVU211 + 565 000e 026D ldr r2, [r0, #80] + 566 .LVL56: +7472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare Mode Bits */ +7474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~(TIM_CCMR3_OC5M); + 567 .loc 1 7474 3 is_stmt 1 view .LVU212 + 568 .loc 1 7474 12 is_stmt 0 view .LVU213 + 569 0010 22F48032 bic r2, r2, #65536 + 570 .LVL57: + ARM GAS /tmp/cc0wMqvE.s page 142 + + + 571 .loc 1 7474 12 view .LVU214 + 572 0014 22F07002 bic r2, r2, #112 + 573 .LVL58: +7475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Output Compare Mode */ +7476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx |= OC_Config->OCMode; + 574 .loc 1 7476 3 is_stmt 1 view .LVU215 + 575 .loc 1 7476 24 is_stmt 0 view .LVU216 + 576 0018 0D68 ldr r5, [r1] + 577 .loc 1 7476 12 view .LVU217 + 578 001a 1543 orrs r5, r5, r2 + 579 .LVL59: +7477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Polarity level */ +7479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~TIM_CCER_CC5P; + 580 .loc 1 7479 3 is_stmt 1 view .LVU218 + 581 .loc 1 7479 11 is_stmt 0 view .LVU219 + 582 001c 23F40033 bic r3, r3, #131072 + 583 .LVL60: +7480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ +7481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCPolarity << 16U); + 584 .loc 1 7481 3 is_stmt 1 view .LVU220 + 585 .loc 1 7481 24 is_stmt 0 view .LVU221 + 586 0020 8A68 ldr r2, [r1, #8] + 587 .loc 1 7481 11 view .LVU222 + 588 0022 43EA0243 orr r3, r3, r2, lsl #16 + 589 .LVL61: +7482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(TIMx)) + 590 .loc 1 7483 3 is_stmt 1 view .LVU223 + 591 .loc 1 7483 6 is_stmt 0 view .LVU224 + 592 0026 0F4A ldr r2, .L29 + 593 0028 9042 cmp r0, r2 + 594 002a 0FD0 beq .L26 + 595 .loc 1 7483 7 discriminator 1 view .LVU225 + 596 002c 02F50062 add r2, r2, #2048 + 597 0030 9042 cmp r0, r2 + 598 0032 0BD0 beq .L26 + 599 .loc 1 7483 7 discriminator 2 view .LVU226 + 600 0034 02F54062 add r2, r2, #3072 + 601 0038 9042 cmp r0, r2 + 602 003a 07D0 beq .L26 + 603 .loc 1 7483 7 discriminator 3 view .LVU227 + 604 003c 02F58062 add r2, r2, #1024 + 605 0040 9042 cmp r0, r2 + 606 0042 03D0 beq .L26 + 607 .loc 1 7483 7 discriminator 4 view .LVU228 + 608 0044 02F58062 add r2, r2, #1024 + 609 0048 9042 cmp r0, r2 + 610 004a 04D1 bne .L27 + 611 .L26: +7484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare IDLE State */ +7486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS5; + 612 .loc 1 7486 5 is_stmt 1 view .LVU229 + 613 .loc 1 7486 12 is_stmt 0 view .LVU230 + 614 004c 24F48034 bic r4, r4, #65536 + 615 .LVL62: + ARM GAS /tmp/cc0wMqvE.s page 143 + + +7487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ +7488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCIdleState << 8U); + 616 .loc 1 7488 5 is_stmt 1 view .LVU231 + 617 .loc 1 7488 25 is_stmt 0 view .LVU232 + 618 0050 4A69 ldr r2, [r1, #20] + 619 .loc 1 7488 12 view .LVU233 + 620 0052 44EA0224 orr r4, r4, r2, lsl #8 + 621 .LVL63: + 622 .L27: +7489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CR2 */ +7491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR2 = tmpcr2; + 623 .loc 1 7491 3 is_stmt 1 view .LVU234 + 624 .loc 1 7491 13 is_stmt 0 view .LVU235 + 625 0056 4460 str r4, [r0, #4] +7492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR3 */ +7494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR3 = tmpccmrx; + 626 .loc 1 7494 3 is_stmt 1 view .LVU236 + 627 .loc 1 7494 15 is_stmt 0 view .LVU237 + 628 0058 0565 str r5, [r0, #80] +7495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare Register value */ +7497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCR5 = OC_Config->Pulse; + 629 .loc 1 7497 3 is_stmt 1 view .LVU238 + 630 .loc 1 7497 25 is_stmt 0 view .LVU239 + 631 005a 4A68 ldr r2, [r1, #4] + 632 .loc 1 7497 14 view .LVU240 + 633 005c 8264 str r2, [r0, #72] +7498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +7500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 634 .loc 1 7500 3 is_stmt 1 view .LVU241 + 635 .loc 1 7500 14 is_stmt 0 view .LVU242 + 636 005e 0362 str r3, [r0, #32] +7501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 637 .loc 1 7501 1 view .LVU243 + 638 0060 30BC pop {r4, r5} + 639 .LCFI7: + 640 .cfi_restore 5 + 641 .cfi_restore 4 + 642 .cfi_def_cfa_offset 0 + 643 .LVL64: + 644 .loc 1 7501 1 view .LVU244 + 645 0062 7047 bx lr + 646 .L30: + 647 .align 2 + 648 .L29: + 649 0064 002C0140 .word 1073818624 + 650 .cfi_endproc + 651 .LFE438: + 653 .section .text.TIM_OC6_SetConfig,"ax",%progbits + 654 .align 1 + 655 .syntax unified + 656 .thumb + 657 .thumb_func + 659 TIM_OC6_SetConfig: + ARM GAS /tmp/cc0wMqvE.s page 144 + + + 660 .LVL65: + 661 .LFB439: +7502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Timer Output Compare 6 configuration +7505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param OC_Config The output configuration structure +7507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, +7510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC_InitTypeDef *OC_Config) +7511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 662 .loc 1 7511 1 is_stmt 1 view -0 + 663 .cfi_startproc + 664 @ args = 0, pretend = 0, frame = 0 + 665 @ frame_needed = 0, uses_anonymous_args = 0 + 666 @ link register save eliminated. + 667 .loc 1 7511 1 is_stmt 0 view .LVU246 + 668 0000 30B4 push {r4, r5} + 669 .LCFI8: + 670 .cfi_def_cfa_offset 8 + 671 .cfi_offset 4, -8 + 672 .cfi_offset 5, -4 +7512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 673 .loc 1 7512 3 is_stmt 1 view .LVU247 +7513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 674 .loc 1 7513 3 view .LVU248 +7514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 675 .loc 1 7514 3 view .LVU249 +7515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the output: Reset the CCxE Bit */ +7517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC6E; + 676 .loc 1 7517 3 view .LVU250 + 677 .loc 1 7517 7 is_stmt 0 view .LVU251 + 678 0002 036A ldr r3, [r0, #32] + 679 .loc 1 7517 14 view .LVU252 + 680 0004 23F48013 bic r3, r3, #1048576 + 681 0008 0362 str r3, [r0, #32] +7518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCER register value */ +7520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 682 .loc 1 7520 3 is_stmt 1 view .LVU253 + 683 .loc 1 7520 11 is_stmt 0 view .LVU254 + 684 000a 036A ldr r3, [r0, #32] + 685 .LVL66: +7521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ +7522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 = TIMx->CR2; + 686 .loc 1 7522 3 is_stmt 1 view .LVU255 + 687 .loc 1 7522 10 is_stmt 0 view .LVU256 + 688 000c 4468 ldr r4, [r0, #4] + 689 .LVL67: +7523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CCMR1 register value */ +7524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx = TIMx->CCMR3; + 690 .loc 1 7524 3 is_stmt 1 view .LVU257 + 691 .loc 1 7524 12 is_stmt 0 view .LVU258 + 692 000e 026D ldr r2, [r0, #80] + 693 .LVL68: + ARM GAS /tmp/cc0wMqvE.s page 145 + + +7525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare Mode Bits */ +7527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~(TIM_CCMR3_OC6M); + 694 .loc 1 7527 3 is_stmt 1 view .LVU259 + 695 .loc 1 7527 12 is_stmt 0 view .LVU260 + 696 0010 22F08072 bic r2, r2, #16777216 + 697 .LVL69: + 698 .loc 1 7527 12 view .LVU261 + 699 0014 22F4E042 bic r2, r2, #28672 + 700 .LVL70: +7528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Output Compare Mode */ +7529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx |= (OC_Config->OCMode << 8U); + 701 .loc 1 7529 3 is_stmt 1 view .LVU262 + 702 .loc 1 7529 25 is_stmt 0 view .LVU263 + 703 0018 0D68 ldr r5, [r1] + 704 .loc 1 7529 12 view .LVU264 + 705 001a 42EA0522 orr r2, r2, r5, lsl #8 + 706 .LVL71: +7530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Polarity level */ +7532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= (uint32_t)~TIM_CCER_CC6P; + 707 .loc 1 7532 3 is_stmt 1 view .LVU265 + 708 .loc 1 7532 11 is_stmt 0 view .LVU266 + 709 001e 23F40013 bic r3, r3, #2097152 + 710 .LVL72: +7533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ +7534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (OC_Config->OCPolarity << 20U); + 711 .loc 1 7534 3 is_stmt 1 view .LVU267 + 712 .loc 1 7534 24 is_stmt 0 view .LVU268 + 713 0022 8D68 ldr r5, [r1, #8] + 714 .loc 1 7534 11 view .LVU269 + 715 0024 43EA0553 orr r3, r3, r5, lsl #20 + 716 .LVL73: +7535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_BREAK_INSTANCE(TIMx)) + 717 .loc 1 7536 3 is_stmt 1 view .LVU270 + 718 .loc 1 7536 6 is_stmt 0 view .LVU271 + 719 0028 0F4D ldr r5, .L35 + 720 002a A842 cmp r0, r5 + 721 002c 0FD0 beq .L32 + 722 .loc 1 7536 7 discriminator 1 view .LVU272 + 723 002e 05F50065 add r5, r5, #2048 + 724 0032 A842 cmp r0, r5 + 725 0034 0BD0 beq .L32 + 726 .loc 1 7536 7 discriminator 2 view .LVU273 + 727 0036 05F54065 add r5, r5, #3072 + 728 003a A842 cmp r0, r5 + 729 003c 07D0 beq .L32 + 730 .loc 1 7536 7 discriminator 3 view .LVU274 + 731 003e 05F58065 add r5, r5, #1024 + 732 0042 A842 cmp r0, r5 + 733 0044 03D0 beq .L32 + 734 .loc 1 7536 7 discriminator 4 view .LVU275 + 735 0046 05F58065 add r5, r5, #1024 + 736 004a A842 cmp r0, r5 + 737 004c 04D1 bne .L33 + 738 .L32: + ARM GAS /tmp/cc0wMqvE.s page 146 + + +7537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output Compare IDLE State */ +7539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS6; + 739 .loc 1 7539 5 is_stmt 1 view .LVU276 + 740 .loc 1 7539 12 is_stmt 0 view .LVU277 + 741 004e 24F48024 bic r4, r4, #262144 + 742 .LVL74: +7540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ +7541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 |= (OC_Config->OCIdleState << 10U); + 743 .loc 1 7541 5 is_stmt 1 view .LVU278 + 744 .loc 1 7541 25 is_stmt 0 view .LVU279 + 745 0052 4D69 ldr r5, [r1, #20] + 746 .loc 1 7541 12 view .LVU280 + 747 0054 44EA8524 orr r4, r4, r5, lsl #10 + 748 .LVL75: + 749 .L33: +7542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CR2 */ +7545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CR2 = tmpcr2; + 750 .loc 1 7545 3 is_stmt 1 view .LVU281 + 751 .loc 1 7545 13 is_stmt 0 view .LVU282 + 752 0058 4460 str r4, [r0, #4] +7546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR3 */ +7548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR3 = tmpccmrx; + 753 .loc 1 7548 3 is_stmt 1 view .LVU283 + 754 .loc 1 7548 15 is_stmt 0 view .LVU284 + 755 005a 0265 str r2, [r0, #80] +7549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Capture Compare Register value */ +7551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCR6 = OC_Config->Pulse; + 756 .loc 1 7551 3 is_stmt 1 view .LVU285 + 757 .loc 1 7551 25 is_stmt 0 view .LVU286 + 758 005c 4A68 ldr r2, [r1, #4] + 759 .LVL76: + 760 .loc 1 7551 14 view .LVU287 + 761 005e C264 str r2, [r0, #76] + 762 .LVL77: +7552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCER */ +7554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 763 .loc 1 7554 3 is_stmt 1 view .LVU288 + 764 .loc 1 7554 14 is_stmt 0 view .LVU289 + 765 0060 0362 str r3, [r0, #32] +7555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 766 .loc 1 7555 1 view .LVU290 + 767 0062 30BC pop {r4, r5} + 768 .LCFI9: + 769 .cfi_restore 5 + 770 .cfi_restore 4 + 771 .cfi_def_cfa_offset 0 + 772 .LVL78: + 773 .loc 1 7555 1 view .LVU291 + 774 0064 7047 bx lr + 775 .L36: + 776 0066 00BF .align 2 + ARM GAS /tmp/cc0wMqvE.s page 147 + + + 777 .L35: + 778 0068 002C0140 .word 1073818624 + 779 .cfi_endproc + 780 .LFE439: + 782 .section .text.TIM_TI1_ConfigInputStage,"ax",%progbits + 783 .align 1 + 784 .syntax unified + 785 .thumb + 786 .thumb_func + 788 TIM_TI1_ConfigInputStage: + 789 .LVL79: + 790 .LFB442: +7556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Slave Timer configuration function +7559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param htim TIM handle +7560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param sSlaveConfig Slave timer configuration +7561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, +7564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_SlaveConfigTypeDef *sSlaveConfig) +7565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; +7567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; +7568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; +7569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; +7570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx SMCR register value */ +7572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = htim->Instance->SMCR; +7573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Trigger Selection Bits */ +7575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~TIM_SMCR_TS; +7576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Input Trigger source */ +7577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= sSlaveConfig->InputTrigger; +7578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the slave mode Bits */ +7580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~TIM_SMCR_SMS; +7581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the slave mode */ +7582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= sSlaveConfig->SlaveMode; +7583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ +7585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR = tmpsmcr; +7586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the trigger prescaler, filter, and polarity */ +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (sSlaveConfig->InputTrigger) +7589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ETRF: +7591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +7593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance)); +7594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPRESCALER(sSlaveConfig->TriggerPrescaler)); +7595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); +7596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); +7597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the ETR Trigger source */ +7598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_ETR_SetConfig(htim->Instance, +7599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPrescaler, +7600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + ARM GAS /tmp/cc0wMqvE.s page 148 + + +7601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerFilter); +7602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +7603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_TI1F_ED: +7606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +7608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +7609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); +7610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if ((sSlaveConfig->SlaveMode == TIM_SLAVEMODE_GATED) || \ +7612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (sSlaveConfig->SlaveMode == TIM_SLAVEMODE_COMBINED_GATEDRESET)) +7613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; +7615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 1: Reset the CC1E Bit */ +7618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = htim->Instance->CCER; +7619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER &= ~TIM_CCER_CC1E; +7620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = htim->Instance->CCMR1; +7621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_IC1F; +7624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((sSlaveConfig->TriggerFilter) << 4U); +7625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 and CCER registers */ +7627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 = tmpccmr1; +7628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER = tmpccer; +7629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +7630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_TI1FP1: +7633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +7635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); +7636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); +7637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); +7638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure TI1 Filter and Polarity */ +7640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI1_ConfigInputStage(htim->Instance, +7641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, +7642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerFilter); +7643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +7644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_TI2FP2: +7647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ +7649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); +7650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); +7651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); +7652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure TI2 Filter and Polarity */ +7654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_TI2_ConfigInputStage(htim->Instance, +7655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, +7656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerFilter); +7657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + ARM GAS /tmp/cc0wMqvE.s page 149 + + +7658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR0: +7661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR1: +7662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR2: +7663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR3: +7664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (TIM5) +7665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR4: +7666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* TIM5 */ +7667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR5: +7668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR6: +7669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR7: +7670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR8: +7671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (TIM20) +7672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR9: +7673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* TIM20 */ +7674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if defined (HRTIM1) +7675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR10: +7676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* HRTIM1 */ +7677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** case TIM_TS_ITR11: +7678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameter */ +7680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE((htim->Instance), sSlaveConfig->InputTrigg +7681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +7682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** default: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** status = HAL_ERROR; +7686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; +7687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return status; +7690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the TI1 as Input. +7694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral. +7695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICPolarity The Input Polarity. +7696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_RISING +7698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_FALLING +7699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_BOTHEDGE +7700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICSelection specifies the input to be used. +7701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 1 is selected to be connected to IC1. +7703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 1 is selected to be connected to IC2. +7704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_TRC: TIM Input 1 is selected to be connected to TRC. +7705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICFilter Specifies the Input Capture Filter. +7706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F. +7707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI2FP1 +7709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (on channel2 path) is used as the input signal. Therefore CCMR1 must be +7710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * protected against un-initialized filter and polarity values. +7711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, +7713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter) +7714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 150 + + +7715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; +7716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; +7717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 1: Reset the CC1E Bit */ +7719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC1E; +7720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; +7721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; +7722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Input */ +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (IS_TIM_CC2_INSTANCE(TIMx) != RESET) +7725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_CC1S; +7727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= TIM_ICSelection; +7728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** else +7730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { +7731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= TIM_CCMR1_CC1S_0; +7732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_IC1F; +7736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((TIM_ICFilter << 4U) & TIM_CCMR1_IC1F); +7737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Polarity and set the CC1E Bit */ +7739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); +7740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (TIM_ICPolarity & (TIM_CCER_CC1P | TIM_CCER_CC1NP)); +7741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 and CCER registers */ +7743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR1 = tmpccmr1; +7744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; +7745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } +7746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the Polarity and Filter for TI1. +7749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral. +7750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICPolarity The Input Polarity. +7751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_RISING +7753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_FALLING +7754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_BOTHEDGE +7755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICFilter Specifies the Input Capture Filter. +7756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F. +7757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFil +7760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 791 .loc 1 7760 1 is_stmt 1 view -0 + 792 .cfi_startproc + 793 @ args = 0, pretend = 0, frame = 0 + 794 @ frame_needed = 0, uses_anonymous_args = 0 + 795 @ link register save eliminated. + 796 .loc 1 7760 1 is_stmt 0 view .LVU293 + 797 0000 10B4 push {r4} + 798 .LCFI10: + 799 .cfi_def_cfa_offset 4 + 800 .cfi_offset 4, -4 +7761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + ARM GAS /tmp/cc0wMqvE.s page 151 + + + 801 .loc 1 7761 3 is_stmt 1 view .LVU294 +7762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 802 .loc 1 7762 3 view .LVU295 +7763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 1: Reset the CC1E Bit */ +7765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 803 .loc 1 7765 3 view .LVU296 + 804 .loc 1 7765 11 is_stmt 0 view .LVU297 + 805 0002 036A ldr r3, [r0, #32] + 806 .LVL80: +7766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC1E; + 807 .loc 1 7766 3 is_stmt 1 view .LVU298 + 808 .loc 1 7766 7 is_stmt 0 view .LVU299 + 809 0004 046A ldr r4, [r0, #32] + 810 .loc 1 7766 14 view .LVU300 + 811 0006 24F00104 bic r4, r4, #1 + 812 000a 0462 str r4, [r0, #32] +7767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; + 813 .loc 1 7767 3 is_stmt 1 view .LVU301 + 814 .loc 1 7767 12 is_stmt 0 view .LVU302 + 815 000c 8469 ldr r4, [r0, #24] + 816 .LVL81: +7768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_IC1F; + 817 .loc 1 7770 3 is_stmt 1 view .LVU303 + 818 .loc 1 7770 12 is_stmt 0 view .LVU304 + 819 000e 24F0F00C bic ip, r4, #240 + 820 .LVL82: +7771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (TIM_ICFilter << 4U); + 821 .loc 1 7771 3 is_stmt 1 view .LVU305 + 822 .loc 1 7771 12 is_stmt 0 view .LVU306 + 823 0012 4CEA0212 orr r2, ip, r2, lsl #4 + 824 .LVL83: +7772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Polarity and set the CC1E Bit */ +7774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); + 825 .loc 1 7774 3 is_stmt 1 view .LVU307 + 826 .loc 1 7774 11 is_stmt 0 view .LVU308 + 827 0016 23F00A03 bic r3, r3, #10 + 828 .LVL84: +7775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= TIM_ICPolarity; + 829 .loc 1 7775 3 is_stmt 1 view .LVU309 + 830 .loc 1 7775 11 is_stmt 0 view .LVU310 + 831 001a 0B43 orrs r3, r3, r1 + 832 .LVL85: +7776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 and CCER registers */ +7778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR1 = tmpccmr1; + 833 .loc 1 7778 3 is_stmt 1 view .LVU311 + 834 .loc 1 7778 15 is_stmt 0 view .LVU312 + 835 001c 8261 str r2, [r0, #24] +7779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 836 .loc 1 7779 3 is_stmt 1 view .LVU313 + 837 .loc 1 7779 14 is_stmt 0 view .LVU314 + 838 001e 0362 str r3, [r0, #32] +7780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 152 + + + 839 .loc 1 7780 1 view .LVU315 + 840 0020 5DF8044B ldr r4, [sp], #4 + 841 .LCFI11: + 842 .cfi_restore 4 + 843 .cfi_def_cfa_offset 0 + 844 0024 7047 bx lr + 845 .cfi_endproc + 846 .LFE442: + 848 .section .text.TIM_TI2_SetConfig,"ax",%progbits + 849 .align 1 + 850 .syntax unified + 851 .thumb + 852 .thumb_func + 854 TIM_TI2_SetConfig: + 855 .LVL86: + 856 .LFB443: +7781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the TI2 as Input. +7784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICPolarity The Input Polarity. +7786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_RISING +7788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_FALLING +7789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_BOTHEDGE +7790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICSelection specifies the input to be used. +7791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 2 is selected to be connected to IC2. +7793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 2 is selected to be connected to IC1. +7794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_TRC: TIM Input 2 is selected to be connected to TRC. +7795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICFilter Specifies the Input Capture Filter. +7796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F. +7797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI1FP2 +7799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (on channel1 path) is used as the input signal. Therefore CCMR1 must be +7800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * protected against un-initialized filter and polarity values. +7801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, +7803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter) +7804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 857 .loc 1 7804 1 is_stmt 1 view -0 + 858 .cfi_startproc + 859 @ args = 0, pretend = 0, frame = 0 + 860 @ frame_needed = 0, uses_anonymous_args = 0 + 861 @ link register save eliminated. + 862 .loc 1 7804 1 is_stmt 0 view .LVU317 + 863 0000 30B4 push {r4, r5} + 864 .LCFI12: + 865 .cfi_def_cfa_offset 8 + 866 .cfi_offset 4, -8 + 867 .cfi_offset 5, -4 +7805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + 868 .loc 1 7805 3 is_stmt 1 view .LVU318 +7806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 869 .loc 1 7806 3 view .LVU319 +7807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 2: Reset the CC2E Bit */ + ARM GAS /tmp/cc0wMqvE.s page 153 + + +7809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC2E; + 870 .loc 1 7809 3 view .LVU320 + 871 .loc 1 7809 7 is_stmt 0 view .LVU321 + 872 0002 046A ldr r4, [r0, #32] + 873 .loc 1 7809 14 view .LVU322 + 874 0004 24F01004 bic r4, r4, #16 + 875 0008 0462 str r4, [r0, #32] +7810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; + 876 .loc 1 7810 3 is_stmt 1 view .LVU323 + 877 .loc 1 7810 12 is_stmt 0 view .LVU324 + 878 000a 8469 ldr r4, [r0, #24] + 879 .LVL87: +7811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 880 .loc 1 7811 3 is_stmt 1 view .LVU325 + 881 .loc 1 7811 11 is_stmt 0 view .LVU326 + 882 000c 056A ldr r5, [r0, #32] + 883 .LVL88: +7812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Input */ +7814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_CC2S; + 884 .loc 1 7814 3 is_stmt 1 view .LVU327 + 885 .loc 1 7814 12 is_stmt 0 view .LVU328 + 886 000e 24F4407C bic ip, r4, #768 + 887 .LVL89: +7815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (TIM_ICSelection << 8U); + 888 .loc 1 7815 3 is_stmt 1 view .LVU329 + 889 .loc 1 7815 12 is_stmt 0 view .LVU330 + 890 0012 4CEA022C orr ip, ip, r2, lsl #8 + 891 .LVL90: +7816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_IC2F; + 892 .loc 1 7818 3 is_stmt 1 view .LVU331 + 893 .loc 1 7818 12 is_stmt 0 view .LVU332 + 894 0016 2CF4704C bic ip, ip, #61440 + 895 .LVL91: +7819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((TIM_ICFilter << 12U) & TIM_CCMR1_IC2F); + 896 .loc 1 7819 3 is_stmt 1 view .LVU333 + 897 .loc 1 7819 30 is_stmt 0 view .LVU334 + 898 001a 1B03 lsls r3, r3, #12 + 899 .LVL92: + 900 .loc 1 7819 38 view .LVU335 + 901 001c 9BB2 uxth r3, r3 + 902 .loc 1 7819 12 view .LVU336 + 903 001e 43EA0C03 orr r3, r3, ip + 904 .LVL93: +7820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Polarity and set the CC2E Bit */ +7822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + 905 .loc 1 7822 3 is_stmt 1 view .LVU337 + 906 .loc 1 7822 11 is_stmt 0 view .LVU338 + 907 0022 25F0A005 bic r5, r5, #160 + 908 .LVL94: +7823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= ((TIM_ICPolarity << 4U) & (TIM_CCER_CC2P | TIM_CCER_CC2NP)); + 909 .loc 1 7823 3 is_stmt 1 view .LVU339 + 910 .loc 1 7823 31 is_stmt 0 view .LVU340 + 911 0026 0901 lsls r1, r1, #4 + ARM GAS /tmp/cc0wMqvE.s page 154 + + + 912 .LVL95: + 913 .loc 1 7823 38 view .LVU341 + 914 0028 01F0A001 and r1, r1, #160 + 915 .loc 1 7823 11 view .LVU342 + 916 002c 2943 orrs r1, r1, r5 + 917 .LVL96: +7824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 and CCER registers */ +7826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR1 = tmpccmr1 ; + 918 .loc 1 7826 3 is_stmt 1 view .LVU343 + 919 .loc 1 7826 15 is_stmt 0 view .LVU344 + 920 002e 8361 str r3, [r0, #24] +7827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 921 .loc 1 7827 3 is_stmt 1 view .LVU345 + 922 .loc 1 7827 14 is_stmt 0 view .LVU346 + 923 0030 0162 str r1, [r0, #32] +7828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 924 .loc 1 7828 1 view .LVU347 + 925 0032 30BC pop {r4, r5} + 926 .LCFI13: + 927 .cfi_restore 5 + 928 .cfi_restore 4 + 929 .cfi_def_cfa_offset 0 + 930 0034 7047 bx lr + 931 .cfi_endproc + 932 .LFE443: + 934 .section .text.TIM_TI2_ConfigInputStage,"ax",%progbits + 935 .align 1 + 936 .syntax unified + 937 .thumb + 938 .thumb_func + 940 TIM_TI2_ConfigInputStage: + 941 .LVL97: + 942 .LFB444: +7829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the Polarity and Filter for TI2. +7832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral. +7833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICPolarity The Input Polarity. +7834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_RISING +7836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_FALLING +7837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_BOTHEDGE +7838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICFilter Specifies the Input Capture Filter. +7839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F. +7840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFil +7843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 943 .loc 1 7843 1 is_stmt 1 view -0 + 944 .cfi_startproc + 945 @ args = 0, pretend = 0, frame = 0 + 946 @ frame_needed = 0, uses_anonymous_args = 0 + 947 @ link register save eliminated. + 948 .loc 1 7843 1 is_stmt 0 view .LVU349 + 949 0000 10B4 push {r4} + 950 .LCFI14: + ARM GAS /tmp/cc0wMqvE.s page 155 + + + 951 .cfi_def_cfa_offset 4 + 952 .cfi_offset 4, -4 +7844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + 953 .loc 1 7844 3 is_stmt 1 view .LVU350 +7845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 954 .loc 1 7845 3 view .LVU351 +7846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 2: Reset the CC2E Bit */ +7848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC2E; + 955 .loc 1 7848 3 view .LVU352 + 956 .loc 1 7848 7 is_stmt 0 view .LVU353 + 957 0002 036A ldr r3, [r0, #32] + 958 .loc 1 7848 14 view .LVU354 + 959 0004 23F01003 bic r3, r3, #16 + 960 0008 0362 str r3, [r0, #32] +7849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; + 961 .loc 1 7849 3 is_stmt 1 view .LVU355 + 962 .loc 1 7849 12 is_stmt 0 view .LVU356 + 963 000a 8469 ldr r4, [r0, #24] + 964 .LVL98: +7850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 965 .loc 1 7850 3 is_stmt 1 view .LVU357 + 966 .loc 1 7850 11 is_stmt 0 view .LVU358 + 967 000c 036A ldr r3, [r0, #32] + 968 .LVL99: +7851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~TIM_CCMR1_IC2F; + 969 .loc 1 7853 3 is_stmt 1 view .LVU359 + 970 .loc 1 7853 12 is_stmt 0 view .LVU360 + 971 000e 24F4704C bic ip, r4, #61440 + 972 .LVL100: +7854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (TIM_ICFilter << 12U); + 973 .loc 1 7854 3 is_stmt 1 view .LVU361 + 974 .loc 1 7854 12 is_stmt 0 view .LVU362 + 975 0012 4CEA0232 orr r2, ip, r2, lsl #12 + 976 .LVL101: +7855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Polarity and set the CC2E Bit */ +7857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + 977 .loc 1 7857 3 is_stmt 1 view .LVU363 + 978 .loc 1 7857 11 is_stmt 0 view .LVU364 + 979 0016 23F0A003 bic r3, r3, #160 + 980 .LVL102: +7858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (TIM_ICPolarity << 4U); + 981 .loc 1 7858 3 is_stmt 1 view .LVU365 + 982 .loc 1 7858 11 is_stmt 0 view .LVU366 + 983 001a 43EA0113 orr r3, r3, r1, lsl #4 + 984 .LVL103: +7859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR1 and CCER registers */ +7861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR1 = tmpccmr1 ; + 985 .loc 1 7861 3 is_stmt 1 view .LVU367 + 986 .loc 1 7861 15 is_stmt 0 view .LVU368 + 987 001e 8261 str r2, [r0, #24] +7862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 988 .loc 1 7862 3 is_stmt 1 view .LVU369 + ARM GAS /tmp/cc0wMqvE.s page 156 + + + 989 .loc 1 7862 14 is_stmt 0 view .LVU370 + 990 0020 0362 str r3, [r0, #32] +7863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 991 .loc 1 7863 1 view .LVU371 + 992 0022 5DF8044B ldr r4, [sp], #4 + 993 .LCFI15: + 994 .cfi_restore 4 + 995 .cfi_def_cfa_offset 0 + 996 0026 7047 bx lr + 997 .cfi_endproc + 998 .LFE444: + 1000 .section .text.TIM_TI3_SetConfig,"ax",%progbits + 1001 .align 1 + 1002 .syntax unified + 1003 .thumb + 1004 .thumb_func + 1006 TIM_TI3_SetConfig: + 1007 .LVL104: + 1008 .LFB445: +7864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the TI3 as Input. +7867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICPolarity The Input Polarity. +7869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_RISING +7871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_FALLING +7872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_BOTHEDGE +7873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICSelection specifies the input to be used. +7874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 3 is selected to be connected to IC3. +7876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 3 is selected to be connected to IC4. +7877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_TRC: TIM Input 3 is selected to be connected to TRC. +7878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICFilter Specifies the Input Capture Filter. +7879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F. +7880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI3FP4 +7882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (on channel1 path) is used as the input signal. Therefore CCMR2 must be +7883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * protected against un-initialized filter and polarity values. +7884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, +7886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter) +7887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1009 .loc 1 7887 1 is_stmt 1 view -0 + 1010 .cfi_startproc + 1011 @ args = 0, pretend = 0, frame = 0 + 1012 @ frame_needed = 0, uses_anonymous_args = 0 + 1013 @ link register save eliminated. + 1014 .loc 1 7887 1 is_stmt 0 view .LVU373 + 1015 0000 30B4 push {r4, r5} + 1016 .LCFI16: + 1017 .cfi_def_cfa_offset 8 + 1018 .cfi_offset 4, -8 + 1019 .cfi_offset 5, -4 +7888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr2; + 1020 .loc 1 7888 3 is_stmt 1 view .LVU374 +7889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + ARM GAS /tmp/cc0wMqvE.s page 157 + + + 1021 .loc 1 7889 3 view .LVU375 +7890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 3: Reset the CC3E Bit */ +7892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC3E; + 1022 .loc 1 7892 3 view .LVU376 + 1023 .loc 1 7892 7 is_stmt 0 view .LVU377 + 1024 0002 046A ldr r4, [r0, #32] + 1025 .loc 1 7892 14 view .LVU378 + 1026 0004 24F48074 bic r4, r4, #256 + 1027 0008 0462 str r4, [r0, #32] +7893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 = TIMx->CCMR2; + 1028 .loc 1 7893 3 is_stmt 1 view .LVU379 + 1029 .loc 1 7893 12 is_stmt 0 view .LVU380 + 1030 000a C469 ldr r4, [r0, #28] + 1031 .LVL105: +7894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 1032 .loc 1 7894 3 is_stmt 1 view .LVU381 + 1033 .loc 1 7894 11 is_stmt 0 view .LVU382 + 1034 000c 056A ldr r5, [r0, #32] + 1035 .LVL106: +7895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Input */ +7897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 &= ~TIM_CCMR2_CC3S; + 1036 .loc 1 7897 3 is_stmt 1 view .LVU383 + 1037 .loc 1 7897 12 is_stmt 0 view .LVU384 + 1038 000e 24F0030C bic ip, r4, #3 + 1039 .LVL107: +7898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 |= TIM_ICSelection; + 1040 .loc 1 7898 3 is_stmt 1 view .LVU385 + 1041 .loc 1 7898 12 is_stmt 0 view .LVU386 + 1042 0012 4CEA020C orr ip, ip, r2 + 1043 .LVL108: +7899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 &= ~TIM_CCMR2_IC3F; + 1044 .loc 1 7901 3 is_stmt 1 view .LVU387 + 1045 .loc 1 7901 12 is_stmt 0 view .LVU388 + 1046 0016 2CF0F00C bic ip, ip, #240 + 1047 .LVL109: +7902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 |= ((TIM_ICFilter << 4U) & TIM_CCMR2_IC3F); + 1048 .loc 1 7902 3 is_stmt 1 view .LVU389 + 1049 .loc 1 7902 30 is_stmt 0 view .LVU390 + 1050 001a 1B01 lsls r3, r3, #4 + 1051 .LVL110: + 1052 .loc 1 7902 37 view .LVU391 + 1053 001c DBB2 uxtb r3, r3 + 1054 .loc 1 7902 12 view .LVU392 + 1055 001e 43EA0C03 orr r3, r3, ip + 1056 .LVL111: +7903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Polarity and set the CC3E Bit */ +7905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP); + 1057 .loc 1 7905 3 is_stmt 1 view .LVU393 + 1058 .loc 1 7905 11 is_stmt 0 view .LVU394 + 1059 0022 25F42065 bic r5, r5, #2560 + 1060 .LVL112: +7906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= ((TIM_ICPolarity << 8U) & (TIM_CCER_CC3P | TIM_CCER_CC3NP)); + ARM GAS /tmp/cc0wMqvE.s page 158 + + + 1061 .loc 1 7906 3 is_stmt 1 view .LVU395 + 1062 .loc 1 7906 31 is_stmt 0 view .LVU396 + 1063 0026 0902 lsls r1, r1, #8 + 1064 .LVL113: + 1065 .loc 1 7906 38 view .LVU397 + 1066 0028 01F42061 and r1, r1, #2560 + 1067 .loc 1 7906 11 view .LVU398 + 1068 002c 2943 orrs r1, r1, r5 + 1069 .LVL114: +7907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR2 and CCER registers */ +7909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR2 = tmpccmr2; + 1070 .loc 1 7909 3 is_stmt 1 view .LVU399 + 1071 .loc 1 7909 15 is_stmt 0 view .LVU400 + 1072 002e C361 str r3, [r0, #28] +7910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 1073 .loc 1 7910 3 is_stmt 1 view .LVU401 + 1074 .loc 1 7910 14 is_stmt 0 view .LVU402 + 1075 0030 0162 str r1, [r0, #32] +7911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1076 .loc 1 7911 1 view .LVU403 + 1077 0032 30BC pop {r4, r5} + 1078 .LCFI17: + 1079 .cfi_restore 5 + 1080 .cfi_restore 4 + 1081 .cfi_def_cfa_offset 0 + 1082 0034 7047 bx lr + 1083 .cfi_endproc + 1084 .LFE445: + 1086 .section .text.TIM_TI4_SetConfig,"ax",%progbits + 1087 .align 1 + 1088 .syntax unified + 1089 .thumb + 1090 .thumb_func + 1092 TIM_TI4_SetConfig: + 1093 .LVL115: + 1094 .LFB446: +7912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +7914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configure the TI4 as Input. +7915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICPolarity The Input Polarity. +7917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_RISING +7919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_FALLING +7920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICPOLARITY_BOTHEDGE +7921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICSelection specifies the input to be used. +7922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_DIRECTTI: TIM Input 4 is selected to be connected to IC4. +7924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 4 is selected to be connected to IC3. +7925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ICSELECTION_TRC: TIM Input 4 is selected to be connected to TRC. +7926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ICFilter Specifies the Input Capture Filter. +7927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F. +7928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI4FP3 +7929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (on channel1 path) is used as the input signal. Therefore CCMR2 must be +7930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * protected against un-initialized filter and polarity values. +7931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None + ARM GAS /tmp/cc0wMqvE.s page 159 + + +7932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, +7934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ICFilter) +7935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1095 .loc 1 7935 1 is_stmt 1 view -0 + 1096 .cfi_startproc + 1097 @ args = 0, pretend = 0, frame = 0 + 1098 @ frame_needed = 0, uses_anonymous_args = 0 + 1099 @ link register save eliminated. + 1100 .loc 1 7935 1 is_stmt 0 view .LVU405 + 1101 0000 30B4 push {r4, r5} + 1102 .LCFI18: + 1103 .cfi_def_cfa_offset 8 + 1104 .cfi_offset 4, -8 + 1105 .cfi_offset 5, -4 +7936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr2; + 1106 .loc 1 7936 3 is_stmt 1 view .LVU406 +7937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 1107 .loc 1 7937 3 view .LVU407 +7938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Disable the Channel 4: Reset the CC4E Bit */ +7940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~TIM_CCER_CC4E; + 1108 .loc 1 7940 3 view .LVU408 + 1109 .loc 1 7940 7 is_stmt 0 view .LVU409 + 1110 0002 046A ldr r4, [r0, #32] + 1111 .loc 1 7940 14 view .LVU410 + 1112 0004 24F48054 bic r4, r4, #4096 + 1113 0008 0462 str r4, [r0, #32] +7941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 = TIMx->CCMR2; + 1114 .loc 1 7941 3 is_stmt 1 view .LVU411 + 1115 .loc 1 7941 12 is_stmt 0 view .LVU412 + 1116 000a C469 ldr r4, [r0, #28] + 1117 .LVL116: +7942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 1118 .loc 1 7942 3 is_stmt 1 view .LVU413 + 1119 .loc 1 7942 11 is_stmt 0 view .LVU414 + 1120 000c 056A ldr r5, [r0, #32] + 1121 .LVL117: +7943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Input */ +7945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 &= ~TIM_CCMR2_CC4S; + 1122 .loc 1 7945 3 is_stmt 1 view .LVU415 + 1123 .loc 1 7945 12 is_stmt 0 view .LVU416 + 1124 000e 24F4407C bic ip, r4, #768 + 1125 .LVL118: +7946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 |= (TIM_ICSelection << 8U); + 1126 .loc 1 7946 3 is_stmt 1 view .LVU417 + 1127 .loc 1 7946 12 is_stmt 0 view .LVU418 + 1128 0012 4CEA022C orr ip, ip, r2, lsl #8 + 1129 .LVL119: +7947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the filter */ +7949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 &= ~TIM_CCMR2_IC4F; + 1130 .loc 1 7949 3 is_stmt 1 view .LVU419 + 1131 .loc 1 7949 12 is_stmt 0 view .LVU420 + 1132 0016 2CF4704C bic ip, ip, #61440 + 1133 .LVL120: + ARM GAS /tmp/cc0wMqvE.s page 160 + + +7950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr2 |= ((TIM_ICFilter << 12U) & TIM_CCMR2_IC4F); + 1134 .loc 1 7950 3 is_stmt 1 view .LVU421 + 1135 .loc 1 7950 30 is_stmt 0 view .LVU422 + 1136 001a 1B03 lsls r3, r3, #12 + 1137 .LVL121: + 1138 .loc 1 7950 38 view .LVU423 + 1139 001c 9BB2 uxth r3, r3 + 1140 .loc 1 7950 12 view .LVU424 + 1141 001e 43EA0C03 orr r3, r3, ip + 1142 .LVL122: +7951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Select the Polarity and set the CC4E Bit */ +7953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP); + 1143 .loc 1 7953 3 is_stmt 1 view .LVU425 + 1144 .loc 1 7953 11 is_stmt 0 view .LVU426 + 1145 0022 25F42045 bic r5, r5, #40960 + 1146 .LVL123: +7954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= ((TIM_ICPolarity << 12U) & (TIM_CCER_CC4P | TIM_CCER_CC4NP)); + 1147 .loc 1 7954 3 is_stmt 1 view .LVU427 + 1148 .loc 1 7954 31 is_stmt 0 view .LVU428 + 1149 0026 0903 lsls r1, r1, #12 + 1150 .LVL124: + 1151 .loc 1 7954 39 view .LVU429 + 1152 0028 01F42041 and r1, r1, #40960 + 1153 .loc 1 7954 11 view .LVU430 + 1154 002c 2943 orrs r1, r1, r5 + 1155 .LVL125: +7955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx CCMR2 and CCER registers */ +7957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCMR2 = tmpccmr2; + 1156 .loc 1 7957 3 is_stmt 1 view .LVU431 + 1157 .loc 1 7957 15 is_stmt 0 view .LVU432 + 1158 002e C361 str r3, [r0, #28] +7958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer ; + 1159 .loc 1 7958 3 is_stmt 1 view .LVU433 + 1160 .loc 1 7958 14 is_stmt 0 view .LVU434 + 1161 0030 0162 str r1, [r0, #32] +7959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1162 .loc 1 7959 1 view .LVU435 + 1163 0032 30BC pop {r4, r5} + 1164 .LCFI19: + 1165 .cfi_restore 5 + 1166 .cfi_restore 4 + 1167 .cfi_def_cfa_offset 0 + 1168 0034 7047 bx lr + 1169 .cfi_endproc + 1170 .LFE446: + 1172 .section .text.TIM_ITRx_SetConfig,"ax",%progbits + 1173 .align 1 + 1174 .syntax unified + 1175 .thumb + 1176 .thumb_func + 1178 TIM_ITRx_SetConfig: + 1179 .LVL126: + 1180 .LFB447: +7960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + ARM GAS /tmp/cc0wMqvE.s page 161 + + +7962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Selects the Input Trigger source +7963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +7964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param InputTriggerSource The Input Trigger source. +7965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +7966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR0: Internal Trigger 0 +7967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR1: Internal Trigger 1 +7968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR2: Internal Trigger 2 +7969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR3: Internal Trigger 3 +7970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_TI1F_ED: TI1 Edge Detector +7971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_TI1FP1: Filtered Timer Input 1 +7972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_TI2FP2: Filtered Timer Input 2 +7973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ETRF: External Trigger input +7974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR4: Internal Trigger 4 (*) +7975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR5: Internal Trigger 5 +7976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR6: Internal Trigger 6 +7977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR7: Internal Trigger 7 +7978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR8: Internal Trigger 8 +7979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR9: Internal Trigger 9 (*) +7980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR10: Internal Trigger 10 +7981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_TS_ITR11: Internal Trigger 11 +7982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +7983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * (*) Value not defined in all devices. +7984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * +7985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +7986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +7987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource) +7988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1181 .loc 1 7988 1 is_stmt 1 view -0 + 1182 .cfi_startproc + 1183 @ args = 0, pretend = 0, frame = 0 + 1184 @ frame_needed = 0, uses_anonymous_args = 0 + 1185 @ link register save eliminated. +7989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 1186 .loc 1 7989 3 view .LVU437 +7990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +7991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx SMCR register value */ +7992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = TIMx->SMCR; + 1187 .loc 1 7992 3 view .LVU438 + 1188 .loc 1 7992 11 is_stmt 0 view .LVU439 + 1189 0000 8368 ldr r3, [r0, #8] + 1190 .LVL127: +7993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the TS Bits */ +7994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~TIM_SMCR_TS; + 1191 .loc 1 7994 3 is_stmt 1 view .LVU440 + 1192 .loc 1 7994 11 is_stmt 0 view .LVU441 + 1193 0002 23F44013 bic r3, r3, #3145728 + 1194 .LVL128: + 1195 .loc 1 7994 11 view .LVU442 + 1196 0006 23F07003 bic r3, r3, #112 + 1197 .LVL129: +7995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Input Trigger source and the slave mode*/ +7996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1); + 1198 .loc 1 7996 3 is_stmt 1 view .LVU443 + 1199 .loc 1 7996 11 is_stmt 0 view .LVU444 + 1200 000a 0B43 orrs r3, r3, r1 + 1201 .LVL130: + 1202 .loc 1 7996 11 view .LVU445 + ARM GAS /tmp/cc0wMqvE.s page 162 + + + 1203 000c 43F00703 orr r3, r3, #7 + 1204 .LVL131: +7997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ +7998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->SMCR = tmpsmcr; + 1205 .loc 1 7998 3 is_stmt 1 view .LVU446 + 1206 .loc 1 7998 14 is_stmt 0 view .LVU447 + 1207 0010 8360 str r3, [r0, #8] +7999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1208 .loc 1 7999 1 view .LVU448 + 1209 0012 7047 bx lr + 1210 .cfi_endproc + 1211 .LFE447: + 1213 .section .text.HAL_TIM_Base_MspInit,"ax",%progbits + 1214 .align 1 + 1215 .weak HAL_TIM_Base_MspInit + 1216 .syntax unified + 1217 .thumb + 1218 .thumb_func + 1220 HAL_TIM_Base_MspInit: + 1221 .LVL132: + 1222 .LFB331: + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 1223 .loc 1 384 1 is_stmt 1 view -0 + 1224 .cfi_startproc + 1225 @ args = 0, pretend = 0, frame = 0 + 1226 @ frame_needed = 0, uses_anonymous_args = 0 + 1227 @ link register save eliminated. + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1228 .loc 1 386 3 view .LVU450 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1229 .loc 1 391 1 is_stmt 0 view .LVU451 + 1230 0000 7047 bx lr + 1231 .cfi_endproc + 1232 .LFE331: + 1234 .section .text.HAL_TIM_Base_MspDeInit,"ax",%progbits + 1235 .align 1 + 1236 .weak HAL_TIM_Base_MspDeInit + 1237 .syntax unified + 1238 .thumb + 1239 .thumb_func + 1241 HAL_TIM_Base_MspDeInit: + 1242 .LVL133: + 1243 .LFB332: + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 1244 .loc 1 399 1 is_stmt 1 view -0 + 1245 .cfi_startproc + 1246 @ args = 0, pretend = 0, frame = 0 + 1247 @ frame_needed = 0, uses_anonymous_args = 0 + 1248 @ link register save eliminated. + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1249 .loc 1 401 3 view .LVU453 + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1250 .loc 1 406 1 is_stmt 0 view .LVU454 + 1251 0000 7047 bx lr + 1252 .cfi_endproc + 1253 .LFE332: + 1255 .section .text.HAL_TIM_Base_DeInit,"ax",%progbits + ARM GAS /tmp/cc0wMqvE.s page 163 + + + 1256 .align 1 + 1257 .global HAL_TIM_Base_DeInit + 1258 .syntax unified + 1259 .thumb + 1260 .thumb_func + 1262 HAL_TIM_Base_DeInit: + 1263 .LVL134: + 1264 .LFB330: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1265 .loc 1 341 1 is_stmt 1 view -0 + 1266 .cfi_startproc + 1267 @ args = 0, pretend = 0, frame = 0 + 1268 @ frame_needed = 0, uses_anonymous_args = 0 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1269 .loc 1 341 1 is_stmt 0 view .LVU456 + 1270 0000 10B5 push {r4, lr} + 1271 .LCFI20: + 1272 .cfi_def_cfa_offset 8 + 1273 .cfi_offset 4, -8 + 1274 .cfi_offset 14, -4 + 1275 0002 0446 mov r4, r0 + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1276 .loc 1 343 3 is_stmt 1 view .LVU457 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1277 .loc 1 345 3 view .LVU458 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1278 .loc 1 345 15 is_stmt 0 view .LVU459 + 1279 0004 0223 movs r3, #2 + 1280 0006 80F83D30 strb r3, [r0, #61] + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1281 .loc 1 348 3 is_stmt 1 view .LVU460 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1282 .loc 1 348 3 view .LVU461 + 1283 000a 0368 ldr r3, [r0] + 1284 000c 196A ldr r1, [r3, #32] + 1285 000e 41F21112 movw r2, #4369 + 1286 0012 1142 tst r1, r2 + 1287 0014 08D1 bne .L51 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1288 .loc 1 348 3 discriminator 1 view .LVU462 + 1289 0016 196A ldr r1, [r3, #32] + 1290 0018 44F24442 movw r2, #17476 + 1291 001c 1142 tst r1, r2 + 1292 001e 03D1 bne .L51 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1293 .loc 1 348 3 discriminator 3 view .LVU463 + 1294 0020 1A68 ldr r2, [r3] + 1295 0022 22F00102 bic r2, r2, #1 + 1296 0026 1A60 str r2, [r3] + 1297 .L51: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1298 .loc 1 348 3 discriminator 5 view .LVU464 + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 1299 .loc 1 359 3 discriminator 5 view .LVU465 + 1300 0028 2046 mov r0, r4 + 1301 .LVL135: + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + ARM GAS /tmp/cc0wMqvE.s page 164 + + + 1302 .loc 1 359 3 is_stmt 0 discriminator 5 view .LVU466 + 1303 002a FFF7FEFF bl HAL_TIM_Base_MspDeInit + 1304 .LVL136: + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1305 .loc 1 363 3 is_stmt 1 discriminator 5 view .LVU467 + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1306 .loc 1 363 23 is_stmt 0 discriminator 5 view .LVU468 + 1307 002e 0020 movs r0, #0 + 1308 0030 84F84800 strb r0, [r4, #72] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1309 .loc 1 366 3 is_stmt 1 discriminator 5 view .LVU469 + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1310 .loc 1 366 3 discriminator 5 view .LVU470 + 1311 0034 84F83E00 strb r0, [r4, #62] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1312 .loc 1 366 3 discriminator 5 view .LVU471 + 1313 0038 84F83F00 strb r0, [r4, #63] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1314 .loc 1 366 3 discriminator 5 view .LVU472 + 1315 003c 84F84000 strb r0, [r4, #64] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1316 .loc 1 366 3 discriminator 5 view .LVU473 + 1317 0040 84F84100 strb r0, [r4, #65] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1318 .loc 1 366 3 discriminator 5 view .LVU474 + 1319 0044 84F84200 strb r0, [r4, #66] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1320 .loc 1 366 3 discriminator 5 view .LVU475 + 1321 0048 84F84300 strb r0, [r4, #67] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 1322 .loc 1 366 3 discriminator 5 view .LVU476 + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1323 .loc 1 367 3 discriminator 5 view .LVU477 + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1324 .loc 1 367 3 discriminator 5 view .LVU478 + 1325 004c 84F84400 strb r0, [r4, #68] + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1326 .loc 1 367 3 discriminator 5 view .LVU479 + 1327 0050 84F84500 strb r0, [r4, #69] + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1328 .loc 1 367 3 discriminator 5 view .LVU480 + 1329 0054 84F84600 strb r0, [r4, #70] + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1330 .loc 1 367 3 discriminator 5 view .LVU481 + 1331 0058 84F84700 strb r0, [r4, #71] + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1332 .loc 1 367 3 discriminator 5 view .LVU482 + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1333 .loc 1 370 3 discriminator 5 view .LVU483 + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1334 .loc 1 370 15 is_stmt 0 discriminator 5 view .LVU484 + 1335 005c 84F83D00 strb r0, [r4, #61] + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1336 .loc 1 373 3 is_stmt 1 discriminator 5 view .LVU485 + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1337 .loc 1 373 3 discriminator 5 view .LVU486 + 1338 0060 84F83C00 strb r0, [r4, #60] + ARM GAS /tmp/cc0wMqvE.s page 165 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1339 .loc 1 373 3 discriminator 5 view .LVU487 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1340 .loc 1 375 3 discriminator 5 view .LVU488 + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1341 .loc 1 376 1 is_stmt 0 discriminator 5 view .LVU489 + 1342 0064 10BD pop {r4, pc} + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1343 .loc 1 376 1 discriminator 5 view .LVU490 + 1344 .cfi_endproc + 1345 .LFE330: + 1347 .section .text.HAL_TIM_Base_Start,"ax",%progbits + 1348 .align 1 + 1349 .global HAL_TIM_Base_Start + 1350 .syntax unified + 1351 .thumb + 1352 .thumb_func + 1354 HAL_TIM_Base_Start: + 1355 .LVL137: + 1356 .LFB333: + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 1357 .loc 1 415 1 is_stmt 1 view -0 + 1358 .cfi_startproc + 1359 @ args = 0, pretend = 0, frame = 0 + 1360 @ frame_needed = 0, uses_anonymous_args = 0 + 1361 @ link register save eliminated. + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1362 .loc 1 416 3 view .LVU492 + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1363 .loc 1 419 3 view .LVU493 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1364 .loc 1 422 3 view .LVU494 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1365 .loc 1 422 11 is_stmt 0 view .LVU495 + 1366 0000 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 + 1367 0004 DBB2 uxtb r3, r3 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1368 .loc 1 422 6 view .LVU496 + 1369 0006 012B cmp r3, #1 + 1370 0008 2DD1 bne .L57 + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1371 .loc 1 428 3 is_stmt 1 view .LVU497 + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1372 .loc 1 428 15 is_stmt 0 view .LVU498 + 1373 000a 0223 movs r3, #2 + 1374 000c 80F83D30 strb r3, [r0, #61] + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1375 .loc 1 431 3 is_stmt 1 view .LVU499 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1376 .loc 1 431 7 is_stmt 0 view .LVU500 + 1377 0010 0368 ldr r3, [r0] + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1378 .loc 1 431 6 view .LVU501 + 1379 0012 184A ldr r2, .L60 + 1380 0014 9342 cmp r3, r2 + 1381 0016 18D0 beq .L55 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 166 + + + 1382 .loc 1 431 7 discriminator 1 view .LVU502 + 1383 0018 B3F1804F cmp r3, #1073741824 + 1384 001c 15D0 beq .L55 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1385 .loc 1 431 7 discriminator 2 view .LVU503 + 1386 001e A2F59432 sub r2, r2, #75776 + 1387 0022 9342 cmp r3, r2 + 1388 0024 11D0 beq .L55 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1389 .loc 1 431 7 discriminator 3 view .LVU504 + 1390 0026 02F58062 add r2, r2, #1024 + 1391 002a 9342 cmp r3, r2 + 1392 002c 0DD0 beq .L55 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1393 .loc 1 431 7 discriminator 4 view .LVU505 + 1394 002e 02F59632 add r2, r2, #76800 + 1395 0032 9342 cmp r3, r2 + 1396 0034 09D0 beq .L55 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1397 .loc 1 431 7 discriminator 5 view .LVU506 + 1398 0036 02F54062 add r2, r2, #3072 + 1399 003a 9342 cmp r3, r2 + 1400 003c 05D0 beq .L55 + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1401 .loc 1 441 5 is_stmt 1 view .LVU507 + 1402 003e 1A68 ldr r2, [r3] + 1403 0040 42F00102 orr r2, r2, #1 + 1404 0044 1A60 str r2, [r3] + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1405 .loc 1 445 10 is_stmt 0 view .LVU508 + 1406 0046 0020 movs r0, #0 + 1407 .LVL138: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1408 .loc 1 445 10 view .LVU509 + 1409 0048 7047 bx lr + 1410 .LVL139: + 1411 .L55: + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1412 .loc 1 433 5 is_stmt 1 view .LVU510 + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1413 .loc 1 433 29 is_stmt 0 view .LVU511 + 1414 004a 9968 ldr r1, [r3, #8] + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1415 .loc 1 433 13 view .LVU512 + 1416 004c 0A4A ldr r2, .L60+4 + 1417 004e 0A40 ands r2, r2, r1 + 1418 .LVL140: + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1419 .loc 1 434 5 is_stmt 1 view .LVU513 + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1420 .loc 1 434 8 is_stmt 0 view .LVU514 + 1421 0050 062A cmp r2, #6 + 1422 0052 0AD0 beq .L58 + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1423 .loc 1 434 9 discriminator 1 view .LVU515 + 1424 0054 B2F5803F cmp r2, #65536 + 1425 0058 09D0 beq .L59 + ARM GAS /tmp/cc0wMqvE.s page 167 + + + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1426 .loc 1 436 7 is_stmt 1 view .LVU516 + 1427 005a 1A68 ldr r2, [r3] + 1428 .LVL141: + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1429 .loc 1 436 7 is_stmt 0 view .LVU517 + 1430 005c 42F00102 orr r2, r2, #1 + 1431 0060 1A60 str r2, [r3] + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1432 .loc 1 445 10 view .LVU518 + 1433 0062 0020 movs r0, #0 + 1434 .LVL142: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1435 .loc 1 445 10 view .LVU519 + 1436 0064 7047 bx lr + 1437 .LVL143: + 1438 .L57: + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1439 .loc 1 424 12 view .LVU520 + 1440 0066 0120 movs r0, #1 + 1441 .LVL144: + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1442 .loc 1 424 12 view .LVU521 + 1443 0068 7047 bx lr + 1444 .LVL145: + 1445 .L58: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1446 .loc 1 445 10 view .LVU522 + 1447 006a 0020 movs r0, #0 + 1448 .LVL146: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1449 .loc 1 445 10 view .LVU523 + 1450 006c 7047 bx lr + 1451 .LVL147: + 1452 .L59: + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1453 .loc 1 445 10 view .LVU524 + 1454 006e 0020 movs r0, #0 + 1455 .LVL148: + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1456 .loc 1 446 1 view .LVU525 + 1457 0070 7047 bx lr + 1458 .L61: + 1459 0072 00BF .align 2 + 1460 .L60: + 1461 0074 002C0140 .word 1073818624 + 1462 0078 07000100 .word 65543 + 1463 .cfi_endproc + 1464 .LFE333: + 1466 .section .text.HAL_TIM_Base_Stop,"ax",%progbits + 1467 .align 1 + 1468 .global HAL_TIM_Base_Stop + 1469 .syntax unified + 1470 .thumb + 1471 .thumb_func + 1473 HAL_TIM_Base_Stop: + 1474 .LVL149: + ARM GAS /tmp/cc0wMqvE.s page 168 + + + 1475 .LFB334: + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1476 .loc 1 454 1 is_stmt 1 view -0 + 1477 .cfi_startproc + 1478 @ args = 0, pretend = 0, frame = 0 + 1479 @ frame_needed = 0, uses_anonymous_args = 0 + 1480 @ link register save eliminated. + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1481 .loc 1 456 3 view .LVU527 + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1482 .loc 1 459 3 view .LVU528 + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1483 .loc 1 459 3 view .LVU529 + 1484 0000 0368 ldr r3, [r0] + 1485 0002 196A ldr r1, [r3, #32] + 1486 0004 41F21112 movw r2, #4369 + 1487 0008 1142 tst r1, r2 + 1488 000a 08D1 bne .L63 + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1489 .loc 1 459 3 discriminator 1 view .LVU530 + 1490 000c 196A ldr r1, [r3, #32] + 1491 000e 44F24442 movw r2, #17476 + 1492 0012 1142 tst r1, r2 + 1493 0014 03D1 bne .L63 + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1494 .loc 1 459 3 discriminator 3 view .LVU531 + 1495 0016 1A68 ldr r2, [r3] + 1496 0018 22F00102 bic r2, r2, #1 + 1497 001c 1A60 str r2, [r3] + 1498 .L63: + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1499 .loc 1 459 3 discriminator 5 view .LVU532 + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1500 .loc 1 462 3 discriminator 5 view .LVU533 + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1501 .loc 1 462 15 is_stmt 0 discriminator 5 view .LVU534 + 1502 001e 0123 movs r3, #1 + 1503 0020 80F83D30 strb r3, [r0, #61] + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1504 .loc 1 465 3 is_stmt 1 discriminator 5 view .LVU535 + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1505 .loc 1 466 1 is_stmt 0 discriminator 5 view .LVU536 + 1506 0024 0020 movs r0, #0 + 1507 .LVL150: + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1508 .loc 1 466 1 discriminator 5 view .LVU537 + 1509 0026 7047 bx lr + 1510 .cfi_endproc + 1511 .LFE334: + 1513 .section .text.HAL_TIM_Base_Start_IT,"ax",%progbits + 1514 .align 1 + 1515 .global HAL_TIM_Base_Start_IT + 1516 .syntax unified + 1517 .thumb + 1518 .thumb_func + 1520 HAL_TIM_Base_Start_IT: + 1521 .LVL151: + ARM GAS /tmp/cc0wMqvE.s page 169 + + + 1522 .LFB335: + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 1523 .loc 1 474 1 is_stmt 1 view -0 + 1524 .cfi_startproc + 1525 @ args = 0, pretend = 0, frame = 0 + 1526 @ frame_needed = 0, uses_anonymous_args = 0 + 1527 @ link register save eliminated. + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1528 .loc 1 475 3 view .LVU539 + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1529 .loc 1 478 3 view .LVU540 + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1530 .loc 1 481 3 view .LVU541 + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1531 .loc 1 481 11 is_stmt 0 view .LVU542 + 1532 0000 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 + 1533 0004 DBB2 uxtb r3, r3 + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1534 .loc 1 481 6 view .LVU543 + 1535 0006 012B cmp r3, #1 + 1536 0008 32D1 bne .L68 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1537 .loc 1 487 3 is_stmt 1 view .LVU544 + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1538 .loc 1 487 15 is_stmt 0 view .LVU545 + 1539 000a 0223 movs r3, #2 + 1540 000c 80F83D30 strb r3, [r0, #61] + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1541 .loc 1 490 3 is_stmt 1 view .LVU546 + 1542 0010 0268 ldr r2, [r0] + 1543 0012 D368 ldr r3, [r2, #12] + 1544 0014 43F00103 orr r3, r3, #1 + 1545 0018 D360 str r3, [r2, #12] + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1546 .loc 1 493 3 view .LVU547 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1547 .loc 1 493 7 is_stmt 0 view .LVU548 + 1548 001a 0368 ldr r3, [r0] + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1549 .loc 1 493 6 view .LVU549 + 1550 001c 174A ldr r2, .L71 + 1551 001e 9342 cmp r3, r2 + 1552 0020 18D0 beq .L66 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1553 .loc 1 493 7 discriminator 1 view .LVU550 + 1554 0022 B3F1804F cmp r3, #1073741824 + 1555 0026 15D0 beq .L66 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1556 .loc 1 493 7 discriminator 2 view .LVU551 + 1557 0028 A2F59432 sub r2, r2, #75776 + 1558 002c 9342 cmp r3, r2 + 1559 002e 11D0 beq .L66 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1560 .loc 1 493 7 discriminator 3 view .LVU552 + 1561 0030 02F58062 add r2, r2, #1024 + 1562 0034 9342 cmp r3, r2 + 1563 0036 0DD0 beq .L66 + ARM GAS /tmp/cc0wMqvE.s page 170 + + + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1564 .loc 1 493 7 discriminator 4 view .LVU553 + 1565 0038 02F59632 add r2, r2, #76800 + 1566 003c 9342 cmp r3, r2 + 1567 003e 09D0 beq .L66 + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1568 .loc 1 493 7 discriminator 5 view .LVU554 + 1569 0040 02F54062 add r2, r2, #3072 + 1570 0044 9342 cmp r3, r2 + 1571 0046 05D0 beq .L66 + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1572 .loc 1 503 5 is_stmt 1 view .LVU555 + 1573 0048 1A68 ldr r2, [r3] + 1574 004a 42F00102 orr r2, r2, #1 + 1575 004e 1A60 str r2, [r3] + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1576 .loc 1 507 10 is_stmt 0 view .LVU556 + 1577 0050 0020 movs r0, #0 + 1578 .LVL152: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1579 .loc 1 507 10 view .LVU557 + 1580 0052 7047 bx lr + 1581 .LVL153: + 1582 .L66: + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1583 .loc 1 495 5 is_stmt 1 view .LVU558 + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1584 .loc 1 495 29 is_stmt 0 view .LVU559 + 1585 0054 9968 ldr r1, [r3, #8] + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1586 .loc 1 495 13 view .LVU560 + 1587 0056 0A4A ldr r2, .L71+4 + 1588 0058 0A40 ands r2, r2, r1 + 1589 .LVL154: + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1590 .loc 1 496 5 is_stmt 1 view .LVU561 + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1591 .loc 1 496 8 is_stmt 0 view .LVU562 + 1592 005a 062A cmp r2, #6 + 1593 005c 0AD0 beq .L69 + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1594 .loc 1 496 9 discriminator 1 view .LVU563 + 1595 005e B2F5803F cmp r2, #65536 + 1596 0062 09D0 beq .L70 + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1597 .loc 1 498 7 is_stmt 1 view .LVU564 + 1598 0064 1A68 ldr r2, [r3] + 1599 .LVL155: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1600 .loc 1 498 7 is_stmt 0 view .LVU565 + 1601 0066 42F00102 orr r2, r2, #1 + 1602 006a 1A60 str r2, [r3] + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1603 .loc 1 507 10 view .LVU566 + 1604 006c 0020 movs r0, #0 + 1605 .LVL156: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 171 + + + 1606 .loc 1 507 10 view .LVU567 + 1607 006e 7047 bx lr + 1608 .LVL157: + 1609 .L68: + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1610 .loc 1 483 12 view .LVU568 + 1611 0070 0120 movs r0, #1 + 1612 .LVL158: + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1613 .loc 1 483 12 view .LVU569 + 1614 0072 7047 bx lr + 1615 .LVL159: + 1616 .L69: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1617 .loc 1 507 10 view .LVU570 + 1618 0074 0020 movs r0, #0 + 1619 .LVL160: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1620 .loc 1 507 10 view .LVU571 + 1621 0076 7047 bx lr + 1622 .LVL161: + 1623 .L70: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1624 .loc 1 507 10 view .LVU572 + 1625 0078 0020 movs r0, #0 + 1626 .LVL162: + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1627 .loc 1 508 1 view .LVU573 + 1628 007a 7047 bx lr + 1629 .L72: + 1630 .align 2 + 1631 .L71: + 1632 007c 002C0140 .word 1073818624 + 1633 0080 07000100 .word 65543 + 1634 .cfi_endproc + 1635 .LFE335: + 1637 .section .text.HAL_TIM_Base_Stop_IT,"ax",%progbits + 1638 .align 1 + 1639 .global HAL_TIM_Base_Stop_IT + 1640 .syntax unified + 1641 .thumb + 1642 .thumb_func + 1644 HAL_TIM_Base_Stop_IT: + 1645 .LVL163: + 1646 .LFB336: + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1647 .loc 1 516 1 is_stmt 1 view -0 + 1648 .cfi_startproc + 1649 @ args = 0, pretend = 0, frame = 0 + 1650 @ frame_needed = 0, uses_anonymous_args = 0 + 1651 @ link register save eliminated. + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1652 .loc 1 518 3 view .LVU575 + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1653 .loc 1 521 3 view .LVU576 + 1654 0000 0268 ldr r2, [r0] + 1655 0002 D368 ldr r3, [r2, #12] + ARM GAS /tmp/cc0wMqvE.s page 172 + + + 1656 0004 23F00103 bic r3, r3, #1 + 1657 0008 D360 str r3, [r2, #12] + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1658 .loc 1 524 3 view .LVU577 + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1659 .loc 1 524 3 view .LVU578 + 1660 000a 0368 ldr r3, [r0] + 1661 000c 196A ldr r1, [r3, #32] + 1662 000e 41F21112 movw r2, #4369 + 1663 0012 1142 tst r1, r2 + 1664 0014 08D1 bne .L74 + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1665 .loc 1 524 3 discriminator 1 view .LVU579 + 1666 0016 196A ldr r1, [r3, #32] + 1667 0018 44F24442 movw r2, #17476 + 1668 001c 1142 tst r1, r2 + 1669 001e 03D1 bne .L74 + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1670 .loc 1 524 3 discriminator 3 view .LVU580 + 1671 0020 1A68 ldr r2, [r3] + 1672 0022 22F00102 bic r2, r2, #1 + 1673 0026 1A60 str r2, [r3] + 1674 .L74: + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1675 .loc 1 524 3 discriminator 5 view .LVU581 + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1676 .loc 1 527 3 discriminator 5 view .LVU582 + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1677 .loc 1 527 15 is_stmt 0 discriminator 5 view .LVU583 + 1678 0028 0123 movs r3, #1 + 1679 002a 80F83D30 strb r3, [r0, #61] + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1680 .loc 1 530 3 is_stmt 1 discriminator 5 view .LVU584 + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1681 .loc 1 531 1 is_stmt 0 discriminator 5 view .LVU585 + 1682 002e 0020 movs r0, #0 + 1683 .LVL164: + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1684 .loc 1 531 1 discriminator 5 view .LVU586 + 1685 0030 7047 bx lr + 1686 .cfi_endproc + 1687 .LFE336: + 1689 .section .text.HAL_TIM_Base_Start_DMA,"ax",%progbits + 1690 .align 1 + 1691 .global HAL_TIM_Base_Start_DMA + 1692 .syntax unified + 1693 .thumb + 1694 .thumb_func + 1696 HAL_TIM_Base_Start_DMA: + 1697 .LVL165: + 1698 .LFB337: + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 1699 .loc 1 541 1 is_stmt 1 view -0 + 1700 .cfi_startproc + 1701 @ args = 0, pretend = 0, frame = 0 + 1702 @ frame_needed = 0, uses_anonymous_args = 0 + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + ARM GAS /tmp/cc0wMqvE.s page 173 + + + 1703 .loc 1 541 1 is_stmt 0 view .LVU588 + 1704 0000 38B5 push {r3, r4, r5, lr} + 1705 .LCFI21: + 1706 .cfi_def_cfa_offset 16 + 1707 .cfi_offset 3, -16 + 1708 .cfi_offset 4, -12 + 1709 .cfi_offset 5, -8 + 1710 .cfi_offset 14, -4 + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1711 .loc 1 542 3 is_stmt 1 view .LVU589 + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1712 .loc 1 545 3 view .LVU590 + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1713 .loc 1 548 3 view .LVU591 + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1714 .loc 1 548 11 is_stmt 0 view .LVU592 + 1715 0002 90F83D40 ldrb r4, [r0, #61] @ zero_extendqisi2 + 1716 0006 E4B2 uxtb r4, r4 + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1717 .loc 1 548 6 view .LVU593 + 1718 0008 022C cmp r4, #2 + 1719 000a 51D0 beq .L76 + 1720 000c 0546 mov r5, r0 + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1721 .loc 1 552 8 is_stmt 1 view .LVU594 + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1722 .loc 1 552 16 is_stmt 0 view .LVU595 + 1723 000e 90F83D40 ldrb r4, [r0, #61] @ zero_extendqisi2 + 1724 0012 E4B2 uxtb r4, r4 + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1725 .loc 1 552 11 view .LVU596 + 1726 0014 012C cmp r4, #1 + 1727 0016 4AD1 bne .L80 + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1728 .loc 1 554 5 is_stmt 1 view .LVU597 + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1729 .loc 1 554 8 is_stmt 0 view .LVU598 + 1730 0018 0029 cmp r1, #0 + 1731 001a 37D0 beq .L84 + 1732 .L77: + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1733 .loc 1 560 7 is_stmt 1 view .LVU599 + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1734 .loc 1 560 19 is_stmt 0 view .LVU600 + 1735 001c 0223 movs r3, #2 + 1736 001e 85F83D30 strb r3, [r5, #61] + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 1737 .loc 1 569 3 is_stmt 1 view .LVU601 + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 1738 .loc 1 569 13 is_stmt 0 view .LVU602 + 1739 0022 2B6A ldr r3, [r5, #32] + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 1740 .loc 1 569 51 view .LVU603 + 1741 0024 2548 ldr r0, .L85 + 1742 .LVL166: + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 1743 .loc 1 569 51 view .LVU604 + ARM GAS /tmp/cc0wMqvE.s page 174 + + + 1744 0026 D862 str r0, [r3, #44] + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1745 .loc 1 570 3 is_stmt 1 view .LVU605 + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1746 .loc 1 570 13 is_stmt 0 view .LVU606 + 1747 0028 2B6A ldr r3, [r5, #32] + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1748 .loc 1 570 55 view .LVU607 + 1749 002a 2548 ldr r0, .L85+4 + 1750 002c 1863 str r0, [r3, #48] + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1751 .loc 1 573 3 is_stmt 1 view .LVU608 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1752 .loc 1 573 13 is_stmt 0 view .LVU609 + 1753 002e 2B6A ldr r3, [r5, #32] + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1754 .loc 1 573 52 view .LVU610 + 1755 0030 2448 ldr r0, .L85+8 + 1756 0032 5863 str r0, [r3, #52] + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 1757 .loc 1 576 3 is_stmt 1 view .LVU611 + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 1758 .loc 1 576 87 is_stmt 0 view .LVU612 + 1759 0034 2868 ldr r0, [r5] + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 1760 .loc 1 576 7 view .LVU613 + 1761 0036 1346 mov r3, r2 + 1762 0038 00F12C02 add r2, r0, #44 + 1763 .LVL167: + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 1764 .loc 1 576 7 view .LVU614 + 1765 003c 286A ldr r0, [r5, #32] + 1766 003e FFF7FEFF bl HAL_DMA_Start_IT + 1767 .LVL168: + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 1768 .loc 1 576 6 view .LVU615 + 1769 0042 0146 mov r1, r0 + 1770 0044 0028 cmp r0, #0 + 1771 0046 33D1 bne .L76 + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1772 .loc 1 584 3 is_stmt 1 view .LVU616 + 1773 0048 2A68 ldr r2, [r5] + 1774 004a D368 ldr r3, [r2, #12] + 1775 004c 43F48073 orr r3, r3, #256 + 1776 0050 D360 str r3, [r2, #12] + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1777 .loc 1 587 3 view .LVU617 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1778 .loc 1 587 7 is_stmt 0 view .LVU618 + 1779 0052 2B68 ldr r3, [r5] + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1780 .loc 1 587 6 view .LVU619 + 1781 0054 1C4A ldr r2, .L85+12 + 1782 0056 9342 cmp r3, r2 + 1783 0058 1BD0 beq .L78 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1784 .loc 1 587 7 discriminator 1 view .LVU620 + ARM GAS /tmp/cc0wMqvE.s page 175 + + + 1785 005a B3F1804F cmp r3, #1073741824 + 1786 005e 18D0 beq .L78 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1787 .loc 1 587 7 discriminator 2 view .LVU621 + 1788 0060 A2F59432 sub r2, r2, #75776 + 1789 0064 9342 cmp r3, r2 + 1790 0066 14D0 beq .L78 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1791 .loc 1 587 7 discriminator 3 view .LVU622 + 1792 0068 02F58062 add r2, r2, #1024 + 1793 006c 9342 cmp r3, r2 + 1794 006e 10D0 beq .L78 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1795 .loc 1 587 7 discriminator 4 view .LVU623 + 1796 0070 02F59632 add r2, r2, #76800 + 1797 0074 9342 cmp r3, r2 + 1798 0076 0CD0 beq .L78 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1799 .loc 1 587 7 discriminator 5 view .LVU624 + 1800 0078 02F54062 add r2, r2, #3072 + 1801 007c 9342 cmp r3, r2 + 1802 007e 08D0 beq .L78 + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1803 .loc 1 597 5 is_stmt 1 view .LVU625 + 1804 0080 1A68 ldr r2, [r3] + 1805 0082 42F00102 orr r2, r2, #1 + 1806 0086 1A60 str r2, [r3] + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1807 .loc 1 601 10 is_stmt 0 view .LVU626 + 1808 0088 0446 mov r4, r0 + 1809 008a 11E0 b .L76 + 1810 .LVL169: + 1811 .L84: + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1812 .loc 1 554 25 discriminator 1 view .LVU627 + 1813 008c 002A cmp r2, #0 + 1814 008e C5D0 beq .L77 + 1815 0090 0EE0 b .L76 + 1816 .LVL170: + 1817 .L78: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1818 .loc 1 589 5 is_stmt 1 view .LVU628 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1819 .loc 1 589 29 is_stmt 0 view .LVU629 + 1820 0092 9868 ldr r0, [r3, #8] + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1821 .loc 1 589 13 view .LVU630 + 1822 0094 0D4A ldr r2, .L85+16 + 1823 0096 0240 ands r2, r2, r0 + 1824 .LVL171: + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1825 .loc 1 590 5 is_stmt 1 view .LVU631 + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 1826 .loc 1 590 8 is_stmt 0 view .LVU632 + 1827 0098 062A cmp r2, #6 + 1828 009a 0BD0 beq .L81 + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 176 + + + 1829 .loc 1 590 9 discriminator 1 view .LVU633 + 1830 009c B2F5803F cmp r2, #65536 + 1831 00a0 0AD0 beq .L82 + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1832 .loc 1 592 7 is_stmt 1 view .LVU634 + 1833 00a2 1A68 ldr r2, [r3] + 1834 .LVL172: + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1835 .loc 1 592 7 is_stmt 0 view .LVU635 + 1836 00a4 42F00102 orr r2, r2, #1 + 1837 00a8 1A60 str r2, [r3] + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1838 .loc 1 601 10 view .LVU636 + 1839 00aa 0C46 mov r4, r1 + 1840 00ac 00E0 b .L76 + 1841 .LVL173: + 1842 .L80: + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1843 .loc 1 565 12 view .LVU637 + 1844 00ae 0124 movs r4, #1 + 1845 .LVL174: + 1846 .L76: + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1847 .loc 1 602 1 view .LVU638 + 1848 00b0 2046 mov r0, r4 + 1849 00b2 38BD pop {r3, r4, r5, pc} + 1850 .LVL175: + 1851 .L81: + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1852 .loc 1 601 10 view .LVU639 + 1853 00b4 0C46 mov r4, r1 + 1854 00b6 FBE7 b .L76 + 1855 .L82: + 1856 00b8 0C46 mov r4, r1 + 1857 00ba F9E7 b .L76 + 1858 .L86: + 1859 .align 2 + 1860 .L85: + 1861 00bc 00000000 .word TIM_DMAPeriodElapsedCplt + 1862 00c0 00000000 .word TIM_DMAPeriodElapsedHalfCplt + 1863 00c4 00000000 .word TIM_DMAError + 1864 00c8 002C0140 .word 1073818624 + 1865 00cc 07000100 .word 65543 + 1866 .cfi_endproc + 1867 .LFE337: + 1869 .section .text.HAL_TIM_Base_Stop_DMA,"ax",%progbits + 1870 .align 1 + 1871 .global HAL_TIM_Base_Stop_DMA + 1872 .syntax unified + 1873 .thumb + 1874 .thumb_func + 1876 HAL_TIM_Base_Stop_DMA: + 1877 .LVL176: + 1878 .LFB338: + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1879 .loc 1 610 1 is_stmt 1 view -0 + 1880 .cfi_startproc + ARM GAS /tmp/cc0wMqvE.s page 177 + + + 1881 @ args = 0, pretend = 0, frame = 0 + 1882 @ frame_needed = 0, uses_anonymous_args = 0 + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1883 .loc 1 610 1 is_stmt 0 view .LVU641 + 1884 0000 10B5 push {r4, lr} + 1885 .LCFI22: + 1886 .cfi_def_cfa_offset 8 + 1887 .cfi_offset 4, -8 + 1888 .cfi_offset 14, -4 + 1889 0002 0446 mov r4, r0 + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1890 .loc 1 612 3 is_stmt 1 view .LVU642 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1891 .loc 1 615 3 view .LVU643 + 1892 0004 0268 ldr r2, [r0] + 1893 0006 D368 ldr r3, [r2, #12] + 1894 0008 23F48073 bic r3, r3, #256 + 1895 000c D360 str r3, [r2, #12] + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1896 .loc 1 617 3 view .LVU644 + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1897 .loc 1 617 9 is_stmt 0 view .LVU645 + 1898 000e 006A ldr r0, [r0, #32] + 1899 .LVL177: + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1900 .loc 1 617 9 view .LVU646 + 1901 0010 FFF7FEFF bl HAL_DMA_Abort_IT + 1902 .LVL178: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1903 .loc 1 620 3 is_stmt 1 view .LVU647 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1904 .loc 1 620 3 view .LVU648 + 1905 0014 2368 ldr r3, [r4] + 1906 0016 196A ldr r1, [r3, #32] + 1907 0018 41F21112 movw r2, #4369 + 1908 001c 1142 tst r1, r2 + 1909 001e 08D1 bne .L88 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1910 .loc 1 620 3 discriminator 1 view .LVU649 + 1911 0020 196A ldr r1, [r3, #32] + 1912 0022 44F24442 movw r2, #17476 + 1913 0026 1142 tst r1, r2 + 1914 0028 03D1 bne .L88 + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1915 .loc 1 620 3 discriminator 3 view .LVU650 + 1916 002a 1A68 ldr r2, [r3] + 1917 002c 22F00102 bic r2, r2, #1 + 1918 0030 1A60 str r2, [r3] + 1919 .L88: + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1920 .loc 1 620 3 discriminator 5 view .LVU651 + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1921 .loc 1 623 3 discriminator 5 view .LVU652 + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1922 .loc 1 623 15 is_stmt 0 discriminator 5 view .LVU653 + 1923 0032 0123 movs r3, #1 + 1924 0034 84F83D30 strb r3, [r4, #61] + ARM GAS /tmp/cc0wMqvE.s page 178 + + + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 1925 .loc 1 626 3 is_stmt 1 discriminator 5 view .LVU654 + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1926 .loc 1 627 1 is_stmt 0 discriminator 5 view .LVU655 + 1927 0038 0020 movs r0, #0 + 1928 003a 10BD pop {r4, pc} + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1929 .loc 1 627 1 discriminator 5 view .LVU656 + 1930 .cfi_endproc + 1931 .LFE338: + 1933 .section .text.HAL_TIM_OC_MspInit,"ax",%progbits + 1934 .align 1 + 1935 .weak HAL_TIM_OC_MspInit + 1936 .syntax unified + 1937 .thumb + 1938 .thumb_func + 1940 HAL_TIM_OC_MspInit: + 1941 .LVL179: + 1942 .LFB341: + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 1943 .loc 1 767 1 is_stmt 1 view -0 + 1944 .cfi_startproc + 1945 @ args = 0, pretend = 0, frame = 0 + 1946 @ frame_needed = 0, uses_anonymous_args = 0 + 1947 @ link register save eliminated. + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1948 .loc 1 769 3 view .LVU658 + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1949 .loc 1 774 1 is_stmt 0 view .LVU659 + 1950 0000 7047 bx lr + 1951 .cfi_endproc + 1952 .LFE341: + 1954 .section .text.HAL_TIM_OC_MspDeInit,"ax",%progbits + 1955 .align 1 + 1956 .weak HAL_TIM_OC_MspDeInit + 1957 .syntax unified + 1958 .thumb + 1959 .thumb_func + 1961 HAL_TIM_OC_MspDeInit: + 1962 .LVL180: + 1963 .LFB342: + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 1964 .loc 1 782 1 is_stmt 1 view -0 + 1965 .cfi_startproc + 1966 @ args = 0, pretend = 0, frame = 0 + 1967 @ frame_needed = 0, uses_anonymous_args = 0 + 1968 @ link register save eliminated. + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1969 .loc 1 784 3 view .LVU661 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1970 .loc 1 789 1 is_stmt 0 view .LVU662 + 1971 0000 7047 bx lr + 1972 .cfi_endproc + 1973 .LFE342: + 1975 .section .text.HAL_TIM_OC_DeInit,"ax",%progbits + 1976 .align 1 + 1977 .global HAL_TIM_OC_DeInit + ARM GAS /tmp/cc0wMqvE.s page 179 + + + 1978 .syntax unified + 1979 .thumb + 1980 .thumb_func + 1982 HAL_TIM_OC_DeInit: + 1983 .LVL181: + 1984 .LFB340: + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1985 .loc 1 724 1 is_stmt 1 view -0 + 1986 .cfi_startproc + 1987 @ args = 0, pretend = 0, frame = 0 + 1988 @ frame_needed = 0, uses_anonymous_args = 0 + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 1989 .loc 1 724 1 is_stmt 0 view .LVU664 + 1990 0000 10B5 push {r4, lr} + 1991 .LCFI23: + 1992 .cfi_def_cfa_offset 8 + 1993 .cfi_offset 4, -8 + 1994 .cfi_offset 14, -4 + 1995 0002 0446 mov r4, r0 + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1996 .loc 1 726 3 is_stmt 1 view .LVU665 + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1997 .loc 1 728 3 view .LVU666 + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 1998 .loc 1 728 15 is_stmt 0 view .LVU667 + 1999 0004 0223 movs r3, #2 + 2000 0006 80F83D30 strb r3, [r0, #61] + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2001 .loc 1 731 3 is_stmt 1 view .LVU668 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2002 .loc 1 731 3 view .LVU669 + 2003 000a 0368 ldr r3, [r0] + 2004 000c 196A ldr r1, [r3, #32] + 2005 000e 41F21112 movw r2, #4369 + 2006 0012 1142 tst r1, r2 + 2007 0014 08D1 bne .L93 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2008 .loc 1 731 3 discriminator 1 view .LVU670 + 2009 0016 196A ldr r1, [r3, #32] + 2010 0018 44F24442 movw r2, #17476 + 2011 001c 1142 tst r1, r2 + 2012 001e 03D1 bne .L93 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2013 .loc 1 731 3 discriminator 3 view .LVU671 + 2014 0020 1A68 ldr r2, [r3] + 2015 0022 22F00102 bic r2, r2, #1 + 2016 0026 1A60 str r2, [r3] + 2017 .L93: + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2018 .loc 1 731 3 discriminator 5 view .LVU672 + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2019 .loc 1 742 3 discriminator 5 view .LVU673 + 2020 0028 2046 mov r0, r4 + 2021 .LVL182: + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2022 .loc 1 742 3 is_stmt 0 discriminator 5 view .LVU674 + 2023 002a FFF7FEFF bl HAL_TIM_OC_MspDeInit + ARM GAS /tmp/cc0wMqvE.s page 180 + + + 2024 .LVL183: + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2025 .loc 1 746 3 is_stmt 1 discriminator 5 view .LVU675 + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2026 .loc 1 746 23 is_stmt 0 discriminator 5 view .LVU676 + 2027 002e 0020 movs r0, #0 + 2028 0030 84F84800 strb r0, [r4, #72] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2029 .loc 1 749 3 is_stmt 1 discriminator 5 view .LVU677 + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2030 .loc 1 749 3 discriminator 5 view .LVU678 + 2031 0034 84F83E00 strb r0, [r4, #62] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2032 .loc 1 749 3 discriminator 5 view .LVU679 + 2033 0038 84F83F00 strb r0, [r4, #63] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2034 .loc 1 749 3 discriminator 5 view .LVU680 + 2035 003c 84F84000 strb r0, [r4, #64] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2036 .loc 1 749 3 discriminator 5 view .LVU681 + 2037 0040 84F84100 strb r0, [r4, #65] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2038 .loc 1 749 3 discriminator 5 view .LVU682 + 2039 0044 84F84200 strb r0, [r4, #66] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2040 .loc 1 749 3 discriminator 5 view .LVU683 + 2041 0048 84F84300 strb r0, [r4, #67] + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2042 .loc 1 749 3 discriminator 5 view .LVU684 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2043 .loc 1 750 3 discriminator 5 view .LVU685 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2044 .loc 1 750 3 discriminator 5 view .LVU686 + 2045 004c 84F84400 strb r0, [r4, #68] + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2046 .loc 1 750 3 discriminator 5 view .LVU687 + 2047 0050 84F84500 strb r0, [r4, #69] + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2048 .loc 1 750 3 discriminator 5 view .LVU688 + 2049 0054 84F84600 strb r0, [r4, #70] + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2050 .loc 1 750 3 discriminator 5 view .LVU689 + 2051 0058 84F84700 strb r0, [r4, #71] + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2052 .loc 1 750 3 discriminator 5 view .LVU690 + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2053 .loc 1 753 3 discriminator 5 view .LVU691 + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2054 .loc 1 753 15 is_stmt 0 discriminator 5 view .LVU692 + 2055 005c 84F83D00 strb r0, [r4, #61] + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2056 .loc 1 756 3 is_stmt 1 discriminator 5 view .LVU693 + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2057 .loc 1 756 3 discriminator 5 view .LVU694 + 2058 0060 84F83C00 strb r0, [r4, #60] + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2059 .loc 1 756 3 discriminator 5 view .LVU695 + ARM GAS /tmp/cc0wMqvE.s page 181 + + + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2060 .loc 1 758 3 discriminator 5 view .LVU696 + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2061 .loc 1 759 1 is_stmt 0 discriminator 5 view .LVU697 + 2062 0064 10BD pop {r4, pc} + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2063 .loc 1 759 1 discriminator 5 view .LVU698 + 2064 .cfi_endproc + 2065 .LFE340: + 2067 .section .text.HAL_TIM_PWM_MspInit,"ax",%progbits + 2068 .align 1 + 2069 .weak HAL_TIM_PWM_MspInit + 2070 .syntax unified + 2071 .thumb + 2072 .thumb_func + 2074 HAL_TIM_PWM_MspInit: + 2075 .LVL184: + 2076 .LFB351: +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2077 .loc 1 1434 1 is_stmt 1 view -0 + 2078 .cfi_startproc + 2079 @ args = 0, pretend = 0, frame = 0 + 2080 @ frame_needed = 0, uses_anonymous_args = 0 + 2081 @ link register save eliminated. +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2082 .loc 1 1436 3 view .LVU700 +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2083 .loc 1 1441 1 is_stmt 0 view .LVU701 + 2084 0000 7047 bx lr + 2085 .cfi_endproc + 2086 .LFE351: + 2088 .section .text.HAL_TIM_PWM_MspDeInit,"ax",%progbits + 2089 .align 1 + 2090 .weak HAL_TIM_PWM_MspDeInit + 2091 .syntax unified + 2092 .thumb + 2093 .thumb_func + 2095 HAL_TIM_PWM_MspDeInit: + 2096 .LVL185: + 2097 .LFB352: +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2098 .loc 1 1449 1 is_stmt 1 view -0 + 2099 .cfi_startproc + 2100 @ args = 0, pretend = 0, frame = 0 + 2101 @ frame_needed = 0, uses_anonymous_args = 0 + 2102 @ link register save eliminated. +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2103 .loc 1 1451 3 view .LVU703 +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2104 .loc 1 1456 1 is_stmt 0 view .LVU704 + 2105 0000 7047 bx lr + 2106 .cfi_endproc + 2107 .LFE352: + 2109 .section .text.HAL_TIM_PWM_DeInit,"ax",%progbits + 2110 .align 1 + 2111 .global HAL_TIM_PWM_DeInit + 2112 .syntax unified + ARM GAS /tmp/cc0wMqvE.s page 182 + + + 2113 .thumb + 2114 .thumb_func + 2116 HAL_TIM_PWM_DeInit: + 2117 .LVL186: + 2118 .LFB350: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2119 .loc 1 1391 1 is_stmt 1 view -0 + 2120 .cfi_startproc + 2121 @ args = 0, pretend = 0, frame = 0 + 2122 @ frame_needed = 0, uses_anonymous_args = 0 +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2123 .loc 1 1391 1 is_stmt 0 view .LVU706 + 2124 0000 10B5 push {r4, lr} + 2125 .LCFI24: + 2126 .cfi_def_cfa_offset 8 + 2127 .cfi_offset 4, -8 + 2128 .cfi_offset 14, -4 + 2129 0002 0446 mov r4, r0 +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2130 .loc 1 1393 3 is_stmt 1 view .LVU707 +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2131 .loc 1 1395 3 view .LVU708 +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2132 .loc 1 1395 15 is_stmt 0 view .LVU709 + 2133 0004 0223 movs r3, #2 + 2134 0006 80F83D30 strb r3, [r0, #61] +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2135 .loc 1 1398 3 is_stmt 1 view .LVU710 +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2136 .loc 1 1398 3 view .LVU711 + 2137 000a 0368 ldr r3, [r0] + 2138 000c 196A ldr r1, [r3, #32] + 2139 000e 41F21112 movw r2, #4369 + 2140 0012 1142 tst r1, r2 + 2141 0014 08D1 bne .L98 +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2142 .loc 1 1398 3 discriminator 1 view .LVU712 + 2143 0016 196A ldr r1, [r3, #32] + 2144 0018 44F24442 movw r2, #17476 + 2145 001c 1142 tst r1, r2 + 2146 001e 03D1 bne .L98 +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2147 .loc 1 1398 3 discriminator 3 view .LVU713 + 2148 0020 1A68 ldr r2, [r3] + 2149 0022 22F00102 bic r2, r2, #1 + 2150 0026 1A60 str r2, [r3] + 2151 .L98: +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2152 .loc 1 1398 3 discriminator 5 view .LVU714 +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2153 .loc 1 1409 3 discriminator 5 view .LVU715 + 2154 0028 2046 mov r0, r4 + 2155 .LVL187: +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2156 .loc 1 1409 3 is_stmt 0 discriminator 5 view .LVU716 + 2157 002a FFF7FEFF bl HAL_TIM_PWM_MspDeInit + 2158 .LVL188: + ARM GAS /tmp/cc0wMqvE.s page 183 + + +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2159 .loc 1 1413 3 is_stmt 1 discriminator 5 view .LVU717 +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2160 .loc 1 1413 23 is_stmt 0 discriminator 5 view .LVU718 + 2161 002e 0020 movs r0, #0 + 2162 0030 84F84800 strb r0, [r4, #72] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2163 .loc 1 1416 3 is_stmt 1 discriminator 5 view .LVU719 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2164 .loc 1 1416 3 discriminator 5 view .LVU720 + 2165 0034 84F83E00 strb r0, [r4, #62] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2166 .loc 1 1416 3 discriminator 5 view .LVU721 + 2167 0038 84F83F00 strb r0, [r4, #63] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2168 .loc 1 1416 3 discriminator 5 view .LVU722 + 2169 003c 84F84000 strb r0, [r4, #64] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2170 .loc 1 1416 3 discriminator 5 view .LVU723 + 2171 0040 84F84100 strb r0, [r4, #65] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2172 .loc 1 1416 3 discriminator 5 view .LVU724 + 2173 0044 84F84200 strb r0, [r4, #66] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2174 .loc 1 1416 3 discriminator 5 view .LVU725 + 2175 0048 84F84300 strb r0, [r4, #67] +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2176 .loc 1 1416 3 discriminator 5 view .LVU726 +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2177 .loc 1 1417 3 discriminator 5 view .LVU727 +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2178 .loc 1 1417 3 discriminator 5 view .LVU728 + 2179 004c 84F84400 strb r0, [r4, #68] +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2180 .loc 1 1417 3 discriminator 5 view .LVU729 + 2181 0050 84F84500 strb r0, [r4, #69] +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2182 .loc 1 1417 3 discriminator 5 view .LVU730 + 2183 0054 84F84600 strb r0, [r4, #70] +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2184 .loc 1 1417 3 discriminator 5 view .LVU731 + 2185 0058 84F84700 strb r0, [r4, #71] +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2186 .loc 1 1417 3 discriminator 5 view .LVU732 +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2187 .loc 1 1420 3 discriminator 5 view .LVU733 +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2188 .loc 1 1420 15 is_stmt 0 discriminator 5 view .LVU734 + 2189 005c 84F83D00 strb r0, [r4, #61] +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2190 .loc 1 1423 3 is_stmt 1 discriminator 5 view .LVU735 +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2191 .loc 1 1423 3 discriminator 5 view .LVU736 + 2192 0060 84F83C00 strb r0, [r4, #60] +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2193 .loc 1 1423 3 discriminator 5 view .LVU737 +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 184 + + + 2194 .loc 1 1425 3 discriminator 5 view .LVU738 +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2195 .loc 1 1426 1 is_stmt 0 discriminator 5 view .LVU739 + 2196 0064 10BD pop {r4, pc} +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2197 .loc 1 1426 1 discriminator 5 view .LVU740 + 2198 .cfi_endproc + 2199 .LFE350: + 2201 .section .text.HAL_TIM_IC_MspInit,"ax",%progbits + 2202 .align 1 + 2203 .weak HAL_TIM_IC_MspInit + 2204 .syntax unified + 2205 .thumb + 2206 .thumb_func + 2208 HAL_TIM_IC_MspInit: + 2209 .LVL189: + 2210 .LFB361: +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2211 .loc 1 2100 1 is_stmt 1 view -0 + 2212 .cfi_startproc + 2213 @ args = 0, pretend = 0, frame = 0 + 2214 @ frame_needed = 0, uses_anonymous_args = 0 + 2215 @ link register save eliminated. +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2216 .loc 1 2102 3 view .LVU742 +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2217 .loc 1 2107 1 is_stmt 0 view .LVU743 + 2218 0000 7047 bx lr + 2219 .cfi_endproc + 2220 .LFE361: + 2222 .section .text.HAL_TIM_IC_MspDeInit,"ax",%progbits + 2223 .align 1 + 2224 .weak HAL_TIM_IC_MspDeInit + 2225 .syntax unified + 2226 .thumb + 2227 .thumb_func + 2229 HAL_TIM_IC_MspDeInit: + 2230 .LVL190: + 2231 .LFB362: +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2232 .loc 1 2115 1 is_stmt 1 view -0 + 2233 .cfi_startproc + 2234 @ args = 0, pretend = 0, frame = 0 + 2235 @ frame_needed = 0, uses_anonymous_args = 0 + 2236 @ link register save eliminated. +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2237 .loc 1 2117 3 view .LVU745 +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2238 .loc 1 2122 1 is_stmt 0 view .LVU746 + 2239 0000 7047 bx lr + 2240 .cfi_endproc + 2241 .LFE362: + 2243 .section .text.HAL_TIM_IC_DeInit,"ax",%progbits + 2244 .align 1 + 2245 .global HAL_TIM_IC_DeInit + 2246 .syntax unified + 2247 .thumb + ARM GAS /tmp/cc0wMqvE.s page 185 + + + 2248 .thumb_func + 2250 HAL_TIM_IC_DeInit: + 2251 .LVL191: + 2252 .LFB360: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2253 .loc 1 2057 1 is_stmt 1 view -0 + 2254 .cfi_startproc + 2255 @ args = 0, pretend = 0, frame = 0 + 2256 @ frame_needed = 0, uses_anonymous_args = 0 +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2257 .loc 1 2057 1 is_stmt 0 view .LVU748 + 2258 0000 10B5 push {r4, lr} + 2259 .LCFI25: + 2260 .cfi_def_cfa_offset 8 + 2261 .cfi_offset 4, -8 + 2262 .cfi_offset 14, -4 + 2263 0002 0446 mov r4, r0 +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2264 .loc 1 2059 3 is_stmt 1 view .LVU749 +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2265 .loc 1 2061 3 view .LVU750 +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2266 .loc 1 2061 15 is_stmt 0 view .LVU751 + 2267 0004 0223 movs r3, #2 + 2268 0006 80F83D30 strb r3, [r0, #61] +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2269 .loc 1 2064 3 is_stmt 1 view .LVU752 +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2270 .loc 1 2064 3 view .LVU753 + 2271 000a 0368 ldr r3, [r0] + 2272 000c 196A ldr r1, [r3, #32] + 2273 000e 41F21112 movw r2, #4369 + 2274 0012 1142 tst r1, r2 + 2275 0014 08D1 bne .L103 +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2276 .loc 1 2064 3 discriminator 1 view .LVU754 + 2277 0016 196A ldr r1, [r3, #32] + 2278 0018 44F24442 movw r2, #17476 + 2279 001c 1142 tst r1, r2 + 2280 001e 03D1 bne .L103 +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2281 .loc 1 2064 3 discriminator 3 view .LVU755 + 2282 0020 1A68 ldr r2, [r3] + 2283 0022 22F00102 bic r2, r2, #1 + 2284 0026 1A60 str r2, [r3] + 2285 .L103: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2286 .loc 1 2064 3 discriminator 5 view .LVU756 +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2287 .loc 1 2075 3 discriminator 5 view .LVU757 + 2288 0028 2046 mov r0, r4 + 2289 .LVL192: +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2290 .loc 1 2075 3 is_stmt 0 discriminator 5 view .LVU758 + 2291 002a FFF7FEFF bl HAL_TIM_IC_MspDeInit + 2292 .LVL193: +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 186 + + + 2293 .loc 1 2079 3 is_stmt 1 discriminator 5 view .LVU759 +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2294 .loc 1 2079 23 is_stmt 0 discriminator 5 view .LVU760 + 2295 002e 0020 movs r0, #0 + 2296 0030 84F84800 strb r0, [r4, #72] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2297 .loc 1 2082 3 is_stmt 1 discriminator 5 view .LVU761 +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2298 .loc 1 2082 3 discriminator 5 view .LVU762 + 2299 0034 84F83E00 strb r0, [r4, #62] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2300 .loc 1 2082 3 discriminator 5 view .LVU763 + 2301 0038 84F83F00 strb r0, [r4, #63] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2302 .loc 1 2082 3 discriminator 5 view .LVU764 + 2303 003c 84F84000 strb r0, [r4, #64] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2304 .loc 1 2082 3 discriminator 5 view .LVU765 + 2305 0040 84F84100 strb r0, [r4, #65] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2306 .loc 1 2082 3 discriminator 5 view .LVU766 + 2307 0044 84F84200 strb r0, [r4, #66] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2308 .loc 1 2082 3 discriminator 5 view .LVU767 + 2309 0048 84F84300 strb r0, [r4, #67] +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_RESET); + 2310 .loc 1 2082 3 discriminator 5 view .LVU768 +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2311 .loc 1 2083 3 discriminator 5 view .LVU769 +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2312 .loc 1 2083 3 discriminator 5 view .LVU770 + 2313 004c 84F84400 strb r0, [r4, #68] +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2314 .loc 1 2083 3 discriminator 5 view .LVU771 + 2315 0050 84F84500 strb r0, [r4, #69] +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2316 .loc 1 2083 3 discriminator 5 view .LVU772 + 2317 0054 84F84600 strb r0, [r4, #70] +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2318 .loc 1 2083 3 discriminator 5 view .LVU773 + 2319 0058 84F84700 strb r0, [r4, #71] +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2320 .loc 1 2083 3 discriminator 5 view .LVU774 +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2321 .loc 1 2086 3 discriminator 5 view .LVU775 +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2322 .loc 1 2086 15 is_stmt 0 discriminator 5 view .LVU776 + 2323 005c 84F83D00 strb r0, [r4, #61] +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2324 .loc 1 2089 3 is_stmt 1 discriminator 5 view .LVU777 +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2325 .loc 1 2089 3 discriminator 5 view .LVU778 + 2326 0060 84F83C00 strb r0, [r4, #60] +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2327 .loc 1 2089 3 discriminator 5 view .LVU779 +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2328 .loc 1 2091 3 discriminator 5 view .LVU780 + ARM GAS /tmp/cc0wMqvE.s page 187 + + +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2329 .loc 1 2092 1 is_stmt 0 discriminator 5 view .LVU781 + 2330 0064 10BD pop {r4, pc} +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2331 .loc 1 2092 1 discriminator 5 view .LVU782 + 2332 .cfi_endproc + 2333 .LFE360: + 2335 .section .text.HAL_TIM_OnePulse_MspInit,"ax",%progbits + 2336 .align 1 + 2337 .weak HAL_TIM_OnePulse_MspInit + 2338 .syntax unified + 2339 .thumb + 2340 .thumb_func + 2342 HAL_TIM_OnePulse_MspInit: + 2343 .LVL194: + 2344 .LFB371: +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2345 .loc 1 2759 1 is_stmt 1 view -0 + 2346 .cfi_startproc + 2347 @ args = 0, pretend = 0, frame = 0 + 2348 @ frame_needed = 0, uses_anonymous_args = 0 + 2349 @ link register save eliminated. +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2350 .loc 1 2761 3 view .LVU784 +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2351 .loc 1 2766 1 is_stmt 0 view .LVU785 + 2352 0000 7047 bx lr + 2353 .cfi_endproc + 2354 .LFE371: + 2356 .section .text.HAL_TIM_OnePulse_MspDeInit,"ax",%progbits + 2357 .align 1 + 2358 .weak HAL_TIM_OnePulse_MspDeInit + 2359 .syntax unified + 2360 .thumb + 2361 .thumb_func + 2363 HAL_TIM_OnePulse_MspDeInit: + 2364 .LVL195: + 2365 .LFB372: +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2366 .loc 1 2774 1 is_stmt 1 view -0 + 2367 .cfi_startproc + 2368 @ args = 0, pretend = 0, frame = 0 + 2369 @ frame_needed = 0, uses_anonymous_args = 0 + 2370 @ link register save eliminated. +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2371 .loc 1 2776 3 view .LVU787 +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2372 .loc 1 2781 1 is_stmt 0 view .LVU788 + 2373 0000 7047 bx lr + 2374 .cfi_endproc + 2375 .LFE372: + 2377 .section .text.HAL_TIM_OnePulse_DeInit,"ax",%progbits + 2378 .align 1 + 2379 .global HAL_TIM_OnePulse_DeInit + 2380 .syntax unified + 2381 .thumb + 2382 .thumb_func + ARM GAS /tmp/cc0wMqvE.s page 188 + + + 2384 HAL_TIM_OnePulse_DeInit: + 2385 .LVL196: + 2386 .LFB370: +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2387 .loc 1 2714 1 is_stmt 1 view -0 + 2388 .cfi_startproc + 2389 @ args = 0, pretend = 0, frame = 0 + 2390 @ frame_needed = 0, uses_anonymous_args = 0 +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2391 .loc 1 2714 1 is_stmt 0 view .LVU790 + 2392 0000 10B5 push {r4, lr} + 2393 .LCFI26: + 2394 .cfi_def_cfa_offset 8 + 2395 .cfi_offset 4, -8 + 2396 .cfi_offset 14, -4 + 2397 0002 0446 mov r4, r0 +2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2398 .loc 1 2716 3 is_stmt 1 view .LVU791 +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2399 .loc 1 2718 3 view .LVU792 +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2400 .loc 1 2718 15 is_stmt 0 view .LVU793 + 2401 0004 0223 movs r3, #2 + 2402 0006 80F83D30 strb r3, [r0, #61] +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2403 .loc 1 2721 3 is_stmt 1 view .LVU794 +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2404 .loc 1 2721 3 view .LVU795 + 2405 000a 0368 ldr r3, [r0] + 2406 000c 196A ldr r1, [r3, #32] + 2407 000e 41F21112 movw r2, #4369 + 2408 0012 1142 tst r1, r2 + 2409 0014 08D1 bne .L108 +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2410 .loc 1 2721 3 discriminator 1 view .LVU796 + 2411 0016 196A ldr r1, [r3, #32] + 2412 0018 44F24442 movw r2, #17476 + 2413 001c 1142 tst r1, r2 + 2414 001e 03D1 bne .L108 +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2415 .loc 1 2721 3 discriminator 3 view .LVU797 + 2416 0020 1A68 ldr r2, [r3] + 2417 0022 22F00102 bic r2, r2, #1 + 2418 0026 1A60 str r2, [r3] + 2419 .L108: +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2420 .loc 1 2721 3 discriminator 5 view .LVU798 +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2421 .loc 1 2732 3 discriminator 5 view .LVU799 + 2422 0028 2046 mov r0, r4 + 2423 .LVL197: +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2424 .loc 1 2732 3 is_stmt 0 discriminator 5 view .LVU800 + 2425 002a FFF7FEFF bl HAL_TIM_OnePulse_MspDeInit + 2426 .LVL198: +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2427 .loc 1 2736 3 is_stmt 1 discriminator 5 view .LVU801 + ARM GAS /tmp/cc0wMqvE.s page 189 + + +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2428 .loc 1 2736 23 is_stmt 0 discriminator 5 view .LVU802 + 2429 002e 0020 movs r0, #0 + 2430 0030 84F84800 strb r0, [r4, #72] +2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 2431 .loc 1 2739 3 is_stmt 1 discriminator 5 view .LVU803 + 2432 0034 84F83E00 strb r0, [r4, #62] +2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + 2433 .loc 1 2740 3 discriminator 5 view .LVU804 + 2434 0038 84F83F00 strb r0, [r4, #63] +2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 2435 .loc 1 2741 3 discriminator 5 view .LVU805 + 2436 003c 84F84400 strb r0, [r4, #68] +2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2437 .loc 1 2742 3 discriminator 5 view .LVU806 + 2438 0040 84F84500 strb r0, [r4, #69] +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2439 .loc 1 2745 3 discriminator 5 view .LVU807 +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2440 .loc 1 2745 15 is_stmt 0 discriminator 5 view .LVU808 + 2441 0044 84F83D00 strb r0, [r4, #61] +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2442 .loc 1 2748 3 is_stmt 1 discriminator 5 view .LVU809 +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2443 .loc 1 2748 3 discriminator 5 view .LVU810 + 2444 0048 84F83C00 strb r0, [r4, #60] +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2445 .loc 1 2748 3 discriminator 5 view .LVU811 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2446 .loc 1 2750 3 discriminator 5 view .LVU812 +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2447 .loc 1 2751 1 is_stmt 0 discriminator 5 view .LVU813 + 2448 004c 10BD pop {r4, pc} +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2449 .loc 1 2751 1 discriminator 5 view .LVU814 + 2450 .cfi_endproc + 2451 .LFE370: + 2453 .section .text.HAL_TIM_Encoder_MspInit,"ax",%progbits + 2454 .align 1 + 2455 .weak HAL_TIM_Encoder_MspInit + 2456 .syntax unified + 2457 .thumb + 2458 .thumb_func + 2460 HAL_TIM_Encoder_MspInit: + 2461 .LVL199: + 2462 .LFB379: +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2463 .loc 1 3195 1 is_stmt 1 view -0 + 2464 .cfi_startproc + 2465 @ args = 0, pretend = 0, frame = 0 + 2466 @ frame_needed = 0, uses_anonymous_args = 0 + 2467 @ link register save eliminated. +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2468 .loc 1 3197 3 view .LVU816 +3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2469 .loc 1 3202 1 is_stmt 0 view .LVU817 + 2470 0000 7047 bx lr + ARM GAS /tmp/cc0wMqvE.s page 190 + + + 2471 .cfi_endproc + 2472 .LFE379: + 2474 .section .text.HAL_TIM_Encoder_MspDeInit,"ax",%progbits + 2475 .align 1 + 2476 .weak HAL_TIM_Encoder_MspDeInit + 2477 .syntax unified + 2478 .thumb + 2479 .thumb_func + 2481 HAL_TIM_Encoder_MspDeInit: + 2482 .LVL200: + 2483 .LFB380: +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 2484 .loc 1 3210 1 is_stmt 1 view -0 + 2485 .cfi_startproc + 2486 @ args = 0, pretend = 0, frame = 0 + 2487 @ frame_needed = 0, uses_anonymous_args = 0 + 2488 @ link register save eliminated. +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2489 .loc 1 3212 3 view .LVU819 +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2490 .loc 1 3217 1 is_stmt 0 view .LVU820 + 2491 0000 7047 bx lr + 2492 .cfi_endproc + 2493 .LFE380: + 2495 .section .text.HAL_TIM_Encoder_DeInit,"ax",%progbits + 2496 .align 1 + 2497 .global HAL_TIM_Encoder_DeInit + 2498 .syntax unified + 2499 .thumb + 2500 .thumb_func + 2502 HAL_TIM_Encoder_DeInit: + 2503 .LVL201: + 2504 .LFB378: +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2505 .loc 1 3150 1 is_stmt 1 view -0 + 2506 .cfi_startproc + 2507 @ args = 0, pretend = 0, frame = 0 + 2508 @ frame_needed = 0, uses_anonymous_args = 0 +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 2509 .loc 1 3150 1 is_stmt 0 view .LVU822 + 2510 0000 10B5 push {r4, lr} + 2511 .LCFI27: + 2512 .cfi_def_cfa_offset 8 + 2513 .cfi_offset 4, -8 + 2514 .cfi_offset 14, -4 + 2515 0002 0446 mov r4, r0 +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2516 .loc 1 3152 3 is_stmt 1 view .LVU823 +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2517 .loc 1 3154 3 view .LVU824 +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2518 .loc 1 3154 15 is_stmt 0 view .LVU825 + 2519 0004 0223 movs r3, #2 + 2520 0006 80F83D30 strb r3, [r0, #61] +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2521 .loc 1 3157 3 is_stmt 1 view .LVU826 +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 191 + + + 2522 .loc 1 3157 3 view .LVU827 + 2523 000a 0368 ldr r3, [r0] + 2524 000c 196A ldr r1, [r3, #32] + 2525 000e 41F21112 movw r2, #4369 + 2526 0012 1142 tst r1, r2 + 2527 0014 08D1 bne .L113 +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2528 .loc 1 3157 3 discriminator 1 view .LVU828 + 2529 0016 196A ldr r1, [r3, #32] + 2530 0018 44F24442 movw r2, #17476 + 2531 001c 1142 tst r1, r2 + 2532 001e 03D1 bne .L113 +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2533 .loc 1 3157 3 discriminator 3 view .LVU829 + 2534 0020 1A68 ldr r2, [r3] + 2535 0022 22F00102 bic r2, r2, #1 + 2536 0026 1A60 str r2, [r3] + 2537 .L113: +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2538 .loc 1 3157 3 discriminator 5 view .LVU830 +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2539 .loc 1 3168 3 discriminator 5 view .LVU831 + 2540 0028 2046 mov r0, r4 + 2541 .LVL202: +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 2542 .loc 1 3168 3 is_stmt 0 discriminator 5 view .LVU832 + 2543 002a FFF7FEFF bl HAL_TIM_Encoder_MspDeInit + 2544 .LVL203: +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2545 .loc 1 3172 3 is_stmt 1 discriminator 5 view .LVU833 +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2546 .loc 1 3172 23 is_stmt 0 discriminator 5 view .LVU834 + 2547 002e 0020 movs r0, #0 + 2548 0030 84F84800 strb r0, [r4, #72] +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 2549 .loc 1 3175 3 is_stmt 1 discriminator 5 view .LVU835 + 2550 0034 84F83E00 strb r0, [r4, #62] +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + 2551 .loc 1 3176 3 discriminator 5 view .LVU836 + 2552 0038 84F83F00 strb r0, [r4, #63] +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 2553 .loc 1 3177 3 discriminator 5 view .LVU837 + 2554 003c 84F84400 strb r0, [r4, #68] +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2555 .loc 1 3178 3 discriminator 5 view .LVU838 + 2556 0040 84F84500 strb r0, [r4, #69] +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2557 .loc 1 3181 3 discriminator 5 view .LVU839 +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2558 .loc 1 3181 15 is_stmt 0 discriminator 5 view .LVU840 + 2559 0044 84F83D00 strb r0, [r4, #61] +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2560 .loc 1 3184 3 is_stmt 1 discriminator 5 view .LVU841 +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2561 .loc 1 3184 3 discriminator 5 view .LVU842 + 2562 0048 84F83C00 strb r0, [r4, #60] +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 192 + + + 2563 .loc 1 3184 3 discriminator 5 view .LVU843 +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2564 .loc 1 3186 3 discriminator 5 view .LVU844 +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2565 .loc 1 3187 1 is_stmt 0 discriminator 5 view .LVU845 + 2566 004c 10BD pop {r4, pc} +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2567 .loc 1 3187 1 discriminator 5 view .LVU846 + 2568 .cfi_endproc + 2569 .LFE378: + 2571 .section .text.HAL_TIM_DMABurst_MultiWriteStart,"ax",%progbits + 2572 .align 1 + 2573 .global HAL_TIM_DMABurst_MultiWriteStart + 2574 .syntax unified + 2575 .thumb + 2576 .thumb_func + 2578 HAL_TIM_DMABurst_MultiWriteStart: + 2579 .LVL204: + 2580 .LFB393: +4689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 2581 .loc 1 4689 1 is_stmt 1 view -0 + 2582 .cfi_startproc + 2583 @ args = 8, pretend = 0, frame = 0 + 2584 @ frame_needed = 0, uses_anonymous_args = 0 +4689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 2585 .loc 1 4689 1 is_stmt 0 view .LVU848 + 2586 0000 70B5 push {r4, r5, r6, lr} + 2587 .LCFI28: + 2588 .cfi_def_cfa_offset 16 + 2589 .cfi_offset 4, -16 + 2590 .cfi_offset 5, -12 + 2591 .cfi_offset 6, -8 + 2592 .cfi_offset 14, -4 + 2593 0002 0546 mov r5, r0 +4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2594 .loc 1 4690 3 is_stmt 1 view .LVU849 + 2595 .LVL205: +4693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_BASE(BurstBaseAddress)); + 2596 .loc 1 4693 3 view .LVU850 +4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + 2597 .loc 1 4694 3 view .LVU851 +4695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_LENGTH(BurstLength)); + 2598 .loc 1 4695 3 view .LVU852 +4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength)); + 2599 .loc 1 4696 3 view .LVU853 +4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2600 .loc 1 4697 3 view .LVU854 +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2601 .loc 1 4699 3 view .LVU855 +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2602 .loc 1 4699 11 is_stmt 0 view .LVU856 + 2603 0004 90F84800 ldrb r0, [r0, #72] @ zero_extendqisi2 + 2604 .LVL206: +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2605 .loc 1 4699 11 view .LVU857 + 2606 0008 C0B2 uxtb r0, r0 +4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 193 + + + 2607 .loc 1 4699 6 view .LVU858 + 2608 000a 0228 cmp r0, #2 + 2609 000c 4DD0 beq .L116 + 2610 000e 0E46 mov r6, r1 + 2611 0010 1446 mov r4, r2 + 2612 0012 1946 mov r1, r3 + 2613 .LVL207: +4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2614 .loc 1 4703 8 is_stmt 1 view .LVU859 +4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2615 .loc 1 4703 16 is_stmt 0 view .LVU860 + 2616 0014 95F84800 ldrb r0, [r5, #72] @ zero_extendqisi2 + 2617 0018 C0B2 uxtb r0, r0 +4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2618 .loc 1 4703 11 view .LVU861 + 2619 001a 0128 cmp r0, #1 + 2620 001c 1DD0 beq .L136 + 2621 .LVL208: + 2622 .L117: +4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2623 .loc 1 4717 3 is_stmt 1 view .LVU862 +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2624 .loc 1 4719 3 view .LVU863 + 2625 001e B4F5006F cmp r4, #2048 + 2626 0022 00F08C80 beq .L119 + 2627 0026 43D8 bhi .L120 + 2628 0028 B4F5007F cmp r4, #512 + 2629 002c 73D0 beq .L121 + 2630 002e B4F5806F cmp r4, #1024 + 2631 0032 1BD1 bne .L137 +4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2632 .loc 1 4760 7 view .LVU864 +4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2633 .loc 1 4760 17 is_stmt 0 view .LVU865 + 2634 0034 AB6A ldr r3, [r5, #40] +4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2635 .loc 1 4760 52 view .LVU866 + 2636 0036 574A ldr r2, .L143 + 2637 .LVL209: +4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2638 .loc 1 4760 52 view .LVU867 + 2639 0038 DA62 str r2, [r3, #44] +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2640 .loc 1 4761 7 is_stmt 1 view .LVU868 +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2641 .loc 1 4761 17 is_stmt 0 view .LVU869 + 2642 003a AB6A ldr r3, [r5, #40] +4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2643 .loc 1 4761 56 view .LVU870 + 2644 003c 564A ldr r2, .L143+4 + 2645 003e 1A63 str r2, [r3, #48] +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2646 .loc 1 4764 7 is_stmt 1 view .LVU871 +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2647 .loc 1 4764 17 is_stmt 0 view .LVU872 + 2648 0040 AB6A ldr r3, [r5, #40] +4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 194 + + + 2649 .loc 1 4764 53 view .LVU873 + 2650 0042 564A ldr r2, .L143+8 + 2651 0044 5A63 str r2, [r3, #52] +4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2652 .loc 1 4767 7 is_stmt 1 view .LVU874 +4768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2653 .loc 1 4768 43 is_stmt 0 view .LVU875 + 2654 0046 2A68 ldr r2, [r5] +4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2655 .loc 1 4767 11 view .LVU876 + 2656 0048 059B ldr r3, [sp, #20] + 2657 004a 02F57872 add r2, r2, #992 + 2658 004e A86A ldr r0, [r5, #40] + 2659 0050 FFF7FEFF bl HAL_DMA_Start_IT + 2660 .LVL210: +4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2661 .loc 1 4767 10 view .LVU877 + 2662 0054 F8B1 cbz r0, .L127 +4771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2663 .loc 1 4771 16 view .LVU878 + 2664 0056 0120 movs r0, #1 + 2665 0058 27E0 b .L116 + 2666 .LVL211: + 2667 .L136: +4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2668 .loc 1 4705 5 is_stmt 1 view .LVU879 +4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2669 .loc 1 4705 8 is_stmt 0 view .LVU880 + 2670 005a 1BB1 cbz r3, .L138 + 2671 .L118: +4711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2672 .loc 1 4711 7 is_stmt 1 view .LVU881 +4711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2673 .loc 1 4711 27 is_stmt 0 view .LVU882 + 2674 005c 0223 movs r3, #2 + 2675 005e 85F84830 strb r3, [r5, #72] + 2676 0062 DCE7 b .L117 + 2677 .L138: +4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2678 .loc 1 4705 31 discriminator 1 view .LVU883 + 2679 0064 049B ldr r3, [sp, #16] + 2680 0066 002B cmp r3, #0 + 2681 0068 F8D0 beq .L118 + 2682 006a 1EE0 b .L116 + 2683 .L137: +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2684 .loc 1 4719 3 view .LVU884 + 2685 006c B4F5807F cmp r4, #256 + 2686 0070 1CD1 bne .L139 +4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 2687 .loc 1 4724 7 is_stmt 1 view .LVU885 +4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 2688 .loc 1 4724 17 is_stmt 0 view .LVU886 + 2689 0072 2B6A ldr r3, [r5, #32] +4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 2690 .loc 1 4724 55 view .LVU887 + 2691 0074 4A4A ldr r2, .L143+12 + ARM GAS /tmp/cc0wMqvE.s page 195 + + + 2692 .LVL212: +4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 2693 .loc 1 4724 55 view .LVU888 + 2694 0076 DA62 str r2, [r3, #44] +4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2695 .loc 1 4725 7 is_stmt 1 view .LVU889 +4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2696 .loc 1 4725 17 is_stmt 0 view .LVU890 + 2697 0078 2B6A ldr r3, [r5, #32] +4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2698 .loc 1 4725 59 view .LVU891 + 2699 007a 4A4A ldr r2, .L143+16 + 2700 007c 1A63 str r2, [r3, #48] +4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2701 .loc 1 4728 7 is_stmt 1 view .LVU892 +4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2702 .loc 1 4728 17 is_stmt 0 view .LVU893 + 2703 007e 2B6A ldr r3, [r5, #32] +4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2704 .loc 1 4728 56 view .LVU894 + 2705 0080 464A ldr r2, .L143+8 + 2706 0082 5A63 str r2, [r3, #52] +4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2707 .loc 1 4731 7 is_stmt 1 view .LVU895 +4732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2708 .loc 1 4732 43 is_stmt 0 view .LVU896 + 2709 0084 2A68 ldr r2, [r5] +4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2710 .loc 1 4731 11 view .LVU897 + 2711 0086 059B ldr r3, [sp, #20] + 2712 0088 02F57872 add r2, r2, #992 + 2713 008c 286A ldr r0, [r5, #32] + 2714 008e FFF7FEFF bl HAL_DMA_Start_IT + 2715 .LVL213: +4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2716 .loc 1 4731 10 view .LVU898 + 2717 0092 0028 cmp r0, #0 + 2718 0094 7BD1 bne .L140 + 2719 .L127: + 2720 .LVL214: +4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM DMA Request */ + 2721 .loc 1 4855 5 is_stmt 1 view .LVU899 +4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM DMA Request */ + 2722 .loc 1 4855 9 is_stmt 0 view .LVU900 + 2723 0096 2B68 ldr r3, [r5] +4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM DMA Request */ + 2724 .loc 1 4855 45 view .LVU901 + 2725 0098 049A ldr r2, [sp, #16] + 2726 009a 1643 orrs r6, r6, r2 + 2727 .LVL215: +4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM DMA Request */ + 2728 .loc 1 4855 25 view .LVU902 + 2729 009c C3F8DC63 str r6, [r3, #988] +4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2730 .loc 1 4857 5 is_stmt 1 view .LVU903 + 2731 00a0 2A68 ldr r2, [r5] + 2732 00a2 D368 ldr r3, [r2, #12] + ARM GAS /tmp/cc0wMqvE.s page 196 + + + 2733 00a4 2343 orrs r3, r3, r4 + 2734 00a6 D360 str r3, [r2, #12] + 2735 00a8 0020 movs r0, #0 + 2736 .LVL216: + 2737 .L116: +4862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2738 .loc 1 4862 1 is_stmt 0 view .LVU904 + 2739 00aa 70BD pop {r4, r5, r6, pc} + 2740 .LVL217: + 2741 .L139: +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2742 .loc 1 4719 3 view .LVU905 + 2743 00ac 0120 movs r0, #1 + 2744 00ae FCE7 b .L116 + 2745 .L120: +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2746 .loc 1 4719 3 view .LVU906 + 2747 00b0 B4F5005F cmp r4, #8192 + 2748 00b4 57D0 beq .L124 + 2749 00b6 B4F5804F cmp r4, #16384 + 2750 00ba 13D1 bne .L141 +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 2751 .loc 1 4832 7 is_stmt 1 view .LVU907 +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 2752 .loc 1 4832 17 is_stmt 0 view .LVU908 + 2753 00bc AB6B ldr r3, [r5, #56] +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 2754 .loc 1 4832 56 view .LVU909 + 2755 00be 3A4A ldr r2, .L143+20 + 2756 .LVL218: +4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 2757 .loc 1 4832 56 view .LVU910 + 2758 00c0 DA62 str r2, [r3, #44] +4833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2759 .loc 1 4833 7 is_stmt 1 view .LVU911 +4833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2760 .loc 1 4833 17 is_stmt 0 view .LVU912 + 2761 00c2 AB6B ldr r3, [r5, #56] +4833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2762 .loc 1 4833 60 view .LVU913 + 2763 00c4 394A ldr r2, .L143+24 + 2764 00c6 1A63 str r2, [r3, #48] +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2765 .loc 1 4836 7 is_stmt 1 view .LVU914 +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2766 .loc 1 4836 17 is_stmt 0 view .LVU915 + 2767 00c8 AB6B ldr r3, [r5, #56] +4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2768 .loc 1 4836 57 view .LVU916 + 2769 00ca 344A ldr r2, .L143+8 + 2770 00cc 5A63 str r2, [r3, #52] +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2771 .loc 1 4839 7 is_stmt 1 view .LVU917 +4840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2772 .loc 1 4840 43 is_stmt 0 view .LVU918 + 2773 00ce 2A68 ldr r2, [r5] +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + ARM GAS /tmp/cc0wMqvE.s page 197 + + + 2774 .loc 1 4839 11 view .LVU919 + 2775 00d0 059B ldr r3, [sp, #20] + 2776 00d2 02F57872 add r2, r2, #992 + 2777 00d6 A86B ldr r0, [r5, #56] + 2778 00d8 FFF7FEFF bl HAL_DMA_Start_IT + 2779 .LVL219: +4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2780 .loc 1 4839 10 view .LVU920 + 2781 00dc 0028 cmp r0, #0 + 2782 00de DAD0 beq .L127 +4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2783 .loc 1 4843 16 view .LVU921 + 2784 00e0 0120 movs r0, #1 + 2785 00e2 E2E7 b .L116 + 2786 .LVL220: + 2787 .L141: +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2788 .loc 1 4719 3 view .LVU922 + 2789 00e4 B4F5805F cmp r4, #4096 + 2790 00e8 13D1 bne .L142 +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2791 .loc 1 4796 7 is_stmt 1 view .LVU923 +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2792 .loc 1 4796 17 is_stmt 0 view .LVU924 + 2793 00ea 2B6B ldr r3, [r5, #48] +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2794 .loc 1 4796 52 view .LVU925 + 2795 00ec 294A ldr r2, .L143 + 2796 .LVL221: +4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2797 .loc 1 4796 52 view .LVU926 + 2798 00ee DA62 str r2, [r3, #44] +4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2799 .loc 1 4797 7 is_stmt 1 view .LVU927 +4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2800 .loc 1 4797 17 is_stmt 0 view .LVU928 + 2801 00f0 2B6B ldr r3, [r5, #48] +4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2802 .loc 1 4797 56 view .LVU929 + 2803 00f2 294A ldr r2, .L143+4 + 2804 00f4 1A63 str r2, [r3, #48] +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2805 .loc 1 4800 7 is_stmt 1 view .LVU930 +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2806 .loc 1 4800 17 is_stmt 0 view .LVU931 + 2807 00f6 2B6B ldr r3, [r5, #48] +4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2808 .loc 1 4800 53 view .LVU932 + 2809 00f8 284A ldr r2, .L143+8 + 2810 00fa 5A63 str r2, [r3, #52] +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2811 .loc 1 4803 7 is_stmt 1 view .LVU933 +4804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2812 .loc 1 4804 43 is_stmt 0 view .LVU934 + 2813 00fc 2A68 ldr r2, [r5] +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2814 .loc 1 4803 11 view .LVU935 + ARM GAS /tmp/cc0wMqvE.s page 198 + + + 2815 00fe 059B ldr r3, [sp, #20] + 2816 0100 02F57872 add r2, r2, #992 + 2817 0104 286B ldr r0, [r5, #48] + 2818 0106 FFF7FEFF bl HAL_DMA_Start_IT + 2819 .LVL222: +4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2820 .loc 1 4803 10 view .LVU936 + 2821 010a 0028 cmp r0, #0 + 2822 010c C3D0 beq .L127 +4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2823 .loc 1 4807 16 view .LVU937 + 2824 010e 0120 movs r0, #1 + 2825 0110 CBE7 b .L116 + 2826 .LVL223: + 2827 .L142: +4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2828 .loc 1 4719 3 view .LVU938 + 2829 0112 0120 movs r0, #1 + 2830 0114 C9E7 b .L116 + 2831 .L121: +4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2832 .loc 1 4742 7 is_stmt 1 view .LVU939 +4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2833 .loc 1 4742 17 is_stmt 0 view .LVU940 + 2834 0116 6B6A ldr r3, [r5, #36] +4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2835 .loc 1 4742 52 view .LVU941 + 2836 0118 1E4A ldr r2, .L143 + 2837 .LVL224: +4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2838 .loc 1 4742 52 view .LVU942 + 2839 011a DA62 str r2, [r3, #44] +4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2840 .loc 1 4743 7 is_stmt 1 view .LVU943 +4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2841 .loc 1 4743 17 is_stmt 0 view .LVU944 + 2842 011c 6B6A ldr r3, [r5, #36] +4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2843 .loc 1 4743 56 view .LVU945 + 2844 011e 1E4A ldr r2, .L143+4 + 2845 0120 1A63 str r2, [r3, #48] +4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2846 .loc 1 4746 7 is_stmt 1 view .LVU946 +4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2847 .loc 1 4746 17 is_stmt 0 view .LVU947 + 2848 0122 6B6A ldr r3, [r5, #36] +4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2849 .loc 1 4746 53 view .LVU948 + 2850 0124 1D4A ldr r2, .L143+8 + 2851 0126 5A63 str r2, [r3, #52] +4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2852 .loc 1 4749 7 is_stmt 1 view .LVU949 +4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2853 .loc 1 4750 43 is_stmt 0 view .LVU950 + 2854 0128 2A68 ldr r2, [r5] +4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2855 .loc 1 4749 11 view .LVU951 + ARM GAS /tmp/cc0wMqvE.s page 199 + + + 2856 012a 059B ldr r3, [sp, #20] + 2857 012c 02F57872 add r2, r2, #992 + 2858 0130 686A ldr r0, [r5, #36] + 2859 0132 FFF7FEFF bl HAL_DMA_Start_IT + 2860 .LVL225: +4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2861 .loc 1 4749 10 view .LVU952 + 2862 0136 0028 cmp r0, #0 + 2863 0138 ADD0 beq .L127 +4753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2864 .loc 1 4753 16 view .LVU953 + 2865 013a 0120 movs r0, #1 + 2866 013c B5E7 b .L116 + 2867 .LVL226: + 2868 .L119: +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2869 .loc 1 4778 7 is_stmt 1 view .LVU954 +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2870 .loc 1 4778 17 is_stmt 0 view .LVU955 + 2871 013e EB6A ldr r3, [r5, #44] +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2872 .loc 1 4778 52 view .LVU956 + 2873 0140 144A ldr r2, .L143 + 2874 .LVL227: +4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2875 .loc 1 4778 52 view .LVU957 + 2876 0142 DA62 str r2, [r3, #44] +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2877 .loc 1 4779 7 is_stmt 1 view .LVU958 +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2878 .loc 1 4779 17 is_stmt 0 view .LVU959 + 2879 0144 EB6A ldr r3, [r5, #44] +4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2880 .loc 1 4779 56 view .LVU960 + 2881 0146 144A ldr r2, .L143+4 + 2882 0148 1A63 str r2, [r3, #48] +4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2883 .loc 1 4782 7 is_stmt 1 view .LVU961 +4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2884 .loc 1 4782 17 is_stmt 0 view .LVU962 + 2885 014a EB6A ldr r3, [r5, #44] +4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2886 .loc 1 4782 53 view .LVU963 + 2887 014c 134A ldr r2, .L143+8 + 2888 014e 5A63 str r2, [r3, #52] +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2889 .loc 1 4785 7 is_stmt 1 view .LVU964 +4786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2890 .loc 1 4786 43 is_stmt 0 view .LVU965 + 2891 0150 2A68 ldr r2, [r5] +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2892 .loc 1 4785 11 view .LVU966 + 2893 0152 059B ldr r3, [sp, #20] + 2894 0154 02F57872 add r2, r2, #992 + 2895 0158 E86A ldr r0, [r5, #44] + 2896 015a FFF7FEFF bl HAL_DMA_Start_IT + 2897 .LVL228: + ARM GAS /tmp/cc0wMqvE.s page 200 + + +4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2898 .loc 1 4785 10 view .LVU967 + 2899 015e 0028 cmp r0, #0 + 2900 0160 99D0 beq .L127 +4789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2901 .loc 1 4789 16 view .LVU968 + 2902 0162 0120 movs r0, #1 + 2903 0164 A1E7 b .L116 + 2904 .LVL229: + 2905 .L124: +4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 2906 .loc 1 4814 7 is_stmt 1 view .LVU969 +4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 2907 .loc 1 4814 17 is_stmt 0 view .LVU970 + 2908 0166 6B6B ldr r3, [r5, #52] +4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 2909 .loc 1 4814 60 view .LVU971 + 2910 0168 114A ldr r2, .L143+28 + 2911 .LVL230: +4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 2912 .loc 1 4814 60 view .LVU972 + 2913 016a DA62 str r2, [r3, #44] +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2914 .loc 1 4815 7 is_stmt 1 view .LVU973 +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2915 .loc 1 4815 17 is_stmt 0 view .LVU974 + 2916 016c 6B6B ldr r3, [r5, #52] +4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2917 .loc 1 4815 64 view .LVU975 + 2918 016e 114A ldr r2, .L143+32 + 2919 0170 1A63 str r2, [r3, #48] +4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2920 .loc 1 4818 7 is_stmt 1 view .LVU976 +4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2921 .loc 1 4818 17 is_stmt 0 view .LVU977 + 2922 0172 6B6B ldr r3, [r5, #52] +4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2923 .loc 1 4818 61 view .LVU978 + 2924 0174 094A ldr r2, .L143+8 + 2925 0176 5A63 str r2, [r3, #52] +4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2926 .loc 1 4821 7 is_stmt 1 view .LVU979 +4822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 2927 .loc 1 4822 43 is_stmt 0 view .LVU980 + 2928 0178 2A68 ldr r2, [r5] +4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2929 .loc 1 4821 11 view .LVU981 + 2930 017a 059B ldr r3, [sp, #20] + 2931 017c 02F57872 add r2, r2, #992 + 2932 0180 686B ldr r0, [r5, #52] + 2933 0182 FFF7FEFF bl HAL_DMA_Start_IT + 2934 .LVL231: +4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK) + 2935 .loc 1 4821 10 view .LVU982 + 2936 0186 0028 cmp r0, #0 + 2937 0188 85D0 beq .L127 +4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 201 + + + 2938 .loc 1 4825 16 view .LVU983 + 2939 018a 0120 movs r0, #1 + 2940 018c 8DE7 b .L116 + 2941 .L140: +4735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2942 .loc 1 4735 16 view .LVU984 + 2943 018e 0120 movs r0, #1 + 2944 0190 8BE7 b .L116 + 2945 .L144: + 2946 0192 00BF .align 2 + 2947 .L143: + 2948 0194 00000000 .word TIM_DMADelayPulseCplt + 2949 0198 00000000 .word TIM_DMADelayPulseHalfCplt + 2950 019c 00000000 .word TIM_DMAError + 2951 01a0 00000000 .word TIM_DMAPeriodElapsedCplt + 2952 01a4 00000000 .word TIM_DMAPeriodElapsedHalfCplt + 2953 01a8 00000000 .word TIM_DMATriggerCplt + 2954 01ac 00000000 .word TIM_DMATriggerHalfCplt + 2955 01b0 00000000 .word TIMEx_DMACommutationCplt + 2956 01b4 00000000 .word TIMEx_DMACommutationHalfCplt + 2957 .cfi_endproc + 2958 .LFE393: + 2960 .section .text.HAL_TIM_DMABurst_WriteStart,"ax",%progbits + 2961 .align 1 + 2962 .global HAL_TIM_DMABurst_WriteStart + 2963 .syntax unified + 2964 .thumb + 2965 .thumb_func + 2967 HAL_TIM_DMABurst_WriteStart: + 2968 .LVL232: + 2969 .LFB392: +4627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status; + 2970 .loc 1 4627 1 is_stmt 1 view -0 + 2971 .cfi_startproc + 2972 @ args = 4, pretend = 0, frame = 0 + 2973 @ frame_needed = 0, uses_anonymous_args = 0 +4627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status; + 2974 .loc 1 4627 1 is_stmt 0 view .LVU986 + 2975 0000 30B5 push {r4, r5, lr} + 2976 .LCFI29: + 2977 .cfi_def_cfa_offset 12 + 2978 .cfi_offset 4, -12 + 2979 .cfi_offset 5, -8 + 2980 .cfi_offset 14, -4 + 2981 0002 83B0 sub sp, sp, #12 + 2982 .LCFI30: + 2983 .cfi_def_cfa_offset 24 + 2984 0004 069D ldr r5, [sp, #24] +4628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2985 .loc 1 4628 3 is_stmt 1 view .LVU987 +4630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ((BurstLength) >> 8U) + 1U); + 2986 .loc 1 4630 3 view .LVU988 +4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2987 .loc 1 4631 60 is_stmt 0 view .LVU989 + 2988 0006 2C0A lsrs r4, r5, #8 +4630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ((BurstLength) >> 8U) + 1U); + 2989 .loc 1 4630 12 view .LVU990 + ARM GAS /tmp/cc0wMqvE.s page 202 + + + 2990 0008 0134 adds r4, r4, #1 + 2991 000a 0194 str r4, [sp, #4] + 2992 000c 0095 str r5, [sp] + 2993 000e FFF7FEFF bl HAL_TIM_DMABurst_MultiWriteStart + 2994 .LVL233: +4635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 2995 .loc 1 4635 3 is_stmt 1 view .LVU991 +4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 2996 .loc 1 4636 1 is_stmt 0 view .LVU992 + 2997 0012 03B0 add sp, sp, #12 + 2998 .LCFI31: + 2999 .cfi_def_cfa_offset 12 + 3000 @ sp needed + 3001 0014 30BD pop {r4, r5, pc} +4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3002 .loc 1 4636 1 view .LVU993 + 3003 .cfi_endproc + 3004 .LFE392: + 3006 .section .text.HAL_TIM_DMABurst_WriteStop,"ax",%progbits + 3007 .align 1 + 3008 .global HAL_TIM_DMABurst_WriteStop + 3009 .syntax unified + 3010 .thumb + 3011 .thumb_func + 3013 HAL_TIM_DMABurst_WriteStop: + 3014 .LVL234: + 3015 .LFB394: +4871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 3016 .loc 1 4871 1 is_stmt 1 view -0 + 3017 .cfi_startproc + 3018 @ args = 0, pretend = 0, frame = 0 + 3019 @ frame_needed = 0, uses_anonymous_args = 0 +4871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 3020 .loc 1 4871 1 is_stmt 0 view .LVU995 + 3021 0000 38B5 push {r3, r4, r5, lr} + 3022 .LCFI32: + 3023 .cfi_def_cfa_offset 16 + 3024 .cfi_offset 3, -16 + 3025 .cfi_offset 4, -12 + 3026 .cfi_offset 5, -8 + 3027 .cfi_offset 14, -4 + 3028 0002 0546 mov r5, r0 + 3029 0004 0C46 mov r4, r1 +4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3030 .loc 1 4872 3 is_stmt 1 view .LVU996 + 3031 .LVL235: +4875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3032 .loc 1 4875 3 view .LVU997 +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3033 .loc 1 4878 3 view .LVU998 + 3034 0006 B1F5006F cmp r1, #2048 + 3035 000a 33D0 beq .L148 + 3036 000c 1BD8 bhi .L149 + 3037 000e B1F5007F cmp r1, #512 + 3038 0012 2BD0 beq .L150 + 3039 0014 B1F5806F cmp r1, #1024 + 3040 0018 03D1 bne .L159 + ARM GAS /tmp/cc0wMqvE.s page 203 + + +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3041 .loc 1 4892 7 view .LVU999 +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3042 .loc 1 4892 13 is_stmt 0 view .LVU1000 + 3043 001a 806A ldr r0, [r0, #40] + 3044 .LVL236: +4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3045 .loc 1 4892 13 view .LVU1001 + 3046 001c FFF7FEFF bl HAL_DMA_Abort_IT + 3047 .LVL237: +4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3048 .loc 1 4893 7 is_stmt 1 view .LVU1002 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3049 .loc 1 4920 3 view .LVU1003 + 3050 0020 05E0 b .L157 + 3051 .LVL238: + 3052 .L159: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3053 .loc 1 4878 3 is_stmt 0 view .LVU1004 + 3054 0022 B1F5807F cmp r1, #256 + 3055 0026 0CD1 bne .L160 +4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3056 .loc 1 4882 7 is_stmt 1 view .LVU1005 +4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3057 .loc 1 4882 13 is_stmt 0 view .LVU1006 + 3058 0028 006A ldr r0, [r0, #32] + 3059 .LVL239: +4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3060 .loc 1 4882 13 view .LVU1007 + 3061 002a FFF7FEFF bl HAL_DMA_Abort_IT + 3062 .LVL240: +4883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3063 .loc 1 4883 7 is_stmt 1 view .LVU1008 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3064 .loc 1 4920 3 view .LVU1009 + 3065 .L157: +4923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3066 .loc 1 4923 5 view .LVU1010 + 3067 002e 2A68 ldr r2, [r5] + 3068 0030 D368 ldr r3, [r2, #12] + 3069 0032 23EA0403 bic r3, r3, r4 + 3070 0036 D360 str r3, [r2, #12] +4926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3071 .loc 1 4926 5 view .LVU1011 +4926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3072 .loc 1 4926 25 is_stmt 0 view .LVU1012 + 3073 0038 0123 movs r3, #1 + 3074 003a 85F84830 strb r3, [r5, #72] + 3075 003e 0020 movs r0, #0 + 3076 .L153: + 3077 .LVL241: +4930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3078 .loc 1 4930 3 is_stmt 1 view .LVU1013 +4931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3079 .loc 1 4931 1 is_stmt 0 view .LVU1014 + 3080 0040 38BD pop {r3, r4, r5, pc} + 3081 .LVL242: + ARM GAS /tmp/cc0wMqvE.s page 204 + + + 3082 .L160: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3083 .loc 1 4878 3 view .LVU1015 + 3084 0042 0120 movs r0, #1 + 3085 .LVL243: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3086 .loc 1 4878 3 view .LVU1016 + 3087 0044 FCE7 b .L153 + 3088 .LVL244: + 3089 .L149: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3090 .loc 1 4878 3 view .LVU1017 + 3091 0046 B1F5005F cmp r1, #8192 + 3092 004a 17D0 beq .L154 + 3093 004c B1F5804F cmp r1, #16384 + 3094 0050 03D1 bne .L161 +4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3095 .loc 1 4912 7 is_stmt 1 view .LVU1018 +4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3096 .loc 1 4912 13 is_stmt 0 view .LVU1019 + 3097 0052 806B ldr r0, [r0, #56] + 3098 .LVL245: +4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3099 .loc 1 4912 13 view .LVU1020 + 3100 0054 FFF7FEFF bl HAL_DMA_Abort_IT + 3101 .LVL246: +4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3102 .loc 1 4913 7 is_stmt 1 view .LVU1021 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3103 .loc 1 4920 3 view .LVU1022 + 3104 0058 E9E7 b .L157 + 3105 .LVL247: + 3106 .L161: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3107 .loc 1 4878 3 is_stmt 0 view .LVU1023 + 3108 005a B1F5805F cmp r1, #4096 + 3109 005e 03D1 bne .L162 +4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3110 .loc 1 4902 7 is_stmt 1 view .LVU1024 +4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3111 .loc 1 4902 13 is_stmt 0 view .LVU1025 + 3112 0060 006B ldr r0, [r0, #48] + 3113 .LVL248: +4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3114 .loc 1 4902 13 view .LVU1026 + 3115 0062 FFF7FEFF bl HAL_DMA_Abort_IT + 3116 .LVL249: +4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3117 .loc 1 4903 7 is_stmt 1 view .LVU1027 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3118 .loc 1 4920 3 view .LVU1028 + 3119 0066 E2E7 b .L157 + 3120 .LVL250: + 3121 .L162: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3122 .loc 1 4878 3 is_stmt 0 view .LVU1029 + 3123 0068 0120 movs r0, #1 + ARM GAS /tmp/cc0wMqvE.s page 205 + + + 3124 .LVL251: +4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3125 .loc 1 4878 3 view .LVU1030 + 3126 006a E9E7 b .L153 + 3127 .LVL252: + 3128 .L150: +4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3129 .loc 1 4887 7 is_stmt 1 view .LVU1031 +4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3130 .loc 1 4887 13 is_stmt 0 view .LVU1032 + 3131 006c 406A ldr r0, [r0, #36] + 3132 .LVL253: +4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3133 .loc 1 4887 13 view .LVU1033 + 3134 006e FFF7FEFF bl HAL_DMA_Abort_IT + 3135 .LVL254: +4888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3136 .loc 1 4888 7 is_stmt 1 view .LVU1034 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3137 .loc 1 4920 3 view .LVU1035 + 3138 0072 DCE7 b .L157 + 3139 .LVL255: + 3140 .L148: +4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3141 .loc 1 4897 7 view .LVU1036 +4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3142 .loc 1 4897 13 is_stmt 0 view .LVU1037 + 3143 0074 C06A ldr r0, [r0, #44] + 3144 .LVL256: +4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3145 .loc 1 4897 13 view .LVU1038 + 3146 0076 FFF7FEFF bl HAL_DMA_Abort_IT + 3147 .LVL257: +4898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3148 .loc 1 4898 7 is_stmt 1 view .LVU1039 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3149 .loc 1 4920 3 view .LVU1040 + 3150 007a D8E7 b .L157 + 3151 .LVL258: + 3152 .L154: +4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3153 .loc 1 4907 7 view .LVU1041 +4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3154 .loc 1 4907 13 is_stmt 0 view .LVU1042 + 3155 007c 406B ldr r0, [r0, #52] + 3156 .LVL259: +4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3157 .loc 1 4907 13 view .LVU1043 + 3158 007e FFF7FEFF bl HAL_DMA_Abort_IT + 3159 .LVL260: +4908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3160 .loc 1 4908 7 is_stmt 1 view .LVU1044 +4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3161 .loc 1 4920 3 view .LVU1045 + 3162 0082 D4E7 b .L157 + 3163 .cfi_endproc + 3164 .LFE394: + ARM GAS /tmp/cc0wMqvE.s page 206 + + + 3166 .section .text.HAL_TIM_DMABurst_MultiReadStart,"ax",%progbits + 3167 .align 1 + 3168 .global HAL_TIM_DMABurst_MultiReadStart + 3169 .syntax unified + 3170 .thumb + 3171 .thumb_func + 3173 HAL_TIM_DMABurst_MultiReadStart: + 3174 .LVL261: + 3175 .LFB396: +5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 3176 .loc 1 5043 1 view -0 + 3177 .cfi_startproc + 3178 @ args = 8, pretend = 0, frame = 0 + 3179 @ frame_needed = 0, uses_anonymous_args = 0 +5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 3180 .loc 1 5043 1 is_stmt 0 view .LVU1047 + 3181 0000 70B5 push {r4, r5, r6, lr} + 3182 .LCFI33: + 3183 .cfi_def_cfa_offset 16 + 3184 .cfi_offset 4, -16 + 3185 .cfi_offset 5, -12 + 3186 .cfi_offset 6, -8 + 3187 .cfi_offset 14, -4 + 3188 0002 0546 mov r5, r0 +5044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3189 .loc 1 5044 3 is_stmt 1 view .LVU1048 + 3190 .LVL262: +5047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_BASE(BurstBaseAddress)); + 3191 .loc 1 5047 3 view .LVU1049 +5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc)); + 3192 .loc 1 5048 3 view .LVU1050 +5049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_LENGTH(BurstLength)); + 3193 .loc 1 5049 3 view .LVU1051 +5050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength)); + 3194 .loc 1 5050 3 view .LVU1052 +5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3195 .loc 1 5051 3 view .LVU1053 +5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3196 .loc 1 5053 3 view .LVU1054 +5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3197 .loc 1 5053 11 is_stmt 0 view .LVU1055 + 3198 0004 90F84800 ldrb r0, [r0, #72] @ zero_extendqisi2 + 3199 .LVL263: +5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3200 .loc 1 5053 11 view .LVU1056 + 3201 0008 C0B2 uxtb r0, r0 +5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3202 .loc 1 5053 6 view .LVU1057 + 3203 000a 0228 cmp r0, #2 + 3204 000c 4DD0 beq .L164 + 3205 000e 0E46 mov r6, r1 + 3206 0010 1446 mov r4, r2 + 3207 0012 1A46 mov r2, r3 + 3208 .LVL264: +5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3209 .loc 1 5057 8 is_stmt 1 view .LVU1058 +5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 207 + + + 3210 .loc 1 5057 16 is_stmt 0 view .LVU1059 + 3211 0014 95F84800 ldrb r0, [r5, #72] @ zero_extendqisi2 + 3212 0018 C0B2 uxtb r0, r0 +5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3213 .loc 1 5057 11 view .LVU1060 + 3214 001a 0128 cmp r0, #1 + 3215 001c 1DD0 beq .L184 + 3216 .LVL265: + 3217 .L165: +5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** switch (BurstRequestSrc) + 3218 .loc 1 5071 3 is_stmt 1 view .LVU1061 +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3219 .loc 1 5072 3 view .LVU1062 + 3220 001e B4F5006F cmp r4, #2048 + 3221 0022 00F08C80 beq .L167 + 3222 0026 43D8 bhi .L168 + 3223 0028 B4F5007F cmp r4, #512 + 3224 002c 73D0 beq .L169 + 3225 002e B4F5806F cmp r4, #1024 + 3226 0032 1BD1 bne .L185 +5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3227 .loc 1 5113 7 view .LVU1063 +5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3228 .loc 1 5113 17 is_stmt 0 view .LVU1064 + 3229 0034 AB6A ldr r3, [r5, #40] +5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3230 .loc 1 5113 52 view .LVU1065 + 3231 0036 5749 ldr r1, .L191 + 3232 .LVL266: +5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3233 .loc 1 5113 52 view .LVU1066 + 3234 0038 D962 str r1, [r3, #44] +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3235 .loc 1 5114 7 is_stmt 1 view .LVU1067 +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3236 .loc 1 5114 17 is_stmt 0 view .LVU1068 + 3237 003a AB6A ldr r3, [r5, #40] +5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3238 .loc 1 5114 56 view .LVU1069 + 3239 003c 5649 ldr r1, .L191+4 + 3240 003e 1963 str r1, [r3, #48] +5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3241 .loc 1 5117 7 is_stmt 1 view .LVU1070 +5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3242 .loc 1 5117 17 is_stmt 0 view .LVU1071 + 3243 0040 AB6A ldr r3, [r5, #40] +5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3244 .loc 1 5117 53 view .LVU1072 + 3245 0042 5649 ldr r1, .L191+8 + 3246 0044 5963 str r1, [r3, #52] +5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3247 .loc 1 5120 7 is_stmt 1 view .LVU1073 +5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3248 .loc 1 5120 71 is_stmt 0 view .LVU1074 + 3249 0046 2968 ldr r1, [r5] +5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3250 .loc 1 5120 11 view .LVU1075 + ARM GAS /tmp/cc0wMqvE.s page 208 + + + 3251 0048 059B ldr r3, [sp, #20] + 3252 004a 01F57871 add r1, r1, #992 + 3253 004e A86A ldr r0, [r5, #40] + 3254 0050 FFF7FEFF bl HAL_DMA_Start_IT + 3255 .LVL267: +5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3256 .loc 1 5120 10 view .LVU1076 + 3257 0054 F8B1 cbz r0, .L175 +5124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3258 .loc 1 5124 16 view .LVU1077 + 3259 0056 0120 movs r0, #1 + 3260 0058 27E0 b .L164 + 3261 .LVL268: + 3262 .L184: +5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3263 .loc 1 5059 5 is_stmt 1 view .LVU1078 +5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3264 .loc 1 5059 8 is_stmt 0 view .LVU1079 + 3265 005a 1BB1 cbz r3, .L186 + 3266 .L166: +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3267 .loc 1 5065 7 is_stmt 1 view .LVU1080 +5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3268 .loc 1 5065 27 is_stmt 0 view .LVU1081 + 3269 005c 0223 movs r3, #2 + 3270 005e 85F84830 strb r3, [r5, #72] + 3271 0062 DCE7 b .L165 + 3272 .L186: +5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3273 .loc 1 5059 31 discriminator 1 view .LVU1082 + 3274 0064 049B ldr r3, [sp, #16] + 3275 0066 002B cmp r3, #0 + 3276 0068 F8D0 beq .L166 + 3277 006a 1EE0 b .L164 + 3278 .L185: +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3279 .loc 1 5072 3 view .LVU1083 + 3280 006c B4F5807F cmp r4, #256 + 3281 0070 1CD1 bne .L187 +5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 3282 .loc 1 5077 7 is_stmt 1 view .LVU1084 +5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 3283 .loc 1 5077 17 is_stmt 0 view .LVU1085 + 3284 0072 2B6A ldr r3, [r5, #32] +5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 3285 .loc 1 5077 55 view .LVU1086 + 3286 0074 4A49 ldr r1, .L191+12 + 3287 .LVL269: +5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt; + 3288 .loc 1 5077 55 view .LVU1087 + 3289 0076 D962 str r1, [r3, #44] +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3290 .loc 1 5078 7 is_stmt 1 view .LVU1088 +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3291 .loc 1 5078 17 is_stmt 0 view .LVU1089 + 3292 0078 2B6A ldr r3, [r5, #32] +5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 209 + + + 3293 .loc 1 5078 59 view .LVU1090 + 3294 007a 4A49 ldr r1, .L191+16 + 3295 007c 1963 str r1, [r3, #48] +5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3296 .loc 1 5081 7 is_stmt 1 view .LVU1091 +5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3297 .loc 1 5081 17 is_stmt 0 view .LVU1092 + 3298 007e 2B6A ldr r3, [r5, #32] +5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3299 .loc 1 5081 56 view .LVU1093 + 3300 0080 4649 ldr r1, .L191+8 + 3301 0082 5963 str r1, [r3, #52] +5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3302 .loc 1 5084 7 is_stmt 1 view .LVU1094 +5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3303 .loc 1 5084 74 is_stmt 0 view .LVU1095 + 3304 0084 2968 ldr r1, [r5] +5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3305 .loc 1 5084 11 view .LVU1096 + 3306 0086 059B ldr r3, [sp, #20] + 3307 0088 01F57871 add r1, r1, #992 + 3308 008c 286A ldr r0, [r5, #32] + 3309 008e FFF7FEFF bl HAL_DMA_Start_IT + 3310 .LVL270: +5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3311 .loc 1 5084 10 view .LVU1097 + 3312 0092 0028 cmp r0, #0 + 3313 0094 7BD1 bne .L188 + 3314 .L175: + 3315 .LVL271: +5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3316 .loc 1 5208 5 is_stmt 1 view .LVU1098 +5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3317 .loc 1 5208 9 is_stmt 0 view .LVU1099 + 3318 0096 2B68 ldr r3, [r5] +5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3319 .loc 1 5208 45 view .LVU1100 + 3320 0098 049A ldr r2, [sp, #16] + 3321 009a 1643 orrs r6, r6, r2 + 3322 .LVL272: +5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3323 .loc 1 5208 25 view .LVU1101 + 3324 009c C3F8DC63 str r6, [r3, #988] +5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3325 .loc 1 5211 5 is_stmt 1 view .LVU1102 + 3326 00a0 2A68 ldr r2, [r5] + 3327 00a2 D368 ldr r3, [r2, #12] + 3328 00a4 2343 orrs r3, r3, r4 + 3329 00a6 D360 str r3, [r2, #12] + 3330 00a8 0020 movs r0, #0 + 3331 .LVL273: + 3332 .L164: +5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3333 .loc 1 5216 1 is_stmt 0 view .LVU1103 + 3334 00aa 70BD pop {r4, r5, r6, pc} + 3335 .LVL274: + 3336 .L187: + ARM GAS /tmp/cc0wMqvE.s page 210 + + +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3337 .loc 1 5072 3 view .LVU1104 + 3338 00ac 0120 movs r0, #1 + 3339 00ae FCE7 b .L164 + 3340 .L168: +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3341 .loc 1 5072 3 view .LVU1105 + 3342 00b0 B4F5005F cmp r4, #8192 + 3343 00b4 57D0 beq .L172 + 3344 00b6 B4F5804F cmp r4, #16384 + 3345 00ba 13D1 bne .L189 +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 3346 .loc 1 5185 7 is_stmt 1 view .LVU1106 +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 3347 .loc 1 5185 17 is_stmt 0 view .LVU1107 + 3348 00bc AB6B ldr r3, [r5, #56] +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 3349 .loc 1 5185 56 view .LVU1108 + 3350 00be 3A49 ldr r1, .L191+20 + 3351 .LVL275: +5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt; + 3352 .loc 1 5185 56 view .LVU1109 + 3353 00c0 D962 str r1, [r3, #44] +5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3354 .loc 1 5186 7 is_stmt 1 view .LVU1110 +5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3355 .loc 1 5186 17 is_stmt 0 view .LVU1111 + 3356 00c2 AB6B ldr r3, [r5, #56] +5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3357 .loc 1 5186 60 view .LVU1112 + 3358 00c4 3949 ldr r1, .L191+24 + 3359 00c6 1963 str r1, [r3, #48] +5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3360 .loc 1 5189 7 is_stmt 1 view .LVU1113 +5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3361 .loc 1 5189 17 is_stmt 0 view .LVU1114 + 3362 00c8 AB6B ldr r3, [r5, #56] +5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3363 .loc 1 5189 57 view .LVU1115 + 3364 00ca 3449 ldr r1, .L191+8 + 3365 00cc 5963 str r1, [r3, #52] +5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3366 .loc 1 5192 7 is_stmt 1 view .LVU1116 +5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3367 .loc 1 5192 75 is_stmt 0 view .LVU1117 + 3368 00ce 2968 ldr r1, [r5] +5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3369 .loc 1 5192 11 view .LVU1118 + 3370 00d0 059B ldr r3, [sp, #20] + 3371 00d2 01F57871 add r1, r1, #992 + 3372 00d6 A86B ldr r0, [r5, #56] + 3373 00d8 FFF7FEFF bl HAL_DMA_Start_IT + 3374 .LVL276: +5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3375 .loc 1 5192 10 view .LVU1119 + 3376 00dc 0028 cmp r0, #0 + 3377 00de DAD0 beq .L175 + ARM GAS /tmp/cc0wMqvE.s page 211 + + +5196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3378 .loc 1 5196 16 view .LVU1120 + 3379 00e0 0120 movs r0, #1 + 3380 00e2 E2E7 b .L164 + 3381 .LVL277: + 3382 .L189: +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3383 .loc 1 5072 3 view .LVU1121 + 3384 00e4 B4F5805F cmp r4, #4096 + 3385 00e8 13D1 bne .L190 +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3386 .loc 1 5149 7 is_stmt 1 view .LVU1122 +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3387 .loc 1 5149 17 is_stmt 0 view .LVU1123 + 3388 00ea 2B6B ldr r3, [r5, #48] +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3389 .loc 1 5149 52 view .LVU1124 + 3390 00ec 2949 ldr r1, .L191 + 3391 .LVL278: +5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3392 .loc 1 5149 52 view .LVU1125 + 3393 00ee D962 str r1, [r3, #44] +5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3394 .loc 1 5150 7 is_stmt 1 view .LVU1126 +5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3395 .loc 1 5150 17 is_stmt 0 view .LVU1127 + 3396 00f0 2B6B ldr r3, [r5, #48] +5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3397 .loc 1 5150 56 view .LVU1128 + 3398 00f2 2949 ldr r1, .L191+4 + 3399 00f4 1963 str r1, [r3, #48] +5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3400 .loc 1 5153 7 is_stmt 1 view .LVU1129 +5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3401 .loc 1 5153 17 is_stmt 0 view .LVU1130 + 3402 00f6 2B6B ldr r3, [r5, #48] +5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3403 .loc 1 5153 53 view .LVU1131 + 3404 00f8 2849 ldr r1, .L191+8 + 3405 00fa 5963 str r1, [r3, #52] +5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3406 .loc 1 5156 7 is_stmt 1 view .LVU1132 +5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3407 .loc 1 5156 71 is_stmt 0 view .LVU1133 + 3408 00fc 2968 ldr r1, [r5] +5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3409 .loc 1 5156 11 view .LVU1134 + 3410 00fe 059B ldr r3, [sp, #20] + 3411 0100 01F57871 add r1, r1, #992 + 3412 0104 286B ldr r0, [r5, #48] + 3413 0106 FFF7FEFF bl HAL_DMA_Start_IT + 3414 .LVL279: +5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3415 .loc 1 5156 10 view .LVU1135 + 3416 010a 0028 cmp r0, #0 + 3417 010c C3D0 beq .L175 +5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 212 + + + 3418 .loc 1 5160 16 view .LVU1136 + 3419 010e 0120 movs r0, #1 + 3420 0110 CBE7 b .L164 + 3421 .LVL280: + 3422 .L190: +5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3423 .loc 1 5072 3 view .LVU1137 + 3424 0112 0120 movs r0, #1 + 3425 0114 C9E7 b .L164 + 3426 .L169: +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3427 .loc 1 5095 7 is_stmt 1 view .LVU1138 +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3428 .loc 1 5095 17 is_stmt 0 view .LVU1139 + 3429 0116 6B6A ldr r3, [r5, #36] +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3430 .loc 1 5095 52 view .LVU1140 + 3431 0118 1E49 ldr r1, .L191 + 3432 .LVL281: +5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3433 .loc 1 5095 52 view .LVU1141 + 3434 011a D962 str r1, [r3, #44] +5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3435 .loc 1 5096 7 is_stmt 1 view .LVU1142 +5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3436 .loc 1 5096 17 is_stmt 0 view .LVU1143 + 3437 011c 6B6A ldr r3, [r5, #36] +5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3438 .loc 1 5096 56 view .LVU1144 + 3439 011e 1E49 ldr r1, .L191+4 + 3440 0120 1963 str r1, [r3, #48] +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3441 .loc 1 5099 7 is_stmt 1 view .LVU1145 +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3442 .loc 1 5099 17 is_stmt 0 view .LVU1146 + 3443 0122 6B6A ldr r3, [r5, #36] +5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3444 .loc 1 5099 53 view .LVU1147 + 3445 0124 1D49 ldr r1, .L191+8 + 3446 0126 5963 str r1, [r3, #52] +5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3447 .loc 1 5102 7 is_stmt 1 view .LVU1148 +5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3448 .loc 1 5102 71 is_stmt 0 view .LVU1149 + 3449 0128 2968 ldr r1, [r5] +5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3450 .loc 1 5102 11 view .LVU1150 + 3451 012a 059B ldr r3, [sp, #20] + 3452 012c 01F57871 add r1, r1, #992 + 3453 0130 686A ldr r0, [r5, #36] + 3454 0132 FFF7FEFF bl HAL_DMA_Start_IT + 3455 .LVL282: +5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3456 .loc 1 5102 10 view .LVU1151 + 3457 0136 0028 cmp r0, #0 + 3458 0138 ADD0 beq .L175 +5106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 213 + + + 3459 .loc 1 5106 16 view .LVU1152 + 3460 013a 0120 movs r0, #1 + 3461 013c B5E7 b .L164 + 3462 .LVL283: + 3463 .L167: +5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3464 .loc 1 5131 7 is_stmt 1 view .LVU1153 +5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3465 .loc 1 5131 17 is_stmt 0 view .LVU1154 + 3466 013e EB6A ldr r3, [r5, #44] +5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3467 .loc 1 5131 52 view .LVU1155 + 3468 0140 1449 ldr r1, .L191 + 3469 .LVL284: +5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 3470 .loc 1 5131 52 view .LVU1156 + 3471 0142 D962 str r1, [r3, #44] +5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3472 .loc 1 5132 7 is_stmt 1 view .LVU1157 +5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3473 .loc 1 5132 17 is_stmt 0 view .LVU1158 + 3474 0144 EB6A ldr r3, [r5, #44] +5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3475 .loc 1 5132 56 view .LVU1159 + 3476 0146 1449 ldr r1, .L191+4 + 3477 0148 1963 str r1, [r3, #48] +5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3478 .loc 1 5135 7 is_stmt 1 view .LVU1160 +5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3479 .loc 1 5135 17 is_stmt 0 view .LVU1161 + 3480 014a EB6A ldr r3, [r5, #44] +5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3481 .loc 1 5135 53 view .LVU1162 + 3482 014c 1349 ldr r1, .L191+8 + 3483 014e 5963 str r1, [r3, #52] +5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3484 .loc 1 5138 7 is_stmt 1 view .LVU1163 +5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3485 .loc 1 5138 71 is_stmt 0 view .LVU1164 + 3486 0150 2968 ldr r1, [r5] +5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3487 .loc 1 5138 11 view .LVU1165 + 3488 0152 059B ldr r3, [sp, #20] + 3489 0154 01F57871 add r1, r1, #992 + 3490 0158 E86A ldr r0, [r5, #44] + 3491 015a FFF7FEFF bl HAL_DMA_Start_IT + 3492 .LVL285: +5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3493 .loc 1 5138 10 view .LVU1166 + 3494 015e 0028 cmp r0, #0 + 3495 0160 99D0 beq .L175 +5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3496 .loc 1 5142 16 view .LVU1167 + 3497 0162 0120 movs r0, #1 + 3498 0164 A1E7 b .L164 + 3499 .LVL286: + 3500 .L172: + ARM GAS /tmp/cc0wMqvE.s page 214 + + +5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 3501 .loc 1 5167 7 is_stmt 1 view .LVU1168 +5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 3502 .loc 1 5167 17 is_stmt 0 view .LVU1169 + 3503 0166 6B6B ldr r3, [r5, #52] +5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 3504 .loc 1 5167 60 view .LVU1170 + 3505 0168 1149 ldr r1, .L191+28 + 3506 .LVL287: +5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 3507 .loc 1 5167 60 view .LVU1171 + 3508 016a D962 str r1, [r3, #44] +5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3509 .loc 1 5168 7 is_stmt 1 view .LVU1172 +5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3510 .loc 1 5168 17 is_stmt 0 view .LVU1173 + 3511 016c 6B6B ldr r3, [r5, #52] +5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3512 .loc 1 5168 64 view .LVU1174 + 3513 016e 1149 ldr r1, .L191+32 + 3514 0170 1963 str r1, [r3, #48] +5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3515 .loc 1 5171 7 is_stmt 1 view .LVU1175 +5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3516 .loc 1 5171 17 is_stmt 0 view .LVU1176 + 3517 0172 6B6B ldr r3, [r5, #52] +5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3518 .loc 1 5171 61 view .LVU1177 + 3519 0174 0949 ldr r1, .L191+8 + 3520 0176 5963 str r1, [r3, #52] +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3521 .loc 1 5174 7 is_stmt 1 view .LVU1178 +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3522 .loc 1 5174 79 is_stmt 0 view .LVU1179 + 3523 0178 2968 ldr r1, [r5] +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3524 .loc 1 5174 11 view .LVU1180 + 3525 017a 059B ldr r3, [sp, #20] + 3526 017c 01F57871 add r1, r1, #992 + 3527 0180 686B ldr r0, [r5, #52] + 3528 0182 FFF7FEFF bl HAL_DMA_Start_IT + 3529 .LVL288: +5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** DataLength) != HAL_OK) + 3530 .loc 1 5174 10 view .LVU1181 + 3531 0186 0028 cmp r0, #0 + 3532 0188 85D0 beq .L175 +5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3533 .loc 1 5178 16 view .LVU1182 + 3534 018a 0120 movs r0, #1 + 3535 018c 8DE7 b .L164 + 3536 .L188: +5088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3537 .loc 1 5088 16 view .LVU1183 + 3538 018e 0120 movs r0, #1 + 3539 0190 8BE7 b .L164 + 3540 .L192: + 3541 0192 00BF .align 2 + ARM GAS /tmp/cc0wMqvE.s page 215 + + + 3542 .L191: + 3543 0194 00000000 .word TIM_DMACaptureCplt + 3544 0198 00000000 .word TIM_DMACaptureHalfCplt + 3545 019c 00000000 .word TIM_DMAError + 3546 01a0 00000000 .word TIM_DMAPeriodElapsedCplt + 3547 01a4 00000000 .word TIM_DMAPeriodElapsedHalfCplt + 3548 01a8 00000000 .word TIM_DMATriggerCplt + 3549 01ac 00000000 .word TIM_DMATriggerHalfCplt + 3550 01b0 00000000 .word TIMEx_DMACommutationCplt + 3551 01b4 00000000 .word TIMEx_DMACommutationHalfCplt + 3552 .cfi_endproc + 3553 .LFE396: + 3555 .section .text.HAL_TIM_DMABurst_ReadStart,"ax",%progbits + 3556 .align 1 + 3557 .global HAL_TIM_DMABurst_ReadStart + 3558 .syntax unified + 3559 .thumb + 3560 .thumb_func + 3562 HAL_TIM_DMABurst_ReadStart: + 3563 .LVL289: + 3564 .LFB395: +4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status; + 3565 .loc 1 4982 1 is_stmt 1 view -0 + 3566 .cfi_startproc + 3567 @ args = 4, pretend = 0, frame = 0 + 3568 @ frame_needed = 0, uses_anonymous_args = 0 +4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status; + 3569 .loc 1 4982 1 is_stmt 0 view .LVU1185 + 3570 0000 30B5 push {r4, r5, lr} + 3571 .LCFI34: + 3572 .cfi_def_cfa_offset 12 + 3573 .cfi_offset 4, -12 + 3574 .cfi_offset 5, -8 + 3575 .cfi_offset 14, -4 + 3576 0002 83B0 sub sp, sp, #12 + 3577 .LCFI35: + 3578 .cfi_def_cfa_offset 24 + 3579 0004 069D ldr r5, [sp, #24] +4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3580 .loc 1 4983 3 is_stmt 1 view .LVU1186 +4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ((BurstLength) >> 8U) + 1U); + 3581 .loc 1 4985 3 view .LVU1187 +4986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3582 .loc 1 4986 59 is_stmt 0 view .LVU1188 + 3583 0006 2C0A lsrs r4, r5, #8 +4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** ((BurstLength) >> 8U) + 1U); + 3584 .loc 1 4985 12 view .LVU1189 + 3585 0008 0134 adds r4, r4, #1 + 3586 000a 0194 str r4, [sp, #4] + 3587 000c 0095 str r5, [sp] + 3588 000e FFF7FEFF bl HAL_TIM_DMABurst_MultiReadStart + 3589 .LVL290: +4989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3590 .loc 1 4989 3 is_stmt 1 view .LVU1190 +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3591 .loc 1 4990 1 is_stmt 0 view .LVU1191 + 3592 0012 03B0 add sp, sp, #12 + ARM GAS /tmp/cc0wMqvE.s page 216 + + + 3593 .LCFI36: + 3594 .cfi_def_cfa_offset 12 + 3595 @ sp needed + 3596 0014 30BD pop {r4, r5, pc} +4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3597 .loc 1 4990 1 view .LVU1192 + 3598 .cfi_endproc + 3599 .LFE395: + 3601 .section .text.HAL_TIM_DMABurst_ReadStop,"ax",%progbits + 3602 .align 1 + 3603 .global HAL_TIM_DMABurst_ReadStop + 3604 .syntax unified + 3605 .thumb + 3606 .thumb_func + 3608 HAL_TIM_DMABurst_ReadStop: + 3609 .LVL291: + 3610 .LFB397: +5225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 3611 .loc 1 5225 1 is_stmt 1 view -0 + 3612 .cfi_startproc + 3613 @ args = 0, pretend = 0, frame = 0 + 3614 @ frame_needed = 0, uses_anonymous_args = 0 +5225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 3615 .loc 1 5225 1 is_stmt 0 view .LVU1194 + 3616 0000 38B5 push {r3, r4, r5, lr} + 3617 .LCFI37: + 3618 .cfi_def_cfa_offset 16 + 3619 .cfi_offset 3, -16 + 3620 .cfi_offset 4, -12 + 3621 .cfi_offset 5, -8 + 3622 .cfi_offset 14, -4 + 3623 0002 0546 mov r5, r0 + 3624 0004 0C46 mov r4, r1 +5226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3625 .loc 1 5226 3 is_stmt 1 view .LVU1195 + 3626 .LVL292: +5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3627 .loc 1 5229 3 view .LVU1196 +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3628 .loc 1 5232 3 view .LVU1197 + 3629 0006 B1F5006F cmp r1, #2048 + 3630 000a 33D0 beq .L196 + 3631 000c 1BD8 bhi .L197 + 3632 000e B1F5007F cmp r1, #512 + 3633 0012 2BD0 beq .L198 + 3634 0014 B1F5806F cmp r1, #1024 + 3635 0018 03D1 bne .L207 +5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3636 .loc 1 5246 7 view .LVU1198 +5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3637 .loc 1 5246 13 is_stmt 0 view .LVU1199 + 3638 001a 806A ldr r0, [r0, #40] + 3639 .LVL293: +5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3640 .loc 1 5246 13 view .LVU1200 + 3641 001c FFF7FEFF bl HAL_DMA_Abort_IT + 3642 .LVL294: + ARM GAS /tmp/cc0wMqvE.s page 217 + + +5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3643 .loc 1 5247 7 is_stmt 1 view .LVU1201 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3644 .loc 1 5274 3 view .LVU1202 + 3645 0020 05E0 b .L205 + 3646 .LVL295: + 3647 .L207: +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3648 .loc 1 5232 3 is_stmt 0 view .LVU1203 + 3649 0022 B1F5807F cmp r1, #256 + 3650 0026 0CD1 bne .L208 +5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3651 .loc 1 5236 7 is_stmt 1 view .LVU1204 +5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3652 .loc 1 5236 13 is_stmt 0 view .LVU1205 + 3653 0028 006A ldr r0, [r0, #32] + 3654 .LVL296: +5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3655 .loc 1 5236 13 view .LVU1206 + 3656 002a FFF7FEFF bl HAL_DMA_Abort_IT + 3657 .LVL297: +5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3658 .loc 1 5237 7 is_stmt 1 view .LVU1207 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3659 .loc 1 5274 3 view .LVU1208 + 3660 .L205: +5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3661 .loc 1 5277 5 view .LVU1209 + 3662 002e 2A68 ldr r2, [r5] + 3663 0030 D368 ldr r3, [r2, #12] + 3664 0032 23EA0403 bic r3, r3, r4 + 3665 0036 D360 str r3, [r2, #12] +5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3666 .loc 1 5280 5 view .LVU1210 +5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3667 .loc 1 5280 25 is_stmt 0 view .LVU1211 + 3668 0038 0123 movs r3, #1 + 3669 003a 85F84830 strb r3, [r5, #72] + 3670 003e 0020 movs r0, #0 + 3671 .L201: + 3672 .LVL298: +5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3673 .loc 1 5284 3 is_stmt 1 view .LVU1212 +5285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3674 .loc 1 5285 1 is_stmt 0 view .LVU1213 + 3675 0040 38BD pop {r3, r4, r5, pc} + 3676 .LVL299: + 3677 .L208: +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3678 .loc 1 5232 3 view .LVU1214 + 3679 0042 0120 movs r0, #1 + 3680 .LVL300: +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3681 .loc 1 5232 3 view .LVU1215 + 3682 0044 FCE7 b .L201 + 3683 .LVL301: + 3684 .L197: + ARM GAS /tmp/cc0wMqvE.s page 218 + + +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3685 .loc 1 5232 3 view .LVU1216 + 3686 0046 B1F5005F cmp r1, #8192 + 3687 004a 17D0 beq .L202 + 3688 004c B1F5804F cmp r1, #16384 + 3689 0050 03D1 bne .L209 +5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3690 .loc 1 5266 7 is_stmt 1 view .LVU1217 +5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3691 .loc 1 5266 13 is_stmt 0 view .LVU1218 + 3692 0052 806B ldr r0, [r0, #56] + 3693 .LVL302: +5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3694 .loc 1 5266 13 view .LVU1219 + 3695 0054 FFF7FEFF bl HAL_DMA_Abort_IT + 3696 .LVL303: +5267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3697 .loc 1 5267 7 is_stmt 1 view .LVU1220 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3698 .loc 1 5274 3 view .LVU1221 + 3699 0058 E9E7 b .L205 + 3700 .LVL304: + 3701 .L209: +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3702 .loc 1 5232 3 is_stmt 0 view .LVU1222 + 3703 005a B1F5805F cmp r1, #4096 + 3704 005e 03D1 bne .L210 +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3705 .loc 1 5256 7 is_stmt 1 view .LVU1223 +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3706 .loc 1 5256 13 is_stmt 0 view .LVU1224 + 3707 0060 006B ldr r0, [r0, #48] + 3708 .LVL305: +5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3709 .loc 1 5256 13 view .LVU1225 + 3710 0062 FFF7FEFF bl HAL_DMA_Abort_IT + 3711 .LVL306: +5257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3712 .loc 1 5257 7 is_stmt 1 view .LVU1226 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3713 .loc 1 5274 3 view .LVU1227 + 3714 0066 E2E7 b .L205 + 3715 .LVL307: + 3716 .L210: +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3717 .loc 1 5232 3 is_stmt 0 view .LVU1228 + 3718 0068 0120 movs r0, #1 + 3719 .LVL308: +5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3720 .loc 1 5232 3 view .LVU1229 + 3721 006a E9E7 b .L201 + 3722 .LVL309: + 3723 .L198: +5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3724 .loc 1 5241 7 is_stmt 1 view .LVU1230 +5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3725 .loc 1 5241 13 is_stmt 0 view .LVU1231 + ARM GAS /tmp/cc0wMqvE.s page 219 + + + 3726 006c 406A ldr r0, [r0, #36] + 3727 .LVL310: +5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3728 .loc 1 5241 13 view .LVU1232 + 3729 006e FFF7FEFF bl HAL_DMA_Abort_IT + 3730 .LVL311: +5242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3731 .loc 1 5242 7 is_stmt 1 view .LVU1233 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3732 .loc 1 5274 3 view .LVU1234 + 3733 0072 DCE7 b .L205 + 3734 .LVL312: + 3735 .L196: +5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3736 .loc 1 5251 7 view .LVU1235 +5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3737 .loc 1 5251 13 is_stmt 0 view .LVU1236 + 3738 0074 C06A ldr r0, [r0, #44] + 3739 .LVL313: +5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3740 .loc 1 5251 13 view .LVU1237 + 3741 0076 FFF7FEFF bl HAL_DMA_Abort_IT + 3742 .LVL314: +5252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3743 .loc 1 5252 7 is_stmt 1 view .LVU1238 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3744 .loc 1 5274 3 view .LVU1239 + 3745 007a D8E7 b .L205 + 3746 .LVL315: + 3747 .L202: +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3748 .loc 1 5261 7 view .LVU1240 +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3749 .loc 1 5261 13 is_stmt 0 view .LVU1241 + 3750 007c 406B ldr r0, [r0, #52] + 3751 .LVL316: +5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 3752 .loc 1 5261 13 view .LVU1242 + 3753 007e FFF7FEFF bl HAL_DMA_Abort_IT + 3754 .LVL317: +5262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3755 .loc 1 5262 7 is_stmt 1 view .LVU1243 +5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3756 .loc 1 5274 3 view .LVU1244 + 3757 0082 D4E7 b .L205 + 3758 .cfi_endproc + 3759 .LFE397: + 3761 .section .text.HAL_TIM_GenerateEvent,"ax",%progbits + 3762 .align 1 + 3763 .global HAL_TIM_GenerateEvent + 3764 .syntax unified + 3765 .thumb + 3766 .thumb_func + 3768 HAL_TIM_GenerateEvent: + 3769 .LVL318: + 3770 .LFB398: +5309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + ARM GAS /tmp/cc0wMqvE.s page 220 + + + 3771 .loc 1 5309 1 view -0 + 3772 .cfi_startproc + 3773 @ args = 0, pretend = 0, frame = 0 + 3774 @ frame_needed = 0, uses_anonymous_args = 0 + 3775 @ link register save eliminated. +5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_EVENT_SOURCE(EventSource)); + 3776 .loc 1 5311 3 view .LVU1246 +5312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3777 .loc 1 5312 3 view .LVU1247 +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3778 .loc 1 5315 3 view .LVU1248 +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3779 .loc 1 5315 3 view .LVU1249 + 3780 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 3781 0004 012B cmp r3, #1 + 3782 0006 0ED0 beq .L213 +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3783 .loc 1 5315 3 discriminator 2 view .LVU1250 + 3784 0008 0123 movs r3, #1 + 3785 000a 80F83C30 strb r3, [r0, #60] +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3786 .loc 1 5315 3 discriminator 2 view .LVU1251 +5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3787 .loc 1 5318 3 discriminator 2 view .LVU1252 +5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3788 .loc 1 5318 15 is_stmt 0 discriminator 2 view .LVU1253 + 3789 000e 0222 movs r2, #2 + 3790 0010 80F83D20 strb r2, [r0, #61] +5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3791 .loc 1 5321 3 is_stmt 1 discriminator 2 view .LVU1254 +5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3792 .loc 1 5321 7 is_stmt 0 discriminator 2 view .LVU1255 + 3793 0014 0268 ldr r2, [r0] +5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3794 .loc 1 5321 23 discriminator 2 view .LVU1256 + 3795 0016 5161 str r1, [r2, #20] +5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3796 .loc 1 5324 3 is_stmt 1 discriminator 2 view .LVU1257 +5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3797 .loc 1 5324 15 is_stmt 0 discriminator 2 view .LVU1258 + 3798 0018 80F83D30 strb r3, [r0, #61] +5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3799 .loc 1 5326 3 is_stmt 1 discriminator 2 view .LVU1259 +5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3800 .loc 1 5326 3 discriminator 2 view .LVU1260 + 3801 001c 0023 movs r3, #0 + 3802 001e 80F83C30 strb r3, [r0, #60] +5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3803 .loc 1 5326 3 discriminator 2 view .LVU1261 +5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3804 .loc 1 5329 3 discriminator 2 view .LVU1262 +5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3805 .loc 1 5329 10 is_stmt 0 discriminator 2 view .LVU1263 + 3806 0022 1846 mov r0, r3 + 3807 .LVL319: +5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3808 .loc 1 5329 10 discriminator 2 view .LVU1264 + ARM GAS /tmp/cc0wMqvE.s page 221 + + + 3809 0024 7047 bx lr + 3810 .LVL320: + 3811 .L213: +5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3812 .loc 1 5315 3 view .LVU1265 + 3813 0026 0220 movs r0, #2 + 3814 .LVL321: +5330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3815 .loc 1 5330 1 view .LVU1266 + 3816 0028 7047 bx lr + 3817 .cfi_endproc + 3818 .LFE398: + 3820 .section .text.HAL_TIM_ConfigTI1Input,"ax",%progbits + 3821 .align 1 + 3822 .global HAL_TIM_ConfigTI1Input + 3823 .syntax unified + 3824 .thumb + 3825 .thumb_func + 3827 HAL_TIM_ConfigTI1Input: + 3828 .LVL322: + 3829 .LFB401: +5718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 3830 .loc 1 5718 1 is_stmt 1 view -0 + 3831 .cfi_startproc + 3832 @ args = 0, pretend = 0, frame = 0 + 3833 @ frame_needed = 0, uses_anonymous_args = 0 + 3834 @ link register save eliminated. +5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3835 .loc 1 5719 3 view .LVU1268 +5722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TI1SELECTION(TI1_Selection)); + 3836 .loc 1 5722 3 view .LVU1269 +5723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3837 .loc 1 5723 3 view .LVU1270 +5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3838 .loc 1 5726 3 view .LVU1271 +5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3839 .loc 1 5726 16 is_stmt 0 view .LVU1272 + 3840 0000 0268 ldr r2, [r0] +5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3841 .loc 1 5726 10 view .LVU1273 + 3842 0002 5368 ldr r3, [r2, #4] + 3843 .LVL323: +5729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3844 .loc 1 5729 3 is_stmt 1 view .LVU1274 +5729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3845 .loc 1 5729 10 is_stmt 0 view .LVU1275 + 3846 0004 23F08003 bic r3, r3, #128 + 3847 .LVL324: +5732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3848 .loc 1 5732 3 is_stmt 1 view .LVU1276 +5732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3849 .loc 1 5732 10 is_stmt 0 view .LVU1277 + 3850 0008 0B43 orrs r3, r3, r1 + 3851 .LVL325: +5735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3852 .loc 1 5735 3 is_stmt 1 view .LVU1278 +5735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 222 + + + 3853 .loc 1 5735 23 is_stmt 0 view .LVU1279 + 3854 000a 5360 str r3, [r2, #4] +5737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3855 .loc 1 5737 3 is_stmt 1 view .LVU1280 +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3856 .loc 1 5738 1 is_stmt 0 view .LVU1281 + 3857 000c 0020 movs r0, #0 + 3858 .LVL326: +5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3859 .loc 1 5738 1 view .LVU1282 + 3860 000e 7047 bx lr + 3861 .cfi_endproc + 3862 .LFE401: + 3864 .section .text.HAL_TIM_ReadCapturedValue,"ax",%progbits + 3865 .align 1 + 3866 .global HAL_TIM_ReadCapturedValue + 3867 .syntax unified + 3868 .thumb + 3869 .thumb_func + 3871 HAL_TIM_ReadCapturedValue: + 3872 .LVL327: + 3873 .LFB404: +5833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpreg = 0U; + 3874 .loc 1 5833 1 is_stmt 1 view -0 + 3875 .cfi_startproc + 3876 @ args = 0, pretend = 0, frame = 0 + 3877 @ frame_needed = 0, uses_anonymous_args = 0 + 3878 @ link register save eliminated. +5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3879 .loc 1 5834 3 view .LVU1284 +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3880 .loc 1 5836 3 view .LVU1285 + 3881 0000 0C29 cmp r1, #12 + 3882 0002 14D8 bhi .L222 + 3883 0004 DFE801F0 tbb [pc, r1] + 3884 .L218: + 3885 0008 07 .byte (.L221-.L218)/2 + 3886 0009 13 .byte (.L222-.L218)/2 + 3887 000a 13 .byte (.L222-.L218)/2 + 3888 000b 13 .byte (.L222-.L218)/2 + 3889 000c 0A .byte (.L220-.L218)/2 + 3890 000d 13 .byte (.L222-.L218)/2 + 3891 000e 13 .byte (.L222-.L218)/2 + 3892 000f 13 .byte (.L222-.L218)/2 + 3893 0010 0D .byte (.L219-.L218)/2 + 3894 0011 13 .byte (.L222-.L218)/2 + 3895 0012 13 .byte (.L222-.L218)/2 + 3896 0013 13 .byte (.L222-.L218)/2 + 3897 0014 10 .byte (.L217-.L218)/2 + 3898 0015 00 .p2align 1 + 3899 .L221: +5841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3900 .loc 1 5841 7 view .LVU1286 +5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3901 .loc 1 5844 7 view .LVU1287 +5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3902 .loc 1 5844 21 is_stmt 0 view .LVU1288 + ARM GAS /tmp/cc0wMqvE.s page 223 + + + 3903 0016 0368 ldr r3, [r0] +5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3904 .loc 1 5844 14 view .LVU1289 + 3905 0018 586B ldr r0, [r3, #52] + 3906 .LVL328: +5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3907 .loc 1 5846 7 is_stmt 1 view .LVU1290 + 3908 001a 7047 bx lr + 3909 .LVL329: + 3910 .L220: +5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3911 .loc 1 5851 7 view .LVU1291 +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3912 .loc 1 5854 7 view .LVU1292 +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3913 .loc 1 5854 22 is_stmt 0 view .LVU1293 + 3914 001c 0368 ldr r3, [r0] +5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3915 .loc 1 5854 14 view .LVU1294 + 3916 001e 986B ldr r0, [r3, #56] + 3917 .LVL330: +5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3918 .loc 1 5856 7 is_stmt 1 view .LVU1295 + 3919 0020 7047 bx lr + 3920 .LVL331: + 3921 .L219: +5862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3922 .loc 1 5862 7 view .LVU1296 +5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3923 .loc 1 5865 7 view .LVU1297 +5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3924 .loc 1 5865 22 is_stmt 0 view .LVU1298 + 3925 0022 0368 ldr r3, [r0] +5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3926 .loc 1 5865 14 view .LVU1299 + 3927 0024 D86B ldr r0, [r3, #60] + 3928 .LVL332: +5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3929 .loc 1 5867 7 is_stmt 1 view .LVU1300 + 3930 0026 7047 bx lr + 3931 .LVL333: + 3932 .L217: +5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3933 .loc 1 5873 7 view .LVU1301 +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3934 .loc 1 5876 7 view .LVU1302 +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3935 .loc 1 5876 22 is_stmt 0 view .LVU1303 + 3936 0028 0368 ldr r3, [r0] +5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3937 .loc 1 5876 14 view .LVU1304 + 3938 002a 186C ldr r0, [r3, #64] + 3939 .LVL334: +5878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3940 .loc 1 5878 7 is_stmt 1 view .LVU1305 + 3941 002c 7047 bx lr + 3942 .LVL335: + ARM GAS /tmp/cc0wMqvE.s page 224 + + + 3943 .L222: +5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3944 .loc 1 5836 3 is_stmt 0 view .LVU1306 + 3945 002e 0020 movs r0, #0 + 3946 .LVL336: +5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 3947 .loc 1 5885 3 is_stmt 1 view .LVU1307 +5886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3948 .loc 1 5886 1 is_stmt 0 view .LVU1308 + 3949 0030 7047 bx lr + 3950 .cfi_endproc + 3951 .LFE404: + 3953 .section .text.HAL_TIM_PeriodElapsedCallback,"ax",%progbits + 3954 .align 1 + 3955 .weak HAL_TIM_PeriodElapsedCallback + 3956 .syntax unified + 3957 .thumb + 3958 .thumb_func + 3960 HAL_TIM_PeriodElapsedCallback: + 3961 .LVL337: + 3962 .LFB405: +5921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 3963 .loc 1 5921 1 is_stmt 1 view -0 + 3964 .cfi_startproc + 3965 @ args = 0, pretend = 0, frame = 0 + 3966 @ frame_needed = 0, uses_anonymous_args = 0 + 3967 @ link register save eliminated. +5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3968 .loc 1 5923 3 view .LVU1310 +5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3969 .loc 1 5928 1 is_stmt 0 view .LVU1311 + 3970 0000 7047 bx lr + 3971 .cfi_endproc + 3972 .LFE405: + 3974 .section .text.TIM_DMAPeriodElapsedCplt,"ax",%progbits + 3975 .align 1 + 3976 .syntax unified + 3977 .thumb + 3978 .thumb_func + 3980 TIM_DMAPeriodElapsedCplt: + 3981 .LVL338: + 3982 .LFB429: +7032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 3983 .loc 1 7032 1 is_stmt 1 view -0 + 3984 .cfi_startproc + 3985 @ args = 0, pretend = 0, frame = 0 + 3986 @ frame_needed = 0, uses_anonymous_args = 0 +7032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 3987 .loc 1 7032 1 is_stmt 0 view .LVU1313 + 3988 0000 08B5 push {r3, lr} + 3989 .LCFI38: + 3990 .cfi_def_cfa_offset 8 + 3991 .cfi_offset 3, -8 + 3992 .cfi_offset 14, -4 +7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 3993 .loc 1 7033 3 is_stmt 1 view .LVU1314 +7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 225 + + + 3994 .loc 1 7033 22 is_stmt 0 view .LVU1315 + 3995 0002 806A ldr r0, [r0, #40] + 3996 .LVL339: +7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3997 .loc 1 7035 3 is_stmt 1 view .LVU1316 +7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 3998 .loc 1 7035 17 is_stmt 0 view .LVU1317 + 3999 0004 036A ldr r3, [r0, #32] +7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4000 .loc 1 7035 42 view .LVU1318 + 4001 0006 DB69 ldr r3, [r3, #28] +7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4002 .loc 1 7035 6 view .LVU1319 + 4003 0008 13B9 cbnz r3, .L225 +7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4004 .loc 1 7037 5 is_stmt 1 view .LVU1320 +7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4005 .loc 1 7037 17 is_stmt 0 view .LVU1321 + 4006 000a 0123 movs r3, #1 + 4007 000c 80F83D30 strb r3, [r0, #61] + 4008 .L225: +7043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4009 .loc 1 7043 3 is_stmt 1 view .LVU1322 + 4010 0010 FFF7FEFF bl HAL_TIM_PeriodElapsedCallback + 4011 .LVL340: +7045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4012 .loc 1 7045 1 is_stmt 0 view .LVU1323 + 4013 0014 08BD pop {r3, pc} + 4014 .cfi_endproc + 4015 .LFE429: + 4017 .section .text.HAL_TIM_PeriodElapsedHalfCpltCallback,"ax",%progbits + 4018 .align 1 + 4019 .weak HAL_TIM_PeriodElapsedHalfCpltCallback + 4020 .syntax unified + 4021 .thumb + 4022 .thumb_func + 4024 HAL_TIM_PeriodElapsedHalfCpltCallback: + 4025 .LVL341: + 4026 .LFB406: +5936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4027 .loc 1 5936 1 is_stmt 1 view -0 + 4028 .cfi_startproc + 4029 @ args = 0, pretend = 0, frame = 0 + 4030 @ frame_needed = 0, uses_anonymous_args = 0 + 4031 @ link register save eliminated. +5938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4032 .loc 1 5938 3 view .LVU1325 +5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4033 .loc 1 5943 1 is_stmt 0 view .LVU1326 + 4034 0000 7047 bx lr + 4035 .cfi_endproc + 4036 .LFE406: + 4038 .section .text.TIM_DMAPeriodElapsedHalfCplt,"ax",%progbits + 4039 .align 1 + 4040 .syntax unified + 4041 .thumb + 4042 .thumb_func + ARM GAS /tmp/cc0wMqvE.s page 226 + + + 4044 TIM_DMAPeriodElapsedHalfCplt: + 4045 .LVL342: + 4046 .LFB430: +7053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4047 .loc 1 7053 1 is_stmt 1 view -0 + 4048 .cfi_startproc + 4049 @ args = 0, pretend = 0, frame = 0 + 4050 @ frame_needed = 0, uses_anonymous_args = 0 +7053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4051 .loc 1 7053 1 is_stmt 0 view .LVU1328 + 4052 0000 08B5 push {r3, lr} + 4053 .LCFI39: + 4054 .cfi_def_cfa_offset 8 + 4055 .cfi_offset 3, -8 + 4056 .cfi_offset 14, -4 +7054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4057 .loc 1 7054 3 is_stmt 1 view .LVU1329 + 4058 .LVL343: +7059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4059 .loc 1 7059 3 view .LVU1330 + 4060 0002 806A ldr r0, [r0, #40] + 4061 .LVL344: +7059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4062 .loc 1 7059 3 is_stmt 0 view .LVU1331 + 4063 0004 FFF7FEFF bl HAL_TIM_PeriodElapsedHalfCpltCallback + 4064 .LVL345: +7061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4065 .loc 1 7061 1 view .LVU1332 + 4066 0008 08BD pop {r3, pc} + 4067 .cfi_endproc + 4068 .LFE430: + 4070 .section .text.HAL_TIM_OC_DelayElapsedCallback,"ax",%progbits + 4071 .align 1 + 4072 .weak HAL_TIM_OC_DelayElapsedCallback + 4073 .syntax unified + 4074 .thumb + 4075 .thumb_func + 4077 HAL_TIM_OC_DelayElapsedCallback: + 4078 .LVL346: + 4079 .LFB407: +5951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4080 .loc 1 5951 1 is_stmt 1 view -0 + 4081 .cfi_startproc + 4082 @ args = 0, pretend = 0, frame = 0 + 4083 @ frame_needed = 0, uses_anonymous_args = 0 + 4084 @ link register save eliminated. +5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4085 .loc 1 5953 3 view .LVU1334 +5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4086 .loc 1 5958 1 is_stmt 0 view .LVU1335 + 4087 0000 7047 bx lr + 4088 .cfi_endproc + 4089 .LFE407: + 4091 .section .text.HAL_TIM_IC_CaptureCallback,"ax",%progbits + 4092 .align 1 + 4093 .weak HAL_TIM_IC_CaptureCallback + 4094 .syntax unified + ARM GAS /tmp/cc0wMqvE.s page 227 + + + 4095 .thumb + 4096 .thumb_func + 4098 HAL_TIM_IC_CaptureCallback: + 4099 .LVL347: + 4100 .LFB408: +5966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4101 .loc 1 5966 1 is_stmt 1 view -0 + 4102 .cfi_startproc + 4103 @ args = 0, pretend = 0, frame = 0 + 4104 @ frame_needed = 0, uses_anonymous_args = 0 + 4105 @ link register save eliminated. +5968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4106 .loc 1 5968 3 view .LVU1337 +5973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4107 .loc 1 5973 1 is_stmt 0 view .LVU1338 + 4108 0000 7047 bx lr + 4109 .cfi_endproc + 4110 .LFE408: + 4112 .section .text.TIM_DMACaptureCplt,"ax",%progbits + 4113 .align 1 + 4114 .global TIM_DMACaptureCplt + 4115 .syntax unified + 4116 .thumb + 4117 .thumb_func + 4119 TIM_DMACaptureCplt: + 4120 .LVL348: + 4121 .LFB427: +6930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4122 .loc 1 6930 1 is_stmt 1 view -0 + 4123 .cfi_startproc + 4124 @ args = 0, pretend = 0, frame = 0 + 4125 @ frame_needed = 0, uses_anonymous_args = 0 +6930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4126 .loc 1 6930 1 is_stmt 0 view .LVU1340 + 4127 0000 10B5 push {r4, lr} + 4128 .LCFI40: + 4129 .cfi_def_cfa_offset 8 + 4130 .cfi_offset 4, -8 + 4131 .cfi_offset 14, -4 +6931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4132 .loc 1 6931 3 is_stmt 1 view .LVU1341 +6931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4133 .loc 1 6931 22 is_stmt 0 view .LVU1342 + 4134 0002 846A ldr r4, [r0, #40] + 4135 .LVL349: +6933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4136 .loc 1 6933 3 is_stmt 1 view .LVU1343 +6933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4137 .loc 1 6933 25 is_stmt 0 view .LVU1344 + 4138 0004 636A ldr r3, [r4, #36] +6933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4139 .loc 1 6933 6 view .LVU1345 + 4140 0006 8342 cmp r3, r0 + 4141 0008 0ED0 beq .L238 +6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4142 .loc 1 6943 8 is_stmt 1 view .LVU1346 +6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 228 + + + 4143 .loc 1 6943 30 is_stmt 0 view .LVU1347 + 4144 000a A36A ldr r3, [r4, #40] +6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4145 .loc 1 6943 11 view .LVU1348 + 4146 000c 8342 cmp r3, r0 + 4147 000e 16D0 beq .L239 +6953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4148 .loc 1 6953 8 is_stmt 1 view .LVU1349 +6953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4149 .loc 1 6953 30 is_stmt 0 view .LVU1350 + 4150 0010 E36A ldr r3, [r4, #44] +6953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4151 .loc 1 6953 11 view .LVU1351 + 4152 0012 8342 cmp r3, r0 + 4153 0014 1ED0 beq .L240 +6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4154 .loc 1 6963 8 is_stmt 1 view .LVU1352 +6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4155 .loc 1 6963 30 is_stmt 0 view .LVU1353 + 4156 0016 236B ldr r3, [r4, #48] +6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4157 .loc 1 6963 11 view .LVU1354 + 4158 0018 8342 cmp r3, r0 + 4159 001a 26D0 beq .L241 + 4160 .L234: +6976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4161 .loc 1 6976 3 is_stmt 1 view .LVU1355 +6981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4162 .loc 1 6981 3 view .LVU1356 + 4163 001c 2046 mov r0, r4 + 4164 .LVL350: +6981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4165 .loc 1 6981 3 is_stmt 0 view .LVU1357 + 4166 001e FFF7FEFF bl HAL_TIM_IC_CaptureCallback + 4167 .LVL351: +6984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4168 .loc 1 6984 3 is_stmt 1 view .LVU1358 +6984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4169 .loc 1 6984 17 is_stmt 0 view .LVU1359 + 4170 0022 0023 movs r3, #0 + 4171 0024 2377 strb r3, [r4, #28] +6985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4172 .loc 1 6985 1 view .LVU1360 + 4173 0026 10BD pop {r4, pc} + 4174 .LVL352: + 4175 .L238: +6935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4176 .loc 1 6935 5 is_stmt 1 view .LVU1361 +6935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4177 .loc 1 6935 19 is_stmt 0 view .LVU1362 + 4178 0028 0123 movs r3, #1 + 4179 002a 2377 strb r3, [r4, #28] +6937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4180 .loc 1 6937 5 is_stmt 1 view .LVU1363 +6937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4181 .loc 1 6937 19 is_stmt 0 view .LVU1364 + 4182 002c C369 ldr r3, [r0, #28] + ARM GAS /tmp/cc0wMqvE.s page 229 + + +6937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4183 .loc 1 6937 8 view .LVU1365 + 4184 002e 002B cmp r3, #0 + 4185 0030 F4D1 bne .L234 +6939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 4186 .loc 1 6939 7 is_stmt 1 view .LVU1366 + 4187 0032 0123 movs r3, #1 + 4188 0034 84F83E30 strb r3, [r4, #62] +6940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4189 .loc 1 6940 7 view .LVU1367 + 4190 0038 84F84430 strb r3, [r4, #68] + 4191 003c EEE7 b .L234 + 4192 .L239: +6945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4193 .loc 1 6945 5 view .LVU1368 +6945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4194 .loc 1 6945 19 is_stmt 0 view .LVU1369 + 4195 003e 0223 movs r3, #2 + 4196 0040 2377 strb r3, [r4, #28] +6947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4197 .loc 1 6947 5 is_stmt 1 view .LVU1370 +6947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4198 .loc 1 6947 19 is_stmt 0 view .LVU1371 + 4199 0042 C369 ldr r3, [r0, #28] +6947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4200 .loc 1 6947 8 view .LVU1372 + 4201 0044 002B cmp r3, #0 + 4202 0046 E9D1 bne .L234 +6949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 4203 .loc 1 6949 7 is_stmt 1 view .LVU1373 + 4204 0048 0123 movs r3, #1 + 4205 004a 84F83F30 strb r3, [r4, #63] +6950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4206 .loc 1 6950 7 view .LVU1374 + 4207 004e 84F84530 strb r3, [r4, #69] + 4208 0052 E3E7 b .L234 + 4209 .L240: +6955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4210 .loc 1 6955 5 view .LVU1375 +6955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4211 .loc 1 6955 19 is_stmt 0 view .LVU1376 + 4212 0054 0423 movs r3, #4 + 4213 0056 2377 strb r3, [r4, #28] +6957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4214 .loc 1 6957 5 is_stmt 1 view .LVU1377 +6957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4215 .loc 1 6957 19 is_stmt 0 view .LVU1378 + 4216 0058 C369 ldr r3, [r0, #28] +6957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4217 .loc 1 6957 8 view .LVU1379 + 4218 005a 002B cmp r3, #0 + 4219 005c DED1 bne .L234 +6959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + 4220 .loc 1 6959 7 is_stmt 1 view .LVU1380 + 4221 005e 0123 movs r3, #1 + 4222 0060 84F84030 strb r3, [r4, #64] +6960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 230 + + + 4223 .loc 1 6960 7 view .LVU1381 + 4224 0064 84F84630 strb r3, [r4, #70] + 4225 0068 D8E7 b .L234 + 4226 .L241: +6965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4227 .loc 1 6965 5 view .LVU1382 +6965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4228 .loc 1 6965 19 is_stmt 0 view .LVU1383 + 4229 006a 0823 movs r3, #8 + 4230 006c 2377 strb r3, [r4, #28] +6967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4231 .loc 1 6967 5 is_stmt 1 view .LVU1384 +6967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4232 .loc 1 6967 19 is_stmt 0 view .LVU1385 + 4233 006e C369 ldr r3, [r0, #28] +6967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4234 .loc 1 6967 8 view .LVU1386 + 4235 0070 002B cmp r3, #0 + 4236 0072 D3D1 bne .L234 +6969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + 4237 .loc 1 6969 7 is_stmt 1 view .LVU1387 + 4238 0074 0123 movs r3, #1 + 4239 0076 84F84130 strb r3, [r4, #65] +6970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4240 .loc 1 6970 7 view .LVU1388 + 4241 007a 84F84730 strb r3, [r4, #71] + 4242 007e CDE7 b .L234 + 4243 .cfi_endproc + 4244 .LFE427: + 4246 .section .text.HAL_TIM_IC_CaptureHalfCpltCallback,"ax",%progbits + 4247 .align 1 + 4248 .weak HAL_TIM_IC_CaptureHalfCpltCallback + 4249 .syntax unified + 4250 .thumb + 4251 .thumb_func + 4253 HAL_TIM_IC_CaptureHalfCpltCallback: + 4254 .LVL353: + 4255 .LFB409: +5981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4256 .loc 1 5981 1 view -0 + 4257 .cfi_startproc + 4258 @ args = 0, pretend = 0, frame = 0 + 4259 @ frame_needed = 0, uses_anonymous_args = 0 + 4260 @ link register save eliminated. +5983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4261 .loc 1 5983 3 view .LVU1390 +5988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4262 .loc 1 5988 1 is_stmt 0 view .LVU1391 + 4263 0000 7047 bx lr + 4264 .cfi_endproc + 4265 .LFE409: + 4267 .section .text.TIM_DMACaptureHalfCplt,"ax",%progbits + 4268 .align 1 + 4269 .global TIM_DMACaptureHalfCplt + 4270 .syntax unified + 4271 .thumb + 4272 .thumb_func + ARM GAS /tmp/cc0wMqvE.s page 231 + + + 4274 TIM_DMACaptureHalfCplt: + 4275 .LVL354: + 4276 .LFB428: +6993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4277 .loc 1 6993 1 is_stmt 1 view -0 + 4278 .cfi_startproc + 4279 @ args = 0, pretend = 0, frame = 0 + 4280 @ frame_needed = 0, uses_anonymous_args = 0 +6993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4281 .loc 1 6993 1 is_stmt 0 view .LVU1393 + 4282 0000 10B5 push {r4, lr} + 4283 .LCFI41: + 4284 .cfi_def_cfa_offset 8 + 4285 .cfi_offset 4, -8 + 4286 .cfi_offset 14, -4 +6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4287 .loc 1 6994 3 is_stmt 1 view .LVU1394 +6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4288 .loc 1 6994 22 is_stmt 0 view .LVU1395 + 4289 0002 846A ldr r4, [r0, #40] + 4290 .LVL355: +6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4291 .loc 1 6996 3 is_stmt 1 view .LVU1396 +6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4292 .loc 1 6996 25 is_stmt 0 view .LVU1397 + 4293 0004 636A ldr r3, [r4, #36] +6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4294 .loc 1 6996 6 view .LVU1398 + 4295 0006 8342 cmp r3, r0 + 4296 0008 0BD0 beq .L249 +7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4297 .loc 1 7000 8 is_stmt 1 view .LVU1399 +7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4298 .loc 1 7000 30 is_stmt 0 view .LVU1400 + 4299 000a A36A ldr r3, [r4, #40] +7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4300 .loc 1 7000 11 view .LVU1401 + 4301 000c 8342 cmp r3, r0 + 4302 000e 10D0 beq .L250 +7004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4303 .loc 1 7004 8 is_stmt 1 view .LVU1402 +7004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4304 .loc 1 7004 30 is_stmt 0 view .LVU1403 + 4305 0010 E36A ldr r3, [r4, #44] +7004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4306 .loc 1 7004 11 view .LVU1404 + 4307 0012 8342 cmp r3, r0 + 4308 0014 10D0 beq .L251 +7008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4309 .loc 1 7008 8 is_stmt 1 view .LVU1405 +7008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4310 .loc 1 7008 30 is_stmt 0 view .LVU1406 + 4311 0016 236B ldr r3, [r4, #48] +7008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4312 .loc 1 7008 11 view .LVU1407 + 4313 0018 8342 cmp r3, r0 + 4314 001a 04D1 bne .L245 + ARM GAS /tmp/cc0wMqvE.s page 232 + + +7010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4315 .loc 1 7010 5 is_stmt 1 view .LVU1408 +7010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4316 .loc 1 7010 19 is_stmt 0 view .LVU1409 + 4317 001c 0823 movs r3, #8 + 4318 001e 2377 strb r3, [r4, #28] + 4319 0020 01E0 b .L245 + 4320 .L249: +6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4321 .loc 1 6998 5 is_stmt 1 view .LVU1410 +6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4322 .loc 1 6998 19 is_stmt 0 view .LVU1411 + 4323 0022 0123 movs r3, #1 + 4324 0024 2377 strb r3, [r4, #28] + 4325 .L245: +7015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4326 .loc 1 7015 3 is_stmt 1 view .LVU1412 +7020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4327 .loc 1 7020 3 view .LVU1413 + 4328 0026 2046 mov r0, r4 + 4329 .LVL356: +7020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4330 .loc 1 7020 3 is_stmt 0 view .LVU1414 + 4331 0028 FFF7FEFF bl HAL_TIM_IC_CaptureHalfCpltCallback + 4332 .LVL357: +7023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4333 .loc 1 7023 3 is_stmt 1 view .LVU1415 +7023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4334 .loc 1 7023 17 is_stmt 0 view .LVU1416 + 4335 002c 0023 movs r3, #0 + 4336 002e 2377 strb r3, [r4, #28] +7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4337 .loc 1 7024 1 view .LVU1417 + 4338 0030 10BD pop {r4, pc} + 4339 .LVL358: + 4340 .L250: +7002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4341 .loc 1 7002 5 is_stmt 1 view .LVU1418 +7002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4342 .loc 1 7002 19 is_stmt 0 view .LVU1419 + 4343 0032 0223 movs r3, #2 + 4344 0034 2377 strb r3, [r4, #28] + 4345 0036 F6E7 b .L245 + 4346 .L251: +7006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4347 .loc 1 7006 5 is_stmt 1 view .LVU1420 +7006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4348 .loc 1 7006 19 is_stmt 0 view .LVU1421 + 4349 0038 0423 movs r3, #4 + 4350 003a 2377 strb r3, [r4, #28] + 4351 003c F3E7 b .L245 + 4352 .cfi_endproc + 4353 .LFE428: + 4355 .section .text.HAL_TIM_PWM_PulseFinishedCallback,"ax",%progbits + 4356 .align 1 + 4357 .weak HAL_TIM_PWM_PulseFinishedCallback + 4358 .syntax unified + ARM GAS /tmp/cc0wMqvE.s page 233 + + + 4359 .thumb + 4360 .thumb_func + 4362 HAL_TIM_PWM_PulseFinishedCallback: + 4363 .LVL359: + 4364 .LFB410: +5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4365 .loc 1 5996 1 is_stmt 1 view -0 + 4366 .cfi_startproc + 4367 @ args = 0, pretend = 0, frame = 0 + 4368 @ frame_needed = 0, uses_anonymous_args = 0 + 4369 @ link register save eliminated. +5998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4370 .loc 1 5998 3 view .LVU1423 +6003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4371 .loc 1 6003 1 is_stmt 0 view .LVU1424 + 4372 0000 7047 bx lr + 4373 .cfi_endproc + 4374 .LFE410: + 4376 .section .text.TIM_DMADelayPulseCplt,"ax",%progbits + 4377 .align 1 + 4378 .syntax unified + 4379 .thumb + 4380 .thumb_func + 4382 TIM_DMADelayPulseCplt: + 4383 .LVL360: + 4384 .LFB425: +6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4385 .loc 1 6832 1 is_stmt 1 view -0 + 4386 .cfi_startproc + 4387 @ args = 0, pretend = 0, frame = 0 + 4388 @ frame_needed = 0, uses_anonymous_args = 0 +6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4389 .loc 1 6832 1 is_stmt 0 view .LVU1426 + 4390 0000 10B5 push {r4, lr} + 4391 .LCFI42: + 4392 .cfi_def_cfa_offset 8 + 4393 .cfi_offset 4, -8 + 4394 .cfi_offset 14, -4 +6833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4395 .loc 1 6833 3 is_stmt 1 view .LVU1427 +6833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4396 .loc 1 6833 22 is_stmt 0 view .LVU1428 + 4397 0002 846A ldr r4, [r0, #40] + 4398 .LVL361: +6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4399 .loc 1 6835 3 is_stmt 1 view .LVU1429 +6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4400 .loc 1 6835 25 is_stmt 0 view .LVU1430 + 4401 0004 636A ldr r3, [r4, #36] +6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4402 .loc 1 6835 6 view .LVU1431 + 4403 0006 8342 cmp r3, r0 + 4404 0008 0ED0 beq .L259 +6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4405 .loc 1 6844 8 is_stmt 1 view .LVU1432 +6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4406 .loc 1 6844 30 is_stmt 0 view .LVU1433 + ARM GAS /tmp/cc0wMqvE.s page 234 + + + 4407 000a A36A ldr r3, [r4, #40] +6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4408 .loc 1 6844 11 view .LVU1434 + 4409 000c 8342 cmp r3, r0 + 4410 000e 14D0 beq .L260 +6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4411 .loc 1 6853 8 is_stmt 1 view .LVU1435 +6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4412 .loc 1 6853 30 is_stmt 0 view .LVU1436 + 4413 0010 E36A ldr r3, [r4, #44] +6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4414 .loc 1 6853 11 view .LVU1437 + 4415 0012 8342 cmp r3, r0 + 4416 0014 1AD0 beq .L261 +6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4417 .loc 1 6862 8 is_stmt 1 view .LVU1438 +6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4418 .loc 1 6862 30 is_stmt 0 view .LVU1439 + 4419 0016 236B ldr r3, [r4, #48] +6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4420 .loc 1 6862 11 view .LVU1440 + 4421 0018 8342 cmp r3, r0 + 4422 001a 20D0 beq .L262 + 4423 .L255: +6874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4424 .loc 1 6874 3 is_stmt 1 view .LVU1441 +6879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4425 .loc 1 6879 3 view .LVU1442 + 4426 001c 2046 mov r0, r4 + 4427 .LVL362: +6879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4428 .loc 1 6879 3 is_stmt 0 view .LVU1443 + 4429 001e FFF7FEFF bl HAL_TIM_PWM_PulseFinishedCallback + 4430 .LVL363: +6882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4431 .loc 1 6882 3 is_stmt 1 view .LVU1444 +6882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4432 .loc 1 6882 17 is_stmt 0 view .LVU1445 + 4433 0022 0023 movs r3, #0 + 4434 0024 2377 strb r3, [r4, #28] +6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4435 .loc 1 6883 1 view .LVU1446 + 4436 0026 10BD pop {r4, pc} + 4437 .LVL364: + 4438 .L259: +6837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4439 .loc 1 6837 5 is_stmt 1 view .LVU1447 +6837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4440 .loc 1 6837 19 is_stmt 0 view .LVU1448 + 4441 0028 0123 movs r3, #1 + 4442 002a 2377 strb r3, [r4, #28] +6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4443 .loc 1 6839 5 is_stmt 1 view .LVU1449 +6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4444 .loc 1 6839 19 is_stmt 0 view .LVU1450 + 4445 002c C369 ldr r3, [r0, #28] +6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 235 + + + 4446 .loc 1 6839 8 view .LVU1451 + 4447 002e 002B cmp r3, #0 + 4448 0030 F4D1 bne .L255 +6841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4449 .loc 1 6841 7 is_stmt 1 view .LVU1452 + 4450 0032 0123 movs r3, #1 + 4451 0034 84F83E30 strb r3, [r4, #62] + 4452 0038 F0E7 b .L255 + 4453 .L260: +6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4454 .loc 1 6846 5 view .LVU1453 +6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4455 .loc 1 6846 19 is_stmt 0 view .LVU1454 + 4456 003a 0223 movs r3, #2 + 4457 003c 2377 strb r3, [r4, #28] +6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4458 .loc 1 6848 5 is_stmt 1 view .LVU1455 +6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4459 .loc 1 6848 19 is_stmt 0 view .LVU1456 + 4460 003e C369 ldr r3, [r0, #28] +6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4461 .loc 1 6848 8 view .LVU1457 + 4462 0040 002B cmp r3, #0 + 4463 0042 EBD1 bne .L255 +6850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4464 .loc 1 6850 7 is_stmt 1 view .LVU1458 + 4465 0044 0123 movs r3, #1 + 4466 0046 84F83F30 strb r3, [r4, #63] + 4467 004a E7E7 b .L255 + 4468 .L261: +6855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4469 .loc 1 6855 5 view .LVU1459 +6855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4470 .loc 1 6855 19 is_stmt 0 view .LVU1460 + 4471 004c 0423 movs r3, #4 + 4472 004e 2377 strb r3, [r4, #28] +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4473 .loc 1 6857 5 is_stmt 1 view .LVU1461 +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4474 .loc 1 6857 19 is_stmt 0 view .LVU1462 + 4475 0050 C369 ldr r3, [r0, #28] +6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4476 .loc 1 6857 8 view .LVU1463 + 4477 0052 002B cmp r3, #0 + 4478 0054 E2D1 bne .L255 +6859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4479 .loc 1 6859 7 is_stmt 1 view .LVU1464 + 4480 0056 0123 movs r3, #1 + 4481 0058 84F84030 strb r3, [r4, #64] + 4482 005c DEE7 b .L255 + 4483 .L262: +6864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4484 .loc 1 6864 5 view .LVU1465 +6864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4485 .loc 1 6864 19 is_stmt 0 view .LVU1466 + 4486 005e 0823 movs r3, #8 + 4487 0060 2377 strb r3, [r4, #28] + ARM GAS /tmp/cc0wMqvE.s page 236 + + +6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4488 .loc 1 6866 5 is_stmt 1 view .LVU1467 +6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4489 .loc 1 6866 19 is_stmt 0 view .LVU1468 + 4490 0062 C369 ldr r3, [r0, #28] +6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4491 .loc 1 6866 8 view .LVU1469 + 4492 0064 002B cmp r3, #0 + 4493 0066 D9D1 bne .L255 +6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4494 .loc 1 6868 7 is_stmt 1 view .LVU1470 + 4495 0068 0123 movs r3, #1 + 4496 006a 84F84130 strb r3, [r4, #65] + 4497 006e D5E7 b .L255 + 4498 .cfi_endproc + 4499 .LFE425: + 4501 .section .text.HAL_TIM_PWM_PulseFinishedHalfCpltCallback,"ax",%progbits + 4502 .align 1 + 4503 .weak HAL_TIM_PWM_PulseFinishedHalfCpltCallback + 4504 .syntax unified + 4505 .thumb + 4506 .thumb_func + 4508 HAL_TIM_PWM_PulseFinishedHalfCpltCallback: + 4509 .LVL365: + 4510 .LFB411: +6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4511 .loc 1 6011 1 view -0 + 4512 .cfi_startproc + 4513 @ args = 0, pretend = 0, frame = 0 + 4514 @ frame_needed = 0, uses_anonymous_args = 0 + 4515 @ link register save eliminated. +6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4516 .loc 1 6013 3 view .LVU1472 +6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4517 .loc 1 6018 1 is_stmt 0 view .LVU1473 + 4518 0000 7047 bx lr + 4519 .cfi_endproc + 4520 .LFE411: + 4522 .section .text.TIM_DMADelayPulseHalfCplt,"ax",%progbits + 4523 .align 1 + 4524 .global TIM_DMADelayPulseHalfCplt + 4525 .syntax unified + 4526 .thumb + 4527 .thumb_func + 4529 TIM_DMADelayPulseHalfCplt: + 4530 .LVL366: + 4531 .LFB426: +6891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4532 .loc 1 6891 1 is_stmt 1 view -0 + 4533 .cfi_startproc + 4534 @ args = 0, pretend = 0, frame = 0 + 4535 @ frame_needed = 0, uses_anonymous_args = 0 +6891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 4536 .loc 1 6891 1 is_stmt 0 view .LVU1475 + 4537 0000 10B5 push {r4, lr} + 4538 .LCFI43: + 4539 .cfi_def_cfa_offset 8 + ARM GAS /tmp/cc0wMqvE.s page 237 + + + 4540 .cfi_offset 4, -8 + 4541 .cfi_offset 14, -4 +6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4542 .loc 1 6892 3 is_stmt 1 view .LVU1476 +6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4543 .loc 1 6892 22 is_stmt 0 view .LVU1477 + 4544 0002 846A ldr r4, [r0, #40] + 4545 .LVL367: +6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4546 .loc 1 6894 3 is_stmt 1 view .LVU1478 +6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4547 .loc 1 6894 25 is_stmt 0 view .LVU1479 + 4548 0004 636A ldr r3, [r4, #36] +6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4549 .loc 1 6894 6 view .LVU1480 + 4550 0006 8342 cmp r3, r0 + 4551 0008 0BD0 beq .L270 +6898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4552 .loc 1 6898 8 is_stmt 1 view .LVU1481 +6898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4553 .loc 1 6898 30 is_stmt 0 view .LVU1482 + 4554 000a A36A ldr r3, [r4, #40] +6898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4555 .loc 1 6898 11 view .LVU1483 + 4556 000c 8342 cmp r3, r0 + 4557 000e 10D0 beq .L271 +6902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4558 .loc 1 6902 8 is_stmt 1 view .LVU1484 +6902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4559 .loc 1 6902 30 is_stmt 0 view .LVU1485 + 4560 0010 E36A ldr r3, [r4, #44] +6902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4561 .loc 1 6902 11 view .LVU1486 + 4562 0012 8342 cmp r3, r0 + 4563 0014 10D0 beq .L272 +6906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4564 .loc 1 6906 8 is_stmt 1 view .LVU1487 +6906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4565 .loc 1 6906 30 is_stmt 0 view .LVU1488 + 4566 0016 236B ldr r3, [r4, #48] +6906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4567 .loc 1 6906 11 view .LVU1489 + 4568 0018 8342 cmp r3, r0 + 4569 001a 04D1 bne .L266 +6908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4570 .loc 1 6908 5 is_stmt 1 view .LVU1490 +6908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4571 .loc 1 6908 19 is_stmt 0 view .LVU1491 + 4572 001c 0823 movs r3, #8 + 4573 001e 2377 strb r3, [r4, #28] + 4574 0020 01E0 b .L266 + 4575 .L270: +6896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4576 .loc 1 6896 5 is_stmt 1 view .LVU1492 +6896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4577 .loc 1 6896 19 is_stmt 0 view .LVU1493 + 4578 0022 0123 movs r3, #1 + ARM GAS /tmp/cc0wMqvE.s page 238 + + + 4579 0024 2377 strb r3, [r4, #28] + 4580 .L266: +6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4581 .loc 1 6913 3 is_stmt 1 view .LVU1494 +6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4582 .loc 1 6918 3 view .LVU1495 + 4583 0026 2046 mov r0, r4 + 4584 .LVL368: +6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4585 .loc 1 6918 3 is_stmt 0 view .LVU1496 + 4586 0028 FFF7FEFF bl HAL_TIM_PWM_PulseFinishedHalfCpltCallback + 4587 .LVL369: +6921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4588 .loc 1 6921 3 is_stmt 1 view .LVU1497 +6921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4589 .loc 1 6921 17 is_stmt 0 view .LVU1498 + 4590 002c 0023 movs r3, #0 + 4591 002e 2377 strb r3, [r4, #28] +6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4592 .loc 1 6922 1 view .LVU1499 + 4593 0030 10BD pop {r4, pc} + 4594 .LVL370: + 4595 .L271: +6900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4596 .loc 1 6900 5 is_stmt 1 view .LVU1500 +6900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4597 .loc 1 6900 19 is_stmt 0 view .LVU1501 + 4598 0032 0223 movs r3, #2 + 4599 0034 2377 strb r3, [r4, #28] + 4600 0036 F6E7 b .L266 + 4601 .L272: +6904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4602 .loc 1 6904 5 is_stmt 1 view .LVU1502 +6904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4603 .loc 1 6904 19 is_stmt 0 view .LVU1503 + 4604 0038 0423 movs r3, #4 + 4605 003a 2377 strb r3, [r4, #28] + 4606 003c F3E7 b .L266 + 4607 .cfi_endproc + 4608 .LFE426: + 4610 .section .text.HAL_TIM_TriggerCallback,"ax",%progbits + 4611 .align 1 + 4612 .weak HAL_TIM_TriggerCallback + 4613 .syntax unified + 4614 .thumb + 4615 .thumb_func + 4617 HAL_TIM_TriggerCallback: + 4618 .LVL371: + 4619 .LFB412: +6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 4620 .loc 1 6026 1 is_stmt 1 view -0 + 4621 .cfi_startproc + 4622 @ args = 0, pretend = 0, frame = 0 + 4623 @ frame_needed = 0, uses_anonymous_args = 0 + 4624 @ link register save eliminated. +6028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4625 .loc 1 6028 3 view .LVU1505 + ARM GAS /tmp/cc0wMqvE.s page 239 + + +6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4626 .loc 1 6033 1 is_stmt 0 view .LVU1506 + 4627 0000 7047 bx lr + 4628 .cfi_endproc + 4629 .LFE412: + 4631 .section .text.HAL_TIM_IRQHandler,"ax",%progbits + 4632 .align 1 + 4633 .global HAL_TIM_IRQHandler + 4634 .syntax unified + 4635 .thumb + 4636 .thumb_func + 4638 HAL_TIM_IRQHandler: + 4639 .LVL372: + 4640 .LFB387: +3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Capture compare 1 event */ + 4641 .loc 1 3839 1 is_stmt 1 view -0 + 4642 .cfi_startproc + 4643 @ args = 0, pretend = 0, frame = 0 + 4644 @ frame_needed = 0, uses_anonymous_args = 0 +3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Capture compare 1 event */ + 4645 .loc 1 3839 1 is_stmt 0 view .LVU1508 + 4646 0000 10B5 push {r4, lr} + 4647 .LCFI44: + 4648 .cfi_def_cfa_offset 8 + 4649 .cfi_offset 4, -8 + 4650 .cfi_offset 14, -4 + 4651 0002 0446 mov r4, r0 +3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4652 .loc 1 3841 3 is_stmt 1 view .LVU1509 +3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4653 .loc 1 3841 7 is_stmt 0 view .LVU1510 + 4654 0004 0368 ldr r3, [r0] + 4655 0006 1A69 ldr r2, [r3, #16] +3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4656 .loc 1 3841 6 view .LVU1511 + 4657 0008 12F0020F tst r2, #2 + 4658 000c 12D0 beq .L275 +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4659 .loc 1 3843 5 is_stmt 1 view .LVU1512 +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4660 .loc 1 3843 9 is_stmt 0 view .LVU1513 + 4661 000e DA68 ldr r2, [r3, #12] +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4662 .loc 1 3843 8 view .LVU1514 + 4663 0010 12F0020F tst r2, #2 + 4664 0014 0ED0 beq .L275 +3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + 4665 .loc 1 3846 9 is_stmt 1 view .LVU1515 + 4666 0016 6FF00202 mvn r2, #2 + 4667 001a 1A61 str r2, [r3, #16] +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4668 .loc 1 3847 9 view .LVU1516 +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4669 .loc 1 3847 23 is_stmt 0 view .LVU1517 + 4670 001c 0123 movs r3, #1 + 4671 001e 0377 strb r3, [r0, #28] +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 240 + + + 4672 .loc 1 3850 9 is_stmt 1 view .LVU1518 +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4673 .loc 1 3850 18 is_stmt 0 view .LVU1519 + 4674 0020 0368 ldr r3, [r0] +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4675 .loc 1 3850 28 view .LVU1520 + 4676 0022 9B69 ldr r3, [r3, #24] +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4677 .loc 1 3850 12 view .LVU1521 + 4678 0024 13F0030F tst r3, #3 + 4679 0028 00F09F80 beq .L276 +3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4680 .loc 1 3855 11 is_stmt 1 view .LVU1522 + 4681 002c FFF7FEFF bl HAL_TIM_IC_CaptureCallback + 4682 .LVL373: + 4683 .L277: +3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4684 .loc 1 3869 9 view .LVU1523 +3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4685 .loc 1 3869 23 is_stmt 0 view .LVU1524 + 4686 0030 0023 movs r3, #0 + 4687 0032 2377 strb r3, [r4, #28] + 4688 .L275: +3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4689 .loc 1 3874 3 is_stmt 1 view .LVU1525 +3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4690 .loc 1 3874 7 is_stmt 0 view .LVU1526 + 4691 0034 2368 ldr r3, [r4] + 4692 0036 1A69 ldr r2, [r3, #16] +3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4693 .loc 1 3874 6 view .LVU1527 + 4694 0038 12F0040F tst r2, #4 + 4695 003c 13D0 beq .L278 +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4696 .loc 1 3876 5 is_stmt 1 view .LVU1528 +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4697 .loc 1 3876 9 is_stmt 0 view .LVU1529 + 4698 003e DA68 ldr r2, [r3, #12] +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4699 .loc 1 3876 8 view .LVU1530 + 4700 0040 12F0040F tst r2, #4 + 4701 0044 0FD0 beq .L278 +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + 4702 .loc 1 3878 7 is_stmt 1 view .LVU1531 + 4703 0046 6FF00402 mvn r2, #4 + 4704 004a 1A61 str r2, [r3, #16] +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + 4705 .loc 1 3879 7 view .LVU1532 +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + 4706 .loc 1 3879 21 is_stmt 0 view .LVU1533 + 4707 004c 0223 movs r3, #2 + 4708 004e 2377 strb r3, [r4, #28] +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4709 .loc 1 3881 7 is_stmt 1 view .LVU1534 +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4710 .loc 1 3881 16 is_stmt 0 view .LVU1535 + 4711 0050 2368 ldr r3, [r4] + ARM GAS /tmp/cc0wMqvE.s page 241 + + +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4712 .loc 1 3881 26 view .LVU1536 + 4713 0052 9B69 ldr r3, [r3, #24] +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4714 .loc 1 3881 10 view .LVU1537 + 4715 0054 13F4407F tst r3, #768 + 4716 0058 00F08D80 beq .L279 +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4717 .loc 1 3886 9 is_stmt 1 view .LVU1538 + 4718 005c 2046 mov r0, r4 + 4719 005e FFF7FEFF bl HAL_TIM_IC_CaptureCallback + 4720 .LVL374: + 4721 .L280: +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4722 .loc 1 3900 7 view .LVU1539 +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4723 .loc 1 3900 21 is_stmt 0 view .LVU1540 + 4724 0062 0023 movs r3, #0 + 4725 0064 2377 strb r3, [r4, #28] + 4726 .L278: +3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4727 .loc 1 3904 3 is_stmt 1 view .LVU1541 +3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4728 .loc 1 3904 7 is_stmt 0 view .LVU1542 + 4729 0066 2368 ldr r3, [r4] + 4730 0068 1A69 ldr r2, [r3, #16] +3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4731 .loc 1 3904 6 view .LVU1543 + 4732 006a 12F0080F tst r2, #8 + 4733 006e 12D0 beq .L281 +3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4734 .loc 1 3906 5 is_stmt 1 view .LVU1544 +3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4735 .loc 1 3906 9 is_stmt 0 view .LVU1545 + 4736 0070 DA68 ldr r2, [r3, #12] +3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4737 .loc 1 3906 8 view .LVU1546 + 4738 0072 12F0080F tst r2, #8 + 4739 0076 0ED0 beq .L281 +3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + 4740 .loc 1 3908 7 is_stmt 1 view .LVU1547 + 4741 0078 6FF00802 mvn r2, #8 + 4742 007c 1A61 str r2, [r3, #16] +3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + 4743 .loc 1 3909 7 view .LVU1548 +3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + 4744 .loc 1 3909 21 is_stmt 0 view .LVU1549 + 4745 007e 0423 movs r3, #4 + 4746 0080 2377 strb r3, [r4, #28] +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4747 .loc 1 3911 7 is_stmt 1 view .LVU1550 +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4748 .loc 1 3911 16 is_stmt 0 view .LVU1551 + 4749 0082 2368 ldr r3, [r4] +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4750 .loc 1 3911 26 view .LVU1552 + 4751 0084 DB69 ldr r3, [r3, #28] + ARM GAS /tmp/cc0wMqvE.s page 242 + + +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4752 .loc 1 3911 10 view .LVU1553 + 4753 0086 13F0030F tst r3, #3 + 4754 008a 7BD0 beq .L282 +3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4755 .loc 1 3916 9 is_stmt 1 view .LVU1554 + 4756 008c 2046 mov r0, r4 + 4757 008e FFF7FEFF bl HAL_TIM_IC_CaptureCallback + 4758 .LVL375: + 4759 .L283: +3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4760 .loc 1 3930 7 view .LVU1555 +3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4761 .loc 1 3930 21 is_stmt 0 view .LVU1556 + 4762 0092 0023 movs r3, #0 + 4763 0094 2377 strb r3, [r4, #28] + 4764 .L281: +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4765 .loc 1 3934 3 is_stmt 1 view .LVU1557 +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4766 .loc 1 3934 7 is_stmt 0 view .LVU1558 + 4767 0096 2368 ldr r3, [r4] + 4768 0098 1A69 ldr r2, [r3, #16] +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4769 .loc 1 3934 6 view .LVU1559 + 4770 009a 12F0100F tst r2, #16 + 4771 009e 12D0 beq .L284 +3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4772 .loc 1 3936 5 is_stmt 1 view .LVU1560 +3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4773 .loc 1 3936 9 is_stmt 0 view .LVU1561 + 4774 00a0 DA68 ldr r2, [r3, #12] +3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4775 .loc 1 3936 8 view .LVU1562 + 4776 00a2 12F0100F tst r2, #16 + 4777 00a6 0ED0 beq .L284 +3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + 4778 .loc 1 3938 7 is_stmt 1 view .LVU1563 + 4779 00a8 6FF01002 mvn r2, #16 + 4780 00ac 1A61 str r2, [r3, #16] +3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + 4781 .loc 1 3939 7 view .LVU1564 +3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Input capture event */ + 4782 .loc 1 3939 21 is_stmt 0 view .LVU1565 + 4783 00ae 0823 movs r3, #8 + 4784 00b0 2377 strb r3, [r4, #28] +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4785 .loc 1 3941 7 is_stmt 1 view .LVU1566 +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4786 .loc 1 3941 16 is_stmt 0 view .LVU1567 + 4787 00b2 2368 ldr r3, [r4] +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4788 .loc 1 3941 26 view .LVU1568 + 4789 00b4 DB69 ldr r3, [r3, #28] +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4790 .loc 1 3941 10 view .LVU1569 + 4791 00b6 13F4407F tst r3, #768 + ARM GAS /tmp/cc0wMqvE.s page 243 + + + 4792 00ba 6AD0 beq .L285 +3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4793 .loc 1 3946 9 is_stmt 1 view .LVU1570 + 4794 00bc 2046 mov r0, r4 + 4795 00be FFF7FEFF bl HAL_TIM_IC_CaptureCallback + 4796 .LVL376: + 4797 .L286: +3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4798 .loc 1 3960 7 view .LVU1571 +3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 4799 .loc 1 3960 21 is_stmt 0 view .LVU1572 + 4800 00c2 0023 movs r3, #0 + 4801 00c4 2377 strb r3, [r4, #28] + 4802 .L284: +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4803 .loc 1 3964 3 is_stmt 1 view .LVU1573 +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4804 .loc 1 3964 7 is_stmt 0 view .LVU1574 + 4805 00c6 2368 ldr r3, [r4] + 4806 00c8 1A69 ldr r2, [r3, #16] +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4807 .loc 1 3964 6 view .LVU1575 + 4808 00ca 12F0010F tst r2, #1 + 4809 00ce 03D0 beq .L287 +3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4810 .loc 1 3966 5 is_stmt 1 view .LVU1576 +3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4811 .loc 1 3966 9 is_stmt 0 view .LVU1577 + 4812 00d0 DA68 ldr r2, [r3, #12] +3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4813 .loc 1 3966 8 view .LVU1578 + 4814 00d2 12F0010F tst r2, #1 + 4815 00d6 63D1 bne .L297 + 4816 .L287: +3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4817 .loc 1 3977 3 is_stmt 1 view .LVU1579 +3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4818 .loc 1 3977 7 is_stmt 0 view .LVU1580 + 4819 00d8 2368 ldr r3, [r4] + 4820 00da 1A69 ldr r2, [r3, #16] +3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4821 .loc 1 3977 6 view .LVU1581 + 4822 00dc 12F0800F tst r2, #128 + 4823 00e0 03D0 beq .L288 +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4824 .loc 1 3979 5 is_stmt 1 view .LVU1582 +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4825 .loc 1 3979 9 is_stmt 0 view .LVU1583 + 4826 00e2 DA68 ldr r2, [r3, #12] +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4827 .loc 1 3979 8 view .LVU1584 + 4828 00e4 12F0800F tst r2, #128 + 4829 00e8 61D1 bne .L298 + 4830 .L288: +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4831 .loc 1 3990 3 is_stmt 1 view .LVU1585 +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 244 + + + 4832 .loc 1 3990 7 is_stmt 0 view .LVU1586 + 4833 00ea 2368 ldr r3, [r4] + 4834 00ec 1A69 ldr r2, [r3, #16] +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4835 .loc 1 3990 6 view .LVU1587 + 4836 00ee 12F4807F tst r2, #256 + 4837 00f2 03D0 beq .L289 +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4838 .loc 1 3992 5 is_stmt 1 view .LVU1588 +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4839 .loc 1 3992 9 is_stmt 0 view .LVU1589 + 4840 00f4 DA68 ldr r2, [r3, #12] +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4841 .loc 1 3992 8 view .LVU1590 + 4842 00f6 12F0800F tst r2, #128 + 4843 00fa 5FD1 bne .L299 + 4844 .L289: +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4845 .loc 1 4003 3 is_stmt 1 view .LVU1591 +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4846 .loc 1 4003 7 is_stmt 0 view .LVU1592 + 4847 00fc 2368 ldr r3, [r4] + 4848 00fe 1A69 ldr r2, [r3, #16] +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4849 .loc 1 4003 6 view .LVU1593 + 4850 0100 12F0400F tst r2, #64 + 4851 0104 03D0 beq .L290 +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4852 .loc 1 4005 5 is_stmt 1 view .LVU1594 +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4853 .loc 1 4005 9 is_stmt 0 view .LVU1595 + 4854 0106 DA68 ldr r2, [r3, #12] +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4855 .loc 1 4005 8 view .LVU1596 + 4856 0108 12F0400F tst r2, #64 + 4857 010c 5DD1 bne .L300 + 4858 .L290: +4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4859 .loc 1 4016 3 is_stmt 1 view .LVU1597 +4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4860 .loc 1 4016 7 is_stmt 0 view .LVU1598 + 4861 010e 2368 ldr r3, [r4] + 4862 0110 1A69 ldr r2, [r3, #16] +4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4863 .loc 1 4016 6 view .LVU1599 + 4864 0112 12F0200F tst r2, #32 + 4865 0116 03D0 beq .L291 +4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4866 .loc 1 4018 5 is_stmt 1 view .LVU1600 +4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4867 .loc 1 4018 9 is_stmt 0 view .LVU1601 + 4868 0118 DA68 ldr r2, [r3, #12] +4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4869 .loc 1 4018 8 view .LVU1602 + 4870 011a 12F0200F tst r2, #32 + 4871 011e 5BD1 bne .L301 + 4872 .L291: + ARM GAS /tmp/cc0wMqvE.s page 245 + + +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4873 .loc 1 4029 3 is_stmt 1 view .LVU1603 +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4874 .loc 1 4029 7 is_stmt 0 view .LVU1604 + 4875 0120 2368 ldr r3, [r4] + 4876 0122 1A69 ldr r2, [r3, #16] +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4877 .loc 1 4029 6 view .LVU1605 + 4878 0124 12F4801F tst r2, #1048576 + 4879 0128 03D0 beq .L292 +4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4880 .loc 1 4031 5 is_stmt 1 view .LVU1606 +4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4881 .loc 1 4031 9 is_stmt 0 view .LVU1607 + 4882 012a DA68 ldr r2, [r3, #12] +4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4883 .loc 1 4031 8 view .LVU1608 + 4884 012c 12F4801F tst r2, #1048576 + 4885 0130 59D1 bne .L302 + 4886 .L292: +4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4887 .loc 1 4042 3 is_stmt 1 view .LVU1609 +4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4888 .loc 1 4042 7 is_stmt 0 view .LVU1610 + 4889 0132 2368 ldr r3, [r4] + 4890 0134 1A69 ldr r2, [r3, #16] +4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4891 .loc 1 4042 6 view .LVU1611 + 4892 0136 12F4001F tst r2, #2097152 + 4893 013a 03D0 beq .L293 +4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4894 .loc 1 4044 5 is_stmt 1 view .LVU1612 +4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4895 .loc 1 4044 9 is_stmt 0 view .LVU1613 + 4896 013c DA68 ldr r2, [r3, #12] +4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4897 .loc 1 4044 8 view .LVU1614 + 4898 013e 12F4001F tst r2, #2097152 + 4899 0142 57D1 bne .L303 + 4900 .L293: +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4901 .loc 1 4055 3 is_stmt 1 view .LVU1615 +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4902 .loc 1 4055 7 is_stmt 0 view .LVU1616 + 4903 0144 2368 ldr r3, [r4] + 4904 0146 1A69 ldr r2, [r3, #16] +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4905 .loc 1 4055 6 view .LVU1617 + 4906 0148 12F4800F tst r2, #4194304 + 4907 014c 03D0 beq .L294 +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4908 .loc 1 4057 5 is_stmt 1 view .LVU1618 +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4909 .loc 1 4057 9 is_stmt 0 view .LVU1619 + 4910 014e DA68 ldr r2, [r3, #12] +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4911 .loc 1 4057 8 view .LVU1620 + ARM GAS /tmp/cc0wMqvE.s page 246 + + + 4912 0150 12F4800F tst r2, #4194304 + 4913 0154 55D1 bne .L304 + 4914 .L294: +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4915 .loc 1 4068 3 is_stmt 1 view .LVU1621 +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4916 .loc 1 4068 7 is_stmt 0 view .LVU1622 + 4917 0156 2368 ldr r3, [r4] + 4918 0158 1A69 ldr r2, [r3, #16] +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4919 .loc 1 4068 6 view .LVU1623 + 4920 015a 12F4000F tst r2, #8388608 + 4921 015e 03D0 beq .L274 +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4922 .loc 1 4070 5 is_stmt 1 view .LVU1624 +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4923 .loc 1 4070 9 is_stmt 0 view .LVU1625 + 4924 0160 DA68 ldr r2, [r3, #12] +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 4925 .loc 1 4070 8 view .LVU1626 + 4926 0162 12F4000F tst r2, #8388608 + 4927 0166 53D1 bne .L305 + 4928 .L274: +4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 4929 .loc 1 4080 1 view .LVU1627 + 4930 0168 10BD pop {r4, pc} + 4931 .LVL377: + 4932 .L276: +3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); + 4933 .loc 1 3865 11 is_stmt 1 view .LVU1628 + 4934 016a FFF7FEFF bl HAL_TIM_OC_DelayElapsedCallback + 4935 .LVL378: +3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4936 .loc 1 3866 11 view .LVU1629 + 4937 016e 2046 mov r0, r4 + 4938 0170 FFF7FEFF bl HAL_TIM_PWM_PulseFinishedCallback + 4939 .LVL379: + 4940 0174 5CE7 b .L277 + 4941 .L279: +3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); + 4942 .loc 1 3896 9 view .LVU1630 + 4943 0176 2046 mov r0, r4 + 4944 0178 FFF7FEFF bl HAL_TIM_OC_DelayElapsedCallback + 4945 .LVL380: +3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4946 .loc 1 3897 9 view .LVU1631 + 4947 017c 2046 mov r0, r4 + 4948 017e FFF7FEFF bl HAL_TIM_PWM_PulseFinishedCallback + 4949 .LVL381: + 4950 0182 6EE7 b .L280 + 4951 .L282: +3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); + 4952 .loc 1 3926 9 view .LVU1632 + 4953 0184 2046 mov r0, r4 + 4954 0186 FFF7FEFF bl HAL_TIM_OC_DelayElapsedCallback + 4955 .LVL382: +3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + ARM GAS /tmp/cc0wMqvE.s page 247 + + + 4956 .loc 1 3927 9 view .LVU1633 + 4957 018a 2046 mov r0, r4 + 4958 018c FFF7FEFF bl HAL_TIM_PWM_PulseFinishedCallback + 4959 .LVL383: + 4960 0190 7FE7 b .L283 + 4961 .L285: +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); + 4962 .loc 1 3956 9 view .LVU1634 + 4963 0192 2046 mov r0, r4 + 4964 0194 FFF7FEFF bl HAL_TIM_OC_DelayElapsedCallback + 4965 .LVL384: +3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4966 .loc 1 3957 9 view .LVU1635 + 4967 0198 2046 mov r0, r4 + 4968 019a FFF7FEFF bl HAL_TIM_PWM_PulseFinishedCallback + 4969 .LVL385: + 4970 019e 90E7 b .L286 + 4971 .L297: +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 4972 .loc 1 3968 7 view .LVU1636 + 4973 01a0 6FF00102 mvn r2, #1 + 4974 01a4 1A61 str r2, [r3, #16] +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4975 .loc 1 3972 7 view .LVU1637 + 4976 01a6 2046 mov r0, r4 + 4977 01a8 FFF7FEFF bl HAL_TIM_PeriodElapsedCallback + 4978 .LVL386: + 4979 01ac 94E7 b .L287 + 4980 .L298: +3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 4981 .loc 1 3981 7 view .LVU1638 + 4982 01ae 6FF08002 mvn r2, #128 + 4983 01b2 1A61 str r2, [r3, #16] +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4984 .loc 1 3985 7 view .LVU1639 + 4985 01b4 2046 mov r0, r4 + 4986 01b6 FFF7FEFF bl HAL_TIMEx_BreakCallback + 4987 .LVL387: + 4988 01ba 96E7 b .L288 + 4989 .L299: +3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 4990 .loc 1 3994 7 view .LVU1640 + 4991 01bc 6FF48072 mvn r2, #256 + 4992 01c0 1A61 str r2, [r3, #16] +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 4993 .loc 1 3998 7 view .LVU1641 + 4994 01c2 2046 mov r0, r4 + 4995 01c4 FFF7FEFF bl HAL_TIMEx_Break2Callback + 4996 .LVL388: + 4997 01c8 98E7 b .L289 + 4998 .L300: +4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 4999 .loc 1 4007 7 view .LVU1642 + 5000 01ca 6FF04002 mvn r2, #64 + 5001 01ce 1A61 str r2, [r3, #16] +4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5002 .loc 1 4011 7 view .LVU1643 + ARM GAS /tmp/cc0wMqvE.s page 248 + + + 5003 01d0 2046 mov r0, r4 + 5004 01d2 FFF7FEFF bl HAL_TIM_TriggerCallback + 5005 .LVL389: + 5006 01d6 9AE7 b .L290 + 5007 .L301: +4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 5008 .loc 1 4020 7 view .LVU1644 + 5009 01d8 6FF02002 mvn r2, #32 + 5010 01dc 1A61 str r2, [r3, #16] +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5011 .loc 1 4024 7 view .LVU1645 + 5012 01de 2046 mov r0, r4 + 5013 01e0 FFF7FEFF bl HAL_TIMEx_CommutCallback + 5014 .LVL390: + 5015 01e4 9CE7 b .L291 + 5016 .L302: +4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 5017 .loc 1 4033 7 view .LVU1646 + 5018 01e6 6FF48012 mvn r2, #1048576 + 5019 01ea 1A61 str r2, [r3, #16] +4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5020 .loc 1 4037 7 view .LVU1647 + 5021 01ec 2046 mov r0, r4 + 5022 01ee FFF7FEFF bl HAL_TIMEx_EncoderIndexCallback + 5023 .LVL391: + 5024 01f2 9EE7 b .L292 + 5025 .L303: +4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 5026 .loc 1 4046 7 view .LVU1648 + 5027 01f4 6FF40012 mvn r2, #2097152 + 5028 01f8 1A61 str r2, [r3, #16] +4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5029 .loc 1 4050 7 view .LVU1649 + 5030 01fa 2046 mov r0, r4 + 5031 01fc FFF7FEFF bl HAL_TIMEx_DirectionChangeCallback + 5032 .LVL392: + 5033 0200 A0E7 b .L293 + 5034 .L304: +4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 5035 .loc 1 4059 7 view .LVU1650 + 5036 0202 6FF48002 mvn r2, #4194304 + 5037 0206 1A61 str r2, [r3, #16] +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5038 .loc 1 4063 7 view .LVU1651 + 5039 0208 2046 mov r0, r4 + 5040 020a FFF7FEFF bl HAL_TIMEx_IndexErrorCallback + 5041 .LVL393: + 5042 020e A2E7 b .L294 + 5043 .L305: +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 5044 .loc 1 4072 7 view .LVU1652 + 5045 0210 6FF40002 mvn r2, #8388608 + 5046 0214 1A61 str r2, [r3, #16] +4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5047 .loc 1 4076 7 view .LVU1653 + 5048 0216 2046 mov r0, r4 + 5049 0218 FFF7FEFF bl HAL_TIMEx_TransitionErrorCallback + ARM GAS /tmp/cc0wMqvE.s page 249 + + + 5050 .LVL394: +4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5051 .loc 1 4080 1 is_stmt 0 view .LVU1654 + 5052 021c A4E7 b .L274 + 5053 .cfi_endproc + 5054 .LFE387: + 5056 .section .text.TIM_DMATriggerCplt,"ax",%progbits + 5057 .align 1 + 5058 .syntax unified + 5059 .thumb + 5060 .thumb_func + 5062 TIM_DMATriggerCplt: + 5063 .LVL395: + 5064 .LFB431: +7069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5065 .loc 1 7069 1 is_stmt 1 view -0 + 5066 .cfi_startproc + 5067 @ args = 0, pretend = 0, frame = 0 + 5068 @ frame_needed = 0, uses_anonymous_args = 0 +7069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5069 .loc 1 7069 1 is_stmt 0 view .LVU1656 + 5070 0000 08B5 push {r3, lr} + 5071 .LCFI45: + 5072 .cfi_def_cfa_offset 8 + 5073 .cfi_offset 3, -8 + 5074 .cfi_offset 14, -4 +7070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5075 .loc 1 7070 3 is_stmt 1 view .LVU1657 +7070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5076 .loc 1 7070 22 is_stmt 0 view .LVU1658 + 5077 0002 806A ldr r0, [r0, #40] + 5078 .LVL396: +7072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5079 .loc 1 7072 3 is_stmt 1 view .LVU1659 +7072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5080 .loc 1 7072 17 is_stmt 0 view .LVU1660 + 5081 0004 836B ldr r3, [r0, #56] +7072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5082 .loc 1 7072 43 view .LVU1661 + 5083 0006 DB69 ldr r3, [r3, #28] +7072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5084 .loc 1 7072 6 view .LVU1662 + 5085 0008 13B9 cbnz r3, .L307 +7074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5086 .loc 1 7074 5 is_stmt 1 view .LVU1663 +7074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5087 .loc 1 7074 17 is_stmt 0 view .LVU1664 + 5088 000a 0123 movs r3, #1 + 5089 000c 80F83D30 strb r3, [r0, #61] + 5090 .L307: +7080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5091 .loc 1 7080 3 is_stmt 1 view .LVU1665 + 5092 0010 FFF7FEFF bl HAL_TIM_TriggerCallback + 5093 .LVL397: +7082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5094 .loc 1 7082 1 is_stmt 0 view .LVU1666 + 5095 0014 08BD pop {r3, pc} + ARM GAS /tmp/cc0wMqvE.s page 250 + + + 5096 .cfi_endproc + 5097 .LFE431: + 5099 .section .text.HAL_TIM_TriggerHalfCpltCallback,"ax",%progbits + 5100 .align 1 + 5101 .weak HAL_TIM_TriggerHalfCpltCallback + 5102 .syntax unified + 5103 .thumb + 5104 .thumb_func + 5106 HAL_TIM_TriggerHalfCpltCallback: + 5107 .LVL398: + 5108 .LFB413: +6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 5109 .loc 1 6041 1 is_stmt 1 view -0 + 5110 .cfi_startproc + 5111 @ args = 0, pretend = 0, frame = 0 + 5112 @ frame_needed = 0, uses_anonymous_args = 0 + 5113 @ link register save eliminated. +6043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5114 .loc 1 6043 3 view .LVU1668 +6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5115 .loc 1 6048 1 is_stmt 0 view .LVU1669 + 5116 0000 7047 bx lr + 5117 .cfi_endproc + 5118 .LFE413: + 5120 .section .text.TIM_DMATriggerHalfCplt,"ax",%progbits + 5121 .align 1 + 5122 .syntax unified + 5123 .thumb + 5124 .thumb_func + 5126 TIM_DMATriggerHalfCplt: + 5127 .LVL399: + 5128 .LFB432: +7090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5129 .loc 1 7090 1 is_stmt 1 view -0 + 5130 .cfi_startproc + 5131 @ args = 0, pretend = 0, frame = 0 + 5132 @ frame_needed = 0, uses_anonymous_args = 0 +7090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5133 .loc 1 7090 1 is_stmt 0 view .LVU1671 + 5134 0000 08B5 push {r3, lr} + 5135 .LCFI46: + 5136 .cfi_def_cfa_offset 8 + 5137 .cfi_offset 3, -8 + 5138 .cfi_offset 14, -4 +7091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5139 .loc 1 7091 3 is_stmt 1 view .LVU1672 + 5140 .LVL400: +7096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5141 .loc 1 7096 3 view .LVU1673 + 5142 0002 806A ldr r0, [r0, #40] + 5143 .LVL401: +7096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5144 .loc 1 7096 3 is_stmt 0 view .LVU1674 + 5145 0004 FFF7FEFF bl HAL_TIM_TriggerHalfCpltCallback + 5146 .LVL402: +7098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5147 .loc 1 7098 1 view .LVU1675 + ARM GAS /tmp/cc0wMqvE.s page 251 + + + 5148 0008 08BD pop {r3, pc} + 5149 .cfi_endproc + 5150 .LFE432: + 5152 .section .text.HAL_TIM_ErrorCallback,"ax",%progbits + 5153 .align 1 + 5154 .weak HAL_TIM_ErrorCallback + 5155 .syntax unified + 5156 .thumb + 5157 .thumb_func + 5159 HAL_TIM_ErrorCallback: + 5160 .LVL403: + 5161 .LFB414: +6056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 5162 .loc 1 6056 1 is_stmt 1 view -0 + 5163 .cfi_startproc + 5164 @ args = 0, pretend = 0, frame = 0 + 5165 @ frame_needed = 0, uses_anonymous_args = 0 + 5166 @ link register save eliminated. +6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5167 .loc 1 6058 3 view .LVU1677 +6063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5168 .loc 1 6063 1 is_stmt 0 view .LVU1678 + 5169 0000 7047 bx lr + 5170 .cfi_endproc + 5171 .LFE414: + 5173 .section .text.TIM_DMAError,"ax",%progbits + 5174 .align 1 + 5175 .global TIM_DMAError + 5176 .syntax unified + 5177 .thumb + 5178 .thumb_func + 5180 TIM_DMAError: + 5181 .LVL404: + 5182 .LFB424: +6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5183 .loc 1 6789 1 is_stmt 1 view -0 + 5184 .cfi_startproc + 5185 @ args = 0, pretend = 0, frame = 0 + 5186 @ frame_needed = 0, uses_anonymous_args = 0 +6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5187 .loc 1 6789 1 is_stmt 0 view .LVU1680 + 5188 0000 10B5 push {r4, lr} + 5189 .LCFI47: + 5190 .cfi_def_cfa_offset 8 + 5191 .cfi_offset 4, -8 + 5192 .cfi_offset 14, -4 +6790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5193 .loc 1 6790 3 is_stmt 1 view .LVU1681 +6790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5194 .loc 1 6790 22 is_stmt 0 view .LVU1682 + 5195 0002 846A ldr r4, [r0, #40] + 5196 .LVL405: +6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5197 .loc 1 6792 3 is_stmt 1 view .LVU1683 +6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5198 .loc 1 6792 25 is_stmt 0 view .LVU1684 + 5199 0004 636A ldr r3, [r4, #36] + ARM GAS /tmp/cc0wMqvE.s page 252 + + +6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5200 .loc 1 6792 6 view .LVU1685 + 5201 0006 8342 cmp r3, r0 + 5202 0008 0CD0 beq .L320 +6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5203 .loc 1 6797 8 is_stmt 1 view .LVU1686 +6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5204 .loc 1 6797 30 is_stmt 0 view .LVU1687 + 5205 000a A36A ldr r3, [r4, #40] +6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5206 .loc 1 6797 11 view .LVU1688 + 5207 000c 8342 cmp r3, r0 + 5208 000e 13D0 beq .L321 +6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5209 .loc 1 6802 8 is_stmt 1 view .LVU1689 +6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5210 .loc 1 6802 30 is_stmt 0 view .LVU1690 + 5211 0010 E36A ldr r3, [r4, #44] +6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5212 .loc 1 6802 11 view .LVU1691 + 5213 0012 8342 cmp r3, r0 + 5214 0014 16D0 beq .L322 +6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5215 .loc 1 6807 8 is_stmt 1 view .LVU1692 +6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5216 .loc 1 6807 30 is_stmt 0 view .LVU1693 + 5217 0016 236B ldr r3, [r4, #48] +6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5218 .loc 1 6807 11 view .LVU1694 + 5219 0018 8342 cmp r3, r0 + 5220 001a 19D0 beq .L323 +6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5221 .loc 1 6814 5 is_stmt 1 view .LVU1695 +6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5222 .loc 1 6814 17 is_stmt 0 view .LVU1696 + 5223 001c 0123 movs r3, #1 + 5224 001e 84F83D30 strb r3, [r4, #61] + 5225 0022 03E0 b .L315 + 5226 .L320: +6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 5227 .loc 1 6794 5 is_stmt 1 view .LVU1697 +6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 5228 .loc 1 6794 19 is_stmt 0 view .LVU1698 + 5229 0024 0123 movs r3, #1 + 5230 0026 2377 strb r3, [r4, #28] +6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5231 .loc 1 6795 5 is_stmt 1 view .LVU1699 + 5232 0028 84F83E30 strb r3, [r4, #62] + 5233 .L315: +6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5234 .loc 1 6820 3 view .LVU1700 + 5235 002c 2046 mov r0, r4 + 5236 .LVL406: +6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5237 .loc 1 6820 3 is_stmt 0 view .LVU1701 + 5238 002e FFF7FEFF bl HAL_TIM_ErrorCallback + 5239 .LVL407: + ARM GAS /tmp/cc0wMqvE.s page 253 + + +6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5240 .loc 1 6823 3 is_stmt 1 view .LVU1702 +6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5241 .loc 1 6823 17 is_stmt 0 view .LVU1703 + 5242 0032 0023 movs r3, #0 + 5243 0034 2377 strb r3, [r4, #28] +6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5244 .loc 1 6824 1 view .LVU1704 + 5245 0036 10BD pop {r4, pc} + 5246 .LVL408: + 5247 .L321: +6799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 5248 .loc 1 6799 5 is_stmt 1 view .LVU1705 +6799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 5249 .loc 1 6799 19 is_stmt 0 view .LVU1706 + 5250 0038 0223 movs r3, #2 + 5251 003a 2377 strb r3, [r4, #28] +6800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5252 .loc 1 6800 5 is_stmt 1 view .LVU1707 + 5253 003c 0123 movs r3, #1 + 5254 003e 84F83F30 strb r3, [r4, #63] + 5255 0042 F3E7 b .L315 + 5256 .L322: +6804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + 5257 .loc 1 6804 5 view .LVU1708 +6804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + 5258 .loc 1 6804 19 is_stmt 0 view .LVU1709 + 5259 0044 0423 movs r3, #4 + 5260 0046 2377 strb r3, [r4, #28] +6805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5261 .loc 1 6805 5 is_stmt 1 view .LVU1710 + 5262 0048 0123 movs r3, #1 + 5263 004a 84F84030 strb r3, [r4, #64] + 5264 004e EDE7 b .L315 + 5265 .L323: +6809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + 5266 .loc 1 6809 5 view .LVU1711 +6809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + 5267 .loc 1 6809 19 is_stmt 0 view .LVU1712 + 5268 0050 0823 movs r3, #8 + 5269 0052 2377 strb r3, [r4, #28] +6810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5270 .loc 1 6810 5 is_stmt 1 view .LVU1713 + 5271 0054 0123 movs r3, #1 + 5272 0056 84F84130 strb r3, [r4, #65] + 5273 005a E7E7 b .L315 + 5274 .cfi_endproc + 5275 .LFE424: + 5277 .section .text.HAL_TIM_Base_GetState,"ax",%progbits + 5278 .align 1 + 5279 .global HAL_TIM_Base_GetState + 5280 .syntax unified + 5281 .thumb + 5282 .thumb_func + 5284 HAL_TIM_Base_GetState: + 5285 .LVL409: + 5286 .LFB415: + ARM GAS /tmp/cc0wMqvE.s page 254 + + +6669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; + 5287 .loc 1 6669 1 view -0 + 5288 .cfi_startproc + 5289 @ args = 0, pretend = 0, frame = 0 + 5290 @ frame_needed = 0, uses_anonymous_args = 0 + 5291 @ link register save eliminated. +6670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5292 .loc 1 6670 3 view .LVU1715 +6670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5293 .loc 1 6670 14 is_stmt 0 view .LVU1716 + 5294 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 5295 .LVL410: +6671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5296 .loc 1 6671 1 view .LVU1717 + 5297 0004 7047 bx lr + 5298 .cfi_endproc + 5299 .LFE415: + 5301 .section .text.HAL_TIM_OC_GetState,"ax",%progbits + 5302 .align 1 + 5303 .global HAL_TIM_OC_GetState + 5304 .syntax unified + 5305 .thumb + 5306 .thumb_func + 5308 HAL_TIM_OC_GetState: + 5309 .LVL411: + 5310 .LFB416: +6679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; + 5311 .loc 1 6679 1 is_stmt 1 view -0 + 5312 .cfi_startproc + 5313 @ args = 0, pretend = 0, frame = 0 + 5314 @ frame_needed = 0, uses_anonymous_args = 0 + 5315 @ link register save eliminated. +6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5316 .loc 1 6680 3 view .LVU1719 +6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5317 .loc 1 6680 14 is_stmt 0 view .LVU1720 + 5318 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 5319 .LVL412: +6681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5320 .loc 1 6681 1 view .LVU1721 + 5321 0004 7047 bx lr + 5322 .cfi_endproc + 5323 .LFE416: + 5325 .section .text.HAL_TIM_PWM_GetState,"ax",%progbits + 5326 .align 1 + 5327 .global HAL_TIM_PWM_GetState + 5328 .syntax unified + 5329 .thumb + 5330 .thumb_func + 5332 HAL_TIM_PWM_GetState: + 5333 .LVL413: + 5334 .LFB417: +6689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; + 5335 .loc 1 6689 1 is_stmt 1 view -0 + 5336 .cfi_startproc + 5337 @ args = 0, pretend = 0, frame = 0 + 5338 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cc0wMqvE.s page 255 + + + 5339 @ link register save eliminated. +6690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5340 .loc 1 6690 3 view .LVU1723 +6690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5341 .loc 1 6690 14 is_stmt 0 view .LVU1724 + 5342 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 5343 .LVL414: +6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5344 .loc 1 6691 1 view .LVU1725 + 5345 0004 7047 bx lr + 5346 .cfi_endproc + 5347 .LFE417: + 5349 .section .text.HAL_TIM_IC_GetState,"ax",%progbits + 5350 .align 1 + 5351 .global HAL_TIM_IC_GetState + 5352 .syntax unified + 5353 .thumb + 5354 .thumb_func + 5356 HAL_TIM_IC_GetState: + 5357 .LVL415: + 5358 .LFB418: +6699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; + 5359 .loc 1 6699 1 is_stmt 1 view -0 + 5360 .cfi_startproc + 5361 @ args = 0, pretend = 0, frame = 0 + 5362 @ frame_needed = 0, uses_anonymous_args = 0 + 5363 @ link register save eliminated. +6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5364 .loc 1 6700 3 view .LVU1727 +6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5365 .loc 1 6700 14 is_stmt 0 view .LVU1728 + 5366 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 5367 .LVL416: +6701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5368 .loc 1 6701 1 view .LVU1729 + 5369 0004 7047 bx lr + 5370 .cfi_endproc + 5371 .LFE418: + 5373 .section .text.HAL_TIM_OnePulse_GetState,"ax",%progbits + 5374 .align 1 + 5375 .global HAL_TIM_OnePulse_GetState + 5376 .syntax unified + 5377 .thumb + 5378 .thumb_func + 5380 HAL_TIM_OnePulse_GetState: + 5381 .LVL417: + 5382 .LFB419: +6709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; + 5383 .loc 1 6709 1 is_stmt 1 view -0 + 5384 .cfi_startproc + 5385 @ args = 0, pretend = 0, frame = 0 + 5386 @ frame_needed = 0, uses_anonymous_args = 0 + 5387 @ link register save eliminated. +6710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5388 .loc 1 6710 3 view .LVU1731 +6710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5389 .loc 1 6710 14 is_stmt 0 view .LVU1732 + ARM GAS /tmp/cc0wMqvE.s page 256 + + + 5390 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 5391 .LVL418: +6711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5392 .loc 1 6711 1 view .LVU1733 + 5393 0004 7047 bx lr + 5394 .cfi_endproc + 5395 .LFE419: + 5397 .section .text.HAL_TIM_Encoder_GetState,"ax",%progbits + 5398 .align 1 + 5399 .global HAL_TIM_Encoder_GetState + 5400 .syntax unified + 5401 .thumb + 5402 .thumb_func + 5404 HAL_TIM_Encoder_GetState: + 5405 .LVL419: + 5406 .LFB420: +6719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->State; + 5407 .loc 1 6719 1 is_stmt 1 view -0 + 5408 .cfi_startproc + 5409 @ args = 0, pretend = 0, frame = 0 + 5410 @ frame_needed = 0, uses_anonymous_args = 0 + 5411 @ link register save eliminated. +6720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5412 .loc 1 6720 3 view .LVU1735 +6720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5413 .loc 1 6720 14 is_stmt 0 view .LVU1736 + 5414 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 5415 .LVL420: +6721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5416 .loc 1 6721 1 view .LVU1737 + 5417 0004 7047 bx lr + 5418 .cfi_endproc + 5419 .LFE420: + 5421 .section .text.HAL_TIM_GetActiveChannel,"ax",%progbits + 5422 .align 1 + 5423 .global HAL_TIM_GetActiveChannel + 5424 .syntax unified + 5425 .thumb + 5426 .thumb_func + 5428 HAL_TIM_GetActiveChannel: + 5429 .LVL421: + 5430 .LFB421: +6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return htim->Channel; + 5431 .loc 1 6729 1 is_stmt 1 view -0 + 5432 .cfi_startproc + 5433 @ args = 0, pretend = 0, frame = 0 + 5434 @ frame_needed = 0, uses_anonymous_args = 0 + 5435 @ link register save eliminated. +6730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5436 .loc 1 6730 3 view .LVU1739 +6731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5437 .loc 1 6731 1 is_stmt 0 view .LVU1740 + 5438 0000 007F ldrb r0, [r0, #28] @ zero_extendqisi2 + 5439 .LVL422: +6731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5440 .loc 1 6731 1 view .LVU1741 + 5441 0002 7047 bx lr + ARM GAS /tmp/cc0wMqvE.s page 257 + + + 5442 .cfi_endproc + 5443 .LFE421: + 5445 .section .text.HAL_TIM_GetChannelState,"ax",%progbits + 5446 .align 1 + 5447 .global HAL_TIM_GetChannelState + 5448 .syntax unified + 5449 .thumb + 5450 .thumb_func + 5452 HAL_TIM_GetChannelState: + 5453 .LVL423: + 5454 .LFB422: +6747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_state; + 5455 .loc 1 6747 1 is_stmt 1 view -0 + 5456 .cfi_startproc + 5457 @ args = 0, pretend = 0, frame = 0 + 5458 @ frame_needed = 0, uses_anonymous_args = 0 + 5459 @ link register save eliminated. +6748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5460 .loc 1 6748 3 view .LVU1743 +6751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5461 .loc 1 6751 3 view .LVU1744 +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5462 .loc 1 6753 3 view .LVU1745 + 5463 0000 1029 cmp r1, #16 + 5464 0002 1ED8 bhi .L332 + 5465 0004 DFE801F0 tbb [pc, r1] + 5466 .L334: + 5467 0008 09 .byte (.L338-.L334)/2 + 5468 0009 1D .byte (.L332-.L334)/2 + 5469 000a 1D .byte (.L332-.L334)/2 + 5470 000b 1D .byte (.L332-.L334)/2 + 5471 000c 0D .byte (.L337-.L334)/2 + 5472 000d 1D .byte (.L332-.L334)/2 + 5473 000e 1D .byte (.L332-.L334)/2 + 5474 000f 1D .byte (.L332-.L334)/2 + 5475 0010 11 .byte (.L336-.L334)/2 + 5476 0011 1D .byte (.L332-.L334)/2 + 5477 0012 1D .byte (.L332-.L334)/2 + 5478 0013 1D .byte (.L332-.L334)/2 + 5479 0014 15 .byte (.L335-.L334)/2 + 5480 0015 1D .byte (.L332-.L334)/2 + 5481 0016 1D .byte (.L332-.L334)/2 + 5482 0017 1D .byte (.L332-.L334)/2 + 5483 0018 19 .byte (.L333-.L334)/2 + 5484 0019 00 .p2align 1 + 5485 .L338: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5486 .loc 1 6753 19 is_stmt 0 discriminator 1 view .LVU1746 + 5487 001a 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 5488 .LVL424: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5489 .loc 1 6753 19 discriminator 1 view .LVU1747 + 5490 001e C0B2 uxtb r0, r0 + 5491 0020 7047 bx lr + 5492 .LVL425: + 5493 .L337: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 258 + + + 5494 .loc 1 6753 19 discriminator 4 view .LVU1748 + 5495 0022 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 5496 .LVL426: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5497 .loc 1 6753 19 discriminator 4 view .LVU1749 + 5498 0026 C0B2 uxtb r0, r0 + 5499 0028 7047 bx lr + 5500 .LVL427: + 5501 .L336: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5502 .loc 1 6753 19 discriminator 7 view .LVU1750 + 5503 002a 90F84000 ldrb r0, [r0, #64] @ zero_extendqisi2 + 5504 .LVL428: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5505 .loc 1 6753 19 discriminator 7 view .LVU1751 + 5506 002e C0B2 uxtb r0, r0 + 5507 0030 7047 bx lr + 5508 .LVL429: + 5509 .L335: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5510 .loc 1 6753 19 discriminator 10 view .LVU1752 + 5511 0032 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 5512 .LVL430: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5513 .loc 1 6753 19 discriminator 10 view .LVU1753 + 5514 0036 C0B2 uxtb r0, r0 + 5515 0038 7047 bx lr + 5516 .LVL431: + 5517 .L333: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5518 .loc 1 6753 19 discriminator 13 view .LVU1754 + 5519 003a 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 + 5520 .LVL432: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5521 .loc 1 6753 19 discriminator 13 view .LVU1755 + 5522 003e C0B2 uxtb r0, r0 + 5523 0040 7047 bx lr + 5524 .LVL433: + 5525 .L332: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5526 .loc 1 6753 19 discriminator 14 view .LVU1756 + 5527 0042 90F84300 ldrb r0, [r0, #67] @ zero_extendqisi2 + 5528 .LVL434: +6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5529 .loc 1 6753 19 discriminator 14 view .LVU1757 + 5530 0046 C0B2 uxtb r0, r0 + 5531 .LVL435: +6755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5532 .loc 1 6755 3 is_stmt 1 discriminator 14 view .LVU1758 +6756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5533 .loc 1 6756 1 is_stmt 0 discriminator 14 view .LVU1759 + 5534 0048 7047 bx lr + 5535 .cfi_endproc + 5536 .LFE422: + 5538 .section .text.HAL_TIM_DMABurstState,"ax",%progbits + 5539 .align 1 + 5540 .global HAL_TIM_DMABurstState + ARM GAS /tmp/cc0wMqvE.s page 259 + + + 5541 .syntax unified + 5542 .thumb + 5543 .thumb_func + 5545 HAL_TIM_DMABurstState: + 5546 .LVL436: + 5547 .LFB423: +6764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 5548 .loc 1 6764 1 is_stmt 1 view -0 + 5549 .cfi_startproc + 5550 @ args = 0, pretend = 0, frame = 0 + 5551 @ frame_needed = 0, uses_anonymous_args = 0 + 5552 @ link register save eliminated. +6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5553 .loc 1 6766 3 view .LVU1761 +6768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5554 .loc 1 6768 3 view .LVU1762 +6768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5555 .loc 1 6768 14 is_stmt 0 view .LVU1763 + 5556 0000 90F84800 ldrb r0, [r0, #72] @ zero_extendqisi2 + 5557 .LVL437: +6769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5558 .loc 1 6769 1 view .LVU1764 + 5559 0004 7047 bx lr + 5560 .cfi_endproc + 5561 .LFE423: + 5563 .section .text.TIM_Base_SetConfig,"ax",%progbits + 5564 .align 1 + 5565 .global TIM_Base_SetConfig + 5566 .syntax unified + 5567 .thumb + 5568 .thumb_func + 5570 TIM_Base_SetConfig: + 5571 .LVL438: + 5572 .LFB433: +7107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr1; + 5573 .loc 1 7107 1 is_stmt 1 view -0 + 5574 .cfi_startproc + 5575 @ args = 0, pretend = 0, frame = 0 + 5576 @ frame_needed = 0, uses_anonymous_args = 0 + 5577 @ link register save eliminated. +7108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 = TIMx->CR1; + 5578 .loc 1 7108 3 view .LVU1766 +7109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5579 .loc 1 7109 3 view .LVU1767 +7109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5580 .loc 1 7109 10 is_stmt 0 view .LVU1768 + 5581 0000 0368 ldr r3, [r0] + 5582 .LVL439: +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5583 .loc 1 7112 3 is_stmt 1 view .LVU1769 +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5584 .loc 1 7112 6 is_stmt 0 view .LVU1770 + 5585 0002 2C4A ldr r2, .L348 + 5586 0004 9042 cmp r0, r2 + 5587 0006 0ED0 beq .L342 +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5588 .loc 1 7112 7 discriminator 1 view .LVU1771 + ARM GAS /tmp/cc0wMqvE.s page 260 + + + 5589 0008 B0F1804F cmp r0, #1073741824 + 5590 000c 0BD0 beq .L342 +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5591 .loc 1 7112 7 discriminator 2 view .LVU1772 + 5592 000e A2F59432 sub r2, r2, #75776 + 5593 0012 9042 cmp r0, r2 + 5594 0014 07D0 beq .L342 +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5595 .loc 1 7112 7 discriminator 3 view .LVU1773 + 5596 0016 02F58062 add r2, r2, #1024 + 5597 001a 9042 cmp r0, r2 + 5598 001c 03D0 beq .L342 +7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5599 .loc 1 7112 7 discriminator 4 view .LVU1774 + 5600 001e 02F59632 add r2, r2, #76800 + 5601 0022 9042 cmp r0, r2 + 5602 0024 03D1 bne .L343 + 5603 .L342: +7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 |= Structure->CounterMode; + 5604 .loc 1 7115 5 is_stmt 1 view .LVU1775 +7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 |= Structure->CounterMode; + 5605 .loc 1 7115 12 is_stmt 0 view .LVU1776 + 5606 0026 23F07003 bic r3, r3, #112 + 5607 .LVL440: +7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5608 .loc 1 7116 5 is_stmt 1 view .LVU1777 +7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5609 .loc 1 7116 24 is_stmt 0 view .LVU1778 + 5610 002a 4A68 ldr r2, [r1, #4] +7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5611 .loc 1 7116 12 view .LVU1779 + 5612 002c 1343 orrs r3, r3, r2 + 5613 .LVL441: + 5614 .L343: +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5615 .loc 1 7119 3 is_stmt 1 view .LVU1780 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5616 .loc 1 7119 6 is_stmt 0 view .LVU1781 + 5617 002e 214A ldr r2, .L348 + 5618 0030 9042 cmp r0, r2 + 5619 0032 1AD0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5620 .loc 1 7119 7 discriminator 1 view .LVU1782 + 5621 0034 B0F1804F cmp r0, #1073741824 + 5622 0038 17D0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5623 .loc 1 7119 7 discriminator 2 view .LVU1783 + 5624 003a A2F59432 sub r2, r2, #75776 + 5625 003e 9042 cmp r0, r2 + 5626 0040 13D0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5627 .loc 1 7119 7 discriminator 3 view .LVU1784 + 5628 0042 02F58062 add r2, r2, #1024 + 5629 0046 9042 cmp r0, r2 + 5630 0048 0FD0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5631 .loc 1 7119 7 discriminator 4 view .LVU1785 + ARM GAS /tmp/cc0wMqvE.s page 261 + + + 5632 004a 02F59632 add r2, r2, #76800 + 5633 004e 9042 cmp r0, r2 + 5634 0050 0BD0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5635 .loc 1 7119 7 discriminator 5 view .LVU1786 + 5636 0052 02F54062 add r2, r2, #3072 + 5637 0056 9042 cmp r0, r2 + 5638 0058 07D0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5639 .loc 1 7119 7 discriminator 6 view .LVU1787 + 5640 005a 02F58062 add r2, r2, #1024 + 5641 005e 9042 cmp r0, r2 + 5642 0060 03D0 beq .L344 +7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5643 .loc 1 7119 7 discriminator 7 view .LVU1788 + 5644 0062 02F58062 add r2, r2, #1024 + 5645 0066 9042 cmp r0, r2 + 5646 0068 03D1 bne .L345 + 5647 .L344: +7122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 |= (uint32_t)Structure->ClockDivision; + 5648 .loc 1 7122 5 is_stmt 1 view .LVU1789 +7122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr1 |= (uint32_t)Structure->ClockDivision; + 5649 .loc 1 7122 12 is_stmt 0 view .LVU1790 + 5650 006a 23F44073 bic r3, r3, #768 + 5651 .LVL442: +7123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5652 .loc 1 7123 5 is_stmt 1 view .LVU1791 +7123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5653 .loc 1 7123 34 is_stmt 0 view .LVU1792 + 5654 006e CA68 ldr r2, [r1, #12] +7123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5655 .loc 1 7123 12 view .LVU1793 + 5656 0070 1343 orrs r3, r3, r2 + 5657 .LVL443: + 5658 .L345: +7127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5659 .loc 1 7127 3 is_stmt 1 view .LVU1794 + 5660 0072 23F08003 bic r3, r3, #128 + 5661 .LVL444: +7127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5662 .loc 1 7127 3 is_stmt 0 view .LVU1795 + 5663 0076 4A69 ldr r2, [r1, #20] + 5664 0078 1343 orrs r3, r3, r2 + 5665 .LVL445: +7129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5666 .loc 1 7129 3 is_stmt 1 view .LVU1796 +7129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5667 .loc 1 7129 13 is_stmt 0 view .LVU1797 + 5668 007a 0360 str r3, [r0] +7132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5669 .loc 1 7132 3 is_stmt 1 view .LVU1798 +7132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5670 .loc 1 7132 34 is_stmt 0 view .LVU1799 + 5671 007c 8B68 ldr r3, [r1, #8] + 5672 .LVL446: +7132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5673 .loc 1 7132 13 view .LVU1800 + ARM GAS /tmp/cc0wMqvE.s page 262 + + + 5674 007e C362 str r3, [r0, #44] + 5675 .LVL447: +7135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5676 .loc 1 7135 3 is_stmt 1 view .LVU1801 +7135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5677 .loc 1 7135 24 is_stmt 0 view .LVU1802 + 5678 0080 0B68 ldr r3, [r1] +7135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5679 .loc 1 7135 13 view .LVU1803 + 5680 0082 8362 str r3, [r0, #40] +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5681 .loc 1 7137 3 is_stmt 1 view .LVU1804 +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5682 .loc 1 7137 6 is_stmt 0 view .LVU1805 + 5683 0084 0B4B ldr r3, .L348 + 5684 0086 9842 cmp r0, r3 + 5685 0088 0FD0 beq .L346 +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5686 .loc 1 7137 7 discriminator 1 view .LVU1806 + 5687 008a 03F50063 add r3, r3, #2048 + 5688 008e 9842 cmp r0, r3 + 5689 0090 0BD0 beq .L346 +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5690 .loc 1 7137 7 discriminator 2 view .LVU1807 + 5691 0092 03F54063 add r3, r3, #3072 + 5692 0096 9842 cmp r0, r3 + 5693 0098 07D0 beq .L346 +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5694 .loc 1 7137 7 discriminator 3 view .LVU1808 + 5695 009a 03F58063 add r3, r3, #1024 + 5696 009e 9842 cmp r0, r3 + 5697 00a0 03D0 beq .L346 +7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5698 .loc 1 7137 7 discriminator 4 view .LVU1809 + 5699 00a2 03F58063 add r3, r3, #1024 + 5700 00a6 9842 cmp r0, r3 + 5701 00a8 01D1 bne .L347 + 5702 .L346: +7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5703 .loc 1 7140 5 is_stmt 1 view .LVU1810 +7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5704 .loc 1 7140 26 is_stmt 0 view .LVU1811 + 5705 00aa 0B69 ldr r3, [r1, #16] +7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5706 .loc 1 7140 15 view .LVU1812 + 5707 00ac 0363 str r3, [r0, #48] + 5708 .L347: +7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5709 .loc 1 7145 3 is_stmt 1 view .LVU1813 +7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5710 .loc 1 7145 13 is_stmt 0 view .LVU1814 + 5711 00ae 0123 movs r3, #1 + 5712 00b0 4361 str r3, [r0, #20] +7146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5713 .loc 1 7146 1 view .LVU1815 + 5714 00b2 7047 bx lr + 5715 .L349: + ARM GAS /tmp/cc0wMqvE.s page 263 + + + 5716 .align 2 + 5717 .L348: + 5718 00b4 002C0140 .word 1073818624 + 5719 .cfi_endproc + 5720 .LFE433: + 5722 .section .text.HAL_TIM_Base_Init,"ax",%progbits + 5723 .align 1 + 5724 .global HAL_TIM_Base_Init + 5725 .syntax unified + 5726 .thumb + 5727 .thumb_func + 5729 HAL_TIM_Base_Init: + 5730 .LVL448: + 5731 .LFB329: + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 5732 .loc 1 282 1 is_stmt 1 view -0 + 5733 .cfi_startproc + 5734 @ args = 0, pretend = 0, frame = 0 + 5735 @ frame_needed = 0, uses_anonymous_args = 0 + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5736 .loc 1 284 3 view .LVU1817 + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5737 .loc 1 284 6 is_stmt 0 view .LVU1818 + 5738 0000 60B3 cbz r0, .L353 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 5739 .loc 1 282 1 view .LVU1819 + 5740 0002 10B5 push {r4, lr} + 5741 .LCFI48: + 5742 .cfi_def_cfa_offset 8 + 5743 .cfi_offset 4, -8 + 5744 .cfi_offset 14, -4 + 5745 0004 0446 mov r4, r0 + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 5746 .loc 1 290 3 is_stmt 1 view .LVU1820 + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 5747 .loc 1 291 3 view .LVU1821 + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 5748 .loc 1 292 3 view .LVU1822 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5749 .loc 1 293 3 view .LVU1823 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5750 .loc 1 295 3 view .LVU1824 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5751 .loc 1 295 11 is_stmt 0 view .LVU1825 + 5752 0006 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5753 .loc 1 295 6 view .LVU1826 + 5754 000a 13B3 cbz r3, .L358 + 5755 .LVL449: + 5756 .L352: + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5757 .loc 1 317 3 is_stmt 1 view .LVU1827 + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5758 .loc 1 317 15 is_stmt 0 view .LVU1828 + 5759 000c 0223 movs r3, #2 + 5760 000e 84F83D30 strb r3, [r4, #61] + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 264 + + + 5761 .loc 1 320 3 is_stmt 1 view .LVU1829 + 5762 0012 2146 mov r1, r4 + 5763 0014 51F8040B ldr r0, [r1], #4 + 5764 0018 FFF7FEFF bl TIM_Base_SetConfig + 5765 .LVL450: + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5766 .loc 1 323 3 view .LVU1830 + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5767 .loc 1 323 23 is_stmt 0 view .LVU1831 + 5768 001c 0123 movs r3, #1 + 5769 001e 84F84830 strb r3, [r4, #72] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5770 .loc 1 326 3 is_stmt 1 view .LVU1832 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5771 .loc 1 326 3 view .LVU1833 + 5772 0022 84F83E30 strb r3, [r4, #62] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5773 .loc 1 326 3 view .LVU1834 + 5774 0026 84F83F30 strb r3, [r4, #63] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5775 .loc 1 326 3 view .LVU1835 + 5776 002a 84F84030 strb r3, [r4, #64] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5777 .loc 1 326 3 view .LVU1836 + 5778 002e 84F84130 strb r3, [r4, #65] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5779 .loc 1 326 3 view .LVU1837 + 5780 0032 84F84230 strb r3, [r4, #66] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5781 .loc 1 326 3 view .LVU1838 + 5782 0036 84F84330 strb r3, [r4, #67] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5783 .loc 1 326 3 view .LVU1839 + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5784 .loc 1 327 3 view .LVU1840 + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5785 .loc 1 327 3 view .LVU1841 + 5786 003a 84F84430 strb r3, [r4, #68] + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5787 .loc 1 327 3 view .LVU1842 + 5788 003e 84F84530 strb r3, [r4, #69] + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5789 .loc 1 327 3 view .LVU1843 + 5790 0042 84F84630 strb r3, [r4, #70] + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5791 .loc 1 327 3 view .LVU1844 + 5792 0046 84F84730 strb r3, [r4, #71] + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5793 .loc 1 327 3 view .LVU1845 + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5794 .loc 1 330 3 view .LVU1846 + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5795 .loc 1 330 15 is_stmt 0 view .LVU1847 + 5796 004a 84F83D30 strb r3, [r4, #61] + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5797 .loc 1 332 3 is_stmt 1 view .LVU1848 + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 265 + + + 5798 .loc 1 332 10 is_stmt 0 view .LVU1849 + 5799 004e 0020 movs r0, #0 + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5800 .loc 1 333 1 view .LVU1850 + 5801 0050 10BD pop {r4, pc} + 5802 .LVL451: + 5803 .L358: + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5804 .loc 1 298 5 is_stmt 1 view .LVU1851 + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5805 .loc 1 298 16 is_stmt 0 view .LVU1852 + 5806 0052 80F83C30 strb r3, [r0, #60] + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5807 .loc 1 312 5 is_stmt 1 view .LVU1853 + 5808 0056 FFF7FEFF bl HAL_TIM_Base_MspInit + 5809 .LVL452: + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5810 .loc 1 312 5 is_stmt 0 view .LVU1854 + 5811 005a D7E7 b .L352 + 5812 .LVL453: + 5813 .L353: + 5814 .LCFI49: + 5815 .cfi_def_cfa_offset 0 + 5816 .cfi_restore 4 + 5817 .cfi_restore 14 + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5818 .loc 1 286 12 view .LVU1855 + 5819 005c 0120 movs r0, #1 + 5820 .LVL454: + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5821 .loc 1 333 1 view .LVU1856 + 5822 005e 7047 bx lr + 5823 .cfi_endproc + 5824 .LFE329: + 5826 .section .text.HAL_TIM_OC_Init,"ax",%progbits + 5827 .align 1 + 5828 .global HAL_TIM_OC_Init + 5829 .syntax unified + 5830 .thumb + 5831 .thumb_func + 5833 HAL_TIM_OC_Init: + 5834 .LVL455: + 5835 .LFB339: + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 5836 .loc 1 665 1 is_stmt 1 view -0 + 5837 .cfi_startproc + 5838 @ args = 0, pretend = 0, frame = 0 + 5839 @ frame_needed = 0, uses_anonymous_args = 0 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5840 .loc 1 667 3 view .LVU1858 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5841 .loc 1 667 6 is_stmt 0 view .LVU1859 + 5842 0000 60B3 cbz r0, .L362 + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 5843 .loc 1 665 1 view .LVU1860 + 5844 0002 10B5 push {r4, lr} + 5845 .LCFI50: + ARM GAS /tmp/cc0wMqvE.s page 266 + + + 5846 .cfi_def_cfa_offset 8 + 5847 .cfi_offset 4, -8 + 5848 .cfi_offset 14, -4 + 5849 0004 0446 mov r4, r0 + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 5850 .loc 1 673 3 is_stmt 1 view .LVU1861 + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 5851 .loc 1 674 3 view .LVU1862 + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 5852 .loc 1 675 3 view .LVU1863 + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5853 .loc 1 676 3 view .LVU1864 + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5854 .loc 1 678 3 view .LVU1865 + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5855 .loc 1 678 11 is_stmt 0 view .LVU1866 + 5856 0006 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5857 .loc 1 678 6 view .LVU1867 + 5858 000a 13B3 cbz r3, .L367 + 5859 .LVL456: + 5860 .L361: + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5861 .loc 1 700 3 is_stmt 1 view .LVU1868 + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5862 .loc 1 700 15 is_stmt 0 view .LVU1869 + 5863 000c 0223 movs r3, #2 + 5864 000e 84F83D30 strb r3, [r4, #61] + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5865 .loc 1 703 3 is_stmt 1 view .LVU1870 + 5866 0012 2146 mov r1, r4 + 5867 0014 51F8040B ldr r0, [r1], #4 + 5868 0018 FFF7FEFF bl TIM_Base_SetConfig + 5869 .LVL457: + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5870 .loc 1 706 3 view .LVU1871 + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5871 .loc 1 706 23 is_stmt 0 view .LVU1872 + 5872 001c 0123 movs r3, #1 + 5873 001e 84F84830 strb r3, [r4, #72] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5874 .loc 1 709 3 is_stmt 1 view .LVU1873 + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5875 .loc 1 709 3 view .LVU1874 + 5876 0022 84F83E30 strb r3, [r4, #62] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5877 .loc 1 709 3 view .LVU1875 + 5878 0026 84F83F30 strb r3, [r4, #63] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5879 .loc 1 709 3 view .LVU1876 + 5880 002a 84F84030 strb r3, [r4, #64] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5881 .loc 1 709 3 view .LVU1877 + 5882 002e 84F84130 strb r3, [r4, #65] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5883 .loc 1 709 3 view .LVU1878 + 5884 0032 84F84230 strb r3, [r4, #66] + ARM GAS /tmp/cc0wMqvE.s page 267 + + + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5885 .loc 1 709 3 view .LVU1879 + 5886 0036 84F84330 strb r3, [r4, #67] + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5887 .loc 1 709 3 view .LVU1880 + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5888 .loc 1 710 3 view .LVU1881 + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5889 .loc 1 710 3 view .LVU1882 + 5890 003a 84F84430 strb r3, [r4, #68] + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5891 .loc 1 710 3 view .LVU1883 + 5892 003e 84F84530 strb r3, [r4, #69] + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5893 .loc 1 710 3 view .LVU1884 + 5894 0042 84F84630 strb r3, [r4, #70] + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5895 .loc 1 710 3 view .LVU1885 + 5896 0046 84F84730 strb r3, [r4, #71] + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5897 .loc 1 710 3 view .LVU1886 + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5898 .loc 1 713 3 view .LVU1887 + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5899 .loc 1 713 15 is_stmt 0 view .LVU1888 + 5900 004a 84F83D30 strb r3, [r4, #61] + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5901 .loc 1 715 3 is_stmt 1 view .LVU1889 + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5902 .loc 1 715 10 is_stmt 0 view .LVU1890 + 5903 004e 0020 movs r0, #0 + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5904 .loc 1 716 1 view .LVU1891 + 5905 0050 10BD pop {r4, pc} + 5906 .LVL458: + 5907 .L367: + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5908 .loc 1 681 5 is_stmt 1 view .LVU1892 + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5909 .loc 1 681 16 is_stmt 0 view .LVU1893 + 5910 0052 80F83C30 strb r3, [r0, #60] + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5911 .loc 1 695 5 is_stmt 1 view .LVU1894 + 5912 0056 FFF7FEFF bl HAL_TIM_OC_MspInit + 5913 .LVL459: + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 5914 .loc 1 695 5 is_stmt 0 view .LVU1895 + 5915 005a D7E7 b .L361 + 5916 .LVL460: + 5917 .L362: + 5918 .LCFI51: + 5919 .cfi_def_cfa_offset 0 + 5920 .cfi_restore 4 + 5921 .cfi_restore 14 + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 5922 .loc 1 669 12 view .LVU1896 + 5923 005c 0120 movs r0, #1 + ARM GAS /tmp/cc0wMqvE.s page 268 + + + 5924 .LVL461: + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5925 .loc 1 716 1 view .LVU1897 + 5926 005e 7047 bx lr + 5927 .cfi_endproc + 5928 .LFE339: + 5930 .section .text.HAL_TIM_PWM_Init,"ax",%progbits + 5931 .align 1 + 5932 .global HAL_TIM_PWM_Init + 5933 .syntax unified + 5934 .thumb + 5935 .thumb_func + 5937 HAL_TIM_PWM_Init: + 5938 .LVL462: + 5939 .LFB349: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 5940 .loc 1 1332 1 is_stmt 1 view -0 + 5941 .cfi_startproc + 5942 @ args = 0, pretend = 0, frame = 0 + 5943 @ frame_needed = 0, uses_anonymous_args = 0 +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5944 .loc 1 1334 3 view .LVU1899 +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5945 .loc 1 1334 6 is_stmt 0 view .LVU1900 + 5946 0000 60B3 cbz r0, .L371 +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 5947 .loc 1 1332 1 view .LVU1901 + 5948 0002 10B5 push {r4, lr} + 5949 .LCFI52: + 5950 .cfi_def_cfa_offset 8 + 5951 .cfi_offset 4, -8 + 5952 .cfi_offset 14, -4 + 5953 0004 0446 mov r4, r0 +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 5954 .loc 1 1340 3 is_stmt 1 view .LVU1902 +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 5955 .loc 1 1341 3 view .LVU1903 +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 5956 .loc 1 1342 3 view .LVU1904 +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5957 .loc 1 1343 3 view .LVU1905 +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5958 .loc 1 1345 3 view .LVU1906 +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5959 .loc 1 1345 11 is_stmt 0 view .LVU1907 + 5960 0006 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 5961 .loc 1 1345 6 view .LVU1908 + 5962 000a 13B3 cbz r3, .L376 + 5963 .LVL463: + 5964 .L370: +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5965 .loc 1 1367 3 is_stmt 1 view .LVU1909 +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5966 .loc 1 1367 15 is_stmt 0 view .LVU1910 + 5967 000c 0223 movs r3, #2 + 5968 000e 84F83D30 strb r3, [r4, #61] + ARM GAS /tmp/cc0wMqvE.s page 269 + + +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5969 .loc 1 1370 3 is_stmt 1 view .LVU1911 + 5970 0012 2146 mov r1, r4 + 5971 0014 51F8040B ldr r0, [r1], #4 + 5972 0018 FFF7FEFF bl TIM_Base_SetConfig + 5973 .LVL464: +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5974 .loc 1 1373 3 view .LVU1912 +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5975 .loc 1 1373 23 is_stmt 0 view .LVU1913 + 5976 001c 0123 movs r3, #1 + 5977 001e 84F84830 strb r3, [r4, #72] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5978 .loc 1 1376 3 is_stmt 1 view .LVU1914 +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5979 .loc 1 1376 3 view .LVU1915 + 5980 0022 84F83E30 strb r3, [r4, #62] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5981 .loc 1 1376 3 view .LVU1916 + 5982 0026 84F83F30 strb r3, [r4, #63] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5983 .loc 1 1376 3 view .LVU1917 + 5984 002a 84F84030 strb r3, [r4, #64] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5985 .loc 1 1376 3 view .LVU1918 + 5986 002e 84F84130 strb r3, [r4, #65] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5987 .loc 1 1376 3 view .LVU1919 + 5988 0032 84F84230 strb r3, [r4, #66] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5989 .loc 1 1376 3 view .LVU1920 + 5990 0036 84F84330 strb r3, [r4, #67] +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 5991 .loc 1 1376 3 view .LVU1921 +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5992 .loc 1 1377 3 view .LVU1922 +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5993 .loc 1 1377 3 view .LVU1923 + 5994 003a 84F84430 strb r3, [r4, #68] +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5995 .loc 1 1377 3 view .LVU1924 + 5996 003e 84F84530 strb r3, [r4, #69] +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5997 .loc 1 1377 3 view .LVU1925 + 5998 0042 84F84630 strb r3, [r4, #70] +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 5999 .loc 1 1377 3 view .LVU1926 + 6000 0046 84F84730 strb r3, [r4, #71] +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6001 .loc 1 1377 3 view .LVU1927 +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6002 .loc 1 1380 3 view .LVU1928 +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6003 .loc 1 1380 15 is_stmt 0 view .LVU1929 + 6004 004a 84F83D30 strb r3, [r4, #61] +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6005 .loc 1 1382 3 is_stmt 1 view .LVU1930 + ARM GAS /tmp/cc0wMqvE.s page 270 + + +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6006 .loc 1 1382 10 is_stmt 0 view .LVU1931 + 6007 004e 0020 movs r0, #0 +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6008 .loc 1 1383 1 view .LVU1932 + 6009 0050 10BD pop {r4, pc} + 6010 .LVL465: + 6011 .L376: +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6012 .loc 1 1348 5 is_stmt 1 view .LVU1933 +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6013 .loc 1 1348 16 is_stmt 0 view .LVU1934 + 6014 0052 80F83C30 strb r3, [r0, #60] +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6015 .loc 1 1362 5 is_stmt 1 view .LVU1935 + 6016 0056 FFF7FEFF bl HAL_TIM_PWM_MspInit + 6017 .LVL466: +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6018 .loc 1 1362 5 is_stmt 0 view .LVU1936 + 6019 005a D7E7 b .L370 + 6020 .LVL467: + 6021 .L371: + 6022 .LCFI53: + 6023 .cfi_def_cfa_offset 0 + 6024 .cfi_restore 4 + 6025 .cfi_restore 14 +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6026 .loc 1 1336 12 view .LVU1937 + 6027 005c 0120 movs r0, #1 + 6028 .LVL468: +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6029 .loc 1 1383 1 view .LVU1938 + 6030 005e 7047 bx lr + 6031 .cfi_endproc + 6032 .LFE349: + 6034 .section .text.HAL_TIM_IC_Init,"ax",%progbits + 6035 .align 1 + 6036 .global HAL_TIM_IC_Init + 6037 .syntax unified + 6038 .thumb + 6039 .thumb_func + 6041 HAL_TIM_IC_Init: + 6042 .LVL469: + 6043 .LFB359: +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 6044 .loc 1 1998 1 is_stmt 1 view -0 + 6045 .cfi_startproc + 6046 @ args = 0, pretend = 0, frame = 0 + 6047 @ frame_needed = 0, uses_anonymous_args = 0 +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6048 .loc 1 2000 3 view .LVU1940 +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6049 .loc 1 2000 6 is_stmt 0 view .LVU1941 + 6050 0000 60B3 cbz r0, .L380 +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 6051 .loc 1 1998 1 view .LVU1942 + 6052 0002 10B5 push {r4, lr} + ARM GAS /tmp/cc0wMqvE.s page 271 + + + 6053 .LCFI54: + 6054 .cfi_def_cfa_offset 8 + 6055 .cfi_offset 4, -8 + 6056 .cfi_offset 14, -4 + 6057 0004 0446 mov r4, r0 +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 6058 .loc 1 2006 3 is_stmt 1 view .LVU1943 +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 6059 .loc 1 2007 3 view .LVU1944 +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 6060 .loc 1 2008 3 view .LVU1945 +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6061 .loc 1 2009 3 view .LVU1946 +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6062 .loc 1 2011 3 view .LVU1947 +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6063 .loc 1 2011 11 is_stmt 0 view .LVU1948 + 6064 0006 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6065 .loc 1 2011 6 view .LVU1949 + 6066 000a 13B3 cbz r3, .L385 + 6067 .LVL470: + 6068 .L379: +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6069 .loc 1 2033 3 is_stmt 1 view .LVU1950 +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6070 .loc 1 2033 15 is_stmt 0 view .LVU1951 + 6071 000c 0223 movs r3, #2 + 6072 000e 84F83D30 strb r3, [r4, #61] +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6073 .loc 1 2036 3 is_stmt 1 view .LVU1952 + 6074 0012 2146 mov r1, r4 + 6075 0014 51F8040B ldr r0, [r1], #4 + 6076 0018 FFF7FEFF bl TIM_Base_SetConfig + 6077 .LVL471: +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6078 .loc 1 2039 3 view .LVU1953 +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6079 .loc 1 2039 23 is_stmt 0 view .LVU1954 + 6080 001c 0123 movs r3, #1 + 6081 001e 84F84830 strb r3, [r4, #72] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6082 .loc 1 2042 3 is_stmt 1 view .LVU1955 +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6083 .loc 1 2042 3 view .LVU1956 + 6084 0022 84F83E30 strb r3, [r4, #62] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6085 .loc 1 2042 3 view .LVU1957 + 6086 0026 84F83F30 strb r3, [r4, #63] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6087 .loc 1 2042 3 view .LVU1958 + 6088 002a 84F84030 strb r3, [r4, #64] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6089 .loc 1 2042 3 view .LVU1959 + 6090 002e 84F84130 strb r3, [r4, #65] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6091 .loc 1 2042 3 view .LVU1960 + ARM GAS /tmp/cc0wMqvE.s page 272 + + + 6092 0032 84F84230 strb r3, [r4, #66] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6093 .loc 1 2042 3 view .LVU1961 + 6094 0036 84F84330 strb r3, [r4, #67] +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 6095 .loc 1 2042 3 view .LVU1962 +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6096 .loc 1 2043 3 view .LVU1963 +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6097 .loc 1 2043 3 view .LVU1964 + 6098 003a 84F84430 strb r3, [r4, #68] +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6099 .loc 1 2043 3 view .LVU1965 + 6100 003e 84F84530 strb r3, [r4, #69] +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6101 .loc 1 2043 3 view .LVU1966 + 6102 0042 84F84630 strb r3, [r4, #70] +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6103 .loc 1 2043 3 view .LVU1967 + 6104 0046 84F84730 strb r3, [r4, #71] +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6105 .loc 1 2043 3 view .LVU1968 +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6106 .loc 1 2046 3 view .LVU1969 +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6107 .loc 1 2046 15 is_stmt 0 view .LVU1970 + 6108 004a 84F83D30 strb r3, [r4, #61] +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6109 .loc 1 2048 3 is_stmt 1 view .LVU1971 +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6110 .loc 1 2048 10 is_stmt 0 view .LVU1972 + 6111 004e 0020 movs r0, #0 +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6112 .loc 1 2049 1 view .LVU1973 + 6113 0050 10BD pop {r4, pc} + 6114 .LVL472: + 6115 .L385: +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6116 .loc 1 2014 5 is_stmt 1 view .LVU1974 +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6117 .loc 1 2014 16 is_stmt 0 view .LVU1975 + 6118 0052 80F83C30 strb r3, [r0, #60] +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6119 .loc 1 2028 5 is_stmt 1 view .LVU1976 + 6120 0056 FFF7FEFF bl HAL_TIM_IC_MspInit + 6121 .LVL473: +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6122 .loc 1 2028 5 is_stmt 0 view .LVU1977 + 6123 005a D7E7 b .L379 + 6124 .LVL474: + 6125 .L380: + 6126 .LCFI55: + 6127 .cfi_def_cfa_offset 0 + 6128 .cfi_restore 4 + 6129 .cfi_restore 14 +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6130 .loc 1 2002 12 view .LVU1978 + ARM GAS /tmp/cc0wMqvE.s page 273 + + + 6131 005c 0120 movs r0, #1 + 6132 .LVL475: +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6133 .loc 1 2049 1 view .LVU1979 + 6134 005e 7047 bx lr + 6135 .cfi_endproc + 6136 .LFE359: + 6138 .section .text.HAL_TIM_OnePulse_Init,"ax",%progbits + 6139 .align 1 + 6140 .global HAL_TIM_OnePulse_Init + 6141 .syntax unified + 6142 .thumb + 6143 .thumb_func + 6145 HAL_TIM_OnePulse_Init: + 6146 .LVL476: + 6147 .LFB369: +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 6148 .loc 1 2646 1 is_stmt 1 view -0 + 6149 .cfi_startproc + 6150 @ args = 0, pretend = 0, frame = 0 + 6151 @ frame_needed = 0, uses_anonymous_args = 0 +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6152 .loc 1 2648 3 view .LVU1981 +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6153 .loc 1 2648 6 is_stmt 0 view .LVU1982 + 6154 0000 50B3 cbz r0, .L389 +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the TIM handle allocation */ + 6155 .loc 1 2646 1 view .LVU1983 + 6156 0002 38B5 push {r3, r4, r5, lr} + 6157 .LCFI56: + 6158 .cfi_def_cfa_offset 16 + 6159 .cfi_offset 3, -16 + 6160 .cfi_offset 4, -12 + 6161 .cfi_offset 5, -8 + 6162 .cfi_offset 14, -4 + 6163 0004 0D46 mov r5, r1 + 6164 0006 0446 mov r4, r0 +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 6165 .loc 1 2654 3 is_stmt 1 view .LVU1984 +2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 6166 .loc 1 2655 3 view .LVU1985 +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OPM_MODE(OnePulseMode)); + 6167 .loc 1 2656 3 view .LVU1986 +2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 6168 .loc 1 2657 3 view .LVU1987 +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6169 .loc 1 2658 3 view .LVU1988 +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6170 .loc 1 2660 3 view .LVU1989 +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6171 .loc 1 2660 11 is_stmt 0 view .LVU1990 + 6172 0008 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6173 .loc 1 2660 6 view .LVU1991 + 6174 000c FBB1 cbz r3, .L394 + 6175 .LVL477: + 6176 .L388: + ARM GAS /tmp/cc0wMqvE.s page 274 + + +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6177 .loc 1 2682 3 is_stmt 1 view .LVU1992 +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6178 .loc 1 2682 15 is_stmt 0 view .LVU1993 + 6179 000e 0223 movs r3, #2 + 6180 0010 84F83D30 strb r3, [r4, #61] +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6181 .loc 1 2685 3 is_stmt 1 view .LVU1994 + 6182 0014 2146 mov r1, r4 + 6183 0016 51F8040B ldr r0, [r1], #4 + 6184 001a FFF7FEFF bl TIM_Base_SetConfig + 6185 .LVL478: +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6186 .loc 1 2688 3 view .LVU1995 +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6187 .loc 1 2688 7 is_stmt 0 view .LVU1996 + 6188 001e 2268 ldr r2, [r4] +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6189 .loc 1 2688 17 view .LVU1997 + 6190 0020 1368 ldr r3, [r2] +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6191 .loc 1 2688 23 view .LVU1998 + 6192 0022 23F00803 bic r3, r3, #8 + 6193 0026 1360 str r3, [r2] +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6194 .loc 1 2691 3 is_stmt 1 view .LVU1999 +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6195 .loc 1 2691 7 is_stmt 0 view .LVU2000 + 6196 0028 2268 ldr r2, [r4] +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6197 .loc 1 2691 17 view .LVU2001 + 6198 002a 1368 ldr r3, [r2] +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6199 .loc 1 2691 23 view .LVU2002 + 6200 002c 2B43 orrs r3, r3, r5 + 6201 002e 1360 str r3, [r2] +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6202 .loc 1 2694 3 is_stmt 1 view .LVU2003 +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6203 .loc 1 2694 23 is_stmt 0 view .LVU2004 + 6204 0030 0123 movs r3, #1 + 6205 0032 84F84830 strb r3, [r4, #72] +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 6206 .loc 1 2697 3 is_stmt 1 view .LVU2005 + 6207 0036 84F83E30 strb r3, [r4, #62] +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 6208 .loc 1 2698 3 view .LVU2006 + 6209 003a 84F83F30 strb r3, [r4, #63] +2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 6210 .loc 1 2699 3 view .LVU2007 + 6211 003e 84F84430 strb r3, [r4, #68] +2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6212 .loc 1 2700 3 view .LVU2008 + 6213 0042 84F84530 strb r3, [r4, #69] +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6214 .loc 1 2703 3 view .LVU2009 +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 275 + + + 6215 .loc 1 2703 15 is_stmt 0 view .LVU2010 + 6216 0046 84F83D30 strb r3, [r4, #61] +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6217 .loc 1 2705 3 is_stmt 1 view .LVU2011 +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6218 .loc 1 2705 10 is_stmt 0 view .LVU2012 + 6219 004a 0020 movs r0, #0 +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6220 .loc 1 2706 1 view .LVU2013 + 6221 004c 38BD pop {r3, r4, r5, pc} + 6222 .LVL479: + 6223 .L394: +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6224 .loc 1 2663 5 is_stmt 1 view .LVU2014 +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6225 .loc 1 2663 16 is_stmt 0 view .LVU2015 + 6226 004e 80F83C30 strb r3, [r0, #60] +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6227 .loc 1 2677 5 is_stmt 1 view .LVU2016 + 6228 0052 FFF7FEFF bl HAL_TIM_OnePulse_MspInit + 6229 .LVL480: +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6230 .loc 1 2677 5 is_stmt 0 view .LVU2017 + 6231 0056 DAE7 b .L388 + 6232 .LVL481: + 6233 .L389: + 6234 .LCFI57: + 6235 .cfi_def_cfa_offset 0 + 6236 .cfi_restore 3 + 6237 .cfi_restore 4 + 6238 .cfi_restore 5 + 6239 .cfi_restore 14 +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6240 .loc 1 2650 12 view .LVU2018 + 6241 0058 0120 movs r0, #1 + 6242 .LVL482: +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6243 .loc 1 2706 1 view .LVU2019 + 6244 005a 7047 bx lr + 6245 .cfi_endproc + 6246 .LFE369: + 6248 .section .text.HAL_TIM_Encoder_Init,"ax",%progbits + 6249 .align 1 + 6250 .global HAL_TIM_Encoder_Init + 6251 .syntax unified + 6252 .thumb + 6253 .thumb_func + 6255 HAL_TIM_Encoder_Init: + 6256 .LVL483: + 6257 .LFB377: +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 6258 .loc 1 3036 1 is_stmt 1 view -0 + 6259 .cfi_startproc + 6260 @ args = 0, pretend = 0, frame = 0 + 6261 @ frame_needed = 0, uses_anonymous_args = 0 +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + 6262 .loc 1 3037 3 view .LVU2021 + ARM GAS /tmp/cc0wMqvE.s page 276 + + +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 6263 .loc 1 3038 3 view .LVU2022 +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6264 .loc 1 3039 3 view .LVU2023 +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6265 .loc 1 3042 3 view .LVU2024 +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6266 .loc 1 3042 6 is_stmt 0 view .LVU2025 + 6267 0000 0028 cmp r0, #0 + 6268 0002 53D0 beq .L398 +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 6269 .loc 1 3036 1 view .LVU2026 + 6270 0004 F8B5 push {r3, r4, r5, r6, r7, lr} + 6271 .LCFI58: + 6272 .cfi_def_cfa_offset 24 + 6273 .cfi_offset 3, -24 + 6274 .cfi_offset 4, -20 + 6275 .cfi_offset 5, -16 + 6276 .cfi_offset 6, -12 + 6277 .cfi_offset 7, -8 + 6278 .cfi_offset 14, -4 + 6279 0006 0D46 mov r5, r1 + 6280 0008 0446 mov r4, r0 +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 6281 .loc 1 3048 3 is_stmt 1 view .LVU2027 +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 6282 .loc 1 3049 3 view .LVU2028 +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 6283 .loc 1 3050 3 view .LVU2029 +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODER_MODE(sConfig->EncoderMode)); + 6284 .loc 1 3051 3 view .LVU2030 +3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_SELECTION(sConfig->IC1Selection)); + 6285 .loc 1 3052 3 view .LVU2031 +3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_SELECTION(sConfig->IC2Selection)); + 6286 .loc 1 3053 3 view .LVU2032 +3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->IC1Polarity)); + 6287 .loc 1 3054 3 view .LVU2033 +3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->IC2Polarity)); + 6288 .loc 1 3055 3 view .LVU2034 +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->IC1Prescaler)); + 6289 .loc 1 3056 3 view .LVU2035 +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->IC2Prescaler)); + 6290 .loc 1 3057 3 view .LVU2036 +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_FILTER(sConfig->IC1Filter)); + 6291 .loc 1 3058 3 view .LVU2037 +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_FILTER(sConfig->IC2Filter)); + 6292 .loc 1 3059 3 view .LVU2038 +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6293 .loc 1 3060 3 view .LVU2039 +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6294 .loc 1 3062 3 view .LVU2040 +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6295 .loc 1 3062 11 is_stmt 0 view .LVU2041 + 6296 000a 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6297 .loc 1 3062 6 view .LVU2042 + 6298 000e 002B cmp r3, #0 + ARM GAS /tmp/cc0wMqvE.s page 277 + + + 6299 0010 47D0 beq .L403 + 6300 .LVL484: + 6301 .L397: +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6302 .loc 1 3084 3 is_stmt 1 view .LVU2043 +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6303 .loc 1 3084 15 is_stmt 0 view .LVU2044 + 6304 0012 0223 movs r3, #2 + 6305 0014 84F83D30 strb r3, [r4, #61] +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6306 .loc 1 3087 3 is_stmt 1 view .LVU2045 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6307 .loc 1 3087 7 is_stmt 0 view .LVU2046 + 6308 0018 2268 ldr r2, [r4] +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6309 .loc 1 3087 17 view .LVU2047 + 6310 001a 9368 ldr r3, [r2, #8] +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6311 .loc 1 3087 24 view .LVU2048 + 6312 001c 23F4A033 bic r3, r3, #81920 + 6313 0020 23F00703 bic r3, r3, #7 + 6314 0024 9360 str r3, [r2, #8] +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6315 .loc 1 3090 3 is_stmt 1 view .LVU2049 + 6316 0026 2146 mov r1, r4 + 6317 0028 51F8040B ldr r0, [r1], #4 + 6318 002c FFF7FEFF bl TIM_Base_SetConfig + 6319 .LVL485: +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6320 .loc 1 3093 3 view .LVU2050 +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6321 .loc 1 3093 17 is_stmt 0 view .LVU2051 + 6322 0030 2168 ldr r1, [r4] +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6323 .loc 1 3093 11 view .LVU2052 + 6324 0032 8B68 ldr r3, [r1, #8] + 6325 .LVL486: +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6326 .loc 1 3096 3 is_stmt 1 view .LVU2053 +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6327 .loc 1 3096 12 is_stmt 0 view .LVU2054 + 6328 0034 8A69 ldr r2, [r1, #24] + 6329 .LVL487: +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6330 .loc 1 3099 3 is_stmt 1 view .LVU2055 +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6331 .loc 1 3099 11 is_stmt 0 view .LVU2056 + 6332 0036 0E6A ldr r6, [r1, #32] + 6333 .LVL488: +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6334 .loc 1 3102 3 is_stmt 1 view .LVU2057 +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6335 .loc 1 3102 21 is_stmt 0 view .LVU2058 + 6336 0038 2868 ldr r0, [r5] +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6337 .loc 1 3102 11 view .LVU2059 + 6338 003a 1843 orrs r0, r0, r3 + ARM GAS /tmp/cc0wMqvE.s page 278 + + + 6339 .LVL489: +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Selection | (sConfig->IC2Selection << 8U)); + 6340 .loc 1 3105 3 is_stmt 1 view .LVU2060 +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Selection | (sConfig->IC2Selection << 8U)); + 6341 .loc 1 3105 12 is_stmt 0 view .LVU2061 + 6342 003c 22F44072 bic r2, r2, #768 + 6343 .LVL490: +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Selection | (sConfig->IC2Selection << 8U)); + 6344 .loc 1 3105 12 view .LVU2062 + 6345 0040 22F00302 bic r2, r2, #3 + 6346 .LVL491: +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6347 .loc 1 3106 3 is_stmt 1 view .LVU2063 +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6348 .loc 1 3106 23 is_stmt 0 view .LVU2064 + 6349 0044 AB68 ldr r3, [r5, #8] +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6350 .loc 1 3106 38 view .LVU2065 + 6351 0046 AF69 ldr r7, [r5, #24] + 6352 0048 43EA0723 orr r3, r3, r7, lsl #8 +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6353 .loc 1 3106 12 view .LVU2066 + 6354 004c 1343 orrs r3, r3, r2 + 6355 .LVL492: +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 &= ~(TIM_CCMR1_IC1F | TIM_CCMR1_IC2F); + 6356 .loc 1 3109 3 is_stmt 1 view .LVU2067 +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= sConfig->IC1Prescaler | (sConfig->IC2Prescaler << 8U); + 6357 .loc 1 3110 3 view .LVU2068 +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= sConfig->IC1Prescaler | (sConfig->IC2Prescaler << 8U); + 6358 .loc 1 3110 12 is_stmt 0 view .LVU2069 + 6359 004e 23F47C43 bic r3, r3, #64512 + 6360 .LVL493: +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= sConfig->IC1Prescaler | (sConfig->IC2Prescaler << 8U); + 6361 .loc 1 3110 12 view .LVU2070 + 6362 0052 23F0FC03 bic r3, r3, #252 + 6363 .LVL494: +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Filter << 4U) | (sConfig->IC2Filter << 12U); + 6364 .loc 1 3111 3 is_stmt 1 view .LVU2071 +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Filter << 4U) | (sConfig->IC2Filter << 12U); + 6365 .loc 1 3111 22 is_stmt 0 view .LVU2072 + 6366 0056 EA68 ldr r2, [r5, #12] +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Filter << 4U) | (sConfig->IC2Filter << 12U); + 6367 .loc 1 3111 37 view .LVU2073 + 6368 0058 EF69 ldr r7, [r5, #28] + 6369 005a 42EA0722 orr r2, r2, r7, lsl #8 +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= (sConfig->IC1Filter << 4U) | (sConfig->IC2Filter << 12U); + 6370 .loc 1 3111 12 view .LVU2074 + 6371 005e 1A43 orrs r2, r2, r3 + 6372 .LVL495: +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6373 .loc 1 3112 3 is_stmt 1 view .LVU2075 +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6374 .loc 1 3112 52 is_stmt 0 view .LVU2076 + 6375 0060 2B6A ldr r3, [r5, #32] +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6376 .loc 1 3112 64 view .LVU2077 + 6377 0062 1B03 lsls r3, r3, #12 + ARM GAS /tmp/cc0wMqvE.s page 279 + + +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6378 .loc 1 3112 42 view .LVU2078 + 6379 0064 2F69 ldr r7, [r5, #16] + 6380 0066 43EA0713 orr r3, r3, r7, lsl #4 +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6381 .loc 1 3112 12 view .LVU2079 + 6382 006a 1343 orrs r3, r3, r2 + 6383 .LVL496: +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer &= ~(TIM_CCER_CC1NP | TIM_CCER_CC2NP); + 6384 .loc 1 3115 3 is_stmt 1 view .LVU2080 +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= sConfig->IC1Polarity | (sConfig->IC2Polarity << 4U); + 6385 .loc 1 3116 3 view .LVU2081 +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= sConfig->IC1Polarity | (sConfig->IC2Polarity << 4U); + 6386 .loc 1 3116 11 is_stmt 0 view .LVU2082 + 6387 006c 26F0AA06 bic r6, r6, #170 + 6388 .LVL497: +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6389 .loc 1 3117 3 is_stmt 1 view .LVU2083 +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6390 .loc 1 3117 21 is_stmt 0 view .LVU2084 + 6391 0070 6A68 ldr r2, [r5, #4] +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6392 .loc 1 3117 45 view .LVU2085 + 6393 0072 6D69 ldr r5, [r5, #20] + 6394 .LVL498: +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6395 .loc 1 3117 35 view .LVU2086 + 6396 0074 42EA0512 orr r2, r2, r5, lsl #4 +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6397 .loc 1 3117 11 view .LVU2087 + 6398 0078 3243 orrs r2, r2, r6 + 6399 .LVL499: +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6400 .loc 1 3120 3 is_stmt 1 view .LVU2088 +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6401 .loc 1 3120 24 is_stmt 0 view .LVU2089 + 6402 007a 8860 str r0, [r1, #8] +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6403 .loc 1 3123 3 is_stmt 1 view .LVU2090 +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6404 .loc 1 3123 7 is_stmt 0 view .LVU2091 + 6405 007c 2168 ldr r1, [r4] +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6406 .loc 1 3123 25 view .LVU2092 + 6407 007e 8B61 str r3, [r1, #24] +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6408 .loc 1 3126 3 is_stmt 1 view .LVU2093 +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6409 .loc 1 3126 7 is_stmt 0 view .LVU2094 + 6410 0080 2368 ldr r3, [r4] + 6411 .LVL500: +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6412 .loc 1 3126 24 view .LVU2095 + 6413 0082 1A62 str r2, [r3, #32] + 6414 .LVL501: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6415 .loc 1 3129 3 is_stmt 1 view .LVU2096 + ARM GAS /tmp/cc0wMqvE.s page 280 + + +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6416 .loc 1 3129 23 is_stmt 0 view .LVU2097 + 6417 0084 0123 movs r3, #1 + 6418 0086 84F84830 strb r3, [r4, #72] +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 6419 .loc 1 3132 3 is_stmt 1 view .LVU2098 + 6420 008a 84F83E30 strb r3, [r4, #62] +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 6421 .loc 1 3133 3 view .LVU2099 + 6422 008e 84F83F30 strb r3, [r4, #63] +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 6423 .loc 1 3134 3 view .LVU2100 + 6424 0092 84F84430 strb r3, [r4, #68] +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6425 .loc 1 3135 3 view .LVU2101 + 6426 0096 84F84530 strb r3, [r4, #69] +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6427 .loc 1 3138 3 view .LVU2102 +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6428 .loc 1 3138 15 is_stmt 0 view .LVU2103 + 6429 009a 84F83D30 strb r3, [r4, #61] +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6430 .loc 1 3140 3 is_stmt 1 view .LVU2104 +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6431 .loc 1 3140 10 is_stmt 0 view .LVU2105 + 6432 009e 0020 movs r0, #0 + 6433 .LVL502: +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6434 .loc 1 3141 1 view .LVU2106 + 6435 00a0 F8BD pop {r3, r4, r5, r6, r7, pc} + 6436 .LVL503: + 6437 .L403: +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6438 .loc 1 3065 5 is_stmt 1 view .LVU2107 +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6439 .loc 1 3065 16 is_stmt 0 view .LVU2108 + 6440 00a2 80F83C30 strb r3, [r0, #60] +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6441 .loc 1 3079 5 is_stmt 1 view .LVU2109 + 6442 00a6 FFF7FEFF bl HAL_TIM_Encoder_MspInit + 6443 .LVL504: +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 6444 .loc 1 3079 5 is_stmt 0 view .LVU2110 + 6445 00aa B2E7 b .L397 + 6446 .LVL505: + 6447 .L398: + 6448 .LCFI59: + 6449 .cfi_def_cfa_offset 0 + 6450 .cfi_restore 3 + 6451 .cfi_restore 4 + 6452 .cfi_restore 5 + 6453 .cfi_restore 6 + 6454 .cfi_restore 7 + 6455 .cfi_restore 14 +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6456 .loc 1 3044 12 view .LVU2111 + 6457 00ac 0120 movs r0, #1 + ARM GAS /tmp/cc0wMqvE.s page 281 + + + 6458 .LVL506: +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6459 .loc 1 3141 1 view .LVU2112 + 6460 00ae 7047 bx lr + 6461 .cfi_endproc + 6462 .LFE377: + 6464 .section .text.TIM_OC2_SetConfig,"ax",%progbits + 6465 .align 1 + 6466 .global TIM_OC2_SetConfig + 6467 .syntax unified + 6468 .thumb + 6469 .thumb_func + 6471 TIM_OC2_SetConfig: + 6472 .LVL507: + 6473 .LFB435: +7230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 6474 .loc 1 7230 1 is_stmt 1 view -0 + 6475 .cfi_startproc + 6476 @ args = 0, pretend = 0, frame = 0 + 6477 @ frame_needed = 0, uses_anonymous_args = 0 + 6478 @ link register save eliminated. +7230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmrx; + 6479 .loc 1 7230 1 is_stmt 0 view .LVU2114 + 6480 0000 30B4 push {r4, r5} + 6481 .LCFI60: + 6482 .cfi_def_cfa_offset 8 + 6483 .cfi_offset 4, -8 + 6484 .cfi_offset 5, -4 +7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 6485 .loc 1 7231 3 is_stmt 1 view .LVU2115 +7232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpcr2; + 6486 .loc 1 7232 3 view .LVU2116 +7233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6487 .loc 1 7233 3 view .LVU2117 +7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6488 .loc 1 7236 3 view .LVU2118 +7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6489 .loc 1 7236 7 is_stmt 0 view .LVU2119 + 6490 0002 036A ldr r3, [r0, #32] +7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6491 .loc 1 7236 14 view .LVU2120 + 6492 0004 23F01003 bic r3, r3, #16 + 6493 0008 0362 str r3, [r0, #32] +7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ + 6494 .loc 1 7239 3 is_stmt 1 view .LVU2121 +7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Get the TIMx CR2 register value */ + 6495 .loc 1 7239 11 is_stmt 0 view .LVU2122 + 6496 000a 036A ldr r3, [r0, #32] + 6497 .LVL508: +7241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6498 .loc 1 7241 3 is_stmt 1 view .LVU2123 +7241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6499 .loc 1 7241 10 is_stmt 0 view .LVU2124 + 6500 000c 4468 ldr r4, [r0, #4] + 6501 .LVL509: +7244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6502 .loc 1 7244 3 is_stmt 1 view .LVU2125 + ARM GAS /tmp/cc0wMqvE.s page 282 + + +7244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6503 .loc 1 7244 12 is_stmt 0 view .LVU2126 + 6504 000e 8269 ldr r2, [r0, #24] + 6505 .LVL510: +7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmrx &= ~TIM_CCMR1_CC2S; + 6506 .loc 1 7247 3 is_stmt 1 view .LVU2127 +7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6507 .loc 1 7248 3 view .LVU2128 +7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6508 .loc 1 7248 12 is_stmt 0 view .LVU2129 + 6509 0010 22F08072 bic r2, r2, #16777216 + 6510 .LVL511: +7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6511 .loc 1 7248 12 view .LVU2130 + 6512 0014 22F4E642 bic r2, r2, #29440 + 6513 .LVL512: +7251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6514 .loc 1 7251 3 is_stmt 1 view .LVU2131 +7251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6515 .loc 1 7251 25 is_stmt 0 view .LVU2132 + 6516 0018 0D68 ldr r5, [r1] +7251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6517 .loc 1 7251 12 view .LVU2133 + 6518 001a 42EA0522 orr r2, r2, r5, lsl #8 + 6519 .LVL513: +7254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ + 6520 .loc 1 7254 3 is_stmt 1 view .LVU2134 +7254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Compare Polarity */ + 6521 .loc 1 7254 11 is_stmt 0 view .LVU2135 + 6522 001e 23F02003 bic r3, r3, #32 + 6523 .LVL514: +7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6524 .loc 1 7256 3 is_stmt 1 view .LVU2136 +7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6525 .loc 1 7256 24 is_stmt 0 view .LVU2137 + 6526 0022 8D68 ldr r5, [r1, #8] +7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6527 .loc 1 7256 11 view .LVU2138 + 6528 0024 43EA0513 orr r3, r3, r5, lsl #4 + 6529 .LVL515: +7258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6530 .loc 1 7258 3 is_stmt 1 view .LVU2139 +7258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6531 .loc 1 7258 6 is_stmt 0 view .LVU2140 + 6532 0028 174D ldr r5, .L410 + 6533 002a A842 cmp r0, r5 + 6534 002c 03D0 beq .L405 +7258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6535 .loc 1 7258 7 discriminator 1 view .LVU2141 + 6536 002e 05F50065 add r5, r5, #2048 + 6537 0032 A842 cmp r0, r5 + 6538 0034 06D1 bne .L406 + 6539 .L405: +7260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6540 .loc 1 7260 5 is_stmt 1 view .LVU2142 +7263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Polarity */ + 6541 .loc 1 7263 5 view .LVU2143 + ARM GAS /tmp/cc0wMqvE.s page 283 + + +7263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Polarity */ + 6542 .loc 1 7263 13 is_stmt 0 view .LVU2144 + 6543 0036 23F08003 bic r3, r3, #128 + 6544 .LVL516: +7265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ + 6545 .loc 1 7265 5 is_stmt 1 view .LVU2145 +7265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ + 6546 .loc 1 7265 26 is_stmt 0 view .LVU2146 + 6547 003a CD68 ldr r5, [r1, #12] +7265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the Output N State */ + 6548 .loc 1 7265 13 view .LVU2147 + 6549 003c 43EA0513 orr r3, r3, r5, lsl #4 + 6550 .LVL517: +7267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6551 .loc 1 7267 5 is_stmt 1 view .LVU2148 +7267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6552 .loc 1 7267 13 is_stmt 0 view .LVU2149 + 6553 0040 23F04003 bic r3, r3, #64 + 6554 .LVL518: + 6555 .L406: +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6556 .loc 1 7271 3 is_stmt 1 view .LVU2150 +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6557 .loc 1 7271 6 is_stmt 0 view .LVU2151 + 6558 0044 104D ldr r5, .L410 + 6559 0046 A842 cmp r0, r5 + 6560 0048 0FD0 beq .L407 +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6561 .loc 1 7271 7 discriminator 1 view .LVU2152 + 6562 004a 05F50065 add r5, r5, #2048 + 6563 004e A842 cmp r0, r5 + 6564 0050 0BD0 beq .L407 +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6565 .loc 1 7271 7 discriminator 2 view .LVU2153 + 6566 0052 05F54065 add r5, r5, #3072 + 6567 0056 A842 cmp r0, r5 + 6568 0058 07D0 beq .L407 +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6569 .loc 1 7271 7 discriminator 3 view .LVU2154 + 6570 005a 05F58065 add r5, r5, #1024 + 6571 005e A842 cmp r0, r5 + 6572 0060 03D0 beq .L407 +7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6573 .loc 1 7271 7 discriminator 4 view .LVU2155 + 6574 0062 05F58065 add r5, r5, #1024 + 6575 0066 A842 cmp r0, r5 + 6576 0068 07D1 bne .L408 + 6577 .L407: +7274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + 6578 .loc 1 7274 5 is_stmt 1 view .LVU2156 +7275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6579 .loc 1 7275 5 view .LVU2157 +7278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpcr2 &= ~TIM_CR2_OIS2N; + 6580 .loc 1 7278 5 view .LVU2158 + 6581 .LVL519: +7279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ + 6582 .loc 1 7279 5 view .LVU2159 + ARM GAS /tmp/cc0wMqvE.s page 284 + + +7279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output Idle state */ + 6583 .loc 1 7279 12 is_stmt 0 view .LVU2160 + 6584 006a 24F4406C bic ip, r4, #3072 + 6585 .LVL520: +7281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ + 6586 .loc 1 7281 5 is_stmt 1 view .LVU2161 +7281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ + 6587 .loc 1 7281 25 is_stmt 0 view .LVU2162 + 6588 006e 4C69 ldr r4, [r1, #20] +7281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Output N Idle state */ + 6589 .loc 1 7281 12 view .LVU2163 + 6590 0070 4CEA840C orr ip, ip, r4, lsl #2 + 6591 .LVL521: +7283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6592 .loc 1 7283 5 is_stmt 1 view .LVU2164 +7283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6593 .loc 1 7283 25 is_stmt 0 view .LVU2165 + 6594 0074 8C69 ldr r4, [r1, #24] +7283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6595 .loc 1 7283 12 view .LVU2166 + 6596 0076 4CEA8404 orr r4, ip, r4, lsl #2 + 6597 .LVL522: + 6598 .L408: +7287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6599 .loc 1 7287 3 is_stmt 1 view .LVU2167 +7287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6600 .loc 1 7287 13 is_stmt 0 view .LVU2168 + 6601 007a 4460 str r4, [r0, #4] +7290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6602 .loc 1 7290 3 is_stmt 1 view .LVU2169 +7290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6603 .loc 1 7290 15 is_stmt 0 view .LVU2170 + 6604 007c 8261 str r2, [r0, #24] +7293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6605 .loc 1 7293 3 is_stmt 1 view .LVU2171 +7293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6606 .loc 1 7293 25 is_stmt 0 view .LVU2172 + 6607 007e 4A68 ldr r2, [r1, #4] + 6608 .LVL523: +7293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6609 .loc 1 7293 14 view .LVU2173 + 6610 0080 8263 str r2, [r0, #56] + 6611 .LVL524: +7296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6612 .loc 1 7296 3 is_stmt 1 view .LVU2174 +7296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6613 .loc 1 7296 14 is_stmt 0 view .LVU2175 + 6614 0082 0362 str r3, [r0, #32] +7297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6615 .loc 1 7297 1 view .LVU2176 + 6616 0084 30BC pop {r4, r5} + 6617 .LCFI61: + 6618 .cfi_restore 5 + 6619 .cfi_restore 4 + 6620 .cfi_def_cfa_offset 0 + 6621 .LVL525: +7297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 285 + + + 6622 .loc 1 7297 1 view .LVU2177 + 6623 0086 7047 bx lr + 6624 .L411: + 6625 .align 2 + 6626 .L410: + 6627 0088 002C0140 .word 1073818624 + 6628 .cfi_endproc + 6629 .LFE435: + 6631 .section .text.HAL_TIM_OC_ConfigChannel,"ax",%progbits + 6632 .align 1 + 6633 .global HAL_TIM_OC_ConfigChannel + 6634 .syntax unified + 6635 .thumb + 6636 .thumb_func + 6638 HAL_TIM_OC_ConfigChannel: + 6639 .LVL526: + 6640 .LFB388: +4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 6641 .loc 1 4123 1 is_stmt 1 view -0 + 6642 .cfi_startproc + 6643 @ args = 0, pretend = 0, frame = 0 + 6644 @ frame_needed = 0, uses_anonymous_args = 0 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6645 .loc 1 4124 3 view .LVU2179 +4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OC_CHANNEL_MODE(sConfig->OCMode, Channel)); + 6646 .loc 1 4127 3 view .LVU2180 +4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); + 6647 .loc 1 4128 3 view .LVU2181 +4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6648 .loc 1 4129 3 view .LVU2182 +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6649 .loc 1 4132 3 view .LVU2183 +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6650 .loc 1 4132 3 view .LVU2184 + 6651 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 6652 0004 012B cmp r3, #1 + 6653 0006 36D0 beq .L422 +4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 6654 .loc 1 4123 1 is_stmt 0 discriminator 2 view .LVU2185 + 6655 0008 10B5 push {r4, lr} + 6656 .LCFI62: + 6657 .cfi_def_cfa_offset 8 + 6658 .cfi_offset 4, -8 + 6659 .cfi_offset 14, -4 + 6660 000a 0446 mov r4, r0 +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6661 .loc 1 4132 3 is_stmt 1 discriminator 2 view .LVU2186 + 6662 000c 0123 movs r3, #1 + 6663 000e 80F83C30 strb r3, [r0, #60] +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6664 .loc 1 4132 3 discriminator 2 view .LVU2187 +4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6665 .loc 1 4134 3 discriminator 2 view .LVU2188 + 6666 0012 142A cmp r2, #20 + 6667 0014 2AD8 bhi .L423 + 6668 0016 DFE802F0 tbb [pc, r2] + 6669 .L416: + ARM GAS /tmp/cc0wMqvE.s page 286 + + + 6670 001a 0B .byte (.L421-.L416)/2 + 6671 001b 29 .byte (.L423-.L416)/2 + 6672 001c 29 .byte (.L423-.L416)/2 + 6673 001d 29 .byte (.L423-.L416)/2 + 6674 001e 10 .byte (.L420-.L416)/2 + 6675 001f 29 .byte (.L423-.L416)/2 + 6676 0020 29 .byte (.L423-.L416)/2 + 6677 0021 29 .byte (.L423-.L416)/2 + 6678 0022 15 .byte (.L419-.L416)/2 + 6679 0023 29 .byte (.L423-.L416)/2 + 6680 0024 29 .byte (.L423-.L416)/2 + 6681 0025 29 .byte (.L423-.L416)/2 + 6682 0026 1A .byte (.L418-.L416)/2 + 6683 0027 29 .byte (.L423-.L416)/2 + 6684 0028 29 .byte (.L423-.L416)/2 + 6685 0029 29 .byte (.L423-.L416)/2 + 6686 002a 1F .byte (.L417-.L416)/2 + 6687 002b 29 .byte (.L423-.L416)/2 + 6688 002c 29 .byte (.L423-.L416)/2 + 6689 002d 29 .byte (.L423-.L416)/2 + 6690 002e 24 .byte (.L415-.L416)/2 + 6691 002f 00 .p2align 1 + 6692 .L421: +4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6693 .loc 1 4139 7 view .LVU2189 +4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6694 .loc 1 4142 7 view .LVU2190 + 6695 0030 0068 ldr r0, [r0] + 6696 .LVL527: +4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6697 .loc 1 4142 7 is_stmt 0 view .LVU2191 + 6698 0032 FFF7FEFF bl TIM_OC1_SetConfig + 6699 .LVL528: +4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6700 .loc 1 4143 7 is_stmt 1 view .LVU2192 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6701 .loc 1 4124 21 is_stmt 0 view .LVU2193 + 6702 0036 0020 movs r0, #0 +4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6703 .loc 1 4143 7 view .LVU2194 + 6704 0038 19E0 b .L414 + 6705 .LVL529: + 6706 .L420: +4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6707 .loc 1 4149 7 is_stmt 1 view .LVU2195 +4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6708 .loc 1 4152 7 view .LVU2196 + 6709 003a 0068 ldr r0, [r0] + 6710 .LVL530: +4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6711 .loc 1 4152 7 is_stmt 0 view .LVU2197 + 6712 003c FFF7FEFF bl TIM_OC2_SetConfig + 6713 .LVL531: +4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6714 .loc 1 4153 7 is_stmt 1 view .LVU2198 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6715 .loc 1 4124 21 is_stmt 0 view .LVU2199 + ARM GAS /tmp/cc0wMqvE.s page 287 + + + 6716 0040 0020 movs r0, #0 +4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6717 .loc 1 4153 7 view .LVU2200 + 6718 0042 14E0 b .L414 + 6719 .LVL532: + 6720 .L419: +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6721 .loc 1 4159 7 is_stmt 1 view .LVU2201 +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6722 .loc 1 4162 7 view .LVU2202 + 6723 0044 0068 ldr r0, [r0] + 6724 .LVL533: +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6725 .loc 1 4162 7 is_stmt 0 view .LVU2203 + 6726 0046 FFF7FEFF bl TIM_OC3_SetConfig + 6727 .LVL534: +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6728 .loc 1 4163 7 is_stmt 1 view .LVU2204 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6729 .loc 1 4124 21 is_stmt 0 view .LVU2205 + 6730 004a 0020 movs r0, #0 +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6731 .loc 1 4163 7 view .LVU2206 + 6732 004c 0FE0 b .L414 + 6733 .LVL535: + 6734 .L418: +4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6735 .loc 1 4169 7 is_stmt 1 view .LVU2207 +4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6736 .loc 1 4172 7 view .LVU2208 + 6737 004e 0068 ldr r0, [r0] + 6738 .LVL536: +4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6739 .loc 1 4172 7 is_stmt 0 view .LVU2209 + 6740 0050 FFF7FEFF bl TIM_OC4_SetConfig + 6741 .LVL537: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6742 .loc 1 4173 7 is_stmt 1 view .LVU2210 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6743 .loc 1 4124 21 is_stmt 0 view .LVU2211 + 6744 0054 0020 movs r0, #0 +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6745 .loc 1 4173 7 view .LVU2212 + 6746 0056 0AE0 b .L414 + 6747 .LVL538: + 6748 .L417: +4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6749 .loc 1 4179 7 is_stmt 1 view .LVU2213 +4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6750 .loc 1 4182 7 view .LVU2214 + 6751 0058 0068 ldr r0, [r0] + 6752 .LVL539: +4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6753 .loc 1 4182 7 is_stmt 0 view .LVU2215 + 6754 005a FFF7FEFF bl TIM_OC5_SetConfig + 6755 .LVL540: +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 288 + + + 6756 .loc 1 4183 7 is_stmt 1 view .LVU2216 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6757 .loc 1 4124 21 is_stmt 0 view .LVU2217 + 6758 005e 0020 movs r0, #0 +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6759 .loc 1 4183 7 view .LVU2218 + 6760 0060 05E0 b .L414 + 6761 .LVL541: + 6762 .L415: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6763 .loc 1 4189 7 is_stmt 1 view .LVU2219 +4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6764 .loc 1 4192 7 view .LVU2220 + 6765 0062 0068 ldr r0, [r0] + 6766 .LVL542: +4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6767 .loc 1 4192 7 is_stmt 0 view .LVU2221 + 6768 0064 FFF7FEFF bl TIM_OC6_SetConfig + 6769 .LVL543: +4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6770 .loc 1 4193 7 is_stmt 1 view .LVU2222 +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6771 .loc 1 4124 21 is_stmt 0 view .LVU2223 + 6772 0068 0020 movs r0, #0 +4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6773 .loc 1 4193 7 view .LVU2224 + 6774 006a 00E0 b .L414 + 6775 .LVL544: + 6776 .L423: +4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6777 .loc 1 4134 3 view .LVU2225 + 6778 006c 0120 movs r0, #1 + 6779 .LVL545: + 6780 .L414: +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6781 .loc 1 4201 3 is_stmt 1 view .LVU2226 +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6782 .loc 1 4201 3 view .LVU2227 + 6783 006e 0023 movs r3, #0 + 6784 0070 84F83C30 strb r3, [r4, #60] +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6785 .loc 1 4201 3 view .LVU2228 +4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6786 .loc 1 4203 3 view .LVU2229 +4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6787 .loc 1 4204 1 is_stmt 0 view .LVU2230 + 6788 0074 10BD pop {r4, pc} + 6789 .LVL546: + 6790 .L422: + 6791 .LCFI63: + 6792 .cfi_def_cfa_offset 0 + 6793 .cfi_restore 4 + 6794 .cfi_restore 14 +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6795 .loc 1 4132 3 view .LVU2231 + 6796 0076 0220 movs r0, #2 + 6797 .LVL547: + ARM GAS /tmp/cc0wMqvE.s page 289 + + +4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6798 .loc 1 4204 1 view .LVU2232 + 6799 0078 7047 bx lr + 6800 .cfi_endproc + 6801 .LFE388: + 6803 .section .text.HAL_TIM_PWM_ConfigChannel,"ax",%progbits + 6804 .align 1 + 6805 .global HAL_TIM_PWM_ConfigChannel + 6806 .syntax unified + 6807 .thumb + 6808 .thumb_func + 6810 HAL_TIM_PWM_ConfigChannel: + 6811 .LVL548: + 6812 .LFB390: +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 6813 .loc 1 4323 1 is_stmt 1 view -0 + 6814 .cfi_startproc + 6815 @ args = 0, pretend = 0, frame = 0 + 6816 @ frame_needed = 0, uses_anonymous_args = 0 +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 6817 .loc 1 4323 1 is_stmt 0 view .LVU2234 + 6818 0000 38B5 push {r3, r4, r5, lr} + 6819 .LCFI64: + 6820 .cfi_def_cfa_offset 16 + 6821 .cfi_offset 3, -16 + 6822 .cfi_offset 4, -12 + 6823 .cfi_offset 5, -8 + 6824 .cfi_offset 14, -4 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6825 .loc 1 4324 3 is_stmt 1 view .LVU2235 + 6826 .LVL549: +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_PWM_MODE(sConfig->OCMode)); + 6827 .loc 1 4327 3 view .LVU2236 +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); + 6828 .loc 1 4328 3 view .LVU2237 +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_FAST_STATE(sConfig->OCFastMode)); + 6829 .loc 1 4329 3 view .LVU2238 +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6830 .loc 1 4330 3 view .LVU2239 +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6831 .loc 1 4333 3 view .LVU2240 +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6832 .loc 1 4333 3 view .LVU2241 + 6833 0002 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 6834 0006 012B cmp r3, #1 + 6835 0008 00F09580 beq .L438 + 6836 000c 0446 mov r4, r0 + 6837 000e 0D46 mov r5, r1 +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6838 .loc 1 4333 3 discriminator 2 view .LVU2242 + 6839 0010 0123 movs r3, #1 + 6840 0012 80F83C30 strb r3, [r0, #60] +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6841 .loc 1 4333 3 discriminator 2 view .LVU2243 +4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 6842 .loc 1 4335 3 discriminator 2 view .LVU2244 + 6843 0016 142A cmp r2, #20 + ARM GAS /tmp/cc0wMqvE.s page 290 + + + 6844 0018 00F28880 bhi .L439 + 6845 001c DFE802F0 tbb [pc, r2] + 6846 .L432: + 6847 0020 0B .byte (.L437-.L432)/2 + 6848 0021 86 .byte (.L439-.L432)/2 + 6849 0022 86 .byte (.L439-.L432)/2 + 6850 0023 86 .byte (.L439-.L432)/2 + 6851 0024 1F .byte (.L436-.L432)/2 + 6852 0025 86 .byte (.L439-.L432)/2 + 6853 0026 86 .byte (.L439-.L432)/2 + 6854 0027 86 .byte (.L439-.L432)/2 + 6855 0028 34 .byte (.L435-.L432)/2 + 6856 0029 86 .byte (.L439-.L432)/2 + 6857 002a 86 .byte (.L439-.L432)/2 + 6858 002b 86 .byte (.L439-.L432)/2 + 6859 002c 48 .byte (.L434-.L432)/2 + 6860 002d 86 .byte (.L439-.L432)/2 + 6861 002e 86 .byte (.L439-.L432)/2 + 6862 002f 86 .byte (.L439-.L432)/2 + 6863 0030 5D .byte (.L433-.L432)/2 + 6864 0031 86 .byte (.L439-.L432)/2 + 6865 0032 86 .byte (.L439-.L432)/2 + 6866 0033 86 .byte (.L439-.L432)/2 + 6867 0034 71 .byte (.L431-.L432)/2 + 6868 0035 00 .p2align 1 + 6869 .L437: +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6870 .loc 1 4340 7 view .LVU2245 +4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6871 .loc 1 4343 7 view .LVU2246 + 6872 0036 0068 ldr r0, [r0] + 6873 .LVL550: +4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6874 .loc 1 4343 7 is_stmt 0 view .LVU2247 + 6875 0038 FFF7FEFF bl TIM_OC1_SetConfig + 6876 .LVL551: +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6877 .loc 1 4346 7 is_stmt 1 view .LVU2248 +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6878 .loc 1 4346 11 is_stmt 0 view .LVU2249 + 6879 003c 2268 ldr r2, [r4] +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6880 .loc 1 4346 21 view .LVU2250 + 6881 003e 9369 ldr r3, [r2, #24] +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6882 .loc 1 4346 29 view .LVU2251 + 6883 0040 43F00803 orr r3, r3, #8 + 6884 0044 9361 str r3, [r2, #24] +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode; + 6885 .loc 1 4349 7 is_stmt 1 view .LVU2252 +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode; + 6886 .loc 1 4349 11 is_stmt 0 view .LVU2253 + 6887 0046 2268 ldr r2, [r4] +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode; + 6888 .loc 1 4349 21 view .LVU2254 + 6889 0048 9369 ldr r3, [r2, #24] +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode; + ARM GAS /tmp/cc0wMqvE.s page 291 + + + 6890 .loc 1 4349 29 view .LVU2255 + 6891 004a 23F00403 bic r3, r3, #4 + 6892 004e 9361 str r3, [r2, #24] +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6893 .loc 1 4350 7 is_stmt 1 view .LVU2256 +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6894 .loc 1 4350 11 is_stmt 0 view .LVU2257 + 6895 0050 2268 ldr r2, [r4] +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6896 .loc 1 4350 21 view .LVU2258 + 6897 0052 9369 ldr r3, [r2, #24] +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6898 .loc 1 4350 39 view .LVU2259 + 6899 0054 2969 ldr r1, [r5, #16] +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6900 .loc 1 4350 29 view .LVU2260 + 6901 0056 0B43 orrs r3, r3, r1 + 6902 0058 9361 str r3, [r2, #24] +4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6903 .loc 1 4351 7 is_stmt 1 view .LVU2261 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6904 .loc 1 4324 21 is_stmt 0 view .LVU2262 + 6905 005a 0020 movs r0, #0 +4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6906 .loc 1 4351 7 view .LVU2263 + 6907 005c 67E0 b .L430 + 6908 .LVL552: + 6909 .L436: +4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6910 .loc 1 4357 7 is_stmt 1 view .LVU2264 +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6911 .loc 1 4360 7 view .LVU2265 + 6912 005e 0068 ldr r0, [r0] + 6913 .LVL553: +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6914 .loc 1 4360 7 is_stmt 0 view .LVU2266 + 6915 0060 FFF7FEFF bl TIM_OC2_SetConfig + 6916 .LVL554: +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6917 .loc 1 4363 7 is_stmt 1 view .LVU2267 +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6918 .loc 1 4363 11 is_stmt 0 view .LVU2268 + 6919 0064 2268 ldr r2, [r4] +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6920 .loc 1 4363 21 view .LVU2269 + 6921 0066 9369 ldr r3, [r2, #24] +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6922 .loc 1 4363 29 view .LVU2270 + 6923 0068 43F40063 orr r3, r3, #2048 + 6924 006c 9361 str r3, [r2, #24] +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + 6925 .loc 1 4366 7 is_stmt 1 view .LVU2271 +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + 6926 .loc 1 4366 11 is_stmt 0 view .LVU2272 + 6927 006e 2268 ldr r2, [r4] +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + 6928 .loc 1 4366 21 view .LVU2273 + ARM GAS /tmp/cc0wMqvE.s page 292 + + + 6929 0070 9369 ldr r3, [r2, #24] +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + 6930 .loc 1 4366 29 view .LVU2274 + 6931 0072 23F48063 bic r3, r3, #1024 + 6932 0076 9361 str r3, [r2, #24] +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6933 .loc 1 4367 7 is_stmt 1 view .LVU2275 +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6934 .loc 1 4367 11 is_stmt 0 view .LVU2276 + 6935 0078 2268 ldr r2, [r4] +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6936 .loc 1 4367 21 view .LVU2277 + 6937 007a 9369 ldr r3, [r2, #24] +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6938 .loc 1 4367 39 view .LVU2278 + 6939 007c 2969 ldr r1, [r5, #16] +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6940 .loc 1 4367 29 view .LVU2279 + 6941 007e 43EA0123 orr r3, r3, r1, lsl #8 + 6942 0082 9361 str r3, [r2, #24] +4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6943 .loc 1 4368 7 is_stmt 1 view .LVU2280 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6944 .loc 1 4324 21 is_stmt 0 view .LVU2281 + 6945 0084 0020 movs r0, #0 +4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6946 .loc 1 4368 7 view .LVU2282 + 6947 0086 52E0 b .L430 + 6948 .LVL555: + 6949 .L435: +4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6950 .loc 1 4374 7 is_stmt 1 view .LVU2283 +4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6951 .loc 1 4377 7 view .LVU2284 + 6952 0088 0068 ldr r0, [r0] + 6953 .LVL556: +4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6954 .loc 1 4377 7 is_stmt 0 view .LVU2285 + 6955 008a FFF7FEFF bl TIM_OC3_SetConfig + 6956 .LVL557: +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6957 .loc 1 4380 7 is_stmt 1 view .LVU2286 +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6958 .loc 1 4380 11 is_stmt 0 view .LVU2287 + 6959 008e 2268 ldr r2, [r4] +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6960 .loc 1 4380 21 view .LVU2288 + 6961 0090 D369 ldr r3, [r2, #28] +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6962 .loc 1 4380 29 view .LVU2289 + 6963 0092 43F00803 orr r3, r3, #8 + 6964 0096 D361 str r3, [r2, #28] +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode; + 6965 .loc 1 4383 7 is_stmt 1 view .LVU2290 +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode; + 6966 .loc 1 4383 11 is_stmt 0 view .LVU2291 + 6967 0098 2268 ldr r2, [r4] + ARM GAS /tmp/cc0wMqvE.s page 293 + + +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode; + 6968 .loc 1 4383 21 view .LVU2292 + 6969 009a D369 ldr r3, [r2, #28] +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode; + 6970 .loc 1 4383 29 view .LVU2293 + 6971 009c 23F00403 bic r3, r3, #4 + 6972 00a0 D361 str r3, [r2, #28] +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6973 .loc 1 4384 7 is_stmt 1 view .LVU2294 +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6974 .loc 1 4384 11 is_stmt 0 view .LVU2295 + 6975 00a2 2268 ldr r2, [r4] +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6976 .loc 1 4384 21 view .LVU2296 + 6977 00a4 D369 ldr r3, [r2, #28] +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6978 .loc 1 4384 39 view .LVU2297 + 6979 00a6 2969 ldr r1, [r5, #16] +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 6980 .loc 1 4384 29 view .LVU2298 + 6981 00a8 0B43 orrs r3, r3, r1 + 6982 00aa D361 str r3, [r2, #28] +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6983 .loc 1 4385 7 is_stmt 1 view .LVU2299 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6984 .loc 1 4324 21 is_stmt 0 view .LVU2300 + 6985 00ac 0020 movs r0, #0 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 6986 .loc 1 4385 7 view .LVU2301 + 6987 00ae 3EE0 b .L430 + 6988 .LVL558: + 6989 .L434: +4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6990 .loc 1 4391 7 is_stmt 1 view .LVU2302 +4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6991 .loc 1 4394 7 view .LVU2303 + 6992 00b0 0068 ldr r0, [r0] + 6993 .LVL559: +4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6994 .loc 1 4394 7 is_stmt 0 view .LVU2304 + 6995 00b2 FFF7FEFF bl TIM_OC4_SetConfig + 6996 .LVL560: +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6997 .loc 1 4397 7 is_stmt 1 view .LVU2305 +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 6998 .loc 1 4397 11 is_stmt 0 view .LVU2306 + 6999 00b6 2268 ldr r2, [r4] +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7000 .loc 1 4397 21 view .LVU2307 + 7001 00b8 D369 ldr r3, [r2, #28] +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7002 .loc 1 4397 29 view .LVU2308 + 7003 00ba 43F40063 orr r3, r3, #2048 + 7004 00be D361 str r3, [r2, #28] +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + 7005 .loc 1 4400 7 is_stmt 1 view .LVU2309 +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + ARM GAS /tmp/cc0wMqvE.s page 294 + + + 7006 .loc 1 4400 11 is_stmt 0 view .LVU2310 + 7007 00c0 2268 ldr r2, [r4] +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + 7008 .loc 1 4400 21 view .LVU2311 + 7009 00c2 D369 ldr r3, [r2, #28] +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + 7010 .loc 1 4400 29 view .LVU2312 + 7011 00c4 23F48063 bic r3, r3, #1024 + 7012 00c8 D361 str r3, [r2, #28] +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7013 .loc 1 4401 7 is_stmt 1 view .LVU2313 +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7014 .loc 1 4401 11 is_stmt 0 view .LVU2314 + 7015 00ca 2268 ldr r2, [r4] +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7016 .loc 1 4401 21 view .LVU2315 + 7017 00cc D369 ldr r3, [r2, #28] +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7018 .loc 1 4401 39 view .LVU2316 + 7019 00ce 2969 ldr r1, [r5, #16] +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7020 .loc 1 4401 29 view .LVU2317 + 7021 00d0 43EA0123 orr r3, r3, r1, lsl #8 + 7022 00d4 D361 str r3, [r2, #28] +4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7023 .loc 1 4402 7 is_stmt 1 view .LVU2318 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7024 .loc 1 4324 21 is_stmt 0 view .LVU2319 + 7025 00d6 0020 movs r0, #0 +4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7026 .loc 1 4402 7 view .LVU2320 + 7027 00d8 29E0 b .L430 + 7028 .LVL561: + 7029 .L433: +4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7030 .loc 1 4408 7 is_stmt 1 view .LVU2321 +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7031 .loc 1 4411 7 view .LVU2322 + 7032 00da 0068 ldr r0, [r0] + 7033 .LVL562: +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7034 .loc 1 4411 7 is_stmt 0 view .LVU2323 + 7035 00dc FFF7FEFF bl TIM_OC5_SetConfig + 7036 .LVL563: +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7037 .loc 1 4414 7 is_stmt 1 view .LVU2324 +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7038 .loc 1 4414 11 is_stmt 0 view .LVU2325 + 7039 00e0 2268 ldr r2, [r4] +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7040 .loc 1 4414 21 view .LVU2326 + 7041 00e2 136D ldr r3, [r2, #80] +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7042 .loc 1 4414 29 view .LVU2327 + 7043 00e4 43F00803 orr r3, r3, #8 + 7044 00e8 1365 str r3, [r2, #80] +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode; + ARM GAS /tmp/cc0wMqvE.s page 295 + + + 7045 .loc 1 4417 7 is_stmt 1 view .LVU2328 +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode; + 7046 .loc 1 4417 11 is_stmt 0 view .LVU2329 + 7047 00ea 2268 ldr r2, [r4] +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode; + 7048 .loc 1 4417 21 view .LVU2330 + 7049 00ec 136D ldr r3, [r2, #80] +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode; + 7050 .loc 1 4417 29 view .LVU2331 + 7051 00ee 23F00403 bic r3, r3, #4 + 7052 00f2 1365 str r3, [r2, #80] +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7053 .loc 1 4418 7 is_stmt 1 view .LVU2332 +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7054 .loc 1 4418 11 is_stmt 0 view .LVU2333 + 7055 00f4 2268 ldr r2, [r4] +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7056 .loc 1 4418 21 view .LVU2334 + 7057 00f6 136D ldr r3, [r2, #80] +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7058 .loc 1 4418 39 view .LVU2335 + 7059 00f8 2969 ldr r1, [r5, #16] +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7060 .loc 1 4418 29 view .LVU2336 + 7061 00fa 0B43 orrs r3, r3, r1 + 7062 00fc 1365 str r3, [r2, #80] +4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7063 .loc 1 4419 7 is_stmt 1 view .LVU2337 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7064 .loc 1 4324 21 is_stmt 0 view .LVU2338 + 7065 00fe 0020 movs r0, #0 +4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7066 .loc 1 4419 7 view .LVU2339 + 7067 0100 15E0 b .L430 + 7068 .LVL564: + 7069 .L431: +4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7070 .loc 1 4425 7 is_stmt 1 view .LVU2340 +4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7071 .loc 1 4428 7 view .LVU2341 + 7072 0102 0068 ldr r0, [r0] + 7073 .LVL565: +4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7074 .loc 1 4428 7 is_stmt 0 view .LVU2342 + 7075 0104 FFF7FEFF bl TIM_OC6_SetConfig + 7076 .LVL566: +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7077 .loc 1 4431 7 is_stmt 1 view .LVU2343 +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7078 .loc 1 4431 11 is_stmt 0 view .LVU2344 + 7079 0108 2268 ldr r2, [r4] +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7080 .loc 1 4431 21 view .LVU2345 + 7081 010a 136D ldr r3, [r2, #80] +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7082 .loc 1 4431 29 view .LVU2346 + 7083 010c 43F40063 orr r3, r3, #2048 + ARM GAS /tmp/cc0wMqvE.s page 296 + + + 7084 0110 1365 str r3, [r2, #80] +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; + 7085 .loc 1 4434 7 is_stmt 1 view .LVU2347 +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; + 7086 .loc 1 4434 11 is_stmt 0 view .LVU2348 + 7087 0112 2268 ldr r2, [r4] +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; + 7088 .loc 1 4434 21 view .LVU2349 + 7089 0114 136D ldr r3, [r2, #80] +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; + 7090 .loc 1 4434 29 view .LVU2350 + 7091 0116 23F48063 bic r3, r3, #1024 + 7092 011a 1365 str r3, [r2, #80] +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7093 .loc 1 4435 7 is_stmt 1 view .LVU2351 +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7094 .loc 1 4435 11 is_stmt 0 view .LVU2352 + 7095 011c 2268 ldr r2, [r4] +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7096 .loc 1 4435 21 view .LVU2353 + 7097 011e 136D ldr r3, [r2, #80] +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7098 .loc 1 4435 39 view .LVU2354 + 7099 0120 2969 ldr r1, [r5, #16] +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7100 .loc 1 4435 29 view .LVU2355 + 7101 0122 43EA0123 orr r3, r3, r1, lsl #8 + 7102 0126 1365 str r3, [r2, #80] +4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7103 .loc 1 4436 7 is_stmt 1 view .LVU2356 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7104 .loc 1 4324 21 is_stmt 0 view .LVU2357 + 7105 0128 0020 movs r0, #0 +4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7106 .loc 1 4436 7 view .LVU2358 + 7107 012a 00E0 b .L430 + 7108 .LVL567: + 7109 .L439: +4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7110 .loc 1 4335 3 view .LVU2359 + 7111 012c 0120 movs r0, #1 + 7112 .LVL568: + 7113 .L430: +4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7114 .loc 1 4444 3 is_stmt 1 view .LVU2360 +4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7115 .loc 1 4444 3 view .LVU2361 + 7116 012e 0023 movs r3, #0 + 7117 0130 84F83C30 strb r3, [r4, #60] +4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7118 .loc 1 4444 3 view .LVU2362 +4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7119 .loc 1 4446 3 view .LVU2363 + 7120 .LVL569: + 7121 .L429: +4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7122 .loc 1 4447 1 is_stmt 0 view .LVU2364 + ARM GAS /tmp/cc0wMqvE.s page 297 + + + 7123 0134 38BD pop {r3, r4, r5, pc} + 7124 .LVL570: + 7125 .L438: +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7126 .loc 1 4333 3 view .LVU2365 + 7127 0136 0220 movs r0, #2 + 7128 .LVL571: +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7129 .loc 1 4333 3 view .LVU2366 + 7130 0138 FCE7 b .L429 + 7131 .cfi_endproc + 7132 .LFE390: + 7134 .section .text.TIM_TI1_SetConfig,"ax",%progbits + 7135 .align 1 + 7136 .global TIM_TI1_SetConfig + 7137 .syntax unified + 7138 .thumb + 7139 .thumb_func + 7141 TIM_TI1_SetConfig: + 7142 .LVL572: + 7143 .LFB441: +7714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + 7144 .loc 1 7714 1 is_stmt 1 view -0 + 7145 .cfi_startproc + 7146 @ args = 0, pretend = 0, frame = 0 + 7147 @ frame_needed = 0, uses_anonymous_args = 0 + 7148 @ link register save eliminated. +7714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + 7149 .loc 1 7714 1 is_stmt 0 view .LVU2368 + 7150 0000 70B4 push {r4, r5, r6} + 7151 .LCFI65: + 7152 .cfi_def_cfa_offset 12 + 7153 .cfi_offset 4, -12 + 7154 .cfi_offset 5, -8 + 7155 .cfi_offset 6, -4 + 7156 0002 9446 mov ip, r2 +7715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 7157 .loc 1 7715 3 is_stmt 1 view .LVU2369 +7716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7158 .loc 1 7716 3 view .LVU2370 +7719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; + 7159 .loc 1 7719 3 view .LVU2371 +7719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; + 7160 .loc 1 7719 7 is_stmt 0 view .LVU2372 + 7161 0004 046A ldr r4, [r0, #32] +7719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = TIMx->CCMR1; + 7162 .loc 1 7719 14 view .LVU2373 + 7163 0006 24F00104 bic r4, r4, #1 + 7164 000a 0462 str r4, [r0, #32] +7720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 7165 .loc 1 7720 3 is_stmt 1 view .LVU2374 +7720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer = TIMx->CCER; + 7166 .loc 1 7720 12 is_stmt 0 view .LVU2375 + 7167 000c 8469 ldr r4, [r0, #24] + 7168 .LVL573: +7721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7169 .loc 1 7721 3 is_stmt 1 view .LVU2376 + ARM GAS /tmp/cc0wMqvE.s page 298 + + +7721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7170 .loc 1 7721 11 is_stmt 0 view .LVU2377 + 7171 000e 066A ldr r6, [r0, #32] + 7172 .LVL574: +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7173 .loc 1 7724 3 is_stmt 1 view .LVU2378 +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7174 .loc 1 7724 7 is_stmt 0 view .LVU2379 + 7175 0010 144D ldr r5, .L445 + 7176 0012 A842 cmp r0, r5 + 7177 0014 14D0 beq .L442 +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7178 .loc 1 7724 7 discriminator 2 view .LVU2380 + 7179 0016 B0F1804F cmp r0, #1073741824 + 7180 001a 11D0 beq .L442 +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7181 .loc 1 7724 7 discriminator 4 view .LVU2381 + 7182 001c 124A ldr r2, .L445+4 + 7183 .LVL575: +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7184 .loc 1 7724 7 discriminator 4 view .LVU2382 + 7185 001e 9042 cmp r0, r2 + 7186 0020 0ED0 beq .L442 +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7187 .loc 1 7724 7 discriminator 6 view .LVU2383 + 7188 0022 02F58062 add r2, r2, #1024 + 7189 0026 9042 cmp r0, r2 + 7190 0028 0AD0 beq .L442 +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7191 .loc 1 7724 7 discriminator 8 view .LVU2384 + 7192 002a 02F59632 add r2, r2, #76800 + 7193 002e 9042 cmp r0, r2 + 7194 0030 06D0 beq .L442 +7724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7195 .loc 1 7724 7 discriminator 10 view .LVU2385 + 7196 0032 02F54062 add r2, r2, #3072 + 7197 0036 9042 cmp r0, r2 + 7198 0038 02D0 beq .L442 +7731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7199 .loc 1 7731 5 is_stmt 1 view .LVU2386 +7731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7200 .loc 1 7731 14 is_stmt 0 view .LVU2387 + 7201 003a 44F00102 orr r2, r4, #1 + 7202 .LVL576: +7731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7203 .loc 1 7731 14 view .LVU2388 + 7204 003e 03E0 b .L443 + 7205 .LVL577: + 7206 .L442: +7726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= TIM_ICSelection; + 7207 .loc 1 7726 5 is_stmt 1 view .LVU2389 +7726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= TIM_ICSelection; + 7208 .loc 1 7726 14 is_stmt 0 view .LVU2390 + 7209 0040 24F00302 bic r2, r4, #3 + 7210 .LVL578: +7727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7211 .loc 1 7727 5 is_stmt 1 view .LVU2391 + ARM GAS /tmp/cc0wMqvE.s page 299 + + +7727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7212 .loc 1 7727 14 is_stmt 0 view .LVU2392 + 7213 0044 42EA0C02 orr r2, r2, ip + 7214 .LVL579: + 7215 .L443: +7735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((TIM_ICFilter << 4U) & TIM_CCMR1_IC1F); + 7216 .loc 1 7735 3 is_stmt 1 view .LVU2393 +7735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((TIM_ICFilter << 4U) & TIM_CCMR1_IC1F); + 7217 .loc 1 7735 12 is_stmt 0 view .LVU2394 + 7218 0048 22F0F002 bic r2, r2, #240 + 7219 .LVL580: +7736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7220 .loc 1 7736 3 is_stmt 1 view .LVU2395 +7736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7221 .loc 1 7736 30 is_stmt 0 view .LVU2396 + 7222 004c 1B01 lsls r3, r3, #4 + 7223 .LVL581: +7736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7224 .loc 1 7736 37 view .LVU2397 + 7225 004e DBB2 uxtb r3, r3 +7736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7226 .loc 1 7736 12 view .LVU2398 + 7227 0050 1343 orrs r3, r3, r2 + 7228 .LVL582: +7739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (TIM_ICPolarity & (TIM_CCER_CC1P | TIM_CCER_CC1NP)); + 7229 .loc 1 7739 3 is_stmt 1 view .LVU2399 +7739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccer |= (TIM_ICPolarity & (TIM_CCER_CC1P | TIM_CCER_CC1NP)); + 7230 .loc 1 7739 11 is_stmt 0 view .LVU2400 + 7231 0052 26F00A02 bic r2, r6, #10 + 7232 .LVL583: +7740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7233 .loc 1 7740 3 is_stmt 1 view .LVU2401 +7740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7234 .loc 1 7740 30 is_stmt 0 view .LVU2402 + 7235 0056 01F00A01 and r1, r1, #10 + 7236 .LVL584: +7740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7237 .loc 1 7740 11 view .LVU2403 + 7238 005a 1143 orrs r1, r1, r2 + 7239 .LVL585: +7743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 7240 .loc 1 7743 3 is_stmt 1 view .LVU2404 +7743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER = tmpccer; + 7241 .loc 1 7743 15 is_stmt 0 view .LVU2405 + 7242 005c 8361 str r3, [r0, #24] +7744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7243 .loc 1 7744 3 is_stmt 1 view .LVU2406 +7744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7244 .loc 1 7744 14 is_stmt 0 view .LVU2407 + 7245 005e 0162 str r1, [r0, #32] +7745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7246 .loc 1 7745 1 view .LVU2408 + 7247 0060 70BC pop {r4, r5, r6} + 7248 .LCFI66: + 7249 .cfi_restore 6 + 7250 .cfi_restore 5 + 7251 .cfi_restore 4 + ARM GAS /tmp/cc0wMqvE.s page 300 + + + 7252 .cfi_def_cfa_offset 0 + 7253 0062 7047 bx lr + 7254 .L446: + 7255 .align 2 + 7256 .L445: + 7257 0064 002C0140 .word 1073818624 + 7258 0068 00040040 .word 1073742848 + 7259 .cfi_endproc + 7260 .LFE441: + 7262 .section .text.HAL_TIM_IC_ConfigChannel,"ax",%progbits + 7263 .align 1 + 7264 .global HAL_TIM_IC_ConfigChannel + 7265 .syntax unified + 7266 .thumb + 7267 .thumb_func + 7269 HAL_TIM_IC_ConfigChannel: + 7270 .LVL586: + 7271 .LFB389: +4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 7272 .loc 1 4220 1 is_stmt 1 view -0 + 7273 .cfi_startproc + 7274 @ args = 0, pretend = 0, frame = 0 + 7275 @ frame_needed = 0, uses_anonymous_args = 0 +4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 7276 .loc 1 4220 1 is_stmt 0 view .LVU2410 + 7277 0000 38B5 push {r3, r4, r5, lr} + 7278 .LCFI67: + 7279 .cfi_def_cfa_offset 16 + 7280 .cfi_offset 3, -16 + 7281 .cfi_offset 4, -12 + 7282 .cfi_offset 5, -8 + 7283 .cfi_offset 14, -4 +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7284 .loc 1 4221 3 is_stmt 1 view .LVU2411 + 7285 .LVL587: +4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_POLARITY(sConfig->ICPolarity)); + 7286 .loc 1 4224 3 view .LVU2412 +4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_SELECTION(sConfig->ICSelection)); + 7287 .loc 1 4225 3 view .LVU2413 +4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->ICPrescaler)); + 7288 .loc 1 4226 3 view .LVU2414 +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_IC_FILTER(sConfig->ICFilter)); + 7289 .loc 1 4227 3 view .LVU2415 +4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7290 .loc 1 4228 3 view .LVU2416 +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7291 .loc 1 4231 3 view .LVU2417 +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7292 .loc 1 4231 3 view .LVU2418 + 7293 0002 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 7294 0006 012B cmp r3, #1 + 7295 0008 5AD0 beq .L453 + 7296 000a 0446 mov r4, r0 + 7297 000c 0D46 mov r5, r1 +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7298 .loc 1 4231 3 discriminator 2 view .LVU2419 + 7299 000e 0123 movs r3, #1 + ARM GAS /tmp/cc0wMqvE.s page 301 + + + 7300 0010 80F83C30 strb r3, [r0, #60] +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7301 .loc 1 4231 3 discriminator 2 view .LVU2420 +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7302 .loc 1 4233 3 discriminator 2 view .LVU2421 +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7303 .loc 1 4233 6 is_stmt 0 discriminator 2 view .LVU2422 + 7304 0014 52B1 cbz r2, .L456 +4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7305 .loc 1 4247 8 is_stmt 1 view .LVU2423 +4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7306 .loc 1 4247 11 is_stmt 0 view .LVU2424 + 7307 0016 042A cmp r2, #4 + 7308 0018 1AD0 beq .L457 +4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7309 .loc 1 4263 8 is_stmt 1 view .LVU2425 +4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7310 .loc 1 4263 11 is_stmt 0 view .LVU2426 + 7311 001a 082A cmp r2, #8 + 7312 001c 2BD0 beq .L458 +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7313 .loc 1 4279 8 is_stmt 1 view .LVU2427 +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7314 .loc 1 4279 11 is_stmt 0 view .LVU2428 + 7315 001e 0C2A cmp r2, #12 + 7316 0020 3BD0 beq .L459 +4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7317 .loc 1 4297 12 view .LVU2429 + 7318 0022 0120 movs r0, #1 + 7319 .LVL588: + 7320 .L450: +4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7321 .loc 1 4300 3 is_stmt 1 view .LVU2430 +4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7322 .loc 1 4300 3 view .LVU2431 + 7323 0024 0023 movs r3, #0 + 7324 0026 84F83C30 strb r3, [r4, #60] +4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7325 .loc 1 4300 3 view .LVU2432 +4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7326 .loc 1 4302 3 view .LVU2433 + 7327 .LVL589: + 7328 .L448: +4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7329 .loc 1 4303 1 is_stmt 0 view .LVU2434 + 7330 002a 38BD pop {r3, r4, r5, pc} + 7331 .LVL590: + 7332 .L456: +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7333 .loc 1 4236 5 is_stmt 1 view .LVU2435 + 7334 002c CB68 ldr r3, [r1, #12] + 7335 002e 4A68 ldr r2, [r1, #4] + 7336 .LVL591: +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7337 .loc 1 4236 5 is_stmt 0 view .LVU2436 + 7338 0030 0968 ldr r1, [r1] + 7339 .LVL592: + ARM GAS /tmp/cc0wMqvE.s page 302 + + +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7340 .loc 1 4236 5 view .LVU2437 + 7341 0032 0068 ldr r0, [r0] + 7342 .LVL593: +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7343 .loc 1 4236 5 view .LVU2438 + 7344 0034 FFF7FEFF bl TIM_TI1_SetConfig + 7345 .LVL594: +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7346 .loc 1 4242 5 is_stmt 1 view .LVU2439 +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7347 .loc 1 4242 9 is_stmt 0 view .LVU2440 + 7348 0038 2268 ldr r2, [r4] +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7349 .loc 1 4242 19 view .LVU2441 + 7350 003a 9369 ldr r3, [r2, #24] +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7351 .loc 1 4242 27 view .LVU2442 + 7352 003c 23F00C03 bic r3, r3, #12 + 7353 0040 9361 str r3, [r2, #24] +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7354 .loc 1 4245 5 is_stmt 1 view .LVU2443 +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7355 .loc 1 4245 9 is_stmt 0 view .LVU2444 + 7356 0042 2268 ldr r2, [r4] +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7357 .loc 1 4245 19 view .LVU2445 + 7358 0044 9369 ldr r3, [r2, #24] +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7359 .loc 1 4245 37 view .LVU2446 + 7360 0046 A968 ldr r1, [r5, #8] +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7361 .loc 1 4245 27 view .LVU2447 + 7362 0048 0B43 orrs r3, r3, r1 + 7363 004a 9361 str r3, [r2, #24] +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7364 .loc 1 4221 21 view .LVU2448 + 7365 004c 0020 movs r0, #0 + 7366 004e E9E7 b .L450 + 7367 .LVL595: + 7368 .L457: +4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7369 .loc 1 4250 5 is_stmt 1 view .LVU2449 +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7370 .loc 1 4252 5 view .LVU2450 + 7371 0050 CB68 ldr r3, [r1, #12] + 7372 0052 4A68 ldr r2, [r1, #4] + 7373 .LVL596: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7374 .loc 1 4252 5 is_stmt 0 view .LVU2451 + 7375 0054 0968 ldr r1, [r1] + 7376 .LVL597: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7377 .loc 1 4252 5 view .LVU2452 + 7378 0056 0068 ldr r0, [r0] + 7379 .LVL598: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + ARM GAS /tmp/cc0wMqvE.s page 303 + + + 7380 .loc 1 4252 5 view .LVU2453 + 7381 0058 FFF7FEFF bl TIM_TI2_SetConfig + 7382 .LVL599: +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7383 .loc 1 4258 5 is_stmt 1 view .LVU2454 +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7384 .loc 1 4258 9 is_stmt 0 view .LVU2455 + 7385 005c 2268 ldr r2, [r4] +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7386 .loc 1 4258 19 view .LVU2456 + 7387 005e 9369 ldr r3, [r2, #24] +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7388 .loc 1 4258 27 view .LVU2457 + 7389 0060 23F44063 bic r3, r3, #3072 + 7390 0064 9361 str r3, [r2, #24] +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7391 .loc 1 4261 5 is_stmt 1 view .LVU2458 +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7392 .loc 1 4261 9 is_stmt 0 view .LVU2459 + 7393 0066 2268 ldr r2, [r4] +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7394 .loc 1 4261 19 view .LVU2460 + 7395 0068 9369 ldr r3, [r2, #24] +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7396 .loc 1 4261 38 view .LVU2461 + 7397 006a A968 ldr r1, [r5, #8] +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7398 .loc 1 4261 27 view .LVU2462 + 7399 006c 43EA0123 orr r3, r3, r1, lsl #8 + 7400 0070 9361 str r3, [r2, #24] +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7401 .loc 1 4221 21 view .LVU2463 + 7402 0072 0020 movs r0, #0 + 7403 0074 D6E7 b .L450 + 7404 .LVL600: + 7405 .L458: +4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7406 .loc 1 4266 5 is_stmt 1 view .LVU2464 +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7407 .loc 1 4268 5 view .LVU2465 + 7408 0076 CB68 ldr r3, [r1, #12] + 7409 0078 4A68 ldr r2, [r1, #4] + 7410 .LVL601: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7411 .loc 1 4268 5 is_stmt 0 view .LVU2466 + 7412 007a 0968 ldr r1, [r1] + 7413 .LVL602: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7414 .loc 1 4268 5 view .LVU2467 + 7415 007c 0068 ldr r0, [r0] + 7416 .LVL603: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7417 .loc 1 4268 5 view .LVU2468 + 7418 007e FFF7FEFF bl TIM_TI3_SetConfig + 7419 .LVL604: +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7420 .loc 1 4274 5 is_stmt 1 view .LVU2469 + ARM GAS /tmp/cc0wMqvE.s page 304 + + +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7421 .loc 1 4274 9 is_stmt 0 view .LVU2470 + 7422 0082 2268 ldr r2, [r4] +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7423 .loc 1 4274 19 view .LVU2471 + 7424 0084 D369 ldr r3, [r2, #28] +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7425 .loc 1 4274 27 view .LVU2472 + 7426 0086 23F00C03 bic r3, r3, #12 + 7427 008a D361 str r3, [r2, #28] +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7428 .loc 1 4277 5 is_stmt 1 view .LVU2473 +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7429 .loc 1 4277 9 is_stmt 0 view .LVU2474 + 7430 008c 2268 ldr r2, [r4] +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7431 .loc 1 4277 19 view .LVU2475 + 7432 008e D369 ldr r3, [r2, #28] +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7433 .loc 1 4277 37 view .LVU2476 + 7434 0090 A968 ldr r1, [r5, #8] +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7435 .loc 1 4277 27 view .LVU2477 + 7436 0092 0B43 orrs r3, r3, r1 + 7437 0094 D361 str r3, [r2, #28] +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7438 .loc 1 4221 21 view .LVU2478 + 7439 0096 0020 movs r0, #0 + 7440 0098 C4E7 b .L450 + 7441 .LVL605: + 7442 .L459: +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7443 .loc 1 4282 5 is_stmt 1 view .LVU2479 +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7444 .loc 1 4284 5 view .LVU2480 + 7445 009a CB68 ldr r3, [r1, #12] + 7446 009c 4A68 ldr r2, [r1, #4] + 7447 .LVL606: +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7448 .loc 1 4284 5 is_stmt 0 view .LVU2481 + 7449 009e 0968 ldr r1, [r1] + 7450 .LVL607: +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7451 .loc 1 4284 5 view .LVU2482 + 7452 00a0 0068 ldr r0, [r0] + 7453 .LVL608: +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICPolarity, + 7454 .loc 1 4284 5 view .LVU2483 + 7455 00a2 FFF7FEFF bl TIM_TI4_SetConfig + 7456 .LVL609: +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7457 .loc 1 4290 5 is_stmt 1 view .LVU2484 +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7458 .loc 1 4290 9 is_stmt 0 view .LVU2485 + 7459 00a6 2268 ldr r2, [r4] +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7460 .loc 1 4290 19 view .LVU2486 + ARM GAS /tmp/cc0wMqvE.s page 305 + + + 7461 00a8 D369 ldr r3, [r2, #28] +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7462 .loc 1 4290 27 view .LVU2487 + 7463 00aa 23F44063 bic r3, r3, #3072 + 7464 00ae D361 str r3, [r2, #28] +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7465 .loc 1 4293 5 is_stmt 1 view .LVU2488 +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7466 .loc 1 4293 9 is_stmt 0 view .LVU2489 + 7467 00b0 2268 ldr r2, [r4] +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7468 .loc 1 4293 19 view .LVU2490 + 7469 00b2 D369 ldr r3, [r2, #28] +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7470 .loc 1 4293 38 view .LVU2491 + 7471 00b4 A968 ldr r1, [r5, #8] +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7472 .loc 1 4293 27 view .LVU2492 + 7473 00b6 43EA0123 orr r3, r3, r1, lsl #8 + 7474 00ba D361 str r3, [r2, #28] +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7475 .loc 1 4221 21 view .LVU2493 + 7476 00bc 0020 movs r0, #0 + 7477 00be B1E7 b .L450 + 7478 .LVL610: + 7479 .L453: +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7480 .loc 1 4231 3 view .LVU2494 + 7481 00c0 0220 movs r0, #2 + 7482 .LVL611: +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7483 .loc 1 4231 3 view .LVU2495 + 7484 00c2 B2E7 b .L448 + 7485 .cfi_endproc + 7486 .LFE389: + 7488 .section .text.HAL_TIM_OnePulse_ConfigChannel,"ax",%progbits + 7489 .align 1 + 7490 .global HAL_TIM_OnePulse_ConfigChannel + 7491 .syntax unified + 7492 .thumb + 7493 .thumb_func + 7495 HAL_TIM_OnePulse_ConfigChannel: + 7496 .LVL612: + 7497 .LFB391: +4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 7498 .loc 1 4470 1 is_stmt 1 view -0 + 7499 .cfi_startproc + 7500 @ args = 0, pretend = 0, frame = 32 + 7501 @ frame_needed = 0, uses_anonymous_args = 0 +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_OC_InitTypeDef temp1; + 7502 .loc 1 4471 3 view .LVU2497 +4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7503 .loc 1 4472 3 view .LVU2498 +4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_OPM_CHANNELS(InputChannel)); + 7504 .loc 1 4475 3 view .LVU2499 +4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7505 .loc 1 4476 3 view .LVU2500 + ARM GAS /tmp/cc0wMqvE.s page 306 + + +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7506 .loc 1 4478 3 view .LVU2501 +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7507 .loc 1 4478 6 is_stmt 0 view .LVU2502 + 7508 0000 9A42 cmp r2, r3 + 7509 0002 7ED0 beq .L468 +4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 7510 .loc 1 4470 1 view .LVU2503 + 7511 0004 70B5 push {r4, r5, r6, lr} + 7512 .LCFI68: + 7513 .cfi_def_cfa_offset 16 + 7514 .cfi_offset 4, -16 + 7515 .cfi_offset 5, -12 + 7516 .cfi_offset 6, -8 + 7517 .cfi_offset 14, -4 + 7518 0006 88B0 sub sp, sp, #32 + 7519 .LCFI69: + 7520 .cfi_def_cfa_offset 48 + 7521 0008 0446 mov r4, r0 + 7522 000a 0D46 mov r5, r1 + 7523 000c 1E46 mov r6, r3 +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7524 .loc 1 4481 5 is_stmt 1 view .LVU2504 +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7525 .loc 1 4481 5 view .LVU2505 + 7526 000e 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 7527 .LVL613: +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7528 .loc 1 4481 5 is_stmt 0 view .LVU2506 + 7529 0012 012B cmp r3, #1 + 7530 0014 77D0 beq .L469 +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7531 .loc 1 4481 5 is_stmt 1 discriminator 2 view .LVU2507 + 7532 0016 0123 movs r3, #1 + 7533 0018 80F83C30 strb r3, [r0, #60] +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7534 .loc 1 4481 5 discriminator 2 view .LVU2508 +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7535 .loc 1 4483 5 discriminator 2 view .LVU2509 +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7536 .loc 1 4483 17 is_stmt 0 discriminator 2 view .LVU2510 + 7537 001c 0223 movs r3, #2 + 7538 001e 80F83D30 strb r3, [r0, #61] +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.Pulse = sConfig->Pulse; + 7539 .loc 1 4486 5 is_stmt 1 discriminator 2 view .LVU2511 +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.Pulse = sConfig->Pulse; + 7540 .loc 1 4486 27 is_stmt 0 discriminator 2 view .LVU2512 + 7541 0022 0B68 ldr r3, [r1] +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.Pulse = sConfig->Pulse; + 7542 .loc 1 4486 18 discriminator 2 view .LVU2513 + 7543 0024 0193 str r3, [sp, #4] +4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCPolarity = sConfig->OCPolarity; + 7544 .loc 1 4487 5 is_stmt 1 discriminator 2 view .LVU2514 +4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCPolarity = sConfig->OCPolarity; + 7545 .loc 1 4487 26 is_stmt 0 discriminator 2 view .LVU2515 + 7546 0026 4B68 ldr r3, [r1, #4] +4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCPolarity = sConfig->OCPolarity; + ARM GAS /tmp/cc0wMqvE.s page 307 + + + 7547 .loc 1 4487 17 discriminator 2 view .LVU2516 + 7548 0028 0293 str r3, [sp, #8] +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNPolarity = sConfig->OCNPolarity; + 7549 .loc 1 4488 5 is_stmt 1 discriminator 2 view .LVU2517 +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNPolarity = sConfig->OCNPolarity; + 7550 .loc 1 4488 31 is_stmt 0 discriminator 2 view .LVU2518 + 7551 002a 8B68 ldr r3, [r1, #8] +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNPolarity = sConfig->OCNPolarity; + 7552 .loc 1 4488 22 discriminator 2 view .LVU2519 + 7553 002c 0393 str r3, [sp, #12] +4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCIdleState = sConfig->OCIdleState; + 7554 .loc 1 4489 5 is_stmt 1 discriminator 2 view .LVU2520 +4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCIdleState = sConfig->OCIdleState; + 7555 .loc 1 4489 32 is_stmt 0 discriminator 2 view .LVU2521 + 7556 002e CB68 ldr r3, [r1, #12] +4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCIdleState = sConfig->OCIdleState; + 7557 .loc 1 4489 23 discriminator 2 view .LVU2522 + 7558 0030 0493 str r3, [sp, #16] +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNIdleState = sConfig->OCNIdleState; + 7559 .loc 1 4490 5 is_stmt 1 discriminator 2 view .LVU2523 +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNIdleState = sConfig->OCNIdleState; + 7560 .loc 1 4490 32 is_stmt 0 discriminator 2 view .LVU2524 + 7561 0032 0B69 ldr r3, [r1, #16] +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** temp1.OCNIdleState = sConfig->OCNIdleState; + 7562 .loc 1 4490 23 discriminator 2 view .LVU2525 + 7563 0034 0693 str r3, [sp, #24] +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7564 .loc 1 4491 5 is_stmt 1 discriminator 2 view .LVU2526 +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7565 .loc 1 4491 33 is_stmt 0 discriminator 2 view .LVU2527 + 7566 0036 4B69 ldr r3, [r1, #20] +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7567 .loc 1 4491 24 discriminator 2 view .LVU2528 + 7568 0038 0793 str r3, [sp, #28] +4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7569 .loc 1 4493 5 is_stmt 1 discriminator 2 view .LVU2529 + 7570 003a 52B1 cbz r2, .L462 +4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7571 .loc 1 4493 5 is_stmt 0 view .LVU2530 + 7572 003c 042A cmp r2, #4 + 7573 003e 11D0 beq .L463 + 7574 0040 0120 movs r0, #1 + 7575 .LVL614: + 7576 .L464: +4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7577 .loc 1 4566 5 is_stmt 1 view .LVU2531 +4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7578 .loc 1 4566 17 is_stmt 0 view .LVU2532 + 7579 0042 0123 movs r3, #1 + 7580 0044 84F83D30 strb r3, [r4, #61] +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7581 .loc 1 4568 5 is_stmt 1 view .LVU2533 +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7582 .loc 1 4568 5 view .LVU2534 + 7583 0048 0023 movs r3, #0 + 7584 004a 84F83C30 strb r3, [r4, #60] +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 308 + + + 7585 .loc 1 4568 5 view .LVU2535 +4570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7586 .loc 1 4570 5 view .LVU2536 + 7587 .LVL615: + 7588 .L461: +4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7589 .loc 1 4576 1 is_stmt 0 view .LVU2537 + 7590 004e 08B0 add sp, sp, #32 + 7591 .LCFI70: + 7592 .cfi_remember_state + 7593 .cfi_def_cfa_offset 16 + 7594 @ sp needed + 7595 0050 70BD pop {r4, r5, r6, pc} + 7596 .LVL616: + 7597 .L462: + 7598 .LCFI71: + 7599 .cfi_restore_state +4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7600 .loc 1 4497 9 is_stmt 1 view .LVU2538 +4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7601 .loc 1 4499 9 view .LVU2539 + 7602 0052 01A9 add r1, sp, #4 + 7603 .LVL617: +4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7604 .loc 1 4499 9 is_stmt 0 view .LVU2540 + 7605 0054 0068 ldr r0, [r0] + 7606 .LVL618: +4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7607 .loc 1 4499 9 view .LVU2541 + 7608 0056 FFF7FEFF bl TIM_OC1_SetConfig + 7609 .LVL619: +4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7610 .loc 1 4500 9 is_stmt 1 view .LVU2542 +4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7611 .loc 1 4516 5 view .LVU2543 + 7612 .L465: +4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7613 .loc 1 4518 7 view .LVU2544 + 7614 005a 46B1 cbz r6, .L466 + 7615 005c 042E cmp r6, #4 + 7616 005e 2BD0 beq .L467 + 7617 0060 0120 movs r0, #1 + 7618 0062 EEE7 b .L464 + 7619 .LVL620: + 7620 .L463: +4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7621 .loc 1 4505 9 view .LVU2545 +4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7622 .loc 1 4507 9 view .LVU2546 + 7623 0064 01A9 add r1, sp, #4 + 7624 .LVL621: +4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7625 .loc 1 4507 9 is_stmt 0 view .LVU2547 + 7626 0066 0068 ldr r0, [r0] + 7627 .LVL622: +4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7628 .loc 1 4507 9 view .LVU2548 + ARM GAS /tmp/cc0wMqvE.s page 309 + + + 7629 0068 FFF7FEFF bl TIM_OC2_SetConfig + 7630 .LVL623: +4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7631 .loc 1 4508 9 is_stmt 1 view .LVU2549 +4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7632 .loc 1 4516 5 view .LVU2550 + 7633 006c F5E7 b .L465 + 7634 .L466: +4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7635 .loc 1 4522 11 view .LVU2551 +4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, sConfig->ICFilter); + 7636 .loc 1 4524 11 view .LVU2552 + 7637 006e 2B6A ldr r3, [r5, #32] + 7638 0070 EA69 ldr r2, [r5, #28] + 7639 0072 A969 ldr r1, [r5, #24] + 7640 0074 2068 ldr r0, [r4] + 7641 0076 FFF7FEFF bl TIM_TI1_SetConfig + 7642 .LVL624: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7643 .loc 1 4528 11 view .LVU2553 +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7644 .loc 1 4528 15 is_stmt 0 view .LVU2554 + 7645 007a 2268 ldr r2, [r4] +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7646 .loc 1 4528 25 view .LVU2555 + 7647 007c 9369 ldr r3, [r2, #24] +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7648 .loc 1 4528 33 view .LVU2556 + 7649 007e 23F00C03 bic r3, r3, #12 + 7650 0082 9361 str r3, [r2, #24] +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI1FP1; + 7651 .loc 1 4531 11 is_stmt 1 view .LVU2557 +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI1FP1; + 7652 .loc 1 4531 15 is_stmt 0 view .LVU2558 + 7653 0084 2268 ldr r2, [r4] +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI1FP1; + 7654 .loc 1 4531 25 view .LVU2559 + 7655 0086 9368 ldr r3, [r2, #8] +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI1FP1; + 7656 .loc 1 4531 32 view .LVU2560 + 7657 0088 23F44013 bic r3, r3, #3145728 + 7658 008c 23F07003 bic r3, r3, #112 + 7659 0090 9360 str r3, [r2, #8] +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7660 .loc 1 4532 11 is_stmt 1 view .LVU2561 +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7661 .loc 1 4532 15 is_stmt 0 view .LVU2562 + 7662 0092 2268 ldr r2, [r4] +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7663 .loc 1 4532 25 view .LVU2563 + 7664 0094 9368 ldr r3, [r2, #8] +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7665 .loc 1 4532 32 view .LVU2564 + 7666 0096 43F05003 orr r3, r3, #80 + 7667 009a 9360 str r3, [r2, #8] +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7668 .loc 1 4535 11 is_stmt 1 view .LVU2565 + ARM GAS /tmp/cc0wMqvE.s page 310 + + +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7669 .loc 1 4535 15 is_stmt 0 view .LVU2566 + 7670 009c 2268 ldr r2, [r4] +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7671 .loc 1 4535 25 view .LVU2567 + 7672 009e 9368 ldr r3, [r2, #8] +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7673 .loc 1 4535 32 view .LVU2568 + 7674 00a0 23F48033 bic r3, r3, #65536 + 7675 00a4 23F00703 bic r3, r3, #7 + 7676 00a8 9360 str r3, [r2, #8] +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7677 .loc 1 4536 11 is_stmt 1 view .LVU2569 +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7678 .loc 1 4536 15 is_stmt 0 view .LVU2570 + 7679 00aa 2268 ldr r2, [r4] +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7680 .loc 1 4536 25 view .LVU2571 + 7681 00ac 9368 ldr r3, [r2, #8] +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7682 .loc 1 4536 32 view .LVU2572 + 7683 00ae 43F00603 orr r3, r3, #6 + 7684 00b2 9360 str r3, [r2, #8] +4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7685 .loc 1 4537 11 is_stmt 1 view .LVU2573 + 7686 00b4 0020 movs r0, #0 + 7687 00b6 C4E7 b .L464 + 7688 .L467: +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7689 .loc 1 4542 11 view .LVU2574 +4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sConfig->ICSelection, sConfig->ICFilter); + 7690 .loc 1 4544 11 view .LVU2575 + 7691 00b8 2B6A ldr r3, [r5, #32] + 7692 00ba EA69 ldr r2, [r5, #28] + 7693 00bc A969 ldr r1, [r5, #24] + 7694 00be 2068 ldr r0, [r4] + 7695 00c0 FFF7FEFF bl TIM_TI2_SetConfig + 7696 .LVL625: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7697 .loc 1 4548 11 view .LVU2576 +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7698 .loc 1 4548 15 is_stmt 0 view .LVU2577 + 7699 00c4 2268 ldr r2, [r4] +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7700 .loc 1 4548 25 view .LVU2578 + 7701 00c6 9369 ldr r3, [r2, #24] +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7702 .loc 1 4548 33 view .LVU2579 + 7703 00c8 23F44063 bic r3, r3, #3072 + 7704 00cc 9361 str r3, [r2, #24] +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI2FP2; + 7705 .loc 1 4551 11 is_stmt 1 view .LVU2580 +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI2FP2; + 7706 .loc 1 4551 15 is_stmt 0 view .LVU2581 + 7707 00ce 2268 ldr r2, [r4] +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI2FP2; + 7708 .loc 1 4551 25 view .LVU2582 + ARM GAS /tmp/cc0wMqvE.s page 311 + + + 7709 00d0 9368 ldr r3, [r2, #8] +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_TS_TI2FP2; + 7710 .loc 1 4551 32 view .LVU2583 + 7711 00d2 23F44013 bic r3, r3, #3145728 + 7712 00d6 23F07003 bic r3, r3, #112 + 7713 00da 9360 str r3, [r2, #8] +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7714 .loc 1 4552 11 is_stmt 1 view .LVU2584 +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7715 .loc 1 4552 15 is_stmt 0 view .LVU2585 + 7716 00dc 2268 ldr r2, [r4] +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7717 .loc 1 4552 25 view .LVU2586 + 7718 00de 9368 ldr r3, [r2, #8] +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7719 .loc 1 4552 32 view .LVU2587 + 7720 00e0 43F06003 orr r3, r3, #96 + 7721 00e4 9360 str r3, [r2, #8] +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7722 .loc 1 4555 11 is_stmt 1 view .LVU2588 +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7723 .loc 1 4555 15 is_stmt 0 view .LVU2589 + 7724 00e6 2268 ldr r2, [r4] +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7725 .loc 1 4555 25 view .LVU2590 + 7726 00e8 9368 ldr r3, [r2, #8] +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER; + 7727 .loc 1 4555 32 view .LVU2591 + 7728 00ea 23F48033 bic r3, r3, #65536 + 7729 00ee 23F00703 bic r3, r3, #7 + 7730 00f2 9360 str r3, [r2, #8] +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7731 .loc 1 4556 11 is_stmt 1 view .LVU2592 +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7732 .loc 1 4556 15 is_stmt 0 view .LVU2593 + 7733 00f4 2268 ldr r2, [r4] +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7734 .loc 1 4556 25 view .LVU2594 + 7735 00f6 9368 ldr r3, [r2, #8] +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 7736 .loc 1 4556 32 view .LVU2595 + 7737 00f8 43F00603 orr r3, r3, #6 + 7738 00fc 9360 str r3, [r2, #8] +4557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7739 .loc 1 4557 11 is_stmt 1 view .LVU2596 + 7740 00fe 0020 movs r0, #0 + 7741 0100 9FE7 b .L464 + 7742 .LVL626: + 7743 .L468: + 7744 .LCFI72: + 7745 .cfi_def_cfa_offset 0 + 7746 .cfi_restore 4 + 7747 .cfi_restore 5 + 7748 .cfi_restore 6 + 7749 .cfi_restore 14 +4574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7750 .loc 1 4574 12 is_stmt 0 view .LVU2597 + ARM GAS /tmp/cc0wMqvE.s page 312 + + + 7751 0102 0120 movs r0, #1 + 7752 .LVL627: +4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7753 .loc 1 4576 1 view .LVU2598 + 7754 0104 7047 bx lr + 7755 .LVL628: + 7756 .L469: + 7757 .LCFI73: + 7758 .cfi_def_cfa_offset 48 + 7759 .cfi_offset 4, -16 + 7760 .cfi_offset 5, -12 + 7761 .cfi_offset 6, -8 + 7762 .cfi_offset 14, -4 +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7763 .loc 1 4481 5 view .LVU2599 + 7764 0106 0220 movs r0, #2 + 7765 .LVL629: +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7766 .loc 1 4481 5 view .LVU2600 + 7767 0108 A1E7 b .L461 + 7768 .cfi_endproc + 7769 .LFE391: + 7771 .section .text.TIM_ETR_SetConfig,"ax",%progbits + 7772 .align 1 + 7773 .global TIM_ETR_SetConfig + 7774 .syntax unified + 7775 .thumb + 7776 .thumb_func + 7778 TIM_ETR_SetConfig: + 7779 .LVL630: + 7780 .LFB448: +8000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +8001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Configures the TIMx External Trigger (ETR). +8002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +8003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ExtTRGPrescaler The external Trigger Prescaler. +8004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +8005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ETRPRESCALER_DIV1: ETRP Prescaler OFF. +8006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ETRPRESCALER_DIV2: ETRP frequency divided by 2. +8007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ETRPRESCALER_DIV4: ETRP frequency divided by 4. +8008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ETRPRESCALER_DIV8: ETRP frequency divided by 8. +8009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIM_ExtTRGPolarity The external Trigger Polarity. +8010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +8011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ETRPOLARITY_INVERTED: active low or falling edge active. +8012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_ETRPOLARITY_NONINVERTED: active high or rising edge active. +8013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param ExtTRGFilter External Trigger Filter. +8014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter must be a value between 0x00 and 0x0F +8015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +8016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +8017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, +8018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter) +8019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7781 .loc 1 8019 1 is_stmt 1 view -0 + 7782 .cfi_startproc + 7783 @ args = 0, pretend = 0, frame = 0 + 7784 @ frame_needed = 0, uses_anonymous_args = 0 + 7785 @ link register save eliminated. + 7786 .loc 1 8019 1 is_stmt 0 view .LVU2602 + ARM GAS /tmp/cc0wMqvE.s page 313 + + + 7787 0000 10B4 push {r4} + 7788 .LCFI74: + 7789 .cfi_def_cfa_offset 4 + 7790 .cfi_offset 4, -4 +8020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 7791 .loc 1 8020 3 is_stmt 1 view .LVU2603 +8021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr = TIMx->SMCR; + 7792 .loc 1 8022 3 view .LVU2604 + 7793 .loc 1 8022 11 is_stmt 0 view .LVU2605 + 7794 0002 8468 ldr r4, [r0, #8] + 7795 .LVL631: +8023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the ETR Bits */ +8025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 7796 .loc 1 8025 3 is_stmt 1 view .LVU2606 + 7797 .loc 1 8025 11 is_stmt 0 view .LVU2607 + 7798 0004 24F47F4C bic ip, r4, #65280 + 7799 .LVL632: +8026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Prescaler, the Filter value and the Polarity */ +8028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U))); + 7800 .loc 1 8028 3 is_stmt 1 view .LVU2608 + 7801 .loc 1 8028 67 is_stmt 0 view .LVU2609 + 7802 0008 42EA0322 orr r2, r2, r3, lsl #8 + 7803 .LVL633: + 7804 .loc 1 8028 45 view .LVU2610 + 7805 000c 0A43 orrs r2, r2, r1 + 7806 .loc 1 8028 11 view .LVU2611 + 7807 000e 42EA0C02 orr r2, r2, ip + 7808 .LVL634: +8029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ +8031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->SMCR = tmpsmcr; + 7809 .loc 1 8031 3 is_stmt 1 view .LVU2612 + 7810 .loc 1 8031 14 is_stmt 0 view .LVU2613 + 7811 0012 8260 str r2, [r0, #8] +8032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7812 .loc 1 8032 1 view .LVU2614 + 7813 0014 5DF8044B ldr r4, [sp], #4 + 7814 .LCFI75: + 7815 .cfi_restore 4 + 7816 .cfi_def_cfa_offset 0 + 7817 0018 7047 bx lr + 7818 .cfi_endproc + 7819 .LFE448: + 7821 .section .text.HAL_TIM_ConfigOCrefClear,"ax",%progbits + 7822 .align 1 + 7823 .global HAL_TIM_ConfigOCrefClear + 7824 .syntax unified + 7825 .thumb + 7826 .thumb_func + 7828 HAL_TIM_ConfigOCrefClear: + 7829 .LVL635: + 7830 .LFB399: +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 7831 .loc 1 5350 1 is_stmt 1 view -0 + ARM GAS /tmp/cc0wMqvE.s page 314 + + + 7832 .cfi_startproc + 7833 @ args = 0, pretend = 0, frame = 0 + 7834 @ frame_needed = 0, uses_anonymous_args = 0 +5351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7835 .loc 1 5351 3 view .LVU2616 +5354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_SOURCE(sClearInputConfig->ClearInputSource)); + 7836 .loc 1 5354 3 view .LVU2617 +5355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7837 .loc 1 5355 3 view .LVU2618 +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7838 .loc 1 5358 3 view .LVU2619 +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7839 .loc 1 5358 3 view .LVU2620 + 7840 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 7841 0004 012B cmp r3, #1 + 7842 0006 00F02881 beq .L501 +5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 7843 .loc 1 5350 1 is_stmt 0 discriminator 2 view .LVU2621 + 7844 000a 70B5 push {r4, r5, r6, lr} + 7845 .LCFI76: + 7846 .cfi_def_cfa_offset 16 + 7847 .cfi_offset 4, -16 + 7848 .cfi_offset 5, -12 + 7849 .cfi_offset 6, -8 + 7850 .cfi_offset 14, -4 + 7851 000c 0446 mov r4, r0 + 7852 000e 0D46 mov r5, r1 + 7853 0010 1646 mov r6, r2 +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7854 .loc 1 5358 3 is_stmt 1 discriminator 2 view .LVU2622 + 7855 0012 0123 movs r3, #1 + 7856 0014 80F83C30 strb r3, [r0, #60] +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7857 .loc 1 5358 3 discriminator 2 view .LVU2623 +5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7858 .loc 1 5360 3 discriminator 2 view .LVU2624 +5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7859 .loc 1 5360 15 is_stmt 0 discriminator 2 view .LVU2625 + 7860 0018 0223 movs r3, #2 + 7861 001a 80F83D30 strb r3, [r0, #61] +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7862 .loc 1 5362 3 is_stmt 1 discriminator 2 view .LVU2626 +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7863 .loc 1 5362 28 is_stmt 0 discriminator 2 view .LVU2627 + 7864 001e 4B68 ldr r3, [r1, #4] +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7865 .loc 1 5362 3 discriminator 2 view .LVU2628 + 7866 0020 B3F5003F cmp r3, #131072 + 7867 0024 5BD0 beq .L478 +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7868 .loc 1 5362 3 view .LVU2629 + 7869 0026 0ED8 bhi .L479 + 7870 0028 012B cmp r3, #1 + 7871 002a 7FD0 beq .L480 + 7872 002c B3F5803F cmp r3, #65536 + 7873 0030 55D0 beq .L478 + 7874 0032 002B cmp r3, #0 + ARM GAS /tmp/cc0wMqvE.s page 315 + + + 7875 0034 53D0 beq .L478 + 7876 0036 0120 movs r0, #1 + 7877 .LVL636: + 7878 .L481: +5535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7879 .loc 1 5535 3 is_stmt 1 view .LVU2630 +5535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7880 .loc 1 5535 15 is_stmt 0 view .LVU2631 + 7881 0038 0123 movs r3, #1 + 7882 003a 84F83D30 strb r3, [r4, #61] +5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7883 .loc 1 5537 3 is_stmt 1 view .LVU2632 +5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7884 .loc 1 5537 3 view .LVU2633 + 7885 003e 0023 movs r3, #0 + 7886 0040 84F83C30 strb r3, [r4, #60] +5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7887 .loc 1 5537 3 view .LVU2634 +5539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7888 .loc 1 5539 3 view .LVU2635 + 7889 .L477: +5540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7890 .loc 1 5540 1 is_stmt 0 view .LVU2636 + 7891 0044 70BD pop {r4, r5, r6, pc} + 7892 .LVL637: + 7893 .L479: +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7894 .loc 1 5362 3 view .LVU2637 + 7895 0046 B3F5403F cmp r3, #196608 + 7896 004a 48D0 beq .L478 + 7897 004c B3F1FF3F cmp r3, #-1 + 7898 0050 40F0FF80 bne .L502 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7899 .loc 1 5367 7 is_stmt 1 view .LVU2638 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7900 .loc 1 5367 11 is_stmt 0 view .LVU2639 + 7901 0054 0368 ldr r3, [r0] +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7902 .loc 1 5367 10 view .LVU2640 + 7903 0056 824A ldr r2, .L508 + 7904 .LVL638: +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7905 .loc 1 5367 10 view .LVU2641 + 7906 0058 9342 cmp r3, r2 + 7907 005a 1BD0 beq .L482 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7908 .loc 1 5367 11 discriminator 1 view .LVU2642 + 7909 005c B3F1804F cmp r3, #1073741824 + 7910 0060 18D0 beq .L482 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7911 .loc 1 5367 11 discriminator 2 view .LVU2643 + 7912 0062 A2F59432 sub r2, r2, #75776 + 7913 0066 9342 cmp r3, r2 + 7914 0068 14D0 beq .L482 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7915 .loc 1 5367 11 discriminator 3 view .LVU2644 + 7916 006a 02F59832 add r2, r2, #77824 + ARM GAS /tmp/cc0wMqvE.s page 316 + + + 7917 006e 9342 cmp r3, r2 + 7918 0070 10D0 beq .L482 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7919 .loc 1 5367 11 discriminator 4 view .LVU2645 + 7920 0072 02F54062 add r2, r2, #3072 + 7921 0076 9342 cmp r3, r2 + 7922 0078 0CD0 beq .L482 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7923 .loc 1 5367 11 discriminator 5 view .LVU2646 + 7924 007a 02F58062 add r2, r2, #1024 + 7925 007e 9342 cmp r3, r2 + 7926 0080 08D0 beq .L482 +5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7927 .loc 1 5367 11 discriminator 6 view .LVU2647 + 7928 0082 02F58062 add r2, r2, #1024 + 7929 0086 9342 cmp r3, r2 + 7930 0088 04D0 beq .L482 +5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7931 .loc 1 5376 9 is_stmt 1 view .LVU2648 + 7932 008a 9A68 ldr r2, [r3, #8] + 7933 008c 22F47F42 bic r2, r2, #65280 + 7934 0090 9A60 str r2, [r3, #8] +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7935 .loc 1 5442 3 view .LVU2649 + 7936 0092 0AE0 b .L484 + 7937 .L482: +5369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 7938 .loc 1 5369 9 view .LVU2650 + 7939 0094 9A68 ldr r2, [r3, #8] + 7940 0096 22F47F42 bic r2, r2, #65280 + 7941 009a 22F00802 bic r2, r2, #8 + 7942 009e 9A60 str r2, [r3, #8] +5372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 7943 .loc 1 5372 9 view .LVU2651 + 7944 00a0 2268 ldr r2, [r4] + 7945 00a2 536E ldr r3, [r2, #100] + 7946 00a4 23F4E023 bic r3, r3, #458752 + 7947 00a8 5366 str r3, [r2, #100] +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7948 .loc 1 5442 3 view .LVU2652 + 7949 .LVL639: + 7950 .L484: +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7951 .loc 1 5444 5 view .LVU2653 + 7952 00aa 142E cmp r6, #20 + 7953 00ac 00F2D380 bhi .L503 + 7954 00b0 DFE816F0 tbh [pc, r6, lsl #1] + 7955 .L489: + 7956 00b4 6F00 .2byte (.L494-.L489)/2 + 7957 00b6 D100 .2byte (.L503-.L489)/2 + 7958 00b8 D100 .2byte (.L503-.L489)/2 + 7959 00ba D100 .2byte (.L503-.L489)/2 + 7960 00bc 7F00 .2byte (.L493-.L489)/2 + 7961 00be D100 .2byte (.L503-.L489)/2 + 7962 00c0 D100 .2byte (.L503-.L489)/2 + 7963 00c2 D100 .2byte (.L503-.L489)/2 + 7964 00c4 8F00 .2byte (.L492-.L489)/2 + ARM GAS /tmp/cc0wMqvE.s page 317 + + + 7965 00c6 D100 .2byte (.L503-.L489)/2 + 7966 00c8 D100 .2byte (.L503-.L489)/2 + 7967 00ca D100 .2byte (.L503-.L489)/2 + 7968 00cc 9F00 .2byte (.L491-.L489)/2 + 7969 00ce D100 .2byte (.L503-.L489)/2 + 7970 00d0 D100 .2byte (.L503-.L489)/2 + 7971 00d2 D100 .2byte (.L503-.L489)/2 + 7972 00d4 AF00 .2byte (.L490-.L489)/2 + 7973 00d6 D100 .2byte (.L503-.L489)/2 + 7974 00d8 D100 .2byte (.L503-.L489)/2 + 7975 00da D100 .2byte (.L503-.L489)/2 + 7976 00dc BF00 .2byte (.L488-.L489)/2 + 7977 .LVL640: + 7978 .p2align 1 + 7979 .L478: +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7980 .loc 1 5395 7 view .LVU2654 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7981 .loc 1 5395 11 is_stmt 0 view .LVU2655 + 7982 00de 2368 ldr r3, [r4] +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7983 .loc 1 5395 10 view .LVU2656 + 7984 00e0 5F4A ldr r2, .L508 + 7985 .LVL641: +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7986 .loc 1 5395 10 view .LVU2657 + 7987 00e2 9342 cmp r3, r2 + 7988 00e4 16D0 beq .L485 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7989 .loc 1 5395 11 discriminator 1 view .LVU2658 + 7990 00e6 B3F1804F cmp r3, #1073741824 + 7991 00ea 13D0 beq .L485 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7992 .loc 1 5395 11 discriminator 2 view .LVU2659 + 7993 00ec A2F59432 sub r2, r2, #75776 + 7994 00f0 9342 cmp r3, r2 + 7995 00f2 0FD0 beq .L485 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 7996 .loc 1 5395 11 discriminator 3 view .LVU2660 + 7997 00f4 02F59832 add r2, r2, #77824 + 7998 00f8 9342 cmp r3, r2 + 7999 00fa 0BD0 beq .L485 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8000 .loc 1 5395 11 discriminator 4 view .LVU2661 + 8001 00fc 02F54062 add r2, r2, #3072 + 8002 0100 9342 cmp r3, r2 + 8003 0102 07D0 beq .L485 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8004 .loc 1 5395 11 discriminator 5 view .LVU2662 + 8005 0104 02F58062 add r2, r2, #1024 + 8006 0108 9342 cmp r3, r2 + 8007 010a 03D0 beq .L485 +5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8008 .loc 1 5395 11 discriminator 6 view .LVU2663 + 8009 010c 02F58062 add r2, r2, #1024 + 8010 0110 9342 cmp r3, r2 + 8011 0112 CAD1 bne .L484 + ARM GAS /tmp/cc0wMqvE.s page 318 + + + 8012 .L485: +5398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8013 .loc 1 5398 9 is_stmt 1 view .LVU2664 + 8014 0114 9A68 ldr r2, [r3, #8] + 8015 0116 22F00802 bic r2, r2, #8 + 8016 011a 9A60 str r2, [r3, #8] +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8017 .loc 1 5401 9 view .LVU2665 + 8018 011c 2268 ldr r2, [r4] + 8019 011e 536E ldr r3, [r2, #100] + 8020 0120 23F4E023 bic r3, r3, #458752 + 8021 0124 6968 ldr r1, [r5, #4] + 8022 .LVL642: +5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8023 .loc 1 5401 9 is_stmt 0 view .LVU2666 + 8024 0126 0B43 orrs r3, r3, r1 + 8025 0128 5366 str r3, [r2, #100] +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8026 .loc 1 5442 3 is_stmt 1 view .LVU2667 + 8027 012a BEE7 b .L484 + 8028 .LVL643: + 8029 .L480: +5409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_PRESCALER(sClearInputConfig->ClearInputPrescaler)); + 8030 .loc 1 5409 7 view .LVU2668 +5410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLEARINPUT_FILTER(sClearInputConfig->ClearInputFilter)); + 8031 .loc 1 5410 7 view .LVU2669 +5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8032 .loc 1 5411 7 view .LVU2670 +5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8033 .loc 1 5414 7 view .LVU2671 +5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8034 .loc 1 5414 28 is_stmt 0 view .LVU2672 + 8035 012c C968 ldr r1, [r1, #12] + 8036 .LVL644: +5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8037 .loc 1 5414 10 view .LVU2673 + 8038 012e 31B1 cbz r1, .L486 +5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 8039 .loc 1 5416 9 is_stmt 1 view .LVU2674 +5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 8040 .loc 1 5416 21 is_stmt 0 view .LVU2675 + 8041 0130 0120 movs r0, #1 + 8042 .LVL645: +5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 8043 .loc 1 5416 21 view .LVU2676 + 8044 0132 84F83D00 strb r0, [r4, #61] +5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 8045 .loc 1 5417 9 is_stmt 1 view .LVU2677 +5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 8046 .loc 1 5417 9 view .LVU2678 + 8047 0136 0023 movs r3, #0 + 8048 0138 84F83C30 strb r3, [r4, #60] +5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 8049 .loc 1 5417 9 view .LVU2679 +5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8050 .loc 1 5418 9 view .LVU2680 +5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 319 + + + 8051 .loc 1 5418 16 is_stmt 0 view .LVU2681 + 8052 013c 82E7 b .L477 + 8053 .LVL646: + 8054 .L486: +5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClearInputConfig->ClearInputPrescaler, + 8055 .loc 1 5421 7 is_stmt 1 view .LVU2682 + 8056 013e 2B69 ldr r3, [r5, #16] + 8057 0140 AA68 ldr r2, [r5, #8] + 8058 .LVL647: +5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClearInputConfig->ClearInputPrescaler, + 8059 .loc 1 5421 7 is_stmt 0 view .LVU2683 + 8060 0142 0068 ldr r0, [r0] + 8061 .LVL648: +5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClearInputConfig->ClearInputPrescaler, + 8062 .loc 1 5421 7 view .LVU2684 + 8063 0144 FFF7FEFF bl TIM_ETR_SetConfig + 8064 .LVL649: +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8065 .loc 1 5426 7 is_stmt 1 view .LVU2685 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8066 .loc 1 5426 11 is_stmt 0 view .LVU2686 + 8067 0148 2368 ldr r3, [r4] +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8068 .loc 1 5426 10 view .LVU2687 + 8069 014a 454A ldr r2, .L508 + 8070 014c 9342 cmp r3, r2 + 8071 014e 16D0 beq .L487 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8072 .loc 1 5426 11 discriminator 1 view .LVU2688 + 8073 0150 B3F1804F cmp r3, #1073741824 + 8074 0154 13D0 beq .L487 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8075 .loc 1 5426 11 discriminator 2 view .LVU2689 + 8076 0156 A2F59432 sub r2, r2, #75776 + 8077 015a 9342 cmp r3, r2 + 8078 015c 0FD0 beq .L487 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8079 .loc 1 5426 11 discriminator 3 view .LVU2690 + 8080 015e 02F59832 add r2, r2, #77824 + 8081 0162 9342 cmp r3, r2 + 8082 0164 0BD0 beq .L487 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8083 .loc 1 5426 11 discriminator 4 view .LVU2691 + 8084 0166 02F54062 add r2, r2, #3072 + 8085 016a 9342 cmp r3, r2 + 8086 016c 07D0 beq .L487 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8087 .loc 1 5426 11 discriminator 5 view .LVU2692 + 8088 016e 02F58062 add r2, r2, #1024 + 8089 0172 9342 cmp r3, r2 + 8090 0174 03D0 beq .L487 +5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8091 .loc 1 5426 11 discriminator 6 view .LVU2693 + 8092 0176 02F58062 add r2, r2, #1024 + 8093 017a 9342 cmp r3, r2 + 8094 017c 95D1 bne .L484 + 8095 .L487: + ARM GAS /tmp/cc0wMqvE.s page 320 + + +5429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8096 .loc 1 5429 9 is_stmt 1 view .LVU2694 + 8097 017e 9A68 ldr r2, [r3, #8] + 8098 0180 42F00802 orr r2, r2, #8 + 8099 0184 9A60 str r2, [r3, #8] +5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8100 .loc 1 5432 9 view .LVU2695 + 8101 0186 2268 ldr r2, [r4] + 8102 0188 536E ldr r3, [r2, #100] + 8103 018a 23F4E023 bic r3, r3, #458752 + 8104 018e 5366 str r3, [r2, #100] +5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8105 .loc 1 5442 3 view .LVU2696 + 8106 0190 8BE7 b .L484 + 8107 .LVL650: + 8108 .L494: +5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8109 .loc 1 5448 9 view .LVU2697 +5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8110 .loc 1 5448 30 is_stmt 0 view .LVU2698 + 8111 0192 2B68 ldr r3, [r5] +5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8112 .loc 1 5448 12 view .LVU2699 + 8113 0194 33B1 cbz r3, .L495 +5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8114 .loc 1 5451 11 is_stmt 1 view .LVU2700 + 8115 0196 2268 ldr r2, [r4] + 8116 0198 9369 ldr r3, [r2, #24] + 8117 019a 43F08003 orr r3, r3, #128 + 8118 019e 9361 str r3, [r2, #24] + 8119 01a0 0020 movs r0, #0 + 8120 01a2 49E7 b .L481 + 8121 .L495: +5456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8122 .loc 1 5456 11 view .LVU2701 + 8123 01a4 2268 ldr r2, [r4] + 8124 01a6 9369 ldr r3, [r2, #24] + 8125 01a8 23F08003 bic r3, r3, #128 + 8126 01ac 9361 str r3, [r2, #24] + 8127 01ae 0020 movs r0, #0 + 8128 01b0 42E7 b .L481 + 8129 .L493: +5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8130 .loc 1 5462 9 view .LVU2702 +5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8131 .loc 1 5462 30 is_stmt 0 view .LVU2703 + 8132 01b2 2B68 ldr r3, [r5] +5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8133 .loc 1 5462 12 view .LVU2704 + 8134 01b4 33B1 cbz r3, .L496 +5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8135 .loc 1 5465 11 is_stmt 1 view .LVU2705 + 8136 01b6 2268 ldr r2, [r4] + 8137 01b8 9369 ldr r3, [r2, #24] + 8138 01ba 43F40043 orr r3, r3, #32768 + 8139 01be 9361 str r3, [r2, #24] + 8140 01c0 0020 movs r0, #0 + ARM GAS /tmp/cc0wMqvE.s page 321 + + + 8141 01c2 39E7 b .L481 + 8142 .L496: +5470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8143 .loc 1 5470 11 view .LVU2706 + 8144 01c4 2268 ldr r2, [r4] + 8145 01c6 9369 ldr r3, [r2, #24] + 8146 01c8 23F40043 bic r3, r3, #32768 + 8147 01cc 9361 str r3, [r2, #24] + 8148 01ce 0020 movs r0, #0 + 8149 01d0 32E7 b .L481 + 8150 .L492: +5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8151 .loc 1 5476 9 view .LVU2707 +5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8152 .loc 1 5476 30 is_stmt 0 view .LVU2708 + 8153 01d2 2B68 ldr r3, [r5] +5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8154 .loc 1 5476 12 view .LVU2709 + 8155 01d4 33B1 cbz r3, .L497 +5479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8156 .loc 1 5479 11 is_stmt 1 view .LVU2710 + 8157 01d6 2268 ldr r2, [r4] + 8158 01d8 D369 ldr r3, [r2, #28] + 8159 01da 43F08003 orr r3, r3, #128 + 8160 01de D361 str r3, [r2, #28] + 8161 01e0 0020 movs r0, #0 + 8162 01e2 29E7 b .L481 + 8163 .L497: +5484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8164 .loc 1 5484 11 view .LVU2711 + 8165 01e4 2268 ldr r2, [r4] + 8166 01e6 D369 ldr r3, [r2, #28] + 8167 01e8 23F08003 bic r3, r3, #128 + 8168 01ec D361 str r3, [r2, #28] + 8169 01ee 0020 movs r0, #0 + 8170 01f0 22E7 b .L481 + 8171 .L491: +5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8172 .loc 1 5490 9 view .LVU2712 +5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8173 .loc 1 5490 30 is_stmt 0 view .LVU2713 + 8174 01f2 2B68 ldr r3, [r5] +5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8175 .loc 1 5490 12 view .LVU2714 + 8176 01f4 33B1 cbz r3, .L498 +5493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8177 .loc 1 5493 11 is_stmt 1 view .LVU2715 + 8178 01f6 2268 ldr r2, [r4] + 8179 01f8 D369 ldr r3, [r2, #28] + 8180 01fa 43F40043 orr r3, r3, #32768 + 8181 01fe D361 str r3, [r2, #28] + 8182 0200 0020 movs r0, #0 + 8183 0202 19E7 b .L481 + 8184 .L498: +5498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8185 .loc 1 5498 11 view .LVU2716 + 8186 0204 2268 ldr r2, [r4] + ARM GAS /tmp/cc0wMqvE.s page 322 + + + 8187 0206 D369 ldr r3, [r2, #28] + 8188 0208 23F40043 bic r3, r3, #32768 + 8189 020c D361 str r3, [r2, #28] + 8190 020e 0020 movs r0, #0 + 8191 0210 12E7 b .L481 + 8192 .L490: +5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8193 .loc 1 5504 9 view .LVU2717 +5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8194 .loc 1 5504 30 is_stmt 0 view .LVU2718 + 8195 0212 2B68 ldr r3, [r5] +5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8196 .loc 1 5504 12 view .LVU2719 + 8197 0214 33B1 cbz r3, .L499 +5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8198 .loc 1 5507 11 is_stmt 1 view .LVU2720 + 8199 0216 2268 ldr r2, [r4] + 8200 0218 136D ldr r3, [r2, #80] + 8201 021a 43F08003 orr r3, r3, #128 + 8202 021e 1365 str r3, [r2, #80] + 8203 0220 0020 movs r0, #0 + 8204 0222 09E7 b .L481 + 8205 .L499: +5512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8206 .loc 1 5512 11 view .LVU2721 + 8207 0224 2268 ldr r2, [r4] + 8208 0226 136D ldr r3, [r2, #80] + 8209 0228 23F08003 bic r3, r3, #128 + 8210 022c 1365 str r3, [r2, #80] + 8211 022e 0020 movs r0, #0 + 8212 0230 02E7 b .L481 + 8213 .L488: +5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8214 .loc 1 5518 9 view .LVU2722 +5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8215 .loc 1 5518 30 is_stmt 0 view .LVU2723 + 8216 0232 2B68 ldr r3, [r5] +5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8217 .loc 1 5518 12 view .LVU2724 + 8218 0234 33B1 cbz r3, .L500 +5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8219 .loc 1 5521 11 is_stmt 1 view .LVU2725 + 8220 0236 2268 ldr r2, [r4] + 8221 0238 136D ldr r3, [r2, #80] + 8222 023a 43F40043 orr r3, r3, #32768 + 8223 023e 1365 str r3, [r2, #80] + 8224 0240 0020 movs r0, #0 + 8225 0242 F9E6 b .L481 + 8226 .L500: +5526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8227 .loc 1 5526 11 view .LVU2726 + 8228 0244 2268 ldr r2, [r4] + 8229 0246 136D ldr r3, [r2, #80] + 8230 0248 23F40043 bic r3, r3, #32768 + 8231 024c 1365 str r3, [r2, #80] + 8232 024e 0020 movs r0, #0 + 8233 0250 F2E6 b .L481 + ARM GAS /tmp/cc0wMqvE.s page 323 + + + 8234 .LVL651: + 8235 .L502: +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8236 .loc 1 5362 3 is_stmt 0 view .LVU2727 + 8237 0252 0120 movs r0, #1 + 8238 .LVL652: +5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8239 .loc 1 5362 3 view .LVU2728 + 8240 0254 F0E6 b .L481 + 8241 .LVL653: + 8242 .L503: +5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8243 .loc 1 5444 5 view .LVU2729 + 8244 0256 0020 movs r0, #0 + 8245 0258 EEE6 b .L481 + 8246 .LVL654: + 8247 .L501: + 8248 .LCFI77: + 8249 .cfi_def_cfa_offset 0 + 8250 .cfi_restore 4 + 8251 .cfi_restore 5 + 8252 .cfi_restore 6 + 8253 .cfi_restore 14 +5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8254 .loc 1 5358 3 view .LVU2730 + 8255 025a 0220 movs r0, #2 + 8256 .LVL655: +5540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8257 .loc 1 5540 1 view .LVU2731 + 8258 025c 7047 bx lr + 8259 .L509: + 8260 025e 00BF .align 2 + 8261 .L508: + 8262 0260 002C0140 .word 1073818624 + 8263 .cfi_endproc + 8264 .LFE399: + 8266 .section .text.HAL_TIM_ConfigClockSource,"ax",%progbits + 8267 .align 1 + 8268 .global HAL_TIM_ConfigClockSource + 8269 .syntax unified + 8270 .thumb + 8271 .thumb_func + 8273 HAL_TIM_ConfigClockSource: + 8274 .LVL656: + 8275 .LFB400: +5550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 8276 .loc 1 5550 1 is_stmt 1 view -0 + 8277 .cfi_startproc + 8278 @ args = 0, pretend = 0, frame = 0 + 8279 @ frame_needed = 0, uses_anonymous_args = 0 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8280 .loc 1 5551 3 view .LVU2733 +5552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8281 .loc 1 5552 3 view .LVU2734 +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8282 .loc 1 5555 3 view .LVU2735 +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 324 + + + 8283 .loc 1 5555 3 view .LVU2736 + 8284 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 8285 0004 012B cmp r3, #1 + 8286 0006 00F08F80 beq .L524 +5550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 8287 .loc 1 5550 1 is_stmt 0 discriminator 2 view .LVU2737 + 8288 000a 10B5 push {r4, lr} + 8289 .LCFI78: + 8290 .cfi_def_cfa_offset 8 + 8291 .cfi_offset 4, -8 + 8292 .cfi_offset 14, -4 + 8293 000c 0446 mov r4, r0 +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8294 .loc 1 5555 3 is_stmt 1 discriminator 2 view .LVU2738 + 8295 000e 0123 movs r3, #1 + 8296 0010 80F83C30 strb r3, [r0, #60] +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8297 .loc 1 5555 3 discriminator 2 view .LVU2739 +5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8298 .loc 1 5557 3 discriminator 2 view .LVU2740 +5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8299 .loc 1 5557 15 is_stmt 0 discriminator 2 view .LVU2741 + 8300 0014 0223 movs r3, #2 + 8301 0016 80F83D30 strb r3, [r0, #61] +5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8302 .loc 1 5560 3 is_stmt 1 discriminator 2 view .LVU2742 +5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + 8303 .loc 1 5563 3 discriminator 2 view .LVU2743 +5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + 8304 .loc 1 5563 17 is_stmt 0 discriminator 2 view .LVU2744 + 8305 001a 0268 ldr r2, [r0] +5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + 8306 .loc 1 5563 11 discriminator 2 view .LVU2745 + 8307 001c 9068 ldr r0, [r2, #8] + 8308 .LVL657: +5564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 8309 .loc 1 5564 3 is_stmt 1 discriminator 2 view .LVU2746 +5565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR = tmpsmcr; + 8310 .loc 1 5565 3 discriminator 2 view .LVU2747 +5565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->SMCR = tmpsmcr; + 8311 .loc 1 5565 11 is_stmt 0 discriminator 2 view .LVU2748 + 8312 001e 434B ldr r3, .L538 + 8313 0020 0340 ands r3, r3, r0 + 8314 .LVL658: +5566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8315 .loc 1 5566 3 is_stmt 1 discriminator 2 view .LVU2749 +5566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8316 .loc 1 5566 24 is_stmt 0 discriminator 2 view .LVU2750 + 8317 0022 9360 str r3, [r2, #8] +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8318 .loc 1 5568 3 is_stmt 1 discriminator 2 view .LVU2751 +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8319 .loc 1 5568 29 is_stmt 0 discriminator 2 view .LVU2752 + 8320 0024 0B68 ldr r3, [r1] + 8321 .LVL659: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8322 .loc 1 5568 3 discriminator 2 view .LVU2753 + ARM GAS /tmp/cc0wMqvE.s page 325 + + + 8323 0026 702B cmp r3, #112 + 8324 0028 55D0 beq .L512 +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8325 .loc 1 5568 3 view .LVU2754 + 8326 002a 31D8 bhi .L513 + 8327 002c 502B cmp r3, #80 + 8328 002e 6CD0 beq .L514 + 8329 0030 0CD9 bls .L531 + 8330 0032 602B cmp r3, #96 + 8331 0034 2AD1 bne .L532 +5639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8332 .loc 1 5639 7 is_stmt 1 view .LVU2755 +5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + 8333 .loc 1 5642 7 view .LVU2756 +5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8334 .loc 1 5643 7 view .LVU2757 +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8335 .loc 1 5645 7 view .LVU2758 + 8336 0036 CA68 ldr r2, [r1, #12] + 8337 .LVL660: +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8338 .loc 1 5645 7 is_stmt 0 view .LVU2759 + 8339 0038 4968 ldr r1, [r1, #4] + 8340 .LVL661: +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8341 .loc 1 5645 7 view .LVU2760 + 8342 003a 2068 ldr r0, [r4] + 8343 .LVL662: +5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8344 .loc 1 5645 7 view .LVU2761 + 8345 003c FFF7FEFF bl TIM_TI2_ConfigInputStage + 8346 .LVL663: +5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8347 .loc 1 5648 7 is_stmt 1 view .LVU2762 + 8348 0040 6021 movs r1, #96 + 8349 0042 2068 ldr r0, [r4] + 8350 0044 FFF7FEFF bl TIM_ITRx_SetConfig + 8351 .LVL664: +5649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8352 .loc 1 5649 7 view .LVU2763 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8353 .loc 1 5551 21 is_stmt 0 view .LVU2764 + 8354 0048 0020 movs r0, #0 +5649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8355 .loc 1 5649 7 view .LVU2765 + 8356 004a 35E0 b .L517 + 8357 .LVL665: + 8358 .L531: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8359 .loc 1 5568 3 view .LVU2766 + 8360 004c 402B cmp r3, #64 + 8361 004e 0AD1 bne .L533 +5655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8362 .loc 1 5655 7 is_stmt 1 view .LVU2767 +5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + 8363 .loc 1 5658 7 view .LVU2768 +5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 326 + + + 8364 .loc 1 5659 7 view .LVU2769 +5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8365 .loc 1 5661 7 view .LVU2770 + 8366 0050 CA68 ldr r2, [r1, #12] + 8367 .LVL666: +5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8368 .loc 1 5661 7 is_stmt 0 view .LVU2771 + 8369 0052 4968 ldr r1, [r1, #4] + 8370 .LVL667: +5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8371 .loc 1 5661 7 view .LVU2772 + 8372 0054 2068 ldr r0, [r4] + 8373 .LVL668: +5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8374 .loc 1 5661 7 view .LVU2773 + 8375 0056 FFF7FEFF bl TIM_TI1_ConfigInputStage + 8376 .LVL669: +5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8377 .loc 1 5664 7 is_stmt 1 view .LVU2774 + 8378 005a 4021 movs r1, #64 + 8379 005c 2068 ldr r0, [r4] + 8380 005e FFF7FEFF bl TIM_ITRx_SetConfig + 8381 .LVL670: +5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8382 .loc 1 5665 7 view .LVU2775 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8383 .loc 1 5551 21 is_stmt 0 view .LVU2776 + 8384 0062 0020 movs r0, #0 +5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8385 .loc 1 5665 7 view .LVU2777 + 8386 0064 28E0 b .L517 + 8387 .LVL671: + 8388 .L533: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8389 .loc 1 5568 3 view .LVU2778 + 8390 0066 5BD8 bhi .L525 + 8391 0068 202B cmp r3, #32 + 8392 006a 07D0 beq .L518 + 8393 006c 03D9 bls .L534 + 8394 006e 302B cmp r3, #48 + 8395 0070 04D0 beq .L518 +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8396 .loc 1 5695 14 view .LVU2779 + 8397 0072 0120 movs r0, #1 + 8398 0074 20E0 b .L517 + 8399 .L534: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8400 .loc 1 5568 3 view .LVU2780 + 8401 0076 0BB1 cbz r3, .L518 + 8402 0078 102B cmp r3, #16 + 8403 007a 05D1 bne .L535 + 8404 .LVL672: + 8405 .L518: +5688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8406 .loc 1 5688 7 is_stmt 1 view .LVU2781 +5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8407 .loc 1 5690 7 view .LVU2782 + ARM GAS /tmp/cc0wMqvE.s page 327 + + + 8408 007c 1946 mov r1, r3 + 8409 .LVL673: +5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8410 .loc 1 5690 7 is_stmt 0 view .LVU2783 + 8411 007e 2068 ldr r0, [r4] + 8412 .LVL674: +5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8413 .loc 1 5690 7 view .LVU2784 + 8414 0080 FFF7FEFF bl TIM_ITRx_SetConfig + 8415 .LVL675: +5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8416 .loc 1 5691 7 is_stmt 1 view .LVU2785 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8417 .loc 1 5551 21 is_stmt 0 view .LVU2786 + 8418 0084 0020 movs r0, #0 +5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8419 .loc 1 5691 7 view .LVU2787 + 8420 0086 17E0 b .L517 + 8421 .LVL676: + 8422 .L535: +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8423 .loc 1 5695 14 view .LVU2788 + 8424 0088 0120 movs r0, #1 + 8425 008a 15E0 b .L517 + 8426 .L532: + 8427 008c 0120 movs r0, #1 + 8428 008e 13E0 b .L517 + 8429 .L513: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8430 .loc 1 5568 3 view .LVU2789 + 8431 0090 B3F5005F cmp r3, #8192 + 8432 0094 2CD0 beq .L521 + 8433 0096 0BD9 bls .L536 + 8434 0098 254A ldr r2, .L538+4 + 8435 .LVL677: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8436 .loc 1 5568 3 view .LVU2790 + 8437 009a 9342 cmp r3, r2 + 8438 009c EED0 beq .L518 + 8439 009e 12D9 bls .L537 + 8440 00a0 244A ldr r2, .L538+8 + 8441 00a2 9342 cmp r3, r2 + 8442 00a4 EAD0 beq .L518 + 8443 00a6 3032 adds r2, r2, #48 + 8444 00a8 9342 cmp r3, r2 + 8445 00aa E7D0 beq .L518 +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8446 .loc 1 5695 14 view .LVU2791 + 8447 00ac 0120 movs r0, #1 + 8448 .LVL678: +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8449 .loc 1 5695 14 view .LVU2792 + 8450 00ae 03E0 b .L517 + 8451 .LVL679: + 8452 .L536: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8453 .loc 1 5568 3 view .LVU2793 + ARM GAS /tmp/cc0wMqvE.s page 328 + + + 8454 00b0 B3F5805F cmp r3, #4096 + 8455 00b4 36D1 bne .L526 + 8456 00b6 0020 movs r0, #0 + 8457 .LVL680: + 8458 .L517: +5698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8459 .loc 1 5698 3 is_stmt 1 view .LVU2794 +5698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8460 .loc 1 5698 15 is_stmt 0 view .LVU2795 + 8461 00b8 0123 movs r3, #1 + 8462 00ba 84F83D30 strb r3, [r4, #61] +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8463 .loc 1 5700 3 is_stmt 1 view .LVU2796 +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8464 .loc 1 5700 3 view .LVU2797 + 8465 00be 0023 movs r3, #0 + 8466 00c0 84F83C30 strb r3, [r4, #60] +5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8467 .loc 1 5700 3 view .LVU2798 +5702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8468 .loc 1 5702 3 view .LVU2799 +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8469 .loc 1 5703 1 is_stmt 0 view .LVU2800 + 8470 00c4 10BD pop {r4, pc} + 8471 .LVL681: + 8472 .L537: +5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8473 .loc 1 5568 3 view .LVU2801 + 8474 00c6 B3F1101F cmp r3, #1048592 + 8475 00ca D7D0 beq .L518 + 8476 00cc 103A subs r2, r2, #16 + 8477 00ce 9342 cmp r3, r2 + 8478 00d0 D4D0 beq .L518 +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8479 .loc 1 5695 14 view .LVU2802 + 8480 00d2 0120 movs r0, #1 + 8481 .LVL682: +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8482 .loc 1 5695 14 view .LVU2803 + 8483 00d4 F0E7 b .L517 + 8484 .LVL683: + 8485 .L512: +5579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8486 .loc 1 5579 7 is_stmt 1 view .LVU2804 +5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + 8487 .loc 1 5582 7 view .LVU2805 +5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + 8488 .loc 1 5583 7 view .LVU2806 +5584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8489 .loc 1 5584 7 view .LVU2807 +5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8490 .loc 1 5587 7 view .LVU2808 + 8491 00d6 CB68 ldr r3, [r1, #12] + 8492 00d8 4A68 ldr r2, [r1, #4] + 8493 .LVL684: +5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8494 .loc 1 5587 7 is_stmt 0 view .LVU2809 + ARM GAS /tmp/cc0wMqvE.s page 329 + + + 8495 00da 8968 ldr r1, [r1, #8] + 8496 .LVL685: +5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8497 .loc 1 5587 7 view .LVU2810 + 8498 00dc 2068 ldr r0, [r4] + 8499 .LVL686: +5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8500 .loc 1 5587 7 view .LVU2811 + 8501 00de FFF7FEFF bl TIM_ETR_SetConfig + 8502 .LVL687: +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + 8503 .loc 1 5593 7 is_stmt 1 view .LVU2812 +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + 8504 .loc 1 5593 21 is_stmt 0 view .LVU2813 + 8505 00e2 2268 ldr r2, [r4] +5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + 8506 .loc 1 5593 15 view .LVU2814 + 8507 00e4 9368 ldr r3, [r2, #8] + 8508 .LVL688: +5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ + 8509 .loc 1 5594 7 is_stmt 1 view .LVU2815 +5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Write to TIMx SMCR */ + 8510 .loc 1 5594 15 is_stmt 0 view .LVU2816 + 8511 00e6 43F07703 orr r3, r3, #119 + 8512 .LVL689: +5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8513 .loc 1 5596 7 is_stmt 1 view .LVU2817 +5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8514 .loc 1 5596 28 is_stmt 0 view .LVU2818 + 8515 00ea 9360 str r3, [r2, #8] +5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8516 .loc 1 5597 7 is_stmt 1 view .LVU2819 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8517 .loc 1 5551 21 is_stmt 0 view .LVU2820 + 8518 00ec 0020 movs r0, #0 +5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8519 .loc 1 5597 7 view .LVU2821 + 8520 00ee E3E7 b .L517 + 8521 .LVL690: + 8522 .L521: +5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8523 .loc 1 5603 7 is_stmt 1 view .LVU2822 +5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity)); + 8524 .loc 1 5606 7 view .LVU2823 +5607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + 8525 .loc 1 5607 7 view .LVU2824 +5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8526 .loc 1 5608 7 view .LVU2825 +5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8527 .loc 1 5611 7 view .LVU2826 + 8528 00f0 CB68 ldr r3, [r1, #12] + 8529 00f2 4A68 ldr r2, [r1, #4] + 8530 .LVL691: +5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8531 .loc 1 5611 7 is_stmt 0 view .LVU2827 + 8532 00f4 8968 ldr r1, [r1, #8] + 8533 .LVL692: + ARM GAS /tmp/cc0wMqvE.s page 330 + + +5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8534 .loc 1 5611 7 view .LVU2828 + 8535 00f6 2068 ldr r0, [r4] + 8536 .LVL693: +5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPrescaler, + 8537 .loc 1 5611 7 view .LVU2829 + 8538 00f8 FFF7FEFF bl TIM_ETR_SetConfig + 8539 .LVL694: +5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8540 .loc 1 5616 7 is_stmt 1 view .LVU2830 +5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8541 .loc 1 5616 11 is_stmt 0 view .LVU2831 + 8542 00fc 2268 ldr r2, [r4] +5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8543 .loc 1 5616 21 view .LVU2832 + 8544 00fe 9368 ldr r3, [r2, #8] +5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8545 .loc 1 5616 28 view .LVU2833 + 8546 0100 43F48043 orr r3, r3, #16384 + 8547 0104 9360 str r3, [r2, #8] +5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8548 .loc 1 5617 7 is_stmt 1 view .LVU2834 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8549 .loc 1 5551 21 is_stmt 0 view .LVU2835 + 8550 0106 0020 movs r0, #0 +5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8551 .loc 1 5617 7 view .LVU2836 + 8552 0108 D6E7 b .L517 + 8553 .LVL695: + 8554 .L514: +5623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8555 .loc 1 5623 7 is_stmt 1 view .LVU2837 +5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter)); + 8556 .loc 1 5626 7 view .LVU2838 +5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8557 .loc 1 5627 7 view .LVU2839 +5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8558 .loc 1 5629 7 view .LVU2840 + 8559 010a CA68 ldr r2, [r1, #12] + 8560 .LVL696: +5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8561 .loc 1 5629 7 is_stmt 0 view .LVU2841 + 8562 010c 4968 ldr r1, [r1, #4] + 8563 .LVL697: +5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8564 .loc 1 5629 7 view .LVU2842 + 8565 010e 2068 ldr r0, [r4] + 8566 .LVL698: +5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sClockSourceConfig->ClockPolarity, + 8567 .loc 1 5629 7 view .LVU2843 + 8568 0110 FFF7FEFF bl TIM_TI1_ConfigInputStage + 8569 .LVL699: +5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8570 .loc 1 5632 7 is_stmt 1 view .LVU2844 + 8571 0114 5021 movs r1, #80 + 8572 0116 2068 ldr r0, [r4] + 8573 0118 FFF7FEFF bl TIM_ITRx_SetConfig + ARM GAS /tmp/cc0wMqvE.s page 331 + + + 8574 .LVL700: +5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8575 .loc 1 5633 7 view .LVU2845 +5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8576 .loc 1 5551 21 is_stmt 0 view .LVU2846 + 8577 011c 0020 movs r0, #0 +5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8578 .loc 1 5633 7 view .LVU2847 + 8579 011e CBE7 b .L517 + 8580 .LVL701: + 8581 .L525: +5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8582 .loc 1 5695 14 view .LVU2848 + 8583 0120 0120 movs r0, #1 + 8584 0122 C9E7 b .L517 + 8585 .L526: + 8586 0124 0120 movs r0, #1 + 8587 0126 C7E7 b .L517 + 8588 .LVL702: + 8589 .L524: + 8590 .LCFI79: + 8591 .cfi_def_cfa_offset 0 + 8592 .cfi_restore 4 + 8593 .cfi_restore 14 +5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8594 .loc 1 5555 3 view .LVU2849 + 8595 0128 0220 movs r0, #2 + 8596 .LVL703: +5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8597 .loc 1 5703 1 view .LVU2850 + 8598 012a 7047 bx lr + 8599 .L539: + 8600 .align 2 + 8601 .L538: + 8602 012c 8800CEFF .word -3276664 + 8603 0130 30001000 .word 1048624 + 8604 0134 40001000 .word 1048640 + 8605 .cfi_endproc + 8606 .LFE400: + 8608 .section .text.TIM_SlaveTimer_SetConfig,"ax",%progbits + 8609 .align 1 + 8610 .syntax unified + 8611 .thumb + 8612 .thumb_func + 8614 TIM_SlaveTimer_SetConfig: + 8615 .LVL704: + 8616 .LFB440: +7565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 8617 .loc 1 7565 1 is_stmt 1 view -0 + 8618 .cfi_startproc + 8619 @ args = 0, pretend = 0, frame = 0 + 8620 @ frame_needed = 0, uses_anonymous_args = 0 +7565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 8621 .loc 1 7565 1 is_stmt 0 view .LVU2852 + 8622 0000 10B5 push {r4, lr} + 8623 .LCFI80: + 8624 .cfi_def_cfa_offset 8 + ARM GAS /tmp/cc0wMqvE.s page 332 + + + 8625 .cfi_offset 4, -8 + 8626 .cfi_offset 14, -4 +7566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8627 .loc 1 7566 3 is_stmt 1 view .LVU2853 + 8628 .LVL705: +7567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccmr1; + 8629 .loc 1 7567 3 view .LVU2854 +7568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpccer; + 8630 .loc 1 7568 3 view .LVU2855 +7569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8631 .loc 1 7569 3 view .LVU2856 +7572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8632 .loc 1 7572 3 view .LVU2857 +7572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8633 .loc 1 7572 17 is_stmt 0 view .LVU2858 + 8634 0002 0468 ldr r4, [r0] +7572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8635 .loc 1 7572 11 view .LVU2859 + 8636 0004 A268 ldr r2, [r4, #8] + 8637 .LVL706: +7575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Input Trigger source */ + 8638 .loc 1 7575 3 is_stmt 1 view .LVU2860 +7575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Input Trigger source */ + 8639 .loc 1 7575 11 is_stmt 0 view .LVU2861 + 8640 0006 22F44012 bic r2, r2, #3145728 + 8641 .LVL707: +7575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the Input Trigger source */ + 8642 .loc 1 7575 11 view .LVU2862 + 8643 000a 22F07002 bic r2, r2, #112 + 8644 .LVL708: +7577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8645 .loc 1 7577 3 is_stmt 1 view .LVU2863 +7577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8646 .loc 1 7577 26 is_stmt 0 view .LVU2864 + 8647 000e 4B68 ldr r3, [r1, #4] +7577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8648 .loc 1 7577 11 view .LVU2865 + 8649 0010 1343 orrs r3, r3, r2 + 8650 .LVL709: +7580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the slave mode */ + 8651 .loc 1 7580 3 is_stmt 1 view .LVU2866 +7580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the slave mode */ + 8652 .loc 1 7580 11 is_stmt 0 view .LVU2867 + 8653 0012 23F48033 bic r3, r3, #65536 + 8654 .LVL710: +7580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set the slave mode */ + 8655 .loc 1 7580 11 view .LVU2868 + 8656 0016 23F00703 bic r3, r3, #7 + 8657 .LVL711: +7582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8658 .loc 1 7582 3 is_stmt 1 view .LVU2869 +7582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8659 .loc 1 7582 26 is_stmt 0 view .LVU2870 + 8660 001a 0A68 ldr r2, [r1] +7582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8661 .loc 1 7582 11 view .LVU2871 + 8662 001c 1A43 orrs r2, r2, r3 + ARM GAS /tmp/cc0wMqvE.s page 333 + + + 8663 .LVL712: +7585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8664 .loc 1 7585 3 is_stmt 1 view .LVU2872 +7585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8665 .loc 1 7585 24 is_stmt 0 view .LVU2873 + 8666 001e A260 str r2, [r4, #8] +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8667 .loc 1 7588 3 is_stmt 1 view .LVU2874 +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8668 .loc 1 7588 23 is_stmt 0 view .LVU2875 + 8669 0020 4B68 ldr r3, [r1, #4] +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8670 .loc 1 7588 3 view .LVU2876 + 8671 0022 602B cmp r3, #96 + 8672 0024 56D0 beq .L541 + 8673 0026 1CD8 bhi .L542 + 8674 0028 402B cmp r3, #64 + 8675 002a 3BD0 beq .L543 + 8676 002c 08D9 bls .L563 + 8677 002e 502B cmp r3, #80 + 8678 0030 15D1 bne .L564 +7635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); + 8679 .loc 1 7635 7 is_stmt 1 view .LVU2877 +7636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + 8680 .loc 1 7636 7 view .LVU2878 +7637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8681 .loc 1 7637 7 view .LVU2879 +7640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8682 .loc 1 7640 7 view .LVU2880 + 8683 0032 0A69 ldr r2, [r1, #16] + 8684 .LVL713: +7640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8685 .loc 1 7640 7 is_stmt 0 view .LVU2881 + 8686 0034 8968 ldr r1, [r1, #8] + 8687 .LVL714: +7640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8688 .loc 1 7640 7 view .LVU2882 + 8689 0036 0068 ldr r0, [r0] + 8690 .LVL715: +7640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8691 .loc 1 7640 7 view .LVU2883 + 8692 0038 FFF7FEFF bl TIM_TI1_ConfigInputStage + 8693 .LVL716: +7643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8694 .loc 1 7643 7 is_stmt 1 view .LVU2884 +7566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8695 .loc 1 7566 21 is_stmt 0 view .LVU2885 + 8696 003c 0020 movs r0, #0 +7643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8697 .loc 1 7643 7 view .LVU2886 + 8698 003e 0BE0 b .L545 + 8699 .LVL717: + 8700 .L563: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8701 .loc 1 7588 3 view .LVU2887 + 8702 0040 202B cmp r3, #32 + 8703 0042 4ED0 beq .L550 + ARM GAS /tmp/cc0wMqvE.s page 334 + + + 8704 0044 03D9 bls .L565 + 8705 0046 302B cmp r3, #48 + 8706 0048 07D0 beq .L566 +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8707 .loc 1 7685 14 view .LVU2888 + 8708 004a 0120 movs r0, #1 + 8709 .LVL718: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8710 .loc 1 7685 14 view .LVU2889 + 8711 004c 04E0 b .L545 + 8712 .LVL719: + 8713 .L565: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8714 .loc 1 7588 3 view .LVU2890 + 8715 004e 002B cmp r3, #0 + 8716 0050 49D0 beq .L551 + 8717 0052 102B cmp r3, #16 + 8718 0054 49D1 bne .L552 + 8719 0056 0020 movs r0, #0 + 8720 .LVL720: + 8721 .L545: +7690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8722 .loc 1 7690 1 view .LVU2891 + 8723 0058 10BD pop {r4, pc} + 8724 .LVL721: + 8725 .L566: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8726 .loc 1 7588 3 view .LVU2892 + 8727 005a 0020 movs r0, #0 + 8728 .LVL722: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8729 .loc 1 7588 3 view .LVU2893 + 8730 005c FCE7 b .L545 + 8731 .LVL723: + 8732 .L564: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8733 .loc 1 7685 14 view .LVU2894 + 8734 005e 0120 movs r0, #1 + 8735 .LVL724: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8736 .loc 1 7685 14 view .LVU2895 + 8737 0060 FAE7 b .L545 + 8738 .LVL725: + 8739 .L542: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8740 .loc 1 7588 3 view .LVU2896 + 8741 0062 702B cmp r3, #112 + 8742 0064 16D0 beq .L548 + 8743 0066 01D2 bcs .L567 +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8744 .loc 1 7685 14 view .LVU2897 + 8745 0068 0120 movs r0, #1 + 8746 .LVL726: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8747 .loc 1 7685 14 view .LVU2898 + 8748 006a F5E7 b .L545 + 8749 .LVL727: + ARM GAS /tmp/cc0wMqvE.s page 335 + + + 8750 .L567: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8751 .loc 1 7588 3 view .LVU2899 + 8752 006c 274A ldr r2, .L569 + 8753 .LVL728: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8754 .loc 1 7588 3 view .LVU2900 + 8755 006e 9342 cmp r3, r2 + 8756 0070 3DD0 beq .L555 + 8757 0072 07D9 bls .L568 + 8758 0074 264A ldr r2, .L569+4 + 8759 0076 9342 cmp r3, r2 + 8760 0078 3FD0 beq .L558 + 8761 007a 3032 adds r2, r2, #48 + 8762 007c 9342 cmp r3, r2 + 8763 007e 3ED1 bne .L559 + 8764 0080 0020 movs r0, #0 + 8765 .LVL729: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8766 .loc 1 7588 3 view .LVU2901 + 8767 0082 E9E7 b .L545 + 8768 .LVL730: + 8769 .L568: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8770 .loc 1 7588 3 view .LVU2902 + 8771 0084 B3F1101F cmp r3, #1048592 + 8772 0088 33D0 beq .L556 + 8773 008a 103A subs r2, r2, #16 + 8774 008c 9342 cmp r3, r2 + 8775 008e 32D1 bne .L557 + 8776 0090 0020 movs r0, #0 + 8777 .LVL731: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8778 .loc 1 7588 3 view .LVU2903 + 8779 0092 E1E7 b .L545 + 8780 .LVL732: + 8781 .L548: +7593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPRESCALER(sSlaveConfig->TriggerPrescaler)); + 8782 .loc 1 7593 7 is_stmt 1 view .LVU2904 +7594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); + 8783 .loc 1 7594 7 view .LVU2905 +7595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + 8784 .loc 1 7595 7 view .LVU2906 +7596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Configure the ETR Trigger source */ + 8785 .loc 1 7596 7 view .LVU2907 +7598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPrescaler, + 8786 .loc 1 7598 7 view .LVU2908 + 8787 0094 0B69 ldr r3, [r1, #16] + 8788 0096 8A68 ldr r2, [r1, #8] + 8789 .LVL733: +7598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPrescaler, + 8790 .loc 1 7598 7 is_stmt 0 view .LVU2909 + 8791 0098 C968 ldr r1, [r1, #12] + 8792 .LVL734: +7598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPrescaler, + 8793 .loc 1 7598 7 view .LVU2910 + 8794 009a 0068 ldr r0, [r0] + ARM GAS /tmp/cc0wMqvE.s page 336 + + + 8795 .LVL735: +7598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPrescaler, + 8796 .loc 1 7598 7 view .LVU2911 + 8797 009c FFF7FEFF bl TIM_ETR_SetConfig + 8798 .LVL736: +7602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8799 .loc 1 7602 7 is_stmt 1 view .LVU2912 +7566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8800 .loc 1 7566 21 is_stmt 0 view .LVU2913 + 8801 00a0 0020 movs r0, #0 +7602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8802 .loc 1 7602 7 view .LVU2914 + 8803 00a2 D9E7 b .L545 + 8804 .LVL737: + 8805 .L543: +7608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + 8806 .loc 1 7608 7 is_stmt 1 view .LVU2915 +7609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8807 .loc 1 7609 7 view .LVU2916 +7611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (sSlaveConfig->SlaveMode == TIM_SLAVEMODE_COMBINED_GATEDRESET)) + 8808 .loc 1 7611 7 view .LVU2917 +7611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (sSlaveConfig->SlaveMode == TIM_SLAVEMODE_COMBINED_GATEDRESET)) + 8809 .loc 1 7611 24 is_stmt 0 view .LVU2918 + 8810 00a4 0B68 ldr r3, [r1] +7611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (sSlaveConfig->SlaveMode == TIM_SLAVEMODE_COMBINED_GATEDRESET)) + 8811 .loc 1 7611 10 view .LVU2919 + 8812 00a6 052B cmp r3, #5 + 8813 00a8 2BD0 beq .L560 +7611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (sSlaveConfig->SlaveMode == TIM_SLAVEMODE_COMBINED_GATEDRESET)) + 8814 .loc 1 7611 60 discriminator 1 view .LVU2920 + 8815 00aa B3F1011F cmp r3, #65537 + 8816 00ae 2AD0 beq .L561 +7618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER &= ~TIM_CCER_CC1E; + 8817 .loc 1 7618 7 is_stmt 1 view .LVU2921 +7618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER &= ~TIM_CCER_CC1E; + 8818 .loc 1 7618 21 is_stmt 0 view .LVU2922 + 8819 00b0 0368 ldr r3, [r0] +7618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER &= ~TIM_CCER_CC1E; + 8820 .loc 1 7618 15 view .LVU2923 + 8821 00b2 1C6A ldr r4, [r3, #32] + 8822 .LVL738: +7619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = htim->Instance->CCMR1; + 8823 .loc 1 7619 7 is_stmt 1 view .LVU2924 +7619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = htim->Instance->CCMR1; + 8824 .loc 1 7619 21 is_stmt 0 view .LVU2925 + 8825 00b4 1A6A ldr r2, [r3, #32] + 8826 .LVL739: +7619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 = htim->Instance->CCMR1; + 8827 .loc 1 7619 28 view .LVU2926 + 8828 00b6 22F00102 bic r2, r2, #1 + 8829 00ba 1A62 str r2, [r3, #32] +7620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8830 .loc 1 7620 7 is_stmt 1 view .LVU2927 +7620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8831 .loc 1 7620 22 is_stmt 0 view .LVU2928 + 8832 00bc 0268 ldr r2, [r0] +7620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 337 + + + 8833 .loc 1 7620 16 view .LVU2929 + 8834 00be 9369 ldr r3, [r2, #24] + 8835 .LVL740: +7623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((sSlaveConfig->TriggerFilter) << 4U); + 8836 .loc 1 7623 7 is_stmt 1 view .LVU2930 +7623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmpccmr1 |= ((sSlaveConfig->TriggerFilter) << 4U); + 8837 .loc 1 7623 16 is_stmt 0 view .LVU2931 + 8838 00c0 23F0F003 bic r3, r3, #240 + 8839 .LVL741: +7624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8840 .loc 1 7624 7 is_stmt 1 view .LVU2932 +7624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8841 .loc 1 7624 33 is_stmt 0 view .LVU2933 + 8842 00c4 0969 ldr r1, [r1, #16] + 8843 .LVL742: +7624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8844 .loc 1 7624 16 view .LVU2934 + 8845 00c6 43EA0113 orr r3, r3, r1, lsl #4 + 8846 .LVL743: +7627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER = tmpccer; + 8847 .loc 1 7627 7 is_stmt 1 view .LVU2935 +7627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->Instance->CCER = tmpccer; + 8848 .loc 1 7627 29 is_stmt 0 view .LVU2936 + 8849 00ca 9361 str r3, [r2, #24] +7628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8850 .loc 1 7628 7 is_stmt 1 view .LVU2937 +7628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8851 .loc 1 7628 11 is_stmt 0 view .LVU2938 + 8852 00cc 0368 ldr r3, [r0] + 8853 .LVL744: +7628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8854 .loc 1 7628 28 view .LVU2939 + 8855 00ce 1C62 str r4, [r3, #32] + 8856 .LVL745: +7629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8857 .loc 1 7629 7 is_stmt 1 view .LVU2940 +7566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8858 .loc 1 7566 21 is_stmt 0 view .LVU2941 + 8859 00d0 0020 movs r0, #0 + 8860 .LVL746: +7629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8861 .loc 1 7629 7 view .LVU2942 + 8862 00d2 C1E7 b .L545 + 8863 .LVL747: + 8864 .L541: +7649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERPOLARITY(sSlaveConfig->TriggerPolarity)); + 8865 .loc 1 7649 7 is_stmt 1 view .LVU2943 +7650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->TriggerFilter)); + 8866 .loc 1 7650 7 view .LVU2944 +7651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8867 .loc 1 7651 7 view .LVU2945 +7654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8868 .loc 1 7654 7 view .LVU2946 + 8869 00d4 0A69 ldr r2, [r1, #16] + 8870 .LVL748: +7654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8871 .loc 1 7654 7 is_stmt 0 view .LVU2947 + ARM GAS /tmp/cc0wMqvE.s page 338 + + + 8872 00d6 8968 ldr r1, [r1, #8] + 8873 .LVL749: +7654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8874 .loc 1 7654 7 view .LVU2948 + 8875 00d8 0068 ldr r0, [r0] + 8876 .LVL750: +7654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** sSlaveConfig->TriggerPolarity, + 8877 .loc 1 7654 7 view .LVU2949 + 8878 00da FFF7FEFF bl TIM_TI2_ConfigInputStage + 8879 .LVL751: +7657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8880 .loc 1 7657 7 is_stmt 1 view .LVU2950 +7566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 8881 .loc 1 7566 21 is_stmt 0 view .LVU2951 + 8882 00de 0020 movs r0, #0 +7657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8883 .loc 1 7657 7 view .LVU2952 + 8884 00e0 BAE7 b .L545 + 8885 .LVL752: + 8886 .L550: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8887 .loc 1 7588 3 view .LVU2953 + 8888 00e2 0020 movs r0, #0 + 8889 .LVL753: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8890 .loc 1 7588 3 view .LVU2954 + 8891 00e4 B8E7 b .L545 + 8892 .LVL754: + 8893 .L551: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8894 .loc 1 7588 3 view .LVU2955 + 8895 00e6 0020 movs r0, #0 + 8896 .LVL755: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8897 .loc 1 7588 3 view .LVU2956 + 8898 00e8 B6E7 b .L545 + 8899 .LVL756: + 8900 .L552: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8901 .loc 1 7685 14 view .LVU2957 + 8902 00ea 0120 movs r0, #1 + 8903 .LVL757: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8904 .loc 1 7685 14 view .LVU2958 + 8905 00ec B4E7 b .L545 + 8906 .LVL758: + 8907 .L555: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8908 .loc 1 7588 3 view .LVU2959 + 8909 00ee 0020 movs r0, #0 + 8910 .LVL759: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8911 .loc 1 7588 3 view .LVU2960 + 8912 00f0 B2E7 b .L545 + 8913 .LVL760: + 8914 .L556: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 339 + + + 8915 .loc 1 7588 3 view .LVU2961 + 8916 00f2 0020 movs r0, #0 + 8917 .LVL761: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8918 .loc 1 7588 3 view .LVU2962 + 8919 00f4 B0E7 b .L545 + 8920 .LVL762: + 8921 .L557: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8922 .loc 1 7685 14 view .LVU2963 + 8923 00f6 0120 movs r0, #1 + 8924 .LVL763: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8925 .loc 1 7685 14 view .LVU2964 + 8926 00f8 AEE7 b .L545 + 8927 .LVL764: + 8928 .L558: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8929 .loc 1 7588 3 view .LVU2965 + 8930 00fa 0020 movs r0, #0 + 8931 .LVL765: +7588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 8932 .loc 1 7588 3 view .LVU2966 + 8933 00fc ACE7 b .L545 + 8934 .LVL766: + 8935 .L559: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8936 .loc 1 7685 14 view .LVU2967 + 8937 00fe 0120 movs r0, #1 + 8938 .LVL767: +7685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 8939 .loc 1 7685 14 view .LVU2968 + 8940 0100 AAE7 b .L545 + 8941 .LVL768: + 8942 .L560: +7614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8943 .loc 1 7614 16 view .LVU2969 + 8944 0102 0120 movs r0, #1 + 8945 .LVL769: +7614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8946 .loc 1 7614 16 view .LVU2970 + 8947 0104 A8E7 b .L545 + 8948 .LVL770: + 8949 .L561: +7614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8950 .loc 1 7614 16 view .LVU2971 + 8951 0106 0120 movs r0, #1 + 8952 .LVL771: +7614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 8953 .loc 1 7614 16 view .LVU2972 + 8954 0108 A6E7 b .L545 + 8955 .L570: + 8956 010a 00BF .align 2 + 8957 .L569: + 8958 010c 30001000 .word 1048624 + 8959 0110 40001000 .word 1048640 + 8960 .cfi_endproc + ARM GAS /tmp/cc0wMqvE.s page 340 + + + 8961 .LFE440: + 8963 .section .text.HAL_TIM_SlaveConfigSynchro,"ax",%progbits + 8964 .align 1 + 8965 .global HAL_TIM_SlaveConfigSynchro + 8966 .syntax unified + 8967 .thumb + 8968 .thumb_func + 8970 HAL_TIM_SlaveConfigSynchro: + 8971 .LVL772: + 8972 .LFB402: +5750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 8973 .loc 1 5750 1 is_stmt 1 view -0 + 8974 .cfi_startproc + 8975 @ args = 0, pretend = 0, frame = 0 + 8976 @ frame_needed = 0, uses_anonymous_args = 0 +5752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->SlaveMode)); + 8977 .loc 1 5752 3 view .LVU2974 +5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGER_INSTANCE(htim->Instance, sSlaveConfig->InputTrigger)); + 8978 .loc 1 5753 3 view .LVU2975 +5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8979 .loc 1 5754 3 view .LVU2976 +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8980 .loc 1 5756 3 view .LVU2977 +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8981 .loc 1 5756 3 view .LVU2978 + 8982 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 8983 0004 012B cmp r3, #1 + 8984 0006 22D0 beq .L574 +5750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 8985 .loc 1 5750 1 is_stmt 0 discriminator 2 view .LVU2979 + 8986 0008 10B5 push {r4, lr} + 8987 .LCFI81: + 8988 .cfi_def_cfa_offset 8 + 8989 .cfi_offset 4, -8 + 8990 .cfi_offset 14, -4 + 8991 000a 0446 mov r4, r0 +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8992 .loc 1 5756 3 is_stmt 1 discriminator 2 view .LVU2980 + 8993 000c 0123 movs r3, #1 + 8994 000e 80F83C30 strb r3, [r0, #60] +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8995 .loc 1 5756 3 discriminator 2 view .LVU2981 +5758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8996 .loc 1 5758 3 discriminator 2 view .LVU2982 +5758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 8997 .loc 1 5758 15 is_stmt 0 discriminator 2 view .LVU2983 + 8998 0012 0223 movs r3, #2 + 8999 0014 80F83D30 strb r3, [r0, #61] +5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9000 .loc 1 5760 3 is_stmt 1 discriminator 2 view .LVU2984 +5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9001 .loc 1 5760 7 is_stmt 0 discriminator 2 view .LVU2985 + 9002 0018 FFF7FEFF bl TIM_SlaveTimer_SetConfig + 9003 .LVL773: +5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9004 .loc 1 5760 6 discriminator 2 view .LVU2986 + 9005 001c 80B9 cbnz r0, .L579 + ARM GAS /tmp/cc0wMqvE.s page 341 + + +5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9006 .loc 1 5768 3 is_stmt 1 view .LVU2987 + 9007 001e 2268 ldr r2, [r4] + 9008 0020 D368 ldr r3, [r2, #12] + 9009 0022 23F04003 bic r3, r3, #64 + 9010 0026 D360 str r3, [r2, #12] +5771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9011 .loc 1 5771 3 view .LVU2988 + 9012 0028 2268 ldr r2, [r4] + 9013 002a D368 ldr r3, [r2, #12] + 9014 002c 23F48043 bic r3, r3, #16384 + 9015 0030 D360 str r3, [r2, #12] +5773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9016 .loc 1 5773 3 view .LVU2989 +5773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9017 .loc 1 5773 15 is_stmt 0 view .LVU2990 + 9018 0032 0123 movs r3, #1 + 9019 0034 84F83D30 strb r3, [r4, #61] +5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9020 .loc 1 5775 3 is_stmt 1 view .LVU2991 +5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9021 .loc 1 5775 3 view .LVU2992 + 9022 0038 0023 movs r3, #0 + 9023 003a 84F83C30 strb r3, [r4, #60] +5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9024 .loc 1 5775 3 view .LVU2993 +5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9025 .loc 1 5777 3 view .LVU2994 + 9026 .L572: +5778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9027 .loc 1 5778 1 is_stmt 0 view .LVU2995 + 9028 003e 10BD pop {r4, pc} + 9029 .LVL774: + 9030 .L579: +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 9031 .loc 1 5762 5 is_stmt 1 view .LVU2996 +5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 9032 .loc 1 5762 17 is_stmt 0 view .LVU2997 + 9033 0040 0120 movs r0, #1 + 9034 0042 84F83D00 strb r0, [r4, #61] +5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 9035 .loc 1 5763 5 is_stmt 1 view .LVU2998 +5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 9036 .loc 1 5763 5 view .LVU2999 + 9037 0046 0023 movs r3, #0 + 9038 0048 84F83C30 strb r3, [r4, #60] +5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 9039 .loc 1 5763 5 view .LVU3000 +5764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9040 .loc 1 5764 5 view .LVU3001 +5764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9041 .loc 1 5764 12 is_stmt 0 view .LVU3002 + 9042 004c F7E7 b .L572 + 9043 .LVL775: + 9044 .L574: + 9045 .LCFI82: + 9046 .cfi_def_cfa_offset 0 + ARM GAS /tmp/cc0wMqvE.s page 342 + + + 9047 .cfi_restore 4 + 9048 .cfi_restore 14 +5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9049 .loc 1 5756 3 view .LVU3003 + 9050 004e 0220 movs r0, #2 + 9051 .LVL776: +5778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9052 .loc 1 5778 1 view .LVU3004 + 9053 0050 7047 bx lr + 9054 .cfi_endproc + 9055 .LFE402: + 9057 .section .text.HAL_TIM_SlaveConfigSynchro_IT,"ax",%progbits + 9058 .align 1 + 9059 .global HAL_TIM_SlaveConfigSynchro_IT + 9060 .syntax unified + 9061 .thumb + 9062 .thumb_func + 9064 HAL_TIM_SlaveConfigSynchro_IT: + 9065 .LVL777: + 9066 .LFB403: +5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 9067 .loc 1 5791 1 is_stmt 1 view -0 + 9068 .cfi_startproc + 9069 @ args = 0, pretend = 0, frame = 0 + 9070 @ frame_needed = 0, uses_anonymous_args = 0 +5793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->SlaveMode)); + 9071 .loc 1 5793 3 view .LVU3006 +5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_TRIGGER_INSTANCE(htim->Instance, sSlaveConfig->InputTrigger)); + 9072 .loc 1 5794 3 view .LVU3007 +5795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9073 .loc 1 5795 3 view .LVU3008 +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9074 .loc 1 5797 3 view .LVU3009 +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9075 .loc 1 5797 3 view .LVU3010 + 9076 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 9077 0004 012B cmp r3, #1 + 9078 0006 22D0 beq .L583 +5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 9079 .loc 1 5791 1 is_stmt 0 discriminator 2 view .LVU3011 + 9080 0008 10B5 push {r4, lr} + 9081 .LCFI83: + 9082 .cfi_def_cfa_offset 8 + 9083 .cfi_offset 4, -8 + 9084 .cfi_offset 14, -4 + 9085 000a 0446 mov r4, r0 +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9086 .loc 1 5797 3 is_stmt 1 discriminator 2 view .LVU3012 + 9087 000c 0123 movs r3, #1 + 9088 000e 80F83C30 strb r3, [r0, #60] +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9089 .loc 1 5797 3 discriminator 2 view .LVU3013 +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9090 .loc 1 5799 3 discriminator 2 view .LVU3014 +5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9091 .loc 1 5799 15 is_stmt 0 discriminator 2 view .LVU3015 + 9092 0012 0223 movs r3, #2 + ARM GAS /tmp/cc0wMqvE.s page 343 + + + 9093 0014 80F83D30 strb r3, [r0, #61] +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9094 .loc 1 5801 3 is_stmt 1 discriminator 2 view .LVU3016 +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9095 .loc 1 5801 7 is_stmt 0 discriminator 2 view .LVU3017 + 9096 0018 FFF7FEFF bl TIM_SlaveTimer_SetConfig + 9097 .LVL778: +5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9098 .loc 1 5801 6 discriminator 2 view .LVU3018 + 9099 001c 80B9 cbnz r0, .L588 +5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9100 .loc 1 5809 3 is_stmt 1 view .LVU3019 + 9101 001e 2268 ldr r2, [r4] + 9102 0020 D368 ldr r3, [r2, #12] + 9103 0022 43F04003 orr r3, r3, #64 + 9104 0026 D360 str r3, [r2, #12] +5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9105 .loc 1 5812 3 view .LVU3020 + 9106 0028 2268 ldr r2, [r4] + 9107 002a D368 ldr r3, [r2, #12] + 9108 002c 23F48043 bic r3, r3, #16384 + 9109 0030 D360 str r3, [r2, #12] +5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9110 .loc 1 5814 3 view .LVU3021 +5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9111 .loc 1 5814 15 is_stmt 0 view .LVU3022 + 9112 0032 0123 movs r3, #1 + 9113 0034 84F83D30 strb r3, [r4, #61] +5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9114 .loc 1 5816 3 is_stmt 1 view .LVU3023 +5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9115 .loc 1 5816 3 view .LVU3024 + 9116 0038 0023 movs r3, #0 + 9117 003a 84F83C30 strb r3, [r4, #60] +5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9118 .loc 1 5816 3 view .LVU3025 +5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9119 .loc 1 5818 3 view .LVU3026 + 9120 .L581: +5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9121 .loc 1 5819 1 is_stmt 0 view .LVU3027 + 9122 003e 10BD pop {r4, pc} + 9123 .LVL779: + 9124 .L588: +5803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 9125 .loc 1 5803 5 is_stmt 1 view .LVU3028 +5803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_UNLOCK(htim); + 9126 .loc 1 5803 17 is_stmt 0 view .LVU3029 + 9127 0040 0120 movs r0, #1 + 9128 0042 84F83D00 strb r0, [r4, #61] +5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 9129 .loc 1 5804 5 is_stmt 1 view .LVU3030 +5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + 9130 .loc 1 5804 5 view .LVU3031 + 9131 0046 0023 movs r3, #0 + 9132 0048 84F83C30 strb r3, [r4, #60] +5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** return HAL_ERROR; + ARM GAS /tmp/cc0wMqvE.s page 344 + + + 9133 .loc 1 5804 5 view .LVU3032 +5805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9134 .loc 1 5805 5 view .LVU3033 +5805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9135 .loc 1 5805 12 is_stmt 0 view .LVU3034 + 9136 004c F7E7 b .L581 + 9137 .LVL780: + 9138 .L583: + 9139 .LCFI84: + 9140 .cfi_def_cfa_offset 0 + 9141 .cfi_restore 4 + 9142 .cfi_restore 14 +5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9143 .loc 1 5797 3 view .LVU3035 + 9144 004e 0220 movs r0, #2 + 9145 .LVL781: +5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9146 .loc 1 5819 1 view .LVU3036 + 9147 0050 7047 bx lr + 9148 .cfi_endproc + 9149 .LFE403: + 9151 .section .text.TIM_CCxChannelCmd,"ax",%progbits + 9152 .align 1 + 9153 .global TIM_CCxChannelCmd + 9154 .syntax unified + 9155 .thumb + 9156 .thumb_func + 9158 TIM_CCxChannelCmd: + 9159 .LVL782: + 9160 .LFB449: +8033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** +8035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @brief Enables or disables the TIM Capture Compare Channel x. +8036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param TIMx to select the TIM peripheral +8037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param Channel specifies the TIM Channel +8038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be one of the following values: +8039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 +8040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 +8041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 +8042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 +8043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_5: TIM Channel 5 selected +8044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @arg TIM_CHANNEL_6: TIM Channel 6 selected +8045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @param ChannelState specifies the TIM Channel CCxE bit new state. +8046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * This parameter can be: TIM_CCx_ENABLE or TIM_CCx_DISABLE. +8047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** * @retval None +8048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** */ +8049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState) +8050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9161 .loc 1 8050 1 is_stmt 1 view -0 + 9162 .cfi_startproc + 9163 @ args = 0, pretend = 0, frame = 0 + 9164 @ frame_needed = 0, uses_anonymous_args = 0 + 9165 @ link register save eliminated. +8051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmp; + 9166 .loc 1 8051 3 view .LVU3038 +8052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + ARM GAS /tmp/cc0wMqvE.s page 345 + + +8054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CC1_INSTANCE(TIMx)); + 9167 .loc 1 8054 3 view .LVU3039 +8055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_CHANNELS(Channel)); + 9168 .loc 1 8055 3 view .LVU3040 +8056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** tmp = TIM_CCER_CC1E << (Channel & 0x1FU); /* 0x1FU = 31 bits max shift */ + 9169 .loc 1 8057 3 view .LVU3041 + 9170 .loc 1 8057 35 is_stmt 0 view .LVU3042 + 9171 0000 01F01F01 and r1, r1, #31 + 9172 .LVL783: + 9173 .loc 1 8057 7 view .LVU3043 + 9174 0004 4FF0010C mov ip, #1 + 9175 0008 0CFA01FC lsl ip, ip, r1 + 9176 .LVL784: +8058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Reset the CCxE Bit */ +8060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER &= ~tmp; + 9177 .loc 1 8060 3 is_stmt 1 view .LVU3044 + 9178 .loc 1 8060 7 is_stmt 0 view .LVU3045 + 9179 000c 036A ldr r3, [r0, #32] + 9180 .loc 1 8060 14 view .LVU3046 + 9181 000e 23EA0C03 bic r3, r3, ip + 9182 0012 0362 str r3, [r0, #32] +8061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** +8062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Set or reset the CCxE Bit */ +8063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIMx->CCER |= (uint32_t)(ChannelState << (Channel & 0x1FU)); /* 0x1FU = 31 bits max shift */ + 9183 .loc 1 8063 3 is_stmt 1 view .LVU3047 + 9184 .loc 1 8063 7 is_stmt 0 view .LVU3048 + 9185 0014 036A ldr r3, [r0, #32] + 9186 .loc 1 8063 41 view .LVU3049 + 9187 0016 8A40 lsls r2, r2, r1 + 9188 .LVL785: + 9189 .loc 1 8063 14 view .LVU3050 + 9190 0018 1343 orrs r3, r3, r2 + 9191 001a 0362 str r3, [r0, #32] +8064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9192 .loc 1 8064 1 view .LVU3051 + 9193 001c 7047 bx lr + 9194 .cfi_endproc + 9195 .LFE449: + 9197 .section .text.HAL_TIM_OC_Start,"ax",%progbits + 9198 .align 1 + 9199 .global HAL_TIM_OC_Start + 9200 .syntax unified + 9201 .thumb + 9202 .thumb_func + 9204 HAL_TIM_OC_Start: + 9205 .LVL786: + 9206 .LFB343: + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 9207 .loc 1 805 1 is_stmt 1 view -0 + 9208 .cfi_startproc + 9209 @ args = 0, pretend = 0, frame = 0 + 9210 @ frame_needed = 0, uses_anonymous_args = 0 + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 9211 .loc 1 805 1 is_stmt 0 view .LVU3053 + 9212 0000 10B5 push {r4, lr} + ARM GAS /tmp/cc0wMqvE.s page 346 + + + 9213 .LCFI85: + 9214 .cfi_def_cfa_offset 8 + 9215 .cfi_offset 4, -8 + 9216 .cfi_offset 14, -4 + 9217 0002 0446 mov r4, r0 + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9218 .loc 1 806 3 is_stmt 1 view .LVU3054 + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9219 .loc 1 809 3 view .LVU3055 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9220 .loc 1 812 3 view .LVU3056 + 9221 0004 1029 cmp r1, #16 + 9222 0006 3CD8 bhi .L591 + 9223 0008 DFE801F0 tbb [pc, r1] + 9224 .L593: + 9225 000c 09 .byte (.L597-.L593)/2 + 9226 000d 3B .byte (.L591-.L593)/2 + 9227 000e 3B .byte (.L591-.L593)/2 + 9228 000f 3B .byte (.L591-.L593)/2 + 9229 0010 1F .byte (.L596-.L593)/2 + 9230 0011 3B .byte (.L591-.L593)/2 + 9231 0012 3B .byte (.L591-.L593)/2 + 9232 0013 3B .byte (.L591-.L593)/2 + 9233 0014 26 .byte (.L595-.L593)/2 + 9234 0015 3B .byte (.L591-.L593)/2 + 9235 0016 3B .byte (.L591-.L593)/2 + 9236 0017 3B .byte (.L591-.L593)/2 + 9237 0018 2D .byte (.L594-.L593)/2 + 9238 0019 3B .byte (.L591-.L593)/2 + 9239 001a 3B .byte (.L591-.L593)/2 + 9240 001b 3B .byte (.L591-.L593)/2 + 9241 001c 34 .byte (.L592-.L593)/2 + 9242 001d 00 .p2align 1 + 9243 .L597: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9244 .loc 1 812 7 is_stmt 0 discriminator 1 view .LVU3057 + 9245 001e 90F83E30 ldrb r3, [r0, #62] @ zero_extendqisi2 + 9246 0022 DBB2 uxtb r3, r3 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9247 .loc 1 812 44 discriminator 1 view .LVU3058 + 9248 0024 013B subs r3, r3, #1 + 9249 0026 18BF it ne + 9250 0028 0123 movne r3, #1 + 9251 .L598: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9252 .loc 1 812 6 discriminator 20 view .LVU3059 + 9253 002a 002B cmp r3, #0 + 9254 002c 40F08E80 bne .L612 + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9255 .loc 1 818 3 is_stmt 1 view .LVU3060 + 9256 0030 1029 cmp r1, #16 + 9257 0032 79D8 bhi .L600 + 9258 0034 DFE801F0 tbb [pc, r1] + 9259 .L602: + 9260 0038 2C .byte (.L606-.L602)/2 + 9261 0039 78 .byte (.L600-.L602)/2 + 9262 003a 78 .byte (.L600-.L602)/2 + ARM GAS /tmp/cc0wMqvE.s page 347 + + + 9263 003b 78 .byte (.L600-.L602)/2 + 9264 003c 68 .byte (.L605-.L602)/2 + 9265 003d 78 .byte (.L600-.L602)/2 + 9266 003e 78 .byte (.L600-.L602)/2 + 9267 003f 78 .byte (.L600-.L602)/2 + 9268 0040 6C .byte (.L604-.L602)/2 + 9269 0041 78 .byte (.L600-.L602)/2 + 9270 0042 78 .byte (.L600-.L602)/2 + 9271 0043 78 .byte (.L600-.L602)/2 + 9272 0044 70 .byte (.L603-.L602)/2 + 9273 0045 78 .byte (.L600-.L602)/2 + 9274 0046 78 .byte (.L600-.L602)/2 + 9275 0047 78 .byte (.L600-.L602)/2 + 9276 0048 74 .byte (.L601-.L602)/2 + 9277 0049 00 .p2align 1 + 9278 .L596: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9279 .loc 1 812 7 is_stmt 0 discriminator 4 view .LVU3061 + 9280 004a 90F83F30 ldrb r3, [r0, #63] @ zero_extendqisi2 + 9281 004e DBB2 uxtb r3, r3 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9282 .loc 1 812 44 discriminator 4 view .LVU3062 + 9283 0050 013B subs r3, r3, #1 + 9284 0052 18BF it ne + 9285 0054 0123 movne r3, #1 + 9286 0056 E8E7 b .L598 + 9287 .L595: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9288 .loc 1 812 7 discriminator 7 view .LVU3063 + 9289 0058 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 9290 005c DBB2 uxtb r3, r3 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9291 .loc 1 812 44 discriminator 7 view .LVU3064 + 9292 005e 013B subs r3, r3, #1 + 9293 0060 18BF it ne + 9294 0062 0123 movne r3, #1 + 9295 0064 E1E7 b .L598 + 9296 .L594: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9297 .loc 1 812 7 discriminator 10 view .LVU3065 + 9298 0066 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 9299 006a DBB2 uxtb r3, r3 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9300 .loc 1 812 44 discriminator 10 view .LVU3066 + 9301 006c 013B subs r3, r3, #1 + 9302 006e 18BF it ne + 9303 0070 0123 movne r3, #1 + 9304 0072 DAE7 b .L598 + 9305 .L592: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9306 .loc 1 812 7 discriminator 13 view .LVU3067 + 9307 0074 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 + 9308 0078 DBB2 uxtb r3, r3 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9309 .loc 1 812 44 discriminator 13 view .LVU3068 + 9310 007a 013B subs r3, r3, #1 + 9311 007c 18BF it ne + ARM GAS /tmp/cc0wMqvE.s page 348 + + + 9312 007e 0123 movne r3, #1 + 9313 0080 D3E7 b .L598 + 9314 .L591: + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9315 .loc 1 812 7 discriminator 14 view .LVU3069 + 9316 0082 90F84330 ldrb r3, [r0, #67] @ zero_extendqisi2 + 9317 0086 DBB2 uxtb r3, r3 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9318 .loc 1 812 44 discriminator 14 view .LVU3070 + 9319 0088 013B subs r3, r3, #1 + 9320 008a 18BF it ne + 9321 008c 0123 movne r3, #1 + 9322 008e CCE7 b .L598 + 9323 .L606: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9324 .loc 1 818 3 discriminator 1 view .LVU3071 + 9325 0090 0223 movs r3, #2 + 9326 0092 84F83E30 strb r3, [r4, #62] + 9327 .L607: + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9328 .loc 1 821 3 is_stmt 1 view .LVU3072 + 9329 0096 0122 movs r2, #1 + 9330 0098 2068 ldr r0, [r4] + 9331 .LVL787: + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9332 .loc 1 821 3 is_stmt 0 view .LVU3073 + 9333 009a FFF7FEFF bl TIM_CCxChannelCmd + 9334 .LVL788: + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9335 .loc 1 823 3 is_stmt 1 view .LVU3074 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9336 .loc 1 823 7 is_stmt 0 view .LVU3075 + 9337 009e 2368 ldr r3, [r4] + 9338 00a0 2D4A ldr r2, .L616 + 9339 00a2 9342 cmp r3, r2 + 9340 00a4 0FD0 beq .L608 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9341 .loc 1 823 7 discriminator 2 view .LVU3076 + 9342 00a6 02F50062 add r2, r2, #2048 + 9343 00aa 9342 cmp r3, r2 + 9344 00ac 0BD0 beq .L608 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9345 .loc 1 823 7 discriminator 4 view .LVU3077 + 9346 00ae 02F54062 add r2, r2, #3072 + 9347 00b2 9342 cmp r3, r2 + 9348 00b4 07D0 beq .L608 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9349 .loc 1 823 7 discriminator 6 view .LVU3078 + 9350 00b6 02F58062 add r2, r2, #1024 + 9351 00ba 9342 cmp r3, r2 + 9352 00bc 03D0 beq .L608 + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9353 .loc 1 823 7 discriminator 8 view .LVU3079 + 9354 00be 02F58062 add r2, r2, #1024 + 9355 00c2 9342 cmp r3, r2 + 9356 00c4 03D1 bne .L609 + 9357 .L608: + ARM GAS /tmp/cc0wMqvE.s page 349 + + + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9358 .loc 1 826 5 is_stmt 1 view .LVU3080 + 9359 00c6 5A6C ldr r2, [r3, #68] + 9360 00c8 42F40042 orr r2, r2, #32768 + 9361 00cc 5A64 str r2, [r3, #68] + 9362 .L609: + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9363 .loc 1 830 3 view .LVU3081 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9364 .loc 1 830 7 is_stmt 0 view .LVU3082 + 9365 00ce 2368 ldr r3, [r4] + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9366 .loc 1 830 6 view .LVU3083 + 9367 00d0 214A ldr r2, .L616 + 9368 00d2 9342 cmp r3, r2 + 9369 00d4 2CD0 beq .L610 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9370 .loc 1 830 7 discriminator 1 view .LVU3084 + 9371 00d6 B3F1804F cmp r3, #1073741824 + 9372 00da 29D0 beq .L610 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9373 .loc 1 830 7 discriminator 2 view .LVU3085 + 9374 00dc A2F59432 sub r2, r2, #75776 + 9375 00e0 9342 cmp r3, r2 + 9376 00e2 25D0 beq .L610 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9377 .loc 1 830 7 discriminator 3 view .LVU3086 + 9378 00e4 02F58062 add r2, r2, #1024 + 9379 00e8 9342 cmp r3, r2 + 9380 00ea 21D0 beq .L610 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9381 .loc 1 830 7 discriminator 4 view .LVU3087 + 9382 00ec 02F59632 add r2, r2, #76800 + 9383 00f0 9342 cmp r3, r2 + 9384 00f2 1DD0 beq .L610 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9385 .loc 1 830 7 discriminator 5 view .LVU3088 + 9386 00f4 02F54062 add r2, r2, #3072 + 9387 00f8 9342 cmp r3, r2 + 9388 00fa 19D0 beq .L610 + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9389 .loc 1 840 5 is_stmt 1 view .LVU3089 + 9390 00fc 1A68 ldr r2, [r3] + 9391 00fe 42F00102 orr r2, r2, #1 + 9392 0102 1A60 str r2, [r3] + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9393 .loc 1 844 10 is_stmt 0 view .LVU3090 + 9394 0104 0020 movs r0, #0 + 9395 0106 22E0 b .L599 + 9396 .LVL789: + 9397 .L605: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9398 .loc 1 818 3 discriminator 3 view .LVU3091 + 9399 0108 0223 movs r3, #2 + 9400 010a 84F83F30 strb r3, [r4, #63] + 9401 010e C2E7 b .L607 + 9402 .L604: + ARM GAS /tmp/cc0wMqvE.s page 350 + + + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9403 .loc 1 818 3 discriminator 6 view .LVU3092 + 9404 0110 0223 movs r3, #2 + 9405 0112 84F84030 strb r3, [r4, #64] + 9406 0116 BEE7 b .L607 + 9407 .L603: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9408 .loc 1 818 3 discriminator 9 view .LVU3093 + 9409 0118 0223 movs r3, #2 + 9410 011a 84F84130 strb r3, [r4, #65] + 9411 011e BAE7 b .L607 + 9412 .L601: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9413 .loc 1 818 3 discriminator 12 view .LVU3094 + 9414 0120 0223 movs r3, #2 + 9415 0122 84F84230 strb r3, [r4, #66] + 9416 0126 B6E7 b .L607 + 9417 .L600: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9418 .loc 1 818 3 discriminator 13 view .LVU3095 + 9419 0128 0223 movs r3, #2 + 9420 012a 84F84330 strb r3, [r4, #67] + 9421 012e B2E7 b .L607 + 9422 .LVL790: + 9423 .L610: + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 9424 .loc 1 832 5 is_stmt 1 view .LVU3096 + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 9425 .loc 1 832 29 is_stmt 0 view .LVU3097 + 9426 0130 9968 ldr r1, [r3, #8] + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 9427 .loc 1 832 13 view .LVU3098 + 9428 0132 0A4A ldr r2, .L616+4 + 9429 0134 0A40 ands r2, r2, r1 + 9430 .LVL791: + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9431 .loc 1 833 5 is_stmt 1 view .LVU3099 + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9432 .loc 1 833 8 is_stmt 0 view .LVU3100 + 9433 0136 062A cmp r2, #6 + 9434 0138 0AD0 beq .L613 + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9435 .loc 1 833 9 discriminator 1 view .LVU3101 + 9436 013a B2F5803F cmp r2, #65536 + 9437 013e 09D0 beq .L614 + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9438 .loc 1 835 7 is_stmt 1 view .LVU3102 + 9439 0140 1A68 ldr r2, [r3] + 9440 .LVL792: + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9441 .loc 1 835 7 is_stmt 0 view .LVU3103 + 9442 0142 42F00102 orr r2, r2, #1 + 9443 0146 1A60 str r2, [r3] + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9444 .loc 1 844 10 view .LVU3104 + 9445 0148 0020 movs r0, #0 + 9446 014a 00E0 b .L599 + ARM GAS /tmp/cc0wMqvE.s page 351 + + + 9447 .LVL793: + 9448 .L612: + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9449 .loc 1 814 12 view .LVU3105 + 9450 014c 0120 movs r0, #1 + 9451 .LVL794: + 9452 .L599: + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9453 .loc 1 845 1 view .LVU3106 + 9454 014e 10BD pop {r4, pc} + 9455 .LVL795: + 9456 .L613: + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9457 .loc 1 844 10 view .LVU3107 + 9458 0150 0020 movs r0, #0 + 9459 0152 FCE7 b .L599 + 9460 .L614: + 9461 0154 0020 movs r0, #0 + 9462 0156 FAE7 b .L599 + 9463 .L617: + 9464 .align 2 + 9465 .L616: + 9466 0158 002C0140 .word 1073818624 + 9467 015c 07000100 .word 65543 + 9468 .cfi_endproc + 9469 .LFE343: + 9471 .section .text.HAL_TIM_OC_Stop,"ax",%progbits + 9472 .align 1 + 9473 .global HAL_TIM_OC_Stop + 9474 .syntax unified + 9475 .thumb + 9476 .thumb_func + 9478 HAL_TIM_OC_Stop: + 9479 .LVL796: + 9480 .LFB344: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 9481 .loc 1 861 1 is_stmt 1 view -0 + 9482 .cfi_startproc + 9483 @ args = 0, pretend = 0, frame = 0 + 9484 @ frame_needed = 0, uses_anonymous_args = 0 + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 9485 .loc 1 861 1 is_stmt 0 view .LVU3109 + 9486 0000 38B5 push {r3, r4, r5, lr} + 9487 .LCFI86: + 9488 .cfi_def_cfa_offset 16 + 9489 .cfi_offset 3, -16 + 9490 .cfi_offset 4, -12 + 9491 .cfi_offset 5, -8 + 9492 .cfi_offset 14, -4 + 9493 0002 0446 mov r4, r0 + 9494 0004 0D46 mov r5, r1 + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9495 .loc 1 863 3 is_stmt 1 view .LVU3110 + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9496 .loc 1 866 3 view .LVU3111 + 9497 0006 0022 movs r2, #0 + 9498 0008 0068 ldr r0, [r0] + ARM GAS /tmp/cc0wMqvE.s page 352 + + + 9499 .LVL797: + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9500 .loc 1 866 3 is_stmt 0 view .LVU3112 + 9501 000a FFF7FEFF bl TIM_CCxChannelCmd + 9502 .LVL798: + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9503 .loc 1 868 3 is_stmt 1 view .LVU3113 + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9504 .loc 1 868 7 is_stmt 0 view .LVU3114 + 9505 000e 2368 ldr r3, [r4] + 9506 0010 2A4A ldr r2, .L631 + 9507 0012 9342 cmp r3, r2 + 9508 0014 0FD0 beq .L619 + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9509 .loc 1 868 7 discriminator 2 view .LVU3115 + 9510 0016 02F50062 add r2, r2, #2048 + 9511 001a 9342 cmp r3, r2 + 9512 001c 0BD0 beq .L619 + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9513 .loc 1 868 7 discriminator 4 view .LVU3116 + 9514 001e 02F54062 add r2, r2, #3072 + 9515 0022 9342 cmp r3, r2 + 9516 0024 07D0 beq .L619 + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9517 .loc 1 868 7 discriminator 6 view .LVU3117 + 9518 0026 02F58062 add r2, r2, #1024 + 9519 002a 9342 cmp r3, r2 + 9520 002c 03D0 beq .L619 + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9521 .loc 1 868 7 discriminator 8 view .LVU3118 + 9522 002e 02F58062 add r2, r2, #1024 + 9523 0032 9342 cmp r3, r2 + 9524 0034 0DD1 bne .L620 + 9525 .L619: + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9526 .loc 1 871 5 is_stmt 1 view .LVU3119 + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9527 .loc 1 871 5 view .LVU3120 + 9528 0036 196A ldr r1, [r3, #32] + 9529 0038 41F21112 movw r2, #4369 + 9530 003c 1142 tst r1, r2 + 9531 003e 08D1 bne .L620 + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9532 .loc 1 871 5 discriminator 1 view .LVU3121 + 9533 0040 196A ldr r1, [r3, #32] + 9534 0042 44F24442 movw r2, #17476 + 9535 0046 1142 tst r1, r2 + 9536 0048 03D1 bne .L620 + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9537 .loc 1 871 5 discriminator 3 view .LVU3122 + 9538 004a 5A6C ldr r2, [r3, #68] + 9539 004c 22F40042 bic r2, r2, #32768 + 9540 0050 5A64 str r2, [r3, #68] + 9541 .L620: + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9542 .loc 1 871 5 discriminator 5 view .LVU3123 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 353 + + + 9543 .loc 1 875 3 discriminator 5 view .LVU3124 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9544 .loc 1 875 3 discriminator 5 view .LVU3125 + 9545 0052 2368 ldr r3, [r4] + 9546 0054 196A ldr r1, [r3, #32] + 9547 0056 41F21112 movw r2, #4369 + 9548 005a 1142 tst r1, r2 + 9549 005c 08D1 bne .L621 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9550 .loc 1 875 3 discriminator 1 view .LVU3126 + 9551 005e 196A ldr r1, [r3, #32] + 9552 0060 44F24442 movw r2, #17476 + 9553 0064 1142 tst r1, r2 + 9554 0066 03D1 bne .L621 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9555 .loc 1 875 3 discriminator 3 view .LVU3127 + 9556 0068 1A68 ldr r2, [r3] + 9557 006a 22F00102 bic r2, r2, #1 + 9558 006e 1A60 str r2, [r3] + 9559 .L621: + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9560 .loc 1 875 3 discriminator 5 view .LVU3128 + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9561 .loc 1 878 3 discriminator 5 view .LVU3129 + 9562 0070 25B9 cbnz r5, .L622 + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9563 .loc 1 878 3 is_stmt 0 discriminator 1 view .LVU3130 + 9564 0072 0123 movs r3, #1 + 9565 0074 84F83E30 strb r3, [r4, #62] + 9566 .LVL799: + 9567 .L623: + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9568 .loc 1 881 3 is_stmt 1 view .LVU3131 + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9569 .loc 1 882 1 is_stmt 0 view .LVU3132 + 9570 0078 0020 movs r0, #0 + 9571 007a 38BD pop {r3, r4, r5, pc} + 9572 .LVL800: + 9573 .L622: + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9574 .loc 1 882 1 view .LVU3133 + 9575 007c 043D subs r5, r5, #4 + 9576 .LVL801: + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9577 .loc 1 882 1 view .LVU3134 + 9578 007e 0C2D cmp r5, #12 + 9579 0080 18D8 bhi .L624 + 9580 0082 DFE805F0 tbb [pc, r5] + 9581 .L626: + 9582 0086 07 .byte (.L629-.L626)/2 + 9583 0087 17 .byte (.L624-.L626)/2 + 9584 0088 17 .byte (.L624-.L626)/2 + 9585 0089 17 .byte (.L624-.L626)/2 + 9586 008a 0B .byte (.L628-.L626)/2 + 9587 008b 17 .byte (.L624-.L626)/2 + 9588 008c 17 .byte (.L624-.L626)/2 + 9589 008d 17 .byte (.L624-.L626)/2 + ARM GAS /tmp/cc0wMqvE.s page 354 + + + 9590 008e 0F .byte (.L627-.L626)/2 + 9591 008f 17 .byte (.L624-.L626)/2 + 9592 0090 17 .byte (.L624-.L626)/2 + 9593 0091 17 .byte (.L624-.L626)/2 + 9594 0092 13 .byte (.L625-.L626)/2 + 9595 0093 00 .p2align 1 + 9596 .L629: + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9597 .loc 1 878 3 discriminator 3 view .LVU3135 + 9598 0094 0123 movs r3, #1 + 9599 0096 84F83F30 strb r3, [r4, #63] + 9600 009a EDE7 b .L623 + 9601 .L628: + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9602 .loc 1 878 3 discriminator 6 view .LVU3136 + 9603 009c 0123 movs r3, #1 + 9604 009e 84F84030 strb r3, [r4, #64] + 9605 00a2 E9E7 b .L623 + 9606 .L627: + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9607 .loc 1 878 3 discriminator 9 view .LVU3137 + 9608 00a4 0123 movs r3, #1 + 9609 00a6 84F84130 strb r3, [r4, #65] + 9610 00aa E5E7 b .L623 + 9611 .L625: + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9612 .loc 1 878 3 discriminator 12 view .LVU3138 + 9613 00ac 0123 movs r3, #1 + 9614 00ae 84F84230 strb r3, [r4, #66] + 9615 00b2 E1E7 b .L623 + 9616 .L624: + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9617 .loc 1 878 3 discriminator 13 view .LVU3139 + 9618 00b4 0123 movs r3, #1 + 9619 00b6 84F84330 strb r3, [r4, #67] + 9620 00ba DDE7 b .L623 + 9621 .L632: + 9622 .align 2 + 9623 .L631: + 9624 00bc 002C0140 .word 1073818624 + 9625 .cfi_endproc + 9626 .LFE344: + 9628 .section .text.HAL_TIM_OC_Start_IT,"ax",%progbits + 9629 .align 1 + 9630 .global HAL_TIM_OC_Start_IT + 9631 .syntax unified + 9632 .thumb + 9633 .thumb_func + 9635 HAL_TIM_OC_Start_IT: + 9636 .LVL802: + 9637 .LFB345: + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 9638 .loc 1 896 1 is_stmt 1 view -0 + 9639 .cfi_startproc + 9640 @ args = 0, pretend = 0, frame = 0 + 9641 @ frame_needed = 0, uses_anonymous_args = 0 + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + ARM GAS /tmp/cc0wMqvE.s page 355 + + + 9642 .loc 1 896 1 is_stmt 0 view .LVU3141 + 9643 0000 10B5 push {r4, lr} + 9644 .LCFI87: + 9645 .cfi_def_cfa_offset 8 + 9646 .cfi_offset 4, -8 + 9647 .cfi_offset 14, -4 + 9648 0002 0446 mov r4, r0 + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 9649 .loc 1 897 3 is_stmt 1 view .LVU3142 + 9650 .LVL803: + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9651 .loc 1 898 3 view .LVU3143 + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9652 .loc 1 901 3 view .LVU3144 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9653 .loc 1 904 3 view .LVU3145 + 9654 0004 1029 cmp r1, #16 + 9655 0006 3DD8 bhi .L634 + 9656 0008 DFE801F0 tbb [pc, r1] + 9657 .L636: + 9658 000c 09 .byte (.L640-.L636)/2 + 9659 000d 3C .byte (.L634-.L636)/2 + 9660 000e 3C .byte (.L634-.L636)/2 + 9661 000f 3C .byte (.L634-.L636)/2 + 9662 0010 20 .byte (.L639-.L636)/2 + 9663 0011 3C .byte (.L634-.L636)/2 + 9664 0012 3C .byte (.L634-.L636)/2 + 9665 0013 3C .byte (.L634-.L636)/2 + 9666 0014 27 .byte (.L638-.L636)/2 + 9667 0015 3C .byte (.L634-.L636)/2 + 9668 0016 3C .byte (.L634-.L636)/2 + 9669 0017 3C .byte (.L634-.L636)/2 + 9670 0018 2E .byte (.L637-.L636)/2 + 9671 0019 3C .byte (.L634-.L636)/2 + 9672 001a 3C .byte (.L634-.L636)/2 + 9673 001b 3C .byte (.L634-.L636)/2 + 9674 001c 35 .byte (.L635-.L636)/2 + 9675 001d 00 .p2align 1 + 9676 .L640: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9677 .loc 1 904 7 is_stmt 0 discriminator 1 view .LVU3146 + 9678 001e 90F83E30 ldrb r3, [r0, #62] @ zero_extendqisi2 + 9679 0022 DBB2 uxtb r3, r3 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9680 .loc 1 904 44 discriminator 1 view .LVU3147 + 9681 0024 013B subs r3, r3, #1 + 9682 0026 18BF it ne + 9683 0028 0123 movne r3, #1 + 9684 .L641: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9685 .loc 1 904 6 discriminator 20 view .LVU3148 + 9686 002a 002B cmp r3, #0 + 9687 002c 40F0C280 bne .L660 + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9688 .loc 1 910 3 is_stmt 1 view .LVU3149 + 9689 0030 1029 cmp r1, #16 + 9690 0032 00F28F80 bhi .L643 + ARM GAS /tmp/cc0wMqvE.s page 356 + + + 9691 0036 DFE801F0 tbb [pc, r1] + 9692 .L645: + 9693 003a 2C .byte (.L649-.L645)/2 + 9694 003b 8D .byte (.L643-.L645)/2 + 9695 003c 8D .byte (.L643-.L645)/2 + 9696 003d 8D .byte (.L643-.L645)/2 + 9697 003e 6D .byte (.L648-.L645)/2 + 9698 003f 8D .byte (.L643-.L645)/2 + 9699 0040 8D .byte (.L643-.L645)/2 + 9700 0041 8D .byte (.L643-.L645)/2 + 9701 0042 76 .byte (.L647-.L645)/2 + 9702 0043 8D .byte (.L643-.L645)/2 + 9703 0044 8D .byte (.L643-.L645)/2 + 9704 0045 8D .byte (.L643-.L645)/2 + 9705 0046 7F .byte (.L646-.L645)/2 + 9706 0047 8D .byte (.L643-.L645)/2 + 9707 0048 8D .byte (.L643-.L645)/2 + 9708 0049 8D .byte (.L643-.L645)/2 + 9709 004a 88 .byte (.L644-.L645)/2 + 9710 004b 00 .p2align 1 + 9711 .L639: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9712 .loc 1 904 7 is_stmt 0 discriminator 4 view .LVU3150 + 9713 004c 90F83F30 ldrb r3, [r0, #63] @ zero_extendqisi2 + 9714 0050 DBB2 uxtb r3, r3 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9715 .loc 1 904 44 discriminator 4 view .LVU3151 + 9716 0052 013B subs r3, r3, #1 + 9717 0054 18BF it ne + 9718 0056 0123 movne r3, #1 + 9719 0058 E7E7 b .L641 + 9720 .L638: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9721 .loc 1 904 7 discriminator 7 view .LVU3152 + 9722 005a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 9723 005e DBB2 uxtb r3, r3 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9724 .loc 1 904 44 discriminator 7 view .LVU3153 + 9725 0060 013B subs r3, r3, #1 + 9726 0062 18BF it ne + 9727 0064 0123 movne r3, #1 + 9728 0066 E0E7 b .L641 + 9729 .L637: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9730 .loc 1 904 7 discriminator 10 view .LVU3154 + 9731 0068 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 9732 006c DBB2 uxtb r3, r3 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9733 .loc 1 904 44 discriminator 10 view .LVU3155 + 9734 006e 013B subs r3, r3, #1 + 9735 0070 18BF it ne + 9736 0072 0123 movne r3, #1 + 9737 0074 D9E7 b .L641 + 9738 .L635: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9739 .loc 1 904 7 discriminator 13 view .LVU3156 + 9740 0076 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 + ARM GAS /tmp/cc0wMqvE.s page 357 + + + 9741 007a DBB2 uxtb r3, r3 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9742 .loc 1 904 44 discriminator 13 view .LVU3157 + 9743 007c 013B subs r3, r3, #1 + 9744 007e 18BF it ne + 9745 0080 0123 movne r3, #1 + 9746 0082 D2E7 b .L641 + 9747 .L634: + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9748 .loc 1 904 7 discriminator 14 view .LVU3158 + 9749 0084 90F84330 ldrb r3, [r0, #67] @ zero_extendqisi2 + 9750 0088 DBB2 uxtb r3, r3 + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9751 .loc 1 904 44 discriminator 14 view .LVU3159 + 9752 008a 013B subs r3, r3, #1 + 9753 008c 18BF it ne + 9754 008e 0123 movne r3, #1 + 9755 0090 CBE7 b .L641 + 9756 .L649: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9757 .loc 1 910 3 view .LVU3160 + 9758 0092 0223 movs r3, #2 + 9759 0094 84F83E30 strb r3, [r4, #62] + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9760 .loc 1 912 3 is_stmt 1 view .LVU3161 + 9761 .L650: + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 9762 .loc 1 917 7 view .LVU3162 + 9763 0098 2268 ldr r2, [r4] + 9764 009a D368 ldr r3, [r2, #12] + 9765 009c 43F00203 orr r3, r3, #2 + 9766 00a0 D360 str r3, [r2, #12] + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9767 .loc 1 918 7 view .LVU3163 + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9768 .loc 1 947 3 view .LVU3164 + 9769 .L655: + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9770 .loc 1 950 5 view .LVU3165 + 9771 00a2 0122 movs r2, #1 + 9772 00a4 2068 ldr r0, [r4] + 9773 .LVL804: + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9774 .loc 1 950 5 is_stmt 0 view .LVU3166 + 9775 00a6 FFF7FEFF bl TIM_CCxChannelCmd + 9776 .LVL805: + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9777 .loc 1 952 5 is_stmt 1 view .LVU3167 + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9778 .loc 1 952 9 is_stmt 0 view .LVU3168 + 9779 00aa 2368 ldr r3, [r4] + 9780 00ac 454A ldr r2, .L669 + 9781 00ae 9342 cmp r3, r2 + 9782 00b0 0FD0 beq .L656 + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9783 .loc 1 952 9 discriminator 2 view .LVU3169 + 9784 00b2 02F50062 add r2, r2, #2048 + ARM GAS /tmp/cc0wMqvE.s page 358 + + + 9785 00b6 9342 cmp r3, r2 + 9786 00b8 0BD0 beq .L656 + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9787 .loc 1 952 9 discriminator 4 view .LVU3170 + 9788 00ba 02F54062 add r2, r2, #3072 + 9789 00be 9342 cmp r3, r2 + 9790 00c0 07D0 beq .L656 + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9791 .loc 1 952 9 discriminator 6 view .LVU3171 + 9792 00c2 02F58062 add r2, r2, #1024 + 9793 00c6 9342 cmp r3, r2 + 9794 00c8 03D0 beq .L656 + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9795 .loc 1 952 9 discriminator 8 view .LVU3172 + 9796 00ca 02F58062 add r2, r2, #1024 + 9797 00ce 9342 cmp r3, r2 + 9798 00d0 03D1 bne .L657 + 9799 .L656: + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9800 .loc 1 955 7 is_stmt 1 view .LVU3173 + 9801 00d2 5A6C ldr r2, [r3, #68] + 9802 00d4 42F40042 orr r2, r2, #32768 + 9803 00d8 5A64 str r2, [r3, #68] + 9804 .L657: + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9805 .loc 1 959 5 view .LVU3174 + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9806 .loc 1 959 9 is_stmt 0 view .LVU3175 + 9807 00da 2368 ldr r3, [r4] + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9808 .loc 1 959 8 view .LVU3176 + 9809 00dc 394A ldr r2, .L669 + 9810 00de 9342 cmp r3, r2 + 9811 00e0 5AD0 beq .L658 + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9812 .loc 1 959 9 discriminator 1 view .LVU3177 + 9813 00e2 B3F1804F cmp r3, #1073741824 + 9814 00e6 57D0 beq .L658 + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9815 .loc 1 959 9 discriminator 2 view .LVU3178 + 9816 00e8 A2F59432 sub r2, r2, #75776 + 9817 00ec 9342 cmp r3, r2 + 9818 00ee 53D0 beq .L658 + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9819 .loc 1 959 9 discriminator 3 view .LVU3179 + 9820 00f0 02F58062 add r2, r2, #1024 + 9821 00f4 9342 cmp r3, r2 + 9822 00f6 4FD0 beq .L658 + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9823 .loc 1 959 9 discriminator 4 view .LVU3180 + 9824 00f8 02F59632 add r2, r2, #76800 + 9825 00fc 9342 cmp r3, r2 + 9826 00fe 4BD0 beq .L658 + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9827 .loc 1 959 9 discriminator 5 view .LVU3181 + 9828 0100 02F54062 add r2, r2, #3072 + 9829 0104 9342 cmp r3, r2 + ARM GAS /tmp/cc0wMqvE.s page 359 + + + 9830 0106 47D0 beq .L658 + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9831 .loc 1 969 7 is_stmt 1 view .LVU3182 + 9832 0108 1A68 ldr r2, [r3] + 9833 010a 42F00102 orr r2, r2, #1 + 9834 010e 1A60 str r2, [r3] + 9835 0110 0020 movs r0, #0 + 9836 0112 50E0 b .L642 + 9837 .LVL806: + 9838 .L648: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9839 .loc 1 910 3 is_stmt 0 view .LVU3183 + 9840 0114 0223 movs r3, #2 + 9841 0116 84F83F30 strb r3, [r4, #63] + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9842 .loc 1 912 3 is_stmt 1 view .LVU3184 + 9843 .L651: + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 9844 .loc 1 924 7 view .LVU3185 + 9845 011a 2268 ldr r2, [r4] + 9846 011c D368 ldr r3, [r2, #12] + 9847 011e 43F00403 orr r3, r3, #4 + 9848 0122 D360 str r3, [r2, #12] + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9849 .loc 1 925 7 view .LVU3186 + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9850 .loc 1 947 3 view .LVU3187 + 9851 0124 BDE7 b .L655 + 9852 .L647: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9853 .loc 1 910 3 is_stmt 0 view .LVU3188 + 9854 0126 0223 movs r3, #2 + 9855 0128 84F84030 strb r3, [r4, #64] + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9856 .loc 1 912 3 is_stmt 1 view .LVU3189 + 9857 .L652: + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 9858 .loc 1 931 7 view .LVU3190 + 9859 012c 2268 ldr r2, [r4] + 9860 012e D368 ldr r3, [r2, #12] + 9861 0130 43F00803 orr r3, r3, #8 + 9862 0134 D360 str r3, [r2, #12] + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9863 .loc 1 932 7 view .LVU3191 + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9864 .loc 1 947 3 view .LVU3192 + 9865 0136 B4E7 b .L655 + 9866 .L646: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9867 .loc 1 910 3 is_stmt 0 view .LVU3193 + 9868 0138 0223 movs r3, #2 + 9869 013a 84F84130 strb r3, [r4, #65] + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9870 .loc 1 912 3 is_stmt 1 view .LVU3194 + 9871 .L653: + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 9872 .loc 1 938 7 view .LVU3195 + ARM GAS /tmp/cc0wMqvE.s page 360 + + + 9873 013e 2268 ldr r2, [r4] + 9874 0140 D368 ldr r3, [r2, #12] + 9875 0142 43F01003 orr r3, r3, #16 + 9876 0146 D360 str r3, [r2, #12] + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9877 .loc 1 939 7 view .LVU3196 + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9878 .loc 1 947 3 view .LVU3197 + 9879 0148 ABE7 b .L655 + 9880 .L644: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9881 .loc 1 910 3 is_stmt 0 view .LVU3198 + 9882 014a 0223 movs r3, #2 + 9883 014c 84F84230 strb r3, [r4, #66] + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9884 .loc 1 912 3 is_stmt 1 view .LVU3199 + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9885 .loc 1 910 3 is_stmt 0 view .LVU3200 + 9886 0150 0120 movs r0, #1 + 9887 .LVL807: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9888 .loc 1 910 3 view .LVU3201 + 9889 0152 30E0 b .L642 + 9890 .LVL808: + 9891 .L643: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9892 .loc 1 910 3 discriminator 13 view .LVU3202 + 9893 0154 0223 movs r3, #2 + 9894 0156 84F84330 strb r3, [r4, #67] + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9895 .loc 1 912 3 is_stmt 1 discriminator 13 view .LVU3203 + 9896 015a 0C29 cmp r1, #12 + 9897 015c 2CD8 bhi .L661 + 9898 015e 01A3 adr r3, .L654 + 9899 0160 53F821F0 ldr pc, [r3, r1, lsl #2] + 9900 .p2align 2 + 9901 .L654: + 9902 0164 99000000 .word .L650+1 + 9903 0168 B9010000 .word .L661+1 + 9904 016c B9010000 .word .L661+1 + 9905 0170 B9010000 .word .L661+1 + 9906 0174 1B010000 .word .L651+1 + 9907 0178 B9010000 .word .L661+1 + 9908 017c B9010000 .word .L661+1 + 9909 0180 B9010000 .word .L661+1 + 9910 0184 2D010000 .word .L652+1 + 9911 0188 B9010000 .word .L661+1 + 9912 018c B9010000 .word .L661+1 + 9913 0190 B9010000 .word .L661+1 + 9914 0194 3F010000 .word .L653+1 + 9915 .LVL809: + 9916 .p2align 1 + 9917 .L658: + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 9918 .loc 1 961 7 view .LVU3204 + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 9919 .loc 1 961 31 is_stmt 0 view .LVU3205 + ARM GAS /tmp/cc0wMqvE.s page 361 + + + 9920 0198 9968 ldr r1, [r3, #8] + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 9921 .loc 1 961 15 view .LVU3206 + 9922 019a 0B4A ldr r2, .L669+4 + 9923 019c 0A40 ands r2, r2, r1 + 9924 .LVL810: + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9925 .loc 1 962 7 is_stmt 1 view .LVU3207 + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9926 .loc 1 962 10 is_stmt 0 view .LVU3208 + 9927 019e 062A cmp r2, #6 + 9928 01a0 0CD0 beq .L662 + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9929 .loc 1 962 11 discriminator 1 view .LVU3209 + 9930 01a2 B2F5803F cmp r2, #65536 + 9931 01a6 0BD0 beq .L663 + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9932 .loc 1 964 9 is_stmt 1 view .LVU3210 + 9933 01a8 1A68 ldr r2, [r3] + 9934 .LVL811: + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9935 .loc 1 964 9 is_stmt 0 view .LVU3211 + 9936 01aa 42F00102 orr r2, r2, #1 + 9937 01ae 1A60 str r2, [r3] + 9938 01b0 0020 movs r0, #0 + 9939 01b2 00E0 b .L642 + 9940 .LVL812: + 9941 .L660: + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 9942 .loc 1 906 12 view .LVU3212 + 9943 01b4 0120 movs r0, #1 + 9944 .LVL813: + 9945 .L642: + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9946 .loc 1 975 1 view .LVU3213 + 9947 01b6 10BD pop {r4, pc} + 9948 .LVL814: + 9949 .L661: + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9950 .loc 1 912 3 view .LVU3214 + 9951 01b8 0120 movs r0, #1 + 9952 .LVL815: + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9953 .loc 1 912 3 view .LVU3215 + 9954 01ba FCE7 b .L642 + 9955 .LVL816: + 9956 .L662: + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9957 .loc 1 912 3 view .LVU3216 + 9958 01bc 0020 movs r0, #0 + 9959 01be FAE7 b .L642 + 9960 .L663: + 9961 01c0 0020 movs r0, #0 + 9962 01c2 F8E7 b .L642 + 9963 .L670: + 9964 .align 2 + 9965 .L669: + ARM GAS /tmp/cc0wMqvE.s page 362 + + + 9966 01c4 002C0140 .word 1073818624 + 9967 01c8 07000100 .word 65543 + 9968 .cfi_endproc + 9969 .LFE345: + 9971 .section .text.HAL_TIM_OC_Stop_IT,"ax",%progbits + 9972 .align 1 + 9973 .global HAL_TIM_OC_Stop_IT + 9974 .syntax unified + 9975 .thumb + 9976 .thumb_func + 9978 HAL_TIM_OC_Stop_IT: + 9979 .LVL817: + 9980 .LFB346: + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 9981 .loc 1 989 1 is_stmt 1 view -0 + 9982 .cfi_startproc + 9983 @ args = 0, pretend = 0, frame = 0 + 9984 @ frame_needed = 0, uses_anonymous_args = 0 + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 9985 .loc 1 989 1 is_stmt 0 view .LVU3218 + 9986 0000 38B5 push {r3, r4, r5, lr} + 9987 .LCFI88: + 9988 .cfi_def_cfa_offset 16 + 9989 .cfi_offset 3, -16 + 9990 .cfi_offset 4, -12 + 9991 .cfi_offset 5, -8 + 9992 .cfi_offset 14, -4 + 9993 0002 0546 mov r5, r0 + 9994 0004 0C46 mov r4, r1 + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9995 .loc 1 990 3 is_stmt 1 view .LVU3219 + 9996 .LVL818: + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 9997 .loc 1 993 3 view .LVU3220 + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 9998 .loc 1 995 3 view .LVU3221 + 9999 0006 0C29 cmp r1, #12 + 10000 0008 00F28180 bhi .L689 + 10001 000c DFE801F0 tbb [pc, r1] + 10002 .L674: + 10003 0010 07 .byte (.L677-.L674)/2 + 10004 0011 7F .byte (.L689-.L674)/2 + 10005 0012 7F .byte (.L689-.L674)/2 + 10006 0013 7F .byte (.L689-.L674)/2 + 10007 0014 48 .byte (.L676-.L674)/2 + 10008 0015 7F .byte (.L689-.L674)/2 + 10009 0016 7F .byte (.L689-.L674)/2 + 10010 0017 7F .byte (.L689-.L674)/2 + 10011 0018 4E .byte (.L675-.L674)/2 + 10012 0019 7F .byte (.L689-.L674)/2 + 10013 001a 7F .byte (.L689-.L674)/2 + 10014 001b 7F .byte (.L689-.L674)/2 + 10015 001c 54 .byte (.L673-.L674)/2 + 10016 001d 00 .p2align 1 + 10017 .L677: +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10018 .loc 1 1000 7 view .LVU3222 + ARM GAS /tmp/cc0wMqvE.s page 363 + + + 10019 001e 0268 ldr r2, [r0] + 10020 0020 D368 ldr r3, [r2, #12] + 10021 0022 23F00203 bic r3, r3, #2 + 10022 0026 D360 str r3, [r2, #12] +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10023 .loc 1 1001 7 view .LVU3223 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10024 .loc 1 1030 3 view .LVU3224 + 10025 .L678: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10026 .loc 1 1033 5 view .LVU3225 + 10027 0028 0022 movs r2, #0 + 10028 002a 2146 mov r1, r4 + 10029 .LVL819: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10030 .loc 1 1033 5 is_stmt 0 view .LVU3226 + 10031 002c 2868 ldr r0, [r5] + 10032 .LVL820: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10033 .loc 1 1033 5 view .LVU3227 + 10034 002e FFF7FEFF bl TIM_CCxChannelCmd + 10035 .LVL821: +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10036 .loc 1 1035 5 is_stmt 1 view .LVU3228 +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10037 .loc 1 1035 9 is_stmt 0 view .LVU3229 + 10038 0032 2B68 ldr r3, [r5] + 10039 0034 374A ldr r2, .L691 + 10040 0036 9342 cmp r3, r2 + 10041 0038 0FD0 beq .L679 +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10042 .loc 1 1035 9 discriminator 2 view .LVU3230 + 10043 003a 02F50062 add r2, r2, #2048 + 10044 003e 9342 cmp r3, r2 + 10045 0040 0BD0 beq .L679 +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10046 .loc 1 1035 9 discriminator 4 view .LVU3231 + 10047 0042 02F54062 add r2, r2, #3072 + 10048 0046 9342 cmp r3, r2 + 10049 0048 07D0 beq .L679 +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10050 .loc 1 1035 9 discriminator 6 view .LVU3232 + 10051 004a 02F58062 add r2, r2, #1024 + 10052 004e 9342 cmp r3, r2 + 10053 0050 03D0 beq .L679 +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10054 .loc 1 1035 9 discriminator 8 view .LVU3233 + 10055 0052 02F58062 add r2, r2, #1024 + 10056 0056 9342 cmp r3, r2 + 10057 0058 0DD1 bne .L680 + 10058 .L679: +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10059 .loc 1 1038 7 is_stmt 1 view .LVU3234 +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10060 .loc 1 1038 7 view .LVU3235 + 10061 005a 196A ldr r1, [r3, #32] + 10062 005c 41F21112 movw r2, #4369 + ARM GAS /tmp/cc0wMqvE.s page 364 + + + 10063 0060 1142 tst r1, r2 + 10064 0062 08D1 bne .L680 +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10065 .loc 1 1038 7 discriminator 1 view .LVU3236 + 10066 0064 196A ldr r1, [r3, #32] + 10067 0066 44F24442 movw r2, #17476 + 10068 006a 1142 tst r1, r2 + 10069 006c 03D1 bne .L680 +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10070 .loc 1 1038 7 discriminator 3 view .LVU3237 + 10071 006e 5A6C ldr r2, [r3, #68] + 10072 0070 22F40042 bic r2, r2, #32768 + 10073 0074 5A64 str r2, [r3, #68] + 10074 .L680: +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10075 .loc 1 1038 7 discriminator 5 view .LVU3238 +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10076 .loc 1 1042 5 discriminator 5 view .LVU3239 +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10077 .loc 1 1042 5 discriminator 5 view .LVU3240 + 10078 0076 2B68 ldr r3, [r5] + 10079 0078 196A ldr r1, [r3, #32] + 10080 007a 41F21112 movw r2, #4369 + 10081 007e 1142 tst r1, r2 + 10082 0080 08D1 bne .L681 +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10083 .loc 1 1042 5 discriminator 1 view .LVU3241 + 10084 0082 196A ldr r1, [r3, #32] + 10085 0084 44F24442 movw r2, #17476 + 10086 0088 1142 tst r1, r2 + 10087 008a 03D1 bne .L681 +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10088 .loc 1 1042 5 discriminator 3 view .LVU3242 + 10089 008c 1A68 ldr r2, [r3] + 10090 008e 22F00102 bic r2, r2, #1 + 10091 0092 1A60 str r2, [r3] + 10092 .L681: +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10093 .loc 1 1042 5 discriminator 5 view .LVU3243 +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10094 .loc 1 1045 5 discriminator 5 view .LVU3244 + 10095 0094 B4B9 cbnz r4, .L682 +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10096 .loc 1 1045 5 is_stmt 0 discriminator 1 view .LVU3245 + 10097 0096 0123 movs r3, #1 + 10098 0098 85F83E30 strb r3, [r5, #62] + 10099 009c 0020 movs r0, #0 + 10100 009e 37E0 b .L672 + 10101 .LVL822: + 10102 .L676: +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10103 .loc 1 1007 7 is_stmt 1 view .LVU3246 + 10104 00a0 0268 ldr r2, [r0] + 10105 00a2 D368 ldr r3, [r2, #12] + 10106 00a4 23F00403 bic r3, r3, #4 + 10107 00a8 D360 str r3, [r2, #12] +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 365 + + + 10108 .loc 1 1008 7 view .LVU3247 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10109 .loc 1 1030 3 view .LVU3248 + 10110 00aa BDE7 b .L678 + 10111 .L675: +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10112 .loc 1 1014 7 view .LVU3249 + 10113 00ac 0268 ldr r2, [r0] + 10114 00ae D368 ldr r3, [r2, #12] + 10115 00b0 23F00803 bic r3, r3, #8 + 10116 00b4 D360 str r3, [r2, #12] +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10117 .loc 1 1015 7 view .LVU3250 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10118 .loc 1 1030 3 view .LVU3251 + 10119 00b6 B7E7 b .L678 + 10120 .L673: +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10121 .loc 1 1021 7 view .LVU3252 + 10122 00b8 0268 ldr r2, [r0] + 10123 00ba D368 ldr r3, [r2, #12] + 10124 00bc 23F01003 bic r3, r3, #16 + 10125 00c0 D360 str r3, [r2, #12] +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10126 .loc 1 1022 7 view .LVU3253 +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10127 .loc 1 1030 3 view .LVU3254 + 10128 00c2 B1E7 b .L678 + 10129 .LVL823: + 10130 .L682: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10131 .loc 1 1030 3 is_stmt 0 view .LVU3255 + 10132 00c4 043C subs r4, r4, #4 + 10133 .LVL824: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10134 .loc 1 1030 3 view .LVU3256 + 10135 00c6 0C2C cmp r4, #12 + 10136 00c8 1CD8 bhi .L683 + 10137 00ca DFE804F0 tbb [pc, r4] + 10138 .L685: + 10139 00ce 07 .byte (.L688-.L685)/2 + 10140 00cf 1B .byte (.L683-.L685)/2 + 10141 00d0 1B .byte (.L683-.L685)/2 + 10142 00d1 1B .byte (.L683-.L685)/2 + 10143 00d2 0C .byte (.L687-.L685)/2 + 10144 00d3 1B .byte (.L683-.L685)/2 + 10145 00d4 1B .byte (.L683-.L685)/2 + 10146 00d5 1B .byte (.L683-.L685)/2 + 10147 00d6 11 .byte (.L686-.L685)/2 + 10148 00d7 1B .byte (.L683-.L685)/2 + 10149 00d8 1B .byte (.L683-.L685)/2 + 10150 00d9 1B .byte (.L683-.L685)/2 + 10151 00da 16 .byte (.L684-.L685)/2 + 10152 00db 00 .p2align 1 + 10153 .L688: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10154 .loc 1 1045 5 discriminator 3 view .LVU3257 + ARM GAS /tmp/cc0wMqvE.s page 366 + + + 10155 00dc 0123 movs r3, #1 + 10156 00de 85F83F30 strb r3, [r5, #63] + 10157 00e2 0020 movs r0, #0 + 10158 00e4 14E0 b .L672 + 10159 .L687: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10160 .loc 1 1045 5 discriminator 6 view .LVU3258 + 10161 00e6 0123 movs r3, #1 + 10162 00e8 85F84030 strb r3, [r5, #64] + 10163 00ec 0020 movs r0, #0 + 10164 00ee 0FE0 b .L672 + 10165 .L686: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10166 .loc 1 1045 5 discriminator 9 view .LVU3259 + 10167 00f0 0123 movs r3, #1 + 10168 00f2 85F84130 strb r3, [r5, #65] + 10169 00f6 0020 movs r0, #0 + 10170 00f8 0AE0 b .L672 + 10171 .L684: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10172 .loc 1 1045 5 discriminator 12 view .LVU3260 + 10173 00fa 0123 movs r3, #1 + 10174 00fc 85F84230 strb r3, [r5, #66] + 10175 0100 0020 movs r0, #0 + 10176 0102 05E0 b .L672 + 10177 .L683: +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10178 .loc 1 1045 5 discriminator 13 view .LVU3261 + 10179 0104 0123 movs r3, #1 + 10180 0106 85F84330 strb r3, [r5, #67] + 10181 010a 0020 movs r0, #0 + 10182 010c 00E0 b .L672 + 10183 .LVL825: + 10184 .L689: + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10185 .loc 1 995 3 view .LVU3262 + 10186 010e 0120 movs r0, #1 + 10187 .LVL826: + 10188 .L672: +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10189 .loc 1 1049 3 is_stmt 1 view .LVU3263 +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10190 .loc 1 1050 1 is_stmt 0 view .LVU3264 + 10191 0110 38BD pop {r3, r4, r5, pc} + 10192 .LVL827: + 10193 .L692: +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10194 .loc 1 1050 1 view .LVU3265 + 10195 0112 00BF .align 2 + 10196 .L691: + 10197 0114 002C0140 .word 1073818624 + 10198 .cfi_endproc + 10199 .LFE346: + 10201 .section .text.HAL_TIM_OC_Start_DMA,"ax",%progbits + 10202 .align 1 + 10203 .global HAL_TIM_OC_Start_DMA + 10204 .syntax unified + ARM GAS /tmp/cc0wMqvE.s page 367 + + + 10205 .thumb + 10206 .thumb_func + 10208 HAL_TIM_OC_Start_DMA: + 10209 .LVL828: + 10210 .LFB347: +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 10211 .loc 1 1066 1 is_stmt 1 view -0 + 10212 .cfi_startproc + 10213 @ args = 0, pretend = 0, frame = 0 + 10214 @ frame_needed = 0, uses_anonymous_args = 0 +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 10215 .loc 1 1066 1 is_stmt 0 view .LVU3267 + 10216 0000 38B5 push {r3, r4, r5, lr} + 10217 .LCFI89: + 10218 .cfi_def_cfa_offset 16 + 10219 .cfi_offset 3, -16 + 10220 .cfi_offset 4, -12 + 10221 .cfi_offset 5, -8 + 10222 .cfi_offset 14, -4 + 10223 0002 0446 mov r4, r0 + 10224 0004 0D46 mov r5, r1 + 10225 0006 1146 mov r1, r2 + 10226 .LVL829: +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 10227 .loc 1 1067 3 is_stmt 1 view .LVU3268 +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10228 .loc 1 1068 3 view .LVU3269 +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10229 .loc 1 1071 3 view .LVU3270 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10230 .loc 1 1074 3 view .LVU3271 + 10231 0008 102D cmp r5, #16 + 10232 000a 41D8 bhi .L694 + 10233 000c DFE805F0 tbb [pc, r5] + 10234 .LVL830: + 10235 .L696: + 10236 0010 09 .byte (.L700-.L696)/2 + 10237 0011 40 .byte (.L694-.L696)/2 + 10238 0012 40 .byte (.L694-.L696)/2 + 10239 0013 40 .byte (.L694-.L696)/2 + 10240 0014 20 .byte (.L699-.L696)/2 + 10241 0015 40 .byte (.L694-.L696)/2 + 10242 0016 40 .byte (.L694-.L696)/2 + 10243 0017 40 .byte (.L694-.L696)/2 + 10244 0018 28 .byte (.L698-.L696)/2 + 10245 0019 40 .byte (.L694-.L696)/2 + 10246 001a 40 .byte (.L694-.L696)/2 + 10247 001b 40 .byte (.L694-.L696)/2 + 10248 001c 30 .byte (.L697-.L696)/2 + 10249 001d 40 .byte (.L694-.L696)/2 + 10250 001e 40 .byte (.L694-.L696)/2 + 10251 001f 40 .byte (.L694-.L696)/2 + 10252 0020 38 .byte (.L695-.L696)/2 + 10253 0021 00 .p2align 1 + 10254 .L700: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10255 .loc 1 1074 7 is_stmt 0 discriminator 1 view .LVU3272 + ARM GAS /tmp/cc0wMqvE.s page 368 + + + 10256 0022 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 10257 .LVL831: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10258 .loc 1 1074 7 discriminator 1 view .LVU3273 + 10259 0026 C0B2 uxtb r0, r0 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10260 .loc 1 1074 44 discriminator 1 view .LVU3274 + 10261 0028 0228 cmp r0, #2 + 10262 002a 14BF ite ne + 10263 002c 0020 movne r0, #0 + 10264 002e 0120 moveq r0, #1 + 10265 .L701: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10266 .loc 1 1074 6 discriminator 20 view .LVU3275 + 10267 0030 0028 cmp r0, #0 + 10268 0032 40F05981 bne .L729 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10269 .loc 1 1078 8 is_stmt 1 view .LVU3276 + 10270 0036 102D cmp r5, #16 + 10271 0038 74D8 bhi .L703 + 10272 003a DFE805F0 tbb [pc, r5] + 10273 .L705: + 10274 003e 31 .byte (.L709-.L705)/2 + 10275 003f 73 .byte (.L703-.L705)/2 + 10276 0040 73 .byte (.L703-.L705)/2 + 10277 0041 73 .byte (.L703-.L705)/2 + 10278 0042 53 .byte (.L708-.L705)/2 + 10279 0043 73 .byte (.L703-.L705)/2 + 10280 0044 73 .byte (.L703-.L705)/2 + 10281 0045 73 .byte (.L703-.L705)/2 + 10282 0046 5B .byte (.L707-.L705)/2 + 10283 0047 73 .byte (.L703-.L705)/2 + 10284 0048 73 .byte (.L703-.L705)/2 + 10285 0049 73 .byte (.L703-.L705)/2 + 10286 004a 63 .byte (.L706-.L705)/2 + 10287 004b 73 .byte (.L703-.L705)/2 + 10288 004c 73 .byte (.L703-.L705)/2 + 10289 004d 73 .byte (.L703-.L705)/2 + 10290 004e 6B .byte (.L704-.L705)/2 + 10291 .LVL832: + 10292 004f 00 .p2align 1 + 10293 .L699: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10294 .loc 1 1074 7 is_stmt 0 discriminator 4 view .LVU3277 + 10295 0050 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 10296 .LVL833: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10297 .loc 1 1074 7 discriminator 4 view .LVU3278 + 10298 0054 C0B2 uxtb r0, r0 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10299 .loc 1 1074 44 discriminator 4 view .LVU3279 + 10300 0056 0228 cmp r0, #2 + 10301 0058 14BF ite ne + 10302 005a 0020 movne r0, #0 + 10303 005c 0120 moveq r0, #1 + 10304 005e E7E7 b .L701 + 10305 .LVL834: + ARM GAS /tmp/cc0wMqvE.s page 369 + + + 10306 .L698: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10307 .loc 1 1074 7 discriminator 7 view .LVU3280 + 10308 0060 90F84000 ldrb r0, [r0, #64] @ zero_extendqisi2 + 10309 .LVL835: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10310 .loc 1 1074 7 discriminator 7 view .LVU3281 + 10311 0064 C0B2 uxtb r0, r0 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10312 .loc 1 1074 44 discriminator 7 view .LVU3282 + 10313 0066 0228 cmp r0, #2 + 10314 0068 14BF ite ne + 10315 006a 0020 movne r0, #0 + 10316 006c 0120 moveq r0, #1 + 10317 006e DFE7 b .L701 + 10318 .LVL836: + 10319 .L697: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10320 .loc 1 1074 7 discriminator 10 view .LVU3283 + 10321 0070 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 10322 .LVL837: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10323 .loc 1 1074 7 discriminator 10 view .LVU3284 + 10324 0074 C0B2 uxtb r0, r0 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10325 .loc 1 1074 44 discriminator 10 view .LVU3285 + 10326 0076 0228 cmp r0, #2 + 10327 0078 14BF ite ne + 10328 007a 0020 movne r0, #0 + 10329 007c 0120 moveq r0, #1 + 10330 007e D7E7 b .L701 + 10331 .LVL838: + 10332 .L695: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10333 .loc 1 1074 7 discriminator 13 view .LVU3286 + 10334 0080 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 + 10335 .LVL839: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10336 .loc 1 1074 7 discriminator 13 view .LVU3287 + 10337 0084 C0B2 uxtb r0, r0 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10338 .loc 1 1074 44 discriminator 13 view .LVU3288 + 10339 0086 0228 cmp r0, #2 + 10340 0088 14BF ite ne + 10341 008a 0020 movne r0, #0 + 10342 008c 0120 moveq r0, #1 + 10343 008e CFE7 b .L701 + 10344 .LVL840: + 10345 .L694: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10346 .loc 1 1074 7 discriminator 14 view .LVU3289 + 10347 0090 90F84300 ldrb r0, [r0, #67] @ zero_extendqisi2 + 10348 .LVL841: +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10349 .loc 1 1074 7 discriminator 14 view .LVU3290 + 10350 0094 C0B2 uxtb r0, r0 +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 370 + + + 10351 .loc 1 1074 44 discriminator 14 view .LVU3291 + 10352 0096 0228 cmp r0, #2 + 10353 0098 14BF ite ne + 10354 009a 0020 movne r0, #0 + 10355 009c 0120 moveq r0, #1 + 10356 009e C7E7 b .L701 + 10357 .L709: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10358 .loc 1 1078 12 discriminator 1 view .LVU3292 + 10359 00a0 94F83E20 ldrb r2, [r4, #62] @ zero_extendqisi2 + 10360 00a4 D2B2 uxtb r2, r2 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10361 .loc 1 1078 49 discriminator 1 view .LVU3293 + 10362 00a6 012A cmp r2, #1 + 10363 00a8 14BF ite ne + 10364 00aa 0022 movne r2, #0 + 10365 00ac 0122 moveq r2, #1 + 10366 .L710: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10367 .loc 1 1078 11 discriminator 20 view .LVU3294 + 10368 00ae 002A cmp r2, #0 + 10369 00b0 00F01C81 beq .L730 +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10370 .loc 1 1080 5 is_stmt 1 view .LVU3295 +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10371 .loc 1 1080 8 is_stmt 0 view .LVU3296 + 10372 00b4 0029 cmp r1, #0 + 10373 00b6 3DD0 beq .L744 + 10374 .L711: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10375 .loc 1 1086 7 is_stmt 1 view .LVU3297 + 10376 00b8 102D cmp r5, #16 + 10377 00ba 00F2E580 bhi .L712 + 10378 00be DFE815F0 tbh [pc, r5, lsl #1] + 10379 .L714: + 10380 00c2 3D00 .2byte (.L718-.L714)/2 + 10381 00c4 E300 .2byte (.L712-.L714)/2 + 10382 00c6 E300 .2byte (.L712-.L714)/2 + 10383 00c8 E300 .2byte (.L712-.L714)/2 + 10384 00ca 9300 .2byte (.L717-.L714)/2 + 10385 00cc E300 .2byte (.L712-.L714)/2 + 10386 00ce E300 .2byte (.L712-.L714)/2 + 10387 00d0 E300 .2byte (.L712-.L714)/2 + 10388 00d2 AC00 .2byte (.L716-.L714)/2 + 10389 00d4 E300 .2byte (.L712-.L714)/2 + 10390 00d6 E300 .2byte (.L712-.L714)/2 + 10391 00d8 E300 .2byte (.L712-.L714)/2 + 10392 00da C500 .2byte (.L715-.L714)/2 + 10393 00dc E300 .2byte (.L712-.L714)/2 + 10394 00de E300 .2byte (.L712-.L714)/2 + 10395 00e0 E300 .2byte (.L712-.L714)/2 + 10396 00e2 DE00 .2byte (.L713-.L714)/2 + 10397 .p2align 1 + 10398 .L708: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10399 .loc 1 1078 12 is_stmt 0 discriminator 4 view .LVU3298 + 10400 00e4 94F83F20 ldrb r2, [r4, #63] @ zero_extendqisi2 + ARM GAS /tmp/cc0wMqvE.s page 371 + + + 10401 00e8 D2B2 uxtb r2, r2 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10402 .loc 1 1078 49 discriminator 4 view .LVU3299 + 10403 00ea 012A cmp r2, #1 + 10404 00ec 14BF ite ne + 10405 00ee 0022 movne r2, #0 + 10406 00f0 0122 moveq r2, #1 + 10407 00f2 DCE7 b .L710 + 10408 .L707: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10409 .loc 1 1078 12 discriminator 7 view .LVU3300 + 10410 00f4 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2 + 10411 00f8 D2B2 uxtb r2, r2 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10412 .loc 1 1078 49 discriminator 7 view .LVU3301 + 10413 00fa 012A cmp r2, #1 + 10414 00fc 14BF ite ne + 10415 00fe 0022 movne r2, #0 + 10416 0100 0122 moveq r2, #1 + 10417 0102 D4E7 b .L710 + 10418 .L706: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10419 .loc 1 1078 12 discriminator 10 view .LVU3302 + 10420 0104 94F84120 ldrb r2, [r4, #65] @ zero_extendqisi2 + 10421 0108 D2B2 uxtb r2, r2 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10422 .loc 1 1078 49 discriminator 10 view .LVU3303 + 10423 010a 012A cmp r2, #1 + 10424 010c 14BF ite ne + 10425 010e 0022 movne r2, #0 + 10426 0110 0122 moveq r2, #1 + 10427 0112 CCE7 b .L710 + 10428 .L704: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10429 .loc 1 1078 12 discriminator 13 view .LVU3304 + 10430 0114 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 + 10431 0118 D2B2 uxtb r2, r2 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10432 .loc 1 1078 49 discriminator 13 view .LVU3305 + 10433 011a 012A cmp r2, #1 + 10434 011c 14BF ite ne + 10435 011e 0022 movne r2, #0 + 10436 0120 0122 moveq r2, #1 + 10437 0122 C4E7 b .L710 + 10438 .L703: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10439 .loc 1 1078 12 discriminator 14 view .LVU3306 + 10440 0124 94F84320 ldrb r2, [r4, #67] @ zero_extendqisi2 + 10441 0128 D2B2 uxtb r2, r2 +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10442 .loc 1 1078 49 discriminator 14 view .LVU3307 + 10443 012a 012A cmp r2, #1 + 10444 012c 14BF ite ne + 10445 012e 0022 movne r2, #0 + 10446 0130 0122 moveq r2, #1 + 10447 0132 BCE7 b .L710 + 10448 .L744: + ARM GAS /tmp/cc0wMqvE.s page 372 + + +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10449 .loc 1 1080 25 discriminator 1 view .LVU3308 + 10450 0134 002B cmp r3, #0 + 10451 0136 BFD0 beq .L711 +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10452 .loc 1 1082 14 view .LVU3309 + 10453 0138 0120 movs r0, #1 + 10454 013a D8E0 b .L702 + 10455 .L718: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10456 .loc 1 1086 7 view .LVU3310 + 10457 013c 0222 movs r2, #2 + 10458 013e 84F83E20 strb r2, [r4, #62] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10459 .loc 1 1094 3 is_stmt 1 view .LVU3311 + 10460 .L719: +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10461 .loc 1 1099 7 view .LVU3312 +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10462 .loc 1 1099 17 is_stmt 0 view .LVU3313 + 10463 0142 626A ldr r2, [r4, #36] +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10464 .loc 1 1099 52 view .LVU3314 + 10465 0144 7148 ldr r0, .L745 + 10466 0146 D062 str r0, [r2, #44] +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10467 .loc 1 1100 7 is_stmt 1 view .LVU3315 +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10468 .loc 1 1100 17 is_stmt 0 view .LVU3316 + 10469 0148 626A ldr r2, [r4, #36] +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10470 .loc 1 1100 56 view .LVU3317 + 10471 014a 7148 ldr r0, .L745+4 + 10472 014c 1063 str r0, [r2, #48] +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10473 .loc 1 1103 7 is_stmt 1 view .LVU3318 +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10474 .loc 1 1103 17 is_stmt 0 view .LVU3319 + 10475 014e 626A ldr r2, [r4, #36] +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10476 .loc 1 1103 53 view .LVU3320 + 10477 0150 7048 ldr r0, .L745+8 + 10478 0152 5063 str r0, [r2, #52] +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10479 .loc 1 1106 7 is_stmt 1 view .LVU3321 +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10480 .loc 1 1106 88 is_stmt 0 view .LVU3322 + 10481 0154 2268 ldr r2, [r4] +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10482 .loc 1 1106 11 view .LVU3323 + 10483 0156 3432 adds r2, r2, #52 + 10484 0158 606A ldr r0, [r4, #36] + 10485 015a FFF7FEFF bl HAL_DMA_Start_IT + 10486 .LVL842: +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10487 .loc 1 1106 10 view .LVU3324 + 10488 015e 0028 cmp r0, #0 + ARM GAS /tmp/cc0wMqvE.s page 373 + + + 10489 0160 40F0C880 bne .L733 +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10490 .loc 1 1114 7 is_stmt 1 view .LVU3325 + 10491 0164 2268 ldr r2, [r4] + 10492 0166 D368 ldr r3, [r2, #12] + 10493 0168 43F40073 orr r3, r3, #512 + 10494 016c D360 str r3, [r2, #12] +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10495 .loc 1 1115 7 view .LVU3326 +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10496 .loc 1 1187 3 view .LVU3327 + 10497 .L724: +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10498 .loc 1 1190 5 view .LVU3328 + 10499 016e 0122 movs r2, #1 + 10500 0170 2946 mov r1, r5 + 10501 0172 2068 ldr r0, [r4] + 10502 0174 FFF7FEFF bl TIM_CCxChannelCmd + 10503 .LVL843: +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10504 .loc 1 1192 5 view .LVU3329 +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10505 .loc 1 1192 9 is_stmt 0 view .LVU3330 + 10506 0178 2368 ldr r3, [r4] + 10507 017a 674A ldr r2, .L745+12 + 10508 017c 9342 cmp r3, r2 + 10509 017e 0FD0 beq .L725 +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10510 .loc 1 1192 9 discriminator 2 view .LVU3331 + 10511 0180 02F50062 add r2, r2, #2048 + 10512 0184 9342 cmp r3, r2 + 10513 0186 0BD0 beq .L725 +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10514 .loc 1 1192 9 discriminator 4 view .LVU3332 + 10515 0188 02F54062 add r2, r2, #3072 + 10516 018c 9342 cmp r3, r2 + 10517 018e 07D0 beq .L725 +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10518 .loc 1 1192 9 discriminator 6 view .LVU3333 + 10519 0190 02F58062 add r2, r2, #1024 + 10520 0194 9342 cmp r3, r2 + 10521 0196 03D0 beq .L725 +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10522 .loc 1 1192 9 discriminator 8 view .LVU3334 + 10523 0198 02F58062 add r2, r2, #1024 + 10524 019c 9342 cmp r3, r2 + 10525 019e 03D1 bne .L726 + 10526 .L725: +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10527 .loc 1 1195 7 is_stmt 1 view .LVU3335 + 10528 01a0 5A6C ldr r2, [r3, #68] + 10529 01a2 42F40042 orr r2, r2, #32768 + 10530 01a6 5A64 str r2, [r3, #68] + 10531 .L726: +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10532 .loc 1 1199 5 view .LVU3336 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 374 + + + 10533 .loc 1 1199 9 is_stmt 0 view .LVU3337 + 10534 01a8 2368 ldr r3, [r4] +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10535 .loc 1 1199 8 view .LVU3338 + 10536 01aa 5B4A ldr r2, .L745+12 + 10537 01ac 9342 cmp r3, r2 + 10538 01ae 00F08D80 beq .L727 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10539 .loc 1 1199 9 discriminator 1 view .LVU3339 + 10540 01b2 B3F1804F cmp r3, #1073741824 + 10541 01b6 00F08980 beq .L727 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10542 .loc 1 1199 9 discriminator 2 view .LVU3340 + 10543 01ba A2F59432 sub r2, r2, #75776 + 10544 01be 9342 cmp r3, r2 + 10545 01c0 00F08480 beq .L727 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10546 .loc 1 1199 9 discriminator 3 view .LVU3341 + 10547 01c4 02F58062 add r2, r2, #1024 + 10548 01c8 9342 cmp r3, r2 + 10549 01ca 7FD0 beq .L727 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10550 .loc 1 1199 9 discriminator 4 view .LVU3342 + 10551 01cc 02F59632 add r2, r2, #76800 + 10552 01d0 9342 cmp r3, r2 + 10553 01d2 7BD0 beq .L727 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10554 .loc 1 1199 9 discriminator 5 view .LVU3343 + 10555 01d4 02F54062 add r2, r2, #3072 + 10556 01d8 9342 cmp r3, r2 + 10557 01da 77D0 beq .L727 +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10558 .loc 1 1209 7 is_stmt 1 view .LVU3344 + 10559 01dc 1A68 ldr r2, [r3] + 10560 01de 42F00102 orr r2, r2, #1 + 10561 01e2 1A60 str r2, [r3] + 10562 01e4 0020 movs r0, #0 + 10563 01e6 82E0 b .L702 + 10564 .LVL844: + 10565 .L717: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10566 .loc 1 1086 7 is_stmt 0 view .LVU3345 + 10567 01e8 0222 movs r2, #2 + 10568 01ea 84F83F20 strb r2, [r4, #63] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10569 .loc 1 1094 3 is_stmt 1 view .LVU3346 + 10570 .L720: +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10571 .loc 1 1121 7 view .LVU3347 +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10572 .loc 1 1121 17 is_stmt 0 view .LVU3348 + 10573 01ee A26A ldr r2, [r4, #40] +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10574 .loc 1 1121 52 view .LVU3349 + 10575 01f0 4648 ldr r0, .L745 + 10576 01f2 D062 str r0, [r2, #44] +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 375 + + + 10577 .loc 1 1122 7 is_stmt 1 view .LVU3350 +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10578 .loc 1 1122 17 is_stmt 0 view .LVU3351 + 10579 01f4 A26A ldr r2, [r4, #40] +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10580 .loc 1 1122 56 view .LVU3352 + 10581 01f6 4648 ldr r0, .L745+4 + 10582 01f8 1063 str r0, [r2, #48] +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10583 .loc 1 1125 7 is_stmt 1 view .LVU3353 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10584 .loc 1 1125 17 is_stmt 0 view .LVU3354 + 10585 01fa A26A ldr r2, [r4, #40] +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10586 .loc 1 1125 53 view .LVU3355 + 10587 01fc 4548 ldr r0, .L745+8 + 10588 01fe 5063 str r0, [r2, #52] +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10589 .loc 1 1128 7 is_stmt 1 view .LVU3356 +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10590 .loc 1 1128 88 is_stmt 0 view .LVU3357 + 10591 0200 2268 ldr r2, [r4] +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10592 .loc 1 1128 11 view .LVU3358 + 10593 0202 3832 adds r2, r2, #56 + 10594 0204 A06A ldr r0, [r4, #40] + 10595 0206 FFF7FEFF bl HAL_DMA_Start_IT + 10596 .LVL845: +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10597 .loc 1 1128 10 view .LVU3359 + 10598 020a 0028 cmp r0, #0 + 10599 020c 74D1 bne .L734 +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10600 .loc 1 1136 7 is_stmt 1 view .LVU3360 + 10601 020e 2268 ldr r2, [r4] + 10602 0210 D368 ldr r3, [r2, #12] + 10603 0212 43F48063 orr r3, r3, #1024 + 10604 0216 D360 str r3, [r2, #12] +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10605 .loc 1 1137 7 view .LVU3361 +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10606 .loc 1 1187 3 view .LVU3362 + 10607 0218 A9E7 b .L724 + 10608 .LVL846: + 10609 .L716: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10610 .loc 1 1086 7 is_stmt 0 view .LVU3363 + 10611 021a 0222 movs r2, #2 + 10612 021c 84F84020 strb r2, [r4, #64] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10613 .loc 1 1094 3 is_stmt 1 view .LVU3364 + 10614 .L721: +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10615 .loc 1 1143 7 view .LVU3365 +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10616 .loc 1 1143 17 is_stmt 0 view .LVU3366 + 10617 0220 E26A ldr r2, [r4, #44] + ARM GAS /tmp/cc0wMqvE.s page 376 + + +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10618 .loc 1 1143 52 view .LVU3367 + 10619 0222 3A48 ldr r0, .L745 + 10620 0224 D062 str r0, [r2, #44] +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10621 .loc 1 1144 7 is_stmt 1 view .LVU3368 +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10622 .loc 1 1144 17 is_stmt 0 view .LVU3369 + 10623 0226 E26A ldr r2, [r4, #44] +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10624 .loc 1 1144 56 view .LVU3370 + 10625 0228 3948 ldr r0, .L745+4 + 10626 022a 1063 str r0, [r2, #48] +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10627 .loc 1 1147 7 is_stmt 1 view .LVU3371 +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10628 .loc 1 1147 17 is_stmt 0 view .LVU3372 + 10629 022c E26A ldr r2, [r4, #44] +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10630 .loc 1 1147 53 view .LVU3373 + 10631 022e 3948 ldr r0, .L745+8 + 10632 0230 5063 str r0, [r2, #52] +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10633 .loc 1 1150 7 is_stmt 1 view .LVU3374 +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10634 .loc 1 1150 88 is_stmt 0 view .LVU3375 + 10635 0232 2268 ldr r2, [r4] +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10636 .loc 1 1150 11 view .LVU3376 + 10637 0234 3C32 adds r2, r2, #60 + 10638 0236 E06A ldr r0, [r4, #44] + 10639 0238 FFF7FEFF bl HAL_DMA_Start_IT + 10640 .LVL847: +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10641 .loc 1 1150 10 view .LVU3377 + 10642 023c 0028 cmp r0, #0 + 10643 023e 5DD1 bne .L735 +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10644 .loc 1 1157 7 is_stmt 1 view .LVU3378 + 10645 0240 2268 ldr r2, [r4] + 10646 0242 D368 ldr r3, [r2, #12] + 10647 0244 43F40063 orr r3, r3, #2048 + 10648 0248 D360 str r3, [r2, #12] +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10649 .loc 1 1158 7 view .LVU3379 +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10650 .loc 1 1187 3 view .LVU3380 + 10651 024a 90E7 b .L724 + 10652 .LVL848: + 10653 .L715: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10654 .loc 1 1086 7 is_stmt 0 view .LVU3381 + 10655 024c 0222 movs r2, #2 + 10656 024e 84F84120 strb r2, [r4, #65] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10657 .loc 1 1094 3 is_stmt 1 view .LVU3382 + 10658 .L722: + ARM GAS /tmp/cc0wMqvE.s page 377 + + +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10659 .loc 1 1164 7 view .LVU3383 +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10660 .loc 1 1164 17 is_stmt 0 view .LVU3384 + 10661 0252 226B ldr r2, [r4, #48] +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 10662 .loc 1 1164 52 view .LVU3385 + 10663 0254 2D48 ldr r0, .L745 + 10664 0256 D062 str r0, [r2, #44] +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10665 .loc 1 1165 7 is_stmt 1 view .LVU3386 +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10666 .loc 1 1165 17 is_stmt 0 view .LVU3387 + 10667 0258 226B ldr r2, [r4, #48] +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10668 .loc 1 1165 56 view .LVU3388 + 10669 025a 2D48 ldr r0, .L745+4 + 10670 025c 1063 str r0, [r2, #48] +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10671 .loc 1 1168 7 is_stmt 1 view .LVU3389 +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10672 .loc 1 1168 17 is_stmt 0 view .LVU3390 + 10673 025e 226B ldr r2, [r4, #48] +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10674 .loc 1 1168 53 view .LVU3391 + 10675 0260 2C48 ldr r0, .L745+8 + 10676 0262 5063 str r0, [r2, #52] +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10677 .loc 1 1171 7 is_stmt 1 view .LVU3392 +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10678 .loc 1 1171 88 is_stmt 0 view .LVU3393 + 10679 0264 2268 ldr r2, [r4] +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10680 .loc 1 1171 11 view .LVU3394 + 10681 0266 4032 adds r2, r2, #64 + 10682 0268 206B ldr r0, [r4, #48] + 10683 026a FFF7FEFF bl HAL_DMA_Start_IT + 10684 .LVL849: +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 10685 .loc 1 1171 10 view .LVU3395 + 10686 026e 0028 cmp r0, #0 + 10687 0270 46D1 bne .L736 +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10688 .loc 1 1178 7 is_stmt 1 view .LVU3396 + 10689 0272 2268 ldr r2, [r4] + 10690 0274 D368 ldr r3, [r2, #12] + 10691 0276 43F48053 orr r3, r3, #4096 + 10692 027a D360 str r3, [r2, #12] +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10693 .loc 1 1179 7 view .LVU3397 +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10694 .loc 1 1187 3 view .LVU3398 + 10695 027c 77E7 b .L724 + 10696 .LVL850: + 10697 .L713: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10698 .loc 1 1086 7 is_stmt 0 view .LVU3399 + ARM GAS /tmp/cc0wMqvE.s page 378 + + + 10699 027e 0223 movs r3, #2 + 10700 .LVL851: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10701 .loc 1 1086 7 view .LVU3400 + 10702 0280 84F84230 strb r3, [r4, #66] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10703 .loc 1 1094 3 is_stmt 1 view .LVU3401 +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10704 .loc 1 1086 7 is_stmt 0 view .LVU3402 + 10705 0284 0120 movs r0, #1 + 10706 0286 32E0 b .L702 + 10707 .LVL852: + 10708 .L712: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10709 .loc 1 1086 7 discriminator 13 view .LVU3403 + 10710 0288 0222 movs r2, #2 + 10711 028a 84F84320 strb r2, [r4, #67] +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10712 .loc 1 1094 3 is_stmt 1 discriminator 13 view .LVU3404 + 10713 028e 0C2D cmp r5, #12 + 10714 0290 2ED8 bhi .L732 + 10715 0292 01A2 adr r2, .L723 + 10716 0294 52F825F0 ldr pc, [r2, r5, lsl #2] + 10717 .p2align 2 + 10718 .L723: + 10719 0298 43010000 .word .L719+1 + 10720 029c F1020000 .word .L732+1 + 10721 02a0 F1020000 .word .L732+1 + 10722 02a4 F1020000 .word .L732+1 + 10723 02a8 EF010000 .word .L720+1 + 10724 02ac F1020000 .word .L732+1 + 10725 02b0 F1020000 .word .L732+1 + 10726 02b4 F1020000 .word .L732+1 + 10727 02b8 21020000 .word .L721+1 + 10728 02bc F1020000 .word .L732+1 + 10729 02c0 F1020000 .word .L732+1 + 10730 02c4 F1020000 .word .L732+1 + 10731 02c8 53020000 .word .L722+1 + 10732 .LVL853: + 10733 .p2align 1 + 10734 .L727: +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 10735 .loc 1 1201 7 view .LVU3405 +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 10736 .loc 1 1201 31 is_stmt 0 view .LVU3406 + 10737 02cc 9968 ldr r1, [r3, #8] +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 10738 .loc 1 1201 15 view .LVU3407 + 10739 02ce 134A ldr r2, .L745+16 + 10740 02d0 0A40 ands r2, r2, r1 + 10741 .LVL854: +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10742 .loc 1 1202 7 is_stmt 1 view .LVU3408 +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10743 .loc 1 1202 10 is_stmt 0 view .LVU3409 + 10744 02d2 062A cmp r2, #6 + 10745 02d4 16D0 beq .L737 + ARM GAS /tmp/cc0wMqvE.s page 379 + + +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10746 .loc 1 1202 11 discriminator 1 view .LVU3410 + 10747 02d6 B2F5803F cmp r2, #65536 + 10748 02da 15D0 beq .L738 +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10749 .loc 1 1204 9 is_stmt 1 view .LVU3411 + 10750 02dc 1A68 ldr r2, [r3] + 10751 .LVL855: +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10752 .loc 1 1204 9 is_stmt 0 view .LVU3412 + 10753 02de 42F00102 orr r2, r2, #1 + 10754 02e2 1A60 str r2, [r3] + 10755 02e4 0020 movs r0, #0 + 10756 02e6 02E0 b .L702 + 10757 .LVL856: + 10758 .L729: +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10759 .loc 1 1076 12 view .LVU3413 + 10760 02e8 0220 movs r0, #2 + 10761 02ea 00E0 b .L702 + 10762 .L730: +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10763 .loc 1 1091 12 view .LVU3414 + 10764 02ec 0120 movs r0, #1 + 10765 .LVL857: + 10766 .L702: +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10767 .loc 1 1215 1 view .LVU3415 + 10768 02ee 38BD pop {r3, r4, r5, pc} + 10769 .LVL858: + 10770 .L732: +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10771 .loc 1 1094 3 view .LVU3416 + 10772 02f0 0120 movs r0, #1 + 10773 02f2 FCE7 b .L702 + 10774 .LVL859: + 10775 .L733: +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10776 .loc 1 1110 16 view .LVU3417 + 10777 02f4 0120 movs r0, #1 + 10778 02f6 FAE7 b .L702 + 10779 .L734: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10780 .loc 1 1132 16 view .LVU3418 + 10781 02f8 0120 movs r0, #1 + 10782 02fa F8E7 b .L702 + 10783 .L735: +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10784 .loc 1 1154 16 view .LVU3419 + 10785 02fc 0120 movs r0, #1 + 10786 02fe F6E7 b .L702 + 10787 .L736: +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10788 .loc 1 1175 16 view .LVU3420 + 10789 0300 0120 movs r0, #1 + 10790 0302 F4E7 b .L702 + 10791 .LVL860: + ARM GAS /tmp/cc0wMqvE.s page 380 + + + 10792 .L737: +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10793 .loc 1 1175 16 view .LVU3421 + 10794 0304 0020 movs r0, #0 + 10795 0306 F2E7 b .L702 + 10796 .L738: + 10797 0308 0020 movs r0, #0 + 10798 030a F0E7 b .L702 + 10799 .L746: + 10800 .align 2 + 10801 .L745: + 10802 030c 00000000 .word TIM_DMADelayPulseCplt + 10803 0310 00000000 .word TIM_DMADelayPulseHalfCplt + 10804 0314 00000000 .word TIM_DMAError + 10805 0318 002C0140 .word 1073818624 + 10806 031c 07000100 .word 65543 + 10807 .cfi_endproc + 10808 .LFE347: + 10810 .section .text.HAL_TIM_OC_Stop_DMA,"ax",%progbits + 10811 .align 1 + 10812 .global HAL_TIM_OC_Stop_DMA + 10813 .syntax unified + 10814 .thumb + 10815 .thumb_func + 10817 HAL_TIM_OC_Stop_DMA: + 10818 .LVL861: + 10819 .LFB348: +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 10820 .loc 1 1229 1 is_stmt 1 view -0 + 10821 .cfi_startproc + 10822 @ args = 0, pretend = 0, frame = 0 + 10823 @ frame_needed = 0, uses_anonymous_args = 0 +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 10824 .loc 1 1229 1 is_stmt 0 view .LVU3423 + 10825 0000 38B5 push {r3, r4, r5, lr} + 10826 .LCFI90: + 10827 .cfi_def_cfa_offset 16 + 10828 .cfi_offset 3, -16 + 10829 .cfi_offset 4, -12 + 10830 .cfi_offset 5, -8 + 10831 .cfi_offset 14, -4 + 10832 0002 0546 mov r5, r0 + 10833 0004 0C46 mov r4, r1 +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10834 .loc 1 1230 3 is_stmt 1 view .LVU3424 + 10835 .LVL862: +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10836 .loc 1 1233 3 view .LVU3425 +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10837 .loc 1 1235 3 view .LVU3426 + 10838 0006 0C29 cmp r1, #12 + 10839 0008 00F28D80 bhi .L765 + 10840 000c DFE801F0 tbb [pc, r1] + 10841 .L750: + 10842 0010 07 .byte (.L753-.L750)/2 + 10843 0011 8B .byte (.L765-.L750)/2 + 10844 0012 8B .byte (.L765-.L750)/2 + ARM GAS /tmp/cc0wMqvE.s page 381 + + + 10845 0013 8B .byte (.L765-.L750)/2 + 10846 0014 4B .byte (.L752-.L750)/2 + 10847 0015 8B .byte (.L765-.L750)/2 + 10848 0016 8B .byte (.L765-.L750)/2 + 10849 0017 8B .byte (.L765-.L750)/2 + 10850 0018 54 .byte (.L751-.L750)/2 + 10851 0019 8B .byte (.L765-.L750)/2 + 10852 001a 8B .byte (.L765-.L750)/2 + 10853 001b 8B .byte (.L765-.L750)/2 + 10854 001c 5D .byte (.L749-.L750)/2 + 10855 001d 00 .p2align 1 + 10856 .L753: +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 10857 .loc 1 1240 7 view .LVU3427 + 10858 001e 0268 ldr r2, [r0] + 10859 0020 D368 ldr r3, [r2, #12] + 10860 0022 23F40073 bic r3, r3, #512 + 10861 0026 D360 str r3, [r2, #12] +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10862 .loc 1 1241 7 view .LVU3428 +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10863 .loc 1 1241 13 is_stmt 0 view .LVU3429 + 10864 0028 406A ldr r0, [r0, #36] + 10865 .LVL863: +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10866 .loc 1 1241 13 view .LVU3430 + 10867 002a FFF7FEFF bl HAL_DMA_Abort_IT + 10868 .LVL864: +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10869 .loc 1 1242 7 is_stmt 1 view .LVU3431 +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10870 .loc 1 1274 3 view .LVU3432 + 10871 .L754: +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10872 .loc 1 1277 5 view .LVU3433 + 10873 002e 0022 movs r2, #0 + 10874 0030 2146 mov r1, r4 + 10875 0032 2868 ldr r0, [r5] + 10876 0034 FFF7FEFF bl TIM_CCxChannelCmd + 10877 .LVL865: +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10878 .loc 1 1279 5 view .LVU3434 +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10879 .loc 1 1279 9 is_stmt 0 view .LVU3435 + 10880 0038 2B68 ldr r3, [r5] + 10881 003a 3C4A ldr r2, .L767 + 10882 003c 9342 cmp r3, r2 + 10883 003e 0FD0 beq .L755 +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10884 .loc 1 1279 9 discriminator 2 view .LVU3436 + 10885 0040 02F50062 add r2, r2, #2048 + 10886 0044 9342 cmp r3, r2 + 10887 0046 0BD0 beq .L755 +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10888 .loc 1 1279 9 discriminator 4 view .LVU3437 + 10889 0048 02F54062 add r2, r2, #3072 + 10890 004c 9342 cmp r3, r2 + ARM GAS /tmp/cc0wMqvE.s page 382 + + + 10891 004e 07D0 beq .L755 +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10892 .loc 1 1279 9 discriminator 6 view .LVU3438 + 10893 0050 02F58062 add r2, r2, #1024 + 10894 0054 9342 cmp r3, r2 + 10895 0056 03D0 beq .L755 +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10896 .loc 1 1279 9 discriminator 8 view .LVU3439 + 10897 0058 02F58062 add r2, r2, #1024 + 10898 005c 9342 cmp r3, r2 + 10899 005e 0DD1 bne .L756 + 10900 .L755: +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10901 .loc 1 1282 7 is_stmt 1 view .LVU3440 +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10902 .loc 1 1282 7 view .LVU3441 + 10903 0060 196A ldr r1, [r3, #32] + 10904 0062 41F21112 movw r2, #4369 + 10905 0066 1142 tst r1, r2 + 10906 0068 08D1 bne .L756 +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10907 .loc 1 1282 7 discriminator 1 view .LVU3442 + 10908 006a 196A ldr r1, [r3, #32] + 10909 006c 44F24442 movw r2, #17476 + 10910 0070 1142 tst r1, r2 + 10911 0072 03D1 bne .L756 +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10912 .loc 1 1282 7 discriminator 3 view .LVU3443 + 10913 0074 5A6C ldr r2, [r3, #68] + 10914 0076 22F40042 bic r2, r2, #32768 + 10915 007a 5A64 str r2, [r3, #68] + 10916 .L756: +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10917 .loc 1 1282 7 discriminator 5 view .LVU3444 +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10918 .loc 1 1286 5 discriminator 5 view .LVU3445 +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10919 .loc 1 1286 5 discriminator 5 view .LVU3446 + 10920 007c 2B68 ldr r3, [r5] + 10921 007e 196A ldr r1, [r3, #32] + 10922 0080 41F21112 movw r2, #4369 + 10923 0084 1142 tst r1, r2 + 10924 0086 08D1 bne .L757 +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10925 .loc 1 1286 5 discriminator 1 view .LVU3447 + 10926 0088 196A ldr r1, [r3, #32] + 10927 008a 44F24442 movw r2, #17476 + 10928 008e 1142 tst r1, r2 + 10929 0090 03D1 bne .L757 +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10930 .loc 1 1286 5 discriminator 3 view .LVU3448 + 10931 0092 1A68 ldr r2, [r3] + 10932 0094 22F00102 bic r2, r2, #1 + 10933 0098 1A60 str r2, [r3] + 10934 .L757: +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 10935 .loc 1 1286 5 discriminator 5 view .LVU3449 + ARM GAS /tmp/cc0wMqvE.s page 383 + + +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10936 .loc 1 1289 5 discriminator 5 view .LVU3450 + 10937 009a FCB9 cbnz r4, .L758 +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10938 .loc 1 1289 5 is_stmt 0 discriminator 1 view .LVU3451 + 10939 009c 0123 movs r3, #1 + 10940 009e 85F83E30 strb r3, [r5, #62] + 10941 00a2 0020 movs r0, #0 + 10942 00a4 40E0 b .L748 + 10943 .LVL866: + 10944 .L752: +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 10945 .loc 1 1248 7 is_stmt 1 view .LVU3452 + 10946 00a6 0268 ldr r2, [r0] + 10947 00a8 D368 ldr r3, [r2, #12] + 10948 00aa 23F48063 bic r3, r3, #1024 + 10949 00ae D360 str r3, [r2, #12] +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10950 .loc 1 1249 7 view .LVU3453 +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10951 .loc 1 1249 13 is_stmt 0 view .LVU3454 + 10952 00b0 806A ldr r0, [r0, #40] + 10953 .LVL867: +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10954 .loc 1 1249 13 view .LVU3455 + 10955 00b2 FFF7FEFF bl HAL_DMA_Abort_IT + 10956 .LVL868: +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10957 .loc 1 1250 7 is_stmt 1 view .LVU3456 +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10958 .loc 1 1274 3 view .LVU3457 + 10959 00b6 BAE7 b .L754 + 10960 .LVL869: + 10961 .L751: +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + 10962 .loc 1 1256 7 view .LVU3458 + 10963 00b8 0268 ldr r2, [r0] + 10964 00ba D368 ldr r3, [r2, #12] + 10965 00bc 23F40063 bic r3, r3, #2048 + 10966 00c0 D360 str r3, [r2, #12] +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10967 .loc 1 1257 7 view .LVU3459 +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10968 .loc 1 1257 13 is_stmt 0 view .LVU3460 + 10969 00c2 C06A ldr r0, [r0, #44] + 10970 .LVL870: +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10971 .loc 1 1257 13 view .LVU3461 + 10972 00c4 FFF7FEFF bl HAL_DMA_Abort_IT + 10973 .LVL871: +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10974 .loc 1 1258 7 is_stmt 1 view .LVU3462 +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10975 .loc 1 1274 3 view .LVU3463 + 10976 00c8 B1E7 b .L754 + 10977 .LVL872: + 10978 .L749: + ARM GAS /tmp/cc0wMqvE.s page 384 + + +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + 10979 .loc 1 1264 7 view .LVU3464 + 10980 00ca 0268 ldr r2, [r0] + 10981 00cc D368 ldr r3, [r2, #12] + 10982 00ce 23F48053 bic r3, r3, #4096 + 10983 00d2 D360 str r3, [r2, #12] +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10984 .loc 1 1265 7 view .LVU3465 +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10985 .loc 1 1265 13 is_stmt 0 view .LVU3466 + 10986 00d4 006B ldr r0, [r0, #48] + 10987 .LVL873: +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 10988 .loc 1 1265 13 view .LVU3467 + 10989 00d6 FFF7FEFF bl HAL_DMA_Abort_IT + 10990 .LVL874: +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 10991 .loc 1 1266 7 is_stmt 1 view .LVU3468 +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10992 .loc 1 1274 3 view .LVU3469 + 10993 00da A8E7 b .L754 + 10994 .L758: +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10995 .loc 1 1274 3 is_stmt 0 view .LVU3470 + 10996 00dc 043C subs r4, r4, #4 + 10997 .LVL875: +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 10998 .loc 1 1274 3 view .LVU3471 + 10999 00de 0C2C cmp r4, #12 + 11000 00e0 1CD8 bhi .L759 + 11001 00e2 DFE804F0 tbb [pc, r4] + 11002 .L761: + 11003 00e6 07 .byte (.L764-.L761)/2 + 11004 00e7 1B .byte (.L759-.L761)/2 + 11005 00e8 1B .byte (.L759-.L761)/2 + 11006 00e9 1B .byte (.L759-.L761)/2 + 11007 00ea 0C .byte (.L763-.L761)/2 + 11008 00eb 1B .byte (.L759-.L761)/2 + 11009 00ec 1B .byte (.L759-.L761)/2 + 11010 00ed 1B .byte (.L759-.L761)/2 + 11011 00ee 11 .byte (.L762-.L761)/2 + 11012 00ef 1B .byte (.L759-.L761)/2 + 11013 00f0 1B .byte (.L759-.L761)/2 + 11014 00f1 1B .byte (.L759-.L761)/2 + 11015 00f2 16 .byte (.L760-.L761)/2 + 11016 00f3 00 .p2align 1 + 11017 .L764: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11018 .loc 1 1289 5 discriminator 3 view .LVU3472 + 11019 00f4 0123 movs r3, #1 + 11020 00f6 85F83F30 strb r3, [r5, #63] + 11021 00fa 0020 movs r0, #0 + 11022 00fc 14E0 b .L748 + 11023 .L763: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11024 .loc 1 1289 5 discriminator 6 view .LVU3473 + 11025 00fe 0123 movs r3, #1 + ARM GAS /tmp/cc0wMqvE.s page 385 + + + 11026 0100 85F84030 strb r3, [r5, #64] + 11027 0104 0020 movs r0, #0 + 11028 0106 0FE0 b .L748 + 11029 .L762: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11030 .loc 1 1289 5 discriminator 9 view .LVU3474 + 11031 0108 0123 movs r3, #1 + 11032 010a 85F84130 strb r3, [r5, #65] + 11033 010e 0020 movs r0, #0 + 11034 0110 0AE0 b .L748 + 11035 .L760: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11036 .loc 1 1289 5 discriminator 12 view .LVU3475 + 11037 0112 0123 movs r3, #1 + 11038 0114 85F84230 strb r3, [r5, #66] + 11039 0118 0020 movs r0, #0 + 11040 011a 05E0 b .L748 + 11041 .L759: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11042 .loc 1 1289 5 discriminator 13 view .LVU3476 + 11043 011c 0123 movs r3, #1 + 11044 011e 85F84330 strb r3, [r5, #67] + 11045 0122 0020 movs r0, #0 + 11046 0124 00E0 b .L748 + 11047 .LVL876: + 11048 .L765: +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11049 .loc 1 1235 3 view .LVU3477 + 11050 0126 0120 movs r0, #1 + 11051 .LVL877: + 11052 .L748: +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11053 .loc 1 1293 3 is_stmt 1 view .LVU3478 +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11054 .loc 1 1294 1 is_stmt 0 view .LVU3479 + 11055 0128 38BD pop {r3, r4, r5, pc} + 11056 .LVL878: + 11057 .L768: +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11058 .loc 1 1294 1 view .LVU3480 + 11059 012a 00BF .align 2 + 11060 .L767: + 11061 012c 002C0140 .word 1073818624 + 11062 .cfi_endproc + 11063 .LFE348: + 11065 .section .text.HAL_TIM_PWM_Start,"ax",%progbits + 11066 .align 1 + 11067 .global HAL_TIM_PWM_Start + 11068 .syntax unified + 11069 .thumb + 11070 .thumb_func + 11072 HAL_TIM_PWM_Start: + 11073 .LVL879: + 11074 .LFB353: +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 11075 .loc 1 1472 1 is_stmt 1 view -0 + 11076 .cfi_startproc + ARM GAS /tmp/cc0wMqvE.s page 386 + + + 11077 @ args = 0, pretend = 0, frame = 0 + 11078 @ frame_needed = 0, uses_anonymous_args = 0 +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 11079 .loc 1 1472 1 is_stmt 0 view .LVU3482 + 11080 0000 10B5 push {r4, lr} + 11081 .LCFI91: + 11082 .cfi_def_cfa_offset 8 + 11083 .cfi_offset 4, -8 + 11084 .cfi_offset 14, -4 + 11085 0002 0446 mov r4, r0 +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11086 .loc 1 1473 3 is_stmt 1 view .LVU3483 +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11087 .loc 1 1476 3 view .LVU3484 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11088 .loc 1 1479 3 view .LVU3485 + 11089 0004 1029 cmp r1, #16 + 11090 0006 3CD8 bhi .L770 + 11091 0008 DFE801F0 tbb [pc, r1] + 11092 .L772: + 11093 000c 09 .byte (.L776-.L772)/2 + 11094 000d 3B .byte (.L770-.L772)/2 + 11095 000e 3B .byte (.L770-.L772)/2 + 11096 000f 3B .byte (.L770-.L772)/2 + 11097 0010 1F .byte (.L775-.L772)/2 + 11098 0011 3B .byte (.L770-.L772)/2 + 11099 0012 3B .byte (.L770-.L772)/2 + 11100 0013 3B .byte (.L770-.L772)/2 + 11101 0014 26 .byte (.L774-.L772)/2 + 11102 0015 3B .byte (.L770-.L772)/2 + 11103 0016 3B .byte (.L770-.L772)/2 + 11104 0017 3B .byte (.L770-.L772)/2 + 11105 0018 2D .byte (.L773-.L772)/2 + 11106 0019 3B .byte (.L770-.L772)/2 + 11107 001a 3B .byte (.L770-.L772)/2 + 11108 001b 3B .byte (.L770-.L772)/2 + 11109 001c 34 .byte (.L771-.L772)/2 + 11110 001d 00 .p2align 1 + 11111 .L776: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11112 .loc 1 1479 7 is_stmt 0 discriminator 1 view .LVU3486 + 11113 001e 90F83E30 ldrb r3, [r0, #62] @ zero_extendqisi2 + 11114 0022 DBB2 uxtb r3, r3 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11115 .loc 1 1479 44 discriminator 1 view .LVU3487 + 11116 0024 013B subs r3, r3, #1 + 11117 0026 18BF it ne + 11118 0028 0123 movne r3, #1 + 11119 .L777: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11120 .loc 1 1479 6 discriminator 20 view .LVU3488 + 11121 002a 002B cmp r3, #0 + 11122 002c 40F08E80 bne .L791 +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11123 .loc 1 1485 3 is_stmt 1 view .LVU3489 + 11124 0030 1029 cmp r1, #16 + 11125 0032 79D8 bhi .L779 + ARM GAS /tmp/cc0wMqvE.s page 387 + + + 11126 0034 DFE801F0 tbb [pc, r1] + 11127 .L781: + 11128 0038 2C .byte (.L785-.L781)/2 + 11129 0039 78 .byte (.L779-.L781)/2 + 11130 003a 78 .byte (.L779-.L781)/2 + 11131 003b 78 .byte (.L779-.L781)/2 + 11132 003c 68 .byte (.L784-.L781)/2 + 11133 003d 78 .byte (.L779-.L781)/2 + 11134 003e 78 .byte (.L779-.L781)/2 + 11135 003f 78 .byte (.L779-.L781)/2 + 11136 0040 6C .byte (.L783-.L781)/2 + 11137 0041 78 .byte (.L779-.L781)/2 + 11138 0042 78 .byte (.L779-.L781)/2 + 11139 0043 78 .byte (.L779-.L781)/2 + 11140 0044 70 .byte (.L782-.L781)/2 + 11141 0045 78 .byte (.L779-.L781)/2 + 11142 0046 78 .byte (.L779-.L781)/2 + 11143 0047 78 .byte (.L779-.L781)/2 + 11144 0048 74 .byte (.L780-.L781)/2 + 11145 0049 00 .p2align 1 + 11146 .L775: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11147 .loc 1 1479 7 is_stmt 0 discriminator 4 view .LVU3490 + 11148 004a 90F83F30 ldrb r3, [r0, #63] @ zero_extendqisi2 + 11149 004e DBB2 uxtb r3, r3 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11150 .loc 1 1479 44 discriminator 4 view .LVU3491 + 11151 0050 013B subs r3, r3, #1 + 11152 0052 18BF it ne + 11153 0054 0123 movne r3, #1 + 11154 0056 E8E7 b .L777 + 11155 .L774: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11156 .loc 1 1479 7 discriminator 7 view .LVU3492 + 11157 0058 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 11158 005c DBB2 uxtb r3, r3 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11159 .loc 1 1479 44 discriminator 7 view .LVU3493 + 11160 005e 013B subs r3, r3, #1 + 11161 0060 18BF it ne + 11162 0062 0123 movne r3, #1 + 11163 0064 E1E7 b .L777 + 11164 .L773: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11165 .loc 1 1479 7 discriminator 10 view .LVU3494 + 11166 0066 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 11167 006a DBB2 uxtb r3, r3 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11168 .loc 1 1479 44 discriminator 10 view .LVU3495 + 11169 006c 013B subs r3, r3, #1 + 11170 006e 18BF it ne + 11171 0070 0123 movne r3, #1 + 11172 0072 DAE7 b .L777 + 11173 .L771: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11174 .loc 1 1479 7 discriminator 13 view .LVU3496 + 11175 0074 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 + ARM GAS /tmp/cc0wMqvE.s page 388 + + + 11176 0078 DBB2 uxtb r3, r3 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11177 .loc 1 1479 44 discriminator 13 view .LVU3497 + 11178 007a 013B subs r3, r3, #1 + 11179 007c 18BF it ne + 11180 007e 0123 movne r3, #1 + 11181 0080 D3E7 b .L777 + 11182 .L770: +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11183 .loc 1 1479 7 discriminator 14 view .LVU3498 + 11184 0082 90F84330 ldrb r3, [r0, #67] @ zero_extendqisi2 + 11185 0086 DBB2 uxtb r3, r3 +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11186 .loc 1 1479 44 discriminator 14 view .LVU3499 + 11187 0088 013B subs r3, r3, #1 + 11188 008a 18BF it ne + 11189 008c 0123 movne r3, #1 + 11190 008e CCE7 b .L777 + 11191 .L785: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11192 .loc 1 1485 3 discriminator 1 view .LVU3500 + 11193 0090 0223 movs r3, #2 + 11194 0092 84F83E30 strb r3, [r4, #62] + 11195 .L786: +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11196 .loc 1 1488 3 is_stmt 1 view .LVU3501 + 11197 0096 0122 movs r2, #1 + 11198 0098 2068 ldr r0, [r4] + 11199 .LVL880: +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11200 .loc 1 1488 3 is_stmt 0 view .LVU3502 + 11201 009a FFF7FEFF bl TIM_CCxChannelCmd + 11202 .LVL881: +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11203 .loc 1 1490 3 is_stmt 1 view .LVU3503 +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11204 .loc 1 1490 7 is_stmt 0 view .LVU3504 + 11205 009e 2368 ldr r3, [r4] + 11206 00a0 2D4A ldr r2, .L795 + 11207 00a2 9342 cmp r3, r2 + 11208 00a4 0FD0 beq .L787 +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11209 .loc 1 1490 7 discriminator 2 view .LVU3505 + 11210 00a6 02F50062 add r2, r2, #2048 + 11211 00aa 9342 cmp r3, r2 + 11212 00ac 0BD0 beq .L787 +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11213 .loc 1 1490 7 discriminator 4 view .LVU3506 + 11214 00ae 02F54062 add r2, r2, #3072 + 11215 00b2 9342 cmp r3, r2 + 11216 00b4 07D0 beq .L787 +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11217 .loc 1 1490 7 discriminator 6 view .LVU3507 + 11218 00b6 02F58062 add r2, r2, #1024 + 11219 00ba 9342 cmp r3, r2 + 11220 00bc 03D0 beq .L787 +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 389 + + + 11221 .loc 1 1490 7 discriminator 8 view .LVU3508 + 11222 00be 02F58062 add r2, r2, #1024 + 11223 00c2 9342 cmp r3, r2 + 11224 00c4 03D1 bne .L788 + 11225 .L787: +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11226 .loc 1 1493 5 is_stmt 1 view .LVU3509 + 11227 00c6 5A6C ldr r2, [r3, #68] + 11228 00c8 42F40042 orr r2, r2, #32768 + 11229 00cc 5A64 str r2, [r3, #68] + 11230 .L788: +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11231 .loc 1 1497 3 view .LVU3510 +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11232 .loc 1 1497 7 is_stmt 0 view .LVU3511 + 11233 00ce 2368 ldr r3, [r4] +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11234 .loc 1 1497 6 view .LVU3512 + 11235 00d0 214A ldr r2, .L795 + 11236 00d2 9342 cmp r3, r2 + 11237 00d4 2CD0 beq .L789 +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11238 .loc 1 1497 7 discriminator 1 view .LVU3513 + 11239 00d6 B3F1804F cmp r3, #1073741824 + 11240 00da 29D0 beq .L789 +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11241 .loc 1 1497 7 discriminator 2 view .LVU3514 + 11242 00dc A2F59432 sub r2, r2, #75776 + 11243 00e0 9342 cmp r3, r2 + 11244 00e2 25D0 beq .L789 +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11245 .loc 1 1497 7 discriminator 3 view .LVU3515 + 11246 00e4 02F58062 add r2, r2, #1024 + 11247 00e8 9342 cmp r3, r2 + 11248 00ea 21D0 beq .L789 +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11249 .loc 1 1497 7 discriminator 4 view .LVU3516 + 11250 00ec 02F59632 add r2, r2, #76800 + 11251 00f0 9342 cmp r3, r2 + 11252 00f2 1DD0 beq .L789 +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11253 .loc 1 1497 7 discriminator 5 view .LVU3517 + 11254 00f4 02F54062 add r2, r2, #3072 + 11255 00f8 9342 cmp r3, r2 + 11256 00fa 19D0 beq .L789 +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11257 .loc 1 1507 5 is_stmt 1 view .LVU3518 + 11258 00fc 1A68 ldr r2, [r3] + 11259 00fe 42F00102 orr r2, r2, #1 + 11260 0102 1A60 str r2, [r3] +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11261 .loc 1 1511 10 is_stmt 0 view .LVU3519 + 11262 0104 0020 movs r0, #0 + 11263 0106 22E0 b .L778 + 11264 .LVL882: + 11265 .L784: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 390 + + + 11266 .loc 1 1485 3 discriminator 3 view .LVU3520 + 11267 0108 0223 movs r3, #2 + 11268 010a 84F83F30 strb r3, [r4, #63] + 11269 010e C2E7 b .L786 + 11270 .L783: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11271 .loc 1 1485 3 discriminator 6 view .LVU3521 + 11272 0110 0223 movs r3, #2 + 11273 0112 84F84030 strb r3, [r4, #64] + 11274 0116 BEE7 b .L786 + 11275 .L782: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11276 .loc 1 1485 3 discriminator 9 view .LVU3522 + 11277 0118 0223 movs r3, #2 + 11278 011a 84F84130 strb r3, [r4, #65] + 11279 011e BAE7 b .L786 + 11280 .L780: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11281 .loc 1 1485 3 discriminator 12 view .LVU3523 + 11282 0120 0223 movs r3, #2 + 11283 0122 84F84230 strb r3, [r4, #66] + 11284 0126 B6E7 b .L786 + 11285 .L779: +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11286 .loc 1 1485 3 discriminator 13 view .LVU3524 + 11287 0128 0223 movs r3, #2 + 11288 012a 84F84330 strb r3, [r4, #67] + 11289 012e B2E7 b .L786 + 11290 .LVL883: + 11291 .L789: +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 11292 .loc 1 1499 5 is_stmt 1 view .LVU3525 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 11293 .loc 1 1499 29 is_stmt 0 view .LVU3526 + 11294 0130 9968 ldr r1, [r3, #8] +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 11295 .loc 1 1499 13 view .LVU3527 + 11296 0132 0A4A ldr r2, .L795+4 + 11297 0134 0A40 ands r2, r2, r1 + 11298 .LVL884: +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11299 .loc 1 1500 5 is_stmt 1 view .LVU3528 +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11300 .loc 1 1500 8 is_stmt 0 view .LVU3529 + 11301 0136 062A cmp r2, #6 + 11302 0138 0AD0 beq .L792 +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11303 .loc 1 1500 9 discriminator 1 view .LVU3530 + 11304 013a B2F5803F cmp r2, #65536 + 11305 013e 09D0 beq .L793 +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11306 .loc 1 1502 7 is_stmt 1 view .LVU3531 + 11307 0140 1A68 ldr r2, [r3] + 11308 .LVL885: +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11309 .loc 1 1502 7 is_stmt 0 view .LVU3532 + 11310 0142 42F00102 orr r2, r2, #1 + ARM GAS /tmp/cc0wMqvE.s page 391 + + + 11311 0146 1A60 str r2, [r3] +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11312 .loc 1 1511 10 view .LVU3533 + 11313 0148 0020 movs r0, #0 + 11314 014a 00E0 b .L778 + 11315 .LVL886: + 11316 .L791: +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11317 .loc 1 1481 12 view .LVU3534 + 11318 014c 0120 movs r0, #1 + 11319 .LVL887: + 11320 .L778: +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11321 .loc 1 1512 1 view .LVU3535 + 11322 014e 10BD pop {r4, pc} + 11323 .LVL888: + 11324 .L792: +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11325 .loc 1 1511 10 view .LVU3536 + 11326 0150 0020 movs r0, #0 + 11327 0152 FCE7 b .L778 + 11328 .L793: + 11329 0154 0020 movs r0, #0 + 11330 0156 FAE7 b .L778 + 11331 .L796: + 11332 .align 2 + 11333 .L795: + 11334 0158 002C0140 .word 1073818624 + 11335 015c 07000100 .word 65543 + 11336 .cfi_endproc + 11337 .LFE353: + 11339 .section .text.HAL_TIM_PWM_Stop,"ax",%progbits + 11340 .align 1 + 11341 .global HAL_TIM_PWM_Stop + 11342 .syntax unified + 11343 .thumb + 11344 .thumb_func + 11346 HAL_TIM_PWM_Stop: + 11347 .LVL889: + 11348 .LFB354: +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 11349 .loc 1 1528 1 is_stmt 1 view -0 + 11350 .cfi_startproc + 11351 @ args = 0, pretend = 0, frame = 0 + 11352 @ frame_needed = 0, uses_anonymous_args = 0 +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 11353 .loc 1 1528 1 is_stmt 0 view .LVU3538 + 11354 0000 38B5 push {r3, r4, r5, lr} + 11355 .LCFI92: + 11356 .cfi_def_cfa_offset 16 + 11357 .cfi_offset 3, -16 + 11358 .cfi_offset 4, -12 + 11359 .cfi_offset 5, -8 + 11360 .cfi_offset 14, -4 + 11361 0002 0446 mov r4, r0 + 11362 0004 0D46 mov r5, r1 +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 392 + + + 11363 .loc 1 1530 3 is_stmt 1 view .LVU3539 +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11364 .loc 1 1533 3 view .LVU3540 + 11365 0006 0022 movs r2, #0 + 11366 0008 0068 ldr r0, [r0] + 11367 .LVL890: +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11368 .loc 1 1533 3 is_stmt 0 view .LVU3541 + 11369 000a FFF7FEFF bl TIM_CCxChannelCmd + 11370 .LVL891: +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11371 .loc 1 1535 3 is_stmt 1 view .LVU3542 +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11372 .loc 1 1535 7 is_stmt 0 view .LVU3543 + 11373 000e 2368 ldr r3, [r4] + 11374 0010 2A4A ldr r2, .L810 + 11375 0012 9342 cmp r3, r2 + 11376 0014 0FD0 beq .L798 +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11377 .loc 1 1535 7 discriminator 2 view .LVU3544 + 11378 0016 02F50062 add r2, r2, #2048 + 11379 001a 9342 cmp r3, r2 + 11380 001c 0BD0 beq .L798 +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11381 .loc 1 1535 7 discriminator 4 view .LVU3545 + 11382 001e 02F54062 add r2, r2, #3072 + 11383 0022 9342 cmp r3, r2 + 11384 0024 07D0 beq .L798 +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11385 .loc 1 1535 7 discriminator 6 view .LVU3546 + 11386 0026 02F58062 add r2, r2, #1024 + 11387 002a 9342 cmp r3, r2 + 11388 002c 03D0 beq .L798 +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11389 .loc 1 1535 7 discriminator 8 view .LVU3547 + 11390 002e 02F58062 add r2, r2, #1024 + 11391 0032 9342 cmp r3, r2 + 11392 0034 0DD1 bne .L799 + 11393 .L798: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11394 .loc 1 1538 5 is_stmt 1 view .LVU3548 +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11395 .loc 1 1538 5 view .LVU3549 + 11396 0036 196A ldr r1, [r3, #32] + 11397 0038 41F21112 movw r2, #4369 + 11398 003c 1142 tst r1, r2 + 11399 003e 08D1 bne .L799 +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11400 .loc 1 1538 5 discriminator 1 view .LVU3550 + 11401 0040 196A ldr r1, [r3, #32] + 11402 0042 44F24442 movw r2, #17476 + 11403 0046 1142 tst r1, r2 + 11404 0048 03D1 bne .L799 +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11405 .loc 1 1538 5 discriminator 3 view .LVU3551 + 11406 004a 5A6C ldr r2, [r3, #68] + 11407 004c 22F40042 bic r2, r2, #32768 + ARM GAS /tmp/cc0wMqvE.s page 393 + + + 11408 0050 5A64 str r2, [r3, #68] + 11409 .L799: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11410 .loc 1 1538 5 discriminator 5 view .LVU3552 +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11411 .loc 1 1542 3 discriminator 5 view .LVU3553 +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11412 .loc 1 1542 3 discriminator 5 view .LVU3554 + 11413 0052 2368 ldr r3, [r4] + 11414 0054 196A ldr r1, [r3, #32] + 11415 0056 41F21112 movw r2, #4369 + 11416 005a 1142 tst r1, r2 + 11417 005c 08D1 bne .L800 +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11418 .loc 1 1542 3 discriminator 1 view .LVU3555 + 11419 005e 196A ldr r1, [r3, #32] + 11420 0060 44F24442 movw r2, #17476 + 11421 0064 1142 tst r1, r2 + 11422 0066 03D1 bne .L800 +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11423 .loc 1 1542 3 discriminator 3 view .LVU3556 + 11424 0068 1A68 ldr r2, [r3] + 11425 006a 22F00102 bic r2, r2, #1 + 11426 006e 1A60 str r2, [r3] + 11427 .L800: +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11428 .loc 1 1542 3 discriminator 5 view .LVU3557 +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11429 .loc 1 1545 3 discriminator 5 view .LVU3558 + 11430 0070 25B9 cbnz r5, .L801 +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11431 .loc 1 1545 3 is_stmt 0 discriminator 1 view .LVU3559 + 11432 0072 0123 movs r3, #1 + 11433 0074 84F83E30 strb r3, [r4, #62] + 11434 .LVL892: + 11435 .L802: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11436 .loc 1 1548 3 is_stmt 1 view .LVU3560 +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11437 .loc 1 1549 1 is_stmt 0 view .LVU3561 + 11438 0078 0020 movs r0, #0 + 11439 007a 38BD pop {r3, r4, r5, pc} + 11440 .LVL893: + 11441 .L801: +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11442 .loc 1 1549 1 view .LVU3562 + 11443 007c 043D subs r5, r5, #4 + 11444 .LVL894: +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11445 .loc 1 1549 1 view .LVU3563 + 11446 007e 0C2D cmp r5, #12 + 11447 0080 18D8 bhi .L803 + 11448 0082 DFE805F0 tbb [pc, r5] + 11449 .L805: + 11450 0086 07 .byte (.L808-.L805)/2 + 11451 0087 17 .byte (.L803-.L805)/2 + 11452 0088 17 .byte (.L803-.L805)/2 + ARM GAS /tmp/cc0wMqvE.s page 394 + + + 11453 0089 17 .byte (.L803-.L805)/2 + 11454 008a 0B .byte (.L807-.L805)/2 + 11455 008b 17 .byte (.L803-.L805)/2 + 11456 008c 17 .byte (.L803-.L805)/2 + 11457 008d 17 .byte (.L803-.L805)/2 + 11458 008e 0F .byte (.L806-.L805)/2 + 11459 008f 17 .byte (.L803-.L805)/2 + 11460 0090 17 .byte (.L803-.L805)/2 + 11461 0091 17 .byte (.L803-.L805)/2 + 11462 0092 13 .byte (.L804-.L805)/2 + 11463 0093 00 .p2align 1 + 11464 .L808: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11465 .loc 1 1545 3 discriminator 3 view .LVU3564 + 11466 0094 0123 movs r3, #1 + 11467 0096 84F83F30 strb r3, [r4, #63] + 11468 009a EDE7 b .L802 + 11469 .L807: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11470 .loc 1 1545 3 discriminator 6 view .LVU3565 + 11471 009c 0123 movs r3, #1 + 11472 009e 84F84030 strb r3, [r4, #64] + 11473 00a2 E9E7 b .L802 + 11474 .L806: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11475 .loc 1 1545 3 discriminator 9 view .LVU3566 + 11476 00a4 0123 movs r3, #1 + 11477 00a6 84F84130 strb r3, [r4, #65] + 11478 00aa E5E7 b .L802 + 11479 .L804: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11480 .loc 1 1545 3 discriminator 12 view .LVU3567 + 11481 00ac 0123 movs r3, #1 + 11482 00ae 84F84230 strb r3, [r4, #66] + 11483 00b2 E1E7 b .L802 + 11484 .L803: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11485 .loc 1 1545 3 discriminator 13 view .LVU3568 + 11486 00b4 0123 movs r3, #1 + 11487 00b6 84F84330 strb r3, [r4, #67] + 11488 00ba DDE7 b .L802 + 11489 .L811: + 11490 .align 2 + 11491 .L810: + 11492 00bc 002C0140 .word 1073818624 + 11493 .cfi_endproc + 11494 .LFE354: + 11496 .section .text.HAL_TIM_PWM_Start_IT,"ax",%progbits + 11497 .align 1 + 11498 .global HAL_TIM_PWM_Start_IT + 11499 .syntax unified + 11500 .thumb + 11501 .thumb_func + 11503 HAL_TIM_PWM_Start_IT: + 11504 .LVL895: + 11505 .LFB355: +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + ARM GAS /tmp/cc0wMqvE.s page 395 + + + 11506 .loc 1 1563 1 is_stmt 1 view -0 + 11507 .cfi_startproc + 11508 @ args = 0, pretend = 0, frame = 0 + 11509 @ frame_needed = 0, uses_anonymous_args = 0 +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 11510 .loc 1 1563 1 is_stmt 0 view .LVU3570 + 11511 0000 10B5 push {r4, lr} + 11512 .LCFI93: + 11513 .cfi_def_cfa_offset 8 + 11514 .cfi_offset 4, -8 + 11515 .cfi_offset 14, -4 + 11516 0002 0446 mov r4, r0 +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 11517 .loc 1 1564 3 is_stmt 1 view .LVU3571 + 11518 .LVL896: +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11519 .loc 1 1565 3 view .LVU3572 +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11520 .loc 1 1568 3 view .LVU3573 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11521 .loc 1 1571 3 view .LVU3574 + 11522 0004 1029 cmp r1, #16 + 11523 0006 3DD8 bhi .L813 + 11524 0008 DFE801F0 tbb [pc, r1] + 11525 .L815: + 11526 000c 09 .byte (.L819-.L815)/2 + 11527 000d 3C .byte (.L813-.L815)/2 + 11528 000e 3C .byte (.L813-.L815)/2 + 11529 000f 3C .byte (.L813-.L815)/2 + 11530 0010 20 .byte (.L818-.L815)/2 + 11531 0011 3C .byte (.L813-.L815)/2 + 11532 0012 3C .byte (.L813-.L815)/2 + 11533 0013 3C .byte (.L813-.L815)/2 + 11534 0014 27 .byte (.L817-.L815)/2 + 11535 0015 3C .byte (.L813-.L815)/2 + 11536 0016 3C .byte (.L813-.L815)/2 + 11537 0017 3C .byte (.L813-.L815)/2 + 11538 0018 2E .byte (.L816-.L815)/2 + 11539 0019 3C .byte (.L813-.L815)/2 + 11540 001a 3C .byte (.L813-.L815)/2 + 11541 001b 3C .byte (.L813-.L815)/2 + 11542 001c 35 .byte (.L814-.L815)/2 + 11543 001d 00 .p2align 1 + 11544 .L819: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11545 .loc 1 1571 7 is_stmt 0 discriminator 1 view .LVU3575 + 11546 001e 90F83E30 ldrb r3, [r0, #62] @ zero_extendqisi2 + 11547 0022 DBB2 uxtb r3, r3 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11548 .loc 1 1571 44 discriminator 1 view .LVU3576 + 11549 0024 013B subs r3, r3, #1 + 11550 0026 18BF it ne + 11551 0028 0123 movne r3, #1 + 11552 .L820: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11553 .loc 1 1571 6 discriminator 20 view .LVU3577 + 11554 002a 002B cmp r3, #0 + ARM GAS /tmp/cc0wMqvE.s page 396 + + + 11555 002c 40F0C280 bne .L839 +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11556 .loc 1 1577 3 is_stmt 1 view .LVU3578 + 11557 0030 1029 cmp r1, #16 + 11558 0032 00F28F80 bhi .L822 + 11559 0036 DFE801F0 tbb [pc, r1] + 11560 .L824: + 11561 003a 2C .byte (.L828-.L824)/2 + 11562 003b 8D .byte (.L822-.L824)/2 + 11563 003c 8D .byte (.L822-.L824)/2 + 11564 003d 8D .byte (.L822-.L824)/2 + 11565 003e 6D .byte (.L827-.L824)/2 + 11566 003f 8D .byte (.L822-.L824)/2 + 11567 0040 8D .byte (.L822-.L824)/2 + 11568 0041 8D .byte (.L822-.L824)/2 + 11569 0042 76 .byte (.L826-.L824)/2 + 11570 0043 8D .byte (.L822-.L824)/2 + 11571 0044 8D .byte (.L822-.L824)/2 + 11572 0045 8D .byte (.L822-.L824)/2 + 11573 0046 7F .byte (.L825-.L824)/2 + 11574 0047 8D .byte (.L822-.L824)/2 + 11575 0048 8D .byte (.L822-.L824)/2 + 11576 0049 8D .byte (.L822-.L824)/2 + 11577 004a 88 .byte (.L823-.L824)/2 + 11578 004b 00 .p2align 1 + 11579 .L818: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11580 .loc 1 1571 7 is_stmt 0 discriminator 4 view .LVU3579 + 11581 004c 90F83F30 ldrb r3, [r0, #63] @ zero_extendqisi2 + 11582 0050 DBB2 uxtb r3, r3 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11583 .loc 1 1571 44 discriminator 4 view .LVU3580 + 11584 0052 013B subs r3, r3, #1 + 11585 0054 18BF it ne + 11586 0056 0123 movne r3, #1 + 11587 0058 E7E7 b .L820 + 11588 .L817: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11589 .loc 1 1571 7 discriminator 7 view .LVU3581 + 11590 005a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 + 11591 005e DBB2 uxtb r3, r3 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11592 .loc 1 1571 44 discriminator 7 view .LVU3582 + 11593 0060 013B subs r3, r3, #1 + 11594 0062 18BF it ne + 11595 0064 0123 movne r3, #1 + 11596 0066 E0E7 b .L820 + 11597 .L816: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11598 .loc 1 1571 7 discriminator 10 view .LVU3583 + 11599 0068 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 + 11600 006c DBB2 uxtb r3, r3 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11601 .loc 1 1571 44 discriminator 10 view .LVU3584 + 11602 006e 013B subs r3, r3, #1 + 11603 0070 18BF it ne + 11604 0072 0123 movne r3, #1 + ARM GAS /tmp/cc0wMqvE.s page 397 + + + 11605 0074 D9E7 b .L820 + 11606 .L814: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11607 .loc 1 1571 7 discriminator 13 view .LVU3585 + 11608 0076 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 + 11609 007a DBB2 uxtb r3, r3 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11610 .loc 1 1571 44 discriminator 13 view .LVU3586 + 11611 007c 013B subs r3, r3, #1 + 11612 007e 18BF it ne + 11613 0080 0123 movne r3, #1 + 11614 0082 D2E7 b .L820 + 11615 .L813: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11616 .loc 1 1571 7 discriminator 14 view .LVU3587 + 11617 0084 90F84330 ldrb r3, [r0, #67] @ zero_extendqisi2 + 11618 0088 DBB2 uxtb r3, r3 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11619 .loc 1 1571 44 discriminator 14 view .LVU3588 + 11620 008a 013B subs r3, r3, #1 + 11621 008c 18BF it ne + 11622 008e 0123 movne r3, #1 + 11623 0090 CBE7 b .L820 + 11624 .L828: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11625 .loc 1 1577 3 view .LVU3589 + 11626 0092 0223 movs r3, #2 + 11627 0094 84F83E30 strb r3, [r4, #62] +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11628 .loc 1 1579 3 is_stmt 1 view .LVU3590 + 11629 .L829: +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11630 .loc 1 1584 7 view .LVU3591 + 11631 0098 2268 ldr r2, [r4] + 11632 009a D368 ldr r3, [r2, #12] + 11633 009c 43F00203 orr r3, r3, #2 + 11634 00a0 D360 str r3, [r2, #12] +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11635 .loc 1 1585 7 view .LVU3592 +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11636 .loc 1 1614 3 view .LVU3593 + 11637 .L834: +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11638 .loc 1 1617 5 view .LVU3594 + 11639 00a2 0122 movs r2, #1 + 11640 00a4 2068 ldr r0, [r4] + 11641 .LVL897: +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11642 .loc 1 1617 5 is_stmt 0 view .LVU3595 + 11643 00a6 FFF7FEFF bl TIM_CCxChannelCmd + 11644 .LVL898: +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11645 .loc 1 1619 5 is_stmt 1 view .LVU3596 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11646 .loc 1 1619 9 is_stmt 0 view .LVU3597 + 11647 00aa 2368 ldr r3, [r4] + 11648 00ac 454A ldr r2, .L848 + ARM GAS /tmp/cc0wMqvE.s page 398 + + + 11649 00ae 9342 cmp r3, r2 + 11650 00b0 0FD0 beq .L835 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11651 .loc 1 1619 9 discriminator 2 view .LVU3598 + 11652 00b2 02F50062 add r2, r2, #2048 + 11653 00b6 9342 cmp r3, r2 + 11654 00b8 0BD0 beq .L835 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11655 .loc 1 1619 9 discriminator 4 view .LVU3599 + 11656 00ba 02F54062 add r2, r2, #3072 + 11657 00be 9342 cmp r3, r2 + 11658 00c0 07D0 beq .L835 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11659 .loc 1 1619 9 discriminator 6 view .LVU3600 + 11660 00c2 02F58062 add r2, r2, #1024 + 11661 00c6 9342 cmp r3, r2 + 11662 00c8 03D0 beq .L835 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11663 .loc 1 1619 9 discriminator 8 view .LVU3601 + 11664 00ca 02F58062 add r2, r2, #1024 + 11665 00ce 9342 cmp r3, r2 + 11666 00d0 03D1 bne .L836 + 11667 .L835: +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11668 .loc 1 1622 7 is_stmt 1 view .LVU3602 + 11669 00d2 5A6C ldr r2, [r3, #68] + 11670 00d4 42F40042 orr r2, r2, #32768 + 11671 00d8 5A64 str r2, [r3, #68] + 11672 .L836: +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11673 .loc 1 1626 5 view .LVU3603 +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11674 .loc 1 1626 9 is_stmt 0 view .LVU3604 + 11675 00da 2368 ldr r3, [r4] +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11676 .loc 1 1626 8 view .LVU3605 + 11677 00dc 394A ldr r2, .L848 + 11678 00de 9342 cmp r3, r2 + 11679 00e0 5AD0 beq .L837 +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11680 .loc 1 1626 9 discriminator 1 view .LVU3606 + 11681 00e2 B3F1804F cmp r3, #1073741824 + 11682 00e6 57D0 beq .L837 +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11683 .loc 1 1626 9 discriminator 2 view .LVU3607 + 11684 00e8 A2F59432 sub r2, r2, #75776 + 11685 00ec 9342 cmp r3, r2 + 11686 00ee 53D0 beq .L837 +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11687 .loc 1 1626 9 discriminator 3 view .LVU3608 + 11688 00f0 02F58062 add r2, r2, #1024 + 11689 00f4 9342 cmp r3, r2 + 11690 00f6 4FD0 beq .L837 +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11691 .loc 1 1626 9 discriminator 4 view .LVU3609 + 11692 00f8 02F59632 add r2, r2, #76800 + 11693 00fc 9342 cmp r3, r2 + ARM GAS /tmp/cc0wMqvE.s page 399 + + + 11694 00fe 4BD0 beq .L837 +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11695 .loc 1 1626 9 discriminator 5 view .LVU3610 + 11696 0100 02F54062 add r2, r2, #3072 + 11697 0104 9342 cmp r3, r2 + 11698 0106 47D0 beq .L837 +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11699 .loc 1 1636 7 is_stmt 1 view .LVU3611 + 11700 0108 1A68 ldr r2, [r3] + 11701 010a 42F00102 orr r2, r2, #1 + 11702 010e 1A60 str r2, [r3] + 11703 0110 0020 movs r0, #0 + 11704 0112 50E0 b .L821 + 11705 .LVL899: + 11706 .L827: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11707 .loc 1 1577 3 is_stmt 0 view .LVU3612 + 11708 0114 0223 movs r3, #2 + 11709 0116 84F83F30 strb r3, [r4, #63] +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11710 .loc 1 1579 3 is_stmt 1 view .LVU3613 + 11711 .L830: +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11712 .loc 1 1591 7 view .LVU3614 + 11713 011a 2268 ldr r2, [r4] + 11714 011c D368 ldr r3, [r2, #12] + 11715 011e 43F00403 orr r3, r3, #4 + 11716 0122 D360 str r3, [r2, #12] +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11717 .loc 1 1592 7 view .LVU3615 +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11718 .loc 1 1614 3 view .LVU3616 + 11719 0124 BDE7 b .L834 + 11720 .L826: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11721 .loc 1 1577 3 is_stmt 0 view .LVU3617 + 11722 0126 0223 movs r3, #2 + 11723 0128 84F84030 strb r3, [r4, #64] +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11724 .loc 1 1579 3 is_stmt 1 view .LVU3618 + 11725 .L831: +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11726 .loc 1 1598 7 view .LVU3619 + 11727 012c 2268 ldr r2, [r4] + 11728 012e D368 ldr r3, [r2, #12] + 11729 0130 43F00803 orr r3, r3, #8 + 11730 0134 D360 str r3, [r2, #12] +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11731 .loc 1 1599 7 view .LVU3620 +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11732 .loc 1 1614 3 view .LVU3621 + 11733 0136 B4E7 b .L834 + 11734 .L825: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11735 .loc 1 1577 3 is_stmt 0 view .LVU3622 + 11736 0138 0223 movs r3, #2 + 11737 013a 84F84130 strb r3, [r4, #65] + ARM GAS /tmp/cc0wMqvE.s page 400 + + +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11738 .loc 1 1579 3 is_stmt 1 view .LVU3623 + 11739 .L832: +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11740 .loc 1 1605 7 view .LVU3624 + 11741 013e 2268 ldr r2, [r4] + 11742 0140 D368 ldr r3, [r2, #12] + 11743 0142 43F01003 orr r3, r3, #16 + 11744 0146 D360 str r3, [r2, #12] +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11745 .loc 1 1606 7 view .LVU3625 +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11746 .loc 1 1614 3 view .LVU3626 + 11747 0148 ABE7 b .L834 + 11748 .L823: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11749 .loc 1 1577 3 is_stmt 0 view .LVU3627 + 11750 014a 0223 movs r3, #2 + 11751 014c 84F84230 strb r3, [r4, #66] +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11752 .loc 1 1579 3 is_stmt 1 view .LVU3628 +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11753 .loc 1 1577 3 is_stmt 0 view .LVU3629 + 11754 0150 0120 movs r0, #1 + 11755 .LVL900: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11756 .loc 1 1577 3 view .LVU3630 + 11757 0152 30E0 b .L821 + 11758 .LVL901: + 11759 .L822: +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11760 .loc 1 1577 3 discriminator 13 view .LVU3631 + 11761 0154 0223 movs r3, #2 + 11762 0156 84F84330 strb r3, [r4, #67] +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11763 .loc 1 1579 3 is_stmt 1 discriminator 13 view .LVU3632 + 11764 015a 0C29 cmp r1, #12 + 11765 015c 2CD8 bhi .L840 + 11766 015e 01A3 adr r3, .L833 + 11767 0160 53F821F0 ldr pc, [r3, r1, lsl #2] + 11768 .p2align 2 + 11769 .L833: + 11770 0164 99000000 .word .L829+1 + 11771 0168 B9010000 .word .L840+1 + 11772 016c B9010000 .word .L840+1 + 11773 0170 B9010000 .word .L840+1 + 11774 0174 1B010000 .word .L830+1 + 11775 0178 B9010000 .word .L840+1 + 11776 017c B9010000 .word .L840+1 + 11777 0180 B9010000 .word .L840+1 + 11778 0184 2D010000 .word .L831+1 + 11779 0188 B9010000 .word .L840+1 + 11780 018c B9010000 .word .L840+1 + 11781 0190 B9010000 .word .L840+1 + 11782 0194 3F010000 .word .L832+1 + 11783 .LVL902: + 11784 .p2align 1 + ARM GAS /tmp/cc0wMqvE.s page 401 + + + 11785 .L837: +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 11786 .loc 1 1628 7 view .LVU3633 +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 11787 .loc 1 1628 31 is_stmt 0 view .LVU3634 + 11788 0198 9968 ldr r1, [r3, #8] +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 11789 .loc 1 1628 15 view .LVU3635 + 11790 019a 0B4A ldr r2, .L848+4 + 11791 019c 0A40 ands r2, r2, r1 + 11792 .LVL903: +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11793 .loc 1 1629 7 is_stmt 1 view .LVU3636 +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11794 .loc 1 1629 10 is_stmt 0 view .LVU3637 + 11795 019e 062A cmp r2, #6 + 11796 01a0 0CD0 beq .L841 +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11797 .loc 1 1629 11 discriminator 1 view .LVU3638 + 11798 01a2 B2F5803F cmp r2, #65536 + 11799 01a6 0BD0 beq .L842 +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11800 .loc 1 1631 9 is_stmt 1 view .LVU3639 + 11801 01a8 1A68 ldr r2, [r3] + 11802 .LVL904: +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11803 .loc 1 1631 9 is_stmt 0 view .LVU3640 + 11804 01aa 42F00102 orr r2, r2, #1 + 11805 01ae 1A60 str r2, [r3] + 11806 01b0 0020 movs r0, #0 + 11807 01b2 00E0 b .L821 + 11808 .LVL905: + 11809 .L839: +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11810 .loc 1 1573 12 view .LVU3641 + 11811 01b4 0120 movs r0, #1 + 11812 .LVL906: + 11813 .L821: +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11814 .loc 1 1642 1 view .LVU3642 + 11815 01b6 10BD pop {r4, pc} + 11816 .LVL907: + 11817 .L840: +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11818 .loc 1 1579 3 view .LVU3643 + 11819 01b8 0120 movs r0, #1 + 11820 .LVL908: +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11821 .loc 1 1579 3 view .LVU3644 + 11822 01ba FCE7 b .L821 + 11823 .LVL909: + 11824 .L841: +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11825 .loc 1 1579 3 view .LVU3645 + 11826 01bc 0020 movs r0, #0 + 11827 01be FAE7 b .L821 + 11828 .L842: + ARM GAS /tmp/cc0wMqvE.s page 402 + + + 11829 01c0 0020 movs r0, #0 + 11830 01c2 F8E7 b .L821 + 11831 .L849: + 11832 .align 2 + 11833 .L848: + 11834 01c4 002C0140 .word 1073818624 + 11835 01c8 07000100 .word 65543 + 11836 .cfi_endproc + 11837 .LFE355: + 11839 .section .text.HAL_TIM_PWM_Stop_IT,"ax",%progbits + 11840 .align 1 + 11841 .global HAL_TIM_PWM_Stop_IT + 11842 .syntax unified + 11843 .thumb + 11844 .thumb_func + 11846 HAL_TIM_PWM_Stop_IT: + 11847 .LVL910: + 11848 .LFB356: +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 11849 .loc 1 1656 1 is_stmt 1 view -0 + 11850 .cfi_startproc + 11851 @ args = 0, pretend = 0, frame = 0 + 11852 @ frame_needed = 0, uses_anonymous_args = 0 +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 11853 .loc 1 1656 1 is_stmt 0 view .LVU3647 + 11854 0000 38B5 push {r3, r4, r5, lr} + 11855 .LCFI94: + 11856 .cfi_def_cfa_offset 16 + 11857 .cfi_offset 3, -16 + 11858 .cfi_offset 4, -12 + 11859 .cfi_offset 5, -8 + 11860 .cfi_offset 14, -4 + 11861 0002 0546 mov r5, r0 + 11862 0004 0C46 mov r4, r1 +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11863 .loc 1 1657 3 is_stmt 1 view .LVU3648 + 11864 .LVL911: +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11865 .loc 1 1660 3 view .LVU3649 +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11866 .loc 1 1662 3 view .LVU3650 + 11867 0006 0C29 cmp r1, #12 + 11868 0008 00F28180 bhi .L868 + 11869 000c DFE801F0 tbb [pc, r1] + 11870 .L853: + 11871 0010 07 .byte (.L856-.L853)/2 + 11872 0011 7F .byte (.L868-.L853)/2 + 11873 0012 7F .byte (.L868-.L853)/2 + 11874 0013 7F .byte (.L868-.L853)/2 + 11875 0014 48 .byte (.L855-.L853)/2 + 11876 0015 7F .byte (.L868-.L853)/2 + 11877 0016 7F .byte (.L868-.L853)/2 + 11878 0017 7F .byte (.L868-.L853)/2 + 11879 0018 4E .byte (.L854-.L853)/2 + 11880 0019 7F .byte (.L868-.L853)/2 + 11881 001a 7F .byte (.L868-.L853)/2 + 11882 001b 7F .byte (.L868-.L853)/2 + ARM GAS /tmp/cc0wMqvE.s page 403 + + + 11883 001c 54 .byte (.L852-.L853)/2 + 11884 001d 00 .p2align 1 + 11885 .L856: +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11886 .loc 1 1667 7 view .LVU3651 + 11887 001e 0268 ldr r2, [r0] + 11888 0020 D368 ldr r3, [r2, #12] + 11889 0022 23F00203 bic r3, r3, #2 + 11890 0026 D360 str r3, [r2, #12] +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11891 .loc 1 1668 7 view .LVU3652 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11892 .loc 1 1697 3 view .LVU3653 + 11893 .L857: +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11894 .loc 1 1700 5 view .LVU3654 + 11895 0028 0022 movs r2, #0 + 11896 002a 2146 mov r1, r4 + 11897 .LVL912: +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11898 .loc 1 1700 5 is_stmt 0 view .LVU3655 + 11899 002c 2868 ldr r0, [r5] + 11900 .LVL913: +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11901 .loc 1 1700 5 view .LVU3656 + 11902 002e FFF7FEFF bl TIM_CCxChannelCmd + 11903 .LVL914: +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11904 .loc 1 1702 5 is_stmt 1 view .LVU3657 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11905 .loc 1 1702 9 is_stmt 0 view .LVU3658 + 11906 0032 2B68 ldr r3, [r5] + 11907 0034 374A ldr r2, .L870 + 11908 0036 9342 cmp r3, r2 + 11909 0038 0FD0 beq .L858 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11910 .loc 1 1702 9 discriminator 2 view .LVU3659 + 11911 003a 02F50062 add r2, r2, #2048 + 11912 003e 9342 cmp r3, r2 + 11913 0040 0BD0 beq .L858 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11914 .loc 1 1702 9 discriminator 4 view .LVU3660 + 11915 0042 02F54062 add r2, r2, #3072 + 11916 0046 9342 cmp r3, r2 + 11917 0048 07D0 beq .L858 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11918 .loc 1 1702 9 discriminator 6 view .LVU3661 + 11919 004a 02F58062 add r2, r2, #1024 + 11920 004e 9342 cmp r3, r2 + 11921 0050 03D0 beq .L858 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11922 .loc 1 1702 9 discriminator 8 view .LVU3662 + 11923 0052 02F58062 add r2, r2, #1024 + 11924 0056 9342 cmp r3, r2 + 11925 0058 0DD1 bne .L859 + 11926 .L858: +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 404 + + + 11927 .loc 1 1705 7 is_stmt 1 view .LVU3663 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11928 .loc 1 1705 7 view .LVU3664 + 11929 005a 196A ldr r1, [r3, #32] + 11930 005c 41F21112 movw r2, #4369 + 11931 0060 1142 tst r1, r2 + 11932 0062 08D1 bne .L859 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11933 .loc 1 1705 7 discriminator 1 view .LVU3665 + 11934 0064 196A ldr r1, [r3, #32] + 11935 0066 44F24442 movw r2, #17476 + 11936 006a 1142 tst r1, r2 + 11937 006c 03D1 bne .L859 +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11938 .loc 1 1705 7 discriminator 3 view .LVU3666 + 11939 006e 5A6C ldr r2, [r3, #68] + 11940 0070 22F40042 bic r2, r2, #32768 + 11941 0074 5A64 str r2, [r3, #68] + 11942 .L859: +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11943 .loc 1 1705 7 discriminator 5 view .LVU3667 +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11944 .loc 1 1709 5 discriminator 5 view .LVU3668 +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11945 .loc 1 1709 5 discriminator 5 view .LVU3669 + 11946 0076 2B68 ldr r3, [r5] + 11947 0078 196A ldr r1, [r3, #32] + 11948 007a 41F21112 movw r2, #4369 + 11949 007e 1142 tst r1, r2 + 11950 0080 08D1 bne .L860 +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11951 .loc 1 1709 5 discriminator 1 view .LVU3670 + 11952 0082 196A ldr r1, [r3, #32] + 11953 0084 44F24442 movw r2, #17476 + 11954 0088 1142 tst r1, r2 + 11955 008a 03D1 bne .L860 +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11956 .loc 1 1709 5 discriminator 3 view .LVU3671 + 11957 008c 1A68 ldr r2, [r3] + 11958 008e 22F00102 bic r2, r2, #1 + 11959 0092 1A60 str r2, [r3] + 11960 .L860: +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 11961 .loc 1 1709 5 discriminator 5 view .LVU3672 +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11962 .loc 1 1712 5 discriminator 5 view .LVU3673 + 11963 0094 B4B9 cbnz r4, .L861 +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11964 .loc 1 1712 5 is_stmt 0 discriminator 1 view .LVU3674 + 11965 0096 0123 movs r3, #1 + 11966 0098 85F83E30 strb r3, [r5, #62] + 11967 009c 0020 movs r0, #0 + 11968 009e 37E0 b .L851 + 11969 .LVL915: + 11970 .L855: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11971 .loc 1 1674 7 is_stmt 1 view .LVU3675 + ARM GAS /tmp/cc0wMqvE.s page 405 + + + 11972 00a0 0268 ldr r2, [r0] + 11973 00a2 D368 ldr r3, [r2, #12] + 11974 00a4 23F00403 bic r3, r3, #4 + 11975 00a8 D360 str r3, [r2, #12] +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11976 .loc 1 1675 7 view .LVU3676 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11977 .loc 1 1697 3 view .LVU3677 + 11978 00aa BDE7 b .L857 + 11979 .L854: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11980 .loc 1 1681 7 view .LVU3678 + 11981 00ac 0268 ldr r2, [r0] + 11982 00ae D368 ldr r3, [r2, #12] + 11983 00b0 23F00803 bic r3, r3, #8 + 11984 00b4 D360 str r3, [r2, #12] +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11985 .loc 1 1682 7 view .LVU3679 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11986 .loc 1 1697 3 view .LVU3680 + 11987 00b6 B7E7 b .L857 + 11988 .L852: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 11989 .loc 1 1688 7 view .LVU3681 + 11990 00b8 0268 ldr r2, [r0] + 11991 00ba D368 ldr r3, [r2, #12] + 11992 00bc 23F01003 bic r3, r3, #16 + 11993 00c0 D360 str r3, [r2, #12] +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 11994 .loc 1 1689 7 view .LVU3682 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11995 .loc 1 1697 3 view .LVU3683 + 11996 00c2 B1E7 b .L857 + 11997 .LVL916: + 11998 .L861: +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 11999 .loc 1 1697 3 is_stmt 0 view .LVU3684 + 12000 00c4 043C subs r4, r4, #4 + 12001 .LVL917: +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12002 .loc 1 1697 3 view .LVU3685 + 12003 00c6 0C2C cmp r4, #12 + 12004 00c8 1CD8 bhi .L862 + 12005 00ca DFE804F0 tbb [pc, r4] + 12006 .L864: + 12007 00ce 07 .byte (.L867-.L864)/2 + 12008 00cf 1B .byte (.L862-.L864)/2 + 12009 00d0 1B .byte (.L862-.L864)/2 + 12010 00d1 1B .byte (.L862-.L864)/2 + 12011 00d2 0C .byte (.L866-.L864)/2 + 12012 00d3 1B .byte (.L862-.L864)/2 + 12013 00d4 1B .byte (.L862-.L864)/2 + 12014 00d5 1B .byte (.L862-.L864)/2 + 12015 00d6 11 .byte (.L865-.L864)/2 + 12016 00d7 1B .byte (.L862-.L864)/2 + 12017 00d8 1B .byte (.L862-.L864)/2 + 12018 00d9 1B .byte (.L862-.L864)/2 + ARM GAS /tmp/cc0wMqvE.s page 406 + + + 12019 00da 16 .byte (.L863-.L864)/2 + 12020 00db 00 .p2align 1 + 12021 .L867: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12022 .loc 1 1712 5 discriminator 3 view .LVU3686 + 12023 00dc 0123 movs r3, #1 + 12024 00de 85F83F30 strb r3, [r5, #63] + 12025 00e2 0020 movs r0, #0 + 12026 00e4 14E0 b .L851 + 12027 .L866: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12028 .loc 1 1712 5 discriminator 6 view .LVU3687 + 12029 00e6 0123 movs r3, #1 + 12030 00e8 85F84030 strb r3, [r5, #64] + 12031 00ec 0020 movs r0, #0 + 12032 00ee 0FE0 b .L851 + 12033 .L865: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12034 .loc 1 1712 5 discriminator 9 view .LVU3688 + 12035 00f0 0123 movs r3, #1 + 12036 00f2 85F84130 strb r3, [r5, #65] + 12037 00f6 0020 movs r0, #0 + 12038 00f8 0AE0 b .L851 + 12039 .L863: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12040 .loc 1 1712 5 discriminator 12 view .LVU3689 + 12041 00fa 0123 movs r3, #1 + 12042 00fc 85F84230 strb r3, [r5, #66] + 12043 0100 0020 movs r0, #0 + 12044 0102 05E0 b .L851 + 12045 .L862: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12046 .loc 1 1712 5 discriminator 13 view .LVU3690 + 12047 0104 0123 movs r3, #1 + 12048 0106 85F84330 strb r3, [r5, #67] + 12049 010a 0020 movs r0, #0 + 12050 010c 00E0 b .L851 + 12051 .LVL918: + 12052 .L868: +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12053 .loc 1 1662 3 view .LVU3691 + 12054 010e 0120 movs r0, #1 + 12055 .LVL919: + 12056 .L851: +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12057 .loc 1 1716 3 is_stmt 1 view .LVU3692 +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12058 .loc 1 1717 1 is_stmt 0 view .LVU3693 + 12059 0110 38BD pop {r3, r4, r5, pc} + 12060 .LVL920: + 12061 .L871: +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12062 .loc 1 1717 1 view .LVU3694 + 12063 0112 00BF .align 2 + 12064 .L870: + 12065 0114 002C0140 .word 1073818624 + 12066 .cfi_endproc + ARM GAS /tmp/cc0wMqvE.s page 407 + + + 12067 .LFE356: + 12069 .section .text.HAL_TIM_PWM_Start_DMA,"ax",%progbits + 12070 .align 1 + 12071 .global HAL_TIM_PWM_Start_DMA + 12072 .syntax unified + 12073 .thumb + 12074 .thumb_func + 12076 HAL_TIM_PWM_Start_DMA: + 12077 .LVL921: + 12078 .LFB357: +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 12079 .loc 1 1733 1 is_stmt 1 view -0 + 12080 .cfi_startproc + 12081 @ args = 0, pretend = 0, frame = 0 + 12082 @ frame_needed = 0, uses_anonymous_args = 0 +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 12083 .loc 1 1733 1 is_stmt 0 view .LVU3696 + 12084 0000 38B5 push {r3, r4, r5, lr} + 12085 .LCFI95: + 12086 .cfi_def_cfa_offset 16 + 12087 .cfi_offset 3, -16 + 12088 .cfi_offset 4, -12 + 12089 .cfi_offset 5, -8 + 12090 .cfi_offset 14, -4 + 12091 0002 0446 mov r4, r0 + 12092 0004 0D46 mov r5, r1 + 12093 0006 1146 mov r1, r2 + 12094 .LVL922: +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 12095 .loc 1 1734 3 is_stmt 1 view .LVU3697 +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12096 .loc 1 1735 3 view .LVU3698 +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12097 .loc 1 1738 3 view .LVU3699 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12098 .loc 1 1741 3 view .LVU3700 + 12099 0008 102D cmp r5, #16 + 12100 000a 41D8 bhi .L873 + 12101 000c DFE805F0 tbb [pc, r5] + 12102 .LVL923: + 12103 .L875: + 12104 0010 09 .byte (.L879-.L875)/2 + 12105 0011 40 .byte (.L873-.L875)/2 + 12106 0012 40 .byte (.L873-.L875)/2 + 12107 0013 40 .byte (.L873-.L875)/2 + 12108 0014 20 .byte (.L878-.L875)/2 + 12109 0015 40 .byte (.L873-.L875)/2 + 12110 0016 40 .byte (.L873-.L875)/2 + 12111 0017 40 .byte (.L873-.L875)/2 + 12112 0018 28 .byte (.L877-.L875)/2 + 12113 0019 40 .byte (.L873-.L875)/2 + 12114 001a 40 .byte (.L873-.L875)/2 + 12115 001b 40 .byte (.L873-.L875)/2 + 12116 001c 30 .byte (.L876-.L875)/2 + 12117 001d 40 .byte (.L873-.L875)/2 + 12118 001e 40 .byte (.L873-.L875)/2 + 12119 001f 40 .byte (.L873-.L875)/2 + ARM GAS /tmp/cc0wMqvE.s page 408 + + + 12120 0020 38 .byte (.L874-.L875)/2 + 12121 0021 00 .p2align 1 + 12122 .L879: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12123 .loc 1 1741 7 is_stmt 0 discriminator 1 view .LVU3701 + 12124 0022 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 12125 .LVL924: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12126 .loc 1 1741 7 discriminator 1 view .LVU3702 + 12127 0026 C0B2 uxtb r0, r0 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12128 .loc 1 1741 44 discriminator 1 view .LVU3703 + 12129 0028 0228 cmp r0, #2 + 12130 002a 14BF ite ne + 12131 002c 0020 movne r0, #0 + 12132 002e 0120 moveq r0, #1 + 12133 .L880: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12134 .loc 1 1741 6 discriminator 20 view .LVU3704 + 12135 0030 0028 cmp r0, #0 + 12136 0032 40F05981 bne .L908 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12137 .loc 1 1745 8 is_stmt 1 view .LVU3705 + 12138 0036 102D cmp r5, #16 + 12139 0038 74D8 bhi .L882 + 12140 003a DFE805F0 tbb [pc, r5] + 12141 .L884: + 12142 003e 31 .byte (.L888-.L884)/2 + 12143 003f 73 .byte (.L882-.L884)/2 + 12144 0040 73 .byte (.L882-.L884)/2 + 12145 0041 73 .byte (.L882-.L884)/2 + 12146 0042 53 .byte (.L887-.L884)/2 + 12147 0043 73 .byte (.L882-.L884)/2 + 12148 0044 73 .byte (.L882-.L884)/2 + 12149 0045 73 .byte (.L882-.L884)/2 + 12150 0046 5B .byte (.L886-.L884)/2 + 12151 0047 73 .byte (.L882-.L884)/2 + 12152 0048 73 .byte (.L882-.L884)/2 + 12153 0049 73 .byte (.L882-.L884)/2 + 12154 004a 63 .byte (.L885-.L884)/2 + 12155 004b 73 .byte (.L882-.L884)/2 + 12156 004c 73 .byte (.L882-.L884)/2 + 12157 004d 73 .byte (.L882-.L884)/2 + 12158 004e 6B .byte (.L883-.L884)/2 + 12159 .LVL925: + 12160 004f 00 .p2align 1 + 12161 .L878: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12162 .loc 1 1741 7 is_stmt 0 discriminator 4 view .LVU3706 + 12163 0050 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 12164 .LVL926: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12165 .loc 1 1741 7 discriminator 4 view .LVU3707 + 12166 0054 C0B2 uxtb r0, r0 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12167 .loc 1 1741 44 discriminator 4 view .LVU3708 + 12168 0056 0228 cmp r0, #2 + ARM GAS /tmp/cc0wMqvE.s page 409 + + + 12169 0058 14BF ite ne + 12170 005a 0020 movne r0, #0 + 12171 005c 0120 moveq r0, #1 + 12172 005e E7E7 b .L880 + 12173 .LVL927: + 12174 .L877: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12175 .loc 1 1741 7 discriminator 7 view .LVU3709 + 12176 0060 90F84000 ldrb r0, [r0, #64] @ zero_extendqisi2 + 12177 .LVL928: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12178 .loc 1 1741 7 discriminator 7 view .LVU3710 + 12179 0064 C0B2 uxtb r0, r0 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12180 .loc 1 1741 44 discriminator 7 view .LVU3711 + 12181 0066 0228 cmp r0, #2 + 12182 0068 14BF ite ne + 12183 006a 0020 movne r0, #0 + 12184 006c 0120 moveq r0, #1 + 12185 006e DFE7 b .L880 + 12186 .LVL929: + 12187 .L876: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12188 .loc 1 1741 7 discriminator 10 view .LVU3712 + 12189 0070 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 12190 .LVL930: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12191 .loc 1 1741 7 discriminator 10 view .LVU3713 + 12192 0074 C0B2 uxtb r0, r0 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12193 .loc 1 1741 44 discriminator 10 view .LVU3714 + 12194 0076 0228 cmp r0, #2 + 12195 0078 14BF ite ne + 12196 007a 0020 movne r0, #0 + 12197 007c 0120 moveq r0, #1 + 12198 007e D7E7 b .L880 + 12199 .LVL931: + 12200 .L874: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12201 .loc 1 1741 7 discriminator 13 view .LVU3715 + 12202 0080 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 + 12203 .LVL932: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12204 .loc 1 1741 7 discriminator 13 view .LVU3716 + 12205 0084 C0B2 uxtb r0, r0 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12206 .loc 1 1741 44 discriminator 13 view .LVU3717 + 12207 0086 0228 cmp r0, #2 + 12208 0088 14BF ite ne + 12209 008a 0020 movne r0, #0 + 12210 008c 0120 moveq r0, #1 + 12211 008e CFE7 b .L880 + 12212 .LVL933: + 12213 .L873: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12214 .loc 1 1741 7 discriminator 14 view .LVU3718 + 12215 0090 90F84300 ldrb r0, [r0, #67] @ zero_extendqisi2 + ARM GAS /tmp/cc0wMqvE.s page 410 + + + 12216 .LVL934: +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12217 .loc 1 1741 7 discriminator 14 view .LVU3719 + 12218 0094 C0B2 uxtb r0, r0 +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12219 .loc 1 1741 44 discriminator 14 view .LVU3720 + 12220 0096 0228 cmp r0, #2 + 12221 0098 14BF ite ne + 12222 009a 0020 movne r0, #0 + 12223 009c 0120 moveq r0, #1 + 12224 009e C7E7 b .L880 + 12225 .L888: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12226 .loc 1 1745 12 discriminator 1 view .LVU3721 + 12227 00a0 94F83E20 ldrb r2, [r4, #62] @ zero_extendqisi2 + 12228 00a4 D2B2 uxtb r2, r2 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12229 .loc 1 1745 49 discriminator 1 view .LVU3722 + 12230 00a6 012A cmp r2, #1 + 12231 00a8 14BF ite ne + 12232 00aa 0022 movne r2, #0 + 12233 00ac 0122 moveq r2, #1 + 12234 .L889: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12235 .loc 1 1745 11 discriminator 20 view .LVU3723 + 12236 00ae 002A cmp r2, #0 + 12237 00b0 00F01C81 beq .L909 +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12238 .loc 1 1747 5 is_stmt 1 view .LVU3724 +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12239 .loc 1 1747 8 is_stmt 0 view .LVU3725 + 12240 00b4 0029 cmp r1, #0 + 12241 00b6 3DD0 beq .L923 + 12242 .L890: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12243 .loc 1 1753 7 is_stmt 1 view .LVU3726 + 12244 00b8 102D cmp r5, #16 + 12245 00ba 00F2E580 bhi .L891 + 12246 00be DFE815F0 tbh [pc, r5, lsl #1] + 12247 .L893: + 12248 00c2 3D00 .2byte (.L897-.L893)/2 + 12249 00c4 E300 .2byte (.L891-.L893)/2 + 12250 00c6 E300 .2byte (.L891-.L893)/2 + 12251 00c8 E300 .2byte (.L891-.L893)/2 + 12252 00ca 9300 .2byte (.L896-.L893)/2 + 12253 00cc E300 .2byte (.L891-.L893)/2 + 12254 00ce E300 .2byte (.L891-.L893)/2 + 12255 00d0 E300 .2byte (.L891-.L893)/2 + 12256 00d2 AC00 .2byte (.L895-.L893)/2 + 12257 00d4 E300 .2byte (.L891-.L893)/2 + 12258 00d6 E300 .2byte (.L891-.L893)/2 + 12259 00d8 E300 .2byte (.L891-.L893)/2 + 12260 00da C500 .2byte (.L894-.L893)/2 + 12261 00dc E300 .2byte (.L891-.L893)/2 + 12262 00de E300 .2byte (.L891-.L893)/2 + 12263 00e0 E300 .2byte (.L891-.L893)/2 + 12264 00e2 DE00 .2byte (.L892-.L893)/2 + ARM GAS /tmp/cc0wMqvE.s page 411 + + + 12265 .p2align 1 + 12266 .L887: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12267 .loc 1 1745 12 is_stmt 0 discriminator 4 view .LVU3727 + 12268 00e4 94F83F20 ldrb r2, [r4, #63] @ zero_extendqisi2 + 12269 00e8 D2B2 uxtb r2, r2 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12270 .loc 1 1745 49 discriminator 4 view .LVU3728 + 12271 00ea 012A cmp r2, #1 + 12272 00ec 14BF ite ne + 12273 00ee 0022 movne r2, #0 + 12274 00f0 0122 moveq r2, #1 + 12275 00f2 DCE7 b .L889 + 12276 .L886: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12277 .loc 1 1745 12 discriminator 7 view .LVU3729 + 12278 00f4 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2 + 12279 00f8 D2B2 uxtb r2, r2 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12280 .loc 1 1745 49 discriminator 7 view .LVU3730 + 12281 00fa 012A cmp r2, #1 + 12282 00fc 14BF ite ne + 12283 00fe 0022 movne r2, #0 + 12284 0100 0122 moveq r2, #1 + 12285 0102 D4E7 b .L889 + 12286 .L885: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12287 .loc 1 1745 12 discriminator 10 view .LVU3731 + 12288 0104 94F84120 ldrb r2, [r4, #65] @ zero_extendqisi2 + 12289 0108 D2B2 uxtb r2, r2 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12290 .loc 1 1745 49 discriminator 10 view .LVU3732 + 12291 010a 012A cmp r2, #1 + 12292 010c 14BF ite ne + 12293 010e 0022 movne r2, #0 + 12294 0110 0122 moveq r2, #1 + 12295 0112 CCE7 b .L889 + 12296 .L883: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12297 .loc 1 1745 12 discriminator 13 view .LVU3733 + 12298 0114 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 + 12299 0118 D2B2 uxtb r2, r2 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12300 .loc 1 1745 49 discriminator 13 view .LVU3734 + 12301 011a 012A cmp r2, #1 + 12302 011c 14BF ite ne + 12303 011e 0022 movne r2, #0 + 12304 0120 0122 moveq r2, #1 + 12305 0122 C4E7 b .L889 + 12306 .L882: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12307 .loc 1 1745 12 discriminator 14 view .LVU3735 + 12308 0124 94F84320 ldrb r2, [r4, #67] @ zero_extendqisi2 + 12309 0128 D2B2 uxtb r2, r2 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12310 .loc 1 1745 49 discriminator 14 view .LVU3736 + 12311 012a 012A cmp r2, #1 + ARM GAS /tmp/cc0wMqvE.s page 412 + + + 12312 012c 14BF ite ne + 12313 012e 0022 movne r2, #0 + 12314 0130 0122 moveq r2, #1 + 12315 0132 BCE7 b .L889 + 12316 .L923: +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12317 .loc 1 1747 25 discriminator 1 view .LVU3737 + 12318 0134 002B cmp r3, #0 + 12319 0136 BFD0 beq .L890 +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12320 .loc 1 1749 14 view .LVU3738 + 12321 0138 0120 movs r0, #1 + 12322 013a D8E0 b .L881 + 12323 .L897: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12324 .loc 1 1753 7 view .LVU3739 + 12325 013c 0222 movs r2, #2 + 12326 013e 84F83E20 strb r2, [r4, #62] +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12327 .loc 1 1761 3 is_stmt 1 view .LVU3740 + 12328 .L898: +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12329 .loc 1 1766 7 view .LVU3741 +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12330 .loc 1 1766 17 is_stmt 0 view .LVU3742 + 12331 0142 626A ldr r2, [r4, #36] +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12332 .loc 1 1766 52 view .LVU3743 + 12333 0144 7148 ldr r0, .L924 + 12334 0146 D062 str r0, [r2, #44] +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12335 .loc 1 1767 7 is_stmt 1 view .LVU3744 +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12336 .loc 1 1767 17 is_stmt 0 view .LVU3745 + 12337 0148 626A ldr r2, [r4, #36] +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12338 .loc 1 1767 56 view .LVU3746 + 12339 014a 7148 ldr r0, .L924+4 + 12340 014c 1063 str r0, [r2, #48] +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12341 .loc 1 1770 7 is_stmt 1 view .LVU3747 +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12342 .loc 1 1770 17 is_stmt 0 view .LVU3748 + 12343 014e 626A ldr r2, [r4, #36] +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12344 .loc 1 1770 53 view .LVU3749 + 12345 0150 7048 ldr r0, .L924+8 + 12346 0152 5063 str r0, [r2, #52] +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12347 .loc 1 1773 7 is_stmt 1 view .LVU3750 +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12348 .loc 1 1773 88 is_stmt 0 view .LVU3751 + 12349 0154 2268 ldr r2, [r4] +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12350 .loc 1 1773 11 view .LVU3752 + 12351 0156 3432 adds r2, r2, #52 + 12352 0158 606A ldr r0, [r4, #36] + ARM GAS /tmp/cc0wMqvE.s page 413 + + + 12353 015a FFF7FEFF bl HAL_DMA_Start_IT + 12354 .LVL935: +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12355 .loc 1 1773 10 view .LVU3753 + 12356 015e 0028 cmp r0, #0 + 12357 0160 40F0C880 bne .L912 +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12358 .loc 1 1781 7 is_stmt 1 view .LVU3754 + 12359 0164 2268 ldr r2, [r4] + 12360 0166 D368 ldr r3, [r2, #12] + 12361 0168 43F40073 orr r3, r3, #512 + 12362 016c D360 str r3, [r2, #12] +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12363 .loc 1 1782 7 view .LVU3755 +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12364 .loc 1 1853 3 view .LVU3756 + 12365 .L903: +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12366 .loc 1 1856 5 view .LVU3757 + 12367 016e 0122 movs r2, #1 + 12368 0170 2946 mov r1, r5 + 12369 0172 2068 ldr r0, [r4] + 12370 0174 FFF7FEFF bl TIM_CCxChannelCmd + 12371 .LVL936: +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12372 .loc 1 1858 5 view .LVU3758 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12373 .loc 1 1858 9 is_stmt 0 view .LVU3759 + 12374 0178 2368 ldr r3, [r4] + 12375 017a 674A ldr r2, .L924+12 + 12376 017c 9342 cmp r3, r2 + 12377 017e 0FD0 beq .L904 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12378 .loc 1 1858 9 discriminator 2 view .LVU3760 + 12379 0180 02F50062 add r2, r2, #2048 + 12380 0184 9342 cmp r3, r2 + 12381 0186 0BD0 beq .L904 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12382 .loc 1 1858 9 discriminator 4 view .LVU3761 + 12383 0188 02F54062 add r2, r2, #3072 + 12384 018c 9342 cmp r3, r2 + 12385 018e 07D0 beq .L904 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12386 .loc 1 1858 9 discriminator 6 view .LVU3762 + 12387 0190 02F58062 add r2, r2, #1024 + 12388 0194 9342 cmp r3, r2 + 12389 0196 03D0 beq .L904 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12390 .loc 1 1858 9 discriminator 8 view .LVU3763 + 12391 0198 02F58062 add r2, r2, #1024 + 12392 019c 9342 cmp r3, r2 + 12393 019e 03D1 bne .L905 + 12394 .L904: +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12395 .loc 1 1861 7 is_stmt 1 view .LVU3764 + 12396 01a0 5A6C ldr r2, [r3, #68] + 12397 01a2 42F40042 orr r2, r2, #32768 + ARM GAS /tmp/cc0wMqvE.s page 414 + + + 12398 01a6 5A64 str r2, [r3, #68] + 12399 .L905: +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12400 .loc 1 1865 5 view .LVU3765 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12401 .loc 1 1865 9 is_stmt 0 view .LVU3766 + 12402 01a8 2368 ldr r3, [r4] +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12403 .loc 1 1865 8 view .LVU3767 + 12404 01aa 5B4A ldr r2, .L924+12 + 12405 01ac 9342 cmp r3, r2 + 12406 01ae 00F08D80 beq .L906 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12407 .loc 1 1865 9 discriminator 1 view .LVU3768 + 12408 01b2 B3F1804F cmp r3, #1073741824 + 12409 01b6 00F08980 beq .L906 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12410 .loc 1 1865 9 discriminator 2 view .LVU3769 + 12411 01ba A2F59432 sub r2, r2, #75776 + 12412 01be 9342 cmp r3, r2 + 12413 01c0 00F08480 beq .L906 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12414 .loc 1 1865 9 discriminator 3 view .LVU3770 + 12415 01c4 02F58062 add r2, r2, #1024 + 12416 01c8 9342 cmp r3, r2 + 12417 01ca 7FD0 beq .L906 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12418 .loc 1 1865 9 discriminator 4 view .LVU3771 + 12419 01cc 02F59632 add r2, r2, #76800 + 12420 01d0 9342 cmp r3, r2 + 12421 01d2 7BD0 beq .L906 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12422 .loc 1 1865 9 discriminator 5 view .LVU3772 + 12423 01d4 02F54062 add r2, r2, #3072 + 12424 01d8 9342 cmp r3, r2 + 12425 01da 77D0 beq .L906 +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12426 .loc 1 1875 7 is_stmt 1 view .LVU3773 + 12427 01dc 1A68 ldr r2, [r3] + 12428 01de 42F00102 orr r2, r2, #1 + 12429 01e2 1A60 str r2, [r3] + 12430 01e4 0020 movs r0, #0 + 12431 01e6 82E0 b .L881 + 12432 .LVL937: + 12433 .L896: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12434 .loc 1 1753 7 is_stmt 0 view .LVU3774 + 12435 01e8 0222 movs r2, #2 + 12436 01ea 84F83F20 strb r2, [r4, #63] +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12437 .loc 1 1761 3 is_stmt 1 view .LVU3775 + 12438 .L899: +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12439 .loc 1 1788 7 view .LVU3776 +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12440 .loc 1 1788 17 is_stmt 0 view .LVU3777 + 12441 01ee A26A ldr r2, [r4, #40] + ARM GAS /tmp/cc0wMqvE.s page 415 + + +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12442 .loc 1 1788 52 view .LVU3778 + 12443 01f0 4648 ldr r0, .L924 + 12444 01f2 D062 str r0, [r2, #44] +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12445 .loc 1 1789 7 is_stmt 1 view .LVU3779 +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12446 .loc 1 1789 17 is_stmt 0 view .LVU3780 + 12447 01f4 A26A ldr r2, [r4, #40] +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12448 .loc 1 1789 56 view .LVU3781 + 12449 01f6 4648 ldr r0, .L924+4 + 12450 01f8 1063 str r0, [r2, #48] +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12451 .loc 1 1792 7 is_stmt 1 view .LVU3782 +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12452 .loc 1 1792 17 is_stmt 0 view .LVU3783 + 12453 01fa A26A ldr r2, [r4, #40] +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12454 .loc 1 1792 53 view .LVU3784 + 12455 01fc 4548 ldr r0, .L924+8 + 12456 01fe 5063 str r0, [r2, #52] +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12457 .loc 1 1795 7 is_stmt 1 view .LVU3785 +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12458 .loc 1 1795 88 is_stmt 0 view .LVU3786 + 12459 0200 2268 ldr r2, [r4] +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12460 .loc 1 1795 11 view .LVU3787 + 12461 0202 3832 adds r2, r2, #56 + 12462 0204 A06A ldr r0, [r4, #40] + 12463 0206 FFF7FEFF bl HAL_DMA_Start_IT + 12464 .LVL938: +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12465 .loc 1 1795 10 view .LVU3788 + 12466 020a 0028 cmp r0, #0 + 12467 020c 74D1 bne .L913 +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12468 .loc 1 1802 7 is_stmt 1 view .LVU3789 + 12469 020e 2268 ldr r2, [r4] + 12470 0210 D368 ldr r3, [r2, #12] + 12471 0212 43F48063 orr r3, r3, #1024 + 12472 0216 D360 str r3, [r2, #12] +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12473 .loc 1 1803 7 view .LVU3790 +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12474 .loc 1 1853 3 view .LVU3791 + 12475 0218 A9E7 b .L903 + 12476 .LVL939: + 12477 .L895: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12478 .loc 1 1753 7 is_stmt 0 view .LVU3792 + 12479 021a 0222 movs r2, #2 + 12480 021c 84F84020 strb r2, [r4, #64] +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12481 .loc 1 1761 3 is_stmt 1 view .LVU3793 + 12482 .L900: + ARM GAS /tmp/cc0wMqvE.s page 416 + + +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12483 .loc 1 1809 7 view .LVU3794 +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12484 .loc 1 1809 17 is_stmt 0 view .LVU3795 + 12485 0220 E26A ldr r2, [r4, #44] +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12486 .loc 1 1809 52 view .LVU3796 + 12487 0222 3A48 ldr r0, .L924 + 12488 0224 D062 str r0, [r2, #44] +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12489 .loc 1 1810 7 is_stmt 1 view .LVU3797 +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12490 .loc 1 1810 17 is_stmt 0 view .LVU3798 + 12491 0226 E26A ldr r2, [r4, #44] +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12492 .loc 1 1810 56 view .LVU3799 + 12493 0228 3948 ldr r0, .L924+4 + 12494 022a 1063 str r0, [r2, #48] +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12495 .loc 1 1813 7 is_stmt 1 view .LVU3800 +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12496 .loc 1 1813 17 is_stmt 0 view .LVU3801 + 12497 022c E26A ldr r2, [r4, #44] +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12498 .loc 1 1813 53 view .LVU3802 + 12499 022e 3948 ldr r0, .L924+8 + 12500 0230 5063 str r0, [r2, #52] +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12501 .loc 1 1816 7 is_stmt 1 view .LVU3803 +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12502 .loc 1 1816 88 is_stmt 0 view .LVU3804 + 12503 0232 2268 ldr r2, [r4] +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12504 .loc 1 1816 11 view .LVU3805 + 12505 0234 3C32 adds r2, r2, #60 + 12506 0236 E06A ldr r0, [r4, #44] + 12507 0238 FFF7FEFF bl HAL_DMA_Start_IT + 12508 .LVL940: +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12509 .loc 1 1816 10 view .LVU3806 + 12510 023c 0028 cmp r0, #0 + 12511 023e 5DD1 bne .L914 +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12512 .loc 1 1823 7 is_stmt 1 view .LVU3807 + 12513 0240 2268 ldr r2, [r4] + 12514 0242 D368 ldr r3, [r2, #12] + 12515 0244 43F40063 orr r3, r3, #2048 + 12516 0248 D360 str r3, [r2, #12] +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12517 .loc 1 1824 7 view .LVU3808 +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12518 .loc 1 1853 3 view .LVU3809 + 12519 024a 90E7 b .L903 + 12520 .LVL941: + 12521 .L894: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12522 .loc 1 1753 7 is_stmt 0 view .LVU3810 + ARM GAS /tmp/cc0wMqvE.s page 417 + + + 12523 024c 0222 movs r2, #2 + 12524 024e 84F84120 strb r2, [r4, #65] +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12525 .loc 1 1761 3 is_stmt 1 view .LVU3811 + 12526 .L901: +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12527 .loc 1 1830 7 view .LVU3812 +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12528 .loc 1 1830 17 is_stmt 0 view .LVU3813 + 12529 0252 226B ldr r2, [r4, #48] +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 12530 .loc 1 1830 52 view .LVU3814 + 12531 0254 2D48 ldr r0, .L924 + 12532 0256 D062 str r0, [r2, #44] +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12533 .loc 1 1831 7 is_stmt 1 view .LVU3815 +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12534 .loc 1 1831 17 is_stmt 0 view .LVU3816 + 12535 0258 226B ldr r2, [r4, #48] +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12536 .loc 1 1831 56 view .LVU3817 + 12537 025a 2D48 ldr r0, .L924+4 + 12538 025c 1063 str r0, [r2, #48] +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12539 .loc 1 1834 7 is_stmt 1 view .LVU3818 +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12540 .loc 1 1834 17 is_stmt 0 view .LVU3819 + 12541 025e 226B ldr r2, [r4, #48] +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12542 .loc 1 1834 53 view .LVU3820 + 12543 0260 2C48 ldr r0, .L924+8 + 12544 0262 5063 str r0, [r2, #52] +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12545 .loc 1 1837 7 is_stmt 1 view .LVU3821 +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12546 .loc 1 1837 88 is_stmt 0 view .LVU3822 + 12547 0264 2268 ldr r2, [r4] +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12548 .loc 1 1837 11 view .LVU3823 + 12549 0266 4032 adds r2, r2, #64 + 12550 0268 206B ldr r0, [r4, #48] + 12551 026a FFF7FEFF bl HAL_DMA_Start_IT + 12552 .LVL942: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 12553 .loc 1 1837 10 view .LVU3824 + 12554 026e 0028 cmp r0, #0 + 12555 0270 46D1 bne .L915 +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12556 .loc 1 1844 7 is_stmt 1 view .LVU3825 + 12557 0272 2268 ldr r2, [r4] + 12558 0274 D368 ldr r3, [r2, #12] + 12559 0276 43F48053 orr r3, r3, #4096 + 12560 027a D360 str r3, [r2, #12] +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12561 .loc 1 1845 7 view .LVU3826 +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12562 .loc 1 1853 3 view .LVU3827 + ARM GAS /tmp/cc0wMqvE.s page 418 + + + 12563 027c 77E7 b .L903 + 12564 .LVL943: + 12565 .L892: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12566 .loc 1 1753 7 is_stmt 0 view .LVU3828 + 12567 027e 0223 movs r3, #2 + 12568 .LVL944: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12569 .loc 1 1753 7 view .LVU3829 + 12570 0280 84F84230 strb r3, [r4, #66] +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12571 .loc 1 1761 3 is_stmt 1 view .LVU3830 +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12572 .loc 1 1753 7 is_stmt 0 view .LVU3831 + 12573 0284 0120 movs r0, #1 + 12574 0286 32E0 b .L881 + 12575 .LVL945: + 12576 .L891: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12577 .loc 1 1753 7 discriminator 13 view .LVU3832 + 12578 0288 0222 movs r2, #2 + 12579 028a 84F84320 strb r2, [r4, #67] +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12580 .loc 1 1761 3 is_stmt 1 discriminator 13 view .LVU3833 + 12581 028e 0C2D cmp r5, #12 + 12582 0290 2ED8 bhi .L911 + 12583 0292 01A2 adr r2, .L902 + 12584 0294 52F825F0 ldr pc, [r2, r5, lsl #2] + 12585 .p2align 2 + 12586 .L902: + 12587 0298 43010000 .word .L898+1 + 12588 029c F1020000 .word .L911+1 + 12589 02a0 F1020000 .word .L911+1 + 12590 02a4 F1020000 .word .L911+1 + 12591 02a8 EF010000 .word .L899+1 + 12592 02ac F1020000 .word .L911+1 + 12593 02b0 F1020000 .word .L911+1 + 12594 02b4 F1020000 .word .L911+1 + 12595 02b8 21020000 .word .L900+1 + 12596 02bc F1020000 .word .L911+1 + 12597 02c0 F1020000 .word .L911+1 + 12598 02c4 F1020000 .word .L911+1 + 12599 02c8 53020000 .word .L901+1 + 12600 .LVL946: + 12601 .p2align 1 + 12602 .L906: +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 12603 .loc 1 1867 7 view .LVU3834 +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 12604 .loc 1 1867 31 is_stmt 0 view .LVU3835 + 12605 02cc 9968 ldr r1, [r3, #8] +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 12606 .loc 1 1867 15 view .LVU3836 + 12607 02ce 134A ldr r2, .L924+16 + 12608 02d0 0A40 ands r2, r2, r1 + 12609 .LVL947: +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 419 + + + 12610 .loc 1 1868 7 is_stmt 1 view .LVU3837 +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12611 .loc 1 1868 10 is_stmt 0 view .LVU3838 + 12612 02d2 062A cmp r2, #6 + 12613 02d4 16D0 beq .L916 +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12614 .loc 1 1868 11 discriminator 1 view .LVU3839 + 12615 02d6 B2F5803F cmp r2, #65536 + 12616 02da 15D0 beq .L917 +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12617 .loc 1 1870 9 is_stmt 1 view .LVU3840 + 12618 02dc 1A68 ldr r2, [r3] + 12619 .LVL948: +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12620 .loc 1 1870 9 is_stmt 0 view .LVU3841 + 12621 02de 42F00102 orr r2, r2, #1 + 12622 02e2 1A60 str r2, [r3] + 12623 02e4 0020 movs r0, #0 + 12624 02e6 02E0 b .L881 + 12625 .LVL949: + 12626 .L908: +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12627 .loc 1 1743 12 view .LVU3842 + 12628 02e8 0220 movs r0, #2 + 12629 02ea 00E0 b .L881 + 12630 .L909: +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12631 .loc 1 1758 12 view .LVU3843 + 12632 02ec 0120 movs r0, #1 + 12633 .LVL950: + 12634 .L881: +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12635 .loc 1 1881 1 view .LVU3844 + 12636 02ee 38BD pop {r3, r4, r5, pc} + 12637 .LVL951: + 12638 .L911: +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12639 .loc 1 1761 3 view .LVU3845 + 12640 02f0 0120 movs r0, #1 + 12641 02f2 FCE7 b .L881 + 12642 .LVL952: + 12643 .L912: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12644 .loc 1 1777 16 view .LVU3846 + 12645 02f4 0120 movs r0, #1 + 12646 02f6 FAE7 b .L881 + 12647 .L913: +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12648 .loc 1 1799 16 view .LVU3847 + 12649 02f8 0120 movs r0, #1 + 12650 02fa F8E7 b .L881 + 12651 .L914: +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12652 .loc 1 1820 16 view .LVU3848 + 12653 02fc 0120 movs r0, #1 + 12654 02fe F6E7 b .L881 + 12655 .L915: + ARM GAS /tmp/cc0wMqvE.s page 420 + + +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12656 .loc 1 1841 16 view .LVU3849 + 12657 0300 0120 movs r0, #1 + 12658 0302 F4E7 b .L881 + 12659 .LVL953: + 12660 .L916: +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12661 .loc 1 1841 16 view .LVU3850 + 12662 0304 0020 movs r0, #0 + 12663 0306 F2E7 b .L881 + 12664 .L917: + 12665 0308 0020 movs r0, #0 + 12666 030a F0E7 b .L881 + 12667 .L925: + 12668 .align 2 + 12669 .L924: + 12670 030c 00000000 .word TIM_DMADelayPulseCplt + 12671 0310 00000000 .word TIM_DMADelayPulseHalfCplt + 12672 0314 00000000 .word TIM_DMAError + 12673 0318 002C0140 .word 1073818624 + 12674 031c 07000100 .word 65543 + 12675 .cfi_endproc + 12676 .LFE357: + 12678 .section .text.HAL_TIM_PWM_Stop_DMA,"ax",%progbits + 12679 .align 1 + 12680 .global HAL_TIM_PWM_Stop_DMA + 12681 .syntax unified + 12682 .thumb + 12683 .thumb_func + 12685 HAL_TIM_PWM_Stop_DMA: + 12686 .LVL954: + 12687 .LFB358: +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 12688 .loc 1 1895 1 is_stmt 1 view -0 + 12689 .cfi_startproc + 12690 @ args = 0, pretend = 0, frame = 0 + 12691 @ frame_needed = 0, uses_anonymous_args = 0 +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 12692 .loc 1 1895 1 is_stmt 0 view .LVU3852 + 12693 0000 38B5 push {r3, r4, r5, lr} + 12694 .LCFI96: + 12695 .cfi_def_cfa_offset 16 + 12696 .cfi_offset 3, -16 + 12697 .cfi_offset 4, -12 + 12698 .cfi_offset 5, -8 + 12699 .cfi_offset 14, -4 + 12700 0002 0546 mov r5, r0 + 12701 0004 0C46 mov r4, r1 +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12702 .loc 1 1896 3 is_stmt 1 view .LVU3853 + 12703 .LVL955: +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12704 .loc 1 1899 3 view .LVU3854 +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12705 .loc 1 1901 3 view .LVU3855 + 12706 0006 0C29 cmp r1, #12 + 12707 0008 00F28D80 bhi .L944 + ARM GAS /tmp/cc0wMqvE.s page 421 + + + 12708 000c DFE801F0 tbb [pc, r1] + 12709 .L929: + 12710 0010 07 .byte (.L932-.L929)/2 + 12711 0011 8B .byte (.L944-.L929)/2 + 12712 0012 8B .byte (.L944-.L929)/2 + 12713 0013 8B .byte (.L944-.L929)/2 + 12714 0014 4B .byte (.L931-.L929)/2 + 12715 0015 8B .byte (.L944-.L929)/2 + 12716 0016 8B .byte (.L944-.L929)/2 + 12717 0017 8B .byte (.L944-.L929)/2 + 12718 0018 54 .byte (.L930-.L929)/2 + 12719 0019 8B .byte (.L944-.L929)/2 + 12720 001a 8B .byte (.L944-.L929)/2 + 12721 001b 8B .byte (.L944-.L929)/2 + 12722 001c 5D .byte (.L928-.L929)/2 + 12723 001d 00 .p2align 1 + 12724 .L932: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 12725 .loc 1 1906 7 view .LVU3856 + 12726 001e 0268 ldr r2, [r0] + 12727 0020 D368 ldr r3, [r2, #12] + 12728 0022 23F40073 bic r3, r3, #512 + 12729 0026 D360 str r3, [r2, #12] +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12730 .loc 1 1907 7 view .LVU3857 +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12731 .loc 1 1907 13 is_stmt 0 view .LVU3858 + 12732 0028 406A ldr r0, [r0, #36] + 12733 .LVL956: +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12734 .loc 1 1907 13 view .LVU3859 + 12735 002a FFF7FEFF bl HAL_DMA_Abort_IT + 12736 .LVL957: +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12737 .loc 1 1908 7 is_stmt 1 view .LVU3860 +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12738 .loc 1 1940 3 view .LVU3861 + 12739 .L933: +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12740 .loc 1 1943 5 view .LVU3862 + 12741 002e 0022 movs r2, #0 + 12742 0030 2146 mov r1, r4 + 12743 0032 2868 ldr r0, [r5] + 12744 0034 FFF7FEFF bl TIM_CCxChannelCmd + 12745 .LVL958: +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12746 .loc 1 1945 5 view .LVU3863 +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12747 .loc 1 1945 9 is_stmt 0 view .LVU3864 + 12748 0038 2B68 ldr r3, [r5] + 12749 003a 3C4A ldr r2, .L946 + 12750 003c 9342 cmp r3, r2 + 12751 003e 0FD0 beq .L934 +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12752 .loc 1 1945 9 discriminator 2 view .LVU3865 + 12753 0040 02F50062 add r2, r2, #2048 + 12754 0044 9342 cmp r3, r2 + ARM GAS /tmp/cc0wMqvE.s page 422 + + + 12755 0046 0BD0 beq .L934 +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12756 .loc 1 1945 9 discriminator 4 view .LVU3866 + 12757 0048 02F54062 add r2, r2, #3072 + 12758 004c 9342 cmp r3, r2 + 12759 004e 07D0 beq .L934 +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12760 .loc 1 1945 9 discriminator 6 view .LVU3867 + 12761 0050 02F58062 add r2, r2, #1024 + 12762 0054 9342 cmp r3, r2 + 12763 0056 03D0 beq .L934 +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12764 .loc 1 1945 9 discriminator 8 view .LVU3868 + 12765 0058 02F58062 add r2, r2, #1024 + 12766 005c 9342 cmp r3, r2 + 12767 005e 0DD1 bne .L935 + 12768 .L934: +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12769 .loc 1 1948 7 is_stmt 1 view .LVU3869 +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12770 .loc 1 1948 7 view .LVU3870 + 12771 0060 196A ldr r1, [r3, #32] + 12772 0062 41F21112 movw r2, #4369 + 12773 0066 1142 tst r1, r2 + 12774 0068 08D1 bne .L935 +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12775 .loc 1 1948 7 discriminator 1 view .LVU3871 + 12776 006a 196A ldr r1, [r3, #32] + 12777 006c 44F24442 movw r2, #17476 + 12778 0070 1142 tst r1, r2 + 12779 0072 03D1 bne .L935 +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12780 .loc 1 1948 7 discriminator 3 view .LVU3872 + 12781 0074 5A6C ldr r2, [r3, #68] + 12782 0076 22F40042 bic r2, r2, #32768 + 12783 007a 5A64 str r2, [r3, #68] + 12784 .L935: +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12785 .loc 1 1948 7 discriminator 5 view .LVU3873 +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12786 .loc 1 1952 5 discriminator 5 view .LVU3874 +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12787 .loc 1 1952 5 discriminator 5 view .LVU3875 + 12788 007c 2B68 ldr r3, [r5] + 12789 007e 196A ldr r1, [r3, #32] + 12790 0080 41F21112 movw r2, #4369 + 12791 0084 1142 tst r1, r2 + 12792 0086 08D1 bne .L936 +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12793 .loc 1 1952 5 discriminator 1 view .LVU3876 + 12794 0088 196A ldr r1, [r3, #32] + 12795 008a 44F24442 movw r2, #17476 + 12796 008e 1142 tst r1, r2 + 12797 0090 03D1 bne .L936 +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12798 .loc 1 1952 5 discriminator 3 view .LVU3877 + 12799 0092 1A68 ldr r2, [r3] + ARM GAS /tmp/cc0wMqvE.s page 423 + + + 12800 0094 22F00102 bic r2, r2, #1 + 12801 0098 1A60 str r2, [r3] + 12802 .L936: +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12803 .loc 1 1952 5 discriminator 5 view .LVU3878 +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12804 .loc 1 1955 5 discriminator 5 view .LVU3879 + 12805 009a FCB9 cbnz r4, .L937 +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12806 .loc 1 1955 5 is_stmt 0 discriminator 1 view .LVU3880 + 12807 009c 0123 movs r3, #1 + 12808 009e 85F83E30 strb r3, [r5, #62] + 12809 00a2 0020 movs r0, #0 + 12810 00a4 40E0 b .L927 + 12811 .LVL959: + 12812 .L931: +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 12813 .loc 1 1914 7 is_stmt 1 view .LVU3881 + 12814 00a6 0268 ldr r2, [r0] + 12815 00a8 D368 ldr r3, [r2, #12] + 12816 00aa 23F48063 bic r3, r3, #1024 + 12817 00ae D360 str r3, [r2, #12] +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12818 .loc 1 1915 7 view .LVU3882 +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12819 .loc 1 1915 13 is_stmt 0 view .LVU3883 + 12820 00b0 806A ldr r0, [r0, #40] + 12821 .LVL960: +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12822 .loc 1 1915 13 view .LVU3884 + 12823 00b2 FFF7FEFF bl HAL_DMA_Abort_IT + 12824 .LVL961: +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12825 .loc 1 1916 7 is_stmt 1 view .LVU3885 +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12826 .loc 1 1940 3 view .LVU3886 + 12827 00b6 BAE7 b .L933 + 12828 .LVL962: + 12829 .L930: +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + 12830 .loc 1 1922 7 view .LVU3887 + 12831 00b8 0268 ldr r2, [r0] + 12832 00ba D368 ldr r3, [r2, #12] + 12833 00bc 23F40063 bic r3, r3, #2048 + 12834 00c0 D360 str r3, [r2, #12] +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12835 .loc 1 1923 7 view .LVU3888 +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12836 .loc 1 1923 13 is_stmt 0 view .LVU3889 + 12837 00c2 C06A ldr r0, [r0, #44] + 12838 .LVL963: +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12839 .loc 1 1923 13 view .LVU3890 + 12840 00c4 FFF7FEFF bl HAL_DMA_Abort_IT + 12841 .LVL964: +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12842 .loc 1 1924 7 is_stmt 1 view .LVU3891 + ARM GAS /tmp/cc0wMqvE.s page 424 + + +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12843 .loc 1 1940 3 view .LVU3892 + 12844 00c8 B1E7 b .L933 + 12845 .LVL965: + 12846 .L928: +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + 12847 .loc 1 1930 7 view .LVU3893 + 12848 00ca 0268 ldr r2, [r0] + 12849 00cc D368 ldr r3, [r2, #12] + 12850 00ce 23F48053 bic r3, r3, #4096 + 12851 00d2 D360 str r3, [r2, #12] +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12852 .loc 1 1931 7 view .LVU3894 +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12853 .loc 1 1931 13 is_stmt 0 view .LVU3895 + 12854 00d4 006B ldr r0, [r0, #48] + 12855 .LVL966: +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 12856 .loc 1 1931 13 view .LVU3896 + 12857 00d6 FFF7FEFF bl HAL_DMA_Abort_IT + 12858 .LVL967: +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12859 .loc 1 1932 7 is_stmt 1 view .LVU3897 +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12860 .loc 1 1940 3 view .LVU3898 + 12861 00da A8E7 b .L933 + 12862 .L937: +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12863 .loc 1 1940 3 is_stmt 0 view .LVU3899 + 12864 00dc 043C subs r4, r4, #4 + 12865 .LVL968: +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12866 .loc 1 1940 3 view .LVU3900 + 12867 00de 0C2C cmp r4, #12 + 12868 00e0 1CD8 bhi .L938 + 12869 00e2 DFE804F0 tbb [pc, r4] + 12870 .L940: + 12871 00e6 07 .byte (.L943-.L940)/2 + 12872 00e7 1B .byte (.L938-.L940)/2 + 12873 00e8 1B .byte (.L938-.L940)/2 + 12874 00e9 1B .byte (.L938-.L940)/2 + 12875 00ea 0C .byte (.L942-.L940)/2 + 12876 00eb 1B .byte (.L938-.L940)/2 + 12877 00ec 1B .byte (.L938-.L940)/2 + 12878 00ed 1B .byte (.L938-.L940)/2 + 12879 00ee 11 .byte (.L941-.L940)/2 + 12880 00ef 1B .byte (.L938-.L940)/2 + 12881 00f0 1B .byte (.L938-.L940)/2 + 12882 00f1 1B .byte (.L938-.L940)/2 + 12883 00f2 16 .byte (.L939-.L940)/2 + 12884 00f3 00 .p2align 1 + 12885 .L943: +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12886 .loc 1 1955 5 discriminator 3 view .LVU3901 + 12887 00f4 0123 movs r3, #1 + 12888 00f6 85F83F30 strb r3, [r5, #63] + 12889 00fa 0020 movs r0, #0 + ARM GAS /tmp/cc0wMqvE.s page 425 + + + 12890 00fc 14E0 b .L927 + 12891 .L942: +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12892 .loc 1 1955 5 discriminator 6 view .LVU3902 + 12893 00fe 0123 movs r3, #1 + 12894 0100 85F84030 strb r3, [r5, #64] + 12895 0104 0020 movs r0, #0 + 12896 0106 0FE0 b .L927 + 12897 .L941: +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12898 .loc 1 1955 5 discriminator 9 view .LVU3903 + 12899 0108 0123 movs r3, #1 + 12900 010a 85F84130 strb r3, [r5, #65] + 12901 010e 0020 movs r0, #0 + 12902 0110 0AE0 b .L927 + 12903 .L939: +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12904 .loc 1 1955 5 discriminator 12 view .LVU3904 + 12905 0112 0123 movs r3, #1 + 12906 0114 85F84230 strb r3, [r5, #66] + 12907 0118 0020 movs r0, #0 + 12908 011a 05E0 b .L927 + 12909 .L938: +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12910 .loc 1 1955 5 discriminator 13 view .LVU3905 + 12911 011c 0123 movs r3, #1 + 12912 011e 85F84330 strb r3, [r5, #67] + 12913 0122 0020 movs r0, #0 + 12914 0124 00E0 b .L927 + 12915 .LVL969: + 12916 .L944: +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12917 .loc 1 1901 3 view .LVU3906 + 12918 0126 0120 movs r0, #1 + 12919 .LVL970: + 12920 .L927: +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 12921 .loc 1 1959 3 is_stmt 1 view .LVU3907 +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12922 .loc 1 1960 1 is_stmt 0 view .LVU3908 + 12923 0128 38BD pop {r3, r4, r5, pc} + 12924 .LVL971: + 12925 .L947: +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12926 .loc 1 1960 1 view .LVU3909 + 12927 012a 00BF .align 2 + 12928 .L946: + 12929 012c 002C0140 .word 1073818624 + 12930 .cfi_endproc + 12931 .LFE358: + 12933 .section .text.HAL_TIM_IC_Start,"ax",%progbits + 12934 .align 1 + 12935 .global HAL_TIM_IC_Start + 12936 .syntax unified + 12937 .thumb + 12938 .thumb_func + 12940 HAL_TIM_IC_Start: + ARM GAS /tmp/cc0wMqvE.s page 426 + + + 12941 .LVL972: + 12942 .LFB363: +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 12943 .loc 1 2136 1 is_stmt 1 view -0 + 12944 .cfi_startproc + 12945 @ args = 0, pretend = 0, frame = 0 + 12946 @ frame_needed = 0, uses_anonymous_args = 0 +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 12947 .loc 1 2136 1 is_stmt 0 view .LVU3911 + 12948 0000 10B5 push {r4, lr} + 12949 .LCFI97: + 12950 .cfi_def_cfa_offset 8 + 12951 .cfi_offset 4, -8 + 12952 .cfi_offset 14, -4 + 12953 0002 0446 mov r4, r0 +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_state = TIM_CHANNEL_STATE_GET(htim, Channel); + 12954 .loc 1 2137 3 is_stmt 1 view .LVU3912 +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 12955 .loc 1 2138 3 view .LVU3913 + 12956 0004 1029 cmp r1, #16 + 12957 0006 34D8 bhi .L949 + 12958 0008 DFE801F0 tbb [pc, r1] + 12959 .L951: + 12960 000c 09 .byte (.L955-.L951)/2 + 12961 000d 33 .byte (.L949-.L951)/2 + 12962 000e 33 .byte (.L949-.L951)/2 + 12963 000f 33 .byte (.L949-.L951)/2 + 12964 0010 23 .byte (.L954-.L951)/2 + 12965 0011 33 .byte (.L949-.L951)/2 + 12966 0012 33 .byte (.L949-.L951)/2 + 12967 0013 33 .byte (.L949-.L951)/2 + 12968 0014 27 .byte (.L953-.L951)/2 + 12969 0015 33 .byte (.L949-.L951)/2 + 12970 0016 33 .byte (.L949-.L951)/2 + 12971 0017 33 .byte (.L949-.L951)/2 + 12972 0018 2B .byte (.L952-.L951)/2 + 12973 0019 33 .byte (.L949-.L951)/2 + 12974 001a 33 .byte (.L949-.L951)/2 + 12975 001b 33 .byte (.L949-.L951)/2 + 12976 001c 2F .byte (.L950-.L951)/2 + 12977 001d 00 .p2align 1 + 12978 .L955: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 12979 .loc 1 2138 47 is_stmt 0 discriminator 1 view .LVU3914 + 12980 001e 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 12981 .LVL973: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 12982 .loc 1 2138 47 discriminator 1 view .LVU3915 + 12983 0022 C0B2 uxtb r0, r0 + 12984 .L956: + 12985 .LVL974: +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12986 .loc 1 2139 3 is_stmt 1 discriminator 20 view .LVU3916 +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12987 .loc 1 2139 61 is_stmt 0 discriminator 20 view .LVU3917 + 12988 0024 49BB cbnz r1, .L957 +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 427 + + + 12989 .loc 1 2139 61 discriminator 1 view .LVU3918 + 12990 0026 94F84430 ldrb r3, [r4, #68] @ zero_extendqisi2 + 12991 002a DBB2 uxtb r3, r3 + 12992 .L958: + 12993 .LVL975: +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 12994 .loc 1 2142 3 is_stmt 1 discriminator 12 view .LVU3919 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + 12995 .loc 1 2145 3 discriminator 12 view .LVU3920 +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + 12996 .loc 1 2145 6 is_stmt 0 discriminator 12 view .LVU3921 + 12997 002c 0128 cmp r0, #1 + 12998 002e 40F08B80 bne .L975 +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 12999 .loc 1 2146 7 view .LVU3922 + 13000 0032 012B cmp r3, #1 + 13001 0034 40F08980 bne .L961 +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13002 .loc 1 2152 3 is_stmt 1 view .LVU3923 + 13003 0038 1029 cmp r1, #16 + 13004 003a 6BD8 bhi .L962 + 13005 003c DFE801F0 tbb [pc, r1] + 13006 .LVL976: + 13007 .L964: + 13008 0040 2D .byte (.L968-.L964)/2 + 13009 0041 6A .byte (.L962-.L964)/2 + 13010 0042 6A .byte (.L962-.L964)/2 + 13011 0043 6A .byte (.L962-.L964)/2 + 13012 0044 33 .byte (.L967-.L964)/2 + 13013 0045 6A .byte (.L962-.L964)/2 + 13014 0046 6A .byte (.L962-.L964)/2 + 13015 0047 6A .byte (.L962-.L964)/2 + 13016 0048 5E .byte (.L966-.L964)/2 + 13017 0049 6A .byte (.L962-.L964)/2 + 13018 004a 6A .byte (.L962-.L964)/2 + 13019 004b 6A .byte (.L962-.L964)/2 + 13020 004c 62 .byte (.L965-.L964)/2 + 13021 004d 6A .byte (.L962-.L964)/2 + 13022 004e 6A .byte (.L962-.L964)/2 + 13023 004f 6A .byte (.L962-.L964)/2 + 13024 0050 66 .byte (.L963-.L964)/2 + 13025 0051 00 .p2align 1 + 13026 .L954: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13027 .loc 1 2138 47 is_stmt 0 discriminator 4 view .LVU3924 + 13028 0052 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 13029 .LVL977: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13030 .loc 1 2138 47 discriminator 4 view .LVU3925 + 13031 0056 C0B2 uxtb r0, r0 + 13032 0058 E4E7 b .L956 + 13033 .LVL978: + 13034 .L953: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13035 .loc 1 2138 47 discriminator 7 view .LVU3926 + 13036 005a 90F84000 ldrb r0, [r0, #64] @ zero_extendqisi2 + 13037 .LVL979: + ARM GAS /tmp/cc0wMqvE.s page 428 + + +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13038 .loc 1 2138 47 discriminator 7 view .LVU3927 + 13039 005e C0B2 uxtb r0, r0 + 13040 0060 E0E7 b .L956 + 13041 .LVL980: + 13042 .L952: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13043 .loc 1 2138 47 discriminator 10 view .LVU3928 + 13044 0062 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 13045 .LVL981: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13046 .loc 1 2138 47 discriminator 10 view .LVU3929 + 13047 0066 C0B2 uxtb r0, r0 + 13048 0068 DCE7 b .L956 + 13049 .LVL982: + 13050 .L950: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13051 .loc 1 2138 47 discriminator 13 view .LVU3930 + 13052 006a 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 + 13053 .LVL983: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13054 .loc 1 2138 47 discriminator 13 view .LVU3931 + 13055 006e C0B2 uxtb r0, r0 + 13056 0070 D8E7 b .L956 + 13057 .LVL984: + 13058 .L949: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13059 .loc 1 2138 47 discriminator 14 view .LVU3932 + 13060 0072 90F84300 ldrb r0, [r0, #67] @ zero_extendqisi2 + 13061 .LVL985: +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13062 .loc 1 2138 47 discriminator 14 view .LVU3933 + 13063 0076 C0B2 uxtb r0, r0 + 13064 0078 D4E7 b .L956 + 13065 .LVL986: + 13066 .L957: +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13067 .loc 1 2139 61 discriminator 2 view .LVU3934 + 13068 007a 0429 cmp r1, #4 + 13069 007c 05D0 beq .L979 +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13070 .loc 1 2139 61 discriminator 5 view .LVU3935 + 13071 007e 0829 cmp r1, #8 + 13072 0080 07D0 beq .L980 +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13073 .loc 1 2139 61 discriminator 8 view .LVU3936 + 13074 0082 94F84730 ldrb r3, [r4, #71] @ zero_extendqisi2 + 13075 0086 DBB2 uxtb r3, r3 + 13076 0088 D0E7 b .L958 + 13077 .L979: +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13078 .loc 1 2139 61 discriminator 4 view .LVU3937 + 13079 008a 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 13080 008e DBB2 uxtb r3, r3 + 13081 0090 CCE7 b .L958 + 13082 .L980: +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 429 + + + 13083 .loc 1 2139 61 discriminator 7 view .LVU3938 + 13084 0092 94F84630 ldrb r3, [r4, #70] @ zero_extendqisi2 + 13085 0096 DBB2 uxtb r3, r3 + 13086 0098 C8E7 b .L958 + 13087 .LVL987: + 13088 .L968: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13089 .loc 1 2152 3 view .LVU3939 + 13090 009a 0223 movs r3, #2 + 13091 009c 84F83E30 strb r3, [r4, #62] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13092 .loc 1 2153 3 is_stmt 1 view .LVU3940 + 13093 00a0 84F84430 strb r3, [r4, #68] + 13094 00a4 09E0 b .L969 + 13095 .L967: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13096 .loc 1 2152 3 is_stmt 0 view .LVU3941 + 13097 00a6 0223 movs r3, #2 + 13098 00a8 84F83F30 strb r3, [r4, #63] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13099 .loc 1 2153 3 is_stmt 1 view .LVU3942 + 13100 .L970: +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13101 .loc 1 2153 3 is_stmt 0 discriminator 2 view .LVU3943 + 13102 00ac 0429 cmp r1, #4 + 13103 00ae 35D0 beq .L981 +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13104 .loc 1 2153 3 discriminator 4 view .LVU3944 + 13105 00b0 0829 cmp r1, #8 + 13106 00b2 37D0 beq .L982 +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13107 .loc 1 2153 3 discriminator 7 view .LVU3945 + 13108 00b4 0223 movs r3, #2 + 13109 00b6 84F84730 strb r3, [r4, #71] + 13110 .L969: +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13111 .loc 1 2156 3 is_stmt 1 view .LVU3946 + 13112 00ba 0122 movs r2, #1 + 13113 00bc 2068 ldr r0, [r4] + 13114 .LVL988: +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13115 .loc 1 2156 3 is_stmt 0 view .LVU3947 + 13116 00be FFF7FEFF bl TIM_CCxChannelCmd + 13117 .LVL989: +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13118 .loc 1 2159 3 is_stmt 1 view .LVU3948 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13119 .loc 1 2159 7 is_stmt 0 view .LVU3949 + 13120 00c2 2368 ldr r3, [r4] +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13121 .loc 1 2159 6 view .LVU3950 + 13122 00c4 234A ldr r2, .L983 + 13123 00c6 9342 cmp r3, r2 + 13124 00c8 30D0 beq .L973 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13125 .loc 1 2159 7 discriminator 1 view .LVU3951 + 13126 00ca B3F1804F cmp r3, #1073741824 + ARM GAS /tmp/cc0wMqvE.s page 430 + + + 13127 00ce 2DD0 beq .L973 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13128 .loc 1 2159 7 discriminator 2 view .LVU3952 + 13129 00d0 A2F59432 sub r2, r2, #75776 + 13130 00d4 9342 cmp r3, r2 + 13131 00d6 29D0 beq .L973 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13132 .loc 1 2159 7 discriminator 3 view .LVU3953 + 13133 00d8 02F58062 add r2, r2, #1024 + 13134 00dc 9342 cmp r3, r2 + 13135 00de 25D0 beq .L973 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13136 .loc 1 2159 7 discriminator 4 view .LVU3954 + 13137 00e0 02F59632 add r2, r2, #76800 + 13138 00e4 9342 cmp r3, r2 + 13139 00e6 21D0 beq .L973 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13140 .loc 1 2159 7 discriminator 5 view .LVU3955 + 13141 00e8 02F54062 add r2, r2, #3072 + 13142 00ec 9342 cmp r3, r2 + 13143 00ee 1DD0 beq .L973 +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13144 .loc 1 2169 5 is_stmt 1 view .LVU3956 + 13145 00f0 1A68 ldr r2, [r3] + 13146 00f2 42F00102 orr r2, r2, #1 + 13147 00f6 1A60 str r2, [r3] +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13148 .loc 1 2173 10 is_stmt 0 view .LVU3957 + 13149 00f8 0020 movs r0, #0 + 13150 00fa 26E0 b .L961 + 13151 .LVL990: + 13152 .L966: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13153 .loc 1 2152 3 view .LVU3958 + 13154 00fc 0223 movs r3, #2 + 13155 00fe 84F84030 strb r3, [r4, #64] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13156 .loc 1 2153 3 is_stmt 1 view .LVU3959 + 13157 0102 D3E7 b .L970 + 13158 .L965: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13159 .loc 1 2152 3 is_stmt 0 view .LVU3960 + 13160 0104 0223 movs r3, #2 + 13161 0106 84F84130 strb r3, [r4, #65] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13162 .loc 1 2153 3 is_stmt 1 view .LVU3961 + 13163 010a CFE7 b .L970 + 13164 .L963: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13165 .loc 1 2152 3 is_stmt 0 view .LVU3962 + 13166 010c 0223 movs r3, #2 + 13167 010e 84F84230 strb r3, [r4, #66] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13168 .loc 1 2153 3 is_stmt 1 view .LVU3963 + 13169 0112 CBE7 b .L970 + 13170 .L962: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + ARM GAS /tmp/cc0wMqvE.s page 431 + + + 13171 .loc 1 2152 3 is_stmt 0 discriminator 13 view .LVU3964 + 13172 0114 0223 movs r3, #2 + 13173 0116 84F84330 strb r3, [r4, #67] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13174 .loc 1 2153 3 is_stmt 1 discriminator 13 view .LVU3965 + 13175 011a C7E7 b .L970 + 13176 .L981: +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13177 .loc 1 2153 3 is_stmt 0 discriminator 3 view .LVU3966 + 13178 011c 0223 movs r3, #2 + 13179 011e 84F84530 strb r3, [r4, #69] + 13180 0122 CAE7 b .L969 + 13181 .L982: +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13182 .loc 1 2153 3 discriminator 6 view .LVU3967 + 13183 0124 0223 movs r3, #2 + 13184 0126 84F84630 strb r3, [r4, #70] + 13185 012a C6E7 b .L969 + 13186 .LVL991: + 13187 .L973: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 13188 .loc 1 2161 5 is_stmt 1 view .LVU3968 +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 13189 .loc 1 2161 29 is_stmt 0 view .LVU3969 + 13190 012c 9968 ldr r1, [r3, #8] +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 13191 .loc 1 2161 13 view .LVU3970 + 13192 012e 0A4A ldr r2, .L983+4 + 13193 0130 0A40 ands r2, r2, r1 + 13194 .LVL992: +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13195 .loc 1 2162 5 is_stmt 1 view .LVU3971 +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13196 .loc 1 2162 8 is_stmt 0 view .LVU3972 + 13197 0132 062A cmp r2, #6 + 13198 0134 0AD0 beq .L976 +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13199 .loc 1 2162 9 discriminator 1 view .LVU3973 + 13200 0136 B2F5803F cmp r2, #65536 + 13201 013a 09D0 beq .L977 +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13202 .loc 1 2164 7 is_stmt 1 view .LVU3974 + 13203 013c 1A68 ldr r2, [r3] + 13204 .LVL993: +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13205 .loc 1 2164 7 is_stmt 0 view .LVU3975 + 13206 013e 42F00102 orr r2, r2, #1 + 13207 0142 1A60 str r2, [r3] +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13208 .loc 1 2173 10 view .LVU3976 + 13209 0144 0020 movs r0, #0 + 13210 0146 00E0 b .L961 + 13211 .LVL994: + 13212 .L975: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13213 .loc 1 2148 12 view .LVU3977 + 13214 0148 0120 movs r0, #1 + ARM GAS /tmp/cc0wMqvE.s page 432 + + + 13215 .LVL995: + 13216 .L961: +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13217 .loc 1 2174 1 view .LVU3978 + 13218 014a 10BD pop {r4, pc} + 13219 .LVL996: + 13220 .L976: +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13221 .loc 1 2173 10 view .LVU3979 + 13222 014c 0020 movs r0, #0 + 13223 014e FCE7 b .L961 + 13224 .L977: + 13225 0150 0020 movs r0, #0 + 13226 0152 FAE7 b .L961 + 13227 .L984: + 13228 .align 2 + 13229 .L983: + 13230 0154 002C0140 .word 1073818624 + 13231 0158 07000100 .word 65543 + 13232 .cfi_endproc + 13233 .LFE363: + 13235 .section .text.HAL_TIM_IC_Stop,"ax",%progbits + 13236 .align 1 + 13237 .global HAL_TIM_IC_Stop + 13238 .syntax unified + 13239 .thumb + 13240 .thumb_func + 13242 HAL_TIM_IC_Stop: + 13243 .LVL997: + 13244 .LFB364: +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 13245 .loc 1 2188 1 is_stmt 1 view -0 + 13246 .cfi_startproc + 13247 @ args = 0, pretend = 0, frame = 0 + 13248 @ frame_needed = 0, uses_anonymous_args = 0 +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 13249 .loc 1 2188 1 is_stmt 0 view .LVU3981 + 13250 0000 38B5 push {r3, r4, r5, lr} + 13251 .LCFI98: + 13252 .cfi_def_cfa_offset 16 + 13253 .cfi_offset 3, -16 + 13254 .cfi_offset 4, -12 + 13255 .cfi_offset 5, -8 + 13256 .cfi_offset 14, -4 + 13257 0002 0446 mov r4, r0 + 13258 0004 0D46 mov r5, r1 +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13259 .loc 1 2190 3 is_stmt 1 view .LVU3982 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13260 .loc 1 2193 3 view .LVU3983 + 13261 0006 0022 movs r2, #0 + 13262 0008 0068 ldr r0, [r0] + 13263 .LVL998: +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13264 .loc 1 2193 3 is_stmt 0 view .LVU3984 + 13265 000a FFF7FEFF bl TIM_CCxChannelCmd + 13266 .LVL999: + ARM GAS /tmp/cc0wMqvE.s page 433 + + +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13267 .loc 1 2196 3 is_stmt 1 view .LVU3985 +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13268 .loc 1 2196 3 view .LVU3986 + 13269 000e 2368 ldr r3, [r4] + 13270 0010 196A ldr r1, [r3, #32] + 13271 0012 41F21112 movw r2, #4369 + 13272 0016 1142 tst r1, r2 + 13273 0018 08D1 bne .L986 +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13274 .loc 1 2196 3 discriminator 1 view .LVU3987 + 13275 001a 196A ldr r1, [r3, #32] + 13276 001c 44F24442 movw r2, #17476 + 13277 0020 1142 tst r1, r2 + 13278 0022 03D1 bne .L986 +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13279 .loc 1 2196 3 discriminator 3 view .LVU3988 + 13280 0024 1A68 ldr r2, [r3] + 13281 0026 22F00102 bic r2, r2, #1 + 13282 002a 1A60 str r2, [r3] + 13283 .L986: +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13284 .loc 1 2196 3 discriminator 5 view .LVU3989 +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13285 .loc 1 2199 3 discriminator 5 view .LVU3990 + 13286 002c 35B9 cbnz r5, .L987 +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13287 .loc 1 2199 3 is_stmt 0 view .LVU3991 + 13288 002e 0123 movs r3, #1 + 13289 0030 84F83E30 strb r3, [r4, #62] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13290 .loc 1 2200 3 is_stmt 1 view .LVU3992 + 13291 0034 84F84430 strb r3, [r4, #68] + 13292 .L988: +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13293 .loc 1 2203 3 view .LVU3993 +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13294 .loc 1 2204 1 is_stmt 0 view .LVU3994 + 13295 0038 0020 movs r0, #0 + 13296 003a 38BD pop {r3, r4, r5, pc} + 13297 .LVL1000: + 13298 .L987: +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13299 .loc 1 2204 1 view .LVU3995 + 13300 003c 2B1F subs r3, r5, #4 + 13301 003e 0C2B cmp r3, #12 + 13302 0040 1FD8 bhi .L989 + 13303 0042 DFE803F0 tbb [pc, r3] + 13304 .L991: + 13305 0046 07 .byte (.L994-.L991)/2 + 13306 0047 1E .byte (.L989-.L991)/2 + 13307 0048 1E .byte (.L989-.L991)/2 + 13308 0049 1E .byte (.L989-.L991)/2 + 13309 004a 12 .byte (.L993-.L991)/2 + 13310 004b 1E .byte (.L989-.L991)/2 + 13311 004c 1E .byte (.L989-.L991)/2 + 13312 004d 1E .byte (.L989-.L991)/2 + ARM GAS /tmp/cc0wMqvE.s page 434 + + + 13313 004e 16 .byte (.L992-.L991)/2 + 13314 004f 1E .byte (.L989-.L991)/2 + 13315 0050 1E .byte (.L989-.L991)/2 + 13316 0051 1E .byte (.L989-.L991)/2 + 13317 0052 1A .byte (.L990-.L991)/2 + 13318 0053 00 .p2align 1 + 13319 .L994: +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13320 .loc 1 2199 3 view .LVU3996 + 13321 0054 0123 movs r3, #1 + 13322 0056 84F83F30 strb r3, [r4, #63] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13323 .loc 1 2200 3 is_stmt 1 view .LVU3997 + 13324 .L995: +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13325 .loc 1 2200 3 is_stmt 0 discriminator 2 view .LVU3998 + 13326 005a 042D cmp r5, #4 + 13327 005c 15D0 beq .L999 +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13328 .loc 1 2200 3 discriminator 4 view .LVU3999 + 13329 005e 082D cmp r5, #8 + 13330 0060 17D0 beq .L1000 +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13331 .loc 1 2200 3 discriminator 7 view .LVU4000 + 13332 0062 0123 movs r3, #1 + 13333 0064 84F84730 strb r3, [r4, #71] + 13334 0068 E6E7 b .L988 + 13335 .L993: +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13336 .loc 1 2199 3 view .LVU4001 + 13337 006a 0123 movs r3, #1 + 13338 006c 84F84030 strb r3, [r4, #64] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13339 .loc 1 2200 3 is_stmt 1 view .LVU4002 + 13340 0070 F3E7 b .L995 + 13341 .L992: +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13342 .loc 1 2199 3 is_stmt 0 view .LVU4003 + 13343 0072 0123 movs r3, #1 + 13344 0074 84F84130 strb r3, [r4, #65] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13345 .loc 1 2200 3 is_stmt 1 view .LVU4004 + 13346 0078 EFE7 b .L995 + 13347 .L990: +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13348 .loc 1 2199 3 is_stmt 0 view .LVU4005 + 13349 007a 0123 movs r3, #1 + 13350 007c 84F84230 strb r3, [r4, #66] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13351 .loc 1 2200 3 is_stmt 1 view .LVU4006 + 13352 0080 EBE7 b .L995 + 13353 .L989: +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13354 .loc 1 2199 3 is_stmt 0 discriminator 13 view .LVU4007 + 13355 0082 0123 movs r3, #1 + 13356 0084 84F84330 strb r3, [r4, #67] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 435 + + + 13357 .loc 1 2200 3 is_stmt 1 discriminator 13 view .LVU4008 + 13358 0088 E7E7 b .L995 + 13359 .L999: +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13360 .loc 1 2200 3 is_stmt 0 discriminator 3 view .LVU4009 + 13361 008a 0123 movs r3, #1 + 13362 008c 84F84530 strb r3, [r4, #69] + 13363 0090 D2E7 b .L988 + 13364 .L1000: +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13365 .loc 1 2200 3 discriminator 6 view .LVU4010 + 13366 0092 0123 movs r3, #1 + 13367 0094 84F84630 strb r3, [r4, #70] + 13368 0098 CEE7 b .L988 + 13369 .cfi_endproc + 13370 .LFE364: + 13372 .section .text.HAL_TIM_IC_Start_IT,"ax",%progbits + 13373 .align 1 + 13374 .global HAL_TIM_IC_Start_IT + 13375 .syntax unified + 13376 .thumb + 13377 .thumb_func + 13379 HAL_TIM_IC_Start_IT: + 13380 .LVL1001: + 13381 .LFB365: +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 13382 .loc 1 2218 1 is_stmt 1 view -0 + 13383 .cfi_startproc + 13384 @ args = 0, pretend = 0, frame = 0 + 13385 @ frame_needed = 0, uses_anonymous_args = 0 +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 13386 .loc 1 2218 1 is_stmt 0 view .LVU4012 + 13387 0000 10B5 push {r4, lr} + 13388 .LCFI99: + 13389 .cfi_def_cfa_offset 8 + 13390 .cfi_offset 4, -8 + 13391 .cfi_offset 14, -4 + 13392 0002 0446 mov r4, r0 +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 13393 .loc 1 2219 3 is_stmt 1 view .LVU4013 + 13394 .LVL1002: +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13395 .loc 1 2220 3 view .LVU4014 +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13396 .loc 1 2222 3 view .LVU4015 + 13397 0004 1029 cmp r1, #16 + 13398 0006 34D8 bhi .L1002 + 13399 0008 DFE801F0 tbb [pc, r1] + 13400 .L1004: + 13401 000c 09 .byte (.L1008-.L1004)/2 + 13402 000d 33 .byte (.L1002-.L1004)/2 + 13403 000e 33 .byte (.L1002-.L1004)/2 + 13404 000f 33 .byte (.L1002-.L1004)/2 + 13405 0010 23 .byte (.L1007-.L1004)/2 + 13406 0011 33 .byte (.L1002-.L1004)/2 + 13407 0012 33 .byte (.L1002-.L1004)/2 + 13408 0013 33 .byte (.L1002-.L1004)/2 + ARM GAS /tmp/cc0wMqvE.s page 436 + + + 13409 0014 27 .byte (.L1006-.L1004)/2 + 13410 0015 33 .byte (.L1002-.L1004)/2 + 13411 0016 33 .byte (.L1002-.L1004)/2 + 13412 0017 33 .byte (.L1002-.L1004)/2 + 13413 0018 2B .byte (.L1005-.L1004)/2 + 13414 0019 33 .byte (.L1002-.L1004)/2 + 13415 001a 33 .byte (.L1002-.L1004)/2 + 13416 001b 33 .byte (.L1002-.L1004)/2 + 13417 001c 2F .byte (.L1003-.L1004)/2 + 13418 001d 00 .p2align 1 + 13419 .L1008: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13420 .loc 1 2222 47 is_stmt 0 discriminator 1 view .LVU4016 + 13421 001e 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 13422 .LVL1003: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13423 .loc 1 2222 47 discriminator 1 view .LVU4017 + 13424 0022 C0B2 uxtb r0, r0 + 13425 .L1009: + 13426 .LVL1004: +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13427 .loc 1 2223 3 is_stmt 1 discriminator 20 view .LVU4018 +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13428 .loc 1 2223 61 is_stmt 0 discriminator 20 view .LVU4019 + 13429 0024 49BB cbnz r1, .L1010 +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13430 .loc 1 2223 61 discriminator 1 view .LVU4020 + 13431 0026 94F84430 ldrb r3, [r4, #68] @ zero_extendqisi2 + 13432 002a DBB2 uxtb r3, r3 + 13433 .L1011: + 13434 .LVL1005: +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13435 .loc 1 2226 3 is_stmt 1 discriminator 12 view .LVU4021 +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + 13436 .loc 1 2229 3 discriminator 12 view .LVU4022 +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + 13437 .loc 1 2229 6 is_stmt 0 discriminator 12 view .LVU4023 + 13438 002c 0128 cmp r0, #1 + 13439 002e 40F0AB80 bne .L1034 +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13440 .loc 1 2230 7 view .LVU4024 + 13441 0032 012B cmp r3, #1 + 13442 0034 40F0A980 bne .L1014 +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13443 .loc 1 2236 3 is_stmt 1 view .LVU4025 + 13444 0038 1029 cmp r1, #16 + 13445 003a 55D8 bhi .L1015 + 13446 003c DFE801F0 tbb [pc, r1] + 13447 .L1017: + 13448 0040 2D .byte (.L1021-.L1017)/2 + 13449 0041 54 .byte (.L1015-.L1017)/2 + 13450 0042 54 .byte (.L1015-.L1017)/2 + 13451 0043 54 .byte (.L1015-.L1017)/2 + 13452 0044 33 .byte (.L1020-.L1017)/2 + 13453 0045 54 .byte (.L1015-.L1017)/2 + 13454 0046 54 .byte (.L1015-.L1017)/2 + 13455 0047 54 .byte (.L1015-.L1017)/2 + ARM GAS /tmp/cc0wMqvE.s page 437 + + + 13456 0048 48 .byte (.L1019-.L1017)/2 + 13457 0049 54 .byte (.L1015-.L1017)/2 + 13458 004a 54 .byte (.L1015-.L1017)/2 + 13459 004b 54 .byte (.L1015-.L1017)/2 + 13460 004c 4C .byte (.L1018-.L1017)/2 + 13461 004d 54 .byte (.L1015-.L1017)/2 + 13462 004e 54 .byte (.L1015-.L1017)/2 + 13463 004f 54 .byte (.L1015-.L1017)/2 + 13464 0050 50 .byte (.L1016-.L1017)/2 + 13465 .LVL1006: + 13466 0051 00 .p2align 1 + 13467 .L1007: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13468 .loc 1 2222 47 is_stmt 0 discriminator 4 view .LVU4026 + 13469 0052 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 13470 .LVL1007: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13471 .loc 1 2222 47 discriminator 4 view .LVU4027 + 13472 0056 C0B2 uxtb r0, r0 + 13473 0058 E4E7 b .L1009 + 13474 .LVL1008: + 13475 .L1006: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13476 .loc 1 2222 47 discriminator 7 view .LVU4028 + 13477 005a 90F84000 ldrb r0, [r0, #64] @ zero_extendqisi2 + 13478 .LVL1009: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13479 .loc 1 2222 47 discriminator 7 view .LVU4029 + 13480 005e C0B2 uxtb r0, r0 + 13481 0060 E0E7 b .L1009 + 13482 .LVL1010: + 13483 .L1005: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13484 .loc 1 2222 47 discriminator 10 view .LVU4030 + 13485 0062 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 + 13486 .LVL1011: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13487 .loc 1 2222 47 discriminator 10 view .LVU4031 + 13488 0066 C0B2 uxtb r0, r0 + 13489 0068 DCE7 b .L1009 + 13490 .LVL1012: + 13491 .L1003: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13492 .loc 1 2222 47 discriminator 13 view .LVU4032 + 13493 006a 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 + 13494 .LVL1013: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13495 .loc 1 2222 47 discriminator 13 view .LVU4033 + 13496 006e C0B2 uxtb r0, r0 + 13497 0070 D8E7 b .L1009 + 13498 .LVL1014: + 13499 .L1002: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13500 .loc 1 2222 47 discriminator 14 view .LVU4034 + 13501 0072 90F84300 ldrb r0, [r0, #67] @ zero_extendqisi2 + 13502 .LVL1015: +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + ARM GAS /tmp/cc0wMqvE.s page 438 + + + 13503 .loc 1 2222 47 discriminator 14 view .LVU4035 + 13504 0076 C0B2 uxtb r0, r0 + 13505 0078 D4E7 b .L1009 + 13506 .LVL1016: + 13507 .L1010: +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13508 .loc 1 2223 61 discriminator 2 view .LVU4036 + 13509 007a 0429 cmp r1, #4 + 13510 007c 05D0 beq .L1041 +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13511 .loc 1 2223 61 discriminator 5 view .LVU4037 + 13512 007e 0829 cmp r1, #8 + 13513 0080 07D0 beq .L1042 +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13514 .loc 1 2223 61 discriminator 8 view .LVU4038 + 13515 0082 94F84730 ldrb r3, [r4, #71] @ zero_extendqisi2 + 13516 0086 DBB2 uxtb r3, r3 + 13517 0088 D0E7 b .L1011 + 13518 .L1041: +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13519 .loc 1 2223 61 discriminator 4 view .LVU4039 + 13520 008a 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 13521 008e DBB2 uxtb r3, r3 + 13522 0090 CCE7 b .L1011 + 13523 .L1042: +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13524 .loc 1 2223 61 discriminator 7 view .LVU4040 + 13525 0092 94F84630 ldrb r3, [r4, #70] @ zero_extendqisi2 + 13526 0096 DBB2 uxtb r3, r3 + 13527 0098 C8E7 b .L1011 + 13528 .LVL1017: + 13529 .L1021: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13530 .loc 1 2236 3 view .LVU4041 + 13531 009a 0222 movs r2, #2 + 13532 009c 84F83E20 strb r2, [r4, #62] +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13533 .loc 1 2237 3 is_stmt 1 view .LVU4042 + 13534 00a0 84F84420 strb r2, [r4, #68] + 13535 00a4 09E0 b .L1022 + 13536 .L1020: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13537 .loc 1 2236 3 is_stmt 0 view .LVU4043 + 13538 00a6 0222 movs r2, #2 + 13539 00a8 84F83F20 strb r2, [r4, #63] +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13540 .loc 1 2237 3 is_stmt 1 view .LVU4044 + 13541 .L1023: +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13542 .loc 1 2237 3 is_stmt 0 discriminator 2 view .LVU4045 + 13543 00ac 0429 cmp r1, #4 + 13544 00ae 1FD0 beq .L1043 +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13545 .loc 1 2237 3 discriminator 4 view .LVU4046 + 13546 00b0 0829 cmp r1, #8 + 13547 00b2 46D0 beq .L1044 +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 439 + + + 13548 .loc 1 2237 3 discriminator 7 view .LVU4047 + 13549 00b4 0222 movs r2, #2 + 13550 00b6 84F84720 strb r2, [r4, #71] + 13551 .L1022: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13552 .loc 1 2239 3 is_stmt 1 view .LVU4048 + 13553 00ba 0C29 cmp r1, #12 + 13554 00bc 66D8 bhi .L1035 + 13555 00be DFE801F0 tbb [pc, r1] + 13556 .L1029: + 13557 00c2 49 .byte (.L1030-.L1029)/2 + 13558 00c3 65 .byte (.L1035-.L1029)/2 + 13559 00c4 65 .byte (.L1035-.L1029)/2 + 13560 00c5 65 .byte (.L1035-.L1029)/2 + 13561 00c6 1A .byte (.L1025-.L1029)/2 + 13562 00c7 65 .byte (.L1035-.L1029)/2 + 13563 00c8 65 .byte (.L1035-.L1029)/2 + 13564 00c9 65 .byte (.L1035-.L1029)/2 + 13565 00ca 43 .byte (.L1027-.L1029)/2 + 13566 00cb 65 .byte (.L1035-.L1029)/2 + 13567 00cc 65 .byte (.L1035-.L1029)/2 + 13568 00cd 65 .byte (.L1035-.L1029)/2 + 13569 00ce 4F .byte (.L1028-.L1029)/2 + 13570 00cf 00 .p2align 1 + 13571 .L1019: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13572 .loc 1 2236 3 is_stmt 0 view .LVU4049 + 13573 00d0 0222 movs r2, #2 + 13574 00d2 84F84020 strb r2, [r4, #64] +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13575 .loc 1 2237 3 is_stmt 1 view .LVU4050 + 13576 00d6 E9E7 b .L1023 + 13577 .L1018: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13578 .loc 1 2236 3 is_stmt 0 view .LVU4051 + 13579 00d8 0222 movs r2, #2 + 13580 00da 84F84120 strb r2, [r4, #65] +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13581 .loc 1 2237 3 is_stmt 1 view .LVU4052 + 13582 00de E5E7 b .L1023 + 13583 .L1016: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13584 .loc 1 2236 3 is_stmt 0 view .LVU4053 + 13585 00e0 0222 movs r2, #2 + 13586 00e2 84F84220 strb r2, [r4, #66] +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13587 .loc 1 2237 3 is_stmt 1 view .LVU4054 + 13588 00e6 E1E7 b .L1023 + 13589 .L1015: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 13590 .loc 1 2236 3 is_stmt 0 discriminator 13 view .LVU4055 + 13591 00e8 0222 movs r2, #2 + 13592 00ea 84F84320 strb r2, [r4, #67] +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13593 .loc 1 2237 3 is_stmt 1 discriminator 13 view .LVU4056 + 13594 00ee DDE7 b .L1023 + 13595 .L1043: + ARM GAS /tmp/cc0wMqvE.s page 440 + + +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13596 .loc 1 2237 3 is_stmt 0 view .LVU4057 + 13597 00f0 0223 movs r3, #2 + 13598 .LVL1018: +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13599 .loc 1 2237 3 view .LVU4058 + 13600 00f2 84F84530 strb r3, [r4, #69] +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13601 .loc 1 2239 3 is_stmt 1 view .LVU4059 + 13602 .L1025: +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13603 .loc 1 2251 7 view .LVU4060 + 13604 00f6 2268 ldr r2, [r4] + 13605 00f8 D368 ldr r3, [r2, #12] + 13606 00fa 43F00403 orr r3, r3, #4 + 13607 00fe D360 str r3, [r2, #12] +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13608 .loc 1 2252 7 view .LVU4061 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13609 .loc 1 2274 3 view .LVU4062 + 13610 .L1031: +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13611 .loc 1 2277 5 view .LVU4063 + 13612 0100 0122 movs r2, #1 + 13613 0102 2068 ldr r0, [r4] + 13614 .LVL1019: +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13615 .loc 1 2277 5 is_stmt 0 view .LVU4064 + 13616 0104 FFF7FEFF bl TIM_CCxChannelCmd + 13617 .LVL1020: +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13618 .loc 1 2280 5 is_stmt 1 view .LVU4065 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13619 .loc 1 2280 9 is_stmt 0 view .LVU4066 + 13620 0108 2368 ldr r3, [r4] +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13621 .loc 1 2280 8 view .LVU4067 + 13622 010a 234A ldr r2, .L1045 + 13623 010c 9342 cmp r3, r2 + 13624 010e 2DD0 beq .L1032 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13625 .loc 1 2280 9 discriminator 1 view .LVU4068 + 13626 0110 B3F1804F cmp r3, #1073741824 + 13627 0114 2AD0 beq .L1032 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13628 .loc 1 2280 9 discriminator 2 view .LVU4069 + 13629 0116 A2F59432 sub r2, r2, #75776 + 13630 011a 9342 cmp r3, r2 + 13631 011c 26D0 beq .L1032 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13632 .loc 1 2280 9 discriminator 3 view .LVU4070 + 13633 011e 02F58062 add r2, r2, #1024 + 13634 0122 9342 cmp r3, r2 + 13635 0124 22D0 beq .L1032 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13636 .loc 1 2280 9 discriminator 4 view .LVU4071 + 13637 0126 02F59632 add r2, r2, #76800 + ARM GAS /tmp/cc0wMqvE.s page 441 + + + 13638 012a 9342 cmp r3, r2 + 13639 012c 1ED0 beq .L1032 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13640 .loc 1 2280 9 discriminator 5 view .LVU4072 + 13641 012e 02F54062 add r2, r2, #3072 + 13642 0132 9342 cmp r3, r2 + 13643 0134 1AD0 beq .L1032 +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13644 .loc 1 2290 7 is_stmt 1 view .LVU4073 + 13645 0136 1A68 ldr r2, [r3] + 13646 0138 42F00102 orr r2, r2, #1 + 13647 013c 1A60 str r2, [r3] + 13648 013e 0020 movs r0, #0 + 13649 0140 23E0 b .L1014 + 13650 .LVL1021: + 13651 .L1044: +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13652 .loc 1 2237 3 is_stmt 0 view .LVU4074 + 13653 0142 0223 movs r3, #2 + 13654 .LVL1022: +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13655 .loc 1 2237 3 view .LVU4075 + 13656 0144 84F84630 strb r3, [r4, #70] +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13657 .loc 1 2239 3 is_stmt 1 view .LVU4076 + 13658 .L1027: +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13659 .loc 1 2258 7 view .LVU4077 + 13660 0148 2268 ldr r2, [r4] + 13661 014a D368 ldr r3, [r2, #12] + 13662 014c 43F00803 orr r3, r3, #8 + 13663 0150 D360 str r3, [r2, #12] +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13664 .loc 1 2259 7 view .LVU4078 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13665 .loc 1 2274 3 view .LVU4079 + 13666 0152 D5E7 b .L1031 + 13667 .LVL1023: + 13668 .L1030: +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13669 .loc 1 2244 7 view .LVU4080 + 13670 0154 2268 ldr r2, [r4] + 13671 0156 D368 ldr r3, [r2, #12] + 13672 .LVL1024: +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13673 .loc 1 2244 7 is_stmt 0 view .LVU4081 + 13674 0158 43F00203 orr r3, r3, #2 + 13675 015c D360 str r3, [r2, #12] +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13676 .loc 1 2245 7 is_stmt 1 view .LVU4082 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13677 .loc 1 2274 3 view .LVU4083 + 13678 015e CFE7 b .L1031 + 13679 .LVL1025: + 13680 .L1028: +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13681 .loc 1 2265 7 view .LVU4084 + ARM GAS /tmp/cc0wMqvE.s page 442 + + + 13682 0160 2268 ldr r2, [r4] + 13683 0162 D368 ldr r3, [r2, #12] + 13684 .LVL1026: +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13685 .loc 1 2265 7 is_stmt 0 view .LVU4085 + 13686 0164 43F01003 orr r3, r3, #16 + 13687 0168 D360 str r3, [r2, #12] +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13688 .loc 1 2266 7 is_stmt 1 view .LVU4086 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13689 .loc 1 2274 3 view .LVU4087 + 13690 016a C9E7 b .L1031 + 13691 .LVL1027: + 13692 .L1032: +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 13693 .loc 1 2282 7 view .LVU4088 +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 13694 .loc 1 2282 31 is_stmt 0 view .LVU4089 + 13695 016c 9968 ldr r1, [r3, #8] +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 13696 .loc 1 2282 15 view .LVU4090 + 13697 016e 0B4A ldr r2, .L1045+4 + 13698 0170 0A40 ands r2, r2, r1 + 13699 .LVL1028: +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13700 .loc 1 2283 7 is_stmt 1 view .LVU4091 +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13701 .loc 1 2283 10 is_stmt 0 view .LVU4092 + 13702 0172 062A cmp r2, #6 + 13703 0174 0CD0 beq .L1036 +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13704 .loc 1 2283 11 discriminator 1 view .LVU4093 + 13705 0176 B2F5803F cmp r2, #65536 + 13706 017a 0BD0 beq .L1037 +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13707 .loc 1 2285 9 is_stmt 1 view .LVU4094 + 13708 017c 1A68 ldr r2, [r3] + 13709 .LVL1029: +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13710 .loc 1 2285 9 is_stmt 0 view .LVU4095 + 13711 017e 42F00102 orr r2, r2, #1 + 13712 0182 1A60 str r2, [r3] + 13713 0184 0020 movs r0, #0 + 13714 0186 00E0 b .L1014 + 13715 .LVL1030: + 13716 .L1034: +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13717 .loc 1 2232 12 view .LVU4096 + 13718 0188 0120 movs r0, #1 + 13719 .LVL1031: + 13720 .L1014: +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13721 .loc 1 2296 1 view .LVU4097 + 13722 018a 10BD pop {r4, pc} + 13723 .LVL1032: + 13724 .L1035: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 443 + + + 13725 .loc 1 2239 3 view .LVU4098 + 13726 018c 1846 mov r0, r3 + 13727 .LVL1033: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13728 .loc 1 2239 3 view .LVU4099 + 13729 018e FCE7 b .L1014 + 13730 .LVL1034: + 13731 .L1036: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13732 .loc 1 2239 3 view .LVU4100 + 13733 0190 0020 movs r0, #0 + 13734 0192 FAE7 b .L1014 + 13735 .L1037: + 13736 0194 0020 movs r0, #0 + 13737 0196 F8E7 b .L1014 + 13738 .L1046: + 13739 .align 2 + 13740 .L1045: + 13741 0198 002C0140 .word 1073818624 + 13742 019c 07000100 .word 65543 + 13743 .cfi_endproc + 13744 .LFE365: + 13746 .section .text.HAL_TIM_IC_Stop_IT,"ax",%progbits + 13747 .align 1 + 13748 .global HAL_TIM_IC_Stop_IT + 13749 .syntax unified + 13750 .thumb + 13751 .thumb_func + 13753 HAL_TIM_IC_Stop_IT: + 13754 .LVL1035: + 13755 .LFB366: +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 13756 .loc 1 2310 1 is_stmt 1 view -0 + 13757 .cfi_startproc + 13758 @ args = 0, pretend = 0, frame = 0 + 13759 @ frame_needed = 0, uses_anonymous_args = 0 +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 13760 .loc 1 2310 1 is_stmt 0 view .LVU4102 + 13761 0000 38B5 push {r3, r4, r5, lr} + 13762 .LCFI100: + 13763 .cfi_def_cfa_offset 16 + 13764 .cfi_offset 3, -16 + 13765 .cfi_offset 4, -12 + 13766 .cfi_offset 5, -8 + 13767 .cfi_offset 14, -4 + 13768 0002 0546 mov r5, r0 + 13769 0004 0C46 mov r4, r1 +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13770 .loc 1 2311 3 is_stmt 1 view .LVU4103 + 13771 .LVL1036: +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13772 .loc 1 2314 3 view .LVU4104 +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13773 .loc 1 2316 3 view .LVU4105 + 13774 0006 0C29 cmp r1, #12 + 13775 0008 6DD8 bhi .L1066 + 13776 000a DFE801F0 tbb [pc, r1] + ARM GAS /tmp/cc0wMqvE.s page 444 + + + 13777 .L1050: + 13778 000e 07 .byte (.L1053-.L1050)/2 + 13779 000f 6C .byte (.L1066-.L1050)/2 + 13780 0010 6C .byte (.L1066-.L1050)/2 + 13781 0011 6C .byte (.L1066-.L1050)/2 + 13782 0012 28 .byte (.L1052-.L1050)/2 + 13783 0013 6C .byte (.L1066-.L1050)/2 + 13784 0014 6C .byte (.L1066-.L1050)/2 + 13785 0015 6C .byte (.L1066-.L1050)/2 + 13786 0016 2E .byte (.L1051-.L1050)/2 + 13787 0017 6C .byte (.L1066-.L1050)/2 + 13788 0018 6C .byte (.L1066-.L1050)/2 + 13789 0019 6C .byte (.L1066-.L1050)/2 + 13790 001a 34 .byte (.L1049-.L1050)/2 + 13791 001b 00 .p2align 1 + 13792 .L1053: +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13793 .loc 1 2321 7 view .LVU4106 + 13794 001c 0268 ldr r2, [r0] + 13795 001e D368 ldr r3, [r2, #12] + 13796 0020 23F00203 bic r3, r3, #2 + 13797 0024 D360 str r3, [r2, #12] +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13798 .loc 1 2322 7 view .LVU4107 +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13799 .loc 1 2351 3 view .LVU4108 + 13800 .L1054: +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13801 .loc 1 2354 5 view .LVU4109 + 13802 0026 0022 movs r2, #0 + 13803 0028 2146 mov r1, r4 + 13804 .LVL1037: +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13805 .loc 1 2354 5 is_stmt 0 view .LVU4110 + 13806 002a 2868 ldr r0, [r5] + 13807 .LVL1038: +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13808 .loc 1 2354 5 view .LVU4111 + 13809 002c FFF7FEFF bl TIM_CCxChannelCmd + 13810 .LVL1039: +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13811 .loc 1 2357 5 is_stmt 1 view .LVU4112 +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13812 .loc 1 2357 5 view .LVU4113 + 13813 0030 2B68 ldr r3, [r5] + 13814 0032 196A ldr r1, [r3, #32] + 13815 0034 41F21112 movw r2, #4369 + 13816 0038 1142 tst r1, r2 + 13817 003a 08D1 bne .L1055 +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13818 .loc 1 2357 5 discriminator 1 view .LVU4114 + 13819 003c 196A ldr r1, [r3, #32] + 13820 003e 44F24442 movw r2, #17476 + 13821 0042 1142 tst r1, r2 + 13822 0044 03D1 bne .L1055 +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13823 .loc 1 2357 5 discriminator 3 view .LVU4115 + ARM GAS /tmp/cc0wMqvE.s page 445 + + + 13824 0046 1A68 ldr r2, [r3] + 13825 0048 22F00102 bic r2, r2, #1 + 13826 004c 1A60 str r2, [r3] + 13827 .L1055: +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13828 .loc 1 2357 5 discriminator 5 view .LVU4116 +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13829 .loc 1 2360 5 discriminator 5 view .LVU4117 + 13830 004e C4B9 cbnz r4, .L1056 +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13831 .loc 1 2360 5 is_stmt 0 view .LVU4118 + 13832 0050 0123 movs r3, #1 + 13833 0052 85F83E30 strb r3, [r5, #62] +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13834 .loc 1 2361 5 is_stmt 1 view .LVU4119 + 13835 0056 85F84430 strb r3, [r5, #68] + 13836 005a 0020 movs r0, #0 + 13837 005c 44E0 b .L1048 + 13838 .LVL1040: + 13839 .L1052: +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13840 .loc 1 2328 7 view .LVU4120 + 13841 005e 0268 ldr r2, [r0] + 13842 0060 D368 ldr r3, [r2, #12] + 13843 0062 23F00403 bic r3, r3, #4 + 13844 0066 D360 str r3, [r2, #12] +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13845 .loc 1 2329 7 view .LVU4121 +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13846 .loc 1 2351 3 view .LVU4122 + 13847 0068 DDE7 b .L1054 + 13848 .L1051: +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13849 .loc 1 2335 7 view .LVU4123 + 13850 006a 0268 ldr r2, [r0] + 13851 006c D368 ldr r3, [r2, #12] + 13852 006e 23F00803 bic r3, r3, #8 + 13853 0072 D360 str r3, [r2, #12] +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13854 .loc 1 2336 7 view .LVU4124 +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13855 .loc 1 2351 3 view .LVU4125 + 13856 0074 D7E7 b .L1054 + 13857 .L1049: +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 13858 .loc 1 2342 7 view .LVU4126 + 13859 0076 0268 ldr r2, [r0] + 13860 0078 D368 ldr r3, [r2, #12] + 13861 007a 23F01003 bic r3, r3, #16 + 13862 007e D360 str r3, [r2, #12] +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13863 .loc 1 2343 7 view .LVU4127 +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13864 .loc 1 2351 3 view .LVU4128 + 13865 0080 D1E7 b .L1054 + 13866 .LVL1041: + 13867 .L1056: + ARM GAS /tmp/cc0wMqvE.s page 446 + + +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13868 .loc 1 2351 3 is_stmt 0 view .LVU4129 + 13869 0082 231F subs r3, r4, #4 + 13870 0084 0C2B cmp r3, #12 + 13871 0086 20D8 bhi .L1057 + 13872 0088 DFE803F0 tbb [pc, r3] + 13873 .L1059: + 13874 008c 07 .byte (.L1062-.L1059)/2 + 13875 008d 1F .byte (.L1057-.L1059)/2 + 13876 008e 1F .byte (.L1057-.L1059)/2 + 13877 008f 1F .byte (.L1057-.L1059)/2 + 13878 0090 13 .byte (.L1061-.L1059)/2 + 13879 0091 1F .byte (.L1057-.L1059)/2 + 13880 0092 1F .byte (.L1057-.L1059)/2 + 13881 0093 1F .byte (.L1057-.L1059)/2 + 13882 0094 17 .byte (.L1060-.L1059)/2 + 13883 0095 1F .byte (.L1057-.L1059)/2 + 13884 0096 1F .byte (.L1057-.L1059)/2 + 13885 0097 1F .byte (.L1057-.L1059)/2 + 13886 0098 1B .byte (.L1058-.L1059)/2 + 13887 0099 00 .p2align 1 + 13888 .L1062: +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13889 .loc 1 2360 5 view .LVU4130 + 13890 009a 0123 movs r3, #1 + 13891 009c 85F83F30 strb r3, [r5, #63] +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13892 .loc 1 2361 5 is_stmt 1 view .LVU4131 + 13893 .L1063: +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13894 .loc 1 2361 5 is_stmt 0 discriminator 2 view .LVU4132 + 13895 00a0 042C cmp r4, #4 + 13896 00a2 16D0 beq .L1068 +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13897 .loc 1 2361 5 discriminator 4 view .LVU4133 + 13898 00a4 082C cmp r4, #8 + 13899 00a6 19D0 beq .L1069 +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13900 .loc 1 2361 5 discriminator 7 view .LVU4134 + 13901 00a8 0123 movs r3, #1 + 13902 00aa 85F84730 strb r3, [r5, #71] + 13903 00ae 0020 movs r0, #0 + 13904 00b0 1AE0 b .L1048 + 13905 .L1061: +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13906 .loc 1 2360 5 view .LVU4135 + 13907 00b2 0123 movs r3, #1 + 13908 00b4 85F84030 strb r3, [r5, #64] +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13909 .loc 1 2361 5 is_stmt 1 view .LVU4136 + 13910 00b8 F2E7 b .L1063 + 13911 .L1060: +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13912 .loc 1 2360 5 is_stmt 0 view .LVU4137 + 13913 00ba 0123 movs r3, #1 + 13914 00bc 85F84130 strb r3, [r5, #65] +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 447 + + + 13915 .loc 1 2361 5 is_stmt 1 view .LVU4138 + 13916 00c0 EEE7 b .L1063 + 13917 .L1058: +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13918 .loc 1 2360 5 is_stmt 0 view .LVU4139 + 13919 00c2 0123 movs r3, #1 + 13920 00c4 85F84230 strb r3, [r5, #66] +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13921 .loc 1 2361 5 is_stmt 1 view .LVU4140 + 13922 00c8 EAE7 b .L1063 + 13923 .L1057: +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 13924 .loc 1 2360 5 is_stmt 0 discriminator 13 view .LVU4141 + 13925 00ca 0123 movs r3, #1 + 13926 00cc 85F84330 strb r3, [r5, #67] +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13927 .loc 1 2361 5 is_stmt 1 discriminator 13 view .LVU4142 + 13928 00d0 E6E7 b .L1063 + 13929 .L1068: +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13930 .loc 1 2361 5 is_stmt 0 discriminator 3 view .LVU4143 + 13931 00d2 0123 movs r3, #1 + 13932 00d4 85F84530 strb r3, [r5, #69] + 13933 00d8 0020 movs r0, #0 + 13934 00da 05E0 b .L1048 + 13935 .L1069: +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13936 .loc 1 2361 5 discriminator 6 view .LVU4144 + 13937 00dc 0123 movs r3, #1 + 13938 00de 85F84630 strb r3, [r5, #70] + 13939 00e2 0020 movs r0, #0 + 13940 00e4 00E0 b .L1048 + 13941 .LVL1042: + 13942 .L1066: +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 13943 .loc 1 2316 3 view .LVU4145 + 13944 00e6 0120 movs r0, #1 + 13945 .LVL1043: + 13946 .L1048: +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 13947 .loc 1 2365 3 is_stmt 1 view .LVU4146 +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13948 .loc 1 2366 1 is_stmt 0 view .LVU4147 + 13949 00e8 38BD pop {r3, r4, r5, pc} +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13950 .loc 1 2366 1 view .LVU4148 + 13951 .cfi_endproc + 13952 .LFE366: + 13954 .section .text.HAL_TIM_IC_Start_DMA,"ax",%progbits + 13955 .align 1 + 13956 .global HAL_TIM_IC_Start_DMA + 13957 .syntax unified + 13958 .thumb + 13959 .thumb_func + 13961 HAL_TIM_IC_Start_DMA: + 13962 .LVL1044: + 13963 .LFB367: + ARM GAS /tmp/cc0wMqvE.s page 448 + + +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 13964 .loc 1 2382 1 is_stmt 1 view -0 + 13965 .cfi_startproc + 13966 @ args = 0, pretend = 0, frame = 0 + 13967 @ frame_needed = 0, uses_anonymous_args = 0 +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 13968 .loc 1 2382 1 is_stmt 0 view .LVU4150 + 13969 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 13970 .LCFI101: + 13971 .cfi_def_cfa_offset 24 + 13972 .cfi_offset 4, -24 + 13973 .cfi_offset 5, -20 + 13974 .cfi_offset 6, -16 + 13975 .cfi_offset 7, -12 + 13976 .cfi_offset 8, -8 + 13977 .cfi_offset 14, -4 + 13978 0004 0546 mov r5, r0 + 13979 0006 0C46 mov r4, r1 + 13980 0008 1646 mov r6, r2 + 13981 000a 1F46 mov r7, r3 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 13982 .loc 1 2383 3 is_stmt 1 view .LVU4151 + 13983 .LVL1045: +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 13984 .loc 1 2384 3 view .LVU4152 +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 13985 .loc 1 2386 3 view .LVU4153 + 13986 000c 1029 cmp r1, #16 + 13987 000e 3ED8 bhi .L1071 + 13988 0010 DFE801F0 tbb [pc, r1] + 13989 .LVL1046: + 13990 .L1073: + 13991 0014 09 .byte (.L1077-.L1073)/2 + 13992 0015 3D .byte (.L1071-.L1073)/2 + 13993 0016 3D .byte (.L1071-.L1073)/2 + 13994 0017 3D .byte (.L1071-.L1073)/2 + 13995 0018 2D .byte (.L1076-.L1073)/2 + 13996 0019 3D .byte (.L1071-.L1073)/2 + 13997 001a 3D .byte (.L1071-.L1073)/2 + 13998 001b 3D .byte (.L1071-.L1073)/2 + 13999 001c 31 .byte (.L1075-.L1073)/2 + 14000 001d 3D .byte (.L1071-.L1073)/2 + 14001 001e 3D .byte (.L1071-.L1073)/2 + 14002 001f 3D .byte (.L1071-.L1073)/2 + 14003 0020 35 .byte (.L1074-.L1073)/2 + 14004 0021 3D .byte (.L1071-.L1073)/2 + 14005 0022 3D .byte (.L1071-.L1073)/2 + 14006 0023 3D .byte (.L1071-.L1073)/2 + 14007 0024 39 .byte (.L1072-.L1073)/2 + 14008 0025 00 .p2align 1 + 14009 .L1077: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14010 .loc 1 2386 47 is_stmt 0 discriminator 1 view .LVU4154 + 14011 0026 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 14012 .LVL1047: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14013 .loc 1 2386 47 discriminator 1 view .LVU4155 + ARM GAS /tmp/cc0wMqvE.s page 449 + + + 14014 002a C0B2 uxtb r0, r0 + 14015 .LVL1048: + 14016 .L1078: +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14017 .loc 1 2387 3 is_stmt 1 discriminator 20 view .LVU4156 +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14018 .loc 1 2387 61 is_stmt 0 discriminator 20 view .LVU4157 + 14019 002c 9CBB cbnz r4, .L1079 +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14020 .loc 1 2387 61 discriminator 1 view .LVU4158 + 14021 002e 95F84480 ldrb r8, [r5, #68] @ zero_extendqisi2 + 14022 0032 5FFA88F8 uxtb r8, r8 + 14023 .L1080: + 14024 .LVL1049: +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance)); + 14025 .loc 1 2390 3 is_stmt 1 discriminator 12 view .LVU4159 +2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14026 .loc 1 2391 3 discriminator 12 view .LVU4160 +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 14027 .loc 1 2394 3 discriminator 12 view .LVU4161 +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 14028 .loc 1 2394 6 is_stmt 0 discriminator 12 view .LVU4162 + 14029 0036 0228 cmp r0, #2 + 14030 0038 00F00C81 beq .L1083 +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14031 .loc 1 2395 7 view .LVU4163 + 14032 003c B8F1020F cmp r8, #2 + 14033 0040 00F00581 beq .L1104 +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_state == HAL_TIM_CHANNEL_STATE_READY)) + 14034 .loc 1 2399 8 is_stmt 1 view .LVU4164 +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_state == HAL_TIM_CHANNEL_STATE_READY)) + 14035 .loc 1 2399 11 is_stmt 0 view .LVU4165 + 14036 0044 0128 cmp r0, #1 + 14037 0046 40F00481 bne .L1105 +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14038 .loc 1 2400 12 view .LVU4166 + 14039 004a B8F1010F cmp r8, #1 + 14040 004e 40F00181 bne .L1083 +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14041 .loc 1 2402 5 is_stmt 1 view .LVU4167 +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14042 .loc 1 2402 8 is_stmt 0 view .LVU4168 + 14043 0052 9EB3 cbz r6, .L1115 + 14044 .L1084: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14045 .loc 1 2408 7 is_stmt 1 view .LVU4169 + 14046 0054 102C cmp r4, #16 + 14047 0056 61D8 bhi .L1085 + 14048 0058 DFE804F0 tbb [pc, r4] + 14049 .L1087: + 14050 005c 34 .byte (.L1091-.L1087)/2 + 14051 005d 60 .byte (.L1085-.L1087)/2 + 14052 005e 60 .byte (.L1085-.L1087)/2 + 14053 005f 60 .byte (.L1085-.L1087)/2 + 14054 0060 3A .byte (.L1090-.L1087)/2 + 14055 0061 60 .byte (.L1085-.L1087)/2 + 14056 0062 60 .byte (.L1085-.L1087)/2 + ARM GAS /tmp/cc0wMqvE.s page 450 + + + 14057 0063 60 .byte (.L1085-.L1087)/2 + 14058 0064 54 .byte (.L1089-.L1087)/2 + 14059 0065 60 .byte (.L1085-.L1087)/2 + 14060 0066 60 .byte (.L1085-.L1087)/2 + 14061 0067 60 .byte (.L1085-.L1087)/2 + 14062 0068 58 .byte (.L1088-.L1087)/2 + 14063 0069 60 .byte (.L1085-.L1087)/2 + 14064 006a 60 .byte (.L1085-.L1087)/2 + 14065 006b 60 .byte (.L1085-.L1087)/2 + 14066 006c 5C .byte (.L1086-.L1087)/2 + 14067 .LVL1050: + 14068 006d 00 .p2align 1 + 14069 .L1076: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14070 .loc 1 2386 47 is_stmt 0 discriminator 4 view .LVU4170 + 14071 006e 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 14072 .LVL1051: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14073 .loc 1 2386 47 discriminator 4 view .LVU4171 + 14074 0072 C0B2 uxtb r0, r0 + 14075 0074 DAE7 b .L1078 + 14076 .LVL1052: + 14077 .L1075: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14078 .loc 1 2386 47 discriminator 7 view .LVU4172 + 14079 0076 90F84000 ldrb r0, [r0, #64] @ zero_extendqisi2 + 14080 .LVL1053: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14081 .loc 1 2386 47 discriminator 7 view .LVU4173 + 14082 007a C0B2 uxtb r0, r0 + 14083 007c D6E7 b .L1078 + 14084 .LVL1054: + 14085 .L1074: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14086 .loc 1 2386 47 discriminator 10 view .LVU4174 + 14087 007e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 + 14088 .LVL1055: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14089 .loc 1 2386 47 discriminator 10 view .LVU4175 + 14090 0082 C8B2 uxtb r0, r1 + 14091 .LVL1056: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14092 .loc 1 2386 47 discriminator 10 view .LVU4176 + 14093 0084 D2E7 b .L1078 + 14094 .LVL1057: + 14095 .L1072: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14096 .loc 1 2386 47 discriminator 13 view .LVU4177 + 14097 0086 90F84210 ldrb r1, [r0, #66] @ zero_extendqisi2 + 14098 .LVL1058: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14099 .loc 1 2386 47 discriminator 13 view .LVU4178 + 14100 008a C8B2 uxtb r0, r1 + 14101 .LVL1059: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14102 .loc 1 2386 47 discriminator 13 view .LVU4179 + 14103 008c CEE7 b .L1078 + ARM GAS /tmp/cc0wMqvE.s page 451 + + + 14104 .LVL1060: + 14105 .L1071: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14106 .loc 1 2386 47 discriminator 14 view .LVU4180 + 14107 008e 90F84310 ldrb r1, [r0, #67] @ zero_extendqisi2 + 14108 .LVL1061: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14109 .loc 1 2386 47 discriminator 14 view .LVU4181 + 14110 0092 C8B2 uxtb r0, r1 + 14111 .LVL1062: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_state = TIM_CHANNEL_N_STATE_GET(htim, Channel); + 14112 .loc 1 2386 47 discriminator 14 view .LVU4182 + 14113 0094 CAE7 b .L1078 + 14114 .LVL1063: + 14115 .L1079: +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14116 .loc 1 2387 61 discriminator 2 view .LVU4183 + 14117 0096 042C cmp r4, #4 + 14118 0098 06D0 beq .L1116 +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14119 .loc 1 2387 61 discriminator 5 view .LVU4184 + 14120 009a 082C cmp r4, #8 + 14121 009c 09D0 beq .L1117 +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14122 .loc 1 2387 61 discriminator 8 view .LVU4185 + 14123 009e 95F84780 ldrb r8, [r5, #71] @ zero_extendqisi2 + 14124 00a2 5FFA88F8 uxtb r8, r8 + 14125 00a6 C6E7 b .L1080 + 14126 .L1116: +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14127 .loc 1 2387 61 discriminator 4 view .LVU4186 + 14128 00a8 95F84580 ldrb r8, [r5, #69] @ zero_extendqisi2 + 14129 00ac 5FFA88F8 uxtb r8, r8 + 14130 00b0 C1E7 b .L1080 + 14131 .L1117: +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14132 .loc 1 2387 61 discriminator 7 view .LVU4187 + 14133 00b2 95F84680 ldrb r8, [r5, #70] @ zero_extendqisi2 + 14134 00b6 5FFA88F8 uxtb r8, r8 + 14135 00ba BCE7 b .L1080 + 14136 .LVL1064: + 14137 .L1115: +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14138 .loc 1 2402 25 discriminator 1 view .LVU4188 + 14139 00bc 002F cmp r7, #0 + 14140 00be C9D0 beq .L1084 +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14141 .loc 1 2404 14 view .LVU4189 + 14142 00c0 4046 mov r0, r8 + 14143 .LVL1065: +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14144 .loc 1 2404 14 view .LVU4190 + 14145 00c2 C7E0 b .L1083 + 14146 .LVL1066: + 14147 .L1091: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14148 .loc 1 2408 7 view .LVU4191 + ARM GAS /tmp/cc0wMqvE.s page 452 + + + 14149 00c4 0223 movs r3, #2 + 14150 00c6 85F83E30 strb r3, [r5, #62] +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14151 .loc 1 2409 7 is_stmt 1 view .LVU4192 + 14152 00ca 85F84430 strb r3, [r5, #68] + 14153 00ce 09E0 b .L1092 + 14154 .L1090: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14155 .loc 1 2408 7 is_stmt 0 view .LVU4193 + 14156 00d0 0223 movs r3, #2 + 14157 00d2 85F83F30 strb r3, [r5, #63] +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14158 .loc 1 2409 7 is_stmt 1 view .LVU4194 + 14159 .L1093: +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14160 .loc 1 2409 7 is_stmt 0 discriminator 2 view .LVU4195 + 14161 00d6 042C cmp r4, #4 + 14162 00d8 24D0 beq .L1118 +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14163 .loc 1 2409 7 discriminator 4 view .LVU4196 + 14164 00da 082C cmp r4, #8 + 14165 00dc 26D0 beq .L1119 +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14166 .loc 1 2409 7 discriminator 7 view .LVU4197 + 14167 00de 0223 movs r3, #2 + 14168 00e0 85F84730 strb r3, [r5, #71] + 14169 .L1092: +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14170 .loc 1 2418 3 is_stmt 1 view .LVU4198 + 14171 00e4 0122 movs r2, #1 + 14172 .LVL1067: +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14173 .loc 1 2418 3 is_stmt 0 view .LVU4199 + 14174 00e6 2146 mov r1, r4 + 14175 00e8 2868 ldr r0, [r5] + 14176 .LVL1068: +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14177 .loc 1 2418 3 view .LVU4200 + 14178 00ea FFF7FEFF bl TIM_CCxChannelCmd + 14179 .LVL1069: +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14180 .loc 1 2420 3 is_stmt 1 view .LVU4201 + 14181 00ee 0C2C cmp r4, #12 + 14182 00f0 38D8 bhi .L1096 + 14183 00f2 DFE804F0 tbb [pc, r4] + 14184 .L1098: + 14185 00f6 1F .byte (.L1101-.L1098)/2 + 14186 00f7 37 .byte (.L1096-.L1098)/2 + 14187 00f8 37 .byte (.L1096-.L1098)/2 + 14188 00f9 37 .byte (.L1096-.L1098)/2 + 14189 00fa 54 .byte (.L1100-.L1098)/2 + 14190 00fb 37 .byte (.L1096-.L1098)/2 + 14191 00fc 37 .byte (.L1096-.L1098)/2 + 14192 00fd 37 .byte (.L1096-.L1098)/2 + 14193 00fe 6D .byte (.L1099-.L1098)/2 + 14194 00ff 37 .byte (.L1096-.L1098)/2 + 14195 0100 37 .byte (.L1096-.L1098)/2 + ARM GAS /tmp/cc0wMqvE.s page 453 + + + 14196 0101 37 .byte (.L1096-.L1098)/2 + 14197 0102 86 .byte (.L1097-.L1098)/2 + 14198 .LVL1070: + 14199 0103 00 .p2align 1 + 14200 .L1089: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14201 .loc 1 2408 7 is_stmt 0 view .LVU4202 + 14202 0104 0223 movs r3, #2 + 14203 0106 85F84030 strb r3, [r5, #64] +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14204 .loc 1 2409 7 is_stmt 1 view .LVU4203 + 14205 010a E4E7 b .L1093 + 14206 .L1088: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14207 .loc 1 2408 7 is_stmt 0 view .LVU4204 + 14208 010c 0223 movs r3, #2 + 14209 010e 85F84130 strb r3, [r5, #65] +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14210 .loc 1 2409 7 is_stmt 1 view .LVU4205 + 14211 0112 E0E7 b .L1093 + 14212 .L1086: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14213 .loc 1 2408 7 is_stmt 0 view .LVU4206 + 14214 0114 0223 movs r3, #2 + 14215 0116 85F84230 strb r3, [r5, #66] +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14216 .loc 1 2409 7 is_stmt 1 view .LVU4207 + 14217 011a DCE7 b .L1093 + 14218 .L1085: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 14219 .loc 1 2408 7 is_stmt 0 discriminator 13 view .LVU4208 + 14220 011c 0223 movs r3, #2 + 14221 011e 85F84330 strb r3, [r5, #67] +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14222 .loc 1 2409 7 is_stmt 1 discriminator 13 view .LVU4209 + 14223 0122 D8E7 b .L1093 + 14224 .L1118: +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14225 .loc 1 2409 7 is_stmt 0 discriminator 3 view .LVU4210 + 14226 0124 0223 movs r3, #2 + 14227 0126 85F84530 strb r3, [r5, #69] + 14228 012a DBE7 b .L1092 + 14229 .L1119: +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14230 .loc 1 2409 7 discriminator 6 view .LVU4211 + 14231 012c 0223 movs r3, #2 + 14232 012e 85F84630 strb r3, [r5, #70] + 14233 0132 D7E7 b .L1092 + 14234 .LVL1071: + 14235 .L1101: +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14236 .loc 1 2425 7 is_stmt 1 view .LVU4212 +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14237 .loc 1 2425 17 is_stmt 0 view .LVU4213 + 14238 0134 6B6A ldr r3, [r5, #36] +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14239 .loc 1 2425 52 view .LVU4214 + ARM GAS /tmp/cc0wMqvE.s page 454 + + + 14240 0136 4E4A ldr r2, .L1120 + 14241 0138 DA62 str r2, [r3, #44] +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14242 .loc 1 2426 7 is_stmt 1 view .LVU4215 +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14243 .loc 1 2426 17 is_stmt 0 view .LVU4216 + 14244 013a 6B6A ldr r3, [r5, #36] +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14245 .loc 1 2426 56 view .LVU4217 + 14246 013c 4D4A ldr r2, .L1120+4 + 14247 013e 1A63 str r2, [r3, #48] +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14248 .loc 1 2429 7 is_stmt 1 view .LVU4218 +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14249 .loc 1 2429 17 is_stmt 0 view .LVU4219 + 14250 0140 6B6A ldr r3, [r5, #36] +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14251 .loc 1 2429 53 view .LVU4220 + 14252 0142 4D4A ldr r2, .L1120+8 + 14253 0144 5A63 str r2, [r3, #52] +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14254 .loc 1 2432 7 is_stmt 1 view .LVU4221 +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14255 .loc 1 2432 71 is_stmt 0 view .LVU4222 + 14256 0146 2968 ldr r1, [r5] +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14257 .loc 1 2432 11 view .LVU4223 + 14258 0148 3B46 mov r3, r7 + 14259 014a 3246 mov r2, r6 + 14260 014c 3431 adds r1, r1, #52 + 14261 014e 686A ldr r0, [r5, #36] + 14262 0150 FFF7FEFF bl HAL_DMA_Start_IT + 14263 .LVL1072: +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14264 .loc 1 2432 10 view .LVU4224 + 14265 0154 0028 cmp r0, #0 + 14266 0156 7FD1 bne .L1107 +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14267 .loc 1 2439 7 is_stmt 1 view .LVU4225 + 14268 0158 2A68 ldr r2, [r5] + 14269 015a D368 ldr r3, [r2, #12] + 14270 015c 43F40073 orr r3, r3, #512 + 14271 0160 D360 str r3, [r2, #12] +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14272 .loc 1 2440 7 view .LVU4226 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 14273 .loc 1 2383 21 is_stmt 0 view .LVU4227 + 14274 0162 8046 mov r8, r0 + 14275 .LVL1073: + 14276 .L1096: +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14277 .loc 1 2512 3 is_stmt 1 view .LVU4228 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14278 .loc 1 2512 7 is_stmt 0 view .LVU4229 + 14279 0164 2B68 ldr r3, [r5] +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14280 .loc 1 2512 6 view .LVU4230 + ARM GAS /tmp/cc0wMqvE.s page 455 + + + 14281 0166 454A ldr r2, .L1120+12 + 14282 0168 9342 cmp r3, r2 + 14283 016a 62D0 beq .L1102 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14284 .loc 1 2512 7 discriminator 1 view .LVU4231 + 14285 016c B3F1804F cmp r3, #1073741824 + 14286 0170 5FD0 beq .L1102 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14287 .loc 1 2512 7 discriminator 2 view .LVU4232 + 14288 0172 A2F59432 sub r2, r2, #75776 + 14289 0176 9342 cmp r3, r2 + 14290 0178 5BD0 beq .L1102 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14291 .loc 1 2512 7 discriminator 3 view .LVU4233 + 14292 017a 02F58062 add r2, r2, #1024 + 14293 017e 9342 cmp r3, r2 + 14294 0180 57D0 beq .L1102 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14295 .loc 1 2512 7 discriminator 4 view .LVU4234 + 14296 0182 02F59632 add r2, r2, #76800 + 14297 0186 9342 cmp r3, r2 + 14298 0188 53D0 beq .L1102 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14299 .loc 1 2512 7 discriminator 5 view .LVU4235 + 14300 018a 02F54062 add r2, r2, #3072 + 14301 018e 9342 cmp r3, r2 + 14302 0190 4FD0 beq .L1102 +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14303 .loc 1 2522 5 is_stmt 1 view .LVU4236 + 14304 0192 1A68 ldr r2, [r3] + 14305 0194 42F00102 orr r2, r2, #1 + 14306 0198 1A60 str r2, [r3] +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14307 .loc 1 2526 10 is_stmt 0 view .LVU4237 + 14308 019a 4046 mov r0, r8 + 14309 019c 5AE0 b .L1083 + 14310 .LVL1074: + 14311 .L1100: +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14312 .loc 1 2446 7 is_stmt 1 view .LVU4238 +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14313 .loc 1 2446 17 is_stmt 0 view .LVU4239 + 14314 019e AB6A ldr r3, [r5, #40] +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14315 .loc 1 2446 52 view .LVU4240 + 14316 01a0 334A ldr r2, .L1120 + 14317 01a2 DA62 str r2, [r3, #44] +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14318 .loc 1 2447 7 is_stmt 1 view .LVU4241 +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14319 .loc 1 2447 17 is_stmt 0 view .LVU4242 + 14320 01a4 AB6A ldr r3, [r5, #40] +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14321 .loc 1 2447 56 view .LVU4243 + 14322 01a6 334A ldr r2, .L1120+4 + 14323 01a8 1A63 str r2, [r3, #48] +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 456 + + + 14324 .loc 1 2450 7 is_stmt 1 view .LVU4244 +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14325 .loc 1 2450 17 is_stmt 0 view .LVU4245 + 14326 01aa AB6A ldr r3, [r5, #40] +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14327 .loc 1 2450 53 view .LVU4246 + 14328 01ac 324A ldr r2, .L1120+8 + 14329 01ae 5A63 str r2, [r3, #52] +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14330 .loc 1 2453 7 is_stmt 1 view .LVU4247 +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14331 .loc 1 2453 71 is_stmt 0 view .LVU4248 + 14332 01b0 2968 ldr r1, [r5] +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14333 .loc 1 2453 11 view .LVU4249 + 14334 01b2 3B46 mov r3, r7 + 14335 01b4 3246 mov r2, r6 + 14336 01b6 3831 adds r1, r1, #56 + 14337 01b8 A86A ldr r0, [r5, #40] + 14338 01ba FFF7FEFF bl HAL_DMA_Start_IT + 14339 .LVL1075: +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14340 .loc 1 2453 10 view .LVU4250 + 14341 01be 0028 cmp r0, #0 + 14342 01c0 4CD1 bne .L1108 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14343 .loc 1 2460 7 is_stmt 1 view .LVU4251 + 14344 01c2 2A68 ldr r2, [r5] + 14345 01c4 D368 ldr r3, [r2, #12] + 14346 01c6 43F48063 orr r3, r3, #1024 + 14347 01ca D360 str r3, [r2, #12] +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14348 .loc 1 2461 7 view .LVU4252 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 14349 .loc 1 2383 21 is_stmt 0 view .LVU4253 + 14350 01cc 8046 mov r8, r0 + 14351 .LVL1076: +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14352 .loc 1 2461 7 view .LVU4254 + 14353 01ce C9E7 b .L1096 + 14354 .LVL1077: + 14355 .L1099: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14356 .loc 1 2467 7 is_stmt 1 view .LVU4255 +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14357 .loc 1 2467 17 is_stmt 0 view .LVU4256 + 14358 01d0 EB6A ldr r3, [r5, #44] +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14359 .loc 1 2467 52 view .LVU4257 + 14360 01d2 274A ldr r2, .L1120 + 14361 01d4 DA62 str r2, [r3, #44] +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14362 .loc 1 2468 7 is_stmt 1 view .LVU4258 +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14363 .loc 1 2468 17 is_stmt 0 view .LVU4259 + 14364 01d6 EB6A ldr r3, [r5, #44] +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 457 + + + 14365 .loc 1 2468 56 view .LVU4260 + 14366 01d8 264A ldr r2, .L1120+4 + 14367 01da 1A63 str r2, [r3, #48] +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14368 .loc 1 2471 7 is_stmt 1 view .LVU4261 +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14369 .loc 1 2471 17 is_stmt 0 view .LVU4262 + 14370 01dc EB6A ldr r3, [r5, #44] +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14371 .loc 1 2471 53 view .LVU4263 + 14372 01de 264A ldr r2, .L1120+8 + 14373 01e0 5A63 str r2, [r3, #52] +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14374 .loc 1 2474 7 is_stmt 1 view .LVU4264 +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14375 .loc 1 2474 71 is_stmt 0 view .LVU4265 + 14376 01e2 2968 ldr r1, [r5] +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14377 .loc 1 2474 11 view .LVU4266 + 14378 01e4 3B46 mov r3, r7 + 14379 01e6 3246 mov r2, r6 + 14380 01e8 3C31 adds r1, r1, #60 + 14381 01ea E86A ldr r0, [r5, #44] + 14382 01ec FFF7FEFF bl HAL_DMA_Start_IT + 14383 .LVL1078: +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14384 .loc 1 2474 10 view .LVU4267 + 14385 01f0 0028 cmp r0, #0 + 14386 01f2 35D1 bne .L1109 +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14387 .loc 1 2481 7 is_stmt 1 view .LVU4268 + 14388 01f4 2A68 ldr r2, [r5] + 14389 01f6 D368 ldr r3, [r2, #12] + 14390 01f8 43F40063 orr r3, r3, #2048 + 14391 01fc D360 str r3, [r2, #12] +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14392 .loc 1 2482 7 view .LVU4269 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 14393 .loc 1 2383 21 is_stmt 0 view .LVU4270 + 14394 01fe 8046 mov r8, r0 + 14395 .LVL1079: +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14396 .loc 1 2482 7 view .LVU4271 + 14397 0200 B0E7 b .L1096 + 14398 .LVL1080: + 14399 .L1097: +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14400 .loc 1 2488 7 is_stmt 1 view .LVU4272 +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14401 .loc 1 2488 17 is_stmt 0 view .LVU4273 + 14402 0202 2B6B ldr r3, [r5, #48] +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 14403 .loc 1 2488 52 view .LVU4274 + 14404 0204 1A4A ldr r2, .L1120 + 14405 0206 DA62 str r2, [r3, #44] +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14406 .loc 1 2489 7 is_stmt 1 view .LVU4275 + ARM GAS /tmp/cc0wMqvE.s page 458 + + +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14407 .loc 1 2489 17 is_stmt 0 view .LVU4276 + 14408 0208 2B6B ldr r3, [r5, #48] +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14409 .loc 1 2489 56 view .LVU4277 + 14410 020a 1A4A ldr r2, .L1120+4 + 14411 020c 1A63 str r2, [r3, #48] +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14412 .loc 1 2492 7 is_stmt 1 view .LVU4278 +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14413 .loc 1 2492 17 is_stmt 0 view .LVU4279 + 14414 020e 2B6B ldr r3, [r5, #48] +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14415 .loc 1 2492 53 view .LVU4280 + 14416 0210 194A ldr r2, .L1120+8 + 14417 0212 5A63 str r2, [r3, #52] +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14418 .loc 1 2495 7 is_stmt 1 view .LVU4281 +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14419 .loc 1 2495 71 is_stmt 0 view .LVU4282 + 14420 0214 2968 ldr r1, [r5] +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14421 .loc 1 2495 11 view .LVU4283 + 14422 0216 3B46 mov r3, r7 + 14423 0218 3246 mov r2, r6 + 14424 021a 4031 adds r1, r1, #64 + 14425 021c 286B ldr r0, [r5, #48] + 14426 021e FFF7FEFF bl HAL_DMA_Start_IT + 14427 .LVL1081: +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 14428 .loc 1 2495 10 view .LVU4284 + 14429 0222 F8B9 cbnz r0, .L1110 +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14430 .loc 1 2502 7 is_stmt 1 view .LVU4285 + 14431 0224 2A68 ldr r2, [r5] + 14432 0226 D368 ldr r3, [r2, #12] + 14433 0228 43F48053 orr r3, r3, #4096 + 14434 022c D360 str r3, [r2, #12] +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14435 .loc 1 2503 7 view .LVU4286 +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** uint32_t tmpsmcr; + 14436 .loc 1 2383 21 is_stmt 0 view .LVU4287 + 14437 022e 8046 mov r8, r0 + 14438 .LVL1082: +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14439 .loc 1 2503 7 view .LVU4288 + 14440 0230 98E7 b .L1096 + 14441 .LVL1083: + 14442 .L1102: +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 14443 .loc 1 2514 5 is_stmt 1 view .LVU4289 +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 14444 .loc 1 2514 29 is_stmt 0 view .LVU4290 + 14445 0232 9968 ldr r1, [r3, #8] +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 14446 .loc 1 2514 13 view .LVU4291 + 14447 0234 124A ldr r2, .L1120+16 + ARM GAS /tmp/cc0wMqvE.s page 459 + + + 14448 0236 0A40 ands r2, r2, r1 + 14449 .LVL1084: +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14450 .loc 1 2515 5 is_stmt 1 view .LVU4292 +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14451 .loc 1 2515 8 is_stmt 0 view .LVU4293 + 14452 0238 062A cmp r2, #6 + 14453 023a 15D0 beq .L1111 +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14454 .loc 1 2515 9 discriminator 1 view .LVU4294 + 14455 023c B2F5803F cmp r2, #65536 + 14456 0240 14D0 beq .L1112 +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14457 .loc 1 2517 7 is_stmt 1 view .LVU4295 + 14458 0242 1A68 ldr r2, [r3] + 14459 .LVL1085: +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14460 .loc 1 2517 7 is_stmt 0 view .LVU4296 + 14461 0244 42F00102 orr r2, r2, #1 + 14462 0248 1A60 str r2, [r3] +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14463 .loc 1 2526 10 view .LVU4297 + 14464 024a 4046 mov r0, r8 + 14465 024c 02E0 b .L1083 + 14466 .LVL1086: + 14467 .L1104: +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14468 .loc 1 2397 12 view .LVU4298 + 14469 024e 4046 mov r0, r8 + 14470 .LVL1087: +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14471 .loc 1 2397 12 view .LVU4299 + 14472 0250 00E0 b .L1083 + 14473 .LVL1088: + 14474 .L1105: +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14475 .loc 1 2414 12 view .LVU4300 + 14476 0252 0120 movs r0, #1 + 14477 .LVL1089: + 14478 .L1083: +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14479 .loc 1 2527 1 view .LVU4301 + 14480 0254 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 14481 .LVL1090: + 14482 .L1107: +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14483 .loc 1 2436 16 view .LVU4302 + 14484 0258 4046 mov r0, r8 + 14485 025a FBE7 b .L1083 + 14486 .L1108: +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14487 .loc 1 2457 16 view .LVU4303 + 14488 025c 4046 mov r0, r8 + 14489 025e F9E7 b .L1083 + 14490 .L1109: +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14491 .loc 1 2478 16 view .LVU4304 + ARM GAS /tmp/cc0wMqvE.s page 460 + + + 14492 0260 4046 mov r0, r8 + 14493 0262 F7E7 b .L1083 + 14494 .L1110: +2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14495 .loc 1 2499 16 view .LVU4305 + 14496 0264 4046 mov r0, r8 + 14497 0266 F5E7 b .L1083 + 14498 .LVL1091: + 14499 .L1111: +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14500 .loc 1 2526 10 view .LVU4306 + 14501 0268 4046 mov r0, r8 + 14502 026a F3E7 b .L1083 + 14503 .L1112: + 14504 026c 4046 mov r0, r8 + 14505 026e F1E7 b .L1083 + 14506 .L1121: + 14507 .align 2 + 14508 .L1120: + 14509 0270 00000000 .word TIM_DMACaptureCplt + 14510 0274 00000000 .word TIM_DMACaptureHalfCplt + 14511 0278 00000000 .word TIM_DMAError + 14512 027c 002C0140 .word 1073818624 + 14513 0280 07000100 .word 65543 + 14514 .cfi_endproc + 14515 .LFE367: + 14517 .section .text.HAL_TIM_IC_Stop_DMA,"ax",%progbits + 14518 .align 1 + 14519 .global HAL_TIM_IC_Stop_DMA + 14520 .syntax unified + 14521 .thumb + 14522 .thumb_func + 14524 HAL_TIM_IC_Stop_DMA: + 14525 .LVL1092: + 14526 .LFB368: +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 14527 .loc 1 2541 1 is_stmt 1 view -0 + 14528 .cfi_startproc + 14529 @ args = 0, pretend = 0, frame = 0 + 14530 @ frame_needed = 0, uses_anonymous_args = 0 +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_StatusTypeDef status = HAL_OK; + 14531 .loc 1 2541 1 is_stmt 0 view .LVU4308 + 14532 0000 38B5 push {r3, r4, r5, lr} + 14533 .LCFI102: + 14534 .cfi_def_cfa_offset 16 + 14535 .cfi_offset 3, -16 + 14536 .cfi_offset 4, -12 + 14537 .cfi_offset 5, -8 + 14538 .cfi_offset 14, -4 + 14539 0002 0446 mov r4, r0 + 14540 0004 0D46 mov r5, r1 +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14541 .loc 1 2542 3 is_stmt 1 view .LVU4309 + 14542 .LVL1093: +2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance)); + 14543 .loc 1 2545 3 view .LVU4310 +2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 461 + + + 14544 .loc 1 2546 3 view .LVU4311 +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14545 .loc 1 2549 3 view .LVU4312 + 14546 0006 0022 movs r2, #0 + 14547 0008 0068 ldr r0, [r0] + 14548 .LVL1094: +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14549 .loc 1 2549 3 is_stmt 0 view .LVU4313 + 14550 000a FFF7FEFF bl TIM_CCxChannelCmd + 14551 .LVL1095: +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14552 .loc 1 2551 3 is_stmt 1 view .LVU4314 + 14553 000e 0C2D cmp r5, #12 + 14554 0010 74D8 bhi .L1141 + 14555 0012 DFE805F0 tbb [pc, r5] + 14556 .L1125: + 14557 0016 07 .byte (.L1128-.L1125)/2 + 14558 0017 73 .byte (.L1141-.L1125)/2 + 14559 0018 73 .byte (.L1141-.L1125)/2 + 14560 0019 73 .byte (.L1141-.L1125)/2 + 14561 001a 26 .byte (.L1127-.L1125)/2 + 14562 001b 73 .byte (.L1141-.L1125)/2 + 14563 001c 73 .byte (.L1141-.L1125)/2 + 14564 001d 73 .byte (.L1141-.L1125)/2 + 14565 001e 2F .byte (.L1126-.L1125)/2 + 14566 001f 73 .byte (.L1141-.L1125)/2 + 14567 0020 73 .byte (.L1141-.L1125)/2 + 14568 0021 73 .byte (.L1141-.L1125)/2 + 14569 0022 38 .byte (.L1124-.L1125)/2 + 14570 0023 00 .p2align 1 + 14571 .L1128: +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 14572 .loc 1 2556 7 view .LVU4315 + 14573 0024 2268 ldr r2, [r4] + 14574 0026 D368 ldr r3, [r2, #12] + 14575 0028 23F40073 bic r3, r3, #512 + 14576 002c D360 str r3, [r2, #12] +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14577 .loc 1 2557 7 view .LVU4316 +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14578 .loc 1 2557 13 is_stmt 0 view .LVU4317 + 14579 002e 606A ldr r0, [r4, #36] + 14580 0030 FFF7FEFF bl HAL_DMA_Abort_IT + 14581 .LVL1096: +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14582 .loc 1 2558 7 is_stmt 1 view .LVU4318 +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14583 .loc 1 2590 3 view .LVU4319 + 14584 .L1129: +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14585 .loc 1 2593 5 view .LVU4320 +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14586 .loc 1 2593 5 view .LVU4321 + 14587 0034 2368 ldr r3, [r4] + 14588 0036 196A ldr r1, [r3, #32] + 14589 0038 41F21112 movw r2, #4369 + 14590 003c 1142 tst r1, r2 + ARM GAS /tmp/cc0wMqvE.s page 462 + + + 14591 003e 08D1 bne .L1130 +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14592 .loc 1 2593 5 discriminator 1 view .LVU4322 + 14593 0040 196A ldr r1, [r3, #32] + 14594 0042 44F24442 movw r2, #17476 + 14595 0046 1142 tst r1, r2 + 14596 0048 03D1 bne .L1130 +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14597 .loc 1 2593 5 discriminator 3 view .LVU4323 + 14598 004a 1A68 ldr r2, [r3] + 14599 004c 22F00102 bic r2, r2, #1 + 14600 0050 1A60 str r2, [r3] + 14601 .L1130: +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14602 .loc 1 2593 5 discriminator 5 view .LVU4324 +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14603 .loc 1 2596 5 discriminator 5 view .LVU4325 + 14604 0052 0DBB cbnz r5, .L1131 +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14605 .loc 1 2596 5 is_stmt 0 view .LVU4326 + 14606 0054 0123 movs r3, #1 + 14607 0056 84F83E30 strb r3, [r4, #62] +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14608 .loc 1 2597 5 is_stmt 1 view .LVU4327 + 14609 005a 84F84430 strb r3, [r4, #68] + 14610 005e 0020 movs r0, #0 + 14611 0060 4DE0 b .L1123 + 14612 .L1127: +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 14613 .loc 1 2564 7 view .LVU4328 + 14614 0062 2268 ldr r2, [r4] + 14615 0064 D368 ldr r3, [r2, #12] + 14616 0066 23F48063 bic r3, r3, #1024 + 14617 006a D360 str r3, [r2, #12] +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14618 .loc 1 2565 7 view .LVU4329 +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14619 .loc 1 2565 13 is_stmt 0 view .LVU4330 + 14620 006c A06A ldr r0, [r4, #40] + 14621 006e FFF7FEFF bl HAL_DMA_Abort_IT + 14622 .LVL1097: +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14623 .loc 1 2566 7 is_stmt 1 view .LVU4331 +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14624 .loc 1 2590 3 view .LVU4332 + 14625 0072 DFE7 b .L1129 + 14626 .L1126: +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + 14627 .loc 1 2572 7 view .LVU4333 + 14628 0074 2268 ldr r2, [r4] + 14629 0076 D368 ldr r3, [r2, #12] + 14630 0078 23F40063 bic r3, r3, #2048 + 14631 007c D360 str r3, [r2, #12] +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14632 .loc 1 2573 7 view .LVU4334 +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14633 .loc 1 2573 13 is_stmt 0 view .LVU4335 + ARM GAS /tmp/cc0wMqvE.s page 463 + + + 14634 007e E06A ldr r0, [r4, #44] + 14635 0080 FFF7FEFF bl HAL_DMA_Abort_IT + 14636 .LVL1098: +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14637 .loc 1 2574 7 is_stmt 1 view .LVU4336 +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14638 .loc 1 2590 3 view .LVU4337 + 14639 0084 D6E7 b .L1129 + 14640 .L1124: +2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + 14641 .loc 1 2580 7 view .LVU4338 + 14642 0086 2268 ldr r2, [r4] + 14643 0088 D368 ldr r3, [r2, #12] + 14644 008a 23F48053 bic r3, r3, #4096 + 14645 008e D360 str r3, [r2, #12] +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14646 .loc 1 2581 7 view .LVU4339 +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 14647 .loc 1 2581 13 is_stmt 0 view .LVU4340 + 14648 0090 206B ldr r0, [r4, #48] + 14649 0092 FFF7FEFF bl HAL_DMA_Abort_IT + 14650 .LVL1099: +2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14651 .loc 1 2582 7 is_stmt 1 view .LVU4341 +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14652 .loc 1 2590 3 view .LVU4342 + 14653 0096 CDE7 b .L1129 + 14654 .L1131: +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14655 .loc 1 2590 3 is_stmt 0 view .LVU4343 + 14656 0098 2B1F subs r3, r5, #4 + 14657 009a 0C2B cmp r3, #12 + 14658 009c 20D8 bhi .L1132 + 14659 009e DFE803F0 tbb [pc, r3] + 14660 .L1134: + 14661 00a2 07 .byte (.L1137-.L1134)/2 + 14662 00a3 1F .byte (.L1132-.L1134)/2 + 14663 00a4 1F .byte (.L1132-.L1134)/2 + 14664 00a5 1F .byte (.L1132-.L1134)/2 + 14665 00a6 13 .byte (.L1136-.L1134)/2 + 14666 00a7 1F .byte (.L1132-.L1134)/2 + 14667 00a8 1F .byte (.L1132-.L1134)/2 + 14668 00a9 1F .byte (.L1132-.L1134)/2 + 14669 00aa 17 .byte (.L1135-.L1134)/2 + 14670 00ab 1F .byte (.L1132-.L1134)/2 + 14671 00ac 1F .byte (.L1132-.L1134)/2 + 14672 00ad 1F .byte (.L1132-.L1134)/2 + 14673 00ae 1B .byte (.L1133-.L1134)/2 + 14674 00af 00 .p2align 1 + 14675 .L1137: +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14676 .loc 1 2596 5 view .LVU4344 + 14677 00b0 0123 movs r3, #1 + 14678 00b2 84F83F30 strb r3, [r4, #63] +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14679 .loc 1 2597 5 is_stmt 1 view .LVU4345 + 14680 .L1138: + ARM GAS /tmp/cc0wMqvE.s page 464 + + +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14681 .loc 1 2597 5 is_stmt 0 discriminator 2 view .LVU4346 + 14682 00b6 042D cmp r5, #4 + 14683 00b8 16D0 beq .L1143 +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14684 .loc 1 2597 5 discriminator 4 view .LVU4347 + 14685 00ba 082D cmp r5, #8 + 14686 00bc 19D0 beq .L1144 +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14687 .loc 1 2597 5 discriminator 7 view .LVU4348 + 14688 00be 0123 movs r3, #1 + 14689 00c0 84F84730 strb r3, [r4, #71] + 14690 00c4 0020 movs r0, #0 + 14691 00c6 1AE0 b .L1123 + 14692 .L1136: +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14693 .loc 1 2596 5 view .LVU4349 + 14694 00c8 0123 movs r3, #1 + 14695 00ca 84F84030 strb r3, [r4, #64] +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14696 .loc 1 2597 5 is_stmt 1 view .LVU4350 + 14697 00ce F2E7 b .L1138 + 14698 .L1135: +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14699 .loc 1 2596 5 is_stmt 0 view .LVU4351 + 14700 00d0 0123 movs r3, #1 + 14701 00d2 84F84130 strb r3, [r4, #65] +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14702 .loc 1 2597 5 is_stmt 1 view .LVU4352 + 14703 00d6 EEE7 b .L1138 + 14704 .L1133: +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14705 .loc 1 2596 5 is_stmt 0 view .LVU4353 + 14706 00d8 0123 movs r3, #1 + 14707 00da 84F84230 strb r3, [r4, #66] +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14708 .loc 1 2597 5 is_stmt 1 view .LVU4354 + 14709 00de EAE7 b .L1138 + 14710 .L1132: +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 14711 .loc 1 2596 5 is_stmt 0 discriminator 13 view .LVU4355 + 14712 00e0 0123 movs r3, #1 + 14713 00e2 84F84330 strb r3, [r4, #67] +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14714 .loc 1 2597 5 is_stmt 1 discriminator 13 view .LVU4356 + 14715 00e6 E6E7 b .L1138 + 14716 .L1143: +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14717 .loc 1 2597 5 is_stmt 0 discriminator 3 view .LVU4357 + 14718 00e8 0123 movs r3, #1 + 14719 00ea 84F84530 strb r3, [r4, #69] + 14720 00ee 0020 movs r0, #0 + 14721 00f0 05E0 b .L1123 + 14722 .L1144: +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14723 .loc 1 2597 5 discriminator 6 view .LVU4358 + 14724 00f2 0123 movs r3, #1 + ARM GAS /tmp/cc0wMqvE.s page 465 + + + 14725 00f4 84F84630 strb r3, [r4, #70] + 14726 00f8 0020 movs r0, #0 + 14727 00fa 00E0 b .L1123 + 14728 .L1141: +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14729 .loc 1 2551 3 view .LVU4359 + 14730 00fc 0120 movs r0, #1 + 14731 .L1123: + 14732 .LVL1100: +2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14733 .loc 1 2601 3 is_stmt 1 view .LVU4360 +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 14734 .loc 1 2602 1 is_stmt 0 view .LVU4361 + 14735 00fe 38BD pop {r3, r4, r5, pc} +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /** + 14736 .loc 1 2602 1 view .LVU4362 + 14737 .cfi_endproc + 14738 .LFE368: + 14740 .section .text.HAL_TIM_OnePulse_Start,"ax",%progbits + 14741 .align 1 + 14742 .global HAL_TIM_OnePulse_Start + 14743 .syntax unified + 14744 .thumb + 14745 .thumb_func + 14747 HAL_TIM_OnePulse_Start: + 14748 .LVL1101: + 14749 .LFB373: +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 14750 .loc 1 2794 1 is_stmt 1 view -0 + 14751 .cfi_startproc + 14752 @ args = 0, pretend = 0, frame = 0 + 14753 @ frame_needed = 0, uses_anonymous_args = 0 +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 14754 .loc 1 2794 1 is_stmt 0 view .LVU4364 + 14755 0000 10B5 push {r4, lr} + 14756 .LCFI103: + 14757 .cfi_def_cfa_offset 8 + 14758 .cfi_offset 4, -8 + 14759 .cfi_offset 14, -4 + 14760 0002 0446 mov r4, r0 +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 14761 .loc 1 2795 3 is_stmt 1 view .LVU4365 +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 14762 .loc 1 2795 31 is_stmt 0 view .LVU4366 + 14763 0004 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 14764 .LVL1102: +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 14765 .loc 1 2795 31 view .LVU4367 + 14766 0008 C0B2 uxtb r0, r0 + 14767 .LVL1103: +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 14768 .loc 1 2796 3 is_stmt 1 view .LVU4368 +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 14769 .loc 1 2796 31 is_stmt 0 view .LVU4369 + 14770 000a 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 14771 .LVL1104: +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + ARM GAS /tmp/cc0wMqvE.s page 466 + + + 14772 .loc 1 2797 3 is_stmt 1 view .LVU4370 +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 14773 .loc 1 2797 31 is_stmt 0 view .LVU4371 + 14774 000e 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 14775 .LVL1105: +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14776 .loc 1 2798 3 is_stmt 1 view .LVU4372 +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14777 .loc 1 2798 31 is_stmt 0 view .LVU4373 + 14778 0012 94F84510 ldrb r1, [r4, #69] @ zero_extendqisi2 + 14779 .LVL1106: +2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14780 .loc 1 2801 3 is_stmt 1 view .LVU4374 +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 14781 .loc 1 2804 3 view .LVU4375 +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 14782 .loc 1 2804 6 is_stmt 0 view .LVU4376 + 14783 0016 0128 cmp r0, #1 + 14784 0018 38D1 bne .L1148 + 14785 001a DBB2 uxtb r3, r3 +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 14786 .loc 1 2804 6 view .LVU4377 + 14787 001c D2B2 uxtb r2, r2 +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 14788 .loc 1 2804 6 view .LVU4378 + 14789 001e C9B2 uxtb r1, r1 +2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 14790 .loc 1 2805 7 view .LVU4379 + 14791 0020 012B cmp r3, #1 + 14792 0022 34D1 bne .L1146 +2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 14793 .loc 1 2806 7 view .LVU4380 + 14794 0024 012A cmp r2, #1 + 14795 0026 33D1 bne .L1149 +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14796 .loc 1 2807 7 view .LVU4381 + 14797 0028 0129 cmp r1, #1 + 14798 002a 01D0 beq .L1153 +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14799 .loc 1 2809 12 view .LVU4382 + 14800 002c 1046 mov r0, r2 + 14801 .LVL1107: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14802 .loc 1 2809 12 view .LVU4383 + 14803 002e 2EE0 b .L1146 + 14804 .LVL1108: + 14805 .L1153: +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 14806 .loc 1 2813 3 is_stmt 1 view .LVU4384 + 14807 0030 0223 movs r3, #2 + 14808 .LVL1109: +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 14809 .loc 1 2813 3 is_stmt 0 view .LVU4385 + 14810 0032 84F83E30 strb r3, [r4, #62] +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 14811 .loc 1 2814 3 is_stmt 1 view .LVU4386 + 14812 0036 84F83F30 strb r3, [r4, #63] + ARM GAS /tmp/cc0wMqvE.s page 467 + + +2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 14813 .loc 1 2815 3 view .LVU4387 + 14814 003a 84F84430 strb r3, [r4, #68] +2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14815 .loc 1 2816 3 view .LVU4388 + 14816 003e 84F84530 strb r3, [r4, #69] +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 14817 .loc 1 2827 3 view .LVU4389 + 14818 0042 0021 movs r1, #0 + 14819 .LVL1110: +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 14820 .loc 1 2827 3 is_stmt 0 view .LVU4390 + 14821 0044 2068 ldr r0, [r4] + 14822 .LVL1111: +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 14823 .loc 1 2827 3 view .LVU4391 + 14824 0046 FFF7FEFF bl TIM_CCxChannelCmd + 14825 .LVL1112: +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14826 .loc 1 2828 3 is_stmt 1 view .LVU4392 + 14827 004a 0122 movs r2, #1 + 14828 004c 0421 movs r1, #4 + 14829 004e 2068 ldr r0, [r4] + 14830 0050 FFF7FEFF bl TIM_CCxChannelCmd + 14831 .LVL1113: +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14832 .loc 1 2830 3 view .LVU4393 +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14833 .loc 1 2830 7 is_stmt 0 view .LVU4394 + 14834 0054 2368 ldr r3, [r4] + 14835 0056 0F4A ldr r2, .L1154 + 14836 0058 9342 cmp r3, r2 + 14837 005a 11D0 beq .L1147 +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14838 .loc 1 2830 7 discriminator 2 view .LVU4395 + 14839 005c 02F50062 add r2, r2, #2048 + 14840 0060 9342 cmp r3, r2 + 14841 0062 0DD0 beq .L1147 +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14842 .loc 1 2830 7 discriminator 4 view .LVU4396 + 14843 0064 02F54062 add r2, r2, #3072 + 14844 0068 9342 cmp r3, r2 + 14845 006a 09D0 beq .L1147 +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14846 .loc 1 2830 7 discriminator 6 view .LVU4397 + 14847 006c 02F58062 add r2, r2, #1024 + 14848 0070 9342 cmp r3, r2 + 14849 0072 05D0 beq .L1147 +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14850 .loc 1 2830 7 discriminator 8 view .LVU4398 + 14851 0074 02F58062 add r2, r2, #1024 + 14852 0078 9342 cmp r3, r2 + 14853 007a 01D0 beq .L1147 +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14854 .loc 1 2837 10 view .LVU4399 + 14855 007c 0020 movs r0, #0 + 14856 007e 06E0 b .L1146 + ARM GAS /tmp/cc0wMqvE.s page 468 + + + 14857 .L1147: +2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14858 .loc 1 2833 5 is_stmt 1 view .LVU4400 + 14859 0080 5A6C ldr r2, [r3, #68] + 14860 0082 42F40042 orr r2, r2, #32768 + 14861 0086 5A64 str r2, [r3, #68] +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14862 .loc 1 2837 10 is_stmt 0 view .LVU4401 + 14863 0088 0020 movs r0, #0 + 14864 008a 00E0 b .L1146 + 14865 .LVL1114: + 14866 .L1148: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14867 .loc 1 2809 12 view .LVU4402 + 14868 008c 0120 movs r0, #1 + 14869 .LVL1115: + 14870 .L1146: +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14871 .loc 1 2838 1 view .LVU4403 + 14872 008e 10BD pop {r4, pc} + 14873 .LVL1116: + 14874 .L1149: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14875 .loc 1 2809 12 view .LVU4404 + 14876 0090 1846 mov r0, r3 + 14877 .LVL1117: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14878 .loc 1 2809 12 view .LVU4405 + 14879 0092 FCE7 b .L1146 + 14880 .L1155: + 14881 .align 2 + 14882 .L1154: + 14883 0094 002C0140 .word 1073818624 + 14884 .cfi_endproc + 14885 .LFE373: + 14887 .section .text.HAL_TIM_OnePulse_Stop,"ax",%progbits + 14888 .align 1 + 14889 .global HAL_TIM_OnePulse_Stop + 14890 .syntax unified + 14891 .thumb + 14892 .thumb_func + 14894 HAL_TIM_OnePulse_Stop: + 14895 .LVL1118: + 14896 .LFB374: +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 14897 .loc 1 2851 1 is_stmt 1 view -0 + 14898 .cfi_startproc + 14899 @ args = 0, pretend = 0, frame = 0 + 14900 @ frame_needed = 0, uses_anonymous_args = 0 +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 14901 .loc 1 2851 1 is_stmt 0 view .LVU4407 + 14902 0000 10B5 push {r4, lr} + 14903 .LCFI104: + 14904 .cfi_def_cfa_offset 8 + 14905 .cfi_offset 4, -8 + 14906 .cfi_offset 14, -4 + 14907 0002 0446 mov r4, r0 + ARM GAS /tmp/cc0wMqvE.s page 469 + + +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14908 .loc 1 2853 3 is_stmt 1 view .LVU4408 +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 14909 .loc 1 2861 3 view .LVU4409 + 14910 0004 0022 movs r2, #0 + 14911 0006 1146 mov r1, r2 + 14912 .LVL1119: +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 14913 .loc 1 2861 3 is_stmt 0 view .LVU4410 + 14914 0008 0068 ldr r0, [r0] + 14915 .LVL1120: +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 14916 .loc 1 2861 3 view .LVU4411 + 14917 000a FFF7FEFF bl TIM_CCxChannelCmd + 14918 .LVL1121: +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14919 .loc 1 2862 3 is_stmt 1 view .LVU4412 + 14920 000e 0022 movs r2, #0 + 14921 0010 0421 movs r1, #4 + 14922 0012 2068 ldr r0, [r4] + 14923 0014 FFF7FEFF bl TIM_CCxChannelCmd + 14924 .LVL1122: +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14925 .loc 1 2864 3 view .LVU4413 +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14926 .loc 1 2864 7 is_stmt 0 view .LVU4414 + 14927 0018 2368 ldr r3, [r4] + 14928 001a 1D4A ldr r2, .L1161 + 14929 001c 9342 cmp r3, r2 + 14930 001e 0FD0 beq .L1157 +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14931 .loc 1 2864 7 discriminator 2 view .LVU4415 + 14932 0020 02F50062 add r2, r2, #2048 + 14933 0024 9342 cmp r3, r2 + 14934 0026 0BD0 beq .L1157 +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14935 .loc 1 2864 7 discriminator 4 view .LVU4416 + 14936 0028 02F54062 add r2, r2, #3072 + 14937 002c 9342 cmp r3, r2 + 14938 002e 07D0 beq .L1157 +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14939 .loc 1 2864 7 discriminator 6 view .LVU4417 + 14940 0030 02F58062 add r2, r2, #1024 + 14941 0034 9342 cmp r3, r2 + 14942 0036 03D0 beq .L1157 +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 14943 .loc 1 2864 7 discriminator 8 view .LVU4418 + 14944 0038 02F58062 add r2, r2, #1024 + 14945 003c 9342 cmp r3, r2 + 14946 003e 0DD1 bne .L1158 + 14947 .L1157: +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14948 .loc 1 2867 5 is_stmt 1 view .LVU4419 +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14949 .loc 1 2867 5 view .LVU4420 + 14950 0040 196A ldr r1, [r3, #32] + 14951 0042 41F21112 movw r2, #4369 + ARM GAS /tmp/cc0wMqvE.s page 470 + + + 14952 0046 1142 tst r1, r2 + 14953 0048 08D1 bne .L1158 +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14954 .loc 1 2867 5 discriminator 1 view .LVU4421 + 14955 004a 196A ldr r1, [r3, #32] + 14956 004c 44F24442 movw r2, #17476 + 14957 0050 1142 tst r1, r2 + 14958 0052 03D1 bne .L1158 +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14959 .loc 1 2867 5 discriminator 3 view .LVU4422 + 14960 0054 5A6C ldr r2, [r3, #68] + 14961 0056 22F40042 bic r2, r2, #32768 + 14962 005a 5A64 str r2, [r3, #68] + 14963 .L1158: +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14964 .loc 1 2867 5 discriminator 5 view .LVU4423 +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14965 .loc 1 2871 3 discriminator 5 view .LVU4424 +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14966 .loc 1 2871 3 discriminator 5 view .LVU4425 + 14967 005c 2368 ldr r3, [r4] + 14968 005e 196A ldr r1, [r3, #32] + 14969 0060 41F21112 movw r2, #4369 + 14970 0064 1142 tst r1, r2 + 14971 0066 08D1 bne .L1159 +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14972 .loc 1 2871 3 discriminator 1 view .LVU4426 + 14973 0068 196A ldr r1, [r3, #32] + 14974 006a 44F24442 movw r2, #17476 + 14975 006e 1142 tst r1, r2 + 14976 0070 03D1 bne .L1159 +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14977 .loc 1 2871 3 discriminator 3 view .LVU4427 + 14978 0072 1A68 ldr r2, [r3] + 14979 0074 22F00102 bic r2, r2, #1 + 14980 0078 1A60 str r2, [r3] + 14981 .L1159: +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14982 .loc 1 2871 3 discriminator 5 view .LVU4428 +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 14983 .loc 1 2874 3 discriminator 5 view .LVU4429 + 14984 007a 0123 movs r3, #1 + 14985 007c 84F83E30 strb r3, [r4, #62] +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 14986 .loc 1 2875 3 discriminator 5 view .LVU4430 + 14987 0080 84F83F30 strb r3, [r4, #63] +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 14988 .loc 1 2876 3 discriminator 5 view .LVU4431 + 14989 0084 84F84430 strb r3, [r4, #68] +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14990 .loc 1 2877 3 discriminator 5 view .LVU4432 + 14991 0088 84F84530 strb r3, [r4, #69] +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 14992 .loc 1 2880 3 discriminator 5 view .LVU4433 +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14993 .loc 1 2881 1 is_stmt 0 discriminator 5 view .LVU4434 + 14994 008c 0020 movs r0, #0 + ARM GAS /tmp/cc0wMqvE.s page 471 + + + 14995 008e 10BD pop {r4, pc} + 14996 .LVL1123: + 14997 .L1162: +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 14998 .loc 1 2881 1 discriminator 5 view .LVU4435 + 14999 .align 2 + 15000 .L1161: + 15001 0090 002C0140 .word 1073818624 + 15002 .cfi_endproc + 15003 .LFE374: + 15005 .section .text.HAL_TIM_OnePulse_Start_IT,"ax",%progbits + 15006 .align 1 + 15007 .global HAL_TIM_OnePulse_Start_IT + 15008 .syntax unified + 15009 .thumb + 15010 .thumb_func + 15012 HAL_TIM_OnePulse_Start_IT: + 15013 .LVL1124: + 15014 .LFB375: +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 15015 .loc 1 2894 1 is_stmt 1 view -0 + 15016 .cfi_startproc + 15017 @ args = 0, pretend = 0, frame = 0 + 15018 @ frame_needed = 0, uses_anonymous_args = 0 +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 15019 .loc 1 2894 1 is_stmt 0 view .LVU4437 + 15020 0000 10B5 push {r4, lr} + 15021 .LCFI105: + 15022 .cfi_def_cfa_offset 8 + 15023 .cfi_offset 4, -8 + 15024 .cfi_offset 14, -4 + 15025 0002 0446 mov r4, r0 +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15026 .loc 1 2895 3 is_stmt 1 view .LVU4438 +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15027 .loc 1 2895 31 is_stmt 0 view .LVU4439 + 15028 0004 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 15029 .LVL1125: +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15030 .loc 1 2895 31 view .LVU4440 + 15031 0008 C0B2 uxtb r0, r0 + 15032 .LVL1126: +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15033 .loc 1 2896 3 is_stmt 1 view .LVU4441 +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15034 .loc 1 2896 31 is_stmt 0 view .LVU4442 + 15035 000a 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 15036 .LVL1127: +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15037 .loc 1 2897 3 is_stmt 1 view .LVU4443 +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15038 .loc 1 2897 31 is_stmt 0 view .LVU4444 + 15039 000e 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 15040 .LVL1128: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15041 .loc 1 2898 3 is_stmt 1 view .LVU4445 +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + ARM GAS /tmp/cc0wMqvE.s page 472 + + + 15042 .loc 1 2898 31 is_stmt 0 view .LVU4446 + 15043 0012 94F84510 ldrb r1, [r4, #69] @ zero_extendqisi2 + 15044 .LVL1129: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15045 .loc 1 2901 3 is_stmt 1 view .LVU4447 +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15046 .loc 1 2904 3 view .LVU4448 +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15047 .loc 1 2904 6 is_stmt 0 view .LVU4449 + 15048 0016 0128 cmp r0, #1 + 15049 0018 43D1 bne .L1166 + 15050 001a DBB2 uxtb r3, r3 +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15051 .loc 1 2904 6 view .LVU4450 + 15052 001c D2B2 uxtb r2, r2 +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15053 .loc 1 2904 6 view .LVU4451 + 15054 001e C9B2 uxtb r1, r1 +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 15055 .loc 1 2905 7 view .LVU4452 + 15056 0020 012B cmp r3, #1 + 15057 0022 3FD1 bne .L1164 +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15058 .loc 1 2906 7 view .LVU4453 + 15059 0024 012A cmp r2, #1 + 15060 0026 3ED1 bne .L1167 +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15061 .loc 1 2907 7 view .LVU4454 + 15062 0028 0129 cmp r1, #1 + 15063 002a 01D0 beq .L1171 +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15064 .loc 1 2909 12 view .LVU4455 + 15065 002c 1046 mov r0, r2 + 15066 .LVL1130: +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15067 .loc 1 2909 12 view .LVU4456 + 15068 002e 39E0 b .L1164 + 15069 .LVL1131: + 15070 .L1171: +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15071 .loc 1 2913 3 is_stmt 1 view .LVU4457 + 15072 0030 0223 movs r3, #2 + 15073 .LVL1132: +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15074 .loc 1 2913 3 is_stmt 0 view .LVU4458 + 15075 0032 84F83E30 strb r3, [r4, #62] +2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15076 .loc 1 2914 3 is_stmt 1 view .LVU4459 + 15077 0036 84F83F30 strb r3, [r4, #63] +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15078 .loc 1 2915 3 view .LVU4460 + 15079 003a 84F84430 strb r3, [r4, #68] +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15080 .loc 1 2916 3 view .LVU4461 + 15081 003e 84F84530 strb r3, [r4, #69] +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15082 .loc 1 2928 3 view .LVU4462 + ARM GAS /tmp/cc0wMqvE.s page 473 + + + 15083 0042 2268 ldr r2, [r4] + 15084 .LVL1133: +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15085 .loc 1 2928 3 is_stmt 0 view .LVU4463 + 15086 0044 D368 ldr r3, [r2, #12] + 15087 0046 43F00203 orr r3, r3, #2 + 15088 004a D360 str r3, [r2, #12] +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15089 .loc 1 2931 3 is_stmt 1 view .LVU4464 + 15090 004c 2268 ldr r2, [r4] + 15091 004e D368 ldr r3, [r2, #12] + 15092 0050 43F00403 orr r3, r3, #4 + 15093 0054 D360 str r3, [r2, #12] +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15094 .loc 1 2933 3 view .LVU4465 + 15095 0056 0122 movs r2, #1 + 15096 0058 0021 movs r1, #0 + 15097 .LVL1134: +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15098 .loc 1 2933 3 is_stmt 0 view .LVU4466 + 15099 005a 2068 ldr r0, [r4] + 15100 .LVL1135: +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15101 .loc 1 2933 3 view .LVU4467 + 15102 005c FFF7FEFF bl TIM_CCxChannelCmd + 15103 .LVL1136: +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15104 .loc 1 2934 3 is_stmt 1 view .LVU4468 + 15105 0060 0122 movs r2, #1 + 15106 0062 0421 movs r1, #4 + 15107 0064 2068 ldr r0, [r4] + 15108 0066 FFF7FEFF bl TIM_CCxChannelCmd + 15109 .LVL1137: +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15110 .loc 1 2936 3 view .LVU4469 +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15111 .loc 1 2936 7 is_stmt 0 view .LVU4470 + 15112 006a 2368 ldr r3, [r4] + 15113 006c 0F4A ldr r2, .L1172 + 15114 006e 9342 cmp r3, r2 + 15115 0070 11D0 beq .L1165 +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15116 .loc 1 2936 7 discriminator 2 view .LVU4471 + 15117 0072 02F50062 add r2, r2, #2048 + 15118 0076 9342 cmp r3, r2 + 15119 0078 0DD0 beq .L1165 +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15120 .loc 1 2936 7 discriminator 4 view .LVU4472 + 15121 007a 02F54062 add r2, r2, #3072 + 15122 007e 9342 cmp r3, r2 + 15123 0080 09D0 beq .L1165 +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15124 .loc 1 2936 7 discriminator 6 view .LVU4473 + 15125 0082 02F58062 add r2, r2, #1024 + 15126 0086 9342 cmp r3, r2 + 15127 0088 05D0 beq .L1165 +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 474 + + + 15128 .loc 1 2936 7 discriminator 8 view .LVU4474 + 15129 008a 02F58062 add r2, r2, #1024 + 15130 008e 9342 cmp r3, r2 + 15131 0090 01D0 beq .L1165 +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15132 .loc 1 2943 10 view .LVU4475 + 15133 0092 0020 movs r0, #0 + 15134 0094 06E0 b .L1164 + 15135 .L1165: +2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15136 .loc 1 2939 5 is_stmt 1 view .LVU4476 + 15137 0096 5A6C ldr r2, [r3, #68] + 15138 0098 42F40042 orr r2, r2, #32768 + 15139 009c 5A64 str r2, [r3, #68] +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15140 .loc 1 2943 10 is_stmt 0 view .LVU4477 + 15141 009e 0020 movs r0, #0 + 15142 00a0 00E0 b .L1164 + 15143 .LVL1138: + 15144 .L1166: +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15145 .loc 1 2909 12 view .LVU4478 + 15146 00a2 0120 movs r0, #1 + 15147 .LVL1139: + 15148 .L1164: +2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15149 .loc 1 2944 1 view .LVU4479 + 15150 00a4 10BD pop {r4, pc} + 15151 .LVL1140: + 15152 .L1167: +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15153 .loc 1 2909 12 view .LVU4480 + 15154 00a6 1846 mov r0, r3 + 15155 .LVL1141: +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15156 .loc 1 2909 12 view .LVU4481 + 15157 00a8 FCE7 b .L1164 + 15158 .L1173: + 15159 00aa 00BF .align 2 + 15160 .L1172: + 15161 00ac 002C0140 .word 1073818624 + 15162 .cfi_endproc + 15163 .LFE375: + 15165 .section .text.HAL_TIM_OnePulse_Stop_IT,"ax",%progbits + 15166 .align 1 + 15167 .global HAL_TIM_OnePulse_Stop_IT + 15168 .syntax unified + 15169 .thumb + 15170 .thumb_func + 15172 HAL_TIM_OnePulse_Stop_IT: + 15173 .LVL1142: + 15174 .LFB376: +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 15175 .loc 1 2957 1 is_stmt 1 view -0 + 15176 .cfi_startproc + 15177 @ args = 0, pretend = 0, frame = 0 + 15178 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cc0wMqvE.s page 475 + + +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Prevent unused argument(s) compilation warning */ + 15179 .loc 1 2957 1 is_stmt 0 view .LVU4483 + 15180 0000 10B5 push {r4, lr} + 15181 .LCFI106: + 15182 .cfi_def_cfa_offset 8 + 15183 .cfi_offset 4, -8 + 15184 .cfi_offset 14, -4 + 15185 0002 0446 mov r4, r0 +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15186 .loc 1 2959 3 is_stmt 1 view .LVU4484 +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15187 .loc 1 2962 3 view .LVU4485 + 15188 0004 0268 ldr r2, [r0] + 15189 0006 D368 ldr r3, [r2, #12] + 15190 0008 23F00203 bic r3, r3, #2 + 15191 000c D360 str r3, [r2, #12] +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15192 .loc 1 2965 3 view .LVU4486 + 15193 000e 0268 ldr r2, [r0] + 15194 0010 D368 ldr r3, [r2, #12] + 15195 0012 23F00403 bic r3, r3, #4 + 15196 0016 D360 str r3, [r2, #12] +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15197 .loc 1 2972 3 view .LVU4487 + 15198 0018 0022 movs r2, #0 + 15199 001a 1146 mov r1, r2 + 15200 .LVL1143: +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15201 .loc 1 2972 3 is_stmt 0 view .LVU4488 + 15202 001c 0068 ldr r0, [r0] + 15203 .LVL1144: +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15204 .loc 1 2972 3 view .LVU4489 + 15205 001e FFF7FEFF bl TIM_CCxChannelCmd + 15206 .LVL1145: +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15207 .loc 1 2973 3 is_stmt 1 view .LVU4490 + 15208 0022 0022 movs r2, #0 + 15209 0024 0421 movs r1, #4 + 15210 0026 2068 ldr r0, [r4] + 15211 0028 FFF7FEFF bl TIM_CCxChannelCmd + 15212 .LVL1146: +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15213 .loc 1 2975 3 view .LVU4491 +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15214 .loc 1 2975 7 is_stmt 0 view .LVU4492 + 15215 002c 2368 ldr r3, [r4] + 15216 002e 1D4A ldr r2, .L1179 + 15217 0030 9342 cmp r3, r2 + 15218 0032 0FD0 beq .L1175 +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15219 .loc 1 2975 7 discriminator 2 view .LVU4493 + 15220 0034 02F50062 add r2, r2, #2048 + 15221 0038 9342 cmp r3, r2 + 15222 003a 0BD0 beq .L1175 +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15223 .loc 1 2975 7 discriminator 4 view .LVU4494 + ARM GAS /tmp/cc0wMqvE.s page 476 + + + 15224 003c 02F54062 add r2, r2, #3072 + 15225 0040 9342 cmp r3, r2 + 15226 0042 07D0 beq .L1175 +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15227 .loc 1 2975 7 discriminator 6 view .LVU4495 + 15228 0044 02F58062 add r2, r2, #1024 + 15229 0048 9342 cmp r3, r2 + 15230 004a 03D0 beq .L1175 +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15231 .loc 1 2975 7 discriminator 8 view .LVU4496 + 15232 004c 02F58062 add r2, r2, #1024 + 15233 0050 9342 cmp r3, r2 + 15234 0052 0DD1 bne .L1176 + 15235 .L1175: +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15236 .loc 1 2978 5 is_stmt 1 view .LVU4497 +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15237 .loc 1 2978 5 view .LVU4498 + 15238 0054 196A ldr r1, [r3, #32] + 15239 0056 41F21112 movw r2, #4369 + 15240 005a 1142 tst r1, r2 + 15241 005c 08D1 bne .L1176 +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15242 .loc 1 2978 5 discriminator 1 view .LVU4499 + 15243 005e 196A ldr r1, [r3, #32] + 15244 0060 44F24442 movw r2, #17476 + 15245 0064 1142 tst r1, r2 + 15246 0066 03D1 bne .L1176 +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15247 .loc 1 2978 5 discriminator 3 view .LVU4500 + 15248 0068 5A6C ldr r2, [r3, #68] + 15249 006a 22F40042 bic r2, r2, #32768 + 15250 006e 5A64 str r2, [r3, #68] + 15251 .L1176: +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15252 .loc 1 2978 5 discriminator 5 view .LVU4501 +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15253 .loc 1 2982 3 discriminator 5 view .LVU4502 +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15254 .loc 1 2982 3 discriminator 5 view .LVU4503 + 15255 0070 2368 ldr r3, [r4] + 15256 0072 196A ldr r1, [r3, #32] + 15257 0074 41F21112 movw r2, #4369 + 15258 0078 1142 tst r1, r2 + 15259 007a 08D1 bne .L1177 +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15260 .loc 1 2982 3 discriminator 1 view .LVU4504 + 15261 007c 196A ldr r1, [r3, #32] + 15262 007e 44F24442 movw r2, #17476 + 15263 0082 1142 tst r1, r2 + 15264 0084 03D1 bne .L1177 +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15265 .loc 1 2982 3 discriminator 3 view .LVU4505 + 15266 0086 1A68 ldr r2, [r3] + 15267 0088 22F00102 bic r2, r2, #1 + 15268 008c 1A60 str r2, [r3] + 15269 .L1177: + ARM GAS /tmp/cc0wMqvE.s page 477 + + +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15270 .loc 1 2982 3 discriminator 5 view .LVU4506 +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 15271 .loc 1 2985 3 discriminator 5 view .LVU4507 + 15272 008e 0123 movs r3, #1 + 15273 0090 84F83E30 strb r3, [r4, #62] +2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 15274 .loc 1 2986 3 discriminator 5 view .LVU4508 + 15275 0094 84F83F30 strb r3, [r4, #63] +2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 15276 .loc 1 2987 3 discriminator 5 view .LVU4509 + 15277 0098 84F84430 strb r3, [r4, #68] +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15278 .loc 1 2988 3 discriminator 5 view .LVU4510 + 15279 009c 84F84530 strb r3, [r4, #69] +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15280 .loc 1 2991 3 discriminator 5 view .LVU4511 +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15281 .loc 1 2992 1 is_stmt 0 discriminator 5 view .LVU4512 + 15282 00a0 0020 movs r0, #0 + 15283 00a2 10BD pop {r4, pc} + 15284 .LVL1147: + 15285 .L1180: +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15286 .loc 1 2992 1 discriminator 5 view .LVU4513 + 15287 .align 2 + 15288 .L1179: + 15289 00a4 002C0140 .word 1073818624 + 15290 .cfi_endproc + 15291 .LFE376: + 15293 .section .text.HAL_TIM_Encoder_Start,"ax",%progbits + 15294 .align 1 + 15295 .global HAL_TIM_Encoder_Start + 15296 .syntax unified + 15297 .thumb + 15298 .thumb_func + 15300 HAL_TIM_Encoder_Start: + 15301 .LVL1148: + 15302 .LFB381: +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 15303 .loc 1 3230 1 is_stmt 1 view -0 + 15304 .cfi_startproc + 15305 @ args = 0, pretend = 0, frame = 0 + 15306 @ frame_needed = 0, uses_anonymous_args = 0 +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 15307 .loc 1 3230 1 is_stmt 0 view .LVU4515 + 15308 0000 38B5 push {r3, r4, r5, lr} + 15309 .LCFI107: + 15310 .cfi_def_cfa_offset 16 + 15311 .cfi_offset 3, -16 + 15312 .cfi_offset 4, -12 + 15313 .cfi_offset 5, -8 + 15314 .cfi_offset 14, -4 + 15315 0002 0446 mov r4, r0 +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15316 .loc 1 3231 3 is_stmt 1 view .LVU4516 +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + ARM GAS /tmp/cc0wMqvE.s page 478 + + + 15317 .loc 1 3231 31 is_stmt 0 view .LVU4517 + 15318 0004 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 15319 .LVL1149: +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15320 .loc 1 3231 31 view .LVU4518 + 15321 0008 C0B2 uxtb r0, r0 + 15322 .LVL1150: +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15323 .loc 1 3232 3 is_stmt 1 view .LVU4519 +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15324 .loc 1 3232 31 is_stmt 0 view .LVU4520 + 15325 000a 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 15326 .LVL1151: +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15327 .loc 1 3233 3 is_stmt 1 view .LVU4521 +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15328 .loc 1 3233 31 is_stmt 0 view .LVU4522 + 15329 000e 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 15330 0012 D2B2 uxtb r2, r2 + 15331 .LVL1152: +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15332 .loc 1 3234 3 is_stmt 1 view .LVU4523 +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15333 .loc 1 3234 31 is_stmt 0 view .LVU4524 + 15334 0014 94F845C0 ldrb ip, [r4, #69] @ zero_extendqisi2 + 15335 .LVL1153: +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15336 .loc 1 3237 3 is_stmt 1 view .LVU4525 +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15337 .loc 1 3240 3 view .LVU4526 +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15338 .loc 1 3240 6 is_stmt 0 view .LVU4527 + 15339 0018 0D46 mov r5, r1 + 15340 001a B1B9 cbnz r1, .L1182 +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) + 15341 .loc 1 3242 5 is_stmt 1 view .LVU4528 +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) + 15342 .loc 1 3242 8 is_stmt 0 view .LVU4529 + 15343 001c 0128 cmp r0, #1 + 15344 001e 49D1 bne .L1190 +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15345 .loc 1 3243 9 view .LVU4530 + 15346 0020 012A cmp r2, #1 + 15347 0022 48D1 bne .L1183 +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15348 .loc 1 3249 7 is_stmt 1 view .LVU4531 + 15349 0024 0223 movs r3, #2 + 15350 .LVL1154: +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15351 .loc 1 3249 7 is_stmt 0 view .LVU4532 + 15352 0026 84F83E30 strb r3, [r4, #62] +3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15353 .loc 1 3250 7 is_stmt 1 view .LVU4533 + 15354 002a 84F84430 strb r3, [r4, #68] + 15355 .LVL1155: + 15356 .L1184: +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 479 + + + 15357 .loc 1 3285 3 view .LVU4534 + 15358 002e 7DB3 cbz r5, .L1186 + 15359 0030 042D cmp r5, #4 + 15360 0032 39D0 beq .L1187 +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15361 .loc 1 3301 7 view .LVU4535 + 15362 0034 0122 movs r2, #1 + 15363 .LVL1156: +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15364 .loc 1 3301 7 is_stmt 0 view .LVU4536 + 15365 0036 0021 movs r1, #0 + 15366 .LVL1157: +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15367 .loc 1 3301 7 view .LVU4537 + 15368 0038 2068 ldr r0, [r4] + 15369 .LVL1158: +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15370 .loc 1 3301 7 view .LVU4538 + 15371 003a FFF7FEFF bl TIM_CCxChannelCmd + 15372 .LVL1159: +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15373 .loc 1 3302 7 is_stmt 1 view .LVU4539 + 15374 003e 0122 movs r2, #1 + 15375 0040 0421 movs r1, #4 + 15376 0042 2068 ldr r0, [r4] + 15377 0044 FFF7FEFF bl TIM_CCxChannelCmd + 15378 .LVL1160: +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15379 .loc 1 3303 7 view .LVU4540 + 15380 0048 27E0 b .L1189 + 15381 .LVL1161: + 15382 .L1182: +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15383 .loc 1 3303 7 is_stmt 0 view .LVU4541 + 15384 004a DBB2 uxtb r3, r3 +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15385 .loc 1 3303 7 view .LVU4542 + 15386 004c 5FFA8CFC uxtb ip, ip +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15387 .loc 1 3253 8 is_stmt 1 view .LVU4543 +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15388 .loc 1 3253 11 is_stmt 0 view .LVU4544 + 15389 0050 0429 cmp r1, #4 + 15390 0052 12D0 beq .L1198 +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15391 .loc 1 3268 5 is_stmt 1 view .LVU4545 +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15392 .loc 1 3268 8 is_stmt 0 view .LVU4546 + 15393 0054 0128 cmp r0, #1 + 15394 0056 33D1 bne .L1193 +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 15395 .loc 1 3269 9 view .LVU4547 + 15396 0058 012B cmp r3, #1 + 15397 005a 2CD1 bne .L1183 +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15398 .loc 1 3270 9 view .LVU4548 + 15399 005c 012A cmp r2, #1 + ARM GAS /tmp/cc0wMqvE.s page 480 + + + 15400 005e 31D1 bne .L1194 +3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15401 .loc 1 3271 9 view .LVU4549 + 15402 0060 BCF1010F cmp ip, #1 + 15403 0064 30D1 bne .L1195 +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15404 .loc 1 3277 7 is_stmt 1 view .LVU4550 + 15405 0066 0223 movs r3, #2 + 15406 .LVL1162: +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15407 .loc 1 3277 7 is_stmt 0 view .LVU4551 + 15408 0068 84F83E30 strb r3, [r4, #62] +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15409 .loc 1 3278 7 is_stmt 1 view .LVU4552 + 15410 006c 84F83F30 strb r3, [r4, #63] +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15411 .loc 1 3279 7 view .LVU4553 + 15412 0070 84F84430 strb r3, [r4, #68] +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15413 .loc 1 3280 7 view .LVU4554 + 15414 0074 84F84530 strb r3, [r4, #69] + 15415 0078 D9E7 b .L1184 + 15416 .LVL1163: + 15417 .L1198: +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15418 .loc 1 3255 5 view .LVU4555 +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15419 .loc 1 3255 8 is_stmt 0 view .LVU4556 + 15420 007a 012B cmp r3, #1 + 15421 007c 1CD1 bne .L1191 +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15422 .loc 1 3256 9 view .LVU4557 + 15423 007e BCF1010F cmp ip, #1 + 15424 0082 1BD1 bne .L1192 +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15425 .loc 1 3262 7 is_stmt 1 view .LVU4558 + 15426 0084 0223 movs r3, #2 + 15427 .LVL1164: +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15428 .loc 1 3262 7 is_stmt 0 view .LVU4559 + 15429 0086 84F83F30 strb r3, [r4, #63] +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15430 .loc 1 3263 7 is_stmt 1 view .LVU4560 + 15431 008a 84F84530 strb r3, [r4, #69] + 15432 008e CEE7 b .L1184 + 15433 .LVL1165: + 15434 .L1186: +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15435 .loc 1 3289 7 view .LVU4561 + 15436 0090 0122 movs r2, #1 + 15437 .LVL1166: +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15438 .loc 1 3289 7 is_stmt 0 view .LVU4562 + 15439 0092 0021 movs r1, #0 + 15440 .LVL1167: +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15441 .loc 1 3289 7 view .LVU4563 + ARM GAS /tmp/cc0wMqvE.s page 481 + + + 15442 0094 2068 ldr r0, [r4] + 15443 .LVL1168: +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15444 .loc 1 3289 7 view .LVU4564 + 15445 0096 FFF7FEFF bl TIM_CCxChannelCmd + 15446 .LVL1169: +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15447 .loc 1 3290 7 is_stmt 1 view .LVU4565 + 15448 .L1189: +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15449 .loc 1 3307 3 view .LVU4566 + 15450 009a 2268 ldr r2, [r4] + 15451 009c 1368 ldr r3, [r2] + 15452 009e 43F00103 orr r3, r3, #1 + 15453 00a2 1360 str r3, [r2] +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15454 .loc 1 3310 3 view .LVU4567 +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15455 .loc 1 3310 10 is_stmt 0 view .LVU4568 + 15456 00a4 0020 movs r0, #0 + 15457 00a6 06E0 b .L1183 + 15458 .LVL1170: + 15459 .L1187: +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15460 .loc 1 3295 7 is_stmt 1 view .LVU4569 + 15461 00a8 0122 movs r2, #1 + 15462 .LVL1171: +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15463 .loc 1 3295 7 is_stmt 0 view .LVU4570 + 15464 00aa 0421 movs r1, #4 + 15465 .LVL1172: +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15466 .loc 1 3295 7 view .LVU4571 + 15467 00ac 2068 ldr r0, [r4] + 15468 .LVL1173: +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15469 .loc 1 3295 7 view .LVU4572 + 15470 00ae FFF7FEFF bl TIM_CCxChannelCmd + 15471 .LVL1174: +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15472 .loc 1 3296 7 is_stmt 1 view .LVU4573 + 15473 00b2 F2E7 b .L1189 + 15474 .LVL1175: + 15475 .L1190: +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15476 .loc 1 3245 14 is_stmt 0 view .LVU4574 + 15477 00b4 0120 movs r0, #1 + 15478 .LVL1176: + 15479 .L1183: +3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15480 .loc 1 3311 1 view .LVU4575 + 15481 00b6 38BD pop {r3, r4, r5, pc} + 15482 .LVL1177: + 15483 .L1191: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15484 .loc 1 3258 14 view .LVU4576 + 15485 00b8 0120 movs r0, #1 + ARM GAS /tmp/cc0wMqvE.s page 482 + + + 15486 .LVL1178: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15487 .loc 1 3258 14 view .LVU4577 + 15488 00ba FCE7 b .L1183 + 15489 .LVL1179: + 15490 .L1192: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15491 .loc 1 3258 14 view .LVU4578 + 15492 00bc 1846 mov r0, r3 + 15493 .LVL1180: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15494 .loc 1 3258 14 view .LVU4579 + 15495 00be FAE7 b .L1183 + 15496 .LVL1181: + 15497 .L1193: +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15498 .loc 1 3273 14 view .LVU4580 + 15499 00c0 0120 movs r0, #1 + 15500 .LVL1182: +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15501 .loc 1 3273 14 view .LVU4581 + 15502 00c2 F8E7 b .L1183 + 15503 .LVL1183: + 15504 .L1194: +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15505 .loc 1 3273 14 view .LVU4582 + 15506 00c4 1846 mov r0, r3 + 15507 .LVL1184: +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15508 .loc 1 3273 14 view .LVU4583 + 15509 00c6 F6E7 b .L1183 + 15510 .LVL1185: + 15511 .L1195: +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15512 .loc 1 3273 14 view .LVU4584 + 15513 00c8 1046 mov r0, r2 + 15514 .LVL1186: +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15515 .loc 1 3273 14 view .LVU4585 + 15516 00ca F4E7 b .L1183 + 15517 .cfi_endproc + 15518 .LFE381: + 15520 .section .text.HAL_TIM_Encoder_Stop,"ax",%progbits + 15521 .align 1 + 15522 .global HAL_TIM_Encoder_Stop + 15523 .syntax unified + 15524 .thumb + 15525 .thumb_func + 15527 HAL_TIM_Encoder_Stop: + 15528 .LVL1187: + 15529 .LFB382: +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 15530 .loc 1 3324 1 is_stmt 1 view -0 + 15531 .cfi_startproc + 15532 @ args = 0, pretend = 0, frame = 0 + 15533 @ frame_needed = 0, uses_anonymous_args = 0 +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + ARM GAS /tmp/cc0wMqvE.s page 483 + + + 15534 .loc 1 3324 1 is_stmt 0 view .LVU4587 + 15535 0000 38B5 push {r3, r4, r5, lr} + 15536 .LCFI108: + 15537 .cfi_def_cfa_offset 16 + 15538 .cfi_offset 3, -16 + 15539 .cfi_offset 4, -12 + 15540 .cfi_offset 5, -8 + 15541 .cfi_offset 14, -4 + 15542 0002 0446 mov r4, r0 +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15543 .loc 1 3326 3 is_stmt 1 view .LVU4588 +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15544 .loc 1 3330 3 view .LVU4589 + 15545 0004 0D46 mov r5, r1 + 15546 0006 61B1 cbz r1, .L1200 + 15547 0008 0429 cmp r1, #4 + 15548 000a 2BD0 beq .L1201 +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15549 .loc 1 3346 7 view .LVU4590 + 15550 000c 0022 movs r2, #0 + 15551 000e 1146 mov r1, r2 + 15552 .LVL1188: +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15553 .loc 1 3346 7 is_stmt 0 view .LVU4591 + 15554 0010 0068 ldr r0, [r0] + 15555 .LVL1189: +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15556 .loc 1 3346 7 view .LVU4592 + 15557 0012 FFF7FEFF bl TIM_CCxChannelCmd + 15558 .LVL1190: +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15559 .loc 1 3347 7 is_stmt 1 view .LVU4593 + 15560 0016 0022 movs r2, #0 + 15561 0018 0421 movs r1, #4 + 15562 001a 2068 ldr r0, [r4] + 15563 001c FFF7FEFF bl TIM_CCxChannelCmd + 15564 .LVL1191: +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15565 .loc 1 3348 7 view .LVU4594 + 15566 0020 04E0 b .L1203 + 15567 .LVL1192: + 15568 .L1200: +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15569 .loc 1 3334 7 view .LVU4595 + 15570 0022 0022 movs r2, #0 + 15571 0024 1146 mov r1, r2 + 15572 .LVL1193: +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15573 .loc 1 3334 7 is_stmt 0 view .LVU4596 + 15574 0026 0068 ldr r0, [r0] + 15575 .LVL1194: +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15576 .loc 1 3334 7 view .LVU4597 + 15577 0028 FFF7FEFF bl TIM_CCxChannelCmd + 15578 .LVL1195: +3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15579 .loc 1 3335 7 is_stmt 1 view .LVU4598 + ARM GAS /tmp/cc0wMqvE.s page 484 + + + 15580 .L1203: +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15581 .loc 1 3353 3 view .LVU4599 +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15582 .loc 1 3353 3 view .LVU4600 + 15583 002c 2368 ldr r3, [r4] + 15584 002e 196A ldr r1, [r3, #32] + 15585 0030 41F21112 movw r2, #4369 + 15586 0034 1142 tst r1, r2 + 15587 0036 08D1 bne .L1204 +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15588 .loc 1 3353 3 discriminator 1 view .LVU4601 + 15589 0038 196A ldr r1, [r3, #32] + 15590 003a 44F24442 movw r2, #17476 + 15591 003e 1142 tst r1, r2 + 15592 0040 03D1 bne .L1204 +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15593 .loc 1 3353 3 discriminator 3 view .LVU4602 + 15594 0042 1A68 ldr r2, [r3] + 15595 0044 22F00102 bic r2, r2, #1 + 15596 0048 1A60 str r2, [r3] + 15597 .L1204: +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15598 .loc 1 3353 3 discriminator 5 view .LVU4603 +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15599 .loc 1 3356 3 discriminator 5 view .LVU4604 +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15600 .loc 1 3356 6 is_stmt 0 discriminator 5 view .LVU4605 + 15601 004a 8DB1 cbz r5, .L1205 +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15602 .loc 1 3356 34 discriminator 1 view .LVU4606 + 15603 004c 042D cmp r5, #4 + 15604 004e 16D0 beq .L1212 +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 15605 .loc 1 3363 5 is_stmt 1 view .LVU4607 + 15606 0050 0123 movs r3, #1 + 15607 0052 84F83E30 strb r3, [r4, #62] +3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 15608 .loc 1 3364 5 view .LVU4608 + 15609 0056 84F83F30 strb r3, [r4, #63] +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 15610 .loc 1 3365 5 view .LVU4609 + 15611 005a 84F84430 strb r3, [r4, #68] +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15612 .loc 1 3366 5 view .LVU4610 + 15613 005e 84F84530 strb r3, [r4, #69] + 15614 0062 0AE0 b .L1208 + 15615 .LVL1196: + 15616 .L1201: +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15617 .loc 1 3340 7 view .LVU4611 + 15618 0064 0022 movs r2, #0 + 15619 0066 0421 movs r1, #4 + 15620 .LVL1197: +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15621 .loc 1 3340 7 is_stmt 0 view .LVU4612 + 15622 0068 0068 ldr r0, [r0] + ARM GAS /tmp/cc0wMqvE.s page 485 + + + 15623 .LVL1198: +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15624 .loc 1 3340 7 view .LVU4613 + 15625 006a FFF7FEFF bl TIM_CCxChannelCmd + 15626 .LVL1199: +3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15627 .loc 1 3341 7 is_stmt 1 view .LVU4614 + 15628 006e DDE7 b .L1203 + 15629 .L1205: +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 15630 .loc 1 3358 5 discriminator 1 view .LVU4615 + 15631 0070 0123 movs r3, #1 + 15632 0072 84F83E30 strb r3, [r4, #62] +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15633 .loc 1 3359 5 discriminator 1 view .LVU4616 + 15634 0076 84F84430 strb r3, [r4, #68] + 15635 .L1208: +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15636 .loc 1 3370 3 view .LVU4617 +3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15637 .loc 1 3371 1 is_stmt 0 view .LVU4618 + 15638 007a 0020 movs r0, #0 + 15639 007c 38BD pop {r3, r4, r5, pc} + 15640 .LVL1200: + 15641 .L1212: +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 15642 .loc 1 3358 5 is_stmt 1 view .LVU4619 + 15643 007e 0123 movs r3, #1 + 15644 0080 84F83F30 strb r3, [r4, #63] +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15645 .loc 1 3359 5 view .LVU4620 + 15646 0084 84F84530 strb r3, [r4, #69] + 15647 0088 F7E7 b .L1208 + 15648 .cfi_endproc + 15649 .LFE382: + 15651 .section .text.HAL_TIM_Encoder_Start_IT,"ax",%progbits + 15652 .align 1 + 15653 .global HAL_TIM_Encoder_Start_IT + 15654 .syntax unified + 15655 .thumb + 15656 .thumb_func + 15658 HAL_TIM_Encoder_Start_IT: + 15659 .LVL1201: + 15660 .LFB383: +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 15661 .loc 1 3384 1 view -0 + 15662 .cfi_startproc + 15663 @ args = 0, pretend = 0, frame = 0 + 15664 @ frame_needed = 0, uses_anonymous_args = 0 +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 15665 .loc 1 3384 1 is_stmt 0 view .LVU4622 + 15666 0000 38B5 push {r3, r4, r5, lr} + 15667 .LCFI109: + 15668 .cfi_def_cfa_offset 16 + 15669 .cfi_offset 3, -16 + 15670 .cfi_offset 4, -12 + 15671 .cfi_offset 5, -8 + ARM GAS /tmp/cc0wMqvE.s page 486 + + + 15672 .cfi_offset 14, -4 + 15673 0002 0446 mov r4, r0 +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15674 .loc 1 3385 3 is_stmt 1 view .LVU4623 +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15675 .loc 1 3385 31 is_stmt 0 view .LVU4624 + 15676 0004 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 15677 .LVL1202: +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 15678 .loc 1 3385 31 view .LVU4625 + 15679 0008 C0B2 uxtb r0, r0 + 15680 .LVL1203: +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15681 .loc 1 3386 3 is_stmt 1 view .LVU4626 +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15682 .loc 1 3386 31 is_stmt 0 view .LVU4627 + 15683 000a 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 15684 .LVL1204: +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15685 .loc 1 3387 3 is_stmt 1 view .LVU4628 +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 15686 .loc 1 3387 31 is_stmt 0 view .LVU4629 + 15687 000e 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 15688 0012 D2B2 uxtb r2, r2 + 15689 .LVL1205: +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15690 .loc 1 3388 3 is_stmt 1 view .LVU4630 +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15691 .loc 1 3388 31 is_stmt 0 view .LVU4631 + 15692 0014 94F845C0 ldrb ip, [r4, #69] @ zero_extendqisi2 + 15693 .LVL1206: +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15694 .loc 1 3391 3 is_stmt 1 view .LVU4632 +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15695 .loc 1 3394 3 view .LVU4633 +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15696 .loc 1 3394 6 is_stmt 0 view .LVU4634 + 15697 0018 0D46 mov r5, r1 + 15698 001a 09BB cbnz r1, .L1214 +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) + 15699 .loc 1 3396 5 is_stmt 1 view .LVU4635 +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)) + 15700 .loc 1 3396 8 is_stmt 0 view .LVU4636 + 15701 001c 0128 cmp r0, #1 + 15702 001e 5ED1 bne .L1222 +3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15703 .loc 1 3397 9 view .LVU4637 + 15704 0020 012A cmp r2, #1 + 15705 0022 5DD1 bne .L1215 +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15706 .loc 1 3403 7 is_stmt 1 view .LVU4638 + 15707 0024 0223 movs r3, #2 + 15708 .LVL1207: +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15709 .loc 1 3403 7 is_stmt 0 view .LVU4639 + 15710 0026 84F83E30 strb r3, [r4, #62] +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 487 + + + 15711 .loc 1 3404 7 is_stmt 1 view .LVU4640 + 15712 002a 84F84430 strb r3, [r4, #68] + 15713 .LVL1208: + 15714 .L1216: +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15715 .loc 1 3440 3 view .LVU4641 + 15716 002e 002D cmp r5, #0 + 15717 0030 39D0 beq .L1218 + 15718 0032 042D cmp r5, #4 + 15719 0034 48D0 beq .L1219 +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15720 .loc 1 3458 7 view .LVU4642 + 15721 0036 0122 movs r2, #1 + 15722 .LVL1209: +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15723 .loc 1 3458 7 is_stmt 0 view .LVU4643 + 15724 0038 0021 movs r1, #0 + 15725 .LVL1210: +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15726 .loc 1 3458 7 view .LVU4644 + 15727 003a 2068 ldr r0, [r4] + 15728 .LVL1211: +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 15729 .loc 1 3458 7 view .LVU4645 + 15730 003c FFF7FEFF bl TIM_CCxChannelCmd + 15731 .LVL1212: +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 15732 .loc 1 3459 7 is_stmt 1 view .LVU4646 + 15733 0040 0122 movs r2, #1 + 15734 0042 0421 movs r1, #4 + 15735 0044 2068 ldr r0, [r4] + 15736 0046 FFF7FEFF bl TIM_CCxChannelCmd + 15737 .LVL1213: +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 15738 .loc 1 3460 7 view .LVU4647 + 15739 004a 2268 ldr r2, [r4] + 15740 004c D368 ldr r3, [r2, #12] + 15741 004e 43F00203 orr r3, r3, #2 + 15742 0052 D360 str r3, [r2, #12] +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15743 .loc 1 3461 7 view .LVU4648 + 15744 0054 2268 ldr r2, [r4] + 15745 0056 D368 ldr r3, [r2, #12] + 15746 0058 43F00403 orr r3, r3, #4 + 15747 005c D360 str r3, [r2, #12] +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15748 .loc 1 3462 7 view .LVU4649 + 15749 005e 2CE0 b .L1221 + 15750 .LVL1214: + 15751 .L1214: +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15752 .loc 1 3462 7 is_stmt 0 view .LVU4650 + 15753 0060 DBB2 uxtb r3, r3 +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15754 .loc 1 3462 7 view .LVU4651 + 15755 0062 5FFA8CFC uxtb ip, ip +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + ARM GAS /tmp/cc0wMqvE.s page 488 + + + 15756 .loc 1 3407 8 is_stmt 1 view .LVU4652 +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15757 .loc 1 3407 11 is_stmt 0 view .LVU4653 + 15758 0066 0429 cmp r1, #4 + 15759 0068 12D0 beq .L1230 +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15760 .loc 1 3422 5 is_stmt 1 view .LVU4654 +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 15761 .loc 1 3422 8 is_stmt 0 view .LVU4655 + 15762 006a 0128 cmp r0, #1 + 15763 006c 3DD1 bne .L1225 +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 15764 .loc 1 3423 9 view .LVU4656 + 15765 006e 012B cmp r3, #1 + 15766 0070 36D1 bne .L1215 +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15767 .loc 1 3424 9 view .LVU4657 + 15768 0072 012A cmp r2, #1 + 15769 0074 3BD1 bne .L1226 +3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15770 .loc 1 3425 9 view .LVU4658 + 15771 0076 BCF1010F cmp ip, #1 + 15772 007a 3AD1 bne .L1227 +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15773 .loc 1 3431 7 is_stmt 1 view .LVU4659 + 15774 007c 0223 movs r3, #2 + 15775 .LVL1215: +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15776 .loc 1 3431 7 is_stmt 0 view .LVU4660 + 15777 007e 84F83E30 strb r3, [r4, #62] +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 15778 .loc 1 3432 7 is_stmt 1 view .LVU4661 + 15779 0082 84F83F30 strb r3, [r4, #63] +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15780 .loc 1 3433 7 view .LVU4662 + 15781 0086 84F84430 strb r3, [r4, #68] +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15782 .loc 1 3434 7 view .LVU4663 + 15783 008a 84F84530 strb r3, [r4, #69] + 15784 008e CEE7 b .L1216 + 15785 .LVL1216: + 15786 .L1230: +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15787 .loc 1 3409 5 view .LVU4664 +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 15788 .loc 1 3409 8 is_stmt 0 view .LVU4665 + 15789 0090 012B cmp r3, #1 + 15790 0092 26D1 bne .L1223 +3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15791 .loc 1 3410 9 view .LVU4666 + 15792 0094 BCF1010F cmp ip, #1 + 15793 0098 25D1 bne .L1224 +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 15794 .loc 1 3416 7 is_stmt 1 view .LVU4667 + 15795 009a 0223 movs r3, #2 + 15796 .LVL1217: +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + ARM GAS /tmp/cc0wMqvE.s page 489 + + + 15797 .loc 1 3416 7 is_stmt 0 view .LVU4668 + 15798 009c 84F83F30 strb r3, [r4, #63] +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15799 .loc 1 3417 7 is_stmt 1 view .LVU4669 + 15800 00a0 84F84530 strb r3, [r4, #69] + 15801 00a4 C3E7 b .L1216 + 15802 .LVL1218: + 15803 .L1218: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 15804 .loc 1 3444 7 view .LVU4670 + 15805 00a6 0122 movs r2, #1 + 15806 .LVL1219: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 15807 .loc 1 3444 7 is_stmt 0 view .LVU4671 + 15808 00a8 0021 movs r1, #0 + 15809 .LVL1220: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 15810 .loc 1 3444 7 view .LVU4672 + 15811 00aa 2068 ldr r0, [r4] + 15812 .LVL1221: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 15813 .loc 1 3444 7 view .LVU4673 + 15814 00ac FFF7FEFF bl TIM_CCxChannelCmd + 15815 .LVL1222: +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15816 .loc 1 3445 7 is_stmt 1 view .LVU4674 + 15817 00b0 2268 ldr r2, [r4] + 15818 00b2 D368 ldr r3, [r2, #12] + 15819 00b4 43F00203 orr r3, r3, #2 + 15820 00b8 D360 str r3, [r2, #12] +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15821 .loc 1 3446 7 view .LVU4675 + 15822 .L1221: +3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15823 .loc 1 3467 3 view .LVU4676 + 15824 00ba 2268 ldr r2, [r4] + 15825 00bc 1368 ldr r3, [r2] + 15826 00be 43F00103 orr r3, r3, #1 + 15827 00c2 1360 str r3, [r2] +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15828 .loc 1 3470 3 view .LVU4677 +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15829 .loc 1 3470 10 is_stmt 0 view .LVU4678 + 15830 00c4 0020 movs r0, #0 + 15831 00c6 0BE0 b .L1215 + 15832 .LVL1223: + 15833 .L1219: +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 15834 .loc 1 3451 7 is_stmt 1 view .LVU4679 + 15835 00c8 0122 movs r2, #1 + 15836 .LVL1224: +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 15837 .loc 1 3451 7 is_stmt 0 view .LVU4680 + 15838 00ca 0421 movs r1, #4 + 15839 .LVL1225: +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 15840 .loc 1 3451 7 view .LVU4681 + ARM GAS /tmp/cc0wMqvE.s page 490 + + + 15841 00cc 2068 ldr r0, [r4] + 15842 .LVL1226: +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 15843 .loc 1 3451 7 view .LVU4682 + 15844 00ce FFF7FEFF bl TIM_CCxChannelCmd + 15845 .LVL1227: +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** break; + 15846 .loc 1 3452 7 is_stmt 1 view .LVU4683 + 15847 00d2 2268 ldr r2, [r4] + 15848 00d4 D368 ldr r3, [r2, #12] + 15849 00d6 43F00403 orr r3, r3, #4 + 15850 00da D360 str r3, [r2, #12] +3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15851 .loc 1 3453 7 view .LVU4684 + 15852 00dc EDE7 b .L1221 + 15853 .LVL1228: + 15854 .L1222: +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15855 .loc 1 3399 14 is_stmt 0 view .LVU4685 + 15856 00de 0120 movs r0, #1 + 15857 .LVL1229: + 15858 .L1215: +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15859 .loc 1 3471 1 view .LVU4686 + 15860 00e0 38BD pop {r3, r4, r5, pc} + 15861 .LVL1230: + 15862 .L1223: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15863 .loc 1 3412 14 view .LVU4687 + 15864 00e2 0120 movs r0, #1 + 15865 .LVL1231: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15866 .loc 1 3412 14 view .LVU4688 + 15867 00e4 FCE7 b .L1215 + 15868 .LVL1232: + 15869 .L1224: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15870 .loc 1 3412 14 view .LVU4689 + 15871 00e6 1846 mov r0, r3 + 15872 .LVL1233: +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15873 .loc 1 3412 14 view .LVU4690 + 15874 00e8 FAE7 b .L1215 + 15875 .LVL1234: + 15876 .L1225: +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15877 .loc 1 3427 14 view .LVU4691 + 15878 00ea 0120 movs r0, #1 + 15879 .LVL1235: +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15880 .loc 1 3427 14 view .LVU4692 + 15881 00ec F8E7 b .L1215 + 15882 .LVL1236: + 15883 .L1226: +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15884 .loc 1 3427 14 view .LVU4693 + 15885 00ee 1846 mov r0, r3 + ARM GAS /tmp/cc0wMqvE.s page 491 + + + 15886 .LVL1237: +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15887 .loc 1 3427 14 view .LVU4694 + 15888 00f0 F6E7 b .L1215 + 15889 .LVL1238: + 15890 .L1227: +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15891 .loc 1 3427 14 view .LVU4695 + 15892 00f2 1046 mov r0, r2 + 15893 .LVL1239: +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15894 .loc 1 3427 14 view .LVU4696 + 15895 00f4 F4E7 b .L1215 + 15896 .cfi_endproc + 15897 .LFE383: + 15899 .section .text.HAL_TIM_Encoder_Stop_IT,"ax",%progbits + 15900 .align 1 + 15901 .global HAL_TIM_Encoder_Stop_IT + 15902 .syntax unified + 15903 .thumb + 15904 .thumb_func + 15906 HAL_TIM_Encoder_Stop_IT: + 15907 .LVL1240: + 15908 .LFB384: +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 15909 .loc 1 3484 1 is_stmt 1 view -0 + 15910 .cfi_startproc + 15911 @ args = 0, pretend = 0, frame = 0 + 15912 @ frame_needed = 0, uses_anonymous_args = 0 +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 15913 .loc 1 3484 1 is_stmt 0 view .LVU4698 + 15914 0000 38B5 push {r3, r4, r5, lr} + 15915 .LCFI110: + 15916 .cfi_def_cfa_offset 16 + 15917 .cfi_offset 3, -16 + 15918 .cfi_offset 4, -12 + 15919 .cfi_offset 5, -8 + 15920 .cfi_offset 14, -4 + 15921 0002 0446 mov r4, r0 +3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15922 .loc 1 3486 3 is_stmt 1 view .LVU4699 +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15923 .loc 1 3490 3 view .LVU4700 +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15924 .loc 1 3490 6 is_stmt 0 view .LVU4701 + 15925 0004 0D46 mov r5, r1 + 15926 0006 0029 cmp r1, #0 + 15927 0008 31D0 beq .L1242 +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15928 .loc 1 3497 8 is_stmt 1 view .LVU4702 +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15929 .loc 1 3497 11 is_stmt 0 view .LVU4703 + 15930 000a 0429 cmp r1, #4 + 15931 000c 3AD0 beq .L1243 +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15932 .loc 1 3506 5 is_stmt 1 view .LVU4704 + 15933 000e 0022 movs r2, #0 + ARM GAS /tmp/cc0wMqvE.s page 492 + + + 15934 0010 1146 mov r1, r2 + 15935 .LVL1241: +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15936 .loc 1 3506 5 is_stmt 0 view .LVU4705 + 15937 0012 0068 ldr r0, [r0] + 15938 .LVL1242: +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 15939 .loc 1 3506 5 view .LVU4706 + 15940 0014 FFF7FEFF bl TIM_CCxChannelCmd + 15941 .LVL1243: +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15942 .loc 1 3507 5 is_stmt 1 view .LVU4707 + 15943 0018 0022 movs r2, #0 + 15944 001a 0421 movs r1, #4 + 15945 001c 2068 ldr r0, [r4] + 15946 001e FFF7FEFF bl TIM_CCxChannelCmd + 15947 .LVL1244: +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + 15948 .loc 1 3510 5 view .LVU4708 + 15949 0022 2268 ldr r2, [r4] + 15950 0024 D368 ldr r3, [r2, #12] + 15951 0026 23F00203 bic r3, r3, #2 + 15952 002a D360 str r3, [r2, #12] +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15953 .loc 1 3511 5 view .LVU4709 + 15954 002c 2268 ldr r2, [r4] + 15955 002e D368 ldr r3, [r2, #12] + 15956 0030 23F00403 bic r3, r3, #4 + 15957 0034 D360 str r3, [r2, #12] + 15958 .L1233: +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15959 .loc 1 3515 3 view .LVU4710 +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15960 .loc 1 3515 3 view .LVU4711 + 15961 0036 2368 ldr r3, [r4] + 15962 0038 196A ldr r1, [r3, #32] + 15963 003a 41F21112 movw r2, #4369 + 15964 003e 1142 tst r1, r2 + 15965 0040 08D1 bne .L1235 +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15966 .loc 1 3515 3 discriminator 1 view .LVU4712 + 15967 0042 196A ldr r1, [r3, #32] + 15968 0044 44F24442 movw r2, #17476 + 15969 0048 1142 tst r1, r2 + 15970 004a 03D1 bne .L1235 +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15971 .loc 1 3515 3 discriminator 3 view .LVU4713 + 15972 004c 1A68 ldr r2, [r3] + 15973 004e 22F00102 bic r2, r2, #1 + 15974 0052 1A60 str r2, [r3] + 15975 .L1235: +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15976 .loc 1 3515 3 discriminator 5 view .LVU4714 +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15977 .loc 1 3518 3 discriminator 5 view .LVU4715 +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15978 .loc 1 3518 6 is_stmt 0 discriminator 5 view .LVU4716 + ARM GAS /tmp/cc0wMqvE.s page 493 + + + 15979 0054 0DB3 cbz r5, .L1236 +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 15980 .loc 1 3518 34 discriminator 1 view .LVU4717 + 15981 0056 042D cmp r5, #4 + 15982 0058 26D0 beq .L1244 +3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 15983 .loc 1 3525 5 is_stmt 1 view .LVU4718 + 15984 005a 0123 movs r3, #1 + 15985 005c 84F83E30 strb r3, [r4, #62] +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 15986 .loc 1 3526 5 view .LVU4719 + 15987 0060 84F83F30 strb r3, [r4, #63] +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 15988 .loc 1 3527 5 view .LVU4720 + 15989 0064 84F84430 strb r3, [r4, #68] +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 15990 .loc 1 3528 5 view .LVU4721 + 15991 0068 84F84530 strb r3, [r4, #69] + 15992 006c 1AE0 b .L1239 + 15993 .LVL1245: + 15994 .L1242: +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15995 .loc 1 3492 5 view .LVU4722 + 15996 006e 0022 movs r2, #0 + 15997 0070 1146 mov r1, r2 + 15998 .LVL1246: +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 15999 .loc 1 3492 5 is_stmt 0 view .LVU4723 + 16000 0072 0068 ldr r0, [r0] + 16001 .LVL1247: +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16002 .loc 1 3492 5 view .LVU4724 + 16003 0074 FFF7FEFF bl TIM_CCxChannelCmd + 16004 .LVL1248: +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16005 .loc 1 3495 5 is_stmt 1 view .LVU4725 + 16006 0078 2268 ldr r2, [r4] + 16007 007a D368 ldr r3, [r2, #12] + 16008 007c 23F00203 bic r3, r3, #2 + 16009 0080 D360 str r3, [r2, #12] + 16010 0082 D8E7 b .L1233 + 16011 .LVL1249: + 16012 .L1243: +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16013 .loc 1 3499 5 view .LVU4726 + 16014 0084 0022 movs r2, #0 + 16015 0086 0421 movs r1, #4 + 16016 .LVL1250: +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16017 .loc 1 3499 5 is_stmt 0 view .LVU4727 + 16018 0088 0068 ldr r0, [r0] + 16019 .LVL1251: +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16020 .loc 1 3499 5 view .LVU4728 + 16021 008a FFF7FEFF bl TIM_CCxChannelCmd + 16022 .LVL1252: +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 494 + + + 16023 .loc 1 3502 5 is_stmt 1 view .LVU4729 + 16024 008e 2268 ldr r2, [r4] + 16025 0090 D368 ldr r3, [r2, #12] + 16026 0092 23F00403 bic r3, r3, #4 + 16027 0096 D360 str r3, [r2, #12] + 16028 0098 CDE7 b .L1233 + 16029 .L1236: +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 16030 .loc 1 3520 5 discriminator 1 view .LVU4730 + 16031 009a 0123 movs r3, #1 + 16032 009c 84F83E30 strb r3, [r4, #62] +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16033 .loc 1 3521 5 discriminator 1 view .LVU4731 + 16034 00a0 84F84430 strb r3, [r4, #68] + 16035 .L1239: +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16036 .loc 1 3532 3 view .LVU4732 +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16037 .loc 1 3533 1 is_stmt 0 view .LVU4733 + 16038 00a4 0020 movs r0, #0 + 16039 00a6 38BD pop {r3, r4, r5, pc} + 16040 .LVL1253: + 16041 .L1244: +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 16042 .loc 1 3520 5 is_stmt 1 view .LVU4734 + 16043 00a8 0123 movs r3, #1 + 16044 00aa 84F83F30 strb r3, [r4, #63] +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16045 .loc 1 3521 5 view .LVU4735 + 16046 00ae 84F84530 strb r3, [r4, #69] + 16047 00b2 F7E7 b .L1239 + 16048 .cfi_endproc + 16049 .LFE384: + 16051 .section .text.HAL_TIM_Encoder_Start_DMA,"ax",%progbits + 16052 .align 1 + 16053 .global HAL_TIM_Encoder_Start_DMA + 16054 .syntax unified + 16055 .thumb + 16056 .thumb_func + 16058 HAL_TIM_Encoder_Start_DMA: + 16059 .LVL1254: + 16060 .LFB385: +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 16061 .loc 1 3550 1 view -0 + 16062 .cfi_startproc + 16063 @ args = 4, pretend = 0, frame = 0 + 16064 @ frame_needed = 0, uses_anonymous_args = 0 +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 16065 .loc 1 3550 1 is_stmt 0 view .LVU4737 + 16066 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 16067 .LCFI111: + 16068 .cfi_def_cfa_offset 24 + 16069 .cfi_offset 3, -24 + 16070 .cfi_offset 4, -20 + 16071 .cfi_offset 5, -16 + 16072 .cfi_offset 6, -12 + 16073 .cfi_offset 7, -8 + ARM GAS /tmp/cc0wMqvE.s page 495 + + + 16074 .cfi_offset 14, -4 + 16075 0002 0446 mov r4, r0 + 16076 0004 1E46 mov r6, r3 + 16077 0006 BDF81870 ldrh r7, [sp, #24] +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 16078 .loc 1 3551 3 is_stmt 1 view .LVU4738 +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 16079 .loc 1 3551 31 is_stmt 0 view .LVU4739 + 16080 000a 90F83E50 ldrb r5, [r0, #62] @ zero_extendqisi2 + 16081 000e EDB2 uxtb r5, r5 + 16082 .LVL1255: +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 16083 .loc 1 3552 3 is_stmt 1 view .LVU4740 +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 16084 .loc 1 3552 31 is_stmt 0 view .LVU4741 + 16085 0010 90F83F00 ldrb r0, [r0, #63] @ zero_extendqisi2 + 16086 .LVL1256: +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 16087 .loc 1 3552 31 view .LVU4742 + 16088 0014 5FFA80FC uxtb ip, r0 + 16089 .LVL1257: +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 16090 .loc 1 3553 3 is_stmt 1 view .LVU4743 +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 16091 .loc 1 3553 31 is_stmt 0 view .LVU4744 + 16092 0018 94F84400 ldrb r0, [r4, #68] @ zero_extendqisi2 + 16093 001c C0B2 uxtb r0, r0 + 16094 .LVL1258: +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16095 .loc 1 3554 3 is_stmt 1 view .LVU4745 +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16096 .loc 1 3554 31 is_stmt 0 view .LVU4746 + 16097 001e 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 16098 .LVL1259: +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16099 .loc 1 3557 3 is_stmt 1 view .LVU4747 +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16100 .loc 1 3560 3 view .LVU4748 +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16101 .loc 1 3560 6 is_stmt 0 view .LVU4749 + 16102 0022 8E46 mov lr, r1 + 16103 0024 81BB cbnz r1, .L1246 +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 16104 .loc 1 3562 5 is_stmt 1 view .LVU4750 +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 16105 .loc 1 3562 8 is_stmt 0 view .LVU4751 + 16106 0026 022D cmp r5, #2 + 16107 0028 00F0EC80 beq .L1247 +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16108 .loc 1 3563 9 view .LVU4752 + 16109 002c 0228 cmp r0, #2 + 16110 002e 00F0E680 beq .L1257 +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + 16111 .loc 1 3567 10 is_stmt 1 view .LVU4753 +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + 16112 .loc 1 3567 13 is_stmt 0 view .LVU4754 + 16113 0032 012D cmp r5, #1 + ARM GAS /tmp/cc0wMqvE.s page 496 + + + 16114 0034 40F0E580 bne .L1258 +3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16115 .loc 1 3568 14 view .LVU4755 + 16116 0038 0128 cmp r0, #1 + 16117 003a 40F0E380 bne .L1247 +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16118 .loc 1 3570 7 is_stmt 1 view .LVU4756 +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16119 .loc 1 3570 10 is_stmt 0 view .LVU4757 + 16120 003e FAB1 cbz r2, .L1278 + 16121 .L1248: +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 16122 .loc 1 3576 9 is_stmt 1 view .LVU4758 + 16123 0040 0223 movs r3, #2 + 16124 .LVL1260: +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 16125 .loc 1 3576 9 is_stmt 0 view .LVU4759 + 16126 0042 84F83E30 strb r3, [r4, #62] +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16127 .loc 1 3577 9 is_stmt 1 view .LVU4760 + 16128 0046 84F84430 strb r3, [r4, #68] + 16129 .L1249: +3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16130 .loc 1 3642 3 view .LVU4761 + 16131 004a BEF1000F cmp lr, #0 + 16132 004e 61D0 beq .L1254 + 16133 0050 BEF1040F cmp lr, #4 + 16134 0054 00F08180 beq .L1255 +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16135 .loc 1 3702 7 view .LVU4762 +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16136 .loc 1 3702 17 is_stmt 0 view .LVU4763 + 16137 0058 636A ldr r3, [r4, #36] +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16138 .loc 1 3702 52 view .LVU4764 + 16139 005a 7549 ldr r1, .L1285 + 16140 .LVL1261: +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16141 .loc 1 3702 52 view .LVU4765 + 16142 005c D962 str r1, [r3, #44] +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16143 .loc 1 3703 7 is_stmt 1 view .LVU4766 +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16144 .loc 1 3703 17 is_stmt 0 view .LVU4767 + 16145 005e 636A ldr r3, [r4, #36] +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16146 .loc 1 3703 56 view .LVU4768 + 16147 0060 7449 ldr r1, .L1285+4 + 16148 0062 1963 str r1, [r3, #48] +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16149 .loc 1 3706 7 is_stmt 1 view .LVU4769 +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16150 .loc 1 3706 17 is_stmt 0 view .LVU4770 + 16151 0064 636A ldr r3, [r4, #36] +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16152 .loc 1 3706 53 view .LVU4771 + 16153 0066 7449 ldr r1, .L1285+8 + ARM GAS /tmp/cc0wMqvE.s page 497 + + + 16154 0068 5963 str r1, [r3, #52] +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16155 .loc 1 3709 7 is_stmt 1 view .LVU4772 +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16156 .loc 1 3709 71 is_stmt 0 view .LVU4773 + 16157 006a 2168 ldr r1, [r4] +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16158 .loc 1 3709 11 view .LVU4774 + 16159 006c 3B46 mov r3, r7 + 16160 006e 3431 adds r1, r1, #52 + 16161 0070 606A ldr r0, [r4, #36] + 16162 .LVL1262: +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16163 .loc 1 3709 11 view .LVU4775 + 16164 0072 FFF7FEFF bl HAL_DMA_Start_IT + 16165 .LVL1263: +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16166 .loc 1 3709 10 view .LVU4776 + 16167 0076 0028 cmp r0, #0 + 16168 0078 00F09380 beq .L1279 +3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16169 .loc 1 3713 16 view .LVU4777 + 16170 007c 0125 movs r5, #1 + 16171 .LVL1264: +3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16172 .loc 1 3713 16 view .LVU4778 + 16173 007e C1E0 b .L1247 + 16174 .LVL1265: + 16175 .L1278: +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16176 .loc 1 3570 28 discriminator 1 view .LVU4779 + 16177 0080 002F cmp r7, #0 + 16178 0082 DDD0 beq .L1248 +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16179 .loc 1 3572 16 view .LVU4780 + 16180 0084 0546 mov r5, r0 + 16181 .LVL1266: +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16182 .loc 1 3572 16 view .LVU4781 + 16183 0086 BDE0 b .L1247 + 16184 .LVL1267: + 16185 .L1246: +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16186 .loc 1 3572 16 view .LVU4782 + 16187 0088 DBB2 uxtb r3, r3 +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16188 .loc 1 3585 8 is_stmt 1 view .LVU4783 +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16189 .loc 1 3585 11 is_stmt 0 view .LVU4784 + 16190 008a 0429 cmp r1, #4 + 16191 008c 25D0 beq .L1280 +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) + 16192 .loc 1 3612 5 is_stmt 1 view .LVU4785 +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) + 16193 .loc 1 3612 8 is_stmt 0 view .LVU4786 + 16194 008e 022D cmp r5, #2 + 16195 0090 00F0B880 beq .L1247 + ARM GAS /tmp/cc0wMqvE.s page 498 + + +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) + 16196 .loc 1 3613 9 view .LVU4787 + 16197 0094 BCF1020F cmp ip, #2 + 16198 0098 00F0BE80 beq .L1265 +3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 16199 .loc 1 3614 9 view .LVU4788 + 16200 009c 0228 cmp r0, #2 + 16201 009e 00F0BD80 beq .L1266 +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16202 .loc 1 3615 9 view .LVU4789 + 16203 00a2 022B cmp r3, #2 + 16204 00a4 00F0BC80 beq .L1267 +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY) + 16205 .loc 1 3619 10 is_stmt 1 view .LVU4790 +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY) + 16206 .loc 1 3619 13 is_stmt 0 view .LVU4791 + 16207 00a8 012D cmp r5, #1 + 16208 00aa 40F0BB80 bne .L1268 +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + 16209 .loc 1 3620 14 view .LVU4792 + 16210 00ae BCF1010F cmp ip, #1 + 16211 00b2 40F0A780 bne .L1247 +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) + 16212 .loc 1 3621 14 view .LVU4793 + 16213 00b6 0128 cmp r0, #1 + 16214 00b8 40F0B680 bne .L1269 +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16215 .loc 1 3622 14 view .LVU4794 + 16216 00bc 012B cmp r3, #1 + 16217 00be 40F0B580 bne .L1270 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16218 .loc 1 3624 7 is_stmt 1 view .LVU4795 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16219 .loc 1 3624 10 is_stmt 0 view .LVU4796 + 16220 00c2 1AB3 cbz r2, .L1252 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16221 .loc 1 3624 30 discriminator 2 view .LVU4797 + 16222 00c4 16B3 cbz r6, .L1252 + 16223 .L1253: +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 16224 .loc 1 3630 9 is_stmt 1 view .LVU4798 + 16225 00c6 0223 movs r3, #2 + 16226 .LVL1268: +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 16227 .loc 1 3630 9 is_stmt 0 view .LVU4799 + 16228 00c8 84F83E30 strb r3, [r4, #62] +3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 16229 .loc 1 3631 9 is_stmt 1 view .LVU4800 + 16230 00cc 84F83F30 strb r3, [r4, #63] +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 16231 .loc 1 3632 9 view .LVU4801 + 16232 00d0 84F84430 strb r3, [r4, #68] +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16233 .loc 1 3633 9 view .LVU4802 + 16234 00d4 84F84530 strb r3, [r4, #69] +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16235 .loc 1 3624 10 is_stmt 0 view .LVU4803 + ARM GAS /tmp/cc0wMqvE.s page 499 + + + 16236 00d8 B7E7 b .L1249 + 16237 .LVL1269: + 16238 .L1280: +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 16239 .loc 1 3587 5 is_stmt 1 view .LVU4804 +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** || (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 16240 .loc 1 3587 8 is_stmt 0 view .LVU4805 + 16241 00da BCF1020F cmp ip, #2 + 16242 00de 00F09380 beq .L1260 +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16243 .loc 1 3588 9 view .LVU4806 + 16244 00e2 022B cmp r3, #2 + 16245 00e4 00F09280 beq .L1261 +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) + 16246 .loc 1 3592 10 is_stmt 1 view .LVU4807 +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** && (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) + 16247 .loc 1 3592 13 is_stmt 0 view .LVU4808 + 16248 00e8 BCF1010F cmp ip, #1 + 16249 00ec 40F09080 bne .L1262 +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16250 .loc 1 3593 14 view .LVU4809 + 16251 00f0 012B cmp r3, #1 + 16252 00f2 40F08F80 bne .L1263 +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16253 .loc 1 3595 7 is_stmt 1 view .LVU4810 +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16254 .loc 1 3595 10 is_stmt 0 view .LVU4811 + 16255 00f6 2EB1 cbz r6, .L1281 + 16256 .L1251: +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 16257 .loc 1 3601 9 is_stmt 1 view .LVU4812 + 16258 00f8 0223 movs r3, #2 + 16259 .LVL1270: +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 16260 .loc 1 3601 9 is_stmt 0 view .LVU4813 + 16261 00fa 84F83F30 strb r3, [r4, #63] +3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16262 .loc 1 3602 9 is_stmt 1 view .LVU4814 + 16263 00fe 84F84530 strb r3, [r4, #69] + 16264 0102 A2E7 b .L1249 + 16265 .LVL1271: + 16266 .L1281: +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16267 .loc 1 3595 28 is_stmt 0 discriminator 1 view .LVU4815 + 16268 0104 002F cmp r7, #0 + 16269 0106 F7D0 beq .L1251 +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16270 .loc 1 3597 16 view .LVU4816 + 16271 0108 1D46 mov r5, r3 + 16272 .LVL1272: +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16273 .loc 1 3597 16 view .LVU4817 + 16274 010a 7BE0 b .L1247 + 16275 .LVL1273: + 16276 .L1252: +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16277 .loc 1 3624 52 discriminator 3 view .LVU4818 + ARM GAS /tmp/cc0wMqvE.s page 500 + + + 16278 010c 002F cmp r7, #0 + 16279 010e DAD0 beq .L1253 +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16280 .loc 1 3626 16 view .LVU4819 + 16281 0110 1D46 mov r5, r3 + 16282 .LVL1274: +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16283 .loc 1 3626 16 view .LVU4820 + 16284 0112 77E0 b .L1247 + 16285 .LVL1275: + 16286 .L1254: +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16287 .loc 1 3647 7 is_stmt 1 view .LVU4821 +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16288 .loc 1 3647 17 is_stmt 0 view .LVU4822 + 16289 0114 636A ldr r3, [r4, #36] +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16290 .loc 1 3647 52 view .LVU4823 + 16291 0116 4649 ldr r1, .L1285 + 16292 .LVL1276: +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16293 .loc 1 3647 52 view .LVU4824 + 16294 0118 D962 str r1, [r3, #44] +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16295 .loc 1 3648 7 is_stmt 1 view .LVU4825 +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16296 .loc 1 3648 17 is_stmt 0 view .LVU4826 + 16297 011a 636A ldr r3, [r4, #36] +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16298 .loc 1 3648 56 view .LVU4827 + 16299 011c 4549 ldr r1, .L1285+4 + 16300 011e 1963 str r1, [r3, #48] +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16301 .loc 1 3651 7 is_stmt 1 view .LVU4828 +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16302 .loc 1 3651 17 is_stmt 0 view .LVU4829 + 16303 0120 636A ldr r3, [r4, #36] +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16304 .loc 1 3651 53 view .LVU4830 + 16305 0122 4549 ldr r1, .L1285+8 + 16306 0124 5963 str r1, [r3, #52] +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16307 .loc 1 3654 7 is_stmt 1 view .LVU4831 +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16308 .loc 1 3654 71 is_stmt 0 view .LVU4832 + 16309 0126 2168 ldr r1, [r4] +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16310 .loc 1 3654 11 view .LVU4833 + 16311 0128 3B46 mov r3, r7 + 16312 012a 3431 adds r1, r1, #52 + 16313 012c 606A ldr r0, [r4, #36] + 16314 .LVL1277: +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16315 .loc 1 3654 11 view .LVU4834 + 16316 012e FFF7FEFF bl HAL_DMA_Start_IT + 16317 .LVL1278: +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + ARM GAS /tmp/cc0wMqvE.s page 501 + + + 16318 .loc 1 3654 10 view .LVU4835 + 16319 0132 0546 mov r5, r0 + 16320 .LVL1279: +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16321 .loc 1 3654 10 view .LVU4836 + 16322 0134 08B1 cbz r0, .L1282 +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16323 .loc 1 3658 16 view .LVU4837 + 16324 0136 0125 movs r5, #1 + 16325 0138 64E0 b .L1247 + 16326 .L1282: +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16327 .loc 1 3661 7 is_stmt 1 view .LVU4838 + 16328 013a 2268 ldr r2, [r4] + 16329 013c D368 ldr r3, [r2, #12] + 16330 013e 43F40073 orr r3, r3, #512 + 16331 0142 D360 str r3, [r2, #12] +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16332 .loc 1 3664 7 view .LVU4839 + 16333 0144 0122 movs r2, #1 + 16334 0146 0021 movs r1, #0 + 16335 0148 2068 ldr r0, [r4] + 16336 014a FFF7FEFF bl TIM_CCxChannelCmd + 16337 .LVL1280: +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16338 .loc 1 3667 7 view .LVU4840 + 16339 014e 2268 ldr r2, [r4] + 16340 0150 1368 ldr r3, [r2] + 16341 0152 43F00103 orr r3, r3, #1 + 16342 0156 1360 str r3, [r2] +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16343 .loc 1 3669 7 view .LVU4841 + 16344 0158 54E0 b .L1247 + 16345 .LVL1281: + 16346 .L1255: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16347 .loc 1 3675 7 view .LVU4842 +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16348 .loc 1 3675 17 is_stmt 0 view .LVU4843 + 16349 015a A36A ldr r3, [r4, #40] +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16350 .loc 1 3675 52 view .LVU4844 + 16351 015c 344A ldr r2, .L1285 + 16352 .LVL1282: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16353 .loc 1 3675 52 view .LVU4845 + 16354 015e DA62 str r2, [r3, #44] +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16355 .loc 1 3676 7 is_stmt 1 view .LVU4846 +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16356 .loc 1 3676 17 is_stmt 0 view .LVU4847 + 16357 0160 A36A ldr r3, [r4, #40] +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16358 .loc 1 3676 56 view .LVU4848 + 16359 0162 344A ldr r2, .L1285+4 + 16360 0164 1A63 str r2, [r3, #48] +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ + ARM GAS /tmp/cc0wMqvE.s page 502 + + + 16361 .loc 1 3679 7 is_stmt 1 view .LVU4849 +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ + 16362 .loc 1 3679 17 is_stmt 0 view .LVU4850 + 16363 0166 A36A ldr r3, [r4, #40] +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the DMA channel */ + 16364 .loc 1 3679 53 view .LVU4851 + 16365 0168 334A ldr r2, .L1285+8 + 16366 016a 5A63 str r2, [r3, #52] +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16367 .loc 1 3681 7 is_stmt 1 view .LVU4852 +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16368 .loc 1 3681 71 is_stmt 0 view .LVU4853 + 16369 016c 2168 ldr r1, [r4] + 16370 .LVL1283: +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16371 .loc 1 3681 11 view .LVU4854 + 16372 016e 3B46 mov r3, r7 + 16373 0170 3246 mov r2, r6 + 16374 0172 3831 adds r1, r1, #56 + 16375 0174 A06A ldr r0, [r4, #40] + 16376 .LVL1284: +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16377 .loc 1 3681 11 view .LVU4855 + 16378 0176 FFF7FEFF bl HAL_DMA_Start_IT + 16379 .LVL1285: +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16380 .loc 1 3681 10 view .LVU4856 + 16381 017a 0546 mov r5, r0 + 16382 .LVL1286: +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16383 .loc 1 3681 10 view .LVU4857 + 16384 017c 08B1 cbz r0, .L1283 +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16385 .loc 1 3685 16 view .LVU4858 + 16386 017e 0125 movs r5, #1 + 16387 0180 40E0 b .L1247 + 16388 .L1283: +3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16389 .loc 1 3688 7 is_stmt 1 view .LVU4859 + 16390 0182 2268 ldr r2, [r4] + 16391 0184 D368 ldr r3, [r2, #12] + 16392 0186 43F48063 orr r3, r3, #1024 + 16393 018a D360 str r3, [r2, #12] +3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16394 .loc 1 3691 7 view .LVU4860 + 16395 018c 0122 movs r2, #1 + 16396 018e 0421 movs r1, #4 + 16397 0190 2068 ldr r0, [r4] + 16398 0192 FFF7FEFF bl TIM_CCxChannelCmd + 16399 .LVL1287: +3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16400 .loc 1 3694 7 view .LVU4861 + 16401 0196 2268 ldr r2, [r4] + 16402 0198 1368 ldr r3, [r2] + 16403 019a 43F00103 orr r3, r3, #1 + 16404 019e 1360 str r3, [r2] +3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 503 + + + 16405 .loc 1 3696 7 view .LVU4862 + 16406 01a0 30E0 b .L1247 + 16407 .LVL1288: + 16408 .L1279: +3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16409 .loc 1 3717 7 view .LVU4863 +3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16410 .loc 1 3717 17 is_stmt 0 view .LVU4864 + 16411 01a2 A36A ldr r3, [r4, #40] +3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 16412 .loc 1 3717 52 view .LVU4865 + 16413 01a4 224A ldr r2, .L1285 + 16414 01a6 DA62 str r2, [r3, #44] +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16415 .loc 1 3718 7 is_stmt 1 view .LVU4866 +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16416 .loc 1 3718 17 is_stmt 0 view .LVU4867 + 16417 01a8 A36A ldr r3, [r4, #40] +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16418 .loc 1 3718 56 view .LVU4868 + 16419 01aa 224A ldr r2, .L1285+4 + 16420 01ac 1A63 str r2, [r3, #48] +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16421 .loc 1 3721 7 is_stmt 1 view .LVU4869 +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16422 .loc 1 3721 17 is_stmt 0 view .LVU4870 + 16423 01ae A36A ldr r3, [r4, #40] +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16424 .loc 1 3721 53 view .LVU4871 + 16425 01b0 214A ldr r2, .L1285+8 + 16426 01b2 5A63 str r2, [r3, #52] +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16427 .loc 1 3724 7 is_stmt 1 view .LVU4872 +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16428 .loc 1 3724 71 is_stmt 0 view .LVU4873 + 16429 01b4 2168 ldr r1, [r4] +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16430 .loc 1 3724 11 view .LVU4874 + 16431 01b6 3B46 mov r3, r7 + 16432 01b8 3246 mov r2, r6 + 16433 01ba 3831 adds r1, r1, #56 + 16434 01bc A06A ldr r0, [r4, #40] + 16435 01be FFF7FEFF bl HAL_DMA_Start_IT + 16436 .LVL1289: +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16437 .loc 1 3724 10 view .LVU4875 + 16438 01c2 0546 mov r5, r0 + 16439 .LVL1290: +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** Length) != HAL_OK) + 16440 .loc 1 3724 10 view .LVU4876 + 16441 01c4 08B1 cbz r0, .L1284 +3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16442 .loc 1 3728 16 view .LVU4877 + 16443 01c6 0125 movs r5, #1 + 16444 01c8 1CE0 b .L1247 + 16445 .L1284: +3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Enable the TIM Input Capture DMA request */ + ARM GAS /tmp/cc0wMqvE.s page 504 + + + 16446 .loc 1 3732 7 is_stmt 1 view .LVU4878 + 16447 01ca 2268 ldr r2, [r4] + 16448 01cc D368 ldr r3, [r2, #12] + 16449 01ce 43F40073 orr r3, r3, #512 + 16450 01d2 D360 str r3, [r2, #12] +3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16451 .loc 1 3734 7 view .LVU4879 + 16452 01d4 2268 ldr r2, [r4] + 16453 01d6 D368 ldr r3, [r2, #12] + 16454 01d8 43F48063 orr r3, r3, #1024 + 16455 01dc D360 str r3, [r2, #12] +3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + 16456 .loc 1 3737 7 view .LVU4880 + 16457 01de 0122 movs r2, #1 + 16458 01e0 0021 movs r1, #0 + 16459 01e2 2068 ldr r0, [r4] + 16460 01e4 FFF7FEFF bl TIM_CCxChannelCmd + 16461 .LVL1291: +3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16462 .loc 1 3738 7 view .LVU4881 + 16463 01e8 0122 movs r2, #1 + 16464 01ea 0421 movs r1, #4 + 16465 01ec 2068 ldr r0, [r4] + 16466 01ee FFF7FEFF bl TIM_CCxChannelCmd + 16467 .LVL1292: +3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16468 .loc 1 3741 7 view .LVU4882 + 16469 01f2 2268 ldr r2, [r4] + 16470 01f4 1368 ldr r3, [r2] + 16471 01f6 43F00103 orr r3, r3, #1 + 16472 01fa 1360 str r3, [r2] +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16473 .loc 1 3743 7 view .LVU4883 + 16474 01fc 02E0 b .L1247 + 16475 .LVL1293: + 16476 .L1257: +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16477 .loc 1 3565 14 is_stmt 0 view .LVU4884 + 16478 01fe 0546 mov r5, r0 + 16479 .LVL1294: +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16480 .loc 1 3565 14 view .LVU4885 + 16481 0200 00E0 b .L1247 + 16482 .LVL1295: + 16483 .L1258: +3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16484 .loc 1 3582 14 view .LVU4886 + 16485 0202 0125 movs r5, #1 + 16486 .LVL1296: + 16487 .L1247: +3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16488 .loc 1 3749 1 view .LVU4887 + 16489 0204 2846 mov r0, r5 + 16490 0206 F8BD pop {r3, r4, r5, r6, r7, pc} + 16491 .LVL1297: + 16492 .L1260: +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + ARM GAS /tmp/cc0wMqvE.s page 505 + + + 16493 .loc 1 3590 14 view .LVU4888 + 16494 0208 6546 mov r5, ip + 16495 .LVL1298: +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16496 .loc 1 3590 14 view .LVU4889 + 16497 020a FBE7 b .L1247 + 16498 .LVL1299: + 16499 .L1261: +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16500 .loc 1 3590 14 view .LVU4890 + 16501 020c 1D46 mov r5, r3 + 16502 .LVL1300: +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16503 .loc 1 3590 14 view .LVU4891 + 16504 020e F9E7 b .L1247 + 16505 .LVL1301: + 16506 .L1262: +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16507 .loc 1 3607 14 view .LVU4892 + 16508 0210 0125 movs r5, #1 + 16509 .LVL1302: +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16510 .loc 1 3607 14 view .LVU4893 + 16511 0212 F7E7 b .L1247 + 16512 .LVL1303: + 16513 .L1263: +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16514 .loc 1 3607 14 view .LVU4894 + 16515 0214 6546 mov r5, ip + 16516 .LVL1304: +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16517 .loc 1 3607 14 view .LVU4895 + 16518 0216 F5E7 b .L1247 + 16519 .LVL1305: + 16520 .L1265: +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16521 .loc 1 3617 14 view .LVU4896 + 16522 0218 6546 mov r5, ip + 16523 .LVL1306: +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16524 .loc 1 3617 14 view .LVU4897 + 16525 021a F3E7 b .L1247 + 16526 .LVL1307: + 16527 .L1266: +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16528 .loc 1 3617 14 view .LVU4898 + 16529 021c 0546 mov r5, r0 + 16530 .LVL1308: +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16531 .loc 1 3617 14 view .LVU4899 + 16532 021e F1E7 b .L1247 + 16533 .LVL1309: + 16534 .L1267: +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16535 .loc 1 3617 14 view .LVU4900 + 16536 0220 1D46 mov r5, r3 + 16537 .LVL1310: + ARM GAS /tmp/cc0wMqvE.s page 506 + + +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16538 .loc 1 3617 14 view .LVU4901 + 16539 0222 EFE7 b .L1247 + 16540 .LVL1311: + 16541 .L1268: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16542 .loc 1 3638 14 view .LVU4902 + 16543 0224 0125 movs r5, #1 + 16544 .LVL1312: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16545 .loc 1 3638 14 view .LVU4903 + 16546 0226 EDE7 b .L1247 + 16547 .LVL1313: + 16548 .L1269: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16549 .loc 1 3638 14 view .LVU4904 + 16550 0228 6546 mov r5, ip + 16551 .LVL1314: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16552 .loc 1 3638 14 view .LVU4905 + 16553 022a EBE7 b .L1247 + 16554 .LVL1315: + 16555 .L1270: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16556 .loc 1 3638 14 view .LVU4906 + 16557 022c 0546 mov r5, r0 + 16558 .LVL1316: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16559 .loc 1 3638 14 view .LVU4907 + 16560 022e E9E7 b .L1247 + 16561 .L1286: + 16562 .align 2 + 16563 .L1285: + 16564 0230 00000000 .word TIM_DMACaptureCplt + 16565 0234 00000000 .word TIM_DMACaptureHalfCplt + 16566 0238 00000000 .word TIM_DMAError + 16567 .cfi_endproc + 16568 .LFE385: + 16570 .section .text.HAL_TIM_Encoder_Stop_DMA,"ax",%progbits + 16571 .align 1 + 16572 .global HAL_TIM_Encoder_Stop_DMA + 16573 .syntax unified + 16574 .thumb + 16575 .thumb_func + 16577 HAL_TIM_Encoder_Stop_DMA: + 16578 .LVL1317: + 16579 .LFB386: +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 16580 .loc 1 3762 1 is_stmt 1 view -0 + 16581 .cfi_startproc + 16582 @ args = 0, pretend = 0, frame = 0 + 16583 @ frame_needed = 0, uses_anonymous_args = 0 +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** /* Check the parameters */ + 16584 .loc 1 3762 1 is_stmt 0 view .LVU4909 + 16585 0000 38B5 push {r3, r4, r5, lr} + 16586 .LCFI112: + 16587 .cfi_def_cfa_offset 16 + ARM GAS /tmp/cc0wMqvE.s page 507 + + + 16588 .cfi_offset 3, -16 + 16589 .cfi_offset 4, -12 + 16590 .cfi_offset 5, -8 + 16591 .cfi_offset 14, -4 + 16592 0002 0446 mov r4, r0 +3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16593 .loc 1 3764 3 is_stmt 1 view .LVU4910 +3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16594 .loc 1 3768 3 view .LVU4911 +3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16595 .loc 1 3768 6 is_stmt 0 view .LVU4912 + 16596 0004 0D46 mov r5, r1 + 16597 0006 0029 cmp r1, #0 + 16598 0008 37D0 beq .L1298 +3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16599 .loc 1 3776 8 is_stmt 1 view .LVU4913 +3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16600 .loc 1 3776 11 is_stmt 0 view .LVU4914 + 16601 000a 0429 cmp r1, #4 + 16602 000c 43D0 beq .L1299 +3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 16603 .loc 1 3786 5 is_stmt 1 view .LVU4915 + 16604 000e 0022 movs r2, #0 + 16605 0010 1146 mov r1, r2 + 16606 .LVL1318: +3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 16607 .loc 1 3786 5 is_stmt 0 view .LVU4916 + 16608 0012 0068 ldr r0, [r0] + 16609 .LVL1319: +3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE); + 16610 .loc 1 3786 5 view .LVU4917 + 16611 0014 FFF7FEFF bl TIM_CCxChannelCmd + 16612 .LVL1320: +3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16613 .loc 1 3787 5 is_stmt 1 view .LVU4918 + 16614 0018 0022 movs r2, #0 + 16615 001a 0421 movs r1, #4 + 16616 001c 2068 ldr r0, [r4] + 16617 001e FFF7FEFF bl TIM_CCxChannelCmd + 16618 .LVL1321: +3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + 16619 .loc 1 3790 5 view .LVU4919 + 16620 0022 2268 ldr r2, [r4] + 16621 0024 D368 ldr r3, [r2, #12] + 16622 0026 23F40073 bic r3, r3, #512 + 16623 002a D360 str r3, [r2, #12] +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 16624 .loc 1 3791 5 view .LVU4920 + 16625 002c 2268 ldr r2, [r4] + 16626 002e D368 ldr r3, [r2, #12] + 16627 0030 23F48063 bic r3, r3, #1024 + 16628 0034 D360 str r3, [r2, #12] +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 16629 .loc 1 3792 5 view .LVU4921 +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 16630 .loc 1 3792 11 is_stmt 0 view .LVU4922 + 16631 0036 606A ldr r0, [r4, #36] + ARM GAS /tmp/cc0wMqvE.s page 508 + + + 16632 0038 FFF7FEFF bl HAL_DMA_Abort_IT + 16633 .LVL1322: +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16634 .loc 1 3793 5 is_stmt 1 view .LVU4923 +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16635 .loc 1 3793 11 is_stmt 0 view .LVU4924 + 16636 003c A06A ldr r0, [r4, #40] + 16637 003e FFF7FEFF bl HAL_DMA_Abort_IT + 16638 .LVL1323: + 16639 .L1289: +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16640 .loc 1 3797 3 is_stmt 1 view .LVU4925 +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16641 .loc 1 3797 3 view .LVU4926 + 16642 0042 2368 ldr r3, [r4] + 16643 0044 196A ldr r1, [r3, #32] + 16644 0046 41F21112 movw r2, #4369 + 16645 004a 1142 tst r1, r2 + 16646 004c 08D1 bne .L1291 +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16647 .loc 1 3797 3 discriminator 1 view .LVU4927 + 16648 004e 196A ldr r1, [r3, #32] + 16649 0050 44F24442 movw r2, #17476 + 16650 0054 1142 tst r1, r2 + 16651 0056 03D1 bne .L1291 +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16652 .loc 1 3797 3 discriminator 3 view .LVU4928 + 16653 0058 1A68 ldr r2, [r3] + 16654 005a 22F00102 bic r2, r2, #1 + 16655 005e 1A60 str r2, [r3] + 16656 .L1291: +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16657 .loc 1 3797 3 discriminator 5 view .LVU4929 +3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16658 .loc 1 3800 3 discriminator 5 view .LVU4930 +3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16659 .loc 1 3800 6 is_stmt 0 discriminator 5 view .LVU4931 + 16660 0060 3DB3 cbz r5, .L1292 +3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** { + 16661 .loc 1 3800 34 discriminator 1 view .LVU4932 + 16662 0062 042D cmp r5, #4 + 16663 0064 2CD0 beq .L1300 +3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 16664 .loc 1 3807 5 is_stmt 1 view .LVU4933 + 16665 0066 0123 movs r3, #1 + 16666 0068 84F83E30 strb r3, [r4, #62] +3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 16667 .loc 1 3808 5 view .LVU4934 + 16668 006c 84F83F30 strb r3, [r4, #63] +3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 16669 .loc 1 3809 5 view .LVU4935 + 16670 0070 84F84430 strb r3, [r4, #68] +3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16671 .loc 1 3810 5 view .LVU4936 + 16672 0074 84F84530 strb r3, [r4, #69] + 16673 0078 20E0 b .L1295 + 16674 .LVL1324: + ARM GAS /tmp/cc0wMqvE.s page 509 + + + 16675 .L1298: +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16676 .loc 1 3770 5 view .LVU4937 + 16677 007a 0022 movs r2, #0 + 16678 007c 1146 mov r1, r2 + 16679 .LVL1325: +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16680 .loc 1 3770 5 is_stmt 0 view .LVU4938 + 16681 007e 0068 ldr r0, [r0] + 16682 .LVL1326: +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16683 .loc 1 3770 5 view .LVU4939 + 16684 0080 FFF7FEFF bl TIM_CCxChannelCmd + 16685 .LVL1327: +3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 16686 .loc 1 3773 5 is_stmt 1 view .LVU4940 + 16687 0084 2268 ldr r2, [r4] + 16688 0086 D368 ldr r3, [r2, #12] + 16689 0088 23F40073 bic r3, r3, #512 + 16690 008c D360 str r3, [r2, #12] +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16691 .loc 1 3774 5 view .LVU4941 +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16692 .loc 1 3774 11 is_stmt 0 view .LVU4942 + 16693 008e 606A ldr r0, [r4, #36] + 16694 0090 FFF7FEFF bl HAL_DMA_Abort_IT + 16695 .LVL1328: + 16696 0094 D5E7 b .L1289 + 16697 .LVL1329: + 16698 .L1299: +3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16699 .loc 1 3778 5 is_stmt 1 view .LVU4943 + 16700 0096 0022 movs r2, #0 + 16701 0098 0421 movs r1, #4 + 16702 .LVL1330: +3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16703 .loc 1 3778 5 is_stmt 0 view .LVU4944 + 16704 009a 0068 ldr r0, [r0] + 16705 .LVL1331: +3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16706 .loc 1 3778 5 view .LVU4945 + 16707 009c FFF7FEFF bl TIM_CCxChannelCmd + 16708 .LVL1332: +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 16709 .loc 1 3781 5 is_stmt 1 view .LVU4946 + 16710 00a0 2268 ldr r2, [r4] + 16711 00a2 D368 ldr r3, [r2, #12] + 16712 00a4 23F48063 bic r3, r3, #1024 + 16713 00a8 D360 str r3, [r2, #12] +3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16714 .loc 1 3782 5 view .LVU4947 +3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16715 .loc 1 3782 11 is_stmt 0 view .LVU4948 + 16716 00aa A06A ldr r0, [r4, #40] + 16717 00ac FFF7FEFF bl HAL_DMA_Abort_IT + 16718 .LVL1333: + 16719 00b0 C7E7 b .L1289 + ARM GAS /tmp/cc0wMqvE.s page 510 + + + 16720 .L1292: +3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 16721 .loc 1 3802 5 is_stmt 1 discriminator 1 view .LVU4949 + 16722 00b2 0123 movs r3, #1 + 16723 00b4 84F83E30 strb r3, [r4, #62] +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16724 .loc 1 3803 5 discriminator 1 view .LVU4950 + 16725 00b8 84F84430 strb r3, [r4, #68] + 16726 .L1295: +3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16727 .loc 1 3814 3 view .LVU4951 +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** + 16728 .loc 1 3815 1 is_stmt 0 view .LVU4952 + 16729 00bc 0020 movs r0, #0 + 16730 00be 38BD pop {r3, r4, r5, pc} + 16731 .LVL1334: + 16732 .L1300: +3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 16733 .loc 1 3802 5 is_stmt 1 view .LVU4953 + 16734 00c0 0123 movs r3, #1 + 16735 00c2 84F83F30 strb r3, [r4, #63] +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim.c **** } + 16736 .loc 1 3803 5 view .LVU4954 + 16737 00c6 84F84530 strb r3, [r4, #69] + 16738 00ca F7E7 b .L1295 + 16739 .cfi_endproc + 16740 .LFE386: + 16742 .text + 16743 .Letext0: + 16744 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 16745 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 16746 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 16747 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 16748 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 16749 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h" + 16750 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h" + ARM GAS /tmp/cc0wMqvE.s page 511 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_tim.c + /tmp/cc0wMqvE.s:21 .text.TIM_OC1_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:26 .text.TIM_OC1_SetConfig:00000000 TIM_OC1_SetConfig + /tmp/cc0wMqvE.s:192 .text.TIM_OC1_SetConfig:00000098 $d + /tmp/cc0wMqvE.s:197 .text.TIM_OC3_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:202 .text.TIM_OC3_SetConfig:00000000 TIM_OC3_SetConfig + /tmp/cc0wMqvE.s:356 .text.TIM_OC3_SetConfig:00000088 $d + /tmp/cc0wMqvE.s:361 .text.TIM_OC4_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:366 .text.TIM_OC4_SetConfig:00000000 TIM_OC4_SetConfig + /tmp/cc0wMqvE.s:522 .text.TIM_OC4_SetConfig:00000088 $d + /tmp/cc0wMqvE.s:527 .text.TIM_OC5_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:532 .text.TIM_OC5_SetConfig:00000000 TIM_OC5_SetConfig + /tmp/cc0wMqvE.s:649 .text.TIM_OC5_SetConfig:00000064 $d + /tmp/cc0wMqvE.s:654 .text.TIM_OC6_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:659 .text.TIM_OC6_SetConfig:00000000 TIM_OC6_SetConfig + /tmp/cc0wMqvE.s:778 .text.TIM_OC6_SetConfig:00000068 $d + /tmp/cc0wMqvE.s:783 .text.TIM_TI1_ConfigInputStage:00000000 $t + /tmp/cc0wMqvE.s:788 .text.TIM_TI1_ConfigInputStage:00000000 TIM_TI1_ConfigInputStage + /tmp/cc0wMqvE.s:849 .text.TIM_TI2_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:854 .text.TIM_TI2_SetConfig:00000000 TIM_TI2_SetConfig + /tmp/cc0wMqvE.s:935 .text.TIM_TI2_ConfigInputStage:00000000 $t + /tmp/cc0wMqvE.s:940 .text.TIM_TI2_ConfigInputStage:00000000 TIM_TI2_ConfigInputStage + /tmp/cc0wMqvE.s:1001 .text.TIM_TI3_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:1006 .text.TIM_TI3_SetConfig:00000000 TIM_TI3_SetConfig + /tmp/cc0wMqvE.s:1087 .text.TIM_TI4_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:1092 .text.TIM_TI4_SetConfig:00000000 TIM_TI4_SetConfig + /tmp/cc0wMqvE.s:1173 .text.TIM_ITRx_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:1178 .text.TIM_ITRx_SetConfig:00000000 TIM_ITRx_SetConfig + /tmp/cc0wMqvE.s:1214 .text.HAL_TIM_Base_MspInit:00000000 $t + /tmp/cc0wMqvE.s:1220 .text.HAL_TIM_Base_MspInit:00000000 HAL_TIM_Base_MspInit + /tmp/cc0wMqvE.s:1235 .text.HAL_TIM_Base_MspDeInit:00000000 $t + /tmp/cc0wMqvE.s:1241 .text.HAL_TIM_Base_MspDeInit:00000000 HAL_TIM_Base_MspDeInit + /tmp/cc0wMqvE.s:1256 .text.HAL_TIM_Base_DeInit:00000000 $t + /tmp/cc0wMqvE.s:1262 .text.HAL_TIM_Base_DeInit:00000000 HAL_TIM_Base_DeInit + /tmp/cc0wMqvE.s:1348 .text.HAL_TIM_Base_Start:00000000 $t + /tmp/cc0wMqvE.s:1354 .text.HAL_TIM_Base_Start:00000000 HAL_TIM_Base_Start + /tmp/cc0wMqvE.s:1461 .text.HAL_TIM_Base_Start:00000074 $d + /tmp/cc0wMqvE.s:1467 .text.HAL_TIM_Base_Stop:00000000 $t + /tmp/cc0wMqvE.s:1473 .text.HAL_TIM_Base_Stop:00000000 HAL_TIM_Base_Stop + /tmp/cc0wMqvE.s:1514 .text.HAL_TIM_Base_Start_IT:00000000 $t + /tmp/cc0wMqvE.s:1520 .text.HAL_TIM_Base_Start_IT:00000000 HAL_TIM_Base_Start_IT + /tmp/cc0wMqvE.s:1632 .text.HAL_TIM_Base_Start_IT:0000007c $d + /tmp/cc0wMqvE.s:1638 .text.HAL_TIM_Base_Stop_IT:00000000 $t + /tmp/cc0wMqvE.s:1644 .text.HAL_TIM_Base_Stop_IT:00000000 HAL_TIM_Base_Stop_IT + /tmp/cc0wMqvE.s:1690 .text.HAL_TIM_Base_Start_DMA:00000000 $t + /tmp/cc0wMqvE.s:1696 .text.HAL_TIM_Base_Start_DMA:00000000 HAL_TIM_Base_Start_DMA + /tmp/cc0wMqvE.s:1861 .text.HAL_TIM_Base_Start_DMA:000000bc $d + /tmp/cc0wMqvE.s:3980 .text.TIM_DMAPeriodElapsedCplt:00000000 TIM_DMAPeriodElapsedCplt + /tmp/cc0wMqvE.s:4044 .text.TIM_DMAPeriodElapsedHalfCplt:00000000 TIM_DMAPeriodElapsedHalfCplt + /tmp/cc0wMqvE.s:5180 .text.TIM_DMAError:00000000 TIM_DMAError + /tmp/cc0wMqvE.s:1870 .text.HAL_TIM_Base_Stop_DMA:00000000 $t + /tmp/cc0wMqvE.s:1876 .text.HAL_TIM_Base_Stop_DMA:00000000 HAL_TIM_Base_Stop_DMA + /tmp/cc0wMqvE.s:1934 .text.HAL_TIM_OC_MspInit:00000000 $t + /tmp/cc0wMqvE.s:1940 .text.HAL_TIM_OC_MspInit:00000000 HAL_TIM_OC_MspInit + /tmp/cc0wMqvE.s:1955 .text.HAL_TIM_OC_MspDeInit:00000000 $t + /tmp/cc0wMqvE.s:1961 .text.HAL_TIM_OC_MspDeInit:00000000 HAL_TIM_OC_MspDeInit + ARM GAS /tmp/cc0wMqvE.s page 512 + + + /tmp/cc0wMqvE.s:1976 .text.HAL_TIM_OC_DeInit:00000000 $t + /tmp/cc0wMqvE.s:1982 .text.HAL_TIM_OC_DeInit:00000000 HAL_TIM_OC_DeInit + /tmp/cc0wMqvE.s:2068 .text.HAL_TIM_PWM_MspInit:00000000 $t + /tmp/cc0wMqvE.s:2074 .text.HAL_TIM_PWM_MspInit:00000000 HAL_TIM_PWM_MspInit + /tmp/cc0wMqvE.s:2089 .text.HAL_TIM_PWM_MspDeInit:00000000 $t + /tmp/cc0wMqvE.s:2095 .text.HAL_TIM_PWM_MspDeInit:00000000 HAL_TIM_PWM_MspDeInit + /tmp/cc0wMqvE.s:2110 .text.HAL_TIM_PWM_DeInit:00000000 $t + /tmp/cc0wMqvE.s:2116 .text.HAL_TIM_PWM_DeInit:00000000 HAL_TIM_PWM_DeInit + /tmp/cc0wMqvE.s:2202 .text.HAL_TIM_IC_MspInit:00000000 $t + /tmp/cc0wMqvE.s:2208 .text.HAL_TIM_IC_MspInit:00000000 HAL_TIM_IC_MspInit + /tmp/cc0wMqvE.s:2223 .text.HAL_TIM_IC_MspDeInit:00000000 $t + /tmp/cc0wMqvE.s:2229 .text.HAL_TIM_IC_MspDeInit:00000000 HAL_TIM_IC_MspDeInit + /tmp/cc0wMqvE.s:2244 .text.HAL_TIM_IC_DeInit:00000000 $t + /tmp/cc0wMqvE.s:2250 .text.HAL_TIM_IC_DeInit:00000000 HAL_TIM_IC_DeInit + /tmp/cc0wMqvE.s:2336 .text.HAL_TIM_OnePulse_MspInit:00000000 $t + /tmp/cc0wMqvE.s:2342 .text.HAL_TIM_OnePulse_MspInit:00000000 HAL_TIM_OnePulse_MspInit + /tmp/cc0wMqvE.s:2357 .text.HAL_TIM_OnePulse_MspDeInit:00000000 $t + /tmp/cc0wMqvE.s:2363 .text.HAL_TIM_OnePulse_MspDeInit:00000000 HAL_TIM_OnePulse_MspDeInit + /tmp/cc0wMqvE.s:2378 .text.HAL_TIM_OnePulse_DeInit:00000000 $t + /tmp/cc0wMqvE.s:2384 .text.HAL_TIM_OnePulse_DeInit:00000000 HAL_TIM_OnePulse_DeInit + /tmp/cc0wMqvE.s:2454 .text.HAL_TIM_Encoder_MspInit:00000000 $t + /tmp/cc0wMqvE.s:2460 .text.HAL_TIM_Encoder_MspInit:00000000 HAL_TIM_Encoder_MspInit + /tmp/cc0wMqvE.s:2475 .text.HAL_TIM_Encoder_MspDeInit:00000000 $t + /tmp/cc0wMqvE.s:2481 .text.HAL_TIM_Encoder_MspDeInit:00000000 HAL_TIM_Encoder_MspDeInit + /tmp/cc0wMqvE.s:2496 .text.HAL_TIM_Encoder_DeInit:00000000 $t + /tmp/cc0wMqvE.s:2502 .text.HAL_TIM_Encoder_DeInit:00000000 HAL_TIM_Encoder_DeInit + /tmp/cc0wMqvE.s:2572 .text.HAL_TIM_DMABurst_MultiWriteStart:00000000 $t + /tmp/cc0wMqvE.s:2578 .text.HAL_TIM_DMABurst_MultiWriteStart:00000000 HAL_TIM_DMABurst_MultiWriteStart + /tmp/cc0wMqvE.s:2948 .text.HAL_TIM_DMABurst_MultiWriteStart:00000194 $d + /tmp/cc0wMqvE.s:4382 .text.TIM_DMADelayPulseCplt:00000000 TIM_DMADelayPulseCplt + /tmp/cc0wMqvE.s:4529 .text.TIM_DMADelayPulseHalfCplt:00000000 TIM_DMADelayPulseHalfCplt + /tmp/cc0wMqvE.s:5062 .text.TIM_DMATriggerCplt:00000000 TIM_DMATriggerCplt + /tmp/cc0wMqvE.s:5126 .text.TIM_DMATriggerHalfCplt:00000000 TIM_DMATriggerHalfCplt + /tmp/cc0wMqvE.s:2961 .text.HAL_TIM_DMABurst_WriteStart:00000000 $t + /tmp/cc0wMqvE.s:2967 .text.HAL_TIM_DMABurst_WriteStart:00000000 HAL_TIM_DMABurst_WriteStart + /tmp/cc0wMqvE.s:3007 .text.HAL_TIM_DMABurst_WriteStop:00000000 $t + /tmp/cc0wMqvE.s:3013 .text.HAL_TIM_DMABurst_WriteStop:00000000 HAL_TIM_DMABurst_WriteStop + /tmp/cc0wMqvE.s:3167 .text.HAL_TIM_DMABurst_MultiReadStart:00000000 $t + /tmp/cc0wMqvE.s:3173 .text.HAL_TIM_DMABurst_MultiReadStart:00000000 HAL_TIM_DMABurst_MultiReadStart + /tmp/cc0wMqvE.s:3543 .text.HAL_TIM_DMABurst_MultiReadStart:00000194 $d + /tmp/cc0wMqvE.s:4119 .text.TIM_DMACaptureCplt:00000000 TIM_DMACaptureCplt + /tmp/cc0wMqvE.s:4274 .text.TIM_DMACaptureHalfCplt:00000000 TIM_DMACaptureHalfCplt + /tmp/cc0wMqvE.s:3556 .text.HAL_TIM_DMABurst_ReadStart:00000000 $t + /tmp/cc0wMqvE.s:3562 .text.HAL_TIM_DMABurst_ReadStart:00000000 HAL_TIM_DMABurst_ReadStart + /tmp/cc0wMqvE.s:3602 .text.HAL_TIM_DMABurst_ReadStop:00000000 $t + /tmp/cc0wMqvE.s:3608 .text.HAL_TIM_DMABurst_ReadStop:00000000 HAL_TIM_DMABurst_ReadStop + /tmp/cc0wMqvE.s:3762 .text.HAL_TIM_GenerateEvent:00000000 $t + /tmp/cc0wMqvE.s:3768 .text.HAL_TIM_GenerateEvent:00000000 HAL_TIM_GenerateEvent + /tmp/cc0wMqvE.s:3821 .text.HAL_TIM_ConfigTI1Input:00000000 $t + /tmp/cc0wMqvE.s:3827 .text.HAL_TIM_ConfigTI1Input:00000000 HAL_TIM_ConfigTI1Input + /tmp/cc0wMqvE.s:3865 .text.HAL_TIM_ReadCapturedValue:00000000 $t + /tmp/cc0wMqvE.s:3871 .text.HAL_TIM_ReadCapturedValue:00000000 HAL_TIM_ReadCapturedValue + /tmp/cc0wMqvE.s:3885 .text.HAL_TIM_ReadCapturedValue:00000008 $d + /tmp/cc0wMqvE.s:3954 .text.HAL_TIM_PeriodElapsedCallback:00000000 $t + /tmp/cc0wMqvE.s:3960 .text.HAL_TIM_PeriodElapsedCallback:00000000 HAL_TIM_PeriodElapsedCallback + /tmp/cc0wMqvE.s:3975 .text.TIM_DMAPeriodElapsedCplt:00000000 $t + /tmp/cc0wMqvE.s:4018 .text.HAL_TIM_PeriodElapsedHalfCpltCallback:00000000 $t + ARM GAS /tmp/cc0wMqvE.s page 513 + + + /tmp/cc0wMqvE.s:4024 .text.HAL_TIM_PeriodElapsedHalfCpltCallback:00000000 HAL_TIM_PeriodElapsedHalfCpltCallback + /tmp/cc0wMqvE.s:4039 .text.TIM_DMAPeriodElapsedHalfCplt:00000000 $t + /tmp/cc0wMqvE.s:4071 .text.HAL_TIM_OC_DelayElapsedCallback:00000000 $t + /tmp/cc0wMqvE.s:4077 .text.HAL_TIM_OC_DelayElapsedCallback:00000000 HAL_TIM_OC_DelayElapsedCallback + /tmp/cc0wMqvE.s:4092 .text.HAL_TIM_IC_CaptureCallback:00000000 $t + /tmp/cc0wMqvE.s:4098 .text.HAL_TIM_IC_CaptureCallback:00000000 HAL_TIM_IC_CaptureCallback + /tmp/cc0wMqvE.s:4113 .text.TIM_DMACaptureCplt:00000000 $t + /tmp/cc0wMqvE.s:4247 .text.HAL_TIM_IC_CaptureHalfCpltCallback:00000000 $t + /tmp/cc0wMqvE.s:4253 .text.HAL_TIM_IC_CaptureHalfCpltCallback:00000000 HAL_TIM_IC_CaptureHalfCpltCallback + /tmp/cc0wMqvE.s:4268 .text.TIM_DMACaptureHalfCplt:00000000 $t + /tmp/cc0wMqvE.s:4356 .text.HAL_TIM_PWM_PulseFinishedCallback:00000000 $t + /tmp/cc0wMqvE.s:4362 .text.HAL_TIM_PWM_PulseFinishedCallback:00000000 HAL_TIM_PWM_PulseFinishedCallback + /tmp/cc0wMqvE.s:4377 .text.TIM_DMADelayPulseCplt:00000000 $t + /tmp/cc0wMqvE.s:4502 .text.HAL_TIM_PWM_PulseFinishedHalfCpltCallback:00000000 $t + /tmp/cc0wMqvE.s:4508 .text.HAL_TIM_PWM_PulseFinishedHalfCpltCallback:00000000 HAL_TIM_PWM_PulseFinishedHalfCpltCallback + /tmp/cc0wMqvE.s:4523 .text.TIM_DMADelayPulseHalfCplt:00000000 $t + /tmp/cc0wMqvE.s:4611 .text.HAL_TIM_TriggerCallback:00000000 $t + /tmp/cc0wMqvE.s:4617 .text.HAL_TIM_TriggerCallback:00000000 HAL_TIM_TriggerCallback + /tmp/cc0wMqvE.s:4632 .text.HAL_TIM_IRQHandler:00000000 $t + /tmp/cc0wMqvE.s:4638 .text.HAL_TIM_IRQHandler:00000000 HAL_TIM_IRQHandler + /tmp/cc0wMqvE.s:5057 .text.TIM_DMATriggerCplt:00000000 $t + /tmp/cc0wMqvE.s:5100 .text.HAL_TIM_TriggerHalfCpltCallback:00000000 $t + /tmp/cc0wMqvE.s:5106 .text.HAL_TIM_TriggerHalfCpltCallback:00000000 HAL_TIM_TriggerHalfCpltCallback + /tmp/cc0wMqvE.s:5121 .text.TIM_DMATriggerHalfCplt:00000000 $t + /tmp/cc0wMqvE.s:5153 .text.HAL_TIM_ErrorCallback:00000000 $t + /tmp/cc0wMqvE.s:5159 .text.HAL_TIM_ErrorCallback:00000000 HAL_TIM_ErrorCallback + /tmp/cc0wMqvE.s:5174 .text.TIM_DMAError:00000000 $t + /tmp/cc0wMqvE.s:5278 .text.HAL_TIM_Base_GetState:00000000 $t + /tmp/cc0wMqvE.s:5284 .text.HAL_TIM_Base_GetState:00000000 HAL_TIM_Base_GetState + /tmp/cc0wMqvE.s:5302 .text.HAL_TIM_OC_GetState:00000000 $t + /tmp/cc0wMqvE.s:5308 .text.HAL_TIM_OC_GetState:00000000 HAL_TIM_OC_GetState + /tmp/cc0wMqvE.s:5326 .text.HAL_TIM_PWM_GetState:00000000 $t + /tmp/cc0wMqvE.s:5332 .text.HAL_TIM_PWM_GetState:00000000 HAL_TIM_PWM_GetState + /tmp/cc0wMqvE.s:5350 .text.HAL_TIM_IC_GetState:00000000 $t + /tmp/cc0wMqvE.s:5356 .text.HAL_TIM_IC_GetState:00000000 HAL_TIM_IC_GetState + /tmp/cc0wMqvE.s:5374 .text.HAL_TIM_OnePulse_GetState:00000000 $t + /tmp/cc0wMqvE.s:5380 .text.HAL_TIM_OnePulse_GetState:00000000 HAL_TIM_OnePulse_GetState + /tmp/cc0wMqvE.s:5398 .text.HAL_TIM_Encoder_GetState:00000000 $t + /tmp/cc0wMqvE.s:5404 .text.HAL_TIM_Encoder_GetState:00000000 HAL_TIM_Encoder_GetState + /tmp/cc0wMqvE.s:5422 .text.HAL_TIM_GetActiveChannel:00000000 $t + /tmp/cc0wMqvE.s:5428 .text.HAL_TIM_GetActiveChannel:00000000 HAL_TIM_GetActiveChannel + /tmp/cc0wMqvE.s:5446 .text.HAL_TIM_GetChannelState:00000000 $t + /tmp/cc0wMqvE.s:5452 .text.HAL_TIM_GetChannelState:00000000 HAL_TIM_GetChannelState + /tmp/cc0wMqvE.s:5467 .text.HAL_TIM_GetChannelState:00000008 $d + /tmp/cc0wMqvE.s:5539 .text.HAL_TIM_DMABurstState:00000000 $t + /tmp/cc0wMqvE.s:5545 .text.HAL_TIM_DMABurstState:00000000 HAL_TIM_DMABurstState + /tmp/cc0wMqvE.s:5564 .text.TIM_Base_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:5570 .text.TIM_Base_SetConfig:00000000 TIM_Base_SetConfig + /tmp/cc0wMqvE.s:5718 .text.TIM_Base_SetConfig:000000b4 $d + /tmp/cc0wMqvE.s:5723 .text.HAL_TIM_Base_Init:00000000 $t + /tmp/cc0wMqvE.s:5729 .text.HAL_TIM_Base_Init:00000000 HAL_TIM_Base_Init + /tmp/cc0wMqvE.s:5827 .text.HAL_TIM_OC_Init:00000000 $t + /tmp/cc0wMqvE.s:5833 .text.HAL_TIM_OC_Init:00000000 HAL_TIM_OC_Init + /tmp/cc0wMqvE.s:5931 .text.HAL_TIM_PWM_Init:00000000 $t + /tmp/cc0wMqvE.s:5937 .text.HAL_TIM_PWM_Init:00000000 HAL_TIM_PWM_Init + /tmp/cc0wMqvE.s:6035 .text.HAL_TIM_IC_Init:00000000 $t + /tmp/cc0wMqvE.s:6041 .text.HAL_TIM_IC_Init:00000000 HAL_TIM_IC_Init + ARM GAS /tmp/cc0wMqvE.s page 514 + + + /tmp/cc0wMqvE.s:6139 .text.HAL_TIM_OnePulse_Init:00000000 $t + /tmp/cc0wMqvE.s:6145 .text.HAL_TIM_OnePulse_Init:00000000 HAL_TIM_OnePulse_Init + /tmp/cc0wMqvE.s:6249 .text.HAL_TIM_Encoder_Init:00000000 $t + /tmp/cc0wMqvE.s:6255 .text.HAL_TIM_Encoder_Init:00000000 HAL_TIM_Encoder_Init + /tmp/cc0wMqvE.s:6465 .text.TIM_OC2_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:6471 .text.TIM_OC2_SetConfig:00000000 TIM_OC2_SetConfig + /tmp/cc0wMqvE.s:6627 .text.TIM_OC2_SetConfig:00000088 $d + /tmp/cc0wMqvE.s:6632 .text.HAL_TIM_OC_ConfigChannel:00000000 $t + /tmp/cc0wMqvE.s:6638 .text.HAL_TIM_OC_ConfigChannel:00000000 HAL_TIM_OC_ConfigChannel + /tmp/cc0wMqvE.s:6670 .text.HAL_TIM_OC_ConfigChannel:0000001a $d + /tmp/cc0wMqvE.s:6804 .text.HAL_TIM_PWM_ConfigChannel:00000000 $t + /tmp/cc0wMqvE.s:6810 .text.HAL_TIM_PWM_ConfigChannel:00000000 HAL_TIM_PWM_ConfigChannel + /tmp/cc0wMqvE.s:6847 .text.HAL_TIM_PWM_ConfigChannel:00000020 $d + /tmp/cc0wMqvE.s:7135 .text.TIM_TI1_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:7141 .text.TIM_TI1_SetConfig:00000000 TIM_TI1_SetConfig + /tmp/cc0wMqvE.s:7257 .text.TIM_TI1_SetConfig:00000064 $d + /tmp/cc0wMqvE.s:7263 .text.HAL_TIM_IC_ConfigChannel:00000000 $t + /tmp/cc0wMqvE.s:7269 .text.HAL_TIM_IC_ConfigChannel:00000000 HAL_TIM_IC_ConfigChannel + /tmp/cc0wMqvE.s:7489 .text.HAL_TIM_OnePulse_ConfigChannel:00000000 $t + /tmp/cc0wMqvE.s:7495 .text.HAL_TIM_OnePulse_ConfigChannel:00000000 HAL_TIM_OnePulse_ConfigChannel + /tmp/cc0wMqvE.s:7772 .text.TIM_ETR_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:7778 .text.TIM_ETR_SetConfig:00000000 TIM_ETR_SetConfig + /tmp/cc0wMqvE.s:7822 .text.HAL_TIM_ConfigOCrefClear:00000000 $t + /tmp/cc0wMqvE.s:7828 .text.HAL_TIM_ConfigOCrefClear:00000000 HAL_TIM_ConfigOCrefClear + /tmp/cc0wMqvE.s:7956 .text.HAL_TIM_ConfigOCrefClear:000000b4 $d + /tmp/cc0wMqvE.s:7978 .text.HAL_TIM_ConfigOCrefClear:000000de $t + /tmp/cc0wMqvE.s:8262 .text.HAL_TIM_ConfigOCrefClear:00000260 $d + /tmp/cc0wMqvE.s:8267 .text.HAL_TIM_ConfigClockSource:00000000 $t + /tmp/cc0wMqvE.s:8273 .text.HAL_TIM_ConfigClockSource:00000000 HAL_TIM_ConfigClockSource + /tmp/cc0wMqvE.s:8602 .text.HAL_TIM_ConfigClockSource:0000012c $d + /tmp/cc0wMqvE.s:8609 .text.TIM_SlaveTimer_SetConfig:00000000 $t + /tmp/cc0wMqvE.s:8614 .text.TIM_SlaveTimer_SetConfig:00000000 TIM_SlaveTimer_SetConfig + /tmp/cc0wMqvE.s:8958 .text.TIM_SlaveTimer_SetConfig:0000010c $d + /tmp/cc0wMqvE.s:8964 .text.HAL_TIM_SlaveConfigSynchro:00000000 $t + /tmp/cc0wMqvE.s:8970 .text.HAL_TIM_SlaveConfigSynchro:00000000 HAL_TIM_SlaveConfigSynchro + /tmp/cc0wMqvE.s:9058 .text.HAL_TIM_SlaveConfigSynchro_IT:00000000 $t + /tmp/cc0wMqvE.s:9064 .text.HAL_TIM_SlaveConfigSynchro_IT:00000000 HAL_TIM_SlaveConfigSynchro_IT + /tmp/cc0wMqvE.s:9152 .text.TIM_CCxChannelCmd:00000000 $t + /tmp/cc0wMqvE.s:9158 .text.TIM_CCxChannelCmd:00000000 TIM_CCxChannelCmd + /tmp/cc0wMqvE.s:9198 .text.HAL_TIM_OC_Start:00000000 $t + /tmp/cc0wMqvE.s:9204 .text.HAL_TIM_OC_Start:00000000 HAL_TIM_OC_Start + /tmp/cc0wMqvE.s:9225 .text.HAL_TIM_OC_Start:0000000c $d + /tmp/cc0wMqvE.s:9260 .text.HAL_TIM_OC_Start:00000038 $d + /tmp/cc0wMqvE.s:9466 .text.HAL_TIM_OC_Start:00000158 $d + /tmp/cc0wMqvE.s:9472 .text.HAL_TIM_OC_Stop:00000000 $t + /tmp/cc0wMqvE.s:9478 .text.HAL_TIM_OC_Stop:00000000 HAL_TIM_OC_Stop + /tmp/cc0wMqvE.s:9582 .text.HAL_TIM_OC_Stop:00000086 $d + /tmp/cc0wMqvE.s:9624 .text.HAL_TIM_OC_Stop:000000bc $d + /tmp/cc0wMqvE.s:9629 .text.HAL_TIM_OC_Start_IT:00000000 $t + /tmp/cc0wMqvE.s:9635 .text.HAL_TIM_OC_Start_IT:00000000 HAL_TIM_OC_Start_IT + /tmp/cc0wMqvE.s:9658 .text.HAL_TIM_OC_Start_IT:0000000c $d + /tmp/cc0wMqvE.s:9693 .text.HAL_TIM_OC_Start_IT:0000003a $d + /tmp/cc0wMqvE.s:9902 .text.HAL_TIM_OC_Start_IT:00000164 $d + /tmp/cc0wMqvE.s:9916 .text.HAL_TIM_OC_Start_IT:00000198 $t + /tmp/cc0wMqvE.s:9966 .text.HAL_TIM_OC_Start_IT:000001c4 $d + /tmp/cc0wMqvE.s:9972 .text.HAL_TIM_OC_Stop_IT:00000000 $t + /tmp/cc0wMqvE.s:9978 .text.HAL_TIM_OC_Stop_IT:00000000 HAL_TIM_OC_Stop_IT + ARM GAS /tmp/cc0wMqvE.s page 515 + + + /tmp/cc0wMqvE.s:10003 .text.HAL_TIM_OC_Stop_IT:00000010 $d + /tmp/cc0wMqvE.s:10139 .text.HAL_TIM_OC_Stop_IT:000000ce $d + /tmp/cc0wMqvE.s:10197 .text.HAL_TIM_OC_Stop_IT:00000114 $d + /tmp/cc0wMqvE.s:10202 .text.HAL_TIM_OC_Start_DMA:00000000 $t + /tmp/cc0wMqvE.s:10208 .text.HAL_TIM_OC_Start_DMA:00000000 HAL_TIM_OC_Start_DMA + /tmp/cc0wMqvE.s:10236 .text.HAL_TIM_OC_Start_DMA:00000010 $d + /tmp/cc0wMqvE.s:10274 .text.HAL_TIM_OC_Start_DMA:0000003e $d + /tmp/cc0wMqvE.s:10380 .text.HAL_TIM_OC_Start_DMA:000000c2 $d + /tmp/cc0wMqvE.s:10397 .text.HAL_TIM_OC_Start_DMA:000000e4 $t + /tmp/cc0wMqvE.s:10719 .text.HAL_TIM_OC_Start_DMA:00000298 $d + /tmp/cc0wMqvE.s:10733 .text.HAL_TIM_OC_Start_DMA:000002cc $t + /tmp/cc0wMqvE.s:10802 .text.HAL_TIM_OC_Start_DMA:0000030c $d + /tmp/cc0wMqvE.s:10811 .text.HAL_TIM_OC_Stop_DMA:00000000 $t + /tmp/cc0wMqvE.s:10817 .text.HAL_TIM_OC_Stop_DMA:00000000 HAL_TIM_OC_Stop_DMA + /tmp/cc0wMqvE.s:10842 .text.HAL_TIM_OC_Stop_DMA:00000010 $d + /tmp/cc0wMqvE.s:11003 .text.HAL_TIM_OC_Stop_DMA:000000e6 $d + /tmp/cc0wMqvE.s:11061 .text.HAL_TIM_OC_Stop_DMA:0000012c $d + /tmp/cc0wMqvE.s:11066 .text.HAL_TIM_PWM_Start:00000000 $t + /tmp/cc0wMqvE.s:11072 .text.HAL_TIM_PWM_Start:00000000 HAL_TIM_PWM_Start + /tmp/cc0wMqvE.s:11093 .text.HAL_TIM_PWM_Start:0000000c $d + /tmp/cc0wMqvE.s:11128 .text.HAL_TIM_PWM_Start:00000038 $d + /tmp/cc0wMqvE.s:11334 .text.HAL_TIM_PWM_Start:00000158 $d + /tmp/cc0wMqvE.s:11340 .text.HAL_TIM_PWM_Stop:00000000 $t + /tmp/cc0wMqvE.s:11346 .text.HAL_TIM_PWM_Stop:00000000 HAL_TIM_PWM_Stop + /tmp/cc0wMqvE.s:11450 .text.HAL_TIM_PWM_Stop:00000086 $d + /tmp/cc0wMqvE.s:11492 .text.HAL_TIM_PWM_Stop:000000bc $d + /tmp/cc0wMqvE.s:11497 .text.HAL_TIM_PWM_Start_IT:00000000 $t + /tmp/cc0wMqvE.s:11503 .text.HAL_TIM_PWM_Start_IT:00000000 HAL_TIM_PWM_Start_IT + /tmp/cc0wMqvE.s:11526 .text.HAL_TIM_PWM_Start_IT:0000000c $d + /tmp/cc0wMqvE.s:11561 .text.HAL_TIM_PWM_Start_IT:0000003a $d + /tmp/cc0wMqvE.s:11770 .text.HAL_TIM_PWM_Start_IT:00000164 $d + /tmp/cc0wMqvE.s:11784 .text.HAL_TIM_PWM_Start_IT:00000198 $t + /tmp/cc0wMqvE.s:11834 .text.HAL_TIM_PWM_Start_IT:000001c4 $d + /tmp/cc0wMqvE.s:11840 .text.HAL_TIM_PWM_Stop_IT:00000000 $t + /tmp/cc0wMqvE.s:11846 .text.HAL_TIM_PWM_Stop_IT:00000000 HAL_TIM_PWM_Stop_IT + /tmp/cc0wMqvE.s:11871 .text.HAL_TIM_PWM_Stop_IT:00000010 $d + /tmp/cc0wMqvE.s:12007 .text.HAL_TIM_PWM_Stop_IT:000000ce $d + /tmp/cc0wMqvE.s:12065 .text.HAL_TIM_PWM_Stop_IT:00000114 $d + /tmp/cc0wMqvE.s:12070 .text.HAL_TIM_PWM_Start_DMA:00000000 $t + /tmp/cc0wMqvE.s:12076 .text.HAL_TIM_PWM_Start_DMA:00000000 HAL_TIM_PWM_Start_DMA + /tmp/cc0wMqvE.s:12104 .text.HAL_TIM_PWM_Start_DMA:00000010 $d + /tmp/cc0wMqvE.s:12142 .text.HAL_TIM_PWM_Start_DMA:0000003e $d + /tmp/cc0wMqvE.s:12248 .text.HAL_TIM_PWM_Start_DMA:000000c2 $d + /tmp/cc0wMqvE.s:12265 .text.HAL_TIM_PWM_Start_DMA:000000e4 $t + /tmp/cc0wMqvE.s:12587 .text.HAL_TIM_PWM_Start_DMA:00000298 $d + /tmp/cc0wMqvE.s:12601 .text.HAL_TIM_PWM_Start_DMA:000002cc $t + /tmp/cc0wMqvE.s:12670 .text.HAL_TIM_PWM_Start_DMA:0000030c $d + /tmp/cc0wMqvE.s:12679 .text.HAL_TIM_PWM_Stop_DMA:00000000 $t + /tmp/cc0wMqvE.s:12685 .text.HAL_TIM_PWM_Stop_DMA:00000000 HAL_TIM_PWM_Stop_DMA + /tmp/cc0wMqvE.s:12710 .text.HAL_TIM_PWM_Stop_DMA:00000010 $d + /tmp/cc0wMqvE.s:12871 .text.HAL_TIM_PWM_Stop_DMA:000000e6 $d + /tmp/cc0wMqvE.s:12929 .text.HAL_TIM_PWM_Stop_DMA:0000012c $d + /tmp/cc0wMqvE.s:12934 .text.HAL_TIM_IC_Start:00000000 $t + /tmp/cc0wMqvE.s:12940 .text.HAL_TIM_IC_Start:00000000 HAL_TIM_IC_Start + /tmp/cc0wMqvE.s:12960 .text.HAL_TIM_IC_Start:0000000c $d + /tmp/cc0wMqvE.s:13008 .text.HAL_TIM_IC_Start:00000040 $d + /tmp/cc0wMqvE.s:13230 .text.HAL_TIM_IC_Start:00000154 $d + ARM GAS /tmp/cc0wMqvE.s page 516 + + + /tmp/cc0wMqvE.s:13236 .text.HAL_TIM_IC_Stop:00000000 $t + /tmp/cc0wMqvE.s:13242 .text.HAL_TIM_IC_Stop:00000000 HAL_TIM_IC_Stop + /tmp/cc0wMqvE.s:13305 .text.HAL_TIM_IC_Stop:00000046 $d + /tmp/cc0wMqvE.s:13373 .text.HAL_TIM_IC_Start_IT:00000000 $t + /tmp/cc0wMqvE.s:13379 .text.HAL_TIM_IC_Start_IT:00000000 HAL_TIM_IC_Start_IT + /tmp/cc0wMqvE.s:13401 .text.HAL_TIM_IC_Start_IT:0000000c $d + /tmp/cc0wMqvE.s:13448 .text.HAL_TIM_IC_Start_IT:00000040 $d + /tmp/cc0wMqvE.s:13557 .text.HAL_TIM_IC_Start_IT:000000c2 $d + /tmp/cc0wMqvE.s:13741 .text.HAL_TIM_IC_Start_IT:00000198 $d + /tmp/cc0wMqvE.s:13747 .text.HAL_TIM_IC_Stop_IT:00000000 $t + /tmp/cc0wMqvE.s:13753 .text.HAL_TIM_IC_Stop_IT:00000000 HAL_TIM_IC_Stop_IT + /tmp/cc0wMqvE.s:13778 .text.HAL_TIM_IC_Stop_IT:0000000e $d + /tmp/cc0wMqvE.s:13874 .text.HAL_TIM_IC_Stop_IT:0000008c $d + /tmp/cc0wMqvE.s:13955 .text.HAL_TIM_IC_Start_DMA:00000000 $t + /tmp/cc0wMqvE.s:13961 .text.HAL_TIM_IC_Start_DMA:00000000 HAL_TIM_IC_Start_DMA + /tmp/cc0wMqvE.s:13991 .text.HAL_TIM_IC_Start_DMA:00000014 $d + /tmp/cc0wMqvE.s:14050 .text.HAL_TIM_IC_Start_DMA:0000005c $d + /tmp/cc0wMqvE.s:14185 .text.HAL_TIM_IC_Start_DMA:000000f6 $d + /tmp/cc0wMqvE.s:14509 .text.HAL_TIM_IC_Start_DMA:00000270 $d + /tmp/cc0wMqvE.s:14518 .text.HAL_TIM_IC_Stop_DMA:00000000 $t + /tmp/cc0wMqvE.s:14524 .text.HAL_TIM_IC_Stop_DMA:00000000 HAL_TIM_IC_Stop_DMA + /tmp/cc0wMqvE.s:14557 .text.HAL_TIM_IC_Stop_DMA:00000016 $d + /tmp/cc0wMqvE.s:14661 .text.HAL_TIM_IC_Stop_DMA:000000a2 $d + /tmp/cc0wMqvE.s:14741 .text.HAL_TIM_OnePulse_Start:00000000 $t + /tmp/cc0wMqvE.s:14747 .text.HAL_TIM_OnePulse_Start:00000000 HAL_TIM_OnePulse_Start + /tmp/cc0wMqvE.s:14883 .text.HAL_TIM_OnePulse_Start:00000094 $d + /tmp/cc0wMqvE.s:14888 .text.HAL_TIM_OnePulse_Stop:00000000 $t + /tmp/cc0wMqvE.s:14894 .text.HAL_TIM_OnePulse_Stop:00000000 HAL_TIM_OnePulse_Stop + /tmp/cc0wMqvE.s:15001 .text.HAL_TIM_OnePulse_Stop:00000090 $d + /tmp/cc0wMqvE.s:15006 .text.HAL_TIM_OnePulse_Start_IT:00000000 $t + /tmp/cc0wMqvE.s:15012 .text.HAL_TIM_OnePulse_Start_IT:00000000 HAL_TIM_OnePulse_Start_IT + /tmp/cc0wMqvE.s:15161 .text.HAL_TIM_OnePulse_Start_IT:000000ac $d + /tmp/cc0wMqvE.s:15166 .text.HAL_TIM_OnePulse_Stop_IT:00000000 $t + /tmp/cc0wMqvE.s:15172 .text.HAL_TIM_OnePulse_Stop_IT:00000000 HAL_TIM_OnePulse_Stop_IT + /tmp/cc0wMqvE.s:15289 .text.HAL_TIM_OnePulse_Stop_IT:000000a4 $d + /tmp/cc0wMqvE.s:15294 .text.HAL_TIM_Encoder_Start:00000000 $t + /tmp/cc0wMqvE.s:15300 .text.HAL_TIM_Encoder_Start:00000000 HAL_TIM_Encoder_Start + /tmp/cc0wMqvE.s:15521 .text.HAL_TIM_Encoder_Stop:00000000 $t + /tmp/cc0wMqvE.s:15527 .text.HAL_TIM_Encoder_Stop:00000000 HAL_TIM_Encoder_Stop + /tmp/cc0wMqvE.s:15652 .text.HAL_TIM_Encoder_Start_IT:00000000 $t + /tmp/cc0wMqvE.s:15658 .text.HAL_TIM_Encoder_Start_IT:00000000 HAL_TIM_Encoder_Start_IT + /tmp/cc0wMqvE.s:15900 .text.HAL_TIM_Encoder_Stop_IT:00000000 $t + /tmp/cc0wMqvE.s:15906 .text.HAL_TIM_Encoder_Stop_IT:00000000 HAL_TIM_Encoder_Stop_IT + /tmp/cc0wMqvE.s:16052 .text.HAL_TIM_Encoder_Start_DMA:00000000 $t + /tmp/cc0wMqvE.s:16058 .text.HAL_TIM_Encoder_Start_DMA:00000000 HAL_TIM_Encoder_Start_DMA + /tmp/cc0wMqvE.s:16564 .text.HAL_TIM_Encoder_Start_DMA:00000230 $d + /tmp/cc0wMqvE.s:16571 .text.HAL_TIM_Encoder_Stop_DMA:00000000 $t + /tmp/cc0wMqvE.s:16577 .text.HAL_TIM_Encoder_Stop_DMA:00000000 HAL_TIM_Encoder_Stop_DMA + /tmp/cc0wMqvE.s:3898 .text.HAL_TIM_ReadCapturedValue:00000015 $d + /tmp/cc0wMqvE.s:3898 .text.HAL_TIM_ReadCapturedValue:00000016 $t + /tmp/cc0wMqvE.s:5484 .text.HAL_TIM_GetChannelState:00000019 $d + /tmp/cc0wMqvE.s:5484 .text.HAL_TIM_GetChannelState:0000001a $t + /tmp/cc0wMqvE.s:6691 .text.HAL_TIM_OC_ConfigChannel:0000002f $d + /tmp/cc0wMqvE.s:6691 .text.HAL_TIM_OC_ConfigChannel:00000030 $t + /tmp/cc0wMqvE.s:6868 .text.HAL_TIM_PWM_ConfigChannel:00000035 $d + /tmp/cc0wMqvE.s:6868 .text.HAL_TIM_PWM_ConfigChannel:00000036 $t + /tmp/cc0wMqvE.s:9242 .text.HAL_TIM_OC_Start:0000001d $d + ARM GAS /tmp/cc0wMqvE.s page 517 + + + /tmp/cc0wMqvE.s:9242 .text.HAL_TIM_OC_Start:0000001e $t + /tmp/cc0wMqvE.s:9277 .text.HAL_TIM_OC_Start:00000049 $d + /tmp/cc0wMqvE.s:9277 .text.HAL_TIM_OC_Start:0000004a $t + /tmp/cc0wMqvE.s:9595 .text.HAL_TIM_OC_Stop:00000093 $d + /tmp/cc0wMqvE.s:9595 .text.HAL_TIM_OC_Stop:00000094 $t + /tmp/cc0wMqvE.s:9675 .text.HAL_TIM_OC_Start_IT:0000001d $d + /tmp/cc0wMqvE.s:9675 .text.HAL_TIM_OC_Start_IT:0000001e $t + /tmp/cc0wMqvE.s:9710 .text.HAL_TIM_OC_Start_IT:0000004b $d + /tmp/cc0wMqvE.s:9710 .text.HAL_TIM_OC_Start_IT:0000004c $t + /tmp/cc0wMqvE.s:10016 .text.HAL_TIM_OC_Stop_IT:0000001d $d + /tmp/cc0wMqvE.s:10016 .text.HAL_TIM_OC_Stop_IT:0000001e $t + /tmp/cc0wMqvE.s:10152 .text.HAL_TIM_OC_Stop_IT:000000db $d + /tmp/cc0wMqvE.s:10152 .text.HAL_TIM_OC_Stop_IT:000000dc $t + /tmp/cc0wMqvE.s:10253 .text.HAL_TIM_OC_Start_DMA:00000021 $d + /tmp/cc0wMqvE.s:10253 .text.HAL_TIM_OC_Start_DMA:00000022 $t + /tmp/cc0wMqvE.s:10292 .text.HAL_TIM_OC_Start_DMA:0000004f $d + /tmp/cc0wMqvE.s:10292 .text.HAL_TIM_OC_Start_DMA:00000050 $t + /tmp/cc0wMqvE.s:10855 .text.HAL_TIM_OC_Stop_DMA:0000001d $d + /tmp/cc0wMqvE.s:10855 .text.HAL_TIM_OC_Stop_DMA:0000001e $t + /tmp/cc0wMqvE.s:11016 .text.HAL_TIM_OC_Stop_DMA:000000f3 $d + /tmp/cc0wMqvE.s:11016 .text.HAL_TIM_OC_Stop_DMA:000000f4 $t + /tmp/cc0wMqvE.s:11110 .text.HAL_TIM_PWM_Start:0000001d $d + /tmp/cc0wMqvE.s:11110 .text.HAL_TIM_PWM_Start:0000001e $t + /tmp/cc0wMqvE.s:11145 .text.HAL_TIM_PWM_Start:00000049 $d + /tmp/cc0wMqvE.s:11145 .text.HAL_TIM_PWM_Start:0000004a $t + /tmp/cc0wMqvE.s:11463 .text.HAL_TIM_PWM_Stop:00000093 $d + /tmp/cc0wMqvE.s:11463 .text.HAL_TIM_PWM_Stop:00000094 $t + /tmp/cc0wMqvE.s:11543 .text.HAL_TIM_PWM_Start_IT:0000001d $d + /tmp/cc0wMqvE.s:11543 .text.HAL_TIM_PWM_Start_IT:0000001e $t + /tmp/cc0wMqvE.s:11578 .text.HAL_TIM_PWM_Start_IT:0000004b $d + /tmp/cc0wMqvE.s:11578 .text.HAL_TIM_PWM_Start_IT:0000004c $t + /tmp/cc0wMqvE.s:11884 .text.HAL_TIM_PWM_Stop_IT:0000001d $d + /tmp/cc0wMqvE.s:11884 .text.HAL_TIM_PWM_Stop_IT:0000001e $t + /tmp/cc0wMqvE.s:12020 .text.HAL_TIM_PWM_Stop_IT:000000db $d + /tmp/cc0wMqvE.s:12020 .text.HAL_TIM_PWM_Stop_IT:000000dc $t + /tmp/cc0wMqvE.s:12121 .text.HAL_TIM_PWM_Start_DMA:00000021 $d + /tmp/cc0wMqvE.s:12121 .text.HAL_TIM_PWM_Start_DMA:00000022 $t + /tmp/cc0wMqvE.s:12160 .text.HAL_TIM_PWM_Start_DMA:0000004f $d + /tmp/cc0wMqvE.s:12160 .text.HAL_TIM_PWM_Start_DMA:00000050 $t + /tmp/cc0wMqvE.s:12723 .text.HAL_TIM_PWM_Stop_DMA:0000001d $d + /tmp/cc0wMqvE.s:12723 .text.HAL_TIM_PWM_Stop_DMA:0000001e $t + /tmp/cc0wMqvE.s:12884 .text.HAL_TIM_PWM_Stop_DMA:000000f3 $d + /tmp/cc0wMqvE.s:12884 .text.HAL_TIM_PWM_Stop_DMA:000000f4 $t + /tmp/cc0wMqvE.s:12977 .text.HAL_TIM_IC_Start:0000001d $d + /tmp/cc0wMqvE.s:12977 .text.HAL_TIM_IC_Start:0000001e $t + /tmp/cc0wMqvE.s:13025 .text.HAL_TIM_IC_Start:00000051 $d + /tmp/cc0wMqvE.s:13025 .text.HAL_TIM_IC_Start:00000052 $t + /tmp/cc0wMqvE.s:13318 .text.HAL_TIM_IC_Stop:00000053 $d + /tmp/cc0wMqvE.s:13318 .text.HAL_TIM_IC_Stop:00000054 $t + /tmp/cc0wMqvE.s:13418 .text.HAL_TIM_IC_Start_IT:0000001d $d + /tmp/cc0wMqvE.s:13418 .text.HAL_TIM_IC_Start_IT:0000001e $t + /tmp/cc0wMqvE.s:13466 .text.HAL_TIM_IC_Start_IT:00000051 $d + /tmp/cc0wMqvE.s:13466 .text.HAL_TIM_IC_Start_IT:00000052 $t + /tmp/cc0wMqvE.s:13570 .text.HAL_TIM_IC_Start_IT:000000cf $d + /tmp/cc0wMqvE.s:13570 .text.HAL_TIM_IC_Start_IT:000000d0 $t + /tmp/cc0wMqvE.s:13791 .text.HAL_TIM_IC_Stop_IT:0000001b $d + /tmp/cc0wMqvE.s:13791 .text.HAL_TIM_IC_Stop_IT:0000001c $t + ARM GAS /tmp/cc0wMqvE.s page 518 + + + /tmp/cc0wMqvE.s:13887 .text.HAL_TIM_IC_Stop_IT:00000099 $d + /tmp/cc0wMqvE.s:13887 .text.HAL_TIM_IC_Stop_IT:0000009a $t + /tmp/cc0wMqvE.s:14008 .text.HAL_TIM_IC_Start_DMA:00000025 $d + /tmp/cc0wMqvE.s:14008 .text.HAL_TIM_IC_Start_DMA:00000026 $t + /tmp/cc0wMqvE.s:14068 .text.HAL_TIM_IC_Start_DMA:0000006d $d + /tmp/cc0wMqvE.s:14068 .text.HAL_TIM_IC_Start_DMA:0000006e $t + /tmp/cc0wMqvE.s:14199 .text.HAL_TIM_IC_Start_DMA:00000103 $d + /tmp/cc0wMqvE.s:14199 .text.HAL_TIM_IC_Start_DMA:00000104 $t + /tmp/cc0wMqvE.s:14570 .text.HAL_TIM_IC_Stop_DMA:00000023 $d + /tmp/cc0wMqvE.s:14570 .text.HAL_TIM_IC_Stop_DMA:00000024 $t + /tmp/cc0wMqvE.s:14674 .text.HAL_TIM_IC_Stop_DMA:000000af $d + /tmp/cc0wMqvE.s:14674 .text.HAL_TIM_IC_Stop_DMA:000000b0 $t + +UNDEFINED SYMBOLS +HAL_DMA_Start_IT +HAL_DMA_Abort_IT +TIMEx_DMACommutationCplt +TIMEx_DMACommutationHalfCplt +HAL_TIMEx_BreakCallback +HAL_TIMEx_Break2Callback +HAL_TIMEx_CommutCallback +HAL_TIMEx_EncoderIndexCallback +HAL_TIMEx_DirectionChangeCallback +HAL_TIMEx_IndexErrorCallback +HAL_TIMEx_TransitionErrorCallback diff --git a/squeow_sw/build/stm32g4xx_hal_tim.o b/squeow_sw/build/stm32g4xx_hal_tim.o new file mode 100644 index 0000000000000000000000000000000000000000..cfd6234ae6576b3da4abb983ef98bcb3aee0e6a8 GIT binary patch literal 165112 zcmeFa34B!L)jxjk%p@~e2on;vB*2gfAt5YbQ4v`}0%4IQGf5B;A%Nfz5D`$U8v$|0 zt)R7TLA$xN1zc)XDz(3PYQfpI0rE2x}{ho90ojcjYzHi^p`+xsjKWEN) z&U2pgoO7P@JomZJy}=EWXH=S|Y1o%(6dCanxTkqol{88Oii~~6i$>`K-uiHh>Gdx5 z)K7|CygYoUVPv>vt+z|8Pep!<$8%LIt0Hgub>&@~JRcj2uPaXjE(7)hHvoGroU}LG z67W77%RwujH+V!X3J#U6o4!21V$1UEib-{sESerGU*cU{`q=6z#^c6dvrKF|)UejO z*bCd9Se}2VVMKn*T2Gf)_loc#W9^l(iUXc-FZ4w#XkGGN@RvL*e0Z`X^9bzl?}Z)F z8OzHL__}T3Z}z0RU&EFs+OwtFv8AP9P5z;G%e%zN4sR*L3t5ufCu8j8t1Z zXJ}kj+i@8wajEEf1it&=d&8*d%O@T16ilj1S~@+psck=5PCw%F{|;kY{@m>Q0<38OH(}Nq0pk@ieFjU z#im0IHCC(kY&sO0oZ>~RiSbq!$HIrovcfH^;a^3I-+OW0>M8s$_@J-S6K*&>uGAar zT|e<)X1C1pz~0{VlMYTQ&n)-u&57l=n4X-vP~}&je)*LV+I)DbvH9?Lzyv@UU?QL# zPyv_(m<*@{OaY7oj5UJ04dXiW@Ww8)WXN8-w_ek?miKD9{~ryryEonW@wO3L%QIze zZ!PZvd?U&!z-5cKmM1mk#LC4ABeZ(TcVns3Q_GSEr8e#QxM4y{LY;|v$_U6f`>`T* z?wKjxvxRNr2+KxKY+tMbYt_CwZ>;Bk+FHyr+R8q;KC;iw#v^XEVT^tdmY2P=%QHCA zlvJs-Ie7YBqxiTcPxul~hhMku)Ze=etw_SD{r zV6Oo7%>S=PskKJKSp6Wge5$c$m#1iEQ$}TWW$(%xq-+-TX?oye<4mJvOGCx0pf;>U zx#7&*z4z9iH2w9(_twvup0k9%^Og*XCEeor_}n#jNq!yPX@&;w&)v!SGPU&0X5TGF z$>FBH`_Xzs-rkb>>1fU09L%3eS8JU=M$!3uOJcs8dsO`D@SD(#+^yJGhc#ul8Tz6b zb}T%JcFfM&d+&-dv}48bv}466m!`W`NIZ*PZ!$w~qfNuYti2^GirFuI(eH{PmvoUO z{VPcSw%H6l)4Za-FJ$?fvt&hmAD3)QJT!`a4A}>p|5~37IsWD>`D=ZaOYS{O?z@n? zqj|-OOzOig^sPv7$;GU`FM-_E==-W>?4OR{Dt++c9m%&1PBllF+l(9Nt#?Q1?$H>{ z^vazWwUJG^uL5r|=3t^*R=13s*eri_#k8Z9wKyM;a3ZZ_J9 zeeXA;w9vcPkkZ?*^Zn*B(fDTb9>K3Rmr334u?n@#shlIpscEk6C0PE9*`NilND z{P^6njxeXt8aaj5$SGIres7gWiU<1+PplgE{08jIs<~!NNiWWR^^fnFE&i;mtW-c3KoGl_xhqyr@y2eF-&f_g z*Gk>%tez5hu%X^t|HksHpX<(mvnznRA^A4V-QMQ>PA>g(v(MtbCEPM_D@$K( z4p`iM!kq~2l+x#$;})ce1wpYOC>HqkvW>Z)eY2Vy4Kn<7RTsXy*Id<(bI^` zZ&s|os}f2Z5=z%KpUEeSMJl-sr3R;TWAmAZ8rIl#H=(Y~sk<4akW;#qlHF{{+fg!{ z(stH4l6SJsDSf}0^Yh{rozGi))~3sx$&#G!Avxb0s|$C&UYRwVsp^M;Q4H>8wy=Ie z=|__5q{~YGCRt8;Vrg?To)!#w^6BK)*noLk+*j75lsbOB@nx&wOS$!uj5jbVR8P96(bestFhis0>_OxWP zmV1|&;fh6AY4LngcR!y__@tP1zei%-|RNktZRiHT!kj{##pdbb_>*CqBwQFYT{N4rrn1y9e^pC8+bXVL8=!#FqDS{LuF zf9$H*mCG~gi(zpHop%pX(jQ z+N`XK!j^lI>tko2CaK$qip%SuYY|q|#huxE*s*t)*sEu$JZIv0<)-ENiD!f@A+Ma5 zWwkmZ#5|BQ!mMyhnfHj#2v^D(VY-|V`X<$F!WrQv`@|CSLU%jIHgR_7jwgH2Agmak zmbBvH;vk?qAP3M7P+%A_xz~ky@3*OJhwAE3sScIoP&h#d85ozbrC8xGV|e<(otDvZ zLxZofi_^Pt@bU)f|I$k@?FSeImVBWU(Webp~zB zT8f-LgElHfjaf^LP`|K66d$ALPT!!Mrof<*ru0E4;8{{fb@cAv#-_(oV(}3Qx1@Ww$_U*Z({Xvf zxsA-BGHXok#`(97$;+*zI3DR+Su$oFb;h%&jNJJX^1ddAI&H=G&UKJbCMh%l%vFX(l}6?B?#D*&En_(}BCy z%gUX;p(UvQu-WE(++0$BVENt4Lo!b^JFO@QaCTO)+psCgHI3J zXtHC~MpIpngC?m)I;2ceeeo2sql&+bM434Jd| z?o}`QMe{SU;W%|dMi`nAo0?0O-(%%{I5znk_jCh#Do^OCdf8RYC9#n^nLia+_qkF{ zYi5bNA(qPH^@ofKa*o$}t2Dx@=c?9#xr22H^_)ps%8%Eh1?zijy;bUF)pHGN@NyMO zK|R+oEqUVgXuEOF&sO4QF^x?Z)>-9aIonzNF#P2qmU!K@?v5FJDWn1gg zVyjDPn})wyRkE@v{k6K1L3^K#O^fMls_U=V2pzM(tR&S{Q|8nZ?LXz!PziQ}ua%bg zke{LbX*+`@Nqc)&+HHH{KGYqMwI4aXaBx%FYXdN1A2xM+tpNByQz>$y87;l2Z&-Nj zUL#@l2Y289k6^!7nu24tmj517EwT<>VOgm2cfHKtKew&HyS=TL*)KQ8eX4RS*V8~V z^c$>MtEXIUyzo`25j4sGh*s=Q%!;yZ`7NtGCvs10tr)3zk9ud_iLttpIZb)5mX(~) z6nL$wr2F2~^G>%8_TQD zsn5r~CTFona<;{r!aHu();e>vGLckEfC_bO@&D#mR9yh~A zNm7N8wl>R|{(EJ#u`7w6v*brbKU?||2Hu>=c^20cIE$)nF z%iyc8zWNNnIe-m-%M&t$rw8#2*`JUhuO(#2iwPO>TN#P*c&_66RS(bdom}Bv@0;Yx z@sOV(c}+lRi1$IcVlVO`6fGE-jb%d?9)8tyCccN z&|z0D@@+{vMrfmqkblF54O0QL05yh3)+7qrJMIW#+IhZ~bo%!70p#l? zlCQ_@R|~9&iZzVo&zhCbDDG_bjZGh%hivq<_;Yh}(*c=)9?0oSkkdvedq1f%P+f(Z z2r5;ma!^S^Re)lYM(@@=fzHv)%HWWRGFwv0%F053B0wo%H1iziPoARe$8jeP8AW9+ zCvOZ6StruN*REY#4LAj`1h9g6?vj>Fca{IhTz8dUVYa)+` z(N%s9<#Jc~Nt7#G<;R+hlE-l;e|5hnAFEAhas63Sn-=poxMXqt>Zw&r@?)b$)XCce zM(gPYnJxGZiu1MD+6RSWryoIfxmWj7AkVXFe)(avT+yK4ei$vA8+6~i!J4<{Tl03k zYhG*;TPK9>tgnQv{0%O-vwpJJI(o!*%hq*!)lxiD*WKMr@5(}N*N;Jqx9g8b3;xo( zu_N|dEl#ys;Ca06I%zR6l)qvKTJSfxB!9(VX;C&JByS9jqDs4u>V0+VopoV^*jEus zA2Re+^Umnu0WB4n=l{TGa5ntCRk^>bjxyDN@5ZuZUFad}LU)({p8Xyx>$x^?$7Nz| zFhidJ4q>f02xw`>QWU?Odzig$T&?TIRaaegBA^Cvs;(O{vSk_(*Xl9$2*&rnvU+^s ztR7{$dhjfyu0ia;y_;(Y&q?a`2nSE%!f8O<_08^G|B?0N=$gb*dTdSjcs(+44X7629lmRV0}@8D^R-yFyZ1n`^I)7Y!lQ`qmDeZ@&l zfntBtHoSL#V^kmkzIoso70;%4M#ZzKKCXRxp=d2D-DjOC{LXq}(36mgQk>PIpUI`q3a%`D>c4zO z)!F&dG1mDKzewO2Q%S${l75J=x5eMLZ{Kc!9)KJ}&zO8ex;F)e^pr16rj)*Goj84D zojCp7I&u1|b>h@4cyj5Bf-6g3z|+V#9rt@>-0#M?*Xp>})YOawOa;sURQ>mjyFB?K z4k3&?=m{ZTaX*ZEWfMzNLg~fJ#DZx{moCi#Q~+ih`b7D@^_=(@!R0v1Cch%|2Wu?l z85D18-KSg3o*|MwgRJZ+w6Z7P%AUSf_T;#-CoI`h={lQwiSJmfv$Nk>G|yI^LEdzJ zrqrvl<1?i*#8>~yl`D$?Ljj}o$xzPd+$Tz%W!IC|^V}tpU6b^gPU3*bI444{xK4!j zHiwacA- zoa@uez!QT{@8W4_Iq(ZypMalj_6<&khbc`r9G)WmJ=J`};mJb%5>%y7IIkJ@OjB9q zZ;%Zp#j5?3qx>@R)rXtAu{amO8312_Y4sX?i-(sz)jjNX31<@n~E zXf9cigBJYdH}$=p7G=Zr`{%BHI z^yA#I5HJid+Ti@gxd-A|C!Tly_b*)@)i(yZqR-r~t+`j*F0KD4YlNPo>=(|<7Ki63 zdZzV!Gw%cK&qBUy@D0H%9HL(w+Ov@F9ykm6of~H%zjfm* z(^#Bnmg0UN!u>dC7LDHf#;zB4J%hgz8@1OQG;*(5Y&Hcehsx?_e^aO5ZyDCxPBY(U zQQ=rutgZYDG6Pw~zaV3F@h`|4fRik2HW{Jh{q~zCwI{e+)-XqSCJooKYspr1EDnDrsRvv2BcOQ#(`ie`M+KV&Z)jL_;c^+Q9le4^SHsU)x z%m$qoe~|gDyJhYkDXm_7Dweb#)s#ogq6LV|sZLBLl^Tet4~Oh=-{ao4m$icvVm%JA zJ{B5JkZ6u^^u}Y2sFoB;?EqJ-f0Ynxdl%)7dYUWh@i~Kct)0f-C?4MAD<0GC2vAE{ zc2P=kMsz+BU665w?Tkc@Yb@hhUu}+$PrQfcI~l3N$p5~TyAStTjq$4b+b+KETKHMR z7g&w4Q{nT`HI*A5^$amuK4{?X=iLT#NLkBY8o2lQbHisl<8$K||1i2PYWl@LeApXp zY*UA$i2920!YaQUh7BF`$O_{@L)sE{XOIh?8H06&ze=sR%!ojtL1gl z=Gum#Vz*}No!C!(+SI4=eAx0j@cR8r@K;#0eX`g-xs~lnm4Th+fYapOT4B8fv)6-o z_SEeEUi~QSFZi3YhdM%Nqub+NCwqT_s*7)dsYO_~83gU)k*9CCkfJGmcfo%^o+(Mzpofb^-o{ic(7 z@N|V?;FTLLpZPPtVWck(7)I}&!b$k?n8~w}AnQrmn+4=cdd&+INcu1h$P6^0&U;@F z^zhzu(a_`ZAJYS@r@Dh4)q6ENSV+FlUzrLN@K1+uk}qlbs&!<3m~I%!LGS5i$}5oa zS5!m|?{YJ91)GG8z+Bkqt+&g*Knc5BVV47e>${-5(k`bPDVw^2afa#L0tLwd@0n&w zR}*@tRYUJtwww_d1ed*Q?6S{Dd5enIn%;NV&gcD>nQ|Q4i9P3=S(ZIU%8%f^_X5+C zhg#^r$V@p?AL;qQbhj)|dnZ$NJ?`AXQJD>vm`%&+uwwz(4d5FVHI!`zeVvrI7!ENYk`8H0zkbIm~3}n{8sN^wLF+H;jSB`O3F_`%WL_WF9DrRT) zgo()&R2VS z7i1PAFv;KQI}Tbr;Q^WFQTY6v)1+-t=4q_GFzs9^4$eFQDVw~(DwbyMVH7r6#Zj4m zXN)ekilZ|((a%eAbh#Rvc|K!wS?)!msx0#$I!wMIN5efSb1vq3@>K&iOYPLm^H_WJ zfGedqBl8NRe)6>iDqNNMeF|Sc;5wn7O@B9B(#%r?9c#Lhp< z`xEw;=dVt=p8X9+xc#-3kdgT}B!PdfRrF=%vV#RyF_8IZ8n?(Qrf2rVxcZk`#bD+v zxaP07irJazQ14%56?+-pn`zEj-o9W53;gG#423f7{#;AQ>i&GIXm!8QDq7udwu@sQqoRirJaVk+A;jtYWXs3>LRq#k|Zqntr2I3>n_jF(3Rld2gd}LH}(j4Kz+v zGja_E^R2%taLbl~wGOX;Sl3RxvMg7$&;^ z8LJ3)%Q&vT^=_eYL4Q-qnKW)4+q`HA8JRgO{@yD3GJi~WU$%;Y%$^L`t5y;2p3Ovk z-CK-C!EFB@Q<|u85^emGqw!)U$e$gJZ!nqv;%IEf1oSuC8Z(!3gbrB6Aoe7b{=j=a z^d@Kfldyk*eBe>+==^@u9;3jE>@meI`vOsT=uflDfxs7-*8VPbIX#ez#mC>(E(eX2 zd9<;c>3tLZ^wisn{{+)qgU&Mc;m62$4Y4#cElX8anrCu~uAVEX$fn%+qe z^Ra>5eu`=SknO*MZX@GzkY>gf-T{r2Bu4c_)4Q2%C}g*ZnC9zj(;Ywfl|KK9n4`_- zOoUp~`!L&3$Zm6rX%@o2j0-Wt%?w$(GJXo$m+>@y0~vqf%+F{QCkOgj2x!n8DGz+;zVZ9Gz(ACvuA-nU0^8yW&Kg%5W zdntzkydU`2nuU5p7#rXX!N1Nd+<1)5pE z-YjHJc*0Y$ZgLBdb{8CY2Tf!zkZh#gk7}xra+2X=oiM3Km|ny8PcT!8InKA3-jOKu zGJ7GH0#gFXra2sfJ*XDkn;{dZBzKC7+Yj?NFofJw$>k5s$pGqQ-iYW02D9#4PF*i^ z8LSGFkbA9*`y|>029f&%7k4!R8Ym?9Q5SbBhC5J9?p_!7cyf!#ZFac5%}wwqImw$P zyBO0%;MAYqW(F)z_SiLp?3x~2&*DEuj(HaH(mbnQGSk!O3-DZMnA;$qn}$H4W&rcR ztjgoCqd1Bhpj@szjwP6tWEKMk0Q#&uW3^$f?I+WB1{l);Mql$4v@#=BPdQ+*kr_Zn zYF81vtK9x@5t7oC8Ob{t^Tdqy>reS>0apQXKV#3)e&a<+b-z8_)6{66521bszz7|O z*>jqhtL>6?nL_kuf8?XM>Ovs8-Llih{YwK7Xtb{L#Ck}V`FP< zCi89NrfDkkXJFh9F#6+P4>8Q=UDmt=wz&p2YB--ywB~uWCW)2-)SBlLt$9JM8HD;m zfLhbkR|YZy#))K#HG7qL5g6wIjQ$?nRLnaqYl^_(!;AS>$C^9)jt}qM-+x!-SqhUBN zF%0Kv7#2b3RDg!zyu>h^uVJ_p^_u`{&4t?WkHO$$vRZSIGG7PdWq{Ft8x5arSyKqk zVX)1Ejy1Cr!!SEB46`*1MM#tafOZ_wK4yc#XBF)@s?77iI2VA~<;B8dhWhF}UJ2IK z;G36W?bSGh`q~p&1|ZZ|X4h^A{Tz@d$rf7;lj&DcZlUOgtZ^zX4FA!rK2Z zFb0q*V^g5abzrOl82LAG1-YtEjx0}L7}*HVZKyKKu$<-H$A#spK9yWnGqDWsMor$g zF`djUeNLprSlqx10sXGw47jFGcLtydjOWOdDSvGr$$3C1U6ip!rUb1Y`p2mo&UE19HE z||mci4X!NOPy<4O4k1 z+x`X(^SDby)p6W!y#(%FKtEXl?$4Et)n{OQ0tjOo8{g*sp#SgK&4b+ z${LXIU>(DxOaoWFt;#K>zEi-h1*pEL>bnAr%K!y~(QZ8S4KS-b>qPAcbYW&%Y8$}1 z6>{ccM{Q>AV5)rr+{XZ_HcQpEfbk)qARq0PC#b!TOWlDSO&?n8#jVEtxuf<#j*JaA z|6zct{UAq%`Xn%F0b=cY7#rK#{z0yXKh4qUuo_zHA!c^P=0aoe)0|^z>~-K?2~e#& zRqHRncnl!MW+fQAinDpMW$b*Y-3vK$nWJ`dP9fEP3hqAus`gS-MpMW@>s}5)2&8_oJR9< zrn1r5XmBbZSGL~sa^~umso#E1rTIDi_{i8Dt8x|qiZ^ngr{?sO=RhjPO-ZaN?rmE$ zHK&4#2ctoeHVX27IXOZ+D~GX|&a8G)j9q2MyL} zqb+PSsGUYnJB#MdZ|^aU``n*_u@g`LX@gsKT@MGC5${K4ggxBH!8^NE z4}V4zb3`B8_Op9TWDh)?>&lyu?4-}`v5-B~fH4cuQ4fXYhYU`ws|QRX3C>kc2emz9 zdTxduzCy^o77}PO!&;VPpK+1~=SQgj0RW~KVp%hP+&vzg(O7aGL7lk@#|;|xA9t7R z{}9}F0eNq72LHJG0!mcimNEdK4*@^zE)M}|P?`kLhkza3Wkl-0I2I5tL&x067fl7h z1BN{4K{P#qIwL#}Jns987F(6a+m&Vb7h5b|_-zpKQ1FFK@Y#j!3ix)EN=0E6_dYy9 z9cboqVgGY>+)@6Y61HQVG7mbA{yAHgkaxg+jw{%g&~CnyJ&h7qV1};+=t;|8vX5b0 zLrD5mfO_AYE#BV?#vOq0RG305VFS-x3*`vNe9UFTAXGBN$M%C_S(F~j9?LZO6z%^G z$Q_2e2%4OzqX<7{^Y#*R>0nTXBQ?!893`=A8L+d#jR5klghsTPO(hGFFcknbxn509 zf`cX?9D)Rou);%aVy;arvxzk}ah^?VvIv;Bg;QZiRy@oPBM1XTeSh1>9a*wKOapf^ zAdh=gw5g?emw<6PnPT(KEIIQT2hWb7ciG(3?aZ3n7rMR;#yT>;!VEHZWsO^i=5s@s zO@O=;7`I(na-4Gk80P}iu%r`CO z^KND;{A2UC-OOVx=BIAv0*jg6Ki*Nnr54lf8M#6~2AYdF$=107iJ52Yfj;vf+H10` z%aS$a3vdquG?44Es;Hqqr20@&0(o}Uab#A4QBI}=^6ac?266@9bU>~I^6ad7N_wuh z!nIz*bqxfz016OngPDd!5X)bcwF(X}qbNn`#YblK0OYjiYy-$A+uVW3U>Kh4@`hP^ z2lScO=iA;St2ciE_m==QJXyW@9i;9D=nw|frnAF_aTXvPg0lZo)>d(?p4BZeYj1#R z^Y{4CV9)9%d&QrF@gSL!wX?d-VYL1T#w%n>uxEFZTpU$^!(4y{dv-U;TF(HSlandI zuIeTyq)&tSBtWyaN_Bn!#(MyDIoeIKHdu($bAXezC!<$8cbu$UhP4e{(FkS&@zIN-Dn6KFys4pS#1witZIrh!+btP62%hs|UEy2Zf#zR1PWyv#&v^QMEc!ABB3$a({-E4H&INZ4Kt20Ya3W7t z7U7;X5uo?Mw}Z!WoW_)Z0Z=F235pY*!59KCg5b*uM3S$d2bz2yHG8?tW6(E2 zi+L7DUUH@KLMzDy@O?pD-a)Pp>xU3Y9@&Gk2PtBV>9H+~G@UiGY zB3TAPA~_v|M6w2iL~;QLiDV3fM6$1WIwSdIh8_p>^t(f^`#$cxMo#5UK zD1rfUpzshJv7Y{AL&m3!XI;E+TXJu?cu!cogK=JX6$X`$9YyOv@ByeRGTv6q@6A{l zcJVe@a>u!NS6Xr>x_H-FatmF&n=HAtF5c~y++{A_ecYCC9@EII|doxEdg&}oL7(s9$$A_ zGRU|`xT)Eh5udxyA=WQ*DE*v~GL$I_s?fH48kZz{Sq|JX%NY_0%f37IE(!Q8LRmB$#yVnDxN z2f+N3G9LuvUNWCZ0rPET8knJnz$`k4y~Dr57#Q52J?p_6fn*>r9p2eIewo9OC=i}C z62pz6^DNo%!jF2+aa!DHwU}eIkTF7wC#)8$+q8JkYH@jD9|cTK_Kh2fX=%Zzd=F1^ z<}I#Kc>u0VhhOHT!HA%Y$}L^wx&0h)>j63{w{(&BQ_q312jC>xSMF|IN!AnUoUXw? z7yZzjVHV#?%7SYwzDpKn7IJ)!bD8-G#CjYD=7b@(na6dJxiALYV*zUBab09C)Ppe> zpre1h4qr1EFOeyuKSr7JaZ`u_bo5V9<`2NQg-jX!vC8}ajCTMgltj8MT^@IXV=yZKYUXX}^0-?D#!!HcP-D8x&)s0$OQwv_c4dw@0nPw) zgzix0`Cyzyri{>?%6tNhM*v0REt7ABDKy)PxSUCFBp$H%_UyXZl7B8yzF=2t*Rkg2 zm=AJAxgtIBRw{k*uRZkG-wGutf5j`*6K298HzRi@M=?ds9bp8pv zF)!pcLIOH7T~2{=#$qx63Sh3maK~>VJJZnMjkI|7F!@G9)-1uWsg^g=Bzsnadm2Eu zEpMcqLWyU<*bUIboj;_>;ZDvt^as%Q&u=MnIvAtLl=shnROUV~ehZL22H&LRKqp4P zv(9G}+yhe>CfnL9AHU5TXohI>7MIO;Q4nKj-sRZ5B~2##2yh1jbmzS#O(y$dFctuu z8{Agy)V}e_tB!=F5cLDiA7X--GhN;8K(`k|kGYn&RtfKf}PWN=iOSAww_P*ew7Xz~J>;>zHH zdW-K&M$`|)-*v+3e3vWRAa+0Wmk#x`8*hA z&fxw5>w}c|fEp(D0BCQ{9c3H+L5eJI*MNH^ zKo|87Ql>40wjE&H2hiu64^!kxu?dV908Vm^gf7~EGbGuVhEdiNo;5bX4XA8MZ?p&` z`9EcWbQ!nVgBvmwo3~?6X3f_W8LYetJR1VkxS1((V|*BlyU1M4MR{h*soXmjOv3ks z0Np#zOgUo)I$Q(BDuB8%Tiv(=jICtKw=Y#GvN9TzaS}kLycdk7NCuAsb2y-1Syyya zt;`$1xC~JAAv)m9J|0HPNJtd0O{hVvxq+;f3iqb)7go&~ZE9Mqn#)?(6yzf~)P@kp zx0i_G-|2jkD~bnT&jA=_W*uusF)2mzxJM<q?D-~;+0_30W>y#jm^VgJOn7f zvLMdI9g~G(c{23h9f;@EcG&$K8koOyI=wp}dF7jeZ3Jqx)4KzbSKGn74xpXh8_?6T zsklo3bU^M4$bcLRMk$#xAU_GnfSd)!>14`){8X900AmNBfM*hVcZix;5C)nXIq9x) zS0UH=-XBk)I*6P_Ejt`7&--Oi?gsZZ zKv5nXmZBx!_WnfGtQy!R~OkM@+jj6K{ zF@U=9RI<2{SB2#fpsDtoWSL{-V2lNX?bG9;bFC@V1vbT#eYg=$wN{}pAO5)cmJ*1LS`1vP7-*u35GZGEz=3U`3J6`;PYPnK1|A2E!7f~gjNOD$dk<|04=Zfxx> zMLs5Oj;qt>(CKbo|q#_@M5At%o6MZgOn+G)WeKylM;pKyCOmNfv-fV2lBDw7~qW z8&o~+(q9K3FGmCOACCUVlVrv{0PbA?)&F?X6fR(?HHPsenCi|ilVsGFfO#sQ;C3gl z*0S+RHZn4?t?)b3V!5>%l!Aph14lC)rzq?N@hzCejN&nQ!-lu@lgC z*@!{ukuMvt6f1~x>2HTY&;oXcLFql2Kyv|egwuHfVRuVB-nK1%LYH-G~cxT zyaIk2TsB^XV)G@(w>Q0#7|HW6uTZ1Dz3J5*444Z5YVliM3H;MwJO$`z*;thZ{Tp1J za@lwj4a}1#K)>81Hh5*UgQwuJ1U1^}2Ct0vjbL61&`vjMr^)k?aR3d|Ca;8PFc^h^ zw#&v1N$76A%Z5F0{#1yXKX+`H@0H265!?#_YQuc5>`U$jqY=>2ve7>qstR2CxorFm z4e)PN*gh6`Wm)QdD)tZn)nDM1W$8>XmH^b9LUre9FrEOkT{h0?3C&%+iOWVcdeUX1 zi#NX8xW79@zw{)EUgU^=>51<)1_U9x&l8`PTsHm*1I#BKC-!+{?d!7uU$p{c*`SN@ z$<5FI%$rY(KW$eMj8+M&3~BcWak?&$z$+2{fZ_p(8k;+iYC_Ahd29t+KTsQFY! z^CFMj(BA=fKR`ZI<;DQ_%-?a<$#XSt0^5T{+kC@mp68KA?ox2`0Xm2CJTrOg-v-9z zWXc@Q^PI|C|3_dn19af}dL$2L)ZqmaAY2X!-n#LL3vPyn>2>u!0t|lQ5`>UW0Tup*44P|W5S+}9?i2MuR*ObWo5Yv z+{*xxur%LJt3mQTt=Ze9r4Cx|rWV!ETjTO4a9#p9$@&QTa3?F>v9;ojzd0ZyE6tmc zn^BvbiD&g-GDfbzNJ|?JCO$jvfj`0=lXgPd@oCet@Wg$LL6l?(1n{Y5mYJ3Yfu!Tp zOw{F(yhbn3=m znv&hq)vM)Nuc79IblaDK>0?E_cOr9Ima=ma*_mcHvn=&H<$`& zLx7iE@i=;v*S8&|$(GW7kaxmt$%lr*X$|eb^aK<7x2du9Smh5 z5uO5&NF9;`t_0VUdVM)ODNMA`YHvF}u-#f)dy%b@qfngS4m1zyuq`HmePKI^(=7fi zzWk}B&%o!MjdrDtdx=n#s4sv*QI`PQVyJ^(%uu|+E*vAh`E&YMOpkxKCX z<6Qp--6(`}Odeu}n@QFB>H!AEpNJyuB@c(+6=-cS-)@nRJPfmr@Bj4_DS)SpEwL46 zP>Gi-wiIbEwhUPNv1N;d*m4dlv%}afh6s#GCtj&EeiJV|NDUXp)dML{TB}Pb%5HB{+yXE-L1T%p4*vmWT|I z8rR`G=7-*hM*x!l(Q7ocn?@B;8GtdZY9uuSfC?f;N-Ids)e0hxgjSGJ=cH(-AvPYt-k<=!wAleMj7Nowd6-3*d3R1Uf1=07N3Q{j>1<~)F3R16Y z1<~711*vzmg6LhRg4BCjL3F^WAoYP(5Pj%WkZREiqJvHasY6;p^odhJ>abQ2edbh< z`a&y+zH}-`A%YAdkq4l$5=tw4K>Q+3D@gI2A1#QOW?Df_onObI8q<%c48Ud)NfphA zh&v-9jq@OKGXO1!>_Le%l6p!ji0na$G?IE%D~Rkti8PX;p-=@%E|f4mG#Nccsr05( zrnJ?)R^>bTO-4m30FyEUsGE{RJ%p?#$^rO|vwX>GjQ))*^wm0|Q9?$EaNGu))&g`0kDax7br9s*DIBb zQoU5w5Um3Ejde!aSC8j3vT&Z%%_pLPodk0;s_6&uH}E4sKd$}ie09SWVCrcT;7+{I z*w+xP1gIB(&ykh?T+tOJQnml%qrowC6i8o$=nCaauB znSimj&1lF&2lXV3hN_}31yU6y;zEHWBbuXJBKF@->gi_a0;#MaY5?f4eVNn9f;Cn| zmjjUfL~2S6DA(lyeGUNqFjp^9lBfZI>44w(MQKC_pbIr46|Ysw2ZZ|>Q7RzuerDe( zSPSL+XH8(bG{CQOx%=q>?$`7~k;Hyj#>;U4Z^o|6t(oS1jpqO59*pn61N-5rst5uj z02&=qY?2TY21=O;so@S(14P;jlzs25>I(sOrQMKf0JP~wnH_fXKjaNl`Wt$~CT+Y? zW{2L)@35Pps*PwgK!Zk#P1flb78Bb%5uflWk9$hIv4o9564vVoi{6%^*P+-+tl9UzWce4sX0E;vw0 zL{V(dh^mxJ#K!IC7~ZRhSj28ju}GucqwBE^id}0wUHNWpK~eQJ7sE`jBF?Fng56x^h^DwN1s2L5w!)Snb ztRuPcVMsETI+NA}i033$FGKMH09z9`0JI-z&A8qSU^Vei603KhsGhG0(B0oBR=j1VUek-y1T@*PCaDwO%fRe*o7*dP@QKgVIME59{h)!WH5Xs+a8C68%0pJo%60(XYijKi0su8k^h$ewc zG+((yG_sx9)UKIoWF&56ZQRI6+{juQ$v5XnVWPo8))Ea>E|D5pOEgE!i4dugwRZSi zlK?t9xYR8E8I%>fIW%i70FN|88oN0}Z!4Eb&6-10E@nlE)T}viv!Zdc=ETinj>{#c z+XZWels4LN;ap|6--c$=wp!A*GSZF$7f}EjDM3^S&_NXl2hQn^H{ zluNWuxkTqEmxxOVdLz0>xkPliorh^~+r9dMi##LB7qW(Eh;oU_l}m*0$0$prKGhH{ zRW6bGB*!FYDVIpCuOa%Da*5P>c{bmuTq3o;29#V#9ND>-0W(u*1w~qCjYoL;%>A%r z+l6h$JOCMt2oXiTL5y_mhv%GR>iHZZ9g7IjtpL-QLv$ZNZ?UBI0ML@?9Ueq)6eVITw1U(zT0z8c zXa%WLwStHd(F#(RXay0S(+YHvaM3J}alM#FDblSkOU7r12{Jxg22G$Df3FE(I>u!Z z7c_TjQXcombYhMP=w8GE zsZh0B$o-nJ8$@UZETXi1xgFdLCN}_f-I3xv2tqAUzK}=PTZG~N59=+{AL}Dghihmj z3mlrYb8(%3?LsO-3(RV`X2&%?#IDVlK*{ONsSi^unNExw&0f>H$txS}>pYC=c;YuX5C4Z6=~R zK3W0IQ7+MG$|Z^^mx$d#mWc23p`p{)`m_e(XxPD}W<=s<)Y1$#!16()X4DcbQ!bI3 zQA?yIp)+hRQSf0u(VeM0G+| z5nV214bhcCRuSz`F3~RK61}cmqBoUGr0%y)5q&bPi9aw`@qu}i#HWUc{~DTZg-DH- ziYg*HsufWFb(iDn36Mkz5vilKL`#%Qq>k1SU9DUqb+ne~LFE#uqqRhTR4$P^DoN-U zb0b9RXzP;!b+p#)Xrz&j(mU7*bw_xqV^P~N&DywcQQJ4Ih`SfH-P4M=hf&)@t%y4r zwVl)ox~qOhZ9lalKBiHQsXdTUmw!xXxlnIqK1G@K@ieHiF@v>{TXYl*nJfJ>xC*AiWzTp~5PmT0?jiS`It zOGHbLC>_;Ed4+F>Gb)yqiiRi=P0|!0rHgu$h*oI@sq+9>hlyyIR*6>h;CR3d#-Yc&I2%nZJ#w!(ZO{L_(%sL zdc@|DMp6^Bf{0FO1u6V#JX;XaJ*^=%7}_U5(hT zYK1*^N0hx#Cztvcb^8}}`4@Hj7j2CD7j^p=l{aAOpB$Rl{zV(({zcvXMH}P(Mcw{I z<=Z1Vh6&;JFWMOQ&&hj_<%JGD6WnfsHP4oBo%d|S{3hld+3BC2iGD>%;8 z4HPnfNVV1y>9QRmQmwT_Hv=F`q*`l1IhQ+5{9AeW(#xr|2$v5O>BKH~%lRmvU!t>x zTtL(S&`c)POX3_M8ZP7lqIm$7A+<^>B1GR3askno0F@C+%!>Gc0syTbrS^W!zC+E6 zy3LC=(mb^(>b5D`NShXjAyFdRkZ5Dvkf_^`Xk*+EC#RuYu6+Dr=S-xg&QX5+myLP6 zXDey%s4p(v9>v_$)TnI$c_{$r$J{dMX1z8YZs^fKZ8k`26GuP!k7z>nPM{~1q?4Qg z;PTE+M?um!`6m~Q+H{cocPGIO0(Da|8>okpy?}C*%mdQ-RT~1CuiOHlLM4lU_D(DN+W_>mlCJ}OrX(LJ8E**0wN}Tqa;bGLc+R=W&>IgZeI#p+uCX;l z>j3bDXtR(tL{}=8h-y2T+paZ7wbl}8up&gNwU&sV&K%x<^QP!TGduiF6r^5WS^bqWwZfh~5^mmPkAAWC7s@Yplpu z)dAh7B)fS*$++$+Dtt$|?*hH288=MahFehm^!`t1AQLLI6^y4oGKr^>rY5 z^8h#AX?5I-goJ_|u57?)0Pe$eKzAug>z`FJt|%H;6h&Ra#rZcBfH_qM^g|`%ZRf|^ z@_yi49#D2xU#WD5S=|lw$Oxi*A?0OXk#dPnQ!Y`xa*3$6lk8!4$QvTnDu?$P+X#_r zm6Ms6$`Yy84zrr6^)*>dkxuMFEiN4zd384(MJ$6v+k}h|-KAV2&AbTF1Ii_ONXQ7$ z!^$Pn&c7zBbxKvS#~Y<-6}$O~l5yQtRQQN;9|QV@l6!!jQ1VHjr<8me=vgK4+v;*< zH9L&~kjm!)U8-cf)9Sbv9c1;f(j-bn-&T^=-=kz)Q8ccov#h2XPA?>QyzTsW+YYmO z78)TF0ze7ZAe4~JL=}vJNn6YzS`A3XV`$1BavDi9Q}G_1i1C2A_;oH1D2^#HQ?b3Q z&{8m73oY&+DRc7};32$%?Q@hG*ccss+SqZ)~e zN8;ig4$~}XY%gA1Tro&Q6loPNpSD7f^r!|Jf^$JLZJ7WaT?_)W5?NY_xD^1Gh)U2G zk!D>L5!JSz8>qmgY9n#AwQ;qPxY}CV#8zvnJ8jWBJqW7e_^&HzDbgw)lM$|chNYKX2>E)hFIREc!{M2NJ% z8c^+C?}CdNLgbZEnM0%x;ZdSlV(%QH8X==Zs+G61gew~*tfEAeV8+EigMl*Fl@9te zusEQ^w*yRLF3|`yC7W2gpKEtd_FS-ImI$%h!pwACqfs#lz`HgO+ou?38R>p-avI~! zqOLX$8IOF`jbJ_j!00^*bU?{?jH;-)3IKs9kjAJAV(nbVf~O-o_c4%k+j98@C7XcY zI=MXGC{@yS9$edZkZ%2uW9GA|nAqO@v*k6rQuY5>gXo$FiV}1}Z zals|hMN+YG6x1YlXAvPsgcx&~;jl662j zld9ugRL6souq|+>5jD3rQBtKh*8W+NKn8Ug-z5sMPBl`GR`pr}^0$+QAA zE(0LB&I9^|l5umY;szwF!c3_$5w4C)beJ2Q?d^>l*EjS`r0YV$1m`3}E17KbEe*tV z79XhHD;->DC8EC=3nKk=rizG4z$J1mQgtXYwuukU?({1~9NSBAG;DRb9Qz@va91GO zC1e%R!^$P%jS%J%J*!-zmz7IYh;E^Qs7S~vqCv_fqFrq*N6U7uA>bkXh}5zgq6d{r zq?XkX{YJS&YFQ1@Ysw{hOGx=^7+U8w*7+LaW=3eHZCm^aN$*OmYrSH+V;%AyX{_zj z)2c#PGg~bpVlE-BM0G;e5S=Du713%TYlzk0o z-57VP+U-_#Bi(8cBddun2hhmsMpEi;wcB5Gjtcd++U;+3W8B|rx4(&-a1Jw@F`L%*ms%0;HDdRw73}yi=`BLUj2n=x4W=4+%mJ z5{MfjY9Ow&_(1JmM>kpRhDDi2H(8Q$ry&}v0Z2KbqnoUwn=B^7(M^`zG7_INb>Xmo zk8ZN6j&8E-WU%qkO;+R4O%{^jzu_cnEY!5OSLCq+_KHLlX|-2$@4TB-10_4S3c-gi zqAfz!5`9~_L_bk3(GKMjJpkbTxT=v9yTKzXe%rk!f{UFv5tZw{I^K=EvZH>ji1!p> zPt@JsP8@9O(ilXEZ1vH`xcaE=1+_#Qhy*mY3b0 z>BVb=BANUo$695(y^U=>cGhoJ%5`6Z?S6Mya(2FP zk>WMRio2b6PbypfjDlp2RX)w~bF?MT^E+N#P@*}e5HjyvG4;H z=3lb#vgNd--=>qc<7(rh^I0Qg&kK9qIXa&;E=T9H#=)Nd{~PA>cDye28Yg1K@R*-x zbTLd^uo7TSTC@C|rEAs>tFDSHT=bpQ8>cklfl{>6@%@SkS*=yGfTe*Dku+x_; z8MbK68ADc`xoYWS5DbNw(W5gz!K3U3bRF5vS9f*rJsS*DXI|=n|T{cHL>qSFIZw<6X-V89DsibHTu> z>$GWA6cwi}T?RI8I*ydG&sfwRn;o_z4fevN?2R|CB-2QewbOg>I5XKy@+SAs%Icov z2bmEjja5nWRQNt<1@$N$1@#2 zUjF!|CnY7%?4HyG)k#p&8@NjdWWKPx$-_Hunbln^khYcqZ0p!kV5tcwb%kcy#va6{ za8d?Hvwz6rLlVU!aK-WejS-+B5`j{eAFy^t+~pjIh|8tl++{k0nA?$)@Q?WBF7Nv{ zT^=sclwOBBgZ>|JIa?Ag3F+`}yX;LER$TS#Cv*iU0rD zdk^@kimhRPP7XPN009C41ccB*gbA#Z4-~RRZOE2T*naO{qjBn{GSBwl!-iRc01CV^tv8JupG$ILA^Lvtb ztC1Xu)k;bWK{o5|NmZbz~ z*-igi2W|9QnSZJu&|OAy6&sotYIdS)$(1$RKr$0@ytV2w+C^PwBxfJYJm6cpxzE%)tQuryct`bgav_cnYSJC4# z^?OF9Akr`?mXMr>Y*}ZNR*vC3c1y@qsLoz0J6mJ_r}8z!=BqaON>0ev>E*NyWsLoo zGq$cA9f)6L|)1xE%y|u#p=RnOv>C2_w6NdGHJ8l57V#N_G<_Cb)@>q z?2>F7K+nHaLdged9Y>F9qb;Cump^O)(g4P_NsdINi%D&rl$KCRZ;`pS8Do+wxQkT| zOelFt9k401NeJ?{WG(nouIjV3cuF%oBaXG?{+qArODdL;xh-WGK1==Y&-E=;%gFVE zWf@jh{qN89?u;^W{ajgwOEUgVxz5s2!2cuj5>@EcWBKPtp`U7(k%u!6D#P$Z?fGW=Fp?(@2`1Oc}wwWFB53neD{$GD)TQ zeZq9He*bh9)$bPPw^p0K>Qy3?9Q>ssZKtWkQcr zRW~>Pb1l63pKalNr18n^WxR#oS9S}p{AXKu|9F_CwD4?N_!obvg%5}aS@kcs@IV&- zY70;B>NnN{Ur}XvI&cdg63AdFE&N-r>DEX-(re-4O1AJ1TKw0y@OxV7a8uphf7mt1 zB)b~v=9@`UN;QU+w%{mG;$3wdA9yi+8tJ ztwbJYd3o%vZbHfWxU6K|*fHE9{Nk<AF@=CcAGBd zdUj#2Vr)oq1(}LkQ#97T6rZwWlViINY07oxz3jlY7^>+r+Ym^ z)?m+B{7dNaUfn^5N4Er=6)Llf4q)4G0Nb?(u-$q9+l~X+_BdN91N_U@l2IdBmvbYr zJ^EMIjmyRVr06&MCsn`MKb7^H{gbBOsT7^2^S`X{{Ow}5V)_3f>RVE^ z&TZxV-_G?DRsNqv{alU2sC&lOZ%V0b9b>9xCfCxoBewwoDcfrZSy@@$6S`paA04j# ze69Y@;p%^-mZU~fkm0H!y2!S-N?kNj-p4L3d5LS|wL~v9wKZ*H$J(CLKD>>;j1hmn zsrLoGNn^;esc$CJ1APY6IR4s3mK{E1vEJ$%CU+2@vP2?td(WY)b6NiyrmQ42jz6T+ zi%~C1Eu@3o^{HQN@*4j^VcohUTv~GVM51q*aBtkJp1>bI?v_jUKrdso z3-x8%Zw2053BG^wZ+bJ~Qdz#y8$`KHwS9L|EV@7z0ktEQ$35D)yZcSK1^h5W2Ffg% ztVQSO`cC!CShKihifRrHYDTN3c~CP%HQ7N;FV!3w)ZD#9RSy}d;br1?T$KJYY7gplci^NCEKW7G-9Bob?)q599 zOutKvvIZbaCK|eYtJ)^?tx`1I#^p6}8O`sNl4_HgDUV!rF}-?ba$Q~Z=;le1Vo_v7 zXV@pC2e+wlAji@HTgRjHS#GrTfgO7x_q8GC9N4iJ^7bXt!OJQ~xGKMGq`iuCD~$iq zg*McRqawDVlH6ar99AQ_8fBGi*)6#)a=KD-Z^eembx>R9zFHq#Xi3*hbghj-)vT#` zfs~YE(1^0@v(FxLlY&q@!T>(kMk5-ds<&7lCSC+i^p6*J6cGCg90Ngc^ zot!7d*jk#dUMbmb3g0j^!+lqmI(3;bK8P$F#UL_Fi{PNYz##gWH1tm`$RVQWP<`Z($mLNAuJ~$}5 z=Y$WNY0_=T#U(@b03Aoy+i~P=oA?`L1|SbFUNCJE-K?>0zOrtv5I1Sj-{o;*Gb9K&fst#1AMf#U)g+EFww87dGtX`6-b0&IU zovq3Zpgw)oJ2hS9(pI9fL^w?2lV;H@?!z?@nQzDnT1w20mOE??9<;-4LiTU42Ccia zXje_*H;emA1+J9}lp{v9ws@C%^^x((tF%&GC1+ADjZsILw)Q^t06K4qZ662NTxOl7 zd9+ob8M(zKvh90ATKak& zS`W4&ay6cAQo%L!LiY2u+2-pNo3Fbi{h=I`kiGm>joxWphh97TR-d`lkQ{oKl6|ah zTY3lmTk6HsHU1RHP93zuT8teNZiX_9&(CBPD@S`B`<`WVp_YHm@F2WipWXZiq~lBX z3Z+zTW2uf5&DtQTI9`l*_q{Ep(MTr3YiOHdu1#m@b8c-Cu|3I$D&_4mK@GjV>|rhC zV$ns;R!-J##U{%=>N3SiGAmR`7Dm-3&wo{_>?C>LK_yv-)@~{?G}g_o2r*x%U}uxY6h|ouk@NDrk6>^pB)OoJk7)=v_xy z;hC%*cLP~DZ;(_z;mUuNQtB%GkzD2nNVv|NBlDLYKhrUcKqdpnqI(&)W+4S1N9(Jf=vgHClR^gY`uRTMjaTmZaJz zuL%{HBF!&(u$@usQw_~y=@lp=jZ~lvpuMJP@X<;Uji9Ey2r)L(DymyW6<<+D6?L3F zR#hjPmF*wvI=lSy$@+G;9VxQxTArKANK*8b)=JUdqoju2&2O&sI^k+gaTi05tk$O7 z7szX-RQdrjTcXl+GW>^?F3l)9W|YgYsT;&R4m#_u4;X(ocQMaHRWAa1_auN_>vx9uS6M|?bY31ZkoE==2I@VOZ4TO zxtzP|QZydvP1HwCg(p1G<@1`&Iy+tfIfEas{zO;xgFt*)fgsU(PuOV;q{5K)RQO5N|Jk(q<>K<%}LU~*tc89 zB&W$WD(`Q^dPX?tMBgUnB7^wCcL>dO0+U+OG`|N_0&q(W3-9ems%zCKh?gq ztFaF4b#Jc*dEwf&?^tyC5}7J#V&v7Kzm}X%nw)l8N>RDPCy?yF7)VDAM6TL|Kz2(W zwK)EC$!I8b2t!lSNxv`Dre9eG9EHu{$L0?&!lg?_MXP96`-`0roFN&jD!1;@n)Y8t zn>L~Mj32L%cv%Ks#getPKd7j`e{GJGYcmj)yz`h6ohw&nK&N-6(GwDMf9A67FPH5R zrCzr8Rs7%KSgu5U4Zc#@!}0f&(tplyd}$@>EzsS%p0?C^)c+30e`YxToaJ())9Jl=&11ZC?AIL+0dpMRb4lo>l^vA>Tsorq> zvmK6C28QE|Hqny9@q20izZs5SV8cmPb-QoEdwau9cWTJ$M~+N;YS^0~nNjN;s8USV z>?+CAU@OSS;{h7Py={mL3 z_s_z2(PzmU?y_JKv%_}jJH_NyI7i?5t}au`+e&7w-ybG2wB~vZQD({7h?e7jNey<5 zT~m5a<(^R2AL2L4?oK@WuiR=6nC61;ZmlJ>$?`-@7D?Srg4}&NNhbR({@`|cfZk5u zZ@Y~?C2yyfrw2NUo45(lr2|=bw$t)yQX_$_xB3t{N0Kw4zq++s97?$}! zBTFwZjls2Fy9 zybfU20Xu+He?3Dlb-S{WraJcySf=f7k{XI4&>z^F^ik~VtRgGzZRG~HiIheuU4vYF zGPRCnx<#yL(bhjIwEpr;wf`UAC-#vH>mBqo>2+j`lojVbdZ9;8m2UB`^h0t-xlJA@ z{Na6R$@l_KX8DVgDQ zvW>FXsIj)KqutU0LXA;THwy80t#iE1s`j$tI@;pm-0%pqgA^S;6+*b25*=k!; zQ`X;>^Jv*`WWPx0=@HxX!o#JVWa|FiM$)FFrX7;|3&wZU`8O186D`{G{uJ$KuWJ3>n_RFF4&rK-ltd_&GclT!L~MI0Sx3pjh0`nJp3 z(RB6shlTtaDH%;OwaryKL9g>GtNrFk>$1B|lhb5|BunS|o^pj)Gn(`RvNbp*+NFrG zO9$PC_It_2ZZ~vxNtQ+Ys@>)JxNRb`g*drtTX!YM8oth7q;%?XCFBeUMlXVwfcoND zUPvGv()3d0-A4N!(pbHyB!vU~bPtGo^U`hOjzv%GqH!ndlUvzaYZD?)<;0P{lpFEa zM7(8>9XrMw!pkm(w#lv-mY;IvS08l`Tze%ggo!FSdSp69yH|@0s6k?#v=HtWVxBFUnpEC-j;- zW!}{Mf_`(S<}b{fG<){sNmGt91Lw&f&$pzaM{z-6k;_40-t7EI;(UH_QQo|{(`HVO zyCb9tee!YY1u$f8{?Ovtwy@^SH$6uTYiIrR8a8amFf$~t-_+UpE^N*7@Y$12$af+8 zIUF=0FK;0wnKx&u@zXGTUU9*cd|O&t5YD4bodh}EFL1xIOwpYAQ>M%*$o9TSZ4JsD zbo8hR!}5d{_Hu9&P{%Nm&I_RH{`lnMo0bV8f?ZK-hzl3b+v@ZJP4V^c8Qo+ok6E#_LiWi1U zXwam>)ukMJS1M7m61jEj!-kyy9p_ad_^e@!EFl$u^ym`~+oU zW%M|D_-Leg*9RaT7 z(i%}PX>Q?6?FD)j6wE7#=hPLgf0?RmbER2IY;!j2o@!{p%z3slTyS#P##1UuDskBj z9VtDCyXL)=$FIb=V`-3F#e$*v9Dj$Qvq++4B~- zvWK5Icgl={dD_nv&YV6se`==Get~hlin}c0-uewYs_&$^(nl1~2#HZ6DlW9nh75?i z<^qe$e)E&AN3-Z9O)uDC$Movi))Y%6`DxI)^xPCuG{k88$au(7_$@u;qkUOE zI+SJ5o@9{iV+PqyW{~tUL-Gdu-M5!EZ6Cvnq`dp}_J^7Yo>nW}b4i~=hv;eJt<+v+ zo@2S7^5)H%Bg2k2N=a2opOnxXY=`89<6_iqM_igdgOAS4%RVgAorRm(u5G(^+3nhP z%xpbp%KYM-Df0@7@)x$A(?R5-8O3uZ3#W;G+WZqbv@V?AdTMqj)y$qZsi?J_sGB3r zb*d;P6-=3tBWLZNa9DopIjyG6&ul$i{!LvlsbE^`cA2e*h%{}gObl8Vy79SC&6eIG?$N6TX}+Ou zDBcvbUOZ>=-A*%P7@joMH6MTYu^}_o&zL%AQrwpteQk&D1r%>S#A>hle(eGsTj`ni z1|F|43hk)eZ?15zOfh6;70;RrQs-U4zEW~9p~um~hL1>?6ZASk3Ynzq9C2X&-04L# zj2&#^U5}1B;@xk~UIwMr$LEsT(x;c~9=txln~3E0w1Z#5aBX__>*e>veh(D7^1L8) zF5}O!{K_s-#NIe;YpzG}G-)ed$|uC@K`S#brPW3_Z)z{sJ0?tQwOHd_g7ntIdkyqM z^9EhI4=rrlEXxYn&O&C$wGj`(%eI|4xY7xotHae(d}iQXsi7+> z(TirI*TSL^!}^pgxlk{hH?UXkuwFfF>eS*`7+~T5n!}6uunks2g$ozk}-xBQ55@-Zks;&`8SiOcEJ;EOywTa5T zLvP=+OqBBrU2^{0LR%U#r?YBUt-a{u9 zXq9+@ka&})Q|7=h;7^OoJMHZ~ zbMDN-8TnJaCLQlDhveB((Qeb5PWxGtvXT2jX?EHxdpYyso-k78dwO#u6NTYL1;tZz ze&DJ-*bWK%Cwp_bN3x`5%iJqGqN+My>-NbS6frtKR1)Op2|XZz)-c}$$_49lON zUu5UDdGm_r>V1*Tqica30v)4jM)V76O7DH8mz8p`vvW6@N$AsaWyF-*LZ*gViF}U_ zaul8Pmv)+#m_e7U_JL%1C0%M~6t6kYl{W*67q0E4q`f2zF{OoXCxf=}Xd3#B7`8Bw z2-~fc90+#0eL+monRUy>#T|$q++pu&!Ox_HvWht*G|s!2^fn4UpbX>oYM=+D5el zkJp4|&8E$z%8Szr+)L1eLB+F+X8Psj*#j2{_a0_QagnZJ(4;(vC9dXp3OpB5f{B;H z@IlOSH5-ZJzYfK6*(dfG(nNa{j}7=U#2(b>wNTsKXhq&L3t z=rk%#c(~#cuTw8Jt-w5YH#GH_NwbUd?aX!FR6D}?eP?1@(7f7u9x-!HenH?e^FpPE z^U@SAq{108yR|p|e$err+Vf0Y{j%*<6EBzGuoKRk9ngUoPatezDhJ+ri7SO?)olrsQ$a%Z-F->(Luv)D>$oAy06lc=th5%GP}))> z-XO0%WBYc}Gg3J;4(r^m5C&$lwvyuArlyyUi=^9$k}c^#&WGd$?+;uXOPKF_`SwaM z)U9Z`;->JWW7`A^k9wI}$9bJfY4q_R?A5FDE6H8qoGJc1T?RK=W~o)9Q3ZRogsvjq zEoi`5Gv>|7&ze>+DXZtaDaAT_o|#pYKV?Q%;R!Qm7tfzRPb68Vo;N3}VA9l?^RfzM zxpm$GFhQ1~XR?wzB(Gy2Cw67sZ-T+KY_ABtiKbV%VZC<;V!Mar1PANYHlUs}PncP#&ka2Pw(Z$2 z-}K4LJ0i11cE=;^5{69Yvs-7k46kR%@7+|A|G&#e9*LZsR;jY7C$jfhCtq^Y$}dY= z9!cu=(5^Jq2kol^_S`?P_rP9T1L31TI!5^O)f}|V_HD<9ZOyE$+_K0~E=@syoqT_z z!~XO~1#{EH->|>tFC3Rpt9p95WzpqH5_T}oF4iXX7>e`nru9F~pZ+LgX=VCH=?wY{mZkpao0R3U za?7JDw9JBSUVk7iH?5K@<=nK|ebXu>)PvSjupa)W!VR{KLnO|iTs0(XTM62=T!QVx z<*EGXrL~WsyHxQfk1;f`Lt1PP?gYM@4Nq2uXJpEBjFWz80|BiAA zhBvN^bjL&=EWdxZTrL#8{+Qo^;@d9vV7r|tat|E`)f!fg zv(n7YT@UT`e-u{TZIl0bX|+#}ElXZrZbkGANn6rz>u~qO;xyr!T`jV$Um3?r8;A7A zMSHpYoe<8S{@`fvdJgslvu(JxFIW+ozuS&*!Lr$9?S7x!L1gcfD&gk&eN1jz+o`E( zRdXvQjgk~Rw0m!lw6^j7Cm5#wz^NU>2DmXS(+g0jKYH5R4>Q_4;=&51xwFLE+vPQB zjb>K-1>30pP^xz=1mo2oOr?w_hs!8z3$`u&fz@F66UzwyesLEp=b#_`G1k)3RNLzP z@(rdpQ+_%y7+%n(KjIj)1>^cpPoMtqWNBrgKP+2To;H->=cACHU^~$tr0tPbds%FG z@``e2L|5wA5G+G;fHJ(;hU?}V!LnUjhF-5_FHb@DTLSuE+>cv*>Gi(q0JiTAV7oPB z3zmicn63=PG5C>PH$$X(oPxigM=5--A}!uO1ZTS287mflpL_H#6{w$}d}H1Z4ezZ!J#^ zWu5#_68R9J)|>n2h~a;tCOPCk*|Zk3`d=;olf2M&;+D6XTDWZesEM z$3p&f1oS^qlM?cuVvZ8C`kx{Hlfe|M(@P*R5Evp13&yqLFdvMDu>)xHjgE^uN-op7IL3vUc=XN2q-HoTML zp(Of_%FnzfYIJ7kf1;*V$X?5acTe0&E%SwZ*ZNVPNz(c&h@i5zge22L{`#M&IVcp~ zLB3JGMNQq1y>7@}FJuq)X6paokp1A0{{|s@gOEKlWX}xQ8;0x+L-xiYd*hJ3Nyy$L zWN#X>Hx1dFhwRNm_7)+#US<9#YFdWu+Kc<2sA(0lxAKkhEou%8*$)lbTZio0oBE%q z$qL!CYFek_mTysWSjhchA^YJW`{5z`ksiL;ib(?7c$v-XVMMkiBon-Zy0L z7qa&Y*$0H|148zJA^X6PeQ?M=IAk9Zvdb@>2R>05{S(ViX9NBxYKDdEdWYhFqGm+M zKEgN3x2QQLWIrZk9~rWTudmS|`{{CM5qt4F!PgG`hiS_Nz^wd?<t5Fq+^5j{Vi}d$ZDM&BTlbl9SHgxoK%?)_R?5OTjT za4R1x_QwOVZ9h@Z!@1rU%cwa&l%DfL>2dOVabHgM+w=Kxi++ikwW09VhU&-3 zetU7U-(J>+!n-IG-bFS%zr8rwZ!Z^x{9hdMe{m>1PWIc2ll}JM{QK?2+5Pt7uY|b# zUmA+<(olIi*>5jS_S?&)q4ci{g|{vgo|FCd;$*+QIRAcoadyAGIJ@6ooV`-Ky{rqR zXMHF=>qF^rvfo~u?6;Toq3||@!rKt4A18N@`*QM#`1Q3RZqYAMvoRFjMjKx5xT}rv zZ_fRuko!%c_?_H6?#s!3`8wHeADiMXUHDgp!oSLfpB8uJf(Hefd3`dW@PKA@@5%;oTpS{g$eRsM#5^KNON54#|&%EU$ z{u;(*H=Z{N$ZGfRa-Dr>$nMAQ#&b>q43-;LLP`8vB_zRvEK zuN%Mp@^$02pFTIf`r*6r)h}OX_siGWegAH}_5Hi?)GuFW_siGW{ql9=pI^Ri{PWA# z+5Pf$c0YbM9{TaS@y;(_XZOq3*?s?R{PX?0@y%bQaCU!H!r6z%>&uOIBLZ?_{kieY z58sVfe)!JrhwtqB;^8^_lL1-7_g9hK_*O4&cjMV50a^PBe^%q{P2+YqzBLQT8vdMs ztp4W)WVJ`*IsR3?M9mXHQRK%%@;zNCXUHT6;n-lB}%$*5x zrrDR^zM*+L!QR+>n;)dGO-s7zV&wdCn;zFb za!dncSAJbhPJ%241SH5k&FKkpFS9;D?rR=MkO!D|66C?Aa?Hi=;ycPTMb>wv(q(ydJ&kV_@h2$$k^3IU_W=NJ(KWurp^c-UvCCH;qXJqx3ZpN9x3G%UKa)LbG zEJ%h>RFhoZrB`Q;>9Rgq8+oFYrF;->g7hZRG-UG4diS7n+-p^?jyvS>JmMdA7AL zFs~u+vhqUn9kRZslx`N8j0!G4I_FC_C!6NT`p!|hImL8G?rhyJF=LQ*3`#ero8km{ zxw!yY$FOvBhS`if(fVI$Zb!b~+Ec zYY*E@FXS!OezO^mtRr2zxz!XQud?#(=1k=8ti0W9M84I^cbU78^<9{BbB}oz*@d^m zn9{bHH*q^A5_dN=aXWK{kz6JMgeJLloI74uAo2M!98oo1x z(~`IgQQd^LecPqh}-D4lp=wS)6!6Bq|+qXkXbt2@rKJcYIz z$2V|$&H@{B5>=r*iMx=7ZA%G-l(?123sAKo&!unoC|SJXF61-5y(YX}BxoqhPe|`= z3JC`l(3jyOq?YP%ySu_Wsi+#itp;0hiOqXnLoQ*6`|^r39${eDR#~>dRm;sD=x`-(39{xZ zK_PickmLDD(0X~XN>^sVao@{;#K!KrQZ{iXS~L)MP+suB7S-zIV^3=f?*xx0Ezzug zdX+dPOSR5jDTlrhKwt}?mxEHarI&5;b{-}kh3C1K!blwBts>Cdc@Bc(J8nv-f@8a8 z&2uMBBR)6Kx=oDHX#!EkodhHBT$R*?V~x8EMl1D|7^_tTBJ~^u!^cetRX9e^T`1JvQ{R-{YrTqPVXa=9*o$vl~j4KYTfUKk3hNEvif~c7R`o=KMijU zd=biN)mGmQj)A8^U7t&uBG1f~&qd5SrNpoITbiy-N=eriF)CuWPX?Plmd7sqzVMG5nX(|4PKA|J8pn{V)Ih^jFni$w> ztuIZ_?aGfM_MMK@Pa<}GHTA=Yc~kYDM$BhQ`SXkN^N2~6`_$AgWY3E7OWL8hxB2=i zV%li>zIJ3C`>vyTLHl*vc zspXPPZ>8Kj+jdgL$V#rr)!p8O)LO=L#{ER4xYzr0b$_!`+`p<6_vJL7;=Y5*DM@CO zQYve)vWbxu2VryL@+I-lP+7vW?N!|0ud=xBso_Xr+4MCOS@m*J+VYSG0^^aF!q=7J z{s&l9{fj$YCsBVk{UWc!{<2cSt*sQ#9(7$LRTjNdp)D_wr%E_UpG$h-Y^d!=^+izI zk;*5-rEnQs3AJ6RyK|woFO_ZmOMG5GqTy1W9o+yFPhEpRK` z25*Ji;XUwvxC`!q`i_S7V^x*XkJV60KPE+M`x{%|l1|$mcFFaC{&{%7a!rr8auwQg z720wY+Hw`zauwQg720wY+Hw`zauwQg720wY+Hw{Ct#Yj|{hj7tXvkitf*IvufUTps-_3;t*p{kema~J#s>bkk= z^_`6*>F0}-($6ncO8t7_wxu5D!lm$hX!{R|&-EYv^;1Lbq8|sR!TPWTJObM5T-;xT zd;?5}^`Pf(7P9Rp#GjXrt?2hcFCAXIMd(+-0;QBg8_K1>Qo=g{`F!LZ$or9P|1R$I z9SSYK4wPSK$}b$R?T6(0=&JDvmlFTE$hLoy@ND|U9us}iWOpV*()5Tt(Gyvy&k>dS z?n6?3#57e-bN#&P+hf;qRXG>-g@fQ&I1v`YMQ|m&8r}gPhA+b3VO1#?jjuDb*RjZF zAYTk`g!+6^-9HJ-Yq^PB8}@-C;dFQhd>Fm}--qAB6z!)Zyjrk1JPeM67r{H=OYj?5 zrJM^V1J;Mx@GzJI^I(5C70!ak!xivCxC!0@AB0cAH{s{-cX*IIC)0fD^EhQw*b26T zd2lG40O!I};A(goycXUG_rMq6d+=LWP8zPJqdIH^vtf5Q1YQoe!-wJX@Ll)~jLO`> zh7Vi7!(eZCG@J?x;c4)Ecs0BoJ_MhI@4&BMq`Zs2Dr^9=U{5$4PKNq?Ow)ZTya;ZF zx5Az9Y4{fW0{#xuAJ>XGrBAgGG!?p0A@Mib`d~FyR=)Z=)qmQP!bX8DFJn707 z@_qwsjJ_Srg@crmpQGSN^b?g$~cxDWj+ z$Zx=R(SN3FWXxCaJM8kRj?HfsSXU|eX#ks`Zx6en&x3u@k3b#;k3~Ndc@8W@f3mWH zF-zex>}#-J4!6SX*zbW4pnn4SDfm44w~^n2pP>I%DU-Dy;jh?Js=9Kh2^%S;9Gbya z=#PNC(f5Z#(2qr)0H>m#k6Z*7p+8+Ilch7@S=cYcz6ss}@58~KpAF7l|@d!9dDdA4WemqUWoom>? zkLZ)7ZEF52z%-?lLmlM$uqpaB%3F+S2fLvk43C8~l@jh8cq01Kl(Oiu0&JM3MNd%!;Eha-=K*_A{YK=g;B`s~=XUJ( zDOVb^6F#hzaG%2d8uDB4J@j88e+Pe7N;s8e%~Z>wrgE7vbzps^gxdmp2jtE$2Yo-} zL2#H-!kLPFj`Cb%j)%oc33mzhvyjh$Yte5&-UP2vN;r36->F<}%){_8rG)z&_P3DV zg&(2+4*4heyHdibCJV9lx=^k+rao+>lyDEl-Wjt+6!)XyMD%l%Tcn=hV)Uz&;(iUh5dB8wRmNNeZ$W>bQrz!^kD`A; zxyhJU;0NfxQHuK?;P2=w)e-$hSvQ6UDp2Q_q1Ua z`tGowa)mL2;28AB!6M~p#w>)((O(3wP%f4GFt`o<1MpGh$;Rx3ub}?~eydz4^Kcle zC$gl!7Hpy{mh+roNA$T$DeqpeKl;%yAN@=?AN?uHw~aX!F2{Zj_REm3fSb^7L%tQ> zsg!V@#{P!#O=I4H?<*yJUt<3iIU<`~R3B4HKGTtF!n#Tcrvvs}Wude;I1K%GrM5RX z9sLRLH1sRr+2}7-zGTdLxDoqS?Awv=fe)a60{JQUJo>kh--92c{~q~gs1HOn-U{$w z*bE*4^WZ>uG#n34P)fO-u6$PRm*81SDUS=WUx~aKUW@*AT9h z{RPPXfa{bJ{$_XsyaV13AAwK9*OZd}kCd~F`3!!gl=S_Ay?myVE5T|?@pmwCL)Z*` zJLFFANc4S>2f(4|$01LI`RI>FE{2QHuRvY}&rwSHH^DpMUic3D0akA4+&5E7KH4ki z$o?UCq*C(V3;R*XN5e7bry;lt>kL4EzoVRH%=_?TrR4ux?2#r;PKNppg8Hk8Tn9El-wHVkc0k`9 zxhL$0el*NSKNHSXO1d^-ze)L|F}J}xm6Fb#*!Lkn17AeHANd3LDf%Cge}%dRs`*M& zO1SB;7W&4>&EcWwyC@}HL*Z072QF4hxMwN%7;_H1Kq>KDj{O?s>*3AlcOX9qA4dNS z@(b`)^dBI90>4yByg$KcGbdMq8L&QVsg(3~Qtmb82-sCA>FtYs1o9|&Ec%(qb6^4b z#mJ|@Gtggv{13QJDe-QGH^4jK9;Kx3IpssfyaZoUO8VZ%{x$OV@E7#un>%-vU^S(L zcQA58*bIF;*A4o*J+PJVGh?>!X|yF$3TbrQ~lk z_I%`-a4z~q$cy3WN(tvOcniD-J_KKb@4??-g+p9=YAVOc`Vg$Il=QT~-T}EY%t7A| zc@P|iemwGII30Z<@&b4=`jyD5;d$sUN4^qXh5lyb+u_~lA4Yx*K8gNS7XHTsbOYM#8a5i7y}f@yNw+5&9L#tKd24FGIcpZbH8e`Br!*`iGDofqT)vjQl!$ zM=9z28CGxYfbS?JKc6Va8S@4F6@6Nkv)59Nkuwco3-pJ>-pcXD^oN6$lK)ZIry|dQbClwK z3HH^>`{lhtxK=6t*JHmH`386k`umV~!aeApMSc;!hW*7sON_y(T z_DU(I?#iPgMt-~6vaeFoISl)Ffl<@CR4vv_+;eAR8{}JrZ zA-@D)NBXYgzEzavMpT{z{H5>E}}+VEiXEss92@IB=SV?Ki4 zqc7jy`Oi>}GUgz7uu{smIrjF*hrupNaX%RQSmh35Ccr65@jnOqiO8qG)6lO$J|F%= zDdAiP?^R0v9#!^?n7#06rG)<~_79LhfnTEk6*w zQHuZR%B~S}9Gs_=^qh!&Ir5os4f;!w*Ta9JzY+NsxE=j2*kWYsz z(XU0m7+#M48szKY%}Pn9B!vm@$oEbEV`j8+#6NF6^xo_oJ}qEAKI8CY+-b{|m66 zj(i4OtrYhg;LS=&&wa|~QlIc)rG)bo_ScZ#g72aK3i&(uGy0Uno&Soks#3x~2)2Vq z!k%!5QqnU{SzqR%aH>+$GZ*_JQk3k*-C!jwLc^)i6zZ7{HJX0y* zZ@_-NQuagK1aDJHeD`6040#`X7X6#Z`{9S^zeWBL{)RsFNEdDztge)Jnke4?!LdN1>mJJOj>AN;u1~pQn@`vA7UkqLgs|iTy_8Ti|x|yO8(5C(yry z{2F{)DdB&O{TF3_V>ePMD|ZoD@>d@=SN1ig73_?@A3R1mP}V=;c%`Iw2KFN4h42)m zxIYK`I^|t*{lZO3@qYvMyO4Llol0^40{l=Z>HSVwE@FOyzbPf0@;T04Ln(4?crf~w z$gN>J^j(pAz&=U|e<+*@3*bp`g;LUUf%0c#{sAvjO8lF#--LV{ybJwqBkpBwW5{6s17eTQB5o~j&!6_t|CTF7-_Ci+8> z+rp0MbCG+&{z{2=EcO}7kBylP=PM=NMc7v$uY%{GzYO^bxJfDD+>L#Y@;!Ne51&*@ zxG!UW5BVebIr^WGe~0C|i$BSCRi*f^0S{72_=jL`uk0z$tzb{|N5k>T9>z?D^UyDa zXDfRfa~`}zZ?5A%I#9W@D-)_e;50g$lt=Bl;S=u*D+Hm`E0Ee zTQ=;dlyJIXAAmdrj!=sG3D{>VrSF>$i|{)1*cN>krMT}7d!auH`Di!}{Y<6Y zYs`U*(63NRIIG}!=+`UdUV9_F5&hjtaep7&h5kw8XW=X8_bX+M>;w2M`dFUmC4W_v zvUXV=W}?rAU6ry%(*yQaO8i5yk3*ga^OfR$0rq9e+vPXa;A*A#KOg&gXxCUMbFM%82CU^(D8$JkkL)rRk_cy!*--5EW-s)w` zyXBWKImyWtU{zQH9s=9Ij_`1J6g(P^gA?I&sOO66zKg~1G`Ub4uj+1L^vHD2aDl}a4B2{*TD1PCD85{m3&=|d>y8@vPF4R^wa;a>PO)bnyRoY&!(@LTu`G^x&AI@EJ>)n8L( zhA}N+HtYy zZTKPl6n+DLfE6mb@GHamuo28wR+jk#%z?SE9~=bp;Y>Im>bbib>+BX!kpd{(R(3 za0|Q-?u3uRz3>(I27C{G1b=CWtOhe+YnTl?!!EEt91M?!qv0$#7cPfq z!gJwTcqQBnx591kKIMb54+uU6_rVw7EAVUhJ^T%7*=sn}Uz}m0@wEM!vT^Ho;un!ynN5OG$3Y-q-Lc2d)!aGCdTO|MRd}#NFi~e%tE1}&d zE;o&KpSbW|)e9eh&%u}An{Yq;3H}CSas#aX^$acLLCTBdH)mi|*b?TzTxj=&i~E7d z6X8^7_kk~#`*)RvOW^77AMi4`5ncuDK5+4OKk^>3Ec%9V1i0nCNHpxyT^cDwIeI1T+QX!m`Kej)Oi@NBqFxlG1&xCL&755nE> z3HTIz1-=2lfOfyPgd3GUKIvT9-v#YHZ;`7bw}h=>2iO_*fW6^JI2O)Qu9n{@fhWL4 z@LaeSUIwp#*TC!H4)`Fn`?zH>i$S@MdWDZ%erMBkzKbLA#Gz z>@Oj|2KU1c;8*ZF_$!Ra0+yyb10DnqRc`6&;p!WytHYyg|XR?zO>E;gnUa&P6^QciFfJO+-3li?z`7%qor!gHbB z*Dc{*hI|FQ1KtfEguCIB@L6d0ala}1DO48P{oF#kpIi7d`ro15zb*Q@HJ$rLuo-L( zvtei01&)BD-~>1Y&Vk3nWy(TXe}?D43*gnz?$;J~cd7i6F+1RH_$YiDJ`X>GcAvKR z`w{t9Sgw`}uRN>*tHV6l2M&gIKemK74tXM+4v&L&U$(eA5qT+G2G_vz;U(~Lcs0BZ z-VASt_rqP#?$?(1_94FnUxWMM2k z+I`;Q{$k`S;6LHD(C+&dcef$m3Gauy;A3zfd>+0G--7SLPv95O?h}`Ien!r$>&mYQ zYz6H;adFoP`3RT`d%=NlC>#mL!pU$NoCA-Cc3-)~b29Sj@C>*Ho)52sH^MvM-Eb#- z81945K)e53;(G)6d*$&`9#EfksBHJ43#%g6fOTO5n5~>A>l-i!+WqOGFGfBQE``hB zS3HTIz5xxrTesu}Q?pGInhW;z~BeeV1 z#a`}Um*4WR3ak$6!1}N$Yzf;!yT4t+n}9q8&VqAcF+342h0EYs@Emv%ycAvuH$%J6 zUE^b-C^L%@P6eSxqpL?!zba3@Kv}UegJ=grlAWb1y+O&VN-Z0YzuqC z{?P8rm-HNsd>otyPk@Wy8hAduQaMBR$HMF3P4Hd#A^ZZ`{rKYVXXM{utdR>Z6;^{8 zupZ2W&0#Cp4t9b$FcW$dqfK0V zDbSt=AokA4-C!Q<4+q1ep*<%+{7poj3hg-oqAx%`5uO5oU&3$UFVGy~@|glF!gOfQgOGSLk(=DSHl~iJ^w-6--&!L+y(c*eefChGJGA{b08#~50Srs-@u>Y@32BE zS8n#a2=R9Wa#z?3_JhNrJx4;^k4K&iXT$k$0XzvVhxXhF@qaGzTDTr=gxA39;T`a9 z_#oU3pM=lCSD-zgLdymDQXz4UxWMM2k>+FHT((w29vW~{1sqTSOeN~ zIwXA!kek6nU^eUsyTI3*51>8AL-gMv{|X~*T{%^RRbWk62R4B%U>3CJen_}E$hpv-`yu*)$j87j z@CJH^5EsI(Q?z6W$AV!9DP4_&j_Kz6C#qpTqCqPq19JD;Iknh~%RRa&>6W z0}*{g2NMAfG5IJ zpgl)K(!CP-9C!iTsFZW3u7Wo}d(MdHcOyRvpMuZ9U!ZC4!byP@VLGe{Ghq|h3TDAh z@Ceuw_Ju>>a5x5zhcn=8SO^!uQ{i%W6}%SS1aE`)!JW{aOCsfB&m|GQh~Az{BJw-P z??ZboiRiyY{srm}L~6OG!Zg?rHid`6wlEL&fkWVMXwM&!aL-0w3onLOKzj~}xVskl z26!916W$N)xg_HLG30&ldH6DX3%(0KfnPv-K8b|$GjdW#R}L{)8CHY#yb^J5&npo& zM&BH^f$iYoFbDR8ec=!|9L|RG;R1LPJPodZXT$U0#c&BfJXQ^HLoBJSTq{uF)*e}KP0dwz74o&ZmQr^1!c zp2H&P-Hdz<+y-xjcSCzVi@4v7{3x{NvxxpVB(LI24YAW8q{t4bFkb!-eo1p*`0{()lU!H}D7eJB%Lb%Eg}ZBJS-u zFTxD;2f=o*6U>3RurC}4?RhT}&Pe3(a56jzE`clHDrnDt5&!o57vVbe8{pOOI`|;m z4ehxv;_oTs7vZb$9r!-{PB~uACx%H~oE(F7V13vWwuJUPnEPd4gUZ65urC}6N5J{e zo(m)HPeNV-SHM;9Ja{3r=f#LWdtQw2YV_B^N8l6iS@%jW3DYWOvNP7As4~9p>(QqQ13Xg;H;K^_)ya-+juY{Z7R=5q`0q=&-z!%`_@NM`R z{0iFhV{7zuX`@`dmcxB=R8WW?PqD$DtpcfkALPWTdh4eo~@Kzp8y z`2QNYLU$KlWmp5&hKDHSJj*t)6FdSAhQr`!cr2U`i{MFc3A_Ye4mZIq@J4tGybJDt z&%hVp>+o&(A^a33<+}XDU}abh)`s<Pc(Gg^PSm9uo6 z9%tYccpct=x8m)%(tJ+i9aiCLT!S^Z1-Ie{_&59*!~4xB@4qO2jlq!E_F7?h{~5&{ zMY$*T!G1UZ2V;2u89i<^U(TJ#NH0{4>6V@8Jjdcl-o{;j#9&!Xxo0?1CrZ zxi}cpaWsy{2{;+2;w+qv#aM!O)!S%S=?5lAF zx8ineH8QroH6Dc>@C59Fr{HOrihXe)o{uB&0=yV6!AY2nGx16+!ufbDF2+h+g^%M? z_(%L-+=zAfCccC3Aha8>i!yI0qNvwYUV!uo73{roQhYO>-D)5ycQSZt#~^=icjDgtik8;MSK-s$G34C zHsDU&XLi?pUD56xYvseR7pCGlI1q>62poeKV-`-rX*d%Lum~68wYUV!@RxWOuE6{7 zC43d%z_)QbHsIg!6Z|Lc!|$-gnAm=4jcu?49*14fIXKUEBjn()Ed=@w0OZX>z1GnOK z{2Trq55G88pChq79*ZYpSL}hk@GLwB({LDGh+}aY&cp?#ZYFvS-iWv08+UJMbU) zDSnCj@!xpJrLlJO#6H*$2jE~Fj-xRHC*VY!iZgIFUWFyN2yet&upF1+ukn8T9sU7d zHopym*YGWT7ypfiOo+uDfo<^^JRVc98}`IL*bfKbU>uI4F#{*yM4XBcQ&zv0LD8Scjec*te3{c$)RjmKbTOu^H!H=d0@ z!=X45FT!y+3A1q~UWtqGCcGVgg}=qe@flo;oA4FfYVHey?YI*g@vzHd>yN;r@fhrk zDcBu*;+fbF&&9!*j-xRj3vmHngE!#Kcsu?ID{v(~jE`b9uE9FojN8pULC}DWxEtF| zjIHm8KgOTnsdze`foJ0&Ov90QA&$dK@#mO>d6 zeuXV^V)+lnHrNhNz%FQIF7~)oPyJEzS&pztHi~46FzR95d=@+T3m-4u@3)? zZ{hp+AvWS}+=t&_i>a~g9g0U`2Rs40U_TsygK;=!ViwLc`{;XTa4s&uU*IosIj+D* z&9y=B1pXfXh%ewK{189F-MAOO!f&zVv{?Sb@PF`V?1Y{1ut4!SdcT@^Xb^NVf27YH zoByNx+?hw~ex~Lzx(|kVyzb{}b`Ao)3>SXCN``rozL(NGMfbfh_24|Sr#>HP{#5tr zHMRdrO&u3yrjDO-Q|Cp6sq?4O)HqgUrs@7t<`8{Pi>db#)S4r7{{}NX2&82F;d579>maF~dooc_iOzk(9tNmt$+HbC~ouL0#s{Q7DYQI^j_L~m| zL5jIb?KdA$`^_q~-+WB%H&?6u=96l_`Lx<^{!Z;Tb)4s!HEO@PPVG0>tNrG4YQI^l z_M02jesh!BZ`P^(=4)!d`8wazqt33i@|$YExkc?ax2gT+cD3JZQ2WgtYQMQt?KgL+ z{f9_BuWN1YQTxq(YQOod+HdMQOAk}m(^5@c=j(6k`evGWe2XC6)ayGLre0^uGWGg! zwyD>l^Gv<}q0rR(K1xizf2!2f`>V>#^cF$6srMCDn0lXLrK$IQR+)N#a>L({B$lHS*h>EKVx>7m_t(TKQ;k`T)#eC&Zxq&;=|Qj_YfX(q z8?nw*<2Pfysc~rwZZ$LX_b)b>8mD$*qnQ~5yK%31slHDb_nTSzJ|+z8{MI<8LpQXw zIZ6GG?M#hp9kG*{t^UUpbB6jKdzg9Ze@rzs?&**Y?Qd%Q8-!`5#z7t0p*pm~@o+R| zm>L&#NQdfB4#!6w!lBt_iTWS&OpTZMSZFR%|6_@%@pBQDnx*Q0EHiIV|6{qiME#Ey z=FRGVtTfBi|5#;eyj_je=2G=P)|eW9*JG_&uKve5Q{(YwtT&gb|8c9iT>Xy?W`+76 z8%>SZyK%3%QvHwnO^x3NFtG8hQvHvu%?H*0*v?#~{>M({BkF%lF{{-7*u&I#-wRXC z)#`ujZ)*G>glVScfnk_#YCaf^8RlB`KW3RVI{z`-)I2dA^UU??e=IaLZxmyRS*!lX zQgeg)AInV5Crh#1tW*DEg{k>vC03f6XI5dAsgrg!R-2l4)?kgPlX*SXnwp0;Vx75N z{g3r#gZdx0nmg40*kJ19--(UpF7-d|H8pR2iTh2>Uk5O-d0?OVA6uK6&)Q%+vz5N@ z6g!!k-#TN8sd=s&_AoWy^}>=F5C6G>5eaim}8@ZxJlQQd9Hj5-c+{pDx96Q}gOFtS~e6xgo4HHP5cX zDl@A^uo|mP&AV%`#+;<@gU4D^^YBJgXgD8Fvi{LLJl1}%`FBVwsd@KXQ}gW_&Dl23 zb~;RU*7G1!^XdWfBpu&}OU zGBpowGd2IMJyNFWd$`)jAwh7GIV=bUnj?bX-)6e%qq^FBc7{1x?|(Nnf3*N?ywMnP^^m%F3FL!tW88r0yk zl1ub_(Y#sr*D=e2V5auHjq|1EQtgKmSqr6S~Ms-S^piFbKw(t5jd}5#6`JtO|lh%*TRYgSlGcf%&A46CDFKo=!0} zj;5u^wb~D6jq-Mt>vZ2)bG^oC9V<3It}|=ZzLVt!ojwDk#+w&RjWfp%k{Vw=G&Qa~alX`e zQjsP#j_evNHGW(+L~7i4XQ_gh(g*Q%vdxwWaj>qxniIfCaKTAylV_2D4ar7`>&uy+RSxIp zNzBJ8hx74d=3AB9*?6C=zoSi+dzmxTKa@wCd8$9NH;OL}}bFKIjs z=Npy7`Q|D;zaYNe)cClaa)YUHayR9@rVh#jl!I0(U#O*iCt_`J~!MIXFz^r*(Xp zYF|53^FsJNt}3U5zt?!c`ax!m+DAFdT&L?Xl#9*vY7gadQ}ahPPNZ3+@ShU z4h~m&lb$D-+J0xVPU9ox{^o1iKIJU)b#0$=v01NqoAPQ?^Up@gb>pBuLH$cP&D^2!kMbmQr>;v;&Np`jK`G@Wrsl7elq*fmV{0han3~VR z@BP&Fw^&*8+HThGH8n`L)|?R5&(u7ZLb;o%`EC&9G*k0lCgm(s^Isw5VpH?rQp)9~ z=EEw=;rDTBUaY0O(bW97opOVzdGbrj`%TT4?T(PDe@9dEW-8^r<}l40lrv1tqthwp znVL@*Q7$z#uP&opVQPL2zb8}qtF5egHvB$Jl{Z`YQhlzF_(szvrz54-w=y;VcBY(S zYSJ1+InA`|T)pQmoL!tVRTdY;%ya)L&MhepdQZ=$wKXvt}Oj`?He#zHgG>pPl6Q{Sy8@bJQ7AVjCS*P&lu6d~wdq+{orLN1d7E zVQ2pE!xGmzb5!D5kIEcZ(ri2FgGW!XT{9$SZtj#Za|=fm%+k&a_n5zGSZ-`(QEq;M z0JpaJL)F}(ggM6-&nZl_t?&U;Mr9^mH>WUMmADqMhYlMvIOv@$K#vdCA5_t?Lz6T< zw!$^8Sx&8X>ki77F=0%SgsgFoYL?N~yOjr}9F?q!u@&wy%@S(0TX#^tu?4vq^YWAS zdUUmWe6!r~AQy4a7KRs0n=?JPD9Mh9taXoWmfyuB4Ny-GnO8Koc*>Z0`Ngv)6wNBm z<#213D<1k^McEOWJXN^Wak)9u|Kmpgi=bvF#mL-(+@hS~+~MOpXpq_L5huDW8k=a%L9InmIGKC_x5y6pR{oae7X{ z^!(hS=3Va|-Mp@>aa&E0pQFbM^r|^R|em!_v@vQl|L-TS93Uc$khG;b_5;a99UO2Qx*TrY*$g`Mc zqf@wll1$awKS|cu{zhRpPCX5|=&=a0!El@3E<63;bH4Cxo zdNJ|z_H^rqc95O;;Zwlm>EjLa0^{2lo;mIZw-I~X*r7$aGlu5p=0r~|cixdYf6lZk z$IqEpG)>2HyqUI_#^>kE&&`}QTQlenwI&RU!^Z&#!D-Lx+~I zGltHdp5XE7kz`X`xGLc^=^m8$`5KS=ft7mN7<;M~-z}~=?y)*Y5>(cXjbycrtxH(l z_`?!c$vyIi)+VoU{LzW4tV1$cjl)$5E9@SWxJEqg2UaGpt$S?Z%EnKQWL1s?B&>L3 zz16{<={N6U_w>~MN=O{yMwevOXj-4J7EP;@R-!57|5b-1N9#dZ;=6Qu?$miRr_3st zq4PEN@0_Vqi*o13_C@SB8XKa;oT8k9nYsFl*7jB`qWN#~XBB89iLKS2#6jYDQ7cYy}M-H>P(^adFYCsq>1J_P6;<;AU6+^LZ`xBp)B;&y0-F2BbY7x$hQ*GW6PM?6Z` zO!)UVUR;{u66Mn+se{@vKS|u_UfgQMbxg3`p^gUX z?SAjYU6Ca2M4b=OcH}3i-|>oz?!Uc}`kfM~-`QTiH_m1N9vR!;} zZJ+1WZ-1nIr$y>_kC!ie9Uz{qXKEM8G`{>a zQonD!d?m_PV;#ie&fk4rzShcDsu(+e^)hYzcs@lBi1x2tzdu&%-QwEORdLb&EsNAo zFZ0IpUFhW-p?phRGU@V-^zxM}Uw^H)`spSAc)mg}pI!G))ZTnAUtOfVddomO-wH3^ zk~WFkyWGo{UeVMa=S1>7@8w&ed`q<6Ev~)KdigSx&$U-Cd&ledftRm~-UD#DOD0`D zd%sV#-_jM=EDJH$ZXG{;kn=tF+$6wQ>5SNGcVspXAPHzK=FRl)4 zb)+G8e3=~*=R4KQR~E^a7s)rw%eN*; zzBDgiMI_%9k$h9Ud>!@2YPQz9#qH;bUcRbGKKpy#wRfSHuUPpKogeeOd^M4L1(AIB zdim;=ui8~ky87Mi<*SS2D~#k@dJ^10)n-ivFaLG9{DoZIeZZ@XKy-BiWd zabOpa+1`+R#pT=MuR?daph_3EVe z61gDhw%b#2+H{b{y8ha3ivDfwDAA8=$2c$FUgbL?K|3z;@?}Nx*?x5S7I^u-(I3$# zXuVrp{qFMOIx5KCWA&PR=Vx3_41W;j=g8p&-aX%uT=Tc$#;Du z-(S3Z)%s(*V`RU$`n}`jt5ZJh!mxgeBl*7b@@?!An|BowF0Sccd-)n7?Y&WvuDvJe zeL_|pH@6(C_t4rr?iQD?i{hfkL1QG}O$v7TMtJ%1luuQRFD~CyFRn~+*$MW`WN*8B zBik*DZ1-9(Ut>xT)W)|OtDhAYdinN8^4+HOt{wMy`Kr3=y@(0wcbAth__f}XraX3j z*!bb{{oc!0e6rpPm>}QNUcN%*bI0i&k$i7@`IdGI!p~wVBwTE}w!H4;D^b2G{od+V zt{+#w&%J!ByT?AutB`PU`9AgXrL5F@#1&!r?$nRVcT}5$k1P8=>_q*0q~fB-Rl4%I z_AZO$>*?hibb8|c?e68vh~!%y$v48wcR=|P_3scbUzYL}Dv!0dB9brH%U9PcasTFc z`RXF|TM@~3qnEGYr-}RbdM{tS^11$98OisMmoGRYasS@$*Gn*VMm{Me@z@^9_g{?+OVQxBss6^7T-@ zc8ak2t=5mLU%8jBUis|&c8kkr*IT0duYV-plL~hE>^eoXKc?%m6xA*naaLUIvuOFB1elOqt z!HN6h*IvG~`TFZoqErC`AU_~zSGj`SF0aazt_Ed)D;x4&WW5l%BI{Uwi+wN^Q;~jm5XJ%}>FDlM$caN9v#@*V+A3=JL^k*=6I}S zjxBCm?GzWSU&g4G;XNNL-z)lY?M)$HDvy6xFSwT26KxjDXFol?xUrht^pq&RxVZkr zxfLaf%hYoux7c=V>Fd?6)0n3A{z>ay{e~+}yQ?sKkp8!MranXL3evULj2s?%kzJo{ vI4KC;(C`1Km6oraer%sac7ITNo4&&^Qa_hZmr)LitIBK{T%x+T#l`&}J!E~# literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_tim_ex.d b/squeow_sw/build/stm32g4xx_hal_tim_ex.d new file mode 100644 index 0000000..f34069f --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_tim_ex.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_tim_ex.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_tim_ex.lst b/squeow_sw/build/stm32g4xx_hal_tim_ex.lst new file mode 100644 index 0000000..bf4f497 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_tim_ex.lst @@ -0,0 +1,14004 @@ +ARM GAS /tmp/cc9HXhVl.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_tim_ex.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c" + 20 .section .text.TIM_CCxNChannelCmd,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 TIM_CCxNChannelCmd: + 27 .LVL0: + 28 .LFB397: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @file stm32g4xx_hal_tim_ex.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief TIM HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * functionalities of the Timer Extended peripheral: + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Time Hall Sensor Interface Initialization + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Time Hall Sensor Interface Start + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Time Complementary signal break and dead time configuration + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Time Master and Slave synchronization configuration + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Time Output Compare/PWM Channel Configuration (for channels 5 and 6) + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Time OCRef clear configuration + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Timer remapping capabilities configuration + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + Timer encoder index configuration + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ****************************************************************************** + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @attention + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * Copyright (c) 2019 STMicroelectronics. + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * All rights reserved. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This software is licensed under terms that can be found in the LICENSE file + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * in the root directory of this software component. + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ****************************************************************************** + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### TIMER Extended features ##### + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + ARM GAS /tmp/cc9HXhVl.s page 2 + + + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** The Timer Extended features include: + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Complementary outputs with programmable dead-time for : + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) Output Compare + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) PWM generation (Edge and Center-aligned Mode) + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) One-pulse mode output + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Synchronization circuit to control the timer with external signals and to + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** interconnect several timers together. + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Break input to put the timer output signals in reset state or in a known state. + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Supports incremental (quadrature) encoder and hall-sensor circuitry for + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** positioning purposes + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) In case of Pulse on compare, configure pulse length and delay + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Encoder index configuration + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### How to use this driver ##### + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Initialize the TIM low level resources by implementing the following functions + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** depending on the selected feature: + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) Hall Sensor output : HAL_TIMEx_HallSensor_MspInit() + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Initialize the TIM low level resources : + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE(); + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (##) TIM pins configuration + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+++) Enable the clock for the TIM GPIOs using the following function: + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_RCC_GPIOx_CLK_ENABLE(); + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init(); + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) The external Clock can be configured, if needed (the default clock is the + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** internal clock from the APBx), using the following function: + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ConfigClockSource, the clock configuration should be done before + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** any start function. + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Configure the TIM in the desired functioning mode using one of the + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** initialization function of this driver: + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) HAL_TIMEx_HallSensor_Init() and HAL_TIMEx_ConfigCommutEvent(): to use the + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Timer Hall Sensor Interface and the commutation event with the corresponding + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Interrupt and DMA request if needed (Note that One Timer is used to interface + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** with the Hall sensor Interface and another Timer should be used to use + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the commutation event). + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) In case of Pulse On Compare: + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) HAL_TIMEx_OC_ConfigPulseOnCompare(): to configure pulse width and prescaler + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (#) Activate the TIM peripheral using one of the start functions: + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) Complementary Output Compare : HAL_TIMEx_OCN_Start(), HAL_TIMEx_OCN_Start_DMA(), + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_OCN_Start_IT() + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) Complementary PWM generation : HAL_TIMEx_PWMN_Start(), HAL_TIMEx_PWMN_Start_DMA(), + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_PWMN_Start_IT() + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) Complementary One-pulse mode output : HAL_TIMEx_OnePulseN_Start(), HAL_TIMEx_OnePul + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (++) Hall Sensor output : HAL_TIMEx_HallSensor_Start(), HAL_TIMEx_HallSensor_Start_DMA() + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_HallSensor_Start_IT(). + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ****************************************************************************** + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 3 + + + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Includes ------------------------------------------------------------------*/ + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #include "stm32g4xx_hal.h" + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx TIMEx + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief TIM Extended HAL module driver + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #ifdef HAL_TIM_MODULE_ENABLED + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private typedef -----------------------------------------------------------*/ + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private define ------------------------------------------------------------*/ + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private constants ---------------------------------------------------------*/ + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Private_Constants TIM Extended Private Constants + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Timeout for break input rearm */ + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #define TIM_BREAKINPUT_REARM_TIMEOUT 5UL /* 5 milliseconds */ + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* End of private constants --------------------------------------------------*/ + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private macros ------------------------------------------------------------*/ + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private variables ---------------------------------------------------------*/ + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private function prototypes -----------------------------------------------*/ + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** static void TIM_DMADelayPulseNCplt(DMA_HandleTypeDef *hdma); + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** static void TIM_DMAErrorCCxN(DMA_HandleTypeDef *hdma); + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** static void TIM_CCxNChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelNState); + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Exported functions --------------------------------------------------------*/ + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions TIM Extended Exported Functions + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group1 Extended Timer Hall Sensor functions + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Timer Hall Sensor functions + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Timer Hall Sensor functions ##### + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This section provides functions allowing to: + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Initialize and configure TIM HAL Sensor. + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) De-initialize TIM HAL Sensor. + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Hall Sensor Interface. + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Hall Sensor Interface. + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Hall Sensor Interface and enable interrupts. + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Hall Sensor Interface and disable interrupts. + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Hall Sensor Interface and enable DMA transfers. + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Hall Sensor Interface and disable DMA transfers. + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 4 + + + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Initializes the TIM Hall Sensor Interface and initialize the associated handle. + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note When the timer instance is initialized in Hall Sensor Interface mode, + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * timer channels 1 and channel 2 are reserved and cannot be used for + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * other purpose. + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param sConfig TIM Hall Sensor configuration structure + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, TIM_HallSensor_InitTypeDef *sC + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_OC_InitTypeDef OC_Config; + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM handle allocation */ + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (htim == NULL) + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_IC_POLARITY(sConfig->IC1Polarity)); + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->IC1Prescaler)); + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_IC_FILTER(sConfig->IC1Filter)); + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (htim->State == HAL_TIM_STATE_RESET) + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Allocate lock resource and initialize it */ + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Lock = HAL_UNLOCKED; + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset interrupt callbacks to legacy week callbacks */ + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ResetCallback(htim); + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (htim->HallSensor_MspInitCallback == NULL) + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC */ + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->HallSensor_MspInitCallback(htim); + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_HallSensor_MspInit(htim); + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM state */ + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_BUSY; + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Configure the Time base in the Encoder Mode */ + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_Base_SetConfig(htim->Instance, &htim->Init); + ARM GAS /tmp/cc9HXhVl.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Configure the Channel 1 as Input Channel to interface with the three Outputs of the Hall sens + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_TI1_SetConfig(htim->Instance, sConfig->IC1Polarity, TIM_ICSELECTION_TRC, sConfig->IC1Filter); + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the IC1PSC Bits */ + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC; + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the IC1PSC value */ + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CCMR1 |= sConfig->IC1Prescaler; + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Hall sensor interface (XOR function of the three inputs) */ + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_CR2_TI1S; + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TIM_TS_TI1F_ED signal as Input trigger for the TIM */ + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR &= ~TIM_SMCR_TS; + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_TS_TI1F_ED; + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Use the TIM_TS_TI1F_ED signal to reset the TIM counter each edge detection */ + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR &= ~TIM_SMCR_SMS; + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_RESET; + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Program channel 2 in PWM 2 mode with the desired Commutation_Delay*/ + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCFastMode = TIM_OCFAST_DISABLE; + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCIdleState = TIM_OCIDLESTATE_RESET; + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCMode = TIM_OCMODE_PWM2; + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCNIdleState = TIM_OCNIDLESTATE_RESET; + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCNPolarity = TIM_OCNPOLARITY_HIGH; + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCPolarity = TIM_OCPOLARITY_HIGH; + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.Pulse = sConfig->Commutation_Delay; + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_OC2_SetConfig(htim->Instance, &OC_Config); + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select OC2REF as trigger output on TRGO: write the MMS bits in the TIMx_CR2 + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** register to 101 */ + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 &= ~TIM_CR2_MMS; + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_TRGO_OC2REF; + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Initialize the DMA burst operation state */ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Initialize the TIM channels state */ + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Initialize the TIM state*/ + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_READY; + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief DeInitializes the TIM Hall Sensor interface + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim) + ARM GAS /tmp/cc9HXhVl.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_BUSY; + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Peripheral Clock */ + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (htim->HallSensor_MspDeInitCallback == NULL) + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* DeInit the low level hardware */ + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->HallSensor_MspDeInitCallback(htim); + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_HallSensor_MspDeInit(htim); + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the DMA burst operation state */ + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->DMABurstState = HAL_DMA_BURST_STATE_RESET; + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the TIM channels state */ + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change TIM state */ + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_RESET; + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Release Lock */ + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Initializes the TIM Hall Sensor MSP. + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim) + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_HallSensor_MspInit could be implemented in the user file + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief DeInitializes TIM Hall Sensor MSP. + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + ARM GAS /tmp/cc9HXhVl.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim) + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_HallSensor_MspDeInit could be implemented in the user file + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM Hall Sensor Interface. + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim) + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM channels state */ + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Input Capture channel 1 + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM Hall sensor Interface. + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim) + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Input Capture channels 1, 2 and 3 + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM Hall Sensor Interface in interrupt mode. + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim) + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM channels state */ + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + ARM GAS /tmp/cc9HXhVl.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the capture compare Interrupts 1 event */ + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Input Capture channel 1 + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM Hall Sensor Interface in interrupt mode. + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim) + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Input Capture channel 1 + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the capture compare Interrupts event */ + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); + ARM GAS /tmp/cc9HXhVl.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM Hall Sensor Interface in DMA mode. + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param pData The destination Buffer address. + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Length The length of data to be transferred from TIM peripheral to memory. + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channel state */ + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_BUSY; + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((pData == NULL) && (Length > 0U)) + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Input Capture channel 1 + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA Input Capture 1 Callbacks */ + ARM GAS /tmp/cc9HXhVl.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMACaptureCplt; + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ; + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel for Capture 1*/ + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the capture compare 1 Interrupt */ + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM Hall Sensor Interface in DMA mode. + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor Interface handle + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim) + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance)); + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Input Capture channel 1 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (in the Hall Sensor Interface the three possible channels that can be used are TIM_CHANNEL_1, + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_2 and TIM_CHANNEL_3) */ + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE); + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the capture compare Interrupts 1 event */ + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channel state */ + ARM GAS /tmp/cc9HXhVl.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group2 Extended Timer Complementary Output Compare functions + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Timer Complementary Output Compare functions + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Timer Complementary Output Compare functions ##### + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This section provides functions allowing to: + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary Output Compare/PWM. + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary Output Compare/PWM. + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary Output Compare/PWM and enable interrupts. + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary Output Compare/PWM and disable interrupts. + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary Output Compare/PWM and enable DMA transfers. + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary Output Compare/PWM and disable DMA transfers. + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM Output Compare signal generation on the complementary + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * output. + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Output Compare handle + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be enabled + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t Channel) + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM complementary channel state */ + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ + ARM GAS /tmp/cc9HXhVl.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Capture compare channel N */ + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM Output Compare signal generation on the complementary + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * output. + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Capture compare channel N */ + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + ARM GAS /tmp/cc9HXhVl.s page 14 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM Output Compare signal generation in interrupt mode + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * on the complementary output. + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM OC handle + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be enabled + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM complementary channel state */ + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare interrupt */ + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare interrupt */ + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare interrupt */ + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 15 + + + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare interrupt */ + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Break interrupt */ + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_BREAK); + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Capture compare channel N */ + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM Output Compare signal generation in interrupt mode + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * on the complementary output. + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Output Compare handle + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpccer; + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 16 + + + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare interrupt */ + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare interrupt */ + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare interrupt */ + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare interrupt */ + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Capture compare channel N */ + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Break interrupt (only if no more channel is active) */ + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpccer = htim->Instance->CCER; + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_BREAK); + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ + ARM GAS /tmp/cc9HXhVl.s page 17 + + + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM Output Compare signal generation in DMA mode + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * on the complementary output. + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Output Compare handle + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be enabled + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param pData The source Buffer address. + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Length The length of data to be transferred from memory to TIM peripheral + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pDat + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_BUSY; + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((pData == NULL) && (Length > 0U)) + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseNCplt; + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + ARM GAS /tmp/cc9HXhVl.s page 18 + + + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAErrorCCxN ; + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance-> + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare DMA request */ + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseNCplt; + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAErrorCCxN ; + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance-> + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare DMA request */ + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseNCplt; + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAErrorCCxN ; + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance-> + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare DMA request */ + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 19 + + +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseNCplt; +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAErrorCCxN ; +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance-> +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Output Compare DMA request */ +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Capture compare channel N */ +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM Output Compare signal generation in DMA mode +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * on the complementary output. + ARM GAS /tmp/cc9HXhVl.s page 20 + + +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Output Compare handle +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare DMA request */ +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare DMA request */ +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare DMA request */ +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Output Compare interrupt */ +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 21 + + +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Capture compare channel N */ +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group3 Extended Timer Complementary PWM functions +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Timer Complementary PWM functions +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Timer Complementary PWM functions ##### +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This section provides functions allowing to: +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary PWM. +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary PWM. +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary PWM and enable interrupts. +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary PWM and disable interrupts. +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary PWM and enable DMA transfers. +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary PWM and disable DMA transfers. +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary Input Capture measurement. +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary Input Capture. +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary Input Capture and enable interrupts. +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary Input Capture and disable interrupts. +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary Input Capture and enable DMA transfers. +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary Input Capture and disable DMA transfers. +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary One Pulse generation. +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary One Pulse. +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary One Pulse and enable interrupts. +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary One Pulse and disable interrupts. +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the PWM signal generation on the complementary output. +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be enabled +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + ARM GAS /tmp/cc9HXhVl.s page 22 + + +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM complementary channel state */ +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the complementary PWM output */ +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the PWM signal generation on the complementary output. +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) + ARM GAS /tmp/cc9HXhVl.s page 23 + + +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the complementary PWM output */ +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the PWM signal generation in interrupt mode on the +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * complementary output. +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM complementary channel state */ +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (TIM_CHANNEL_N_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 1 interrupt */ +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 24 + + +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 2 interrupt */ +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 3 interrupt */ +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3); +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 4 interrupt */ +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4); +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Break interrupt */ +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_BREAK); +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the complementary PWM output */ +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 25 + + +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the PWM signal generation in interrupt mode on the +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * complementary output. +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpccer; +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 1 interrupt */ +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 2 interrupt */ +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 3 interrupt */ +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 4 interrupt */ +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 26 + + +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the complementary PWM output */ +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Break interrupt (only if no more channel is active) */ +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpccer = htim->Instance->CCER; +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_BREAK); +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM PWM signal generation in DMA mode on the +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * complementary output +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be enabled +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param pData The source Buffer address. +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Length The length of data to be transferred from memory to TIM peripheral +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pDa +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_BUSY) +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_BUSY; +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (TIM_CHANNEL_N_STATE_GET(htim, Channel) == HAL_TIM_CHANNEL_STATE_READY) +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((pData == NULL) && (Length > 0U)) +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 27 + + +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseNCplt; +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAErrorCCxN ; +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance-> +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 1 DMA request */ +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1); +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseNCplt; +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAErrorCCxN ; +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance-> +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 2 DMA request */ +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2); +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ + ARM GAS /tmp/cc9HXhVl.s page 28 + + +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseNCplt; +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAErrorCCxN ; +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance-> +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 3 DMA request */ +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA compare callbacks */ +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseNCplt; +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAErrorCCxN ; +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the DMA channel */ +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance-> +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return error status */ +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 4 DMA request */ +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4); +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the complementary PWM output */ +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_ENABLE); +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigge +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + ARM GAS /tmp/cc9HXhVl.s page 29 + + +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE(htim); +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM PWM signal generation in DMA mode on the complementary +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * output +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel TIM Channel to be disabled +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 selected +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 selected +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel) +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, Channel)); +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 1 DMA request */ +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 2 DMA request */ +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 3 DMA request */ +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + ARM GAS /tmp/cc9HXhVl.s page 30 + + +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 4 DMA request */ +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (status == HAL_OK) +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the complementary PWM output */ +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, Channel, TIM_CCxN_DISABLE); +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM complementary channel state */ +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY); +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group4 Extended Timer Complementary One Pulse functions +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Timer Complementary One Pulse functions +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Timer Complementary One Pulse functions ##### +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This section provides functions allowing to: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary One Pulse generation. +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary One Pulse. +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Start the Complementary One Pulse and enable interrupts. +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Stop the Complementary One Pulse and disable interrupts. +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + ARM GAS /tmp/cc9HXhVl.s page 31 + + +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM One Pulse signal generation on the complementary +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * output. +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note OutputChannel must match the pulse output channel chosen when calling +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM One Pulse handle +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param OutputChannel pulse output channel to enable +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM channels state */ +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the complementary One Pulse output channel and the Input Capture channel */ +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_ENABLE); +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM One Pulse signal generation on the complementary +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * output. +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note OutputChannel must match the pulse output channel chosen when calling +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM One Pulse handle +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param OutputChannel pulse output channel to disable +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected + ARM GAS /tmp/cc9HXhVl.s page 32 + + +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the complementary One Pulse output channel and the Input Capture channel */ +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_DISABLE); +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Starts the TIM One Pulse signal generation in interrupt mode on the +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * complementary channel. +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note OutputChannel must match the pulse output channel chosen when calling +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM One Pulse handle +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param OutputChannel pulse output channel to enable +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the TIM channels state */ +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + ARM GAS /tmp/cc9HXhVl.s page 33 + + +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_ERROR; +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 1 interrupt */ +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1); +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the TIM Capture/Compare 2 interrupt */ +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2); +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the complementary One Pulse output channel and the Input Capture channel */ +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_ENABLE); +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Main Output */ +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_ENABLE(htim); +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Stops the TIM One Pulse signal generation in interrupt mode on the +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * complementary channel. +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note OutputChannel must match the pulse output channel chosen when calling +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @ref HAL_TIM_OnePulse_ConfigChannel(). +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM One Pulse handle +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param OutputChannel pulse output channel to disable +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 selected +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 selected +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel) +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 1 interrupt */ +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the TIM Capture/Compare 2 interrupt */ +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the complementary One Pulse output channel and the Input Capture channel */ +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxNChannelCmd(htim->Instance, OutputChannel, TIM_CCxN_DISABLE); +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 34 + + +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Main Output */ +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_MOE_DISABLE(htim); +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable the Peripheral */ +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE(htim); +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM channels state */ +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Return function status */ +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group5 Extended Peripheral Control functions +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Peripheral Control functions +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Peripheral Control functions ##### +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This section provides functions allowing to: +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure the commutation event in case of use of the Hall sensor interface. +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure Output channels for OC and PWM mode. +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure Complementary channels, break features and dead time. +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure Master synchronization. +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure timer remapping capabilities. +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Select timer input source. +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Enable or disable channel grouping. +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure Pulse on compare. +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Configure Encoder index. +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configure the TIM commutation event sequence. +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This function is mandatory to use the commutation event in order to +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * update the configuration at each commutation detection on the TRGI input of the Timer, +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * the typical use of this feature is with the use of another Timer(interface Timer) +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * configured in Hall sensor interface, this interface Timer will generate the +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * commutation at its TRGO output (connected to Timer used in this function) each time +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * the TI1 of the Interface Timer detect a commutation at its input TI1. +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param InputTrigger the Internal trigger corresponding to the Timer Interfacing with the Hall +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR0: Internal trigger 0 selected +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR1: Internal trigger 1 selected + ARM GAS /tmp/cc9HXhVl.s page 35 + + +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR2: Internal trigger 2 selected +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR3: Internal trigger 3 selected +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR4: Internal trigger 4 selected (*) +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR5: Internal trigger 5 selected +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR6: Internal trigger 6 selected +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR7: Internal trigger 7 selected +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR8: Internal trigger 8 selected +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR9: Internal trigger 9 selected (*) +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR10: Internal trigger 10 selected +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR11: Internal trigger 11 selected +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_NONE: No trigger is needed +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (*) Value not defined in all devices. +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param CommutationSource the Commutation Event source +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_COMMUTATION_TRGI: Commutation source is the TRGI of the Interface Timer +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_COMMUTATION_SOFTWARE: Commutation source is set by software using the COMG +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, uint32_t InputTrigger, +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t CommutationSource) +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_COMMUTATION_EVENT_INSTANCE(htim->Instance)); +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if defined(TIM5) && defined(TIM20) +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR9) || +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR10) || (InputTrigger == TIM_TS_ITR11)) +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #elif defined(TIM5) +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR11)) +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #elif defined(TIM20) +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR9) || (InputTrigger == TIM_TS_ITR11)) +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR11)) +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* TIM5 && TIM20 */ +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Input trigger */ + ARM GAS /tmp/cc9HXhVl.s page 36 + + +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR &= ~TIM_SMCR_TS; +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Capture Compare preload feature */ +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_CR2_CCPC; +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 &= ~TIM_CR2_CCUS; +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable Commutation Interrupt */ +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_COM); +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable Commutation DMA request */ +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_COM); +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configure the TIM commutation event sequence with interrupt. +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This function is mandatory to use the commutation event in order to +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * update the configuration at each commutation detection on the TRGI input of the Timer, +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * the typical use of this feature is with the use of another Timer(interface Timer) +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * configured in Hall sensor interface, this interface Timer will generate the +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * commutation at its TRGO output (connected to Timer used in this function) each time +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * the TI1 of the Interface Timer detect a commutation at its input TI1. +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param InputTrigger the Internal trigger corresponding to the Timer Interfacing with the Hall +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR0: Internal trigger 0 selected +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR1: Internal trigger 1 selected +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR2: Internal trigger 2 selected +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR3: Internal trigger 3 selected +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR4: Internal trigger 4 selected (*) +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR5: Internal trigger 5 selected +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR6: Internal trigger 6 selected +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR7: Internal trigger 7 selected +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR8: Internal trigger 8 selected +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR9: Internal trigger 9 selected (*) +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR10: Internal trigger 10 selected +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR11: Internal trigger 11 selected +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_NONE: No trigger is needed +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (*) Value not defined in all devices. +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param CommutationSource the Commutation Event source +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_COMMUTATION_TRGI: Commutation source is the TRGI of the Interface Timer +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_COMMUTATION_SOFTWARE: Commutation source is set by software using the COMG +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim, uint32_t InputTrigger, +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t CommutationSource) +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 37 + + +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_COMMUTATION_EVENT_INSTANCE(htim->Instance)); +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if defined(TIM5) && defined(TIM20) +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR9) || +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR10) || (InputTrigger == TIM_TS_ITR11)) +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #elif defined(TIM5) +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR11)) +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #elif defined(TIM20) +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR9) || (InputTrigger == TIM_TS_ITR11)) +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR11)) +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* TIM5 && TIM20 */ +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Input trigger */ +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR &= ~TIM_SMCR_TS; +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Capture Compare preload feature */ +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_CR2_CCPC; +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 &= ~TIM_CR2_CCUS; +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable Commutation DMA request */ +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_COM); +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Commutation Interrupt */ +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_IT(htim, TIM_IT_COM); +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configure the TIM commutation event sequence with DMA. + ARM GAS /tmp/cc9HXhVl.s page 38 + + +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This function is mandatory to use the commutation event in order to +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * update the configuration at each commutation detection on the TRGI input of the Timer, +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * the typical use of this feature is with the use of another Timer(interface Timer) +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * configured in Hall sensor interface, this interface Timer will generate the +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * commutation at its TRGO output (connected to Timer used in this function) each time +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * the TI1 of the Interface Timer detect a commutation at its input TI1. +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note The user should configure the DMA in his own software, in This function only the COMDE b +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param InputTrigger the Internal trigger corresponding to the Timer Interfacing with the Hall +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR0: Internal trigger 0 selected +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR1: Internal trigger 1 selected +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR2: Internal trigger 2 selected +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR3: Internal trigger 3 selected +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR4: Internal trigger 4 selected (*) +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR5: Internal trigger 5 selected +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR6: Internal trigger 6 selected +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR7: Internal trigger 7 selected +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR8: Internal trigger 8 selected +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR9: Internal trigger 9 selected (*) +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR10: Internal trigger 10 selected +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_ITR11: Internal trigger 11 selected +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TS_NONE: No trigger is needed +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (*) Value not defined in all devices. +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param CommutationSource the Commutation Event source +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_COMMUTATION_TRGI: Commutation source is the TRGI of the Interface Timer +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_COMMUTATION_SOFTWARE: Commutation source is set by software using the COMG +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *htim, uint32_t InputTrigger, +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t CommutationSource) +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_COMMUTATION_EVENT_INSTANCE(htim->Instance)); +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if defined(TIM5) && defined(TIM20) +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR9) || +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR10) || (InputTrigger == TIM_TS_ITR11)) +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #elif defined(TIM5) +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR4) || (InputTrigger == TIM_TS_ITR5) || +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR6) || (InputTrigger == TIM_TS_ITR7) || +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR8) || (InputTrigger == TIM_TS_ITR11)) +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #elif defined(TIM20) +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + ARM GAS /tmp/cc9HXhVl.s page 39 + + +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR9) || (InputTrigger == TIM_TS_ITR11)) +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR5) || (InputTrigger == TIM_TS_ITR6) || +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR7) || (InputTrigger == TIM_TS_ITR8) || +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR11)) +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* TIM5 && TIM20 */ +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Input trigger */ +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR &= ~TIM_SMCR_TS; +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Capture Compare preload feature */ +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_CR2_CCPC; +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 &= ~TIM_CR2_CCUS; +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Commutation DMA Request */ +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA Commutation Callback */ +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferCpltCallback = TIMEx_DMACommutationCplt; +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback = TIM_DMAError; +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Disable Commutation Interrupt */ +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_DISABLE_IT(htim, TIM_IT_COM); +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the Commutation DMA Request */ +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_COM); +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configures the TIM in master mode. +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param sMasterConfig pointer to a TIM_MasterConfigTypeDef structure that +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * contains the selected trigger output (TRGO) and the Master/Slave +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * mode. +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_MasterConfigTypeDef *sMasterConfig) +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpcr2; +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); + ARM GAS /tmp/cc9HXhVl.s page 40 + + +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check input state */ +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the handler state */ +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_BUSY; +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Get the TIMx CR2 register value */ +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpcr2 = htim->Instance->CR2; +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Get the TIMx SMCR register value */ +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr = htim->Instance->SMCR; +2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) +2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); +2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Clear the MMS2 bits */ +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpcr2 &= ~TIM_CR2_MMS2; +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO2 source*/ +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpcr2 |= sMasterConfig->MasterOutputTrigger2; +2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the MMS Bits */ +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpcr2 &= ~TIM_CR2_MMS; +2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO source */ +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpcr2 |= sMasterConfig->MasterOutputTrigger; +2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Update TIMx CR2 */ +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 = tmpcr2; +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the MSM Bit */ +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr &= ~TIM_SMCR_MSM; +2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set master mode */ +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpsmcr |= sMasterConfig->MasterSlaveMode; +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Update TIMx SMCR */ +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR = tmpsmcr; +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the htim state */ +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_READY; +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configures the Break feature, dead time, Lock level, OSSI/OSSR State +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * and the AOE(automatic output enable). +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle + ARM GAS /tmp/cc9HXhVl.s page 41 + + +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param sBreakDeadTimeConfig pointer to a TIM_ConfigBreakDeadConfigTypeDef structure that +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * contains the BDTR Register configuration information for the TIM peripheral. +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Interrupts can be generated when an active level is detected on the +2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * break input, the break 2 input or the system break input. Break +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * interrupt can be enabled by calling the @ref __HAL_TIM_ENABLE_IT macro. +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim, +2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfi +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Keep this variable initialized to 0 as it is used to configure BDTR register */ +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr = 0U; +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_OSSR_STATE(sBreakDeadTimeConfig->OffStateRunMode)); +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_OSSI_STATE(sBreakDeadTimeConfig->OffStateIDLEMode)); +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_LOCK_LEVEL(sBreakDeadTimeConfig->LockLevel)); +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_DEADTIME(sBreakDeadTimeConfig->DeadTime)); +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_STATE(sBreakDeadTimeConfig->BreakState)); +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_POLARITY(sBreakDeadTimeConfig->BreakPolarity)); +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->BreakFilter)); +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(sBreakDeadTimeConfig->AutomaticOutput)); +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check input state */ +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the Lock level, the Break enable Bit and the Polarity, the OSSR State, +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the OSSI State, the dead time value and the Automatic Output Enable Bit */ +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the BDTR bits */ +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_DTG, sBreakDeadTimeConfig->DeadTime); +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_LOCK, sBreakDeadTimeConfig->LockLevel); +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSI, sBreakDeadTimeConfig->OffStateIDLEMode); +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSR, sBreakDeadTimeConfig->OffStateRunMode); +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKE, sBreakDeadTimeConfig->BreakState); +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKP, sBreakDeadTimeConfig->BreakPolarity); +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_AOE, sBreakDeadTimeConfig->AutomaticOutput); +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKF, (sBreakDeadTimeConfig->BreakFilter << TIM_BDTR_BKF_Pos)); +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_ADVANCED_INSTANCE(htim->Instance)) +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_AFMODE(sBreakDeadTimeConfig->BreakAFMode)); +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set BREAK AF mode */ +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKBID, sBreakDeadTimeConfig->BreakAFMode); +2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_BKIN2_INSTANCE(htim->Instance)) +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK2_STATE(sBreakDeadTimeConfig->Break2State)); +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK2_POLARITY(sBreakDeadTimeConfig->Break2Polarity)); +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->Break2Filter)); +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the BREAK2 input related BDTR bits */ + ARM GAS /tmp/cc9HXhVl.s page 42 + + +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2F, (sBreakDeadTimeConfig->Break2Filter << TIM_BDTR_BK2F_Pos)); +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2E, sBreakDeadTimeConfig->Break2State); +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2P, sBreakDeadTimeConfig->Break2Polarity); +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_ADVANCED_INSTANCE(htim->Instance)) +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK2_AFMODE(sBreakDeadTimeConfig->Break2AFMode)); +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set BREAK2 AF mode */ +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2BID, sBreakDeadTimeConfig->Break2AFMode); +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set TIMx_BDTR */ +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->BDTR = tmpbdtr; +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configures the break input source. +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param BreakInput Break input to configure +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_BREAKINPUT_BRK: Timer break input +2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_BREAKINPUT_BRK2: Timer break 2 input +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param sBreakInputConfig Break input source configuration +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigBreakInput(TIM_HandleTypeDef *htim, +2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t BreakInput, +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIMEx_BreakInputConfigTypeDef *sBreakInputConfig) +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmporx; +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_enable_mask; +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_polarity_mask; +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_enable_bitpos; +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_polarity_bitpos; +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUT(BreakInput)); +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUTSOURCE(sBreakInputConfig->Source)); +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUTSOURCE_STATE(sBreakInputConfig->Enable)); +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUTSOURCE_POLARITY(sBreakInputConfig->Polarity)); +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check input state */ +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (sBreakInputConfig->Source) +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_BKIN: + ARM GAS /tmp/cc9HXhVl.s page 43 + + +2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKINE; +2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKINE_Pos; +2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKINP; +2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKINP_Pos; +2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP1: +2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP1E; +2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP1E_Pos; +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP1P; +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP1P_Pos; +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP2: +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP2E; +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP2E_Pos; +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP2P; +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP2P_Pos; +2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP3: +2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP3E; +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP3E_Pos; +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP3P; +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP3P_Pos; +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP4: +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP4E; +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP4E_Pos; +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP4P; +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP4P_Pos; +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if defined (COMP5) +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP5: +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP5E; +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP5E_Pos; +2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* No palarity bit for this COMP. Variable bkin_polarity_mask keeps its default value 0 */ +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = 0U; +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = 0U; +2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* COMP5 */ +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if defined (COMP6) +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP6: +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP6E; +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP6E_Pos; +2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* No palarity bit for this COMP. Variable bkin_polarity_mask keeps its default value 0 */ +2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = 0U; + ARM GAS /tmp/cc9HXhVl.s page 44 + + +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = 0U; +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* COMP7 */ +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if defined (COMP7) +2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUTSOURCE_COMP7: +2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = TIM1_AF1_BKCMP7E; +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP7E_Pos; +2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* No palarity bit for this COMP. Variable bkin_polarity_mask keeps its default value 0 */ +2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = 0U; +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = 0U; +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* COMP7 */ +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_mask = 0U; +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = 0U; +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = 0U; +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = 0U; +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (BreakInput) +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUT_BRK: +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Get the TIMx_AF1 register value */ +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx = htim->Instance->AF1; +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the break input */ +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx &= ~bkin_enable_mask; +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Enable << bkin_enable_bitpos) & bkin_enable_mask; +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the break input polarity */ +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx &= ~bkin_polarity_mask; +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Polarity << bkin_polarity_bitpos) & bkin_polarity_mask; +2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set TIMx_AF1 */ +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->AF1 = tmporx; +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUT_BRK2: +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Get the TIMx_AF2 register value */ +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx = htim->Instance->AF2; +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Enable the break input */ +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx &= ~bkin_enable_mask; +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Enable << bkin_enable_bitpos) & bkin_enable_mask; +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the break input polarity */ +2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx &= ~bkin_polarity_mask; +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Polarity << bkin_polarity_bitpos) & bkin_polarity_mask; + ARM GAS /tmp/cc9HXhVl.s page 45 + + +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set TIMx_AF2 */ +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->AF2 = tmporx; +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configures the TIMx Remapping input capabilities. +2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Remap specifies the TIM remapping source. +2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM1, the parameter can take one of the following values: +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_GPIO TIM1 ETR is connected to GPIO +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP1 TIM1 ETR is connected to COMP1 output +2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP2 TIM1 ETR is connected to COMP2 output +2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP3 TIM1 ETR is connected to COMP3 output +2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP4 TIM1 ETR is connected to COMP4 output +2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP5 TIM1 ETR is connected to COMP5 output (*) +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP6 TIM1 ETR is connected to COMP6 output (*) +2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_COMP7 TIM1 ETR is connected to COMP7 output (*) +2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_ADC1_AWD1 TIM1 ETR is connected to ADC1 AWD1 +2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_ADC1_AWD2 TIM1 ETR is connected to ADC1 AWD2 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_ADC1_AWD3 TIM1 ETR is connected to ADC1 AWD3 +2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_ADC4_AWD1 TIM1 ETR is connected to ADC4 AWD1 (*) +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_ADC4_AWD2 TIM1 ETR is connected to ADC4 AWD2 (*) +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_ETR_ADC4_AWD3 TIM1 ETR is connected to ADC4 AWD3 (*) +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM2, the parameter can take one of the following values: +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_GPIO TIM2 ETR is connected to GPIO +2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP1 TIM2 ETR is connected to COMP1 output +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP2 TIM2 ETR is connected to COMP2 output +2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP3 TIM2 ETR is connected to COMP3 output +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP4 TIM2 ETR is connected to COMP4 output +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP5 TIM2 ETR is connected to COMP5 output (*) +2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP6 TIM2 ETR is connected to COMP6 output (*) +2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_COMP7 TIM2 ETR is connected to COMP7 output (*) +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_TIM3_ETR TIM2 ETR is connected to TIM3 ETR pin +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_TIM4_ETR TIM2 ETR is connected to TIM4 ETR pin +2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_TIM5_ETR TIM2 ETR is connected to TIM5 ETR pin (*) +2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_ETR_LSE +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM3, the parameter can take one of the following values: +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_GPIO TIM3 ETR is connected to GPIO +2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP1 TIM3 ETR is connected to COMP1 output +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP2 TIM3 ETR is connected to COMP2 output +2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP3 TIM3 ETR is connected to COMP3 output +2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP4 TIM3 ETR is connected to COMP4 output +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP5 TIM3 ETR is connected to COMP5 output (*) +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP6 TIM3 ETR is connected to COMP6 output (*) + ARM GAS /tmp/cc9HXhVl.s page 46 + + +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_COMP7 TIM3 ETR is connected to COMP7 output (*) +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_TIM2_ETR TIM3 ETR is connected to TIM2 ETR pin +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_TIM4_ETR TIM3 ETR is connected to TIM4 ETR pin +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_ADC2_AWD1 TIM3 ETR is connected to ADC2 AWD1 +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_ADC2_AWD2 TIM3 ETR is connected to ADC2 AWD2 +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_ETR_ADC2_AWD3 TIM3 ETR is connected to ADC2 AWD3 +2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM4, the parameter can take one of the following values: +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_GPIO TIM4 ETR is connected to GPIO +2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP1 TIM4 ETR is connected to COMP1 output +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP2 TIM4 ETR is connected to COMP2 output +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP3 TIM4 ETR is connected to COMP3 output +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP4 TIM4 ETR is connected to COMP4 output +2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP5 TIM4 ETR is connected to COMP5 output (*) +2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP6 TIM4 ETR is connected to COMP6 output (*) +2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_COMP7 TIM4 ETR is connected to COMP7 output (*) +2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_TIM3_ETR TIM4 ETR is connected to TIM3 ETR pin +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_ETR_TIM5_ETR TIM4 ETR is connected to TIM5 ETR pin (*) +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM5, the parameter can take one of the following values: (**) +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_GPIO TIM5 ETR is connected to GPIO (*) +2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP1 TIM5 ETR is connected to COMP1 output (*) +2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP2 TIM5 ETR is connected to COMP2 output (*) +2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP3 TIM5 ETR is connected to COMP3 output (*) +2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP4 TIM5 ETR is connected to COMP4 output (*) +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP5 TIM5 ETR is connected to COMP5 output (*) +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP6 TIM5 ETR is connected to COMP6 output (*) +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_COMP7 TIM5 ETR is connected to COMP7 output (*) +2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_TIM2_ETR TIM5 ETR is connected to TIM2 ETR pin (*) +2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_ETR_TIM3_ETR TIM5 ETR is connected to TIM3 ETR pin (*) +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM8, the parameter can take one of the following values: +2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_GPIO TIM8 ETR is connected to GPIO +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP1 TIM8 ETR is connected to COMP1 output +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP2 TIM8 ETR is connected to COMP2 output +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP3 TIM8 ETR is connected to COMP3 output +2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP4 TIM8 ETR is connected to COMP4 output +2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP5 TIM8 ETR is connected to COMP5 output (*) +2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP6 TIM8 ETR is connected to COMP6 output (*) +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_COMP7 TIM8 ETR is connected to COMP7 output (*) +2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_ADC2_AWD1 TIM8 ETR is connected to ADC2 AWD1 +2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_ADC2_AWD2 TIM8 ETR is connected to ADC2 AWD2 +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_ADC2_AWD3 TIM8 ETR is connected to ADC2 AWD3 +2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_ADC3_AWD1 TIM8 ETR is connected to ADC3 AWD1 (*) +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_ADC3_AWD2 TIM8 ETR is connected to ADC3 AWD2 (*) +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_ETR_ADC3_AWD3 TIM8 ETR is connected to ADC3 AWD3 (*) +2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM20, the parameter can take one of the following values: (**) +2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_GPIO TIM20 ETR is connected to GPIO +2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP1 TIM20 ETR is connected to COMP1 output (*) +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP2 TIM20 ETR is connected to COMP2 output (*) +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP3 TIM20 ETR is connected to COMP3 output (*) +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP4 TIM20 ETR is connected to COMP4 output (*) +2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP5 TIM20 ETR is connected to COMP5 output (*) +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP6 TIM20 ETR is connected to COMP6 output (*) +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_COMP7 TIM20 ETR is connected to COMP7 output (*) +2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_ADC3_AWD1 TIM20 ETR is connected to ADC3 AWD1 (*) + ARM GAS /tmp/cc9HXhVl.s page 47 + + +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_ADC3_AWD2 TIM20 ETR is connected to ADC3 AWD2 (*) +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_ADC3_AWD3 TIM20 ETR is connected to ADC3 AWD3 (*) +2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_ADC5_AWD1 TIM20 ETR is connected to ADC5 AWD1 (*) +2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_ADC5_AWD2 TIM20 ETR is connected to ADC5 AWD2 (*) +2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_ETR_ADC5_AWD3 TIM20 ETR is connected to ADC5 AWD3 (*) +2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (*) Value not defined in all devices. \n +2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (**) Register not available in all devices. +2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap) +2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check parameters */ +2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_REMAP_INSTANCE(htim->Instance)); +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_REMAP(Remap)); +2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->AF1, TIM1_AF1_ETRSEL_Msk, Remap); +2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Select the timer input source +2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel specifies the TIM Channel +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TI1 input channel +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TI2 input channel +2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TI3 input channel +2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TI4 input channel +2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param TISelection specifies the timer input source +2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM1 this parameter can be one of the following values: +2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_TI1_GPIO: TIM1 TI1 is connected to GPIO +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_TI1_COMP1: TIM1 TI1 is connected to COMP1 output +2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_TI1_COMP2: TIM1 TI1 is connected to COMP2 output +2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_TI1_COMP3: TIM1 TI1 is connected to COMP3 output +2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM1_TI1_COMP4: TIM1 TI1 is connected to COMP4 output +2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM2 this parameter can be one of the following values: +2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI1_GPIO: TIM2 TI1 is connected to GPIO +2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI1_COMP1: TIM2 TI1 is connected to COMP1 output +2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI1_COMP2: TIM2 TI1 is connected to COMP2 output +2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI1_COMP3: TIM2 TI1 is connected to COMP3 output +2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI1_COMP4: TIM2 TI1 is connected to COMP4 output +2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI1_COMP5: TIM2 TI1 is connected to COMP5 output (*) +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI2_GPIO: TIM1 TI2 is connected to GPIO +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI2_COMP1: TIM2 TI2 is connected to COMP1 output +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI2_COMP2: TIM2 TI2 is connected to COMP2 output +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI2_COMP3: TIM2 TI2 is connected to COMP3 output +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI2_COMP4: TIM2 TI2 is connected to COMP4 output +2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI2_COMP6: TIM2 TI2 is connected to COMP6 output (*) + ARM GAS /tmp/cc9HXhVl.s page 48 + + +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI3_GPIO: TIM2 TI3 is connected to GPIO +2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI3_COMP4: TIM2 TI3 is connected to COMP4 output +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI4_GPIO: TIM2 TI4 is connected to GPIO +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI4_COMP1: TIM2 TI4 is connected to COMP1 output +2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM2_TI4_COMP2: TIM2 TI4 is connected to COMP2 output +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM3 this parameter can be one of the following values: +2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_GPIO: TIM3 TI1 is connected to GPIO +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP1: TIM3 TI1 is connected to COMP1 output +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP2: TIM3 TI1 is connected to COMP2 output +2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP3: TIM3 TI1 is connected to COMP3 output +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP4: TIM3 TI1 is connected to COMP4 output +2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP5: TIM3 TI1 is connected to COMP5 output (*) +2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP6: TIM3 TI1 is connected to COMP6 output (*) +2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI1_COMP7: TIM3 TI1 is connected to COMP7 output (*) +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_GPIO: TIM3 TI2 is connected to GPIO +2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP1: TIM3 TI2 is connected to COMP1 output +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP2: TIM3 TI2 is connected to COMP2 output +2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP3: TIM3 TI2 is connected to COMP3 output +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP4: TIM3 TI2 is connected to COMP4 output +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP5: TIM3 TI2 is connected to COMP5 output (*) +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP6: TIM3 TI2 is connected to COMP6 output (*) +2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI2_COMP7: TIM3 TI2 is connected to COMP7 output (*) +2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI3_GPIO: TIM3 TI3 is connected to GPIO +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM3_TI3_COMP3: TIM3 TI3 is connected to COMP3 output +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM4 this parameter can be one of the following values: +2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_GPIO: TIM4 TI1 is connected to GPIO +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP1: TIM4 TI1 is connected to COMP1 output +2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP2: TIM4 TI1 is connected to COMP2 output +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP3: TIM4 TI1 is connected to COMP3 output +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP4: TIM4 TI1 is connected to COMP4 output +2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP5: TIM4 TI1 is connected to COMP5 output (*) +2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP6: TIM4 TI1 is connected to COMP6 output (*) +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI1_COMP7: TIM4 TI1 is connected to COMP7 output (*) +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_GPIO: TIM4 TI2 is connected to GPIO +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP1: TIM4 TI2 is connected to COMP1 output +2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP2: TIM4 TI2 is connected to COMP2 output +2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP3: TIM4 TI2 is connected to COMP3 output +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP4: TIM4 TI2 is connected to COMP4 output +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP5: TIM4 TI2 is connected to COMP5 output (*) +2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP6: TIM4 TI2 is connected to COMP6 output (*) +2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI2_COMP7: TIM4 TI2 is connected to COMP7 output (*) +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI3_GPIO: TIM4 TI3 is connected to GPIO +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI3_COMP5: TIM4 TI3 is connected to COMP5 output (*) +2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI4_GPIO: TIM4 TI4 is connected to GPIO +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM4_TI4_COMP6: TIM4 TI4 is connected to COMP6 output (*) +2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM5 this parameter can be one of the following values: (**) +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_GPIO: TIM5 TI1 is connected to GPIO + ARM GAS /tmp/cc9HXhVl.s page 49 + + +2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_LSI: TIM5 TI1 is connected to LSI clock (*) +2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_LSE: TIM5 TI1 is connected to LSE clock (*) +2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_RTC_WK: TIM5 TI1 is connected to RTC Wakeup (*) +2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP1: TIM5 TI1 is connected to COMP1 output (*) +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP2: TIM5 TI1 is connected to COMP2 output (*) +2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP3: TIM5 TI1 is connected to COMP3 output (*) +2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP4: TIM5 TI1 is connected to COMP4 output (*) +2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP5: TIM5 TI1 is connected to COMP5 output (*) +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP6: TIM5 TI1 is connected to COMP6 output (*) +2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI1_COMP7: TIM5 TI1 is connected to COMP7 output (*) +2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_GPIO: TIM5 TI2 is connected to GPIO +2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP1: TIM5 TI2 is connected to COMP1 output +2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP2: TIM5 TI2 is connected to COMP2 output +2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP3: TIM5 TI2 is connected to COMP3 output +2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP4: TIM5 TI2 is connected to COMP4 output +2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP5: TIM5 TI2 is connected to COMP5 output (*) +2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP6: TIM5 TI2 is connected to COMP6 output (*) +2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM5_TI2_COMP7: TIM5 TI2 is connected to COMP7 output (*) +2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM8 this parameter can be one of the following values: +2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_TI1_GPIO: TIM8 TI1 is connected to GPIO +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_TI1_COMP1: TIM8 TI1 is connected to COMP1 output +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_TI1_COMP2: TIM8 TI1 is connected to COMP2 output +2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_TI1_COMP3: TIM8 TI1 is connected to COMP3 output +2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM8_TI1_COMP4: TIM8 TI1 is connected to COMP4 output +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM15 this parameter can be one of the following values: +2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI1_GPIO: TIM15 TI1 is connected to GPIO +2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI1_LSE: TIM15 TI1 is connected to LSE clock +2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI1_COMP1: TIM15 TI1 is connected to COMP1 output +2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI1_COMP2: TIM15 TI1 is connected to COMP2 output +2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI1_COMP5: TIM15 TI1 is connected to COMP5 output ( +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI1_COMP7: TIM15 TI1 is connected to COMP7 output ( +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI2_GPIO: TIM15 TI2 is connected to GPIO +2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI2_COMP2: TIM15 TI2 is connected to COMP2 output +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI2_COMP3: TIM15 TI2 is connected to COMP3 output +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI2_COMP6: TIM15 TI2 is connected to COMP6 output ( +2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM15_TI2_COMP7: TIM15 TI2 is connected to COMP7 output ( +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM16 this parameter can be one of the following values: +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_GPIO: TIM16 TI1 is connected to GPIO +2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_COMP6: TIM16 TI1 is connected to COMP6 output ( +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_MCO: TIM15 TI1 is connected to MCO output +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_HSE_32: TIM15 TI1 is connected to HSE div 32 +2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_RTC_WK: TIM15 TI1 is connected to RTC wakeup +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_LSE: TIM15 TI1 is connected to LSE clock +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM16_TI1_LSI: TIM15 TI1 is connected to LSI clock +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM17 this parameter can be one of the following values: +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_GPIO: TIM17 TI1 is connected to GPIO +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_COMP5: TIM17 TI1 is connected to COMP5 output ( +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_MCO: TIM17 TI1 is connected to MCO output +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_HSE_32: TIM17 TI1 is connected to HSE div 32 +2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_RTC_WK: TIM17 TI1 is connected to RTC wakeup +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_LSE: TIM17 TI1 is connected to LSE clock + ARM GAS /tmp/cc9HXhVl.s page 50 + + +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM17_TI1_LSI: TIM17 TI1 is connected to LSI clock +2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * For TIM20 this parameter can be one of the following values: (**) +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_TI1_GPIO: TIM20 TI1 is connected to GPIO +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_TI1_COMP1: TIM20 TI1 is connected to COMP1 output ( +2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_TI1_COMP2: TIM20 TI1 is connected to COMP2 output ( +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_TI1_COMP3: TIM20 TI1 is connected to COMP3 output ( +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_TIM20_TI1_COMP4: TIM20 TI1 is connected to COMP4 output ( +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (*) Value not defined in all devices. \n +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (**) Register not available in all devices. +2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_TISelection(TIM_HandleTypeDef *htim, uint32_t TISelection, uint32_t Ch +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check parameters */ +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_TISEL_TIX_INSTANCE(htim->Instance, Channel)); +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_TISEL(TISelection)); +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (Channel) +2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_1: +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI1SEL, TISelection); +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* If required, set OR bit to request HSE/32 clock */ +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (IS_TIM_HSE32_INSTANCE(htim->Instance)) +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->OR, TIM_OR_HSE32EN); +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->OR, TIM_OR_HSE32EN); +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_2: +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI2SEL, TISelection); +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI3SEL, TISelection); +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->TISEL, TIM_TISEL_TI4SEL, TISelection); +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 51 + + +2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Group channel 5 and channel 1, 2 or 3 +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channels specifies the reference signal(s) the OC5REF is combined with. +2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be any combination of the following values: +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * TIM_GROUPCH5_NONE: No effect of OC5REF on OC1REFC, OC2REFC and OC3REFC +2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * TIM_GROUPCH5_OC1REFC: OC1REFC is the logical AND of OC1REFC and OC5REF +2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * TIM_GROUPCH5_OC2REFC: OC2REFC is the logical AND of OC2REFC and OC5REF +2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * TIM_GROUPCH5_OC3REFC: OC3REFC is the logical AND of OC3REFC and OC5REF +2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_GroupChannel5(TIM_HandleTypeDef *htim, uint32_t Channels) +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check parameters */ +2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_COMBINED3PHASEPWM_INSTANCE(htim->Instance)); +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_GROUPCH5(Channels)); +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Process Locked */ +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_BUSY; +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Clear GC5Cx bit fields */ +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CCR5 &= ~(TIM_CCR5_GC5C3 | TIM_CCR5_GC5C2 | TIM_CCR5_GC5C1); +2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set GC5Cx bit fields */ +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CCR5 |= Channels; +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the htim state */ +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_READY; +2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disarm the designated break input (when it operates in bidirectional mode). +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param BreakInput Break input to disarm +2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_BREAKINPUT_BRK: Timer break input +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_BREAKINPUT_BRK2: Timer break 2 input +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note The break input can be disarmed only when it is configured in +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * bidirectional mode and when when MOE is reset. +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Purpose is to be able to have the input voltage back to high-state, +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * whatever the time constant on the output . +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DisarmBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput) +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ADVANCED_INSTANCE(htim->Instance)); + ARM GAS /tmp/cc9HXhVl.s page 52 + + +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUT(BreakInput)); +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (BreakInput) +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUT_BRK: +2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check initial conditions */ +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpbdtr = READ_REG(htim->Instance->BDTR); +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) && +2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) +2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Break input BRK is disarmed */ +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM); +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUT_BRK2: +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check initial conditions */ +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpbdtr = READ_REG(htim->Instance->BDTR); +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) && +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Break input BRK is disarmed */ +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM); +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Arm the designated break input (when it operates in bidirectional mode). +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param BreakInput Break input to arm +2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_BREAKINPUT_BRK: Timer break input +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_BREAKINPUT_BRK2: Timer break 2 input +2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Arming is possible at anytime, even if fault is present. +2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Break input is automatically armed as soon as MOE bit is set. +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ReArmBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput) +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ADVANCED_INSTANCE(htim->Instance)); +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUT(BreakInput)); +2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 53 + + +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** switch (BreakInput) +2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUT_BRK: +2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check initial conditions */ +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) +2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Break input BRK is re-armed automatically by hardware. Poll to check whether fault condi +2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Init tickstart for timeout management */ +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tickstart = HAL_GetTick(); +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((HAL_GetTick() - tickstart) > TIM_BREAKINPUT_REARM_TIMEOUT) +2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* New check to avoid false timeout detection in case of preemption */ +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) +2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_TIMEOUT; +2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_BREAKINPUT_BRK2: +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check initial conditions */ +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) +2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Break input BRK2 is re-armed automatically by hardware. Poll to check whether fault cond +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Init tickstart for timeout management */ +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tickstart = HAL_GetTick(); +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((HAL_GetTick() - tickstart) > TIM_BREAKINPUT_REARM_TIMEOUT) +2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* New check to avoid false timeout detection in case of preemption */ +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) +2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_TIMEOUT; +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: +2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** status = HAL_ERROR; +2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return status; +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enable dithering + ARM GAS /tmp/cc9HXhVl.s page 54 + + +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Main usage is PWM mode +2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This function must be called when timer is stopped or disabled (CEN =0) +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note If dithering is activated, pay attention to ARR, CCRx, CNT interpretation: +2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - CNT: only CNT[11:0] holds the non-dithered part for 16b timers (or CNT[26:0] for 32 +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - ARR: ARR[15:4] holds the non-dithered part, and ARR[3:0] the dither part for 16b ti +3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - CCRx: CCRx[15:4] holds the non-dithered part, and CCRx[3:0] the dither part for 16b +3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - ARR and CCRx values are limited to 0xFFEF in dithering mode for 16b timers +3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (corresponds to 4094 for the integer part and 15 for the dithered part). +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Macros @ref __HAL_TIM_CALC_PERIOD_DITHER() __HAL_TIM_CALC_DELAY_DITHER() __HAL_TIM_CAL +3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * can be used to calculate period (ARR) and delay (CCRx) value. +3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Enabling dithering, modifies automatically values of registers ARR/CCRx to keep the sam +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Enabling dithering, modifies automatically values of registers ARR/CCRx to keep the sam +3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * So it may be necessary to read ARR value or CCRx value with macros @ref __HAL_TIM_GET_A +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * __HAL_TIM_GET_COMPARE() and if necessary update Init structure field htim->Init.Period +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DitheringEnable(TIM_HandleTypeDef *htim) +3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->CR1, TIM_CR1_DITHEN); +3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disable dithering +3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This function must be called when timer is stopped or disabled (CEN =0) +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note If dithering is activated, pay attention to ARR, CCRx, CNT interpretation: +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - CNT: only CNT[11:0] holds the non-dithered part for 16b timers (or CNT[26:0] for 32 +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - ARR: ARR[15:4] holds the non-dithered part, and ARR[3:0] the dither part for 16b ti +3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - CCRx: CCRx[15:4] holds the non-dithered part, and CCRx[3:0] the dither part for 16b +3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * - ARR and CCRx values are limited to 0xFFEF in dithering mode +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * (corresponds to 4094 for the integer part and 15 for the dithered part). +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note Disabling dithering, modifies automatically values of registers ARR/CCRx to keep the sa +3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * So it may be necessary to read ARR value or CCRx value with macros @ref __HAL_TIM_GET_A +3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * __HAL_TIM_GET_COMPARE() and if necessary update Init structure field htim->Init.Period +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DitheringDisable(TIM_HandleTypeDef *htim) +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INSTANCE(htim->Instance)); +3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->CR1, TIM_CR1_DITHEN); +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Initializes the pulse on compare pulse width and pulse prescaler +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Output Compare handle +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param PulseWidthPrescaler Pulse width prescaler +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be a number between Min_Data = 0x0 and Max_Data = 0x7 +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param PulseWidth Pulse width +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF + ARM GAS /tmp/cc9HXhVl.s page 55 + + +3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_OC_ConfigPulseOnCompare(TIM_HandleTypeDef *htim, +3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t PulseWidthPrescaler, +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t PulseWidth) +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpecr; +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_PULSEONCOMPARE_INSTANCE(htim->Instance)); +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_PULSEONCOMPARE_WIDTH(PulseWidth)); +3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_PULSEONCOMPARE_WIDTHPRESCALER(PulseWidthPrescaler)); +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Process Locked */ +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the TIM state */ +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_BUSY; +3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Get the TIMx ECR register value */ +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpecr = htim->Instance->ECR; +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the Pulse width prescaler and the Pulse width */ +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpecr &= ~(TIM_ECR_PWPRSC | TIM_ECR_PW); +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the Pulse width prescaler and Pulse width*/ +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpecr |= PulseWidthPrescaler << TIM_ECR_PWPRSC_Pos; +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpecr |= PulseWidth << TIM_ECR_PW_Pos; +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Write to TIMx ECR */ +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->ECR = tmpecr; +3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the TIM state */ +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_READY; +3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Release Lock */ +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configure preload source of Slave Mode Selection bitfield (SMS in SMCR register) +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Source Source of slave mode selection preload +3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_SMS_PRELOAD_SOURCE_UPDATE: Timer update event is used as source of Slave Mo +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_SMS_PRELOAD_SOURCE_INDEX: Timer index event is used as source of Slave Mode +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigSlaveModePreload(TIM_HandleTypeDef *htim, uint32_t Source) +3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_SLAVE_PRELOAD_SOURCE(Source)); +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->SMCR, TIM_SMCR_SMSPS, Source); +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 56 + + +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enable preload of Slave Mode Selection bitfield (SMS in SMCR register) +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_EnableSlaveModePreload(TIM_HandleTypeDef *htim) +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->SMCR, TIM_SMCR_SMSPE); +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disable preload of Slave Mode Selection bitfield (SMS in SMCR register) +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DisableSlaveModePreload(TIM_HandleTypeDef *htim) +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance)); +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->SMCR, TIM_SMCR_SMSPE); +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enable deadtime preload +3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_EnableDeadTimePreload(TIM_HandleTypeDef *htim) +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->DTR2, TIM_DTR2_DTPE); +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disable deadtime preload +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DisableDeadTimePreload(TIM_HandleTypeDef *htim) +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->DTR2, TIM_DTR2_DTPE); +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + ARM GAS /tmp/cc9HXhVl.s page 57 + + +3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configure deadtime +3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Deadtime Deadtime value +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF +3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigDeadTime(TIM_HandleTypeDef *htim, uint32_t Deadtime) +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_DEADTIME(Deadtime)); +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->BDTR, TIM_BDTR_DTG, Deadtime); +3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configure asymmetrical deadtime +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param FallingDeadtime Falling edge deadtime value +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigAsymmetricalDeadTime(TIM_HandleTypeDef *htim, uint32_t FallingDea +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_DEADTIME(FallingDeadtime)); +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->DTR2, TIM_DTR2_DTGF, FallingDeadtime); +3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enable asymmetrical deadtime +3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_EnableAsymmetricalDeadTime(TIM_HandleTypeDef *htim) +3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->DTR2, TIM_DTR2_DTAE); +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disable asymmetrical deadtime +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DisableAsymmetricalDeadTime(TIM_HandleTypeDef *htim) +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); +3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 58 + + +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->DTR2, TIM_DTR2_DTAE); +3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Configures the encoder index. +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @note warning in case of encoder mode clock plus direction +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @ref TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X1 or @ref TIM_ENCODERMODE_CLOCKPLUS +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * Direction must be set to @ref TIM_ENCODERINDEX_DIRECTION_UP_DOWN +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle. +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param sEncoderIndexConfig Encoder index configuration +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_ConfigEncoderIndex(TIM_HandleTypeDef *htim, +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIMEx_EncoderIndexConfigTypeDef *sEncoderIndexConfig +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_POLARITY(sEncoderIndexConfig->Polarity)); +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_PRESCALER(sEncoderIndexConfig->Prescaler)); +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_FILTER(sEncoderIndexConfig->Filter)); +3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sEncoderIndexConfig->FirstIndexEnable)); +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_POSITION(sEncoderIndexConfig->Position)); +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_DIRECTION(sEncoderIndexConfig->Direction)); +3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Process Locked */ +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_LOCK(htim); +3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Configures the TIMx External Trigger (ETR) which is used as Index input */ +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ETR_SetConfig(htim->Instance, +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Prescaler, +3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Polarity, +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Filter); +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Configures the encoder index */ +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(htim->Instance->ECR, +3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ECR_IDIR_Msk | TIM_ECR_FIDX_Msk | TIM_ECR_IPOS_Msk, +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (sEncoderIndexConfig->Direction | +3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ((sEncoderIndexConfig->FirstIndexEnable == ENABLE) ? (0x1U << TIM_ECR_FIDX_Pos) : 0U) +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Position | +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ECR_IE)); +3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __HAL_UNLOCK(htim); +3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enable encoder index +3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_EnableEncoderIndex(TIM_HandleTypeDef *htim) +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 59 + + +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->ECR, TIM_ECR_IE); +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disable encoder index +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DisableEncoderIndex(TIM_HandleTypeDef *htim) +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->ECR, TIM_ECR_IE); +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enable encoder first index +3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_EnableEncoderFirstIndex(TIM_HandleTypeDef *htim) +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** SET_BIT(htim->Instance->ECR, TIM_ECR_FIDX); +3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Disable encoder first index +3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL status +3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef HAL_TIMEx_DisableEncoderFirstIndex(TIM_HandleTypeDef *htim) +3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance)); +3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** CLEAR_BIT(htim->Instance->ECR, TIM_ECR_FIDX); +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Extended Callbacks functions +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Extended Callbacks functions ##### +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== + ARM GAS /tmp/cc9HXhVl.s page 60 + + +3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This section provides Extended TIM callback functions: +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Timer Commutation callback +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (+) Timer Break callback +3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim +3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ +3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Hall commutation changed callback in non-blocking mode +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) +3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_CommutCallback could be implemented in the user file +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Hall commutation changed half complete callback in non-blocking mode +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim) +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_CommutHalfCpltCallback could be implemented in the user file +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Hall Break detection callback in non-blocking mode +3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_BreakCallback could be implemented in the user file +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Hall Break2 detection callback in non blocking mode +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim: TIM handle +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None + ARM GAS /tmp/cc9HXhVl.s page 61 + + +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim) +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function Should not be modified, when the callback is needed, +3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_Break2Callback could be implemented in the user file +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Encoder index callback in non-blocking mode +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_EncoderIndexCallback(TIM_HandleTypeDef *htim) +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_EncoderIndexCallback could be implemented in the user file +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Direction change callback in non-blocking mode +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_DirectionChangeCallback(TIM_HandleTypeDef *htim) +3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_DirectionChangeCallback could be implemented in the user file +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Index error callback in non-blocking mode +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_IndexErrorCallback(TIM_HandleTypeDef *htim) +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_IndexErrorCallback could be implemented in the user file +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + ARM GAS /tmp/cc9HXhVl.s page 62 + + +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Transition error callback in non-blocking mode +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** __weak void HAL_TIMEx_TransitionErrorCallback(TIM_HandleTypeDef *htim) +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** UNUSED(htim); +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** the HAL_TIMEx_TransitionErrorCallback could be implemented in the user file +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Exported_Functions_Group7 Extended Peripheral State functions +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Extended Peripheral State functions +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @verbatim +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ##### Extended Peripheral State functions ##### +3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** ============================================================================== +3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** [..] +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** This subsection permits to get in run-time the status of the peripheral +3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** and the data flow. +3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** @endverbatim +3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ +3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Return the TIM Hall Sensor interface handle state. +3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM Hall Sensor handle +3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval HAL state +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(TIM_HandleTypeDef *htim) +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return htim->State; +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Return actual state of the TIM complementary channel. +3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param htim TIM handle +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param ChannelN TIM Complementary channel +3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 +3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 +3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval TIM Complementary channel state +3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(TIM_HandleTypeDef *htim, uint32_t ChannelN) +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_state; + ARM GAS /tmp/cc9HXhVl.s page 63 + + +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, ChannelN)); +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** channel_state = TIM_CHANNEL_N_STATE_GET(htim, ChannelN); +3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return channel_state; +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @} +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Private functions ---------------------------------------------------------*/ +3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** @defgroup TIMEx_Private_Functions TIM Extended Private Functions +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @{ +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief TIM DMA Commutation callback. +3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param hdma pointer to DMA handle. +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma) +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the htim state */ +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_READY; +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->CommutationCallback(htim); +3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_CommutCallback(htim); +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief TIM DMA Commutation half complete callback. +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param hdma pointer to DMA handle. +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma) +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Change the htim state */ +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->State = HAL_TIM_STATE_READY; +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->CommutationHalfCpltCallback(htim); +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIMEx_CommutHalfCpltCallback(htim); +3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + ARM GAS /tmp/cc9HXhVl.s page 64 + + +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief TIM DMA Delay Pulse complete callback (complementary channel). +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param hdma pointer to DMA handle. +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** static void TIM_DMADelayPulseNCplt(DMA_HandleTypeDef *hdma) +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (hdma->Init.Mode == DMA_NORMAL) +3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (hdma->Init.Mode == DMA_NORMAL) +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (hdma->Init.Mode == DMA_NORMAL) +3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); +3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) +3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (hdma->Init.Mode == DMA_NORMAL) +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* nothing to do */ +3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->PWM_PulseFinishedCallback(htim); +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_PWM_PulseFinishedCallback(htim); + ARM GAS /tmp/cc9HXhVl.s page 65 + + +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief TIM DMA error callback (complementary channel) +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param hdma pointer to DMA handle. +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** static void TIM_DMAErrorCCxN(DMA_HandleTypeDef *hdma) +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (hdma == htim->hdma[TIM_DMA_ID_CC1]) +3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; +3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) +3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); +3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; +3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); +3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** else +3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { +3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* nothing to do */ +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->ErrorCallback(htim); +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #else +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ErrorCallback(htim); +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @brief Enables or disables the TIM Capture Compare Channel xN. +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param TIMx to select the TIM peripheral +3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param Channel specifies the TIM Channel +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be one of the following values: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_1: TIM Channel 1 +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_2: TIM Channel 2 +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_3: TIM Channel 3 +3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @arg TIM_CHANNEL_4: TIM Channel 4 +3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @param ChannelNState specifies the TIM Channel CCxNE bit new state. +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * This parameter can be: TIM_CCxN_ENABLE or TIM_CCxN_Disable. +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** * @retval None +3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** */ +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** static void TIM_CCxNChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelNState) + ARM GAS /tmp/cc9HXhVl.s page 66 + + +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 29 .loc 1 3679 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. +3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmp; + 34 .loc 1 3680 3 view .LVU1 +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmp = TIM_CCER_CC1NE << (Channel & 0x1FU); /* 0x1FU = 31 bits max shift */ + 35 .loc 1 3682 3 view .LVU2 + 36 .loc 1 3682 36 is_stmt 0 view .LVU3 + 37 0000 01F01F01 and r1, r1, #31 + 38 .LVL1: + 39 .loc 1 3682 7 view .LVU4 + 40 0004 4FF0040C mov ip, #4 + 41 0008 0CFA01FC lsl ip, ip, r1 + 42 .LVL2: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the CCxNE Bit */ +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIMx->CCER &= ~tmp; + 43 .loc 1 3685 3 is_stmt 1 view .LVU5 + 44 .loc 1 3685 7 is_stmt 0 view .LVU6 + 45 000c 036A ldr r3, [r0, #32] + 46 .loc 1 3685 14 view .LVU7 + 47 000e 23EA0C03 bic r3, r3, ip + 48 0012 0362 str r3, [r0, #32] +3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** +3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set or reset the CCxNE Bit */ +3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIMx->CCER |= (uint32_t)(ChannelNState << (Channel & 0x1FU)); /* 0x1FU = 31 bits max shift */ + 49 .loc 1 3688 3 is_stmt 1 view .LVU8 + 50 .loc 1 3688 7 is_stmt 0 view .LVU9 + 51 0014 036A ldr r3, [r0, #32] + 52 .loc 1 3688 42 view .LVU10 + 53 0016 8A40 lsls r2, r2, r1 + 54 .LVL3: + 55 .loc 1 3688 14 view .LVU11 + 56 0018 1343 orrs r3, r3, r2 + 57 001a 0362 str r3, [r0, #32] +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 58 .loc 1 3689 1 view .LVU12 + 59 001c 7047 bx lr + 60 .cfi_endproc + 61 .LFE397: + 63 .section .text.TIM_DMAErrorCCxN,"ax",%progbits + 64 .align 1 + 65 .syntax unified + 66 .thumb + 67 .thumb_func + 69 TIM_DMAErrorCCxN: + 70 .LVL4: + 71 .LFB396: +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 72 .loc 1 3633 1 is_stmt 1 view -0 + 73 .cfi_startproc + 74 @ args = 0, pretend = 0, frame = 0 + 75 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cc9HXhVl.s page 67 + + +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 76 .loc 1 3633 1 is_stmt 0 view .LVU14 + 77 0000 10B5 push {r4, lr} + 78 .LCFI0: + 79 .cfi_def_cfa_offset 8 + 80 .cfi_offset 4, -8 + 81 .cfi_offset 14, -4 +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 82 .loc 1 3634 3 is_stmt 1 view .LVU15 +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 83 .loc 1 3634 22 is_stmt 0 view .LVU16 + 84 0002 846A ldr r4, [r0, #40] + 85 .LVL5: +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 86 .loc 1 3636 3 is_stmt 1 view .LVU17 +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 87 .loc 1 3636 25 is_stmt 0 view .LVU18 + 88 0004 636A ldr r3, [r4, #36] +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 89 .loc 1 3636 6 view .LVU19 + 90 0006 8342 cmp r3, r0 + 91 0008 0BD0 beq .L7 +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 92 .loc 1 3641 8 is_stmt 1 view .LVU20 +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 93 .loc 1 3641 30 is_stmt 0 view .LVU21 + 94 000a A36A ldr r3, [r4, #40] +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 95 .loc 1 3641 11 view .LVU22 + 96 000c 8342 cmp r3, r0 + 97 000e 0DD0 beq .L8 +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 98 .loc 1 3646 8 is_stmt 1 view .LVU23 +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 99 .loc 1 3646 30 is_stmt 0 view .LVU24 + 100 0010 E36A ldr r3, [r4, #44] +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 101 .loc 1 3646 11 view .LVU25 + 102 0012 8342 cmp r3, r0 + 103 0014 10D0 beq .L9 + 104 .L4: +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 105 .loc 1 3654 3 is_stmt 1 view .LVU26 +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 106 .loc 1 3659 3 view .LVU27 + 107 0016 2046 mov r0, r4 + 108 .LVL6: +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 109 .loc 1 3659 3 is_stmt 0 view .LVU28 + 110 0018 FFF7FEFF bl HAL_TIM_ErrorCallback + 111 .LVL7: +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 112 .loc 1 3662 3 is_stmt 1 view .LVU29 +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 113 .loc 1 3662 17 is_stmt 0 view .LVU30 + 114 001c 0023 movs r3, #0 + 115 001e 2377 strb r3, [r4, #28] + ARM GAS /tmp/cc9HXhVl.s page 68 + + +3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 116 .loc 1 3663 1 view .LVU31 + 117 0020 10BD pop {r4, pc} + 118 .LVL8: + 119 .L7: +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 120 .loc 1 3638 5 is_stmt 1 view .LVU32 +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 121 .loc 1 3638 19 is_stmt 0 view .LVU33 + 122 0022 0123 movs r3, #1 + 123 0024 2377 strb r3, [r4, #28] +3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 124 .loc 1 3639 5 is_stmt 1 view .LVU34 + 125 0026 84F84430 strb r3, [r4, #68] + 126 002a F4E7 b .L4 + 127 .L8: +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 128 .loc 1 3643 5 view .LVU35 +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 129 .loc 1 3643 19 is_stmt 0 view .LVU36 + 130 002c 0223 movs r3, #2 + 131 002e 2377 strb r3, [r4, #28] +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 132 .loc 1 3644 5 is_stmt 1 view .LVU37 + 133 0030 0123 movs r3, #1 + 134 0032 84F84530 strb r3, [r4, #69] + 135 0036 EEE7 b .L4 + 136 .L9: +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + 137 .loc 1 3648 5 view .LVU38 +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + 138 .loc 1 3648 19 is_stmt 0 view .LVU39 + 139 0038 0423 movs r3, #4 + 140 003a 2377 strb r3, [r4, #28] +3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 141 .loc 1 3649 5 is_stmt 1 view .LVU40 + 142 003c 0123 movs r3, #1 + 143 003e 84F84630 strb r3, [r4, #70] + 144 0042 E8E7 b .L4 + 145 .cfi_endproc + 146 .LFE396: + 148 .section .text.TIM_DMADelayPulseNCplt,"ax",%progbits + 149 .align 1 + 150 .syntax unified + 151 .thumb + 152 .thumb_func + 154 TIM_DMADelayPulseNCplt: + 155 .LVL9: + 156 .LFB395: +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 157 .loc 1 3574 1 view -0 + 158 .cfi_startproc + 159 @ args = 0, pretend = 0, frame = 0 + 160 @ frame_needed = 0, uses_anonymous_args = 0 +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 161 .loc 1 3574 1 is_stmt 0 view .LVU42 + 162 0000 10B5 push {r4, lr} + ARM GAS /tmp/cc9HXhVl.s page 69 + + + 163 .LCFI1: + 164 .cfi_def_cfa_offset 8 + 165 .cfi_offset 4, -8 + 166 .cfi_offset 14, -4 +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 167 .loc 1 3575 3 is_stmt 1 view .LVU43 +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 168 .loc 1 3575 22 is_stmt 0 view .LVU44 + 169 0002 846A ldr r4, [r0, #40] + 170 .LVL10: +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 171 .loc 1 3577 3 is_stmt 1 view .LVU45 +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 172 .loc 1 3577 25 is_stmt 0 view .LVU46 + 173 0004 636A ldr r3, [r4, #36] +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 174 .loc 1 3577 6 view .LVU47 + 175 0006 8342 cmp r3, r0 + 176 0008 0ED0 beq .L16 +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 177 .loc 1 3586 8 is_stmt 1 view .LVU48 +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 178 .loc 1 3586 30 is_stmt 0 view .LVU49 + 179 000a A36A ldr r3, [r4, #40] +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 180 .loc 1 3586 11 view .LVU50 + 181 000c 8342 cmp r3, r0 + 182 000e 14D0 beq .L17 +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 183 .loc 1 3595 8 is_stmt 1 view .LVU51 +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 184 .loc 1 3595 30 is_stmt 0 view .LVU52 + 185 0010 E36A ldr r3, [r4, #44] +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 186 .loc 1 3595 11 view .LVU53 + 187 0012 8342 cmp r3, r0 + 188 0014 1AD0 beq .L18 +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 189 .loc 1 3604 8 is_stmt 1 view .LVU54 +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 190 .loc 1 3604 30 is_stmt 0 view .LVU55 + 191 0016 236B ldr r3, [r4, #48] +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 192 .loc 1 3604 11 view .LVU56 + 193 0018 8342 cmp r3, r0 + 194 001a 20D0 beq .L19 + 195 .L12: +3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 196 .loc 1 3616 3 is_stmt 1 view .LVU57 +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 197 .loc 1 3621 3 view .LVU58 + 198 001c 2046 mov r0, r4 + 199 .LVL11: +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 200 .loc 1 3621 3 is_stmt 0 view .LVU59 + 201 001e FFF7FEFF bl HAL_TIM_PWM_PulseFinishedCallback + 202 .LVL12: + ARM GAS /tmp/cc9HXhVl.s page 70 + + +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 203 .loc 1 3624 3 is_stmt 1 view .LVU60 +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 204 .loc 1 3624 17 is_stmt 0 view .LVU61 + 205 0022 0023 movs r3, #0 + 206 0024 2377 strb r3, [r4, #28] +3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 207 .loc 1 3625 1 view .LVU62 + 208 0026 10BD pop {r4, pc} + 209 .LVL13: + 210 .L16: +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 211 .loc 1 3579 5 is_stmt 1 view .LVU63 +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 212 .loc 1 3579 19 is_stmt 0 view .LVU64 + 213 0028 0123 movs r3, #1 + 214 002a 2377 strb r3, [r4, #28] +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 215 .loc 1 3581 5 is_stmt 1 view .LVU65 +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 216 .loc 1 3581 19 is_stmt 0 view .LVU66 + 217 002c C369 ldr r3, [r0, #28] +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 218 .loc 1 3581 8 view .LVU67 + 219 002e 002B cmp r3, #0 + 220 0030 F4D1 bne .L12 +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 221 .loc 1 3583 7 is_stmt 1 view .LVU68 + 222 0032 0123 movs r3, #1 + 223 0034 84F84430 strb r3, [r4, #68] + 224 0038 F0E7 b .L12 + 225 .L17: +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 226 .loc 1 3588 5 view .LVU69 +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 227 .loc 1 3588 19 is_stmt 0 view .LVU70 + 228 003a 0223 movs r3, #2 + 229 003c 2377 strb r3, [r4, #28] +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 230 .loc 1 3590 5 is_stmt 1 view .LVU71 +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 231 .loc 1 3590 19 is_stmt 0 view .LVU72 + 232 003e C369 ldr r3, [r0, #28] +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 233 .loc 1 3590 8 view .LVU73 + 234 0040 002B cmp r3, #0 + 235 0042 EBD1 bne .L12 +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 236 .loc 1 3592 7 is_stmt 1 view .LVU74 + 237 0044 0123 movs r3, #1 + 238 0046 84F84530 strb r3, [r4, #69] + 239 004a E7E7 b .L12 + 240 .L18: +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 241 .loc 1 3597 5 view .LVU75 +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 242 .loc 1 3597 19 is_stmt 0 view .LVU76 + ARM GAS /tmp/cc9HXhVl.s page 71 + + + 243 004c 0423 movs r3, #4 + 244 004e 2377 strb r3, [r4, #28] +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 245 .loc 1 3599 5 is_stmt 1 view .LVU77 +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 246 .loc 1 3599 19 is_stmt 0 view .LVU78 + 247 0050 C369 ldr r3, [r0, #28] +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 248 .loc 1 3599 8 view .LVU79 + 249 0052 002B cmp r3, #0 + 250 0054 E2D1 bne .L12 +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 251 .loc 1 3601 7 is_stmt 1 view .LVU80 + 252 0056 0123 movs r3, #1 + 253 0058 84F84630 strb r3, [r4, #70] + 254 005c DEE7 b .L12 + 255 .L19: +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 256 .loc 1 3606 5 view .LVU81 +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 257 .loc 1 3606 19 is_stmt 0 view .LVU82 + 258 005e 0823 movs r3, #8 + 259 0060 2377 strb r3, [r4, #28] +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 260 .loc 1 3608 5 is_stmt 1 view .LVU83 +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 261 .loc 1 3608 19 is_stmt 0 view .LVU84 + 262 0062 C369 ldr r3, [r0, #28] +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 263 .loc 1 3608 8 view .LVU85 + 264 0064 002B cmp r3, #0 + 265 0066 D9D1 bne .L12 +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 266 .loc 1 3610 7 is_stmt 1 view .LVU86 + 267 0068 0123 movs r3, #1 + 268 006a 84F84730 strb r3, [r4, #71] + 269 006e D5E7 b .L12 + 270 .cfi_endproc + 271 .LFE395: + 273 .section .text.HAL_TIMEx_HallSensor_MspInit,"ax",%progbits + 274 .align 1 + 275 .weak HAL_TIMEx_HallSensor_MspInit + 276 .syntax unified + 277 .thumb + 278 .thumb_func + 280 HAL_TIMEx_HallSensor_MspInit: + 281 .LVL14: + 282 .LFB331: + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 283 .loc 1 304 1 view -0 + 284 .cfi_startproc + 285 @ args = 0, pretend = 0, frame = 0 + 286 @ frame_needed = 0, uses_anonymous_args = 0 + 287 @ link register save eliminated. + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 288 .loc 1 306 3 view .LVU88 + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 72 + + + 289 .loc 1 311 1 is_stmt 0 view .LVU89 + 290 0000 7047 bx lr + 291 .cfi_endproc + 292 .LFE331: + 294 .section .text.HAL_TIMEx_HallSensor_Init,"ax",%progbits + 295 .align 1 + 296 .global HAL_TIMEx_HallSensor_Init + 297 .syntax unified + 298 .thumb + 299 .thumb_func + 301 HAL_TIMEx_HallSensor_Init: + 302 .LVL15: + 303 .LFB329: + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_OC_InitTypeDef OC_Config; + 304 .loc 1 158 1 is_stmt 1 view -0 + 305 .cfi_startproc + 306 @ args = 0, pretend = 0, frame = 32 + 307 @ frame_needed = 0, uses_anonymous_args = 0 + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 308 .loc 1 159 3 view .LVU91 + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 309 .loc 1 162 3 view .LVU92 + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 310 .loc 1 162 6 is_stmt 0 view .LVU93 + 311 0000 0028 cmp r0, #0 + 312 0002 6BD0 beq .L24 + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_OC_InitTypeDef OC_Config; + 313 .loc 1 158 1 view .LVU94 + 314 0004 70B5 push {r4, r5, r6, lr} + 315 .LCFI2: + 316 .cfi_def_cfa_offset 16 + 317 .cfi_offset 4, -16 + 318 .cfi_offset 5, -12 + 319 .cfi_offset 6, -8 + 320 .cfi_offset 14, -4 + 321 0006 88B0 sub sp, sp, #32 + 322 .LCFI3: + 323 .cfi_def_cfa_offset 48 + 324 0008 0E46 mov r6, r1 + 325 000a 0446 mov r4, r0 + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + 326 .loc 1 168 3 is_stmt 1 view .LVU95 + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + 327 .loc 1 169 3 view .LVU96 + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + 328 .loc 1 170 3 view .LVU97 + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_IC_POLARITY(sConfig->IC1Polarity)); + 329 .loc 1 171 3 view .LVU98 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_IC_PRESCALER(sConfig->IC1Prescaler)); + 330 .loc 1 172 3 view .LVU99 + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_IC_FILTER(sConfig->IC1Filter)); + 331 .loc 1 173 3 view .LVU100 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 332 .loc 1 174 3 view .LVU101 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 333 .loc 1 176 3 view .LVU102 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 73 + + + 334 .loc 1 176 11 is_stmt 0 view .LVU103 + 335 000c 90F83D30 ldrb r3, [r0, #61] @ zero_extendqisi2 + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 336 .loc 1 176 6 view .LVU104 + 337 0010 002B cmp r3, #0 + 338 0012 5ED0 beq .L29 + 339 .LVL16: + 340 .L23: + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 341 .loc 1 198 3 is_stmt 1 view .LVU105 + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 342 .loc 1 198 15 is_stmt 0 view .LVU106 + 343 0014 0223 movs r3, #2 + 344 0016 84F83D30 strb r3, [r4, #61] + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 345 .loc 1 201 3 is_stmt 1 view .LVU107 + 346 001a 2146 mov r1, r4 + 347 001c 51F8040B ldr r0, [r1], #4 + 348 0020 FFF7FEFF bl TIM_Base_SetConfig + 349 .LVL17: + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 350 .loc 1 204 3 view .LVU108 + 351 0024 B368 ldr r3, [r6, #8] + 352 0026 0322 movs r2, #3 + 353 0028 3168 ldr r1, [r6] + 354 002a 2068 ldr r0, [r4] + 355 002c FFF7FEFF bl TIM_TI1_SetConfig + 356 .LVL18: + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the IC1PSC value */ + 357 .loc 1 207 3 view .LVU109 + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the IC1PSC value */ + 358 .loc 1 207 7 is_stmt 0 view .LVU110 + 359 0030 2268 ldr r2, [r4] + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the IC1PSC value */ + 360 .loc 1 207 17 view .LVU111 + 361 0032 9369 ldr r3, [r2, #24] + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the IC1PSC value */ + 362 .loc 1 207 25 view .LVU112 + 363 0034 23F00C03 bic r3, r3, #12 + 364 0038 9361 str r3, [r2, #24] + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 365 .loc 1 209 3 is_stmt 1 view .LVU113 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 366 .loc 1 209 7 is_stmt 0 view .LVU114 + 367 003a 2268 ldr r2, [r4] + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 368 .loc 1 209 17 view .LVU115 + 369 003c 9369 ldr r3, [r2, #24] + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 370 .loc 1 209 35 view .LVU116 + 371 003e 7168 ldr r1, [r6, #4] + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 372 .loc 1 209 25 view .LVU117 + 373 0040 0B43 orrs r3, r3, r1 + 374 0042 9361 str r3, [r2, #24] + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 375 .loc 1 212 3 is_stmt 1 view .LVU118 + ARM GAS /tmp/cc9HXhVl.s page 74 + + + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 376 .loc 1 212 7 is_stmt 0 view .LVU119 + 377 0044 2268 ldr r2, [r4] + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 378 .loc 1 212 17 view .LVU120 + 379 0046 5368 ldr r3, [r2, #4] + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 380 .loc 1 212 23 view .LVU121 + 381 0048 43F08003 orr r3, r3, #128 + 382 004c 5360 str r3, [r2, #4] + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_TS_TI1F_ED; + 383 .loc 1 215 3 is_stmt 1 view .LVU122 + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_TS_TI1F_ED; + 384 .loc 1 215 7 is_stmt 0 view .LVU123 + 385 004e 2268 ldr r2, [r4] + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_TS_TI1F_ED; + 386 .loc 1 215 17 view .LVU124 + 387 0050 9368 ldr r3, [r2, #8] + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_TS_TI1F_ED; + 388 .loc 1 215 24 view .LVU125 + 389 0052 23F44013 bic r3, r3, #3145728 + 390 0056 23F07003 bic r3, r3, #112 + 391 005a 9360 str r3, [r2, #8] + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 392 .loc 1 216 3 is_stmt 1 view .LVU126 + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 393 .loc 1 216 7 is_stmt 0 view .LVU127 + 394 005c 2268 ldr r2, [r4] + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 395 .loc 1 216 17 view .LVU128 + 396 005e 9368 ldr r3, [r2, #8] + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 397 .loc 1 216 24 view .LVU129 + 398 0060 43F04003 orr r3, r3, #64 + 399 0064 9360 str r3, [r2, #8] + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_RESET; + 400 .loc 1 219 3 is_stmt 1 view .LVU130 + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_RESET; + 401 .loc 1 219 7 is_stmt 0 view .LVU131 + 402 0066 2268 ldr r2, [r4] + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_RESET; + 403 .loc 1 219 17 view .LVU132 + 404 0068 9368 ldr r3, [r2, #8] + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= TIM_SLAVEMODE_RESET; + 405 .loc 1 219 24 view .LVU133 + 406 006a 23F48033 bic r3, r3, #65536 + 407 006e 23F00703 bic r3, r3, #7 + 408 0072 9360 str r3, [r2, #8] + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 409 .loc 1 220 3 is_stmt 1 view .LVU134 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 410 .loc 1 220 7 is_stmt 0 view .LVU135 + 411 0074 2268 ldr r2, [r4] + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 412 .loc 1 220 17 view .LVU136 + 413 0076 9368 ldr r3, [r2, #8] + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 75 + + + 414 .loc 1 220 24 view .LVU137 + 415 0078 43F00403 orr r3, r3, #4 + 416 007c 9360 str r3, [r2, #8] + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCIdleState = TIM_OCIDLESTATE_RESET; + 417 .loc 1 223 3 is_stmt 1 view .LVU138 + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCIdleState = TIM_OCIDLESTATE_RESET; + 418 .loc 1 223 24 is_stmt 0 view .LVU139 + 419 007e 0025 movs r5, #0 + 420 0080 0595 str r5, [sp, #20] + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCMode = TIM_OCMODE_PWM2; + 421 .loc 1 224 3 is_stmt 1 view .LVU140 + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCMode = TIM_OCMODE_PWM2; + 422 .loc 1 224 25 is_stmt 0 view .LVU141 + 423 0082 0695 str r5, [sp, #24] + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCNIdleState = TIM_OCNIDLESTATE_RESET; + 424 .loc 1 225 3 is_stmt 1 view .LVU142 + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCNIdleState = TIM_OCNIDLESTATE_RESET; + 425 .loc 1 225 20 is_stmt 0 view .LVU143 + 426 0084 7023 movs r3, #112 + 427 0086 0193 str r3, [sp, #4] + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCNPolarity = TIM_OCNPOLARITY_HIGH; + 428 .loc 1 226 3 is_stmt 1 view .LVU144 + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCNPolarity = TIM_OCNPOLARITY_HIGH; + 429 .loc 1 226 26 is_stmt 0 view .LVU145 + 430 0088 0795 str r5, [sp, #28] + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCPolarity = TIM_OCPOLARITY_HIGH; + 431 .loc 1 227 3 is_stmt 1 view .LVU146 + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.OCPolarity = TIM_OCPOLARITY_HIGH; + 432 .loc 1 227 25 is_stmt 0 view .LVU147 + 433 008a 0495 str r5, [sp, #16] + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.Pulse = sConfig->Commutation_Delay; + 434 .loc 1 228 3 is_stmt 1 view .LVU148 + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** OC_Config.Pulse = sConfig->Commutation_Delay; + 435 .loc 1 228 24 is_stmt 0 view .LVU149 + 436 008c 0395 str r5, [sp, #12] + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 437 .loc 1 229 3 is_stmt 1 view .LVU150 + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 438 .loc 1 229 28 is_stmt 0 view .LVU151 + 439 008e F368 ldr r3, [r6, #12] + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 440 .loc 1 229 19 view .LVU152 + 441 0090 0293 str r3, [sp, #8] + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 442 .loc 1 231 3 is_stmt 1 view .LVU153 + 443 0092 01A9 add r1, sp, #4 + 444 0094 2068 ldr r0, [r4] + 445 0096 FFF7FEFF bl TIM_OC2_SetConfig + 446 .LVL19: + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_TRGO_OC2REF; + 447 .loc 1 235 3 view .LVU154 + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_TRGO_OC2REF; + 448 .loc 1 235 7 is_stmt 0 view .LVU155 + 449 009a 2268 ldr r2, [r4] + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_TRGO_OC2REF; + 450 .loc 1 235 17 view .LVU156 + 451 009c 5368 ldr r3, [r2, #4] + ARM GAS /tmp/cc9HXhVl.s page 76 + + + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= TIM_TRGO_OC2REF; + 452 .loc 1 235 23 view .LVU157 + 453 009e 23F00073 bic r3, r3, #33554432 + 454 00a2 23F07003 bic r3, r3, #112 + 455 00a6 5360 str r3, [r2, #4] + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 456 .loc 1 236 3 is_stmt 1 view .LVU158 + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 457 .loc 1 236 7 is_stmt 0 view .LVU159 + 458 00a8 2268 ldr r2, [r4] + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 459 .loc 1 236 17 view .LVU160 + 460 00aa 5368 ldr r3, [r2, #4] + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 461 .loc 1 236 23 view .LVU161 + 462 00ac 43F05003 orr r3, r3, #80 + 463 00b0 5360 str r3, [r2, #4] + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 464 .loc 1 239 3 is_stmt 1 view .LVU162 + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 465 .loc 1 239 23 is_stmt 0 view .LVU163 + 466 00b2 0123 movs r3, #1 + 467 00b4 84F84830 strb r3, [r4, #72] + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 468 .loc 1 242 3 is_stmt 1 view .LVU164 + 469 00b8 84F83E30 strb r3, [r4, #62] + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 470 .loc 1 243 3 view .LVU165 + 471 00bc 84F83F30 strb r3, [r4, #63] + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 472 .loc 1 244 3 view .LVU166 + 473 00c0 84F84430 strb r3, [r4, #68] + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 474 .loc 1 245 3 view .LVU167 + 475 00c4 84F84530 strb r3, [r4, #69] + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 476 .loc 1 248 3 view .LVU168 + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 477 .loc 1 248 15 is_stmt 0 view .LVU169 + 478 00c8 84F83D30 strb r3, [r4, #61] + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 479 .loc 1 250 3 is_stmt 1 view .LVU170 + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 480 .loc 1 250 10 is_stmt 0 view .LVU171 + 481 00cc 2846 mov r0, r5 + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 482 .loc 1 251 1 view .LVU172 + 483 00ce 08B0 add sp, sp, #32 + 484 .LCFI4: + 485 .cfi_remember_state + 486 .cfi_def_cfa_offset 16 + 487 @ sp needed + 488 00d0 70BD pop {r4, r5, r6, pc} + 489 .LVL20: + 490 .L29: + 491 .LCFI5: + 492 .cfi_restore_state + ARM GAS /tmp/cc9HXhVl.s page 77 + + + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 493 .loc 1 179 5 is_stmt 1 view .LVU173 + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 494 .loc 1 179 16 is_stmt 0 view .LVU174 + 495 00d2 80F83C30 strb r3, [r0, #60] + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 496 .loc 1 193 5 is_stmt 1 view .LVU175 + 497 00d6 FFF7FEFF bl HAL_TIMEx_HallSensor_MspInit + 498 .LVL21: + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 499 .loc 1 193 5 is_stmt 0 view .LVU176 + 500 00da 9BE7 b .L23 + 501 .LVL22: + 502 .L24: + 503 .LCFI6: + 504 .cfi_def_cfa_offset 0 + 505 .cfi_restore 4 + 506 .cfi_restore 5 + 507 .cfi_restore 6 + 508 .cfi_restore 14 + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 509 .loc 1 164 12 view .LVU177 + 510 00dc 0120 movs r0, #1 + 511 .LVL23: + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 512 .loc 1 251 1 view .LVU178 + 513 00de 7047 bx lr + 514 .cfi_endproc + 515 .LFE329: + 517 .section .text.HAL_TIMEx_HallSensor_MspDeInit,"ax",%progbits + 518 .align 1 + 519 .weak HAL_TIMEx_HallSensor_MspDeInit + 520 .syntax unified + 521 .thumb + 522 .thumb_func + 524 HAL_TIMEx_HallSensor_MspDeInit: + 525 .LVL24: + 526 .LFB332: + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 527 .loc 1 319 1 is_stmt 1 view -0 + 528 .cfi_startproc + 529 @ args = 0, pretend = 0, frame = 0 + 530 @ frame_needed = 0, uses_anonymous_args = 0 + 531 @ link register save eliminated. + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 532 .loc 1 321 3 view .LVU180 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 533 .loc 1 326 1 is_stmt 0 view .LVU181 + 534 0000 7047 bx lr + 535 .cfi_endproc + 536 .LFE332: + 538 .section .text.HAL_TIMEx_HallSensor_DeInit,"ax",%progbits + 539 .align 1 + 540 .global HAL_TIMEx_HallSensor_DeInit + 541 .syntax unified + 542 .thumb + 543 .thumb_func + ARM GAS /tmp/cc9HXhVl.s page 78 + + + 545 HAL_TIMEx_HallSensor_DeInit: + 546 .LVL25: + 547 .LFB330: + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 548 .loc 1 259 1 is_stmt 1 view -0 + 549 .cfi_startproc + 550 @ args = 0, pretend = 0, frame = 0 + 551 @ frame_needed = 0, uses_anonymous_args = 0 + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 552 .loc 1 259 1 is_stmt 0 view .LVU183 + 553 0000 10B5 push {r4, lr} + 554 .LCFI7: + 555 .cfi_def_cfa_offset 8 + 556 .cfi_offset 4, -8 + 557 .cfi_offset 14, -4 + 558 0002 0446 mov r4, r0 + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 559 .loc 1 261 3 is_stmt 1 view .LVU184 + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 560 .loc 1 263 3 view .LVU185 + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 561 .loc 1 263 15 is_stmt 0 view .LVU186 + 562 0004 0223 movs r3, #2 + 563 0006 80F83D30 strb r3, [r0, #61] + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 564 .loc 1 266 3 is_stmt 1 view .LVU187 + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 565 .loc 1 266 3 view .LVU188 + 566 000a 0368 ldr r3, [r0] + 567 000c 196A ldr r1, [r3, #32] + 568 000e 41F21112 movw r2, #4369 + 569 0012 1142 tst r1, r2 + 570 0014 08D1 bne .L32 + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 571 .loc 1 266 3 discriminator 1 view .LVU189 + 572 0016 196A ldr r1, [r3, #32] + 573 0018 44F24442 movw r2, #17476 + 574 001c 1142 tst r1, r2 + 575 001e 03D1 bne .L32 + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 576 .loc 1 266 3 discriminator 3 view .LVU190 + 577 0020 1A68 ldr r2, [r3] + 578 0022 22F00102 bic r2, r2, #1 + 579 0026 1A60 str r2, [r3] + 580 .L32: + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 581 .loc 1 266 3 discriminator 5 view .LVU191 + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 582 .loc 1 277 3 discriminator 5 view .LVU192 + 583 0028 2046 mov r0, r4 + 584 .LVL26: + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 585 .loc 1 277 3 is_stmt 0 discriminator 5 view .LVU193 + 586 002a FFF7FEFF bl HAL_TIMEx_HallSensor_MspDeInit + 587 .LVL27: + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 588 .loc 1 281 3 is_stmt 1 discriminator 5 view .LVU194 + ARM GAS /tmp/cc9HXhVl.s page 79 + + + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 589 .loc 1 281 23 is_stmt 0 discriminator 5 view .LVU195 + 590 002e 0020 movs r0, #0 + 591 0030 84F84800 strb r0, [r4, #72] + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 592 .loc 1 284 3 is_stmt 1 discriminator 5 view .LVU196 + 593 0034 84F83E00 strb r0, [r4, #62] + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_RESET); + 594 .loc 1 285 3 discriminator 5 view .LVU197 + 595 0038 84F83F00 strb r0, [r4, #63] + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_RESET); + 596 .loc 1 286 3 discriminator 5 view .LVU198 + 597 003c 84F84400 strb r0, [r4, #68] + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 598 .loc 1 287 3 discriminator 5 view .LVU199 + 599 0040 84F84500 strb r0, [r4, #69] + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 600 .loc 1 290 3 discriminator 5 view .LVU200 + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 601 .loc 1 290 15 is_stmt 0 discriminator 5 view .LVU201 + 602 0044 84F83D00 strb r0, [r4, #61] + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 603 .loc 1 293 3 is_stmt 1 discriminator 5 view .LVU202 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 604 .loc 1 293 3 discriminator 5 view .LVU203 + 605 0048 84F83C00 strb r0, [r4, #60] + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 606 .loc 1 293 3 discriminator 5 view .LVU204 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 607 .loc 1 295 3 discriminator 5 view .LVU205 + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 608 .loc 1 296 1 is_stmt 0 discriminator 5 view .LVU206 + 609 004c 10BD pop {r4, pc} + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 610 .loc 1 296 1 discriminator 5 view .LVU207 + 611 .cfi_endproc + 612 .LFE330: + 614 .section .text.HAL_TIMEx_HallSensor_Start,"ax",%progbits + 615 .align 1 + 616 .global HAL_TIMEx_HallSensor_Start + 617 .syntax unified + 618 .thumb + 619 .thumb_func + 621 HAL_TIMEx_HallSensor_Start: + 622 .LVL28: + 623 .LFB333: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 624 .loc 1 334 1 is_stmt 1 view -0 + 625 .cfi_startproc + 626 @ args = 0, pretend = 0, frame = 0 + 627 @ frame_needed = 0, uses_anonymous_args = 0 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 628 .loc 1 334 1 is_stmt 0 view .LVU209 + 629 0000 10B5 push {r4, lr} + 630 .LCFI8: + 631 .cfi_def_cfa_offset 8 + 632 .cfi_offset 4, -8 + ARM GAS /tmp/cc9HXhVl.s page 80 + + + 633 .cfi_offset 14, -4 + 634 0002 0446 mov r4, r0 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 635 .loc 1 335 3 is_stmt 1 view .LVU210 + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 636 .loc 1 336 3 view .LVU211 + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 637 .loc 1 336 31 is_stmt 0 view .LVU212 + 638 0004 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 639 .LVL29: + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 640 .loc 1 336 31 view .LVU213 + 641 0008 C0B2 uxtb r0, r0 + 642 .LVL30: + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 643 .loc 1 337 3 is_stmt 1 view .LVU214 + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 644 .loc 1 337 31 is_stmt 0 view .LVU215 + 645 000a 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 646 .LVL31: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 647 .loc 1 338 3 is_stmt 1 view .LVU216 + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 648 .loc 1 338 31 is_stmt 0 view .LVU217 + 649 000e 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 650 .LVL32: + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 651 .loc 1 339 3 is_stmt 1 view .LVU218 + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 652 .loc 1 339 31 is_stmt 0 view .LVU219 + 653 0012 94F84510 ldrb r1, [r4, #69] @ zero_extendqisi2 + 654 .LVL33: + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 655 .loc 1 342 3 is_stmt 1 view .LVU220 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 656 .loc 1 345 3 view .LVU221 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 657 .loc 1 345 6 is_stmt 0 view .LVU222 + 658 0016 0128 cmp r0, #1 + 659 0018 42D1 bne .L38 + 660 001a DBB2 uxtb r3, r3 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 661 .loc 1 345 6 view .LVU223 + 662 001c D2B2 uxtb r2, r2 + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 663 .loc 1 345 6 view .LVU224 + 664 001e C9B2 uxtb r1, r1 + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 665 .loc 1 346 7 view .LVU225 + 666 0020 012B cmp r3, #1 + 667 0022 3ED1 bne .L35 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 668 .loc 1 347 7 view .LVU226 + 669 0024 012A cmp r2, #1 + 670 0026 3DD1 bne .L39 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 671 .loc 1 348 7 view .LVU227 + ARM GAS /tmp/cc9HXhVl.s page 81 + + + 672 0028 0129 cmp r1, #1 + 673 002a 01D0 beq .L44 + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 674 .loc 1 350 12 view .LVU228 + 675 002c 1046 mov r0, r2 + 676 .LVL34: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 677 .loc 1 350 12 view .LVU229 + 678 002e 38E0 b .L35 + 679 .LVL35: + 680 .L44: + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 681 .loc 1 354 3 is_stmt 1 view .LVU230 + 682 0030 0223 movs r3, #2 + 683 .LVL36: + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 684 .loc 1 354 3 is_stmt 0 view .LVU231 + 685 0032 84F83E30 strb r3, [r4, #62] + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 686 .loc 1 355 3 is_stmt 1 view .LVU232 + 687 0036 84F83F30 strb r3, [r4, #63] + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 688 .loc 1 356 3 view .LVU233 + 689 003a 84F84430 strb r3, [r4, #68] + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 690 .loc 1 357 3 view .LVU234 + 691 003e 84F84530 strb r3, [r4, #69] + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 692 .loc 1 362 3 view .LVU235 + 693 0042 0021 movs r1, #0 + 694 .LVL37: + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 695 .loc 1 362 3 is_stmt 0 view .LVU236 + 696 0044 2068 ldr r0, [r4] + 697 .LVL38: + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 698 .loc 1 362 3 view .LVU237 + 699 0046 FFF7FEFF bl TIM_CCxChannelCmd + 700 .LVL39: + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 701 .loc 1 365 3 is_stmt 1 view .LVU238 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 702 .loc 1 365 7 is_stmt 0 view .LVU239 + 703 004a 2368 ldr r3, [r4] + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 704 .loc 1 365 6 view .LVU240 + 705 004c 184A ldr r2, .L45 + 706 004e 9342 cmp r3, r2 + 707 0050 18D0 beq .L36 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 708 .loc 1 365 7 discriminator 1 view .LVU241 + 709 0052 B3F1804F cmp r3, #1073741824 + 710 0056 15D0 beq .L36 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 711 .loc 1 365 7 discriminator 2 view .LVU242 + 712 0058 A2F59432 sub r2, r2, #75776 + 713 005c 9342 cmp r3, r2 + ARM GAS /tmp/cc9HXhVl.s page 82 + + + 714 005e 11D0 beq .L36 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 715 .loc 1 365 7 discriminator 3 view .LVU243 + 716 0060 02F58062 add r2, r2, #1024 + 717 0064 9342 cmp r3, r2 + 718 0066 0DD0 beq .L36 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 719 .loc 1 365 7 discriminator 4 view .LVU244 + 720 0068 02F59632 add r2, r2, #76800 + 721 006c 9342 cmp r3, r2 + 722 006e 09D0 beq .L36 + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 723 .loc 1 365 7 discriminator 5 view .LVU245 + 724 0070 02F54062 add r2, r2, #3072 + 725 0074 9342 cmp r3, r2 + 726 0076 05D0 beq .L36 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 727 .loc 1 375 5 is_stmt 1 view .LVU246 + 728 0078 1A68 ldr r2, [r3] + 729 007a 42F00102 orr r2, r2, #1 + 730 007e 1A60 str r2, [r3] + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 731 .loc 1 379 10 is_stmt 0 view .LVU247 + 732 0080 0020 movs r0, #0 + 733 0082 0EE0 b .L35 + 734 .L36: + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 735 .loc 1 367 5 is_stmt 1 view .LVU248 + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 736 .loc 1 367 29 is_stmt 0 view .LVU249 + 737 0084 9968 ldr r1, [r3, #8] + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 738 .loc 1 367 13 view .LVU250 + 739 0086 0B4A ldr r2, .L45+4 + 740 0088 0A40 ands r2, r2, r1 + 741 .LVL40: + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 742 .loc 1 368 5 is_stmt 1 view .LVU251 + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 743 .loc 1 368 8 is_stmt 0 view .LVU252 + 744 008a 062A cmp r2, #6 + 745 008c 0CD0 beq .L41 + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 746 .loc 1 368 9 discriminator 1 view .LVU253 + 747 008e B2F5803F cmp r2, #65536 + 748 0092 0BD0 beq .L42 + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 749 .loc 1 370 7 is_stmt 1 view .LVU254 + 750 0094 1A68 ldr r2, [r3] + 751 .LVL41: + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 752 .loc 1 370 7 is_stmt 0 view .LVU255 + 753 0096 42F00102 orr r2, r2, #1 + 754 009a 1A60 str r2, [r3] + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 755 .loc 1 379 10 view .LVU256 + 756 009c 0020 movs r0, #0 + ARM GAS /tmp/cc9HXhVl.s page 83 + + + 757 009e 00E0 b .L35 + 758 .LVL42: + 759 .L38: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 760 .loc 1 350 12 view .LVU257 + 761 00a0 0120 movs r0, #1 + 762 .LVL43: + 763 .L35: + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 764 .loc 1 380 1 view .LVU258 + 765 00a2 10BD pop {r4, pc} + 766 .LVL44: + 767 .L39: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 768 .loc 1 350 12 view .LVU259 + 769 00a4 1846 mov r0, r3 + 770 .LVL45: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 771 .loc 1 350 12 view .LVU260 + 772 00a6 FCE7 b .L35 + 773 .LVL46: + 774 .L41: + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 775 .loc 1 379 10 view .LVU261 + 776 00a8 0020 movs r0, #0 + 777 00aa FAE7 b .L35 + 778 .L42: + 779 00ac 0020 movs r0, #0 + 780 00ae F8E7 b .L35 + 781 .L46: + 782 .align 2 + 783 .L45: + 784 00b0 002C0140 .word 1073818624 + 785 00b4 07000100 .word 65543 + 786 .cfi_endproc + 787 .LFE333: + 789 .section .text.HAL_TIMEx_HallSensor_Stop,"ax",%progbits + 790 .align 1 + 791 .global HAL_TIMEx_HallSensor_Stop + 792 .syntax unified + 793 .thumb + 794 .thumb_func + 796 HAL_TIMEx_HallSensor_Stop: + 797 .LVL47: + 798 .LFB334: + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 799 .loc 1 388 1 is_stmt 1 view -0 + 800 .cfi_startproc + 801 @ args = 0, pretend = 0, frame = 0 + 802 @ frame_needed = 0, uses_anonymous_args = 0 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 803 .loc 1 388 1 is_stmt 0 view .LVU263 + 804 0000 10B5 push {r4, lr} + 805 .LCFI9: + 806 .cfi_def_cfa_offset 8 + 807 .cfi_offset 4, -8 + 808 .cfi_offset 14, -4 + ARM GAS /tmp/cc9HXhVl.s page 84 + + + 809 0002 0446 mov r4, r0 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 810 .loc 1 390 3 is_stmt 1 view .LVU264 + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 811 .loc 1 395 3 view .LVU265 + 812 0004 0022 movs r2, #0 + 813 0006 1146 mov r1, r2 + 814 0008 0068 ldr r0, [r0] + 815 .LVL48: + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 816 .loc 1 395 3 is_stmt 0 view .LVU266 + 817 000a FFF7FEFF bl TIM_CCxChannelCmd + 818 .LVL49: + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 819 .loc 1 398 3 is_stmt 1 view .LVU267 + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 820 .loc 1 398 3 view .LVU268 + 821 000e 2368 ldr r3, [r4] + 822 0010 196A ldr r1, [r3, #32] + 823 0012 41F21112 movw r2, #4369 + 824 0016 1142 tst r1, r2 + 825 0018 08D1 bne .L48 + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 826 .loc 1 398 3 discriminator 1 view .LVU269 + 827 001a 196A ldr r1, [r3, #32] + 828 001c 44F24442 movw r2, #17476 + 829 0020 1142 tst r1, r2 + 830 0022 03D1 bne .L48 + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 831 .loc 1 398 3 discriminator 3 view .LVU270 + 832 0024 1A68 ldr r2, [r3] + 833 0026 22F00102 bic r2, r2, #1 + 834 002a 1A60 str r2, [r3] + 835 .L48: + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 836 .loc 1 398 3 discriminator 5 view .LVU271 + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 837 .loc 1 401 3 discriminator 5 view .LVU272 + 838 002c 0123 movs r3, #1 + 839 002e 84F83E30 strb r3, [r4, #62] + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 840 .loc 1 402 3 discriminator 5 view .LVU273 + 841 0032 84F83F30 strb r3, [r4, #63] + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 842 .loc 1 403 3 discriminator 5 view .LVU274 + 843 0036 84F84430 strb r3, [r4, #68] + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 844 .loc 1 404 3 discriminator 5 view .LVU275 + 845 003a 84F84530 strb r3, [r4, #69] + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 846 .loc 1 407 3 discriminator 5 view .LVU276 + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 847 .loc 1 408 1 is_stmt 0 discriminator 5 view .LVU277 + 848 003e 0020 movs r0, #0 + 849 0040 10BD pop {r4, pc} + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 850 .loc 1 408 1 discriminator 5 view .LVU278 + ARM GAS /tmp/cc9HXhVl.s page 85 + + + 851 .cfi_endproc + 852 .LFE334: + 854 .section .text.HAL_TIMEx_HallSensor_Start_IT,"ax",%progbits + 855 .align 1 + 856 .global HAL_TIMEx_HallSensor_Start_IT + 857 .syntax unified + 858 .thumb + 859 .thumb_func + 861 HAL_TIMEx_HallSensor_Start_IT: + 862 .LVL50: + 863 .LFB335: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 864 .loc 1 416 1 is_stmt 1 view -0 + 865 .cfi_startproc + 866 @ args = 0, pretend = 0, frame = 0 + 867 @ frame_needed = 0, uses_anonymous_args = 0 + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 868 .loc 1 416 1 is_stmt 0 view .LVU280 + 869 0000 10B5 push {r4, lr} + 870 .LCFI10: + 871 .cfi_def_cfa_offset 8 + 872 .cfi_offset 4, -8 + 873 .cfi_offset 14, -4 + 874 0002 0446 mov r4, r0 + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 875 .loc 1 417 3 is_stmt 1 view .LVU281 + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 876 .loc 1 418 3 view .LVU282 + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 877 .loc 1 418 31 is_stmt 0 view .LVU283 + 878 0004 90F83E00 ldrb r0, [r0, #62] @ zero_extendqisi2 + 879 .LVL51: + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 880 .loc 1 418 31 view .LVU284 + 881 0008 C0B2 uxtb r0, r0 + 882 .LVL52: + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 883 .loc 1 419 3 is_stmt 1 view .LVU285 + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 884 .loc 1 419 31 is_stmt 0 view .LVU286 + 885 000a 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 886 .LVL53: + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 887 .loc 1 420 3 is_stmt 1 view .LVU287 + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 888 .loc 1 420 31 is_stmt 0 view .LVU288 + 889 000e 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 890 .LVL54: + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 891 .loc 1 421 3 is_stmt 1 view .LVU289 + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 892 .loc 1 421 31 is_stmt 0 view .LVU290 + 893 0012 94F84510 ldrb r1, [r4, #69] @ zero_extendqisi2 + 894 .LVL55: + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 895 .loc 1 424 3 is_stmt 1 view .LVU291 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + ARM GAS /tmp/cc9HXhVl.s page 86 + + + 896 .loc 1 427 3 view .LVU292 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 897 .loc 1 427 6 is_stmt 0 view .LVU293 + 898 0016 0128 cmp r0, #1 + 899 0018 48D1 bne .L54 + 900 001a DBB2 uxtb r3, r3 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 901 .loc 1 427 6 view .LVU294 + 902 001c D2B2 uxtb r2, r2 + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 903 .loc 1 427 6 view .LVU295 + 904 001e C9B2 uxtb r1, r1 + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 905 .loc 1 428 7 view .LVU296 + 906 0020 012B cmp r3, #1 + 907 0022 44D1 bne .L51 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 908 .loc 1 429 7 view .LVU297 + 909 0024 012A cmp r2, #1 + 910 0026 43D1 bne .L55 + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 911 .loc 1 430 7 view .LVU298 + 912 0028 0129 cmp r1, #1 + 913 002a 01D0 beq .L60 + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 914 .loc 1 432 12 view .LVU299 + 915 002c 1046 mov r0, r2 + 916 .LVL56: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 917 .loc 1 432 12 view .LVU300 + 918 002e 3EE0 b .L51 + 919 .LVL57: + 920 .L60: + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 921 .loc 1 436 3 is_stmt 1 view .LVU301 + 922 0030 0223 movs r3, #2 + 923 .LVL58: + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 924 .loc 1 436 3 is_stmt 0 view .LVU302 + 925 0032 84F83E30 strb r3, [r4, #62] + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 926 .loc 1 437 3 is_stmt 1 view .LVU303 + 927 0036 84F83F30 strb r3, [r4, #63] + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 928 .loc 1 438 3 view .LVU304 + 929 003a 84F84430 strb r3, [r4, #68] + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 930 .loc 1 439 3 view .LVU305 + 931 003e 84F84530 strb r3, [r4, #69] + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 932 .loc 1 442 3 view .LVU306 + 933 0042 2268 ldr r2, [r4] + 934 .LVL59: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 935 .loc 1 442 3 is_stmt 0 view .LVU307 + 936 0044 D368 ldr r3, [r2, #12] + 937 0046 43F00203 orr r3, r3, #2 + ARM GAS /tmp/cc9HXhVl.s page 87 + + + 938 004a D360 str r3, [r2, #12] + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 939 .loc 1 447 3 is_stmt 1 view .LVU308 + 940 004c 0122 movs r2, #1 + 941 004e 0021 movs r1, #0 + 942 .LVL60: + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 943 .loc 1 447 3 is_stmt 0 view .LVU309 + 944 0050 2068 ldr r0, [r4] + 945 .LVL61: + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 946 .loc 1 447 3 view .LVU310 + 947 0052 FFF7FEFF bl TIM_CCxChannelCmd + 948 .LVL62: + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 949 .loc 1 450 3 is_stmt 1 view .LVU311 + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 950 .loc 1 450 7 is_stmt 0 view .LVU312 + 951 0056 2368 ldr r3, [r4] + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 952 .loc 1 450 6 view .LVU313 + 953 0058 184A ldr r2, .L61 + 954 005a 9342 cmp r3, r2 + 955 005c 18D0 beq .L52 + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 956 .loc 1 450 7 discriminator 1 view .LVU314 + 957 005e B3F1804F cmp r3, #1073741824 + 958 0062 15D0 beq .L52 + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 959 .loc 1 450 7 discriminator 2 view .LVU315 + 960 0064 A2F59432 sub r2, r2, #75776 + 961 0068 9342 cmp r3, r2 + 962 006a 11D0 beq .L52 + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 963 .loc 1 450 7 discriminator 3 view .LVU316 + 964 006c 02F58062 add r2, r2, #1024 + 965 0070 9342 cmp r3, r2 + 966 0072 0DD0 beq .L52 + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 967 .loc 1 450 7 discriminator 4 view .LVU317 + 968 0074 02F59632 add r2, r2, #76800 + 969 0078 9342 cmp r3, r2 + 970 007a 09D0 beq .L52 + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 971 .loc 1 450 7 discriminator 5 view .LVU318 + 972 007c 02F54062 add r2, r2, #3072 + 973 0080 9342 cmp r3, r2 + 974 0082 05D0 beq .L52 + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 975 .loc 1 460 5 is_stmt 1 view .LVU319 + 976 0084 1A68 ldr r2, [r3] + 977 0086 42F00102 orr r2, r2, #1 + 978 008a 1A60 str r2, [r3] + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 979 .loc 1 464 10 is_stmt 0 view .LVU320 + 980 008c 0020 movs r0, #0 + 981 008e 0EE0 b .L51 + ARM GAS /tmp/cc9HXhVl.s page 88 + + + 982 .L52: + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 983 .loc 1 452 5 is_stmt 1 view .LVU321 + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 984 .loc 1 452 29 is_stmt 0 view .LVU322 + 985 0090 9968 ldr r1, [r3, #8] + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 986 .loc 1 452 13 view .LVU323 + 987 0092 0B4A ldr r2, .L61+4 + 988 0094 0A40 ands r2, r2, r1 + 989 .LVL63: + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 990 .loc 1 453 5 is_stmt 1 view .LVU324 + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 991 .loc 1 453 8 is_stmt 0 view .LVU325 + 992 0096 062A cmp r2, #6 + 993 0098 0CD0 beq .L57 + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 994 .loc 1 453 9 discriminator 1 view .LVU326 + 995 009a B2F5803F cmp r2, #65536 + 996 009e 0BD0 beq .L58 + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 997 .loc 1 455 7 is_stmt 1 view .LVU327 + 998 00a0 1A68 ldr r2, [r3] + 999 .LVL64: + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1000 .loc 1 455 7 is_stmt 0 view .LVU328 + 1001 00a2 42F00102 orr r2, r2, #1 + 1002 00a6 1A60 str r2, [r3] + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1003 .loc 1 464 10 view .LVU329 + 1004 00a8 0020 movs r0, #0 + 1005 00aa 00E0 b .L51 + 1006 .LVL65: + 1007 .L54: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1008 .loc 1 432 12 view .LVU330 + 1009 00ac 0120 movs r0, #1 + 1010 .LVL66: + 1011 .L51: + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1012 .loc 1 465 1 view .LVU331 + 1013 00ae 10BD pop {r4, pc} + 1014 .LVL67: + 1015 .L55: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1016 .loc 1 432 12 view .LVU332 + 1017 00b0 1846 mov r0, r3 + 1018 .LVL68: + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1019 .loc 1 432 12 view .LVU333 + 1020 00b2 FCE7 b .L51 + 1021 .LVL69: + 1022 .L57: + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1023 .loc 1 464 10 view .LVU334 + 1024 00b4 0020 movs r0, #0 + ARM GAS /tmp/cc9HXhVl.s page 89 + + + 1025 00b6 FAE7 b .L51 + 1026 .L58: + 1027 00b8 0020 movs r0, #0 + 1028 00ba F8E7 b .L51 + 1029 .L62: + 1030 .align 2 + 1031 .L61: + 1032 00bc 002C0140 .word 1073818624 + 1033 00c0 07000100 .word 65543 + 1034 .cfi_endproc + 1035 .LFE335: + 1037 .section .text.HAL_TIMEx_HallSensor_Stop_IT,"ax",%progbits + 1038 .align 1 + 1039 .global HAL_TIMEx_HallSensor_Stop_IT + 1040 .syntax unified + 1041 .thumb + 1042 .thumb_func + 1044 HAL_TIMEx_HallSensor_Stop_IT: + 1045 .LVL70: + 1046 .LFB336: + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 1047 .loc 1 473 1 is_stmt 1 view -0 + 1048 .cfi_startproc + 1049 @ args = 0, pretend = 0, frame = 0 + 1050 @ frame_needed = 0, uses_anonymous_args = 0 + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 1051 .loc 1 473 1 is_stmt 0 view .LVU336 + 1052 0000 10B5 push {r4, lr} + 1053 .LCFI11: + 1054 .cfi_def_cfa_offset 8 + 1055 .cfi_offset 4, -8 + 1056 .cfi_offset 14, -4 + 1057 0002 0446 mov r4, r0 + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1058 .loc 1 475 3 is_stmt 1 view .LVU337 + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1059 .loc 1 480 3 view .LVU338 + 1060 0004 0022 movs r2, #0 + 1061 0006 1146 mov r1, r2 + 1062 0008 0068 ldr r0, [r0] + 1063 .LVL71: + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1064 .loc 1 480 3 is_stmt 0 view .LVU339 + 1065 000a FFF7FEFF bl TIM_CCxChannelCmd + 1066 .LVL72: + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1067 .loc 1 483 3 is_stmt 1 view .LVU340 + 1068 000e 2268 ldr r2, [r4] + 1069 0010 D368 ldr r3, [r2, #12] + 1070 0012 23F00203 bic r3, r3, #2 + 1071 0016 D360 str r3, [r2, #12] + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1072 .loc 1 486 3 view .LVU341 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1073 .loc 1 486 3 view .LVU342 + 1074 0018 2368 ldr r3, [r4] + 1075 001a 196A ldr r1, [r3, #32] + ARM GAS /tmp/cc9HXhVl.s page 90 + + + 1076 001c 41F21112 movw r2, #4369 + 1077 0020 1142 tst r1, r2 + 1078 0022 08D1 bne .L64 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1079 .loc 1 486 3 discriminator 1 view .LVU343 + 1080 0024 196A ldr r1, [r3, #32] + 1081 0026 44F24442 movw r2, #17476 + 1082 002a 1142 tst r1, r2 + 1083 002c 03D1 bne .L64 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1084 .loc 1 486 3 discriminator 3 view .LVU344 + 1085 002e 1A68 ldr r2, [r3] + 1086 0030 22F00102 bic r2, r2, #1 + 1087 0034 1A60 str r2, [r3] + 1088 .L64: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1089 .loc 1 486 3 discriminator 5 view .LVU345 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 1090 .loc 1 489 3 discriminator 5 view .LVU346 + 1091 0036 0123 movs r3, #1 + 1092 0038 84F83E30 strb r3, [r4, #62] + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 1093 .loc 1 490 3 discriminator 5 view .LVU347 + 1094 003c 84F83F30 strb r3, [r4, #63] + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 1095 .loc 1 491 3 discriminator 5 view .LVU348 + 1096 0040 84F84430 strb r3, [r4, #68] + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1097 .loc 1 492 3 discriminator 5 view .LVU349 + 1098 0044 84F84530 strb r3, [r4, #69] + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1099 .loc 1 495 3 discriminator 5 view .LVU350 + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1100 .loc 1 496 1 is_stmt 0 discriminator 5 view .LVU351 + 1101 0048 0020 movs r0, #0 + 1102 004a 10BD pop {r4, pc} + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1103 .loc 1 496 1 discriminator 5 view .LVU352 + 1104 .cfi_endproc + 1105 .LFE336: + 1107 .section .text.HAL_TIMEx_HallSensor_Start_DMA,"ax",%progbits + 1108 .align 1 + 1109 .global HAL_TIMEx_HallSensor_Start_DMA + 1110 .syntax unified + 1111 .thumb + 1112 .thumb_func + 1114 HAL_TIMEx_HallSensor_Start_DMA: + 1115 .LVL73: + 1116 .LFB337: + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 1117 .loc 1 506 1 is_stmt 1 view -0 + 1118 .cfi_startproc + 1119 @ args = 0, pretend = 0, frame = 0 + 1120 @ frame_needed = 0, uses_anonymous_args = 0 + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 1121 .loc 1 506 1 is_stmt 0 view .LVU354 + 1122 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + ARM GAS /tmp/cc9HXhVl.s page 91 + + + 1123 .LCFI12: + 1124 .cfi_def_cfa_offset 24 + 1125 .cfi_offset 3, -24 + 1126 .cfi_offset 4, -20 + 1127 .cfi_offset 5, -16 + 1128 .cfi_offset 6, -12 + 1129 .cfi_offset 7, -8 + 1130 .cfi_offset 14, -4 + 1131 0002 0446 mov r4, r0 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 1132 .loc 1 507 3 is_stmt 1 view .LVU355 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 1133 .loc 1 508 3 view .LVU356 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 1134 .loc 1 508 31 is_stmt 0 view .LVU357 + 1135 0004 90F83EC0 ldrb ip, [r0, #62] @ zero_extendqisi2 + 1136 0008 5FFA8CF0 uxtb r0, ip + 1137 .LVL74: + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1138 .loc 1 509 3 is_stmt 1 view .LVU358 + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1139 .loc 1 509 31 is_stmt 0 view .LVU359 + 1140 000c 94F844C0 ldrb ip, [r4, #68] @ zero_extendqisi2 + 1141 .LVL75: + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1142 .loc 1 512 3 is_stmt 1 view .LVU360 + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 1143 .loc 1 515 3 view .LVU361 + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)) + 1144 .loc 1 515 6 is_stmt 0 view .LVU362 + 1145 0010 0228 cmp r0, #2 + 1146 0012 5CD0 beq .L67 + 1147 0014 0F46 mov r7, r1 + 1148 0016 1646 mov r6, r2 + 1149 0018 5FFA8CF5 uxtb r5, ip + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1150 .loc 1 516 7 view .LVU363 + 1151 001c 022D cmp r5, #2 + 1152 001e 53D0 beq .L71 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + 1153 .loc 1 520 8 is_stmt 1 view .LVU364 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)) + 1154 .loc 1 520 11 is_stmt 0 view .LVU365 + 1155 0020 0128 cmp r0, #1 + 1156 0022 53D1 bne .L72 + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1157 .loc 1 521 12 view .LVU366 + 1158 0024 012D cmp r5, #1 + 1159 0026 52D1 bne .L67 + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1160 .loc 1 523 5 is_stmt 1 view .LVU367 + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1161 .loc 1 523 8 is_stmt 0 view .LVU368 + 1162 0028 0029 cmp r1, #0 + 1163 002a 3CD0 beq .L76 + 1164 .L68: + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + ARM GAS /tmp/cc9HXhVl.s page 92 + + + 1165 .loc 1 529 7 is_stmt 1 view .LVU369 + 1166 002c 0223 movs r3, #2 + 1167 002e 84F83E30 strb r3, [r4, #62] + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1168 .loc 1 530 7 view .LVU370 + 1169 0032 84F84430 strb r3, [r4, #68] + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1170 .loc 1 541 3 view .LVU371 + 1171 0036 0122 movs r2, #1 + 1172 .LVL76: + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1173 .loc 1 541 3 is_stmt 0 view .LVU372 + 1174 0038 0021 movs r1, #0 + 1175 .LVL77: + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1176 .loc 1 541 3 view .LVU373 + 1177 003a 2068 ldr r0, [r4] + 1178 .LVL78: + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1179 .loc 1 541 3 view .LVU374 + 1180 003c FFF7FEFF bl TIM_CCxChannelCmd + 1181 .LVL79: + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 1182 .loc 1 544 3 is_stmt 1 view .LVU375 + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 1183 .loc 1 544 13 is_stmt 0 view .LVU376 + 1184 0040 636A ldr r3, [r4, #36] + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt; + 1185 .loc 1 544 48 view .LVU377 + 1186 0042 244A ldr r2, .L77 + 1187 0044 DA62 str r2, [r3, #44] + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 1188 .loc 1 545 3 is_stmt 1 view .LVU378 + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 1189 .loc 1 545 13 is_stmt 0 view .LVU379 + 1190 0046 636A ldr r3, [r4, #36] + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 1191 .loc 1 545 52 view .LVU380 + 1192 0048 234A ldr r2, .L77+4 + 1193 004a 1A63 str r2, [r3, #48] + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1194 .loc 1 547 3 is_stmt 1 view .LVU381 + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1195 .loc 1 547 13 is_stmt 0 view .LVU382 + 1196 004c 636A ldr r3, [r4, #36] + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1197 .loc 1 547 49 view .LVU383 + 1198 004e 234A ldr r2, .L77+8 + 1199 0050 5A63 str r2, [r3, #52] + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1200 .loc 1 550 3 is_stmt 1 view .LVU384 + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1201 .loc 1 550 67 is_stmt 0 view .LVU385 + 1202 0052 2168 ldr r1, [r4] + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1203 .loc 1 550 7 view .LVU386 + 1204 0054 3346 mov r3, r6 + ARM GAS /tmp/cc9HXhVl.s page 93 + + + 1205 0056 3A46 mov r2, r7 + 1206 0058 3431 adds r1, r1, #52 + 1207 005a 606A ldr r0, [r4, #36] + 1208 005c FFF7FEFF bl HAL_DMA_Start_IT + 1209 .LVL80: + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1210 .loc 1 550 6 view .LVU387 + 1211 0060 0028 cmp r0, #0 + 1212 0062 35D1 bne .L74 + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1213 .loc 1 556 3 is_stmt 1 view .LVU388 + 1214 0064 2268 ldr r2, [r4] + 1215 0066 D368 ldr r3, [r2, #12] + 1216 0068 43F40073 orr r3, r3, #512 + 1217 006c D360 str r3, [r2, #12] + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1218 .loc 1 559 3 view .LVU389 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1219 .loc 1 559 7 is_stmt 0 view .LVU390 + 1220 006e 2368 ldr r3, [r4] + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1221 .loc 1 559 6 view .LVU391 + 1222 0070 1B4A ldr r2, .L77+12 + 1223 0072 9342 cmp r3, r2 + 1224 0074 1BD0 beq .L69 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1225 .loc 1 559 7 discriminator 1 view .LVU392 + 1226 0076 B3F1804F cmp r3, #1073741824 + 1227 007a 18D0 beq .L69 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1228 .loc 1 559 7 discriminator 2 view .LVU393 + 1229 007c A2F59432 sub r2, r2, #75776 + 1230 0080 9342 cmp r3, r2 + 1231 0082 14D0 beq .L69 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1232 .loc 1 559 7 discriminator 3 view .LVU394 + 1233 0084 02F58062 add r2, r2, #1024 + 1234 0088 9342 cmp r3, r2 + 1235 008a 10D0 beq .L69 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1236 .loc 1 559 7 discriminator 4 view .LVU395 + 1237 008c 02F59632 add r2, r2, #76800 + 1238 0090 9342 cmp r3, r2 + 1239 0092 0CD0 beq .L69 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1240 .loc 1 559 7 discriminator 5 view .LVU396 + 1241 0094 02F54062 add r2, r2, #3072 + 1242 0098 9342 cmp r3, r2 + 1243 009a 08D0 beq .L69 + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1244 .loc 1 569 5 is_stmt 1 view .LVU397 + 1245 009c 1A68 ldr r2, [r3] + 1246 009e 42F00102 orr r2, r2, #1 + 1247 00a2 1A60 str r2, [r3] + 1248 00a4 13E0 b .L67 + 1249 .LVL81: + 1250 .L76: + ARM GAS /tmp/cc9HXhVl.s page 94 + + + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1251 .loc 1 523 25 is_stmt 0 discriminator 1 view .LVU398 + 1252 00a6 002A cmp r2, #0 + 1253 00a8 C0D0 beq .L68 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1254 .loc 1 525 14 view .LVU399 + 1255 00aa 2846 mov r0, r5 + 1256 .LVL82: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1257 .loc 1 525 14 view .LVU400 + 1258 00ac 0FE0 b .L67 + 1259 .LVL83: + 1260 .L69: + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1261 .loc 1 561 5 is_stmt 1 view .LVU401 + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1262 .loc 1 561 29 is_stmt 0 view .LVU402 + 1263 00ae 9968 ldr r1, [r3, #8] + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1264 .loc 1 561 13 view .LVU403 + 1265 00b0 0C4A ldr r2, .L77+16 + 1266 00b2 0A40 ands r2, r2, r1 + 1267 .LVL84: + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1268 .loc 1 562 5 is_stmt 1 view .LVU404 + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1269 .loc 1 562 8 is_stmt 0 view .LVU405 + 1270 00b4 062A cmp r2, #6 + 1271 00b6 0AD0 beq .L67 + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1272 .loc 1 562 9 discriminator 1 view .LVU406 + 1273 00b8 B2F5803F cmp r2, #65536 + 1274 00bc 07D0 beq .L67 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1275 .loc 1 564 7 is_stmt 1 view .LVU407 + 1276 00be 1A68 ldr r2, [r3] + 1277 .LVL85: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1278 .loc 1 564 7 is_stmt 0 view .LVU408 + 1279 00c0 42F00102 orr r2, r2, #1 + 1280 00c4 1A60 str r2, [r3] + 1281 00c6 02E0 b .L67 + 1282 .LVL86: + 1283 .L71: + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1284 .loc 1 518 12 view .LVU409 + 1285 00c8 2846 mov r0, r5 + 1286 .LVL87: + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1287 .loc 1 518 12 view .LVU410 + 1288 00ca 00E0 b .L67 + 1289 .LVL88: + 1290 .L72: + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1291 .loc 1 535 12 view .LVU411 + 1292 00cc 0120 movs r0, #1 + 1293 .LVL89: + ARM GAS /tmp/cc9HXhVl.s page 95 + + + 1294 .L67: + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1295 .loc 1 574 1 view .LVU412 + 1296 00ce F8BD pop {r3, r4, r5, r6, r7, pc} + 1297 .LVL90: + 1298 .L74: + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1299 .loc 1 553 12 view .LVU413 + 1300 00d0 2846 mov r0, r5 + 1301 00d2 FCE7 b .L67 + 1302 .L78: + 1303 .align 2 + 1304 .L77: + 1305 00d4 00000000 .word TIM_DMACaptureCplt + 1306 00d8 00000000 .word TIM_DMACaptureHalfCplt + 1307 00dc 00000000 .word TIM_DMAError + 1308 00e0 002C0140 .word 1073818624 + 1309 00e4 07000100 .word 65543 + 1310 .cfi_endproc + 1311 .LFE337: + 1313 .section .text.HAL_TIMEx_HallSensor_Stop_DMA,"ax",%progbits + 1314 .align 1 + 1315 .global HAL_TIMEx_HallSensor_Stop_DMA + 1316 .syntax unified + 1317 .thumb + 1318 .thumb_func + 1320 HAL_TIMEx_HallSensor_Stop_DMA: + 1321 .LVL91: + 1322 .LFB338: + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 1323 .loc 1 582 1 is_stmt 1 view -0 + 1324 .cfi_startproc + 1325 @ args = 0, pretend = 0, frame = 0 + 1326 @ frame_needed = 0, uses_anonymous_args = 0 + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 1327 .loc 1 582 1 is_stmt 0 view .LVU415 + 1328 0000 10B5 push {r4, lr} + 1329 .LCFI13: + 1330 .cfi_def_cfa_offset 8 + 1331 .cfi_offset 4, -8 + 1332 .cfi_offset 14, -4 + 1333 0002 0446 mov r4, r0 + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1334 .loc 1 584 3 is_stmt 1 view .LVU416 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1335 .loc 1 589 3 view .LVU417 + 1336 0004 0022 movs r2, #0 + 1337 0006 1146 mov r1, r2 + 1338 0008 0068 ldr r0, [r0] + 1339 .LVL92: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1340 .loc 1 589 3 is_stmt 0 view .LVU418 + 1341 000a FFF7FEFF bl TIM_CCxChannelCmd + 1342 .LVL93: + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1343 .loc 1 593 3 is_stmt 1 view .LVU419 + 1344 000e 2268 ldr r2, [r4] + ARM GAS /tmp/cc9HXhVl.s page 96 + + + 1345 0010 D368 ldr r3, [r2, #12] + 1346 0012 23F40073 bic r3, r3, #512 + 1347 0016 D360 str r3, [r2, #12] + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1348 .loc 1 595 3 view .LVU420 + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1349 .loc 1 595 9 is_stmt 0 view .LVU421 + 1350 0018 606A ldr r0, [r4, #36] + 1351 001a FFF7FEFF bl HAL_DMA_Abort_IT + 1352 .LVL94: + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1353 .loc 1 598 3 is_stmt 1 view .LVU422 + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1354 .loc 1 598 3 view .LVU423 + 1355 001e 2368 ldr r3, [r4] + 1356 0020 196A ldr r1, [r3, #32] + 1357 0022 41F21112 movw r2, #4369 + 1358 0026 1142 tst r1, r2 + 1359 0028 08D1 bne .L80 + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1360 .loc 1 598 3 discriminator 1 view .LVU424 + 1361 002a 196A ldr r1, [r3, #32] + 1362 002c 44F24442 movw r2, #17476 + 1363 0030 1142 tst r1, r2 + 1364 0032 03D1 bne .L80 + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1365 .loc 1 598 3 discriminator 3 view .LVU425 + 1366 0034 1A68 ldr r2, [r3] + 1367 0036 22F00102 bic r2, r2, #1 + 1368 003a 1A60 str r2, [r3] + 1369 .L80: + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1370 .loc 1 598 3 discriminator 5 view .LVU426 + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 1371 .loc 1 601 3 discriminator 5 view .LVU427 + 1372 003c 0123 movs r3, #1 + 1373 003e 84F83E30 strb r3, [r4, #62] + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1374 .loc 1 602 3 discriminator 5 view .LVU428 + 1375 0042 84F84430 strb r3, [r4, #68] + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1376 .loc 1 605 3 discriminator 5 view .LVU429 + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1377 .loc 1 606 1 is_stmt 0 discriminator 5 view .LVU430 + 1378 0046 0020 movs r0, #0 + 1379 0048 10BD pop {r4, pc} + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1380 .loc 1 606 1 discriminator 5 view .LVU431 + 1381 .cfi_endproc + 1382 .LFE338: + 1384 .section .text.HAL_TIMEx_OCN_Start,"ax",%progbits + 1385 .align 1 + 1386 .global HAL_TIMEx_OCN_Start + 1387 .syntax unified + 1388 .thumb + 1389 .thumb_func + 1391 HAL_TIMEx_OCN_Start: + ARM GAS /tmp/cc9HXhVl.s page 97 + + + 1392 .LVL95: + 1393 .LFB339: + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 1394 .loc 1 645 1 is_stmt 1 view -0 + 1395 .cfi_startproc + 1396 @ args = 0, pretend = 0, frame = 0 + 1397 @ frame_needed = 0, uses_anonymous_args = 0 + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 1398 .loc 1 645 1 is_stmt 0 view .LVU433 + 1399 0000 10B5 push {r4, lr} + 1400 .LCFI14: + 1401 .cfi_def_cfa_offset 8 + 1402 .cfi_offset 4, -8 + 1403 .cfi_offset 14, -4 + 1404 0002 0446 mov r4, r0 + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1405 .loc 1 646 3 is_stmt 1 view .LVU434 + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1406 .loc 1 649 3 view .LVU435 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1407 .loc 1 652 3 view .LVU436 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1408 .loc 1 652 46 is_stmt 0 view .LVU437 + 1409 0004 0846 mov r0, r1 + 1410 .LVL96: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1411 .loc 1 652 46 view .LVU438 + 1412 0006 0029 cmp r1, #0 + 1413 0008 33D1 bne .L83 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1414 .loc 1 652 7 discriminator 1 view .LVU439 + 1415 000a 94F84430 ldrb r3, [r4, #68] @ zero_extendqisi2 + 1416 000e DBB2 uxtb r3, r3 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1417 .loc 1 652 46 discriminator 1 view .LVU440 + 1418 0010 013B subs r3, r3, #1 + 1419 0012 18BF it ne + 1420 0014 0123 movne r3, #1 + 1421 .L84: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1422 .loc 1 652 6 discriminator 12 view .LVU441 + 1423 0016 002B cmp r3, #0 + 1424 0018 62D1 bne .L94 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1425 .loc 1 658 3 is_stmt 1 view .LVU442 + 1426 001a 0028 cmp r0, #0 + 1427 001c 42D1 bne .L88 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1428 .loc 1 658 3 is_stmt 0 discriminator 1 view .LVU443 + 1429 001e 0223 movs r3, #2 + 1430 0020 84F84430 strb r3, [r4, #68] + 1431 .L89: + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1432 .loc 1 661 3 is_stmt 1 view .LVU444 + 1433 0024 0422 movs r2, #4 + 1434 0026 0146 mov r1, r0 + 1435 .LVL97: + ARM GAS /tmp/cc9HXhVl.s page 98 + + + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1436 .loc 1 661 3 is_stmt 0 view .LVU445 + 1437 0028 2068 ldr r0, [r4] + 1438 .LVL98: + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1439 .loc 1 661 3 view .LVU446 + 1440 002a FFF7FEFF bl TIM_CCxNChannelCmd + 1441 .LVL99: + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1442 .loc 1 664 3 is_stmt 1 view .LVU447 + 1443 002e 2268 ldr r2, [r4] + 1444 0030 536C ldr r3, [r2, #68] + 1445 0032 43F40043 orr r3, r3, #32768 + 1446 0036 5364 str r3, [r2, #68] + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1447 .loc 1 667 3 view .LVU448 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1448 .loc 1 667 7 is_stmt 0 view .LVU449 + 1449 0038 2368 ldr r3, [r4] + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1450 .loc 1 667 6 view .LVU450 + 1451 003a 2C4A ldr r2, .L102 + 1452 003c 9342 cmp r3, r2 + 1453 003e 41D0 beq .L92 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1454 .loc 1 667 7 discriminator 1 view .LVU451 + 1455 0040 B3F1804F cmp r3, #1073741824 + 1456 0044 3ED0 beq .L92 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1457 .loc 1 667 7 discriminator 2 view .LVU452 + 1458 0046 A2F59432 sub r2, r2, #75776 + 1459 004a 9342 cmp r3, r2 + 1460 004c 3AD0 beq .L92 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1461 .loc 1 667 7 discriminator 3 view .LVU453 + 1462 004e 02F58062 add r2, r2, #1024 + 1463 0052 9342 cmp r3, r2 + 1464 0054 36D0 beq .L92 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1465 .loc 1 667 7 discriminator 4 view .LVU454 + 1466 0056 02F59632 add r2, r2, #76800 + 1467 005a 9342 cmp r3, r2 + 1468 005c 32D0 beq .L92 + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1469 .loc 1 667 7 discriminator 5 view .LVU455 + 1470 005e 02F54062 add r2, r2, #3072 + 1471 0062 9342 cmp r3, r2 + 1472 0064 2ED0 beq .L92 + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1473 .loc 1 677 5 is_stmt 1 view .LVU456 + 1474 0066 1A68 ldr r2, [r3] + 1475 0068 42F00102 orr r2, r2, #1 + 1476 006c 1A60 str r2, [r3] + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1477 .loc 1 681 10 is_stmt 0 view .LVU457 + 1478 006e 0020 movs r0, #0 + 1479 0070 37E0 b .L87 + ARM GAS /tmp/cc9HXhVl.s page 99 + + + 1480 .LVL100: + 1481 .L83: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1482 .loc 1 652 46 discriminator 2 view .LVU458 + 1483 0072 0429 cmp r1, #4 + 1484 0074 08D0 beq .L98 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1485 .loc 1 652 46 discriminator 5 view .LVU459 + 1486 0076 0829 cmp r1, #8 + 1487 0078 0DD0 beq .L99 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1488 .loc 1 652 7 discriminator 8 view .LVU460 + 1489 007a 94F84730 ldrb r3, [r4, #71] @ zero_extendqisi2 + 1490 007e DBB2 uxtb r3, r3 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1491 .loc 1 652 46 discriminator 8 view .LVU461 + 1492 0080 013B subs r3, r3, #1 + 1493 0082 18BF it ne + 1494 0084 0123 movne r3, #1 + 1495 0086 C6E7 b .L84 + 1496 .L98: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1497 .loc 1 652 7 discriminator 4 view .LVU462 + 1498 0088 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 1499 008c DBB2 uxtb r3, r3 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1500 .loc 1 652 46 discriminator 4 view .LVU463 + 1501 008e 013B subs r3, r3, #1 + 1502 0090 18BF it ne + 1503 0092 0123 movne r3, #1 + 1504 0094 BFE7 b .L84 + 1505 .L99: + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1506 .loc 1 652 7 discriminator 7 view .LVU464 + 1507 0096 94F84630 ldrb r3, [r4, #70] @ zero_extendqisi2 + 1508 009a DBB2 uxtb r3, r3 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1509 .loc 1 652 46 discriminator 7 view .LVU465 + 1510 009c 013B subs r3, r3, #1 + 1511 009e 18BF it ne + 1512 00a0 0123 movne r3, #1 + 1513 00a2 B8E7 b .L84 + 1514 .L88: + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1515 .loc 1 658 3 discriminator 2 view .LVU466 + 1516 00a4 0428 cmp r0, #4 + 1517 00a6 05D0 beq .L100 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1518 .loc 1 658 3 discriminator 4 view .LVU467 + 1519 00a8 0828 cmp r0, #8 + 1520 00aa 07D0 beq .L101 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1521 .loc 1 658 3 discriminator 7 view .LVU468 + 1522 00ac 0223 movs r3, #2 + 1523 00ae 84F84730 strb r3, [r4, #71] + 1524 00b2 B7E7 b .L89 + 1525 .L100: + ARM GAS /tmp/cc9HXhVl.s page 100 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1526 .loc 1 658 3 discriminator 3 view .LVU469 + 1527 00b4 0223 movs r3, #2 + 1528 00b6 84F84530 strb r3, [r4, #69] + 1529 00ba B3E7 b .L89 + 1530 .L101: + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1531 .loc 1 658 3 discriminator 6 view .LVU470 + 1532 00bc 0223 movs r3, #2 + 1533 00be 84F84630 strb r3, [r4, #70] + 1534 00c2 AFE7 b .L89 + 1535 .LVL101: + 1536 .L92: + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1537 .loc 1 669 5 is_stmt 1 view .LVU471 + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1538 .loc 1 669 29 is_stmt 0 view .LVU472 + 1539 00c4 9968 ldr r1, [r3, #8] + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1540 .loc 1 669 13 view .LVU473 + 1541 00c6 0A4A ldr r2, .L102+4 + 1542 00c8 0A40 ands r2, r2, r1 + 1543 .LVL102: + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1544 .loc 1 670 5 is_stmt 1 view .LVU474 + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1545 .loc 1 670 8 is_stmt 0 view .LVU475 + 1546 00ca 062A cmp r2, #6 + 1547 00cc 0AD0 beq .L95 + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1548 .loc 1 670 9 discriminator 1 view .LVU476 + 1549 00ce B2F5803F cmp r2, #65536 + 1550 00d2 09D0 beq .L96 + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1551 .loc 1 672 7 is_stmt 1 view .LVU477 + 1552 00d4 1A68 ldr r2, [r3] + 1553 .LVL103: + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1554 .loc 1 672 7 is_stmt 0 view .LVU478 + 1555 00d6 42F00102 orr r2, r2, #1 + 1556 00da 1A60 str r2, [r3] + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1557 .loc 1 681 10 view .LVU479 + 1558 00dc 0020 movs r0, #0 + 1559 00de 00E0 b .L87 + 1560 .LVL104: + 1561 .L94: + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1562 .loc 1 654 12 view .LVU480 + 1563 00e0 0120 movs r0, #1 + 1564 .LVL105: + 1565 .L87: + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1566 .loc 1 682 1 view .LVU481 + 1567 00e2 10BD pop {r4, pc} + 1568 .LVL106: + 1569 .L95: + ARM GAS /tmp/cc9HXhVl.s page 101 + + + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1570 .loc 1 681 10 view .LVU482 + 1571 00e4 0020 movs r0, #0 + 1572 00e6 FCE7 b .L87 + 1573 .L96: + 1574 00e8 0020 movs r0, #0 + 1575 00ea FAE7 b .L87 + 1576 .L103: + 1577 .align 2 + 1578 .L102: + 1579 00ec 002C0140 .word 1073818624 + 1580 00f0 07000100 .word 65543 + 1581 .cfi_endproc + 1582 .LFE339: + 1584 .section .text.HAL_TIMEx_OCN_Stop,"ax",%progbits + 1585 .align 1 + 1586 .global HAL_TIMEx_OCN_Stop + 1587 .syntax unified + 1588 .thumb + 1589 .thumb_func + 1591 HAL_TIMEx_OCN_Stop: + 1592 .LVL107: + 1593 .LFB340: + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 1594 .loc 1 697 1 is_stmt 1 view -0 + 1595 .cfi_startproc + 1596 @ args = 0, pretend = 0, frame = 0 + 1597 @ frame_needed = 0, uses_anonymous_args = 0 + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 1598 .loc 1 697 1 is_stmt 0 view .LVU484 + 1599 0000 38B5 push {r3, r4, r5, lr} + 1600 .LCFI15: + 1601 .cfi_def_cfa_offset 16 + 1602 .cfi_offset 3, -16 + 1603 .cfi_offset 4, -12 + 1604 .cfi_offset 5, -8 + 1605 .cfi_offset 14, -4 + 1606 0002 0446 mov r4, r0 + 1607 0004 0D46 mov r5, r1 + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1608 .loc 1 699 3 is_stmt 1 view .LVU485 + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1609 .loc 1 702 3 view .LVU486 + 1610 0006 0022 movs r2, #0 + 1611 0008 0068 ldr r0, [r0] + 1612 .LVL108: + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1613 .loc 1 702 3 is_stmt 0 view .LVU487 + 1614 000a FFF7FEFF bl TIM_CCxNChannelCmd + 1615 .LVL109: + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1616 .loc 1 705 3 is_stmt 1 view .LVU488 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1617 .loc 1 705 3 view .LVU489 + 1618 000e 2368 ldr r3, [r4] + 1619 0010 196A ldr r1, [r3, #32] + 1620 0012 41F21112 movw r2, #4369 + ARM GAS /tmp/cc9HXhVl.s page 102 + + + 1621 0016 1142 tst r1, r2 + 1622 0018 08D1 bne .L105 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1623 .loc 1 705 3 discriminator 1 view .LVU490 + 1624 001a 196A ldr r1, [r3, #32] + 1625 001c 44F24442 movw r2, #17476 + 1626 0020 1142 tst r1, r2 + 1627 0022 03D1 bne .L105 + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1628 .loc 1 705 3 discriminator 3 view .LVU491 + 1629 0024 5A6C ldr r2, [r3, #68] + 1630 0026 22F40042 bic r2, r2, #32768 + 1631 002a 5A64 str r2, [r3, #68] + 1632 .L105: + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1633 .loc 1 705 3 discriminator 5 view .LVU492 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1634 .loc 1 708 3 discriminator 5 view .LVU493 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1635 .loc 1 708 3 discriminator 5 view .LVU494 + 1636 002c 2368 ldr r3, [r4] + 1637 002e 196A ldr r1, [r3, #32] + 1638 0030 41F21112 movw r2, #4369 + 1639 0034 1142 tst r1, r2 + 1640 0036 08D1 bne .L106 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1641 .loc 1 708 3 discriminator 1 view .LVU495 + 1642 0038 196A ldr r1, [r3, #32] + 1643 003a 44F24442 movw r2, #17476 + 1644 003e 1142 tst r1, r2 + 1645 0040 03D1 bne .L106 + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1646 .loc 1 708 3 discriminator 3 view .LVU496 + 1647 0042 1A68 ldr r2, [r3] + 1648 0044 22F00102 bic r2, r2, #1 + 1649 0048 1A60 str r2, [r3] + 1650 .L106: + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1651 .loc 1 708 3 discriminator 5 view .LVU497 + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1652 .loc 1 711 3 discriminator 5 view .LVU498 + 1653 004a 25B9 cbnz r5, .L107 + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1654 .loc 1 711 3 is_stmt 0 discriminator 1 view .LVU499 + 1655 004c 0123 movs r3, #1 + 1656 004e 84F84430 strb r3, [r4, #68] + 1657 .L108: + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1658 .loc 1 714 3 is_stmt 1 view .LVU500 + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1659 .loc 1 715 1 is_stmt 0 view .LVU501 + 1660 0052 0020 movs r0, #0 + 1661 0054 38BD pop {r3, r4, r5, pc} + 1662 .LVL110: + 1663 .L107: + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1664 .loc 1 711 3 discriminator 2 view .LVU502 + ARM GAS /tmp/cc9HXhVl.s page 103 + + + 1665 0056 042D cmp r5, #4 + 1666 0058 05D0 beq .L112 + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1667 .loc 1 711 3 discriminator 4 view .LVU503 + 1668 005a 082D cmp r5, #8 + 1669 005c 07D0 beq .L113 + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1670 .loc 1 711 3 discriminator 7 view .LVU504 + 1671 005e 0123 movs r3, #1 + 1672 0060 84F84730 strb r3, [r4, #71] + 1673 0064 F5E7 b .L108 + 1674 .L112: + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1675 .loc 1 711 3 discriminator 3 view .LVU505 + 1676 0066 0123 movs r3, #1 + 1677 0068 84F84530 strb r3, [r4, #69] + 1678 006c F1E7 b .L108 + 1679 .L113: + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1680 .loc 1 711 3 discriminator 6 view .LVU506 + 1681 006e 0123 movs r3, #1 + 1682 0070 84F84630 strb r3, [r4, #70] + 1683 0074 EDE7 b .L108 + 1684 .cfi_endproc + 1685 .LFE340: + 1687 .section .text.HAL_TIMEx_OCN_Start_IT,"ax",%progbits + 1688 .align 1 + 1689 .global HAL_TIMEx_OCN_Start_IT + 1690 .syntax unified + 1691 .thumb + 1692 .thumb_func + 1694 HAL_TIMEx_OCN_Start_IT: + 1695 .LVL111: + 1696 .LFB341: + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1697 .loc 1 730 1 is_stmt 1 view -0 + 1698 .cfi_startproc + 1699 @ args = 0, pretend = 0, frame = 0 + 1700 @ frame_needed = 0, uses_anonymous_args = 0 + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1701 .loc 1 730 1 is_stmt 0 view .LVU508 + 1702 0000 10B5 push {r4, lr} + 1703 .LCFI16: + 1704 .cfi_def_cfa_offset 8 + 1705 .cfi_offset 4, -8 + 1706 .cfi_offset 14, -4 + 1707 0002 0446 mov r4, r0 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 1708 .loc 1 731 3 is_stmt 1 view .LVU509 + 1709 .LVL112: + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1710 .loc 1 732 3 view .LVU510 + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1711 .loc 1 735 3 view .LVU511 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1712 .loc 1 738 3 view .LVU512 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 104 + + + 1713 .loc 1 738 46 is_stmt 0 view .LVU513 + 1714 0004 0846 mov r0, r1 + 1715 .LVL113: + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1716 .loc 1 738 46 view .LVU514 + 1717 0006 0029 cmp r1, #0 + 1718 0008 3ED1 bne .L115 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1719 .loc 1 738 7 discriminator 1 view .LVU515 + 1720 000a 94F84430 ldrb r3, [r4, #68] @ zero_extendqisi2 + 1721 000e DBB2 uxtb r3, r3 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1722 .loc 1 738 46 discriminator 1 view .LVU516 + 1723 0010 013B subs r3, r3, #1 + 1724 0012 18BF it ne + 1725 0014 0123 movne r3, #1 + 1726 .L116: + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1727 .loc 1 738 6 discriminator 12 view .LVU517 + 1728 0016 002B cmp r3, #0 + 1729 0018 40F09C80 bne .L131 + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1730 .loc 1 744 3 is_stmt 1 view .LVU518 + 1731 001c 0028 cmp r0, #0 + 1732 001e 4CD1 bne .L120 + 1733 0020 0223 movs r3, #2 + 1734 0022 84F84430 strb r3, [r4, #68] + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1735 .loc 1 746 3 view .LVU519 + 1736 .L121: + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 1737 .loc 1 751 7 view .LVU520 + 1738 0026 2268 ldr r2, [r4] + 1739 0028 D368 ldr r3, [r2, #12] + 1740 002a 43F00203 orr r3, r3, #2 + 1741 002e D360 str r3, [r2, #12] + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1742 .loc 1 752 7 view .LVU521 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1743 .loc 1 782 3 view .LVU522 + 1744 .L128: + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1745 .loc 1 785 5 view .LVU523 + 1746 0030 2268 ldr r2, [r4] + 1747 0032 D368 ldr r3, [r2, #12] + 1748 0034 43F08003 orr r3, r3, #128 + 1749 0038 D360 str r3, [r2, #12] + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1750 .loc 1 788 5 view .LVU524 + 1751 003a 0422 movs r2, #4 + 1752 003c 0146 mov r1, r0 + 1753 .LVL114: + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1754 .loc 1 788 5 is_stmt 0 view .LVU525 + 1755 003e 2068 ldr r0, [r4] + 1756 .LVL115: + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 105 + + + 1757 .loc 1 788 5 view .LVU526 + 1758 0040 FFF7FEFF bl TIM_CCxNChannelCmd + 1759 .LVL116: + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1760 .loc 1 791 5 is_stmt 1 view .LVU527 + 1761 0044 2268 ldr r2, [r4] + 1762 0046 536C ldr r3, [r2, #68] + 1763 0048 43F40043 orr r3, r3, #32768 + 1764 004c 5364 str r3, [r2, #68] + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1765 .loc 1 794 5 view .LVU528 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1766 .loc 1 794 9 is_stmt 0 view .LVU529 + 1767 004e 2368 ldr r3, [r4] + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1768 .loc 1 794 8 view .LVU530 + 1769 0050 444A ldr r2, .L143 + 1770 0052 9342 cmp r3, r2 + 1771 0054 70D0 beq .L129 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1772 .loc 1 794 9 discriminator 1 view .LVU531 + 1773 0056 B3F1804F cmp r3, #1073741824 + 1774 005a 6DD0 beq .L129 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1775 .loc 1 794 9 discriminator 2 view .LVU532 + 1776 005c A2F59432 sub r2, r2, #75776 + 1777 0060 9342 cmp r3, r2 + 1778 0062 69D0 beq .L129 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1779 .loc 1 794 9 discriminator 3 view .LVU533 + 1780 0064 02F58062 add r2, r2, #1024 + 1781 0068 9342 cmp r3, r2 + 1782 006a 65D0 beq .L129 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1783 .loc 1 794 9 discriminator 4 view .LVU534 + 1784 006c 02F59632 add r2, r2, #76800 + 1785 0070 9342 cmp r3, r2 + 1786 0072 61D0 beq .L129 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1787 .loc 1 794 9 discriminator 5 view .LVU535 + 1788 0074 02F54062 add r2, r2, #3072 + 1789 0078 9342 cmp r3, r2 + 1790 007a 5DD0 beq .L129 + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1791 .loc 1 804 7 is_stmt 1 view .LVU536 + 1792 007c 1A68 ldr r2, [r3] + 1793 007e 42F00102 orr r2, r2, #1 + 1794 0082 1A60 str r2, [r3] + 1795 0084 0020 movs r0, #0 + 1796 0086 66E0 b .L119 + 1797 .LVL117: + 1798 .L115: + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1799 .loc 1 738 46 is_stmt 0 discriminator 2 view .LVU537 + 1800 0088 0429 cmp r1, #4 + 1801 008a 08D0 beq .L139 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 106 + + + 1802 .loc 1 738 46 discriminator 5 view .LVU538 + 1803 008c 0829 cmp r1, #8 + 1804 008e 0DD0 beq .L140 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1805 .loc 1 738 7 discriminator 8 view .LVU539 + 1806 0090 94F84730 ldrb r3, [r4, #71] @ zero_extendqisi2 + 1807 0094 DBB2 uxtb r3, r3 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1808 .loc 1 738 46 discriminator 8 view .LVU540 + 1809 0096 013B subs r3, r3, #1 + 1810 0098 18BF it ne + 1811 009a 0123 movne r3, #1 + 1812 009c BBE7 b .L116 + 1813 .L139: + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1814 .loc 1 738 7 discriminator 4 view .LVU541 + 1815 009e 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 1816 00a2 DBB2 uxtb r3, r3 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1817 .loc 1 738 46 discriminator 4 view .LVU542 + 1818 00a4 013B subs r3, r3, #1 + 1819 00a6 18BF it ne + 1820 00a8 0123 movne r3, #1 + 1821 00aa B4E7 b .L116 + 1822 .L140: + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1823 .loc 1 738 7 discriminator 7 view .LVU543 + 1824 00ac 94F84630 ldrb r3, [r4, #70] @ zero_extendqisi2 + 1825 00b0 DBB2 uxtb r3, r3 + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1826 .loc 1 738 46 discriminator 7 view .LVU544 + 1827 00b2 013B subs r3, r3, #1 + 1828 00b4 18BF it ne + 1829 00b6 0123 movne r3, #1 + 1830 00b8 ADE7 b .L116 + 1831 .L120: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1832 .loc 1 744 3 discriminator 2 view .LVU545 + 1833 00ba 0428 cmp r0, #4 + 1834 00bc 24D0 beq .L141 + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1835 .loc 1 744 3 discriminator 4 view .LVU546 + 1836 00be 0828 cmp r0, #8 + 1837 00c0 2BD0 beq .L142 + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1838 .loc 1 744 3 discriminator 7 view .LVU547 + 1839 00c2 0223 movs r3, #2 + 1840 00c4 84F84730 strb r3, [r4, #71] + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1841 .loc 1 746 3 is_stmt 1 discriminator 7 view .LVU548 + 1842 00c8 0C28 cmp r0, #12 + 1843 00ca 45D8 bhi .L132 + 1844 00cc 01A3 adr r3, .L127 + 1845 00ce 53F820F0 ldr pc, [r3, r0, lsl #2] + 1846 00d2 00BF .p2align 2 + 1847 .L127: + 1848 00d4 27000000 .word .L121+1 + ARM GAS /tmp/cc9HXhVl.s page 107 + + + 1849 00d8 59010000 .word .L132+1 + 1850 00dc 59010000 .word .L132+1 + 1851 00e0 59010000 .word .L132+1 + 1852 00e4 0F010000 .word .L123+1 + 1853 00e8 59010000 .word .L132+1 + 1854 00ec 59010000 .word .L132+1 + 1855 00f0 59010000 .word .L132+1 + 1856 00f4 21010000 .word .L125+1 + 1857 00f8 59010000 .word .L132+1 + 1858 00fc 59010000 .word .L132+1 + 1859 0100 59010000 .word .L132+1 + 1860 0104 2D010000 .word .L126+1 + 1861 .p2align 1 + 1862 .L141: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1863 .loc 1 744 3 is_stmt 0 view .LVU549 + 1864 0108 0223 movs r3, #2 + 1865 010a 84F84530 strb r3, [r4, #69] + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1866 .loc 1 746 3 is_stmt 1 view .LVU550 + 1867 .L123: + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 1868 .loc 1 758 7 view .LVU551 + 1869 010e 2268 ldr r2, [r4] + 1870 0110 D368 ldr r3, [r2, #12] + 1871 0112 43F00403 orr r3, r3, #4 + 1872 0116 D360 str r3, [r2, #12] + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1873 .loc 1 759 7 view .LVU552 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1874 .loc 1 782 3 view .LVU553 + 1875 0118 8AE7 b .L128 + 1876 .L142: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1877 .loc 1 744 3 is_stmt 0 view .LVU554 + 1878 011a 0223 movs r3, #2 + 1879 011c 84F84630 strb r3, [r4, #70] + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1880 .loc 1 746 3 is_stmt 1 view .LVU555 + 1881 .L125: + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 1882 .loc 1 765 7 view .LVU556 + 1883 0120 2268 ldr r2, [r4] + 1884 0122 D368 ldr r3, [r2, #12] + 1885 0124 43F00803 orr r3, r3, #8 + 1886 0128 D360 str r3, [r2, #12] + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1887 .loc 1 766 7 view .LVU557 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1888 .loc 1 782 3 view .LVU558 + 1889 012a 81E7 b .L128 + 1890 .L126: + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 1891 .loc 1 773 7 view .LVU559 + 1892 012c 2268 ldr r2, [r4] + 1893 012e D368 ldr r3, [r2, #12] + 1894 0130 43F01003 orr r3, r3, #16 + ARM GAS /tmp/cc9HXhVl.s page 108 + + + 1895 0134 D360 str r3, [r2, #12] + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1896 .loc 1 774 7 view .LVU560 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1897 .loc 1 782 3 view .LVU561 + 1898 0136 7BE7 b .L128 + 1899 .LVL118: + 1900 .L129: + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1901 .loc 1 796 7 view .LVU562 + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1902 .loc 1 796 31 is_stmt 0 view .LVU563 + 1903 0138 9968 ldr r1, [r3, #8] + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 1904 .loc 1 796 15 view .LVU564 + 1905 013a 0B4A ldr r2, .L143+4 + 1906 013c 0A40 ands r2, r2, r1 + 1907 .LVL119: + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1908 .loc 1 797 7 is_stmt 1 view .LVU565 + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1909 .loc 1 797 10 is_stmt 0 view .LVU566 + 1910 013e 062A cmp r2, #6 + 1911 0140 0CD0 beq .L133 + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1912 .loc 1 797 11 discriminator 1 view .LVU567 + 1913 0142 B2F5803F cmp r2, #65536 + 1914 0146 0BD0 beq .L134 + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1915 .loc 1 799 9 is_stmt 1 view .LVU568 + 1916 0148 1A68 ldr r2, [r3] + 1917 .LVL120: + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1918 .loc 1 799 9 is_stmt 0 view .LVU569 + 1919 014a 42F00102 orr r2, r2, #1 + 1920 014e 1A60 str r2, [r3] + 1921 0150 0020 movs r0, #0 + 1922 0152 00E0 b .L119 + 1923 .LVL121: + 1924 .L131: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 1925 .loc 1 740 12 view .LVU570 + 1926 0154 0120 movs r0, #1 + 1927 .LVL122: + 1928 .L119: + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1929 .loc 1 810 1 view .LVU571 + 1930 0156 10BD pop {r4, pc} + 1931 .LVL123: + 1932 .L132: + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1933 .loc 1 746 3 view .LVU572 + 1934 0158 0120 movs r0, #1 + 1935 .LVL124: + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1936 .loc 1 746 3 view .LVU573 + 1937 015a FCE7 b .L119 + ARM GAS /tmp/cc9HXhVl.s page 109 + + + 1938 .LVL125: + 1939 .L133: + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1940 .loc 1 746 3 view .LVU574 + 1941 015c 0020 movs r0, #0 + 1942 015e FAE7 b .L119 + 1943 .L134: + 1944 0160 0020 movs r0, #0 + 1945 0162 F8E7 b .L119 + 1946 .L144: + 1947 .align 2 + 1948 .L143: + 1949 0164 002C0140 .word 1073818624 + 1950 0168 07000100 .word 65543 + 1951 .cfi_endproc + 1952 .LFE341: + 1954 .section .text.HAL_TIMEx_OCN_Stop_IT,"ax",%progbits + 1955 .align 1 + 1956 .global HAL_TIMEx_OCN_Stop_IT + 1957 .syntax unified + 1958 .thumb + 1959 .thumb_func + 1961 HAL_TIMEx_OCN_Stop_IT: + 1962 .LVL126: + 1963 .LFB342: + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1964 .loc 1 825 1 is_stmt 1 view -0 + 1965 .cfi_startproc + 1966 @ args = 0, pretend = 0, frame = 0 + 1967 @ frame_needed = 0, uses_anonymous_args = 0 + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 1968 .loc 1 825 1 is_stmt 0 view .LVU576 + 1969 0000 38B5 push {r3, r4, r5, lr} + 1970 .LCFI17: + 1971 .cfi_def_cfa_offset 16 + 1972 .cfi_offset 3, -16 + 1973 .cfi_offset 4, -12 + 1974 .cfi_offset 5, -8 + 1975 .cfi_offset 14, -4 + 1976 0002 0446 mov r4, r0 + 1977 0004 0D46 mov r5, r1 + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpccer; + 1978 .loc 1 826 3 is_stmt 1 view .LVU577 + 1979 .LVL127: + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1980 .loc 1 827 3 view .LVU578 + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 1981 .loc 1 830 3 view .LVU579 + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 1982 .loc 1 832 3 view .LVU580 + 1983 0006 0C29 cmp r1, #12 + 1984 0008 65D8 bhi .L159 + 1985 000a DFE801F0 tbb [pc, r1] + 1986 .L148: + 1987 000e 07 .byte (.L151-.L148)/2 + 1988 000f 64 .byte (.L159-.L148)/2 + 1989 0010 64 .byte (.L159-.L148)/2 + ARM GAS /tmp/cc9HXhVl.s page 110 + + + 1990 0011 64 .byte (.L159-.L148)/2 + 1991 0012 3F .byte (.L150-.L148)/2 + 1992 0013 64 .byte (.L159-.L148)/2 + 1993 0014 64 .byte (.L159-.L148)/2 + 1994 0015 64 .byte (.L159-.L148)/2 + 1995 0016 45 .byte (.L149-.L148)/2 + 1996 0017 64 .byte (.L159-.L148)/2 + 1997 0018 64 .byte (.L159-.L148)/2 + 1998 0019 64 .byte (.L159-.L148)/2 + 1999 001a 4B .byte (.L147-.L148)/2 + 2000 001b 00 .p2align 1 + 2001 .L151: + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2002 .loc 1 837 7 view .LVU581 + 2003 001c 0268 ldr r2, [r0] + 2004 001e D368 ldr r3, [r2, #12] + 2005 0020 23F00203 bic r3, r3, #2 + 2006 0024 D360 str r3, [r2, #12] + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2007 .loc 1 838 7 view .LVU582 + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2008 .loc 1 867 3 view .LVU583 + 2009 .L152: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2010 .loc 1 870 5 view .LVU584 + 2011 0026 0022 movs r2, #0 + 2012 0028 2946 mov r1, r5 + 2013 .LVL128: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2014 .loc 1 870 5 is_stmt 0 view .LVU585 + 2015 002a 2068 ldr r0, [r4] + 2016 .LVL129: + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2017 .loc 1 870 5 view .LVU586 + 2018 002c FFF7FEFF bl TIM_CCxNChannelCmd + 2019 .LVL130: + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 2020 .loc 1 873 5 is_stmt 1 view .LVU587 + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 2021 .loc 1 873 19 is_stmt 0 view .LVU588 + 2022 0030 2368 ldr r3, [r4] + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 2023 .loc 1 873 13 view .LVU589 + 2024 0032 196A ldr r1, [r3, #32] + 2025 .LVL131: + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2026 .loc 1 874 5 is_stmt 1 view .LVU590 + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2027 .loc 1 874 8 is_stmt 0 view .LVU591 + 2028 0034 44F24442 movw r2, #17476 + 2029 0038 1142 tst r1, r2 + 2030 003a 03D1 bne .L153 + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2031 .loc 1 876 7 is_stmt 1 view .LVU592 + 2032 003c DA68 ldr r2, [r3, #12] + 2033 003e 22F08002 bic r2, r2, #128 + 2034 0042 DA60 str r2, [r3, #12] + ARM GAS /tmp/cc9HXhVl.s page 111 + + + 2035 .L153: + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2036 .loc 1 880 5 view .LVU593 + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2037 .loc 1 880 5 view .LVU594 + 2038 0044 2368 ldr r3, [r4] + 2039 0046 196A ldr r1, [r3, #32] + 2040 .LVL132: + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2041 .loc 1 880 5 is_stmt 0 view .LVU595 + 2042 0048 41F21112 movw r2, #4369 + 2043 004c 1142 tst r1, r2 + 2044 004e 08D1 bne .L154 + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2045 .loc 1 880 5 is_stmt 1 discriminator 1 view .LVU596 + 2046 0050 196A ldr r1, [r3, #32] + 2047 0052 44F24442 movw r2, #17476 + 2048 0056 1142 tst r1, r2 + 2049 0058 03D1 bne .L154 + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2050 .loc 1 880 5 discriminator 3 view .LVU597 + 2051 005a 5A6C ldr r2, [r3, #68] + 2052 005c 22F40042 bic r2, r2, #32768 + 2053 0060 5A64 str r2, [r3, #68] + 2054 .L154: + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2055 .loc 1 880 5 discriminator 5 view .LVU598 + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2056 .loc 1 883 5 discriminator 5 view .LVU599 + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2057 .loc 1 883 5 discriminator 5 view .LVU600 + 2058 0062 2368 ldr r3, [r4] + 2059 0064 196A ldr r1, [r3, #32] + 2060 0066 41F21112 movw r2, #4369 + 2061 006a 1142 tst r1, r2 + 2062 006c 08D1 bne .L155 + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2063 .loc 1 883 5 discriminator 1 view .LVU601 + 2064 006e 196A ldr r1, [r3, #32] + 2065 0070 44F24442 movw r2, #17476 + 2066 0074 1142 tst r1, r2 + 2067 0076 03D1 bne .L155 + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2068 .loc 1 883 5 discriminator 3 view .LVU602 + 2069 0078 1A68 ldr r2, [r3] + 2070 007a 22F00102 bic r2, r2, #1 + 2071 007e 1A60 str r2, [r3] + 2072 .L155: + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2073 .loc 1 883 5 discriminator 5 view .LVU603 + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2074 .loc 1 886 5 discriminator 5 view .LVU604 + 2075 0080 B5B9 cbnz r5, .L156 + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2076 .loc 1 886 5 is_stmt 0 discriminator 1 view .LVU605 + 2077 0082 0123 movs r3, #1 + 2078 0084 84F84430 strb r3, [r4, #68] + ARM GAS /tmp/cc9HXhVl.s page 112 + + + 2079 0088 0020 movs r0, #0 + 2080 008a 25E0 b .L146 + 2081 .LVL133: + 2082 .L150: + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2083 .loc 1 844 7 is_stmt 1 view .LVU606 + 2084 008c 0268 ldr r2, [r0] + 2085 008e D368 ldr r3, [r2, #12] + 2086 0090 23F00403 bic r3, r3, #4 + 2087 0094 D360 str r3, [r2, #12] + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2088 .loc 1 845 7 view .LVU607 + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2089 .loc 1 867 3 view .LVU608 + 2090 0096 C6E7 b .L152 + 2091 .L149: + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2092 .loc 1 851 7 view .LVU609 + 2093 0098 0268 ldr r2, [r0] + 2094 009a D368 ldr r3, [r2, #12] + 2095 009c 23F00803 bic r3, r3, #8 + 2096 00a0 D360 str r3, [r2, #12] + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2097 .loc 1 852 7 view .LVU610 + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2098 .loc 1 867 3 view .LVU611 + 2099 00a2 C0E7 b .L152 + 2100 .L147: + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2101 .loc 1 858 7 view .LVU612 + 2102 00a4 0268 ldr r2, [r0] + 2103 00a6 D368 ldr r3, [r2, #12] + 2104 00a8 23F01003 bic r3, r3, #16 + 2105 00ac D360 str r3, [r2, #12] + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2106 .loc 1 859 7 view .LVU613 + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2107 .loc 1 867 3 view .LVU614 + 2108 00ae BAE7 b .L152 + 2109 .LVL134: + 2110 .L156: + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2111 .loc 1 886 5 is_stmt 0 discriminator 2 view .LVU615 + 2112 00b0 042D cmp r5, #4 + 2113 00b2 06D0 beq .L161 + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2114 .loc 1 886 5 discriminator 4 view .LVU616 + 2115 00b4 082D cmp r5, #8 + 2116 00b6 09D0 beq .L162 + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2117 .loc 1 886 5 discriminator 7 view .LVU617 + 2118 00b8 0123 movs r3, #1 + 2119 00ba 84F84730 strb r3, [r4, #71] + 2120 00be 0020 movs r0, #0 + 2121 00c0 0AE0 b .L146 + 2122 .L161: + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 113 + + + 2123 .loc 1 886 5 discriminator 3 view .LVU618 + 2124 00c2 0123 movs r3, #1 + 2125 00c4 84F84530 strb r3, [r4, #69] + 2126 00c8 0020 movs r0, #0 + 2127 00ca 05E0 b .L146 + 2128 .L162: + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2129 .loc 1 886 5 discriminator 6 view .LVU619 + 2130 00cc 0123 movs r3, #1 + 2131 00ce 84F84630 strb r3, [r4, #70] + 2132 00d2 0020 movs r0, #0 + 2133 00d4 00E0 b .L146 + 2134 .LVL135: + 2135 .L159: + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2136 .loc 1 832 3 view .LVU620 + 2137 00d6 0120 movs r0, #1 + 2138 .LVL136: + 2139 .L146: + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2140 .loc 1 890 3 is_stmt 1 view .LVU621 + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2141 .loc 1 891 1 is_stmt 0 view .LVU622 + 2142 00d8 38BD pop {r3, r4, r5, pc} + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2143 .loc 1 891 1 view .LVU623 + 2144 .cfi_endproc + 2145 .LFE342: + 2147 .section .text.HAL_TIMEx_OCN_Start_DMA,"ax",%progbits + 2148 .align 1 + 2149 .global HAL_TIMEx_OCN_Start_DMA + 2150 .syntax unified + 2151 .thumb + 2152 .thumb_func + 2154 HAL_TIMEx_OCN_Start_DMA: + 2155 .LVL137: + 2156 .LFB343: + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 2157 .loc 1 908 1 is_stmt 1 view -0 + 2158 .cfi_startproc + 2159 @ args = 0, pretend = 0, frame = 0 + 2160 @ frame_needed = 0, uses_anonymous_args = 0 + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 2161 .loc 1 908 1 is_stmt 0 view .LVU625 + 2162 0000 70B5 push {r4, r5, r6, lr} + 2163 .LCFI18: + 2164 .cfi_def_cfa_offset 16 + 2165 .cfi_offset 4, -16 + 2166 .cfi_offset 5, -12 + 2167 .cfi_offset 6, -8 + 2168 .cfi_offset 14, -4 + 2169 0002 0446 mov r4, r0 + 2170 0004 1646 mov r6, r2 + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 2171 .loc 1 909 3 is_stmt 1 view .LVU626 + 2172 .LVL138: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 114 + + + 2173 .loc 1 910 3 view .LVU627 + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2174 .loc 1 913 3 view .LVU628 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2175 .loc 1 916 3 view .LVU629 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2176 .loc 1 916 46 is_stmt 0 view .LVU630 + 2177 0006 0D46 mov r5, r1 + 2178 0008 0029 cmp r1, #0 + 2179 000a 62D1 bne .L164 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2180 .loc 1 916 7 discriminator 1 view .LVU631 + 2181 000c 90F84400 ldrb r0, [r0, #68] @ zero_extendqisi2 + 2182 .LVL139: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2183 .loc 1 916 7 discriminator 1 view .LVU632 + 2184 0010 C0B2 uxtb r0, r0 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2185 .loc 1 916 46 discriminator 1 view .LVU633 + 2186 0012 0228 cmp r0, #2 + 2187 0014 14BF ite ne + 2188 0016 0020 movne r0, #0 + 2189 0018 0120 moveq r0, #1 + 2190 .L165: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2191 .loc 1 916 6 discriminator 12 view .LVU634 + 2192 001a 0028 cmp r0, #0 + 2193 001c 40F01481 bne .L185 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2194 .loc 1 920 8 is_stmt 1 view .LVU635 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2195 .loc 1 920 51 is_stmt 0 view .LVU636 + 2196 0020 002D cmp r5, #0 + 2197 0022 72D1 bne .L169 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2198 .loc 1 920 12 discriminator 1 view .LVU637 + 2199 0024 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 2200 .LVL140: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2201 .loc 1 920 12 discriminator 1 view .LVU638 + 2202 0028 D2B2 uxtb r2, r2 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2203 .loc 1 920 51 discriminator 1 view .LVU639 + 2204 002a 012A cmp r2, #1 + 2205 002c 14BF ite ne + 2206 002e 0022 movne r2, #0 + 2207 0030 0122 moveq r2, #1 + 2208 .L170: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2209 .loc 1 920 11 discriminator 12 view .LVU640 + 2210 0032 002A cmp r2, #0 + 2211 0034 00F00A81 beq .L186 + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2212 .loc 1 922 5 is_stmt 1 view .LVU641 + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2213 .loc 1 922 8 is_stmt 0 view .LVU642 + 2214 0038 002E cmp r6, #0 + ARM GAS /tmp/cc9HXhVl.s page 115 + + + 2215 003a 00F08280 beq .L199 + 2216 .L173: + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2217 .loc 1 928 7 is_stmt 1 view .LVU643 + 2218 003e 002D cmp r5, #0 + 2219 0040 40F08480 bne .L174 + 2220 0044 0222 movs r2, #2 + 2221 0046 84F84420 strb r2, [r4, #68] + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2222 .loc 1 936 3 view .LVU644 + 2223 .L175: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2224 .loc 1 941 7 view .LVU645 + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2225 .loc 1 941 17 is_stmt 0 view .LVU646 + 2226 004a 626A ldr r2, [r4, #36] + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2227 .loc 1 941 52 view .LVU647 + 2228 004c 8749 ldr r1, .L206 + 2229 .LVL141: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2230 .loc 1 941 52 view .LVU648 + 2231 004e D162 str r1, [r2, #44] + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2232 .loc 1 942 7 is_stmt 1 view .LVU649 + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2233 .loc 1 942 17 is_stmt 0 view .LVU650 + 2234 0050 626A ldr r2, [r4, #36] + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2235 .loc 1 942 56 view .LVU651 + 2236 0052 8749 ldr r1, .L206+4 + 2237 0054 1163 str r1, [r2, #48] + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2238 .loc 1 945 7 is_stmt 1 view .LVU652 + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2239 .loc 1 945 17 is_stmt 0 view .LVU653 + 2240 0056 626A ldr r2, [r4, #36] + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2241 .loc 1 945 53 view .LVU654 + 2242 0058 8649 ldr r1, .L206+8 + 2243 005a 5163 str r1, [r2, #52] + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2244 .loc 1 948 7 is_stmt 1 view .LVU655 + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2245 .loc 1 948 88 is_stmt 0 view .LVU656 + 2246 005c 2268 ldr r2, [r4] + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2247 .loc 1 948 11 view .LVU657 + 2248 005e 3432 adds r2, r2, #52 + 2249 0060 3146 mov r1, r6 + 2250 0062 606A ldr r0, [r4, #36] + 2251 0064 FFF7FEFF bl HAL_DMA_Start_IT + 2252 .LVL142: + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2253 .loc 1 948 10 view .LVU658 + 2254 0068 0028 cmp r0, #0 + 2255 006a 40F0F380 bne .L189 + ARM GAS /tmp/cc9HXhVl.s page 116 + + + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2256 .loc 1 955 7 is_stmt 1 view .LVU659 + 2257 006e 2268 ldr r2, [r4] + 2258 0070 D368 ldr r3, [r2, #12] + 2259 0072 43F40073 orr r3, r3, #512 + 2260 0076 D360 str r3, [r2, #12] + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2261 .loc 1 956 7 view .LVU660 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2262 .loc 1 1027 3 view .LVU661 + 2263 .L182: +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2264 .loc 1 1030 5 view .LVU662 + 2265 0078 0422 movs r2, #4 + 2266 007a 2946 mov r1, r5 + 2267 007c 2068 ldr r0, [r4] + 2268 007e FFF7FEFF bl TIM_CCxNChannelCmd + 2269 .LVL143: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2270 .loc 1 1033 5 view .LVU663 + 2271 0082 2268 ldr r2, [r4] + 2272 0084 536C ldr r3, [r2, #68] + 2273 0086 43F40043 orr r3, r3, #32768 + 2274 008a 5364 str r3, [r2, #68] +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2275 .loc 1 1036 5 view .LVU664 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2276 .loc 1 1036 9 is_stmt 0 view .LVU665 + 2277 008c 2368 ldr r3, [r4] +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2278 .loc 1 1036 8 view .LVU666 + 2279 008e 7A4A ldr r2, .L206+12 + 2280 0090 9342 cmp r3, r2 + 2281 0092 00F0CB80 beq .L183 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2282 .loc 1 1036 9 discriminator 1 view .LVU667 + 2283 0096 B3F1804F cmp r3, #1073741824 + 2284 009a 00F0C780 beq .L183 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2285 .loc 1 1036 9 discriminator 2 view .LVU668 + 2286 009e A2F59432 sub r2, r2, #75776 + 2287 00a2 9342 cmp r3, r2 + 2288 00a4 00F0C280 beq .L183 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2289 .loc 1 1036 9 discriminator 3 view .LVU669 + 2290 00a8 02F58062 add r2, r2, #1024 + 2291 00ac 9342 cmp r3, r2 + 2292 00ae 00F0BD80 beq .L183 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2293 .loc 1 1036 9 discriminator 4 view .LVU670 + 2294 00b2 02F59632 add r2, r2, #76800 + 2295 00b6 9342 cmp r3, r2 + 2296 00b8 00F0B880 beq .L183 +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2297 .loc 1 1036 9 discriminator 5 view .LVU671 + 2298 00bc 02F54062 add r2, r2, #3072 + 2299 00c0 9342 cmp r3, r2 + ARM GAS /tmp/cc9HXhVl.s page 117 + + + 2300 00c2 00F0B380 beq .L183 +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2301 .loc 1 1046 7 is_stmt 1 view .LVU672 + 2302 00c6 1A68 ldr r2, [r3] + 2303 00c8 42F00102 orr r2, r2, #1 + 2304 00cc 1A60 str r2, [r3] + 2305 00ce 0020 movs r0, #0 + 2306 00d0 BDE0 b .L168 + 2307 .LVL144: + 2308 .L164: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2309 .loc 1 916 46 is_stmt 0 discriminator 2 view .LVU673 + 2310 00d2 0429 cmp r1, #4 + 2311 00d4 09D0 beq .L200 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2312 .loc 1 916 46 discriminator 5 view .LVU674 + 2313 00d6 0829 cmp r1, #8 + 2314 00d8 0FD0 beq .L201 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2315 .loc 1 916 7 discriminator 8 view .LVU675 + 2316 00da 90F84700 ldrb r0, [r0, #71] @ zero_extendqisi2 + 2317 .LVL145: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2318 .loc 1 916 7 discriminator 8 view .LVU676 + 2319 00de C0B2 uxtb r0, r0 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2320 .loc 1 916 46 discriminator 8 view .LVU677 + 2321 00e0 0228 cmp r0, #2 + 2322 00e2 14BF ite ne + 2323 00e4 0020 movne r0, #0 + 2324 00e6 0120 moveq r0, #1 + 2325 00e8 97E7 b .L165 + 2326 .LVL146: + 2327 .L200: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2328 .loc 1 916 7 discriminator 4 view .LVU678 + 2329 00ea 90F84500 ldrb r0, [r0, #69] @ zero_extendqisi2 + 2330 .LVL147: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2331 .loc 1 916 7 discriminator 4 view .LVU679 + 2332 00ee C0B2 uxtb r0, r0 + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2333 .loc 1 916 46 discriminator 4 view .LVU680 + 2334 00f0 0228 cmp r0, #2 + 2335 00f2 14BF ite ne + 2336 00f4 0020 movne r0, #0 + 2337 00f6 0120 moveq r0, #1 + 2338 00f8 8FE7 b .L165 + 2339 .LVL148: + 2340 .L201: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2341 .loc 1 916 7 discriminator 7 view .LVU681 + 2342 00fa 90F84600 ldrb r0, [r0, #70] @ zero_extendqisi2 + 2343 .LVL149: + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2344 .loc 1 916 7 discriminator 7 view .LVU682 + 2345 00fe C0B2 uxtb r0, r0 + ARM GAS /tmp/cc9HXhVl.s page 118 + + + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2346 .loc 1 916 46 discriminator 7 view .LVU683 + 2347 0100 0228 cmp r0, #2 + 2348 0102 14BF ite ne + 2349 0104 0020 movne r0, #0 + 2350 0106 0120 moveq r0, #1 + 2351 0108 87E7 b .L165 + 2352 .L169: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2353 .loc 1 920 51 discriminator 2 view .LVU684 + 2354 010a 042D cmp r5, #4 + 2355 010c 09D0 beq .L202 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2356 .loc 1 920 51 discriminator 5 view .LVU685 + 2357 010e 082D cmp r5, #8 + 2358 0110 0FD0 beq .L203 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2359 .loc 1 920 12 discriminator 8 view .LVU686 + 2360 0112 94F84720 ldrb r2, [r4, #71] @ zero_extendqisi2 + 2361 .LVL150: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2362 .loc 1 920 12 discriminator 8 view .LVU687 + 2363 0116 D2B2 uxtb r2, r2 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2364 .loc 1 920 51 discriminator 8 view .LVU688 + 2365 0118 012A cmp r2, #1 + 2366 011a 14BF ite ne + 2367 011c 0022 movne r2, #0 + 2368 011e 0122 moveq r2, #1 + 2369 0120 87E7 b .L170 + 2370 .LVL151: + 2371 .L202: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2372 .loc 1 920 12 discriminator 4 view .LVU689 + 2373 0122 94F84520 ldrb r2, [r4, #69] @ zero_extendqisi2 + 2374 .LVL152: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2375 .loc 1 920 12 discriminator 4 view .LVU690 + 2376 0126 D2B2 uxtb r2, r2 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2377 .loc 1 920 51 discriminator 4 view .LVU691 + 2378 0128 012A cmp r2, #1 + 2379 012a 14BF ite ne + 2380 012c 0022 movne r2, #0 + 2381 012e 0122 moveq r2, #1 + 2382 0130 7FE7 b .L170 + 2383 .LVL153: + 2384 .L203: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2385 .loc 1 920 12 discriminator 7 view .LVU692 + 2386 0132 94F84620 ldrb r2, [r4, #70] @ zero_extendqisi2 + 2387 .LVL154: + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2388 .loc 1 920 12 discriminator 7 view .LVU693 + 2389 0136 D2B2 uxtb r2, r2 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2390 .loc 1 920 51 discriminator 7 view .LVU694 + ARM GAS /tmp/cc9HXhVl.s page 119 + + + 2391 0138 012A cmp r2, #1 + 2392 013a 14BF ite ne + 2393 013c 0022 movne r2, #0 + 2394 013e 0122 moveq r2, #1 + 2395 0140 77E7 b .L170 + 2396 .L199: + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2397 .loc 1 922 25 discriminator 1 view .LVU695 + 2398 0142 002B cmp r3, #0 + 2399 0144 3FF47BAF beq .L173 + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2400 .loc 1 924 14 view .LVU696 + 2401 0148 0120 movs r0, #1 + 2402 014a 80E0 b .L168 + 2403 .L174: + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2404 .loc 1 928 7 discriminator 2 view .LVU697 + 2405 014c 042D cmp r5, #4 + 2406 014e 23D0 beq .L204 + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2407 .loc 1 928 7 discriminator 4 view .LVU698 + 2408 0150 082D cmp r5, #8 + 2409 0152 3BD0 beq .L205 + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2410 .loc 1 928 7 discriminator 7 view .LVU699 + 2411 0154 0222 movs r2, #2 + 2412 0156 84F84720 strb r2, [r4, #71] + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2413 .loc 1 936 3 is_stmt 1 discriminator 7 view .LVU700 + 2414 015a 0C2D cmp r5, #12 + 2415 015c 78D8 bhi .L188 + 2416 015e 01A2 adr r2, .L181 + 2417 0160 52F825F0 ldr pc, [r2, r5, lsl #2] + 2418 .p2align 2 + 2419 .L181: + 2420 0164 4B000000 .word .L175+1 + 2421 0168 51020000 .word .L188+1 + 2422 016c 51020000 .word .L188+1 + 2423 0170 51020000 .word .L188+1 + 2424 0174 9F010000 .word .L177+1 + 2425 0178 51020000 .word .L188+1 + 2426 017c 51020000 .word .L188+1 + 2427 0180 51020000 .word .L188+1 + 2428 0184 D3010000 .word .L179+1 + 2429 0188 51020000 .word .L188+1 + 2430 018c 51020000 .word .L188+1 + 2431 0190 51020000 .word .L188+1 + 2432 0194 01020000 .word .L180+1 + 2433 .p2align 1 + 2434 .L204: + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2435 .loc 1 928 7 is_stmt 0 view .LVU701 + 2436 0198 0222 movs r2, #2 + 2437 019a 84F84520 strb r2, [r4, #69] + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2438 .loc 1 936 3 is_stmt 1 view .LVU702 + 2439 .L177: + ARM GAS /tmp/cc9HXhVl.s page 120 + + + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2440 .loc 1 962 7 view .LVU703 + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2441 .loc 1 962 17 is_stmt 0 view .LVU704 + 2442 019e A26A ldr r2, [r4, #40] + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2443 .loc 1 962 52 view .LVU705 + 2444 01a0 3249 ldr r1, .L206 + 2445 .LVL155: + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2446 .loc 1 962 52 view .LVU706 + 2447 01a2 D162 str r1, [r2, #44] + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2448 .loc 1 963 7 is_stmt 1 view .LVU707 + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2449 .loc 1 963 17 is_stmt 0 view .LVU708 + 2450 01a4 A26A ldr r2, [r4, #40] + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2451 .loc 1 963 56 view .LVU709 + 2452 01a6 3249 ldr r1, .L206+4 + 2453 01a8 1163 str r1, [r2, #48] + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2454 .loc 1 966 7 is_stmt 1 view .LVU710 + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2455 .loc 1 966 17 is_stmt 0 view .LVU711 + 2456 01aa A26A ldr r2, [r4, #40] + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2457 .loc 1 966 53 view .LVU712 + 2458 01ac 3149 ldr r1, .L206+8 + 2459 01ae 5163 str r1, [r2, #52] + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2460 .loc 1 969 7 is_stmt 1 view .LVU713 + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2461 .loc 1 969 88 is_stmt 0 view .LVU714 + 2462 01b0 2268 ldr r2, [r4] + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2463 .loc 1 969 11 view .LVU715 + 2464 01b2 3832 adds r2, r2, #56 + 2465 01b4 3146 mov r1, r6 + 2466 01b6 A06A ldr r0, [r4, #40] + 2467 01b8 FFF7FEFF bl HAL_DMA_Start_IT + 2468 .LVL156: + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2469 .loc 1 969 10 view .LVU716 + 2470 01bc 0028 cmp r0, #0 + 2471 01be 4BD1 bne .L190 + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2472 .loc 1 976 7 is_stmt 1 view .LVU717 + 2473 01c0 2268 ldr r2, [r4] + 2474 01c2 D368 ldr r3, [r2, #12] + 2475 01c4 43F48063 orr r3, r3, #1024 + 2476 01c8 D360 str r3, [r2, #12] + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2477 .loc 1 977 7 view .LVU718 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2478 .loc 1 1027 3 view .LVU719 + 2479 01ca 55E7 b .L182 + ARM GAS /tmp/cc9HXhVl.s page 121 + + + 2480 .LVL157: + 2481 .L205: + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2482 .loc 1 928 7 is_stmt 0 view .LVU720 + 2483 01cc 0222 movs r2, #2 + 2484 01ce 84F84620 strb r2, [r4, #70] + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2485 .loc 1 936 3 is_stmt 1 view .LVU721 + 2486 .L179: + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2487 .loc 1 983 7 view .LVU722 + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2488 .loc 1 983 17 is_stmt 0 view .LVU723 + 2489 01d2 E26A ldr r2, [r4, #44] + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2490 .loc 1 983 52 view .LVU724 + 2491 01d4 2549 ldr r1, .L206 + 2492 .LVL158: + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2493 .loc 1 983 52 view .LVU725 + 2494 01d6 D162 str r1, [r2, #44] + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2495 .loc 1 984 7 is_stmt 1 view .LVU726 + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2496 .loc 1 984 17 is_stmt 0 view .LVU727 + 2497 01d8 E26A ldr r2, [r4, #44] + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2498 .loc 1 984 56 view .LVU728 + 2499 01da 2549 ldr r1, .L206+4 + 2500 01dc 1163 str r1, [r2, #48] + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2501 .loc 1 987 7 is_stmt 1 view .LVU729 + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2502 .loc 1 987 17 is_stmt 0 view .LVU730 + 2503 01de E26A ldr r2, [r4, #44] + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2504 .loc 1 987 53 view .LVU731 + 2505 01e0 2449 ldr r1, .L206+8 + 2506 01e2 5163 str r1, [r2, #52] + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2507 .loc 1 990 7 is_stmt 1 view .LVU732 + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2508 .loc 1 990 88 is_stmt 0 view .LVU733 + 2509 01e4 2268 ldr r2, [r4] + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2510 .loc 1 990 11 view .LVU734 + 2511 01e6 3C32 adds r2, r2, #60 + 2512 01e8 3146 mov r1, r6 + 2513 01ea E06A ldr r0, [r4, #44] + 2514 01ec FFF7FEFF bl HAL_DMA_Start_IT + 2515 .LVL159: + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2516 .loc 1 990 10 view .LVU735 + 2517 01f0 0028 cmp r0, #0 + 2518 01f2 33D1 bne .L191 + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2519 .loc 1 997 7 is_stmt 1 view .LVU736 + ARM GAS /tmp/cc9HXhVl.s page 122 + + + 2520 01f4 2268 ldr r2, [r4] + 2521 01f6 D368 ldr r3, [r2, #12] + 2522 01f8 43F40063 orr r3, r3, #2048 + 2523 01fc D360 str r3, [r2, #12] + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2524 .loc 1 998 7 view .LVU737 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2525 .loc 1 1027 3 view .LVU738 + 2526 01fe 3BE7 b .L182 + 2527 .LVL160: + 2528 .L180: +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2529 .loc 1 1004 7 view .LVU739 +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2530 .loc 1 1004 17 is_stmt 0 view .LVU740 + 2531 0200 226B ldr r2, [r4, #48] +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2532 .loc 1 1004 52 view .LVU741 + 2533 0202 1A49 ldr r1, .L206 + 2534 .LVL161: +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 2535 .loc 1 1004 52 view .LVU742 + 2536 0204 D162 str r1, [r2, #44] +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2537 .loc 1 1005 7 is_stmt 1 view .LVU743 +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2538 .loc 1 1005 17 is_stmt 0 view .LVU744 + 2539 0206 226B ldr r2, [r4, #48] +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2540 .loc 1 1005 56 view .LVU745 + 2541 0208 1949 ldr r1, .L206+4 + 2542 020a 1163 str r1, [r2, #48] +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2543 .loc 1 1008 7 is_stmt 1 view .LVU746 +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2544 .loc 1 1008 17 is_stmt 0 view .LVU747 + 2545 020c 226B ldr r2, [r4, #48] +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2546 .loc 1 1008 53 view .LVU748 + 2547 020e 1949 ldr r1, .L206+8 + 2548 0210 5163 str r1, [r2, #52] +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2549 .loc 1 1011 7 is_stmt 1 view .LVU749 +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2550 .loc 1 1011 88 is_stmt 0 view .LVU750 + 2551 0212 2268 ldr r2, [r4] +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2552 .loc 1 1011 11 view .LVU751 + 2553 0214 4032 adds r2, r2, #64 + 2554 0216 3146 mov r1, r6 + 2555 0218 206B ldr r0, [r4, #48] + 2556 021a FFF7FEFF bl HAL_DMA_Start_IT + 2557 .LVL162: +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 2558 .loc 1 1011 10 view .LVU752 + 2559 021e F8B9 cbnz r0, .L192 +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + ARM GAS /tmp/cc9HXhVl.s page 123 + + + 2560 .loc 1 1018 7 is_stmt 1 view .LVU753 + 2561 0220 2268 ldr r2, [r4] + 2562 0222 D368 ldr r3, [r2, #12] + 2563 0224 43F48053 orr r3, r3, #4096 + 2564 0228 D360 str r3, [r2, #12] +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2565 .loc 1 1019 7 view .LVU754 +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2566 .loc 1 1027 3 view .LVU755 + 2567 022a 25E7 b .L182 + 2568 .L183: +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 2569 .loc 1 1038 7 view .LVU756 +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 2570 .loc 1 1038 31 is_stmt 0 view .LVU757 + 2571 022c 9968 ldr r1, [r3, #8] +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 2572 .loc 1 1038 15 view .LVU758 + 2573 022e 134A ldr r2, .L206+16 + 2574 0230 0A40 ands r2, r2, r1 + 2575 .LVL163: +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2576 .loc 1 1039 7 is_stmt 1 view .LVU759 +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2577 .loc 1 1039 10 is_stmt 0 view .LVU760 + 2578 0232 062A cmp r2, #6 + 2579 0234 16D0 beq .L193 +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2580 .loc 1 1039 11 discriminator 1 view .LVU761 + 2581 0236 B2F5803F cmp r2, #65536 + 2582 023a 15D0 beq .L194 +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2583 .loc 1 1041 9 is_stmt 1 view .LVU762 + 2584 023c 1A68 ldr r2, [r3] + 2585 .LVL164: +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2586 .loc 1 1041 9 is_stmt 0 view .LVU763 + 2587 023e 42F00102 orr r2, r2, #1 + 2588 0242 1A60 str r2, [r3] + 2589 0244 0020 movs r0, #0 + 2590 0246 02E0 b .L168 + 2591 .LVL165: + 2592 .L185: + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2593 .loc 1 918 12 view .LVU764 + 2594 0248 0220 movs r0, #2 + 2595 024a 00E0 b .L168 + 2596 .LVL166: + 2597 .L186: + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2598 .loc 1 933 12 view .LVU765 + 2599 024c 0120 movs r0, #1 + 2600 .LVL167: + 2601 .L168: +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2602 .loc 1 1052 1 view .LVU766 + 2603 024e 70BD pop {r4, r5, r6, pc} + ARM GAS /tmp/cc9HXhVl.s page 124 + + + 2604 .LVL168: + 2605 .L188: + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2606 .loc 1 936 3 view .LVU767 + 2607 0250 0120 movs r0, #1 + 2608 0252 FCE7 b .L168 + 2609 .LVL169: + 2610 .L189: + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2611 .loc 1 952 16 view .LVU768 + 2612 0254 0120 movs r0, #1 + 2613 0256 FAE7 b .L168 + 2614 .L190: + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2615 .loc 1 973 16 view .LVU769 + 2616 0258 0120 movs r0, #1 + 2617 025a F8E7 b .L168 + 2618 .L191: + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2619 .loc 1 994 16 view .LVU770 + 2620 025c 0120 movs r0, #1 + 2621 025e F6E7 b .L168 + 2622 .L192: +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2623 .loc 1 1015 16 view .LVU771 + 2624 0260 0120 movs r0, #1 + 2625 0262 F4E7 b .L168 + 2626 .LVL170: + 2627 .L193: +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2628 .loc 1 1015 16 view .LVU772 + 2629 0264 0020 movs r0, #0 + 2630 0266 F2E7 b .L168 + 2631 .L194: + 2632 0268 0020 movs r0, #0 + 2633 026a F0E7 b .L168 + 2634 .L207: + 2635 .align 2 + 2636 .L206: + 2637 026c 00000000 .word TIM_DMADelayPulseNCplt + 2638 0270 00000000 .word TIM_DMADelayPulseHalfCplt + 2639 0274 00000000 .word TIM_DMAErrorCCxN + 2640 0278 002C0140 .word 1073818624 + 2641 027c 07000100 .word 65543 + 2642 .cfi_endproc + 2643 .LFE343: + 2645 .section .text.HAL_TIMEx_OCN_Stop_DMA,"ax",%progbits + 2646 .align 1 + 2647 .global HAL_TIMEx_OCN_Stop_DMA + 2648 .syntax unified + 2649 .thumb + 2650 .thumb_func + 2652 HAL_TIMEx_OCN_Stop_DMA: + 2653 .LVL171: + 2654 .LFB344: +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 2655 .loc 1 1067 1 is_stmt 1 view -0 + ARM GAS /tmp/cc9HXhVl.s page 125 + + + 2656 .cfi_startproc + 2657 @ args = 0, pretend = 0, frame = 0 + 2658 @ frame_needed = 0, uses_anonymous_args = 0 +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 2659 .loc 1 1067 1 is_stmt 0 view .LVU774 + 2660 0000 38B5 push {r3, r4, r5, lr} + 2661 .LCFI19: + 2662 .cfi_def_cfa_offset 16 + 2663 .cfi_offset 3, -16 + 2664 .cfi_offset 4, -12 + 2665 .cfi_offset 5, -8 + 2666 .cfi_offset 14, -4 + 2667 0002 0446 mov r4, r0 + 2668 0004 0D46 mov r5, r1 +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2669 .loc 1 1068 3 is_stmt 1 view .LVU775 + 2670 .LVL172: +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2671 .loc 1 1071 3 view .LVU776 +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2672 .loc 1 1073 3 view .LVU777 + 2673 0006 0C29 cmp r1, #12 + 2674 0008 67D8 bhi .L221 + 2675 000a DFE801F0 tbb [pc, r1] + 2676 .L211: + 2677 000e 07 .byte (.L214-.L211)/2 + 2678 000f 66 .byte (.L221-.L211)/2 + 2679 0010 66 .byte (.L221-.L211)/2 + 2680 0011 66 .byte (.L221-.L211)/2 + 2681 0012 38 .byte (.L213-.L211)/2 + 2682 0013 66 .byte (.L221-.L211)/2 + 2683 0014 66 .byte (.L221-.L211)/2 + 2684 0015 66 .byte (.L221-.L211)/2 + 2685 0016 41 .byte (.L212-.L211)/2 + 2686 0017 66 .byte (.L221-.L211)/2 + 2687 0018 66 .byte (.L221-.L211)/2 + 2688 0019 66 .byte (.L221-.L211)/2 + 2689 001a 4A .byte (.L210-.L211)/2 + 2690 001b 00 .p2align 1 + 2691 .L214: +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + 2692 .loc 1 1078 7 view .LVU778 + 2693 001c 0268 ldr r2, [r0] + 2694 001e D368 ldr r3, [r2, #12] + 2695 0020 23F40073 bic r3, r3, #512 + 2696 0024 D360 str r3, [r2, #12] +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2697 .loc 1 1079 7 view .LVU779 +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2698 .loc 1 1079 13 is_stmt 0 view .LVU780 + 2699 0026 406A ldr r0, [r0, #36] + 2700 .LVL173: +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2701 .loc 1 1079 13 view .LVU781 + 2702 0028 FFF7FEFF bl HAL_DMA_Abort_IT + 2703 .LVL174: +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 126 + + + 2704 .loc 1 1080 7 is_stmt 1 view .LVU782 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2705 .loc 1 1112 3 view .LVU783 + 2706 .L215: +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2707 .loc 1 1115 5 view .LVU784 + 2708 002c 0022 movs r2, #0 + 2709 002e 2946 mov r1, r5 + 2710 0030 2068 ldr r0, [r4] + 2711 0032 FFF7FEFF bl TIM_CCxNChannelCmd + 2712 .LVL175: +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2713 .loc 1 1118 5 view .LVU785 +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2714 .loc 1 1118 5 view .LVU786 + 2715 0036 2368 ldr r3, [r4] + 2716 0038 196A ldr r1, [r3, #32] + 2717 003a 41F21112 movw r2, #4369 + 2718 003e 1142 tst r1, r2 + 2719 0040 08D1 bne .L216 +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2720 .loc 1 1118 5 discriminator 1 view .LVU787 + 2721 0042 196A ldr r1, [r3, #32] + 2722 0044 44F24442 movw r2, #17476 + 2723 0048 1142 tst r1, r2 + 2724 004a 03D1 bne .L216 +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2725 .loc 1 1118 5 discriminator 3 view .LVU788 + 2726 004c 5A6C ldr r2, [r3, #68] + 2727 004e 22F40042 bic r2, r2, #32768 + 2728 0052 5A64 str r2, [r3, #68] + 2729 .L216: +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2730 .loc 1 1118 5 discriminator 5 view .LVU789 +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2731 .loc 1 1121 5 discriminator 5 view .LVU790 +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2732 .loc 1 1121 5 discriminator 5 view .LVU791 + 2733 0054 2368 ldr r3, [r4] + 2734 0056 196A ldr r1, [r3, #32] + 2735 0058 41F21112 movw r2, #4369 + 2736 005c 1142 tst r1, r2 + 2737 005e 08D1 bne .L217 +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2738 .loc 1 1121 5 discriminator 1 view .LVU792 + 2739 0060 196A ldr r1, [r3, #32] + 2740 0062 44F24442 movw r2, #17476 + 2741 0066 1142 tst r1, r2 + 2742 0068 03D1 bne .L217 +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2743 .loc 1 1121 5 discriminator 3 view .LVU793 + 2744 006a 1A68 ldr r2, [r3] + 2745 006c 22F00102 bic r2, r2, #1 + 2746 0070 1A60 str r2, [r3] + 2747 .L217: +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2748 .loc 1 1121 5 discriminator 5 view .LVU794 + ARM GAS /tmp/cc9HXhVl.s page 127 + + +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2749 .loc 1 1124 5 discriminator 5 view .LVU795 + 2750 0072 FDB9 cbnz r5, .L218 +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2751 .loc 1 1124 5 is_stmt 0 discriminator 1 view .LVU796 + 2752 0074 0123 movs r3, #1 + 2753 0076 84F84430 strb r3, [r4, #68] + 2754 007a 0020 movs r0, #0 + 2755 007c 2EE0 b .L209 + 2756 .LVL176: + 2757 .L213: +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 2758 .loc 1 1086 7 is_stmt 1 view .LVU797 + 2759 007e 0268 ldr r2, [r0] + 2760 0080 D368 ldr r3, [r2, #12] + 2761 0082 23F48063 bic r3, r3, #1024 + 2762 0086 D360 str r3, [r2, #12] +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2763 .loc 1 1087 7 view .LVU798 +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2764 .loc 1 1087 13 is_stmt 0 view .LVU799 + 2765 0088 806A ldr r0, [r0, #40] + 2766 .LVL177: +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2767 .loc 1 1087 13 view .LVU800 + 2768 008a FFF7FEFF bl HAL_DMA_Abort_IT + 2769 .LVL178: +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2770 .loc 1 1088 7 is_stmt 1 view .LVU801 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2771 .loc 1 1112 3 view .LVU802 + 2772 008e CDE7 b .L215 + 2773 .LVL179: + 2774 .L212: +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + 2775 .loc 1 1094 7 view .LVU803 + 2776 0090 0268 ldr r2, [r0] + 2777 0092 D368 ldr r3, [r2, #12] + 2778 0094 23F40063 bic r3, r3, #2048 + 2779 0098 D360 str r3, [r2, #12] +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2780 .loc 1 1095 7 view .LVU804 +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2781 .loc 1 1095 13 is_stmt 0 view .LVU805 + 2782 009a C06A ldr r0, [r0, #44] + 2783 .LVL180: +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2784 .loc 1 1095 13 view .LVU806 + 2785 009c FFF7FEFF bl HAL_DMA_Abort_IT + 2786 .LVL181: +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2787 .loc 1 1096 7 is_stmt 1 view .LVU807 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2788 .loc 1 1112 3 view .LVU808 + 2789 00a0 C4E7 b .L215 + 2790 .LVL182: + 2791 .L210: + ARM GAS /tmp/cc9HXhVl.s page 128 + + +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + 2792 .loc 1 1102 7 view .LVU809 + 2793 00a2 0268 ldr r2, [r0] + 2794 00a4 D368 ldr r3, [r2, #12] + 2795 00a6 23F48053 bic r3, r3, #4096 + 2796 00aa D360 str r3, [r2, #12] +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2797 .loc 1 1103 7 view .LVU810 +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2798 .loc 1 1103 13 is_stmt 0 view .LVU811 + 2799 00ac 006B ldr r0, [r0, #48] + 2800 .LVL183: +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 2801 .loc 1 1103 13 view .LVU812 + 2802 00ae FFF7FEFF bl HAL_DMA_Abort_IT + 2803 .LVL184: +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2804 .loc 1 1104 7 is_stmt 1 view .LVU813 +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2805 .loc 1 1112 3 view .LVU814 + 2806 00b2 BBE7 b .L215 + 2807 .L218: +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2808 .loc 1 1124 5 is_stmt 0 discriminator 2 view .LVU815 + 2809 00b4 042D cmp r5, #4 + 2810 00b6 06D0 beq .L223 +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2811 .loc 1 1124 5 discriminator 4 view .LVU816 + 2812 00b8 082D cmp r5, #8 + 2813 00ba 09D0 beq .L224 +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2814 .loc 1 1124 5 discriminator 7 view .LVU817 + 2815 00bc 0123 movs r3, #1 + 2816 00be 84F84730 strb r3, [r4, #71] + 2817 00c2 0020 movs r0, #0 + 2818 00c4 0AE0 b .L209 + 2819 .L223: +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2820 .loc 1 1124 5 discriminator 3 view .LVU818 + 2821 00c6 0123 movs r3, #1 + 2822 00c8 84F84530 strb r3, [r4, #69] + 2823 00cc 0020 movs r0, #0 + 2824 00ce 05E0 b .L209 + 2825 .L224: +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2826 .loc 1 1124 5 discriminator 6 view .LVU819 + 2827 00d0 0123 movs r3, #1 + 2828 00d2 84F84630 strb r3, [r4, #70] + 2829 00d6 0020 movs r0, #0 + 2830 00d8 00E0 b .L209 + 2831 .LVL185: + 2832 .L221: +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2833 .loc 1 1073 3 view .LVU820 + 2834 00da 0120 movs r0, #1 + 2835 .LVL186: + 2836 .L209: + ARM GAS /tmp/cc9HXhVl.s page 129 + + +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2837 .loc 1 1128 3 is_stmt 1 view .LVU821 +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2838 .loc 1 1129 1 is_stmt 0 view .LVU822 + 2839 00dc 38BD pop {r3, r4, r5, pc} +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2840 .loc 1 1129 1 view .LVU823 + 2841 .cfi_endproc + 2842 .LFE344: + 2844 .section .text.HAL_TIMEx_PWMN_Start,"ax",%progbits + 2845 .align 1 + 2846 .global HAL_TIMEx_PWMN_Start + 2847 .syntax unified + 2848 .thumb + 2849 .thumb_func + 2851 HAL_TIMEx_PWMN_Start: + 2852 .LVL187: + 2853 .LFB345: +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 2854 .loc 1 1177 1 is_stmt 1 view -0 + 2855 .cfi_startproc + 2856 @ args = 0, pretend = 0, frame = 0 + 2857 @ frame_needed = 0, uses_anonymous_args = 0 +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 2858 .loc 1 1177 1 is_stmt 0 view .LVU825 + 2859 0000 10B5 push {r4, lr} + 2860 .LCFI20: + 2861 .cfi_def_cfa_offset 8 + 2862 .cfi_offset 4, -8 + 2863 .cfi_offset 14, -4 + 2864 0002 0446 mov r4, r0 +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2865 .loc 1 1178 3 is_stmt 1 view .LVU826 +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2866 .loc 1 1181 3 view .LVU827 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2867 .loc 1 1184 3 view .LVU828 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2868 .loc 1 1184 46 is_stmt 0 view .LVU829 + 2869 0004 0846 mov r0, r1 + 2870 .LVL188: +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2871 .loc 1 1184 46 view .LVU830 + 2872 0006 0029 cmp r1, #0 + 2873 0008 33D1 bne .L226 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2874 .loc 1 1184 7 discriminator 1 view .LVU831 + 2875 000a 94F84430 ldrb r3, [r4, #68] @ zero_extendqisi2 + 2876 000e DBB2 uxtb r3, r3 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2877 .loc 1 1184 46 discriminator 1 view .LVU832 + 2878 0010 013B subs r3, r3, #1 + 2879 0012 18BF it ne + 2880 0014 0123 movne r3, #1 + 2881 .L227: +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2882 .loc 1 1184 6 discriminator 12 view .LVU833 + ARM GAS /tmp/cc9HXhVl.s page 130 + + + 2883 0016 002B cmp r3, #0 + 2884 0018 62D1 bne .L237 +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2885 .loc 1 1190 3 is_stmt 1 view .LVU834 + 2886 001a 0028 cmp r0, #0 + 2887 001c 42D1 bne .L231 +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2888 .loc 1 1190 3 is_stmt 0 discriminator 1 view .LVU835 + 2889 001e 0223 movs r3, #2 + 2890 0020 84F84430 strb r3, [r4, #68] + 2891 .L232: +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2892 .loc 1 1193 3 is_stmt 1 view .LVU836 + 2893 0024 0422 movs r2, #4 + 2894 0026 0146 mov r1, r0 + 2895 .LVL189: +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2896 .loc 1 1193 3 is_stmt 0 view .LVU837 + 2897 0028 2068 ldr r0, [r4] + 2898 .LVL190: +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2899 .loc 1 1193 3 view .LVU838 + 2900 002a FFF7FEFF bl TIM_CCxNChannelCmd + 2901 .LVL191: +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2902 .loc 1 1196 3 is_stmt 1 view .LVU839 + 2903 002e 2268 ldr r2, [r4] + 2904 0030 536C ldr r3, [r2, #68] + 2905 0032 43F40043 orr r3, r3, #32768 + 2906 0036 5364 str r3, [r2, #68] +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2907 .loc 1 1199 3 view .LVU840 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2908 .loc 1 1199 7 is_stmt 0 view .LVU841 + 2909 0038 2368 ldr r3, [r4] +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2910 .loc 1 1199 6 view .LVU842 + 2911 003a 2C4A ldr r2, .L245 + 2912 003c 9342 cmp r3, r2 + 2913 003e 41D0 beq .L235 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2914 .loc 1 1199 7 discriminator 1 view .LVU843 + 2915 0040 B3F1804F cmp r3, #1073741824 + 2916 0044 3ED0 beq .L235 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2917 .loc 1 1199 7 discriminator 2 view .LVU844 + 2918 0046 A2F59432 sub r2, r2, #75776 + 2919 004a 9342 cmp r3, r2 + 2920 004c 3AD0 beq .L235 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2921 .loc 1 1199 7 discriminator 3 view .LVU845 + 2922 004e 02F58062 add r2, r2, #1024 + 2923 0052 9342 cmp r3, r2 + 2924 0054 36D0 beq .L235 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2925 .loc 1 1199 7 discriminator 4 view .LVU846 + 2926 0056 02F59632 add r2, r2, #76800 + ARM GAS /tmp/cc9HXhVl.s page 131 + + + 2927 005a 9342 cmp r3, r2 + 2928 005c 32D0 beq .L235 +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2929 .loc 1 1199 7 discriminator 5 view .LVU847 + 2930 005e 02F54062 add r2, r2, #3072 + 2931 0062 9342 cmp r3, r2 + 2932 0064 2ED0 beq .L235 +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2933 .loc 1 1209 5 is_stmt 1 view .LVU848 + 2934 0066 1A68 ldr r2, [r3] + 2935 0068 42F00102 orr r2, r2, #1 + 2936 006c 1A60 str r2, [r3] +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 2937 .loc 1 1213 10 is_stmt 0 view .LVU849 + 2938 006e 0020 movs r0, #0 + 2939 0070 37E0 b .L230 + 2940 .LVL192: + 2941 .L226: +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2942 .loc 1 1184 46 discriminator 2 view .LVU850 + 2943 0072 0429 cmp r1, #4 + 2944 0074 08D0 beq .L241 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2945 .loc 1 1184 46 discriminator 5 view .LVU851 + 2946 0076 0829 cmp r1, #8 + 2947 0078 0DD0 beq .L242 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2948 .loc 1 1184 7 discriminator 8 view .LVU852 + 2949 007a 94F84730 ldrb r3, [r4, #71] @ zero_extendqisi2 + 2950 007e DBB2 uxtb r3, r3 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2951 .loc 1 1184 46 discriminator 8 view .LVU853 + 2952 0080 013B subs r3, r3, #1 + 2953 0082 18BF it ne + 2954 0084 0123 movne r3, #1 + 2955 0086 C6E7 b .L227 + 2956 .L241: +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2957 .loc 1 1184 7 discriminator 4 view .LVU854 + 2958 0088 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 2959 008c DBB2 uxtb r3, r3 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2960 .loc 1 1184 46 discriminator 4 view .LVU855 + 2961 008e 013B subs r3, r3, #1 + 2962 0090 18BF it ne + 2963 0092 0123 movne r3, #1 + 2964 0094 BFE7 b .L227 + 2965 .L242: +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2966 .loc 1 1184 7 discriminator 7 view .LVU856 + 2967 0096 94F84630 ldrb r3, [r4, #70] @ zero_extendqisi2 + 2968 009a DBB2 uxtb r3, r3 +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 2969 .loc 1 1184 46 discriminator 7 view .LVU857 + 2970 009c 013B subs r3, r3, #1 + 2971 009e 18BF it ne + 2972 00a0 0123 movne r3, #1 + ARM GAS /tmp/cc9HXhVl.s page 132 + + + 2973 00a2 B8E7 b .L227 + 2974 .L231: +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2975 .loc 1 1190 3 discriminator 2 view .LVU858 + 2976 00a4 0428 cmp r0, #4 + 2977 00a6 05D0 beq .L243 +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2978 .loc 1 1190 3 discriminator 4 view .LVU859 + 2979 00a8 0828 cmp r0, #8 + 2980 00aa 07D0 beq .L244 +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2981 .loc 1 1190 3 discriminator 7 view .LVU860 + 2982 00ac 0223 movs r3, #2 + 2983 00ae 84F84730 strb r3, [r4, #71] + 2984 00b2 B7E7 b .L232 + 2985 .L243: +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2986 .loc 1 1190 3 discriminator 3 view .LVU861 + 2987 00b4 0223 movs r3, #2 + 2988 00b6 84F84530 strb r3, [r4, #69] + 2989 00ba B3E7 b .L232 + 2990 .L244: +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 2991 .loc 1 1190 3 discriminator 6 view .LVU862 + 2992 00bc 0223 movs r3, #2 + 2993 00be 84F84630 strb r3, [r4, #70] + 2994 00c2 AFE7 b .L232 + 2995 .LVL193: + 2996 .L235: +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 2997 .loc 1 1201 5 is_stmt 1 view .LVU863 +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 2998 .loc 1 1201 29 is_stmt 0 view .LVU864 + 2999 00c4 9968 ldr r1, [r3, #8] +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 3000 .loc 1 1201 13 view .LVU865 + 3001 00c6 0A4A ldr r2, .L245+4 + 3002 00c8 0A40 ands r2, r2, r1 + 3003 .LVL194: +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3004 .loc 1 1202 5 is_stmt 1 view .LVU866 +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3005 .loc 1 1202 8 is_stmt 0 view .LVU867 + 3006 00ca 062A cmp r2, #6 + 3007 00cc 0AD0 beq .L238 +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3008 .loc 1 1202 9 discriminator 1 view .LVU868 + 3009 00ce B2F5803F cmp r2, #65536 + 3010 00d2 09D0 beq .L239 +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3011 .loc 1 1204 7 is_stmt 1 view .LVU869 + 3012 00d4 1A68 ldr r2, [r3] + 3013 .LVL195: +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3014 .loc 1 1204 7 is_stmt 0 view .LVU870 + 3015 00d6 42F00102 orr r2, r2, #1 + 3016 00da 1A60 str r2, [r3] + ARM GAS /tmp/cc9HXhVl.s page 133 + + +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3017 .loc 1 1213 10 view .LVU871 + 3018 00dc 0020 movs r0, #0 + 3019 00de 00E0 b .L230 + 3020 .LVL196: + 3021 .L237: +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3022 .loc 1 1186 12 view .LVU872 + 3023 00e0 0120 movs r0, #1 + 3024 .LVL197: + 3025 .L230: +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3026 .loc 1 1214 1 view .LVU873 + 3027 00e2 10BD pop {r4, pc} + 3028 .LVL198: + 3029 .L238: +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3030 .loc 1 1213 10 view .LVU874 + 3031 00e4 0020 movs r0, #0 + 3032 00e6 FCE7 b .L230 + 3033 .L239: + 3034 00e8 0020 movs r0, #0 + 3035 00ea FAE7 b .L230 + 3036 .L246: + 3037 .align 2 + 3038 .L245: + 3039 00ec 002C0140 .word 1073818624 + 3040 00f0 07000100 .word 65543 + 3041 .cfi_endproc + 3042 .LFE345: + 3044 .section .text.HAL_TIMEx_PWMN_Stop,"ax",%progbits + 3045 .align 1 + 3046 .global HAL_TIMEx_PWMN_Stop + 3047 .syntax unified + 3048 .thumb + 3049 .thumb_func + 3051 HAL_TIMEx_PWMN_Stop: + 3052 .LVL199: + 3053 .LFB346: +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 3054 .loc 1 1228 1 is_stmt 1 view -0 + 3055 .cfi_startproc + 3056 @ args = 0, pretend = 0, frame = 0 + 3057 @ frame_needed = 0, uses_anonymous_args = 0 +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 3058 .loc 1 1228 1 is_stmt 0 view .LVU876 + 3059 0000 38B5 push {r3, r4, r5, lr} + 3060 .LCFI21: + 3061 .cfi_def_cfa_offset 16 + 3062 .cfi_offset 3, -16 + 3063 .cfi_offset 4, -12 + 3064 .cfi_offset 5, -8 + 3065 .cfi_offset 14, -4 + 3066 0002 0446 mov r4, r0 + 3067 0004 0D46 mov r5, r1 +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3068 .loc 1 1230 3 is_stmt 1 view .LVU877 + ARM GAS /tmp/cc9HXhVl.s page 134 + + +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3069 .loc 1 1233 3 view .LVU878 + 3070 0006 0022 movs r2, #0 + 3071 0008 0068 ldr r0, [r0] + 3072 .LVL200: +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3073 .loc 1 1233 3 is_stmt 0 view .LVU879 + 3074 000a FFF7FEFF bl TIM_CCxNChannelCmd + 3075 .LVL201: +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3076 .loc 1 1236 3 is_stmt 1 view .LVU880 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3077 .loc 1 1236 3 view .LVU881 + 3078 000e 2368 ldr r3, [r4] + 3079 0010 196A ldr r1, [r3, #32] + 3080 0012 41F21112 movw r2, #4369 + 3081 0016 1142 tst r1, r2 + 3082 0018 08D1 bne .L248 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3083 .loc 1 1236 3 discriminator 1 view .LVU882 + 3084 001a 196A ldr r1, [r3, #32] + 3085 001c 44F24442 movw r2, #17476 + 3086 0020 1142 tst r1, r2 + 3087 0022 03D1 bne .L248 +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3088 .loc 1 1236 3 discriminator 3 view .LVU883 + 3089 0024 5A6C ldr r2, [r3, #68] + 3090 0026 22F40042 bic r2, r2, #32768 + 3091 002a 5A64 str r2, [r3, #68] + 3092 .L248: +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3093 .loc 1 1236 3 discriminator 5 view .LVU884 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3094 .loc 1 1239 3 discriminator 5 view .LVU885 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3095 .loc 1 1239 3 discriminator 5 view .LVU886 + 3096 002c 2368 ldr r3, [r4] + 3097 002e 196A ldr r1, [r3, #32] + 3098 0030 41F21112 movw r2, #4369 + 3099 0034 1142 tst r1, r2 + 3100 0036 08D1 bne .L249 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3101 .loc 1 1239 3 discriminator 1 view .LVU887 + 3102 0038 196A ldr r1, [r3, #32] + 3103 003a 44F24442 movw r2, #17476 + 3104 003e 1142 tst r1, r2 + 3105 0040 03D1 bne .L249 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3106 .loc 1 1239 3 discriminator 3 view .LVU888 + 3107 0042 1A68 ldr r2, [r3] + 3108 0044 22F00102 bic r2, r2, #1 + 3109 0048 1A60 str r2, [r3] + 3110 .L249: +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3111 .loc 1 1239 3 discriminator 5 view .LVU889 +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3112 .loc 1 1242 3 discriminator 5 view .LVU890 + ARM GAS /tmp/cc9HXhVl.s page 135 + + + 3113 004a 25B9 cbnz r5, .L250 +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3114 .loc 1 1242 3 is_stmt 0 discriminator 1 view .LVU891 + 3115 004c 0123 movs r3, #1 + 3116 004e 84F84430 strb r3, [r4, #68] + 3117 .L251: +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3118 .loc 1 1245 3 is_stmt 1 view .LVU892 +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3119 .loc 1 1246 1 is_stmt 0 view .LVU893 + 3120 0052 0020 movs r0, #0 + 3121 0054 38BD pop {r3, r4, r5, pc} + 3122 .LVL202: + 3123 .L250: +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3124 .loc 1 1242 3 discriminator 2 view .LVU894 + 3125 0056 042D cmp r5, #4 + 3126 0058 05D0 beq .L255 +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3127 .loc 1 1242 3 discriminator 4 view .LVU895 + 3128 005a 082D cmp r5, #8 + 3129 005c 07D0 beq .L256 +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3130 .loc 1 1242 3 discriminator 7 view .LVU896 + 3131 005e 0123 movs r3, #1 + 3132 0060 84F84730 strb r3, [r4, #71] + 3133 0064 F5E7 b .L251 + 3134 .L255: +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3135 .loc 1 1242 3 discriminator 3 view .LVU897 + 3136 0066 0123 movs r3, #1 + 3137 0068 84F84530 strb r3, [r4, #69] + 3138 006c F1E7 b .L251 + 3139 .L256: +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3140 .loc 1 1242 3 discriminator 6 view .LVU898 + 3141 006e 0123 movs r3, #1 + 3142 0070 84F84630 strb r3, [r4, #70] + 3143 0074 EDE7 b .L251 + 3144 .cfi_endproc + 3145 .LFE346: + 3147 .section .text.HAL_TIMEx_PWMN_Start_IT,"ax",%progbits + 3148 .align 1 + 3149 .global HAL_TIMEx_PWMN_Start_IT + 3150 .syntax unified + 3151 .thumb + 3152 .thumb_func + 3154 HAL_TIMEx_PWMN_Start_IT: + 3155 .LVL203: + 3156 .LFB347: +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 3157 .loc 1 1261 1 is_stmt 1 view -0 + 3158 .cfi_startproc + 3159 @ args = 0, pretend = 0, frame = 0 + 3160 @ frame_needed = 0, uses_anonymous_args = 0 +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 3161 .loc 1 1261 1 is_stmt 0 view .LVU900 + ARM GAS /tmp/cc9HXhVl.s page 136 + + + 3162 0000 10B5 push {r4, lr} + 3163 .LCFI22: + 3164 .cfi_def_cfa_offset 8 + 3165 .cfi_offset 4, -8 + 3166 .cfi_offset 14, -4 + 3167 0002 0446 mov r4, r0 +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 3168 .loc 1 1262 3 is_stmt 1 view .LVU901 + 3169 .LVL204: +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3170 .loc 1 1263 3 view .LVU902 +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3171 .loc 1 1266 3 view .LVU903 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3172 .loc 1 1269 3 view .LVU904 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3173 .loc 1 1269 46 is_stmt 0 view .LVU905 + 3174 0004 0846 mov r0, r1 + 3175 .LVL205: +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3176 .loc 1 1269 46 view .LVU906 + 3177 0006 0029 cmp r1, #0 + 3178 0008 3ED1 bne .L258 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3179 .loc 1 1269 7 discriminator 1 view .LVU907 + 3180 000a 94F84430 ldrb r3, [r4, #68] @ zero_extendqisi2 + 3181 000e DBB2 uxtb r3, r3 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3182 .loc 1 1269 46 discriminator 1 view .LVU908 + 3183 0010 013B subs r3, r3, #1 + 3184 0012 18BF it ne + 3185 0014 0123 movne r3, #1 + 3186 .L259: +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3187 .loc 1 1269 6 discriminator 12 view .LVU909 + 3188 0016 002B cmp r3, #0 + 3189 0018 40F09C80 bne .L274 +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3190 .loc 1 1275 3 is_stmt 1 view .LVU910 + 3191 001c 0028 cmp r0, #0 + 3192 001e 4CD1 bne .L263 + 3193 0020 0223 movs r3, #2 + 3194 0022 84F84430 strb r3, [r4, #68] +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3195 .loc 1 1277 3 view .LVU911 + 3196 .L264: +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3197 .loc 1 1282 7 view .LVU912 + 3198 0026 2268 ldr r2, [r4] + 3199 0028 D368 ldr r3, [r2, #12] + 3200 002a 43F00203 orr r3, r3, #2 + 3201 002e D360 str r3, [r2, #12] +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3202 .loc 1 1283 7 view .LVU913 +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3203 .loc 1 1312 3 view .LVU914 + 3204 .L271: + ARM GAS /tmp/cc9HXhVl.s page 137 + + +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3205 .loc 1 1315 5 view .LVU915 + 3206 0030 2268 ldr r2, [r4] + 3207 0032 D368 ldr r3, [r2, #12] + 3208 0034 43F08003 orr r3, r3, #128 + 3209 0038 D360 str r3, [r2, #12] +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3210 .loc 1 1318 5 view .LVU916 + 3211 003a 0422 movs r2, #4 + 3212 003c 0146 mov r1, r0 + 3213 .LVL206: +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3214 .loc 1 1318 5 is_stmt 0 view .LVU917 + 3215 003e 2068 ldr r0, [r4] + 3216 .LVL207: +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3217 .loc 1 1318 5 view .LVU918 + 3218 0040 FFF7FEFF bl TIM_CCxNChannelCmd + 3219 .LVL208: +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3220 .loc 1 1321 5 is_stmt 1 view .LVU919 + 3221 0044 2268 ldr r2, [r4] + 3222 0046 536C ldr r3, [r2, #68] + 3223 0048 43F40043 orr r3, r3, #32768 + 3224 004c 5364 str r3, [r2, #68] +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3225 .loc 1 1324 5 view .LVU920 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3226 .loc 1 1324 9 is_stmt 0 view .LVU921 + 3227 004e 2368 ldr r3, [r4] +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3228 .loc 1 1324 8 view .LVU922 + 3229 0050 444A ldr r2, .L286 + 3230 0052 9342 cmp r3, r2 + 3231 0054 70D0 beq .L272 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3232 .loc 1 1324 9 discriminator 1 view .LVU923 + 3233 0056 B3F1804F cmp r3, #1073741824 + 3234 005a 6DD0 beq .L272 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3235 .loc 1 1324 9 discriminator 2 view .LVU924 + 3236 005c A2F59432 sub r2, r2, #75776 + 3237 0060 9342 cmp r3, r2 + 3238 0062 69D0 beq .L272 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3239 .loc 1 1324 9 discriminator 3 view .LVU925 + 3240 0064 02F58062 add r2, r2, #1024 + 3241 0068 9342 cmp r3, r2 + 3242 006a 65D0 beq .L272 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3243 .loc 1 1324 9 discriminator 4 view .LVU926 + 3244 006c 02F59632 add r2, r2, #76800 + 3245 0070 9342 cmp r3, r2 + 3246 0072 61D0 beq .L272 +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3247 .loc 1 1324 9 discriminator 5 view .LVU927 + 3248 0074 02F54062 add r2, r2, #3072 + ARM GAS /tmp/cc9HXhVl.s page 138 + + + 3249 0078 9342 cmp r3, r2 + 3250 007a 5DD0 beq .L272 +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3251 .loc 1 1334 7 is_stmt 1 view .LVU928 + 3252 007c 1A68 ldr r2, [r3] + 3253 007e 42F00102 orr r2, r2, #1 + 3254 0082 1A60 str r2, [r3] + 3255 0084 0020 movs r0, #0 + 3256 0086 66E0 b .L262 + 3257 .LVL209: + 3258 .L258: +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3259 .loc 1 1269 46 is_stmt 0 discriminator 2 view .LVU929 + 3260 0088 0429 cmp r1, #4 + 3261 008a 08D0 beq .L282 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3262 .loc 1 1269 46 discriminator 5 view .LVU930 + 3263 008c 0829 cmp r1, #8 + 3264 008e 0DD0 beq .L283 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3265 .loc 1 1269 7 discriminator 8 view .LVU931 + 3266 0090 94F84730 ldrb r3, [r4, #71] @ zero_extendqisi2 + 3267 0094 DBB2 uxtb r3, r3 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3268 .loc 1 1269 46 discriminator 8 view .LVU932 + 3269 0096 013B subs r3, r3, #1 + 3270 0098 18BF it ne + 3271 009a 0123 movne r3, #1 + 3272 009c BBE7 b .L259 + 3273 .L282: +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3274 .loc 1 1269 7 discriminator 4 view .LVU933 + 3275 009e 94F84530 ldrb r3, [r4, #69] @ zero_extendqisi2 + 3276 00a2 DBB2 uxtb r3, r3 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3277 .loc 1 1269 46 discriminator 4 view .LVU934 + 3278 00a4 013B subs r3, r3, #1 + 3279 00a6 18BF it ne + 3280 00a8 0123 movne r3, #1 + 3281 00aa B4E7 b .L259 + 3282 .L283: +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3283 .loc 1 1269 7 discriminator 7 view .LVU935 + 3284 00ac 94F84630 ldrb r3, [r4, #70] @ zero_extendqisi2 + 3285 00b0 DBB2 uxtb r3, r3 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3286 .loc 1 1269 46 discriminator 7 view .LVU936 + 3287 00b2 013B subs r3, r3, #1 + 3288 00b4 18BF it ne + 3289 00b6 0123 movne r3, #1 + 3290 00b8 ADE7 b .L259 + 3291 .L263: +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3292 .loc 1 1275 3 discriminator 2 view .LVU937 + 3293 00ba 0428 cmp r0, #4 + 3294 00bc 24D0 beq .L284 +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 139 + + + 3295 .loc 1 1275 3 discriminator 4 view .LVU938 + 3296 00be 0828 cmp r0, #8 + 3297 00c0 2BD0 beq .L285 +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3298 .loc 1 1275 3 discriminator 7 view .LVU939 + 3299 00c2 0223 movs r3, #2 + 3300 00c4 84F84730 strb r3, [r4, #71] +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3301 .loc 1 1277 3 is_stmt 1 discriminator 7 view .LVU940 + 3302 00c8 0C28 cmp r0, #12 + 3303 00ca 45D8 bhi .L275 + 3304 00cc 01A3 adr r3, .L270 + 3305 00ce 53F820F0 ldr pc, [r3, r0, lsl #2] + 3306 00d2 00BF .p2align 2 + 3307 .L270: + 3308 00d4 27000000 .word .L264+1 + 3309 00d8 59010000 .word .L275+1 + 3310 00dc 59010000 .word .L275+1 + 3311 00e0 59010000 .word .L275+1 + 3312 00e4 0F010000 .word .L266+1 + 3313 00e8 59010000 .word .L275+1 + 3314 00ec 59010000 .word .L275+1 + 3315 00f0 59010000 .word .L275+1 + 3316 00f4 21010000 .word .L268+1 + 3317 00f8 59010000 .word .L275+1 + 3318 00fc 59010000 .word .L275+1 + 3319 0100 59010000 .word .L275+1 + 3320 0104 2D010000 .word .L269+1 + 3321 .p2align 1 + 3322 .L284: +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3323 .loc 1 1275 3 is_stmt 0 view .LVU941 + 3324 0108 0223 movs r3, #2 + 3325 010a 84F84530 strb r3, [r4, #69] +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3326 .loc 1 1277 3 is_stmt 1 view .LVU942 + 3327 .L266: +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3328 .loc 1 1289 7 view .LVU943 + 3329 010e 2268 ldr r2, [r4] + 3330 0110 D368 ldr r3, [r2, #12] + 3331 0112 43F00403 orr r3, r3, #4 + 3332 0116 D360 str r3, [r2, #12] +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3333 .loc 1 1290 7 view .LVU944 +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3334 .loc 1 1312 3 view .LVU945 + 3335 0118 8AE7 b .L271 + 3336 .L285: +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3337 .loc 1 1275 3 is_stmt 0 view .LVU946 + 3338 011a 0223 movs r3, #2 + 3339 011c 84F84630 strb r3, [r4, #70] +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3340 .loc 1 1277 3 is_stmt 1 view .LVU947 + 3341 .L268: +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + ARM GAS /tmp/cc9HXhVl.s page 140 + + + 3342 .loc 1 1296 7 view .LVU948 + 3343 0120 2268 ldr r2, [r4] + 3344 0122 D368 ldr r3, [r2, #12] + 3345 0124 43F00803 orr r3, r3, #8 + 3346 0128 D360 str r3, [r2, #12] +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3347 .loc 1 1297 7 view .LVU949 +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3348 .loc 1 1312 3 view .LVU950 + 3349 012a 81E7 b .L271 + 3350 .L269: +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3351 .loc 1 1303 7 view .LVU951 + 3352 012c 2268 ldr r2, [r4] + 3353 012e D368 ldr r3, [r2, #12] + 3354 0130 43F01003 orr r3, r3, #16 + 3355 0134 D360 str r3, [r2, #12] +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3356 .loc 1 1304 7 view .LVU952 +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3357 .loc 1 1312 3 view .LVU953 + 3358 0136 7BE7 b .L271 + 3359 .LVL210: + 3360 .L272: +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 3361 .loc 1 1326 7 view .LVU954 +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 3362 .loc 1 1326 31 is_stmt 0 view .LVU955 + 3363 0138 9968 ldr r1, [r3, #8] +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 3364 .loc 1 1326 15 view .LVU956 + 3365 013a 0B4A ldr r2, .L286+4 + 3366 013c 0A40 ands r2, r2, r1 + 3367 .LVL211: +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3368 .loc 1 1327 7 is_stmt 1 view .LVU957 +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3369 .loc 1 1327 10 is_stmt 0 view .LVU958 + 3370 013e 062A cmp r2, #6 + 3371 0140 0CD0 beq .L276 +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3372 .loc 1 1327 11 discriminator 1 view .LVU959 + 3373 0142 B2F5803F cmp r2, #65536 + 3374 0146 0BD0 beq .L277 +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3375 .loc 1 1329 9 is_stmt 1 view .LVU960 + 3376 0148 1A68 ldr r2, [r3] + 3377 .LVL212: +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3378 .loc 1 1329 9 is_stmt 0 view .LVU961 + 3379 014a 42F00102 orr r2, r2, #1 + 3380 014e 1A60 str r2, [r3] + 3381 0150 0020 movs r0, #0 + 3382 0152 00E0 b .L262 + 3383 .LVL213: + 3384 .L274: +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 141 + + + 3385 .loc 1 1271 12 view .LVU962 + 3386 0154 0120 movs r0, #1 + 3387 .LVL214: + 3388 .L262: +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3389 .loc 1 1340 1 view .LVU963 + 3390 0156 10BD pop {r4, pc} + 3391 .LVL215: + 3392 .L275: +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3393 .loc 1 1277 3 view .LVU964 + 3394 0158 0120 movs r0, #1 + 3395 .LVL216: +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3396 .loc 1 1277 3 view .LVU965 + 3397 015a FCE7 b .L262 + 3398 .LVL217: + 3399 .L276: +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3400 .loc 1 1277 3 view .LVU966 + 3401 015c 0020 movs r0, #0 + 3402 015e FAE7 b .L262 + 3403 .L277: + 3404 0160 0020 movs r0, #0 + 3405 0162 F8E7 b .L262 + 3406 .L287: + 3407 .align 2 + 3408 .L286: + 3409 0164 002C0140 .word 1073818624 + 3410 0168 07000100 .word 65543 + 3411 .cfi_endproc + 3412 .LFE347: + 3414 .section .text.HAL_TIMEx_PWMN_Stop_IT,"ax",%progbits + 3415 .align 1 + 3416 .global HAL_TIMEx_PWMN_Stop_IT + 3417 .syntax unified + 3418 .thumb + 3419 .thumb_func + 3421 HAL_TIMEx_PWMN_Stop_IT: + 3422 .LVL218: + 3423 .LFB348: +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 3424 .loc 1 1355 1 is_stmt 1 view -0 + 3425 .cfi_startproc + 3426 @ args = 0, pretend = 0, frame = 0 + 3427 @ frame_needed = 0, uses_anonymous_args = 0 +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 3428 .loc 1 1355 1 is_stmt 0 view .LVU968 + 3429 0000 38B5 push {r3, r4, r5, lr} + 3430 .LCFI23: + 3431 .cfi_def_cfa_offset 16 + 3432 .cfi_offset 3, -16 + 3433 .cfi_offset 4, -12 + 3434 .cfi_offset 5, -8 + 3435 .cfi_offset 14, -4 + 3436 0002 0446 mov r4, r0 + 3437 0004 0D46 mov r5, r1 + ARM GAS /tmp/cc9HXhVl.s page 142 + + +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpccer; + 3438 .loc 1 1356 3 is_stmt 1 view .LVU969 + 3439 .LVL219: +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3440 .loc 1 1357 3 view .LVU970 +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3441 .loc 1 1360 3 view .LVU971 +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3442 .loc 1 1362 3 view .LVU972 + 3443 0006 0C29 cmp r1, #12 + 3444 0008 65D8 bhi .L302 + 3445 000a DFE801F0 tbb [pc, r1] + 3446 .L291: + 3447 000e 07 .byte (.L294-.L291)/2 + 3448 000f 64 .byte (.L302-.L291)/2 + 3449 0010 64 .byte (.L302-.L291)/2 + 3450 0011 64 .byte (.L302-.L291)/2 + 3451 0012 3F .byte (.L293-.L291)/2 + 3452 0013 64 .byte (.L302-.L291)/2 + 3453 0014 64 .byte (.L302-.L291)/2 + 3454 0015 64 .byte (.L302-.L291)/2 + 3455 0016 45 .byte (.L292-.L291)/2 + 3456 0017 64 .byte (.L302-.L291)/2 + 3457 0018 64 .byte (.L302-.L291)/2 + 3458 0019 64 .byte (.L302-.L291)/2 + 3459 001a 4B .byte (.L290-.L291)/2 + 3460 001b 00 .p2align 1 + 3461 .L294: +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3462 .loc 1 1367 7 view .LVU973 + 3463 001c 0268 ldr r2, [r0] + 3464 001e D368 ldr r3, [r2, #12] + 3465 0020 23F00203 bic r3, r3, #2 + 3466 0024 D360 str r3, [r2, #12] +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3467 .loc 1 1368 7 view .LVU974 +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3468 .loc 1 1397 3 view .LVU975 + 3469 .L295: +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3470 .loc 1 1400 5 view .LVU976 + 3471 0026 0022 movs r2, #0 + 3472 0028 2946 mov r1, r5 + 3473 .LVL220: +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3474 .loc 1 1400 5 is_stmt 0 view .LVU977 + 3475 002a 2068 ldr r0, [r4] + 3476 .LVL221: +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3477 .loc 1 1400 5 view .LVU978 + 3478 002c FFF7FEFF bl TIM_CCxNChannelCmd + 3479 .LVL222: +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 3480 .loc 1 1403 5 is_stmt 1 view .LVU979 +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 3481 .loc 1 1403 19 is_stmt 0 view .LVU980 + 3482 0030 2368 ldr r3, [r4] + ARM GAS /tmp/cc9HXhVl.s page 143 + + +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((tmpccer & (TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE | TIM_CCER_CC4NE)) == (uint32 + 3483 .loc 1 1403 13 view .LVU981 + 3484 0032 196A ldr r1, [r3, #32] + 3485 .LVL223: +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3486 .loc 1 1404 5 is_stmt 1 view .LVU982 +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3487 .loc 1 1404 8 is_stmt 0 view .LVU983 + 3488 0034 44F24442 movw r2, #17476 + 3489 0038 1142 tst r1, r2 + 3490 003a 03D1 bne .L296 +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3491 .loc 1 1406 7 is_stmt 1 view .LVU984 + 3492 003c DA68 ldr r2, [r3, #12] + 3493 003e 22F08002 bic r2, r2, #128 + 3494 0042 DA60 str r2, [r3, #12] + 3495 .L296: +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3496 .loc 1 1410 5 view .LVU985 +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3497 .loc 1 1410 5 view .LVU986 + 3498 0044 2368 ldr r3, [r4] + 3499 0046 196A ldr r1, [r3, #32] + 3500 .LVL224: +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3501 .loc 1 1410 5 is_stmt 0 view .LVU987 + 3502 0048 41F21112 movw r2, #4369 + 3503 004c 1142 tst r1, r2 + 3504 004e 08D1 bne .L297 +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3505 .loc 1 1410 5 is_stmt 1 discriminator 1 view .LVU988 + 3506 0050 196A ldr r1, [r3, #32] + 3507 0052 44F24442 movw r2, #17476 + 3508 0056 1142 tst r1, r2 + 3509 0058 03D1 bne .L297 +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3510 .loc 1 1410 5 discriminator 3 view .LVU989 + 3511 005a 5A6C ldr r2, [r3, #68] + 3512 005c 22F40042 bic r2, r2, #32768 + 3513 0060 5A64 str r2, [r3, #68] + 3514 .L297: +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3515 .loc 1 1410 5 discriminator 5 view .LVU990 +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3516 .loc 1 1413 5 discriminator 5 view .LVU991 +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3517 .loc 1 1413 5 discriminator 5 view .LVU992 + 3518 0062 2368 ldr r3, [r4] + 3519 0064 196A ldr r1, [r3, #32] + 3520 0066 41F21112 movw r2, #4369 + 3521 006a 1142 tst r1, r2 + 3522 006c 08D1 bne .L298 +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3523 .loc 1 1413 5 discriminator 1 view .LVU993 + 3524 006e 196A ldr r1, [r3, #32] + 3525 0070 44F24442 movw r2, #17476 + 3526 0074 1142 tst r1, r2 + ARM GAS /tmp/cc9HXhVl.s page 144 + + + 3527 0076 03D1 bne .L298 +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3528 .loc 1 1413 5 discriminator 3 view .LVU994 + 3529 0078 1A68 ldr r2, [r3] + 3530 007a 22F00102 bic r2, r2, #1 + 3531 007e 1A60 str r2, [r3] + 3532 .L298: +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3533 .loc 1 1413 5 discriminator 5 view .LVU995 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3534 .loc 1 1416 5 discriminator 5 view .LVU996 + 3535 0080 B5B9 cbnz r5, .L299 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3536 .loc 1 1416 5 is_stmt 0 discriminator 1 view .LVU997 + 3537 0082 0123 movs r3, #1 + 3538 0084 84F84430 strb r3, [r4, #68] + 3539 0088 0020 movs r0, #0 + 3540 008a 25E0 b .L289 + 3541 .LVL225: + 3542 .L293: +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3543 .loc 1 1374 7 is_stmt 1 view .LVU998 + 3544 008c 0268 ldr r2, [r0] + 3545 008e D368 ldr r3, [r2, #12] + 3546 0090 23F00403 bic r3, r3, #4 + 3547 0094 D360 str r3, [r2, #12] +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3548 .loc 1 1375 7 view .LVU999 +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3549 .loc 1 1397 3 view .LVU1000 + 3550 0096 C6E7 b .L295 + 3551 .L292: +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3552 .loc 1 1381 7 view .LVU1001 + 3553 0098 0268 ldr r2, [r0] + 3554 009a D368 ldr r3, [r2, #12] + 3555 009c 23F00803 bic r3, r3, #8 + 3556 00a0 D360 str r3, [r2, #12] +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3557 .loc 1 1382 7 view .LVU1002 +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3558 .loc 1 1397 3 view .LVU1003 + 3559 00a2 C0E7 b .L295 + 3560 .L290: +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3561 .loc 1 1388 7 view .LVU1004 + 3562 00a4 0268 ldr r2, [r0] + 3563 00a6 D368 ldr r3, [r2, #12] + 3564 00a8 23F01003 bic r3, r3, #16 + 3565 00ac D360 str r3, [r2, #12] +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3566 .loc 1 1389 7 view .LVU1005 +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3567 .loc 1 1397 3 view .LVU1006 + 3568 00ae BAE7 b .L295 + 3569 .LVL226: + 3570 .L299: + ARM GAS /tmp/cc9HXhVl.s page 145 + + +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3571 .loc 1 1416 5 is_stmt 0 discriminator 2 view .LVU1007 + 3572 00b0 042D cmp r5, #4 + 3573 00b2 06D0 beq .L304 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3574 .loc 1 1416 5 discriminator 4 view .LVU1008 + 3575 00b4 082D cmp r5, #8 + 3576 00b6 09D0 beq .L305 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3577 .loc 1 1416 5 discriminator 7 view .LVU1009 + 3578 00b8 0123 movs r3, #1 + 3579 00ba 84F84730 strb r3, [r4, #71] + 3580 00be 0020 movs r0, #0 + 3581 00c0 0AE0 b .L289 + 3582 .L304: +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3583 .loc 1 1416 5 discriminator 3 view .LVU1010 + 3584 00c2 0123 movs r3, #1 + 3585 00c4 84F84530 strb r3, [r4, #69] + 3586 00c8 0020 movs r0, #0 + 3587 00ca 05E0 b .L289 + 3588 .L305: +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3589 .loc 1 1416 5 discriminator 6 view .LVU1011 + 3590 00cc 0123 movs r3, #1 + 3591 00ce 84F84630 strb r3, [r4, #70] + 3592 00d2 0020 movs r0, #0 + 3593 00d4 00E0 b .L289 + 3594 .LVL227: + 3595 .L302: +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3596 .loc 1 1362 3 view .LVU1012 + 3597 00d6 0120 movs r0, #1 + 3598 .LVL228: + 3599 .L289: +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3600 .loc 1 1420 3 is_stmt 1 view .LVU1013 +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3601 .loc 1 1421 1 is_stmt 0 view .LVU1014 + 3602 00d8 38BD pop {r3, r4, r5, pc} +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3603 .loc 1 1421 1 view .LVU1015 + 3604 .cfi_endproc + 3605 .LFE348: + 3607 .section .text.HAL_TIMEx_PWMN_Start_DMA,"ax",%progbits + 3608 .align 1 + 3609 .global HAL_TIMEx_PWMN_Start_DMA + 3610 .syntax unified + 3611 .thumb + 3612 .thumb_func + 3614 HAL_TIMEx_PWMN_Start_DMA: + 3615 .LVL229: + 3616 .LFB349: +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 3617 .loc 1 1438 1 is_stmt 1 view -0 + 3618 .cfi_startproc + 3619 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/cc9HXhVl.s page 146 + + + 3620 @ frame_needed = 0, uses_anonymous_args = 0 +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 3621 .loc 1 1438 1 is_stmt 0 view .LVU1017 + 3622 0000 70B5 push {r4, r5, r6, lr} + 3623 .LCFI24: + 3624 .cfi_def_cfa_offset 16 + 3625 .cfi_offset 4, -16 + 3626 .cfi_offset 5, -12 + 3627 .cfi_offset 6, -8 + 3628 .cfi_offset 14, -4 + 3629 0002 0446 mov r4, r0 + 3630 0004 1646 mov r6, r2 +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 3631 .loc 1 1439 3 is_stmt 1 view .LVU1018 + 3632 .LVL230: +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3633 .loc 1 1440 3 view .LVU1019 +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3634 .loc 1 1443 3 view .LVU1020 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3635 .loc 1 1446 3 view .LVU1021 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3636 .loc 1 1446 46 is_stmt 0 view .LVU1022 + 3637 0006 0D46 mov r5, r1 + 3638 0008 0029 cmp r1, #0 + 3639 000a 62D1 bne .L307 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3640 .loc 1 1446 7 discriminator 1 view .LVU1023 + 3641 000c 90F84400 ldrb r0, [r0, #68] @ zero_extendqisi2 + 3642 .LVL231: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3643 .loc 1 1446 7 discriminator 1 view .LVU1024 + 3644 0010 C0B2 uxtb r0, r0 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3645 .loc 1 1446 46 discriminator 1 view .LVU1025 + 3646 0012 0228 cmp r0, #2 + 3647 0014 14BF ite ne + 3648 0016 0020 movne r0, #0 + 3649 0018 0120 moveq r0, #1 + 3650 .L308: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3651 .loc 1 1446 6 discriminator 12 view .LVU1026 + 3652 001a 0028 cmp r0, #0 + 3653 001c 40F01481 bne .L328 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3654 .loc 1 1450 8 is_stmt 1 view .LVU1027 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3655 .loc 1 1450 51 is_stmt 0 view .LVU1028 + 3656 0020 002D cmp r5, #0 + 3657 0022 72D1 bne .L312 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3658 .loc 1 1450 12 discriminator 1 view .LVU1029 + 3659 0024 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 3660 .LVL232: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3661 .loc 1 1450 12 discriminator 1 view .LVU1030 + 3662 0028 D2B2 uxtb r2, r2 + ARM GAS /tmp/cc9HXhVl.s page 147 + + +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3663 .loc 1 1450 51 discriminator 1 view .LVU1031 + 3664 002a 012A cmp r2, #1 + 3665 002c 14BF ite ne + 3666 002e 0022 movne r2, #0 + 3667 0030 0122 moveq r2, #1 + 3668 .L313: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3669 .loc 1 1450 11 discriminator 12 view .LVU1032 + 3670 0032 002A cmp r2, #0 + 3671 0034 00F00A81 beq .L329 +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3672 .loc 1 1452 5 is_stmt 1 view .LVU1033 +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3673 .loc 1 1452 8 is_stmt 0 view .LVU1034 + 3674 0038 002E cmp r6, #0 + 3675 003a 00F08280 beq .L342 + 3676 .L316: +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3677 .loc 1 1458 7 is_stmt 1 view .LVU1035 + 3678 003e 002D cmp r5, #0 + 3679 0040 40F08480 bne .L317 + 3680 0044 0222 movs r2, #2 + 3681 0046 84F84420 strb r2, [r4, #68] +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3682 .loc 1 1466 3 view .LVU1036 + 3683 .L318: +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3684 .loc 1 1471 7 view .LVU1037 +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3685 .loc 1 1471 17 is_stmt 0 view .LVU1038 + 3686 004a 626A ldr r2, [r4, #36] +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3687 .loc 1 1471 52 view .LVU1039 + 3688 004c 8749 ldr r1, .L349 + 3689 .LVL233: +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3690 .loc 1 1471 52 view .LVU1040 + 3691 004e D162 str r1, [r2, #44] +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3692 .loc 1 1472 7 is_stmt 1 view .LVU1041 +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3693 .loc 1 1472 17 is_stmt 0 view .LVU1042 + 3694 0050 626A ldr r2, [r4, #36] +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3695 .loc 1 1472 56 view .LVU1043 + 3696 0052 8749 ldr r1, .L349+4 + 3697 0054 1163 str r1, [r2, #48] +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3698 .loc 1 1475 7 is_stmt 1 view .LVU1044 +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3699 .loc 1 1475 17 is_stmt 0 view .LVU1045 + 3700 0056 626A ldr r2, [r4, #36] +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3701 .loc 1 1475 53 view .LVU1046 + 3702 0058 8649 ldr r1, .L349+8 + 3703 005a 5163 str r1, [r2, #52] + ARM GAS /tmp/cc9HXhVl.s page 148 + + +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3704 .loc 1 1478 7 is_stmt 1 view .LVU1047 +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3705 .loc 1 1478 88 is_stmt 0 view .LVU1048 + 3706 005c 2268 ldr r2, [r4] +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3707 .loc 1 1478 11 view .LVU1049 + 3708 005e 3432 adds r2, r2, #52 + 3709 0060 3146 mov r1, r6 + 3710 0062 606A ldr r0, [r4, #36] + 3711 0064 FFF7FEFF bl HAL_DMA_Start_IT + 3712 .LVL234: +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3713 .loc 1 1478 10 view .LVU1050 + 3714 0068 0028 cmp r0, #0 + 3715 006a 40F0F380 bne .L332 +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3716 .loc 1 1485 7 is_stmt 1 view .LVU1051 + 3717 006e 2268 ldr r2, [r4] + 3718 0070 D368 ldr r3, [r2, #12] + 3719 0072 43F40073 orr r3, r3, #512 + 3720 0076 D360 str r3, [r2, #12] +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3721 .loc 1 1486 7 view .LVU1052 +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3722 .loc 1 1557 3 view .LVU1053 + 3723 .L325: +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3724 .loc 1 1560 5 view .LVU1054 + 3725 0078 0422 movs r2, #4 + 3726 007a 2946 mov r1, r5 + 3727 007c 2068 ldr r0, [r4] + 3728 007e FFF7FEFF bl TIM_CCxNChannelCmd + 3729 .LVL235: +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3730 .loc 1 1563 5 view .LVU1055 + 3731 0082 2268 ldr r2, [r4] + 3732 0084 536C ldr r3, [r2, #68] + 3733 0086 43F40043 orr r3, r3, #32768 + 3734 008a 5364 str r3, [r2, #68] +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3735 .loc 1 1566 5 view .LVU1056 +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3736 .loc 1 1566 9 is_stmt 0 view .LVU1057 + 3737 008c 2368 ldr r3, [r4] +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3738 .loc 1 1566 8 view .LVU1058 + 3739 008e 7A4A ldr r2, .L349+12 + 3740 0090 9342 cmp r3, r2 + 3741 0092 00F0CB80 beq .L326 +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3742 .loc 1 1566 9 discriminator 1 view .LVU1059 + 3743 0096 B3F1804F cmp r3, #1073741824 + 3744 009a 00F0C780 beq .L326 +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3745 .loc 1 1566 9 discriminator 2 view .LVU1060 + 3746 009e A2F59432 sub r2, r2, #75776 + ARM GAS /tmp/cc9HXhVl.s page 149 + + + 3747 00a2 9342 cmp r3, r2 + 3748 00a4 00F0C280 beq .L326 +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3749 .loc 1 1566 9 discriminator 3 view .LVU1061 + 3750 00a8 02F58062 add r2, r2, #1024 + 3751 00ac 9342 cmp r3, r2 + 3752 00ae 00F0BD80 beq .L326 +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3753 .loc 1 1566 9 discriminator 4 view .LVU1062 + 3754 00b2 02F59632 add r2, r2, #76800 + 3755 00b6 9342 cmp r3, r2 + 3756 00b8 00F0B880 beq .L326 +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3757 .loc 1 1566 9 discriminator 5 view .LVU1063 + 3758 00bc 02F54062 add r2, r2, #3072 + 3759 00c0 9342 cmp r3, r2 + 3760 00c2 00F0B380 beq .L326 +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3761 .loc 1 1576 7 is_stmt 1 view .LVU1064 + 3762 00c6 1A68 ldr r2, [r3] + 3763 00c8 42F00102 orr r2, r2, #1 + 3764 00cc 1A60 str r2, [r3] + 3765 00ce 0020 movs r0, #0 + 3766 00d0 BDE0 b .L311 + 3767 .LVL236: + 3768 .L307: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3769 .loc 1 1446 46 is_stmt 0 discriminator 2 view .LVU1065 + 3770 00d2 0429 cmp r1, #4 + 3771 00d4 09D0 beq .L343 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3772 .loc 1 1446 46 discriminator 5 view .LVU1066 + 3773 00d6 0829 cmp r1, #8 + 3774 00d8 0FD0 beq .L344 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3775 .loc 1 1446 7 discriminator 8 view .LVU1067 + 3776 00da 90F84700 ldrb r0, [r0, #71] @ zero_extendqisi2 + 3777 .LVL237: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3778 .loc 1 1446 7 discriminator 8 view .LVU1068 + 3779 00de C0B2 uxtb r0, r0 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3780 .loc 1 1446 46 discriminator 8 view .LVU1069 + 3781 00e0 0228 cmp r0, #2 + 3782 00e2 14BF ite ne + 3783 00e4 0020 movne r0, #0 + 3784 00e6 0120 moveq r0, #1 + 3785 00e8 97E7 b .L308 + 3786 .LVL238: + 3787 .L343: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3788 .loc 1 1446 7 discriminator 4 view .LVU1070 + 3789 00ea 90F84500 ldrb r0, [r0, #69] @ zero_extendqisi2 + 3790 .LVL239: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3791 .loc 1 1446 7 discriminator 4 view .LVU1071 + 3792 00ee C0B2 uxtb r0, r0 + ARM GAS /tmp/cc9HXhVl.s page 150 + + +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3793 .loc 1 1446 46 discriminator 4 view .LVU1072 + 3794 00f0 0228 cmp r0, #2 + 3795 00f2 14BF ite ne + 3796 00f4 0020 movne r0, #0 + 3797 00f6 0120 moveq r0, #1 + 3798 00f8 8FE7 b .L308 + 3799 .LVL240: + 3800 .L344: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3801 .loc 1 1446 7 discriminator 7 view .LVU1073 + 3802 00fa 90F84600 ldrb r0, [r0, #70] @ zero_extendqisi2 + 3803 .LVL241: +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3804 .loc 1 1446 7 discriminator 7 view .LVU1074 + 3805 00fe C0B2 uxtb r0, r0 +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3806 .loc 1 1446 46 discriminator 7 view .LVU1075 + 3807 0100 0228 cmp r0, #2 + 3808 0102 14BF ite ne + 3809 0104 0020 movne r0, #0 + 3810 0106 0120 moveq r0, #1 + 3811 0108 87E7 b .L308 + 3812 .L312: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3813 .loc 1 1450 51 discriminator 2 view .LVU1076 + 3814 010a 042D cmp r5, #4 + 3815 010c 09D0 beq .L345 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3816 .loc 1 1450 51 discriminator 5 view .LVU1077 + 3817 010e 082D cmp r5, #8 + 3818 0110 0FD0 beq .L346 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3819 .loc 1 1450 12 discriminator 8 view .LVU1078 + 3820 0112 94F84720 ldrb r2, [r4, #71] @ zero_extendqisi2 + 3821 .LVL242: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3822 .loc 1 1450 12 discriminator 8 view .LVU1079 + 3823 0116 D2B2 uxtb r2, r2 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3824 .loc 1 1450 51 discriminator 8 view .LVU1080 + 3825 0118 012A cmp r2, #1 + 3826 011a 14BF ite ne + 3827 011c 0022 movne r2, #0 + 3828 011e 0122 moveq r2, #1 + 3829 0120 87E7 b .L313 + 3830 .LVL243: + 3831 .L345: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3832 .loc 1 1450 12 discriminator 4 view .LVU1081 + 3833 0122 94F84520 ldrb r2, [r4, #69] @ zero_extendqisi2 + 3834 .LVL244: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3835 .loc 1 1450 12 discriminator 4 view .LVU1082 + 3836 0126 D2B2 uxtb r2, r2 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3837 .loc 1 1450 51 discriminator 4 view .LVU1083 + ARM GAS /tmp/cc9HXhVl.s page 151 + + + 3838 0128 012A cmp r2, #1 + 3839 012a 14BF ite ne + 3840 012c 0022 movne r2, #0 + 3841 012e 0122 moveq r2, #1 + 3842 0130 7FE7 b .L313 + 3843 .LVL245: + 3844 .L346: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3845 .loc 1 1450 12 discriminator 7 view .LVU1084 + 3846 0132 94F84620 ldrb r2, [r4, #70] @ zero_extendqisi2 + 3847 .LVL246: +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3848 .loc 1 1450 12 discriminator 7 view .LVU1085 + 3849 0136 D2B2 uxtb r2, r2 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3850 .loc 1 1450 51 discriminator 7 view .LVU1086 + 3851 0138 012A cmp r2, #1 + 3852 013a 14BF ite ne + 3853 013c 0022 movne r2, #0 + 3854 013e 0122 moveq r2, #1 + 3855 0140 77E7 b .L313 + 3856 .L342: +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3857 .loc 1 1452 25 discriminator 1 view .LVU1087 + 3858 0142 002B cmp r3, #0 + 3859 0144 3FF47BAF beq .L316 +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3860 .loc 1 1454 14 view .LVU1088 + 3861 0148 0120 movs r0, #1 + 3862 014a 80E0 b .L311 + 3863 .L317: +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3864 .loc 1 1458 7 discriminator 2 view .LVU1089 + 3865 014c 042D cmp r5, #4 + 3866 014e 23D0 beq .L347 +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3867 .loc 1 1458 7 discriminator 4 view .LVU1090 + 3868 0150 082D cmp r5, #8 + 3869 0152 3BD0 beq .L348 +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3870 .loc 1 1458 7 discriminator 7 view .LVU1091 + 3871 0154 0222 movs r2, #2 + 3872 0156 84F84720 strb r2, [r4, #71] +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3873 .loc 1 1466 3 is_stmt 1 discriminator 7 view .LVU1092 + 3874 015a 0C2D cmp r5, #12 + 3875 015c 78D8 bhi .L331 + 3876 015e 01A2 adr r2, .L324 + 3877 0160 52F825F0 ldr pc, [r2, r5, lsl #2] + 3878 .p2align 2 + 3879 .L324: + 3880 0164 4B000000 .word .L318+1 + 3881 0168 51020000 .word .L331+1 + 3882 016c 51020000 .word .L331+1 + 3883 0170 51020000 .word .L331+1 + 3884 0174 9F010000 .word .L320+1 + 3885 0178 51020000 .word .L331+1 + ARM GAS /tmp/cc9HXhVl.s page 152 + + + 3886 017c 51020000 .word .L331+1 + 3887 0180 51020000 .word .L331+1 + 3888 0184 D3010000 .word .L322+1 + 3889 0188 51020000 .word .L331+1 + 3890 018c 51020000 .word .L331+1 + 3891 0190 51020000 .word .L331+1 + 3892 0194 01020000 .word .L323+1 + 3893 .p2align 1 + 3894 .L347: +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3895 .loc 1 1458 7 is_stmt 0 view .LVU1093 + 3896 0198 0222 movs r2, #2 + 3897 019a 84F84520 strb r2, [r4, #69] +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3898 .loc 1 1466 3 is_stmt 1 view .LVU1094 + 3899 .L320: +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3900 .loc 1 1492 7 view .LVU1095 +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3901 .loc 1 1492 17 is_stmt 0 view .LVU1096 + 3902 019e A26A ldr r2, [r4, #40] +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3903 .loc 1 1492 52 view .LVU1097 + 3904 01a0 3249 ldr r1, .L349 + 3905 .LVL247: +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3906 .loc 1 1492 52 view .LVU1098 + 3907 01a2 D162 str r1, [r2, #44] +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3908 .loc 1 1493 7 is_stmt 1 view .LVU1099 +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3909 .loc 1 1493 17 is_stmt 0 view .LVU1100 + 3910 01a4 A26A ldr r2, [r4, #40] +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3911 .loc 1 1493 56 view .LVU1101 + 3912 01a6 3249 ldr r1, .L349+4 + 3913 01a8 1163 str r1, [r2, #48] +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3914 .loc 1 1496 7 is_stmt 1 view .LVU1102 +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3915 .loc 1 1496 17 is_stmt 0 view .LVU1103 + 3916 01aa A26A ldr r2, [r4, #40] +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3917 .loc 1 1496 53 view .LVU1104 + 3918 01ac 3149 ldr r1, .L349+8 + 3919 01ae 5163 str r1, [r2, #52] +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3920 .loc 1 1499 7 is_stmt 1 view .LVU1105 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3921 .loc 1 1499 88 is_stmt 0 view .LVU1106 + 3922 01b0 2268 ldr r2, [r4] +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3923 .loc 1 1499 11 view .LVU1107 + 3924 01b2 3832 adds r2, r2, #56 + 3925 01b4 3146 mov r1, r6 + 3926 01b6 A06A ldr r0, [r4, #40] + 3927 01b8 FFF7FEFF bl HAL_DMA_Start_IT + ARM GAS /tmp/cc9HXhVl.s page 153 + + + 3928 .LVL248: +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3929 .loc 1 1499 10 view .LVU1108 + 3930 01bc 0028 cmp r0, #0 + 3931 01be 4BD1 bne .L333 +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3932 .loc 1 1506 7 is_stmt 1 view .LVU1109 + 3933 01c0 2268 ldr r2, [r4] + 3934 01c2 D368 ldr r3, [r2, #12] + 3935 01c4 43F48063 orr r3, r3, #1024 + 3936 01c8 D360 str r3, [r2, #12] +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3937 .loc 1 1507 7 view .LVU1110 +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3938 .loc 1 1557 3 view .LVU1111 + 3939 01ca 55E7 b .L325 + 3940 .LVL249: + 3941 .L348: +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3942 .loc 1 1458 7 is_stmt 0 view .LVU1112 + 3943 01cc 0222 movs r2, #2 + 3944 01ce 84F84620 strb r2, [r4, #70] +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3945 .loc 1 1466 3 is_stmt 1 view .LVU1113 + 3946 .L322: +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3947 .loc 1 1513 7 view .LVU1114 +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3948 .loc 1 1513 17 is_stmt 0 view .LVU1115 + 3949 01d2 E26A ldr r2, [r4, #44] +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3950 .loc 1 1513 52 view .LVU1116 + 3951 01d4 2549 ldr r1, .L349 + 3952 .LVL250: +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3953 .loc 1 1513 52 view .LVU1117 + 3954 01d6 D162 str r1, [r2, #44] +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3955 .loc 1 1514 7 is_stmt 1 view .LVU1118 +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3956 .loc 1 1514 17 is_stmt 0 view .LVU1119 + 3957 01d8 E26A ldr r2, [r4, #44] +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3958 .loc 1 1514 56 view .LVU1120 + 3959 01da 2549 ldr r1, .L349+4 + 3960 01dc 1163 str r1, [r2, #48] +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3961 .loc 1 1517 7 is_stmt 1 view .LVU1121 +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3962 .loc 1 1517 17 is_stmt 0 view .LVU1122 + 3963 01de E26A ldr r2, [r4, #44] +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3964 .loc 1 1517 53 view .LVU1123 + 3965 01e0 2449 ldr r1, .L349+8 + 3966 01e2 5163 str r1, [r2, #52] +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3967 .loc 1 1520 7 is_stmt 1 view .LVU1124 + ARM GAS /tmp/cc9HXhVl.s page 154 + + +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3968 .loc 1 1520 88 is_stmt 0 view .LVU1125 + 3969 01e4 2268 ldr r2, [r4] +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3970 .loc 1 1520 11 view .LVU1126 + 3971 01e6 3C32 adds r2, r2, #60 + 3972 01e8 3146 mov r1, r6 + 3973 01ea E06A ldr r0, [r4, #44] + 3974 01ec FFF7FEFF bl HAL_DMA_Start_IT + 3975 .LVL251: +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 3976 .loc 1 1520 10 view .LVU1127 + 3977 01f0 0028 cmp r0, #0 + 3978 01f2 33D1 bne .L334 +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 3979 .loc 1 1527 7 is_stmt 1 view .LVU1128 + 3980 01f4 2268 ldr r2, [r4] + 3981 01f6 D368 ldr r3, [r2, #12] + 3982 01f8 43F40063 orr r3, r3, #2048 + 3983 01fc D360 str r3, [r2, #12] +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 3984 .loc 1 1528 7 view .LVU1129 +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 3985 .loc 1 1557 3 view .LVU1130 + 3986 01fe 3BE7 b .L325 + 3987 .LVL252: + 3988 .L323: +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3989 .loc 1 1534 7 view .LVU1131 +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3990 .loc 1 1534 17 is_stmt 0 view .LVU1132 + 3991 0200 226B ldr r2, [r4, #48] +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3992 .loc 1 1534 52 view .LVU1133 + 3993 0202 1A49 ldr r1, .L349 + 3994 .LVL253: +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt; + 3995 .loc 1 1534 52 view .LVU1134 + 3996 0204 D162 str r1, [r2, #44] +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3997 .loc 1 1535 7 is_stmt 1 view .LVU1135 +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 3998 .loc 1 1535 17 is_stmt 0 view .LVU1136 + 3999 0206 226B ldr r2, [r4, #48] +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4000 .loc 1 1535 56 view .LVU1137 + 4001 0208 1949 ldr r1, .L349+4 + 4002 020a 1163 str r1, [r2, #48] +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4003 .loc 1 1538 7 is_stmt 1 view .LVU1138 +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4004 .loc 1 1538 17 is_stmt 0 view .LVU1139 + 4005 020c 226B ldr r2, [r4, #48] +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4006 .loc 1 1538 53 view .LVU1140 + 4007 020e 1949 ldr r1, .L349+8 + 4008 0210 5163 str r1, [r2, #52] + ARM GAS /tmp/cc9HXhVl.s page 155 + + +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 4009 .loc 1 1541 7 is_stmt 1 view .LVU1141 +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 4010 .loc 1 1541 88 is_stmt 0 view .LVU1142 + 4011 0212 2268 ldr r2, [r4] +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 4012 .loc 1 1541 11 view .LVU1143 + 4013 0214 4032 adds r2, r2, #64 + 4014 0216 3146 mov r1, r6 + 4015 0218 206B ldr r0, [r4, #48] + 4016 021a FFF7FEFF bl HAL_DMA_Start_IT + 4017 .LVL254: +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** Length) != HAL_OK) + 4018 .loc 1 1541 10 view .LVU1144 + 4019 021e F8B9 cbnz r0, .L335 +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4020 .loc 1 1548 7 is_stmt 1 view .LVU1145 + 4021 0220 2268 ldr r2, [r4] + 4022 0222 D368 ldr r3, [r2, #12] + 4023 0224 43F48053 orr r3, r3, #4096 + 4024 0228 D360 str r3, [r2, #12] +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4025 .loc 1 1549 7 view .LVU1146 +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4026 .loc 1 1557 3 view .LVU1147 + 4027 022a 25E7 b .L325 + 4028 .L326: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 4029 .loc 1 1568 7 view .LVU1148 +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 4030 .loc 1 1568 31 is_stmt 0 view .LVU1149 + 4031 022c 9968 ldr r1, [r3, #8] +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 4032 .loc 1 1568 15 view .LVU1150 + 4033 022e 134A ldr r2, .L349+16 + 4034 0230 0A40 ands r2, r2, r1 + 4035 .LVL255: +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4036 .loc 1 1569 7 is_stmt 1 view .LVU1151 +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4037 .loc 1 1569 10 is_stmt 0 view .LVU1152 + 4038 0232 062A cmp r2, #6 + 4039 0234 16D0 beq .L336 +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4040 .loc 1 1569 11 discriminator 1 view .LVU1153 + 4041 0236 B2F5803F cmp r2, #65536 + 4042 023a 15D0 beq .L337 +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4043 .loc 1 1571 9 is_stmt 1 view .LVU1154 + 4044 023c 1A68 ldr r2, [r3] + 4045 .LVL256: +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4046 .loc 1 1571 9 is_stmt 0 view .LVU1155 + 4047 023e 42F00102 orr r2, r2, #1 + 4048 0242 1A60 str r2, [r3] + 4049 0244 0020 movs r0, #0 + 4050 0246 02E0 b .L311 + ARM GAS /tmp/cc9HXhVl.s page 156 + + + 4051 .LVL257: + 4052 .L328: +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4053 .loc 1 1448 12 view .LVU1156 + 4054 0248 0220 movs r0, #2 + 4055 024a 00E0 b .L311 + 4056 .LVL258: + 4057 .L329: +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4058 .loc 1 1463 12 view .LVU1157 + 4059 024c 0120 movs r0, #1 + 4060 .LVL259: + 4061 .L311: +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4062 .loc 1 1582 1 view .LVU1158 + 4063 024e 70BD pop {r4, r5, r6, pc} + 4064 .LVL260: + 4065 .L331: +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4066 .loc 1 1466 3 view .LVU1159 + 4067 0250 0120 movs r0, #1 + 4068 0252 FCE7 b .L311 + 4069 .LVL261: + 4070 .L332: +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4071 .loc 1 1482 16 view .LVU1160 + 4072 0254 0120 movs r0, #1 + 4073 0256 FAE7 b .L311 + 4074 .L333: +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4075 .loc 1 1503 16 view .LVU1161 + 4076 0258 0120 movs r0, #1 + 4077 025a F8E7 b .L311 + 4078 .L334: +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4079 .loc 1 1524 16 view .LVU1162 + 4080 025c 0120 movs r0, #1 + 4081 025e F6E7 b .L311 + 4082 .L335: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4083 .loc 1 1545 16 view .LVU1163 + 4084 0260 0120 movs r0, #1 + 4085 0262 F4E7 b .L311 + 4086 .LVL262: + 4087 .L336: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4088 .loc 1 1545 16 view .LVU1164 + 4089 0264 0020 movs r0, #0 + 4090 0266 F2E7 b .L311 + 4091 .L337: + 4092 0268 0020 movs r0, #0 + 4093 026a F0E7 b .L311 + 4094 .L350: + 4095 .align 2 + 4096 .L349: + 4097 026c 00000000 .word TIM_DMADelayPulseNCplt + 4098 0270 00000000 .word TIM_DMADelayPulseHalfCplt + ARM GAS /tmp/cc9HXhVl.s page 157 + + + 4099 0274 00000000 .word TIM_DMAErrorCCxN + 4100 0278 002C0140 .word 1073818624 + 4101 027c 07000100 .word 65543 + 4102 .cfi_endproc + 4103 .LFE349: + 4105 .section .text.HAL_TIMEx_PWMN_Stop_DMA,"ax",%progbits + 4106 .align 1 + 4107 .global HAL_TIMEx_PWMN_Stop_DMA + 4108 .syntax unified + 4109 .thumb + 4110 .thumb_func + 4112 HAL_TIMEx_PWMN_Stop_DMA: + 4113 .LVL263: + 4114 .LFB350: +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 4115 .loc 1 1597 1 is_stmt 1 view -0 + 4116 .cfi_startproc + 4117 @ args = 0, pretend = 0, frame = 0 + 4118 @ frame_needed = 0, uses_anonymous_args = 0 +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 4119 .loc 1 1597 1 is_stmt 0 view .LVU1166 + 4120 0000 38B5 push {r3, r4, r5, lr} + 4121 .LCFI25: + 4122 .cfi_def_cfa_offset 16 + 4123 .cfi_offset 3, -16 + 4124 .cfi_offset 4, -12 + 4125 .cfi_offset 5, -8 + 4126 .cfi_offset 14, -4 + 4127 0002 0446 mov r4, r0 + 4128 0004 0D46 mov r5, r1 +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4129 .loc 1 1598 3 is_stmt 1 view .LVU1167 + 4130 .LVL264: +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4131 .loc 1 1601 3 view .LVU1168 +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4132 .loc 1 1603 3 view .LVU1169 + 4133 0006 0C29 cmp r1, #12 + 4134 0008 67D8 bhi .L364 + 4135 000a DFE801F0 tbb [pc, r1] + 4136 .L354: + 4137 000e 07 .byte (.L357-.L354)/2 + 4138 000f 66 .byte (.L364-.L354)/2 + 4139 0010 66 .byte (.L364-.L354)/2 + 4140 0011 66 .byte (.L364-.L354)/2 + 4141 0012 38 .byte (.L356-.L354)/2 + 4142 0013 66 .byte (.L364-.L354)/2 + 4143 0014 66 .byte (.L364-.L354)/2 + 4144 0015 66 .byte (.L364-.L354)/2 + 4145 0016 41 .byte (.L355-.L354)/2 + 4146 0017 66 .byte (.L364-.L354)/2 + 4147 0018 66 .byte (.L364-.L354)/2 + 4148 0019 66 .byte (.L364-.L354)/2 + 4149 001a 4A .byte (.L353-.L354)/2 + 4150 001b 00 .p2align 1 + 4151 .L357: +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + ARM GAS /tmp/cc9HXhVl.s page 158 + + + 4152 .loc 1 1608 7 view .LVU1170 + 4153 001c 0268 ldr r2, [r0] + 4154 001e D368 ldr r3, [r2, #12] + 4155 0020 23F40073 bic r3, r3, #512 + 4156 0024 D360 str r3, [r2, #12] +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4157 .loc 1 1609 7 view .LVU1171 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4158 .loc 1 1609 13 is_stmt 0 view .LVU1172 + 4159 0026 406A ldr r0, [r0, #36] + 4160 .LVL265: +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4161 .loc 1 1609 13 view .LVU1173 + 4162 0028 FFF7FEFF bl HAL_DMA_Abort_IT + 4163 .LVL266: +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4164 .loc 1 1610 7 is_stmt 1 view .LVU1174 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4165 .loc 1 1642 3 view .LVU1175 + 4166 .L358: +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4167 .loc 1 1645 5 view .LVU1176 + 4168 002c 0022 movs r2, #0 + 4169 002e 2946 mov r1, r5 + 4170 0030 2068 ldr r0, [r4] + 4171 0032 FFF7FEFF bl TIM_CCxNChannelCmd + 4172 .LVL267: +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4173 .loc 1 1648 5 view .LVU1177 +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4174 .loc 1 1648 5 view .LVU1178 + 4175 0036 2368 ldr r3, [r4] + 4176 0038 196A ldr r1, [r3, #32] + 4177 003a 41F21112 movw r2, #4369 + 4178 003e 1142 tst r1, r2 + 4179 0040 08D1 bne .L359 +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4180 .loc 1 1648 5 discriminator 1 view .LVU1179 + 4181 0042 196A ldr r1, [r3, #32] + 4182 0044 44F24442 movw r2, #17476 + 4183 0048 1142 tst r1, r2 + 4184 004a 03D1 bne .L359 +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4185 .loc 1 1648 5 discriminator 3 view .LVU1180 + 4186 004c 5A6C ldr r2, [r3, #68] + 4187 004e 22F40042 bic r2, r2, #32768 + 4188 0052 5A64 str r2, [r3, #68] + 4189 .L359: +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4190 .loc 1 1648 5 discriminator 5 view .LVU1181 +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4191 .loc 1 1651 5 discriminator 5 view .LVU1182 +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4192 .loc 1 1651 5 discriminator 5 view .LVU1183 + 4193 0054 2368 ldr r3, [r4] + 4194 0056 196A ldr r1, [r3, #32] + 4195 0058 41F21112 movw r2, #4369 + ARM GAS /tmp/cc9HXhVl.s page 159 + + + 4196 005c 1142 tst r1, r2 + 4197 005e 08D1 bne .L360 +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4198 .loc 1 1651 5 discriminator 1 view .LVU1184 + 4199 0060 196A ldr r1, [r3, #32] + 4200 0062 44F24442 movw r2, #17476 + 4201 0066 1142 tst r1, r2 + 4202 0068 03D1 bne .L360 +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4203 .loc 1 1651 5 discriminator 3 view .LVU1185 + 4204 006a 1A68 ldr r2, [r3] + 4205 006c 22F00102 bic r2, r2, #1 + 4206 0070 1A60 str r2, [r3] + 4207 .L360: +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4208 .loc 1 1651 5 discriminator 5 view .LVU1186 +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4209 .loc 1 1654 5 discriminator 5 view .LVU1187 + 4210 0072 FDB9 cbnz r5, .L361 +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4211 .loc 1 1654 5 is_stmt 0 discriminator 1 view .LVU1188 + 4212 0074 0123 movs r3, #1 + 4213 0076 84F84430 strb r3, [r4, #68] + 4214 007a 0020 movs r0, #0 + 4215 007c 2EE0 b .L352 + 4216 .LVL268: + 4217 .L356: +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + 4218 .loc 1 1616 7 is_stmt 1 view .LVU1189 + 4219 007e 0268 ldr r2, [r0] + 4220 0080 D368 ldr r3, [r2, #12] + 4221 0082 23F48063 bic r3, r3, #1024 + 4222 0086 D360 str r3, [r2, #12] +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4223 .loc 1 1617 7 view .LVU1190 +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4224 .loc 1 1617 13 is_stmt 0 view .LVU1191 + 4225 0088 806A ldr r0, [r0, #40] + 4226 .LVL269: +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4227 .loc 1 1617 13 view .LVU1192 + 4228 008a FFF7FEFF bl HAL_DMA_Abort_IT + 4229 .LVL270: +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4230 .loc 1 1618 7 is_stmt 1 view .LVU1193 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4231 .loc 1 1642 3 view .LVU1194 + 4232 008e CDE7 b .L358 + 4233 .LVL271: + 4234 .L355: +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + 4235 .loc 1 1624 7 view .LVU1195 + 4236 0090 0268 ldr r2, [r0] + 4237 0092 D368 ldr r3, [r2, #12] + 4238 0094 23F40063 bic r3, r3, #2048 + 4239 0098 D360 str r3, [r2, #12] +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + ARM GAS /tmp/cc9HXhVl.s page 160 + + + 4240 .loc 1 1625 7 view .LVU1196 +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4241 .loc 1 1625 13 is_stmt 0 view .LVU1197 + 4242 009a C06A ldr r0, [r0, #44] + 4243 .LVL272: +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4244 .loc 1 1625 13 view .LVU1198 + 4245 009c FFF7FEFF bl HAL_DMA_Abort_IT + 4246 .LVL273: +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4247 .loc 1 1626 7 is_stmt 1 view .LVU1199 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4248 .loc 1 1642 3 view .LVU1200 + 4249 00a0 C4E7 b .L358 + 4250 .LVL274: + 4251 .L353: +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + 4252 .loc 1 1632 7 view .LVU1201 + 4253 00a2 0268 ldr r2, [r0] + 4254 00a4 D368 ldr r3, [r2, #12] + 4255 00a6 23F48053 bic r3, r3, #4096 + 4256 00aa D360 str r3, [r2, #12] +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4257 .loc 1 1633 7 view .LVU1202 +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4258 .loc 1 1633 13 is_stmt 0 view .LVU1203 + 4259 00ac 006B ldr r0, [r0, #48] + 4260 .LVL275: +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 4261 .loc 1 1633 13 view .LVU1204 + 4262 00ae FFF7FEFF bl HAL_DMA_Abort_IT + 4263 .LVL276: +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4264 .loc 1 1634 7 is_stmt 1 view .LVU1205 +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4265 .loc 1 1642 3 view .LVU1206 + 4266 00b2 BBE7 b .L358 + 4267 .L361: +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4268 .loc 1 1654 5 is_stmt 0 discriminator 2 view .LVU1207 + 4269 00b4 042D cmp r5, #4 + 4270 00b6 06D0 beq .L366 +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4271 .loc 1 1654 5 discriminator 4 view .LVU1208 + 4272 00b8 082D cmp r5, #8 + 4273 00ba 09D0 beq .L367 +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4274 .loc 1 1654 5 discriminator 7 view .LVU1209 + 4275 00bc 0123 movs r3, #1 + 4276 00be 84F84730 strb r3, [r4, #71] + 4277 00c2 0020 movs r0, #0 + 4278 00c4 0AE0 b .L352 + 4279 .L366: +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4280 .loc 1 1654 5 discriminator 3 view .LVU1210 + 4281 00c6 0123 movs r3, #1 + 4282 00c8 84F84530 strb r3, [r4, #69] + ARM GAS /tmp/cc9HXhVl.s page 161 + + + 4283 00cc 0020 movs r0, #0 + 4284 00ce 05E0 b .L352 + 4285 .L367: +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4286 .loc 1 1654 5 discriminator 6 view .LVU1211 + 4287 00d0 0123 movs r3, #1 + 4288 00d2 84F84630 strb r3, [r4, #70] + 4289 00d6 0020 movs r0, #0 + 4290 00d8 00E0 b .L352 + 4291 .LVL277: + 4292 .L364: +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4293 .loc 1 1603 3 view .LVU1212 + 4294 00da 0120 movs r0, #1 + 4295 .LVL278: + 4296 .L352: +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4297 .loc 1 1658 3 is_stmt 1 view .LVU1213 +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4298 .loc 1 1659 1 is_stmt 0 view .LVU1214 + 4299 00dc 38BD pop {r3, r4, r5, pc} +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4300 .loc 1 1659 1 view .LVU1215 + 4301 .cfi_endproc + 4302 .LFE350: + 4304 .section .text.HAL_TIMEx_OnePulseN_Start,"ax",%progbits + 4305 .align 1 + 4306 .global HAL_TIMEx_OnePulseN_Start + 4307 .syntax unified + 4308 .thumb + 4309 .thumb_func + 4311 HAL_TIMEx_OnePulseN_Start: + 4312 .LVL279: + 4313 .LFB351: +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4314 .loc 1 1696 1 is_stmt 1 view -0 + 4315 .cfi_startproc + 4316 @ args = 0, pretend = 0, frame = 0 + 4317 @ frame_needed = 0, uses_anonymous_args = 0 +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4318 .loc 1 1696 1 is_stmt 0 view .LVU1217 + 4319 0000 38B5 push {r3, r4, r5, lr} + 4320 .LCFI26: + 4321 .cfi_def_cfa_offset 16 + 4322 .cfi_offset 3, -16 + 4323 .cfi_offset 4, -12 + 4324 .cfi_offset 5, -8 + 4325 .cfi_offset 14, -4 + 4326 0002 0446 mov r4, r0 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 4327 .loc 1 1697 3 is_stmt 1 view .LVU1218 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 4328 .loc 1 1697 77 is_stmt 0 view .LVU1219 + 4329 0004 8E46 mov lr, r1 + 4330 0006 C1B9 cbnz r1, .L371 + 4331 0008 0425 movs r5, #4 + 4332 .L369: + ARM GAS /tmp/cc9HXhVl.s page 162 + + + 4333 .LVL280: +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 4334 .loc 1 1698 3 is_stmt 1 discriminator 4 view .LVU1220 +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 4335 .loc 1 1698 31 is_stmt 0 discriminator 4 view .LVU1221 + 4336 000a 94F83E00 ldrb r0, [r4, #62] @ zero_extendqisi2 + 4337 .LVL281: +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 4338 .loc 1 1698 31 discriminator 4 view .LVU1222 + 4339 000e C0B2 uxtb r0, r0 + 4340 .LVL282: +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4341 .loc 1 1699 3 is_stmt 1 discriminator 4 view .LVU1223 +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4342 .loc 1 1699 31 is_stmt 0 discriminator 4 view .LVU1224 + 4343 0010 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 4344 0014 DBB2 uxtb r3, r3 + 4345 .LVL283: +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4346 .loc 1 1700 3 is_stmt 1 discriminator 4 view .LVU1225 +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4347 .loc 1 1700 31 is_stmt 0 discriminator 4 view .LVU1226 + 4348 0016 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 4349 001a D2B2 uxtb r2, r2 + 4350 .LVL284: +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4351 .loc 1 1701 3 is_stmt 1 discriminator 4 view .LVU1227 +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4352 .loc 1 1701 31 is_stmt 0 discriminator 4 view .LVU1228 + 4353 001c 94F845C0 ldrb ip, [r4, #69] @ zero_extendqisi2 + 4354 0020 5FFA8CFC uxtb ip, ip + 4355 .LVL285: +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4356 .loc 1 1704 3 is_stmt 1 discriminator 4 view .LVU1229 +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 4357 .loc 1 1707 3 discriminator 4 view .LVU1230 +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 4358 .loc 1 1707 6 is_stmt 0 discriminator 4 view .LVU1231 + 4359 0024 0128 cmp r0, #1 + 4360 0026 24D1 bne .L372 +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 4361 .loc 1 1708 7 view .LVU1232 + 4362 0028 012B cmp r3, #1 + 4363 002a 23D1 bne .L370 +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 4364 .loc 1 1709 7 view .LVU1233 + 4365 002c 012A cmp r2, #1 + 4366 002e 22D1 bne .L373 +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4367 .loc 1 1710 7 view .LVU1234 + 4368 0030 BCF1010F cmp ip, #1 + 4369 0034 03D0 beq .L376 +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4370 .loc 1 1712 12 view .LVU1235 + 4371 0036 1046 mov r0, r2 + 4372 .LVL286: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 163 + + + 4373 .loc 1 1712 12 view .LVU1236 + 4374 0038 1CE0 b .L370 + 4375 .LVL287: + 4376 .L371: +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 4377 .loc 1 1697 77 view .LVU1237 + 4378 003a 0025 movs r5, #0 + 4379 003c E5E7 b .L369 + 4380 .LVL288: + 4381 .L376: +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 4382 .loc 1 1716 3 is_stmt 1 view .LVU1238 + 4383 003e 0223 movs r3, #2 + 4384 .LVL289: +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 4385 .loc 1 1716 3 is_stmt 0 view .LVU1239 + 4386 0040 84F83E30 strb r3, [r4, #62] +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 4387 .loc 1 1717 3 is_stmt 1 view .LVU1240 + 4388 0044 84F83F30 strb r3, [r4, #63] +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 4389 .loc 1 1718 3 view .LVU1241 + 4390 0048 84F84430 strb r3, [r4, #68] +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4391 .loc 1 1719 3 view .LVU1242 + 4392 004c 84F84530 strb r3, [r4, #69] +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + 4393 .loc 1 1722 3 view .LVU1243 + 4394 0050 0422 movs r2, #4 + 4395 .LVL290: +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + 4396 .loc 1 1722 3 is_stmt 0 view .LVU1244 + 4397 0052 7146 mov r1, lr + 4398 .LVL291: +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + 4399 .loc 1 1722 3 view .LVU1245 + 4400 0054 2068 ldr r0, [r4] + 4401 .LVL292: +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + 4402 .loc 1 1722 3 view .LVU1246 + 4403 0056 FFF7FEFF bl TIM_CCxNChannelCmd + 4404 .LVL293: +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4405 .loc 1 1723 3 is_stmt 1 view .LVU1247 + 4406 005a 0122 movs r2, #1 + 4407 005c 2946 mov r1, r5 + 4408 005e 2068 ldr r0, [r4] + 4409 0060 FFF7FEFF bl TIM_CCxChannelCmd + 4410 .LVL294: +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4411 .loc 1 1726 3 view .LVU1248 + 4412 0064 2268 ldr r2, [r4] + 4413 0066 536C ldr r3, [r2, #68] + 4414 0068 43F40043 orr r3, r3, #32768 + 4415 006c 5364 str r3, [r2, #68] +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4416 .loc 1 1729 3 view .LVU1249 + ARM GAS /tmp/cc9HXhVl.s page 164 + + +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4417 .loc 1 1729 10 is_stmt 0 view .LVU1250 + 4418 006e 0020 movs r0, #0 + 4419 0070 00E0 b .L370 + 4420 .LVL295: + 4421 .L372: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4422 .loc 1 1712 12 view .LVU1251 + 4423 0072 0120 movs r0, #1 + 4424 .LVL296: + 4425 .L370: +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4426 .loc 1 1730 1 view .LVU1252 + 4427 0074 38BD pop {r3, r4, r5, pc} + 4428 .LVL297: + 4429 .L373: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4430 .loc 1 1712 12 view .LVU1253 + 4431 0076 1846 mov r0, r3 + 4432 .LVL298: +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4433 .loc 1 1712 12 view .LVU1254 + 4434 0078 FCE7 b .L370 + 4435 .cfi_endproc + 4436 .LFE351: + 4438 .section .text.HAL_TIMEx_OnePulseN_Stop,"ax",%progbits + 4439 .align 1 + 4440 .global HAL_TIMEx_OnePulseN_Stop + 4441 .syntax unified + 4442 .thumb + 4443 .thumb_func + 4445 HAL_TIMEx_OnePulseN_Stop: + 4446 .LVL299: + 4447 .LFB352: +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4448 .loc 1 1745 1 is_stmt 1 view -0 + 4449 .cfi_startproc + 4450 @ args = 0, pretend = 0, frame = 0 + 4451 @ frame_needed = 0, uses_anonymous_args = 0 +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4452 .loc 1 1745 1 is_stmt 0 view .LVU1256 + 4453 0000 38B5 push {r3, r4, r5, lr} + 4454 .LCFI27: + 4455 .cfi_def_cfa_offset 16 + 4456 .cfi_offset 3, -16 + 4457 .cfi_offset 4, -12 + 4458 .cfi_offset 5, -8 + 4459 .cfi_offset 14, -4 + 4460 0002 0446 mov r4, r0 +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4461 .loc 1 1746 3 is_stmt 1 view .LVU1257 +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4462 .loc 1 1746 77 is_stmt 0 view .LVU1258 + 4463 0004 0029 cmp r1, #0 + 4464 0006 32D1 bne .L381 + 4465 0008 0425 movs r5, #4 + 4466 .L378: + ARM GAS /tmp/cc9HXhVl.s page 165 + + + 4467 .LVL300: +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4468 .loc 1 1749 3 is_stmt 1 discriminator 4 view .LVU1259 +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); + 4469 .loc 1 1752 3 discriminator 4 view .LVU1260 + 4470 000a 0022 movs r2, #0 + 4471 000c 2068 ldr r0, [r4] + 4472 .LVL301: +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); + 4473 .loc 1 1752 3 is_stmt 0 discriminator 4 view .LVU1261 + 4474 000e FFF7FEFF bl TIM_CCxNChannelCmd + 4475 .LVL302: +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4476 .loc 1 1753 3 is_stmt 1 discriminator 4 view .LVU1262 + 4477 0012 0022 movs r2, #0 + 4478 0014 2946 mov r1, r5 + 4479 0016 2068 ldr r0, [r4] + 4480 0018 FFF7FEFF bl TIM_CCxChannelCmd + 4481 .LVL303: +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4482 .loc 1 1756 3 discriminator 4 view .LVU1263 +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4483 .loc 1 1756 3 discriminator 4 view .LVU1264 + 4484 001c 2368 ldr r3, [r4] + 4485 001e 196A ldr r1, [r3, #32] + 4486 0020 41F21112 movw r2, #4369 + 4487 0024 1142 tst r1, r2 + 4488 0026 08D1 bne .L379 +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4489 .loc 1 1756 3 discriminator 1 view .LVU1265 + 4490 0028 196A ldr r1, [r3, #32] + 4491 002a 44F24442 movw r2, #17476 + 4492 002e 1142 tst r1, r2 + 4493 0030 03D1 bne .L379 +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4494 .loc 1 1756 3 discriminator 3 view .LVU1266 + 4495 0032 5A6C ldr r2, [r3, #68] + 4496 0034 22F40042 bic r2, r2, #32768 + 4497 0038 5A64 str r2, [r3, #68] + 4498 .L379: +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4499 .loc 1 1756 3 discriminator 5 view .LVU1267 +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4500 .loc 1 1759 3 discriminator 5 view .LVU1268 +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4501 .loc 1 1759 3 discriminator 5 view .LVU1269 + 4502 003a 2368 ldr r3, [r4] + 4503 003c 196A ldr r1, [r3, #32] + 4504 003e 41F21112 movw r2, #4369 + 4505 0042 1142 tst r1, r2 + 4506 0044 08D1 bne .L380 +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4507 .loc 1 1759 3 discriminator 1 view .LVU1270 + 4508 0046 196A ldr r1, [r3, #32] + 4509 0048 44F24442 movw r2, #17476 + 4510 004c 1142 tst r1, r2 + 4511 004e 03D1 bne .L380 + ARM GAS /tmp/cc9HXhVl.s page 166 + + +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4512 .loc 1 1759 3 discriminator 3 view .LVU1271 + 4513 0050 1A68 ldr r2, [r3] + 4514 0052 22F00102 bic r2, r2, #1 + 4515 0056 1A60 str r2, [r3] + 4516 .L380: +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4517 .loc 1 1759 3 discriminator 5 view .LVU1272 +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 4518 .loc 1 1762 3 discriminator 5 view .LVU1273 + 4519 0058 0123 movs r3, #1 + 4520 005a 84F83E30 strb r3, [r4, #62] +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 4521 .loc 1 1763 3 discriminator 5 view .LVU1274 + 4522 005e 84F83F30 strb r3, [r4, #63] +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 4523 .loc 1 1764 3 discriminator 5 view .LVU1275 + 4524 0062 84F84430 strb r3, [r4, #68] +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4525 .loc 1 1765 3 discriminator 5 view .LVU1276 + 4526 0066 84F84530 strb r3, [r4, #69] +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4527 .loc 1 1768 3 discriminator 5 view .LVU1277 +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4528 .loc 1 1769 1 is_stmt 0 discriminator 5 view .LVU1278 + 4529 006a 0020 movs r0, #0 + 4530 006c 38BD pop {r3, r4, r5, pc} + 4531 .LVL304: + 4532 .L381: +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4533 .loc 1 1746 77 view .LVU1279 + 4534 006e 0025 movs r5, #0 + 4535 0070 CBE7 b .L378 + 4536 .cfi_endproc + 4537 .LFE352: + 4539 .section .text.HAL_TIMEx_OnePulseN_Start_IT,"ax",%progbits + 4540 .align 1 + 4541 .global HAL_TIMEx_OnePulseN_Start_IT + 4542 .syntax unified + 4543 .thumb + 4544 .thumb_func + 4546 HAL_TIMEx_OnePulseN_Start_IT: + 4547 .LVL305: + 4548 .LFB353: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4549 .loc 1 1784 1 is_stmt 1 view -0 + 4550 .cfi_startproc + 4551 @ args = 0, pretend = 0, frame = 0 + 4552 @ frame_needed = 0, uses_anonymous_args = 0 +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4553 .loc 1 1784 1 is_stmt 0 view .LVU1281 + 4554 0000 38B5 push {r3, r4, r5, lr} + 4555 .LCFI28: + 4556 .cfi_def_cfa_offset 16 + 4557 .cfi_offset 3, -16 + 4558 .cfi_offset 4, -12 + 4559 .cfi_offset 5, -8 + ARM GAS /tmp/cc9HXhVl.s page 167 + + + 4560 .cfi_offset 14, -4 + 4561 0002 0446 mov r4, r0 +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 4562 .loc 1 1785 3 is_stmt 1 view .LVU1282 +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 4563 .loc 1 1785 77 is_stmt 0 view .LVU1283 + 4564 0004 8E46 mov lr, r1 + 4565 0006 C1B9 cbnz r1, .L386 + 4566 0008 0425 movs r5, #4 + 4567 .L384: + 4568 .LVL306: +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 4569 .loc 1 1786 3 is_stmt 1 discriminator 4 view .LVU1284 +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 4570 .loc 1 1786 31 is_stmt 0 discriminator 4 view .LVU1285 + 4571 000a 94F83E00 ldrb r0, [r4, #62] @ zero_extendqisi2 + 4572 .LVL307: +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_2_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_2); + 4573 .loc 1 1786 31 discriminator 4 view .LVU1286 + 4574 000e C0B2 uxtb r0, r0 + 4575 .LVL308: +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4576 .loc 1 1787 3 is_stmt 1 discriminator 4 view .LVU1287 +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_1_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4577 .loc 1 1787 31 is_stmt 0 discriminator 4 view .LVU1288 + 4578 0010 94F83F30 ldrb r3, [r4, #63] @ zero_extendqisi2 + 4579 0014 DBB2 uxtb r3, r3 + 4580 .LVL309: +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4581 .loc 1 1788 3 is_stmt 1 discriminator 4 view .LVU1289 +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef complementary_channel_2_state = TIM_CHANNEL_N_STATE_GET(htim, TIM_CHA + 4582 .loc 1 1788 31 is_stmt 0 discriminator 4 view .LVU1290 + 4583 0016 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2 + 4584 001a D2B2 uxtb r2, r2 + 4585 .LVL310: +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4586 .loc 1 1789 3 is_stmt 1 discriminator 4 view .LVU1291 +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4587 .loc 1 1789 31 is_stmt 0 discriminator 4 view .LVU1292 + 4588 001c 94F845C0 ldrb ip, [r4, #69] @ zero_extendqisi2 + 4589 0020 5FFA8CFC uxtb ip, ip + 4590 .LVL311: +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4591 .loc 1 1792 3 is_stmt 1 discriminator 4 view .LVU1293 +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 4592 .loc 1 1795 3 discriminator 4 view .LVU1294 +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) + 4593 .loc 1 1795 6 is_stmt 0 discriminator 4 view .LVU1295 + 4594 0024 0128 cmp r0, #1 + 4595 0026 2ED1 bne .L387 +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) + 4596 .loc 1 1796 7 view .LVU1296 + 4597 0028 012B cmp r3, #1 + 4598 002a 2DD1 bne .L385 +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** || (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) + 4599 .loc 1 1797 7 view .LVU1297 + 4600 002c 012A cmp r2, #1 + ARM GAS /tmp/cc9HXhVl.s page 168 + + + 4601 002e 2CD1 bne .L388 +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 4602 .loc 1 1798 7 view .LVU1298 + 4603 0030 BCF1010F cmp ip, #1 + 4604 0034 03D0 beq .L391 +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4605 .loc 1 1800 12 view .LVU1299 + 4606 0036 1046 mov r0, r2 + 4607 .LVL312: +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4608 .loc 1 1800 12 view .LVU1300 + 4609 0038 26E0 b .L385 + 4610 .LVL313: + 4611 .L386: +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1); + 4612 .loc 1 1785 77 view .LVU1301 + 4613 003a 0025 movs r5, #0 + 4614 003c E5E7 b .L384 + 4615 .LVL314: + 4616 .L391: +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 4617 .loc 1 1804 3 is_stmt 1 view .LVU1302 + 4618 003e 0223 movs r3, #2 + 4619 .LVL315: +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 4620 .loc 1 1804 3 is_stmt 0 view .LVU1303 + 4621 0040 84F83E30 strb r3, [r4, #62] +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY); + 4622 .loc 1 1805 3 is_stmt 1 view .LVU1304 + 4623 0044 84F83F30 strb r3, [r4, #63] +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY); + 4624 .loc 1 1806 3 view .LVU1305 + 4625 0048 84F84430 strb r3, [r4, #68] +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4626 .loc 1 1807 3 view .LVU1306 + 4627 004c 84F84530 strb r3, [r4, #69] +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4628 .loc 1 1810 3 view .LVU1307 + 4629 0050 2268 ldr r2, [r4] + 4630 .LVL316: +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4631 .loc 1 1810 3 is_stmt 0 view .LVU1308 + 4632 0052 D368 ldr r3, [r2, #12] + 4633 0054 43F00203 orr r3, r3, #2 + 4634 0058 D360 str r3, [r2, #12] +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4635 .loc 1 1813 3 is_stmt 1 view .LVU1309 + 4636 005a 2268 ldr r2, [r4] + 4637 005c D368 ldr r3, [r2, #12] + 4638 005e 43F00403 orr r3, r3, #4 + 4639 0062 D360 str r3, [r2, #12] +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + 4640 .loc 1 1816 3 view .LVU1310 + 4641 0064 0422 movs r2, #4 + 4642 0066 7146 mov r1, lr + 4643 .LVL317: +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + ARM GAS /tmp/cc9HXhVl.s page 169 + + + 4644 .loc 1 1816 3 is_stmt 0 view .LVU1311 + 4645 0068 2068 ldr r0, [r4] + 4646 .LVL318: +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_ENABLE); + 4647 .loc 1 1816 3 view .LVU1312 + 4648 006a FFF7FEFF bl TIM_CCxNChannelCmd + 4649 .LVL319: +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4650 .loc 1 1817 3 is_stmt 1 view .LVU1313 + 4651 006e 0122 movs r2, #1 + 4652 0070 2946 mov r1, r5 + 4653 0072 2068 ldr r0, [r4] + 4654 0074 FFF7FEFF bl TIM_CCxChannelCmd + 4655 .LVL320: +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4656 .loc 1 1820 3 view .LVU1314 + 4657 0078 2268 ldr r2, [r4] + 4658 007a 536C ldr r3, [r2, #68] + 4659 007c 43F40043 orr r3, r3, #32768 + 4660 0080 5364 str r3, [r2, #68] +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4661 .loc 1 1823 3 view .LVU1315 +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4662 .loc 1 1823 10 is_stmt 0 view .LVU1316 + 4663 0082 0020 movs r0, #0 + 4664 0084 00E0 b .L385 + 4665 .LVL321: + 4666 .L387: +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4667 .loc 1 1800 12 view .LVU1317 + 4668 0086 0120 movs r0, #1 + 4669 .LVL322: + 4670 .L385: +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4671 .loc 1 1824 1 view .LVU1318 + 4672 0088 38BD pop {r3, r4, r5, pc} + 4673 .LVL323: + 4674 .L388: +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4675 .loc 1 1800 12 view .LVU1319 + 4676 008a 1846 mov r0, r3 + 4677 .LVL324: +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4678 .loc 1 1800 12 view .LVU1320 + 4679 008c FCE7 b .L385 + 4680 .cfi_endproc + 4681 .LFE353: + 4683 .section .text.HAL_TIMEx_OnePulseN_Stop_IT,"ax",%progbits + 4684 .align 1 + 4685 .global HAL_TIMEx_OnePulseN_Stop_IT + 4686 .syntax unified + 4687 .thumb + 4688 .thumb_func + 4690 HAL_TIMEx_OnePulseN_Stop_IT: + 4691 .LVL325: + 4692 .LFB354: +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + ARM GAS /tmp/cc9HXhVl.s page 170 + + + 4693 .loc 1 1839 1 is_stmt 1 view -0 + 4694 .cfi_startproc + 4695 @ args = 0, pretend = 0, frame = 0 + 4696 @ frame_needed = 0, uses_anonymous_args = 0 +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t input_channel = (OutputChannel == TIM_CHANNEL_1) ? TIM_CHANNEL_2 : TIM_CHANNEL_1; + 4697 .loc 1 1839 1 is_stmt 0 view .LVU1322 + 4698 0000 38B5 push {r3, r4, r5, lr} + 4699 .LCFI29: + 4700 .cfi_def_cfa_offset 16 + 4701 .cfi_offset 3, -16 + 4702 .cfi_offset 4, -12 + 4703 .cfi_offset 5, -8 + 4704 .cfi_offset 14, -4 + 4705 0002 0446 mov r4, r0 +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4706 .loc 1 1840 3 is_stmt 1 view .LVU1323 +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4707 .loc 1 1840 77 is_stmt 0 view .LVU1324 + 4708 0004 0029 cmp r1, #0 + 4709 0006 3CD1 bne .L396 + 4710 0008 0425 movs r5, #4 + 4711 .L393: + 4712 .LVL326: +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4713 .loc 1 1843 3 is_stmt 1 discriminator 4 view .LVU1325 +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4714 .loc 1 1846 3 discriminator 4 view .LVU1326 + 4715 000a 2268 ldr r2, [r4] + 4716 000c D368 ldr r3, [r2, #12] + 4717 000e 23F00203 bic r3, r3, #2 + 4718 0012 D360 str r3, [r2, #12] +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4719 .loc 1 1849 3 discriminator 4 view .LVU1327 + 4720 0014 2268 ldr r2, [r4] + 4721 0016 D368 ldr r3, [r2, #12] + 4722 0018 23F00403 bic r3, r3, #4 + 4723 001c D360 str r3, [r2, #12] +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); + 4724 .loc 1 1852 3 discriminator 4 view .LVU1328 + 4725 001e 0022 movs r2, #0 + 4726 0020 2068 ldr r0, [r4] + 4727 .LVL327: +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CCxChannelCmd(htim->Instance, input_channel, TIM_CCx_DISABLE); + 4728 .loc 1 1852 3 is_stmt 0 discriminator 4 view .LVU1329 + 4729 0022 FFF7FEFF bl TIM_CCxNChannelCmd + 4730 .LVL328: +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4731 .loc 1 1853 3 is_stmt 1 discriminator 4 view .LVU1330 + 4732 0026 0022 movs r2, #0 + 4733 0028 2946 mov r1, r5 + 4734 002a 2068 ldr r0, [r4] + 4735 002c FFF7FEFF bl TIM_CCxChannelCmd + 4736 .LVL329: +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4737 .loc 1 1856 3 discriminator 4 view .LVU1331 +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4738 .loc 1 1856 3 discriminator 4 view .LVU1332 + ARM GAS /tmp/cc9HXhVl.s page 171 + + + 4739 0030 2368 ldr r3, [r4] + 4740 0032 196A ldr r1, [r3, #32] + 4741 0034 41F21112 movw r2, #4369 + 4742 0038 1142 tst r1, r2 + 4743 003a 08D1 bne .L394 +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4744 .loc 1 1856 3 discriminator 1 view .LVU1333 + 4745 003c 196A ldr r1, [r3, #32] + 4746 003e 44F24442 movw r2, #17476 + 4747 0042 1142 tst r1, r2 + 4748 0044 03D1 bne .L394 +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4749 .loc 1 1856 3 discriminator 3 view .LVU1334 + 4750 0046 5A6C ldr r2, [r3, #68] + 4751 0048 22F40042 bic r2, r2, #32768 + 4752 004c 5A64 str r2, [r3, #68] + 4753 .L394: +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4754 .loc 1 1856 3 discriminator 5 view .LVU1335 +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4755 .loc 1 1859 3 discriminator 5 view .LVU1336 +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4756 .loc 1 1859 3 discriminator 5 view .LVU1337 + 4757 004e 2368 ldr r3, [r4] + 4758 0050 196A ldr r1, [r3, #32] + 4759 0052 41F21112 movw r2, #4369 + 4760 0056 1142 tst r1, r2 + 4761 0058 08D1 bne .L395 +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4762 .loc 1 1859 3 discriminator 1 view .LVU1338 + 4763 005a 196A ldr r1, [r3, #32] + 4764 005c 44F24442 movw r2, #17476 + 4765 0060 1142 tst r1, r2 + 4766 0062 03D1 bne .L395 +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4767 .loc 1 1859 3 discriminator 3 view .LVU1339 + 4768 0064 1A68 ldr r2, [r3] + 4769 0066 22F00102 bic r2, r2, #1 + 4770 006a 1A60 str r2, [r3] + 4771 .L395: +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4772 .loc 1 1859 3 discriminator 5 view .LVU1340 +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 4773 .loc 1 1862 3 discriminator 5 view .LVU1341 + 4774 006c 0123 movs r3, #1 + 4775 006e 84F83E30 strb r3, [r4, #62] +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + 4776 .loc 1 1863 3 discriminator 5 view .LVU1342 + 4777 0072 84F83F30 strb r3, [r4, #63] +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + 4778 .loc 1 1864 3 discriminator 5 view .LVU1343 + 4779 0076 84F84430 strb r3, [r4, #68] +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4780 .loc 1 1865 3 discriminator 5 view .LVU1344 + 4781 007a 84F84530 strb r3, [r4, #69] +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4782 .loc 1 1868 3 discriminator 5 view .LVU1345 + ARM GAS /tmp/cc9HXhVl.s page 172 + + +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4783 .loc 1 1869 1 is_stmt 0 discriminator 5 view .LVU1346 + 4784 007e 0020 movs r0, #0 + 4785 0080 38BD pop {r3, r4, r5, pc} + 4786 .LVL330: + 4787 .L396: +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4788 .loc 1 1840 77 view .LVU1347 + 4789 0082 0025 movs r5, #0 + 4790 0084 C1E7 b .L393 + 4791 .cfi_endproc + 4792 .LFE354: + 4794 .section .text.HAL_TIMEx_ConfigCommutEvent,"ax",%progbits + 4795 .align 1 + 4796 .global HAL_TIMEx_ConfigCommutEvent + 4797 .syntax unified + 4798 .thumb + 4799 .thumb_func + 4801 HAL_TIMEx_ConfigCommutEvent: + 4802 .LVL331: + 4803 .LFB355: +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 4804 .loc 1 1934 1 is_stmt 1 view -0 + 4805 .cfi_startproc + 4806 @ args = 0, pretend = 0, frame = 0 + 4807 @ frame_needed = 0, uses_anonymous_args = 0 + 4808 @ link register save eliminated. +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 4809 .loc 1 1934 1 is_stmt 0 view .LVU1349 + 4810 0000 0346 mov r3, r0 +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); + 4811 .loc 1 1936 3 is_stmt 1 view .LVU1350 +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4812 .loc 1 1937 3 view .LVU1351 +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4813 .loc 1 1939 3 view .LVU1352 +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4814 .loc 1 1939 3 view .LVU1353 + 4815 0002 90F83C00 ldrb r0, [r0, #60] @ zero_extendqisi2 + 4816 .LVL332: +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4817 .loc 1 1939 3 is_stmt 0 view .LVU1354 + 4818 0006 0128 cmp r0, #1 + 4819 0008 46D0 beq .L404 +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 4820 .loc 1 1934 1 discriminator 2 view .LVU1355 + 4821 000a 10B4 push {r4} + 4822 .LCFI30: + 4823 .cfi_def_cfa_offset 4 + 4824 .cfi_offset 4, -4 +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4825 .loc 1 1939 3 is_stmt 1 discriminator 2 view .LVU1356 + 4826 000c 0120 movs r0, #1 + 4827 000e 83F83C00 strb r0, [r3, #60] +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4828 .loc 1 1939 3 discriminator 2 view .LVU1357 +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + ARM GAS /tmp/cc9HXhVl.s page 173 + + + 4829 .loc 1 1961 3 discriminator 2 view .LVU1358 +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + 4830 .loc 1 1961 6 is_stmt 0 discriminator 2 view .LVU1359 + 4831 0012 51B1 cbz r1, .L400 + 4832 0014 2148 ldr r0, .L409 + 4833 0016 8142 cmp r1, r0 + 4834 0018 07D0 beq .L400 + 4835 001a 33D8 bhi .L401 + 4836 001c 3029 cmp r1, #48 + 4837 001e 04D0 beq .L400 + 4838 0020 2CD8 bhi .L402 + 4839 0022 1029 cmp r1, #16 + 4840 0024 01D0 beq .L400 + 4841 0026 2029 cmp r1, #32 + 4842 0028 0AD1 bne .L403 + 4843 .L400: +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 4844 .loc 1 1969 5 is_stmt 1 view .LVU1360 +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 4845 .loc 1 1969 9 is_stmt 0 view .LVU1361 + 4846 002a 1C68 ldr r4, [r3] +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 4847 .loc 1 1969 19 view .LVU1362 + 4848 002c A068 ldr r0, [r4, #8] +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 4849 .loc 1 1969 26 view .LVU1363 + 4850 002e 20F44010 bic r0, r0, #3145728 + 4851 0032 20F07000 bic r0, r0, #112 + 4852 0036 A060 str r0, [r4, #8] +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4853 .loc 1 1970 5 is_stmt 1 view .LVU1364 +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4854 .loc 1 1970 9 is_stmt 0 view .LVU1365 + 4855 0038 1C68 ldr r4, [r3] +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4856 .loc 1 1970 19 view .LVU1366 + 4857 003a A068 ldr r0, [r4, #8] +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4858 .loc 1 1970 26 view .LVU1367 + 4859 003c 0143 orrs r1, r1, r0 + 4860 .LVL333: +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4861 .loc 1 1970 26 view .LVU1368 + 4862 003e A160 str r1, [r4, #8] + 4863 .L403: +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 4864 .loc 1 1974 3 is_stmt 1 view .LVU1369 +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 4865 .loc 1 1974 7 is_stmt 0 view .LVU1370 + 4866 0040 1868 ldr r0, [r3] +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 4867 .loc 1 1974 17 view .LVU1371 + 4868 0042 4168 ldr r1, [r0, #4] +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 4869 .loc 1 1974 23 view .LVU1372 + 4870 0044 41F00101 orr r1, r1, #1 + 4871 0048 4160 str r1, [r0, #4] + ARM GAS /tmp/cc9HXhVl.s page 174 + + +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 4872 .loc 1 1976 3 is_stmt 1 view .LVU1373 +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 4873 .loc 1 1976 7 is_stmt 0 view .LVU1374 + 4874 004a 1868 ldr r0, [r3] +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 4875 .loc 1 1976 17 view .LVU1375 + 4876 004c 4168 ldr r1, [r0, #4] +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 4877 .loc 1 1976 23 view .LVU1376 + 4878 004e 21F00401 bic r1, r1, #4 + 4879 0052 4160 str r1, [r0, #4] +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4880 .loc 1 1977 3 is_stmt 1 view .LVU1377 +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4881 .loc 1 1977 7 is_stmt 0 view .LVU1378 + 4882 0054 1868 ldr r0, [r3] +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4883 .loc 1 1977 17 view .LVU1379 + 4884 0056 4168 ldr r1, [r0, #4] +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4885 .loc 1 1977 23 view .LVU1380 + 4886 0058 0A43 orrs r2, r2, r1 + 4887 .LVL334: +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4888 .loc 1 1977 23 view .LVU1381 + 4889 005a 4260 str r2, [r0, #4] +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4890 .loc 1 1980 3 is_stmt 1 view .LVU1382 + 4891 005c 1968 ldr r1, [r3] + 4892 005e CA68 ldr r2, [r1, #12] + 4893 0060 22F02002 bic r2, r2, #32 + 4894 0064 CA60 str r2, [r1, #12] +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4895 .loc 1 1983 3 view .LVU1383 + 4896 0066 1968 ldr r1, [r3] + 4897 0068 CA68 ldr r2, [r1, #12] + 4898 006a 22F40052 bic r2, r2, #8192 + 4899 006e CA60 str r2, [r1, #12] +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4900 .loc 1 1985 3 view .LVU1384 +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4901 .loc 1 1985 3 view .LVU1385 + 4902 0070 0020 movs r0, #0 + 4903 0072 83F83C00 strb r0, [r3, #60] +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4904 .loc 1 1985 3 view .LVU1386 +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 4905 .loc 1 1987 3 view .LVU1387 +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4906 .loc 1 1988 1 is_stmt 0 view .LVU1388 + 4907 0076 5DF8044B ldr r4, [sp], #4 + 4908 .LCFI31: + 4909 .cfi_remember_state + 4910 .cfi_restore 4 + 4911 .cfi_def_cfa_offset 0 + 4912 007a 7047 bx lr + ARM GAS /tmp/cc9HXhVl.s page 175 + + + 4913 .LVL335: + 4914 .L402: + 4915 .LCFI32: + 4916 .cfi_restore_state +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4917 .loc 1 1988 1 view .LVU1389 + 4918 007c B1F1101F cmp r1, #1048592 + 4919 0080 DED1 bne .L403 + 4920 0082 D2E7 b .L400 + 4921 .L401: +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4922 .loc 1 1988 1 view .LVU1390 + 4923 0084 0648 ldr r0, .L409+4 + 4924 0086 8142 cmp r1, r0 + 4925 0088 CFD0 beq .L400 + 4926 008a 3030 adds r0, r0, #48 + 4927 008c 8142 cmp r1, r0 + 4928 008e CCD0 beq .L400 + 4929 0090 4038 subs r0, r0, #64 + 4930 0092 8142 cmp r1, r0 + 4931 0094 D4D1 bne .L403 + 4932 0096 C8E7 b .L400 + 4933 .L404: + 4934 .LCFI33: + 4935 .cfi_def_cfa_offset 0 + 4936 .cfi_restore 4 +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4937 .loc 1 1939 3 view .LVU1391 + 4938 0098 0220 movs r0, #2 +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4939 .loc 1 1988 1 view .LVU1392 + 4940 009a 7047 bx lr + 4941 .L410: + 4942 .align 2 + 4943 .L409: + 4944 009c 20001000 .word 1048608 + 4945 00a0 40001000 .word 1048640 + 4946 .cfi_endproc + 4947 .LFE355: + 4949 .section .text.HAL_TIMEx_ConfigCommutEvent_IT,"ax",%progbits + 4950 .align 1 + 4951 .global HAL_TIMEx_ConfigCommutEvent_IT + 4952 .syntax unified + 4953 .thumb + 4954 .thumb_func + 4956 HAL_TIMEx_ConfigCommutEvent_IT: + 4957 .LVL336: + 4958 .LFB356: +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 4959 .loc 1 2025 1 is_stmt 1 view -0 + 4960 .cfi_startproc + 4961 @ args = 0, pretend = 0, frame = 0 + 4962 @ frame_needed = 0, uses_anonymous_args = 0 + 4963 @ link register save eliminated. +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 4964 .loc 1 2025 1 is_stmt 0 view .LVU1394 + 4965 0000 0346 mov r3, r0 + ARM GAS /tmp/cc9HXhVl.s page 176 + + +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); + 4966 .loc 1 2027 3 is_stmt 1 view .LVU1395 +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4967 .loc 1 2028 3 view .LVU1396 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4968 .loc 1 2030 3 view .LVU1397 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4969 .loc 1 2030 3 view .LVU1398 + 4970 0002 90F83C00 ldrb r0, [r0, #60] @ zero_extendqisi2 + 4971 .LVL337: +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4972 .loc 1 2030 3 is_stmt 0 view .LVU1399 + 4973 0006 0128 cmp r0, #1 + 4974 0008 46D0 beq .L417 +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 4975 .loc 1 2025 1 discriminator 2 view .LVU1400 + 4976 000a 10B4 push {r4} + 4977 .LCFI34: + 4978 .cfi_def_cfa_offset 4 + 4979 .cfi_offset 4, -4 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4980 .loc 1 2030 3 is_stmt 1 discriminator 2 view .LVU1401 + 4981 000c 0120 movs r0, #1 + 4982 000e 83F83C00 strb r0, [r3, #60] +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 4983 .loc 1 2030 3 discriminator 2 view .LVU1402 +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + 4984 .loc 1 2052 3 discriminator 2 view .LVU1403 +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + 4985 .loc 1 2052 6 is_stmt 0 discriminator 2 view .LVU1404 + 4986 0012 51B1 cbz r1, .L413 + 4987 0014 2148 ldr r0, .L422 + 4988 0016 8142 cmp r1, r0 + 4989 0018 07D0 beq .L413 + 4990 001a 33D8 bhi .L414 + 4991 001c 3029 cmp r1, #48 + 4992 001e 04D0 beq .L413 + 4993 0020 2CD8 bhi .L415 + 4994 0022 1029 cmp r1, #16 + 4995 0024 01D0 beq .L413 + 4996 0026 2029 cmp r1, #32 + 4997 0028 0AD1 bne .L416 + 4998 .L413: +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 4999 .loc 1 2060 5 is_stmt 1 view .LVU1405 +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5000 .loc 1 2060 9 is_stmt 0 view .LVU1406 + 5001 002a 1C68 ldr r4, [r3] +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5002 .loc 1 2060 19 view .LVU1407 + 5003 002c A068 ldr r0, [r4, #8] +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5004 .loc 1 2060 26 view .LVU1408 + 5005 002e 20F44010 bic r0, r0, #3145728 + 5006 0032 20F07000 bic r0, r0, #112 + 5007 0036 A060 str r0, [r4, #8] +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 177 + + + 5008 .loc 1 2061 5 is_stmt 1 view .LVU1409 +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5009 .loc 1 2061 9 is_stmt 0 view .LVU1410 + 5010 0038 1C68 ldr r4, [r3] +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5011 .loc 1 2061 19 view .LVU1411 + 5012 003a A068 ldr r0, [r4, #8] +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5013 .loc 1 2061 26 view .LVU1412 + 5014 003c 0143 orrs r1, r1, r0 + 5015 .LVL338: +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5016 .loc 1 2061 26 view .LVU1413 + 5017 003e A160 str r1, [r4, #8] + 5018 .L416: +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5019 .loc 1 2065 3 is_stmt 1 view .LVU1414 +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5020 .loc 1 2065 7 is_stmt 0 view .LVU1415 + 5021 0040 1868 ldr r0, [r3] +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5022 .loc 1 2065 17 view .LVU1416 + 5023 0042 4168 ldr r1, [r0, #4] +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5024 .loc 1 2065 23 view .LVU1417 + 5025 0044 41F00101 orr r1, r1, #1 + 5026 0048 4160 str r1, [r0, #4] +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5027 .loc 1 2067 3 is_stmt 1 view .LVU1418 +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5028 .loc 1 2067 7 is_stmt 0 view .LVU1419 + 5029 004a 1868 ldr r0, [r3] +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5030 .loc 1 2067 17 view .LVU1420 + 5031 004c 4168 ldr r1, [r0, #4] +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5032 .loc 1 2067 23 view .LVU1421 + 5033 004e 21F00401 bic r1, r1, #4 + 5034 0052 4160 str r1, [r0, #4] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5035 .loc 1 2068 3 is_stmt 1 view .LVU1422 +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5036 .loc 1 2068 7 is_stmt 0 view .LVU1423 + 5037 0054 1868 ldr r0, [r3] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5038 .loc 1 2068 17 view .LVU1424 + 5039 0056 4168 ldr r1, [r0, #4] +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5040 .loc 1 2068 23 view .LVU1425 + 5041 0058 0A43 orrs r2, r2, r1 + 5042 .LVL339: +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5043 .loc 1 2068 23 view .LVU1426 + 5044 005a 4260 str r2, [r0, #4] +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5045 .loc 1 2071 3 is_stmt 1 view .LVU1427 + 5046 005c 1968 ldr r1, [r3] + ARM GAS /tmp/cc9HXhVl.s page 178 + + + 5047 005e CA68 ldr r2, [r1, #12] + 5048 0060 22F40052 bic r2, r2, #8192 + 5049 0064 CA60 str r2, [r1, #12] +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5050 .loc 1 2074 3 view .LVU1428 + 5051 0066 1968 ldr r1, [r3] + 5052 0068 CA68 ldr r2, [r1, #12] + 5053 006a 42F02002 orr r2, r2, #32 + 5054 006e CA60 str r2, [r1, #12] +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5055 .loc 1 2076 3 view .LVU1429 +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5056 .loc 1 2076 3 view .LVU1430 + 5057 0070 0020 movs r0, #0 + 5058 0072 83F83C00 strb r0, [r3, #60] +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5059 .loc 1 2076 3 view .LVU1431 +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5060 .loc 1 2078 3 view .LVU1432 +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5061 .loc 1 2079 1 is_stmt 0 view .LVU1433 + 5062 0076 5DF8044B ldr r4, [sp], #4 + 5063 .LCFI35: + 5064 .cfi_remember_state + 5065 .cfi_restore 4 + 5066 .cfi_def_cfa_offset 0 + 5067 007a 7047 bx lr + 5068 .LVL340: + 5069 .L415: + 5070 .LCFI36: + 5071 .cfi_restore_state +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5072 .loc 1 2079 1 view .LVU1434 + 5073 007c B1F1101F cmp r1, #1048592 + 5074 0080 DED1 bne .L416 + 5075 0082 D2E7 b .L413 + 5076 .L414: +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5077 .loc 1 2079 1 view .LVU1435 + 5078 0084 0648 ldr r0, .L422+4 + 5079 0086 8142 cmp r1, r0 + 5080 0088 CFD0 beq .L413 + 5081 008a 3030 adds r0, r0, #48 + 5082 008c 8142 cmp r1, r0 + 5083 008e CCD0 beq .L413 + 5084 0090 4038 subs r0, r0, #64 + 5085 0092 8142 cmp r1, r0 + 5086 0094 D4D1 bne .L416 + 5087 0096 C8E7 b .L413 + 5088 .L417: + 5089 .LCFI37: + 5090 .cfi_def_cfa_offset 0 + 5091 .cfi_restore 4 +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5092 .loc 1 2030 3 view .LVU1436 + 5093 0098 0220 movs r0, #2 +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 179 + + + 5094 .loc 1 2079 1 view .LVU1437 + 5095 009a 7047 bx lr + 5096 .L423: + 5097 .align 2 + 5098 .L422: + 5099 009c 20001000 .word 1048608 + 5100 00a0 40001000 .word 1048640 + 5101 .cfi_endproc + 5102 .LFE356: + 5104 .section .text.HAL_TIMEx_ConfigCommutEvent_DMA,"ax",%progbits + 5105 .align 1 + 5106 .global HAL_TIMEx_ConfigCommutEvent_DMA + 5107 .syntax unified + 5108 .thumb + 5109 .thumb_func + 5111 HAL_TIMEx_ConfigCommutEvent_DMA: + 5112 .LVL341: + 5113 .LFB357: +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 5114 .loc 1 2117 1 is_stmt 1 view -0 + 5115 .cfi_startproc + 5116 @ args = 0, pretend = 0, frame = 0 + 5117 @ frame_needed = 0, uses_anonymous_args = 0 + 5118 @ link register save eliminated. +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 5119 .loc 1 2117 1 is_stmt 0 view .LVU1439 + 5120 0000 0346 mov r3, r0 +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(htim->Instance, InputTrigger)); + 5121 .loc 1 2119 3 is_stmt 1 view .LVU1440 +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5122 .loc 1 2120 3 view .LVU1441 +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5123 .loc 1 2122 3 view .LVU1442 +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5124 .loc 1 2122 3 view .LVU1443 + 5125 0002 90F83C00 ldrb r0, [r0, #60] @ zero_extendqisi2 + 5126 .LVL342: +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5127 .loc 1 2122 3 is_stmt 0 view .LVU1444 + 5128 0006 0128 cmp r0, #1 + 5129 0008 4FD0 beq .L430 +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 5130 .loc 1 2117 1 discriminator 2 view .LVU1445 + 5131 000a 10B4 push {r4} + 5132 .LCFI38: + 5133 .cfi_def_cfa_offset 4 + 5134 .cfi_offset 4, -4 +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5135 .loc 1 2122 3 is_stmt 1 discriminator 2 view .LVU1446 + 5136 000c 0120 movs r0, #1 + 5137 000e 83F83C00 strb r0, [r3, #60] +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5138 .loc 1 2122 3 discriminator 2 view .LVU1447 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + 5139 .loc 1 2144 3 discriminator 2 view .LVU1448 +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3) || + 5140 .loc 1 2144 6 is_stmt 0 discriminator 2 view .LVU1449 + ARM GAS /tmp/cc9HXhVl.s page 180 + + + 5141 0012 51B1 cbz r1, .L426 + 5142 0014 2648 ldr r0, .L435 + 5143 0016 8142 cmp r1, r0 + 5144 0018 07D0 beq .L426 + 5145 001a 3CD8 bhi .L427 + 5146 001c 3029 cmp r1, #48 + 5147 001e 04D0 beq .L426 + 5148 0020 35D8 bhi .L428 + 5149 0022 1029 cmp r1, #16 + 5150 0024 01D0 beq .L426 + 5151 0026 2029 cmp r1, #32 + 5152 0028 0AD1 bne .L429 + 5153 .L426: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5154 .loc 1 2152 5 is_stmt 1 view .LVU1450 +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5155 .loc 1 2152 9 is_stmt 0 view .LVU1451 + 5156 002a 1C68 ldr r4, [r3] +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5157 .loc 1 2152 19 view .LVU1452 + 5158 002c A068 ldr r0, [r4, #8] +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->SMCR |= InputTrigger; + 5159 .loc 1 2152 26 view .LVU1453 + 5160 002e 20F44010 bic r0, r0, #3145728 + 5161 0032 20F07000 bic r0, r0, #112 + 5162 0036 A060 str r0, [r4, #8] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5163 .loc 1 2153 5 is_stmt 1 view .LVU1454 +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5164 .loc 1 2153 9 is_stmt 0 view .LVU1455 + 5165 0038 1C68 ldr r4, [r3] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5166 .loc 1 2153 19 view .LVU1456 + 5167 003a A068 ldr r0, [r4, #8] +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5168 .loc 1 2153 26 view .LVU1457 + 5169 003c 0143 orrs r1, r1, r0 + 5170 .LVL343: +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5171 .loc 1 2153 26 view .LVU1458 + 5172 003e A160 str r1, [r4, #8] + 5173 .L429: +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5174 .loc 1 2157 3 is_stmt 1 view .LVU1459 +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5175 .loc 1 2157 7 is_stmt 0 view .LVU1460 + 5176 0040 1868 ldr r0, [r3] +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5177 .loc 1 2157 17 view .LVU1461 + 5178 0042 4168 ldr r1, [r0, #4] +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the Commutation event source */ + 5179 .loc 1 2157 23 view .LVU1462 + 5180 0044 41F00101 orr r1, r1, #1 + 5181 0048 4160 str r1, [r0, #4] +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5182 .loc 1 2159 3 is_stmt 1 view .LVU1463 +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + ARM GAS /tmp/cc9HXhVl.s page 181 + + + 5183 .loc 1 2159 7 is_stmt 0 view .LVU1464 + 5184 004a 1868 ldr r0, [r3] +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5185 .loc 1 2159 17 view .LVU1465 + 5186 004c 4168 ldr r1, [r0, #4] +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->Instance->CR2 |= CommutationSource; + 5187 .loc 1 2159 23 view .LVU1466 + 5188 004e 21F00401 bic r1, r1, #4 + 5189 0052 4160 str r1, [r0, #4] +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5190 .loc 1 2160 3 is_stmt 1 view .LVU1467 +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5191 .loc 1 2160 7 is_stmt 0 view .LVU1468 + 5192 0054 1868 ldr r0, [r3] +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5193 .loc 1 2160 17 view .LVU1469 + 5194 0056 4168 ldr r1, [r0, #4] +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5195 .loc 1 2160 23 view .LVU1470 + 5196 0058 0A43 orrs r2, r2, r1 + 5197 .LVL344: +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5198 .loc 1 2160 23 view .LVU1471 + 5199 005a 4260 str r2, [r0, #4] +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 5200 .loc 1 2164 3 is_stmt 1 view .LVU1472 +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 5201 .loc 1 2164 13 is_stmt 0 view .LVU1473 + 5202 005c 5A6B ldr r2, [r3, #52] +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** htim->hdma[TIM_DMA_ID_COMMUTATION]->XferHalfCpltCallback = TIMEx_DMACommutationHalfCplt; + 5203 .loc 1 2164 56 view .LVU1474 + 5204 005e 1549 ldr r1, .L435+4 + 5205 0060 D162 str r1, [r2, #44] +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 5206 .loc 1 2165 3 is_stmt 1 view .LVU1475 +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 5207 .loc 1 2165 13 is_stmt 0 view .LVU1476 + 5208 0062 5A6B ldr r2, [r3, #52] +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the DMA error callback */ + 5209 .loc 1 2165 60 view .LVU1477 + 5210 0064 1449 ldr r1, .L435+8 + 5211 0066 1163 str r1, [r2, #48] +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5212 .loc 1 2167 3 is_stmt 1 view .LVU1478 +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5213 .loc 1 2167 13 is_stmt 0 view .LVU1479 + 5214 0068 5A6B ldr r2, [r3, #52] +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5215 .loc 1 2167 57 view .LVU1480 + 5216 006a 1449 ldr r1, .L435+12 + 5217 006c 5163 str r1, [r2, #52] +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5218 .loc 1 2170 3 is_stmt 1 view .LVU1481 + 5219 006e 1968 ldr r1, [r3] + 5220 0070 CA68 ldr r2, [r1, #12] + 5221 0072 22F02002 bic r2, r2, #32 + 5222 0076 CA60 str r2, [r1, #12] + ARM GAS /tmp/cc9HXhVl.s page 182 + + +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5223 .loc 1 2173 3 view .LVU1482 + 5224 0078 1968 ldr r1, [r3] + 5225 007a CA68 ldr r2, [r1, #12] + 5226 007c 42F40052 orr r2, r2, #8192 + 5227 0080 CA60 str r2, [r1, #12] +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5228 .loc 1 2175 3 view .LVU1483 +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5229 .loc 1 2175 3 view .LVU1484 + 5230 0082 0020 movs r0, #0 + 5231 0084 83F83C00 strb r0, [r3, #60] +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5232 .loc 1 2175 3 view .LVU1485 +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5233 .loc 1 2177 3 view .LVU1486 +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5234 .loc 1 2178 1 is_stmt 0 view .LVU1487 + 5235 0088 5DF8044B ldr r4, [sp], #4 + 5236 .LCFI39: + 5237 .cfi_remember_state + 5238 .cfi_restore 4 + 5239 .cfi_def_cfa_offset 0 + 5240 008c 7047 bx lr + 5241 .LVL345: + 5242 .L428: + 5243 .LCFI40: + 5244 .cfi_restore_state +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5245 .loc 1 2178 1 view .LVU1488 + 5246 008e B1F1101F cmp r1, #1048592 + 5247 0092 D5D1 bne .L429 + 5248 0094 C9E7 b .L426 + 5249 .L427: +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5250 .loc 1 2178 1 view .LVU1489 + 5251 0096 0A48 ldr r0, .L435+16 + 5252 0098 8142 cmp r1, r0 + 5253 009a C6D0 beq .L426 + 5254 009c 3030 adds r0, r0, #48 + 5255 009e 8142 cmp r1, r0 + 5256 00a0 C3D0 beq .L426 + 5257 00a2 4038 subs r0, r0, #64 + 5258 00a4 8142 cmp r1, r0 + 5259 00a6 CBD1 bne .L429 + 5260 00a8 BFE7 b .L426 + 5261 .L430: + 5262 .LCFI41: + 5263 .cfi_def_cfa_offset 0 + 5264 .cfi_restore 4 +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5265 .loc 1 2122 3 view .LVU1490 + 5266 00aa 0220 movs r0, #2 +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5267 .loc 1 2178 1 view .LVU1491 + 5268 00ac 7047 bx lr + 5269 .L436: + ARM GAS /tmp/cc9HXhVl.s page 183 + + + 5270 00ae 00BF .align 2 + 5271 .L435: + 5272 00b0 20001000 .word 1048608 + 5273 00b4 00000000 .word TIMEx_DMACommutationCplt + 5274 00b8 00000000 .word TIMEx_DMACommutationHalfCplt + 5275 00bc 00000000 .word TIM_DMAError + 5276 00c0 40001000 .word 1048640 + 5277 .cfi_endproc + 5278 .LFE357: + 5280 .section .text.HAL_TIMEx_MasterConfigSynchronization,"ax",%progbits + 5281 .align 1 + 5282 .global HAL_TIMEx_MasterConfigSynchronization + 5283 .syntax unified + 5284 .thumb + 5285 .thumb_func + 5287 HAL_TIMEx_MasterConfigSynchronization: + 5288 .LVL346: + 5289 .LFB358: +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpcr2; + 5290 .loc 1 2190 1 is_stmt 1 view -0 + 5291 .cfi_startproc + 5292 @ args = 0, pretend = 0, frame = 0 + 5293 @ frame_needed = 0, uses_anonymous_args = 0 + 5294 @ link register save eliminated. +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpsmcr; + 5295 .loc 1 2191 3 view .LVU1493 +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5296 .loc 1 2192 3 view .LVU1494 +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); + 5297 .loc 1 2195 3 view .LVU1495 +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); + 5298 .loc 1 2196 3 view .LVU1496 +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5299 .loc 1 2197 3 view .LVU1497 +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5300 .loc 1 2200 3 view .LVU1498 +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5301 .loc 1 2200 3 view .LVU1499 + 5302 0000 90F83C20 ldrb r2, [r0, #60] @ zero_extendqisi2 + 5303 0004 012A cmp r2, #1 + 5304 0006 40D0 beq .L443 +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpcr2; + 5305 .loc 1 2190 1 is_stmt 0 discriminator 2 view .LVU1500 + 5306 0008 30B4 push {r4, r5} + 5307 .LCFI42: + 5308 .cfi_def_cfa_offset 8 + 5309 .cfi_offset 4, -8 + 5310 .cfi_offset 5, -4 + 5311 000a 0346 mov r3, r0 +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5312 .loc 1 2200 3 is_stmt 1 discriminator 2 view .LVU1501 + 5313 000c 0122 movs r2, #1 + 5314 000e 80F83C20 strb r2, [r0, #60] +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5315 .loc 1 2200 3 discriminator 2 view .LVU1502 +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5316 .loc 1 2203 3 discriminator 2 view .LVU1503 + ARM GAS /tmp/cc9HXhVl.s page 184 + + +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5317 .loc 1 2203 15 is_stmt 0 discriminator 2 view .LVU1504 + 5318 0012 0222 movs r2, #2 + 5319 0014 80F83D20 strb r2, [r0, #61] +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5320 .loc 1 2206 3 is_stmt 1 discriminator 2 view .LVU1505 +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5321 .loc 1 2206 16 is_stmt 0 discriminator 2 view .LVU1506 + 5322 0018 0068 ldr r0, [r0] + 5323 .LVL347: +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5324 .loc 1 2206 10 discriminator 2 view .LVU1507 + 5325 001a 4268 ldr r2, [r0, #4] + 5326 .LVL348: +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5327 .loc 1 2209 3 is_stmt 1 discriminator 2 view .LVU1508 +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5328 .loc 1 2209 11 is_stmt 0 discriminator 2 view .LVU1509 + 5329 001c 8468 ldr r4, [r0, #8] + 5330 .LVL349: +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5331 .loc 1 2212 3 is_stmt 1 discriminator 2 view .LVU1510 +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5332 .loc 1 2212 6 is_stmt 0 discriminator 2 view .LVU1511 + 5333 001e 1C4D ldr r5, .L448 + 5334 0020 A842 cmp r0, r5 + 5335 0022 03D0 beq .L439 +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5336 .loc 1 2212 7 discriminator 1 view .LVU1512 + 5337 0024 05F50065 add r5, r5, #2048 + 5338 0028 A842 cmp r0, r5 + 5339 002a 03D1 bne .L440 + 5340 .L439: +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5341 .loc 1 2215 5 is_stmt 1 view .LVU1513 +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO2 source*/ + 5342 .loc 1 2218 5 view .LVU1514 +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO2 source*/ + 5343 .loc 1 2218 12 is_stmt 0 view .LVU1515 + 5344 002c 22F47002 bic r2, r2, #15728640 + 5345 .LVL350: +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5346 .loc 1 2220 5 is_stmt 1 view .LVU1516 +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5347 .loc 1 2220 28 is_stmt 0 view .LVU1517 + 5348 0030 4D68 ldr r5, [r1, #4] +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5349 .loc 1 2220 12 view .LVU1518 + 5350 0032 2A43 orrs r2, r2, r5 + 5351 .LVL351: + 5352 .L440: +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO source */ + 5353 .loc 1 2224 3 is_stmt 1 view .LVU1519 +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO source */ + 5354 .loc 1 2224 10 is_stmt 0 view .LVU1520 + 5355 0034 22F00072 bic r2, r2, #33554432 + 5356 .LVL352: + ARM GAS /tmp/cc9HXhVl.s page 185 + + +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Select the TRGO source */ + 5357 .loc 1 2224 10 view .LVU1521 + 5358 0038 22F07002 bic r2, r2, #112 + 5359 .LVL353: +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5360 .loc 1 2226 3 is_stmt 1 view .LVU1522 +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5361 .loc 1 2226 10 is_stmt 0 view .LVU1523 + 5362 003c 0D68 ldr r5, [r1] + 5363 003e 2A43 orrs r2, r2, r5 + 5364 .LVL354: +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5365 .loc 1 2229 3 is_stmt 1 view .LVU1524 +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5366 .loc 1 2229 23 is_stmt 0 view .LVU1525 + 5367 0040 4260 str r2, [r0, #4] +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5368 .loc 1 2231 3 is_stmt 1 view .LVU1526 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5369 .loc 1 2231 7 is_stmt 0 view .LVU1527 + 5370 0042 1A68 ldr r2, [r3] + 5371 .LVL355: +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5372 .loc 1 2231 6 view .LVU1528 + 5373 0044 1248 ldr r0, .L448 + 5374 .LVL356: +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5375 .loc 1 2231 6 view .LVU1529 + 5376 0046 8242 cmp r2, r0 + 5377 0048 12D0 beq .L441 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5378 .loc 1 2231 7 discriminator 1 view .LVU1530 + 5379 004a B2F1804F cmp r2, #1073741824 + 5380 004e 0FD0 beq .L441 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5381 .loc 1 2231 7 discriminator 2 view .LVU1531 + 5382 0050 A0F59430 sub r0, r0, #75776 + 5383 0054 8242 cmp r2, r0 + 5384 0056 0BD0 beq .L441 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5385 .loc 1 2231 7 discriminator 3 view .LVU1532 + 5386 0058 00F58060 add r0, r0, #1024 + 5387 005c 8242 cmp r2, r0 + 5388 005e 07D0 beq .L441 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5389 .loc 1 2231 7 discriminator 4 view .LVU1533 + 5390 0060 00F59630 add r0, r0, #76800 + 5391 0064 8242 cmp r2, r0 + 5392 0066 03D0 beq .L441 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5393 .loc 1 2231 7 discriminator 5 view .LVU1534 + 5394 0068 00F54060 add r0, r0, #3072 + 5395 006c 8242 cmp r2, r0 + 5396 006e 04D1 bne .L442 + 5397 .L441: +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set master mode */ + 5398 .loc 1 2234 5 is_stmt 1 view .LVU1535 + ARM GAS /tmp/cc9HXhVl.s page 186 + + +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set master mode */ + 5399 .loc 1 2234 13 is_stmt 0 view .LVU1536 + 5400 0070 24F08004 bic r4, r4, #128 + 5401 .LVL357: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5402 .loc 1 2236 5 is_stmt 1 view .LVU1537 +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5403 .loc 1 2236 29 is_stmt 0 view .LVU1538 + 5404 0074 8968 ldr r1, [r1, #8] + 5405 .LVL358: +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5406 .loc 1 2236 13 view .LVU1539 + 5407 0076 2143 orrs r1, r1, r4 + 5408 .LVL359: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5409 .loc 1 2239 5 is_stmt 1 view .LVU1540 +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5410 .loc 1 2239 26 is_stmt 0 view .LVU1541 + 5411 0078 9160 str r1, [r2, #8] + 5412 .LVL360: + 5413 .L442: +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5414 .loc 1 2243 3 is_stmt 1 view .LVU1542 +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5415 .loc 1 2243 15 is_stmt 0 view .LVU1543 + 5416 007a 0122 movs r2, #1 + 5417 007c 83F83D20 strb r2, [r3, #61] +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5418 .loc 1 2245 3 is_stmt 1 view .LVU1544 +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5419 .loc 1 2245 3 view .LVU1545 + 5420 0080 0020 movs r0, #0 + 5421 0082 83F83C00 strb r0, [r3, #60] +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5422 .loc 1 2245 3 view .LVU1546 +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5423 .loc 1 2247 3 view .LVU1547 +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5424 .loc 1 2248 1 is_stmt 0 view .LVU1548 + 5425 0086 30BC pop {r4, r5} + 5426 .LCFI43: + 5427 .cfi_restore 5 + 5428 .cfi_restore 4 + 5429 .cfi_def_cfa_offset 0 + 5430 0088 7047 bx lr + 5431 .LVL361: + 5432 .L443: +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5433 .loc 1 2200 3 view .LVU1549 + 5434 008a 0220 movs r0, #2 + 5435 .LVL362: +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5436 .loc 1 2248 1 view .LVU1550 + 5437 008c 7047 bx lr + 5438 .L449: + 5439 008e 00BF .align 2 + 5440 .L448: + ARM GAS /tmp/cc9HXhVl.s page 187 + + + 5441 0090 002C0140 .word 1073818624 + 5442 .cfi_endproc + 5443 .LFE358: + 5445 .section .text.HAL_TIMEx_ConfigBreakDeadTime,"ax",%progbits + 5446 .align 1 + 5447 .global HAL_TIMEx_ConfigBreakDeadTime + 5448 .syntax unified + 5449 .thumb + 5450 .thumb_func + 5452 HAL_TIMEx_ConfigBreakDeadTime: + 5453 .LVL363: + 5454 .LFB359: +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Keep this variable initialized to 0 as it is used to configure BDTR register */ + 5455 .loc 1 2263 1 is_stmt 1 view -0 + 5456 .cfi_startproc + 5457 @ args = 0, pretend = 0, frame = 0 + 5458 @ frame_needed = 0, uses_anonymous_args = 0 + 5459 @ link register save eliminated. +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5460 .loc 1 2265 3 view .LVU1552 +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_OSSR_STATE(sBreakDeadTimeConfig->OffStateRunMode)); + 5461 .loc 1 2268 3 view .LVU1553 +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_OSSI_STATE(sBreakDeadTimeConfig->OffStateIDLEMode)); + 5462 .loc 1 2269 3 view .LVU1554 +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_LOCK_LEVEL(sBreakDeadTimeConfig->LockLevel)); + 5463 .loc 1 2270 3 view .LVU1555 +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_DEADTIME(sBreakDeadTimeConfig->DeadTime)); + 5464 .loc 1 2271 3 view .LVU1556 +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_STATE(sBreakDeadTimeConfig->BreakState)); + 5465 .loc 1 2272 3 view .LVU1557 +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_POLARITY(sBreakDeadTimeConfig->BreakPolarity)); + 5466 .loc 1 2273 3 view .LVU1558 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->BreakFilter)); + 5467 .loc 1 2274 3 view .LVU1559 +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(sBreakDeadTimeConfig->AutomaticOutput)); + 5468 .loc 1 2275 3 view .LVU1560 +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5469 .loc 1 2276 3 view .LVU1561 +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5470 .loc 1 2279 3 view .LVU1562 +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5471 .loc 1 2279 3 view .LVU1563 + 5472 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 5473 0004 012B cmp r3, #1 + 5474 0006 55D0 beq .L457 +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Keep this variable initialized to 0 as it is used to configure BDTR register */ + 5475 .loc 1 2263 1 is_stmt 0 discriminator 2 view .LVU1564 + 5476 0008 10B4 push {r4} + 5477 .LCFI44: + 5478 .cfi_def_cfa_offset 4 + 5479 .cfi_offset 4, -4 + 5480 000a 0246 mov r2, r0 +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5481 .loc 1 2279 3 is_stmt 1 discriminator 2 view .LVU1565 + 5482 000c 0123 movs r3, #1 + 5483 000e 80F83C30 strb r3, [r0, #60] +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 188 + + + 5484 .loc 1 2279 3 discriminator 2 view .LVU1566 +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_LOCK, sBreakDeadTimeConfig->LockLevel); + 5485 .loc 1 2285 3 discriminator 2 view .LVU1567 + 5486 0012 CB68 ldr r3, [r1, #12] + 5487 .LVL364: +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSI, sBreakDeadTimeConfig->OffStateIDLEMode); + 5488 .loc 1 2286 3 discriminator 2 view .LVU1568 + 5489 0014 23F44073 bic r3, r3, #768 + 5490 .LVL365: +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSI, sBreakDeadTimeConfig->OffStateIDLEMode); + 5491 .loc 1 2286 3 is_stmt 0 discriminator 2 view .LVU1569 + 5492 0018 8868 ldr r0, [r1, #8] + 5493 .LVL366: +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSI, sBreakDeadTimeConfig->OffStateIDLEMode); + 5494 .loc 1 2286 3 discriminator 2 view .LVU1570 + 5495 001a 0343 orrs r3, r3, r0 + 5496 .LVL367: +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSR, sBreakDeadTimeConfig->OffStateRunMode); + 5497 .loc 1 2287 3 is_stmt 1 discriminator 2 view .LVU1571 + 5498 001c 23F48063 bic r3, r3, #1024 + 5499 .LVL368: +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSR, sBreakDeadTimeConfig->OffStateRunMode); + 5500 .loc 1 2287 3 is_stmt 0 discriminator 2 view .LVU1572 + 5501 0020 4868 ldr r0, [r1, #4] + 5502 .LVL369: +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_OSSR, sBreakDeadTimeConfig->OffStateRunMode); + 5503 .loc 1 2287 3 discriminator 2 view .LVU1573 + 5504 0022 0343 orrs r3, r3, r0 + 5505 .LVL370: +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKE, sBreakDeadTimeConfig->BreakState); + 5506 .loc 1 2288 3 is_stmt 1 discriminator 2 view .LVU1574 + 5507 0024 23F40063 bic r3, r3, #2048 + 5508 .LVL371: +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKE, sBreakDeadTimeConfig->BreakState); + 5509 .loc 1 2288 3 is_stmt 0 discriminator 2 view .LVU1575 + 5510 0028 0868 ldr r0, [r1] + 5511 .LVL372: +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKE, sBreakDeadTimeConfig->BreakState); + 5512 .loc 1 2288 3 discriminator 2 view .LVU1576 + 5513 002a 0343 orrs r3, r3, r0 + 5514 .LVL373: +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKP, sBreakDeadTimeConfig->BreakPolarity); + 5515 .loc 1 2289 3 is_stmt 1 discriminator 2 view .LVU1577 + 5516 002c 23F48053 bic r3, r3, #4096 + 5517 .LVL374: +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKP, sBreakDeadTimeConfig->BreakPolarity); + 5518 .loc 1 2289 3 is_stmt 0 discriminator 2 view .LVU1578 + 5519 0030 0869 ldr r0, [r1, #16] + 5520 .LVL375: +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKP, sBreakDeadTimeConfig->BreakPolarity); + 5521 .loc 1 2289 3 discriminator 2 view .LVU1579 + 5522 0032 0343 orrs r3, r3, r0 + 5523 .LVL376: +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_AOE, sBreakDeadTimeConfig->AutomaticOutput); + 5524 .loc 1 2290 3 is_stmt 1 discriminator 2 view .LVU1580 + 5525 0034 23F40053 bic r3, r3, #8192 + 5526 .LVL377: + ARM GAS /tmp/cc9HXhVl.s page 189 + + +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_AOE, sBreakDeadTimeConfig->AutomaticOutput); + 5527 .loc 1 2290 3 is_stmt 0 discriminator 2 view .LVU1581 + 5528 0038 4869 ldr r0, [r1, #20] + 5529 .LVL378: +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_AOE, sBreakDeadTimeConfig->AutomaticOutput); + 5530 .loc 1 2290 3 discriminator 2 view .LVU1582 + 5531 003a 0343 orrs r3, r3, r0 + 5532 .LVL379: +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKF, (sBreakDeadTimeConfig->BreakFilter << TIM_BDTR_BKF_Pos)); + 5533 .loc 1 2291 3 is_stmt 1 discriminator 2 view .LVU1583 + 5534 003c 23F48043 bic r3, r3, #16384 + 5535 .LVL380: +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKF, (sBreakDeadTimeConfig->BreakFilter << TIM_BDTR_BKF_Pos)); + 5536 .loc 1 2291 3 is_stmt 0 discriminator 2 view .LVU1584 + 5537 0040 086B ldr r0, [r1, #48] + 5538 .LVL381: +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BKF, (sBreakDeadTimeConfig->BreakFilter << TIM_BDTR_BKF_Pos)); + 5539 .loc 1 2291 3 discriminator 2 view .LVU1585 + 5540 0042 0343 orrs r3, r3, r0 + 5541 .LVL382: +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5542 .loc 1 2292 3 is_stmt 1 discriminator 2 view .LVU1586 + 5543 0044 23F47023 bic r3, r3, #983040 + 5544 .LVL383: +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5545 .loc 1 2292 3 is_stmt 0 discriminator 2 view .LVU1587 + 5546 0048 8869 ldr r0, [r1, #24] + 5547 .LVL384: +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5548 .loc 1 2292 3 discriminator 2 view .LVU1588 + 5549 004a 43EA0043 orr r3, r3, r0, lsl #16 + 5550 .LVL385: +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5551 .loc 1 2294 3 is_stmt 1 discriminator 2 view .LVU1589 +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5552 .loc 1 2294 7 is_stmt 0 discriminator 2 view .LVU1590 + 5553 004e 1068 ldr r0, [r2] +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5554 .loc 1 2294 6 discriminator 2 view .LVU1591 + 5555 0050 194C ldr r4, .L462 + 5556 0052 A042 cmp r0, r4 + 5557 0054 03D0 beq .L452 +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5558 .loc 1 2294 7 discriminator 1 view .LVU1592 + 5559 0056 04F50064 add r4, r4, #2048 + 5560 005a A042 cmp r0, r4 + 5561 005c 03D1 bne .L453 + 5562 .L452: +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5563 .loc 1 2297 5 is_stmt 1 view .LVU1593 +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5564 .loc 1 2300 5 view .LVU1594 + 5565 005e 23F08053 bic r3, r3, #268435456 + 5566 .LVL386: +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5567 .loc 1 2300 5 is_stmt 0 view .LVU1595 + 5568 0062 CC69 ldr r4, [r1, #28] + ARM GAS /tmp/cc9HXhVl.s page 190 + + + 5569 0064 2343 orrs r3, r3, r4 + 5570 .LVL387: + 5571 .L453: +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5572 .loc 1 2303 3 is_stmt 1 view .LVU1596 +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5573 .loc 1 2303 6 is_stmt 0 view .LVU1597 + 5574 0066 144C ldr r4, .L462 + 5575 0068 A042 cmp r0, r4 + 5576 006a 0AD0 beq .L454 +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5577 .loc 1 2303 7 discriminator 1 view .LVU1598 + 5578 006c 04F50064 add r4, r4, #2048 + 5579 0070 A042 cmp r0, r4 + 5580 0072 06D0 beq .L454 + 5581 .LVL388: + 5582 .L455: +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5583 .loc 1 2326 3 is_stmt 1 view .LVU1599 +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5584 .loc 1 2326 24 is_stmt 0 view .LVU1600 + 5585 0074 4364 str r3, [r0, #68] +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5586 .loc 1 2328 3 is_stmt 1 view .LVU1601 +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5587 .loc 1 2328 3 view .LVU1602 + 5588 0076 0020 movs r0, #0 + 5589 0078 82F83C00 strb r0, [r2, #60] +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5590 .loc 1 2328 3 view .LVU1603 +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5591 .loc 1 2330 3 view .LVU1604 +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5592 .loc 1 2331 1 is_stmt 0 view .LVU1605 + 5593 007c 5DF8044B ldr r4, [sp], #4 + 5594 .LCFI45: + 5595 .cfi_remember_state + 5596 .cfi_restore 4 + 5597 .cfi_def_cfa_offset 0 + 5598 0080 7047 bx lr + 5599 .LVL389: + 5600 .L454: + 5601 .LCFI46: + 5602 .cfi_restore_state +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK2_POLARITY(sBreakDeadTimeConfig->Break2Polarity)); + 5603 .loc 1 2306 5 is_stmt 1 view .LVU1606 +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->Break2Filter)); + 5604 .loc 1 2307 5 view .LVU1607 +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5605 .loc 1 2308 5 view .LVU1608 +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2E, sBreakDeadTimeConfig->Break2State); + 5606 .loc 1 2311 5 view .LVU1609 + 5607 0082 23F47003 bic r3, r3, #15728640 + 5608 .LVL390: +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2E, sBreakDeadTimeConfig->Break2State); + 5609 .loc 1 2311 5 is_stmt 0 view .LVU1610 + 5610 0086 8C6A ldr r4, [r1, #40] + ARM GAS /tmp/cc9HXhVl.s page 191 + + + 5611 0088 43EA0453 orr r3, r3, r4, lsl #20 + 5612 .LVL391: +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2P, sBreakDeadTimeConfig->Break2Polarity); + 5613 .loc 1 2312 5 is_stmt 1 view .LVU1611 + 5614 008c 23F08073 bic r3, r3, #16777216 + 5615 .LVL392: +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2P, sBreakDeadTimeConfig->Break2Polarity); + 5616 .loc 1 2312 5 is_stmt 0 view .LVU1612 + 5617 0090 0C6A ldr r4, [r1, #32] +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** MODIFY_REG(tmpbdtr, TIM_BDTR_BK2P, sBreakDeadTimeConfig->Break2Polarity); + 5618 .loc 1 2312 5 view .LVU1613 + 5619 0092 2343 orrs r3, r3, r4 + 5620 .LVL393: +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5621 .loc 1 2313 5 is_stmt 1 view .LVU1614 + 5622 0094 23F00073 bic r3, r3, #33554432 + 5623 .LVL394: +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5624 .loc 1 2313 5 is_stmt 0 view .LVU1615 + 5625 0098 4C6A ldr r4, [r1, #36] + 5626 009a 2343 orrs r3, r3, r4 + 5627 .LVL395: +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5628 .loc 1 2315 5 is_stmt 1 view .LVU1616 +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5629 .loc 1 2315 8 is_stmt 0 view .LVU1617 + 5630 009c 064C ldr r4, .L462 + 5631 009e A042 cmp r0, r4 + 5632 00a0 03D0 beq .L456 +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5633 .loc 1 2315 9 discriminator 1 view .LVU1618 + 5634 00a2 04F50064 add r4, r4, #2048 + 5635 00a6 A042 cmp r0, r4 + 5636 00a8 E4D1 bne .L455 + 5637 .L456: +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5638 .loc 1 2318 7 is_stmt 1 view .LVU1619 +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5639 .loc 1 2321 7 view .LVU1620 + 5640 00aa 23F00053 bic r3, r3, #536870912 + 5641 .LVL396: +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5642 .loc 1 2321 7 is_stmt 0 view .LVU1621 + 5643 00ae C96A ldr r1, [r1, #44] + 5644 .LVL397: +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5645 .loc 1 2321 7 view .LVU1622 + 5646 00b0 0B43 orrs r3, r3, r1 + 5647 .LVL398: +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5648 .loc 1 2321 7 view .LVU1623 + 5649 00b2 DFE7 b .L455 + 5650 .LVL399: + 5651 .L457: + 5652 .LCFI47: + 5653 .cfi_def_cfa_offset 0 + 5654 .cfi_restore 4 + ARM GAS /tmp/cc9HXhVl.s page 192 + + +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5655 .loc 1 2279 3 view .LVU1624 + 5656 00b4 0220 movs r0, #2 + 5657 .LVL400: +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5658 .loc 1 2331 1 view .LVU1625 + 5659 00b6 7047 bx lr + 5660 .L463: + 5661 .align 2 + 5662 .L462: + 5663 00b8 002C0140 .word 1073818624 + 5664 .cfi_endproc + 5665 .LFE359: + 5667 .section .text.HAL_TIMEx_ConfigBreakInput,"ax",%progbits + 5668 .align 1 + 5669 .global HAL_TIMEx_ConfigBreakInput + 5670 .syntax unified + 5671 .thumb + 5672 .thumb_func + 5674 HAL_TIMEx_ConfigBreakInput: + 5675 .LVL401: + 5676 .LFB360: +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 5677 .loc 1 2347 1 is_stmt 1 view -0 + 5678 .cfi_startproc + 5679 @ args = 0, pretend = 0, frame = 0 + 5680 @ frame_needed = 0, uses_anonymous_args = 0 +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 5681 .loc 1 2347 1 is_stmt 0 view .LVU1627 + 5682 0000 0346 mov r3, r0 +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmporx; + 5683 .loc 1 2348 3 is_stmt 1 view .LVU1628 + 5684 .LVL402: +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_enable_mask; + 5685 .loc 1 2349 3 view .LVU1629 +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_polarity_mask; + 5686 .loc 1 2350 3 view .LVU1630 +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_enable_bitpos; + 5687 .loc 1 2351 3 view .LVU1631 +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t bkin_polarity_bitpos; + 5688 .loc 1 2352 3 view .LVU1632 +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5689 .loc 1 2353 3 view .LVU1633 +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUT(BreakInput)); + 5690 .loc 1 2356 3 view .LVU1634 +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUTSOURCE(sBreakInputConfig->Source)); + 5691 .loc 1 2357 3 view .LVU1635 +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUTSOURCE_STATE(sBreakInputConfig->Enable)); + 5692 .loc 1 2358 3 view .LVU1636 +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUTSOURCE_POLARITY(sBreakInputConfig->Polarity)); + 5693 .loc 1 2359 3 view .LVU1637 +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5694 .loc 1 2360 3 view .LVU1638 +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5695 .loc 1 2363 3 view .LVU1639 +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5696 .loc 1 2363 3 view .LVU1640 + ARM GAS /tmp/cc9HXhVl.s page 193 + + + 5697 0002 90F83C00 ldrb r0, [r0, #60] @ zero_extendqisi2 + 5698 .LVL403: +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5699 .loc 1 2363 3 is_stmt 0 view .LVU1641 + 5700 0006 0128 cmp r0, #1 + 5701 0008 5ED0 beq .L476 +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 5702 .loc 1 2347 1 discriminator 2 view .LVU1642 + 5703 000a 70B5 push {r4, r5, r6, lr} + 5704 .LCFI48: + 5705 .cfi_def_cfa_offset 16 + 5706 .cfi_offset 4, -16 + 5707 .cfi_offset 5, -12 + 5708 .cfi_offset 6, -8 + 5709 .cfi_offset 14, -4 +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5710 .loc 1 2363 3 is_stmt 1 discriminator 2 view .LVU1643 + 5711 000c 0120 movs r0, #1 + 5712 000e 83F83C00 strb r0, [r3, #60] +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5713 .loc 1 2363 3 discriminator 2 view .LVU1644 +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5714 .loc 1 2365 3 discriminator 2 view .LVU1645 +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5715 .loc 1 2365 28 is_stmt 0 discriminator 2 view .LVU1646 + 5716 0012 1568 ldr r5, [r2] +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5717 .loc 1 2365 3 discriminator 2 view .LVU1647 + 5718 0014 681E subs r0, r5, #1 + 5719 0016 0F28 cmp r0, #15 + 5720 0018 29D8 bhi .L466 + 5721 001a DFE800F0 tbb [pc, r0] + 5722 .L468: + 5723 001e 08 .byte (.L472-.L468)/2 + 5724 001f 2D .byte (.L477-.L468)/2 + 5725 0020 28 .byte (.L466-.L468)/2 + 5726 0021 0E .byte (.L470-.L468)/2 + 5727 0022 28 .byte (.L466-.L468)/2 + 5728 0023 28 .byte (.L466-.L468)/2 + 5729 0024 28 .byte (.L466-.L468)/2 + 5730 0025 1C .byte (.L469-.L468)/2 + 5731 0026 28 .byte (.L466-.L468)/2 + 5732 0027 28 .byte (.L466-.L468)/2 + 5733 0028 28 .byte (.L466-.L468)/2 + 5734 0029 28 .byte (.L466-.L468)/2 + 5735 002a 28 .byte (.L466-.L468)/2 + 5736 002b 28 .byte (.L466-.L468)/2 + 5737 002c 28 .byte (.L466-.L468)/2 + 5738 002d 22 .byte (.L467-.L468)/2 + 5739 .p2align 1 + 5740 .L472: +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5741 .loc 1 2365 3 view .LVU1648 + 5742 002e 0920 movs r0, #9 + 5743 0030 4FF0000E mov lr, #0 + 5744 0034 4FF4007C mov ip, #512 + 5745 0038 04E0 b .L471 + ARM GAS /tmp/cc9HXhVl.s page 194 + + + 5746 .L470: +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP2E_Pos; + 5747 .loc 1 2385 7 is_stmt 1 view .LVU1649 + 5748 .LVL404: +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP2P; + 5749 .loc 1 2386 7 view .LVU1650 +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP2P_Pos; + 5750 .loc 1 2387 7 view .LVU1651 +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5751 .loc 1 2388 7 view .LVU1652 +2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5752 .loc 1 2389 7 view .LVU1653 +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5753 .loc 1 2388 28 is_stmt 0 view .LVU1654 + 5754 003a 0B20 movs r0, #11 +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP2P; + 5755 .loc 1 2386 26 view .LVU1655 + 5756 003c 4FF0020E mov lr, #2 +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP2P_Pos; + 5757 .loc 1 2387 26 view .LVU1656 + 5758 0040 4FF4006C mov ip, #2048 + 5759 .LVL405: + 5760 .L471: +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 5761 .loc 1 2451 3 is_stmt 1 view .LVU1657 + 5762 0044 0129 cmp r1, #1 + 5763 0046 1DD0 beq .L473 + 5764 0048 0229 cmp r1, #2 + 5765 004a 2CD0 beq .L474 + 5766 004c 0120 movs r0, #1 + 5767 .LVL406: + 5768 .L475: +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5769 .loc 1 2492 3 view .LVU1658 +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5770 .loc 1 2492 3 view .LVU1659 + 5771 004e 0022 movs r2, #0 + 5772 0050 83F83C20 strb r2, [r3, #60] +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5773 .loc 1 2492 3 view .LVU1660 +2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5774 .loc 1 2494 3 view .LVU1661 +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5775 .loc 1 2495 1 is_stmt 0 view .LVU1662 + 5776 0054 70BD pop {r4, r5, r6, pc} + 5777 .LVL407: + 5778 .L469: +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP3E_Pos; + 5779 .loc 1 2393 7 is_stmt 1 view .LVU1663 +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP3P; + 5780 .loc 1 2394 7 view .LVU1664 +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP3P_Pos; + 5781 .loc 1 2395 7 view .LVU1665 +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5782 .loc 1 2396 7 view .LVU1666 +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5783 .loc 1 2397 7 view .LVU1667 + ARM GAS /tmp/cc9HXhVl.s page 195 + + +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5784 .loc 1 2396 28 is_stmt 0 view .LVU1668 + 5785 0056 0C20 movs r0, #12 +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP3P; + 5786 .loc 1 2394 26 view .LVU1669 + 5787 0058 4FF0030E mov lr, #3 +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP3P_Pos; + 5788 .loc 1 2395 26 view .LVU1670 + 5789 005c 4FF4805C mov ip, #4096 +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5790 .loc 1 2397 7 view .LVU1671 + 5791 0060 F0E7 b .L471 + 5792 .LVL408: + 5793 .L467: +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = TIM1_AF1_BKCMP4E_Pos; + 5794 .loc 1 2401 7 is_stmt 1 view .LVU1672 +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP4P; + 5795 .loc 1 2402 7 view .LVU1673 +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP4P_Pos; + 5796 .loc 1 2403 7 view .LVU1674 +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5797 .loc 1 2404 7 view .LVU1675 +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5798 .loc 1 2405 7 view .LVU1676 +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5799 .loc 1 2404 28 is_stmt 0 view .LVU1677 + 5800 0062 0D20 movs r0, #13 +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP4P; + 5801 .loc 1 2402 26 view .LVU1678 + 5802 0064 4FF0040E mov lr, #4 +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP4P_Pos; + 5803 .loc 1 2403 26 view .LVU1679 + 5804 0068 4FF4005C mov ip, #8192 +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5805 .loc 1 2405 7 view .LVU1680 + 5806 006c EAE7 b .L471 + 5807 .LVL409: + 5808 .L466: +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = 0U; + 5809 .loc 1 2443 7 is_stmt 1 view .LVU1681 +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = 0U; + 5810 .loc 1 2444 7 view .LVU1682 +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = 0U; + 5811 .loc 1 2445 7 view .LVU1683 +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5812 .loc 1 2446 7 view .LVU1684 +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5813 .loc 1 2447 7 view .LVU1685 +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5814 .loc 1 2446 28 is_stmt 0 view .LVU1686 + 5815 006e 0020 movs r0, #0 +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = 0U; + 5816 .loc 1 2445 26 view .LVU1687 + 5817 0070 8646 mov lr, r0 +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_enable_bitpos = 0U; + 5818 .loc 1 2444 26 view .LVU1688 + 5819 0072 8446 mov ip, r0 + ARM GAS /tmp/cc9HXhVl.s page 196 + + +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = 0U; + 5820 .loc 1 2443 24 view .LVU1689 + 5821 0074 0546 mov r5, r0 +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5822 .loc 1 2447 7 view .LVU1690 + 5823 0076 E5E7 b .L471 + 5824 .LVL410: + 5825 .L477: +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5826 .loc 1 2380 28 view .LVU1691 + 5827 0078 0A20 movs r0, #10 +2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_mask = TIM1_AF1_BKCMP1P; + 5828 .loc 1 2378 26 view .LVU1692 + 5829 007a 4FF0010E mov lr, #1 +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** bkin_polarity_bitpos = TIM1_AF1_BKCMP1P_Pos; + 5830 .loc 1 2379 26 view .LVU1693 + 5831 007e 4FF4806C mov ip, #1024 + 5832 0082 DFE7 b .L471 + 5833 .LVL411: + 5834 .L473: +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5835 .loc 1 2456 7 is_stmt 1 view .LVU1694 +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5836 .loc 1 2456 20 is_stmt 0 view .LVU1695 + 5837 0084 1C68 ldr r4, [r3] +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5838 .loc 1 2456 14 view .LVU1696 + 5839 0086 266E ldr r6, [r4, #96] + 5840 .LVL412: +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Enable << bkin_enable_bitpos) & bkin_enable_mask; + 5841 .loc 1 2459 7 is_stmt 1 view .LVU1697 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5842 .loc 1 2460 7 view .LVU1698 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5843 .loc 1 2460 35 is_stmt 0 view .LVU1699 + 5844 0088 5168 ldr r1, [r2, #4] + 5845 .LVL413: +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5846 .loc 1 2460 44 view .LVU1700 + 5847 008a 01FA0EF1 lsl r1, r1, lr + 5848 008e 7140 eors r1, r1, r6 + 5849 0090 2940 ands r1, r1, r5 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5850 .loc 1 2460 14 view .LVU1701 + 5851 0092 7140 eors r1, r1, r6 + 5852 .LVL414: +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Polarity << bkin_polarity_bitpos) & bkin_polarity_mask; + 5853 .loc 1 2463 7 is_stmt 1 view .LVU1702 +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5854 .loc 1 2464 7 view .LVU1703 +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5855 .loc 1 2464 35 is_stmt 0 view .LVU1704 + 5856 0094 9268 ldr r2, [r2, #8] + 5857 .LVL415: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5858 .loc 1 2464 46 view .LVU1705 + 5859 0096 8240 lsls r2, r2, r0 + ARM GAS /tmp/cc9HXhVl.s page 197 + + + 5860 0098 4A40 eors r2, r2, r1 + 5861 009a 02EA0C02 and r2, r2, ip +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5862 .loc 1 2464 14 view .LVU1706 + 5863 009e 4A40 eors r2, r2, r1 + 5864 .LVL416: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5865 .loc 1 2467 7 is_stmt 1 view .LVU1707 +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5866 .loc 1 2467 27 is_stmt 0 view .LVU1708 + 5867 00a0 2266 str r2, [r4, #96] +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5868 .loc 1 2468 7 is_stmt 1 view .LVU1709 +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmporx; + 5869 .loc 1 2348 21 is_stmt 0 view .LVU1710 + 5870 00a2 0020 movs r0, #0 + 5871 .LVL417: +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5872 .loc 1 2468 7 view .LVU1711 + 5873 00a4 D3E7 b .L475 + 5874 .LVL418: + 5875 .L474: +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5876 .loc 1 2473 7 is_stmt 1 view .LVU1712 +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5877 .loc 1 2473 20 is_stmt 0 view .LVU1713 + 5878 00a6 1C68 ldr r4, [r3] +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5879 .loc 1 2473 14 view .LVU1714 + 5880 00a8 666E ldr r6, [r4, #100] + 5881 .LVL419: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Enable << bkin_enable_bitpos) & bkin_enable_mask; + 5882 .loc 1 2476 7 is_stmt 1 view .LVU1715 +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5883 .loc 1 2477 7 view .LVU1716 +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5884 .loc 1 2477 35 is_stmt 0 view .LVU1717 + 5885 00aa 5168 ldr r1, [r2, #4] + 5886 .LVL420: +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5887 .loc 1 2477 44 view .LVU1718 + 5888 00ac 01FA0EF1 lsl r1, r1, lr + 5889 00b0 7140 eors r1, r1, r6 + 5890 00b2 2940 ands r1, r1, r5 +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5891 .loc 1 2477 14 view .LVU1719 + 5892 00b4 7140 eors r1, r1, r6 + 5893 .LVL421: +2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmporx |= (sBreakInputConfig->Polarity << bkin_polarity_bitpos) & bkin_polarity_mask; + 5894 .loc 1 2480 7 is_stmt 1 view .LVU1720 +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5895 .loc 1 2481 7 view .LVU1721 +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5896 .loc 1 2481 35 is_stmt 0 view .LVU1722 + 5897 00b6 9268 ldr r2, [r2, #8] + 5898 .LVL422: +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 198 + + + 5899 .loc 1 2481 46 view .LVU1723 + 5900 00b8 8240 lsls r2, r2, r0 + 5901 00ba 4A40 eors r2, r2, r1 + 5902 00bc 02EA0C02 and r2, r2, ip +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5903 .loc 1 2481 14 view .LVU1724 + 5904 00c0 4A40 eors r2, r2, r1 + 5905 .LVL423: +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5906 .loc 1 2484 7 is_stmt 1 view .LVU1725 +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 5907 .loc 1 2484 27 is_stmt 0 view .LVU1726 + 5908 00c2 6266 str r2, [r4, #100] +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5909 .loc 1 2485 7 is_stmt 1 view .LVU1727 +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmporx; + 5910 .loc 1 2348 21 is_stmt 0 view .LVU1728 + 5911 00c4 0020 movs r0, #0 + 5912 .LVL424: +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5913 .loc 1 2485 7 view .LVU1729 + 5914 00c6 C2E7 b .L475 + 5915 .LVL425: + 5916 .L476: + 5917 .LCFI49: + 5918 .cfi_def_cfa_offset 0 + 5919 .cfi_restore 4 + 5920 .cfi_restore 5 + 5921 .cfi_restore 6 + 5922 .cfi_restore 14 +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5923 .loc 1 2363 3 view .LVU1730 + 5924 00c8 0220 movs r0, #2 +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5925 .loc 1 2495 1 view .LVU1731 + 5926 00ca 7047 bx lr + 5927 .cfi_endproc + 5928 .LFE360: + 5930 .section .text.HAL_TIMEx_RemapConfig,"ax",%progbits + 5931 .align 1 + 5932 .global HAL_TIMEx_RemapConfig + 5933 .syntax unified + 5934 .thumb + 5935 .thumb_func + 5937 HAL_TIMEx_RemapConfig: + 5938 .LVL426: + 5939 .LFB361: +2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check parameters */ + 5940 .loc 1 2608 1 is_stmt 1 view -0 + 5941 .cfi_startproc + 5942 @ args = 0, pretend = 0, frame = 0 + 5943 @ frame_needed = 0, uses_anonymous_args = 0 + 5944 @ link register save eliminated. +2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_REMAP(Remap)); + 5945 .loc 1 2610 3 view .LVU1733 +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5946 .loc 1 2611 3 view .LVU1734 + ARM GAS /tmp/cc9HXhVl.s page 199 + + +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5947 .loc 1 2613 3 view .LVU1735 +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5948 .loc 1 2613 3 view .LVU1736 + 5949 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 5950 0004 012B cmp r3, #1 + 5951 0006 0DD0 beq .L484 +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5952 .loc 1 2613 3 discriminator 2 view .LVU1737 + 5953 0008 0123 movs r3, #1 + 5954 000a 80F83C30 strb r3, [r0, #60] +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5955 .loc 1 2613 3 discriminator 2 view .LVU1738 +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5956 .loc 1 2615 3 discriminator 2 view .LVU1739 + 5957 000e 0268 ldr r2, [r0] + 5958 0010 136E ldr r3, [r2, #96] + 5959 0012 23F47033 bic r3, r3, #245760 + 5960 0016 1943 orrs r1, r1, r3 + 5961 .LVL427: +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5962 .loc 1 2615 3 is_stmt 0 discriminator 2 view .LVU1740 + 5963 0018 1166 str r1, [r2, #96] +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5964 .loc 1 2617 3 is_stmt 1 discriminator 2 view .LVU1741 +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5965 .loc 1 2617 3 discriminator 2 view .LVU1742 + 5966 001a 0023 movs r3, #0 + 5967 001c 80F83C30 strb r3, [r0, #60] +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5968 .loc 1 2617 3 discriminator 2 view .LVU1743 +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5969 .loc 1 2619 3 discriminator 2 view .LVU1744 +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5970 .loc 1 2619 10 is_stmt 0 discriminator 2 view .LVU1745 + 5971 0020 1846 mov r0, r3 + 5972 .LVL428: +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 5973 .loc 1 2619 10 discriminator 2 view .LVU1746 + 5974 0022 7047 bx lr + 5975 .LVL429: + 5976 .L484: +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5977 .loc 1 2613 3 view .LVU1747 + 5978 0024 0220 movs r0, #2 + 5979 .LVL430: +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 5980 .loc 1 2620 1 view .LVU1748 + 5981 0026 7047 bx lr + 5982 .cfi_endproc + 5983 .LFE361: + 5985 .section .text.HAL_TIMEx_TISelection,"ax",%progbits + 5986 .align 1 + 5987 .global HAL_TIMEx_TISelection + 5988 .syntax unified + 5989 .thumb + 5990 .thumb_func + ARM GAS /tmp/cc9HXhVl.s page 200 + + + 5992 HAL_TIMEx_TISelection: + 5993 .LVL431: + 5994 .LFB362: +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 5995 .loc 1 2782 1 is_stmt 1 view -0 + 5996 .cfi_startproc + 5997 @ args = 0, pretend = 0, frame = 0 + 5998 @ frame_needed = 0, uses_anonymous_args = 0 + 5999 @ link register save eliminated. +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 6000 .loc 1 2782 1 is_stmt 0 view .LVU1750 + 6001 0000 0346 mov r3, r0 +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6002 .loc 1 2783 3 is_stmt 1 view .LVU1751 + 6003 .LVL432: +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_TISEL(TISelection)); + 6004 .loc 1 2786 3 view .LVU1752 +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6005 .loc 1 2787 3 view .LVU1753 +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6006 .loc 1 2789 3 view .LVU1754 +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6007 .loc 1 2789 3 view .LVU1755 + 6008 0002 90F83C00 ldrb r0, [r0, #60] @ zero_extendqisi2 + 6009 .LVL433: +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6010 .loc 1 2789 3 is_stmt 0 view .LVU1756 + 6011 0006 0128 cmp r0, #1 + 6012 0008 44D0 beq .L495 +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6013 .loc 1 2789 3 is_stmt 1 discriminator 2 view .LVU1757 + 6014 000a 0120 movs r0, #1 + 6015 000c 83F83C00 strb r0, [r3, #60] +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6016 .loc 1 2789 3 discriminator 2 view .LVU1758 +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6017 .loc 1 2791 3 discriminator 2 view .LVU1759 + 6018 0010 0C2A cmp r2, #12 + 6019 0012 3AD8 bhi .L496 + 6020 0014 DFE802F0 tbb [pc, r2] + 6021 .L489: + 6022 0018 07 .byte (.L492-.L489)/2 + 6023 0019 39 .byte (.L496-.L489)/2 + 6024 001a 39 .byte (.L496-.L489)/2 + 6025 001b 39 .byte (.L496-.L489)/2 + 6026 001c 21 .byte (.L491-.L489)/2 + 6027 001d 39 .byte (.L496-.L489)/2 + 6028 001e 39 .byte (.L496-.L489)/2 + 6029 001f 39 .byte (.L496-.L489)/2 + 6030 0020 29 .byte (.L490-.L489)/2 + 6031 0021 39 .byte (.L496-.L489)/2 + 6032 0022 39 .byte (.L496-.L489)/2 + 6033 0023 39 .byte (.L496-.L489)/2 + 6034 0024 31 .byte (.L488-.L489)/2 + 6035 0025 00 .p2align 1 + 6036 .L492: +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 201 + + + 6037 .loc 1 2794 7 view .LVU1760 + 6038 0026 1868 ldr r0, [r3] + 6039 0028 C26D ldr r2, [r0, #92] + 6040 .LVL434: +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6041 .loc 1 2794 7 is_stmt 0 view .LVU1761 + 6042 002a 22F00F02 bic r2, r2, #15 + 6043 002e 0A43 orrs r2, r2, r1 + 6044 0030 C265 str r2, [r0, #92] +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6045 .loc 1 2797 7 is_stmt 1 view .LVU1762 +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6046 .loc 1 2797 11 is_stmt 0 view .LVU1763 + 6047 0032 1A68 ldr r2, [r3] +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6048 .loc 1 2797 10 view .LVU1764 + 6049 0034 1849 ldr r1, .L497 + 6050 .LVL435: +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6051 .loc 1 2797 10 view .LVU1765 + 6052 0036 8A42 cmp r2, r1 + 6053 0038 09D0 beq .L493 +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6054 .loc 1 2797 11 discriminator 1 view .LVU1766 + 6055 003a 01F58061 add r1, r1, #1024 + 6056 003e 8A42 cmp r2, r1 + 6057 0040 05D0 beq .L493 +2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6058 .loc 1 2803 9 is_stmt 1 view .LVU1767 + 6059 0042 916E ldr r1, [r2, #104] + 6060 0044 21F00101 bic r1, r1, #1 + 6061 0048 9166 str r1, [r2, #104] +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6062 .loc 1 2783 21 is_stmt 0 view .LVU1768 + 6063 004a 0020 movs r0, #0 + 6064 004c 1EE0 b .L487 + 6065 .L493: +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6066 .loc 1 2799 9 is_stmt 1 view .LVU1769 + 6067 004e 916E ldr r1, [r2, #104] + 6068 0050 41F00101 orr r1, r1, #1 + 6069 0054 9166 str r1, [r2, #104] +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6070 .loc 1 2783 21 is_stmt 0 view .LVU1770 + 6071 0056 0020 movs r0, #0 +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6072 .loc 1 2799 9 view .LVU1771 + 6073 0058 18E0 b .L487 + 6074 .LVL436: + 6075 .L491: +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 6076 .loc 1 2807 7 is_stmt 1 view .LVU1772 + 6077 005a 1868 ldr r0, [r3] + 6078 005c C26D ldr r2, [r0, #92] + 6079 .LVL437: +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 6080 .loc 1 2807 7 is_stmt 0 view .LVU1773 + ARM GAS /tmp/cc9HXhVl.s page 202 + + + 6081 005e 22F47062 bic r2, r2, #3840 + 6082 0062 0A43 orrs r2, r2, r1 + 6083 0064 C265 str r2, [r0, #92] +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: + 6084 .loc 1 2808 7 is_stmt 1 view .LVU1774 +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6085 .loc 1 2783 21 is_stmt 0 view .LVU1775 + 6086 0066 0020 movs r0, #0 +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_3: + 6087 .loc 1 2808 7 view .LVU1776 + 6088 0068 10E0 b .L487 + 6089 .LVL438: + 6090 .L490: +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 6091 .loc 1 2810 7 is_stmt 1 view .LVU1777 + 6092 006a 1868 ldr r0, [r3] + 6093 006c C26D ldr r2, [r0, #92] + 6094 .LVL439: +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 6095 .loc 1 2810 7 is_stmt 0 view .LVU1778 + 6096 006e 22F47022 bic r2, r2, #983040 + 6097 0072 0A43 orrs r2, r2, r1 + 6098 0074 C265 str r2, [r0, #92] +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: + 6099 .loc 1 2811 7 is_stmt 1 view .LVU1779 +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6100 .loc 1 2783 21 is_stmt 0 view .LVU1780 + 6101 0076 0020 movs r0, #0 +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** case TIM_CHANNEL_4: + 6102 .loc 1 2811 7 view .LVU1781 + 6103 0078 08E0 b .L487 + 6104 .LVL440: + 6105 .L488: +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 6106 .loc 1 2813 7 is_stmt 1 view .LVU1782 + 6107 007a 1868 ldr r0, [r3] + 6108 007c C26D ldr r2, [r0, #92] + 6109 .LVL441: +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** break; + 6110 .loc 1 2813 7 is_stmt 0 view .LVU1783 + 6111 007e 22F07062 bic r2, r2, #251658240 + 6112 0082 0A43 orrs r2, r2, r1 + 6113 0084 C265 str r2, [r0, #92] +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: + 6114 .loc 1 2814 7 is_stmt 1 view .LVU1784 +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6115 .loc 1 2783 21 is_stmt 0 view .LVU1785 + 6116 0086 0020 movs r0, #0 +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** default: + 6117 .loc 1 2814 7 view .LVU1786 + 6118 0088 00E0 b .L487 + 6119 .LVL442: + 6120 .L496: +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6121 .loc 1 2791 3 view .LVU1787 + 6122 008a 0120 movs r0, #1 + 6123 .LVL443: + ARM GAS /tmp/cc9HXhVl.s page 203 + + + 6124 .L487: +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6125 .loc 1 2820 3 is_stmt 1 view .LVU1788 +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6126 .loc 1 2820 3 view .LVU1789 + 6127 008c 0022 movs r2, #0 + 6128 008e 83F83C20 strb r2, [r3, #60] +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6129 .loc 1 2820 3 view .LVU1790 +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6130 .loc 1 2822 3 view .LVU1791 +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6131 .loc 1 2822 10 is_stmt 0 view .LVU1792 + 6132 0092 7047 bx lr + 6133 .LVL444: + 6134 .L495: +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6135 .loc 1 2789 3 view .LVU1793 + 6136 0094 0220 movs r0, #2 +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6137 .loc 1 2823 1 view .LVU1794 + 6138 0096 7047 bx lr + 6139 .L498: + 6140 .align 2 + 6141 .L497: + 6142 0098 00440140 .word 1073824768 + 6143 .cfi_endproc + 6144 .LFE362: + 6146 .section .text.HAL_TIMEx_GroupChannel5,"ax",%progbits + 6147 .align 1 + 6148 .global HAL_TIMEx_GroupChannel5 + 6149 .syntax unified + 6150 .thumb + 6151 .thumb_func + 6153 HAL_TIMEx_GroupChannel5: + 6154 .LVL445: + 6155 .LFB363: +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check parameters */ + 6156 .loc 1 2837 1 is_stmt 1 view -0 + 6157 .cfi_startproc + 6158 @ args = 0, pretend = 0, frame = 0 + 6159 @ frame_needed = 0, uses_anonymous_args = 0 + 6160 @ link register save eliminated. +2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_GROUPCH5(Channels)); + 6161 .loc 1 2839 3 view .LVU1796 +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6162 .loc 1 2840 3 view .LVU1797 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6163 .loc 1 2843 3 view .LVU1798 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6164 .loc 1 2843 3 view .LVU1799 + 6165 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 6166 0004 012B cmp r3, #1 + 6167 0006 18D0 beq .L501 +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check parameters */ + 6168 .loc 1 2837 1 is_stmt 0 discriminator 2 view .LVU1800 + 6169 0008 10B4 push {r4} + ARM GAS /tmp/cc9HXhVl.s page 204 + + + 6170 .LCFI50: + 6171 .cfi_def_cfa_offset 4 + 6172 .cfi_offset 4, -4 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6173 .loc 1 2843 3 is_stmt 1 discriminator 2 view .LVU1801 + 6174 000a 0122 movs r2, #1 + 6175 000c 80F83C20 strb r2, [r0, #60] +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6176 .loc 1 2843 3 discriminator 2 view .LVU1802 +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6177 .loc 1 2845 3 discriminator 2 view .LVU1803 +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6178 .loc 1 2845 15 is_stmt 0 discriminator 2 view .LVU1804 + 6179 0010 0223 movs r3, #2 + 6180 0012 80F83D30 strb r3, [r0, #61] +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6181 .loc 1 2848 3 is_stmt 1 discriminator 2 view .LVU1805 +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6182 .loc 1 2848 7 is_stmt 0 discriminator 2 view .LVU1806 + 6183 0016 0468 ldr r4, [r0] +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6184 .loc 1 2848 17 discriminator 2 view .LVU1807 + 6185 0018 A36C ldr r3, [r4, #72] +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6186 .loc 1 2848 24 discriminator 2 view .LVU1808 + 6187 001a 23F06043 bic r3, r3, #-536870912 + 6188 001e A364 str r3, [r4, #72] +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6189 .loc 1 2851 3 is_stmt 1 discriminator 2 view .LVU1809 +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6190 .loc 1 2851 7 is_stmt 0 discriminator 2 view .LVU1810 + 6191 0020 0468 ldr r4, [r0] +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6192 .loc 1 2851 17 discriminator 2 view .LVU1811 + 6193 0022 A36C ldr r3, [r4, #72] +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6194 .loc 1 2851 24 discriminator 2 view .LVU1812 + 6195 0024 0B43 orrs r3, r3, r1 + 6196 0026 A364 str r3, [r4, #72] +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6197 .loc 1 2854 3 is_stmt 1 discriminator 2 view .LVU1813 +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6198 .loc 1 2854 15 is_stmt 0 discriminator 2 view .LVU1814 + 6199 0028 80F83D20 strb r2, [r0, #61] +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6200 .loc 1 2856 3 is_stmt 1 discriminator 2 view .LVU1815 +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6201 .loc 1 2856 3 discriminator 2 view .LVU1816 + 6202 002c 0023 movs r3, #0 + 6203 002e 80F83C30 strb r3, [r0, #60] +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6204 .loc 1 2856 3 discriminator 2 view .LVU1817 +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6205 .loc 1 2858 3 discriminator 2 view .LVU1818 +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6206 .loc 1 2858 10 is_stmt 0 discriminator 2 view .LVU1819 + 6207 0032 1846 mov r0, r3 + ARM GAS /tmp/cc9HXhVl.s page 205 + + + 6208 .LVL446: +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6209 .loc 1 2859 1 discriminator 2 view .LVU1820 + 6210 0034 5DF8044B ldr r4, [sp], #4 + 6211 .LCFI51: + 6212 .cfi_restore 4 + 6213 .cfi_def_cfa_offset 0 + 6214 0038 7047 bx lr + 6215 .LVL447: + 6216 .L501: +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6217 .loc 1 2843 3 view .LVU1821 + 6218 003a 0220 movs r0, #2 + 6219 .LVL448: +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6220 .loc 1 2859 1 view .LVU1822 + 6221 003c 7047 bx lr + 6222 .cfi_endproc + 6223 .LFE363: + 6225 .section .text.HAL_TIMEx_DisarmBreakInput,"ax",%progbits + 6226 .align 1 + 6227 .global HAL_TIMEx_DisarmBreakInput + 6228 .syntax unified + 6229 .thumb + 6230 .thumb_func + 6232 HAL_TIMEx_DisarmBreakInput: + 6233 .LVL449: + 6234 .LFB364: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 6235 .loc 1 2875 1 is_stmt 1 view -0 + 6236 .cfi_startproc + 6237 @ args = 0, pretend = 0, frame = 0 + 6238 @ frame_needed = 0, uses_anonymous_args = 0 + 6239 @ link register save eliminated. +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6240 .loc 1 2876 3 view .LVU1824 +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6241 .loc 1 2877 3 view .LVU1825 +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUT(BreakInput)); + 6242 .loc 1 2880 3 view .LVU1826 +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6243 .loc 1 2881 3 view .LVU1827 +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6244 .loc 1 2883 3 view .LVU1828 + 6245 0000 0129 cmp r1, #1 + 6246 0002 03D0 beq .L507 + 6247 0004 0229 cmp r1, #2 + 6248 0006 10D0 beq .L508 + 6249 0008 0120 movs r0, #1 + 6250 .LVL450: +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6251 .loc 1 2883 3 is_stmt 0 view .LVU1829 + 6252 000a 7047 bx lr + 6253 .LVL451: + 6254 .L507: +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) && + 6255 .loc 1 2888 7 is_stmt 1 view .LVU1830 + ARM GAS /tmp/cc9HXhVl.s page 206 + + +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) && + 6256 .loc 1 2888 17 is_stmt 0 view .LVU1831 + 6257 000c 0268 ldr r2, [r0] +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BKBID) == TIM_BDTR_BKBID) && + 6258 .loc 1 2888 15 view .LVU1832 + 6259 000e 516C ldr r1, [r2, #68] + 6260 .LVL452: +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + 6261 .loc 1 2889 7 is_stmt 1 view .LVU1833 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + 6262 .loc 1 2889 65 is_stmt 0 view .LVU1834 + 6263 0010 0D4B ldr r3, .L514 + 6264 0012 0B40 ands r3, r3, r1 +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + 6265 .loc 1 2889 10 view .LVU1835 + 6266 0014 B3F1805F cmp r3, #268435456 + 6267 0018 01D0 beq .L512 +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6268 .loc 1 2876 21 view .LVU1836 + 6269 001a 0020 movs r0, #0 + 6270 .LVL453: +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6271 .loc 1 2876 21 view .LVU1837 + 6272 001c 7047 bx lr + 6273 .LVL454: + 6274 .L512: +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6275 .loc 1 2893 9 is_stmt 1 view .LVU1838 + 6276 001e 536C ldr r3, [r2, #68] + 6277 0020 43F08063 orr r3, r3, #67108864 + 6278 0024 5364 str r3, [r2, #68] +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6279 .loc 1 2876 21 is_stmt 0 view .LVU1839 + 6280 0026 0020 movs r0, #0 + 6281 .LVL455: +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6282 .loc 1 2876 21 view .LVU1840 + 6283 0028 7047 bx lr + 6284 .LVL456: + 6285 .L508: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) && + 6286 .loc 1 2901 7 is_stmt 1 view .LVU1841 +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) && + 6287 .loc 1 2901 17 is_stmt 0 view .LVU1842 + 6288 002a 0268 ldr r2, [r0] +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** if ((READ_BIT(tmpbdtr, TIM_BDTR_BK2BID) == TIM_BDTR_BK2BID) && + 6289 .loc 1 2901 15 view .LVU1843 + 6290 002c 516C ldr r1, [r2, #68] + 6291 .LVL457: +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + 6292 .loc 1 2902 7 is_stmt 1 view .LVU1844 +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + 6293 .loc 1 2902 67 is_stmt 0 view .LVU1845 + 6294 002e 074B ldr r3, .L514+4 + 6295 0030 0B40 ands r3, r3, r1 +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** (READ_BIT(tmpbdtr, TIM_BDTR_MOE) == 0U)) + 6296 .loc 1 2902 10 view .LVU1846 + ARM GAS /tmp/cc9HXhVl.s page 207 + + + 6297 0032 B3F1005F cmp r3, #536870912 + 6298 0036 01D0 beq .L513 +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6299 .loc 1 2876 21 view .LVU1847 + 6300 0038 0020 movs r0, #0 + 6301 .LVL458: +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6302 .loc 1 2915 3 is_stmt 1 view .LVU1848 +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6303 .loc 1 2916 1 is_stmt 0 view .LVU1849 + 6304 003a 7047 bx lr + 6305 .LVL459: + 6306 .L513: +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6307 .loc 1 2906 9 is_stmt 1 view .LVU1850 + 6308 003c 536C ldr r3, [r2, #68] + 6309 003e 43F00063 orr r3, r3, #134217728 + 6310 0042 5364 str r3, [r2, #68] +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6311 .loc 1 2876 21 is_stmt 0 view .LVU1851 + 6312 0044 0020 movs r0, #0 + 6313 .LVL460: +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpbdtr; + 6314 .loc 1 2876 21 view .LVU1852 + 6315 0046 7047 bx lr + 6316 .L515: + 6317 .align 2 + 6318 .L514: + 6319 0048 00800010 .word 268468224 + 6320 004c 00800020 .word 536903680 + 6321 .cfi_endproc + 6322 .LFE364: + 6324 .section .text.HAL_TIMEx_ReArmBreakInput,"ax",%progbits + 6325 .align 1 + 6326 .global HAL_TIMEx_ReArmBreakInput + 6327 .syntax unified + 6328 .thumb + 6329 .thumb_func + 6331 HAL_TIMEx_ReArmBreakInput: + 6332 .LVL461: + 6333 .LFB365: +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 6334 .loc 1 2930 1 is_stmt 1 view -0 + 6335 .cfi_startproc + 6336 @ args = 0, pretend = 0, frame = 0 + 6337 @ frame_needed = 0, uses_anonymous_args = 0 +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 6338 .loc 1 2930 1 is_stmt 0 view .LVU1854 + 6339 0000 38B5 push {r3, r4, r5, lr} + 6340 .LCFI52: + 6341 .cfi_def_cfa_offset 16 + 6342 .cfi_offset 3, -16 + 6343 .cfi_offset 4, -12 + 6344 .cfi_offset 5, -8 + 6345 .cfi_offset 14, -4 + 6346 0002 0446 mov r4, r0 +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + ARM GAS /tmp/cc9HXhVl.s page 208 + + + 6347 .loc 1 2931 3 is_stmt 1 view .LVU1855 + 6348 .LVL462: +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6349 .loc 1 2932 3 view .LVU1856 +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_BREAKINPUT(BreakInput)); + 6350 .loc 1 2935 3 view .LVU1857 +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6351 .loc 1 2936 3 view .LVU1858 +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6352 .loc 1 2938 3 view .LVU1859 + 6353 0004 0129 cmp r1, #1 + 6354 0006 03D0 beq .L517 + 6355 0008 0229 cmp r1, #2 + 6356 000a 1ED0 beq .L518 + 6357 000c 0120 movs r0, #1 + 6358 .LVL463: + 6359 .L519: +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6360 .loc 1 2991 1 is_stmt 0 view .LVU1860 + 6361 000e 38BD pop {r3, r4, r5, pc} + 6362 .LVL464: + 6363 .L517: +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6364 .loc 1 2943 7 is_stmt 1 view .LVU1861 +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6365 .loc 1 2943 11 is_stmt 0 view .LVU1862 + 6366 0010 0368 ldr r3, [r0] + 6367 0012 5B6C ldr r3, [r3, #68] +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6368 .loc 1 2943 10 view .LVU1863 + 6369 0014 13F0805F tst r3, #268435456 + 6370 0018 01D1 bne .L529 +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + 6371 .loc 1 2931 21 view .LVU1864 + 6372 001a 0020 movs r0, #0 + 6373 .LVL465: +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + 6374 .loc 1 2931 21 view .LVU1865 + 6375 001c F7E7 b .L519 + 6376 .LVL466: + 6377 .L529: +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) + 6378 .loc 1 2947 9 is_stmt 1 view .LVU1866 +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) + 6379 .loc 1 2947 21 is_stmt 0 view .LVU1867 + 6380 001e FFF7FEFF bl HAL_GetTick + 6381 .LVL467: +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BKDSRM) != 0UL) + 6382 .loc 1 2947 21 view .LVU1868 + 6383 0022 0546 mov r5, r0 + 6384 .LVL468: +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6385 .loc 1 2948 9 is_stmt 1 view .LVU1869 + 6386 .L520: +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6387 .loc 1 2948 64 view .LVU1870 +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + ARM GAS /tmp/cc9HXhVl.s page 209 + + + 6388 .loc 1 2948 16 is_stmt 0 view .LVU1871 + 6389 0024 2368 ldr r3, [r4] + 6390 0026 5B6C ldr r3, [r3, #68] +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6391 .loc 1 2948 64 view .LVU1872 + 6392 0028 13F0806F tst r3, #67108864 + 6393 002c 0BD0 beq .L530 +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6394 .loc 1 2950 11 is_stmt 1 view .LVU1873 +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6395 .loc 1 2950 16 is_stmt 0 view .LVU1874 + 6396 002e FFF7FEFF bl HAL_GetTick + 6397 .LVL469: +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6398 .loc 1 2950 30 view .LVU1875 + 6399 0032 401B subs r0, r0, r5 +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6400 .loc 1 2950 14 view .LVU1876 + 6401 0034 0528 cmp r0, #5 + 6402 0036 F5D9 bls .L520 +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6403 .loc 1 2953 13 is_stmt 1 view .LVU1877 +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6404 .loc 1 2953 17 is_stmt 0 view .LVU1878 + 6405 0038 2368 ldr r3, [r4] + 6406 003a 5B6C ldr r3, [r3, #68] +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6407 .loc 1 2953 16 view .LVU1879 + 6408 003c 13F0806F tst r3, #67108864 + 6409 0040 F0D0 beq .L520 +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6410 .loc 1 2955 22 view .LVU1880 + 6411 0042 0320 movs r0, #3 + 6412 0044 E3E7 b .L519 + 6413 .L530: +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + 6414 .loc 1 2931 21 view .LVU1881 + 6415 0046 0020 movs r0, #0 + 6416 0048 E1E7 b .L519 + 6417 .LVL470: + 6418 .L518: +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6419 .loc 1 2966 7 is_stmt 1 view .LVU1882 +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6420 .loc 1 2966 11 is_stmt 0 view .LVU1883 + 6421 004a 0368 ldr r3, [r0] + 6422 004c 5B6C ldr r3, [r3, #68] +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6423 .loc 1 2966 10 view .LVU1884 + 6424 004e 13F0005F tst r3, #536870912 + 6425 0052 01D1 bne .L531 +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + 6426 .loc 1 2931 21 view .LVU1885 + 6427 0054 0020 movs r0, #0 + 6428 .LVL471: +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + 6429 .loc 1 2931 21 view .LVU1886 + ARM GAS /tmp/cc9HXhVl.s page 210 + + + 6430 0056 DAE7 b .L519 + 6431 .LVL472: + 6432 .L531: +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) + 6433 .loc 1 2970 9 is_stmt 1 view .LVU1887 +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) + 6434 .loc 1 2970 21 is_stmt 0 view .LVU1888 + 6435 0058 FFF7FEFF bl HAL_GetTick + 6436 .LVL473: +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** while (READ_BIT(htim->Instance->BDTR, TIM_BDTR_BK2DSRM) != 0UL) + 6437 .loc 1 2970 21 view .LVU1889 + 6438 005c 0546 mov r5, r0 + 6439 .LVL474: +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6440 .loc 1 2971 9 is_stmt 1 view .LVU1890 + 6441 .L522: +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6442 .loc 1 2971 65 view .LVU1891 +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6443 .loc 1 2971 16 is_stmt 0 view .LVU1892 + 6444 005e 2368 ldr r3, [r4] + 6445 0060 5B6C ldr r3, [r3, #68] +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6446 .loc 1 2971 65 view .LVU1893 + 6447 0062 13F0006F tst r3, #134217728 + 6448 0066 0BD0 beq .L532 +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6449 .loc 1 2973 11 is_stmt 1 view .LVU1894 +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6450 .loc 1 2973 16 is_stmt 0 view .LVU1895 + 6451 0068 FFF7FEFF bl HAL_GetTick + 6452 .LVL475: +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6453 .loc 1 2973 30 view .LVU1896 + 6454 006c 401B subs r0, r0, r5 +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6455 .loc 1 2973 14 view .LVU1897 + 6456 006e 0528 cmp r0, #5 + 6457 0070 F5D9 bls .L522 +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6458 .loc 1 2976 13 is_stmt 1 view .LVU1898 +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6459 .loc 1 2976 17 is_stmt 0 view .LVU1899 + 6460 0072 2368 ldr r3, [r4] + 6461 0074 5B6C ldr r3, [r3, #68] +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** { + 6462 .loc 1 2976 16 view .LVU1900 + 6463 0076 13F0006F tst r3, #134217728 + 6464 007a F0D0 beq .L522 +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6465 .loc 1 2978 22 view .LVU1901 + 6466 007c 0320 movs r0, #3 + 6467 007e C6E7 b .L519 + 6468 .L532: +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tickstart; + 6469 .loc 1 2931 21 view .LVU1902 + 6470 0080 0020 movs r0, #0 + ARM GAS /tmp/cc9HXhVl.s page 211 + + + 6471 0082 C4E7 b .L519 + 6472 .cfi_endproc + 6473 .LFE365: + 6475 .section .text.HAL_TIMEx_DitheringEnable,"ax",%progbits + 6476 .align 1 + 6477 .global HAL_TIMEx_DitheringEnable + 6478 .syntax unified + 6479 .thumb + 6480 .thumb_func + 6482 HAL_TIMEx_DitheringEnable: + 6483 .LVL476: + 6484 .LFB366: +3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6485 .loc 1 3013 1 is_stmt 1 view -0 + 6486 .cfi_startproc + 6487 @ args = 0, pretend = 0, frame = 0 + 6488 @ frame_needed = 0, uses_anonymous_args = 0 + 6489 @ link register save eliminated. +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6490 .loc 1 3015 3 view .LVU1904 +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6491 .loc 1 3017 3 view .LVU1905 + 6492 0000 0268 ldr r2, [r0] + 6493 0002 1368 ldr r3, [r2] + 6494 0004 43F48053 orr r3, r3, #4096 + 6495 0008 1360 str r3, [r2] +3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6496 .loc 1 3018 3 view .LVU1906 +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6497 .loc 1 3019 1 is_stmt 0 view .LVU1907 + 6498 000a 0020 movs r0, #0 + 6499 .LVL477: +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6500 .loc 1 3019 1 view .LVU1908 + 6501 000c 7047 bx lr + 6502 .cfi_endproc + 6503 .LFE366: + 6505 .section .text.HAL_TIMEx_DitheringDisable,"ax",%progbits + 6506 .align 1 + 6507 .global HAL_TIMEx_DitheringDisable + 6508 .syntax unified + 6509 .thumb + 6510 .thumb_func + 6512 HAL_TIMEx_DitheringDisable: + 6513 .LVL478: + 6514 .LFB367: +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6515 .loc 1 3037 1 is_stmt 1 view -0 + 6516 .cfi_startproc + 6517 @ args = 0, pretend = 0, frame = 0 + 6518 @ frame_needed = 0, uses_anonymous_args = 0 + 6519 @ link register save eliminated. +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6520 .loc 1 3039 3 view .LVU1910 +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6521 .loc 1 3041 3 view .LVU1911 + 6522 0000 0268 ldr r2, [r0] + ARM GAS /tmp/cc9HXhVl.s page 212 + + + 6523 0002 1368 ldr r3, [r2] + 6524 0004 23F48053 bic r3, r3, #4096 + 6525 0008 1360 str r3, [r2] +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6526 .loc 1 3042 3 view .LVU1912 +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6527 .loc 1 3043 1 is_stmt 0 view .LVU1913 + 6528 000a 0020 movs r0, #0 + 6529 .LVL479: +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6530 .loc 1 3043 1 view .LVU1914 + 6531 000c 7047 bx lr + 6532 .cfi_endproc + 6533 .LFE367: + 6535 .section .text.HAL_TIMEx_OC_ConfigPulseOnCompare,"ax",%progbits + 6536 .align 1 + 6537 .global HAL_TIMEx_OC_ConfigPulseOnCompare + 6538 .syntax unified + 6539 .thumb + 6540 .thumb_func + 6542 HAL_TIMEx_OC_ConfigPulseOnCompare: + 6543 .LVL480: + 6544 .LFB368: +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpecr; + 6545 .loc 1 3057 1 is_stmt 1 view -0 + 6546 .cfi_startproc + 6547 @ args = 0, pretend = 0, frame = 0 + 6548 @ frame_needed = 0, uses_anonymous_args = 0 + 6549 @ link register save eliminated. +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6550 .loc 1 3058 3 view .LVU1916 +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_PULSEONCOMPARE_WIDTH(PulseWidth)); + 6551 .loc 1 3061 3 view .LVU1917 +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_PULSEONCOMPARE_WIDTHPRESCALER(PulseWidthPrescaler)); + 6552 .loc 1 3062 3 view .LVU1918 +3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6553 .loc 1 3063 3 view .LVU1919 +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6554 .loc 1 3066 3 view .LVU1920 +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6555 .loc 1 3066 3 view .LVU1921 + 6556 0000 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 6557 0004 012B cmp r3, #1 + 6558 0006 1BD0 beq .L537 +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** uint32_t tmpecr; + 6559 .loc 1 3057 1 is_stmt 0 discriminator 2 view .LVU1922 + 6560 0008 10B4 push {r4} + 6561 .LCFI53: + 6562 .cfi_def_cfa_offset 4 + 6563 .cfi_offset 4, -4 + 6564 000a 8446 mov ip, r0 +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6565 .loc 1 3066 3 is_stmt 1 discriminator 2 view .LVU1923 + 6566 000c 0120 movs r0, #1 + 6567 .LVL481: +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6568 .loc 1 3066 3 is_stmt 0 discriminator 2 view .LVU1924 + ARM GAS /tmp/cc9HXhVl.s page 213 + + + 6569 000e 8CF83C00 strb r0, [ip, #60] +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6570 .loc 1 3066 3 is_stmt 1 discriminator 2 view .LVU1925 +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6571 .loc 1 3069 3 discriminator 2 view .LVU1926 +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6572 .loc 1 3069 15 is_stmt 0 discriminator 2 view .LVU1927 + 6573 0012 0223 movs r3, #2 + 6574 0014 8CF83D30 strb r3, [ip, #61] +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the Pulse width prescaler and the Pulse width */ + 6575 .loc 1 3072 3 is_stmt 1 discriminator 2 view .LVU1928 +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the Pulse width prescaler and the Pulse width */ + 6576 .loc 1 3072 16 is_stmt 0 discriminator 2 view .LVU1929 + 6577 0018 DCF80040 ldr r4, [ip] +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Reset the Pulse width prescaler and the Pulse width */ + 6578 .loc 1 3072 10 discriminator 2 view .LVU1930 + 6579 001c A36D ldr r3, [r4, #88] + 6580 .LVL482: +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the Pulse width prescaler and Pulse width*/ + 6581 .loc 1 3074 3 is_stmt 1 discriminator 2 view .LVU1931 +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the Pulse width prescaler and Pulse width*/ + 6582 .loc 1 3074 10 is_stmt 0 discriminator 2 view .LVU1932 + 6583 001e 23F0FF63 bic r3, r3, #133693440 + 6584 .LVL483: +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Set the Pulse width prescaler and Pulse width*/ + 6585 .loc 1 3074 10 discriminator 2 view .LVU1933 + 6586 0022 23F4E023 bic r3, r3, #458752 + 6587 .LVL484: +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpecr |= PulseWidth << TIM_ECR_PW_Pos; + 6588 .loc 1 3076 3 is_stmt 1 discriminator 2 view .LVU1934 +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** tmpecr |= PulseWidth << TIM_ECR_PW_Pos; + 6589 .loc 1 3076 10 is_stmt 0 discriminator 2 view .LVU1935 + 6590 0026 43EA0163 orr r3, r3, r1, lsl #24 + 6591 .LVL485: +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Write to TIMx ECR */ + 6592 .loc 1 3077 3 is_stmt 1 discriminator 2 view .LVU1936 +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Write to TIMx ECR */ + 6593 .loc 1 3077 10 is_stmt 0 discriminator 2 view .LVU1937 + 6594 002a 43EA0242 orr r2, r3, r2, lsl #16 + 6595 .LVL486: +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6596 .loc 1 3079 3 is_stmt 1 discriminator 2 view .LVU1938 +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6597 .loc 1 3079 23 is_stmt 0 discriminator 2 view .LVU1939 + 6598 002e A265 str r2, [r4, #88] +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6599 .loc 1 3082 3 is_stmt 1 discriminator 2 view .LVU1940 +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6600 .loc 1 3082 15 is_stmt 0 discriminator 2 view .LVU1941 + 6601 0030 8CF83D00 strb r0, [ip, #61] +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6602 .loc 1 3085 3 is_stmt 1 discriminator 2 view .LVU1942 +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6603 .loc 1 3085 3 discriminator 2 view .LVU1943 + 6604 0034 0020 movs r0, #0 + 6605 0036 8CF83C00 strb r0, [ip, #60] +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 214 + + + 6606 .loc 1 3085 3 discriminator 2 view .LVU1944 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6607 .loc 1 3087 3 discriminator 2 view .LVU1945 +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6608 .loc 1 3088 1 is_stmt 0 discriminator 2 view .LVU1946 + 6609 003a 5DF8044B ldr r4, [sp], #4 + 6610 .LCFI54: + 6611 .cfi_restore 4 + 6612 .cfi_def_cfa_offset 0 + 6613 003e 7047 bx lr + 6614 .LVL487: + 6615 .L537: +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6616 .loc 1 3066 3 view .LVU1947 + 6617 0040 0220 movs r0, #2 + 6618 .LVL488: +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6619 .loc 1 3088 1 view .LVU1948 + 6620 0042 7047 bx lr + 6621 .cfi_endproc + 6622 .LFE368: + 6624 .section .text.HAL_TIMEx_ConfigSlaveModePreload,"ax",%progbits + 6625 .align 1 + 6626 .global HAL_TIMEx_ConfigSlaveModePreload + 6627 .syntax unified + 6628 .thumb + 6629 .thumb_func + 6631 HAL_TIMEx_ConfigSlaveModePreload: + 6632 .LVL489: + 6633 .LFB369: +3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6634 .loc 1 3100 1 is_stmt 1 view -0 + 6635 .cfi_startproc + 6636 @ args = 0, pretend = 0, frame = 0 + 6637 @ frame_needed = 0, uses_anonymous_args = 0 + 6638 @ link register save eliminated. +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_SLAVE_PRELOAD_SOURCE(Source)); + 6639 .loc 1 3102 3 view .LVU1950 +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6640 .loc 1 3103 3 view .LVU1951 +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6641 .loc 1 3105 3 view .LVU1952 + 6642 0000 0268 ldr r2, [r0] + 6643 0002 9368 ldr r3, [r2, #8] + 6644 0004 23F00073 bic r3, r3, #33554432 + 6645 0008 0B43 orrs r3, r3, r1 + 6646 000a 9360 str r3, [r2, #8] +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6647 .loc 1 3106 3 view .LVU1953 +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6648 .loc 1 3107 1 is_stmt 0 view .LVU1954 + 6649 000c 0020 movs r0, #0 + 6650 .LVL490: +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6651 .loc 1 3107 1 view .LVU1955 + 6652 000e 7047 bx lr + 6653 .cfi_endproc + ARM GAS /tmp/cc9HXhVl.s page 215 + + + 6654 .LFE369: + 6656 .section .text.HAL_TIMEx_EnableSlaveModePreload,"ax",%progbits + 6657 .align 1 + 6658 .global HAL_TIMEx_EnableSlaveModePreload + 6659 .syntax unified + 6660 .thumb + 6661 .thumb_func + 6663 HAL_TIMEx_EnableSlaveModePreload: + 6664 .LVL491: + 6665 .LFB370: +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6666 .loc 1 3115 1 is_stmt 1 view -0 + 6667 .cfi_startproc + 6668 @ args = 0, pretend = 0, frame = 0 + 6669 @ frame_needed = 0, uses_anonymous_args = 0 + 6670 @ link register save eliminated. +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6671 .loc 1 3117 3 view .LVU1957 +3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6672 .loc 1 3119 3 view .LVU1958 + 6673 0000 0268 ldr r2, [r0] + 6674 0002 9368 ldr r3, [r2, #8] + 6675 0004 43F08073 orr r3, r3, #16777216 + 6676 0008 9360 str r3, [r2, #8] +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6677 .loc 1 3120 3 view .LVU1959 +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6678 .loc 1 3121 1 is_stmt 0 view .LVU1960 + 6679 000a 0020 movs r0, #0 + 6680 .LVL492: +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6681 .loc 1 3121 1 view .LVU1961 + 6682 000c 7047 bx lr + 6683 .cfi_endproc + 6684 .LFE370: + 6686 .section .text.HAL_TIMEx_DisableSlaveModePreload,"ax",%progbits + 6687 .align 1 + 6688 .global HAL_TIMEx_DisableSlaveModePreload + 6689 .syntax unified + 6690 .thumb + 6691 .thumb_func + 6693 HAL_TIMEx_DisableSlaveModePreload: + 6694 .LVL493: + 6695 .LFB371: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6696 .loc 1 3129 1 is_stmt 1 view -0 + 6697 .cfi_startproc + 6698 @ args = 0, pretend = 0, frame = 0 + 6699 @ frame_needed = 0, uses_anonymous_args = 0 + 6700 @ link register save eliminated. +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6701 .loc 1 3131 3 view .LVU1963 +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6702 .loc 1 3133 3 view .LVU1964 + 6703 0000 0268 ldr r2, [r0] + 6704 0002 9368 ldr r3, [r2, #8] + 6705 0004 23F08073 bic r3, r3, #16777216 + ARM GAS /tmp/cc9HXhVl.s page 216 + + + 6706 0008 9360 str r3, [r2, #8] +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6707 .loc 1 3134 3 view .LVU1965 +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6708 .loc 1 3135 1 is_stmt 0 view .LVU1966 + 6709 000a 0020 movs r0, #0 + 6710 .LVL494: +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6711 .loc 1 3135 1 view .LVU1967 + 6712 000c 7047 bx lr + 6713 .cfi_endproc + 6714 .LFE371: + 6716 .section .text.HAL_TIMEx_EnableDeadTimePreload,"ax",%progbits + 6717 .align 1 + 6718 .global HAL_TIMEx_EnableDeadTimePreload + 6719 .syntax unified + 6720 .thumb + 6721 .thumb_func + 6723 HAL_TIMEx_EnableDeadTimePreload: + 6724 .LVL495: + 6725 .LFB372: +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6726 .loc 1 3143 1 is_stmt 1 view -0 + 6727 .cfi_startproc + 6728 @ args = 0, pretend = 0, frame = 0 + 6729 @ frame_needed = 0, uses_anonymous_args = 0 + 6730 @ link register save eliminated. +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6731 .loc 1 3145 3 view .LVU1969 +3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6732 .loc 1 3147 3 view .LVU1970 + 6733 0000 0268 ldr r2, [r0] + 6734 0002 536D ldr r3, [r2, #84] + 6735 0004 43F40033 orr r3, r3, #131072 + 6736 0008 5365 str r3, [r2, #84] +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6737 .loc 1 3148 3 view .LVU1971 +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6738 .loc 1 3149 1 is_stmt 0 view .LVU1972 + 6739 000a 0020 movs r0, #0 + 6740 .LVL496: +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6741 .loc 1 3149 1 view .LVU1973 + 6742 000c 7047 bx lr + 6743 .cfi_endproc + 6744 .LFE372: + 6746 .section .text.HAL_TIMEx_DisableDeadTimePreload,"ax",%progbits + 6747 .align 1 + 6748 .global HAL_TIMEx_DisableDeadTimePreload + 6749 .syntax unified + 6750 .thumb + 6751 .thumb_func + 6753 HAL_TIMEx_DisableDeadTimePreload: + 6754 .LVL497: + 6755 .LFB373: +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6756 .loc 1 3157 1 is_stmt 1 view -0 + ARM GAS /tmp/cc9HXhVl.s page 217 + + + 6757 .cfi_startproc + 6758 @ args = 0, pretend = 0, frame = 0 + 6759 @ frame_needed = 0, uses_anonymous_args = 0 + 6760 @ link register save eliminated. +3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6761 .loc 1 3159 3 view .LVU1975 +3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6762 .loc 1 3161 3 view .LVU1976 + 6763 0000 0268 ldr r2, [r0] + 6764 0002 536D ldr r3, [r2, #84] + 6765 0004 23F40033 bic r3, r3, #131072 + 6766 0008 5365 str r3, [r2, #84] +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6767 .loc 1 3162 3 view .LVU1977 +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6768 .loc 1 3163 1 is_stmt 0 view .LVU1978 + 6769 000a 0020 movs r0, #0 + 6770 .LVL498: +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6771 .loc 1 3163 1 view .LVU1979 + 6772 000c 7047 bx lr + 6773 .cfi_endproc + 6774 .LFE373: + 6776 .section .text.HAL_TIMEx_ConfigDeadTime,"ax",%progbits + 6777 .align 1 + 6778 .global HAL_TIMEx_ConfigDeadTime + 6779 .syntax unified + 6780 .thumb + 6781 .thumb_func + 6783 HAL_TIMEx_ConfigDeadTime: + 6784 .LVL499: + 6785 .LFB374: +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6786 .loc 1 3173 1 is_stmt 1 view -0 + 6787 .cfi_startproc + 6788 @ args = 0, pretend = 0, frame = 0 + 6789 @ frame_needed = 0, uses_anonymous_args = 0 + 6790 @ link register save eliminated. +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_DEADTIME(Deadtime)); + 6791 .loc 1 3175 3 view .LVU1981 +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6792 .loc 1 3176 3 view .LVU1982 +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6793 .loc 1 3178 3 view .LVU1983 + 6794 0000 0268 ldr r2, [r0] + 6795 0002 536C ldr r3, [r2, #68] + 6796 0004 23F0FF03 bic r3, r3, #255 + 6797 0008 0B43 orrs r3, r3, r1 + 6798 000a 5364 str r3, [r2, #68] +3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6799 .loc 1 3179 3 view .LVU1984 +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6800 .loc 1 3180 1 is_stmt 0 view .LVU1985 + 6801 000c 0020 movs r0, #0 + 6802 .LVL500: +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6803 .loc 1 3180 1 view .LVU1986 + ARM GAS /tmp/cc9HXhVl.s page 218 + + + 6804 000e 7047 bx lr + 6805 .cfi_endproc + 6806 .LFE374: + 6808 .section .text.HAL_TIMEx_ConfigAsymmetricalDeadTime,"ax",%progbits + 6809 .align 1 + 6810 .global HAL_TIMEx_ConfigAsymmetricalDeadTime + 6811 .syntax unified + 6812 .thumb + 6813 .thumb_func + 6815 HAL_TIMEx_ConfigAsymmetricalDeadTime: + 6816 .LVL501: + 6817 .LFB375: +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6818 .loc 1 3190 1 is_stmt 1 view -0 + 6819 .cfi_startproc + 6820 @ args = 0, pretend = 0, frame = 0 + 6821 @ frame_needed = 0, uses_anonymous_args = 0 + 6822 @ link register save eliminated. +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_DEADTIME(FallingDeadtime)); + 6823 .loc 1 3192 3 view .LVU1988 +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6824 .loc 1 3193 3 view .LVU1989 +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6825 .loc 1 3195 3 view .LVU1990 + 6826 0000 0268 ldr r2, [r0] + 6827 0002 536D ldr r3, [r2, #84] + 6828 0004 23F0FF03 bic r3, r3, #255 + 6829 0008 0B43 orrs r3, r3, r1 + 6830 000a 5365 str r3, [r2, #84] +3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6831 .loc 1 3196 3 view .LVU1991 +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6832 .loc 1 3197 1 is_stmt 0 view .LVU1992 + 6833 000c 0020 movs r0, #0 + 6834 .LVL502: +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6835 .loc 1 3197 1 view .LVU1993 + 6836 000e 7047 bx lr + 6837 .cfi_endproc + 6838 .LFE375: + 6840 .section .text.HAL_TIMEx_EnableAsymmetricalDeadTime,"ax",%progbits + 6841 .align 1 + 6842 .global HAL_TIMEx_EnableAsymmetricalDeadTime + 6843 .syntax unified + 6844 .thumb + 6845 .thumb_func + 6847 HAL_TIMEx_EnableAsymmetricalDeadTime: + 6848 .LVL503: + 6849 .LFB376: +3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6850 .loc 1 3205 1 is_stmt 1 view -0 + 6851 .cfi_startproc + 6852 @ args = 0, pretend = 0, frame = 0 + 6853 @ frame_needed = 0, uses_anonymous_args = 0 + 6854 @ link register save eliminated. +3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6855 .loc 1 3207 3 view .LVU1995 + ARM GAS /tmp/cc9HXhVl.s page 219 + + +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6856 .loc 1 3209 3 view .LVU1996 + 6857 0000 0268 ldr r2, [r0] + 6858 0002 536D ldr r3, [r2, #84] + 6859 0004 43F48033 orr r3, r3, #65536 + 6860 0008 5365 str r3, [r2, #84] +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6861 .loc 1 3210 3 view .LVU1997 +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6862 .loc 1 3211 1 is_stmt 0 view .LVU1998 + 6863 000a 0020 movs r0, #0 + 6864 .LVL504: +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6865 .loc 1 3211 1 view .LVU1999 + 6866 000c 7047 bx lr + 6867 .cfi_endproc + 6868 .LFE376: + 6870 .section .text.HAL_TIMEx_DisableAsymmetricalDeadTime,"ax",%progbits + 6871 .align 1 + 6872 .global HAL_TIMEx_DisableAsymmetricalDeadTime + 6873 .syntax unified + 6874 .thumb + 6875 .thumb_func + 6877 HAL_TIMEx_DisableAsymmetricalDeadTime: + 6878 .LVL505: + 6879 .LFB377: +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6880 .loc 1 3219 1 is_stmt 1 view -0 + 6881 .cfi_startproc + 6882 @ args = 0, pretend = 0, frame = 0 + 6883 @ frame_needed = 0, uses_anonymous_args = 0 + 6884 @ link register save eliminated. +3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6885 .loc 1 3221 3 view .LVU2001 +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 6886 .loc 1 3223 3 view .LVU2002 + 6887 0000 0268 ldr r2, [r0] + 6888 0002 536D ldr r3, [r2, #84] + 6889 0004 23F48033 bic r3, r3, #65536 + 6890 0008 5365 str r3, [r2, #84] +3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6891 .loc 1 3224 3 view .LVU2003 +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6892 .loc 1 3225 1 is_stmt 0 view .LVU2004 + 6893 000a 0020 movs r0, #0 + 6894 .LVL506: +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6895 .loc 1 3225 1 view .LVU2005 + 6896 000c 7047 bx lr + 6897 .cfi_endproc + 6898 .LFE377: + 6900 .section .text.HAL_TIMEx_ConfigEncoderIndex,"ax",%progbits + 6901 .align 1 + 6902 .global HAL_TIMEx_ConfigEncoderIndex + 6903 .syntax unified + 6904 .thumb + 6905 .thumb_func + ARM GAS /tmp/cc9HXhVl.s page 220 + + + 6907 HAL_TIMEx_ConfigEncoderIndex: + 6908 .LVL507: + 6909 .LFB378: +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6910 .loc 1 3238 1 is_stmt 1 view -0 + 6911 .cfi_startproc + 6912 @ args = 0, pretend = 0, frame = 0 + 6913 @ frame_needed = 0, uses_anonymous_args = 0 +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 6914 .loc 1 3238 1 is_stmt 0 view .LVU2007 + 6915 0000 38B5 push {r3, r4, r5, lr} + 6916 .LCFI55: + 6917 .cfi_def_cfa_offset 16 + 6918 .cfi_offset 3, -16 + 6919 .cfi_offset 4, -12 + 6920 .cfi_offset 5, -8 + 6921 .cfi_offset 14, -4 +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_POLARITY(sEncoderIndexConfig->Polarity)); + 6922 .loc 1 3240 3 is_stmt 1 view .LVU2008 +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_PRESCALER(sEncoderIndexConfig->Prescaler)); + 6923 .loc 1 3241 3 view .LVU2009 +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_FILTER(sEncoderIndexConfig->Filter)); + 6924 .loc 1 3242 3 view .LVU2010 +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_FUNCTIONAL_STATE(sEncoderIndexConfig->FirstIndexEnable)); + 6925 .loc 1 3243 3 view .LVU2011 +3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_POSITION(sEncoderIndexConfig->Position)); + 6926 .loc 1 3244 3 view .LVU2012 +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** assert_param(IS_TIM_ENCODERINDEX_DIRECTION(sEncoderIndexConfig->Direction)); + 6927 .loc 1 3245 3 view .LVU2013 +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6928 .loc 1 3246 3 view .LVU2014 +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6929 .loc 1 3249 3 view .LVU2015 +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6930 .loc 1 3249 3 view .LVU2016 + 6931 0002 90F83C30 ldrb r3, [r0, #60] @ zero_extendqisi2 + 6932 0006 012B cmp r3, #1 + 6933 0008 20D0 beq .L554 + 6934 000a 0546 mov r5, r0 + 6935 000c 0C46 mov r4, r1 +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6936 .loc 1 3249 3 discriminator 2 view .LVU2017 + 6937 000e 0123 movs r3, #1 + 6938 0010 80F83C30 strb r3, [r0, #60] +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6939 .loc 1 3249 3 discriminator 2 view .LVU2018 +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Prescaler, + 6940 .loc 1 3252 3 discriminator 2 view .LVU2019 + 6941 0014 8B68 ldr r3, [r1, #8] + 6942 0016 0A68 ldr r2, [r1] + 6943 0018 4968 ldr r1, [r1, #4] + 6944 .LVL508: +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Prescaler, + 6945 .loc 1 3252 3 is_stmt 0 discriminator 2 view .LVU2020 + 6946 001a 0068 ldr r0, [r0] + 6947 .LVL509: +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** sEncoderIndexConfig->Prescaler, + ARM GAS /tmp/cc9HXhVl.s page 221 + + + 6948 .loc 1 3252 3 discriminator 2 view .LVU2021 + 6949 001c FFF7FEFF bl TIM_ETR_SetConfig + 6950 .LVL510: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ECR_IDIR_Msk | TIM_ECR_FIDX_Msk | TIM_ECR_IPOS_Msk, + 6951 .loc 1 3258 3 is_stmt 1 discriminator 2 view .LVU2022 + 6952 0020 2968 ldr r1, [r5] + 6953 0022 8B6D ldr r3, [r1, #88] + 6954 0024 23F0E603 bic r3, r3, #230 + 6955 0028 6269 ldr r2, [r4, #20] + 6956 002a 207B ldrb r0, [r4, #12] @ zero_extendqisi2 + 6957 002c 0128 cmp r0, #1 + 6958 002e 0BD0 beq .L557 +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ECR_IDIR_Msk | TIM_ECR_FIDX_Msk | TIM_ECR_IPOS_Msk, + 6959 .loc 1 3258 3 is_stmt 0 view .LVU2023 + 6960 0030 0020 movs r0, #0 + 6961 .L553: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ECR_IDIR_Msk | TIM_ECR_FIDX_Msk | TIM_ECR_IPOS_Msk, + 6962 .loc 1 3258 3 discriminator 4 view .LVU2024 + 6963 0032 0243 orrs r2, r2, r0 + 6964 0034 2069 ldr r0, [r4, #16] + 6965 0036 0243 orrs r2, r2, r0 + 6966 0038 1343 orrs r3, r3, r2 + 6967 003a 43F00103 orr r3, r3, #1 + 6968 003e 8B65 str r3, [r1, #88] +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6969 .loc 1 3265 3 is_stmt 1 discriminator 4 view .LVU2025 +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6970 .loc 1 3265 3 discriminator 4 view .LVU2026 + 6971 0040 0020 movs r0, #0 + 6972 0042 85F83C00 strb r0, [r5, #60] +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6973 .loc 1 3265 3 discriminator 4 view .LVU2027 +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 6974 .loc 1 3267 3 discriminator 4 view .LVU2028 + 6975 .LVL511: + 6976 .L552: +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6977 .loc 1 3268 1 is_stmt 0 view .LVU2029 + 6978 0046 38BD pop {r3, r4, r5, pc} + 6979 .LVL512: + 6980 .L557: +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_ECR_IDIR_Msk | TIM_ECR_FIDX_Msk | TIM_ECR_IPOS_Msk, + 6981 .loc 1 3258 3 view .LVU2030 + 6982 0048 2020 movs r0, #32 + 6983 004a F2E7 b .L553 + 6984 .LVL513: + 6985 .L554: +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6986 .loc 1 3249 3 view .LVU2031 + 6987 004c 0220 movs r0, #2 + 6988 .LVL514: +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 6989 .loc 1 3249 3 view .LVU2032 + 6990 004e FAE7 b .L552 + 6991 .cfi_endproc + 6992 .LFE378: + 6994 .section .text.HAL_TIMEx_EnableEncoderIndex,"ax",%progbits + ARM GAS /tmp/cc9HXhVl.s page 222 + + + 6995 .align 1 + 6996 .global HAL_TIMEx_EnableEncoderIndex + 6997 .syntax unified + 6998 .thumb + 6999 .thumb_func + 7001 HAL_TIMEx_EnableEncoderIndex: + 7002 .LVL515: + 7003 .LFB379: +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 7004 .loc 1 3276 1 is_stmt 1 view -0 + 7005 .cfi_startproc + 7006 @ args = 0, pretend = 0, frame = 0 + 7007 @ frame_needed = 0, uses_anonymous_args = 0 + 7008 @ link register save eliminated. +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7009 .loc 1 3278 3 view .LVU2034 +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 7010 .loc 1 3280 3 view .LVU2035 + 7011 0000 0268 ldr r2, [r0] + 7012 0002 936D ldr r3, [r2, #88] + 7013 0004 43F00103 orr r3, r3, #1 + 7014 0008 9365 str r3, [r2, #88] +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 7015 .loc 1 3281 3 view .LVU2036 +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7016 .loc 1 3282 1 is_stmt 0 view .LVU2037 + 7017 000a 0020 movs r0, #0 + 7018 .LVL516: +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7019 .loc 1 3282 1 view .LVU2038 + 7020 000c 7047 bx lr + 7021 .cfi_endproc + 7022 .LFE379: + 7024 .section .text.HAL_TIMEx_DisableEncoderIndex,"ax",%progbits + 7025 .align 1 + 7026 .global HAL_TIMEx_DisableEncoderIndex + 7027 .syntax unified + 7028 .thumb + 7029 .thumb_func + 7031 HAL_TIMEx_DisableEncoderIndex: + 7032 .LVL517: + 7033 .LFB380: +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 7034 .loc 1 3290 1 is_stmt 1 view -0 + 7035 .cfi_startproc + 7036 @ args = 0, pretend = 0, frame = 0 + 7037 @ frame_needed = 0, uses_anonymous_args = 0 + 7038 @ link register save eliminated. +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7039 .loc 1 3292 3 view .LVU2040 +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 7040 .loc 1 3294 3 view .LVU2041 + 7041 0000 0268 ldr r2, [r0] + 7042 0002 936D ldr r3, [r2, #88] + 7043 0004 23F00103 bic r3, r3, #1 + 7044 0008 9365 str r3, [r2, #88] +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + ARM GAS /tmp/cc9HXhVl.s page 223 + + + 7045 .loc 1 3295 3 view .LVU2042 +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7046 .loc 1 3296 1 is_stmt 0 view .LVU2043 + 7047 000a 0020 movs r0, #0 + 7048 .LVL518: +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7049 .loc 1 3296 1 view .LVU2044 + 7050 000c 7047 bx lr + 7051 .cfi_endproc + 7052 .LFE380: + 7054 .section .text.HAL_TIMEx_EnableEncoderFirstIndex,"ax",%progbits + 7055 .align 1 + 7056 .global HAL_TIMEx_EnableEncoderFirstIndex + 7057 .syntax unified + 7058 .thumb + 7059 .thumb_func + 7061 HAL_TIMEx_EnableEncoderFirstIndex: + 7062 .LVL519: + 7063 .LFB381: +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 7064 .loc 1 3304 1 is_stmt 1 view -0 + 7065 .cfi_startproc + 7066 @ args = 0, pretend = 0, frame = 0 + 7067 @ frame_needed = 0, uses_anonymous_args = 0 + 7068 @ link register save eliminated. +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7069 .loc 1 3306 3 view .LVU2046 +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 7070 .loc 1 3308 3 view .LVU2047 + 7071 0000 0268 ldr r2, [r0] + 7072 0002 936D ldr r3, [r2, #88] + 7073 0004 43F02003 orr r3, r3, #32 + 7074 0008 9365 str r3, [r2, #88] +3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 7075 .loc 1 3309 3 view .LVU2048 +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7076 .loc 1 3310 1 is_stmt 0 view .LVU2049 + 7077 000a 0020 movs r0, #0 + 7078 .LVL520: +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7079 .loc 1 3310 1 view .LVU2050 + 7080 000c 7047 bx lr + 7081 .cfi_endproc + 7082 .LFE381: + 7084 .section .text.HAL_TIMEx_DisableEncoderFirstIndex,"ax",%progbits + 7085 .align 1 + 7086 .global HAL_TIMEx_DisableEncoderFirstIndex + 7087 .syntax unified + 7088 .thumb + 7089 .thumb_func + 7091 HAL_TIMEx_DisableEncoderFirstIndex: + 7092 .LVL521: + 7093 .LFB382: +3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Check the parameters */ + 7094 .loc 1 3318 1 is_stmt 1 view -0 + 7095 .cfi_startproc + 7096 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/cc9HXhVl.s page 224 + + + 7097 @ frame_needed = 0, uses_anonymous_args = 0 + 7098 @ link register save eliminated. +3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7099 .loc 1 3320 3 view .LVU2052 +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return HAL_OK; + 7100 .loc 1 3322 3 view .LVU2053 + 7101 0000 0268 ldr r2, [r0] + 7102 0002 936D ldr r3, [r2, #88] + 7103 0004 23F02003 bic r3, r3, #32 + 7104 0008 9365 str r3, [r2, #88] +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 7105 .loc 1 3323 3 view .LVU2054 +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7106 .loc 1 3324 1 is_stmt 0 view .LVU2055 + 7107 000a 0020 movs r0, #0 + 7108 .LVL522: +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7109 .loc 1 3324 1 view .LVU2056 + 7110 000c 7047 bx lr + 7111 .cfi_endproc + 7112 .LFE382: + 7114 .section .text.HAL_TIMEx_CommutCallback,"ax",%progbits + 7115 .align 1 + 7116 .weak HAL_TIMEx_CommutCallback + 7117 .syntax unified + 7118 .thumb + 7119 .thumb_func + 7121 HAL_TIMEx_CommutCallback: + 7122 .LVL523: + 7123 .LFB383: +3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7124 .loc 1 3352 1 is_stmt 1 view -0 + 7125 .cfi_startproc + 7126 @ args = 0, pretend = 0, frame = 0 + 7127 @ frame_needed = 0, uses_anonymous_args = 0 + 7128 @ link register save eliminated. +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7129 .loc 1 3354 3 view .LVU2058 +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 7130 .loc 1 3359 1 is_stmt 0 view .LVU2059 + 7131 0000 7047 bx lr + 7132 .cfi_endproc + 7133 .LFE383: + 7135 .section .text.TIMEx_DMACommutationCplt,"ax",%progbits + 7136 .align 1 + 7137 .global TIMEx_DMACommutationCplt + 7138 .syntax unified + 7139 .thumb + 7140 .thumb_func + 7142 TIMEx_DMACommutationCplt: + 7143 .LVL524: + 7144 .LFB393: +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 7145 .loc 1 3535 1 is_stmt 1 view -0 + 7146 .cfi_startproc + 7147 @ args = 0, pretend = 0, frame = 0 + 7148 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cc9HXhVl.s page 225 + + +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 7149 .loc 1 3535 1 is_stmt 0 view .LVU2061 + 7150 0000 08B5 push {r3, lr} + 7151 .LCFI56: + 7152 .cfi_def_cfa_offset 8 + 7153 .cfi_offset 3, -8 + 7154 .cfi_offset 14, -4 +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7155 .loc 1 3536 3 is_stmt 1 view .LVU2062 +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7156 .loc 1 3536 22 is_stmt 0 view .LVU2063 + 7157 0002 806A ldr r0, [r0, #40] + 7158 .LVL525: +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7159 .loc 1 3539 3 is_stmt 1 view .LVU2064 +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7160 .loc 1 3539 15 is_stmt 0 view .LVU2065 + 7161 0004 0123 movs r3, #1 + 7162 0006 80F83D30 strb r3, [r0, #61] +3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 7163 .loc 1 3544 3 is_stmt 1 view .LVU2066 + 7164 000a FFF7FEFF bl HAL_TIMEx_CommutCallback + 7165 .LVL526: +3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7166 .loc 1 3546 1 is_stmt 0 view .LVU2067 + 7167 000e 08BD pop {r3, pc} + 7168 .cfi_endproc + 7169 .LFE393: + 7171 .section .text.HAL_TIMEx_CommutHalfCpltCallback,"ax",%progbits + 7172 .align 1 + 7173 .weak HAL_TIMEx_CommutHalfCpltCallback + 7174 .syntax unified + 7175 .thumb + 7176 .thumb_func + 7178 HAL_TIMEx_CommutHalfCpltCallback: + 7179 .LVL527: + 7180 .LFB384: +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7181 .loc 1 3366 1 is_stmt 1 view -0 + 7182 .cfi_startproc + 7183 @ args = 0, pretend = 0, frame = 0 + 7184 @ frame_needed = 0, uses_anonymous_args = 0 + 7185 @ link register save eliminated. +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7186 .loc 1 3368 3 view .LVU2069 +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7187 .loc 1 3373 1 is_stmt 0 view .LVU2070 + 7188 0000 7047 bx lr + 7189 .cfi_endproc + 7190 .LFE384: + 7192 .section .text.TIMEx_DMACommutationHalfCplt,"ax",%progbits + 7193 .align 1 + 7194 .global TIMEx_DMACommutationHalfCplt + 7195 .syntax unified + 7196 .thumb + 7197 .thumb_func + 7199 TIMEx_DMACommutationHalfCplt: + ARM GAS /tmp/cc9HXhVl.s page 226 + + + 7200 .LVL528: + 7201 .LFB394: +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 7202 .loc 1 3554 1 is_stmt 1 view -0 + 7203 .cfi_startproc + 7204 @ args = 0, pretend = 0, frame = 0 + 7205 @ frame_needed = 0, uses_anonymous_args = 0 +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 7206 .loc 1 3554 1 is_stmt 0 view .LVU2072 + 7207 0000 08B5 push {r3, lr} + 7208 .LCFI57: + 7209 .cfi_def_cfa_offset 8 + 7210 .cfi_offset 3, -8 + 7211 .cfi_offset 14, -4 +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7212 .loc 1 3555 3 is_stmt 1 view .LVU2073 +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7213 .loc 1 3555 22 is_stmt 0 view .LVU2074 + 7214 0002 806A ldr r0, [r0, #40] + 7215 .LVL529: +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7216 .loc 1 3558 3 is_stmt 1 view .LVU2075 +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7217 .loc 1 3558 15 is_stmt 0 view .LVU2076 + 7218 0004 0123 movs r3, #1 + 7219 0006 80F83D30 strb r3, [r0, #61] +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + 7220 .loc 1 3563 3 is_stmt 1 view .LVU2077 + 7221 000a FFF7FEFF bl HAL_TIMEx_CommutHalfCpltCallback + 7222 .LVL530: +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7223 .loc 1 3565 1 is_stmt 0 view .LVU2078 + 7224 000e 08BD pop {r3, pc} + 7225 .cfi_endproc + 7226 .LFE394: + 7228 .section .text.HAL_TIMEx_BreakCallback,"ax",%progbits + 7229 .align 1 + 7230 .weak HAL_TIMEx_BreakCallback + 7231 .syntax unified + 7232 .thumb + 7233 .thumb_func + 7235 HAL_TIMEx_BreakCallback: + 7236 .LVL531: + 7237 .LFB385: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7238 .loc 1 3381 1 is_stmt 1 view -0 + 7239 .cfi_startproc + 7240 @ args = 0, pretend = 0, frame = 0 + 7241 @ frame_needed = 0, uses_anonymous_args = 0 + 7242 @ link register save eliminated. +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7243 .loc 1 3383 3 view .LVU2080 +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7244 .loc 1 3388 1 is_stmt 0 view .LVU2081 + 7245 0000 7047 bx lr + 7246 .cfi_endproc + 7247 .LFE385: + ARM GAS /tmp/cc9HXhVl.s page 227 + + + 7249 .section .text.HAL_TIMEx_Break2Callback,"ax",%progbits + 7250 .align 1 + 7251 .weak HAL_TIMEx_Break2Callback + 7252 .syntax unified + 7253 .thumb + 7254 .thumb_func + 7256 HAL_TIMEx_Break2Callback: + 7257 .LVL532: + 7258 .LFB386: +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7259 .loc 1 3396 1 is_stmt 1 view -0 + 7260 .cfi_startproc + 7261 @ args = 0, pretend = 0, frame = 0 + 7262 @ frame_needed = 0, uses_anonymous_args = 0 + 7263 @ link register save eliminated. +3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7264 .loc 1 3398 3 view .LVU2083 +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7265 .loc 1 3403 1 is_stmt 0 view .LVU2084 + 7266 0000 7047 bx lr + 7267 .cfi_endproc + 7268 .LFE386: + 7270 .section .text.HAL_TIMEx_EncoderIndexCallback,"ax",%progbits + 7271 .align 1 + 7272 .weak HAL_TIMEx_EncoderIndexCallback + 7273 .syntax unified + 7274 .thumb + 7275 .thumb_func + 7277 HAL_TIMEx_EncoderIndexCallback: + 7278 .LVL533: + 7279 .LFB387: +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7280 .loc 1 3411 1 is_stmt 1 view -0 + 7281 .cfi_startproc + 7282 @ args = 0, pretend = 0, frame = 0 + 7283 @ frame_needed = 0, uses_anonymous_args = 0 + 7284 @ link register save eliminated. +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7285 .loc 1 3413 3 view .LVU2086 +3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7286 .loc 1 3418 1 is_stmt 0 view .LVU2087 + 7287 0000 7047 bx lr + 7288 .cfi_endproc + 7289 .LFE387: + 7291 .section .text.HAL_TIMEx_DirectionChangeCallback,"ax",%progbits + 7292 .align 1 + 7293 .weak HAL_TIMEx_DirectionChangeCallback + 7294 .syntax unified + 7295 .thumb + 7296 .thumb_func + 7298 HAL_TIMEx_DirectionChangeCallback: + 7299 .LVL534: + 7300 .LFB388: +3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7301 .loc 1 3426 1 is_stmt 1 view -0 + 7302 .cfi_startproc + 7303 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/cc9HXhVl.s page 228 + + + 7304 @ frame_needed = 0, uses_anonymous_args = 0 + 7305 @ link register save eliminated. +3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7306 .loc 1 3428 3 view .LVU2089 +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7307 .loc 1 3433 1 is_stmt 0 view .LVU2090 + 7308 0000 7047 bx lr + 7309 .cfi_endproc + 7310 .LFE388: + 7312 .section .text.HAL_TIMEx_IndexErrorCallback,"ax",%progbits + 7313 .align 1 + 7314 .weak HAL_TIMEx_IndexErrorCallback + 7315 .syntax unified + 7316 .thumb + 7317 .thumb_func + 7319 HAL_TIMEx_IndexErrorCallback: + 7320 .LVL535: + 7321 .LFB389: +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7322 .loc 1 3441 1 is_stmt 1 view -0 + 7323 .cfi_startproc + 7324 @ args = 0, pretend = 0, frame = 0 + 7325 @ frame_needed = 0, uses_anonymous_args = 0 + 7326 @ link register save eliminated. +3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7327 .loc 1 3443 3 view .LVU2092 +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7328 .loc 1 3448 1 is_stmt 0 view .LVU2093 + 7329 0000 7047 bx lr + 7330 .cfi_endproc + 7331 .LFE389: + 7333 .section .text.HAL_TIMEx_TransitionErrorCallback,"ax",%progbits + 7334 .align 1 + 7335 .weak HAL_TIMEx_TransitionErrorCallback + 7336 .syntax unified + 7337 .thumb + 7338 .thumb_func + 7340 HAL_TIMEx_TransitionErrorCallback: + 7341 .LVL536: + 7342 .LFB390: +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /* Prevent unused argument(s) compilation warning */ + 7343 .loc 1 3456 1 is_stmt 1 view -0 + 7344 .cfi_startproc + 7345 @ args = 0, pretend = 0, frame = 0 + 7346 @ frame_needed = 0, uses_anonymous_args = 0 + 7347 @ link register save eliminated. +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7348 .loc 1 3458 3 view .LVU2095 +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7349 .loc 1 3463 1 is_stmt 0 view .LVU2096 + 7350 0000 7047 bx lr + 7351 .cfi_endproc + 7352 .LFE390: + 7354 .section .text.HAL_TIMEx_HallSensor_GetState,"ax",%progbits + 7355 .align 1 + 7356 .global HAL_TIMEx_HallSensor_GetState + 7357 .syntax unified + ARM GAS /tmp/cc9HXhVl.s page 229 + + + 7358 .thumb + 7359 .thumb_func + 7361 HAL_TIMEx_HallSensor_GetState: + 7362 .LVL537: + 7363 .LFB391: +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** return htim->State; + 7364 .loc 1 3490 1 is_stmt 1 view -0 + 7365 .cfi_startproc + 7366 @ args = 0, pretend = 0, frame = 0 + 7367 @ frame_needed = 0, uses_anonymous_args = 0 + 7368 @ link register save eliminated. +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 7369 .loc 1 3491 3 view .LVU2098 +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 7370 .loc 1 3491 14 is_stmt 0 view .LVU2099 + 7371 0000 90F83D00 ldrb r0, [r0, #61] @ zero_extendqisi2 + 7372 .LVL538: +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7373 .loc 1 3492 1 view .LVU2100 + 7374 0004 7047 bx lr + 7375 .cfi_endproc + 7376 .LFE391: + 7378 .section .text.HAL_TIMEx_GetChannelNState,"ax",%progbits + 7379 .align 1 + 7380 .global HAL_TIMEx_GetChannelNState + 7381 .syntax unified + 7382 .thumb + 7383 .thumb_func + 7385 HAL_TIMEx_GetChannelNState: + 7386 .LVL539: + 7387 .LFB392: +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** HAL_TIM_ChannelStateTypeDef channel_state; + 7388 .loc 1 3506 1 is_stmt 1 view -0 + 7389 .cfi_startproc + 7390 @ args = 0, pretend = 0, frame = 0 + 7391 @ frame_needed = 0, uses_anonymous_args = 0 + 7392 @ link register save eliminated. +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7393 .loc 1 3507 3 view .LVU2102 +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7394 .loc 1 3510 3 view .LVU2103 +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7395 .loc 1 3512 3 view .LVU2104 +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7396 .loc 1 3512 19 is_stmt 0 view .LVU2105 + 7397 0000 19B9 cbnz r1, .L576 +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7398 .loc 1 3512 19 discriminator 1 view .LVU2106 + 7399 0002 90F84400 ldrb r0, [r0, #68] @ zero_extendqisi2 + 7400 .LVL540: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7401 .loc 1 3512 19 discriminator 1 view .LVU2107 + 7402 0006 C0B2 uxtb r0, r0 + 7403 0008 7047 bx lr + 7404 .LVL541: + 7405 .L576: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + ARM GAS /tmp/cc9HXhVl.s page 230 + + + 7406 .loc 1 3512 19 discriminator 2 view .LVU2108 + 7407 000a 0429 cmp r1, #4 + 7408 000c 05D0 beq .L580 +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7409 .loc 1 3512 19 discriminator 5 view .LVU2109 + 7410 000e 0829 cmp r1, #8 + 7411 0010 07D0 beq .L581 +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7412 .loc 1 3512 19 discriminator 8 view .LVU2110 + 7413 0012 90F84700 ldrb r0, [r0, #71] @ zero_extendqisi2 + 7414 .LVL542: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7415 .loc 1 3512 19 discriminator 8 view .LVU2111 + 7416 0016 C0B2 uxtb r0, r0 + 7417 .LVL543: +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** } + 7418 .loc 1 3514 3 is_stmt 1 discriminator 8 view .LVU2112 +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** /** + 7419 .loc 1 3515 1 is_stmt 0 discriminator 8 view .LVU2113 + 7420 0018 7047 bx lr + 7421 .LVL544: + 7422 .L580: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7423 .loc 1 3512 19 discriminator 4 view .LVU2114 + 7424 001a 90F84500 ldrb r0, [r0, #69] @ zero_extendqisi2 + 7425 .LVL545: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7426 .loc 1 3512 19 discriminator 4 view .LVU2115 + 7427 001e C0B2 uxtb r0, r0 + 7428 0020 7047 bx lr + 7429 .LVL546: + 7430 .L581: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7431 .loc 1 3512 19 discriminator 7 view .LVU2116 + 7432 0022 90F84600 ldrb r0, [r0, #70] @ zero_extendqisi2 + 7433 .LVL547: +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_tim_ex.c **** + 7434 .loc 1 3512 19 discriminator 7 view .LVU2117 + 7435 0026 C0B2 uxtb r0, r0 + 7436 0028 7047 bx lr + 7437 .cfi_endproc + 7438 .LFE392: + 7440 .text + 7441 .Letext0: + 7442 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 7443 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 7444 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 7445 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 7446 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 7447 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h" + 7448 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h" + 7449 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/cc9HXhVl.s page 231 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_tim_ex.c + /tmp/cc9HXhVl.s:21 .text.TIM_CCxNChannelCmd:00000000 $t + /tmp/cc9HXhVl.s:26 .text.TIM_CCxNChannelCmd:00000000 TIM_CCxNChannelCmd + /tmp/cc9HXhVl.s:64 .text.TIM_DMAErrorCCxN:00000000 $t + /tmp/cc9HXhVl.s:69 .text.TIM_DMAErrorCCxN:00000000 TIM_DMAErrorCCxN + /tmp/cc9HXhVl.s:149 .text.TIM_DMADelayPulseNCplt:00000000 $t + /tmp/cc9HXhVl.s:154 .text.TIM_DMADelayPulseNCplt:00000000 TIM_DMADelayPulseNCplt + /tmp/cc9HXhVl.s:274 .text.HAL_TIMEx_HallSensor_MspInit:00000000 $t + /tmp/cc9HXhVl.s:280 .text.HAL_TIMEx_HallSensor_MspInit:00000000 HAL_TIMEx_HallSensor_MspInit + /tmp/cc9HXhVl.s:295 .text.HAL_TIMEx_HallSensor_Init:00000000 $t + /tmp/cc9HXhVl.s:301 .text.HAL_TIMEx_HallSensor_Init:00000000 HAL_TIMEx_HallSensor_Init + /tmp/cc9HXhVl.s:518 .text.HAL_TIMEx_HallSensor_MspDeInit:00000000 $t + /tmp/cc9HXhVl.s:524 .text.HAL_TIMEx_HallSensor_MspDeInit:00000000 HAL_TIMEx_HallSensor_MspDeInit + /tmp/cc9HXhVl.s:539 .text.HAL_TIMEx_HallSensor_DeInit:00000000 $t + /tmp/cc9HXhVl.s:545 .text.HAL_TIMEx_HallSensor_DeInit:00000000 HAL_TIMEx_HallSensor_DeInit + /tmp/cc9HXhVl.s:615 .text.HAL_TIMEx_HallSensor_Start:00000000 $t + /tmp/cc9HXhVl.s:621 .text.HAL_TIMEx_HallSensor_Start:00000000 HAL_TIMEx_HallSensor_Start + /tmp/cc9HXhVl.s:784 .text.HAL_TIMEx_HallSensor_Start:000000b0 $d + /tmp/cc9HXhVl.s:790 .text.HAL_TIMEx_HallSensor_Stop:00000000 $t + /tmp/cc9HXhVl.s:796 .text.HAL_TIMEx_HallSensor_Stop:00000000 HAL_TIMEx_HallSensor_Stop + /tmp/cc9HXhVl.s:855 .text.HAL_TIMEx_HallSensor_Start_IT:00000000 $t + /tmp/cc9HXhVl.s:861 .text.HAL_TIMEx_HallSensor_Start_IT:00000000 HAL_TIMEx_HallSensor_Start_IT + /tmp/cc9HXhVl.s:1032 .text.HAL_TIMEx_HallSensor_Start_IT:000000bc $d + /tmp/cc9HXhVl.s:1038 .text.HAL_TIMEx_HallSensor_Stop_IT:00000000 $t + /tmp/cc9HXhVl.s:1044 .text.HAL_TIMEx_HallSensor_Stop_IT:00000000 HAL_TIMEx_HallSensor_Stop_IT + /tmp/cc9HXhVl.s:1108 .text.HAL_TIMEx_HallSensor_Start_DMA:00000000 $t + /tmp/cc9HXhVl.s:1114 .text.HAL_TIMEx_HallSensor_Start_DMA:00000000 HAL_TIMEx_HallSensor_Start_DMA + /tmp/cc9HXhVl.s:1305 .text.HAL_TIMEx_HallSensor_Start_DMA:000000d4 $d + /tmp/cc9HXhVl.s:1314 .text.HAL_TIMEx_HallSensor_Stop_DMA:00000000 $t + /tmp/cc9HXhVl.s:1320 .text.HAL_TIMEx_HallSensor_Stop_DMA:00000000 HAL_TIMEx_HallSensor_Stop_DMA + /tmp/cc9HXhVl.s:1385 .text.HAL_TIMEx_OCN_Start:00000000 $t + /tmp/cc9HXhVl.s:1391 .text.HAL_TIMEx_OCN_Start:00000000 HAL_TIMEx_OCN_Start + /tmp/cc9HXhVl.s:1579 .text.HAL_TIMEx_OCN_Start:000000ec $d + /tmp/cc9HXhVl.s:1585 .text.HAL_TIMEx_OCN_Stop:00000000 $t + /tmp/cc9HXhVl.s:1591 .text.HAL_TIMEx_OCN_Stop:00000000 HAL_TIMEx_OCN_Stop + /tmp/cc9HXhVl.s:1688 .text.HAL_TIMEx_OCN_Start_IT:00000000 $t + /tmp/cc9HXhVl.s:1694 .text.HAL_TIMEx_OCN_Start_IT:00000000 HAL_TIMEx_OCN_Start_IT + /tmp/cc9HXhVl.s:1848 .text.HAL_TIMEx_OCN_Start_IT:000000d4 $d + /tmp/cc9HXhVl.s:1861 .text.HAL_TIMEx_OCN_Start_IT:00000108 $t + /tmp/cc9HXhVl.s:1949 .text.HAL_TIMEx_OCN_Start_IT:00000164 $d + /tmp/cc9HXhVl.s:1955 .text.HAL_TIMEx_OCN_Stop_IT:00000000 $t + /tmp/cc9HXhVl.s:1961 .text.HAL_TIMEx_OCN_Stop_IT:00000000 HAL_TIMEx_OCN_Stop_IT + /tmp/cc9HXhVl.s:1987 .text.HAL_TIMEx_OCN_Stop_IT:0000000e $d + /tmp/cc9HXhVl.s:2148 .text.HAL_TIMEx_OCN_Start_DMA:00000000 $t + /tmp/cc9HXhVl.s:2154 .text.HAL_TIMEx_OCN_Start_DMA:00000000 HAL_TIMEx_OCN_Start_DMA + /tmp/cc9HXhVl.s:2420 .text.HAL_TIMEx_OCN_Start_DMA:00000164 $d + /tmp/cc9HXhVl.s:2433 .text.HAL_TIMEx_OCN_Start_DMA:00000198 $t + /tmp/cc9HXhVl.s:2637 .text.HAL_TIMEx_OCN_Start_DMA:0000026c $d + /tmp/cc9HXhVl.s:2646 .text.HAL_TIMEx_OCN_Stop_DMA:00000000 $t + /tmp/cc9HXhVl.s:2652 .text.HAL_TIMEx_OCN_Stop_DMA:00000000 HAL_TIMEx_OCN_Stop_DMA + /tmp/cc9HXhVl.s:2677 .text.HAL_TIMEx_OCN_Stop_DMA:0000000e $d + /tmp/cc9HXhVl.s:2845 .text.HAL_TIMEx_PWMN_Start:00000000 $t + /tmp/cc9HXhVl.s:2851 .text.HAL_TIMEx_PWMN_Start:00000000 HAL_TIMEx_PWMN_Start + /tmp/cc9HXhVl.s:3039 .text.HAL_TIMEx_PWMN_Start:000000ec $d + /tmp/cc9HXhVl.s:3045 .text.HAL_TIMEx_PWMN_Stop:00000000 $t + /tmp/cc9HXhVl.s:3051 .text.HAL_TIMEx_PWMN_Stop:00000000 HAL_TIMEx_PWMN_Stop + ARM GAS /tmp/cc9HXhVl.s page 232 + + + /tmp/cc9HXhVl.s:3148 .text.HAL_TIMEx_PWMN_Start_IT:00000000 $t + /tmp/cc9HXhVl.s:3154 .text.HAL_TIMEx_PWMN_Start_IT:00000000 HAL_TIMEx_PWMN_Start_IT + /tmp/cc9HXhVl.s:3308 .text.HAL_TIMEx_PWMN_Start_IT:000000d4 $d + /tmp/cc9HXhVl.s:3321 .text.HAL_TIMEx_PWMN_Start_IT:00000108 $t + /tmp/cc9HXhVl.s:3409 .text.HAL_TIMEx_PWMN_Start_IT:00000164 $d + /tmp/cc9HXhVl.s:3415 .text.HAL_TIMEx_PWMN_Stop_IT:00000000 $t + /tmp/cc9HXhVl.s:3421 .text.HAL_TIMEx_PWMN_Stop_IT:00000000 HAL_TIMEx_PWMN_Stop_IT + /tmp/cc9HXhVl.s:3447 .text.HAL_TIMEx_PWMN_Stop_IT:0000000e $d + /tmp/cc9HXhVl.s:3608 .text.HAL_TIMEx_PWMN_Start_DMA:00000000 $t + /tmp/cc9HXhVl.s:3614 .text.HAL_TIMEx_PWMN_Start_DMA:00000000 HAL_TIMEx_PWMN_Start_DMA + /tmp/cc9HXhVl.s:3880 .text.HAL_TIMEx_PWMN_Start_DMA:00000164 $d + /tmp/cc9HXhVl.s:3893 .text.HAL_TIMEx_PWMN_Start_DMA:00000198 $t + /tmp/cc9HXhVl.s:4097 .text.HAL_TIMEx_PWMN_Start_DMA:0000026c $d + /tmp/cc9HXhVl.s:4106 .text.HAL_TIMEx_PWMN_Stop_DMA:00000000 $t + /tmp/cc9HXhVl.s:4112 .text.HAL_TIMEx_PWMN_Stop_DMA:00000000 HAL_TIMEx_PWMN_Stop_DMA + /tmp/cc9HXhVl.s:4137 .text.HAL_TIMEx_PWMN_Stop_DMA:0000000e $d + /tmp/cc9HXhVl.s:4305 .text.HAL_TIMEx_OnePulseN_Start:00000000 $t + /tmp/cc9HXhVl.s:4311 .text.HAL_TIMEx_OnePulseN_Start:00000000 HAL_TIMEx_OnePulseN_Start + /tmp/cc9HXhVl.s:4439 .text.HAL_TIMEx_OnePulseN_Stop:00000000 $t + /tmp/cc9HXhVl.s:4445 .text.HAL_TIMEx_OnePulseN_Stop:00000000 HAL_TIMEx_OnePulseN_Stop + /tmp/cc9HXhVl.s:4540 .text.HAL_TIMEx_OnePulseN_Start_IT:00000000 $t + /tmp/cc9HXhVl.s:4546 .text.HAL_TIMEx_OnePulseN_Start_IT:00000000 HAL_TIMEx_OnePulseN_Start_IT + /tmp/cc9HXhVl.s:4684 .text.HAL_TIMEx_OnePulseN_Stop_IT:00000000 $t + /tmp/cc9HXhVl.s:4690 .text.HAL_TIMEx_OnePulseN_Stop_IT:00000000 HAL_TIMEx_OnePulseN_Stop_IT + /tmp/cc9HXhVl.s:4795 .text.HAL_TIMEx_ConfigCommutEvent:00000000 $t + /tmp/cc9HXhVl.s:4801 .text.HAL_TIMEx_ConfigCommutEvent:00000000 HAL_TIMEx_ConfigCommutEvent + /tmp/cc9HXhVl.s:4944 .text.HAL_TIMEx_ConfigCommutEvent:0000009c $d + /tmp/cc9HXhVl.s:4950 .text.HAL_TIMEx_ConfigCommutEvent_IT:00000000 $t + /tmp/cc9HXhVl.s:4956 .text.HAL_TIMEx_ConfigCommutEvent_IT:00000000 HAL_TIMEx_ConfigCommutEvent_IT + /tmp/cc9HXhVl.s:5099 .text.HAL_TIMEx_ConfigCommutEvent_IT:0000009c $d + /tmp/cc9HXhVl.s:5105 .text.HAL_TIMEx_ConfigCommutEvent_DMA:00000000 $t + /tmp/cc9HXhVl.s:5111 .text.HAL_TIMEx_ConfigCommutEvent_DMA:00000000 HAL_TIMEx_ConfigCommutEvent_DMA + /tmp/cc9HXhVl.s:5272 .text.HAL_TIMEx_ConfigCommutEvent_DMA:000000b0 $d + /tmp/cc9HXhVl.s:7142 .text.TIMEx_DMACommutationCplt:00000000 TIMEx_DMACommutationCplt + /tmp/cc9HXhVl.s:7199 .text.TIMEx_DMACommutationHalfCplt:00000000 TIMEx_DMACommutationHalfCplt + /tmp/cc9HXhVl.s:5281 .text.HAL_TIMEx_MasterConfigSynchronization:00000000 $t + /tmp/cc9HXhVl.s:5287 .text.HAL_TIMEx_MasterConfigSynchronization:00000000 HAL_TIMEx_MasterConfigSynchronization + /tmp/cc9HXhVl.s:5441 .text.HAL_TIMEx_MasterConfigSynchronization:00000090 $d + /tmp/cc9HXhVl.s:5446 .text.HAL_TIMEx_ConfigBreakDeadTime:00000000 $t + /tmp/cc9HXhVl.s:5452 .text.HAL_TIMEx_ConfigBreakDeadTime:00000000 HAL_TIMEx_ConfigBreakDeadTime + /tmp/cc9HXhVl.s:5663 .text.HAL_TIMEx_ConfigBreakDeadTime:000000b8 $d + /tmp/cc9HXhVl.s:5668 .text.HAL_TIMEx_ConfigBreakInput:00000000 $t + /tmp/cc9HXhVl.s:5674 .text.HAL_TIMEx_ConfigBreakInput:00000000 HAL_TIMEx_ConfigBreakInput + /tmp/cc9HXhVl.s:5723 .text.HAL_TIMEx_ConfigBreakInput:0000001e $d + /tmp/cc9HXhVl.s:5739 .text.HAL_TIMEx_ConfigBreakInput:0000002e $t + /tmp/cc9HXhVl.s:5931 .text.HAL_TIMEx_RemapConfig:00000000 $t + /tmp/cc9HXhVl.s:5937 .text.HAL_TIMEx_RemapConfig:00000000 HAL_TIMEx_RemapConfig + /tmp/cc9HXhVl.s:5986 .text.HAL_TIMEx_TISelection:00000000 $t + /tmp/cc9HXhVl.s:5992 .text.HAL_TIMEx_TISelection:00000000 HAL_TIMEx_TISelection + /tmp/cc9HXhVl.s:6022 .text.HAL_TIMEx_TISelection:00000018 $d + /tmp/cc9HXhVl.s:6142 .text.HAL_TIMEx_TISelection:00000098 $d + /tmp/cc9HXhVl.s:6147 .text.HAL_TIMEx_GroupChannel5:00000000 $t + /tmp/cc9HXhVl.s:6153 .text.HAL_TIMEx_GroupChannel5:00000000 HAL_TIMEx_GroupChannel5 + /tmp/cc9HXhVl.s:6226 .text.HAL_TIMEx_DisarmBreakInput:00000000 $t + /tmp/cc9HXhVl.s:6232 .text.HAL_TIMEx_DisarmBreakInput:00000000 HAL_TIMEx_DisarmBreakInput + /tmp/cc9HXhVl.s:6319 .text.HAL_TIMEx_DisarmBreakInput:00000048 $d + /tmp/cc9HXhVl.s:6325 .text.HAL_TIMEx_ReArmBreakInput:00000000 $t + ARM GAS /tmp/cc9HXhVl.s page 233 + + + /tmp/cc9HXhVl.s:6331 .text.HAL_TIMEx_ReArmBreakInput:00000000 HAL_TIMEx_ReArmBreakInput + /tmp/cc9HXhVl.s:6476 .text.HAL_TIMEx_DitheringEnable:00000000 $t + /tmp/cc9HXhVl.s:6482 .text.HAL_TIMEx_DitheringEnable:00000000 HAL_TIMEx_DitheringEnable + /tmp/cc9HXhVl.s:6506 .text.HAL_TIMEx_DitheringDisable:00000000 $t + /tmp/cc9HXhVl.s:6512 .text.HAL_TIMEx_DitheringDisable:00000000 HAL_TIMEx_DitheringDisable + /tmp/cc9HXhVl.s:6536 .text.HAL_TIMEx_OC_ConfigPulseOnCompare:00000000 $t + /tmp/cc9HXhVl.s:6542 .text.HAL_TIMEx_OC_ConfigPulseOnCompare:00000000 HAL_TIMEx_OC_ConfigPulseOnCompare + /tmp/cc9HXhVl.s:6625 .text.HAL_TIMEx_ConfigSlaveModePreload:00000000 $t + /tmp/cc9HXhVl.s:6631 .text.HAL_TIMEx_ConfigSlaveModePreload:00000000 HAL_TIMEx_ConfigSlaveModePreload + /tmp/cc9HXhVl.s:6657 .text.HAL_TIMEx_EnableSlaveModePreload:00000000 $t + /tmp/cc9HXhVl.s:6663 .text.HAL_TIMEx_EnableSlaveModePreload:00000000 HAL_TIMEx_EnableSlaveModePreload + /tmp/cc9HXhVl.s:6687 .text.HAL_TIMEx_DisableSlaveModePreload:00000000 $t + /tmp/cc9HXhVl.s:6693 .text.HAL_TIMEx_DisableSlaveModePreload:00000000 HAL_TIMEx_DisableSlaveModePreload + /tmp/cc9HXhVl.s:6717 .text.HAL_TIMEx_EnableDeadTimePreload:00000000 $t + /tmp/cc9HXhVl.s:6723 .text.HAL_TIMEx_EnableDeadTimePreload:00000000 HAL_TIMEx_EnableDeadTimePreload + /tmp/cc9HXhVl.s:6747 .text.HAL_TIMEx_DisableDeadTimePreload:00000000 $t + /tmp/cc9HXhVl.s:6753 .text.HAL_TIMEx_DisableDeadTimePreload:00000000 HAL_TIMEx_DisableDeadTimePreload + /tmp/cc9HXhVl.s:6777 .text.HAL_TIMEx_ConfigDeadTime:00000000 $t + /tmp/cc9HXhVl.s:6783 .text.HAL_TIMEx_ConfigDeadTime:00000000 HAL_TIMEx_ConfigDeadTime + /tmp/cc9HXhVl.s:6809 .text.HAL_TIMEx_ConfigAsymmetricalDeadTime:00000000 $t + /tmp/cc9HXhVl.s:6815 .text.HAL_TIMEx_ConfigAsymmetricalDeadTime:00000000 HAL_TIMEx_ConfigAsymmetricalDeadTime + /tmp/cc9HXhVl.s:6841 .text.HAL_TIMEx_EnableAsymmetricalDeadTime:00000000 $t + /tmp/cc9HXhVl.s:6847 .text.HAL_TIMEx_EnableAsymmetricalDeadTime:00000000 HAL_TIMEx_EnableAsymmetricalDeadTime + /tmp/cc9HXhVl.s:6871 .text.HAL_TIMEx_DisableAsymmetricalDeadTime:00000000 $t + /tmp/cc9HXhVl.s:6877 .text.HAL_TIMEx_DisableAsymmetricalDeadTime:00000000 HAL_TIMEx_DisableAsymmetricalDeadTime + /tmp/cc9HXhVl.s:6901 .text.HAL_TIMEx_ConfigEncoderIndex:00000000 $t + /tmp/cc9HXhVl.s:6907 .text.HAL_TIMEx_ConfigEncoderIndex:00000000 HAL_TIMEx_ConfigEncoderIndex + /tmp/cc9HXhVl.s:6995 .text.HAL_TIMEx_EnableEncoderIndex:00000000 $t + /tmp/cc9HXhVl.s:7001 .text.HAL_TIMEx_EnableEncoderIndex:00000000 HAL_TIMEx_EnableEncoderIndex + /tmp/cc9HXhVl.s:7025 .text.HAL_TIMEx_DisableEncoderIndex:00000000 $t + /tmp/cc9HXhVl.s:7031 .text.HAL_TIMEx_DisableEncoderIndex:00000000 HAL_TIMEx_DisableEncoderIndex + /tmp/cc9HXhVl.s:7055 .text.HAL_TIMEx_EnableEncoderFirstIndex:00000000 $t + /tmp/cc9HXhVl.s:7061 .text.HAL_TIMEx_EnableEncoderFirstIndex:00000000 HAL_TIMEx_EnableEncoderFirstIndex + /tmp/cc9HXhVl.s:7085 .text.HAL_TIMEx_DisableEncoderFirstIndex:00000000 $t + /tmp/cc9HXhVl.s:7091 .text.HAL_TIMEx_DisableEncoderFirstIndex:00000000 HAL_TIMEx_DisableEncoderFirstIndex + /tmp/cc9HXhVl.s:7115 .text.HAL_TIMEx_CommutCallback:00000000 $t + /tmp/cc9HXhVl.s:7121 .text.HAL_TIMEx_CommutCallback:00000000 HAL_TIMEx_CommutCallback + /tmp/cc9HXhVl.s:7136 .text.TIMEx_DMACommutationCplt:00000000 $t + /tmp/cc9HXhVl.s:7172 .text.HAL_TIMEx_CommutHalfCpltCallback:00000000 $t + /tmp/cc9HXhVl.s:7178 .text.HAL_TIMEx_CommutHalfCpltCallback:00000000 HAL_TIMEx_CommutHalfCpltCallback + /tmp/cc9HXhVl.s:7193 .text.TIMEx_DMACommutationHalfCplt:00000000 $t + /tmp/cc9HXhVl.s:7229 .text.HAL_TIMEx_BreakCallback:00000000 $t + /tmp/cc9HXhVl.s:7235 .text.HAL_TIMEx_BreakCallback:00000000 HAL_TIMEx_BreakCallback + /tmp/cc9HXhVl.s:7250 .text.HAL_TIMEx_Break2Callback:00000000 $t + /tmp/cc9HXhVl.s:7256 .text.HAL_TIMEx_Break2Callback:00000000 HAL_TIMEx_Break2Callback + /tmp/cc9HXhVl.s:7271 .text.HAL_TIMEx_EncoderIndexCallback:00000000 $t + /tmp/cc9HXhVl.s:7277 .text.HAL_TIMEx_EncoderIndexCallback:00000000 HAL_TIMEx_EncoderIndexCallback + /tmp/cc9HXhVl.s:7292 .text.HAL_TIMEx_DirectionChangeCallback:00000000 $t + /tmp/cc9HXhVl.s:7298 .text.HAL_TIMEx_DirectionChangeCallback:00000000 HAL_TIMEx_DirectionChangeCallback + /tmp/cc9HXhVl.s:7313 .text.HAL_TIMEx_IndexErrorCallback:00000000 $t + /tmp/cc9HXhVl.s:7319 .text.HAL_TIMEx_IndexErrorCallback:00000000 HAL_TIMEx_IndexErrorCallback + /tmp/cc9HXhVl.s:7334 .text.HAL_TIMEx_TransitionErrorCallback:00000000 $t + /tmp/cc9HXhVl.s:7340 .text.HAL_TIMEx_TransitionErrorCallback:00000000 HAL_TIMEx_TransitionErrorCallback + /tmp/cc9HXhVl.s:7355 .text.HAL_TIMEx_HallSensor_GetState:00000000 $t + /tmp/cc9HXhVl.s:7361 .text.HAL_TIMEx_HallSensor_GetState:00000000 HAL_TIMEx_HallSensor_GetState + /tmp/cc9HXhVl.s:7379 .text.HAL_TIMEx_GetChannelNState:00000000 $t + /tmp/cc9HXhVl.s:7385 .text.HAL_TIMEx_GetChannelNState:00000000 HAL_TIMEx_GetChannelNState + ARM GAS /tmp/cc9HXhVl.s page 234 + + + /tmp/cc9HXhVl.s:2000 .text.HAL_TIMEx_OCN_Stop_IT:0000001b $d + /tmp/cc9HXhVl.s:2000 .text.HAL_TIMEx_OCN_Stop_IT:0000001c $t + /tmp/cc9HXhVl.s:2690 .text.HAL_TIMEx_OCN_Stop_DMA:0000001b $d + /tmp/cc9HXhVl.s:2690 .text.HAL_TIMEx_OCN_Stop_DMA:0000001c $t + /tmp/cc9HXhVl.s:3460 .text.HAL_TIMEx_PWMN_Stop_IT:0000001b $d + /tmp/cc9HXhVl.s:3460 .text.HAL_TIMEx_PWMN_Stop_IT:0000001c $t + /tmp/cc9HXhVl.s:4150 .text.HAL_TIMEx_PWMN_Stop_DMA:0000001b $d + /tmp/cc9HXhVl.s:4150 .text.HAL_TIMEx_PWMN_Stop_DMA:0000001c $t + /tmp/cc9HXhVl.s:6035 .text.HAL_TIMEx_TISelection:00000025 $d + /tmp/cc9HXhVl.s:6035 .text.HAL_TIMEx_TISelection:00000026 $t + +UNDEFINED SYMBOLS +HAL_TIM_ErrorCallback +HAL_TIM_PWM_PulseFinishedCallback +TIM_Base_SetConfig +TIM_TI1_SetConfig +TIM_OC2_SetConfig +TIM_CCxChannelCmd +HAL_DMA_Start_IT +TIM_DMACaptureCplt +TIM_DMACaptureHalfCplt +TIM_DMAError +HAL_DMA_Abort_IT +TIM_DMADelayPulseHalfCplt +HAL_GetTick +TIM_ETR_SetConfig diff --git a/squeow_sw/build/stm32g4xx_hal_tim_ex.o b/squeow_sw/build/stm32g4xx_hal_tim_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..87e517d7ed99beb4b5d214012cf2f5a5ffc72850 GIT binary patch literal 87236 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 R&#M)mC)8cb;tgKj{{yAUwu1lw literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_hal_uart.d b/squeow_sw/build/stm32g4xx_hal_uart.d new file mode 100644 index 0000000..da5e8c0 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_uart.d @@ -0,0 +1,74 @@ +build/stm32g4xx_hal_uart.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/stm32g4xx_hal_uart.lst b/squeow_sw/build/stm32g4xx_hal_uart.lst new file mode 100644 index 0000000..704e90f --- /dev/null +++ b/squeow_sw/build/stm32g4xx_hal_uart.lst @@ -0,0 +1,24070 @@ +ARM GAS /tmp/cceWHrnJ.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_hal_uart.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c" + 20 .section .text.UART_EndTxTransfer,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 UART_EndTxTransfer: + 27 .LFB378: + 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** + 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @file stm32g4xx_hal_uart.c + 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @author MCD Application Team + 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART HAL module driver. + 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This file provides firmware functions to manage the following + 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). + 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + Initialization and de-initialization functions + 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + IO operation functions + 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + Peripheral Control functions + 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** + 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @attention + 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * Copyright (c) 2019 STMicroelectronics. + 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * All rights reserved. + 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This software is licensed under terms that can be found in the LICENSE file + 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * in the root directory of this software component. + 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** + 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim + 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== + 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### How to use this driver ##### + 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== + 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The UART HAL driver can be used as follows: + 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart). + ARM GAS /tmp/cceWHrnJ.s page 2 + + + 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API: + 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Enable the USARTx interface clock. + 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) UART pins configuration: + 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs. + 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure these UART pins as alternate function pull-up. + 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT() + 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs): + 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority. + 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle. + 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) UART interrupts handling: + 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** -@@- The specific UART interrupts (Transmission complete interrupt, + 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** RXNE interrupt, RX/TX FIFOs related interrupts and Error Interrupts) + 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** are managed using the macros __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() + 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** inside the transmit and receive processes. + 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA() + 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs): + 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx channel. + 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Enable the DMAx interface clock. + 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required Tx/Rx parameters. + 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx channel. + 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle. + 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete + 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupt on the DMA Tx/Rx channel. + 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Prescaler value , Hardware + 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** flow control and Mode (Receiver/Transmitter) in the huart handle Init structure. + 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) If required, program UART advanced features (TX/RX pins swap, auto Baud rate detection,...) + 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the huart handle AdvancedInit structure. + 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling + 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_Init() API. + 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling + 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_HalfDuplex_Init() API. + 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART LIN (Local Interconnection Network) mode, initialize the UART registers + 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** by calling the HAL_LIN_Init() API. + 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART Multiprocessor mode, initialize the UART registers + 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** by calling the HAL_MultiProcessor_Init() API. + 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART RS485 Driver Enabled mode, initialize the UART registers + 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** by calling the HAL_RS485Ex_Init() API. + 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (@) These API's (HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init(), HAL_MultiProcessor_Ini + 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** also configure the low level Hardware GPIO, CLOCK, CORTEX...etc) by + 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** calling the customized HAL_UART_MspInit() API. + 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Callback registration ##### + 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ================================== + 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1 + 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** allows the user to configure dynamically the driver callbacks. + 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 3 + + + 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Use Function HAL_UART_RegisterCallback() to register a user callback. + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Function HAL_UART_RegisterCallback() allows to register following callbacks: + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) WakeupCallback : Wakeup Callback. + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxFifoFullCallback : Rx Fifo Full Callback. + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxFifoEmptyCallback : Tx Fifo Empty Callback. + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This function takes as parameters the HAL peripheral handle, the Callback ID + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and a pointer to the user callback function. + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Use function HAL_UART_UnRegisterCallback() to reset a callback to the default + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** weak (surcharged) function. + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle, + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and the Callback ID. + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This function allows to reset following callbacks: + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) WakeupCallback : Wakeup Callback. + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxFifoFullCallback : Rx Fifo Full Callback. + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxFifoEmptyCallback : Tx Fifo Empty Callback. + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** For specific callback RxEventCallback, use dedicated registration/reset functions: + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** respectively HAL_UART_RegisterRxEventCallback() , HAL_UART_UnRegisterRxEventCallback(). + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** By default, after the HAL_UART_Init() and when the state is HAL_UART_STATE_RESET + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** all callbacks are set to the corresponding weak (surcharged) functions: + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** examples HAL_UART_TxCpltCallback(), HAL_UART_RxHalfCpltCallback(). + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Exception done for MspInit and MspDeInit functions that are respectively + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** reset to the legacy weak (surcharged) functions in the HAL_UART_Init() + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and HAL_UART_DeInit() only when these callbacks are null (not registered beforehand). + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If not, MspInit or MspDeInit are not null, the HAL_UART_Init() and HAL_UART_DeInit() + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand). + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only. + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Exception done MspInit/MspDeInit that can be registered/unregistered + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user) + ARM GAS /tmp/cceWHrnJ.s page 4 + + + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MspInit/DeInit callbacks can be used during the Init/DeInit. + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** In that case first register the MspInit/MspDeInit user callbacks + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** using HAL_UART_RegisterCallback() before calling HAL_UART_DeInit() + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** or HAL_UART_Init() function. + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** not defined, the callback registration feature is not available + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and weak (surcharged) callbacks are used. + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/ + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #include "stm32g4xx_hal.h" + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @addtogroup STM32G4xx_HAL_Driver + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART UART + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief HAL UART module driver + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/ + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/ + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Private_Constants UART Private Constants + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define USART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | U + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_OVER8 | USART_CR1_FIFOEN)) /*!< UART or USART CR1 f + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define USART_CR3_FIELDS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_ONEBIT | USART_CR + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR3_RXFTCFG)) /*!< UART or USART CR3 fields of paramete + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define LPUART_BRR_MIN 0x00000300U /* LPUART BRR minimum authorized value */ + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define LPUART_BRR_MAX 0x000FFFFFU /* LPUART BRR maximum authorized value */ + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define UART_BRR_MIN 0x10U /* UART BRR minimum authorized value */ + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define UART_BRR_MAX 0x0000FFFFU /* UART BRR maximum authorized value */ + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private macros ------------------------------------------------------------*/ + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/ + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @addtogroup UART_Private_Functions + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart); + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart); + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma); + ARM GAS /tmp/cceWHrnJ.s page 5 + + + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma); + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma); + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma); + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma); + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma); + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma); + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma); + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma); + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma); + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT(UART_HandleTypeDef *huart); + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT(UART_HandleTypeDef *huart); + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart); + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart); + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTransmit_IT(UART_HandleTypeDef *huart); + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT(UART_HandleTypeDef *huart); + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT(UART_HandleTypeDef *huart); + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart); + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart); + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/ + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @addtogroup UART_Private_variables + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint16_t UARTPrescTable[12] = {1U, 2U, 4U, 6U, 8U, 10U, 12U, 16U, 32U, 64U, 128U, 256U}; + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Exported Constants --------------------------------------------------------*/ + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Exported functions --------------------------------------------------------*/ + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialization and Configuration functions + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Initialization and Configuration functions ##### + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in asynchronous mode. + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) For the asynchronous mode the parameters below can be configured: + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Baud Rate + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Word Length + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Stop Bit + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Hardware flow control + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Receiver/transmitter modes + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Over Sampling Method + ARM GAS /tmp/cceWHrnJ.s page 6 + + + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) One-Bit Sampling Method + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) For the asynchronous mode, the following advanced features can be configured as well: + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) TX and/or RX pin level inversion + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) data logical level inversion + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) RX and TX pins swap + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) RX overrun detection disabling + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) DMA disabling on RX error + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) MSB first on communication line + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) auto Baud rate detection + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init()and HAL_MultiProcessor_Init()API + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, UART LIN mode + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and UART multiprocessor mode configuration procedures (details for the procedures + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** are available in reference manual). + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Depending on the frame length defined by the M1 and M0 bits (7-bit, + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8-bit or 9-bit), the possible UART formats are listed in the + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** following table. + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Table 1. UART frame format. + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +-----------------------------------------------------------------------+ + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | M1 bit | M0 bit | PCE bit | UART frame | + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 0 | 0 | | SB | 8 bit data | STB | | + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 0 | 1 | | SB | 7 bit data | PB | STB | | + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 1 | 0 | | SB | 9 bit data | STB | | + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 1 | 1 | | SB | 8 bit data | PB | STB | | + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 1 | 0 | 0 | | SB | 7 bit data | STB | | + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 1 | 0 | 1 | | SB | 6 bit data | PB | STB | | + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +-----------------------------------------------------------------------+ + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the UART mode according to the specified + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and initialize the associated handle. + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 7 + + + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared: + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 8 + + + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the half-duplex mode according to the specified + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and creates the associated handle. + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check UART instance */ + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared: + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + ARM GAS /tmp/cceWHrnJ.s page 9 + + + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the LIN mode according to the specified + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and creates the associated handle. + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param BreakDetectLength Specifies the LIN break detection length. + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_LINBREAKDETECTLENGTH_10B 10-bit break detection + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_LINBREAKDETECTLENGTH_11B 11-bit break detection + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the LIN UART instance */ + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the Break detection length parameter */ + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength)); + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* LIN mode limited to 16-bit oversampling only */ + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.OverSampling == UART_OVERSAMPLING_8) + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* LIN mode limited to 8-bit data length */ + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.WordLength != UART_WORDLENGTH_8B) + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; + ARM GAS /tmp/cceWHrnJ.s page 10 + + + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared: + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the USART LIN Break detection length. */ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the multiprocessor mode according to the specified + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and initialize the associated handle. + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Address UART node address (4-, 6-, 7- or 8-bit long). + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param WakeUpMethod Specifies the UART wakeup method. + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_WAKEUPMETHOD_IDLELINE WakeUp by an idle line detection + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_WAKEUPMETHOD_ADDRESSMARK WakeUp by an address mark + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note If the user resorts to idle line detection wake up, the Address parameter + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * is useless and ignored by the initialization function. + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note If the user resorts to address mark wake up, the address length detection + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * is configured by default to 4 bits only. For the UART to be able to + ARM GAS /tmp/cceWHrnJ.s page 11 + + + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * manage 6-, 7- or 8-bit long addresses detection, the API + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_MultiProcessorEx_AddressLength_Set() must be called after + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_MultiProcessor_Init(). + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the wake up method parameter */ + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod)); + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In multiprocessor mode, the following bits must be kept cleared: + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register. */ + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + ARM GAS /tmp/cceWHrnJ.s page 12 + + + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (WakeUpMethod == UART_WAKEUPMETHOD_ADDRESSMARK) + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If address mark wake up method is chosen, set the USART address node */ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS) + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */ + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DeInitialize the UART peripheral. + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR1 = 0x0U; + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR3 = 0x0U; + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspDeInitCallback == NULL) + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DeInit the low level hardware */ + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback(huart); + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DeInit the low level hardware */ + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspDeInit(huart); + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + ARM GAS /tmp/cceWHrnJ.s page 13 + + + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the UART MSP. + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_MspInit can be implemented in the user file + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DeInitialize the UART MSP. + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_MspDeInit can be implemented in the user file + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Register a User UART Callback + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * To be used instead of the weak predefined callback + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart uart handle + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param CallbackID ID of the callback to be registered + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_WAKEUP_CB_ID Wakeup Callback ID + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_FIFO_FULL_CB_ID Rx Fifo Full Callback ID + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_FIFO_EMPTY_CB_ID Tx Fifo Empty Callback ID + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pCallback pointer to the Callback function + ARM GAS /tmp/cceWHrnJ.s page 14 + + + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pUART_CallbackTypeDef pCallback) + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pCallback == NULL) + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback = pCallback; + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback = pCallback; + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback = pCallback; + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback = pCallback; + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback = pCallback; + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback = pCallback; + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = pCallback; + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = pCallback; + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_WAKEUP_CB_ID : + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback = pCallback; + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_FIFO_FULL_CB_ID : + ARM GAS /tmp/cceWHrnJ.s page 15 + + + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback = pCallback; + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_FIFO_EMPTY_CB_ID : + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback = pCallback; + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = pCallback; + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (huart->gState == HAL_UART_STATE_RESET) + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = pCallback; + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Unregister an UART Callback + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART callaback is redirected to the weak predefined callback + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart uart handle + ARM GAS /tmp/cceWHrnJ.s page 16 + + + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param CallbackID ID of the callback to be unregistered + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_WAKEUP_CB_ID Wakeup Callback ID + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_FIFO_FULL_CB_ID Rx Fifo Full Callback ID + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_FIFO_EMPTY_CB_ID Tx Fifo Empty Callback ID + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_UART_STATE_READY == huart->gState) + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHa + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpl + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHal + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpl + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak Error + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak Abort + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** AbortTransmitCplt + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : + ARM GAS /tmp/cceWHrnJ.s page 17 + + + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** AbortReceiveCpltC + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_WAKEUP_CB_ID : + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak Wakeu + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_FIFO_FULL_CB_ID : + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFif + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_FIFO_EMPTY_CB_ID : + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFif + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspIn + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDe + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (HAL_UART_STATE_RESET == huart->gState) + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 18 + + + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Register a User UART Rx Event Callback + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * To be used instead of the weak predefined callback + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Uart handle + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pCallback Pointer to the Rx Event Callback function + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pCallback == NULL) + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process locked */ + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback = pCallback; + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Release Lock */ + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UnRegister the UART Rx Event Callback + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART Rx Event Callback is redirected to the weak HAL_UARTEx_RxEventCallback() predefine + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Uart handle + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process locked */ + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) + ARM GAS /tmp/cceWHrnJ.s page 19 + + +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; +1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; +1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Release Lock */ +1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; +1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} +1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions +1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Transmit/Receive functions +1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * +1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim +1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== +1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### IO operation functions ##### +1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== +1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous +1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and Half duplex data transfers. +1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) There are two mode of transfer: +1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode. +1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL status of all data processing is returned by the same function +1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** after finishing transfer. +1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts +1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** or DMA, These API's return the HAL status. +1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The end of the data processing will be indicated through the +1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when +1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** using DMA mode. +1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks +1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will be executed respectively at the end of the transmit or Receive process +1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is +1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Blocking mode API's are : +1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Transmit() +1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Receive() +1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are : +1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Transmit_IT() +1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Receive_IT() +1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_IRQHandler() +1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are : +1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA() +1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Receive_DMA() +1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DMAPause() + ARM GAS /tmp/cceWHrnJ.s page 20 + + +1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DMAResume() +1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DMAStop() +1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode: +1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback() +1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback() +1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback() +1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback() +1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_ErrorCallback() +1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's : +1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Abort() +1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit() +1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortReceive() +1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Abort_IT() +1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT() +1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT() +1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For Abort services based on interrupts (HAL_UART_Abortxxx_IT), a set of Abort Complete Call +1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback() +1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback() +1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback() +1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) A Rx Event Reception Callback (Rx event notification) is available for Non_Blocking modes o +1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** reception services: +1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UARTEx_RxEventCallback() +1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories. +1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Errors are handled as follows : +1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er +1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** to be evaluated by user : this concerns Frame Error, Parity Error or Noise Error +1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in Interrupt mode reception . +1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Received character is then retrieved and stored in Rx buffer, Error code is set to allow +1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** to identify error type, and HAL_UART_ErrorCallback() user callback is executed. +1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Transfer is kept ongoing on UART side. +1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user. +1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte +1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode. +1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() +1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** user callback is executed. +1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit +1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and receive process in parallel, the UART state HAL_UART_STATE_BUSY_TX_RX can't be useful. +1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim +1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ +1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Send an amount of data in blocking mode. +1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- +1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number +1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 provided through pData. +1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When FIFO mode is enabled, writing a data in the TDR register adds one +1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * data to the TXFIFO. Write operations to the TDR register are performed +1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * when TXFNF flag is set. From hardware perspective, TXFNF flag and +1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * TXE are mapped on the same bit-field. + ARM GAS /tmp/cceWHrnJ.s page 21 + + +1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent. +1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Timeout Timeout duration. +1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint8_t *pdata8bits; +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint16_t *pdata16bits; +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; +1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) +1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) +1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; +1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init tickstart for timeout management */ +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tickstart = HAL_GetTick(); +1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; +1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) +1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = NULL; +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; +1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = pData; +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = NULL; +1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while (huart->TxXferCount > 0U) +1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) +1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pdata8bits == NULL) +1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; +1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else + ARM GAS /tmp/cceWHrnJ.s page 22 + + +1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; +1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; +1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) +1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Receive an amount of data in blocking mode. +1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- +1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb +1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 available through pData. +1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When FIFO mode is enabled, the RXFNE flag is set as long as the RXFIFO +1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * is not empty. Read operations from the RDR register are performed when +1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * RXFNE flag is set. From hardware perspective, RXFNE flag and +1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * RXNE are mapped on the same bit-field. +1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. +1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Timeout Timeout duration. +1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32 +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *pdata16bits; +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask; +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; +1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) +1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) +1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + ARM GAS /tmp/cceWHrnJ.s page 23 + + +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init tickstart for timeout management */ +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tickstart = HAL_GetTick(); +1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; +1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Computation of UART mask to apply to RDR register */ +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_MASK_COMPUTATION(huart); +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; +1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) +1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = NULL; +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; +1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = pData; +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = NULL; +1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* as long as data have to be received */ +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while (huart->RxXferCount > 0U) +1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) +1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pdata8bits == NULL) +1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; +1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; +1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; +1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 24 + + +1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Send an amount of data in interrupt mode. +1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- +1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number +1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 provided through pData. +1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent. +1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) +1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) +1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr = pData; +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; +1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; +1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure Tx interrupt processing */ +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Tx ISR function pointer according to the data word length */ +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE +1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_16BIT_FIFOEN; +1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_8BIT_FIFOEN; +1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the TX FIFO threshold interrupt */ +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); +1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Tx ISR function pointer according to the data word length */ +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE +1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_16BIT; +1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 25 + + +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_8BIT; +1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the Transmit Data Register Empty interrupt */ +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); +1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Receive an amount of data in interrupt mode. +1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- +1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb +1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 available through pData. +1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. +1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) +1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) +1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set Reception type to Standard reception */ +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) +1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that USART RTOEN bit is set */ +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) +1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Receiver Timeout Interrupt */ +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); +1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_Start_Receive_IT(huart, pData, Size)); +1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; + ARM GAS /tmp/cceWHrnJ.s page 26 + + +1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Send an amount of data in DMA mode. +1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- +1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number +1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 provided through pData. +1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent. +1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) +1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) +1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr = pData; +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; +1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; +1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; +1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; +1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA error callback */ +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError; +1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA abort callback */ +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; +1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART transmit DMA channel */ +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance-> +1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to ready */ +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 27 + + +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the TC flag in the ICR register */ +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); +1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit +1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Receive an amount of data in DMA mode. +1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1), the received data contain +1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the parity bit (MSB position). +1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- +1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb +1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 available through pData. +1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. +1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) +1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) +1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set Reception type to Standard reception */ +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) +1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that USART RTOEN bit is set */ +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) +1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Receiver Timeout Interrupt */ +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); +1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 28 + + +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_Start_Receive_DMA(huart, pData, Size)); +1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Pause the DMA Transfer. +1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; +1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && +1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) +1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request */ +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && +1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) +1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request */ +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Resume the DMA Transfer. +1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) +1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART DMA Tx request */ +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) + ARM GAS /tmp/cceWHrnJ.s page 29 + + +1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer */ +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); +1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */ +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) +1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); +1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); +1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART DMA Rx request */ +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); +1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Stop the DMA Transfer. +1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application +1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() +1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback / HAL_UART_RxHalfCpltCallback: +1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** indeed, when HAL_DMA_Abort() API is called, the DMA TX/RX Transfer or Half Transfer complete +1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupt is generated if the DMA transfer interruption occurs at the middle or at the end of +1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the stream and the corresponding call back is executed. */ +1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; +1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && +1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) +1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel */ +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) +1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) +1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 30 + + +1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); +1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && +1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) +1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel */ +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) +1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) +1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); +1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing transfers (blocking mode). +1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or +1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : +1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) +1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) +1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) +1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY +1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere +1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interr +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | +1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); +1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); +1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel if enabled */ + ARM GAS /tmp/cceWHrnJ.s page 31 + + +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) +1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */ +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. +1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; +1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) +1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) +1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel if enabled */ +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */ +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. +1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; +1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) +1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) +1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); + ARM GAS /tmp/cceWHrnJ.s page 32 + + +1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); +1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); +1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode). +1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt +1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : +1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) +1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) +1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) +1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY +1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere +1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); +1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel if enabled */ +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) +1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */ +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. +1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; +1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) +1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) +1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; + ARM GAS /tmp/cceWHrnJ.s page 33 + + +1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx transfer counter */ +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); +1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (blocking mode). +1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt +1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : +1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) +1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) +1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) +1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY +1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere +1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); +1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); +1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel if enabled */ +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */ +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. +1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ + ARM GAS /tmp/cceWHrnJ.s page 34 + + +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; +1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) +1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) +1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Rx transfer counter */ +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); +1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); +1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode). +1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or +1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : +1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) +1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) +1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) +1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY +1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - At abort completion, call user abort complete callback +1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be +1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex +1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; +1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEI +1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); +1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 35 + + +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); +1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks sh +1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** before any call to DMA Abort functions */ +1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Tx Handle is valid */ +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. +1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, set it to NULL */ +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) +1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; +1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; +1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Rx Handle is valid */ +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. +1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, set it to NULL */ +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; +1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; +1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel if enabled */ +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) +1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable DMA Tx at UART level */ +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised : +1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ +1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA TX */ +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) +1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; +1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 0U; +1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 36 + + +1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel if enabled */ +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised : +1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ +1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA RX */ +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) +1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 1U; +1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 0U; +1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback * +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (abortcplt == 1U) +1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear ISR function pointers */ +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; +2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset errorCode */ +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF +2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); +2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); +2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 37 + + +2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ +2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort complete callback */ +2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback(huart); +2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); +2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode). +2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt +2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : +2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) +2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) +2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) +2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY +2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - At abort completion, call user abort complete callback +2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be +2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex +2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); +2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel if enabled */ +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) +2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback : +2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; +2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA TX */ +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) +2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */ +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx); +2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx transfer counter */ +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; + ARM GAS /tmp/cceWHrnJ.s page 38 + + +2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TxISR function pointers */ +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; +2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ +2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ +2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); +2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); +2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx transfer counter */ +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TxISR function pointers */ +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; +2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); +2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ +2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ +2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); +2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); +2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode). +2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt +2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : +2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) +2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) +2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) +2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY +2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - At abort completion, call user abort complete callback + ARM GAS /tmp/cceWHrnJ.s page 39 + + +2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be +2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex +2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); +2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); +2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel if enabled */ +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback : +2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; +2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA RX */ +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) +2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); +2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Rx transfer counter */ +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = NULL; +2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_F +2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); +2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ +2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ + ARM GAS /tmp/cceWHrnJ.s page 40 + + +2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); +2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); +2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Rx transfer counter */ +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = NULL; +2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF +2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ +2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ +2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); +2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); +2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Handle UART interrupt request. +2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); +2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t errorflags; +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t errorcode; +2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If no error occurs */ +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (errorflags == 0U) +2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Receiver ---------------------------------------------------*/ +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) + ARM GAS /tmp/cceWHrnJ.s page 41 + + +2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxISR != NULL) +2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR(huart); +2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If some errors occur */ +2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((errorflags != 0U) +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U) +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) +2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/ +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) +2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); +2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; +2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/ +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) +2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); +2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; +2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/ +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) +2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); +2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; +2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Over-Run interrupt occurred -----------------------------------------*/ +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_ORE) != 0U) +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || +2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) +2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); +2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE; +2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Receiver Timeout interrupt occurred ---------------------------------*/ +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) +2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); +2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_RTO; +2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call UART Error Call back function if need be ----------------------------*/ + ARM GAS /tmp/cceWHrnJ.s page 42 + + +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) +2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Receiver --------------------------------------------------*/ +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) +2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxISR != NULL) +2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR(huart); +2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Error is to be considered as blocking : +2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - Receiver Timeout error in Reception +2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - Overrun error in Reception +2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - any error occurs in DMA mode reception +2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** errorcode = huart->ErrorCode; +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || +2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) +2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Blocking error : transfer is aborted +2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Set the UART state ready to be able to start again the process, +2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); +2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel if enabled */ +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel */ +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback : +2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; +2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA RX */ +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) +2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); +2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user error callback */ +2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ +2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + ARM GAS /tmp/cceWHrnJ.s page 43 + + +2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user error callback */ +2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ +2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. +2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error is notified to user through user error callback */ +2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ +2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } /* End if some error occurs */ +2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((isrflags & USART_ISR_IDLE) != 0U) +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((cr1its & USART_ISR_IDLE) != 0U)) +2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); +2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if DMA mode is enabled in UART */ +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) +2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA mode enabled */ +2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing, +2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (DMA cplt callback will be called). +2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) +2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reception is not complete */ +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = nb_remaining_rx_data; +2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In Normal mode, end DMA xfer and HAL UART Rx process*/ +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) + ARM GAS /tmp/cceWHrnJ.s page 44 + + +2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit +2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Last bytes received, so no need as the abort is immediate */ +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (void)HAL_DMA_Abort(huart->hdmarx); +2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); +2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); +2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ +2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA mode not enabled */ +2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing. +2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) +2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupts */ +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); +2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt:(Frame error, noise error, overrun error) and RX FIFO T +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); +2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ +2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, nb_rx_data); +2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, nb_rx_data); + ARM GAS /tmp/cceWHrnJ.s page 45 + + +2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ +2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) +2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); +2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Rx state is not reset as a reception process might be ongoing. +2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If UART handle state fields need to be reset to READY, this could be done in Wakeup callback +2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Wakeup Callback */ +2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback(huart); +2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Wakeup Callback */ +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_WakeupCallback(huart); +2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/ +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_TXE_TXFNF) != 0U) +2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) +2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_TXFTIE) != 0U))) +2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxISR != NULL) +2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR(huart); +2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Transmitter (transmission end) -----------------------------*/ +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) +2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTransmit_IT(huart); +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART TX Fifo Empty occurred ----------------------------------------------*/ +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_TXFE) != 0U) && ((cr1its & USART_CR1_TXFEIE) != 0U)) +2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Tx Fifo Empty Callback */ +2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback(huart); +2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Tx Fifo Empty Callback */ +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_TxFifoEmptyCallback(huart); +2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART RX Fifo Full occurred ----------------------------------------------*/ + ARM GAS /tmp/cceWHrnJ.s page 46 + + +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RXFF) != 0U) && ((cr1its & USART_CR1_RXFFIE) != 0U)) +2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Rx Fifo Full Callback */ +2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback(huart); +2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Rx Fifo Full Callback */ +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxFifoFullCallback(huart); +2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Tx Transfer completed callback. +2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, +2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_TxCpltCallback can be implemented in the user file. +2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Tx Half Transfer completed callback. +2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, +2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback can be implemented in the user file. +2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Rx Transfer completed callback. +2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, +2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_RxCpltCallback can be implemented in the user file. +2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 47 + + +2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Rx Half Transfer completed callback. +2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) +2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, +2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback can be implemented in the user file. +2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART error callback. +2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, +2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_ErrorCallback can be implemented in the user file. +2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Abort Complete callback. +2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, +2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file. +2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Abort Complete callback. +2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, + ARM GAS /tmp/cceWHrnJ.s page 48 + + +2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file. +2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Abort Receive Complete callback. +2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, +2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file. +2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Reception Event Callback (Rx event notification called after use of advanced reception +2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle +2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Number of data available in application reception buffer (indicates a position in +2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * reception buffer until which, data are available) +2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); +2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(Size); +2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, +2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UARTEx_RxEventCallback can be implemented in the user file. +2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} +2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions +2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART control functions +2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * +2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim +2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== +2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Peripheral Control functions ##### +2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== +2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] +2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART. +2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_ReceiverTimeout_Config() API allows to configure the receiver timeout value on th +2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_EnableReceiverTimeout() API enables the receiver timeout feature +2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DisableReceiverTimeout() API disables the receiver timeout feature +2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnableMuteMode() API enables mute mode +2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_MultiProcessor_DisableMuteMode() API disables mute mode +2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API enters mute mode +2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) UART_SetConfig() API configures the UART peripheral + ARM GAS /tmp/cceWHrnJ.s page 49 + + +2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) UART_AdvFeatureConfig() API optionally configures the UART advanced features +2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) UART_CheckIdleState() API ensures that TEACK and/or REACK are set after initialization +2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API disables receiver and enables transmitter +2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API disables transmitter and enables receiver +2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API transmits the break characters +2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim +2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ +2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Update on the fly the receiver timeout value in RTOR register. +2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains +2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. +2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param TimeoutValue receiver timeout value in number of baud blocks. The timeout +2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * value must be less or equal to 0x0FFFFFFFF. +2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) +2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) +2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_RECEIVER_TIMEOUT_VALUE(TimeoutValue)); +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); +2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable the UART receiver timeout feature. +2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains +2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. +2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) +2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) +2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Locked */ +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the USART RTOEN bit */ +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); +2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Unlocked */ +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 50 + + +2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Disable the UART receiver timeout feature. +2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains +2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. +2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) +2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) +2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Locked */ +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the USART RTOEN bit */ +2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); +2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Unlocked */ +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; +2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable UART in mute mode (does not mean UART enters mute mode; +2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to enter mute mode, HAL_MultiProcessor_EnterMuteMode() API must be called). +2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 51 + + +2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable USART mute mode by setting the MME bit in the CR1 register */ +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); +2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); +2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Disable UART mute mode (does not mean the UART actually exits mute mode +2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * as it may not have been in mute mode at this very moment). +2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable USART mute mode by clearing the MME bit in the CR1 register */ +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); +2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enter UART mute mode (means UART actually enters mute mode). +2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note To exit from mute mode, HAL_MultiProcessor_DisableMuteMode() API must be called. +2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable the UART transmitter and disable the UART receiver. +2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TE and RE bits */ +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); +2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */ +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); +2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 52 + + +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable the UART receiver and disable the UART transmitter. +2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status. +2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TE and RE bits */ +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); +2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */ +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); +2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Transmit break characters. +2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) +2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); +2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); +2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; +2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Send break characters */ +2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); +2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} +2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 53 + + +2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Error functions +2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Peripheral State functions +2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * +2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim +2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ============================================================================== +2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Peripheral State and Error functions ##### +2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ============================================================================== +2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] +2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides functions allowing to : +2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Return the UART handle state. +2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Return the UART handle error code +2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim +2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ +2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Return the UART handle state. +2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains +2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART. +2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL state +2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart) +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp1; +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp2; +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp1 = huart->gState; +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp2 = huart->RxState; +2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2); +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Return the UART handle error code. +2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains +2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART. +2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval UART Error Code +2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart) +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return huart->ErrorCode; +2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} +2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} +2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions +2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ +2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the callbacks to their default values. +2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. + ARM GAS /tmp/cceWHrnJ.s page 54 + + +2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval none +2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) +3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the UART Callback settings */ +3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC +3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallb +3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltC +3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallb +3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallba +3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCa +3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransm +3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiv +3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallb +3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullC +3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpty +3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCall +3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Configure the UART peripheral. +3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t brrtemp; +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_ClockSourceTypeDef clocksource; +3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t usartdiv; +3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef ret = HAL_OK; +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t lpuart_ker_ck_pres; +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t pclk; +3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_INSTANCE_LOWPOWER(huart)) +3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); +3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); +3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); +3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ + ARM GAS /tmp/cceWHrnJ.s page 55 + + +3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear M, PCE, PS, TE, RE and OVER8 bits and configure +3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the UART Word Length, Parity, Mode and oversampling: +3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set the M bits according to huart->Init.WordLength value +3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set PCE and PS bits according to huart->Init.Parity value +3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set TE and RE bits according to huart->Init.Mode value +3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set OVER8 bit according to huart->Init.OverSampling value */ +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); +3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/ +3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits according +3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to huart->Init.StopBits value */ +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); +3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/ +3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure +3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - UART HardWare Flow Control: set CTSE and RTSE bits according +3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to huart->Init.HwFlowCtl value +3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - one-bit sampling method versus three samples' majority rule according +3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to huart->Init.OneBitSampling (not applicable to LPUART) */ +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.HwFlowCtl; +3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(UART_INSTANCE_LOWPOWER(huart))) +3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmpreg |= huart->Init.OneBitSampling; +3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); +3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART PRESC Configuration -----------------------*/ +3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure +3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - UART Clock Prescaler : set PRESCALER according to huart->Init.ClockPrescaler value */ +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); +3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration -----------------------*/ +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_GETCLOCKSOURCE(huart, clocksource); +3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check LPUART instance */ +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_INSTANCE_LOWPOWER(huart)) +3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Retrieve frequency clock */ +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (clocksource) +3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1: +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) HSI_VALUE; +3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK: +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetSysClockFreq(); +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: +3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) LSE_VALUE; +3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default: +3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = 0U; +3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; + ARM GAS /tmp/cceWHrnJ.s page 56 + + +3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If proper clock source reported */ +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pclk != 0U) +3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Compute clock after Prescaler */ +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); +3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */ +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || +3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) +3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; +3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check computed UsartDiv value is in allocated range +3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (it is forbidden to write values lower than 0x300 in the LPUART_BRR register) */ +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescale +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) +3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = usartdiv; +3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; +3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } /* if ( (lpuart_ker_ck_pres < (3 * huart->Init.BaudRate) ) || +3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096 * huart->Init.BaudRate) )) */ +3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } /* if (pclk != 0) */ +3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check UART Over Sampling to set Baud Rate Register */ +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) +3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (clocksource) +3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1: +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: +3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) HSI_VALUE; +3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK: +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetSysClockFreq(); +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: +3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) LSE_VALUE; +3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default: +3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = 0U; +3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; +3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 57 + + +3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* USARTDIV must be greater than or equal to 0d16 */ +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pclk != 0U) +3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescal +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) +3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp = (uint16_t)(usartdiv & 0xFFF0U); +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; +3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; +3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (clocksource) +3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1: +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: +3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) HSI_VALUE; +3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK: +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetSysClockFreq(); +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: +3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) LSE_VALUE; +3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default: +3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = 0U; +3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; +3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; +3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pclk != 0U) +3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* USARTDIV must be greater than or equal to 0d16 */ +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPresca +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) +3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)usartdiv; +3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; +3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 58 + + +3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Initialize the number of data to process during RX/TX ISR execution */ +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->NbTxDataToProcess = 1; +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->NbRxDataToProcess = 1; +3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear ISR function pointers */ +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; +3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return ret; +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Configure the UART peripheral advanced features. +3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */ +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); +3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure TX pin active level inversion */ +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) +3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); +3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure RX pin active level inversion */ +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) +3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); +3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure data inversion */ +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) +3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); +3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure RX/TX pins swap */ +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) +3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); +3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure RX overrun detection disabling */ +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) +3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); +3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure DMA disabling on reception error */ + ARM GAS /tmp/cceWHrnJ.s page 59 + + +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) +3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); +3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure auto Baud rate detection scheme */ +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) +3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); +3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */ +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) +3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); +3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure MSB first on communication line */ +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) +3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); +3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Check the UART Idle State. +3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; +3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Initialize the UART ErrorCode */ +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init tickstart for timeout management */ +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tickstart = HAL_GetTick(); +3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if the Transmitter is enabled */ +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) +3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until TEACK flag is set */ +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALU +3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Timeout occurred */ +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if the Receiver is enabled */ +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) +3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 60 + + +3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until REACK flag is set */ +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALU +3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Timeout occurred */ +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Initialize the UART State */ +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief This function handles UART Communication Timeout. It waits +3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * until a flag is no longer in the specified status. +3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Flag Specifies the UART flag to check +3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Status The actual Flag status (SET or RESET) +3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Tickstart Tick start value +3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Timeout Timeout duration +3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus +3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t Tickstart, uint32_t Timeout) +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until flag is set */ +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) +3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check for the Timeout */ +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) +3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) +3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) +3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupts for the interrupt process */ +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | +3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) +3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) +3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 61 + + +3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear Receiver Timeout flag*/ +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); +3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) +3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupts for the interrupt process */ +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | +3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; +3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Unlocked */ +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; +3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Start Receive operation in interrupt mode. +3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in Interrupt mode +3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, +3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... +3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART Handle is assumed as Locked. +3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. +3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Computation of UART mask to apply to RDR register */ +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_MASK_COMPUTATION(huart); +3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; +3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); +3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure Rx interrupt processing */ +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) +3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Rx ISR function pointer according to the data word length */ +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) +3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 62 + + +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_16BIT_FIFOEN; +3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_8BIT_FIFOEN; +3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Parity Error interrupt and RX FIFO Threshold interrupt */ +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) +3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); +3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); +3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Rx ISR function pointer according to the data word length */ +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) +3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_16BIT; +3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_8BIT; +3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Parity Error interrupt and Data Register Not Empty interrupt */ +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) +3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); +3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); +3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Start Receive operation in DMA mode. +3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in DMA mode. +3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, +3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... +3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART Handle is assumed as Locked. +3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). +3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. +3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status +3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; + ARM GAS /tmp/cceWHrnJ.s page 63 + + +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; +3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; +3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; +3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; +3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA error callback */ +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError; +3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA abort callback */ +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; +3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the DMA channel */ +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPt +3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; +3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to ready */ +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; +3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); +3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) +3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); +3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); +3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit +3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); +3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl +3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ + ARM GAS /tmp/cceWHrnJ.s page 64 + + +3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart) +3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 28 .loc 1 3567 1 view -0 + 29 .cfi_startproc + 30 @ args = 0, pretend = 0, frame = 0 + 31 @ frame_needed = 0, uses_anonymous_args = 0 + 32 @ link register save eliminated. + 33 .LVL0: + 34 .L2: +3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXEIE, TCIE, TXFT interrupts */ +3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 35 .loc 1 3569 3 discriminator 1 view .LVU1 + 36 .LBB509: + 37 .loc 1 3569 3 discriminator 1 view .LVU2 + 38 .loc 1 3569 3 discriminator 1 view .LVU3 + 39 .loc 1 3569 3 discriminator 1 view .LVU4 + 40 0000 0268 ldr r2, [r0] + 41 .LVL1: + 42 .LBB510: + 43 .LBI510: + 44 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + ARM GAS /tmp/cceWHrnJ.s page 65 + + + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/cceWHrnJ.s page 66 + + + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 67 + + + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + ARM GAS /tmp/cceWHrnJ.s page 68 + + + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/cceWHrnJ.s page 69 + + + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 70 + + + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/cceWHrnJ.s page 71 + + + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + ARM GAS /tmp/cceWHrnJ.s page 72 + + + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 73 + + + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + ARM GAS /tmp/cceWHrnJ.s page 74 + + + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + ARM GAS /tmp/cceWHrnJ.s page 75 + + + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + ARM GAS /tmp/cceWHrnJ.s page 76 + + + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + ARM GAS /tmp/cceWHrnJ.s page 77 + + + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + ARM GAS /tmp/cceWHrnJ.s page 78 + + + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 79 + + + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + ARM GAS /tmp/cceWHrnJ.s page 80 + + + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 937:Drivers/CMSIS/Include/cmsis_gcc.h **** + 938:Drivers/CMSIS/Include/cmsis_gcc.h **** + 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier + 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. + 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. + 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) + 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); + 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 948:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 81 + + + 949:Drivers/CMSIS/Include/cmsis_gcc.h **** + 950:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier + 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before + 953:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. + 954:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 955:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) + 956:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 957:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); + 958:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 959:Drivers/CMSIS/Include/cmsis_gcc.h **** + 960:Drivers/CMSIS/Include/cmsis_gcc.h **** + 961:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 962:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) + 963:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 + 964:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 965:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 966:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 967:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) + 968:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 969:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + 970:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); + 971:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 972:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 973:Drivers/CMSIS/Include/cmsis_gcc.h **** + 974:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 975:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 976:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 977:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 978:Drivers/CMSIS/Include/cmsis_gcc.h **** + 979:Drivers/CMSIS/Include/cmsis_gcc.h **** + 980:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 981:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 982:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes + 983:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 984:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 985:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 986:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) + 987:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 988:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 989:Drivers/CMSIS/Include/cmsis_gcc.h **** + 990:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 991:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 992:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 993:Drivers/CMSIS/Include/cmsis_gcc.h **** + 994:Drivers/CMSIS/Include/cmsis_gcc.h **** + 995:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 996:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 997:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam + 998:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 999:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1000:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1001:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +1002:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1003:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1004:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); +1005:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + ARM GAS /tmp/cceWHrnJ.s page 82 + + +1006:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; +1007:Drivers/CMSIS/Include/cmsis_gcc.h **** +1008:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); +1009:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1010:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1011:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1012:Drivers/CMSIS/Include/cmsis_gcc.h **** +1013:Drivers/CMSIS/Include/cmsis_gcc.h **** +1014:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1015:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) +1016:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v +1017:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate +1018:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate +1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value +1020:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1021:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +1022:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1023:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; +1024:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) +1025:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1026:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; +1027:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1028:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); +1029:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1030:Drivers/CMSIS/Include/cmsis_gcc.h **** +1031:Drivers/CMSIS/Include/cmsis_gcc.h **** +1032:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1033:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint +1034:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. +1035:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula +1036:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. +1037:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break +1038:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1039:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) +1040:Drivers/CMSIS/Include/cmsis_gcc.h **** +1041:Drivers/CMSIS/Include/cmsis_gcc.h **** +1042:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value +1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. +1045:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse +1046:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1047:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +1049:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1051:Drivers/CMSIS/Include/cmsis_gcc.h **** +1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1053:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1054:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +1056:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1057:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ +1058:Drivers/CMSIS/Include/cmsis_gcc.h **** +1059:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ +1060:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) +1061:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1062:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; + ARM GAS /tmp/cceWHrnJ.s page 83 + + +1063:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; +1064:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; +1065:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1066:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ +1067:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1069:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1070:Drivers/CMSIS/Include/cmsis_gcc.h **** +1071:Drivers/CMSIS/Include/cmsis_gcc.h **** +1072:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1073:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros +1074:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. +1075:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros +1076:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value +1077:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +1079:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1080:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Even though __builtin_clz produces a CLZ instruction on ARM, formally +1081:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_clz(0) is undefined behaviour, so handle this case specially. +1082:Drivers/CMSIS/Include/cmsis_gcc.h **** This guarantees ARM-compatible results if happening to compile on a non-ARM +1083:Drivers/CMSIS/Include/cmsis_gcc.h **** target, and ensures the compiler doesn't decide to activate any +1084:Drivers/CMSIS/Include/cmsis_gcc.h **** optimisations using the logic "value was passed to __builtin_clz, so it +1085:Drivers/CMSIS/Include/cmsis_gcc.h **** is non-zero". +1086:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a +1087:Drivers/CMSIS/Include/cmsis_gcc.h **** single CLZ instruction. +1088:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** if (value == 0U) +1090:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** return 32U; +1092:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1093:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_clz(value); +1094:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1095:Drivers/CMSIS/Include/cmsis_gcc.h **** +1096:Drivers/CMSIS/Include/cmsis_gcc.h **** +1097:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1098:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1099:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ +1100:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +1101:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1102:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (8 bit) +1103:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 8 bit value. +1104:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data +1105:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint8_t at (*ptr) +1106:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1107:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +1108:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1109:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1110:Drivers/CMSIS/Include/cmsis_gcc.h **** +1111:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1112:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +1113:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1114:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not +1115:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. +1116:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1117:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +1118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1119:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint8_t) result); /* Add explicit type cast here */ + ARM GAS /tmp/cceWHrnJ.s page 84 + + +1120:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1121:Drivers/CMSIS/Include/cmsis_gcc.h **** +1122:Drivers/CMSIS/Include/cmsis_gcc.h **** +1123:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1124:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (16 bit) +1125:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 16 bit values. +1126:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data +1127:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr) +1128:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +1130:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1131:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1132:Drivers/CMSIS/Include/cmsis_gcc.h **** +1133:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1134:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +1135:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1136:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not +1137:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. +1138:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1139:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +1140:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1141:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint16_t) result); /* Add explicit type cast here */ +1142:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1143:Drivers/CMSIS/Include/cmsis_gcc.h **** +1144:Drivers/CMSIS/Include/cmsis_gcc.h **** +1145:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1146:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (32 bit) +1147:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 32 bit values. +1148:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data +1149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint32_t at (*ptr) +1150:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) + 45 .loc 2 1151 31 discriminator 1 view .LVU5 + 46 .LBB511: +1152:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 47 .loc 2 1153 5 discriminator 1 view .LVU6 +1154:Drivers/CMSIS/Include/cmsis_gcc.h **** +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 48 .loc 2 1155 4 discriminator 1 view .LVU7 + 49 .syntax unified + 50 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 51 0002 52E8003F ldrex r3, [r2] + 52 @ 0 "" 2 + 53 .LVL2: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 54 .loc 2 1156 4 discriminator 1 view .LVU8 + 55 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU9 + 56 .thumb + 57 .syntax unified + 58 .LBE511: + 59 .LBE510: + 60 .loc 1 3569 3 discriminator 1 view .LVU10 + 61 0006 23F0C003 bic r3, r3, #192 + 62 .LVL3: + 63 .loc 1 3569 3 is_stmt 1 discriminator 1 view .LVU11 + 64 .LBB512: + ARM GAS /tmp/cceWHrnJ.s page 85 + + + 65 .LBI512: +1157:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1158:Drivers/CMSIS/Include/cmsis_gcc.h **** +1159:Drivers/CMSIS/Include/cmsis_gcc.h **** +1160:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1161:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (8 bit) +1162:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 8 bit values. +1163:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store +1164:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location +1165:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded +1166:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed +1167:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1168:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +1169:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1170:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1171:Drivers/CMSIS/Include/cmsis_gcc.h **** +1172:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); +1173:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); +1174:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1175:Drivers/CMSIS/Include/cmsis_gcc.h **** +1176:Drivers/CMSIS/Include/cmsis_gcc.h **** +1177:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1178:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (16 bit) +1179:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 16 bit values. +1180:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store +1181:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location +1182:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded +1183:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed +1184:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1185:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +1186:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1187:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1188:Drivers/CMSIS/Include/cmsis_gcc.h **** +1189:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); +1190:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); +1191:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1192:Drivers/CMSIS/Include/cmsis_gcc.h **** +1193:Drivers/CMSIS/Include/cmsis_gcc.h **** +1194:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1195:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (32 bit) +1196:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 32 bit values. +1197:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store +1198:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location +1199:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded +1200:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed +1201:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) + 66 .loc 2 1202 31 discriminator 1 view .LVU12 + 67 .LBB513: +1203:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 68 .loc 2 1204 4 discriminator 1 view .LVU13 +1205:Drivers/CMSIS/Include/cmsis_gcc.h **** +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 69 .loc 2 1206 4 discriminator 1 view .LVU14 + 70 .syntax unified + 71 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + ARM GAS /tmp/cceWHrnJ.s page 86 + + + 72 000a 42E80031 strex r1, r3, [r2] + 73 @ 0 "" 2 + 74 .LVL4: +1207:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 75 .loc 2 1207 4 discriminator 1 view .LVU15 + 76 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU16 + 77 .thumb + 78 .syntax unified + 79 .LBE513: + 80 .LBE512: + 81 .loc 1 3569 3 discriminator 1 view .LVU17 + 82 000e 0029 cmp r1, #0 + 83 0010 F6D1 bne .L2 + 84 .LVL5: + 85 .L3: + 86 .loc 1 3569 3 discriminator 1 view .LVU18 + 87 .LBE509: + 88 .loc 1 3569 3 is_stmt 1 discriminator 1 view .LVU19 +3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); + 89 .loc 1 3570 3 discriminator 1 view .LVU20 + 90 .LBB514: + 91 .loc 1 3570 3 discriminator 1 view .LVU21 + 92 .loc 1 3570 3 discriminator 1 view .LVU22 + 93 .loc 1 3570 3 discriminator 1 view .LVU23 + 94 0012 0268 ldr r2, [r0] + 95 .LVL6: + 96 .LBB515: + 97 .LBI515: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 98 .loc 2 1151 31 discriminator 1 view .LVU24 + 99 .LBB516: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 100 .loc 2 1153 5 discriminator 1 view .LVU25 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 101 .loc 2 1155 4 discriminator 1 view .LVU26 + 102 0014 02F10803 add r3, r2, #8 + 103 .LVL7: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 104 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU27 + 105 .syntax unified + 106 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 107 0018 53E8003F ldrex r3, [r3] + 108 @ 0 "" 2 + 109 .LVL8: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 110 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU28 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 111 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU29 + 112 .thumb + 113 .syntax unified + 114 .LBE516: + 115 .LBE515: + 116 .loc 1 3570 3 discriminator 1 view .LVU30 + 117 001c 23F40003 bic r3, r3, #8388608 + 118 .LVL9: + 119 .loc 1 3570 3 is_stmt 1 discriminator 1 view .LVU31 + 120 .LBB517: + ARM GAS /tmp/cceWHrnJ.s page 87 + + + 121 .LBI517: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 122 .loc 2 1202 31 discriminator 1 view .LVU32 + 123 .LBB518: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124 .loc 2 1204 4 discriminator 1 view .LVU33 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 125 .loc 2 1206 4 discriminator 1 view .LVU34 + 126 0020 0832 adds r2, r2, #8 + 127 .LVL10: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 128 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU35 + 129 .syntax unified + 130 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 131 0022 42E80031 strex r1, r3, [r2] + 132 @ 0 "" 2 + 133 .LVL11: + 134 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU36 + 135 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU37 + 136 .thumb + 137 .syntax unified + 138 .LBE518: + 139 .LBE517: + 140 .loc 1 3570 3 discriminator 1 view .LVU38 + 141 0026 0029 cmp r1, #0 + 142 0028 F3D1 bne .L3 + 143 .LBE514: + 144 .loc 1 3570 3 is_stmt 1 discriminator 2 view .LVU39 +3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ +3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; + 145 .loc 1 3573 3 discriminator 2 view .LVU40 + 146 .loc 1 3573 17 is_stmt 0 discriminator 2 view .LVU41 + 147 002a 2023 movs r3, #32 + 148 .LVL12: + 149 .loc 1 3573 17 discriminator 2 view .LVU42 + 150 002c C0F88430 str r3, [r0, #132] +3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 151 .loc 1 3574 1 discriminator 2 view .LVU43 + 152 0030 7047 bx lr + 153 .cfi_endproc + 154 .LFE378: + 156 .section .text.UART_EndRxTransfer,"ax",%progbits + 157 .align 1 + 158 .syntax unified + 159 .thumb + 160 .thumb_func + 162 UART_EndRxTransfer: + 163 .LFB379: +3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp +3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart) + ARM GAS /tmp/cceWHrnJ.s page 88 + + +3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 164 .loc 1 3583 1 is_stmt 1 view -0 + 165 .cfi_startproc + 166 @ args = 0, pretend = 0, frame = 0 + 167 @ frame_needed = 0, uses_anonymous_args = 0 + 168 @ link register save eliminated. + 169 .LVL13: + 170 .L5: +3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ +3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); + 171 .loc 1 3585 3 discriminator 1 view .LVU45 + 172 .LBB519: + 173 .loc 1 3585 3 discriminator 1 view .LVU46 + 174 .loc 1 3585 3 discriminator 1 view .LVU47 + 175 .loc 1 3585 3 discriminator 1 view .LVU48 + 176 0000 0268 ldr r2, [r0] + 177 .LVL14: + 178 .LBB520: + 179 .LBI520: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 180 .loc 2 1151 31 discriminator 1 view .LVU49 + 181 .LBB521: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 182 .loc 2 1153 5 discriminator 1 view .LVU50 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 183 .loc 2 1155 4 discriminator 1 view .LVU51 + 184 .syntax unified + 185 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 186 0002 52E8003F ldrex r3, [r2] + 187 @ 0 "" 2 + 188 .LVL15: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 189 .loc 2 1156 4 discriminator 1 view .LVU52 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 190 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU53 + 191 .thumb + 192 .syntax unified + 193 .LBE521: + 194 .LBE520: + 195 .loc 1 3585 3 discriminator 1 view .LVU54 + 196 0006 23F49073 bic r3, r3, #288 + 197 .LVL16: + 198 .loc 1 3585 3 is_stmt 1 discriminator 1 view .LVU55 + 199 .LBB522: + 200 .LBI522: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 201 .loc 2 1202 31 discriminator 1 view .LVU56 + 202 .LBB523: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 203 .loc 2 1204 4 discriminator 1 view .LVU57 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 204 .loc 2 1206 4 discriminator 1 view .LVU58 + 205 .syntax unified + 206 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 207 000a 42E80031 strex r1, r3, [r2] + 208 @ 0 "" 2 + 209 .LVL17: + ARM GAS /tmp/cceWHrnJ.s page 89 + + + 210 .loc 2 1207 4 discriminator 1 view .LVU59 + 211 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU60 + 212 .thumb + 213 .syntax unified + 214 .LBE523: + 215 .LBE522: + 216 .loc 1 3585 3 discriminator 1 view .LVU61 + 217 000e 0029 cmp r1, #0 + 218 0010 F6D1 bne .L5 + 219 .LVL18: + 220 .L6: + 221 .loc 1 3585 3 discriminator 1 view .LVU62 + 222 .LBE519: + 223 .loc 1 3585 3 is_stmt 1 discriminator 1 view .LVU63 +3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 224 .loc 1 3586 3 discriminator 1 view .LVU64 + 225 .LBB524: + 226 .loc 1 3586 3 discriminator 1 view .LVU65 + 227 .loc 1 3586 3 discriminator 1 view .LVU66 + 228 .loc 1 3586 3 discriminator 1 view .LVU67 + 229 0012 0268 ldr r2, [r0] + 230 .LVL19: + 231 .LBB525: + 232 .LBI525: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 233 .loc 2 1151 31 discriminator 1 view .LVU68 + 234 .LBB526: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 235 .loc 2 1153 5 discriminator 1 view .LVU69 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 236 .loc 2 1155 4 discriminator 1 view .LVU70 + 237 0014 02F10803 add r3, r2, #8 + 238 .LVL20: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU71 + 240 .syntax unified + 241 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 242 0018 53E8003F ldrex r3, [r3] + 243 @ 0 "" 2 + 244 .LVL21: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 245 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU72 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 246 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU73 + 247 .thumb + 248 .syntax unified + 249 .LBE526: + 250 .LBE525: + 251 .loc 1 3586 3 discriminator 1 view .LVU74 + 252 001c 23F08053 bic r3, r3, #268435456 + 253 0020 23F00103 bic r3, r3, #1 + 254 .LVL22: + 255 .loc 1 3586 3 is_stmt 1 discriminator 1 view .LVU75 + 256 .LBB527: + 257 .LBI527: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 258 .loc 2 1202 31 discriminator 1 view .LVU76 + ARM GAS /tmp/cceWHrnJ.s page 90 + + + 259 .LBB528: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 260 .loc 2 1204 4 discriminator 1 view .LVU77 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 261 .loc 2 1206 4 discriminator 1 view .LVU78 + 262 0024 0832 adds r2, r2, #8 + 263 .LVL23: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 264 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU79 + 265 .syntax unified + 266 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 267 0026 42E80031 strex r1, r3, [r2] + 268 @ 0 "" 2 + 269 .LVL24: + 270 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU80 + 271 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU81 + 272 .thumb + 273 .syntax unified + 274 .LBE528: + 275 .LBE527: + 276 .loc 1 3586 3 discriminator 1 view .LVU82 + 277 002a 0029 cmp r1, #0 + 278 002c F1D1 bne .L6 + 279 .LBE524: + 280 .loc 1 3586 3 is_stmt 1 discriminator 2 view .LVU83 +3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ +3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 281 .loc 1 3589 3 discriminator 2 view .LVU84 + 282 .loc 1 3589 12 is_stmt 0 discriminator 2 view .LVU85 + 283 002e C36E ldr r3, [r0, #108] + 284 .LVL25: + 285 .loc 1 3589 6 discriminator 2 view .LVU86 + 286 0030 012B cmp r3, #1 + 287 0032 06D0 beq .L8 + 288 .L7: +3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 289 .loc 1 3591 5 is_stmt 1 discriminator 2 view .LVU87 +3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ +3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 290 .loc 1 3595 3 discriminator 2 view .LVU88 + 291 .loc 1 3595 18 is_stmt 0 discriminator 2 view .LVU89 + 292 0034 2023 movs r3, #32 + 293 0036 C0F88830 str r3, [r0, #136] +3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 294 .loc 1 3596 3 is_stmt 1 discriminator 2 view .LVU90 + 295 .loc 1 3596 24 is_stmt 0 discriminator 2 view .LVU91 + 296 003a 0023 movs r3, #0 + 297 003c C366 str r3, [r0, #108] +3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset RxIsr function pointer */ +3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; + 298 .loc 1 3599 3 is_stmt 1 discriminator 2 view .LVU92 + 299 .loc 1 3599 16 is_stmt 0 discriminator 2 view .LVU93 + ARM GAS /tmp/cceWHrnJ.s page 91 + + + 300 003e 0367 str r3, [r0, #112] +3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 301 .loc 1 3600 1 discriminator 2 view .LVU94 + 302 0040 7047 bx lr + 303 .L8: +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 304 .loc 1 3591 5 is_stmt 1 discriminator 1 view .LVU95 + 305 .LBB529: +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 306 .loc 1 3591 5 discriminator 1 view .LVU96 +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 307 .loc 1 3591 5 discriminator 1 view .LVU97 +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 308 .loc 1 3591 5 discriminator 1 view .LVU98 + 309 0042 0268 ldr r2, [r0] + 310 .LVL26: + 311 .LBB530: + 312 .LBI530: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 313 .loc 2 1151 31 discriminator 1 view .LVU99 + 314 .LBB531: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 315 .loc 2 1153 5 discriminator 1 view .LVU100 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 316 .loc 2 1155 4 discriminator 1 view .LVU101 + 317 .syntax unified + 318 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 319 0044 52E8003F ldrex r3, [r2] + 320 @ 0 "" 2 + 321 .LVL27: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 322 .loc 2 1156 4 discriminator 1 view .LVU102 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 323 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU103 + 324 .thumb + 325 .syntax unified + 326 .LBE531: + 327 .LBE530: +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 328 .loc 1 3591 5 discriminator 1 view .LVU104 + 329 0048 23F01003 bic r3, r3, #16 + 330 .LVL28: +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 331 .loc 1 3591 5 is_stmt 1 discriminator 1 view .LVU105 + 332 .LBB532: + 333 .LBI532: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 334 .loc 2 1202 31 discriminator 1 view .LVU106 + 335 .LBB533: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 336 .loc 2 1204 4 discriminator 1 view .LVU107 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 337 .loc 2 1206 4 discriminator 1 view .LVU108 + 338 .syntax unified + 339 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 340 004c 42E80031 strex r1, r3, [r2] + 341 @ 0 "" 2 + ARM GAS /tmp/cceWHrnJ.s page 92 + + + 342 .LVL29: + 343 .loc 2 1207 4 discriminator 1 view .LVU109 + 344 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU110 + 345 .thumb + 346 .syntax unified + 347 .LBE533: + 348 .LBE532: +3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 349 .loc 1 3591 5 discriminator 1 view .LVU111 + 350 0050 0029 cmp r1, #0 + 351 0052 F6D1 bne .L8 + 352 0054 EEE7 b .L7 + 353 .LBE529: + 354 .cfi_endproc + 355 .LFE379: + 357 .section .text.UART_TxISR_8BIT,"ax",%progbits + 358 .align 1 + 359 .syntax unified + 360 .thumb + 361 .thumb_func + 363 UART_TxISR_8BIT: + 364 .LVL30: + 365 .LFB390: +3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART transmit process complete callback. +3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Normal mode */ +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC)) +3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by resetting the DMAT bit +3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); +3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); +3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Circular mode */ +3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Tx complete callback*/ +3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback(huart); +3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); +3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 93 + + +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback. +3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Tx Half complete callback*/ +3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback(huart); +3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Tx Half complete callback*/ +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart); +3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART receive process complete callback. +3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Normal mode */ +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC)) +3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit +3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); +3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event has been selected, Disable IDLE Interrupt */ +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +3682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +3690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + ARM GAS /tmp/cceWHrnJ.s page 94 + + +3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +3693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); +3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In other cases : use Rx Complete callback */ +3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ +3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); +3705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ +3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); +3708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART receive process half complete callback. +3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ +3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize / 2U); +3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); +3731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In other cases : use Rx Half Complete callback */ +3736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Half complete callback*/ +3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback(huart); +3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Half complete callback*/ +3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart); +3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART communication error callback. +3748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. + ARM GAS /tmp/cceWHrnJ.s page 95 + + +3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma) +3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; +3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; +3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && +3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) +3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); +3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && +3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) +3769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); +3772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_DMA; +3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ +3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error +3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence). +3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ +3799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 96 + + +3806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user +3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). +3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no +3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle. +3811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; +3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) +3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx->XferAbortCallback != NULL) +3824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset errorCode */ +3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); +3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ +3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); +3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ +3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ +3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort complete callback */ +3853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback(huart); +3854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ +3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); +3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user + ARM GAS /tmp/cceWHrnJ.s page 97 + + +3863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). +3864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no +3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle. +3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) +3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; +3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) +3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx->XferAbortCallback != NULL) +3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; +3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba +3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +3887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset errorCode */ +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +3890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); +3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ +3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); +3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ +3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort complete callback */ +3905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback(huart); +3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ +3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); +3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to +3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer) +3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques +3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution). +3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None + ARM GAS /tmp/cceWHrnJ.s page 98 + + +3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma) +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); +3924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; +3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ +3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) +3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); +3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; +3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ +3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ +3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); +3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ +3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); +3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user by a call to +3948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer) +3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques +3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution). +3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. +3952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma) +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; +3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; +3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ +3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); +3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); +3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ +3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ +3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ +3973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); +3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ +3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); + ARM GAS /tmp/cceWHrnJ.s page 99 + + +3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 7 or 8 bits data word length . +3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +3983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). +3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) +3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 366 .loc 1 3988 1 is_stmt 1 view -0 + 367 .cfi_startproc + 368 @ args = 0, pretend = 0, frame = 0 + 369 @ frame_needed = 0, uses_anonymous_args = 0 + 370 @ link register save eliminated. +3989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ +3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) + 371 .loc 1 3990 3 view .LVU113 + 372 .loc 1 3990 12 is_stmt 0 view .LVU114 + 373 0000 D0F88430 ldr r3, [r0, #132] + 374 .loc 1 3990 6 view .LVU115 + 375 0004 212B cmp r3, #33 + 376 0006 00D0 beq .L14 + 377 .L9: +3991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) +3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */ +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); +3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +3997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); +3999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; +4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; +4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 378 .loc 1 4007 1 view .LVU116 + 379 0008 7047 bx lr + 380 .L14: +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 381 .loc 1 3992 5 is_stmt 1 view .LVU117 +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 382 .loc 1 3992 14 is_stmt 0 view .LVU118 + 383 000a B0F85630 ldrh r3, [r0, #86] + 384 000e 9BB2 uxth r3, r3 +3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 385 .loc 1 3992 8 view .LVU119 + 386 0010 93B9 cbnz r3, .L11 + 387 .L12: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 100 + + + 388 .loc 1 3995 7 is_stmt 1 discriminator 1 view .LVU120 + 389 .LBB534: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 390 .loc 1 3995 7 discriminator 1 view .LVU121 +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 391 .loc 1 3995 7 discriminator 1 view .LVU122 +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 392 .loc 1 3995 7 discriminator 1 view .LVU123 + 393 0012 0268 ldr r2, [r0] + 394 .LVL31: + 395 .LBB535: + 396 .LBI535: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 397 .loc 2 1151 31 discriminator 1 view .LVU124 + 398 .LBB536: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 399 .loc 2 1153 5 discriminator 1 view .LVU125 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 400 .loc 2 1155 4 discriminator 1 view .LVU126 + 401 .syntax unified + 402 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 403 0014 52E8003F ldrex r3, [r2] + 404 @ 0 "" 2 + 405 .LVL32: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 406 .loc 2 1156 4 discriminator 1 view .LVU127 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 407 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU128 + 408 .thumb + 409 .syntax unified + 410 .LBE536: + 411 .LBE535: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 412 .loc 1 3995 7 discriminator 1 view .LVU129 + 413 0018 23F08003 bic r3, r3, #128 + 414 .LVL33: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 415 .loc 1 3995 7 is_stmt 1 discriminator 1 view .LVU130 + 416 .LBB537: + 417 .LBI537: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 418 .loc 2 1202 31 discriminator 1 view .LVU131 + 419 .LBB538: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 420 .loc 2 1204 4 discriminator 1 view .LVU132 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 421 .loc 2 1206 4 discriminator 1 view .LVU133 + 422 .syntax unified + 423 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 424 001c 42E80031 strex r1, r3, [r2] + 425 @ 0 "" 2 + 426 .LVL34: + 427 .loc 2 1207 4 discriminator 1 view .LVU134 + 428 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU135 + 429 .thumb + 430 .syntax unified + 431 .LBE538: + ARM GAS /tmp/cceWHrnJ.s page 101 + + + 432 .LBE537: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 433 .loc 1 3995 7 discriminator 1 view .LVU136 + 434 0020 0029 cmp r1, #0 + 435 0022 F6D1 bne .L12 + 436 .LVL35: + 437 .L13: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 438 .loc 1 3995 7 discriminator 1 view .LVU137 + 439 .LBE534: +3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 440 .loc 1 3995 7 is_stmt 1 discriminator 1 view .LVU138 +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 441 .loc 1 3998 7 discriminator 1 view .LVU139 + 442 .LBB539: +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 443 .loc 1 3998 7 discriminator 1 view .LVU140 +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 444 .loc 1 3998 7 discriminator 1 view .LVU141 +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 445 .loc 1 3998 7 discriminator 1 view .LVU142 + 446 0024 0268 ldr r2, [r0] + 447 .LVL36: + 448 .LBB540: + 449 .LBI540: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 450 .loc 2 1151 31 discriminator 1 view .LVU143 + 451 .LBB541: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 452 .loc 2 1153 5 discriminator 1 view .LVU144 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 453 .loc 2 1155 4 discriminator 1 view .LVU145 + 454 .syntax unified + 455 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 456 0026 52E8003F ldrex r3, [r2] + 457 @ 0 "" 2 + 458 .LVL37: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 459 .loc 2 1156 4 discriminator 1 view .LVU146 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 460 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU147 + 461 .thumb + 462 .syntax unified + 463 .LBE541: + 464 .LBE540: +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 465 .loc 1 3998 7 discriminator 1 view .LVU148 + 466 002a 43F04003 orr r3, r3, #64 + 467 .LVL38: +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 468 .loc 1 3998 7 is_stmt 1 discriminator 1 view .LVU149 + 469 .LBB542: + 470 .LBI542: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 471 .loc 2 1202 31 discriminator 1 view .LVU150 + 472 .LBB543: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 102 + + + 473 .loc 2 1204 4 discriminator 1 view .LVU151 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 474 .loc 2 1206 4 discriminator 1 view .LVU152 + 475 .syntax unified + 476 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 477 002e 42E80031 strex r1, r3, [r2] + 478 @ 0 "" 2 + 479 .LVL39: + 480 .loc 2 1207 4 discriminator 1 view .LVU153 + 481 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU154 + 482 .thumb + 483 .syntax unified + 484 .LBE543: + 485 .LBE542: +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 486 .loc 1 3998 7 discriminator 1 view .LVU155 + 487 0032 0029 cmp r1, #0 + 488 0034 F6D1 bne .L13 + 489 0036 7047 bx lr + 490 .LVL40: + 491 .L11: +3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 492 .loc 1 3998 7 discriminator 1 view .LVU156 + 493 .LBE539: +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 494 .loc 1 4002 7 is_stmt 1 view .LVU157 +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 495 .loc 1 4002 46 is_stmt 0 view .LVU158 + 496 0038 036D ldr r3, [r0, #80] +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 497 .loc 1 4002 40 view .LVU159 + 498 003a 1A78 ldrb r2, [r3] @ zero_extendqisi2 +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 499 .loc 1 4002 12 view .LVU160 + 500 003c 0368 ldr r3, [r0] +4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 501 .loc 1 4002 28 view .LVU161 + 502 003e 9A62 str r2, [r3, #40] +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 503 .loc 1 4003 7 is_stmt 1 view .LVU162 +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 504 .loc 1 4003 12 is_stmt 0 view .LVU163 + 505 0040 036D ldr r3, [r0, #80] +4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 506 .loc 1 4003 24 view .LVU164 + 507 0042 0133 adds r3, r3, #1 + 508 0044 0365 str r3, [r0, #80] +4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 509 .loc 1 4004 7 is_stmt 1 view .LVU165 +4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 510 .loc 1 4004 12 is_stmt 0 view .LVU166 + 511 0046 B0F85630 ldrh r3, [r0, #86] + 512 004a 9BB2 uxth r3, r3 +4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 513 .loc 1 4004 25 view .LVU167 + 514 004c 013B subs r3, r3, #1 + 515 004e 9BB2 uxth r3, r3 + ARM GAS /tmp/cceWHrnJ.s page 103 + + + 516 0050 A0F85630 strh r3, [r0, #86] @ movhi + 517 .loc 1 4007 1 view .LVU168 + 518 0054 D8E7 b .L9 + 519 .cfi_endproc + 520 .LFE390: + 522 .section .text.UART_TxISR_16BIT,"ax",%progbits + 523 .align 1 + 524 .syntax unified + 525 .thumb + 526 .thumb_func + 528 UART_TxISR_16BIT: + 529 .LVL41: + 530 .LFB391: +4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 9 bits data word length. +4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). +4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) +4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 531 .loc 1 4017 1 is_stmt 1 view -0 + 532 .cfi_startproc + 533 @ args = 0, pretend = 0, frame = 0 + 534 @ frame_needed = 0, uses_anonymous_args = 0 + 535 @ link register save eliminated. +4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint16_t *tmp; + 536 .loc 1 4018 3 view .LVU170 +4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ +4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) + 537 .loc 1 4021 3 view .LVU171 + 538 .loc 1 4021 12 is_stmt 0 view .LVU172 + 539 0000 D0F88430 ldr r3, [r0, #132] + 540 .loc 1 4021 6 view .LVU173 + 541 0004 212B cmp r3, #33 + 542 0006 00D0 beq .L20 + 543 .L15: +4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) +4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */ +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); +4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); +4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (const uint16_t *) huart->pTxBuffPtr; +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); +4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; +4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 104 + + +4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 544 .loc 1 4039 1 view .LVU174 + 545 0008 7047 bx lr + 546 .L20: +4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 547 .loc 1 4023 5 is_stmt 1 view .LVU175 +4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 548 .loc 1 4023 14 is_stmt 0 view .LVU176 + 549 000a B0F85630 ldrh r3, [r0, #86] + 550 000e 9BB2 uxth r3, r3 +4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 551 .loc 1 4023 8 view .LVU177 + 552 0010 93B9 cbnz r3, .L17 + 553 .L18: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 554 .loc 1 4026 7 is_stmt 1 discriminator 1 view .LVU178 + 555 .LBB544: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 556 .loc 1 4026 7 discriminator 1 view .LVU179 +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 557 .loc 1 4026 7 discriminator 1 view .LVU180 +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 558 .loc 1 4026 7 discriminator 1 view .LVU181 + 559 0012 0268 ldr r2, [r0] + 560 .LVL42: + 561 .LBB545: + 562 .LBI545: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 563 .loc 2 1151 31 discriminator 1 view .LVU182 + 564 .LBB546: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 565 .loc 2 1153 5 discriminator 1 view .LVU183 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 566 .loc 2 1155 4 discriminator 1 view .LVU184 + 567 .syntax unified + 568 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 569 0014 52E8003F ldrex r3, [r2] + 570 @ 0 "" 2 + 571 .LVL43: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 572 .loc 2 1156 4 discriminator 1 view .LVU185 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 573 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU186 + 574 .thumb + 575 .syntax unified + 576 .LBE546: + 577 .LBE545: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 578 .loc 1 4026 7 discriminator 1 view .LVU187 + 579 0018 23F08003 bic r3, r3, #128 + 580 .LVL44: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 581 .loc 1 4026 7 is_stmt 1 discriminator 1 view .LVU188 + 582 .LBB547: + 583 .LBI547: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 584 .loc 2 1202 31 discriminator 1 view .LVU189 + ARM GAS /tmp/cceWHrnJ.s page 105 + + + 585 .LBB548: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 586 .loc 2 1204 4 discriminator 1 view .LVU190 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 587 .loc 2 1206 4 discriminator 1 view .LVU191 + 588 .syntax unified + 589 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 590 001c 42E80031 strex r1, r3, [r2] + 591 @ 0 "" 2 + 592 .LVL45: + 593 .loc 2 1207 4 discriminator 1 view .LVU192 + 594 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU193 + 595 .thumb + 596 .syntax unified + 597 .LBE548: + 598 .LBE547: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 599 .loc 1 4026 7 discriminator 1 view .LVU194 + 600 0020 0029 cmp r1, #0 + 601 0022 F6D1 bne .L18 + 602 .LVL46: + 603 .L19: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 604 .loc 1 4026 7 discriminator 1 view .LVU195 + 605 .LBE544: +4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 606 .loc 1 4026 7 is_stmt 1 discriminator 1 view .LVU196 +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 607 .loc 1 4029 7 discriminator 1 view .LVU197 + 608 .LBB549: +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 609 .loc 1 4029 7 discriminator 1 view .LVU198 +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 610 .loc 1 4029 7 discriminator 1 view .LVU199 +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 611 .loc 1 4029 7 discriminator 1 view .LVU200 + 612 0024 0268 ldr r2, [r0] + 613 .LVL47: + 614 .LBB550: + 615 .LBI550: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 616 .loc 2 1151 31 discriminator 1 view .LVU201 + 617 .LBB551: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618 .loc 2 1153 5 discriminator 1 view .LVU202 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 619 .loc 2 1155 4 discriminator 1 view .LVU203 + 620 .syntax unified + 621 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 622 0026 52E8003F ldrex r3, [r2] + 623 @ 0 "" 2 + 624 .LVL48: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 625 .loc 2 1156 4 discriminator 1 view .LVU204 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 626 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU205 + 627 .thumb + ARM GAS /tmp/cceWHrnJ.s page 106 + + + 628 .syntax unified + 629 .LBE551: + 630 .LBE550: +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 631 .loc 1 4029 7 discriminator 1 view .LVU206 + 632 002a 43F04003 orr r3, r3, #64 + 633 .LVL49: +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 634 .loc 1 4029 7 is_stmt 1 discriminator 1 view .LVU207 + 635 .LBB552: + 636 .LBI552: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 637 .loc 2 1202 31 discriminator 1 view .LVU208 + 638 .LBB553: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 639 .loc 2 1204 4 discriminator 1 view .LVU209 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 640 .loc 2 1206 4 discriminator 1 view .LVU210 + 641 .syntax unified + 642 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 643 002e 42E80031 strex r1, r3, [r2] + 644 @ 0 "" 2 + 645 .LVL50: + 646 .loc 2 1207 4 discriminator 1 view .LVU211 + 647 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU212 + 648 .thumb + 649 .syntax unified + 650 .LBE553: + 651 .LBE552: +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 652 .loc 1 4029 7 discriminator 1 view .LVU213 + 653 0032 0029 cmp r1, #0 + 654 0034 F6D1 bne .L19 + 655 0036 7047 bx lr + 656 .LVL51: + 657 .L17: +4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 658 .loc 1 4029 7 discriminator 1 view .LVU214 + 659 .LBE549: +4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); + 660 .loc 1 4033 7 is_stmt 1 view .LVU215 +4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); + 661 .loc 1 4033 11 is_stmt 0 view .LVU216 + 662 0038 036D ldr r3, [r0, #80] + 663 .LVL52: +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 664 .loc 1 4034 7 is_stmt 1 view .LVU217 +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 665 .loc 1 4034 43 is_stmt 0 view .LVU218 + 666 003a 1B88 ldrh r3, [r3] + 667 .LVL53: +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 668 .loc 1 4034 12 view .LVU219 + 669 003c 0268 ldr r2, [r0] +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 670 .loc 1 4034 50 view .LVU220 + 671 003e C3F30803 ubfx r3, r3, #0, #9 + ARM GAS /tmp/cceWHrnJ.s page 107 + + +4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 672 .loc 1 4034 28 view .LVU221 + 673 0042 9362 str r3, [r2, #40] + 674 .LVL54: +4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 675 .loc 1 4035 7 is_stmt 1 view .LVU222 +4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 676 .loc 1 4035 12 is_stmt 0 view .LVU223 + 677 0044 036D ldr r3, [r0, #80] +4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 678 .loc 1 4035 25 view .LVU224 + 679 0046 0233 adds r3, r3, #2 + 680 0048 0365 str r3, [r0, #80] +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 681 .loc 1 4036 7 is_stmt 1 view .LVU225 +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 682 .loc 1 4036 12 is_stmt 0 view .LVU226 + 683 004a B0F85630 ldrh r3, [r0, #86] + 684 004e 9BB2 uxth r3, r3 +4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 685 .loc 1 4036 25 view .LVU227 + 686 0050 013B subs r3, r3, #1 + 687 0052 9BB2 uxth r3, r3 + 688 0054 A0F85630 strh r3, [r0, #86] @ movhi + 689 .loc 1 4039 1 view .LVU228 + 690 0058 D6E7 b .L15 + 691 .cfi_endproc + 692 .LFE391: + 694 .section .text.UART_TxISR_8BIT_FIFOEN,"ax",%progbits + 695 .align 1 + 696 .syntax unified + 697 .thumb + 698 .thumb_func + 700 UART_TxISR_8BIT_FIFOEN: + 701 .LVL55: + 702 .LFB392: +4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 7 or 8 bits data word length and FIFO mode is enabled. +4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). +4045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) +4049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 703 .loc 1 4049 1 is_stmt 1 view -0 + 704 .cfi_startproc + 705 @ args = 0, pretend = 0, frame = 0 + 706 @ frame_needed = 0, uses_anonymous_args = 0 + 707 @ link register save eliminated. +4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_tx_data; + 708 .loc 1 4050 3 view .LVU230 +4051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ +4053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) + 709 .loc 1 4053 3 view .LVU231 + ARM GAS /tmp/cceWHrnJ.s page 108 + + + 710 .loc 1 4053 12 is_stmt 0 view .LVU232 + 711 0000 D0F88430 ldr r3, [r0, #132] + 712 .loc 1 4053 6 view .LVU233 + 713 0004 212B cmp r3, #33 + 714 0006 00D0 beq .L29 + 715 .L21: +4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) +4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) +4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the TX FIFO threshold interrupt */ +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); +4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); +4064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; /* force exit loop */ +4066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) +4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; +4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; +4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Nothing to do */ +4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 716 .loc 1 4079 1 view .LVU234 + 717 0008 7047 bx lr + 718 .L29: +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 719 .loc 1 4055 5 is_stmt 1 view .LVU235 +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 720 .loc 1 4055 21 is_stmt 0 view .LVU236 + 721 000a B0F86A30 ldrh r3, [r0, #106] + 722 .LVL56: +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 723 .loc 1 4055 5 view .LVU237 + 724 000e 17E0 b .L23 + 725 .LVL57: + 726 .L25: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 727 .loc 1 4060 9 is_stmt 1 discriminator 1 view .LVU238 + 728 .LBB554: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 729 .loc 1 4060 9 discriminator 1 view .LVU239 +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 730 .loc 1 4060 9 discriminator 1 view .LVU240 +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 731 .loc 1 4060 9 discriminator 1 view .LVU241 + 732 0010 0268 ldr r2, [r0] + 733 .LVL58: + ARM GAS /tmp/cceWHrnJ.s page 109 + + + 734 .LBB555: + 735 .LBI555: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 736 .loc 2 1151 31 discriminator 1 view .LVU242 + 737 .LBB556: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 738 .loc 2 1153 5 discriminator 1 view .LVU243 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 739 .loc 2 1155 4 discriminator 1 view .LVU244 + 740 0012 02F10803 add r3, r2, #8 + 741 .LVL59: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 742 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU245 + 743 .syntax unified + 744 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 745 0016 53E8003F ldrex r3, [r3] + 746 @ 0 "" 2 + 747 .LVL60: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 748 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU246 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 749 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU247 + 750 .thumb + 751 .syntax unified + 752 .LBE556: + 753 .LBE555: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 754 .loc 1 4060 9 discriminator 1 view .LVU248 + 755 001a 23F40003 bic r3, r3, #8388608 + 756 .LVL61: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 757 .loc 1 4060 9 is_stmt 1 discriminator 1 view .LVU249 + 758 .LBB557: + 759 .LBI557: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 760 .loc 2 1202 31 discriminator 1 view .LVU250 + 761 .LBB558: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 762 .loc 2 1204 4 discriminator 1 view .LVU251 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 763 .loc 2 1206 4 discriminator 1 view .LVU252 + 764 001e 0832 adds r2, r2, #8 + 765 .LVL62: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 766 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU253 + 767 .syntax unified + 768 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 769 0020 42E80031 strex r1, r3, [r2] + 770 @ 0 "" 2 + 771 .LVL63: + 772 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU254 + 773 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU255 + 774 .thumb + 775 .syntax unified + 776 .LBE558: + 777 .LBE557: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 110 + + + 778 .loc 1 4060 9 discriminator 1 view .LVU256 + 779 0024 0029 cmp r1, #0 + 780 0026 F3D1 bne .L25 + 781 .LVL64: + 782 .L26: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 783 .loc 1 4060 9 discriminator 1 view .LVU257 + 784 .LBE554: +4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 785 .loc 1 4060 9 is_stmt 1 discriminator 1 view .LVU258 +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 786 .loc 1 4063 9 discriminator 1 view .LVU259 + 787 .LBB559: +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 788 .loc 1 4063 9 discriminator 1 view .LVU260 +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 789 .loc 1 4063 9 discriminator 1 view .LVU261 +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 790 .loc 1 4063 9 discriminator 1 view .LVU262 + 791 0028 0268 ldr r2, [r0] + 792 .LVL65: + 793 .LBB560: + 794 .LBI560: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 795 .loc 2 1151 31 discriminator 1 view .LVU263 + 796 .LBB561: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 797 .loc 2 1153 5 discriminator 1 view .LVU264 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 798 .loc 2 1155 4 discriminator 1 view .LVU265 + 799 .syntax unified + 800 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 801 002a 52E8003F ldrex r3, [r2] + 802 @ 0 "" 2 + 803 .LVL66: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 804 .loc 2 1156 4 discriminator 1 view .LVU266 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 805 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU267 + 806 .thumb + 807 .syntax unified + 808 .LBE561: + 809 .LBE560: +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 810 .loc 1 4063 9 discriminator 1 view .LVU268 + 811 002e 43F04003 orr r3, r3, #64 + 812 .LVL67: +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 813 .loc 1 4063 9 is_stmt 1 discriminator 1 view .LVU269 + 814 .LBB562: + 815 .LBI562: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 816 .loc 2 1202 31 discriminator 1 view .LVU270 + 817 .LBB563: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 818 .loc 2 1204 4 discriminator 1 view .LVU271 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + ARM GAS /tmp/cceWHrnJ.s page 111 + + + 819 .loc 2 1206 4 discriminator 1 view .LVU272 + 820 .syntax unified + 821 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 822 0032 42E80031 strex r1, r3, [r2] + 823 @ 0 "" 2 + 824 .LVL68: + 825 .loc 2 1207 4 discriminator 1 view .LVU273 + 826 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU274 + 827 .thumb + 828 .syntax unified + 829 .LBE563: + 830 .LBE562: +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 831 .loc 1 4063 9 discriminator 1 view .LVU275 + 832 0036 0029 cmp r1, #0 + 833 0038 F6D1 bne .L26 + 834 003a 7047 bx lr + 835 .LVL69: + 836 .L27: +4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 837 .loc 1 4063 9 discriminator 1 view .LVU276 + 838 .LBE559: +4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 839 .loc 1 4076 7 is_stmt 1 discriminator 2 view .LVU277 +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 840 .loc 1 4055 78 discriminator 2 view .LVU278 + 841 003c 013B subs r3, r3, #1 + 842 .LVL70: +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 843 .loc 1 4055 78 is_stmt 0 discriminator 2 view .LVU279 + 844 003e 9BB2 uxth r3, r3 + 845 .LVL71: + 846 .L23: +4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 847 .loc 1 4055 61 is_stmt 1 discriminator 1 view .LVU280 + 848 0040 002B cmp r3, #0 + 849 0042 E1D0 beq .L21 +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 850 .loc 1 4057 7 view .LVU281 +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 851 .loc 1 4057 16 is_stmt 0 view .LVU282 + 852 0044 B0F85620 ldrh r2, [r0, #86] + 853 0048 92B2 uxth r2, r2 +4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 854 .loc 1 4057 10 view .LVU283 + 855 004a 002A cmp r2, #0 + 856 004c E0D0 beq .L25 +4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 857 .loc 1 4067 12 is_stmt 1 view .LVU284 +4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 858 .loc 1 4067 16 is_stmt 0 view .LVU285 + 859 004e 0268 ldr r2, [r0] + 860 0050 D169 ldr r1, [r2, #28] +4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 861 .loc 1 4067 15 view .LVU286 + 862 0052 11F0800F tst r1, #128 + 863 0056 F1D0 beq .L27 + ARM GAS /tmp/cceWHrnJ.s page 112 + + +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 864 .loc 1 4069 9 is_stmt 1 view .LVU287 +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 865 .loc 1 4069 48 is_stmt 0 view .LVU288 + 866 0058 016D ldr r1, [r0, #80] +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 867 .loc 1 4069 42 view .LVU289 + 868 005a 0978 ldrb r1, [r1] @ zero_extendqisi2 +4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; + 869 .loc 1 4069 30 view .LVU290 + 870 005c 9162 str r1, [r2, #40] +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 871 .loc 1 4070 9 is_stmt 1 view .LVU291 +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 872 .loc 1 4070 14 is_stmt 0 view .LVU292 + 873 005e 026D ldr r2, [r0, #80] +4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 874 .loc 1 4070 26 view .LVU293 + 875 0060 0132 adds r2, r2, #1 + 876 0062 0265 str r2, [r0, #80] +4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 877 .loc 1 4071 9 is_stmt 1 view .LVU294 +4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 878 .loc 1 4071 14 is_stmt 0 view .LVU295 + 879 0064 B0F85620 ldrh r2, [r0, #86] + 880 0068 92B2 uxth r2, r2 +4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 881 .loc 1 4071 27 view .LVU296 + 882 006a 013A subs r2, r2, #1 + 883 006c 92B2 uxth r2, r2 + 884 006e A0F85620 strh r2, [r0, #86] @ movhi + 885 0072 E3E7 b .L27 + 886 .cfi_endproc + 887 .LFE392: + 889 .section .text.UART_TxISR_16BIT_FIFOEN,"ax",%progbits + 890 .align 1 + 891 .syntax unified + 892 .thumb + 893 .thumb_func + 895 UART_TxISR_16BIT_FIFOEN: + 896 .LVL72: + 897 .LFB393: +4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 9 bits data word length and FIFO mode is enabled. +4083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). +4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) +4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 898 .loc 1 4089 1 is_stmt 1 view -0 + 899 .cfi_startproc + 900 @ args = 0, pretend = 0, frame = 0 + 901 @ frame_needed = 0, uses_anonymous_args = 0 + 902 @ link register save eliminated. + ARM GAS /tmp/cceWHrnJ.s page 113 + + +4090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint16_t *tmp; + 903 .loc 1 4090 3 view .LVU298 +4091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_tx_data; + 904 .loc 1 4091 3 view .LVU299 +4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ +4094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) + 905 .loc 1 4094 3 view .LVU300 + 906 .loc 1 4094 12 is_stmt 0 view .LVU301 + 907 0000 D0F88430 ldr r3, [r0, #132] + 908 .loc 1 4094 6 view .LVU302 + 909 0004 212B cmp r3, #33 + 910 0006 00D0 beq .L38 + 911 .L30: +4095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) +4097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) +4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the TX FIFO threshold interrupt */ +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); +4102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); +4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; /* force exit loop */ +4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) +4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (const uint16_t *) huart->pTxBuffPtr; +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; +4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; +4114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Nothing to do */ +4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 912 .loc 1 4121 1 view .LVU303 + 913 0008 7047 bx lr + 914 .L38: +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 915 .loc 1 4096 5 is_stmt 1 view .LVU304 +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 916 .loc 1 4096 21 is_stmt 0 view .LVU305 + 917 000a B0F86A30 ldrh r3, [r0, #106] + 918 .LVL73: +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 919 .loc 1 4096 5 view .LVU306 + 920 000e 17E0 b .L32 + 921 .LVL74: + 922 .L34: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 923 .loc 1 4101 9 is_stmt 1 discriminator 1 view .LVU307 + ARM GAS /tmp/cceWHrnJ.s page 114 + + + 924 .LBB564: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 925 .loc 1 4101 9 discriminator 1 view .LVU308 +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 926 .loc 1 4101 9 discriminator 1 view .LVU309 +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 927 .loc 1 4101 9 discriminator 1 view .LVU310 + 928 0010 0268 ldr r2, [r0] + 929 .LVL75: + 930 .LBB565: + 931 .LBI565: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 932 .loc 2 1151 31 discriminator 1 view .LVU311 + 933 .LBB566: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 934 .loc 2 1153 5 discriminator 1 view .LVU312 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 935 .loc 2 1155 4 discriminator 1 view .LVU313 + 936 0012 02F10803 add r3, r2, #8 + 937 .LVL76: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 938 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU314 + 939 .syntax unified + 940 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 941 0016 53E8003F ldrex r3, [r3] + 942 @ 0 "" 2 + 943 .LVL77: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 944 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU315 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 945 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU316 + 946 .thumb + 947 .syntax unified + 948 .LBE566: + 949 .LBE565: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 950 .loc 1 4101 9 discriminator 1 view .LVU317 + 951 001a 23F40003 bic r3, r3, #8388608 + 952 .LVL78: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 953 .loc 1 4101 9 is_stmt 1 discriminator 1 view .LVU318 + 954 .LBB567: + 955 .LBI567: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 956 .loc 2 1202 31 discriminator 1 view .LVU319 + 957 .LBB568: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 958 .loc 2 1204 4 discriminator 1 view .LVU320 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 959 .loc 2 1206 4 discriminator 1 view .LVU321 + 960 001e 0832 adds r2, r2, #8 + 961 .LVL79: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 962 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU322 + 963 .syntax unified + 964 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 965 0020 42E80031 strex r1, r3, [r2] + ARM GAS /tmp/cceWHrnJ.s page 115 + + + 966 @ 0 "" 2 + 967 .LVL80: + 968 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU323 + 969 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU324 + 970 .thumb + 971 .syntax unified + 972 .LBE568: + 973 .LBE567: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 974 .loc 1 4101 9 discriminator 1 view .LVU325 + 975 0024 0029 cmp r1, #0 + 976 0026 F3D1 bne .L34 + 977 .LVL81: + 978 .L35: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 979 .loc 1 4101 9 discriminator 1 view .LVU326 + 980 .LBE564: +4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 981 .loc 1 4101 9 is_stmt 1 discriminator 1 view .LVU327 +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 982 .loc 1 4104 9 discriminator 1 view .LVU328 + 983 .LBB569: +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 984 .loc 1 4104 9 discriminator 1 view .LVU329 +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 985 .loc 1 4104 9 discriminator 1 view .LVU330 +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 986 .loc 1 4104 9 discriminator 1 view .LVU331 + 987 0028 0268 ldr r2, [r0] + 988 .LVL82: + 989 .LBB570: + 990 .LBI570: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 991 .loc 2 1151 31 discriminator 1 view .LVU332 + 992 .LBB571: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 993 .loc 2 1153 5 discriminator 1 view .LVU333 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 994 .loc 2 1155 4 discriminator 1 view .LVU334 + 995 .syntax unified + 996 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 997 002a 52E8003F ldrex r3, [r2] + 998 @ 0 "" 2 + 999 .LVL83: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1000 .loc 2 1156 4 discriminator 1 view .LVU335 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1001 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU336 + 1002 .thumb + 1003 .syntax unified + 1004 .LBE571: + 1005 .LBE570: +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1006 .loc 1 4104 9 discriminator 1 view .LVU337 + 1007 002e 43F04003 orr r3, r3, #64 + 1008 .LVL84: +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 116 + + + 1009 .loc 1 4104 9 is_stmt 1 discriminator 1 view .LVU338 + 1010 .LBB572: + 1011 .LBI572: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1012 .loc 2 1202 31 discriminator 1 view .LVU339 + 1013 .LBB573: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1014 .loc 2 1204 4 discriminator 1 view .LVU340 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1015 .loc 2 1206 4 discriminator 1 view .LVU341 + 1016 .syntax unified + 1017 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1018 0032 42E80031 strex r1, r3, [r2] + 1019 @ 0 "" 2 + 1020 .LVL85: + 1021 .loc 2 1207 4 discriminator 1 view .LVU342 + 1022 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU343 + 1023 .thumb + 1024 .syntax unified + 1025 .LBE573: + 1026 .LBE572: +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1027 .loc 1 4104 9 discriminator 1 view .LVU344 + 1028 0036 0029 cmp r1, #0 + 1029 0038 F6D1 bne .L35 + 1030 003a 7047 bx lr + 1031 .LVL86: + 1032 .L36: +4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1033 .loc 1 4104 9 discriminator 1 view .LVU345 + 1034 .LBE569: +4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1035 .loc 1 4118 7 is_stmt 1 discriminator 2 view .LVU346 +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1036 .loc 1 4096 78 discriminator 2 view .LVU347 + 1037 003c 013B subs r3, r3, #1 + 1038 .LVL87: +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1039 .loc 1 4096 78 is_stmt 0 discriminator 2 view .LVU348 + 1040 003e 9BB2 uxth r3, r3 + 1041 .LVL88: + 1042 .L32: +4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1043 .loc 1 4096 61 is_stmt 1 discriminator 1 view .LVU349 + 1044 0040 002B cmp r3, #0 + 1045 0042 E1D0 beq .L30 +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1046 .loc 1 4098 7 view .LVU350 +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1047 .loc 1 4098 16 is_stmt 0 view .LVU351 + 1048 0044 B0F85620 ldrh r2, [r0, #86] + 1049 0048 92B2 uxth r2, r2 +4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1050 .loc 1 4098 10 view .LVU352 + 1051 004a 002A cmp r2, #0 + 1052 004c E0D0 beq .L34 +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 117 + + + 1053 .loc 1 4108 12 is_stmt 1 view .LVU353 +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1054 .loc 1 4108 16 is_stmt 0 view .LVU354 + 1055 004e 0268 ldr r2, [r0] + 1056 0050 D169 ldr r1, [r2, #28] +4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1057 .loc 1 4108 15 view .LVU355 + 1058 0052 11F0800F tst r1, #128 + 1059 0056 F1D0 beq .L36 +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); + 1060 .loc 1 4110 9 is_stmt 1 view .LVU356 +4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); + 1061 .loc 1 4110 13 is_stmt 0 view .LVU357 + 1062 0058 016D ldr r1, [r0, #80] + 1063 .LVL89: +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 1064 .loc 1 4111 9 is_stmt 1 view .LVU358 +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 1065 .loc 1 4111 45 is_stmt 0 view .LVU359 + 1066 005a 0988 ldrh r1, [r1] + 1067 .LVL90: +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 1068 .loc 1 4111 52 view .LVU360 + 1069 005c C1F30801 ubfx r1, r1, #0, #9 +4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; + 1070 .loc 1 4111 30 view .LVU361 + 1071 0060 9162 str r1, [r2, #40] + 1072 .LVL91: +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 1073 .loc 1 4112 9 is_stmt 1 view .LVU362 +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 1074 .loc 1 4112 14 is_stmt 0 view .LVU363 + 1075 0062 026D ldr r2, [r0, #80] +4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; + 1076 .loc 1 4112 27 view .LVU364 + 1077 0064 0232 adds r2, r2, #2 + 1078 0066 0265 str r2, [r0, #80] +4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1079 .loc 1 4113 9 is_stmt 1 view .LVU365 +4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1080 .loc 1 4113 14 is_stmt 0 view .LVU366 + 1081 0068 B0F85620 ldrh r2, [r0, #86] + 1082 006c 92B2 uxth r2, r2 +4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1083 .loc 1 4113 27 view .LVU367 + 1084 006e 013A subs r2, r2, #1 + 1085 0070 92B2 uxth r2, r2 + 1086 0072 A0F85620 strh r2, [r0, #86] @ movhi + 1087 0076 E1E7 b .L36 + 1088 .cfi_endproc + 1089 .LFE393: + 1091 .section .text.HAL_UART_MspInit,"ax",%progbits + 1092 .align 1 + 1093 .weak HAL_UART_MspInit + 1094 .syntax unified + 1095 .thumb + 1096 .thumb_func + ARM GAS /tmp/cceWHrnJ.s page 118 + + + 1098 HAL_UART_MspInit: + 1099 .LVL92: + 1100 .LFB334: + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 1101 .loc 1 671 1 is_stmt 1 view -0 + 1102 .cfi_startproc + 1103 @ args = 0, pretend = 0, frame = 0 + 1104 @ frame_needed = 0, uses_anonymous_args = 0 + 1105 @ link register save eliminated. + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1106 .loc 1 673 3 view .LVU369 + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1107 .loc 1 678 1 is_stmt 0 view .LVU370 + 1108 0000 7047 bx lr + 1109 .cfi_endproc + 1110 .LFE334: + 1112 .section .text.HAL_UART_MspDeInit,"ax",%progbits + 1113 .align 1 + 1114 .weak HAL_UART_MspDeInit + 1115 .syntax unified + 1116 .thumb + 1117 .thumb_func + 1119 HAL_UART_MspDeInit: + 1120 .LVL93: + 1121 .LFB335: + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 1122 .loc 1 686 1 is_stmt 1 view -0 + 1123 .cfi_startproc + 1124 @ args = 0, pretend = 0, frame = 0 + 1125 @ frame_needed = 0, uses_anonymous_args = 0 + 1126 @ link register save eliminated. + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1127 .loc 1 688 3 view .LVU372 + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1128 .loc 1 693 1 is_stmt 0 view .LVU373 + 1129 0000 7047 bx lr + 1130 .cfi_endproc + 1131 .LFE335: + 1133 .section .text.HAL_UART_DeInit,"ax",%progbits + 1134 .align 1 + 1135 .global HAL_UART_DeInit + 1136 .syntax unified + 1137 .thumb + 1138 .thumb_func + 1140 HAL_UART_DeInit: + 1141 .LVL94: + 1142 .LFB333: + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 1143 .loc 1 625 1 is_stmt 1 view -0 + 1144 .cfi_startproc + 1145 @ args = 0, pretend = 0, frame = 0 + 1146 @ frame_needed = 0, uses_anonymous_args = 0 + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1147 .loc 1 627 3 view .LVU375 + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1148 .loc 1 627 6 is_stmt 0 view .LVU376 + 1149 0000 E8B1 cbz r0, .L43 + ARM GAS /tmp/cceWHrnJ.s page 119 + + + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 1150 .loc 1 625 1 view .LVU377 + 1151 0002 38B5 push {r3, r4, r5, lr} + 1152 .LCFI0: + 1153 .cfi_def_cfa_offset 16 + 1154 .cfi_offset 3, -16 + 1155 .cfi_offset 4, -12 + 1156 .cfi_offset 5, -8 + 1157 .cfi_offset 14, -4 + 1158 0004 0546 mov r5, r0 + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1159 .loc 1 633 3 is_stmt 1 view .LVU378 + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1160 .loc 1 635 3 view .LVU379 + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1161 .loc 1 635 17 is_stmt 0 view .LVU380 + 1162 0006 2423 movs r3, #36 + 1163 0008 C0F88430 str r3, [r0, #132] + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1164 .loc 1 637 3 is_stmt 1 view .LVU381 + 1165 000c 0268 ldr r2, [r0] + 1166 000e 1368 ldr r3, [r2] + 1167 0010 23F00103 bic r3, r3, #1 + 1168 0014 1360 str r3, [r2] + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; + 1169 .loc 1 639 3 view .LVU382 + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; + 1170 .loc 1 639 8 is_stmt 0 view .LVU383 + 1171 0016 0368 ldr r3, [r0] + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; + 1172 .loc 1 639 24 view .LVU384 + 1173 0018 0024 movs r4, #0 + 1174 001a 1C60 str r4, [r3] + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR3 = 0x0U; + 1175 .loc 1 640 3 is_stmt 1 view .LVU385 + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR3 = 0x0U; + 1176 .loc 1 640 8 is_stmt 0 view .LVU386 + 1177 001c 0368 ldr r3, [r0] + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR3 = 0x0U; + 1178 .loc 1 640 24 view .LVU387 + 1179 001e 5C60 str r4, [r3, #4] + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1180 .loc 1 641 3 is_stmt 1 view .LVU388 + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1181 .loc 1 641 8 is_stmt 0 view .LVU389 + 1182 0020 0368 ldr r3, [r0] + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1183 .loc 1 641 24 view .LVU390 + 1184 0022 9C60 str r4, [r3, #8] + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 1185 .loc 1 652 3 is_stmt 1 view .LVU391 + 1186 0024 FFF7FEFF bl HAL_UART_MspDeInit + 1187 .LVL95: + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; + 1188 .loc 1 655 3 view .LVU392 + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; + 1189 .loc 1 655 20 is_stmt 0 view .LVU393 + ARM GAS /tmp/cceWHrnJ.s page 120 + + + 1190 0028 C5F88C40 str r4, [r5, #140] + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; + 1191 .loc 1 656 3 is_stmt 1 view .LVU394 + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; + 1192 .loc 1 656 17 is_stmt 0 view .LVU395 + 1193 002c C5F88440 str r4, [r5, #132] + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 1194 .loc 1 657 3 is_stmt 1 view .LVU396 + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 1195 .loc 1 657 18 is_stmt 0 view .LVU397 + 1196 0030 C5F88840 str r4, [r5, #136] + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1197 .loc 1 658 3 is_stmt 1 view .LVU398 + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1198 .loc 1 658 24 is_stmt 0 view .LVU399 + 1199 0034 EC66 str r4, [r5, #108] + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1200 .loc 1 660 3 is_stmt 1 view .LVU400 + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1201 .loc 1 660 3 view .LVU401 + 1202 0036 85F88040 strb r4, [r5, #128] + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1203 .loc 1 660 3 view .LVU402 + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1204 .loc 1 662 3 view .LVU403 + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1205 .loc 1 662 10 is_stmt 0 view .LVU404 + 1206 003a 2046 mov r0, r4 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1207 .loc 1 663 1 view .LVU405 + 1208 003c 38BD pop {r3, r4, r5, pc} + 1209 .LVL96: + 1210 .L43: + 1211 .LCFI1: + 1212 .cfi_def_cfa_offset 0 + 1213 .cfi_restore 3 + 1214 .cfi_restore 4 + 1215 .cfi_restore 5 + 1216 .cfi_restore 14 + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1217 .loc 1 629 12 view .LVU406 + 1218 003e 0120 movs r0, #1 + 1219 .LVL97: + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1220 .loc 1 663 1 view .LVU407 + 1221 0040 7047 bx lr + 1222 .cfi_endproc + 1223 .LFE333: + 1225 .section .text.HAL_UART_Transmit_IT,"ax",%progbits + 1226 .align 1 + 1227 .global HAL_UART_Transmit_IT + 1228 .syntax unified + 1229 .thumb + 1230 .thumb_func + 1232 HAL_UART_Transmit_IT: + 1233 .LVL98: + 1234 .LFB338: + ARM GAS /tmp/cceWHrnJ.s page 121 + + +1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ + 1235 .loc 1 1297 1 is_stmt 1 view -0 + 1236 .cfi_startproc + 1237 @ args = 0, pretend = 0, frame = 0 + 1238 @ frame_needed = 0, uses_anonymous_args = 0 + 1239 @ link register save eliminated. +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1240 .loc 1 1299 3 view .LVU409 +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1241 .loc 1 1299 12 is_stmt 0 view .LVU410 + 1242 0000 D0F88430 ldr r3, [r0, #132] +1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1243 .loc 1 1299 6 view .LVU411 + 1244 0004 202B cmp r3, #32 + 1245 0006 50D1 bne .L58 +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1246 .loc 1 1301 5 is_stmt 1 view .LVU412 +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1247 .loc 1 1301 8 is_stmt 0 view .LVU413 + 1248 0008 0029 cmp r1, #0 + 1249 000a 50D0 beq .L59 +1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1250 .loc 1 1301 25 discriminator 1 view .LVU414 + 1251 000c 002A cmp r2, #0 + 1252 000e 50D0 beq .L60 +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1253 .loc 1 1306 5 is_stmt 1 view .LVU415 +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1254 .loc 1 1306 5 view .LVU416 + 1255 0010 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 1256 0014 012B cmp r3, #1 + 1257 0016 4ED0 beq .L61 +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1258 .loc 1 1306 5 discriminator 2 view .LVU417 + 1259 0018 0123 movs r3, #1 + 1260 001a 80F88030 strb r3, [r0, #128] +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1261 .loc 1 1306 5 discriminator 2 view .LVU418 +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; + 1262 .loc 1 1308 5 discriminator 2 view .LVU419 +1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; + 1263 .loc 1 1308 24 is_stmt 0 discriminator 2 view .LVU420 + 1264 001e 0165 str r1, [r0, #80] +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; + 1265 .loc 1 1309 5 is_stmt 1 discriminator 2 view .LVU421 +1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; + 1266 .loc 1 1309 24 is_stmt 0 discriminator 2 view .LVU422 + 1267 0020 A0F85420 strh r2, [r0, #84] @ movhi +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 1268 .loc 1 1310 5 is_stmt 1 discriminator 2 view .LVU423 +1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 1269 .loc 1 1310 24 is_stmt 0 discriminator 2 view .LVU424 + 1270 0024 A0F85620 strh r2, [r0, #86] @ movhi +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1271 .loc 1 1311 5 is_stmt 1 discriminator 2 view .LVU425 +1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1272 .loc 1 1311 24 is_stmt 0 discriminator 2 view .LVU426 + ARM GAS /tmp/cceWHrnJ.s page 122 + + + 1273 0028 0023 movs r3, #0 + 1274 002a 4367 str r3, [r0, #116] +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; + 1275 .loc 1 1313 5 is_stmt 1 discriminator 2 view .LVU427 +1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; + 1276 .loc 1 1313 22 is_stmt 0 discriminator 2 view .LVU428 + 1277 002c C0F88C30 str r3, [r0, #140] +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1278 .loc 1 1314 5 is_stmt 1 discriminator 2 view .LVU429 +1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1279 .loc 1 1314 19 is_stmt 0 discriminator 2 view .LVU430 + 1280 0030 2123 movs r3, #33 + 1281 0032 C0F88430 str r3, [r0, #132] +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1282 .loc 1 1317 5 is_stmt 1 discriminator 2 view .LVU431 +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1283 .loc 1 1317 14 is_stmt 0 discriminator 2 view .LVU432 + 1284 0036 436E ldr r3, [r0, #100] +1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1285 .loc 1 1317 8 discriminator 2 view .LVU433 + 1286 0038 B3F1005F cmp r3, #536870912 + 1287 003c 13D0 beq .L62 +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1288 .loc 1 1337 7 is_stmt 1 view .LVU434 +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1289 .loc 1 1337 23 is_stmt 0 view .LVU435 + 1290 003e 8368 ldr r3, [r0, #8] +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1291 .loc 1 1337 10 view .LVU436 + 1292 0040 B3F5805F cmp r3, #4096 + 1293 0044 2BD0 beq .L63 + 1294 .L55: +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1295 .loc 1 1343 9 is_stmt 1 view .LVU437 +1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1296 .loc 1 1343 22 is_stmt 0 view .LVU438 + 1297 0046 1D4B ldr r3, .L65 + 1298 0048 4367 str r3, [r0, #116] + 1299 .L56: +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1300 .loc 1 1346 7 is_stmt 1 view .LVU439 +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1301 .loc 1 1346 7 view .LVU440 + 1302 004a 0023 movs r3, #0 + 1303 004c 80F88030 strb r3, [r0, #128] + 1304 .LVL99: + 1305 .L57: +1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1306 .loc 1 1346 7 discriminator 1 view .LVU441 +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1307 .loc 1 1349 7 discriminator 1 view .LVU442 + 1308 .LBB574: +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1309 .loc 1 1349 7 discriminator 1 view .LVU443 +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1310 .loc 1 1349 7 discriminator 1 view .LVU444 +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 123 + + + 1311 .loc 1 1349 7 discriminator 1 view .LVU445 + 1312 0050 0268 ldr r2, [r0] + 1313 .LVL100: + 1314 .LBB575: + 1315 .LBI575: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1316 .loc 2 1151 31 discriminator 1 view .LVU446 + 1317 .LBB576: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1318 .loc 2 1153 5 discriminator 1 view .LVU447 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1319 .loc 2 1155 4 discriminator 1 view .LVU448 + 1320 .syntax unified + 1321 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1322 0052 52E8003F ldrex r3, [r2] + 1323 @ 0 "" 2 + 1324 .LVL101: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1325 .loc 2 1156 4 discriminator 1 view .LVU449 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1326 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU450 + 1327 .thumb + 1328 .syntax unified + 1329 .LBE576: + 1330 .LBE575: +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1331 .loc 1 1349 7 discriminator 1 view .LVU451 + 1332 0056 43F08003 orr r3, r3, #128 + 1333 .LVL102: +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1334 .loc 1 1349 7 is_stmt 1 discriminator 1 view .LVU452 + 1335 .LBB577: + 1336 .LBI577: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1337 .loc 2 1202 31 discriminator 1 view .LVU453 + 1338 .LBB578: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1339 .loc 2 1204 4 discriminator 1 view .LVU454 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1340 .loc 2 1206 4 discriminator 1 view .LVU455 + 1341 .syntax unified + 1342 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1343 005a 42E80031 strex r1, r3, [r2] + 1344 @ 0 "" 2 + 1345 .LVL103: + 1346 .loc 2 1207 4 discriminator 1 view .LVU456 + 1347 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU457 + 1348 .thumb + 1349 .syntax unified + 1350 .LBE578: + 1351 .LBE577: +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1352 .loc 1 1349 7 discriminator 1 view .LVU458 + 1353 005e 0029 cmp r1, #0 + 1354 0060 F6D1 bne .L57 + 1355 .LVL104: + 1356 .L54: + ARM GAS /tmp/cceWHrnJ.s page 124 + + +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1357 .loc 1 1349 7 discriminator 1 view .LVU459 + 1358 .LBE574: +1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1359 .loc 1 1349 7 is_stmt 1 discriminator 2 view .LVU460 +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1360 .loc 1 1352 5 discriminator 2 view .LVU461 +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1361 .loc 1 1352 12 is_stmt 0 discriminator 2 view .LVU462 + 1362 0062 0020 movs r0, #0 + 1363 .LVL105: +1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1364 .loc 1 1352 12 discriminator 2 view .LVU463 + 1365 0064 7047 bx lr + 1366 .LVL106: + 1367 .L62: +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1368 .loc 1 1320 7 is_stmt 1 view .LVU464 +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1369 .loc 1 1320 23 is_stmt 0 view .LVU465 + 1370 0066 8368 ldr r3, [r0, #8] +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1371 .loc 1 1320 10 view .LVU466 + 1372 0068 B3F5805F cmp r3, #4096 + 1373 006c 11D0 beq .L64 + 1374 .L51: +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1375 .loc 1 1326 9 is_stmt 1 view .LVU467 +1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1376 .loc 1 1326 22 is_stmt 0 view .LVU468 + 1377 006e 144B ldr r3, .L65+4 + 1378 0070 4367 str r3, [r0, #116] + 1379 .L52: +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1380 .loc 1 1329 7 is_stmt 1 view .LVU469 +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1381 .loc 1 1329 7 view .LVU470 + 1382 0072 0023 movs r3, #0 + 1383 0074 80F88030 strb r3, [r0, #128] + 1384 .LVL107: + 1385 .L53: +1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1386 .loc 1 1329 7 discriminator 1 view .LVU471 +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1387 .loc 1 1332 7 discriminator 1 view .LVU472 + 1388 .LBB579: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1389 .loc 1 1332 7 discriminator 1 view .LVU473 +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1390 .loc 1 1332 7 discriminator 1 view .LVU474 +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1391 .loc 1 1332 7 discriminator 1 view .LVU475 + 1392 0078 0268 ldr r2, [r0] + 1393 .LVL108: + 1394 .LBB580: + 1395 .LBI580: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 125 + + + 1396 .loc 2 1151 31 discriminator 1 view .LVU476 + 1397 .LBB581: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1398 .loc 2 1153 5 discriminator 1 view .LVU477 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1399 .loc 2 1155 4 discriminator 1 view .LVU478 + 1400 007a 02F10803 add r3, r2, #8 + 1401 .LVL109: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1402 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU479 + 1403 .syntax unified + 1404 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1405 007e 53E8003F ldrex r3, [r3] + 1406 @ 0 "" 2 + 1407 .LVL110: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1408 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU480 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1409 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU481 + 1410 .thumb + 1411 .syntax unified + 1412 .LBE581: + 1413 .LBE580: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1414 .loc 1 1332 7 discriminator 1 view .LVU482 + 1415 0082 43F40003 orr r3, r3, #8388608 + 1416 .LVL111: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1417 .loc 1 1332 7 is_stmt 1 discriminator 1 view .LVU483 + 1418 .LBB582: + 1419 .LBI582: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1420 .loc 2 1202 31 discriminator 1 view .LVU484 + 1421 .LBB583: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1422 .loc 2 1204 4 discriminator 1 view .LVU485 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1423 .loc 2 1206 4 discriminator 1 view .LVU486 + 1424 0086 0832 adds r2, r2, #8 + 1425 .LVL112: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1426 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU487 + 1427 .syntax unified + 1428 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1429 0088 42E80031 strex r1, r3, [r2] + 1430 @ 0 "" 2 + 1431 .LVL113: + 1432 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU488 + 1433 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU489 + 1434 .thumb + 1435 .syntax unified + 1436 .LBE583: + 1437 .LBE582: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1438 .loc 1 1332 7 discriminator 1 view .LVU490 + 1439 008c 0029 cmp r1, #0 + 1440 008e F3D1 bne .L53 + ARM GAS /tmp/cceWHrnJ.s page 126 + + + 1441 0090 E7E7 b .L54 + 1442 .LVL114: + 1443 .L64: +1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1444 .loc 1 1332 7 discriminator 1 view .LVU491 + 1445 .LBE579: +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1446 .loc 1 1320 73 discriminator 1 view .LVU492 + 1447 0092 0369 ldr r3, [r0, #16] +1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1448 .loc 1 1320 58 discriminator 1 view .LVU493 + 1449 0094 002B cmp r3, #0 + 1450 0096 EAD1 bne .L51 +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1451 .loc 1 1322 9 is_stmt 1 view .LVU494 +1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1452 .loc 1 1322 22 is_stmt 0 view .LVU495 + 1453 0098 0A4B ldr r3, .L65+8 + 1454 009a 4367 str r3, [r0, #116] + 1455 009c E9E7 b .L52 + 1456 .L63: +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1457 .loc 1 1337 73 discriminator 1 view .LVU496 + 1458 009e 0369 ldr r3, [r0, #16] +1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1459 .loc 1 1337 58 discriminator 1 view .LVU497 + 1460 00a0 002B cmp r3, #0 + 1461 00a2 D0D1 bne .L55 +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1462 .loc 1 1339 9 is_stmt 1 view .LVU498 +1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1463 .loc 1 1339 22 is_stmt 0 view .LVU499 + 1464 00a4 084B ldr r3, .L65+12 + 1465 00a6 4367 str r3, [r0, #116] + 1466 00a8 CFE7 b .L56 + 1467 .L58: +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1468 .loc 1 1356 12 view .LVU500 + 1469 00aa 0220 movs r0, #2 + 1470 .LVL115: +1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1471 .loc 1 1356 12 view .LVU501 + 1472 00ac 7047 bx lr + 1473 .LVL116: + 1474 .L59: +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1475 .loc 1 1303 14 view .LVU502 + 1476 00ae 0120 movs r0, #1 + 1477 .LVL117: +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1478 .loc 1 1303 14 view .LVU503 + 1479 00b0 7047 bx lr + 1480 .LVL118: + 1481 .L60: +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1482 .loc 1 1303 14 view .LVU504 + 1483 00b2 0120 movs r0, #1 + ARM GAS /tmp/cceWHrnJ.s page 127 + + + 1484 .LVL119: +1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1485 .loc 1 1303 14 view .LVU505 + 1486 00b4 7047 bx lr + 1487 .LVL120: + 1488 .L61: +1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1489 .loc 1 1306 5 view .LVU506 + 1490 00b6 0220 movs r0, #2 + 1491 .LVL121: +1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1492 .loc 1 1358 1 view .LVU507 + 1493 00b8 7047 bx lr + 1494 .L66: + 1495 00ba 00BF .align 2 + 1496 .L65: + 1497 00bc 00000000 .word UART_TxISR_8BIT + 1498 00c0 00000000 .word UART_TxISR_8BIT_FIFOEN + 1499 00c4 00000000 .word UART_TxISR_16BIT_FIFOEN + 1500 00c8 00000000 .word UART_TxISR_16BIT + 1501 .cfi_endproc + 1502 .LFE338: + 1504 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits + 1505 .align 1 + 1506 .global HAL_UART_Transmit_DMA + 1507 .syntax unified + 1508 .thumb + 1509 .thumb_func + 1511 HAL_UART_Transmit_DMA: + 1512 .LVL122: + 1513 .LFB340: +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ + 1514 .loc 1 1414 1 is_stmt 1 view -0 + 1515 .cfi_startproc + 1516 @ args = 0, pretend = 0, frame = 0 + 1517 @ frame_needed = 0, uses_anonymous_args = 0 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ + 1518 .loc 1 1414 1 is_stmt 0 view .LVU509 + 1519 0000 1346 mov r3, r2 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1520 .loc 1 1416 3 is_stmt 1 view .LVU510 +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1521 .loc 1 1416 12 is_stmt 0 view .LVU511 + 1522 0002 D0F88420 ldr r2, [r0, #132] + 1523 .LVL123: +1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1524 .loc 1 1416 6 view .LVU512 + 1525 0006 202A cmp r2, #32 + 1526 0008 4AD1 bne .L71 +1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ + 1527 .loc 1 1414 1 view .LVU513 + 1528 000a 10B5 push {r4, lr} + 1529 .LCFI2: + 1530 .cfi_def_cfa_offset 8 + 1531 .cfi_offset 4, -8 + 1532 .cfi_offset 14, -4 + 1533 000c 0446 mov r4, r0 + ARM GAS /tmp/cceWHrnJ.s page 128 + + +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1534 .loc 1 1418 5 is_stmt 1 view .LVU514 +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1535 .loc 1 1418 8 is_stmt 0 view .LVU515 + 1536 000e 0029 cmp r1, #0 + 1537 0010 48D0 beq .L72 +1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1538 .loc 1 1418 25 discriminator 1 view .LVU516 + 1539 0012 002B cmp r3, #0 + 1540 0014 48D0 beq .L73 +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1541 .loc 1 1423 5 is_stmt 1 view .LVU517 +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1542 .loc 1 1423 5 view .LVU518 + 1543 0016 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 + 1544 001a 012A cmp r2, #1 + 1545 001c 46D0 beq .L74 +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1546 .loc 1 1423 5 discriminator 2 view .LVU519 + 1547 001e 0122 movs r2, #1 + 1548 0020 80F88020 strb r2, [r0, #128] +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1549 .loc 1 1423 5 discriminator 2 view .LVU520 +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; + 1550 .loc 1 1425 5 discriminator 2 view .LVU521 +1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; + 1551 .loc 1 1425 24 is_stmt 0 discriminator 2 view .LVU522 + 1552 0024 0165 str r1, [r0, #80] +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; + 1553 .loc 1 1426 5 is_stmt 1 discriminator 2 view .LVU523 +1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; + 1554 .loc 1 1426 24 is_stmt 0 discriminator 2 view .LVU524 + 1555 0026 A0F85430 strh r3, [r0, #84] @ movhi +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1556 .loc 1 1427 5 is_stmt 1 discriminator 2 view .LVU525 +1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1557 .loc 1 1427 24 is_stmt 0 discriminator 2 view .LVU526 + 1558 002a A0F85630 strh r3, [r0, #86] @ movhi +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; + 1559 .loc 1 1429 5 is_stmt 1 discriminator 2 view .LVU527 +1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; + 1560 .loc 1 1429 22 is_stmt 0 discriminator 2 view .LVU528 + 1561 002e 0022 movs r2, #0 + 1562 0030 C0F88C20 str r2, [r0, #140] +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1563 .loc 1 1430 5 is_stmt 1 discriminator 2 view .LVU529 +1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1564 .loc 1 1430 19 is_stmt 0 discriminator 2 view .LVU530 + 1565 0034 2122 movs r2, #33 + 1566 0036 C0F88420 str r2, [r0, #132] +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1567 .loc 1 1432 5 is_stmt 1 discriminator 2 view .LVU531 +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1568 .loc 1 1432 14 is_stmt 0 discriminator 2 view .LVU532 + 1569 003a 826F ldr r2, [r0, #120] +1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1570 .loc 1 1432 8 discriminator 2 view .LVU533 + ARM GAS /tmp/cceWHrnJ.s page 129 + + + 1571 003c E2B1 cbz r2, .L69 +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1572 .loc 1 1435 7 is_stmt 1 view .LVU534 +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1573 .loc 1 1435 39 is_stmt 0 view .LVU535 + 1574 003e 1C49 ldr r1, .L79 + 1575 .LVL124: +1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1576 .loc 1 1435 39 view .LVU536 + 1577 0040 D162 str r1, [r2, #44] + 1578 .LVL125: +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1579 .loc 1 1438 7 is_stmt 1 view .LVU537 +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1580 .loc 1 1438 12 is_stmt 0 view .LVU538 + 1581 0042 826F ldr r2, [r0, #120] +1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1582 .loc 1 1438 43 view .LVU539 + 1583 0044 1B49 ldr r1, .L79+4 + 1584 0046 1163 str r1, [r2, #48] +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1585 .loc 1 1441 7 is_stmt 1 view .LVU540 +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1586 .loc 1 1441 12 is_stmt 0 view .LVU541 + 1587 0048 826F ldr r2, [r0, #120] +1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1588 .loc 1 1441 40 view .LVU542 + 1589 004a 1B49 ldr r1, .L79+8 + 1590 004c 5163 str r1, [r2, #52] +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1591 .loc 1 1444 7 is_stmt 1 view .LVU543 +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1592 .loc 1 1444 12 is_stmt 0 view .LVU544 + 1593 004e 826F ldr r2, [r0, #120] +1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1594 .loc 1 1444 40 view .LVU545 + 1595 0050 0021 movs r1, #0 + 1596 0052 9163 str r1, [r2, #56] +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1597 .loc 1 1447 7 is_stmt 1 view .LVU546 +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1598 .loc 1 1447 88 is_stmt 0 view .LVU547 + 1599 0054 0268 ldr r2, [r0] +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1600 .loc 1 1447 11 view .LVU548 + 1601 0056 2832 adds r2, r2, #40 + 1602 0058 016D ldr r1, [r0, #80] + 1603 005a 806F ldr r0, [r0, #120] + 1604 .LVL126: +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1605 .loc 1 1447 11 view .LVU549 + 1606 005c FFF7FEFF bl HAL_DMA_Start_IT + 1607 .LVL127: +1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 1608 .loc 1 1447 10 view .LVU550 + 1609 0060 50B1 cbz r0, .L69 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 130 + + + 1610 .loc 1 1450 9 is_stmt 1 view .LVU551 +1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1611 .loc 1 1450 26 is_stmt 0 view .LVU552 + 1612 0062 1023 movs r3, #16 + 1613 0064 C4F88C30 str r3, [r4, #140] +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1614 .loc 1 1452 9 is_stmt 1 view .LVU553 +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1615 .loc 1 1452 9 view .LVU554 + 1616 0068 0023 movs r3, #0 + 1617 006a 84F88030 strb r3, [r4, #128] +1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1618 .loc 1 1452 9 view .LVU555 +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1619 .loc 1 1455 9 view .LVU556 +1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1620 .loc 1 1455 23 is_stmt 0 view .LVU557 + 1621 006e 2023 movs r3, #32 + 1622 0070 C4F88430 str r3, [r4, #132] +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1623 .loc 1 1457 9 is_stmt 1 view .LVU558 +1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1624 .loc 1 1457 16 is_stmt 0 view .LVU559 + 1625 0074 0120 movs r0, #1 + 1626 0076 12E0 b .L68 + 1627 .L69: +1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1628 .loc 1 1461 5 is_stmt 1 view .LVU560 + 1629 0078 2368 ldr r3, [r4] + 1630 007a 4022 movs r2, #64 + 1631 007c 1A62 str r2, [r3, #32] +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1632 .loc 1 1463 5 view .LVU561 +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1633 .loc 1 1463 5 view .LVU562 + 1634 007e 0023 movs r3, #0 + 1635 0080 84F88030 strb r3, [r4, #128] + 1636 .L70: +1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1637 .loc 1 1463 5 discriminator 1 view .LVU563 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1638 .loc 1 1467 5 discriminator 1 view .LVU564 + 1639 .LBB584: +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1640 .loc 1 1467 5 discriminator 1 view .LVU565 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1641 .loc 1 1467 5 discriminator 1 view .LVU566 +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1642 .loc 1 1467 5 discriminator 1 view .LVU567 + 1643 0084 2268 ldr r2, [r4] + 1644 .LVL128: + 1645 .LBB585: + 1646 .LBI585: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1647 .loc 2 1151 31 discriminator 1 view .LVU568 + 1648 .LBB586: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 131 + + + 1649 .loc 2 1153 5 discriminator 1 view .LVU569 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1650 .loc 2 1155 4 discriminator 1 view .LVU570 + 1651 0086 02F10803 add r3, r2, #8 + 1652 .LVL129: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1653 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU571 + 1654 .syntax unified + 1655 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1656 008a 53E8003F ldrex r3, [r3] + 1657 @ 0 "" 2 + 1658 .LVL130: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1659 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU572 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1660 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU573 + 1661 .thumb + 1662 .syntax unified + 1663 .LBE586: + 1664 .LBE585: +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1665 .loc 1 1467 5 discriminator 1 view .LVU574 + 1666 008e 43F08003 orr r3, r3, #128 + 1667 .LVL131: +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1668 .loc 1 1467 5 is_stmt 1 discriminator 1 view .LVU575 + 1669 .LBB587: + 1670 .LBI587: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1671 .loc 2 1202 31 discriminator 1 view .LVU576 + 1672 .LBB588: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1673 .loc 2 1204 4 discriminator 1 view .LVU577 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1674 .loc 2 1206 4 discriminator 1 view .LVU578 + 1675 0092 0832 adds r2, r2, #8 + 1676 .LVL132: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1677 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU579 + 1678 .syntax unified + 1679 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1680 0094 42E80031 strex r1, r3, [r2] + 1681 @ 0 "" 2 + 1682 .LVL133: + 1683 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU580 + 1684 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU581 + 1685 .thumb + 1686 .syntax unified + 1687 .LBE588: + 1688 .LBE587: +1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1689 .loc 1 1467 5 discriminator 1 view .LVU582 + 1690 0098 0029 cmp r1, #0 + 1691 009a F3D1 bne .L70 + 1692 .LBE584: +1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1693 .loc 1 1469 12 view .LVU583 + ARM GAS /tmp/cceWHrnJ.s page 132 + + + 1694 009c 0020 movs r0, #0 + 1695 .LVL134: + 1696 .L68: +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1697 .loc 1 1475 1 view .LVU584 + 1698 009e 10BD pop {r4, pc} + 1699 .LVL135: + 1700 .L71: + 1701 .LCFI3: + 1702 .cfi_def_cfa_offset 0 + 1703 .cfi_restore 4 + 1704 .cfi_restore 14 +1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1705 .loc 1 1473 12 view .LVU585 + 1706 00a0 0220 movs r0, #2 + 1707 .LVL136: +1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1708 .loc 1 1475 1 view .LVU586 + 1709 00a2 7047 bx lr + 1710 .LVL137: + 1711 .L72: + 1712 .LCFI4: + 1713 .cfi_def_cfa_offset 8 + 1714 .cfi_offset 4, -8 + 1715 .cfi_offset 14, -4 +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1716 .loc 1 1420 14 view .LVU587 + 1717 00a4 0120 movs r0, #1 + 1718 .LVL138: +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1719 .loc 1 1420 14 view .LVU588 + 1720 00a6 FAE7 b .L68 + 1721 .LVL139: + 1722 .L73: +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1723 .loc 1 1420 14 view .LVU589 + 1724 00a8 0120 movs r0, #1 + 1725 .LVL140: +1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1726 .loc 1 1420 14 view .LVU590 + 1727 00aa F8E7 b .L68 + 1728 .LVL141: + 1729 .L74: +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1730 .loc 1 1423 5 view .LVU591 + 1731 00ac 0220 movs r0, #2 + 1732 .LVL142: +1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1733 .loc 1 1423 5 view .LVU592 + 1734 00ae F6E7 b .L68 + 1735 .L80: + 1736 .align 2 + 1737 .L79: + 1738 00b0 00000000 .word UART_DMATransmitCplt + 1739 00b4 00000000 .word UART_DMATxHalfCplt + 1740 00b8 00000000 .word UART_DMAError + 1741 .cfi_endproc + ARM GAS /tmp/cceWHrnJ.s page 133 + + + 1742 .LFE340: + 1744 .section .text.HAL_UART_DMAPause,"ax",%progbits + 1745 .align 1 + 1746 .global HAL_UART_DMAPause + 1747 .syntax unified + 1748 .thumb + 1749 .thumb_func + 1751 HAL_UART_DMAPause: + 1752 .LVL143: + 1753 .LFB342: +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; + 1754 .loc 1 1528 1 is_stmt 1 view -0 + 1755 .cfi_startproc + 1756 @ args = 0, pretend = 0, frame = 0 + 1757 @ frame_needed = 0, uses_anonymous_args = 0 + 1758 @ link register save eliminated. +1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; + 1759 .loc 1 1528 1 is_stmt 0 view .LVU594 + 1760 0000 10B4 push {r4} + 1761 .LCFI5: + 1762 .cfi_def_cfa_offset 4 + 1763 .cfi_offset 4, -4 +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; + 1764 .loc 1 1529 3 is_stmt 1 view .LVU595 +1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; + 1765 .loc 1 1529 31 is_stmt 0 view .LVU596 + 1766 0002 D0F88410 ldr r1, [r0, #132] + 1767 .LVL144: +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1768 .loc 1 1530 3 is_stmt 1 view .LVU597 +1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1769 .loc 1 1530 31 is_stmt 0 view .LVU598 + 1770 0006 D0F88840 ldr r4, [r0, #136] + 1771 .LVL145: +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1772 .loc 1 1532 3 is_stmt 1 view .LVU599 +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1773 .loc 1 1532 3 view .LVU600 + 1774 000a 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 + 1775 000e 012A cmp r2, #1 + 1776 0010 46D0 beq .L89 + 1777 0012 0346 mov r3, r0 +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1778 .loc 1 1532 3 discriminator 2 view .LVU601 + 1779 0014 0122 movs r2, #1 + 1780 0016 80F88020 strb r2, [r0, #128] +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1781 .loc 1 1532 3 discriminator 2 view .LVU602 +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 1782 .loc 1 1534 3 discriminator 2 view .LVU603 +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 1783 .loc 1 1534 8 is_stmt 0 discriminator 2 view .LVU604 + 1784 001a 0268 ldr r2, [r0] + 1785 001c 9268 ldr r2, [r2, #8] +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 1786 .loc 1 1534 6 discriminator 2 view .LVU605 + 1787 001e 12F0800F tst r2, #128 + ARM GAS /tmp/cceWHrnJ.s page 134 + + + 1788 0022 01D0 beq .L83 +1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 1789 .loc 1 1534 62 discriminator 1 view .LVU606 + 1790 0024 2129 cmp r1, #33 + 1791 0026 0CD0 beq .L84 + 1792 .LVL146: + 1793 .L83: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1794 .loc 1 1538 5 is_stmt 1 discriminator 2 view .LVU607 +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 1795 .loc 1 1540 3 discriminator 2 view .LVU608 +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 1796 .loc 1 1540 8 is_stmt 0 discriminator 2 view .LVU609 + 1797 0028 1A68 ldr r2, [r3] + 1798 002a 9268 ldr r2, [r2, #8] +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 1799 .loc 1 1540 6 discriminator 2 view .LVU610 + 1800 002c 12F0400F tst r2, #64 + 1801 0030 01D0 beq .L85 +1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 1802 .loc 1 1540 62 discriminator 1 view .LVU611 + 1803 0032 222C cmp r4, #34 + 1804 0034 12D0 beq .L86 + 1805 .L85: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1806 .loc 1 1548 5 is_stmt 1 discriminator 2 view .LVU612 +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1807 .loc 1 1551 3 discriminator 2 view .LVU613 +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1808 .loc 1 1551 3 discriminator 2 view .LVU614 + 1809 0036 0020 movs r0, #0 + 1810 0038 83F88000 strb r0, [r3, #128] +1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1811 .loc 1 1551 3 discriminator 2 view .LVU615 +1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1812 .loc 1 1553 3 discriminator 2 view .LVU616 + 1813 .LVL147: + 1814 .L82: +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1815 .loc 1 1554 1 is_stmt 0 view .LVU617 + 1816 003c 5DF8044B ldr r4, [sp], #4 + 1817 .LCFI6: + 1818 .cfi_remember_state + 1819 .cfi_restore 4 + 1820 .cfi_def_cfa_offset 0 + 1821 .LVL148: +1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1822 .loc 1 1554 1 view .LVU618 + 1823 0040 7047 bx lr + 1824 .LVL149: + 1825 .L84: + 1826 .LCFI7: + 1827 .cfi_restore_state +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1828 .loc 1 1538 5 is_stmt 1 discriminator 1 view .LVU619 + 1829 .LBB589: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 135 + + + 1830 .loc 1 1538 5 discriminator 1 view .LVU620 +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1831 .loc 1 1538 5 discriminator 1 view .LVU621 +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1832 .loc 1 1538 5 discriminator 1 view .LVU622 + 1833 0042 1968 ldr r1, [r3] + 1834 .LVL150: + 1835 .LBB590: + 1836 .LBI590: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1837 .loc 2 1151 31 discriminator 1 view .LVU623 + 1838 .LBB591: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1839 .loc 2 1153 5 discriminator 1 view .LVU624 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1840 .loc 2 1155 4 discriminator 1 view .LVU625 + 1841 0044 01F10802 add r2, r1, #8 + 1842 .LVL151: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1843 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU626 + 1844 .syntax unified + 1845 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1846 0048 52E8002F ldrex r2, [r2] + 1847 @ 0 "" 2 + 1848 .LVL152: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1849 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU627 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1850 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU628 + 1851 .thumb + 1852 .syntax unified + 1853 .LBE591: + 1854 .LBE590: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1855 .loc 1 1538 5 discriminator 1 view .LVU629 + 1856 004c 22F08002 bic r2, r2, #128 + 1857 .LVL153: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1858 .loc 1 1538 5 is_stmt 1 discriminator 1 view .LVU630 + 1859 .LBB592: + 1860 .LBI592: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1861 .loc 2 1202 31 discriminator 1 view .LVU631 + 1862 .LBB593: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1863 .loc 2 1204 4 discriminator 1 view .LVU632 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1864 .loc 2 1206 4 discriminator 1 view .LVU633 + 1865 0050 0831 adds r1, r1, #8 + 1866 .LVL154: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1867 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU634 + 1868 .syntax unified + 1869 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1870 0052 41E80020 strex r0, r2, [r1] + 1871 @ 0 "" 2 + 1872 .LVL155: + ARM GAS /tmp/cceWHrnJ.s page 136 + + + 1873 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU635 + 1874 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU636 + 1875 .thumb + 1876 .syntax unified + 1877 .LBE593: + 1878 .LBE592: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1879 .loc 1 1538 5 discriminator 1 view .LVU637 + 1880 0056 0028 cmp r0, #0 + 1881 0058 F3D1 bne .L84 + 1882 005a E5E7 b .L83 + 1883 .LVL156: + 1884 .L86: +1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1885 .loc 1 1538 5 discriminator 1 view .LVU638 + 1886 .LBE589: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1887 .loc 1 1544 5 is_stmt 1 discriminator 1 view .LVU639 + 1888 .LBB594: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1889 .loc 1 1544 5 discriminator 1 view .LVU640 +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1890 .loc 1 1544 5 discriminator 1 view .LVU641 +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1891 .loc 1 1544 5 discriminator 1 view .LVU642 + 1892 005c 1968 ldr r1, [r3] + 1893 .LVL157: + 1894 .LBB595: + 1895 .LBI595: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1896 .loc 2 1151 31 discriminator 1 view .LVU643 + 1897 .LBB596: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1898 .loc 2 1153 5 discriminator 1 view .LVU644 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1899 .loc 2 1155 4 discriminator 1 view .LVU645 + 1900 .syntax unified + 1901 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1902 005e 51E8002F ldrex r2, [r1] + 1903 @ 0 "" 2 + 1904 .LVL158: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1905 .loc 2 1156 4 discriminator 1 view .LVU646 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1906 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU647 + 1907 .thumb + 1908 .syntax unified + 1909 .LBE596: + 1910 .LBE595: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1911 .loc 1 1544 5 discriminator 1 view .LVU648 + 1912 0062 22F48072 bic r2, r2, #256 + 1913 .LVL159: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1914 .loc 1 1544 5 is_stmt 1 discriminator 1 view .LVU649 + 1915 .LBB597: + 1916 .LBI597: + ARM GAS /tmp/cceWHrnJ.s page 137 + + +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1917 .loc 2 1202 31 discriminator 1 view .LVU650 + 1918 .LBB598: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1919 .loc 2 1204 4 discriminator 1 view .LVU651 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1920 .loc 2 1206 4 discriminator 1 view .LVU652 + 1921 .syntax unified + 1922 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1923 0066 41E80020 strex r0, r2, [r1] + 1924 @ 0 "" 2 + 1925 .LVL160: + 1926 .loc 2 1207 4 discriminator 1 view .LVU653 + 1927 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU654 + 1928 .thumb + 1929 .syntax unified + 1930 .LBE598: + 1931 .LBE597: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1932 .loc 1 1544 5 discriminator 1 view .LVU655 + 1933 006a 0028 cmp r0, #0 + 1934 006c F6D1 bne .L86 + 1935 .LVL161: + 1936 .L87: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1937 .loc 1 1544 5 discriminator 1 view .LVU656 + 1938 .LBE594: +1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 1939 .loc 1 1544 5 is_stmt 1 discriminator 1 view .LVU657 +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1940 .loc 1 1545 5 discriminator 1 view .LVU658 + 1941 .LBB599: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1942 .loc 1 1545 5 discriminator 1 view .LVU659 +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1943 .loc 1 1545 5 discriminator 1 view .LVU660 +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1944 .loc 1 1545 5 discriminator 1 view .LVU661 + 1945 006e 1968 ldr r1, [r3] + 1946 .LVL162: + 1947 .LBB600: + 1948 .LBI600: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1949 .loc 2 1151 31 discriminator 1 view .LVU662 + 1950 .LBB601: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1951 .loc 2 1153 5 discriminator 1 view .LVU663 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1952 .loc 2 1155 4 discriminator 1 view .LVU664 + 1953 0070 01F10802 add r2, r1, #8 + 1954 .LVL163: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1955 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU665 + 1956 .syntax unified + 1957 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1958 0074 52E8002F ldrex r2, [r2] + 1959 @ 0 "" 2 + ARM GAS /tmp/cceWHrnJ.s page 138 + + + 1960 .LVL164: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1961 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU666 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1962 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU667 + 1963 .thumb + 1964 .syntax unified + 1965 .LBE601: + 1966 .LBE600: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1967 .loc 1 1545 5 discriminator 1 view .LVU668 + 1968 0078 22F00102 bic r2, r2, #1 + 1969 .LVL165: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1970 .loc 1 1545 5 is_stmt 1 discriminator 1 view .LVU669 + 1971 .LBB602: + 1972 .LBI602: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1973 .loc 2 1202 31 discriminator 1 view .LVU670 + 1974 .LBB603: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1975 .loc 2 1204 4 discriminator 1 view .LVU671 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1976 .loc 2 1206 4 discriminator 1 view .LVU672 + 1977 007c 0831 adds r1, r1, #8 + 1978 .LVL166: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1979 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU673 + 1980 .syntax unified + 1981 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1982 007e 41E80020 strex r0, r2, [r1] + 1983 @ 0 "" 2 + 1984 .LVL167: + 1985 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU674 + 1986 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU675 + 1987 .thumb + 1988 .syntax unified + 1989 .LBE603: + 1990 .LBE602: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1991 .loc 1 1545 5 discriminator 1 view .LVU676 + 1992 0082 0028 cmp r0, #0 + 1993 0084 F3D1 bne .L87 + 1994 .LVL168: + 1995 .L88: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1996 .loc 1 1545 5 discriminator 1 view .LVU677 + 1997 .LBE599: +1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 1998 .loc 1 1545 5 is_stmt 1 discriminator 1 view .LVU678 +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 1999 .loc 1 1548 5 discriminator 1 view .LVU679 + 2000 .LBB604: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2001 .loc 1 1548 5 discriminator 1 view .LVU680 +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2002 .loc 1 1548 5 discriminator 1 view .LVU681 + ARM GAS /tmp/cceWHrnJ.s page 139 + + +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2003 .loc 1 1548 5 discriminator 1 view .LVU682 + 2004 0086 1968 ldr r1, [r3] + 2005 .LVL169: + 2006 .LBB605: + 2007 .LBI605: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2008 .loc 2 1151 31 discriminator 1 view .LVU683 + 2009 .LBB606: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2010 .loc 2 1153 5 discriminator 1 view .LVU684 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2011 .loc 2 1155 4 discriminator 1 view .LVU685 + 2012 0088 01F10802 add r2, r1, #8 + 2013 .LVL170: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2014 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU686 + 2015 .syntax unified + 2016 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2017 008c 52E8002F ldrex r2, [r2] + 2018 @ 0 "" 2 + 2019 .LVL171: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2020 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU687 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2021 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU688 + 2022 .thumb + 2023 .syntax unified + 2024 .LBE606: + 2025 .LBE605: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2026 .loc 1 1548 5 discriminator 1 view .LVU689 + 2027 0090 22F04002 bic r2, r2, #64 + 2028 .LVL172: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2029 .loc 1 1548 5 is_stmt 1 discriminator 1 view .LVU690 + 2030 .LBB607: + 2031 .LBI607: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2032 .loc 2 1202 31 discriminator 1 view .LVU691 + 2033 .LBB608: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2034 .loc 2 1204 4 discriminator 1 view .LVU692 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2035 .loc 2 1206 4 discriminator 1 view .LVU693 + 2036 0094 0831 adds r1, r1, #8 + 2037 .LVL173: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2038 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU694 + 2039 .syntax unified + 2040 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2041 0096 41E80020 strex r0, r2, [r1] + 2042 @ 0 "" 2 + 2043 .LVL174: + 2044 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU695 + 2045 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU696 + 2046 .thumb + ARM GAS /tmp/cceWHrnJ.s page 140 + + + 2047 .syntax unified + 2048 .LBE608: + 2049 .LBE607: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2050 .loc 1 1548 5 discriminator 1 view .LVU697 + 2051 009a 0028 cmp r0, #0 + 2052 009c F3D1 bne .L88 + 2053 009e CAE7 b .L85 + 2054 .LVL175: + 2055 .L89: +1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2056 .loc 1 1548 5 discriminator 1 view .LVU698 + 2057 .LBE604: +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2058 .loc 1 1532 3 view .LVU699 + 2059 00a0 0220 movs r0, #2 + 2060 .LVL176: +1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2061 .loc 1 1532 3 view .LVU700 + 2062 00a2 CBE7 b .L82 + 2063 .cfi_endproc + 2064 .LFE342: + 2066 .section .text.HAL_UART_DMAResume,"ax",%progbits + 2067 .align 1 + 2068 .global HAL_UART_DMAResume + 2069 .syntax unified + 2070 .thumb + 2071 .thumb_func + 2073 HAL_UART_DMAResume: + 2074 .LVL177: + 2075 .LFB343: +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 2076 .loc 1 1562 1 is_stmt 1 view -0 + 2077 .cfi_startproc + 2078 @ args = 0, pretend = 0, frame = 0 + 2079 @ frame_needed = 0, uses_anonymous_args = 0 + 2080 @ link register save eliminated. +1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 2081 .loc 1 1562 1 is_stmt 0 view .LVU702 + 2082 0000 0346 mov r3, r0 +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2083 .loc 1 1563 3 is_stmt 1 view .LVU703 +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2084 .loc 1 1563 3 view .LVU704 + 2085 0002 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 + 2086 0006 012A cmp r2, #1 + 2087 0008 42D0 beq .L100 +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2088 .loc 1 1563 3 discriminator 2 view .LVU705 + 2089 000a 0122 movs r2, #1 + 2090 000c 80F88020 strb r2, [r0, #128] +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2091 .loc 1 1563 3 discriminator 2 view .LVU706 +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2092 .loc 1 1565 3 discriminator 2 view .LVU707 +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2093 .loc 1 1565 12 is_stmt 0 discriminator 2 view .LVU708 + ARM GAS /tmp/cceWHrnJ.s page 141 + + + 2094 0010 D0F88420 ldr r2, [r0, #132] +1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2095 .loc 1 1565 6 discriminator 2 view .LVU709 + 2096 0014 212A cmp r2, #33 + 2097 0016 07D0 beq .L94 + 2098 .LVL178: + 2099 .L93: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2100 .loc 1 1568 5 is_stmt 1 discriminator 2 view .LVU710 +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2101 .loc 1 1570 3 discriminator 2 view .LVU711 +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2102 .loc 1 1570 12 is_stmt 0 discriminator 2 view .LVU712 + 2103 0018 D3F88820 ldr r2, [r3, #136] +1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2104 .loc 1 1570 6 discriminator 2 view .LVU713 + 2105 001c 222A cmp r2, #34 + 2106 001e 10D0 beq .L101 + 2107 .L95: +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2108 .loc 1 1583 5 is_stmt 1 discriminator 2 view .LVU714 +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2109 .loc 1 1586 3 discriminator 2 view .LVU715 +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2110 .loc 1 1586 3 discriminator 2 view .LVU716 + 2111 0020 0020 movs r0, #0 + 2112 0022 83F88000 strb r0, [r3, #128] +1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2113 .loc 1 1586 3 discriminator 2 view .LVU717 +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2114 .loc 1 1588 3 discriminator 2 view .LVU718 +1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2115 .loc 1 1588 10 is_stmt 0 discriminator 2 view .LVU719 + 2116 0026 7047 bx lr + 2117 .L94: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2118 .loc 1 1568 5 is_stmt 1 discriminator 1 view .LVU720 + 2119 .LBB609: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2120 .loc 1 1568 5 discriminator 1 view .LVU721 +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2121 .loc 1 1568 5 discriminator 1 view .LVU722 +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2122 .loc 1 1568 5 discriminator 1 view .LVU723 + 2123 0028 1968 ldr r1, [r3] + 2124 .LVL179: + 2125 .LBB610: + 2126 .LBI610: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2127 .loc 2 1151 31 discriminator 1 view .LVU724 + 2128 .LBB611: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2129 .loc 2 1153 5 discriminator 1 view .LVU725 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2130 .loc 2 1155 4 discriminator 1 view .LVU726 + 2131 002a 01F10802 add r2, r1, #8 + 2132 .LVL180: + ARM GAS /tmp/cceWHrnJ.s page 142 + + +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2133 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU727 + 2134 .syntax unified + 2135 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2136 002e 52E8002F ldrex r2, [r2] + 2137 @ 0 "" 2 + 2138 .LVL181: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2139 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU728 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2140 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU729 + 2141 .thumb + 2142 .syntax unified + 2143 .LBE611: + 2144 .LBE610: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2145 .loc 1 1568 5 discriminator 1 view .LVU730 + 2146 0032 42F08002 orr r2, r2, #128 + 2147 .LVL182: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2148 .loc 1 1568 5 is_stmt 1 discriminator 1 view .LVU731 + 2149 .LBB612: + 2150 .LBI612: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2151 .loc 2 1202 31 discriminator 1 view .LVU732 + 2152 .LBB613: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2153 .loc 2 1204 4 discriminator 1 view .LVU733 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2154 .loc 2 1206 4 discriminator 1 view .LVU734 + 2155 0036 0831 adds r1, r1, #8 + 2156 .LVL183: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2157 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU735 + 2158 .syntax unified + 2159 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2160 0038 41E80020 strex r0, r2, [r1] + 2161 @ 0 "" 2 + 2162 .LVL184: + 2163 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU736 + 2164 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU737 + 2165 .thumb + 2166 .syntax unified + 2167 .LBE613: + 2168 .LBE612: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2169 .loc 1 1568 5 discriminator 1 view .LVU738 + 2170 003c 0028 cmp r0, #0 + 2171 003e F3D1 bne .L94 + 2172 0040 EAE7 b .L93 + 2173 .LVL185: + 2174 .L101: +1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2175 .loc 1 1568 5 discriminator 1 view .LVU739 + 2176 .LBE609: +1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2177 .loc 1 1573 5 is_stmt 1 view .LVU740 + ARM GAS /tmp/cceWHrnJ.s page 143 + + + 2178 0042 1A68 ldr r2, [r3] + 2179 0044 0821 movs r1, #8 + 2180 0046 1162 str r1, [r2, #32] +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2181 .loc 1 1576 5 view .LVU741 +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2182 .loc 1 1576 20 is_stmt 0 view .LVU742 + 2183 0048 1A69 ldr r2, [r3, #16] +1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2184 .loc 1 1576 8 view .LVU743 + 2185 004a 42B1 cbz r2, .L98 + 2186 .L97: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2187 .loc 1 1578 7 is_stmt 1 discriminator 1 view .LVU744 + 2188 .LBB614: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2189 .loc 1 1578 7 discriminator 1 view .LVU745 +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2190 .loc 1 1578 7 discriminator 1 view .LVU746 +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2191 .loc 1 1578 7 discriminator 1 view .LVU747 + 2192 004c 1968 ldr r1, [r3] + 2193 .LVL186: + 2194 .LBB615: + 2195 .LBI615: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2196 .loc 2 1151 31 discriminator 1 view .LVU748 + 2197 .LBB616: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2198 .loc 2 1153 5 discriminator 1 view .LVU749 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2199 .loc 2 1155 4 discriminator 1 view .LVU750 + 2200 .syntax unified + 2201 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2202 004e 51E8002F ldrex r2, [r1] + 2203 @ 0 "" 2 + 2204 .LVL187: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2205 .loc 2 1156 4 discriminator 1 view .LVU751 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2206 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU752 + 2207 .thumb + 2208 .syntax unified + 2209 .LBE616: + 2210 .LBE615: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2211 .loc 1 1578 7 discriminator 1 view .LVU753 + 2212 0052 42F48072 orr r2, r2, #256 + 2213 .LVL188: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2214 .loc 1 1578 7 is_stmt 1 discriminator 1 view .LVU754 + 2215 .LBB617: + 2216 .LBI617: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2217 .loc 2 1202 31 discriminator 1 view .LVU755 + 2218 .LBB618: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 144 + + + 2219 .loc 2 1204 4 discriminator 1 view .LVU756 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2220 .loc 2 1206 4 discriminator 1 view .LVU757 + 2221 .syntax unified + 2222 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2223 0056 41E80020 strex r0, r2, [r1] + 2224 @ 0 "" 2 + 2225 .LVL189: + 2226 .loc 2 1207 4 discriminator 1 view .LVU758 + 2227 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU759 + 2228 .thumb + 2229 .syntax unified + 2230 .LBE618: + 2231 .LBE617: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2232 .loc 1 1578 7 discriminator 1 view .LVU760 + 2233 005a 0028 cmp r0, #0 + 2234 005c F6D1 bne .L97 + 2235 .LVL190: + 2236 .L98: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2237 .loc 1 1578 7 discriminator 1 view .LVU761 + 2238 .LBE614: +1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2239 .loc 1 1578 7 is_stmt 1 discriminator 1 view .LVU762 +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2240 .loc 1 1580 5 discriminator 1 view .LVU763 + 2241 .LBB619: +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2242 .loc 1 1580 5 discriminator 1 view .LVU764 +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2243 .loc 1 1580 5 discriminator 1 view .LVU765 +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2244 .loc 1 1580 5 discriminator 1 view .LVU766 + 2245 005e 1968 ldr r1, [r3] + 2246 .LVL191: + 2247 .LBB620: + 2248 .LBI620: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2249 .loc 2 1151 31 discriminator 1 view .LVU767 + 2250 .LBB621: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2251 .loc 2 1153 5 discriminator 1 view .LVU768 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2252 .loc 2 1155 4 discriminator 1 view .LVU769 + 2253 0060 01F10802 add r2, r1, #8 + 2254 .LVL192: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2255 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU770 + 2256 .syntax unified + 2257 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2258 0064 52E8002F ldrex r2, [r2] + 2259 @ 0 "" 2 + 2260 .LVL193: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2261 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU771 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + ARM GAS /tmp/cceWHrnJ.s page 145 + + + 2262 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU772 + 2263 .thumb + 2264 .syntax unified + 2265 .LBE621: + 2266 .LBE620: +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2267 .loc 1 1580 5 discriminator 1 view .LVU773 + 2268 0068 42F00102 orr r2, r2, #1 + 2269 .LVL194: +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2270 .loc 1 1580 5 is_stmt 1 discriminator 1 view .LVU774 + 2271 .LBB622: + 2272 .LBI622: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2273 .loc 2 1202 31 discriminator 1 view .LVU775 + 2274 .LBB623: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2275 .loc 2 1204 4 discriminator 1 view .LVU776 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2276 .loc 2 1206 4 discriminator 1 view .LVU777 + 2277 006c 0831 adds r1, r1, #8 + 2278 .LVL195: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2279 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU778 + 2280 .syntax unified + 2281 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2282 006e 41E80020 strex r0, r2, [r1] + 2283 @ 0 "" 2 + 2284 .LVL196: + 2285 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU779 + 2286 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU780 + 2287 .thumb + 2288 .syntax unified + 2289 .LBE623: + 2290 .LBE622: +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2291 .loc 1 1580 5 discriminator 1 view .LVU781 + 2292 0072 0028 cmp r0, #0 + 2293 0074 F3D1 bne .L98 + 2294 .LVL197: + 2295 .L99: +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2296 .loc 1 1580 5 discriminator 1 view .LVU782 + 2297 .LBE619: +1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2298 .loc 1 1580 5 is_stmt 1 discriminator 1 view .LVU783 +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2299 .loc 1 1583 5 discriminator 1 view .LVU784 + 2300 .LBB624: +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2301 .loc 1 1583 5 discriminator 1 view .LVU785 +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2302 .loc 1 1583 5 discriminator 1 view .LVU786 +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2303 .loc 1 1583 5 discriminator 1 view .LVU787 + 2304 0076 1968 ldr r1, [r3] + 2305 .LVL198: + ARM GAS /tmp/cceWHrnJ.s page 146 + + + 2306 .LBB625: + 2307 .LBI625: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2308 .loc 2 1151 31 discriminator 1 view .LVU788 + 2309 .LBB626: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2310 .loc 2 1153 5 discriminator 1 view .LVU789 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2311 .loc 2 1155 4 discriminator 1 view .LVU790 + 2312 0078 01F10802 add r2, r1, #8 + 2313 .LVL199: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2314 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU791 + 2315 .syntax unified + 2316 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2317 007c 52E8002F ldrex r2, [r2] + 2318 @ 0 "" 2 + 2319 .LVL200: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2320 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU792 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2321 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU793 + 2322 .thumb + 2323 .syntax unified + 2324 .LBE626: + 2325 .LBE625: +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2326 .loc 1 1583 5 discriminator 1 view .LVU794 + 2327 0080 42F04002 orr r2, r2, #64 + 2328 .LVL201: +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2329 .loc 1 1583 5 is_stmt 1 discriminator 1 view .LVU795 + 2330 .LBB627: + 2331 .LBI627: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2332 .loc 2 1202 31 discriminator 1 view .LVU796 + 2333 .LBB628: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2334 .loc 2 1204 4 discriminator 1 view .LVU797 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2335 .loc 2 1206 4 discriminator 1 view .LVU798 + 2336 0084 0831 adds r1, r1, #8 + 2337 .LVL202: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2338 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU799 + 2339 .syntax unified + 2340 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2341 0086 41E80020 strex r0, r2, [r1] + 2342 @ 0 "" 2 + 2343 .LVL203: + 2344 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU800 + 2345 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU801 + 2346 .thumb + 2347 .syntax unified + 2348 .LBE628: + 2349 .LBE627: +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 147 + + + 2350 .loc 1 1583 5 discriminator 1 view .LVU802 + 2351 008a 0028 cmp r0, #0 + 2352 008c F3D1 bne .L99 + 2353 008e C7E7 b .L95 + 2354 .LVL204: + 2355 .L100: +1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2356 .loc 1 1583 5 discriminator 1 view .LVU803 + 2357 .LBE624: +1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2358 .loc 1 1563 3 view .LVU804 + 2359 0090 0220 movs r0, #2 + 2360 .LVL205: +1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2361 .loc 1 1589 1 view .LVU805 + 2362 0092 7047 bx lr + 2363 .cfi_endproc + 2364 .LFE343: + 2366 .section .text.HAL_UART_DMAStop,"ax",%progbits + 2367 .align 1 + 2368 .global HAL_UART_DMAStop + 2369 .syntax unified + 2370 .thumb + 2371 .thumb_func + 2373 HAL_UART_DMAStop: + 2374 .LVL206: + 2375 .LFB344: +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application + 2376 .loc 1 1597 1 is_stmt 1 view -0 + 2377 .cfi_startproc + 2378 @ args = 0, pretend = 0, frame = 0 + 2379 @ frame_needed = 0, uses_anonymous_args = 0 +1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application + 2380 .loc 1 1597 1 is_stmt 0 view .LVU807 + 2381 0000 38B5 push {r3, r4, r5, lr} + 2382 .LCFI8: + 2383 .cfi_def_cfa_offset 16 + 2384 .cfi_offset 3, -16 + 2385 .cfi_offset 4, -12 + 2386 .cfi_offset 5, -8 + 2387 .cfi_offset 14, -4 + 2388 0002 0446 mov r4, r0 +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; + 2389 .loc 1 1605 3 is_stmt 1 view .LVU808 +1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; + 2390 .loc 1 1605 31 is_stmt 0 view .LVU809 + 2391 0004 D0F88420 ldr r2, [r0, #132] + 2392 .LVL207: +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2393 .loc 1 1606 3 is_stmt 1 view .LVU810 +1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2394 .loc 1 1606 31 is_stmt 0 view .LVU811 + 2395 0008 D0F88850 ldr r5, [r0, #136] + 2396 .LVL208: +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 2397 .loc 1 1609 3 is_stmt 1 view .LVU812 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + ARM GAS /tmp/cceWHrnJ.s page 148 + + + 2398 .loc 1 1609 8 is_stmt 0 view .LVU813 + 2399 000c 0368 ldr r3, [r0] + 2400 000e 9B68 ldr r3, [r3, #8] +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 2401 .loc 1 1609 6 view .LVU814 + 2402 0010 13F0800F tst r3, #128 + 2403 0014 01D0 beq .L103 +1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 2404 .loc 1 1609 62 discriminator 1 view .LVU815 + 2405 0016 212A cmp r2, #33 + 2406 0018 08D0 beq .L104 + 2407 .LVL209: + 2408 .L103: +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 2409 .loc 1 1633 3 is_stmt 1 view .LVU816 +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 2410 .loc 1 1633 8 is_stmt 0 view .LVU817 + 2411 001a 2368 ldr r3, [r4] + 2412 001c 9B68 ldr r3, [r3, #8] +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 2413 .loc 1 1633 6 view .LVU818 + 2414 001e 13F0400F tst r3, #64 + 2415 0022 42D0 beq .L109 +1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 2416 .loc 1 1633 62 discriminator 1 view .LVU819 + 2417 0024 222D cmp r5, #34 + 2418 0026 20D0 beq .L107 +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2419 .loc 1 1656 10 view .LVU820 + 2420 0028 0020 movs r0, #0 + 2421 002a 3FE0 b .L106 + 2422 .LVL210: + 2423 .L104: +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2424 .loc 1 1612 5 is_stmt 1 discriminator 1 view .LVU821 + 2425 .LBB629: +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2426 .loc 1 1612 5 discriminator 1 view .LVU822 +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2427 .loc 1 1612 5 discriminator 1 view .LVU823 +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2428 .loc 1 1612 5 discriminator 1 view .LVU824 + 2429 002c 2268 ldr r2, [r4] + 2430 .LVL211: + 2431 .LBB630: + 2432 .LBI630: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2433 .loc 2 1151 31 discriminator 1 view .LVU825 + 2434 .LBB631: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2435 .loc 2 1153 5 discriminator 1 view .LVU826 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2436 .loc 2 1155 4 discriminator 1 view .LVU827 + 2437 002e 02F10803 add r3, r2, #8 + 2438 .LVL212: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2439 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU828 + ARM GAS /tmp/cceWHrnJ.s page 149 + + + 2440 .syntax unified + 2441 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2442 0032 53E8003F ldrex r3, [r3] + 2443 @ 0 "" 2 + 2444 .LVL213: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2445 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU829 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2446 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU830 + 2447 .thumb + 2448 .syntax unified + 2449 .LBE631: + 2450 .LBE630: +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2451 .loc 1 1612 5 discriminator 1 view .LVU831 + 2452 0036 23F08003 bic r3, r3, #128 + 2453 .LVL214: +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2454 .loc 1 1612 5 is_stmt 1 discriminator 1 view .LVU832 + 2455 .LBB632: + 2456 .LBI632: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2457 .loc 2 1202 31 discriminator 1 view .LVU833 + 2458 .LBB633: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2459 .loc 2 1204 4 discriminator 1 view .LVU834 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2460 .loc 2 1206 4 discriminator 1 view .LVU835 + 2461 003a 0832 adds r2, r2, #8 + 2462 .LVL215: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2463 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU836 + 2464 .syntax unified + 2465 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2466 003c 42E80031 strex r1, r3, [r2] + 2467 @ 0 "" 2 + 2468 .LVL216: + 2469 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU837 + 2470 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU838 + 2471 .thumb + 2472 .syntax unified + 2473 .LBE633: + 2474 .LBE632: +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2475 .loc 1 1612 5 discriminator 1 view .LVU839 + 2476 0040 0029 cmp r1, #0 + 2477 0042 F3D1 bne .L104 + 2478 .LBE629: +1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2479 .loc 1 1612 5 is_stmt 1 discriminator 2 view .LVU840 +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2480 .loc 1 1615 5 discriminator 2 view .LVU841 +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2481 .loc 1 1615 14 is_stmt 0 discriminator 2 view .LVU842 + 2482 0044 A06F ldr r0, [r4, #120] + 2483 .LVL217: +1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 150 + + + 2484 .loc 1 1615 8 discriminator 2 view .LVU843 + 2485 0046 10B1 cbz r0, .L105 +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2486 .loc 1 1617 7 is_stmt 1 view .LVU844 +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2487 .loc 1 1617 11 is_stmt 0 view .LVU845 + 2488 0048 FFF7FEFF bl HAL_DMA_Abort + 2489 .LVL218: +1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2490 .loc 1 1617 10 view .LVU846 + 2491 004c 18B9 cbnz r0, .L112 + 2492 .L105: +1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2493 .loc 1 1629 5 is_stmt 1 view .LVU847 + 2494 004e 2046 mov r0, r4 + 2495 0050 FFF7FEFF bl UART_EndTxTransfer + 2496 .LVL219: + 2497 0054 E1E7 b .L103 + 2498 .L112: +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2499 .loc 1 1619 9 view .LVU848 +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2500 .loc 1 1619 13 is_stmt 0 view .LVU849 + 2501 0056 A06F ldr r0, [r4, #120] + 2502 0058 FFF7FEFF bl HAL_DMA_GetError + 2503 .LVL220: +1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2504 .loc 1 1619 12 view .LVU850 + 2505 005c 2028 cmp r0, #32 + 2506 005e F6D1 bne .L105 +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2507 .loc 1 1622 11 is_stmt 1 view .LVU851 +1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2508 .loc 1 1622 28 is_stmt 0 view .LVU852 + 2509 0060 1023 movs r3, #16 + 2510 0062 C4F88C30 str r3, [r4, #140] +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2511 .loc 1 1624 11 is_stmt 1 view .LVU853 +1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2512 .loc 1 1624 18 is_stmt 0 view .LVU854 + 2513 0066 0320 movs r0, #3 + 2514 0068 20E0 b .L106 + 2515 .LVL221: + 2516 .L107: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2517 .loc 1 1636 5 is_stmt 1 discriminator 1 view .LVU855 + 2518 .LBB634: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2519 .loc 1 1636 5 discriminator 1 view .LVU856 +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2520 .loc 1 1636 5 discriminator 1 view .LVU857 +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2521 .loc 1 1636 5 discriminator 1 view .LVU858 + 2522 006a 2268 ldr r2, [r4] + 2523 .LVL222: + 2524 .LBB635: + 2525 .LBI635: + ARM GAS /tmp/cceWHrnJ.s page 151 + + +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2526 .loc 2 1151 31 discriminator 1 view .LVU859 + 2527 .LBB636: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2528 .loc 2 1153 5 discriminator 1 view .LVU860 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2529 .loc 2 1155 4 discriminator 1 view .LVU861 + 2530 006c 02F10803 add r3, r2, #8 + 2531 .LVL223: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2532 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU862 + 2533 .syntax unified + 2534 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2535 0070 53E8003F ldrex r3, [r3] + 2536 @ 0 "" 2 + 2537 .LVL224: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2538 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU863 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2539 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU864 + 2540 .thumb + 2541 .syntax unified + 2542 .LBE636: + 2543 .LBE635: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2544 .loc 1 1636 5 discriminator 1 view .LVU865 + 2545 0074 23F04003 bic r3, r3, #64 + 2546 .LVL225: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2547 .loc 1 1636 5 is_stmt 1 discriminator 1 view .LVU866 + 2548 .LBB637: + 2549 .LBI637: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2550 .loc 2 1202 31 discriminator 1 view .LVU867 + 2551 .LBB638: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2552 .loc 2 1204 4 discriminator 1 view .LVU868 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2553 .loc 2 1206 4 discriminator 1 view .LVU869 + 2554 0078 0832 adds r2, r2, #8 + 2555 .LVL226: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2556 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU870 + 2557 .syntax unified + 2558 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2559 007a 42E80031 strex r1, r3, [r2] + 2560 @ 0 "" 2 + 2561 .LVL227: + 2562 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU871 + 2563 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU872 + 2564 .thumb + 2565 .syntax unified + 2566 .LBE638: + 2567 .LBE637: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2568 .loc 1 1636 5 discriminator 1 view .LVU873 + 2569 007e 0029 cmp r1, #0 + ARM GAS /tmp/cceWHrnJ.s page 152 + + + 2570 0080 F3D1 bne .L107 + 2571 .LBE634: +1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2572 .loc 1 1636 5 is_stmt 1 discriminator 2 view .LVU874 +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2573 .loc 1 1639 5 discriminator 2 view .LVU875 +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2574 .loc 1 1639 14 is_stmt 0 discriminator 2 view .LVU876 + 2575 0082 E06F ldr r0, [r4, #124] +1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2576 .loc 1 1639 8 discriminator 2 view .LVU877 + 2577 0084 10B1 cbz r0, .L108 +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2578 .loc 1 1641 7 is_stmt 1 view .LVU878 +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2579 .loc 1 1641 11 is_stmt 0 view .LVU879 + 2580 0086 FFF7FEFF bl HAL_DMA_Abort + 2581 .LVL228: +1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2582 .loc 1 1641 10 view .LVU880 + 2583 008a 20B9 cbnz r0, .L113 + 2584 .L108: +1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2585 .loc 1 1653 5 is_stmt 1 view .LVU881 + 2586 008c 2046 mov r0, r4 + 2587 008e FFF7FEFF bl UART_EndRxTransfer + 2588 .LVL229: +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2589 .loc 1 1656 10 is_stmt 0 view .LVU882 + 2590 0092 0020 movs r0, #0 + 2591 0094 0AE0 b .L106 + 2592 .L113: +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2593 .loc 1 1643 9 is_stmt 1 view .LVU883 +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2594 .loc 1 1643 13 is_stmt 0 view .LVU884 + 2595 0096 E06F ldr r0, [r4, #124] + 2596 0098 FFF7FEFF bl HAL_DMA_GetError + 2597 .LVL230: +1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2598 .loc 1 1643 12 view .LVU885 + 2599 009c 2028 cmp r0, #32 + 2600 009e F5D1 bne .L108 +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2601 .loc 1 1646 11 is_stmt 1 view .LVU886 +1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2602 .loc 1 1646 28 is_stmt 0 view .LVU887 + 2603 00a0 1023 movs r3, #16 + 2604 00a2 C4F88C30 str r3, [r4, #140] +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2605 .loc 1 1648 11 is_stmt 1 view .LVU888 +1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2606 .loc 1 1648 18 is_stmt 0 view .LVU889 + 2607 00a6 0320 movs r0, #3 + 2608 00a8 00E0 b .L106 + 2609 .LVL231: + 2610 .L109: + ARM GAS /tmp/cceWHrnJ.s page 153 + + +1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2611 .loc 1 1656 10 view .LVU890 + 2612 00aa 0020 movs r0, #0 + 2613 .L106: +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2614 .loc 1 1657 1 view .LVU891 + 2615 00ac 38BD pop {r3, r4, r5, pc} +1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2616 .loc 1 1657 1 view .LVU892 + 2617 .cfi_endproc + 2618 .LFE344: + 2620 .section .text.HAL_UART_Abort,"ax",%progbits + 2621 .align 1 + 2622 .global HAL_UART_Abort + 2623 .syntax unified + 2624 .thumb + 2625 .thumb_func + 2627 HAL_UART_Abort: + 2628 .LVL232: + 2629 .LFB345: +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interr + 2630 .loc 1 1672 1 is_stmt 1 view -0 + 2631 .cfi_startproc + 2632 @ args = 0, pretend = 0, frame = 0 + 2633 @ frame_needed = 0, uses_anonymous_args = 0 +1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interr + 2634 .loc 1 1672 1 is_stmt 0 view .LVU894 + 2635 0000 10B5 push {r4, lr} + 2636 .LCFI9: + 2637 .cfi_def_cfa_offset 8 + 2638 .cfi_offset 4, -8 + 2639 .cfi_offset 14, -4 + 2640 0002 0446 mov r4, r0 + 2641 .L115: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2642 .loc 1 1674 3 is_stmt 1 discriminator 1 view .LVU895 + 2643 .LBB639: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2644 .loc 1 1674 3 discriminator 1 view .LVU896 +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2645 .loc 1 1674 3 discriminator 1 view .LVU897 +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2646 .loc 1 1674 3 discriminator 1 view .LVU898 + 2647 0004 2268 ldr r2, [r4] + 2648 .LVL233: + 2649 .LBB640: + 2650 .LBI640: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2651 .loc 2 1151 31 discriminator 1 view .LVU899 + 2652 .LBB641: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2653 .loc 2 1153 5 discriminator 1 view .LVU900 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2654 .loc 2 1155 4 discriminator 1 view .LVU901 + 2655 .syntax unified + 2656 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2657 0006 52E8003F ldrex r3, [r2] + ARM GAS /tmp/cceWHrnJ.s page 154 + + + 2658 @ 0 "" 2 + 2659 .LVL234: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2660 .loc 2 1156 4 discriminator 1 view .LVU902 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2661 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU903 + 2662 .thumb + 2663 .syntax unified + 2664 .LBE641: + 2665 .LBE640: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2666 .loc 1 1674 3 discriminator 1 view .LVU904 + 2667 000a 23F4F073 bic r3, r3, #480 + 2668 .LVL235: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2669 .loc 1 1674 3 is_stmt 1 discriminator 1 view .LVU905 + 2670 .LBB642: + 2671 .LBI642: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2672 .loc 2 1202 31 discriminator 1 view .LVU906 + 2673 .LBB643: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2674 .loc 2 1204 4 discriminator 1 view .LVU907 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2675 .loc 2 1206 4 discriminator 1 view .LVU908 + 2676 .syntax unified + 2677 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2678 000e 42E80031 strex r1, r3, [r2] + 2679 @ 0 "" 2 + 2680 .LVL236: + 2681 .loc 2 1207 4 discriminator 1 view .LVU909 + 2682 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU910 + 2683 .thumb + 2684 .syntax unified + 2685 .LBE643: + 2686 .LBE642: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2687 .loc 1 1674 3 discriminator 1 view .LVU911 + 2688 0012 0029 cmp r1, #0 + 2689 0014 F6D1 bne .L115 + 2690 .LVL237: + 2691 .L116: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2692 .loc 1 1674 3 discriminator 1 view .LVU912 + 2693 .LBE639: +1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); + 2694 .loc 1 1674 3 is_stmt 1 discriminator 1 view .LVU913 +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2695 .loc 1 1676 3 discriminator 1 view .LVU914 + 2696 .LBB644: +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2697 .loc 1 1676 3 discriminator 1 view .LVU915 +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2698 .loc 1 1676 3 discriminator 1 view .LVU916 +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2699 .loc 1 1676 3 discriminator 1 view .LVU917 + 2700 0016 2268 ldr r2, [r4] + ARM GAS /tmp/cceWHrnJ.s page 155 + + + 2701 .LVL238: + 2702 .LBB645: + 2703 .LBI645: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2704 .loc 2 1151 31 discriminator 1 view .LVU918 + 2705 .LBB646: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2706 .loc 2 1153 5 discriminator 1 view .LVU919 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2707 .loc 2 1155 4 discriminator 1 view .LVU920 + 2708 0018 02F10803 add r3, r2, #8 + 2709 .LVL239: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2710 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU921 + 2711 .syntax unified + 2712 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2713 001c 53E8003F ldrex r3, [r3] + 2714 @ 0 "" 2 + 2715 .LVL240: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2716 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU922 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2717 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU923 + 2718 .thumb + 2719 .syntax unified + 2720 .LBE646: + 2721 .LBE645: +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2722 .loc 1 1676 3 discriminator 1 view .LVU924 + 2723 0020 23F08453 bic r3, r3, #276824064 + 2724 0024 23F00103 bic r3, r3, #1 + 2725 .LVL241: +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2726 .loc 1 1676 3 is_stmt 1 discriminator 1 view .LVU925 + 2727 .LBB647: + 2728 .LBI647: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2729 .loc 2 1202 31 discriminator 1 view .LVU926 + 2730 .LBB648: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2731 .loc 2 1204 4 discriminator 1 view .LVU927 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2732 .loc 2 1206 4 discriminator 1 view .LVU928 + 2733 0028 0832 adds r2, r2, #8 + 2734 .LVL242: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2735 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU929 + 2736 .syntax unified + 2737 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2738 002a 42E80031 strex r1, r3, [r2] + 2739 @ 0 "" 2 + 2740 .LVL243: + 2741 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU930 + 2742 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU931 + 2743 .thumb + 2744 .syntax unified + 2745 .LBE648: + ARM GAS /tmp/cceWHrnJ.s page 156 + + + 2746 .LBE647: +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2747 .loc 1 1676 3 discriminator 1 view .LVU932 + 2748 002e 0029 cmp r1, #0 + 2749 0030 F1D1 bne .L116 + 2750 .LBE644: +1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2751 .loc 1 1676 3 is_stmt 1 discriminator 2 view .LVU933 +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2752 .loc 1 1679 3 discriminator 2 view .LVU934 +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2753 .loc 1 1679 12 is_stmt 0 discriminator 2 view .LVU935 + 2754 0032 E36E ldr r3, [r4, #108] + 2755 .LVL244: +1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2756 .loc 1 1679 6 discriminator 2 view .LVU936 + 2757 0034 012B cmp r3, #1 + 2758 0036 4DD0 beq .L118 + 2759 .L117: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2760 .loc 1 1681 5 is_stmt 1 discriminator 2 view .LVU937 +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2761 .loc 1 1685 3 discriminator 2 view .LVU938 +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2762 .loc 1 1685 7 is_stmt 0 discriminator 2 view .LVU939 + 2763 0038 2368 ldr r3, [r4] + 2764 003a 9B68 ldr r3, [r3, #8] +1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2765 .loc 1 1685 6 discriminator 2 view .LVU940 + 2766 003c 13F0800F tst r3, #128 + 2767 0040 14D0 beq .L119 + 2768 .L120: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2769 .loc 1 1688 5 is_stmt 1 discriminator 1 view .LVU941 + 2770 .LBB649: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2771 .loc 1 1688 5 discriminator 1 view .LVU942 +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2772 .loc 1 1688 5 discriminator 1 view .LVU943 +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2773 .loc 1 1688 5 discriminator 1 view .LVU944 + 2774 0042 2268 ldr r2, [r4] + 2775 .LVL245: + 2776 .LBB650: + 2777 .LBI650: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2778 .loc 2 1151 31 discriminator 1 view .LVU945 + 2779 .LBB651: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2780 .loc 2 1153 5 discriminator 1 view .LVU946 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2781 .loc 2 1155 4 discriminator 1 view .LVU947 + 2782 0044 02F10803 add r3, r2, #8 + 2783 .LVL246: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2784 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU948 + 2785 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 157 + + + 2786 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2787 0048 53E8003F ldrex r3, [r3] + 2788 @ 0 "" 2 + 2789 .LVL247: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2790 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU949 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2791 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU950 + 2792 .thumb + 2793 .syntax unified + 2794 .LBE651: + 2795 .LBE650: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2796 .loc 1 1688 5 discriminator 1 view .LVU951 + 2797 004c 23F08003 bic r3, r3, #128 + 2798 .LVL248: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2799 .loc 1 1688 5 is_stmt 1 discriminator 1 view .LVU952 + 2800 .LBB652: + 2801 .LBI652: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2802 .loc 2 1202 31 discriminator 1 view .LVU953 + 2803 .LBB653: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2804 .loc 2 1204 4 discriminator 1 view .LVU954 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2805 .loc 2 1206 4 discriminator 1 view .LVU955 + 2806 0050 0832 adds r2, r2, #8 + 2807 .LVL249: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2808 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU956 + 2809 .syntax unified + 2810 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2811 0052 42E80031 strex r1, r3, [r2] + 2812 @ 0 "" 2 + 2813 .LVL250: + 2814 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU957 + 2815 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU958 + 2816 .thumb + 2817 .syntax unified + 2818 .LBE653: + 2819 .LBE652: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2820 .loc 1 1688 5 discriminator 1 view .LVU959 + 2821 0056 0029 cmp r1, #0 + 2822 0058 F3D1 bne .L120 + 2823 .LBE649: +1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2824 .loc 1 1688 5 is_stmt 1 discriminator 2 view .LVU960 +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2825 .loc 1 1691 5 discriminator 2 view .LVU961 +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2826 .loc 1 1691 14 is_stmt 0 discriminator 2 view .LVU962 + 2827 005a A36F ldr r3, [r4, #120] + 2828 .LVL251: +1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2829 .loc 1 1691 8 discriminator 2 view .LVU963 + ARM GAS /tmp/cceWHrnJ.s page 158 + + + 2830 005c 33B1 cbz r3, .L119 +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2831 .loc 1 1695 7 is_stmt 1 view .LVU964 +1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2832 .loc 1 1695 40 is_stmt 0 view .LVU965 + 2833 005e 0022 movs r2, #0 + 2834 0060 9A63 str r2, [r3, #56] +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2835 .loc 1 1697 7 is_stmt 1 view .LVU966 +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2836 .loc 1 1697 11 is_stmt 0 view .LVU967 + 2837 0062 A06F ldr r0, [r4, #120] + 2838 .LVL252: +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2839 .loc 1 1697 11 view .LVU968 + 2840 0064 FFF7FEFF bl HAL_DMA_Abort + 2841 .LVL253: +1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2842 .loc 1 1697 10 view .LVU969 + 2843 0068 0028 cmp r0, #0 + 2844 006a 3DD1 bne .L126 + 2845 .LVL254: + 2846 .L119: +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2847 .loc 1 1711 3 is_stmt 1 view .LVU970 +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2848 .loc 1 1711 7 is_stmt 0 view .LVU971 + 2849 006c 2368 ldr r3, [r4] + 2850 006e 9B68 ldr r3, [r3, #8] +1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2851 .loc 1 1711 6 view .LVU972 + 2852 0070 13F0400F tst r3, #64 + 2853 0074 13D0 beq .L122 + 2854 .L123: +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2855 .loc 1 1714 5 is_stmt 1 discriminator 1 view .LVU973 + 2856 .LBB654: +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2857 .loc 1 1714 5 discriminator 1 view .LVU974 +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2858 .loc 1 1714 5 discriminator 1 view .LVU975 +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2859 .loc 1 1714 5 discriminator 1 view .LVU976 + 2860 0076 2268 ldr r2, [r4] + 2861 .LVL255: + 2862 .LBB655: + 2863 .LBI655: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2864 .loc 2 1151 31 discriminator 1 view .LVU977 + 2865 .LBB656: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2866 .loc 2 1153 5 discriminator 1 view .LVU978 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2867 .loc 2 1155 4 discriminator 1 view .LVU979 + 2868 0078 02F10803 add r3, r2, #8 + 2869 .LVL256: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + ARM GAS /tmp/cceWHrnJ.s page 159 + + + 2870 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU980 + 2871 .syntax unified + 2872 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2873 007c 53E8003F ldrex r3, [r3] + 2874 @ 0 "" 2 + 2875 .LVL257: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2876 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU981 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2877 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU982 + 2878 .thumb + 2879 .syntax unified + 2880 .LBE656: + 2881 .LBE655: +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2882 .loc 1 1714 5 discriminator 1 view .LVU983 + 2883 0080 23F04003 bic r3, r3, #64 + 2884 .LVL258: +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2885 .loc 1 1714 5 is_stmt 1 discriminator 1 view .LVU984 + 2886 .LBB657: + 2887 .LBI657: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2888 .loc 2 1202 31 discriminator 1 view .LVU985 + 2889 .LBB658: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2890 .loc 2 1204 4 discriminator 1 view .LVU986 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2891 .loc 2 1206 4 discriminator 1 view .LVU987 + 2892 0084 0832 adds r2, r2, #8 + 2893 .LVL259: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2894 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU988 + 2895 .syntax unified + 2896 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2897 0086 42E80031 strex r1, r3, [r2] + 2898 @ 0 "" 2 + 2899 .LVL260: + 2900 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU989 + 2901 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU990 + 2902 .thumb + 2903 .syntax unified + 2904 .LBE658: + 2905 .LBE657: +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2906 .loc 1 1714 5 discriminator 1 view .LVU991 + 2907 008a 0029 cmp r1, #0 + 2908 008c F3D1 bne .L123 + 2909 .LBE654: +1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2910 .loc 1 1714 5 is_stmt 1 discriminator 2 view .LVU992 +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2911 .loc 1 1717 5 discriminator 2 view .LVU993 +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2912 .loc 1 1717 14 is_stmt 0 discriminator 2 view .LVU994 + 2913 008e E36F ldr r3, [r4, #124] + 2914 .LVL261: + ARM GAS /tmp/cceWHrnJ.s page 160 + + +1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2915 .loc 1 1717 8 discriminator 2 view .LVU995 + 2916 0090 2BB1 cbz r3, .L122 +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2917 .loc 1 1721 7 is_stmt 1 view .LVU996 +1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2918 .loc 1 1721 40 is_stmt 0 view .LVU997 + 2919 0092 0022 movs r2, #0 + 2920 0094 9A63 str r2, [r3, #56] +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2921 .loc 1 1723 7 is_stmt 1 view .LVU998 +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2922 .loc 1 1723 11 is_stmt 0 view .LVU999 + 2923 0096 E06F ldr r0, [r4, #124] + 2924 0098 FFF7FEFF bl HAL_DMA_Abort + 2925 .LVL262: +1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2926 .loc 1 1723 10 view .LVU1000 + 2927 009c 70BB cbnz r0, .L127 + 2928 .LVL263: + 2929 .L122: +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 2930 .loc 1 1737 3 is_stmt 1 view .LVU1001 +1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 2931 .loc 1 1737 22 is_stmt 0 view .LVU1002 + 2932 009e 0023 movs r3, #0 + 2933 00a0 A4F85630 strh r3, [r4, #86] @ movhi +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2934 .loc 1 1738 3 is_stmt 1 view .LVU1003 +1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2935 .loc 1 1738 22 is_stmt 0 view .LVU1004 + 2936 00a4 A4F85E30 strh r3, [r4, #94] @ movhi +1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2937 .loc 1 1741 3 is_stmt 1 view .LVU1005 + 2938 00a8 2368 ldr r3, [r4] + 2939 00aa 0F22 movs r2, #15 + 2940 00ac 1A62 str r2, [r3, #32] +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2941 .loc 1 1744 3 view .LVU1006 +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2942 .loc 1 1744 12 is_stmt 0 view .LVU1007 + 2943 00ae 636E ldr r3, [r4, #100] +1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 2944 .loc 1 1744 6 view .LVU1008 + 2945 00b0 B3F1005F cmp r3, #536870912 + 2946 00b4 2CD0 beq .L128 + 2947 .L124: +1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2948 .loc 1 1750 3 is_stmt 1 view .LVU1009 + 2949 00b6 2268 ldr r2, [r4] + 2950 00b8 9369 ldr r3, [r2, #24] + 2951 00ba 43F00803 orr r3, r3, #8 + 2952 00be 9361 str r3, [r2, #24] +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 2953 .loc 1 1753 3 view .LVU1010 +1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 2954 .loc 1 1753 18 is_stmt 0 view .LVU1011 + ARM GAS /tmp/cceWHrnJ.s page 161 + + + 2955 00c0 2023 movs r3, #32 + 2956 00c2 C4F88430 str r3, [r4, #132] +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 2957 .loc 1 1754 3 is_stmt 1 view .LVU1012 +1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 2958 .loc 1 1754 18 is_stmt 0 view .LVU1013 + 2959 00c6 C4F88830 str r3, [r4, #136] +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2960 .loc 1 1755 3 is_stmt 1 view .LVU1014 +1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2961 .loc 1 1755 24 is_stmt 0 view .LVU1015 + 2962 00ca 0020 movs r0, #0 + 2963 00cc E066 str r0, [r4, #108] +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2964 .loc 1 1757 3 is_stmt 1 view .LVU1016 +1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2965 .loc 1 1757 20 is_stmt 0 view .LVU1017 + 2966 00ce C4F88C00 str r0, [r4, #140] +1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2967 .loc 1 1759 3 is_stmt 1 view .LVU1018 + 2968 .L121: +1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 2969 .loc 1 1760 1 is_stmt 0 view .LVU1019 + 2970 00d2 10BD pop {r4, pc} + 2971 .LVL264: + 2972 .L118: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2973 .loc 1 1681 5 is_stmt 1 discriminator 1 view .LVU1020 + 2974 .LBB659: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2975 .loc 1 1681 5 discriminator 1 view .LVU1021 +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2976 .loc 1 1681 5 discriminator 1 view .LVU1022 +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2977 .loc 1 1681 5 discriminator 1 view .LVU1023 + 2978 00d4 2268 ldr r2, [r4] + 2979 .LVL265: + 2980 .LBB660: + 2981 .LBI660: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 2982 .loc 2 1151 31 discriminator 1 view .LVU1024 + 2983 .LBB661: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 2984 .loc 2 1153 5 discriminator 1 view .LVU1025 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 2985 .loc 2 1155 4 discriminator 1 view .LVU1026 + 2986 .syntax unified + 2987 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 2988 00d6 52E8003F ldrex r3, [r2] + 2989 @ 0 "" 2 + 2990 .LVL266: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2991 .loc 2 1156 4 discriminator 1 view .LVU1027 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 2992 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1028 + 2993 .thumb + 2994 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 162 + + + 2995 .LBE661: + 2996 .LBE660: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 2997 .loc 1 1681 5 discriminator 1 view .LVU1029 + 2998 00da 23F01003 bic r3, r3, #16 + 2999 .LVL267: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3000 .loc 1 1681 5 is_stmt 1 discriminator 1 view .LVU1030 + 3001 .LBB662: + 3002 .LBI662: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3003 .loc 2 1202 31 discriminator 1 view .LVU1031 + 3004 .LBB663: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3005 .loc 2 1204 4 discriminator 1 view .LVU1032 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3006 .loc 2 1206 4 discriminator 1 view .LVU1033 + 3007 .syntax unified + 3008 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3009 00de 42E80031 strex r1, r3, [r2] + 3010 @ 0 "" 2 + 3011 .LVL268: + 3012 .loc 2 1207 4 discriminator 1 view .LVU1034 + 3013 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1035 + 3014 .thumb + 3015 .syntax unified + 3016 .LBE663: + 3017 .LBE662: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3018 .loc 1 1681 5 discriminator 1 view .LVU1036 + 3019 00e2 0029 cmp r1, #0 + 3020 00e4 F6D1 bne .L118 + 3021 00e6 A7E7 b .L117 + 3022 .LVL269: + 3023 .L126: +1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3024 .loc 1 1681 5 discriminator 1 view .LVU1037 + 3025 .LBE659: +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3026 .loc 1 1699 9 is_stmt 1 view .LVU1038 +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3027 .loc 1 1699 13 is_stmt 0 view .LVU1039 + 3028 00e8 A06F ldr r0, [r4, #120] + 3029 00ea FFF7FEFF bl HAL_DMA_GetError + 3030 .LVL270: +1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3031 .loc 1 1699 12 view .LVU1040 + 3032 00ee 2028 cmp r0, #32 + 3033 00f0 BCD1 bne .L119 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3034 .loc 1 1702 11 is_stmt 1 view .LVU1041 +1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3035 .loc 1 1702 28 is_stmt 0 view .LVU1042 + 3036 00f2 1023 movs r3, #16 + 3037 00f4 C4F88C30 str r3, [r4, #140] +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3038 .loc 1 1704 11 is_stmt 1 view .LVU1043 + ARM GAS /tmp/cceWHrnJ.s page 163 + + +1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3039 .loc 1 1704 18 is_stmt 0 view .LVU1044 + 3040 00f8 0320 movs r0, #3 + 3041 00fa EAE7 b .L121 + 3042 .LVL271: + 3043 .L127: +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3044 .loc 1 1725 9 is_stmt 1 view .LVU1045 +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3045 .loc 1 1725 13 is_stmt 0 view .LVU1046 + 3046 00fc E06F ldr r0, [r4, #124] + 3047 00fe FFF7FEFF bl HAL_DMA_GetError + 3048 .LVL272: +1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3049 .loc 1 1725 12 view .LVU1047 + 3050 0102 2028 cmp r0, #32 + 3051 0104 CBD1 bne .L122 +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3052 .loc 1 1728 11 is_stmt 1 view .LVU1048 +1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3053 .loc 1 1728 28 is_stmt 0 view .LVU1049 + 3054 0106 1023 movs r3, #16 + 3055 0108 C4F88C30 str r3, [r4, #140] +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3056 .loc 1 1730 11 is_stmt 1 view .LVU1050 +1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3057 .loc 1 1730 18 is_stmt 0 view .LVU1051 + 3058 010c 0320 movs r0, #3 + 3059 010e E0E7 b .L121 + 3060 .LVL273: + 3061 .L128: +1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3062 .loc 1 1746 5 is_stmt 1 view .LVU1052 + 3063 0110 2268 ldr r2, [r4] + 3064 0112 9369 ldr r3, [r2, #24] + 3065 0114 43F01003 orr r3, r3, #16 + 3066 0118 9361 str r3, [r2, #24] + 3067 011a CCE7 b .L124 + 3068 .cfi_endproc + 3069 .LFE345: + 3071 .section .text.HAL_UART_AbortTransmit,"ax",%progbits + 3072 .align 1 + 3073 .global HAL_UART_AbortTransmit + 3074 .syntax unified + 3075 .thumb + 3076 .thumb_func + 3078 HAL_UART_AbortTransmit: + 3079 .LVL274: + 3080 .LFB346: +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ + 3081 .loc 1 1775 1 view -0 + 3082 .cfi_startproc + 3083 @ args = 0, pretend = 0, frame = 0 + 3084 @ frame_needed = 0, uses_anonymous_args = 0 +1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ + 3085 .loc 1 1775 1 is_stmt 0 view .LVU1054 + 3086 0000 10B5 push {r4, lr} + ARM GAS /tmp/cceWHrnJ.s page 164 + + + 3087 .LCFI10: + 3088 .cfi_def_cfa_offset 8 + 3089 .cfi_offset 4, -8 + 3090 .cfi_offset 14, -4 + 3091 0002 0446 mov r4, r0 + 3092 .L130: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3093 .loc 1 1777 3 is_stmt 1 discriminator 1 view .LVU1055 + 3094 .LBB664: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3095 .loc 1 1777 3 discriminator 1 view .LVU1056 +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3096 .loc 1 1777 3 discriminator 1 view .LVU1057 +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3097 .loc 1 1777 3 discriminator 1 view .LVU1058 + 3098 0004 2268 ldr r2, [r4] + 3099 .LVL275: + 3100 .LBB665: + 3101 .LBI665: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3102 .loc 2 1151 31 discriminator 1 view .LVU1059 + 3103 .LBB666: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3104 .loc 2 1153 5 discriminator 1 view .LVU1060 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3105 .loc 2 1155 4 discriminator 1 view .LVU1061 + 3106 .syntax unified + 3107 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3108 0006 52E8003F ldrex r3, [r2] + 3109 @ 0 "" 2 + 3110 .LVL276: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3111 .loc 2 1156 4 discriminator 1 view .LVU1062 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3112 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1063 + 3113 .thumb + 3114 .syntax unified + 3115 .LBE666: + 3116 .LBE665: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3117 .loc 1 1777 3 discriminator 1 view .LVU1064 + 3118 000a 23F0C003 bic r3, r3, #192 + 3119 .LVL277: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3120 .loc 1 1777 3 is_stmt 1 discriminator 1 view .LVU1065 + 3121 .LBB667: + 3122 .LBI667: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3123 .loc 2 1202 31 discriminator 1 view .LVU1066 + 3124 .LBB668: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3125 .loc 2 1204 4 discriminator 1 view .LVU1067 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3126 .loc 2 1206 4 discriminator 1 view .LVU1068 + 3127 .syntax unified + 3128 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3129 000e 42E80031 strex r1, r3, [r2] + ARM GAS /tmp/cceWHrnJ.s page 165 + + + 3130 @ 0 "" 2 + 3131 .LVL278: + 3132 .loc 2 1207 4 discriminator 1 view .LVU1069 + 3133 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1070 + 3134 .thumb + 3135 .syntax unified + 3136 .LBE668: + 3137 .LBE667: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3138 .loc 1 1777 3 discriminator 1 view .LVU1071 + 3139 0012 0029 cmp r1, #0 + 3140 0014 F6D1 bne .L130 + 3141 .LVL279: + 3142 .L131: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3143 .loc 1 1777 3 discriminator 1 view .LVU1072 + 3144 .LBE664: +1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 3145 .loc 1 1777 3 is_stmt 1 discriminator 1 view .LVU1073 +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3146 .loc 1 1778 3 discriminator 1 view .LVU1074 + 3147 .LBB669: +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3148 .loc 1 1778 3 discriminator 1 view .LVU1075 +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3149 .loc 1 1778 3 discriminator 1 view .LVU1076 +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3150 .loc 1 1778 3 discriminator 1 view .LVU1077 + 3151 0016 2268 ldr r2, [r4] + 3152 .LVL280: + 3153 .LBB670: + 3154 .LBI670: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3155 .loc 2 1151 31 discriminator 1 view .LVU1078 + 3156 .LBB671: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3157 .loc 2 1153 5 discriminator 1 view .LVU1079 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3158 .loc 2 1155 4 discriminator 1 view .LVU1080 + 3159 0018 02F10803 add r3, r2, #8 + 3160 .LVL281: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3161 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1081 + 3162 .syntax unified + 3163 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3164 001c 53E8003F ldrex r3, [r3] + 3165 @ 0 "" 2 + 3166 .LVL282: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3167 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1082 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3168 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1083 + 3169 .thumb + 3170 .syntax unified + 3171 .LBE671: + 3172 .LBE670: +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 166 + + + 3173 .loc 1 1778 3 discriminator 1 view .LVU1084 + 3174 0020 23F40003 bic r3, r3, #8388608 + 3175 .LVL283: +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3176 .loc 1 1778 3 is_stmt 1 discriminator 1 view .LVU1085 + 3177 .LBB672: + 3178 .LBI672: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3179 .loc 2 1202 31 discriminator 1 view .LVU1086 + 3180 .LBB673: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3181 .loc 2 1204 4 discriminator 1 view .LVU1087 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3182 .loc 2 1206 4 discriminator 1 view .LVU1088 + 3183 0024 0832 adds r2, r2, #8 + 3184 .LVL284: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3185 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1089 + 3186 .syntax unified + 3187 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3188 0026 42E80031 strex r1, r3, [r2] + 3189 @ 0 "" 2 + 3190 .LVL285: + 3191 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1090 + 3192 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1091 + 3193 .thumb + 3194 .syntax unified + 3195 .LBE673: + 3196 .LBE672: +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3197 .loc 1 1778 3 discriminator 1 view .LVU1092 + 3198 002a 0029 cmp r1, #0 + 3199 002c F3D1 bne .L131 + 3200 .LBE669: +1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3201 .loc 1 1778 3 is_stmt 1 discriminator 2 view .LVU1093 +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3202 .loc 1 1781 3 discriminator 2 view .LVU1094 +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3203 .loc 1 1781 7 is_stmt 0 discriminator 2 view .LVU1095 + 3204 002e 2368 ldr r3, [r4] + 3205 .LVL286: +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3206 .loc 1 1781 7 discriminator 2 view .LVU1096 + 3207 0030 9B68 ldr r3, [r3, #8] +1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3208 .loc 1 1781 6 discriminator 2 view .LVU1097 + 3209 0032 13F0800F tst r3, #128 + 3210 0036 13D0 beq .L132 + 3211 .L133: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3212 .loc 1 1784 5 is_stmt 1 discriminator 1 view .LVU1098 + 3213 .LBB674: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3214 .loc 1 1784 5 discriminator 1 view .LVU1099 +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3215 .loc 1 1784 5 discriminator 1 view .LVU1100 + ARM GAS /tmp/cceWHrnJ.s page 167 + + +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3216 .loc 1 1784 5 discriminator 1 view .LVU1101 + 3217 0038 2268 ldr r2, [r4] + 3218 .LVL287: + 3219 .LBB675: + 3220 .LBI675: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3221 .loc 2 1151 31 discriminator 1 view .LVU1102 + 3222 .LBB676: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3223 .loc 2 1153 5 discriminator 1 view .LVU1103 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3224 .loc 2 1155 4 discriminator 1 view .LVU1104 + 3225 003a 02F10803 add r3, r2, #8 + 3226 .LVL288: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3227 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1105 + 3228 .syntax unified + 3229 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3230 003e 53E8003F ldrex r3, [r3] + 3231 @ 0 "" 2 + 3232 .LVL289: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3233 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1106 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3234 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1107 + 3235 .thumb + 3236 .syntax unified + 3237 .LBE676: + 3238 .LBE675: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3239 .loc 1 1784 5 discriminator 1 view .LVU1108 + 3240 0042 23F08003 bic r3, r3, #128 + 3241 .LVL290: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3242 .loc 1 1784 5 is_stmt 1 discriminator 1 view .LVU1109 + 3243 .LBB677: + 3244 .LBI677: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3245 .loc 2 1202 31 discriminator 1 view .LVU1110 + 3246 .LBB678: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3247 .loc 2 1204 4 discriminator 1 view .LVU1111 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3248 .loc 2 1206 4 discriminator 1 view .LVU1112 + 3249 0046 0832 adds r2, r2, #8 + 3250 .LVL291: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3251 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1113 + 3252 .syntax unified + 3253 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3254 0048 42E80031 strex r1, r3, [r2] + 3255 @ 0 "" 2 + 3256 .LVL292: + 3257 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1114 + 3258 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1115 + 3259 .thumb + ARM GAS /tmp/cceWHrnJ.s page 168 + + + 3260 .syntax unified + 3261 .LBE678: + 3262 .LBE677: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3263 .loc 1 1784 5 discriminator 1 view .LVU1116 + 3264 004c 0029 cmp r1, #0 + 3265 004e F3D1 bne .L133 + 3266 .LBE674: +1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3267 .loc 1 1784 5 is_stmt 1 discriminator 2 view .LVU1117 +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3268 .loc 1 1787 5 discriminator 2 view .LVU1118 +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3269 .loc 1 1787 14 is_stmt 0 discriminator 2 view .LVU1119 + 3270 0050 A36F ldr r3, [r4, #120] + 3271 .LVL293: +1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3272 .loc 1 1787 8 discriminator 2 view .LVU1120 + 3273 0052 2BB1 cbz r3, .L132 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3274 .loc 1 1791 7 is_stmt 1 view .LVU1121 +1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3275 .loc 1 1791 40 is_stmt 0 view .LVU1122 + 3276 0054 0022 movs r2, #0 + 3277 0056 9A63 str r2, [r3, #56] +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3278 .loc 1 1793 7 is_stmt 1 view .LVU1123 +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3279 .loc 1 1793 11 is_stmt 0 view .LVU1124 + 3280 0058 A06F ldr r0, [r4, #120] + 3281 .LVL294: +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3282 .loc 1 1793 11 view .LVU1125 + 3283 005a FFF7FEFF bl HAL_DMA_Abort + 3284 .LVL295: +1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3285 .loc 1 1793 10 view .LVU1126 + 3286 005e 58B9 cbnz r0, .L137 + 3287 .LVL296: + 3288 .L132: +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3289 .loc 1 1807 3 is_stmt 1 view .LVU1127 +1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3290 .loc 1 1807 22 is_stmt 0 view .LVU1128 + 3291 0060 0023 movs r3, #0 + 3292 0062 A4F85630 strh r3, [r4, #86] @ movhi +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3293 .loc 1 1810 3 is_stmt 1 view .LVU1129 +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3294 .loc 1 1810 12 is_stmt 0 view .LVU1130 + 3295 0066 636E ldr r3, [r4, #100] +1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3296 .loc 1 1810 6 view .LVU1131 + 3297 0068 B3F1005F cmp r3, #536870912 + 3298 006c 0ED0 beq .L138 + 3299 .L135: +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 169 + + + 3300 .loc 1 1816 3 is_stmt 1 view .LVU1132 +1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3301 .loc 1 1816 17 is_stmt 0 view .LVU1133 + 3302 006e 2023 movs r3, #32 + 3303 0070 C4F88430 str r3, [r4, #132] +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3304 .loc 1 1818 3 is_stmt 1 view .LVU1134 +1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3305 .loc 1 1818 10 is_stmt 0 view .LVU1135 + 3306 0074 0020 movs r0, #0 + 3307 .L134: +1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3308 .loc 1 1819 1 view .LVU1136 + 3309 0076 10BD pop {r4, pc} + 3310 .LVL297: + 3311 .L137: +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3312 .loc 1 1795 9 is_stmt 1 view .LVU1137 +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3313 .loc 1 1795 13 is_stmt 0 view .LVU1138 + 3314 0078 A06F ldr r0, [r4, #120] + 3315 007a FFF7FEFF bl HAL_DMA_GetError + 3316 .LVL298: +1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3317 .loc 1 1795 12 view .LVU1139 + 3318 007e 2028 cmp r0, #32 + 3319 0080 EED1 bne .L132 +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3320 .loc 1 1798 11 is_stmt 1 view .LVU1140 +1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3321 .loc 1 1798 28 is_stmt 0 view .LVU1141 + 3322 0082 1023 movs r3, #16 + 3323 0084 C4F88C30 str r3, [r4, #140] +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3324 .loc 1 1800 11 is_stmt 1 view .LVU1142 +1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3325 .loc 1 1800 18 is_stmt 0 view .LVU1143 + 3326 0088 0320 movs r0, #3 + 3327 008a F4E7 b .L134 + 3328 .LVL299: + 3329 .L138: +1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3330 .loc 1 1812 5 is_stmt 1 view .LVU1144 + 3331 008c 2268 ldr r2, [r4] + 3332 008e 9369 ldr r3, [r2, #24] + 3333 0090 43F01003 orr r3, r3, #16 + 3334 0094 9361 str r3, [r2, #24] + 3335 0096 EAE7 b .L135 + 3336 .cfi_endproc + 3337 .LFE346: + 3339 .section .text.HAL_UART_AbortReceive,"ax",%progbits + 3340 .align 1 + 3341 .global HAL_UART_AbortReceive + 3342 .syntax unified + 3343 .thumb + 3344 .thumb_func + 3346 HAL_UART_AbortReceive: + ARM GAS /tmp/cceWHrnJ.s page 170 + + + 3347 .LVL300: + 3348 .LFB347: +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ + 3349 .loc 1 1834 1 view -0 + 3350 .cfi_startproc + 3351 @ args = 0, pretend = 0, frame = 0 + 3352 @ frame_needed = 0, uses_anonymous_args = 0 +1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ + 3353 .loc 1 1834 1 is_stmt 0 view .LVU1146 + 3354 0000 10B5 push {r4, lr} + 3355 .LCFI11: + 3356 .cfi_def_cfa_offset 8 + 3357 .cfi_offset 4, -8 + 3358 .cfi_offset 14, -4 + 3359 0002 0446 mov r4, r0 + 3360 .L140: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3361 .loc 1 1836 3 is_stmt 1 discriminator 1 view .LVU1147 + 3362 .LBB679: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3363 .loc 1 1836 3 discriminator 1 view .LVU1148 +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3364 .loc 1 1836 3 discriminator 1 view .LVU1149 +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3365 .loc 1 1836 3 discriminator 1 view .LVU1150 + 3366 0004 2268 ldr r2, [r4] + 3367 .LVL301: + 3368 .LBB680: + 3369 .LBI680: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3370 .loc 2 1151 31 discriminator 1 view .LVU1151 + 3371 .LBB681: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3372 .loc 2 1153 5 discriminator 1 view .LVU1152 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3373 .loc 2 1155 4 discriminator 1 view .LVU1153 + 3374 .syntax unified + 3375 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3376 0006 52E8003F ldrex r3, [r2] + 3377 @ 0 "" 2 + 3378 .LVL302: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3379 .loc 2 1156 4 discriminator 1 view .LVU1154 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3380 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1155 + 3381 .thumb + 3382 .syntax unified + 3383 .LBE681: + 3384 .LBE680: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3385 .loc 1 1836 3 discriminator 1 view .LVU1156 + 3386 000a 23F49073 bic r3, r3, #288 + 3387 .LVL303: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3388 .loc 1 1836 3 is_stmt 1 discriminator 1 view .LVU1157 + 3389 .LBB682: + 3390 .LBI682: + ARM GAS /tmp/cceWHrnJ.s page 171 + + +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3391 .loc 2 1202 31 discriminator 1 view .LVU1158 + 3392 .LBB683: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3393 .loc 2 1204 4 discriminator 1 view .LVU1159 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3394 .loc 2 1206 4 discriminator 1 view .LVU1160 + 3395 .syntax unified + 3396 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3397 000e 42E80031 strex r1, r3, [r2] + 3398 @ 0 "" 2 + 3399 .LVL304: + 3400 .loc 2 1207 4 discriminator 1 view .LVU1161 + 3401 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1162 + 3402 .thumb + 3403 .syntax unified + 3404 .LBE683: + 3405 .LBE682: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3406 .loc 1 1836 3 discriminator 1 view .LVU1163 + 3407 0012 0029 cmp r1, #0 + 3408 0014 F6D1 bne .L140 + 3409 .LVL305: + 3410 .L141: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3411 .loc 1 1836 3 discriminator 1 view .LVU1164 + 3412 .LBE679: +1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); + 3413 .loc 1 1836 3 is_stmt 1 discriminator 1 view .LVU1165 +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3414 .loc 1 1837 3 discriminator 1 view .LVU1166 + 3415 .LBB684: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3416 .loc 1 1837 3 discriminator 1 view .LVU1167 +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3417 .loc 1 1837 3 discriminator 1 view .LVU1168 +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3418 .loc 1 1837 3 discriminator 1 view .LVU1169 + 3419 0016 2268 ldr r2, [r4] + 3420 .LVL306: + 3421 .LBB685: + 3422 .LBI685: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3423 .loc 2 1151 31 discriminator 1 view .LVU1170 + 3424 .LBB686: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3425 .loc 2 1153 5 discriminator 1 view .LVU1171 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3426 .loc 2 1155 4 discriminator 1 view .LVU1172 + 3427 0018 02F10803 add r3, r2, #8 + 3428 .LVL307: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3429 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1173 + 3430 .syntax unified + 3431 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3432 001c 53E8003F ldrex r3, [r3] + 3433 @ 0 "" 2 + ARM GAS /tmp/cceWHrnJ.s page 172 + + + 3434 .LVL308: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3435 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1174 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3436 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1175 + 3437 .thumb + 3438 .syntax unified + 3439 .LBE686: + 3440 .LBE685: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3441 .loc 1 1837 3 discriminator 1 view .LVU1176 + 3442 0020 23F08053 bic r3, r3, #268435456 + 3443 0024 23F00103 bic r3, r3, #1 + 3444 .LVL309: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3445 .loc 1 1837 3 is_stmt 1 discriminator 1 view .LVU1177 + 3446 .LBB687: + 3447 .LBI687: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3448 .loc 2 1202 31 discriminator 1 view .LVU1178 + 3449 .LBB688: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3450 .loc 2 1204 4 discriminator 1 view .LVU1179 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3451 .loc 2 1206 4 discriminator 1 view .LVU1180 + 3452 0028 0832 adds r2, r2, #8 + 3453 .LVL310: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3454 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1181 + 3455 .syntax unified + 3456 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3457 002a 42E80031 strex r1, r3, [r2] + 3458 @ 0 "" 2 + 3459 .LVL311: + 3460 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1182 + 3461 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1183 + 3462 .thumb + 3463 .syntax unified + 3464 .LBE688: + 3465 .LBE687: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3466 .loc 1 1837 3 discriminator 1 view .LVU1184 + 3467 002e 0029 cmp r1, #0 + 3468 0030 F1D1 bne .L141 + 3469 .LBE684: +1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3470 .loc 1 1837 3 is_stmt 1 discriminator 2 view .LVU1185 +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3471 .loc 1 1840 3 discriminator 2 view .LVU1186 +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3472 .loc 1 1840 12 is_stmt 0 discriminator 2 view .LVU1187 + 3473 0032 E36E ldr r3, [r4, #108] + 3474 .LVL312: +1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3475 .loc 1 1840 6 discriminator 2 view .LVU1188 + 3476 0034 012B cmp r3, #1 + 3477 0036 28D0 beq .L143 + ARM GAS /tmp/cceWHrnJ.s page 173 + + + 3478 .L142: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3479 .loc 1 1842 5 is_stmt 1 discriminator 2 view .LVU1189 +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3480 .loc 1 1846 3 discriminator 2 view .LVU1190 +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3481 .loc 1 1846 7 is_stmt 0 discriminator 2 view .LVU1191 + 3482 0038 2368 ldr r3, [r4] + 3483 003a 9B68 ldr r3, [r3, #8] +1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3484 .loc 1 1846 6 discriminator 2 view .LVU1192 + 3485 003c 13F0400F tst r3, #64 + 3486 0040 13D0 beq .L144 + 3487 .L145: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3488 .loc 1 1849 5 is_stmt 1 discriminator 1 view .LVU1193 + 3489 .LBB689: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3490 .loc 1 1849 5 discriminator 1 view .LVU1194 +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3491 .loc 1 1849 5 discriminator 1 view .LVU1195 +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3492 .loc 1 1849 5 discriminator 1 view .LVU1196 + 3493 0042 2268 ldr r2, [r4] + 3494 .LVL313: + 3495 .LBB690: + 3496 .LBI690: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3497 .loc 2 1151 31 discriminator 1 view .LVU1197 + 3498 .LBB691: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3499 .loc 2 1153 5 discriminator 1 view .LVU1198 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3500 .loc 2 1155 4 discriminator 1 view .LVU1199 + 3501 0044 02F10803 add r3, r2, #8 + 3502 .LVL314: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3503 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1200 + 3504 .syntax unified + 3505 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3506 0048 53E8003F ldrex r3, [r3] + 3507 @ 0 "" 2 + 3508 .LVL315: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3509 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1201 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3510 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1202 + 3511 .thumb + 3512 .syntax unified + 3513 .LBE691: + 3514 .LBE690: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3515 .loc 1 1849 5 discriminator 1 view .LVU1203 + 3516 004c 23F04003 bic r3, r3, #64 + 3517 .LVL316: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3518 .loc 1 1849 5 is_stmt 1 discriminator 1 view .LVU1204 + ARM GAS /tmp/cceWHrnJ.s page 174 + + + 3519 .LBB692: + 3520 .LBI692: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3521 .loc 2 1202 31 discriminator 1 view .LVU1205 + 3522 .LBB693: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3523 .loc 2 1204 4 discriminator 1 view .LVU1206 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3524 .loc 2 1206 4 discriminator 1 view .LVU1207 + 3525 0050 0832 adds r2, r2, #8 + 3526 .LVL317: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3527 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1208 + 3528 .syntax unified + 3529 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3530 0052 42E80031 strex r1, r3, [r2] + 3531 @ 0 "" 2 + 3532 .LVL318: + 3533 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1209 + 3534 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1210 + 3535 .thumb + 3536 .syntax unified + 3537 .LBE693: + 3538 .LBE692: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3539 .loc 1 1849 5 discriminator 1 view .LVU1211 + 3540 0056 0029 cmp r1, #0 + 3541 0058 F3D1 bne .L145 + 3542 .LBE689: +1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3543 .loc 1 1849 5 is_stmt 1 discriminator 2 view .LVU1212 +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3544 .loc 1 1852 5 discriminator 2 view .LVU1213 +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3545 .loc 1 1852 14 is_stmt 0 discriminator 2 view .LVU1214 + 3546 005a E36F ldr r3, [r4, #124] + 3547 .LVL319: +1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3548 .loc 1 1852 8 discriminator 2 view .LVU1215 + 3549 005c 2BB1 cbz r3, .L144 +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3550 .loc 1 1856 7 is_stmt 1 view .LVU1216 +1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3551 .loc 1 1856 40 is_stmt 0 view .LVU1217 + 3552 005e 0022 movs r2, #0 + 3553 0060 9A63 str r2, [r3, #56] +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3554 .loc 1 1858 7 is_stmt 1 view .LVU1218 +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3555 .loc 1 1858 11 is_stmt 0 view .LVU1219 + 3556 0062 E06F ldr r0, [r4, #124] + 3557 .LVL320: +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3558 .loc 1 1858 11 view .LVU1220 + 3559 0064 FFF7FEFF bl HAL_DMA_Abort + 3560 .LVL321: +1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 175 + + + 3561 .loc 1 1858 10 view .LVU1221 + 3562 0068 C8B9 cbnz r0, .L148 + 3563 .LVL322: + 3564 .L144: +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3565 .loc 1 1872 3 is_stmt 1 view .LVU1222 +1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3566 .loc 1 1872 22 is_stmt 0 view .LVU1223 + 3567 006a 0020 movs r0, #0 + 3568 006c A4F85E00 strh r0, [r4, #94] @ movhi +1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3569 .loc 1 1875 3 is_stmt 1 view .LVU1224 + 3570 0070 2368 ldr r3, [r4] + 3571 0072 0F22 movs r2, #15 + 3572 0074 1A62 str r2, [r3, #32] +1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3573 .loc 1 1878 3 view .LVU1225 + 3574 0076 2268 ldr r2, [r4] + 3575 0078 9369 ldr r3, [r2, #24] + 3576 007a 43F00803 orr r3, r3, #8 + 3577 007e 9361 str r3, [r2, #24] +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 3578 .loc 1 1881 3 view .LVU1226 +1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 3579 .loc 1 1881 18 is_stmt 0 view .LVU1227 + 3580 0080 2023 movs r3, #32 + 3581 0082 C4F88830 str r3, [r4, #136] +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3582 .loc 1 1882 3 is_stmt 1 view .LVU1228 +1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3583 .loc 1 1882 24 is_stmt 0 view .LVU1229 + 3584 0086 E066 str r0, [r4, #108] +1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3585 .loc 1 1884 3 is_stmt 1 view .LVU1230 + 3586 .L146: +1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3587 .loc 1 1885 1 is_stmt 0 view .LVU1231 + 3588 0088 10BD pop {r4, pc} + 3589 .LVL323: + 3590 .L143: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3591 .loc 1 1842 5 is_stmt 1 discriminator 1 view .LVU1232 + 3592 .LBB694: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3593 .loc 1 1842 5 discriminator 1 view .LVU1233 +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3594 .loc 1 1842 5 discriminator 1 view .LVU1234 +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3595 .loc 1 1842 5 discriminator 1 view .LVU1235 + 3596 008a 2268 ldr r2, [r4] + 3597 .LVL324: + 3598 .LBB695: + 3599 .LBI695: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3600 .loc 2 1151 31 discriminator 1 view .LVU1236 + 3601 .LBB696: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 176 + + + 3602 .loc 2 1153 5 discriminator 1 view .LVU1237 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3603 .loc 2 1155 4 discriminator 1 view .LVU1238 + 3604 .syntax unified + 3605 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3606 008c 52E8003F ldrex r3, [r2] + 3607 @ 0 "" 2 + 3608 .LVL325: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3609 .loc 2 1156 4 discriminator 1 view .LVU1239 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3610 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1240 + 3611 .thumb + 3612 .syntax unified + 3613 .LBE696: + 3614 .LBE695: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3615 .loc 1 1842 5 discriminator 1 view .LVU1241 + 3616 0090 23F01003 bic r3, r3, #16 + 3617 .LVL326: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3618 .loc 1 1842 5 is_stmt 1 discriminator 1 view .LVU1242 + 3619 .LBB697: + 3620 .LBI697: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3621 .loc 2 1202 31 discriminator 1 view .LVU1243 + 3622 .LBB698: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3623 .loc 2 1204 4 discriminator 1 view .LVU1244 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3624 .loc 2 1206 4 discriminator 1 view .LVU1245 + 3625 .syntax unified + 3626 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3627 0094 42E80031 strex r1, r3, [r2] + 3628 @ 0 "" 2 + 3629 .LVL327: + 3630 .loc 2 1207 4 discriminator 1 view .LVU1246 + 3631 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1247 + 3632 .thumb + 3633 .syntax unified + 3634 .LBE698: + 3635 .LBE697: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3636 .loc 1 1842 5 discriminator 1 view .LVU1248 + 3637 0098 0029 cmp r1, #0 + 3638 009a F6D1 bne .L143 + 3639 009c CCE7 b .L142 + 3640 .LVL328: + 3641 .L148: +1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3642 .loc 1 1842 5 discriminator 1 view .LVU1249 + 3643 .LBE694: +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3644 .loc 1 1860 9 is_stmt 1 view .LVU1250 +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3645 .loc 1 1860 13 is_stmt 0 view .LVU1251 + 3646 009e E06F ldr r0, [r4, #124] + ARM GAS /tmp/cceWHrnJ.s page 177 + + + 3647 00a0 FFF7FEFF bl HAL_DMA_GetError + 3648 .LVL329: +1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3649 .loc 1 1860 12 view .LVU1252 + 3650 00a4 2028 cmp r0, #32 + 3651 00a6 E0D1 bne .L144 +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3652 .loc 1 1863 11 is_stmt 1 view .LVU1253 +1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3653 .loc 1 1863 28 is_stmt 0 view .LVU1254 + 3654 00a8 1023 movs r3, #16 + 3655 00aa C4F88C30 str r3, [r4, #140] +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3656 .loc 1 1865 11 is_stmt 1 view .LVU1255 +1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3657 .loc 1 1865 18 is_stmt 0 view .LVU1256 + 3658 00ae 0320 movs r0, #3 + 3659 00b0 EAE7 b .L146 + 3660 .cfi_endproc + 3661 .LFE347: + 3663 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits + 3664 .align 1 + 3665 .weak HAL_UART_TxCpltCallback + 3666 .syntax unified + 3667 .thumb + 3668 .thumb_func + 3670 HAL_UART_TxCpltCallback: + 3671 .LVL330: + 3672 .LFB352: +2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 3673 .loc 1 2559 1 is_stmt 1 view -0 + 3674 .cfi_startproc + 3675 @ args = 0, pretend = 0, frame = 0 + 3676 @ frame_needed = 0, uses_anonymous_args = 0 + 3677 @ link register save eliminated. +2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3678 .loc 1 2561 3 view .LVU1258 +2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3679 .loc 1 2566 1 is_stmt 0 view .LVU1259 + 3680 0000 7047 bx lr + 3681 .cfi_endproc + 3682 .LFE352: + 3684 .section .text.UART_DMATransmitCplt,"ax",%progbits + 3685 .align 1 + 3686 .syntax unified + 3687 .thumb + 3688 .thumb_func + 3690 UART_DMATransmitCplt: + 3691 .LVL331: + 3692 .LFB380: +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 3693 .loc 1 3609 1 is_stmt 1 view -0 + 3694 .cfi_startproc + 3695 @ args = 0, pretend = 0, frame = 0 + 3696 @ frame_needed = 0, uses_anonymous_args = 0 +3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 3697 .loc 1 3609 1 is_stmt 0 view .LVU1261 + ARM GAS /tmp/cceWHrnJ.s page 178 + + + 3698 0000 08B5 push {r3, lr} + 3699 .LCFI12: + 3700 .cfi_def_cfa_offset 8 + 3701 .cfi_offset 3, -8 + 3702 .cfi_offset 14, -4 + 3703 0002 0346 mov r3, r0 +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3704 .loc 1 3610 3 is_stmt 1 view .LVU1262 +3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3705 .loc 1 3610 23 is_stmt 0 view .LVU1263 + 3706 0004 806A ldr r0, [r0, #40] + 3707 .LVL332: +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3708 .loc 1 3613 3 is_stmt 1 view .LVU1264 +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3709 .loc 1 3613 7 is_stmt 0 view .LVU1265 + 3710 0006 1B68 ldr r3, [r3] + 3711 .LVL333: +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3712 .loc 1 3613 7 view .LVU1266 + 3713 0008 1B68 ldr r3, [r3] +3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3714 .loc 1 3613 6 view .LVU1267 + 3715 000a 13F0200F tst r3, #32 + 3716 000e 18D1 bne .L151 +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3717 .loc 1 3615 5 is_stmt 1 view .LVU1268 +3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3718 .loc 1 3615 24 is_stmt 0 view .LVU1269 + 3719 0010 0023 movs r3, #0 + 3720 0012 A0F85630 strh r3, [r0, #86] @ movhi + 3721 .L152: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3722 .loc 1 3619 5 is_stmt 1 discriminator 1 view .LVU1270 + 3723 .LBB699: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3724 .loc 1 3619 5 discriminator 1 view .LVU1271 +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3725 .loc 1 3619 5 discriminator 1 view .LVU1272 +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3726 .loc 1 3619 5 discriminator 1 view .LVU1273 + 3727 0016 0268 ldr r2, [r0] + 3728 .LVL334: + 3729 .LBB700: + 3730 .LBI700: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3731 .loc 2 1151 31 discriminator 1 view .LVU1274 + 3732 .LBB701: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3733 .loc 2 1153 5 discriminator 1 view .LVU1275 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3734 .loc 2 1155 4 discriminator 1 view .LVU1276 + 3735 0018 02F10803 add r3, r2, #8 + 3736 .LVL335: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3737 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1277 + 3738 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 179 + + + 3739 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3740 001c 53E8003F ldrex r3, [r3] + 3741 @ 0 "" 2 + 3742 .LVL336: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3743 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1278 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3744 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1279 + 3745 .thumb + 3746 .syntax unified + 3747 .LBE701: + 3748 .LBE700: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3749 .loc 1 3619 5 discriminator 1 view .LVU1280 + 3750 0020 23F08003 bic r3, r3, #128 + 3751 .LVL337: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3752 .loc 1 3619 5 is_stmt 1 discriminator 1 view .LVU1281 + 3753 .LBB702: + 3754 .LBI702: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3755 .loc 2 1202 31 discriminator 1 view .LVU1282 + 3756 .LBB703: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3757 .loc 2 1204 4 discriminator 1 view .LVU1283 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3758 .loc 2 1206 4 discriminator 1 view .LVU1284 + 3759 0024 0832 adds r2, r2, #8 + 3760 .LVL338: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3761 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1285 + 3762 .syntax unified + 3763 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3764 0026 42E80031 strex r1, r3, [r2] + 3765 @ 0 "" 2 + 3766 .LVL339: + 3767 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1286 + 3768 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1287 + 3769 .thumb + 3770 .syntax unified + 3771 .LBE703: + 3772 .LBE702: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3773 .loc 1 3619 5 discriminator 1 view .LVU1288 + 3774 002a 0029 cmp r1, #0 + 3775 002c F3D1 bne .L152 + 3776 .LVL340: + 3777 .L153: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3778 .loc 1 3619 5 discriminator 1 view .LVU1289 + 3779 .LBE699: +3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3780 .loc 1 3619 5 is_stmt 1 discriminator 1 view .LVU1290 +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3781 .loc 1 3622 5 discriminator 1 view .LVU1291 + 3782 .LBB704: +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 180 + + + 3783 .loc 1 3622 5 discriminator 1 view .LVU1292 +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3784 .loc 1 3622 5 discriminator 1 view .LVU1293 +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3785 .loc 1 3622 5 discriminator 1 view .LVU1294 + 3786 002e 0268 ldr r2, [r0] + 3787 .LVL341: + 3788 .LBB705: + 3789 .LBI705: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3790 .loc 2 1151 31 discriminator 1 view .LVU1295 + 3791 .LBB706: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3792 .loc 2 1153 5 discriminator 1 view .LVU1296 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3793 .loc 2 1155 4 discriminator 1 view .LVU1297 + 3794 .syntax unified + 3795 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3796 0030 52E8003F ldrex r3, [r2] + 3797 @ 0 "" 2 + 3798 .LVL342: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3799 .loc 2 1156 4 discriminator 1 view .LVU1298 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3800 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1299 + 3801 .thumb + 3802 .syntax unified + 3803 .LBE706: + 3804 .LBE705: +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3805 .loc 1 3622 5 discriminator 1 view .LVU1300 + 3806 0034 43F04003 orr r3, r3, #64 + 3807 .LVL343: +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3808 .loc 1 3622 5 is_stmt 1 discriminator 1 view .LVU1301 + 3809 .LBB707: + 3810 .LBI707: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3811 .loc 2 1202 31 discriminator 1 view .LVU1302 + 3812 .LBB708: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3813 .loc 2 1204 4 discriminator 1 view .LVU1303 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3814 .loc 2 1206 4 discriminator 1 view .LVU1304 + 3815 .syntax unified + 3816 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3817 0038 42E80031 strex r1, r3, [r2] + 3818 @ 0 "" 2 + 3819 .LVL344: + 3820 .loc 2 1207 4 discriminator 1 view .LVU1305 + 3821 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1306 + 3822 .thumb + 3823 .syntax unified + 3824 .LBE708: + 3825 .LBE707: +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3826 .loc 1 3622 5 discriminator 1 view .LVU1307 + ARM GAS /tmp/cceWHrnJ.s page 181 + + + 3827 003c 0029 cmp r1, #0 + 3828 003e F6D1 bne .L153 + 3829 .LVL345: + 3830 .L150: +3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3831 .loc 1 3622 5 discriminator 1 view .LVU1308 + 3832 .LBE704: +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3833 .loc 1 3635 1 view .LVU1309 + 3834 0040 08BD pop {r3, pc} + 3835 .LVL346: + 3836 .L151: +3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 3837 .loc 1 3632 5 is_stmt 1 view .LVU1310 + 3838 0042 FFF7FEFF bl HAL_UART_TxCpltCallback + 3839 .LVL347: +3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3840 .loc 1 3635 1 is_stmt 0 view .LVU1311 + 3841 0046 FBE7 b .L150 + 3842 .cfi_endproc + 3843 .LFE380: + 3845 .section .text.UART_EndTransmit_IT,"ax",%progbits + 3846 .align 1 + 3847 .syntax unified + 3848 .thumb + 3849 .thumb_func + 3851 UART_EndTransmit_IT: + 3852 .LFB394: +4122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Wrap up transmission in non-blocking mode. +4125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart pointer to a UART_HandleTypeDef structure that contains +4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. +4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) +4130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 3853 .loc 1 4130 1 is_stmt 1 view -0 + 3854 .cfi_startproc + 3855 @ args = 0, pretend = 0, frame = 0 + 3856 @ frame_needed = 0, uses_anonymous_args = 0 + 3857 .LVL348: + 3858 .loc 1 4130 1 is_stmt 0 view .LVU1313 + 3859 0000 08B5 push {r3, lr} + 3860 .LCFI13: + 3861 .cfi_def_cfa_offset 8 + 3862 .cfi_offset 3, -8 + 3863 .cfi_offset 14, -4 + 3864 .L157: +4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ +4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); + 3865 .loc 1 4132 3 is_stmt 1 discriminator 1 view .LVU1314 + 3866 .LBB709: + 3867 .loc 1 4132 3 discriminator 1 view .LVU1315 + 3868 .loc 1 4132 3 discriminator 1 view .LVU1316 + 3869 .loc 1 4132 3 discriminator 1 view .LVU1317 + 3870 0002 0268 ldr r2, [r0] + ARM GAS /tmp/cceWHrnJ.s page 182 + + + 3871 .LVL349: + 3872 .LBB710: + 3873 .LBI710: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3874 .loc 2 1151 31 discriminator 1 view .LVU1318 + 3875 .LBB711: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3876 .loc 2 1153 5 discriminator 1 view .LVU1319 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3877 .loc 2 1155 4 discriminator 1 view .LVU1320 + 3878 .syntax unified + 3879 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3880 0004 52E8003F ldrex r3, [r2] + 3881 @ 0 "" 2 + 3882 .LVL350: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3883 .loc 2 1156 4 discriminator 1 view .LVU1321 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 3884 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1322 + 3885 .thumb + 3886 .syntax unified + 3887 .LBE711: + 3888 .LBE710: + 3889 .loc 1 4132 3 discriminator 1 view .LVU1323 + 3890 0008 23F04003 bic r3, r3, #64 + 3891 .LVL351: + 3892 .loc 1 4132 3 is_stmt 1 discriminator 1 view .LVU1324 + 3893 .LBB712: + 3894 .LBI712: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 3895 .loc 2 1202 31 discriminator 1 view .LVU1325 + 3896 .LBB713: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 3897 .loc 2 1204 4 discriminator 1 view .LVU1326 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 3898 .loc 2 1206 4 discriminator 1 view .LVU1327 + 3899 .syntax unified + 3900 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 3901 000c 42E80031 strex r1, r3, [r2] + 3902 @ 0 "" 2 + 3903 .LVL352: + 3904 .loc 2 1207 4 discriminator 1 view .LVU1328 + 3905 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1329 + 3906 .thumb + 3907 .syntax unified + 3908 .LBE713: + 3909 .LBE712: + 3910 .loc 1 4132 3 discriminator 1 view .LVU1330 + 3911 0010 0029 cmp r1, #0 + 3912 0012 F6D1 bne .L157 + 3913 .LBE709: + 3914 .loc 1 4132 3 is_stmt 1 discriminator 2 view .LVU1331 +4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */ +4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; + 3915 .loc 1 4135 3 discriminator 2 view .LVU1332 + 3916 .loc 1 4135 17 is_stmt 0 discriminator 2 view .LVU1333 + ARM GAS /tmp/cceWHrnJ.s page 183 + + + 3917 0014 2023 movs r3, #32 + 3918 .LVL353: + 3919 .loc 1 4135 17 discriminator 2 view .LVU1334 + 3920 0016 C0F88430 str r3, [r0, #132] +4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Cleat TxISR function pointer */ +4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 3921 .loc 1 4138 3 is_stmt 1 discriminator 2 view .LVU1335 + 3922 .loc 1 4138 16 is_stmt 0 discriminator 2 view .LVU1336 + 3923 001a 0023 movs r3, #0 + 3924 001c 4367 str r3, [r0, #116] +4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Tx complete callback*/ +4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback(huart); +4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ +4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); + 3925 .loc 1 4145 3 is_stmt 1 discriminator 2 view .LVU1337 + 3926 001e FFF7FEFF bl HAL_UART_TxCpltCallback + 3927 .LVL354: +4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +4147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 3928 .loc 1 4147 1 is_stmt 0 discriminator 2 view .LVU1338 + 3929 0022 08BD pop {r3, pc} + 3930 .cfi_endproc + 3931 .LFE394: + 3933 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits + 3934 .align 1 + 3935 .weak HAL_UART_TxHalfCpltCallback + 3936 .syntax unified + 3937 .thumb + 3938 .thumb_func + 3940 HAL_UART_TxHalfCpltCallback: + 3941 .LVL355: + 3942 .LFB353: +2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 3943 .loc 1 2574 1 is_stmt 1 view -0 + 3944 .cfi_startproc + 3945 @ args = 0, pretend = 0, frame = 0 + 3946 @ frame_needed = 0, uses_anonymous_args = 0 + 3947 @ link register save eliminated. +2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3948 .loc 1 2576 3 view .LVU1340 +2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3949 .loc 1 2581 1 is_stmt 0 view .LVU1341 + 3950 0000 7047 bx lr + 3951 .cfi_endproc + 3952 .LFE353: + 3954 .section .text.UART_DMATxHalfCplt,"ax",%progbits + 3955 .align 1 + 3956 .syntax unified + 3957 .thumb + 3958 .thumb_func + 3960 UART_DMATxHalfCplt: + 3961 .LVL356: + 3962 .LFB381: + ARM GAS /tmp/cceWHrnJ.s page 184 + + +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 3963 .loc 1 3643 1 is_stmt 1 view -0 + 3964 .cfi_startproc + 3965 @ args = 0, pretend = 0, frame = 0 + 3966 @ frame_needed = 0, uses_anonymous_args = 0 +3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 3967 .loc 1 3643 1 is_stmt 0 view .LVU1343 + 3968 0000 08B5 push {r3, lr} + 3969 .LCFI14: + 3970 .cfi_def_cfa_offset 8 + 3971 .cfi_offset 3, -8 + 3972 .cfi_offset 14, -4 +3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3973 .loc 1 3644 3 is_stmt 1 view .LVU1344 + 3974 .LVL357: +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 3975 .loc 1 3651 3 view .LVU1345 + 3976 0002 806A ldr r0, [r0, #40] + 3977 .LVL358: +3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 3978 .loc 1 3651 3 is_stmt 0 view .LVU1346 + 3979 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback + 3980 .LVL359: +3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 3981 .loc 1 3653 1 view .LVU1347 + 3982 0008 08BD pop {r3, pc} + 3983 .cfi_endproc + 3984 .LFE381: + 3986 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits + 3987 .align 1 + 3988 .weak HAL_UART_RxCpltCallback + 3989 .syntax unified + 3990 .thumb + 3991 .thumb_func + 3993 HAL_UART_RxCpltCallback: + 3994 .LVL360: + 3995 .LFB354: +2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 3996 .loc 1 2589 1 is_stmt 1 view -0 + 3997 .cfi_startproc + 3998 @ args = 0, pretend = 0, frame = 0 + 3999 @ frame_needed = 0, uses_anonymous_args = 0 + 4000 @ link register save eliminated. +2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4001 .loc 1 2591 3 view .LVU1349 +2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4002 .loc 1 2596 1 is_stmt 0 view .LVU1350 + 4003 0000 7047 bx lr + 4004 .cfi_endproc + 4005 .LFE354: + 4007 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits + 4008 .align 1 + 4009 .weak HAL_UART_RxHalfCpltCallback + 4010 .syntax unified + 4011 .thumb + 4012 .thumb_func + 4014 HAL_UART_RxHalfCpltCallback: + ARM GAS /tmp/cceWHrnJ.s page 185 + + + 4015 .LVL361: + 4016 .LFB355: +2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 4017 .loc 1 2604 1 is_stmt 1 view -0 + 4018 .cfi_startproc + 4019 @ args = 0, pretend = 0, frame = 0 + 4020 @ frame_needed = 0, uses_anonymous_args = 0 + 4021 @ link register save eliminated. +2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4022 .loc 1 2606 3 view .LVU1352 +2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4023 .loc 1 2611 1 is_stmt 0 view .LVU1353 + 4024 0000 7047 bx lr + 4025 .cfi_endproc + 4026 .LFE355: + 4028 .section .text.HAL_UART_ErrorCallback,"ax",%progbits + 4029 .align 1 + 4030 .weak HAL_UART_ErrorCallback + 4031 .syntax unified + 4032 .thumb + 4033 .thumb_func + 4035 HAL_UART_ErrorCallback: + 4036 .LVL362: + 4037 .LFB356: +2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 4038 .loc 1 2619 1 is_stmt 1 view -0 + 4039 .cfi_startproc + 4040 @ args = 0, pretend = 0, frame = 0 + 4041 @ frame_needed = 0, uses_anonymous_args = 0 + 4042 @ link register save eliminated. +2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4043 .loc 1 2621 3 view .LVU1355 +2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4044 .loc 1 2626 1 is_stmt 0 view .LVU1356 + 4045 0000 7047 bx lr + 4046 .cfi_endproc + 4047 .LFE356: + 4049 .section .text.UART_DMAError,"ax",%progbits + 4050 .align 1 + 4051 .syntax unified + 4052 .thumb + 4053 .thumb_func + 4055 UART_DMAError: + 4056 .LVL363: + 4057 .LFB384: +3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4058 .loc 1 3752 1 is_stmt 1 view -0 + 4059 .cfi_startproc + 4060 @ args = 0, pretend = 0, frame = 0 + 4061 @ frame_needed = 0, uses_anonymous_args = 0 +3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4062 .loc 1 3752 1 is_stmt 0 view .LVU1358 + 4063 0000 38B5 push {r3, r4, r5, lr} + 4064 .LCFI15: + 4065 .cfi_def_cfa_offset 16 + 4066 .cfi_offset 3, -16 + 4067 .cfi_offset 4, -12 + ARM GAS /tmp/cceWHrnJ.s page 186 + + + 4068 .cfi_offset 5, -8 + 4069 .cfi_offset 14, -4 +3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4070 .loc 1 3753 3 is_stmt 1 view .LVU1359 +3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4071 .loc 1 3753 23 is_stmt 0 view .LVU1360 + 4072 0002 846A ldr r4, [r0, #40] + 4073 .LVL364: +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; + 4074 .loc 1 3755 3 is_stmt 1 view .LVU1361 +3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; + 4075 .loc 1 3755 31 is_stmt 0 view .LVU1362 + 4076 0004 D4F88420 ldr r2, [r4, #132] + 4077 .LVL365: +3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4078 .loc 1 3756 3 is_stmt 1 view .LVU1363 +3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4079 .loc 1 3756 31 is_stmt 0 view .LVU1364 + 4080 0008 D4F88850 ldr r5, [r4, #136] + 4081 .LVL366: +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 4082 .loc 1 3759 3 is_stmt 1 view .LVU1365 +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 4083 .loc 1 3759 8 is_stmt 0 view .LVU1366 + 4084 000c 2368 ldr r3, [r4] + 4085 000e 9B68 ldr r3, [r3, #8] +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 4086 .loc 1 3759 6 view .LVU1367 + 4087 0010 13F0800F tst r3, #128 + 4088 0014 01D0 beq .L166 +3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) + 4089 .loc 1 3759 62 discriminator 1 view .LVU1368 + 4090 0016 212A cmp r2, #33 + 4091 0018 10D0 beq .L169 + 4092 .LVL367: + 4093 .L166: +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 4094 .loc 1 3767 3 is_stmt 1 view .LVU1369 +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 4095 .loc 1 3767 8 is_stmt 0 view .LVU1370 + 4096 001a 2368 ldr r3, [r4] + 4097 001c 9B68 ldr r3, [r3, #8] +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 4098 .loc 1 3767 6 view .LVU1371 + 4099 001e 13F0400F tst r3, #64 + 4100 0022 01D0 beq .L167 +3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) + 4101 .loc 1 3767 62 discriminator 1 view .LVU1372 + 4102 0024 222D cmp r5, #34 + 4103 0026 10D0 beq .L170 + 4104 .L167: +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4105 .loc 1 3774 3 is_stmt 1 view .LVU1373 +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4106 .loc 1 3774 8 is_stmt 0 view .LVU1374 + 4107 0028 D4F88C30 ldr r3, [r4, #140] +3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 187 + + + 4108 .loc 1 3774 20 view .LVU1375 + 4109 002c 43F01003 orr r3, r3, #16 + 4110 0030 C4F88C30 str r3, [r4, #140] +3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 4111 .loc 1 3781 3 is_stmt 1 view .LVU1376 + 4112 0034 2046 mov r0, r4 + 4113 0036 FFF7FEFF bl HAL_UART_ErrorCallback + 4114 .LVL368: +3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4115 .loc 1 3783 1 is_stmt 0 view .LVU1377 + 4116 003a 38BD pop {r3, r4, r5, pc} + 4117 .LVL369: + 4118 .L169: +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); + 4119 .loc 1 3762 5 is_stmt 1 view .LVU1378 +3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); + 4120 .loc 1 3762 24 is_stmt 0 view .LVU1379 + 4121 003c 0023 movs r3, #0 + 4122 003e A4F85630 strh r3, [r4, #86] @ movhi +3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4123 .loc 1 3763 5 is_stmt 1 view .LVU1380 + 4124 0042 2046 mov r0, r4 + 4125 .LVL370: +3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4126 .loc 1 3763 5 is_stmt 0 view .LVU1381 + 4127 0044 FFF7FEFF bl UART_EndTxTransfer + 4128 .LVL371: +3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4129 .loc 1 3763 5 view .LVU1382 + 4130 0048 E7E7 b .L166 + 4131 .L170: +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); + 4132 .loc 1 3770 5 is_stmt 1 view .LVU1383 +3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); + 4133 .loc 1 3770 24 is_stmt 0 view .LVU1384 + 4134 004a 0023 movs r3, #0 + 4135 004c A4F85E30 strh r3, [r4, #94] @ movhi +3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4136 .loc 1 3771 5 is_stmt 1 view .LVU1385 + 4137 0050 2046 mov r0, r4 + 4138 0052 FFF7FEFF bl UART_EndRxTransfer + 4139 .LVL372: + 4140 0056 E7E7 b .L167 + 4141 .cfi_endproc + 4142 .LFE384: + 4144 .section .text.UART_DMAAbortOnError,"ax",%progbits + 4145 .align 1 + 4146 .syntax unified + 4147 .thumb + 4148 .thumb_func + 4150 UART_DMAAbortOnError: + 4151 .LVL373: + 4152 .LFB385: +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4153 .loc 1 3792 1 view -0 + 4154 .cfi_startproc + 4155 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/cceWHrnJ.s page 188 + + + 4156 @ frame_needed = 0, uses_anonymous_args = 0 +3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4157 .loc 1 3792 1 is_stmt 0 view .LVU1387 + 4158 0000 08B5 push {r3, lr} + 4159 .LCFI16: + 4160 .cfi_def_cfa_offset 8 + 4161 .cfi_offset 3, -8 + 4162 .cfi_offset 14, -4 +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4163 .loc 1 3793 3 is_stmt 1 view .LVU1388 +3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4164 .loc 1 3793 23 is_stmt 0 view .LVU1389 + 4165 0002 806A ldr r0, [r0, #40] + 4166 .LVL374: +3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; + 4167 .loc 1 3794 3 is_stmt 1 view .LVU1390 +3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; + 4168 .loc 1 3794 22 is_stmt 0 view .LVU1391 + 4169 0004 0023 movs r3, #0 + 4170 0006 A0F85E30 strh r3, [r0, #94] @ movhi +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4171 .loc 1 3795 3 is_stmt 1 view .LVU1392 +3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4172 .loc 1 3795 22 is_stmt 0 view .LVU1393 + 4173 000a A0F85630 strh r3, [r0, #86] @ movhi +3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 4174 .loc 1 3802 3 is_stmt 1 view .LVU1394 + 4175 000e FFF7FEFF bl HAL_UART_ErrorCallback + 4176 .LVL375: +3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4177 .loc 1 3804 1 is_stmt 0 view .LVU1395 + 4178 0012 08BD pop {r3, pc} + 4179 .cfi_endproc + 4180 .LFE385: + 4182 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits + 4183 .align 1 + 4184 .weak HAL_UART_AbortCpltCallback + 4185 .syntax unified + 4186 .thumb + 4187 .thumb_func + 4189 HAL_UART_AbortCpltCallback: + 4190 .LVL376: + 4191 .LFB357: +2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 4192 .loc 1 2634 1 is_stmt 1 view -0 + 4193 .cfi_startproc + 4194 @ args = 0, pretend = 0, frame = 0 + 4195 @ frame_needed = 0, uses_anonymous_args = 0 + 4196 @ link register save eliminated. +2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4197 .loc 1 2636 3 view .LVU1397 +2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4198 .loc 1 2641 1 is_stmt 0 view .LVU1398 + 4199 0000 7047 bx lr + 4200 .cfi_endproc + 4201 .LFE357: + 4203 .section .text.HAL_UART_Abort_IT,"ax",%progbits + ARM GAS /tmp/cceWHrnJ.s page 189 + + + 4204 .align 1 + 4205 .global HAL_UART_Abort_IT + 4206 .syntax unified + 4207 .thumb + 4208 .thumb_func + 4210 HAL_UART_Abort_IT: + 4211 .LVL377: + 4212 .LFB348: +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; + 4213 .loc 1 1902 1 is_stmt 1 view -0 + 4214 .cfi_startproc + 4215 @ args = 0, pretend = 0, frame = 0 + 4216 @ frame_needed = 0, uses_anonymous_args = 0 +1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; + 4217 .loc 1 1902 1 is_stmt 0 view .LVU1400 + 4218 0000 38B5 push {r3, r4, r5, lr} + 4219 .LCFI17: + 4220 .cfi_def_cfa_offset 16 + 4221 .cfi_offset 3, -16 + 4222 .cfi_offset 4, -12 + 4223 .cfi_offset 5, -8 + 4224 .cfi_offset 14, -4 + 4225 0002 0446 mov r4, r0 +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4226 .loc 1 1903 3 is_stmt 1 view .LVU1401 + 4227 .LVL378: + 4228 .L175: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4229 .loc 1 1906 3 discriminator 1 view .LVU1402 + 4230 .LBB714: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4231 .loc 1 1906 3 discriminator 1 view .LVU1403 +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4232 .loc 1 1906 3 discriminator 1 view .LVU1404 +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4233 .loc 1 1906 3 discriminator 1 view .LVU1405 + 4234 0004 2268 ldr r2, [r4] + 4235 .LVL379: + 4236 .LBB715: + 4237 .LBI715: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4238 .loc 2 1151 31 discriminator 1 view .LVU1406 + 4239 .LBB716: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4240 .loc 2 1153 5 discriminator 1 view .LVU1407 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4241 .loc 2 1155 4 discriminator 1 view .LVU1408 + 4242 .syntax unified + 4243 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4244 0006 52E8003F ldrex r3, [r2] + 4245 @ 0 "" 2 + 4246 .LVL380: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4247 .loc 2 1156 4 discriminator 1 view .LVU1409 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4248 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1410 + 4249 .thumb + ARM GAS /tmp/cceWHrnJ.s page 190 + + + 4250 .syntax unified + 4251 .LBE716: + 4252 .LBE715: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4253 .loc 1 1906 3 discriminator 1 view .LVU1411 + 4254 000a 23F4F073 bic r3, r3, #480 + 4255 .LVL381: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4256 .loc 1 1906 3 is_stmt 1 discriminator 1 view .LVU1412 + 4257 .LBB717: + 4258 .LBI717: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4259 .loc 2 1202 31 discriminator 1 view .LVU1413 + 4260 .LBB718: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4261 .loc 2 1204 4 discriminator 1 view .LVU1414 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4262 .loc 2 1206 4 discriminator 1 view .LVU1415 + 4263 .syntax unified + 4264 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4265 000e 42E80031 strex r1, r3, [r2] + 4266 @ 0 "" 2 + 4267 .LVL382: + 4268 .loc 2 1207 4 discriminator 1 view .LVU1416 + 4269 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1417 + 4270 .thumb + 4271 .syntax unified + 4272 .LBE718: + 4273 .LBE717: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4274 .loc 1 1906 3 discriminator 1 view .LVU1418 + 4275 0012 0029 cmp r1, #0 + 4276 0014 F6D1 bne .L175 + 4277 .LVL383: + 4278 .L176: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4279 .loc 1 1906 3 discriminator 1 view .LVU1419 + 4280 .LBE714: +1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 4281 .loc 1 1906 3 is_stmt 1 discriminator 1 view .LVU1420 +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4282 .loc 1 1908 3 discriminator 1 view .LVU1421 + 4283 .LBB719: +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4284 .loc 1 1908 3 discriminator 1 view .LVU1422 +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4285 .loc 1 1908 3 discriminator 1 view .LVU1423 +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4286 .loc 1 1908 3 discriminator 1 view .LVU1424 + 4287 0016 2268 ldr r2, [r4] + 4288 .LVL384: + 4289 .LBB720: + 4290 .LBI720: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4291 .loc 2 1151 31 discriminator 1 view .LVU1425 + 4292 .LBB721: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 191 + + + 4293 .loc 2 1153 5 discriminator 1 view .LVU1426 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4294 .loc 2 1155 4 discriminator 1 view .LVU1427 + 4295 0018 02F10803 add r3, r2, #8 + 4296 .LVL385: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4297 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1428 + 4298 .syntax unified + 4299 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4300 001c 53E8003F ldrex r3, [r3] + 4301 @ 0 "" 2 + 4302 .LVL386: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4303 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1429 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4304 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1430 + 4305 .thumb + 4306 .syntax unified + 4307 .LBE721: + 4308 .LBE720: +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4309 .loc 1 1908 3 discriminator 1 view .LVU1431 + 4310 0020 23F08453 bic r3, r3, #276824064 + 4311 0024 23F00103 bic r3, r3, #1 + 4312 .LVL387: +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4313 .loc 1 1908 3 is_stmt 1 discriminator 1 view .LVU1432 + 4314 .LBB722: + 4315 .LBI722: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4316 .loc 2 1202 31 discriminator 1 view .LVU1433 + 4317 .LBB723: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4318 .loc 2 1204 4 discriminator 1 view .LVU1434 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4319 .loc 2 1206 4 discriminator 1 view .LVU1435 + 4320 0028 0832 adds r2, r2, #8 + 4321 .LVL388: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4322 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1436 + 4323 .syntax unified + 4324 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4325 002a 42E80031 strex r1, r3, [r2] + 4326 @ 0 "" 2 + 4327 .LVL389: + 4328 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1437 + 4329 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1438 + 4330 .thumb + 4331 .syntax unified + 4332 .LBE723: + 4333 .LBE722: +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4334 .loc 1 1908 3 discriminator 1 view .LVU1439 + 4335 002e 0029 cmp r1, #0 + 4336 0030 F1D1 bne .L176 + 4337 .LBE719: +1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 192 + + + 4338 .loc 1 1908 3 is_stmt 1 discriminator 2 view .LVU1440 +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4339 .loc 1 1911 3 discriminator 2 view .LVU1441 +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4340 .loc 1 1911 12 is_stmt 0 discriminator 2 view .LVU1442 + 4341 0032 E36E ldr r3, [r4, #108] + 4342 .LVL390: +1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4343 .loc 1 1911 6 discriminator 2 view .LVU1443 + 4344 0034 012B cmp r3, #1 + 4345 0036 2ED0 beq .L178 + 4346 .L177: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4347 .loc 1 1913 5 is_stmt 1 discriminator 2 view .LVU1444 +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4348 .loc 1 1919 3 discriminator 2 view .LVU1445 +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4349 .loc 1 1919 12 is_stmt 0 discriminator 2 view .LVU1446 + 4350 0038 A36F ldr r3, [r4, #120] +1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4351 .loc 1 1919 6 discriminator 2 view .LVU1447 + 4352 003a 33B1 cbz r3, .L179 +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4353 .loc 1 1923 5 is_stmt 1 view .LVU1448 +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4354 .loc 1 1923 9 is_stmt 0 view .LVU1449 + 4355 003c 2268 ldr r2, [r4] + 4356 003e 9268 ldr r2, [r2, #8] +1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4357 .loc 1 1923 8 view .LVU1450 + 4358 0040 12F0800F tst r2, #128 + 4359 0044 31D0 beq .L180 +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4360 .loc 1 1925 7 is_stmt 1 view .LVU1451 +1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4361 .loc 1 1925 40 is_stmt 0 view .LVU1452 + 4362 0046 3F4A ldr r2, .L194 + 4363 0048 9A63 str r2, [r3, #56] + 4364 .L179: +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4365 .loc 1 1933 3 is_stmt 1 view .LVU1453 +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4366 .loc 1 1933 12 is_stmt 0 view .LVU1454 + 4367 004a E36F ldr r3, [r4, #124] +1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4368 .loc 1 1933 6 view .LVU1455 + 4369 004c 33B1 cbz r3, .L181 +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4370 .loc 1 1937 5 is_stmt 1 view .LVU1456 +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4371 .loc 1 1937 9 is_stmt 0 view .LVU1457 + 4372 004e 2268 ldr r2, [r4] + 4373 0050 9268 ldr r2, [r2, #8] +1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4374 .loc 1 1937 8 view .LVU1458 + 4375 0052 12F0400F tst r2, #64 + 4376 0056 2BD0 beq .L182 + ARM GAS /tmp/cceWHrnJ.s page 193 + + +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4377 .loc 1 1939 7 is_stmt 1 view .LVU1459 +1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4378 .loc 1 1939 40 is_stmt 0 view .LVU1460 + 4379 0058 3B4A ldr r2, .L194+4 + 4380 005a 9A63 str r2, [r3, #56] + 4381 .L181: +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4382 .loc 1 1948 3 is_stmt 1 view .LVU1461 +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4383 .loc 1 1948 7 is_stmt 0 view .LVU1462 + 4384 005c 2368 ldr r3, [r4] + 4385 005e 9B68 ldr r3, [r3, #8] +1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4386 .loc 1 1948 6 view .LVU1463 + 4387 0060 13F0800F tst r3, #128 + 4388 0064 27D0 beq .L190 + 4389 .L184: +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4390 .loc 1 1951 5 is_stmt 1 discriminator 1 view .LVU1464 + 4391 .LBB724: +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4392 .loc 1 1951 5 discriminator 1 view .LVU1465 +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4393 .loc 1 1951 5 discriminator 1 view .LVU1466 +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4394 .loc 1 1951 5 discriminator 1 view .LVU1467 + 4395 0066 2168 ldr r1, [r4] + 4396 .LVL391: + 4397 .LBB725: + 4398 .LBI725: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4399 .loc 2 1151 31 discriminator 1 view .LVU1468 + 4400 .LBB726: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4401 .loc 2 1153 5 discriminator 1 view .LVU1469 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4402 .loc 2 1155 4 discriminator 1 view .LVU1470 + 4403 0068 01F10803 add r3, r1, #8 + 4404 .LVL392: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4405 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1471 + 4406 .syntax unified + 4407 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4408 006c 53E8003F ldrex r3, [r3] + 4409 @ 0 "" 2 + 4410 .LVL393: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4411 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1472 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4412 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1473 + 4413 .thumb + 4414 .syntax unified + 4415 .LBE726: + 4416 .LBE725: +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4417 .loc 1 1951 5 discriminator 1 view .LVU1474 + ARM GAS /tmp/cceWHrnJ.s page 194 + + + 4418 0070 23F08003 bic r3, r3, #128 + 4419 .LVL394: +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4420 .loc 1 1951 5 is_stmt 1 discriminator 1 view .LVU1475 + 4421 .LBB727: + 4422 .LBI727: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4423 .loc 2 1202 31 discriminator 1 view .LVU1476 + 4424 .LBB728: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4425 .loc 2 1204 4 discriminator 1 view .LVU1477 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4426 .loc 2 1206 4 discriminator 1 view .LVU1478 + 4427 0074 0831 adds r1, r1, #8 + 4428 .LVL395: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4429 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1479 + 4430 .syntax unified + 4431 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4432 0076 41E80032 strex r2, r3, [r1] + 4433 @ 0 "" 2 + 4434 .thumb + 4435 .syntax unified + 4436 007a 1546 mov r5, r2 + 4437 .LVL396: + 4438 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1480 + 4439 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1481 + 4440 .LBE728: + 4441 .LBE727: +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4442 .loc 1 1951 5 discriminator 1 view .LVU1482 + 4443 007c 002A cmp r2, #0 + 4444 007e F2D1 bne .L184 + 4445 .LBE724: +1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4446 .loc 1 1951 5 is_stmt 1 discriminator 2 view .LVU1483 +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4447 .loc 1 1954 5 discriminator 2 view .LVU1484 +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4448 .loc 1 1954 14 is_stmt 0 discriminator 2 view .LVU1485 + 4449 0080 A06F ldr r0, [r4, #120] + 4450 .LVL397: +1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4451 .loc 1 1954 8 discriminator 2 view .LVU1486 + 4452 0082 0028 cmp r0, #0 + 4453 0084 51D0 beq .L191 +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4454 .loc 1 1960 7 is_stmt 1 view .LVU1487 +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4455 .loc 1 1960 11 is_stmt 0 view .LVU1488 + 4456 0086 FFF7FEFF bl HAL_DMA_Abort_IT + 4457 .LVL398: +1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4458 .loc 1 1960 10 view .LVU1489 + 4459 008a A8B1 cbz r0, .L183 +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4460 .loc 1 1962 9 is_stmt 1 view .LVU1490 + ARM GAS /tmp/cceWHrnJ.s page 195 + + +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4461 .loc 1 1962 14 is_stmt 0 view .LVU1491 + 4462 008c A36F ldr r3, [r4, #120] +1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4463 .loc 1 1962 42 view .LVU1492 + 4464 008e 0022 movs r2, #0 + 4465 0090 9A63 str r2, [r3, #56] +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4466 .loc 1 1903 12 view .LVU1493 + 4467 0092 0125 movs r5, #1 + 4468 0094 10E0 b .L183 + 4469 .LVL399: + 4470 .L178: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4471 .loc 1 1913 5 is_stmt 1 discriminator 1 view .LVU1494 + 4472 .LBB729: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4473 .loc 1 1913 5 discriminator 1 view .LVU1495 +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4474 .loc 1 1913 5 discriminator 1 view .LVU1496 +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4475 .loc 1 1913 5 discriminator 1 view .LVU1497 + 4476 0096 2268 ldr r2, [r4] + 4477 .LVL400: + 4478 .LBB730: + 4479 .LBI730: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4480 .loc 2 1151 31 discriminator 1 view .LVU1498 + 4481 .LBB731: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4482 .loc 2 1153 5 discriminator 1 view .LVU1499 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4483 .loc 2 1155 4 discriminator 1 view .LVU1500 + 4484 .syntax unified + 4485 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4486 0098 52E8003F ldrex r3, [r2] + 4487 @ 0 "" 2 + 4488 .LVL401: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4489 .loc 2 1156 4 discriminator 1 view .LVU1501 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4490 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1502 + 4491 .thumb + 4492 .syntax unified + 4493 .LBE731: + 4494 .LBE730: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4495 .loc 1 1913 5 discriminator 1 view .LVU1503 + 4496 009c 23F01003 bic r3, r3, #16 + 4497 .LVL402: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4498 .loc 1 1913 5 is_stmt 1 discriminator 1 view .LVU1504 + 4499 .LBB732: + 4500 .LBI732: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4501 .loc 2 1202 31 discriminator 1 view .LVU1505 + 4502 .LBB733: + ARM GAS /tmp/cceWHrnJ.s page 196 + + +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4503 .loc 2 1204 4 discriminator 1 view .LVU1506 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4504 .loc 2 1206 4 discriminator 1 view .LVU1507 + 4505 .syntax unified + 4506 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4507 00a0 42E80031 strex r1, r3, [r2] + 4508 @ 0 "" 2 + 4509 .LVL403: + 4510 .loc 2 1207 4 discriminator 1 view .LVU1508 + 4511 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1509 + 4512 .thumb + 4513 .syntax unified + 4514 .LBE733: + 4515 .LBE732: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4516 .loc 1 1913 5 discriminator 1 view .LVU1510 + 4517 00a4 0029 cmp r1, #0 + 4518 00a6 F6D1 bne .L178 + 4519 00a8 C6E7 b .L177 + 4520 .LVL404: + 4521 .L180: +1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4522 .loc 1 1913 5 discriminator 1 view .LVU1511 + 4523 .LBE729: +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4524 .loc 1 1929 7 is_stmt 1 view .LVU1512 +1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4525 .loc 1 1929 40 is_stmt 0 view .LVU1513 + 4526 00aa 0022 movs r2, #0 + 4527 00ac 9A63 str r2, [r3, #56] + 4528 00ae CCE7 b .L179 + 4529 .L182: +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4530 .loc 1 1943 7 is_stmt 1 view .LVU1514 +1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4531 .loc 1 1943 40 is_stmt 0 view .LVU1515 + 4532 00b0 0022 movs r2, #0 + 4533 00b2 9A63 str r2, [r3, #56] + 4534 00b4 D2E7 b .L181 + 4535 .L190: +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4536 .loc 1 1903 12 view .LVU1516 + 4537 00b6 0125 movs r5, #1 + 4538 .LVL405: + 4539 .L183: +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4540 .loc 1 1972 3 is_stmt 1 view .LVU1517 +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4541 .loc 1 1972 7 is_stmt 0 view .LVU1518 + 4542 00b8 2368 ldr r3, [r4] + 4543 00ba 9B68 ldr r3, [r3, #8] +1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4544 .loc 1 1972 6 view .LVU1519 + 4545 00bc 13F0400F tst r3, #64 + 4546 00c0 35D0 beq .L185 + 4547 .L186: + ARM GAS /tmp/cceWHrnJ.s page 197 + + +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4548 .loc 1 1975 5 is_stmt 1 discriminator 1 view .LVU1520 + 4549 .LBB734: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4550 .loc 1 1975 5 discriminator 1 view .LVU1521 +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4551 .loc 1 1975 5 discriminator 1 view .LVU1522 +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4552 .loc 1 1975 5 discriminator 1 view .LVU1523 + 4553 00c2 2268 ldr r2, [r4] + 4554 .LVL406: + 4555 .LBB735: + 4556 .LBI735: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4557 .loc 2 1151 31 discriminator 1 view .LVU1524 + 4558 .LBB736: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4559 .loc 2 1153 5 discriminator 1 view .LVU1525 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4560 .loc 2 1155 4 discriminator 1 view .LVU1526 + 4561 00c4 02F10803 add r3, r2, #8 + 4562 .LVL407: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4563 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1527 + 4564 .syntax unified + 4565 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4566 00c8 53E8003F ldrex r3, [r3] + 4567 @ 0 "" 2 + 4568 .LVL408: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4569 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1528 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4570 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1529 + 4571 .thumb + 4572 .syntax unified + 4573 .LBE736: + 4574 .LBE735: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4575 .loc 1 1975 5 discriminator 1 view .LVU1530 + 4576 00cc 23F04003 bic r3, r3, #64 + 4577 .LVL409: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4578 .loc 1 1975 5 is_stmt 1 discriminator 1 view .LVU1531 + 4579 .LBB737: + 4580 .LBI737: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4581 .loc 2 1202 31 discriminator 1 view .LVU1532 + 4582 .LBB738: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4583 .loc 2 1204 4 discriminator 1 view .LVU1533 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4584 .loc 2 1206 4 discriminator 1 view .LVU1534 + 4585 00d0 0832 adds r2, r2, #8 + 4586 .LVL410: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4587 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1535 + 4588 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 198 + + + 4589 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4590 00d2 42E80031 strex r1, r3, [r2] + 4591 @ 0 "" 2 + 4592 .LVL411: + 4593 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1536 + 4594 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1537 + 4595 .thumb + 4596 .syntax unified + 4597 .LBE738: + 4598 .LBE737: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4599 .loc 1 1975 5 discriminator 1 view .LVU1538 + 4600 00d6 0029 cmp r1, #0 + 4601 00d8 F3D1 bne .L186 + 4602 .LBE734: +1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4603 .loc 1 1975 5 is_stmt 1 discriminator 2 view .LVU1539 +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4604 .loc 1 1978 5 discriminator 2 view .LVU1540 +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4605 .loc 1 1978 14 is_stmt 0 discriminator 2 view .LVU1541 + 4606 00da E06F ldr r0, [r4, #124] +1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4607 .loc 1 1978 8 discriminator 2 view .LVU1542 + 4608 00dc 38B3 cbz r0, .L185 +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4609 .loc 1 1984 7 is_stmt 1 view .LVU1543 +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4610 .loc 1 1984 11 is_stmt 0 view .LVU1544 + 4611 00de FFF7FEFF bl HAL_DMA_Abort_IT + 4612 .LVL412: +1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4613 .loc 1 1984 10 view .LVU1545 + 4614 00e2 30B3 cbz r0, .L187 +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 1U; + 4615 .loc 1 1986 9 is_stmt 1 view .LVU1546 +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 1U; + 4616 .loc 1 1986 14 is_stmt 0 view .LVU1547 + 4617 00e4 E36F ldr r3, [r4, #124] +1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 1U; + 4618 .loc 1 1986 42 view .LVU1548 + 4619 00e6 0022 movs r2, #0 + 4620 00e8 9A63 str r2, [r3, #56] +1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4621 .loc 1 1987 9 is_stmt 1 view .LVU1549 + 4622 .LVL413: +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4623 .loc 1 1997 3 view .LVU1550 + 4624 .L188: +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4625 .loc 1 2000 5 view .LVU1551 +2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4626 .loc 1 2000 24 is_stmt 0 view .LVU1552 + 4627 00ea 0023 movs r3, #0 + 4628 00ec A4F85630 strh r3, [r4, #86] @ movhi +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4629 .loc 1 2001 5 is_stmt 1 view .LVU1553 + ARM GAS /tmp/cceWHrnJ.s page 199 + + +2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4630 .loc 1 2001 24 is_stmt 0 view .LVU1554 + 4631 00f0 A4F85E30 strh r3, [r4, #94] @ movhi +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 4632 .loc 1 2004 5 is_stmt 1 view .LVU1555 +2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 4633 .loc 1 2004 18 is_stmt 0 view .LVU1556 + 4634 00f4 2367 str r3, [r4, #112] +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4635 .loc 1 2005 5 is_stmt 1 view .LVU1557 +2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4636 .loc 1 2005 18 is_stmt 0 view .LVU1558 + 4637 00f6 6367 str r3, [r4, #116] +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4638 .loc 1 2008 5 is_stmt 1 view .LVU1559 +2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4639 .loc 1 2008 22 is_stmt 0 view .LVU1560 + 4640 00f8 C4F88C30 str r3, [r4, #140] +2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4641 .loc 1 2011 5 is_stmt 1 view .LVU1561 + 4642 00fc 2368 ldr r3, [r4] + 4643 00fe 0F22 movs r2, #15 + 4644 0100 1A62 str r2, [r3, #32] +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4645 .loc 1 2014 5 view .LVU1562 +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4646 .loc 1 2014 14 is_stmt 0 view .LVU1563 + 4647 0102 636E ldr r3, [r4, #100] +2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4648 .loc 1 2014 8 view .LVU1564 + 4649 0104 B3F1005F cmp r3, #536870912 + 4650 0108 15D0 beq .L193 + 4651 .L189: +2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4652 .loc 1 2020 5 is_stmt 1 view .LVU1565 + 4653 010a 2268 ldr r2, [r4] + 4654 010c 9369 ldr r3, [r2, #24] + 4655 010e 43F00803 orr r3, r3, #8 + 4656 0112 9361 str r3, [r2, #24] +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 4657 .loc 1 2023 5 view .LVU1566 +2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 4658 .loc 1 2023 20 is_stmt 0 view .LVU1567 + 4659 0114 2023 movs r3, #32 + 4660 0116 C4F88430 str r3, [r4, #132] +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 4661 .loc 1 2024 5 is_stmt 1 view .LVU1568 +2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 4662 .loc 1 2024 20 is_stmt 0 view .LVU1569 + 4663 011a C4F88830 str r3, [r4, #136] +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4664 .loc 1 2025 5 is_stmt 1 view .LVU1570 +2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4665 .loc 1 2025 26 is_stmt 0 view .LVU1571 + 4666 011e 0023 movs r3, #0 + 4667 0120 E366 str r3, [r4, #108] +2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + ARM GAS /tmp/cceWHrnJ.s page 200 + + + 4668 .loc 1 2033 5 is_stmt 1 view .LVU1572 + 4669 0122 2046 mov r0, r4 + 4670 0124 FFF7FEFF bl HAL_UART_AbortCpltCallback + 4671 .LVL414: + 4672 0128 03E0 b .L187 + 4673 .LVL415: + 4674 .L191: +1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4675 .loc 1 1903 12 is_stmt 0 view .LVU1573 + 4676 012a 0125 movs r5, #1 + 4677 012c C4E7 b .L183 + 4678 .LVL416: + 4679 .L185: +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4680 .loc 1 1997 3 is_stmt 1 view .LVU1574 +1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4681 .loc 1 1997 6 is_stmt 0 view .LVU1575 + 4682 012e 012D cmp r5, #1 + 4683 0130 DBD0 beq .L188 + 4684 .LVL417: + 4685 .L187: +2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4686 .loc 1 2037 3 is_stmt 1 view .LVU1576 +2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4687 .loc 1 2038 1 is_stmt 0 view .LVU1577 + 4688 0132 0020 movs r0, #0 + 4689 0134 38BD pop {r3, r4, r5, pc} + 4690 .LVL418: + 4691 .L193: +2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4692 .loc 1 2016 7 is_stmt 1 view .LVU1578 + 4693 0136 2268 ldr r2, [r4] + 4694 0138 9369 ldr r3, [r2, #24] + 4695 013a 43F01003 orr r3, r3, #16 + 4696 013e 9361 str r3, [r2, #24] + 4697 0140 E3E7 b .L189 + 4698 .L195: + 4699 0142 00BF .align 2 + 4700 .L194: + 4701 0144 00000000 .word UART_DMATxAbortCallback + 4702 0148 00000000 .word UART_DMARxAbortCallback + 4703 .cfi_endproc + 4704 .LFE348: + 4706 .section .text.UART_DMARxAbortCallback,"ax",%progbits + 4707 .align 1 + 4708 .syntax unified + 4709 .thumb + 4710 .thumb_func + 4712 UART_DMARxAbortCallback: + 4713 .LVL419: + 4714 .LFB387: +3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4715 .loc 1 3870 1 view -0 + 4716 .cfi_startproc + 4717 @ args = 0, pretend = 0, frame = 0 + 4718 @ frame_needed = 0, uses_anonymous_args = 0 +3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + ARM GAS /tmp/cceWHrnJ.s page 201 + + + 4719 .loc 1 3870 1 is_stmt 0 view .LVU1580 + 4720 0000 08B5 push {r3, lr} + 4721 .LCFI18: + 4722 .cfi_def_cfa_offset 8 + 4723 .cfi_offset 3, -8 + 4724 .cfi_offset 14, -4 +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4725 .loc 1 3871 3 is_stmt 1 view .LVU1581 +3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4726 .loc 1 3871 23 is_stmt 0 view .LVU1582 + 4727 0002 806A ldr r0, [r0, #40] + 4728 .LVL420: +3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4729 .loc 1 3873 3 is_stmt 1 view .LVU1583 +3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4730 .loc 1 3873 8 is_stmt 0 view .LVU1584 + 4731 0004 C36F ldr r3, [r0, #124] +3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4732 .loc 1 3873 36 view .LVU1585 + 4733 0006 0022 movs r2, #0 + 4734 0008 9A63 str r2, [r3, #56] +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4735 .loc 1 3876 3 is_stmt 1 view .LVU1586 +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4736 .loc 1 3876 12 is_stmt 0 view .LVU1587 + 4737 000a 836F ldr r3, [r0, #120] +3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4738 .loc 1 3876 6 view .LVU1588 + 4739 000c 0BB1 cbz r3, .L197 +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4740 .loc 1 3878 5 is_stmt 1 view .LVU1589 +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4741 .loc 1 3878 22 is_stmt 0 view .LVU1590 + 4742 000e 9B6B ldr r3, [r3, #56] +3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4743 .loc 1 3878 8 view .LVU1591 + 4744 0010 B3B9 cbnz r3, .L196 + 4745 .L197: +3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4746 .loc 1 3885 3 is_stmt 1 view .LVU1592 +3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4747 .loc 1 3885 22 is_stmt 0 view .LVU1593 + 4748 0012 0023 movs r3, #0 + 4749 0014 A0F85630 strh r3, [r0, #86] @ movhi +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4750 .loc 1 3886 3 is_stmt 1 view .LVU1594 +3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4751 .loc 1 3886 22 is_stmt 0 view .LVU1595 + 4752 0018 A0F85E30 strh r3, [r0, #94] @ movhi +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4753 .loc 1 3889 3 is_stmt 1 view .LVU1596 +3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4754 .loc 1 3889 20 is_stmt 0 view .LVU1597 + 4755 001c C0F88C30 str r3, [r0, #140] +3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4756 .loc 1 3892 3 is_stmt 1 view .LVU1598 + 4757 0020 0268 ldr r2, [r0] + ARM GAS /tmp/cceWHrnJ.s page 202 + + + 4758 0022 0F21 movs r1, #15 + 4759 0024 1162 str r1, [r2, #32] +3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4760 .loc 1 3895 3 view .LVU1599 + 4761 0026 0168 ldr r1, [r0] + 4762 0028 8A69 ldr r2, [r1, #24] + 4763 002a 42F00802 orr r2, r2, #8 + 4764 002e 8A61 str r2, [r1, #24] +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 4765 .loc 1 3898 3 view .LVU1600 +3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 4766 .loc 1 3898 18 is_stmt 0 view .LVU1601 + 4767 0030 2022 movs r2, #32 + 4768 0032 C0F88420 str r2, [r0, #132] +3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 4769 .loc 1 3899 3 is_stmt 1 view .LVU1602 +3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 4770 .loc 1 3899 18 is_stmt 0 view .LVU1603 + 4771 0036 C0F88820 str r2, [r0, #136] +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4772 .loc 1 3900 3 is_stmt 1 view .LVU1604 +3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4773 .loc 1 3900 24 is_stmt 0 view .LVU1605 + 4774 003a C366 str r3, [r0, #108] +3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 4775 .loc 1 3908 3 is_stmt 1 view .LVU1606 + 4776 003c FFF7FEFF bl HAL_UART_AbortCpltCallback + 4777 .LVL421: + 4778 .L196: +3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4779 .loc 1 3910 1 is_stmt 0 view .LVU1607 + 4780 0040 08BD pop {r3, pc} + 4781 .cfi_endproc + 4782 .LFE387: + 4784 .section .text.UART_DMATxAbortCallback,"ax",%progbits + 4785 .align 1 + 4786 .syntax unified + 4787 .thumb + 4788 .thumb_func + 4790 UART_DMATxAbortCallback: + 4791 .LVL422: + 4792 .LFB386: +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4793 .loc 1 3815 1 is_stmt 1 view -0 + 4794 .cfi_startproc + 4795 @ args = 0, pretend = 0, frame = 0 + 4796 @ frame_needed = 0, uses_anonymous_args = 0 +3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 4797 .loc 1 3815 1 is_stmt 0 view .LVU1609 + 4798 0000 08B5 push {r3, lr} + 4799 .LCFI19: + 4800 .cfi_def_cfa_offset 8 + 4801 .cfi_offset 3, -8 + 4802 .cfi_offset 14, -4 +3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4803 .loc 1 3816 3 is_stmt 1 view .LVU1610 +3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 203 + + + 4804 .loc 1 3816 23 is_stmt 0 view .LVU1611 + 4805 0002 806A ldr r0, [r0, #40] + 4806 .LVL423: +3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4807 .loc 1 3818 3 is_stmt 1 view .LVU1612 +3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4808 .loc 1 3818 8 is_stmt 0 view .LVU1613 + 4809 0004 836F ldr r3, [r0, #120] +3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4810 .loc 1 3818 36 view .LVU1614 + 4811 0006 0022 movs r2, #0 + 4812 0008 9A63 str r2, [r3, #56] +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4813 .loc 1 3821 3 is_stmt 1 view .LVU1615 +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4814 .loc 1 3821 12 is_stmt 0 view .LVU1616 + 4815 000a C36F ldr r3, [r0, #124] +3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4816 .loc 1 3821 6 view .LVU1617 + 4817 000c 0BB1 cbz r3, .L201 +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4818 .loc 1 3823 5 is_stmt 1 view .LVU1618 +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4819 .loc 1 3823 22 is_stmt 0 view .LVU1619 + 4820 000e 9B6B ldr r3, [r3, #56] +3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4821 .loc 1 3823 8 view .LVU1620 + 4822 0010 B3B9 cbnz r3, .L200 + 4823 .L201: +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4824 .loc 1 3830 3 is_stmt 1 view .LVU1621 +3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; + 4825 .loc 1 3830 22 is_stmt 0 view .LVU1622 + 4826 0012 0023 movs r3, #0 + 4827 0014 A0F85630 strh r3, [r0, #86] @ movhi +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4828 .loc 1 3831 3 is_stmt 1 view .LVU1623 +3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4829 .loc 1 3831 22 is_stmt 0 view .LVU1624 + 4830 0018 A0F85E30 strh r3, [r0, #94] @ movhi +3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4831 .loc 1 3834 3 is_stmt 1 view .LVU1625 +3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4832 .loc 1 3834 20 is_stmt 0 view .LVU1626 + 4833 001c C0F88C30 str r3, [r0, #140] +3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4834 .loc 1 3837 3 is_stmt 1 view .LVU1627 + 4835 0020 0368 ldr r3, [r0] + 4836 0022 0F22 movs r2, #15 + 4837 0024 1A62 str r2, [r3, #32] +3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4838 .loc 1 3840 3 view .LVU1628 +3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4839 .loc 1 3840 12 is_stmt 0 view .LVU1629 + 4840 0026 436E ldr r3, [r0, #100] +3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 4841 .loc 1 3840 6 view .LVU1630 + ARM GAS /tmp/cceWHrnJ.s page 204 + + + 4842 0028 B3F1005F cmp r3, #536870912 + 4843 002c 09D0 beq .L205 + 4844 .L203: +3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 4845 .loc 1 3846 3 is_stmt 1 view .LVU1631 +3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 4846 .loc 1 3846 18 is_stmt 0 view .LVU1632 + 4847 002e 2023 movs r3, #32 + 4848 0030 C0F88430 str r3, [r0, #132] +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 4849 .loc 1 3847 3 is_stmt 1 view .LVU1633 +3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 4850 .loc 1 3847 18 is_stmt 0 view .LVU1634 + 4851 0034 C0F88830 str r3, [r0, #136] +3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4852 .loc 1 3848 3 is_stmt 1 view .LVU1635 +3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4853 .loc 1 3848 24 is_stmt 0 view .LVU1636 + 4854 0038 0023 movs r3, #0 + 4855 003a C366 str r3, [r0, #108] +3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 4856 .loc 1 3856 3 is_stmt 1 view .LVU1637 + 4857 003c FFF7FEFF bl HAL_UART_AbortCpltCallback + 4858 .LVL424: + 4859 .L200: +3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4860 .loc 1 3858 1 is_stmt 0 view .LVU1638 + 4861 0040 08BD pop {r3, pc} + 4862 .LVL425: + 4863 .L205: +3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 4864 .loc 1 3842 5 is_stmt 1 view .LVU1639 + 4865 0042 0268 ldr r2, [r0] + 4866 0044 9369 ldr r3, [r2, #24] + 4867 0046 43F01003 orr r3, r3, #16 + 4868 004a 9361 str r3, [r2, #24] + 4869 004c EFE7 b .L203 + 4870 .cfi_endproc + 4871 .LFE386: + 4873 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits + 4874 .align 1 + 4875 .weak HAL_UART_AbortTransmitCpltCallback + 4876 .syntax unified + 4877 .thumb + 4878 .thumb_func + 4880 HAL_UART_AbortTransmitCpltCallback: + 4881 .LVL426: + 4882 .LFB358: +2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 4883 .loc 1 2649 1 view -0 + 4884 .cfi_startproc + 4885 @ args = 0, pretend = 0, frame = 0 + 4886 @ frame_needed = 0, uses_anonymous_args = 0 + 4887 @ link register save eliminated. +2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4888 .loc 1 2651 3 view .LVU1641 +2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 205 + + + 4889 .loc 1 2656 1 is_stmt 0 view .LVU1642 + 4890 0000 7047 bx lr + 4891 .cfi_endproc + 4892 .LFE358: + 4894 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits + 4895 .align 1 + 4896 .global HAL_UART_AbortTransmit_IT + 4897 .syntax unified + 4898 .thumb + 4899 .thumb_func + 4901 HAL_UART_AbortTransmit_IT: + 4902 .LVL427: + 4903 .LFB349: +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ + 4904 .loc 1 2055 1 is_stmt 1 view -0 + 4905 .cfi_startproc + 4906 @ args = 0, pretend = 0, frame = 0 + 4907 @ frame_needed = 0, uses_anonymous_args = 0 +2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ + 4908 .loc 1 2055 1 is_stmt 0 view .LVU1644 + 4909 0000 10B5 push {r4, lr} + 4910 .LCFI20: + 4911 .cfi_def_cfa_offset 8 + 4912 .cfi_offset 4, -8 + 4913 .cfi_offset 14, -4 + 4914 0002 0446 mov r4, r0 + 4915 .L208: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4916 .loc 1 2057 3 is_stmt 1 discriminator 1 view .LVU1645 + 4917 .LBB739: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4918 .loc 1 2057 3 discriminator 1 view .LVU1646 +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4919 .loc 1 2057 3 discriminator 1 view .LVU1647 +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4920 .loc 1 2057 3 discriminator 1 view .LVU1648 + 4921 0004 2268 ldr r2, [r4] + 4922 .LVL428: + 4923 .LBB740: + 4924 .LBI740: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4925 .loc 2 1151 31 discriminator 1 view .LVU1649 + 4926 .LBB741: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4927 .loc 2 1153 5 discriminator 1 view .LVU1650 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4928 .loc 2 1155 4 discriminator 1 view .LVU1651 + 4929 .syntax unified + 4930 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4931 0006 52E8003F ldrex r3, [r2] + 4932 @ 0 "" 2 + 4933 .LVL429: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4934 .loc 2 1156 4 discriminator 1 view .LVU1652 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4935 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1653 + 4936 .thumb + ARM GAS /tmp/cceWHrnJ.s page 206 + + + 4937 .syntax unified + 4938 .LBE741: + 4939 .LBE740: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4940 .loc 1 2057 3 discriminator 1 view .LVU1654 + 4941 000a 23F0C003 bic r3, r3, #192 + 4942 .LVL430: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4943 .loc 1 2057 3 is_stmt 1 discriminator 1 view .LVU1655 + 4944 .LBB742: + 4945 .LBI742: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4946 .loc 2 1202 31 discriminator 1 view .LVU1656 + 4947 .LBB743: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 4948 .loc 2 1204 4 discriminator 1 view .LVU1657 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4949 .loc 2 1206 4 discriminator 1 view .LVU1658 + 4950 .syntax unified + 4951 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4952 000e 42E80031 strex r1, r3, [r2] + 4953 @ 0 "" 2 + 4954 .LVL431: + 4955 .loc 2 1207 4 discriminator 1 view .LVU1659 + 4956 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1660 + 4957 .thumb + 4958 .syntax unified + 4959 .LBE743: + 4960 .LBE742: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4961 .loc 1 2057 3 discriminator 1 view .LVU1661 + 4962 0012 0029 cmp r1, #0 + 4963 0014 F6D1 bne .L208 + 4964 .LVL432: + 4965 .L209: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4966 .loc 1 2057 3 discriminator 1 view .LVU1662 + 4967 .LBE739: +2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); + 4968 .loc 1 2057 3 is_stmt 1 discriminator 1 view .LVU1663 +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4969 .loc 1 2058 3 discriminator 1 view .LVU1664 + 4970 .LBB744: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4971 .loc 1 2058 3 discriminator 1 view .LVU1665 +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4972 .loc 1 2058 3 discriminator 1 view .LVU1666 +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4973 .loc 1 2058 3 discriminator 1 view .LVU1667 + 4974 0016 2268 ldr r2, [r4] + 4975 .LVL433: + 4976 .LBB745: + 4977 .LBI745: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 4978 .loc 2 1151 31 discriminator 1 view .LVU1668 + 4979 .LBB746: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 207 + + + 4980 .loc 2 1153 5 discriminator 1 view .LVU1669 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4981 .loc 2 1155 4 discriminator 1 view .LVU1670 + 4982 0018 02F10803 add r3, r2, #8 + 4983 .LVL434: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 4984 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1671 + 4985 .syntax unified + 4986 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 4987 001c 53E8003F ldrex r3, [r3] + 4988 @ 0 "" 2 + 4989 .LVL435: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4990 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1672 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 4991 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1673 + 4992 .thumb + 4993 .syntax unified + 4994 .LBE746: + 4995 .LBE745: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4996 .loc 1 2058 3 discriminator 1 view .LVU1674 + 4997 0020 23F40003 bic r3, r3, #8388608 + 4998 .LVL436: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 4999 .loc 1 2058 3 is_stmt 1 discriminator 1 view .LVU1675 + 5000 .LBB747: + 5001 .LBI747: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5002 .loc 2 1202 31 discriminator 1 view .LVU1676 + 5003 .LBB748: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5004 .loc 2 1204 4 discriminator 1 view .LVU1677 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5005 .loc 2 1206 4 discriminator 1 view .LVU1678 + 5006 0024 0832 adds r2, r2, #8 + 5007 .LVL437: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5008 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1679 + 5009 .syntax unified + 5010 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5011 0026 42E80031 strex r1, r3, [r2] + 5012 @ 0 "" 2 + 5013 .LVL438: + 5014 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1680 + 5015 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1681 + 5016 .thumb + 5017 .syntax unified + 5018 .LBE748: + 5019 .LBE747: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5020 .loc 1 2058 3 discriminator 1 view .LVU1682 + 5021 002a 0029 cmp r1, #0 + 5022 002c F3D1 bne .L209 + 5023 .LBE744: +2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5024 .loc 1 2058 3 is_stmt 1 discriminator 2 view .LVU1683 + ARM GAS /tmp/cceWHrnJ.s page 208 + + +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5025 .loc 1 2061 3 discriminator 2 view .LVU1684 +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5026 .loc 1 2061 7 is_stmt 0 discriminator 2 view .LVU1685 + 5027 002e 2368 ldr r3, [r4] + 5028 .LVL439: +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5029 .loc 1 2061 7 discriminator 2 view .LVU1686 + 5030 0030 9A68 ldr r2, [r3, #8] +2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5031 .loc 1 2061 6 discriminator 2 view .LVU1687 + 5032 0032 12F0800F tst r2, #128 + 5033 0036 22D0 beq .L210 + 5034 .L211: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5035 .loc 1 2064 5 is_stmt 1 discriminator 1 view .LVU1688 + 5036 .LBB749: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5037 .loc 1 2064 5 discriminator 1 view .LVU1689 +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5038 .loc 1 2064 5 discriminator 1 view .LVU1690 +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5039 .loc 1 2064 5 discriminator 1 view .LVU1691 + 5040 0038 2268 ldr r2, [r4] + 5041 .LVL440: + 5042 .LBB750: + 5043 .LBI750: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5044 .loc 2 1151 31 discriminator 1 view .LVU1692 + 5045 .LBB751: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5046 .loc 2 1153 5 discriminator 1 view .LVU1693 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5047 .loc 2 1155 4 discriminator 1 view .LVU1694 + 5048 003a 02F10803 add r3, r2, #8 + 5049 .LVL441: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5050 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1695 + 5051 .syntax unified + 5052 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5053 003e 53E8003F ldrex r3, [r3] + 5054 @ 0 "" 2 + 5055 .LVL442: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5056 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1696 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5057 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1697 + 5058 .thumb + 5059 .syntax unified + 5060 .LBE751: + 5061 .LBE750: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5062 .loc 1 2064 5 discriminator 1 view .LVU1698 + 5063 0042 23F08003 bic r3, r3, #128 + 5064 .LVL443: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5065 .loc 1 2064 5 is_stmt 1 discriminator 1 view .LVU1699 + ARM GAS /tmp/cceWHrnJ.s page 209 + + + 5066 .LBB752: + 5067 .LBI752: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5068 .loc 2 1202 31 discriminator 1 view .LVU1700 + 5069 .LBB753: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5070 .loc 2 1204 4 discriminator 1 view .LVU1701 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5071 .loc 2 1206 4 discriminator 1 view .LVU1702 + 5072 0046 0832 adds r2, r2, #8 + 5073 .LVL444: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5074 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1703 + 5075 .syntax unified + 5076 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5077 0048 42E80031 strex r1, r3, [r2] + 5078 @ 0 "" 2 + 5079 .LVL445: + 5080 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1704 + 5081 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1705 + 5082 .thumb + 5083 .syntax unified + 5084 .LBE753: + 5085 .LBE752: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5086 .loc 1 2064 5 discriminator 1 view .LVU1706 + 5087 004c 0029 cmp r1, #0 + 5088 004e F3D1 bne .L211 + 5089 .LBE749: +2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5090 .loc 1 2064 5 is_stmt 1 discriminator 2 view .LVU1707 +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5091 .loc 1 2067 5 discriminator 2 view .LVU1708 +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5092 .loc 1 2067 14 is_stmt 0 discriminator 2 view .LVU1709 + 5093 0050 A36F ldr r3, [r4, #120] + 5094 .LVL446: +2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5095 .loc 1 2067 8 discriminator 2 view .LVU1710 + 5096 0052 4BB1 cbz r3, .L212 +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5097 .loc 1 2071 7 is_stmt 1 view .LVU1711 +2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5098 .loc 1 2071 40 is_stmt 0 view .LVU1712 + 5099 0054 144A ldr r2, .L217 + 5100 0056 9A63 str r2, [r3, #56] +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5101 .loc 1 2074 7 is_stmt 1 view .LVU1713 +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5102 .loc 1 2074 11 is_stmt 0 view .LVU1714 + 5103 0058 A06F ldr r0, [r4, #120] + 5104 .LVL447: +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5105 .loc 1 2074 11 view .LVU1715 + 5106 005a FFF7FEFF bl HAL_DMA_Abort_IT + 5107 .LVL448: +2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 210 + + + 5108 .loc 1 2074 10 view .LVU1716 + 5109 005e E0B1 cbz r0, .L213 +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5110 .loc 1 2077 9 is_stmt 1 view .LVU1717 +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5111 .loc 1 2077 14 is_stmt 0 view .LVU1718 + 5112 0060 A06F ldr r0, [r4, #120] +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5113 .loc 1 2077 22 view .LVU1719 + 5114 0062 836B ldr r3, [r0, #56] +2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5115 .loc 1 2077 9 view .LVU1720 + 5116 0064 9847 blx r3 + 5117 .LVL449: + 5118 0066 18E0 b .L213 + 5119 .LVL450: + 5120 .L212: +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5121 .loc 1 2083 7 is_stmt 1 view .LVU1721 +2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5122 .loc 1 2083 26 is_stmt 0 view .LVU1722 + 5123 0068 0023 movs r3, #0 + 5124 006a A4F85630 strh r3, [r4, #86] @ movhi +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5125 .loc 1 2086 7 is_stmt 1 view .LVU1723 +2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5126 .loc 1 2086 20 is_stmt 0 view .LVU1724 + 5127 006e 6367 str r3, [r4, #116] +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5128 .loc 1 2089 7 is_stmt 1 view .LVU1725 +2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5129 .loc 1 2089 21 is_stmt 0 view .LVU1726 + 5130 0070 2023 movs r3, #32 + 5131 0072 C4F88430 str r3, [r4, #132] +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5132 .loc 1 2097 7 is_stmt 1 view .LVU1727 + 5133 0076 2046 mov r0, r4 + 5134 .LVL451: +2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5135 .loc 1 2097 7 is_stmt 0 view .LVU1728 + 5136 0078 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback + 5137 .LVL452: + 5138 007c 0DE0 b .L213 + 5139 .LVL453: + 5140 .L210: +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5141 .loc 1 2104 5 is_stmt 1 view .LVU1729 +2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5142 .loc 1 2104 24 is_stmt 0 view .LVU1730 + 5143 007e 0022 movs r2, #0 + 5144 0080 A4F85620 strh r2, [r4, #86] @ movhi +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5145 .loc 1 2107 5 is_stmt 1 view .LVU1731 +2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5146 .loc 1 2107 18 is_stmt 0 view .LVU1732 + 5147 0084 6267 str r2, [r4, #116] +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 211 + + + 5148 .loc 1 2110 5 is_stmt 1 view .LVU1733 +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5149 .loc 1 2110 14 is_stmt 0 view .LVU1734 + 5150 0086 626E ldr r2, [r4, #100] +2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5151 .loc 1 2110 8 view .LVU1735 + 5152 0088 B2F1005F cmp r2, #536870912 + 5153 008c 07D0 beq .L216 + 5154 .L214: +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5155 .loc 1 2116 5 is_stmt 1 view .LVU1736 +2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5156 .loc 1 2116 19 is_stmt 0 view .LVU1737 + 5157 008e 2023 movs r3, #32 + 5158 0090 C4F88430 str r3, [r4, #132] +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5159 .loc 1 2124 5 is_stmt 1 view .LVU1738 + 5160 0094 2046 mov r0, r4 + 5161 .LVL454: +2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5162 .loc 1 2124 5 is_stmt 0 view .LVU1739 + 5163 0096 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback + 5164 .LVL455: + 5165 .L213: +2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5166 .loc 1 2128 3 is_stmt 1 view .LVU1740 +2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5167 .loc 1 2129 1 is_stmt 0 view .LVU1741 + 5168 009a 0020 movs r0, #0 + 5169 009c 10BD pop {r4, pc} + 5170 .LVL456: + 5171 .L216: +2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5172 .loc 1 2112 7 is_stmt 1 view .LVU1742 + 5173 009e 9A69 ldr r2, [r3, #24] + 5174 00a0 42F01002 orr r2, r2, #16 + 5175 00a4 9A61 str r2, [r3, #24] + 5176 00a6 F2E7 b .L214 + 5177 .L218: + 5178 .align 2 + 5179 .L217: + 5180 00a8 00000000 .word UART_DMATxOnlyAbortCallback + 5181 .cfi_endproc + 5182 .LFE349: + 5184 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits + 5185 .align 1 + 5186 .syntax unified + 5187 .thumb + 5188 .thumb_func + 5190 UART_DMATxOnlyAbortCallback: + 5191 .LVL457: + 5192 .LFB388: +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 5193 .loc 1 3922 1 view -0 + 5194 .cfi_startproc + 5195 @ args = 0, pretend = 0, frame = 0 + 5196 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cceWHrnJ.s page 212 + + +3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 5197 .loc 1 3922 1 is_stmt 0 view .LVU1744 + 5198 0000 08B5 push {r3, lr} + 5199 .LCFI21: + 5200 .cfi_def_cfa_offset 8 + 5201 .cfi_offset 3, -8 + 5202 .cfi_offset 14, -4 +3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5203 .loc 1 3923 3 is_stmt 1 view .LVU1745 +3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5204 .loc 1 3923 23 is_stmt 0 view .LVU1746 + 5205 0002 806A ldr r0, [r0, #40] + 5206 .LVL458: +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5207 .loc 1 3925 3 is_stmt 1 view .LVU1747 +3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5208 .loc 1 3925 22 is_stmt 0 view .LVU1748 + 5209 0004 0023 movs r3, #0 + 5210 0006 A0F85630 strh r3, [r0, #86] @ movhi +3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5211 .loc 1 3928 3 is_stmt 1 view .LVU1749 +3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5212 .loc 1 3928 12 is_stmt 0 view .LVU1750 + 5213 000a 436E ldr r3, [r0, #100] +3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5214 .loc 1 3928 6 view .LVU1751 + 5215 000c B3F1005F cmp r3, #536870912 + 5216 0010 05D0 beq .L222 + 5217 .L220: +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5218 .loc 1 3934 3 is_stmt 1 view .LVU1752 +3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5219 .loc 1 3934 17 is_stmt 0 view .LVU1753 + 5220 0012 2023 movs r3, #32 + 5221 0014 C0F88430 str r3, [r0, #132] +3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5222 .loc 1 3942 3 is_stmt 1 view .LVU1754 + 5223 0018 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback + 5224 .LVL459: +3944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5225 .loc 1 3944 1 is_stmt 0 view .LVU1755 + 5226 001c 08BD pop {r3, pc} + 5227 .LVL460: + 5228 .L222: +3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5229 .loc 1 3930 5 is_stmt 1 view .LVU1756 + 5230 001e 0268 ldr r2, [r0] + 5231 0020 9369 ldr r3, [r2, #24] + 5232 0022 43F01003 orr r3, r3, #16 + 5233 0026 9361 str r3, [r2, #24] + 5234 0028 F3E7 b .L220 + 5235 .cfi_endproc + 5236 .LFE388: + 5238 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits + 5239 .align 1 + 5240 .weak HAL_UART_AbortReceiveCpltCallback + 5241 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 213 + + + 5242 .thumb + 5243 .thumb_func + 5245 HAL_UART_AbortReceiveCpltCallback: + 5246 .LVL461: + 5247 .LFB359: +2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 5248 .loc 1 2664 1 view -0 + 5249 .cfi_startproc + 5250 @ args = 0, pretend = 0, frame = 0 + 5251 @ frame_needed = 0, uses_anonymous_args = 0 + 5252 @ link register save eliminated. +2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5253 .loc 1 2666 3 view .LVU1758 +2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5254 .loc 1 2671 1 is_stmt 0 view .LVU1759 + 5255 0000 7047 bx lr + 5256 .cfi_endproc + 5257 .LFE359: + 5259 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits + 5260 .align 1 + 5261 .global HAL_UART_AbortReceive_IT + 5262 .syntax unified + 5263 .thumb + 5264 .thumb_func + 5266 HAL_UART_AbortReceive_IT: + 5267 .LVL462: + 5268 .LFB350: +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ + 5269 .loc 1 2146 1 is_stmt 1 view -0 + 5270 .cfi_startproc + 5271 @ args = 0, pretend = 0, frame = 0 + 5272 @ frame_needed = 0, uses_anonymous_args = 0 +2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ + 5273 .loc 1 2146 1 is_stmt 0 view .LVU1761 + 5274 0000 10B5 push {r4, lr} + 5275 .LCFI22: + 5276 .cfi_def_cfa_offset 8 + 5277 .cfi_offset 4, -8 + 5278 .cfi_offset 14, -4 + 5279 0002 0446 mov r4, r0 + 5280 .L225: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5281 .loc 1 2148 3 is_stmt 1 discriminator 1 view .LVU1762 + 5282 .LBB754: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5283 .loc 1 2148 3 discriminator 1 view .LVU1763 +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5284 .loc 1 2148 3 discriminator 1 view .LVU1764 +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5285 .loc 1 2148 3 discriminator 1 view .LVU1765 + 5286 0004 2268 ldr r2, [r4] + 5287 .LVL463: + 5288 .LBB755: + 5289 .LBI755: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5290 .loc 2 1151 31 discriminator 1 view .LVU1766 + 5291 .LBB756: + ARM GAS /tmp/cceWHrnJ.s page 214 + + +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5292 .loc 2 1153 5 discriminator 1 view .LVU1767 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5293 .loc 2 1155 4 discriminator 1 view .LVU1768 + 5294 .syntax unified + 5295 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5296 0006 52E8003F ldrex r3, [r2] + 5297 @ 0 "" 2 + 5298 .LVL464: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5299 .loc 2 1156 4 discriminator 1 view .LVU1769 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5300 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1770 + 5301 .thumb + 5302 .syntax unified + 5303 .LBE756: + 5304 .LBE755: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5305 .loc 1 2148 3 discriminator 1 view .LVU1771 + 5306 000a 23F49073 bic r3, r3, #288 + 5307 .LVL465: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5308 .loc 1 2148 3 is_stmt 1 discriminator 1 view .LVU1772 + 5309 .LBB757: + 5310 .LBI757: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5311 .loc 2 1202 31 discriminator 1 view .LVU1773 + 5312 .LBB758: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5313 .loc 2 1204 4 discriminator 1 view .LVU1774 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5314 .loc 2 1206 4 discriminator 1 view .LVU1775 + 5315 .syntax unified + 5316 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5317 000e 42E80031 strex r1, r3, [r2] + 5318 @ 0 "" 2 + 5319 .LVL466: + 5320 .loc 2 1207 4 discriminator 1 view .LVU1776 + 5321 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1777 + 5322 .thumb + 5323 .syntax unified + 5324 .LBE758: + 5325 .LBE757: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5326 .loc 1 2148 3 discriminator 1 view .LVU1778 + 5327 0012 0029 cmp r1, #0 + 5328 0014 F6D1 bne .L225 + 5329 .LVL467: + 5330 .L226: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5331 .loc 1 2148 3 discriminator 1 view .LVU1779 + 5332 .LBE754: +2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); + 5333 .loc 1 2148 3 is_stmt 1 discriminator 1 view .LVU1780 +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5334 .loc 1 2149 3 discriminator 1 view .LVU1781 + 5335 .LBB759: + ARM GAS /tmp/cceWHrnJ.s page 215 + + +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5336 .loc 1 2149 3 discriminator 1 view .LVU1782 +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5337 .loc 1 2149 3 discriminator 1 view .LVU1783 +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5338 .loc 1 2149 3 discriminator 1 view .LVU1784 + 5339 0016 2268 ldr r2, [r4] + 5340 .LVL468: + 5341 .LBB760: + 5342 .LBI760: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5343 .loc 2 1151 31 discriminator 1 view .LVU1785 + 5344 .LBB761: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5345 .loc 2 1153 5 discriminator 1 view .LVU1786 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5346 .loc 2 1155 4 discriminator 1 view .LVU1787 + 5347 0018 02F10803 add r3, r2, #8 + 5348 .LVL469: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5349 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1788 + 5350 .syntax unified + 5351 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5352 001c 53E8003F ldrex r3, [r3] + 5353 @ 0 "" 2 + 5354 .LVL470: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5355 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1789 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5356 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1790 + 5357 .thumb + 5358 .syntax unified + 5359 .LBE761: + 5360 .LBE760: +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5361 .loc 1 2149 3 discriminator 1 view .LVU1791 + 5362 0020 23F08053 bic r3, r3, #268435456 + 5363 0024 23F00103 bic r3, r3, #1 + 5364 .LVL471: +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5365 .loc 1 2149 3 is_stmt 1 discriminator 1 view .LVU1792 + 5366 .LBB762: + 5367 .LBI762: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5368 .loc 2 1202 31 discriminator 1 view .LVU1793 + 5369 .LBB763: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5370 .loc 2 1204 4 discriminator 1 view .LVU1794 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5371 .loc 2 1206 4 discriminator 1 view .LVU1795 + 5372 0028 0832 adds r2, r2, #8 + 5373 .LVL472: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5374 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1796 + 5375 .syntax unified + 5376 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5377 002a 42E80031 strex r1, r3, [r2] + ARM GAS /tmp/cceWHrnJ.s page 216 + + + 5378 @ 0 "" 2 + 5379 .LVL473: + 5380 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1797 + 5381 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1798 + 5382 .thumb + 5383 .syntax unified + 5384 .LBE763: + 5385 .LBE762: +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5386 .loc 1 2149 3 discriminator 1 view .LVU1799 + 5387 002e 0029 cmp r1, #0 + 5388 0030 F1D1 bne .L226 + 5389 .LBE759: +2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5390 .loc 1 2149 3 is_stmt 1 discriminator 2 view .LVU1800 +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5391 .loc 1 2152 3 discriminator 2 view .LVU1801 +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5392 .loc 1 2152 12 is_stmt 0 discriminator 2 view .LVU1802 + 5393 0032 E36E ldr r3, [r4, #108] + 5394 .LVL474: +2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5395 .loc 1 2152 6 discriminator 2 view .LVU1803 + 5396 0034 012B cmp r3, #1 + 5397 0036 1CD0 beq .L228 + 5398 .L227: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5399 .loc 1 2154 5 is_stmt 1 discriminator 2 view .LVU1804 +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5400 .loc 1 2158 3 discriminator 2 view .LVU1805 +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5401 .loc 1 2158 7 is_stmt 0 discriminator 2 view .LVU1806 + 5402 0038 2368 ldr r3, [r4] + 5403 003a 9A68 ldr r2, [r3, #8] +2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5404 .loc 1 2158 6 discriminator 2 view .LVU1807 + 5405 003c 12F0400F tst r2, #64 + 5406 0040 35D0 beq .L229 + 5407 .L230: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5408 .loc 1 2161 5 is_stmt 1 discriminator 1 view .LVU1808 + 5409 .LBB764: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5410 .loc 1 2161 5 discriminator 1 view .LVU1809 +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5411 .loc 1 2161 5 discriminator 1 view .LVU1810 +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5412 .loc 1 2161 5 discriminator 1 view .LVU1811 + 5413 0042 2268 ldr r2, [r4] + 5414 .LVL475: + 5415 .LBB765: + 5416 .LBI765: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5417 .loc 2 1151 31 discriminator 1 view .LVU1812 + 5418 .LBB766: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5419 .loc 2 1153 5 discriminator 1 view .LVU1813 + ARM GAS /tmp/cceWHrnJ.s page 217 + + +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5420 .loc 2 1155 4 discriminator 1 view .LVU1814 + 5421 0044 02F10803 add r3, r2, #8 + 5422 .LVL476: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5423 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU1815 + 5424 .syntax unified + 5425 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5426 0048 53E8003F ldrex r3, [r3] + 5427 @ 0 "" 2 + 5428 .LVL477: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5429 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU1816 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5430 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1817 + 5431 .thumb + 5432 .syntax unified + 5433 .LBE766: + 5434 .LBE765: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5435 .loc 1 2161 5 discriminator 1 view .LVU1818 + 5436 004c 23F04003 bic r3, r3, #64 + 5437 .LVL478: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5438 .loc 1 2161 5 is_stmt 1 discriminator 1 view .LVU1819 + 5439 .LBB767: + 5440 .LBI767: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5441 .loc 2 1202 31 discriminator 1 view .LVU1820 + 5442 .LBB768: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5443 .loc 2 1204 4 discriminator 1 view .LVU1821 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5444 .loc 2 1206 4 discriminator 1 view .LVU1822 + 5445 0050 0832 adds r2, r2, #8 + 5446 .LVL479: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5447 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU1823 + 5448 .syntax unified + 5449 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5450 0052 42E80031 strex r1, r3, [r2] + 5451 @ 0 "" 2 + 5452 .LVL480: + 5453 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU1824 + 5454 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1825 + 5455 .thumb + 5456 .syntax unified + 5457 .LBE768: + 5458 .LBE767: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5459 .loc 1 2161 5 discriminator 1 view .LVU1826 + 5460 0056 0029 cmp r1, #0 + 5461 0058 F3D1 bne .L230 + 5462 .LBE764: +2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5463 .loc 1 2161 5 is_stmt 1 discriminator 2 view .LVU1827 +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 218 + + + 5464 .loc 1 2164 5 discriminator 2 view .LVU1828 +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5465 .loc 1 2164 14 is_stmt 0 discriminator 2 view .LVU1829 + 5466 005a E36F ldr r3, [r4, #124] + 5467 .LVL481: +2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5468 .loc 1 2164 8 discriminator 2 view .LVU1830 + 5469 005c 9BB1 cbz r3, .L231 +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5470 .loc 1 2168 7 is_stmt 1 view .LVU1831 +2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5471 .loc 1 2168 40 is_stmt 0 view .LVU1832 + 5472 005e 1B4A ldr r2, .L234 + 5473 0060 9A63 str r2, [r3, #56] +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5474 .loc 1 2171 7 is_stmt 1 view .LVU1833 +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5475 .loc 1 2171 11 is_stmt 0 view .LVU1834 + 5476 0062 E06F ldr r0, [r4, #124] + 5477 .LVL482: +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5478 .loc 1 2171 11 view .LVU1835 + 5479 0064 FFF7FEFF bl HAL_DMA_Abort_IT + 5480 .LVL483: +2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5481 .loc 1 2171 10 view .LVU1836 + 5482 0068 70B3 cbz r0, .L232 +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5483 .loc 1 2174 9 is_stmt 1 view .LVU1837 +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5484 .loc 1 2174 14 is_stmt 0 view .LVU1838 + 5485 006a E06F ldr r0, [r4, #124] +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5486 .loc 1 2174 22 view .LVU1839 + 5487 006c 836B ldr r3, [r0, #56] +2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5488 .loc 1 2174 9 view .LVU1840 + 5489 006e 9847 blx r3 + 5490 .LVL484: + 5491 0070 2AE0 b .L232 + 5492 .LVL485: + 5493 .L228: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5494 .loc 1 2154 5 is_stmt 1 discriminator 1 view .LVU1841 + 5495 .LBB769: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5496 .loc 1 2154 5 discriminator 1 view .LVU1842 +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5497 .loc 1 2154 5 discriminator 1 view .LVU1843 +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5498 .loc 1 2154 5 discriminator 1 view .LVU1844 + 5499 0072 2268 ldr r2, [r4] + 5500 .LVL486: + 5501 .LBB770: + 5502 .LBI770: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5503 .loc 2 1151 31 discriminator 1 view .LVU1845 + ARM GAS /tmp/cceWHrnJ.s page 219 + + + 5504 .LBB771: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5505 .loc 2 1153 5 discriminator 1 view .LVU1846 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5506 .loc 2 1155 4 discriminator 1 view .LVU1847 + 5507 .syntax unified + 5508 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5509 0074 52E8003F ldrex r3, [r2] + 5510 @ 0 "" 2 + 5511 .LVL487: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5512 .loc 2 1156 4 discriminator 1 view .LVU1848 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5513 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU1849 + 5514 .thumb + 5515 .syntax unified + 5516 .LBE771: + 5517 .LBE770: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5518 .loc 1 2154 5 discriminator 1 view .LVU1850 + 5519 0078 23F01003 bic r3, r3, #16 + 5520 .LVL488: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5521 .loc 1 2154 5 is_stmt 1 discriminator 1 view .LVU1851 + 5522 .LBB772: + 5523 .LBI772: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5524 .loc 2 1202 31 discriminator 1 view .LVU1852 + 5525 .LBB773: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5526 .loc 2 1204 4 discriminator 1 view .LVU1853 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5527 .loc 2 1206 4 discriminator 1 view .LVU1854 + 5528 .syntax unified + 5529 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5530 007c 42E80031 strex r1, r3, [r2] + 5531 @ 0 "" 2 + 5532 .LVL489: + 5533 .loc 2 1207 4 discriminator 1 view .LVU1855 + 5534 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU1856 + 5535 .thumb + 5536 .syntax unified + 5537 .LBE773: + 5538 .LBE772: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5539 .loc 1 2154 5 discriminator 1 view .LVU1857 + 5540 0080 0029 cmp r1, #0 + 5541 0082 F6D1 bne .L228 + 5542 0084 D8E7 b .L227 + 5543 .LVL490: + 5544 .L231: +2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5545 .loc 1 2154 5 discriminator 1 view .LVU1858 + 5546 .LBE769: +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5547 .loc 1 2180 7 is_stmt 1 view .LVU1859 +2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 220 + + + 5548 .loc 1 2180 26 is_stmt 0 view .LVU1860 + 5549 0086 0023 movs r3, #0 + 5550 0088 A4F85E30 strh r3, [r4, #94] @ movhi +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5551 .loc 1 2183 7 is_stmt 1 view .LVU1861 +2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5552 .loc 1 2183 25 is_stmt 0 view .LVU1862 + 5553 008c A365 str r3, [r4, #88] +2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5554 .loc 1 2186 7 is_stmt 1 view .LVU1863 + 5555 008e 2268 ldr r2, [r4] + 5556 0090 0F21 movs r1, #15 + 5557 0092 1162 str r1, [r2, #32] +2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5558 .loc 1 2189 7 view .LVU1864 + 5559 0094 2168 ldr r1, [r4] + 5560 0096 8A69 ldr r2, [r1, #24] + 5561 0098 42F00802 orr r2, r2, #8 + 5562 009c 8A61 str r2, [r1, #24] +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 5563 .loc 1 2192 7 view .LVU1865 +2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 5564 .loc 1 2192 22 is_stmt 0 view .LVU1866 + 5565 009e 2022 movs r2, #32 + 5566 00a0 C4F88820 str r2, [r4, #136] +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5567 .loc 1 2193 7 is_stmt 1 view .LVU1867 +2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5568 .loc 1 2193 28 is_stmt 0 view .LVU1868 + 5569 00a4 E366 str r3, [r4, #108] +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5570 .loc 1 2201 7 is_stmt 1 view .LVU1869 + 5571 00a6 2046 mov r0, r4 + 5572 .LVL491: +2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5573 .loc 1 2201 7 is_stmt 0 view .LVU1870 + 5574 00a8 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback + 5575 .LVL492: + 5576 00ac 0CE0 b .L232 + 5577 .LVL493: + 5578 .L229: +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5579 .loc 1 2208 5 is_stmt 1 view .LVU1871 +2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5580 .loc 1 2208 24 is_stmt 0 view .LVU1872 + 5581 00ae 0022 movs r2, #0 + 5582 00b0 A4F85E20 strh r2, [r4, #94] @ movhi +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5583 .loc 1 2211 5 is_stmt 1 view .LVU1873 +2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5584 .loc 1 2211 23 is_stmt 0 view .LVU1874 + 5585 00b4 A265 str r2, [r4, #88] +2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5586 .loc 1 2214 5 is_stmt 1 view .LVU1875 + 5587 00b6 0F21 movs r1, #15 + 5588 00b8 1962 str r1, [r3, #32] +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + ARM GAS /tmp/cceWHrnJ.s page 221 + + + 5589 .loc 1 2217 5 view .LVU1876 +2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 5590 .loc 1 2217 20 is_stmt 0 view .LVU1877 + 5591 00ba 2023 movs r3, #32 + 5592 00bc C4F88830 str r3, [r4, #136] +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5593 .loc 1 2218 5 is_stmt 1 view .LVU1878 +2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5594 .loc 1 2218 26 is_stmt 0 view .LVU1879 + 5595 00c0 E266 str r2, [r4, #108] +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5596 .loc 1 2226 5 is_stmt 1 view .LVU1880 + 5597 00c2 2046 mov r0, r4 + 5598 .LVL494: +2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5599 .loc 1 2226 5 is_stmt 0 view .LVU1881 + 5600 00c4 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback + 5601 .LVL495: + 5602 .L232: +2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5603 .loc 1 2230 3 is_stmt 1 view .LVU1882 +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5604 .loc 1 2231 1 is_stmt 0 view .LVU1883 + 5605 00c8 0020 movs r0, #0 + 5606 00ca 10BD pop {r4, pc} + 5607 .LVL496: + 5608 .L235: +2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5609 .loc 1 2231 1 view .LVU1884 + 5610 .align 2 + 5611 .L234: + 5612 00cc 00000000 .word UART_DMARxOnlyAbortCallback + 5613 .cfi_endproc + 5614 .LFE350: + 5616 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits + 5617 .align 1 + 5618 .syntax unified + 5619 .thumb + 5620 .thumb_func + 5622 UART_DMARxOnlyAbortCallback: + 5623 .LVL497: + 5624 .LFB389: +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5625 .loc 1 3955 1 is_stmt 1 view -0 + 5626 .cfi_startproc + 5627 @ args = 0, pretend = 0, frame = 0 + 5628 @ frame_needed = 0, uses_anonymous_args = 0 +3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + 5629 .loc 1 3955 1 is_stmt 0 view .LVU1886 + 5630 0000 08B5 push {r3, lr} + 5631 .LCFI23: + 5632 .cfi_def_cfa_offset 8 + 5633 .cfi_offset 3, -8 + 5634 .cfi_offset 14, -4 +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5635 .loc 1 3956 3 is_stmt 1 view .LVU1887 +3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 222 + + + 5636 .loc 1 3956 23 is_stmt 0 view .LVU1888 + 5637 0002 806A ldr r0, [r0, #40] + 5638 .LVL498: +3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5639 .loc 1 3958 3 is_stmt 1 view .LVU1889 +3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5640 .loc 1 3958 22 is_stmt 0 view .LVU1890 + 5641 0004 0022 movs r2, #0 + 5642 0006 A0F85E20 strh r2, [r0, #94] @ movhi +3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5643 .loc 1 3961 3 is_stmt 1 view .LVU1891 + 5644 000a 0368 ldr r3, [r0] + 5645 000c 0F21 movs r1, #15 + 5646 000e 1962 str r1, [r3, #32] +3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5647 .loc 1 3964 3 view .LVU1892 + 5648 0010 0168 ldr r1, [r0] + 5649 0012 8B69 ldr r3, [r1, #24] + 5650 0014 43F00803 orr r3, r3, #8 + 5651 0018 8B61 str r3, [r1, #24] +3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 5652 .loc 1 3967 3 view .LVU1893 +3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 5653 .loc 1 3967 18 is_stmt 0 view .LVU1894 + 5654 001a 2023 movs r3, #32 + 5655 001c C0F88830 str r3, [r0, #136] +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5656 .loc 1 3968 3 is_stmt 1 view .LVU1895 +3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5657 .loc 1 3968 24 is_stmt 0 view .LVU1896 + 5658 0020 C266 str r2, [r0, #108] +3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 5659 .loc 1 3976 3 is_stmt 1 view .LVU1897 + 5660 0022 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback + 5661 .LVL499: +3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5662 .loc 1 3978 1 is_stmt 0 view .LVU1898 + 5663 0026 08BD pop {r3, pc} + 5664 .cfi_endproc + 5665 .LFE389: + 5667 .section .text.HAL_UARTEx_RxEventCallback,"ax",%progbits + 5668 .align 1 + 5669 .weak HAL_UARTEx_RxEventCallback + 5670 .syntax unified + 5671 .thumb + 5672 .thumb_func + 5674 HAL_UARTEx_RxEventCallback: + 5675 .LVL500: + 5676 .LFB360: +2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ + 5677 .loc 1 2681 1 is_stmt 1 view -0 + 5678 .cfi_startproc + 5679 @ args = 0, pretend = 0, frame = 0 + 5680 @ frame_needed = 0, uses_anonymous_args = 0 + 5681 @ link register save eliminated. +2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(Size); + 5682 .loc 1 2683 3 view .LVU1900 + ARM GAS /tmp/cceWHrnJ.s page 223 + + +2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5683 .loc 1 2684 3 view .LVU1901 +2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5684 .loc 1 2689 1 is_stmt 0 view .LVU1902 + 5685 0000 7047 bx lr + 5686 .cfi_endproc + 5687 .LFE360: + 5689 .section .text.HAL_UART_IRQHandler,"ax",%progbits + 5690 .align 1 + 5691 .global HAL_UART_IRQHandler + 5692 .syntax unified + 5693 .thumb + 5694 .thumb_func + 5696 HAL_UART_IRQHandler: + 5697 .LVL501: + 5698 .LFB351: +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); + 5699 .loc 1 2239 1 is_stmt 1 view -0 + 5700 .cfi_startproc + 5701 @ args = 0, pretend = 0, frame = 0 + 5702 @ frame_needed = 0, uses_anonymous_args = 0 +2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); + 5703 .loc 1 2239 1 is_stmt 0 view .LVU1904 + 5704 0000 70B5 push {r4, r5, r6, lr} + 5705 .LCFI24: + 5706 .cfi_def_cfa_offset 16 + 5707 .cfi_offset 4, -16 + 5708 .cfi_offset 5, -12 + 5709 .cfi_offset 6, -8 + 5710 .cfi_offset 14, -4 + 5711 0002 0446 mov r4, r0 +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); + 5712 .loc 1 2240 3 is_stmt 1 view .LVU1905 +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); + 5713 .loc 1 2240 25 is_stmt 0 view .LVU1906 + 5714 0004 0268 ldr r2, [r0] +2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); + 5715 .loc 1 2240 12 view .LVU1907 + 5716 0006 D369 ldr r3, [r2, #28] + 5717 .LVL502: +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); + 5718 .loc 1 2241 3 is_stmt 1 view .LVU1908 +2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); + 5719 .loc 1 2241 12 is_stmt 0 view .LVU1909 + 5720 0008 1068 ldr r0, [r2] + 5721 .LVL503: +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5722 .loc 1 2242 3 is_stmt 1 view .LVU1910 +2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5723 .loc 1 2242 12 is_stmt 0 view .LVU1911 + 5724 000a 9168 ldr r1, [r2, #8] + 5725 .LVL504: +2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t errorcode; + 5726 .loc 1 2244 3 is_stmt 1 view .LVU1912 +2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5727 .loc 1 2245 3 view .LVU1913 +2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (errorflags == 0U) + ARM GAS /tmp/cceWHrnJ.s page 224 + + + 5728 .loc 1 2248 3 view .LVU1914 +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5729 .loc 1 2249 3 view .LVU1915 +2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5730 .loc 1 2249 6 is_stmt 0 view .LVU1916 + 5731 000c 40F60F0C movw ip, #2063 + 5732 0010 13EA0C0F tst r3, ip + 5733 0014 0DD1 bne .L240 +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + 5734 .loc 1 2252 5 is_stmt 1 view .LVU1917 +2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + 5735 .loc 1 2252 8 is_stmt 0 view .LVU1918 + 5736 0016 13F0200F tst r3, #32 + 5737 001a 10D0 beq .L241 +2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) + 5738 .loc 1 2253 9 view .LVU1919 + 5739 001c 10F0200F tst r0, #32 + 5740 0020 02D1 bne .L242 +2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5741 .loc 1 2254 13 view .LVU1920 + 5742 0022 11F0805F tst r1, #268435456 + 5743 0026 0AD0 beq .L241 + 5744 .L242: +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5745 .loc 1 2256 7 is_stmt 1 view .LVU1921 +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5746 .loc 1 2256 16 is_stmt 0 view .LVU1922 + 5747 0028 236F ldr r3, [r4, #112] + 5748 .LVL505: +2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5749 .loc 1 2256 10 view .LVU1923 + 5750 002a 93B3 cbz r3, .L239 +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5751 .loc 1 2258 9 is_stmt 1 view .LVU1924 + 5752 002c 2046 mov r0, r4 + 5753 .LVL506: +2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5754 .loc 1 2258 9 is_stmt 0 view .LVU1925 + 5755 002e 9847 blx r3 + 5756 .LVL507: +2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5757 .loc 1 2260 7 is_stmt 1 view .LVU1926 + 5758 0030 2FE0 b .L239 + 5759 .LVL508: + 5760 .L240: +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) + 5761 .loc 1 2266 21 is_stmt 0 view .LVU1927 + 5762 0032 B04D ldr r5, .L284 +2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) + 5763 .loc 1 2266 7 view .LVU1928 + 5764 0034 0D40 ands r5, r1, r5 + 5765 0036 2DD1 bne .L245 +2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5766 .loc 1 2267 12 view .LVU1929 + 5767 0038 AF4E ldr r6, .L284+4 + 5768 003a 3042 tst r0, r6 + 5769 003c 2AD1 bne .L245 + ARM GAS /tmp/cceWHrnJ.s page 225 + + + 5770 .L241: +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((isrflags & USART_ISR_IDLE) != 0U) + 5771 .loc 1 2404 3 is_stmt 1 view .LVU1930 +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((isrflags & USART_ISR_IDLE) != 0U) + 5772 .loc 1 2404 13 is_stmt 0 view .LVU1931 + 5773 003e E56E ldr r5, [r4, #108] +2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((isrflags & USART_ISR_IDLE) != 0U) + 5774 .loc 1 2404 6 view .LVU1932 + 5775 0040 012D cmp r5, #1 + 5776 0042 00F0BD80 beq .L279 + 5777 .L260: +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5778 .loc 1 2490 3 is_stmt 1 view .LVU1933 +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5779 .loc 1 2490 6 is_stmt 0 view .LVU1934 + 5780 0046 13F4801F tst r3, #1048576 + 5781 004a 03D0 beq .L272 +2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5782 .loc 1 2490 42 discriminator 1 view .LVU1935 + 5783 004c 11F4800F tst r1, #4194304 + 5784 0050 40F05681 bne .L280 + 5785 .L272: +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) + 5786 .loc 1 2508 3 is_stmt 1 view .LVU1936 +2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) + 5787 .loc 1 2508 6 is_stmt 0 view .LVU1937 + 5788 0054 13F0800F tst r3, #128 + 5789 0058 07D0 beq .L273 +2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_TXFTIE) != 0U))) + 5790 .loc 1 2509 7 view .LVU1938 + 5791 005a 10F0800F tst r0, #128 + 5792 005e 40F05681 bne .L274 +2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5793 .loc 1 2510 11 view .LVU1939 + 5794 0062 11F4000F tst r1, #8388608 + 5795 0066 40F05281 bne .L274 + 5796 .L273: +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5797 .loc 1 2520 3 is_stmt 1 view .LVU1940 +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5798 .loc 1 2520 6 is_stmt 0 view .LVU1941 + 5799 006a 13F0400F tst r3, #64 + 5800 006e 03D0 beq .L276 +2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5801 .loc 1 2520 41 discriminator 1 view .LVU1942 + 5802 0070 10F0400F tst r0, #64 + 5803 0074 40F05281 bne .L281 + 5804 .L276: +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5805 .loc 1 2527 3 is_stmt 1 view .LVU1943 +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5806 .loc 1 2527 6 is_stmt 0 view .LVU1944 + 5807 0078 13F4000F tst r3, #8388608 + 5808 007c 03D0 beq .L277 +2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5809 .loc 1 2527 43 discriminator 1 view .LVU1945 + 5810 007e 10F0804F tst r0, #1073741824 + ARM GAS /tmp/cceWHrnJ.s page 226 + + + 5811 0082 40F04F81 bne .L282 + 5812 .L277: +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5813 .loc 1 2540 3 is_stmt 1 view .LVU1946 +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5814 .loc 1 2540 6 is_stmt 0 view .LVU1947 + 5815 0086 13F0807F tst r3, #16777216 + 5816 008a 02D0 beq .L239 +2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5817 .loc 1 2540 43 discriminator 1 view .LVU1948 + 5818 008c 0028 cmp r0, #0 + 5819 008e C0F24D81 blt .L283 + 5820 .LVL509: + 5821 .L239: +2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5822 .loc 1 2551 1 view .LVU1949 + 5823 0092 70BD pop {r4, r5, r6, pc} + 5824 .LVL510: + 5825 .L245: +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5826 .loc 1 2270 5 is_stmt 1 view .LVU1950 +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5827 .loc 1 2270 8 is_stmt 0 view .LVU1951 + 5828 0094 13F0010F tst r3, #1 + 5829 0098 09D0 beq .L246 +2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5830 .loc 1 2270 43 discriminator 1 view .LVU1952 + 5831 009a 10F4807F tst r0, #256 + 5832 009e 06D0 beq .L246 +2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5833 .loc 1 2272 7 is_stmt 1 view .LVU1953 + 5834 00a0 0126 movs r6, #1 + 5835 00a2 1662 str r6, [r2, #32] +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5836 .loc 1 2274 7 view .LVU1954 +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5837 .loc 1 2274 12 is_stmt 0 view .LVU1955 + 5838 00a4 D4F88C20 ldr r2, [r4, #140] +2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5839 .loc 1 2274 24 view .LVU1956 + 5840 00a8 3243 orrs r2, r2, r6 + 5841 00aa C4F88C20 str r2, [r4, #140] + 5842 .L246: +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5843 .loc 1 2278 5 is_stmt 1 view .LVU1957 +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5844 .loc 1 2278 8 is_stmt 0 view .LVU1958 + 5845 00ae 13F0020F tst r3, #2 + 5846 00b2 0BD0 beq .L247 +2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5847 .loc 1 2278 43 discriminator 1 view .LVU1959 + 5848 00b4 11F0010F tst r1, #1 + 5849 00b8 08D0 beq .L247 +2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5850 .loc 1 2280 7 is_stmt 1 view .LVU1960 + 5851 00ba 2268 ldr r2, [r4] + 5852 00bc 0226 movs r6, #2 + ARM GAS /tmp/cceWHrnJ.s page 227 + + + 5853 00be 1662 str r6, [r2, #32] +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5854 .loc 1 2282 7 view .LVU1961 +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5855 .loc 1 2282 12 is_stmt 0 view .LVU1962 + 5856 00c0 D4F88C20 ldr r2, [r4, #140] +2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5857 .loc 1 2282 24 view .LVU1963 + 5858 00c4 42F00402 orr r2, r2, #4 + 5859 00c8 C4F88C20 str r2, [r4, #140] + 5860 .L247: +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5861 .loc 1 2286 5 is_stmt 1 view .LVU1964 +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5862 .loc 1 2286 8 is_stmt 0 view .LVU1965 + 5863 00cc 13F0040F tst r3, #4 + 5864 00d0 0BD0 beq .L248 +2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5865 .loc 1 2286 43 discriminator 1 view .LVU1966 + 5866 00d2 11F0010F tst r1, #1 + 5867 00d6 08D0 beq .L248 +2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5868 .loc 1 2288 7 is_stmt 1 view .LVU1967 + 5869 00d8 2268 ldr r2, [r4] + 5870 00da 0426 movs r6, #4 + 5871 00dc 1662 str r6, [r2, #32] +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5872 .loc 1 2290 7 view .LVU1968 +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5873 .loc 1 2290 12 is_stmt 0 view .LVU1969 + 5874 00de D4F88C20 ldr r2, [r4, #140] +2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5875 .loc 1 2290 24 view .LVU1970 + 5876 00e2 42F00202 orr r2, r2, #2 + 5877 00e6 C4F88C20 str r2, [r4, #140] + 5878 .L248: +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || + 5879 .loc 1 2294 5 is_stmt 1 view .LVU1971 +2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || + 5880 .loc 1 2294 8 is_stmt 0 view .LVU1972 + 5881 00ea 13F0080F tst r3, #8 + 5882 00ee 0BD0 beq .L249 +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) + 5883 .loc 1 2295 9 view .LVU1973 + 5884 00f0 10F0200F tst r0, #32 + 5885 00f4 00D1 bne .L250 +2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) + 5886 .loc 1 2295 57 discriminator 1 view .LVU1974 + 5887 00f6 3DB1 cbz r5, .L249 + 5888 .L250: +2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5889 .loc 1 2298 7 is_stmt 1 view .LVU1975 + 5890 00f8 2268 ldr r2, [r4] + 5891 00fa 0825 movs r5, #8 + 5892 00fc 1562 str r5, [r2, #32] +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5893 .loc 1 2300 7 view .LVU1976 + ARM GAS /tmp/cceWHrnJ.s page 228 + + +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5894 .loc 1 2300 12 is_stmt 0 view .LVU1977 + 5895 00fe D4F88C20 ldr r2, [r4, #140] +2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5896 .loc 1 2300 24 view .LVU1978 + 5897 0102 2A43 orrs r2, r2, r5 + 5898 0104 C4F88C20 str r2, [r4, #140] + 5899 .L249: +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5900 .loc 1 2304 5 is_stmt 1 view .LVU1979 +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5901 .loc 1 2304 8 is_stmt 0 view .LVU1980 + 5902 0108 13F4006F tst r3, #2048 + 5903 010c 0CD0 beq .L251 +2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5904 .loc 1 2304 45 discriminator 1 view .LVU1981 + 5905 010e 10F0806F tst r0, #67108864 + 5906 0112 09D0 beq .L251 +2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5907 .loc 1 2306 7 is_stmt 1 view .LVU1982 + 5908 0114 2268 ldr r2, [r4] + 5909 0116 4FF40065 mov r5, #2048 + 5910 011a 1562 str r5, [r2, #32] +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5911 .loc 1 2308 7 view .LVU1983 +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5912 .loc 1 2308 12 is_stmt 0 view .LVU1984 + 5913 011c D4F88C20 ldr r2, [r4, #140] +2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5914 .loc 1 2308 24 view .LVU1985 + 5915 0120 42F02002 orr r2, r2, #32 + 5916 0124 C4F88C20 str r2, [r4, #140] + 5917 .L251: +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5918 .loc 1 2312 5 is_stmt 1 view .LVU1986 +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5919 .loc 1 2312 14 is_stmt 0 view .LVU1987 + 5920 0128 D4F88C20 ldr r2, [r4, #140] +2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5921 .loc 1 2312 8 view .LVU1988 + 5922 012c 002A cmp r2, #0 + 5923 012e B0D0 beq .L239 +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + 5924 .loc 1 2315 7 is_stmt 1 view .LVU1989 +2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) + 5925 .loc 1 2315 10 is_stmt 0 view .LVU1990 + 5926 0130 13F0200F tst r3, #32 + 5927 0134 09D0 beq .L253 +2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) + 5928 .loc 1 2316 11 view .LVU1991 + 5929 0136 10F0200F tst r0, #32 + 5930 013a 02D1 bne .L254 +2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5931 .loc 1 2317 15 view .LVU1992 + 5932 013c 11F0805F tst r1, #268435456 + 5933 0140 03D0 beq .L253 + 5934 .L254: + ARM GAS /tmp/cceWHrnJ.s page 229 + + +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5935 .loc 1 2319 9 is_stmt 1 view .LVU1993 +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5936 .loc 1 2319 18 is_stmt 0 view .LVU1994 + 5937 0142 236F ldr r3, [r4, #112] + 5938 .LVL511: +2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5939 .loc 1 2319 12 view .LVU1995 + 5940 0144 0BB1 cbz r3, .L253 +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5941 .loc 1 2321 11 is_stmt 1 view .LVU1996 + 5942 0146 2046 mov r0, r4 + 5943 .LVL512: +2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 5944 .loc 1 2321 11 is_stmt 0 view .LVU1997 + 5945 0148 9847 blx r3 + 5946 .LVL513: + 5947 .L253: +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + 5948 .loc 1 2330 7 is_stmt 1 view .LVU1998 +2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + 5949 .loc 1 2330 17 is_stmt 0 view .LVU1999 + 5950 014a D4F88C20 ldr r2, [r4, #140] + 5951 .LVL514: +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) + 5952 .loc 1 2331 7 is_stmt 1 view .LVU2000 +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) + 5953 .loc 1 2331 12 is_stmt 0 view .LVU2001 + 5954 014e 2368 ldr r3, [r4] + 5955 0150 9B68 ldr r3, [r3, #8] +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) + 5956 .loc 1 2331 10 view .LVU2002 + 5957 0152 13F0400F tst r3, #64 + 5958 0156 02D1 bne .L255 +2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) + 5959 .loc 1 2331 66 discriminator 1 view .LVU2003 + 5960 0158 12F0280F tst r2, #40 + 5961 015c 29D0 beq .L256 + 5962 .L255: +2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5963 .loc 1 2337 9 is_stmt 1 view .LVU2004 + 5964 015e 2046 mov r0, r4 + 5965 0160 FFF7FEFF bl UART_EndRxTransfer + 5966 .LVL515: +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5967 .loc 1 2340 9 view .LVU2005 +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5968 .loc 1 2340 13 is_stmt 0 view .LVU2006 + 5969 0164 2368 ldr r3, [r4] + 5970 0166 9B68 ldr r3, [r3, #8] +2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 5971 .loc 1 2340 12 view .LVU2007 + 5972 0168 13F0400F tst r3, #64 + 5973 016c 1DD0 beq .L257 + 5974 .L258: +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5975 .loc 1 2343 11 is_stmt 1 discriminator 1 view .LVU2008 + ARM GAS /tmp/cceWHrnJ.s page 230 + + + 5976 .LBB774: +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5977 .loc 1 2343 11 discriminator 1 view .LVU2009 +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5978 .loc 1 2343 11 discriminator 1 view .LVU2010 +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 5979 .loc 1 2343 11 discriminator 1 view .LVU2011 + 5980 016e 2268 ldr r2, [r4] + 5981 .LVL516: + 5982 .LBB775: + 5983 .LBI775: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 5984 .loc 2 1151 31 discriminator 1 view .LVU2012 + 5985 .LBB776: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 5986 .loc 2 1153 5 discriminator 1 view .LVU2013 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5987 .loc 2 1155 4 discriminator 1 view .LVU2014 + 5988 0170 02F10803 add r3, r2, #8 + 5989 .LVL517: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 5990 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2015 + 5991 .syntax unified + 5992 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 5993 0174 53E8003F ldrex r3, [r3] + 5994 @ 0 "" 2 + 5995 .LVL518: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5996 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2016 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 5997 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2017 + 5998 .thumb + 5999 .syntax unified + 6000 .LBE776: + 6001 .LBE775: +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6002 .loc 1 2343 11 discriminator 1 view .LVU2018 + 6003 0178 23F04003 bic r3, r3, #64 + 6004 .LVL519: +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6005 .loc 1 2343 11 is_stmt 1 discriminator 1 view .LVU2019 + 6006 .LBB777: + 6007 .LBI777: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6008 .loc 2 1202 31 discriminator 1 view .LVU2020 + 6009 .LBB778: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6010 .loc 2 1204 4 discriminator 1 view .LVU2021 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6011 .loc 2 1206 4 discriminator 1 view .LVU2022 + 6012 017c 0832 adds r2, r2, #8 + 6013 .LVL520: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6014 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2023 + 6015 .syntax unified + 6016 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6017 017e 42E80031 strex r1, r3, [r2] + ARM GAS /tmp/cceWHrnJ.s page 231 + + + 6018 @ 0 "" 2 + 6019 .LVL521: + 6020 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2024 + 6021 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2025 + 6022 .thumb + 6023 .syntax unified + 6024 .LBE778: + 6025 .LBE777: +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6026 .loc 1 2343 11 discriminator 1 view .LVU2026 + 6027 0182 0029 cmp r1, #0 + 6028 0184 F3D1 bne .L258 + 6029 .LBE774: +2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6030 .loc 1 2343 11 is_stmt 1 discriminator 2 view .LVU2027 +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6031 .loc 1 2346 11 discriminator 2 view .LVU2028 +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6032 .loc 1 2346 20 is_stmt 0 discriminator 2 view .LVU2029 + 6033 0186 E36F ldr r3, [r4, #124] + 6034 .LVL522: +2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6035 .loc 1 2346 14 discriminator 2 view .LVU2030 + 6036 0188 5BB1 cbz r3, .L259 +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6037 .loc 1 2350 13 is_stmt 1 view .LVU2031 +2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6038 .loc 1 2350 46 is_stmt 0 view .LVU2032 + 6039 018a 5C4A ldr r2, .L284+8 + 6040 018c 9A63 str r2, [r3, #56] +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6041 .loc 1 2353 13 is_stmt 1 view .LVU2033 +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6042 .loc 1 2353 17 is_stmt 0 view .LVU2034 + 6043 018e E06F ldr r0, [r4, #124] + 6044 0190 FFF7FEFF bl HAL_DMA_Abort_IT + 6045 .LVL523: +2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6046 .loc 1 2353 16 view .LVU2035 + 6047 0194 0028 cmp r0, #0 + 6048 0196 3FF47CAF beq .L239 +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6049 .loc 1 2356 15 is_stmt 1 view .LVU2036 +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6050 .loc 1 2356 20 is_stmt 0 view .LVU2037 + 6051 019a E06F ldr r0, [r4, #124] +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6052 .loc 1 2356 28 view .LVU2038 + 6053 019c 836B ldr r3, [r0, #56] +2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6054 .loc 1 2356 15 view .LVU2039 + 6055 019e 9847 blx r3 + 6056 .LVL524: + 6057 01a0 77E7 b .L239 + 6058 .L259: +2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6059 .loc 1 2367 13 is_stmt 1 view .LVU2040 + ARM GAS /tmp/cceWHrnJ.s page 232 + + + 6060 01a2 2046 mov r0, r4 + 6061 01a4 FFF7FEFF bl HAL_UART_ErrorCallback + 6062 .LVL525: + 6063 01a8 73E7 b .L239 + 6064 .LVL526: + 6065 .L257: +2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6066 .loc 1 2380 11 view .LVU2041 + 6067 01aa 2046 mov r0, r4 + 6068 01ac FFF7FEFF bl HAL_UART_ErrorCallback + 6069 .LVL527: + 6070 01b0 6FE7 b .L239 + 6071 .LVL528: + 6072 .L256: +2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6073 .loc 1 2393 9 view .LVU2042 + 6074 01b2 2046 mov r0, r4 + 6075 01b4 FFF7FEFF bl HAL_UART_ErrorCallback + 6076 .LVL529: +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6077 .loc 1 2395 9 view .LVU2043 +2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6078 .loc 1 2395 26 is_stmt 0 view .LVU2044 + 6079 01b8 0023 movs r3, #0 + 6080 01ba C4F88C30 str r3, [r4, #140] +2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6081 .loc 1 2398 5 is_stmt 1 view .LVU2045 + 6082 01be 68E7 b .L239 + 6083 .LVL530: + 6084 .L279: +2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((cr1its & USART_ISR_IDLE) != 0U)) + 6085 .loc 1 2405 7 is_stmt 0 view .LVU2046 + 6086 01c0 13F0100F tst r3, #16 + 6087 01c4 3FF43FAF beq .L260 +2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6088 .loc 1 2406 7 view .LVU2047 + 6089 01c8 10F0100F tst r0, #16 + 6090 01cc 3FF43BAF beq .L260 +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6091 .loc 1 2408 5 is_stmt 1 view .LVU2048 + 6092 01d0 1023 movs r3, #16 + 6093 .LVL531: +2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6094 .loc 1 2408 5 is_stmt 0 view .LVU2049 + 6095 01d2 1362 str r3, [r2, #32] +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6096 .loc 1 2411 5 is_stmt 1 view .LVU2050 +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6097 .loc 1 2411 9 is_stmt 0 view .LVU2051 + 6098 01d4 2368 ldr r3, [r4] + 6099 01d6 9B68 ldr r3, [r3, #8] +2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6100 .loc 1 2411 8 view .LVU2052 + 6101 01d8 13F0400F tst r3, #64 + 6102 01dc 4FD0 beq .L261 + 6103 .LBB779: +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) + ARM GAS /tmp/cceWHrnJ.s page 233 + + + 6104 .loc 1 2417 7 is_stmt 1 view .LVU2053 +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) + 6105 .loc 1 2417 50 is_stmt 0 view .LVU2054 + 6106 01de E26F ldr r2, [r4, #124] + 6107 01e0 1368 ldr r3, [r2] + 6108 01e2 5B68 ldr r3, [r3, #4] +2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) + 6109 .loc 1 2417 16 view .LVU2055 + 6110 01e4 9BB2 uxth r3, r3 + 6111 .LVL532: +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) + 6112 .loc 1 2418 7 is_stmt 1 view .LVU2056 +2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) + 6113 .loc 1 2418 10 is_stmt 0 view .LVU2057 + 6114 01e6 002B cmp r3, #0 + 6115 01e8 3FF453AF beq .L239 +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6116 .loc 1 2419 43 view .LVU2058 + 6117 01ec B4F85C10 ldrh r1, [r4, #92] + 6118 .LVL533: +2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6119 .loc 1 2419 11 view .LVU2059 + 6120 01f0 9942 cmp r1, r3 + 6121 01f2 7FF64EAF bls .L239 +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6122 .loc 1 2422 9 is_stmt 1 view .LVU2060 +2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6123 .loc 1 2422 28 is_stmt 0 view .LVU2061 + 6124 01f6 A4F85E30 strh r3, [r4, #94] @ movhi +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6125 .loc 1 2425 9 is_stmt 1 view .LVU2062 +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6126 .loc 1 2425 13 is_stmt 0 view .LVU2063 + 6127 01fa 1368 ldr r3, [r2] + 6128 .LVL534: +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6129 .loc 1 2425 13 view .LVU2064 + 6130 01fc 1B68 ldr r3, [r3] +2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6131 .loc 1 2425 12 view .LVU2065 + 6132 01fe 13F0200F tst r3, #32 + 6133 0202 31D1 bne .L263 + 6134 .L264: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6135 .loc 1 2428 11 is_stmt 1 discriminator 1 view .LVU2066 + 6136 .LBB780: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6137 .loc 1 2428 11 discriminator 1 view .LVU2067 +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6138 .loc 1 2428 11 discriminator 1 view .LVU2068 +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6139 .loc 1 2428 11 discriminator 1 view .LVU2069 + 6140 0204 2268 ldr r2, [r4] + 6141 .LVL535: + 6142 .LBB781: + 6143 .LBI781: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 234 + + + 6144 .loc 2 1151 31 discriminator 1 view .LVU2070 + 6145 .LBB782: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6146 .loc 2 1153 5 discriminator 1 view .LVU2071 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6147 .loc 2 1155 4 discriminator 1 view .LVU2072 + 6148 .syntax unified + 6149 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6150 0206 52E8003F ldrex r3, [r2] + 6151 @ 0 "" 2 + 6152 .LVL536: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6153 .loc 2 1156 4 discriminator 1 view .LVU2073 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6154 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2074 + 6155 .thumb + 6156 .syntax unified + 6157 .LBE782: + 6158 .LBE781: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6159 .loc 1 2428 11 discriminator 1 view .LVU2075 + 6160 020a 23F48073 bic r3, r3, #256 + 6161 .LVL537: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6162 .loc 1 2428 11 is_stmt 1 discriminator 1 view .LVU2076 + 6163 .LBB783: + 6164 .LBI783: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6165 .loc 2 1202 31 discriminator 1 view .LVU2077 + 6166 .LBB784: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6167 .loc 2 1204 4 discriminator 1 view .LVU2078 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6168 .loc 2 1206 4 discriminator 1 view .LVU2079 + 6169 .syntax unified + 6170 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6171 020e 42E80031 strex r1, r3, [r2] + 6172 @ 0 "" 2 + 6173 .LVL538: + 6174 .loc 2 1207 4 discriminator 1 view .LVU2080 + 6175 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2081 + 6176 .thumb + 6177 .syntax unified + 6178 .LBE784: + 6179 .LBE783: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6180 .loc 1 2428 11 discriminator 1 view .LVU2082 + 6181 0212 0029 cmp r1, #0 + 6182 0214 F6D1 bne .L264 + 6183 .LVL539: + 6184 .L265: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6185 .loc 1 2428 11 discriminator 1 view .LVU2083 + 6186 .LBE780: +2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 6187 .loc 1 2428 11 is_stmt 1 discriminator 1 view .LVU2084 +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 235 + + + 6188 .loc 1 2429 11 discriminator 1 view .LVU2085 + 6189 .LBB785: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6190 .loc 1 2429 11 discriminator 1 view .LVU2086 +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6191 .loc 1 2429 11 discriminator 1 view .LVU2087 +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6192 .loc 1 2429 11 discriminator 1 view .LVU2088 + 6193 0216 2268 ldr r2, [r4] + 6194 .LVL540: + 6195 .LBB786: + 6196 .LBI786: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6197 .loc 2 1151 31 discriminator 1 view .LVU2089 + 6198 .LBB787: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6199 .loc 2 1153 5 discriminator 1 view .LVU2090 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6200 .loc 2 1155 4 discriminator 1 view .LVU2091 + 6201 0218 02F10803 add r3, r2, #8 + 6202 .LVL541: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6203 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2092 + 6204 .syntax unified + 6205 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6206 021c 53E8003F ldrex r3, [r3] + 6207 @ 0 "" 2 + 6208 .LVL542: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6209 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2093 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6210 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2094 + 6211 .thumb + 6212 .syntax unified + 6213 .LBE787: + 6214 .LBE786: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6215 .loc 1 2429 11 discriminator 1 view .LVU2095 + 6216 0220 23F00103 bic r3, r3, #1 + 6217 .LVL543: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6218 .loc 1 2429 11 is_stmt 1 discriminator 1 view .LVU2096 + 6219 .LBB788: + 6220 .LBI788: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6221 .loc 2 1202 31 discriminator 1 view .LVU2097 + 6222 .LBB789: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6223 .loc 2 1204 4 discriminator 1 view .LVU2098 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6224 .loc 2 1206 4 discriminator 1 view .LVU2099 + 6225 0224 0832 adds r2, r2, #8 + 6226 .LVL544: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6227 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2100 + 6228 .syntax unified + 6229 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + ARM GAS /tmp/cceWHrnJ.s page 236 + + + 6230 0226 42E80031 strex r1, r3, [r2] + 6231 @ 0 "" 2 + 6232 .LVL545: + 6233 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2101 + 6234 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2102 + 6235 .thumb + 6236 .syntax unified + 6237 .LBE789: + 6238 .LBE788: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6239 .loc 1 2429 11 discriminator 1 view .LVU2103 + 6240 022a 0029 cmp r1, #0 + 6241 022c F3D1 bne .L265 + 6242 .LVL546: + 6243 .L266: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6244 .loc 1 2429 11 discriminator 1 view .LVU2104 + 6245 .LBE785: +2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6246 .loc 1 2429 11 is_stmt 1 discriminator 1 view .LVU2105 +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6247 .loc 1 2433 11 discriminator 1 view .LVU2106 + 6248 .LBB790: +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6249 .loc 1 2433 11 discriminator 1 view .LVU2107 +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6250 .loc 1 2433 11 discriminator 1 view .LVU2108 +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6251 .loc 1 2433 11 discriminator 1 view .LVU2109 + 6252 022e 2268 ldr r2, [r4] + 6253 .LVL547: + 6254 .LBB791: + 6255 .LBI791: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6256 .loc 2 1151 31 discriminator 1 view .LVU2110 + 6257 .LBB792: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6258 .loc 2 1153 5 discriminator 1 view .LVU2111 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6259 .loc 2 1155 4 discriminator 1 view .LVU2112 + 6260 0230 02F10803 add r3, r2, #8 + 6261 .LVL548: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6262 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2113 + 6263 .syntax unified + 6264 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6265 0234 53E8003F ldrex r3, [r3] + 6266 @ 0 "" 2 + 6267 .LVL549: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6268 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2114 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6269 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2115 + 6270 .thumb + 6271 .syntax unified + 6272 .LBE792: + 6273 .LBE791: + ARM GAS /tmp/cceWHrnJ.s page 237 + + +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6274 .loc 1 2433 11 discriminator 1 view .LVU2116 + 6275 0238 23F04003 bic r3, r3, #64 + 6276 .LVL550: +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6277 .loc 1 2433 11 is_stmt 1 discriminator 1 view .LVU2117 + 6278 .LBB793: + 6279 .LBI793: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6280 .loc 2 1202 31 discriminator 1 view .LVU2118 + 6281 .LBB794: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6282 .loc 2 1204 4 discriminator 1 view .LVU2119 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6283 .loc 2 1206 4 discriminator 1 view .LVU2120 + 6284 023c 0832 adds r2, r2, #8 + 6285 .LVL551: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6286 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2121 + 6287 .syntax unified + 6288 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6289 023e 42E80031 strex r1, r3, [r2] + 6290 @ 0 "" 2 + 6291 .LVL552: + 6292 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2122 + 6293 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2123 + 6294 .thumb + 6295 .syntax unified + 6296 .LBE794: + 6297 .LBE793: +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6298 .loc 1 2433 11 discriminator 1 view .LVU2124 + 6299 0242 0029 cmp r1, #0 + 6300 0244 F3D1 bne .L266 + 6301 .LBE790: +2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6302 .loc 1 2433 11 is_stmt 1 discriminator 2 view .LVU2125 +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 6303 .loc 1 2436 11 discriminator 2 view .LVU2126 +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 6304 .loc 1 2436 26 is_stmt 0 discriminator 2 view .LVU2127 + 6305 0246 2023 movs r3, #32 + 6306 .LVL553: +2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 6307 .loc 1 2436 26 discriminator 2 view .LVU2128 + 6308 0248 C4F88830 str r3, [r4, #136] + 6309 .LVL554: +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6310 .loc 1 2437 11 is_stmt 1 discriminator 2 view .LVU2129 +2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6311 .loc 1 2437 32 is_stmt 0 discriminator 2 view .LVU2130 + 6312 024c 0023 movs r3, #0 + 6313 024e E366 str r3, [r4, #108] + 6314 .L267: +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6315 .loc 1 2439 11 is_stmt 1 discriminator 1 view .LVU2131 + 6316 .LBB795: + ARM GAS /tmp/cceWHrnJ.s page 238 + + +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6317 .loc 1 2439 11 discriminator 1 view .LVU2132 +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6318 .loc 1 2439 11 discriminator 1 view .LVU2133 +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6319 .loc 1 2439 11 discriminator 1 view .LVU2134 + 6320 0250 2268 ldr r2, [r4] + 6321 .LVL555: + 6322 .LBB796: + 6323 .LBI796: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6324 .loc 2 1151 31 discriminator 1 view .LVU2135 + 6325 .LBB797: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6326 .loc 2 1153 5 discriminator 1 view .LVU2136 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6327 .loc 2 1155 4 discriminator 1 view .LVU2137 + 6328 .syntax unified + 6329 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6330 0252 52E8003F ldrex r3, [r2] + 6331 @ 0 "" 2 + 6332 .LVL556: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6333 .loc 2 1156 4 discriminator 1 view .LVU2138 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6334 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2139 + 6335 .thumb + 6336 .syntax unified + 6337 .LBE797: + 6338 .LBE796: +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6339 .loc 1 2439 11 discriminator 1 view .LVU2140 + 6340 0256 23F01003 bic r3, r3, #16 + 6341 .LVL557: +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6342 .loc 1 2439 11 is_stmt 1 discriminator 1 view .LVU2141 + 6343 .LBB798: + 6344 .LBI798: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6345 .loc 2 1202 31 discriminator 1 view .LVU2142 + 6346 .LBB799: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6347 .loc 2 1204 4 discriminator 1 view .LVU2143 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6348 .loc 2 1206 4 discriminator 1 view .LVU2144 + 6349 .syntax unified + 6350 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6351 025a 42E80031 strex r1, r3, [r2] + 6352 @ 0 "" 2 + 6353 .LVL558: + 6354 .loc 2 1207 4 discriminator 1 view .LVU2145 + 6355 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2146 + 6356 .thumb + 6357 .syntax unified + 6358 .LBE799: + 6359 .LBE798: +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 239 + + + 6360 .loc 1 2439 11 discriminator 1 view .LVU2147 + 6361 025e 0029 cmp r1, #0 + 6362 0260 F6D1 bne .L267 + 6363 .LBE795: +2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6364 .loc 1 2439 11 is_stmt 1 discriminator 2 view .LVU2148 +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6365 .loc 1 2442 11 discriminator 2 view .LVU2149 +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6366 .loc 1 2442 17 is_stmt 0 discriminator 2 view .LVU2150 + 6367 0262 E06F ldr r0, [r4, #124] + 6368 .LVL559: +2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6369 .loc 1 2442 17 discriminator 2 view .LVU2151 + 6370 0264 FFF7FEFF bl HAL_DMA_Abort + 6371 .LVL560: + 6372 .L263: +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6373 .loc 1 2449 9 is_stmt 1 view .LVU2152 +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6374 .loc 1 2449 49 is_stmt 0 view .LVU2153 + 6375 0268 B4F85C10 ldrh r1, [r4, #92] +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6376 .loc 1 2449 69 view .LVU2154 + 6377 026c B4F85E30 ldrh r3, [r4, #94] + 6378 0270 9BB2 uxth r3, r3 +2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6379 .loc 1 2449 9 view .LVU2155 + 6380 0272 C91A subs r1, r1, r3 + 6381 0274 89B2 uxth r1, r1 + 6382 0276 2046 mov r0, r4 + 6383 0278 FFF7FEFF bl HAL_UARTEx_RxEventCallback + 6384 .LVL561: +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6385 .loc 1 2452 7 is_stmt 1 view .LVU2156 + 6386 027c 09E7 b .L239 + 6387 .LVL562: + 6388 .L261: +2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6389 .loc 1 2452 7 is_stmt 0 view .LVU2157 + 6390 .LBE779: + 6391 .LBB800: +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) + 6392 .loc 1 2459 7 is_stmt 1 view .LVU2158 +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) + 6393 .loc 1 2459 34 is_stmt 0 view .LVU2159 + 6394 027e B4F85C10 ldrh r1, [r4, #92] + 6395 .LVL563: +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) + 6396 .loc 1 2459 54 view .LVU2160 + 6397 0282 B4F85E30 ldrh r3, [r4, #94] + 6398 0286 9BB2 uxth r3, r3 +2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) + 6399 .loc 1 2459 16 view .LVU2161 + 6400 0288 C91A subs r1, r1, r3 + 6401 028a 89B2 uxth r1, r1 + 6402 .LVL564: + ARM GAS /tmp/cceWHrnJ.s page 240 + + +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) + 6403 .loc 1 2460 7 is_stmt 1 view .LVU2162 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) + 6404 .loc 1 2460 17 is_stmt 0 view .LVU2163 + 6405 028c B4F85E30 ldrh r3, [r4, #94] + 6406 0290 9BB2 uxth r3, r3 +2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) + 6407 .loc 1 2460 10 view .LVU2164 + 6408 0292 002B cmp r3, #0 + 6409 0294 3FF4FDAE beq .L239 +2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6410 .loc 1 2461 11 view .LVU2165 + 6411 0298 0029 cmp r1, #0 + 6412 029a 3FF4FAAE beq .L239 + 6413 .LVL565: + 6414 .L269: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6415 .loc 1 2464 9 is_stmt 1 discriminator 1 view .LVU2166 + 6416 .LBB801: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6417 .loc 1 2464 9 discriminator 1 view .LVU2167 +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6418 .loc 1 2464 9 discriminator 1 view .LVU2168 +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6419 .loc 1 2464 9 discriminator 1 view .LVU2169 + 6420 029e 2268 ldr r2, [r4] + 6421 .LVL566: + 6422 .LBB802: + 6423 .LBI802: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6424 .loc 2 1151 31 discriminator 1 view .LVU2170 + 6425 .LBB803: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6426 .loc 2 1153 5 discriminator 1 view .LVU2171 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6427 .loc 2 1155 4 discriminator 1 view .LVU2172 + 6428 .syntax unified + 6429 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6430 02a0 52E8003F ldrex r3, [r2] + 6431 @ 0 "" 2 + 6432 .LVL567: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6433 .loc 2 1156 4 discriminator 1 view .LVU2173 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6434 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2174 + 6435 .thumb + 6436 .syntax unified + 6437 .LBE803: + 6438 .LBE802: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6439 .loc 1 2464 9 discriminator 1 view .LVU2175 + 6440 02a4 23F49073 bic r3, r3, #288 + 6441 .LVL568: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6442 .loc 1 2464 9 is_stmt 1 discriminator 1 view .LVU2176 + 6443 .LBB804: + 6444 .LBI804: + ARM GAS /tmp/cceWHrnJ.s page 241 + + +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6445 .loc 2 1202 31 discriminator 1 view .LVU2177 + 6446 .LBB805: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6447 .loc 2 1204 4 discriminator 1 view .LVU2178 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6448 .loc 2 1206 4 discriminator 1 view .LVU2179 + 6449 .syntax unified + 6450 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6451 02a8 42E80030 strex r0, r3, [r2] + 6452 @ 0 "" 2 + 6453 .LVL569: + 6454 .loc 2 1207 4 discriminator 1 view .LVU2180 + 6455 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2181 + 6456 .thumb + 6457 .syntax unified + 6458 .LBE805: + 6459 .LBE804: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6460 .loc 1 2464 9 discriminator 1 view .LVU2182 + 6461 02ac 0028 cmp r0, #0 + 6462 02ae F6D1 bne .L269 + 6463 .LVL570: + 6464 .L270: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6465 .loc 1 2464 9 discriminator 1 view .LVU2183 + 6466 .LBE801: +2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6467 .loc 1 2464 9 is_stmt 1 discriminator 1 view .LVU2184 +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6468 .loc 1 2467 9 discriminator 1 view .LVU2185 + 6469 .LBB806: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6470 .loc 1 2467 9 discriminator 1 view .LVU2186 +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6471 .loc 1 2467 9 discriminator 1 view .LVU2187 +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6472 .loc 1 2467 9 discriminator 1 view .LVU2188 + 6473 02b0 2268 ldr r2, [r4] + 6474 .LVL571: + 6475 .LBB807: + 6476 .LBI807: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6477 .loc 2 1151 31 discriminator 1 view .LVU2189 + 6478 .LBB808: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6479 .loc 2 1153 5 discriminator 1 view .LVU2190 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6480 .loc 2 1155 4 discriminator 1 view .LVU2191 + 6481 02b2 02F10803 add r3, r2, #8 + 6482 .LVL572: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6483 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2192 + 6484 .syntax unified + 6485 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6486 02b6 53E8003F ldrex r3, [r3] + 6487 @ 0 "" 2 + ARM GAS /tmp/cceWHrnJ.s page 242 + + + 6488 .LVL573: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6489 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2193 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6490 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2194 + 6491 .thumb + 6492 .syntax unified + 6493 .LBE808: + 6494 .LBE807: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6495 .loc 1 2467 9 discriminator 1 view .LVU2195 + 6496 02ba 23F08053 bic r3, r3, #268435456 + 6497 02be 23F00103 bic r3, r3, #1 + 6498 .LVL574: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6499 .loc 1 2467 9 is_stmt 1 discriminator 1 view .LVU2196 + 6500 .LBB809: + 6501 .LBI809: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6502 .loc 2 1202 31 discriminator 1 view .LVU2197 + 6503 .LBB810: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6504 .loc 2 1204 4 discriminator 1 view .LVU2198 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6505 .loc 2 1206 4 discriminator 1 view .LVU2199 + 6506 02c2 0832 adds r2, r2, #8 + 6507 .LVL575: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6508 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2200 + 6509 .syntax unified + 6510 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6511 02c4 42E80030 strex r0, r3, [r2] + 6512 @ 0 "" 2 + 6513 .LVL576: + 6514 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2201 + 6515 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2202 + 6516 .thumb + 6517 .syntax unified + 6518 .LBE810: + 6519 .LBE809: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6520 .loc 1 2467 9 discriminator 1 view .LVU2203 + 6521 02c8 0028 cmp r0, #0 + 6522 02ca F1D1 bne .L270 + 6523 .LBE806: +2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6524 .loc 1 2467 9 is_stmt 1 discriminator 2 view .LVU2204 +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 6525 .loc 1 2470 9 discriminator 2 view .LVU2205 +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 6526 .loc 1 2470 24 is_stmt 0 discriminator 2 view .LVU2206 + 6527 02cc 2023 movs r3, #32 + 6528 .LVL577: +2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 6529 .loc 1 2470 24 discriminator 2 view .LVU2207 + 6530 02ce C4F88830 str r3, [r4, #136] +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 243 + + + 6531 .loc 1 2471 9 is_stmt 1 discriminator 2 view .LVU2208 +2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6532 .loc 1 2471 30 is_stmt 0 discriminator 2 view .LVU2209 + 6533 02d2 0023 movs r3, #0 + 6534 02d4 E366 str r3, [r4, #108] +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6535 .loc 1 2474 9 is_stmt 1 discriminator 2 view .LVU2210 +2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6536 .loc 1 2474 22 is_stmt 0 discriminator 2 view .LVU2211 + 6537 02d6 2367 str r3, [r4, #112] + 6538 .L271: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6539 .loc 1 2476 9 is_stmt 1 discriminator 1 view .LVU2212 + 6540 .LBB811: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6541 .loc 1 2476 9 discriminator 1 view .LVU2213 +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6542 .loc 1 2476 9 discriminator 1 view .LVU2214 +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6543 .loc 1 2476 9 discriminator 1 view .LVU2215 + 6544 02d8 2268 ldr r2, [r4] + 6545 .LVL578: + 6546 .LBB812: + 6547 .LBI812: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6548 .loc 2 1151 31 discriminator 1 view .LVU2216 + 6549 .LBB813: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6550 .loc 2 1153 5 discriminator 1 view .LVU2217 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6551 .loc 2 1155 4 discriminator 1 view .LVU2218 + 6552 .syntax unified + 6553 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6554 02da 52E8003F ldrex r3, [r2] + 6555 @ 0 "" 2 + 6556 .LVL579: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6557 .loc 2 1156 4 discriminator 1 view .LVU2219 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6558 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2220 + 6559 .thumb + 6560 .syntax unified + 6561 .LBE813: + 6562 .LBE812: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6563 .loc 1 2476 9 discriminator 1 view .LVU2221 + 6564 02de 23F01003 bic r3, r3, #16 + 6565 .LVL580: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6566 .loc 1 2476 9 is_stmt 1 discriminator 1 view .LVU2222 + 6567 .LBB814: + 6568 .LBI814: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6569 .loc 2 1202 31 discriminator 1 view .LVU2223 + 6570 .LBB815: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6571 .loc 2 1204 4 discriminator 1 view .LVU2224 + ARM GAS /tmp/cceWHrnJ.s page 244 + + +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6572 .loc 2 1206 4 discriminator 1 view .LVU2225 + 6573 .syntax unified + 6574 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6575 02e2 42E80030 strex r0, r3, [r2] + 6576 @ 0 "" 2 + 6577 .LVL581: + 6578 .loc 2 1207 4 discriminator 1 view .LVU2226 + 6579 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2227 + 6580 .thumb + 6581 .syntax unified + 6582 .LBE815: + 6583 .LBE814: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6584 .loc 1 2476 9 discriminator 1 view .LVU2228 + 6585 02e6 0028 cmp r0, #0 + 6586 02e8 F6D1 bne .L271 + 6587 .LBE811: +2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 6588 .loc 1 2476 9 is_stmt 1 discriminator 2 view .LVU2229 +2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6589 .loc 1 2482 9 discriminator 2 view .LVU2230 + 6590 02ea 2046 mov r0, r4 + 6591 02ec FFF7FEFF bl HAL_UARTEx_RxEventCallback + 6592 .LVL582: +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6593 .loc 1 2485 7 discriminator 2 view .LVU2231 + 6594 02f0 CFE6 b .L239 + 6595 .L285: + 6596 02f2 00BF .align 2 + 6597 .L284: + 6598 02f4 01000010 .word 268435457 + 6599 02f8 20010004 .word 67109152 + 6600 02fc 00000000 .word UART_DMAAbortOnError + 6601 .LVL583: + 6602 .L280: +2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6603 .loc 1 2485 7 is_stmt 0 discriminator 2 view .LVU2232 + 6604 .LBE800: +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6605 .loc 1 2492 5 is_stmt 1 view .LVU2233 + 6606 0300 4FF48013 mov r3, #1048576 + 6607 .LVL584: +2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6608 .loc 1 2492 5 is_stmt 0 view .LVU2234 + 6609 0304 1362 str r3, [r2, #32] +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6610 .loc 1 2502 5 is_stmt 1 view .LVU2235 + 6611 0306 2046 mov r0, r4 + 6612 .LVL585: +2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6613 .loc 1 2502 5 is_stmt 0 view .LVU2236 + 6614 0308 FFF7FEFF bl HAL_UARTEx_WakeupCallback + 6615 .LVL586: +2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6616 .loc 1 2504 5 is_stmt 1 view .LVU2237 + 6617 030c C1E6 b .L239 + ARM GAS /tmp/cceWHrnJ.s page 245 + + + 6618 .LVL587: + 6619 .L274: +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6620 .loc 1 2512 5 view .LVU2238 +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6621 .loc 1 2512 14 is_stmt 0 view .LVU2239 + 6622 030e 636F ldr r3, [r4, #116] + 6623 .LVL588: +2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6624 .loc 1 2512 8 view .LVU2240 + 6625 0310 002B cmp r3, #0 + 6626 0312 3FF4BEAE beq .L239 +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6627 .loc 1 2514 7 is_stmt 1 view .LVU2241 + 6628 0316 2046 mov r0, r4 + 6629 .LVL589: +2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6630 .loc 1 2514 7 is_stmt 0 view .LVU2242 + 6631 0318 9847 blx r3 + 6632 .LVL590: +2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6633 .loc 1 2516 5 is_stmt 1 view .LVU2243 + 6634 031a BAE6 b .L239 + 6635 .LVL591: + 6636 .L281: +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; + 6637 .loc 1 2522 5 view .LVU2244 + 6638 031c 2046 mov r0, r4 + 6639 .LVL592: +2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; + 6640 .loc 1 2522 5 is_stmt 0 view .LVU2245 + 6641 031e FFF7FEFF bl UART_EndTransmit_IT + 6642 .LVL593: +2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6643 .loc 1 2523 5 is_stmt 1 view .LVU2246 + 6644 0322 B6E6 b .L239 + 6645 .LVL594: + 6646 .L282: +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6647 .loc 1 2534 5 view .LVU2247 + 6648 0324 2046 mov r0, r4 + 6649 .LVL595: +2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6650 .loc 1 2534 5 is_stmt 0 view .LVU2248 + 6651 0326 FFF7FEFF bl HAL_UARTEx_TxFifoEmptyCallback + 6652 .LVL596: +2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6653 .loc 1 2536 5 is_stmt 1 view .LVU2249 + 6654 032a B2E6 b .L239 + 6655 .LVL597: + 6656 .L283: +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6657 .loc 1 2547 5 view .LVU2250 + 6658 032c 2046 mov r0, r4 + 6659 .LVL598: +2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6660 .loc 1 2547 5 is_stmt 0 view .LVU2251 + ARM GAS /tmp/cceWHrnJ.s page 246 + + + 6661 032e FFF7FEFF bl HAL_UARTEx_RxFifoFullCallback + 6662 .LVL599: +2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6663 .loc 1 2549 5 is_stmt 1 view .LVU2252 + 6664 0332 AEE6 b .L239 + 6665 .cfi_endproc + 6666 .LFE351: + 6668 .section .text.UART_RxISR_8BIT,"ax",%progbits + 6669 .align 1 + 6670 .syntax unified + 6671 .thumb + 6672 .thumb_func + 6674 UART_RxISR_8BIT: + 6675 .LVL600: + 6676 .LFB395: +4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 7 or 8 bits data word length . +4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) +4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6677 .loc 1 4155 1 view -0 + 6678 .cfi_startproc + 6679 @ args = 0, pretend = 0, frame = 0 + 6680 @ frame_needed = 0, uses_anonymous_args = 0 + 6681 .loc 1 4155 1 is_stmt 0 view .LVU2254 + 6682 0000 08B5 push {r3, lr} + 6683 .LCFI25: + 6684 .cfi_def_cfa_offset 8 + 6685 .cfi_offset 3, -8 + 6686 .cfi_offset 14, -4 +4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; + 6687 .loc 1 4156 3 is_stmt 1 view .LVU2255 + 6688 .loc 1 4156 12 is_stmt 0 view .LVU2256 + 6689 0002 B0F86030 ldrh r3, [r0, #96] + 6690 .LVL601: +4157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; + 6691 .loc 1 4157 3 is_stmt 1 view .LVU2257 +4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ +4160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 6692 .loc 1 4160 3 view .LVU2258 + 6693 .loc 1 4160 12 is_stmt 0 view .LVU2259 + 6694 0006 D0F88820 ldr r2, [r0, #136] + 6695 .loc 1 4160 6 view .LVU2260 + 6696 000a 222A cmp r2, #34 + 6697 000c 05D0 beq .L295 +4161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); +4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; +4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; +4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) +4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 247 + + +4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupts */ +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); +4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +4174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ +4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set reception type to Standard */ +4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) +4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear IDLE Flag */ +4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); +4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); +4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ +4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ +4207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ +4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); +4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); +4213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +4214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ +4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 6698 .loc 1 4220 5 is_stmt 1 view .LVU2261 + 6699 000e 0268 ldr r2, [r0] + 6700 0010 9369 ldr r3, [r2, #24] + 6701 .LVL602: + 6702 .loc 1 4220 5 is_stmt 0 view .LVU2262 + ARM GAS /tmp/cceWHrnJ.s page 248 + + + 6703 0012 43F00803 orr r3, r3, #8 + 6704 0016 9361 str r3, [r2, #24] + 6705 .LVL603: + 6706 .L286: +4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6707 .loc 1 4222 1 view .LVU2263 + 6708 0018 08BD pop {r3, pc} + 6709 .LVL604: + 6710 .L295: +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + 6711 .loc 1 4162 5 is_stmt 1 view .LVU2264 +4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + 6712 .loc 1 4162 25 is_stmt 0 view .LVU2265 + 6713 001a 0268 ldr r2, [r0] + 6714 001c 516A ldr r1, [r2, #36] + 6715 .LVL605: +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 6716 .loc 1 4163 5 is_stmt 1 view .LVU2266 +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 6717 .loc 1 4163 45 is_stmt 0 view .LVU2267 + 6718 001e DBB2 uxtb r3, r3 + 6719 .LVL606: +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 6720 .loc 1 4163 11 view .LVU2268 + 6721 0020 826D ldr r2, [r0, #88] +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 6722 .loc 1 4163 26 view .LVU2269 + 6723 0022 0B40 ands r3, r3, r1 +4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 6724 .loc 1 4163 24 view .LVU2270 + 6725 0024 1370 strb r3, [r2] + 6726 .LVL607: +4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 6727 .loc 1 4164 5 is_stmt 1 view .LVU2271 +4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 6728 .loc 1 4164 10 is_stmt 0 view .LVU2272 + 6729 0026 836D ldr r3, [r0, #88] +4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 6730 .loc 1 4164 22 view .LVU2273 + 6731 0028 0133 adds r3, r3, #1 + 6732 002a 8365 str r3, [r0, #88] +4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6733 .loc 1 4165 5 is_stmt 1 view .LVU2274 +4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6734 .loc 1 4165 10 is_stmt 0 view .LVU2275 + 6735 002c B0F85E30 ldrh r3, [r0, #94] + 6736 0030 9BB2 uxth r3, r3 +4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6737 .loc 1 4165 23 view .LVU2276 + 6738 0032 013B subs r3, r3, #1 + 6739 0034 9BB2 uxth r3, r3 + 6740 0036 A0F85E30 strh r3, [r0, #94] @ movhi +4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6741 .loc 1 4167 5 is_stmt 1 view .LVU2277 +4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6742 .loc 1 4167 14 is_stmt 0 view .LVU2278 + ARM GAS /tmp/cceWHrnJ.s page 249 + + + 6743 003a B0F85E30 ldrh r3, [r0, #94] + 6744 003e 9BB2 uxth r3, r3 +4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6745 .loc 1 4167 8 view .LVU2279 + 6746 0040 002B cmp r3, #0 + 6747 0042 E9D1 bne .L286 + 6748 .LVL608: + 6749 .L289: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6750 .loc 1 4170 7 is_stmt 1 discriminator 1 view .LVU2280 + 6751 .LBB816: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6752 .loc 1 4170 7 discriminator 1 view .LVU2281 +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6753 .loc 1 4170 7 discriminator 1 view .LVU2282 +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6754 .loc 1 4170 7 discriminator 1 view .LVU2283 + 6755 0044 0268 ldr r2, [r0] + 6756 .LVL609: + 6757 .LBB817: + 6758 .LBI817: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6759 .loc 2 1151 31 discriminator 1 view .LVU2284 + 6760 .LBB818: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6761 .loc 2 1153 5 discriminator 1 view .LVU2285 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6762 .loc 2 1155 4 discriminator 1 view .LVU2286 + 6763 .syntax unified + 6764 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6765 0046 52E8003F ldrex r3, [r2] + 6766 @ 0 "" 2 + 6767 .LVL610: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6768 .loc 2 1156 4 discriminator 1 view .LVU2287 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6769 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2288 + 6770 .thumb + 6771 .syntax unified + 6772 .LBE818: + 6773 .LBE817: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6774 .loc 1 4170 7 discriminator 1 view .LVU2289 + 6775 004a 23F49073 bic r3, r3, #288 + 6776 .LVL611: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6777 .loc 1 4170 7 is_stmt 1 discriminator 1 view .LVU2290 + 6778 .LBB819: + 6779 .LBI819: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6780 .loc 2 1202 31 discriminator 1 view .LVU2291 + 6781 .LBB820: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6782 .loc 2 1204 4 discriminator 1 view .LVU2292 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6783 .loc 2 1206 4 discriminator 1 view .LVU2293 + 6784 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 250 + + + 6785 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6786 004e 42E80031 strex r1, r3, [r2] + 6787 @ 0 "" 2 + 6788 .LVL612: + 6789 .loc 2 1207 4 discriminator 1 view .LVU2294 + 6790 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2295 + 6791 .thumb + 6792 .syntax unified + 6793 .LBE820: + 6794 .LBE819: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6795 .loc 1 4170 7 discriminator 1 view .LVU2296 + 6796 0052 0029 cmp r1, #0 + 6797 0054 F6D1 bne .L289 + 6798 .LVL613: + 6799 .L290: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6800 .loc 1 4170 7 discriminator 1 view .LVU2297 + 6801 .LBE816: +4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6802 .loc 1 4170 7 is_stmt 1 discriminator 1 view .LVU2298 +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6803 .loc 1 4173 7 discriminator 1 view .LVU2299 + 6804 .LBB821: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6805 .loc 1 4173 7 discriminator 1 view .LVU2300 +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6806 .loc 1 4173 7 discriminator 1 view .LVU2301 +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6807 .loc 1 4173 7 discriminator 1 view .LVU2302 + 6808 0056 0268 ldr r2, [r0] + 6809 .LVL614: + 6810 .LBB822: + 6811 .LBI822: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6812 .loc 2 1151 31 discriminator 1 view .LVU2303 + 6813 .LBB823: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6814 .loc 2 1153 5 discriminator 1 view .LVU2304 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6815 .loc 2 1155 4 discriminator 1 view .LVU2305 + 6816 0058 02F10803 add r3, r2, #8 + 6817 .LVL615: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6818 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2306 + 6819 .syntax unified + 6820 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6821 005c 53E8003F ldrex r3, [r3] + 6822 @ 0 "" 2 + 6823 .LVL616: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6824 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2307 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6825 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2308 + 6826 .thumb + 6827 .syntax unified + 6828 .LBE823: + ARM GAS /tmp/cceWHrnJ.s page 251 + + + 6829 .LBE822: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6830 .loc 1 4173 7 discriminator 1 view .LVU2309 + 6831 0060 23F00103 bic r3, r3, #1 + 6832 .LVL617: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6833 .loc 1 4173 7 is_stmt 1 discriminator 1 view .LVU2310 + 6834 .LBB824: + 6835 .LBI824: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6836 .loc 2 1202 31 discriminator 1 view .LVU2311 + 6837 .LBB825: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6838 .loc 2 1204 4 discriminator 1 view .LVU2312 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6839 .loc 2 1206 4 discriminator 1 view .LVU2313 + 6840 0064 0832 adds r2, r2, #8 + 6841 .LVL618: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6842 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2314 + 6843 .syntax unified + 6844 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6845 0066 42E80031 strex r1, r3, [r2] + 6846 @ 0 "" 2 + 6847 .LVL619: + 6848 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2315 + 6849 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2316 + 6850 .thumb + 6851 .syntax unified + 6852 .LBE825: + 6853 .LBE824: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6854 .loc 1 4173 7 discriminator 1 view .LVU2317 + 6855 006a 0029 cmp r1, #0 + 6856 006c F3D1 bne .L290 + 6857 .LBE821: +4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6858 .loc 1 4173 7 is_stmt 1 discriminator 2 view .LVU2318 +4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6859 .loc 1 4176 7 discriminator 2 view .LVU2319 +4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6860 .loc 1 4176 22 is_stmt 0 discriminator 2 view .LVU2320 + 6861 006e 2023 movs r3, #32 + 6862 .LVL620: +4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6863 .loc 1 4176 22 discriminator 2 view .LVU2321 + 6864 0070 C0F88830 str r3, [r0, #136] +4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6865 .loc 1 4179 7 is_stmt 1 discriminator 2 view .LVU2322 +4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6866 .loc 1 4179 20 is_stmt 0 discriminator 2 view .LVU2323 + 6867 0074 0023 movs r3, #0 + 6868 0076 0367 str r3, [r0, #112] +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6869 .loc 1 4183 7 is_stmt 1 discriminator 2 view .LVU2324 +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6870 .loc 1 4183 16 is_stmt 0 discriminator 2 view .LVU2325 + ARM GAS /tmp/cceWHrnJ.s page 252 + + + 6871 0078 C36E ldr r3, [r0, #108] +4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6872 .loc 1 4183 10 discriminator 2 view .LVU2326 + 6873 007a 012B cmp r3, #1 + 6874 007c 16D1 bne .L291 +4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6875 .loc 1 4186 9 is_stmt 1 view .LVU2327 +4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6876 .loc 1 4186 30 is_stmt 0 view .LVU2328 + 6877 007e 0023 movs r3, #0 + 6878 0080 C366 str r3, [r0, #108] + 6879 .L292: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6880 .loc 1 4189 9 is_stmt 1 discriminator 1 view .LVU2329 + 6881 .LBB826: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6882 .loc 1 4189 9 discriminator 1 view .LVU2330 +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6883 .loc 1 4189 9 discriminator 1 view .LVU2331 +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6884 .loc 1 4189 9 discriminator 1 view .LVU2332 + 6885 0082 0268 ldr r2, [r0] + 6886 .LVL621: + 6887 .LBB827: + 6888 .LBI827: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6889 .loc 2 1151 31 discriminator 1 view .LVU2333 + 6890 .LBB828: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 6891 .loc 2 1153 5 discriminator 1 view .LVU2334 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6892 .loc 2 1155 4 discriminator 1 view .LVU2335 + 6893 .syntax unified + 6894 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6895 0084 52E8003F ldrex r3, [r2] + 6896 @ 0 "" 2 + 6897 .LVL622: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6898 .loc 2 1156 4 discriminator 1 view .LVU2336 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 6899 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2337 + 6900 .thumb + 6901 .syntax unified + 6902 .LBE828: + 6903 .LBE827: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6904 .loc 1 4189 9 discriminator 1 view .LVU2338 + 6905 0088 23F01003 bic r3, r3, #16 + 6906 .LVL623: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6907 .loc 1 4189 9 is_stmt 1 discriminator 1 view .LVU2339 + 6908 .LBB829: + 6909 .LBI829: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 6910 .loc 2 1202 31 discriminator 1 view .LVU2340 + 6911 .LBB830: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/cceWHrnJ.s page 253 + + + 6912 .loc 2 1204 4 discriminator 1 view .LVU2341 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 6913 .loc 2 1206 4 discriminator 1 view .LVU2342 + 6914 .syntax unified + 6915 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 6916 008c 42E80031 strex r1, r3, [r2] + 6917 @ 0 "" 2 + 6918 .LVL624: + 6919 .loc 2 1207 4 discriminator 1 view .LVU2343 + 6920 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2344 + 6921 .thumb + 6922 .syntax unified + 6923 .LBE830: + 6924 .LBE829: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6925 .loc 1 4189 9 discriminator 1 view .LVU2345 + 6926 0090 0029 cmp r1, #0 + 6927 0092 F6D1 bne .L292 + 6928 .LBE826: +4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 6929 .loc 1 4189 9 is_stmt 1 discriminator 2 view .LVU2346 +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6930 .loc 1 4191 9 discriminator 2 view .LVU2347 +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6931 .loc 1 4191 13 is_stmt 0 discriminator 2 view .LVU2348 + 6932 0094 0368 ldr r3, [r0] + 6933 .LVL625: +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6934 .loc 1 4191 13 discriminator 2 view .LVU2349 + 6935 0096 DA69 ldr r2, [r3, #28] +4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6936 .loc 1 4191 12 discriminator 2 view .LVU2350 + 6937 0098 12F0100F tst r2, #16 + 6938 009c 01D0 beq .L293 +4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6939 .loc 1 4194 11 is_stmt 1 view .LVU2351 + 6940 009e 1022 movs r2, #16 + 6941 00a0 1A62 str r2, [r3, #32] + 6942 .L293: +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6943 .loc 1 4201 9 view .LVU2352 + 6944 00a2 B0F85C10 ldrh r1, [r0, #92] + 6945 00a6 FFF7FEFF bl HAL_UARTEx_RxEventCallback + 6946 .LVL626: +4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 6947 .loc 1 4201 9 is_stmt 0 view .LVU2353 + 6948 00aa B5E7 b .L286 + 6949 .LVL627: + 6950 .L291: +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6951 .loc 1 4212 9 is_stmt 1 view .LVU2354 + 6952 00ac FFF7FEFF bl HAL_UART_RxCpltCallback + 6953 .LVL628: +4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 6954 .loc 1 4212 9 is_stmt 0 view .LVU2355 + 6955 00b0 B2E7 b .L286 + 6956 .cfi_endproc + ARM GAS /tmp/cceWHrnJ.s page 254 + + + 6957 .LFE395: + 6959 .section .text.UART_RxISR_16BIT,"ax",%progbits + 6960 .align 1 + 6961 .syntax unified + 6962 .thumb + 6963 .thumb_func + 6965 UART_RxISR_16BIT: + 6966 .LVL629: + 6967 .LFB396: +4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 9 bits data word length . +4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT() +4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) +4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 6968 .loc 1 4232 1 is_stmt 1 view -0 + 6969 .cfi_startproc + 6970 @ args = 0, pretend = 0, frame = 0 + 6971 @ frame_needed = 0, uses_anonymous_args = 0 + 6972 .loc 1 4232 1 is_stmt 0 view .LVU2357 + 6973 0000 08B5 push {r3, lr} + 6974 .LCFI26: + 6975 .cfi_def_cfa_offset 8 + 6976 .cfi_offset 3, -8 + 6977 .cfi_offset 14, -4 +4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; + 6978 .loc 1 4233 3 is_stmt 1 view .LVU2358 +4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; + 6979 .loc 1 4234 3 view .LVU2359 + 6980 .loc 1 4234 12 is_stmt 0 view .LVU2360 + 6981 0002 B0F86020 ldrh r2, [r0, #96] + 6982 .LVL630: +4235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; + 6983 .loc 1 4235 3 is_stmt 1 view .LVU2361 +4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ +4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 6984 .loc 1 4238 3 view .LVU2362 + 6985 .loc 1 4238 12 is_stmt 0 view .LVU2363 + 6986 0006 D0F88830 ldr r3, [r0, #136] + 6987 .loc 1 4238 6 view .LVU2364 + 6988 000a 222B cmp r3, #34 + 6989 000c 05D0 beq .L305 +4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); +4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); +4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; +4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; +4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) +4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupt*/ + ARM GAS /tmp/cceWHrnJ.s page 255 + + +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); +4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); +4253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set reception type to Standard */ +4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) +4271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear IDLE Flag */ +4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); +4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); +4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +4281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ +4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ +4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ +4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); +4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ +4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); +4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ +4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 6990 .loc 1 4299 5 is_stmt 1 view .LVU2365 + 6991 000e 0268 ldr r2, [r0] + 6992 .LVL631: + 6993 .loc 1 4299 5 is_stmt 0 view .LVU2366 + 6994 0010 9369 ldr r3, [r2, #24] + 6995 0012 43F00803 orr r3, r3, #8 + ARM GAS /tmp/cceWHrnJ.s page 256 + + + 6996 0016 9361 str r3, [r2, #24] + 6997 .LVL632: + 6998 .L296: +4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 6999 .loc 1 4301 1 view .LVU2367 + 7000 0018 08BD pop {r3, pc} + 7001 .LVL633: + 7002 .L305: +4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; + 7003 .loc 1 4240 5 is_stmt 1 view .LVU2368 +4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; + 7004 .loc 1 4240 25 is_stmt 0 view .LVU2369 + 7005 001a 0368 ldr r3, [r0] + 7006 001c 5B6A ldr r3, [r3, #36] + 7007 .LVL634: +4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); + 7008 .loc 1 4241 5 is_stmt 1 view .LVU2370 +4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); + 7009 .loc 1 4241 9 is_stmt 0 view .LVU2371 + 7010 001e 816D ldr r1, [r0, #88] + 7011 .LVL635: +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; + 7012 .loc 1 4242 5 is_stmt 1 view .LVU2372 +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; + 7013 .loc 1 4242 12 is_stmt 0 view .LVU2373 + 7014 0020 1340 ands r3, r3, r2 + 7015 .LVL636: +4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; + 7016 .loc 1 4242 10 view .LVU2374 + 7017 0022 0B80 strh r3, [r1] @ movhi +4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7018 .loc 1 4243 5 is_stmt 1 view .LVU2375 +4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7019 .loc 1 4243 10 is_stmt 0 view .LVU2376 + 7020 0024 836D ldr r3, [r0, #88] +4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7021 .loc 1 4243 23 view .LVU2377 + 7022 0026 0233 adds r3, r3, #2 + 7023 0028 8365 str r3, [r0, #88] +4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7024 .loc 1 4244 5 is_stmt 1 view .LVU2378 +4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7025 .loc 1 4244 10 is_stmt 0 view .LVU2379 + 7026 002a B0F85E30 ldrh r3, [r0, #94] + 7027 002e 9BB2 uxth r3, r3 +4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7028 .loc 1 4244 23 view .LVU2380 + 7029 0030 013B subs r3, r3, #1 + 7030 0032 9BB2 uxth r3, r3 + 7031 0034 A0F85E30 strh r3, [r0, #94] @ movhi +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7032 .loc 1 4246 5 is_stmt 1 view .LVU2381 +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7033 .loc 1 4246 14 is_stmt 0 view .LVU2382 + 7034 0038 B0F85E30 ldrh r3, [r0, #94] + 7035 003c 9BB2 uxth r3, r3 + ARM GAS /tmp/cceWHrnJ.s page 257 + + +4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7036 .loc 1 4246 8 view .LVU2383 + 7037 003e 002B cmp r3, #0 + 7038 0040 EAD1 bne .L296 + 7039 .LVL637: + 7040 .L299: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7041 .loc 1 4249 7 is_stmt 1 discriminator 1 view .LVU2384 + 7042 .LBB831: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7043 .loc 1 4249 7 discriminator 1 view .LVU2385 +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7044 .loc 1 4249 7 discriminator 1 view .LVU2386 +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7045 .loc 1 4249 7 discriminator 1 view .LVU2387 + 7046 0042 0268 ldr r2, [r0] + 7047 .LVL638: + 7048 .LBB832: + 7049 .LBI832: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7050 .loc 2 1151 31 discriminator 1 view .LVU2388 + 7051 .LBB833: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7052 .loc 2 1153 5 discriminator 1 view .LVU2389 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7053 .loc 2 1155 4 discriminator 1 view .LVU2390 + 7054 .syntax unified + 7055 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7056 0044 52E8003F ldrex r3, [r2] + 7057 @ 0 "" 2 + 7058 .LVL639: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7059 .loc 2 1156 4 discriminator 1 view .LVU2391 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7060 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2392 + 7061 .thumb + 7062 .syntax unified + 7063 .LBE833: + 7064 .LBE832: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7065 .loc 1 4249 7 discriminator 1 view .LVU2393 + 7066 0048 23F49073 bic r3, r3, #288 + 7067 .LVL640: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7068 .loc 1 4249 7 is_stmt 1 discriminator 1 view .LVU2394 + 7069 .LBB834: + 7070 .LBI834: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7071 .loc 2 1202 31 discriminator 1 view .LVU2395 + 7072 .LBB835: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7073 .loc 2 1204 4 discriminator 1 view .LVU2396 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7074 .loc 2 1206 4 discriminator 1 view .LVU2397 + 7075 .syntax unified + 7076 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7077 004c 42E80031 strex r1, r3, [r2] + ARM GAS /tmp/cceWHrnJ.s page 258 + + + 7078 @ 0 "" 2 + 7079 .LVL641: + 7080 .loc 2 1207 4 discriminator 1 view .LVU2398 + 7081 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2399 + 7082 .thumb + 7083 .syntax unified + 7084 .LBE835: + 7085 .LBE834: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7086 .loc 1 4249 7 discriminator 1 view .LVU2400 + 7087 0050 0029 cmp r1, #0 + 7088 0052 F6D1 bne .L299 + 7089 .LVL642: + 7090 .L300: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7091 .loc 1 4249 7 discriminator 1 view .LVU2401 + 7092 .LBE831: +4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7093 .loc 1 4249 7 is_stmt 1 discriminator 1 view .LVU2402 +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7094 .loc 1 4252 7 discriminator 1 view .LVU2403 + 7095 .LBB836: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7096 .loc 1 4252 7 discriminator 1 view .LVU2404 +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7097 .loc 1 4252 7 discriminator 1 view .LVU2405 +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7098 .loc 1 4252 7 discriminator 1 view .LVU2406 + 7099 0054 0268 ldr r2, [r0] + 7100 .LVL643: + 7101 .LBB837: + 7102 .LBI837: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7103 .loc 2 1151 31 discriminator 1 view .LVU2407 + 7104 .LBB838: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7105 .loc 2 1153 5 discriminator 1 view .LVU2408 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7106 .loc 2 1155 4 discriminator 1 view .LVU2409 + 7107 0056 02F10803 add r3, r2, #8 + 7108 .LVL644: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7109 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2410 + 7110 .syntax unified + 7111 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7112 005a 53E8003F ldrex r3, [r3] + 7113 @ 0 "" 2 + 7114 .LVL645: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7115 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2411 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7116 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2412 + 7117 .thumb + 7118 .syntax unified + 7119 .LBE838: + 7120 .LBE837: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 259 + + + 7121 .loc 1 4252 7 discriminator 1 view .LVU2413 + 7122 005e 23F00103 bic r3, r3, #1 + 7123 .LVL646: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7124 .loc 1 4252 7 is_stmt 1 discriminator 1 view .LVU2414 + 7125 .LBB839: + 7126 .LBI839: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7127 .loc 2 1202 31 discriminator 1 view .LVU2415 + 7128 .LBB840: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7129 .loc 2 1204 4 discriminator 1 view .LVU2416 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7130 .loc 2 1206 4 discriminator 1 view .LVU2417 + 7131 0062 0832 adds r2, r2, #8 + 7132 .LVL647: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7133 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2418 + 7134 .syntax unified + 7135 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7136 0064 42E80031 strex r1, r3, [r2] + 7137 @ 0 "" 2 + 7138 .LVL648: + 7139 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2419 + 7140 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2420 + 7141 .thumb + 7142 .syntax unified + 7143 .LBE840: + 7144 .LBE839: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7145 .loc 1 4252 7 discriminator 1 view .LVU2421 + 7146 0068 0029 cmp r1, #0 + 7147 006a F3D1 bne .L300 + 7148 .LBE836: +4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7149 .loc 1 4252 7 is_stmt 1 discriminator 2 view .LVU2422 +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7150 .loc 1 4255 7 discriminator 2 view .LVU2423 +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7151 .loc 1 4255 22 is_stmt 0 discriminator 2 view .LVU2424 + 7152 006c 2023 movs r3, #32 + 7153 .LVL649: +4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7154 .loc 1 4255 22 discriminator 2 view .LVU2425 + 7155 006e C0F88830 str r3, [r0, #136] +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7156 .loc 1 4258 7 is_stmt 1 discriminator 2 view .LVU2426 +4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7157 .loc 1 4258 20 is_stmt 0 discriminator 2 view .LVU2427 + 7158 0072 0023 movs r3, #0 + 7159 0074 0367 str r3, [r0, #112] +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7160 .loc 1 4262 7 is_stmt 1 discriminator 2 view .LVU2428 +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7161 .loc 1 4262 16 is_stmt 0 discriminator 2 view .LVU2429 + 7162 0076 C36E ldr r3, [r0, #108] +4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 260 + + + 7163 .loc 1 4262 10 discriminator 2 view .LVU2430 + 7164 0078 012B cmp r3, #1 + 7165 007a 16D1 bne .L301 +4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7166 .loc 1 4265 9 is_stmt 1 view .LVU2431 +4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7167 .loc 1 4265 30 is_stmt 0 view .LVU2432 + 7168 007c 0023 movs r3, #0 + 7169 007e C366 str r3, [r0, #108] + 7170 .L302: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7171 .loc 1 4268 9 is_stmt 1 discriminator 1 view .LVU2433 + 7172 .LBB841: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7173 .loc 1 4268 9 discriminator 1 view .LVU2434 +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7174 .loc 1 4268 9 discriminator 1 view .LVU2435 +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7175 .loc 1 4268 9 discriminator 1 view .LVU2436 + 7176 0080 0268 ldr r2, [r0] + 7177 .LVL650: + 7178 .LBB842: + 7179 .LBI842: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7180 .loc 2 1151 31 discriminator 1 view .LVU2437 + 7181 .LBB843: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7182 .loc 2 1153 5 discriminator 1 view .LVU2438 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7183 .loc 2 1155 4 discriminator 1 view .LVU2439 + 7184 .syntax unified + 7185 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7186 0082 52E8003F ldrex r3, [r2] + 7187 @ 0 "" 2 + 7188 .LVL651: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7189 .loc 2 1156 4 discriminator 1 view .LVU2440 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7190 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2441 + 7191 .thumb + 7192 .syntax unified + 7193 .LBE843: + 7194 .LBE842: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7195 .loc 1 4268 9 discriminator 1 view .LVU2442 + 7196 0086 23F01003 bic r3, r3, #16 + 7197 .LVL652: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7198 .loc 1 4268 9 is_stmt 1 discriminator 1 view .LVU2443 + 7199 .LBB844: + 7200 .LBI844: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7201 .loc 2 1202 31 discriminator 1 view .LVU2444 + 7202 .LBB845: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7203 .loc 2 1204 4 discriminator 1 view .LVU2445 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + ARM GAS /tmp/cceWHrnJ.s page 261 + + + 7204 .loc 2 1206 4 discriminator 1 view .LVU2446 + 7205 .syntax unified + 7206 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7207 008a 42E80031 strex r1, r3, [r2] + 7208 @ 0 "" 2 + 7209 .LVL653: + 7210 .loc 2 1207 4 discriminator 1 view .LVU2447 + 7211 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2448 + 7212 .thumb + 7213 .syntax unified + 7214 .LBE845: + 7215 .LBE844: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7216 .loc 1 4268 9 discriminator 1 view .LVU2449 + 7217 008e 0029 cmp r1, #0 + 7218 0090 F6D1 bne .L302 + 7219 .LBE841: +4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7220 .loc 1 4268 9 is_stmt 1 discriminator 2 view .LVU2450 +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7221 .loc 1 4270 9 discriminator 2 view .LVU2451 +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7222 .loc 1 4270 13 is_stmt 0 discriminator 2 view .LVU2452 + 7223 0092 0368 ldr r3, [r0] + 7224 .LVL654: +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7225 .loc 1 4270 13 discriminator 2 view .LVU2453 + 7226 0094 DA69 ldr r2, [r3, #28] +4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7227 .loc 1 4270 12 discriminator 2 view .LVU2454 + 7228 0096 12F0100F tst r2, #16 + 7229 009a 01D0 beq .L303 +4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7230 .loc 1 4273 11 is_stmt 1 view .LVU2455 + 7231 009c 1022 movs r2, #16 + 7232 009e 1A62 str r2, [r3, #32] + 7233 .L303: +4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 7234 .loc 1 4280 9 view .LVU2456 + 7235 00a0 B0F85C10 ldrh r1, [r0, #92] + 7236 00a4 FFF7FEFF bl HAL_UARTEx_RxEventCallback + 7237 .LVL655: +4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 7238 .loc 1 4280 9 is_stmt 0 view .LVU2457 + 7239 00a8 B6E7 b .L296 + 7240 .LVL656: + 7241 .L301: +4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 7242 .loc 1 4291 9 is_stmt 1 view .LVU2458 + 7243 00aa FFF7FEFF bl HAL_UART_RxCpltCallback + 7244 .LVL657: +4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 7245 .loc 1 4291 9 is_stmt 0 view .LVU2459 + 7246 00ae B3E7 b .L296 + 7247 .cfi_endproc + 7248 .LFE396: + 7250 .section .text.UART_RxISR_8BIT_FIFOEN,"ax",%progbits + ARM GAS /tmp/cceWHrnJ.s page 262 + + + 7251 .align 1 + 7252 .syntax unified + 7253 .thumb + 7254 .thumb_func + 7256 UART_RxISR_8BIT_FIFOEN: + 7257 .LVL658: + 7258 .LFB397: +4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 7 or 8 bits data word length and FIFO mode is enabled. +4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +4306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT() +4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) +4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7259 .loc 1 4311 1 is_stmt 1 view -0 + 7260 .cfi_startproc + 7261 @ args = 0, pretend = 0, frame = 0 + 7262 @ frame_needed = 0, uses_anonymous_args = 0 + 7263 .loc 1 4311 1 is_stmt 0 view .LVU2461 + 7264 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} + 7265 .LCFI27: + 7266 .cfi_def_cfa_offset 32 + 7267 .cfi_offset 3, -32 + 7268 .cfi_offset 4, -28 + 7269 .cfi_offset 5, -24 + 7270 .cfi_offset 6, -20 + 7271 .cfi_offset 7, -16 + 7272 .cfi_offset 8, -12 + 7273 .cfi_offset 9, -8 + 7274 .cfi_offset 14, -4 +4312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; + 7275 .loc 1 4312 3 is_stmt 1 view .LVU2462 + 7276 .loc 1 4312 13 is_stmt 0 view .LVU2463 + 7277 0004 B0F86060 ldrh r6, [r0, #96] + 7278 .LVL659: +4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; + 7279 .loc 1 4313 3 is_stmt 1 view .LVU2464 +4314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_rx_data; + 7280 .loc 1 4314 3 view .LVU2465 +4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t rxdatacount; + 7281 .loc 1 4315 3 view .LVU2466 +4316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); + 7282 .loc 1 4316 3 view .LVU2467 + 7283 .loc 1 4316 24 is_stmt 0 view .LVU2468 + 7284 0008 0368 ldr r3, [r0] + 7285 .loc 1 4316 13 view .LVU2469 + 7286 000a DD69 ldr r5, [r3, #28] + 7287 .LVL660: +4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); + 7288 .loc 1 4317 3 is_stmt 1 view .LVU2470 + 7289 .loc 1 4317 13 is_stmt 0 view .LVU2471 + 7290 000c D3F80090 ldr r9, [r3] + 7291 .LVL661: +4318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); + ARM GAS /tmp/cceWHrnJ.s page 263 + + + 7292 .loc 1 4318 3 is_stmt 1 view .LVU2472 + 7293 .loc 1 4318 13 is_stmt 0 view .LVU2473 + 7294 0010 D3F80880 ldr r8, [r3, #8] + 7295 .LVL662: +4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ +4321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 7296 .loc 1 4321 3 is_stmt 1 view .LVU2474 + 7297 .loc 1 4321 12 is_stmt 0 view .LVU2475 + 7298 0014 D0F88820 ldr r2, [r0, #136] + 7299 .loc 1 4321 6 view .LVU2476 + 7300 0018 222A cmp r2, #34 + 7301 001a 05D0 beq .L325 +4322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** nb_rx_data = huart->NbRxDataToProcess; +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) +4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); +4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If some non blocking errors occurred */ +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) +4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/ +4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) +4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); +4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; +4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/ +4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) +4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); +4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; +4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/ +4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) +4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); +4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; +4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call UART Error Call back function if need be ----------------------------*/ +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) +4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. +4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error is notified to user through user error callback */ +4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ + ARM GAS /tmp/cceWHrnJ.s page 264 + + +4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) +4376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); +4379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) +4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and RX FIFO Threshold interrupt */ +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); +4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +4386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +4389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ +4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set reception type to Standard */ +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) +4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear IDLE Flag */ +4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); +4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +4407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); +4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ +4412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ +4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ +4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); +4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ +4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); +4422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + ARM GAS /tmp/cceWHrnJ.s page 265 + + +4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* When remaining number of bytes to receive is less than the RX FIFO +4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** threshold, next incoming frames are processed as if FIFO mode was +4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** disabled (i.e. one interrupt per received frame). +4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** rxdatacount = huart->RxXferCount; +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) +4433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART RXFT interrupt*/ +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); +4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Update the RxISR function pointer */ +4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_8BIT; +4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Data Register Not Empty interrupt */ +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); +4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ +4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 7302 .loc 1 4447 5 is_stmt 1 view .LVU2477 + 7303 001c 9A69 ldr r2, [r3, #24] + 7304 001e 42F00802 orr r2, r2, #8 + 7305 0022 9A61 str r2, [r3, #24] + 7306 .LVL663: + 7307 .L306: +4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7308 .loc 1 4449 1 is_stmt 0 view .LVU2478 + 7309 0024 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} + 7310 .LVL664: + 7311 .L325: + 7312 .loc 1 4449 1 view .LVU2479 + 7313 0028 0446 mov r4, r0 +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 7314 .loc 1 4323 5 is_stmt 1 view .LVU2480 +4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 7315 .loc 1 4323 16 is_stmt 0 view .LVU2481 + 7316 002a B0F86870 ldrh r7, [r0, #104] + 7317 .LVL665: +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7318 .loc 1 4324 5 is_stmt 1 view .LVU2482 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7319 .loc 1 4324 11 is_stmt 0 view .LVU2483 + 7320 002e 08E0 b .L308 + 7321 .LVL666: + 7322 .L312: +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7323 .loc 1 4360 9 is_stmt 1 view .LVU2484 +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7324 .loc 1 4360 18 is_stmt 0 view .LVU2485 + 7325 0030 D4F88C30 ldr r3, [r4, #140] + ARM GAS /tmp/cceWHrnJ.s page 266 + + +4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7326 .loc 1 4360 12 view .LVU2486 + 7327 0034 002B cmp r3, #0 + 7328 0036 4CD1 bne .L326 + 7329 .LVL667: + 7330 .L309: +4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7331 .loc 1 4375 7 is_stmt 1 view .LVU2487 +4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7332 .loc 1 4375 16 is_stmt 0 view .LVU2488 + 7333 0038 B4F85E30 ldrh r3, [r4, #94] + 7334 003c 9BB2 uxth r3, r3 +4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7335 .loc 1 4375 10 view .LVU2489 + 7336 003e 002B cmp r3, #0 + 7337 0040 4ED0 beq .L314 + 7338 .LVL668: + 7339 .L308: +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7340 .loc 1 4324 30 is_stmt 1 view .LVU2490 + 7341 0042 002F cmp r7, #0 + 7342 0044 00F08780 beq .L319 +4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7343 .loc 1 4324 30 is_stmt 0 discriminator 1 view .LVU2491 + 7344 0048 15F0200F tst r5, #32 + 7345 004c 00F08380 beq .L319 +4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + 7346 .loc 1 4326 7 is_stmt 1 view .LVU2492 +4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); + 7347 .loc 1 4326 27 is_stmt 0 view .LVU2493 + 7348 0050 2368 ldr r3, [r4] + 7349 0052 596A ldr r1, [r3, #36] + 7350 .LVL669: +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 7351 .loc 1 4327 7 is_stmt 1 view .LVU2494 +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 7352 .loc 1 4327 47 is_stmt 0 view .LVU2495 + 7353 0054 F3B2 uxtb r3, r6 +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 7354 .loc 1 4327 13 view .LVU2496 + 7355 0056 A26D ldr r2, [r4, #88] +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 7356 .loc 1 4327 28 view .LVU2497 + 7357 0058 0B40 ands r3, r3, r1 +4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; + 7358 .loc 1 4327 26 view .LVU2498 + 7359 005a 1370 strb r3, [r2] +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7360 .loc 1 4328 7 is_stmt 1 view .LVU2499 +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7361 .loc 1 4328 12 is_stmt 0 view .LVU2500 + 7362 005c A36D ldr r3, [r4, #88] +4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7363 .loc 1 4328 24 view .LVU2501 + 7364 005e 0133 adds r3, r3, #1 + 7365 0060 A365 str r3, [r4, #88] +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); + ARM GAS /tmp/cceWHrnJ.s page 267 + + + 7366 .loc 1 4329 7 is_stmt 1 view .LVU2502 +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); + 7367 .loc 1 4329 12 is_stmt 0 view .LVU2503 + 7368 0062 B4F85E30 ldrh r3, [r4, #94] + 7369 0066 9BB2 uxth r3, r3 +4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); + 7370 .loc 1 4329 25 view .LVU2504 + 7371 0068 013B subs r3, r3, #1 + 7372 006a 9BB2 uxth r3, r3 + 7373 006c A4F85E30 strh r3, [r4, #94] @ movhi +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7374 .loc 1 4330 7 is_stmt 1 view .LVU2505 +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7375 .loc 1 4330 18 is_stmt 0 view .LVU2506 + 7376 0070 2368 ldr r3, [r4] +4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7377 .loc 1 4330 16 view .LVU2507 + 7378 0072 DD69 ldr r5, [r3, #28] + 7379 .LVL670: +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7380 .loc 1 4333 7 is_stmt 1 view .LVU2508 +4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7381 .loc 1 4333 10 is_stmt 0 view .LVU2509 + 7382 0074 15F0070F tst r5, #7 + 7383 0078 DED0 beq .L309 +4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7384 .loc 1 4336 9 is_stmt 1 view .LVU2510 +4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7385 .loc 1 4336 12 is_stmt 0 view .LVU2511 + 7386 007a 15F0010F tst r5, #1 + 7387 007e 09D0 beq .L310 +4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7388 .loc 1 4336 47 discriminator 1 view .LVU2512 + 7389 0080 19F4807F tst r9, #256 + 7390 0084 06D0 beq .L310 +4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7391 .loc 1 4338 11 is_stmt 1 view .LVU2513 + 7392 0086 0122 movs r2, #1 + 7393 0088 1A62 str r2, [r3, #32] +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7394 .loc 1 4340 11 view .LVU2514 +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7395 .loc 1 4340 16 is_stmt 0 view .LVU2515 + 7396 008a D4F88C30 ldr r3, [r4, #140] +4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7397 .loc 1 4340 28 view .LVU2516 + 7398 008e 1343 orrs r3, r3, r2 + 7399 0090 C4F88C30 str r3, [r4, #140] + 7400 .L310: +4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7401 .loc 1 4344 9 is_stmt 1 view .LVU2517 +4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7402 .loc 1 4344 12 is_stmt 0 view .LVU2518 + 7403 0094 15F0020F tst r5, #2 + 7404 0098 0BD0 beq .L311 +4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7405 .loc 1 4344 47 discriminator 1 view .LVU2519 + ARM GAS /tmp/cceWHrnJ.s page 268 + + + 7406 009a 18F0010F tst r8, #1 + 7407 009e 08D0 beq .L311 +4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7408 .loc 1 4346 11 is_stmt 1 view .LVU2520 + 7409 00a0 2368 ldr r3, [r4] + 7410 00a2 0222 movs r2, #2 + 7411 00a4 1A62 str r2, [r3, #32] +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7412 .loc 1 4348 11 view .LVU2521 +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7413 .loc 1 4348 16 is_stmt 0 view .LVU2522 + 7414 00a6 D4F88C30 ldr r3, [r4, #140] +4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7415 .loc 1 4348 28 view .LVU2523 + 7416 00aa 43F00403 orr r3, r3, #4 + 7417 00ae C4F88C30 str r3, [r4, #140] + 7418 .L311: +4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7419 .loc 1 4352 9 is_stmt 1 view .LVU2524 +4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7420 .loc 1 4352 12 is_stmt 0 view .LVU2525 + 7421 00b2 15F0040F tst r5, #4 + 7422 00b6 BBD0 beq .L312 +4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7423 .loc 1 4352 47 discriminator 1 view .LVU2526 + 7424 00b8 18F0010F tst r8, #1 + 7425 00bc B8D0 beq .L312 +4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7426 .loc 1 4354 11 is_stmt 1 view .LVU2527 + 7427 00be 2368 ldr r3, [r4] + 7428 00c0 0422 movs r2, #4 + 7429 00c2 1A62 str r2, [r3, #32] +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7430 .loc 1 4356 11 view .LVU2528 +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7431 .loc 1 4356 16 is_stmt 0 view .LVU2529 + 7432 00c4 D4F88C30 ldr r3, [r4, #140] +4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7433 .loc 1 4356 28 view .LVU2530 + 7434 00c8 43F00203 orr r3, r3, #2 + 7435 00cc C4F88C30 str r3, [r4, #140] + 7436 00d0 AEE7 b .L312 + 7437 .L326: +4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 7438 .loc 1 4369 11 is_stmt 1 view .LVU2531 + 7439 00d2 2046 mov r0, r4 + 7440 00d4 FFF7FEFF bl HAL_UART_ErrorCallback + 7441 .LVL671: +4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7442 .loc 1 4371 11 view .LVU2532 +4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7443 .loc 1 4371 28 is_stmt 0 view .LVU2533 + 7444 00d8 0023 movs r3, #0 + 7445 00da C4F88C30 str r3, [r4, #140] + 7446 00de ABE7 b .L309 + 7447 .L314: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 269 + + + 7448 .loc 1 4378 9 is_stmt 1 discriminator 1 view .LVU2534 + 7449 .LBB846: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7450 .loc 1 4378 9 discriminator 1 view .LVU2535 +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7451 .loc 1 4378 9 discriminator 1 view .LVU2536 +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7452 .loc 1 4378 9 discriminator 1 view .LVU2537 + 7453 00e0 2268 ldr r2, [r4] + 7454 .LVL672: + 7455 .LBB847: + 7456 .LBI847: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7457 .loc 2 1151 31 discriminator 1 view .LVU2538 + 7458 .LBB848: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7459 .loc 2 1153 5 discriminator 1 view .LVU2539 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7460 .loc 2 1155 4 discriminator 1 view .LVU2540 + 7461 .syntax unified + 7462 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7463 00e2 52E8003F ldrex r3, [r2] + 7464 @ 0 "" 2 + 7465 .LVL673: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7466 .loc 2 1156 4 discriminator 1 view .LVU2541 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7467 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2542 + 7468 .thumb + 7469 .syntax unified + 7470 .LBE848: + 7471 .LBE847: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7472 .loc 1 4378 9 discriminator 1 view .LVU2543 + 7473 00e6 23F48073 bic r3, r3, #256 + 7474 .LVL674: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7475 .loc 1 4378 9 is_stmt 1 discriminator 1 view .LVU2544 + 7476 .LBB849: + 7477 .LBI849: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7478 .loc 2 1202 31 discriminator 1 view .LVU2545 + 7479 .LBB850: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7480 .loc 2 1204 4 discriminator 1 view .LVU2546 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7481 .loc 2 1206 4 discriminator 1 view .LVU2547 + 7482 .syntax unified + 7483 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7484 00ea 42E80031 strex r1, r3, [r2] + 7485 @ 0 "" 2 + 7486 .LVL675: + 7487 .loc 2 1207 4 discriminator 1 view .LVU2548 + 7488 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2549 + 7489 .thumb + 7490 .syntax unified + 7491 .LBE850: + ARM GAS /tmp/cceWHrnJ.s page 270 + + + 7492 .LBE849: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7493 .loc 1 4378 9 discriminator 1 view .LVU2550 + 7494 00ee 0029 cmp r1, #0 + 7495 00f0 F6D1 bne .L314 + 7496 .LVL676: + 7497 .L315: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7498 .loc 1 4378 9 discriminator 1 view .LVU2551 + 7499 .LBE846: +4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7500 .loc 1 4378 9 is_stmt 1 discriminator 1 view .LVU2552 +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7501 .loc 1 4382 9 discriminator 1 view .LVU2553 + 7502 .LBB851: +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7503 .loc 1 4382 9 discriminator 1 view .LVU2554 +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7504 .loc 1 4382 9 discriminator 1 view .LVU2555 +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7505 .loc 1 4382 9 discriminator 1 view .LVU2556 + 7506 00f2 2268 ldr r2, [r4] + 7507 .LVL677: + 7508 .LBB852: + 7509 .LBI852: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7510 .loc 2 1151 31 discriminator 1 view .LVU2557 + 7511 .LBB853: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7512 .loc 2 1153 5 discriminator 1 view .LVU2558 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7513 .loc 2 1155 4 discriminator 1 view .LVU2559 + 7514 00f4 02F10803 add r3, r2, #8 + 7515 .LVL678: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7516 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2560 + 7517 .syntax unified + 7518 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7519 00f8 53E8003F ldrex r3, [r3] + 7520 @ 0 "" 2 + 7521 .LVL679: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7522 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2561 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7523 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2562 + 7524 .thumb + 7525 .syntax unified + 7526 .LBE853: + 7527 .LBE852: +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7528 .loc 1 4382 9 discriminator 1 view .LVU2563 + 7529 00fc 23F08053 bic r3, r3, #268435456 + 7530 0100 23F00103 bic r3, r3, #1 + 7531 .LVL680: +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7532 .loc 1 4382 9 is_stmt 1 discriminator 1 view .LVU2564 + 7533 .LBB854: + ARM GAS /tmp/cceWHrnJ.s page 271 + + + 7534 .LBI854: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7535 .loc 2 1202 31 discriminator 1 view .LVU2565 + 7536 .LBB855: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7537 .loc 2 1204 4 discriminator 1 view .LVU2566 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7538 .loc 2 1206 4 discriminator 1 view .LVU2567 + 7539 0104 0832 adds r2, r2, #8 + 7540 .LVL681: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7541 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2568 + 7542 .syntax unified + 7543 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7544 0106 42E80031 strex r1, r3, [r2] + 7545 @ 0 "" 2 + 7546 .LVL682: + 7547 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2569 + 7548 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2570 + 7549 .thumb + 7550 .syntax unified + 7551 .LBE855: + 7552 .LBE854: +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7553 .loc 1 4382 9 discriminator 1 view .LVU2571 + 7554 010a 0029 cmp r1, #0 + 7555 010c F1D1 bne .L315 + 7556 .LBE851: +4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7557 .loc 1 4382 9 is_stmt 1 discriminator 2 view .LVU2572 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7558 .loc 1 4385 9 discriminator 2 view .LVU2573 +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7559 .loc 1 4385 24 is_stmt 0 discriminator 2 view .LVU2574 + 7560 010e 2023 movs r3, #32 + 7561 .LVL683: +4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7562 .loc 1 4385 24 discriminator 2 view .LVU2575 + 7563 0110 C4F88830 str r3, [r4, #136] +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7564 .loc 1 4388 9 is_stmt 1 discriminator 2 view .LVU2576 +4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7565 .loc 1 4388 22 is_stmt 0 discriminator 2 view .LVU2577 + 7566 0114 0023 movs r3, #0 + 7567 0116 2367 str r3, [r4, #112] +4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7568 .loc 1 4392 9 is_stmt 1 discriminator 2 view .LVU2578 +4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7569 .loc 1 4392 18 is_stmt 0 discriminator 2 view .LVU2579 + 7570 0118 E36E ldr r3, [r4, #108] +4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7571 .loc 1 4392 12 discriminator 2 view .LVU2580 + 7572 011a 012B cmp r3, #1 + 7573 011c 03D0 beq .L327 +4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 7574 .loc 1 4421 11 is_stmt 1 view .LVU2581 + 7575 011e 2046 mov r0, r4 + ARM GAS /tmp/cceWHrnJ.s page 272 + + + 7576 0120 FFF7FEFF bl HAL_UART_RxCpltCallback + 7577 .LVL684: + 7578 0124 8DE7 b .L308 + 7579 .L327: +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7580 .loc 1 4395 11 view .LVU2582 +4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7581 .loc 1 4395 32 is_stmt 0 view .LVU2583 + 7582 0126 0023 movs r3, #0 + 7583 0128 E366 str r3, [r4, #108] + 7584 .L317: +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7585 .loc 1 4398 11 is_stmt 1 discriminator 1 view .LVU2584 + 7586 .LBB856: +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7587 .loc 1 4398 11 discriminator 1 view .LVU2585 +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7588 .loc 1 4398 11 discriminator 1 view .LVU2586 +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7589 .loc 1 4398 11 discriminator 1 view .LVU2587 + 7590 012a 2268 ldr r2, [r4] + 7591 .LVL685: + 7592 .LBB857: + 7593 .LBI857: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7594 .loc 2 1151 31 discriminator 1 view .LVU2588 + 7595 .LBB858: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7596 .loc 2 1153 5 discriminator 1 view .LVU2589 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7597 .loc 2 1155 4 discriminator 1 view .LVU2590 + 7598 .syntax unified + 7599 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7600 012c 52E8003F ldrex r3, [r2] + 7601 @ 0 "" 2 + 7602 .LVL686: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7603 .loc 2 1156 4 discriminator 1 view .LVU2591 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7604 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2592 + 7605 .thumb + 7606 .syntax unified + 7607 .LBE858: + 7608 .LBE857: +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7609 .loc 1 4398 11 discriminator 1 view .LVU2593 + 7610 0130 23F01003 bic r3, r3, #16 + 7611 .LVL687: +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7612 .loc 1 4398 11 is_stmt 1 discriminator 1 view .LVU2594 + 7613 .LBB859: + 7614 .LBI859: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7615 .loc 2 1202 31 discriminator 1 view .LVU2595 + 7616 .LBB860: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7617 .loc 2 1204 4 discriminator 1 view .LVU2596 + ARM GAS /tmp/cceWHrnJ.s page 273 + + +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7618 .loc 2 1206 4 discriminator 1 view .LVU2597 + 7619 .syntax unified + 7620 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7621 0134 42E80031 strex r1, r3, [r2] + 7622 @ 0 "" 2 + 7623 .LVL688: + 7624 .loc 2 1207 4 discriminator 1 view .LVU2598 + 7625 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2599 + 7626 .thumb + 7627 .syntax unified + 7628 .LBE860: + 7629 .LBE859: +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7630 .loc 1 4398 11 discriminator 1 view .LVU2600 + 7631 0138 0029 cmp r1, #0 + 7632 013a F6D1 bne .L317 + 7633 .LBE856: +4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7634 .loc 1 4398 11 is_stmt 1 discriminator 2 view .LVU2601 +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7635 .loc 1 4400 11 discriminator 2 view .LVU2602 +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7636 .loc 1 4400 15 is_stmt 0 discriminator 2 view .LVU2603 + 7637 013c 2368 ldr r3, [r4] + 7638 .LVL689: +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7639 .loc 1 4400 15 discriminator 2 view .LVU2604 + 7640 013e DA69 ldr r2, [r3, #28] +4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7641 .loc 1 4400 14 discriminator 2 view .LVU2605 + 7642 0140 12F0100F tst r2, #16 + 7643 0144 01D0 beq .L318 +4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7644 .loc 1 4403 13 is_stmt 1 view .LVU2606 + 7645 0146 1022 movs r2, #16 + 7646 0148 1A62 str r2, [r3, #32] + 7647 .L318: +4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 7648 .loc 1 4410 11 view .LVU2607 + 7649 014a B4F85C10 ldrh r1, [r4, #92] + 7650 014e 2046 mov r0, r4 + 7651 0150 FFF7FEFF bl HAL_UARTEx_RxEventCallback + 7652 .LVL690: + 7653 0154 75E7 b .L308 + 7654 .LVL691: + 7655 .L319: +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + 7656 .loc 1 4431 5 view .LVU2608 +4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + 7657 .loc 1 4431 17 is_stmt 0 view .LVU2609 + 7658 0156 B4F85E30 ldrh r3, [r4, #94] + 7659 015a 9BB2 uxth r3, r3 + 7660 .LVL692: +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7661 .loc 1 4432 5 is_stmt 1 view .LVU2610 +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 274 + + + 7662 .loc 1 4432 8 is_stmt 0 view .LVU2611 + 7663 015c 002B cmp r3, #0 + 7664 015e 3FF461AF beq .L306 +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7665 .loc 1 4432 52 discriminator 1 view .LVU2612 + 7666 0162 B4F86820 ldrh r2, [r4, #104] +4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7667 .loc 1 4432 29 discriminator 1 view .LVU2613 + 7668 0166 9A42 cmp r2, r3 + 7669 0168 7FF65CAF bls .L306 + 7670 .LVL693: + 7671 .L322: +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7672 .loc 1 4435 7 is_stmt 1 discriminator 1 view .LVU2614 + 7673 .LBB861: +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7674 .loc 1 4435 7 discriminator 1 view .LVU2615 +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7675 .loc 1 4435 7 discriminator 1 view .LVU2616 +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7676 .loc 1 4435 7 discriminator 1 view .LVU2617 + 7677 016c 2268 ldr r2, [r4] + 7678 .LVL694: + 7679 .LBB862: + 7680 .LBI862: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7681 .loc 2 1151 31 discriminator 1 view .LVU2618 + 7682 .LBB863: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7683 .loc 2 1153 5 discriminator 1 view .LVU2619 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7684 .loc 2 1155 4 discriminator 1 view .LVU2620 + 7685 016e 02F10803 add r3, r2, #8 + 7686 .LVL695: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7687 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2621 + 7688 .syntax unified + 7689 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7690 0172 53E8003F ldrex r3, [r3] + 7691 @ 0 "" 2 + 7692 .LVL696: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7693 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2622 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7694 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2623 + 7695 .thumb + 7696 .syntax unified + 7697 .LBE863: + 7698 .LBE862: +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7699 .loc 1 4435 7 discriminator 1 view .LVU2624 + 7700 0176 23F08053 bic r3, r3, #268435456 + 7701 .LVL697: +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7702 .loc 1 4435 7 is_stmt 1 discriminator 1 view .LVU2625 + 7703 .LBB864: + 7704 .LBI864: + ARM GAS /tmp/cceWHrnJ.s page 275 + + +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7705 .loc 2 1202 31 discriminator 1 view .LVU2626 + 7706 .LBB865: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7707 .loc 2 1204 4 discriminator 1 view .LVU2627 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7708 .loc 2 1206 4 discriminator 1 view .LVU2628 + 7709 017a 0832 adds r2, r2, #8 + 7710 .LVL698: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7711 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2629 + 7712 .syntax unified + 7713 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7714 017c 42E80031 strex r1, r3, [r2] + 7715 @ 0 "" 2 + 7716 .LVL699: + 7717 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2630 + 7718 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2631 + 7719 .thumb + 7720 .syntax unified + 7721 .LBE865: + 7722 .LBE864: +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7723 .loc 1 4435 7 discriminator 1 view .LVU2632 + 7724 0180 0029 cmp r1, #0 + 7725 0182 F3D1 bne .L322 + 7726 .LBE861: +4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7727 .loc 1 4435 7 is_stmt 1 discriminator 2 view .LVU2633 +4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7728 .loc 1 4438 7 discriminator 2 view .LVU2634 +4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7729 .loc 1 4438 20 is_stmt 0 discriminator 2 view .LVU2635 + 7730 0184 054B ldr r3, .L328 + 7731 .LVL700: +4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7732 .loc 1 4438 20 discriminator 2 view .LVU2636 + 7733 0186 2367 str r3, [r4, #112] + 7734 .L323: +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7735 .loc 1 4441 7 is_stmt 1 discriminator 1 view .LVU2637 + 7736 .LBB866: +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7737 .loc 1 4441 7 discriminator 1 view .LVU2638 +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7738 .loc 1 4441 7 discriminator 1 view .LVU2639 +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7739 .loc 1 4441 7 discriminator 1 view .LVU2640 + 7740 0188 2268 ldr r2, [r4] + 7741 .LVL701: + 7742 .LBB867: + 7743 .LBI867: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7744 .loc 2 1151 31 discriminator 1 view .LVU2641 + 7745 .LBB868: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7746 .loc 2 1153 5 discriminator 1 view .LVU2642 + ARM GAS /tmp/cceWHrnJ.s page 276 + + +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7747 .loc 2 1155 4 discriminator 1 view .LVU2643 + 7748 .syntax unified + 7749 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7750 018a 52E8003F ldrex r3, [r2] + 7751 @ 0 "" 2 + 7752 .LVL702: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7753 .loc 2 1156 4 discriminator 1 view .LVU2644 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 7754 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2645 + 7755 .thumb + 7756 .syntax unified + 7757 .LBE868: + 7758 .LBE867: +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7759 .loc 1 4441 7 discriminator 1 view .LVU2646 + 7760 018e 43F02003 orr r3, r3, #32 + 7761 .LVL703: +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7762 .loc 1 4441 7 is_stmt 1 discriminator 1 view .LVU2647 + 7763 .LBB869: + 7764 .LBI869: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 7765 .loc 2 1202 31 discriminator 1 view .LVU2648 + 7766 .LBB870: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 7767 .loc 2 1204 4 discriminator 1 view .LVU2649 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 7768 .loc 2 1206 4 discriminator 1 view .LVU2650 + 7769 .syntax unified + 7770 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 7771 0192 42E80031 strex r1, r3, [r2] + 7772 @ 0 "" 2 + 7773 .LVL704: + 7774 .loc 2 1207 4 discriminator 1 view .LVU2651 + 7775 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2652 + 7776 .thumb + 7777 .syntax unified + 7778 .LBE870: + 7779 .LBE869: +4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7780 .loc 1 4441 7 discriminator 1 view .LVU2653 + 7781 0196 0029 cmp r1, #0 + 7782 0198 F6D1 bne .L323 + 7783 019a 43E7 b .L306 + 7784 .L329: + 7785 .align 2 + 7786 .L328: + 7787 019c 00000000 .word UART_RxISR_8BIT + 7788 .LBE866: + 7789 .cfi_endproc + 7790 .LFE397: + 7792 .section .text.UART_RxISR_16BIT_FIFOEN,"ax",%progbits + 7793 .align 1 + 7794 .syntax unified + 7795 .thumb + ARM GAS /tmp/cceWHrnJ.s page 277 + + + 7796 .thumb_func + 7798 UART_RxISR_16BIT_FIFOEN: + 7799 .LVL705: + 7800 .LFB398: +4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** +4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 9 bits data word length and FIFO mode is enabled. +4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once +4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT() +4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. +4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None +4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) +4459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7801 .loc 1 4459 1 is_stmt 1 view -0 + 7802 .cfi_startproc + 7803 @ args = 0, pretend = 0, frame = 0 + 7804 @ frame_needed = 0, uses_anonymous_args = 0 + 7805 .loc 1 4459 1 is_stmt 0 view .LVU2655 + 7806 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} + 7807 .LCFI28: + 7808 .cfi_def_cfa_offset 32 + 7809 .cfi_offset 3, -32 + 7810 .cfi_offset 4, -28 + 7811 .cfi_offset 5, -24 + 7812 .cfi_offset 6, -20 + 7813 .cfi_offset 7, -16 + 7814 .cfi_offset 8, -12 + 7815 .cfi_offset 9, -8 + 7816 .cfi_offset 14, -4 +4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; + 7817 .loc 1 4460 3 is_stmt 1 view .LVU2656 +4461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; + 7818 .loc 1 4461 3 view .LVU2657 + 7819 .loc 1 4461 13 is_stmt 0 view .LVU2658 + 7820 0004 B0F86060 ldrh r6, [r0, #96] + 7821 .LVL706: +4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; + 7822 .loc 1 4462 3 is_stmt 1 view .LVU2659 +4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_rx_data; + 7823 .loc 1 4463 3 view .LVU2660 +4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t rxdatacount; + 7824 .loc 1 4464 3 view .LVU2661 +4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); + 7825 .loc 1 4465 3 view .LVU2662 + 7826 .loc 1 4465 24 is_stmt 0 view .LVU2663 + 7827 0008 0368 ldr r3, [r0] + 7828 .loc 1 4465 13 view .LVU2664 + 7829 000a DD69 ldr r5, [r3, #28] + 7830 .LVL707: +4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); + 7831 .loc 1 4466 3 is_stmt 1 view .LVU2665 + 7832 .loc 1 4466 13 is_stmt 0 view .LVU2666 + 7833 000c D3F80090 ldr r9, [r3] + 7834 .LVL708: +4467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); + 7835 .loc 1 4467 3 is_stmt 1 view .LVU2667 + ARM GAS /tmp/cceWHrnJ.s page 278 + + + 7836 .loc 1 4467 13 is_stmt 0 view .LVU2668 + 7837 0010 D3F80880 ldr r8, [r3, #8] + 7838 .LVL709: +4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ +4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) + 7839 .loc 1 4470 3 is_stmt 1 view .LVU2669 + 7840 .loc 1 4470 12 is_stmt 0 view .LVU2670 + 7841 0014 D0F88820 ldr r2, [r0, #136] + 7842 .loc 1 4470 6 view .LVU2671 + 7843 0018 222A cmp r2, #34 + 7844 001a 05D0 beq .L349 +4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** nb_rx_data = huart->NbRxDataToProcess; +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) +4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); +4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; +4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; +4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; +4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); +4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If some non blocking errors occurred */ +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) +4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/ +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) +4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); +4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; +4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/ +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) +4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); +4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; +4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/ +4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) +4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); +4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; +4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call UART Error Call back function if need be ----------------------------*/ +4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) +4511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. +4513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error is notified to user through user error callback */ +4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ + ARM GAS /tmp/cceWHrnJ.s page 279 + + +4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); +4517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ +4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); +4520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; +4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) +4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); +4529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) +4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and RX FIFO Threshold interrupt */ +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); +4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; +4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ +4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; +4539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : +4541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) +4543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set reception type to Standard */ +4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; +4546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); +4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) +4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear IDLE Flag */ +4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); +4554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ +4557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); +4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ +4560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); +4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ +4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ +4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) +4567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ +4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); +4569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else +4570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ +4571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); +4572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + ARM GAS /tmp/cceWHrnJ.s page 280 + + +4573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* When remaining number of bytes to receive is less than the RX FIFO +4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** threshold, next incoming frames are processed as if FIFO mode was +4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** disabled (i.e. one interrupt per received frame). +4580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ +4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** rxdatacount = huart->RxXferCount; +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) +4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART RXFT interrupt*/ +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); +4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Update the RxISR function pointer */ +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_16BIT; +4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +4590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Data Register Not Empty interrupt */ +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); +4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else +4595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { +4596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ +4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); + 7845 .loc 1 4597 5 is_stmt 1 view .LVU2672 + 7846 001c 9A69 ldr r2, [r3, #24] + 7847 001e 42F00802 orr r2, r2, #8 + 7848 0022 9A61 str r2, [r3, #24] + 7849 .LVL710: + 7850 .L330: +4598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } +4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7851 .loc 1 4599 1 is_stmt 0 view .LVU2673 + 7852 0024 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} + 7853 .LVL711: + 7854 .L349: + 7855 .loc 1 4599 1 view .LVU2674 + 7856 0028 0446 mov r4, r0 +4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 7857 .loc 1 4472 5 is_stmt 1 view .LVU2675 +4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) + 7858 .loc 1 4472 16 is_stmt 0 view .LVU2676 + 7859 002a B0F86870 ldrh r7, [r0, #104] + 7860 .LVL712: +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7861 .loc 1 4473 5 is_stmt 1 view .LVU2677 +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7862 .loc 1 4473 11 is_stmt 0 view .LVU2678 + 7863 002e 08E0 b .L332 + 7864 .LVL713: + 7865 .L336: +4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7866 .loc 1 4510 9 is_stmt 1 view .LVU2679 +4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7867 .loc 1 4510 18 is_stmt 0 view .LVU2680 + 7868 0030 D4F88C30 ldr r3, [r4, #140] + ARM GAS /tmp/cceWHrnJ.s page 281 + + +4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7869 .loc 1 4510 12 view .LVU2681 + 7870 0034 002B cmp r3, #0 + 7871 0036 4BD1 bne .L350 + 7872 .L333: +4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7873 .loc 1 4525 7 is_stmt 1 view .LVU2682 +4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7874 .loc 1 4525 16 is_stmt 0 view .LVU2683 + 7875 0038 B4F85E30 ldrh r3, [r4, #94] + 7876 003c 9BB2 uxth r3, r3 +4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7877 .loc 1 4525 10 view .LVU2684 + 7878 003e 002B cmp r3, #0 + 7879 0040 4DD0 beq .L338 + 7880 .LVL714: + 7881 .L332: +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7882 .loc 1 4473 30 is_stmt 1 view .LVU2685 + 7883 0042 002F cmp r7, #0 + 7884 0044 00F08680 beq .L343 +4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7885 .loc 1 4473 30 is_stmt 0 discriminator 1 view .LVU2686 + 7886 0048 15F0200F tst r5, #32 + 7887 004c 00F08280 beq .L343 +4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; + 7888 .loc 1 4475 7 is_stmt 1 view .LVU2687 +4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; + 7889 .loc 1 4475 27 is_stmt 0 view .LVU2688 + 7890 0050 2368 ldr r3, [r4] + 7891 0052 5B6A ldr r3, [r3, #36] + 7892 .LVL715: +4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); + 7893 .loc 1 4476 7 is_stmt 1 view .LVU2689 +4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); + 7894 .loc 1 4476 11 is_stmt 0 view .LVU2690 + 7895 0054 A26D ldr r2, [r4, #88] + 7896 .LVL716: +4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; + 7897 .loc 1 4477 7 is_stmt 1 view .LVU2691 +4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; + 7898 .loc 1 4477 14 is_stmt 0 view .LVU2692 + 7899 0056 3340 ands r3, r3, r6 + 7900 .LVL717: +4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; + 7901 .loc 1 4477 12 view .LVU2693 + 7902 0058 1380 strh r3, [r2] @ movhi +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7903 .loc 1 4478 7 is_stmt 1 view .LVU2694 +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7904 .loc 1 4478 12 is_stmt 0 view .LVU2695 + 7905 005a A36D ldr r3, [r4, #88] +4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; + 7906 .loc 1 4478 25 view .LVU2696 + 7907 005c 0233 adds r3, r3, #2 + 7908 005e A365 str r3, [r4, #88] +4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); + ARM GAS /tmp/cceWHrnJ.s page 282 + + + 7909 .loc 1 4479 7 is_stmt 1 view .LVU2697 +4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); + 7910 .loc 1 4479 12 is_stmt 0 view .LVU2698 + 7911 0060 B4F85E30 ldrh r3, [r4, #94] + 7912 0064 9BB2 uxth r3, r3 +4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); + 7913 .loc 1 4479 25 view .LVU2699 + 7914 0066 013B subs r3, r3, #1 + 7915 0068 9BB2 uxth r3, r3 + 7916 006a A4F85E30 strh r3, [r4, #94] @ movhi +4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7917 .loc 1 4480 7 is_stmt 1 view .LVU2700 +4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7918 .loc 1 4480 18 is_stmt 0 view .LVU2701 + 7919 006e 2368 ldr r3, [r4] +4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7920 .loc 1 4480 16 view .LVU2702 + 7921 0070 DD69 ldr r5, [r3, #28] + 7922 .LVL718: +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7923 .loc 1 4483 7 is_stmt 1 view .LVU2703 +4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7924 .loc 1 4483 10 is_stmt 0 view .LVU2704 + 7925 0072 15F0070F tst r5, #7 + 7926 0076 DFD0 beq .L333 +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7927 .loc 1 4486 9 is_stmt 1 view .LVU2705 +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7928 .loc 1 4486 12 is_stmt 0 view .LVU2706 + 7929 0078 15F0010F tst r5, #1 + 7930 007c 09D0 beq .L334 +4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7931 .loc 1 4486 47 discriminator 1 view .LVU2707 + 7932 007e 19F4807F tst r9, #256 + 7933 0082 06D0 beq .L334 +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7934 .loc 1 4488 11 is_stmt 1 view .LVU2708 + 7935 0084 0122 movs r2, #1 + 7936 .LVL719: +4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7937 .loc 1 4488 11 is_stmt 0 view .LVU2709 + 7938 0086 1A62 str r2, [r3, #32] +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7939 .loc 1 4490 11 is_stmt 1 view .LVU2710 +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7940 .loc 1 4490 16 is_stmt 0 view .LVU2711 + 7941 0088 D4F88C30 ldr r3, [r4, #140] +4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7942 .loc 1 4490 28 view .LVU2712 + 7943 008c 1343 orrs r3, r3, r2 + 7944 008e C4F88C30 str r3, [r4, #140] + 7945 .L334: +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7946 .loc 1 4494 9 is_stmt 1 view .LVU2713 +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7947 .loc 1 4494 12 is_stmt 0 view .LVU2714 + 7948 0092 15F0020F tst r5, #2 + ARM GAS /tmp/cceWHrnJ.s page 283 + + + 7949 0096 0BD0 beq .L335 +4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7950 .loc 1 4494 47 discriminator 1 view .LVU2715 + 7951 0098 18F0010F tst r8, #1 + 7952 009c 08D0 beq .L335 +4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7953 .loc 1 4496 11 is_stmt 1 view .LVU2716 + 7954 009e 2368 ldr r3, [r4] + 7955 00a0 0222 movs r2, #2 + 7956 00a2 1A62 str r2, [r3, #32] +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7957 .loc 1 4498 11 view .LVU2717 +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7958 .loc 1 4498 16 is_stmt 0 view .LVU2718 + 7959 00a4 D4F88C30 ldr r3, [r4, #140] +4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7960 .loc 1 4498 28 view .LVU2719 + 7961 00a8 43F00403 orr r3, r3, #4 + 7962 00ac C4F88C30 str r3, [r4, #140] + 7963 .L335: +4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7964 .loc 1 4502 9 is_stmt 1 view .LVU2720 +4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7965 .loc 1 4502 12 is_stmt 0 view .LVU2721 + 7966 00b0 15F0040F tst r5, #4 + 7967 00b4 BCD0 beq .L336 +4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 7968 .loc 1 4502 47 discriminator 1 view .LVU2722 + 7969 00b6 18F0010F tst r8, #1 + 7970 00ba B9D0 beq .L336 +4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7971 .loc 1 4504 11 is_stmt 1 view .LVU2723 + 7972 00bc 2368 ldr r3, [r4] + 7973 00be 0422 movs r2, #4 + 7974 00c0 1A62 str r2, [r3, #32] +4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7975 .loc 1 4506 11 view .LVU2724 +4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7976 .loc 1 4506 16 is_stmt 0 view .LVU2725 + 7977 00c2 D4F88C30 ldr r3, [r4, #140] +4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7978 .loc 1 4506 28 view .LVU2726 + 7979 00c6 43F00203 orr r3, r3, #2 + 7980 00ca C4F88C30 str r3, [r4, #140] + 7981 00ce AFE7 b .L336 + 7982 .L350: +4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 7983 .loc 1 4519 11 is_stmt 1 view .LVU2727 + 7984 00d0 2046 mov r0, r4 + 7985 00d2 FFF7FEFF bl HAL_UART_ErrorCallback + 7986 .LVL720: +4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7987 .loc 1 4521 11 view .LVU2728 +4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 7988 .loc 1 4521 28 is_stmt 0 view .LVU2729 + 7989 00d6 0023 movs r3, #0 + 7990 00d8 C4F88C30 str r3, [r4, #140] + ARM GAS /tmp/cceWHrnJ.s page 284 + + + 7991 00dc ACE7 b .L333 + 7992 .L338: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7993 .loc 1 4528 9 is_stmt 1 discriminator 1 view .LVU2730 + 7994 .LBB871: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7995 .loc 1 4528 9 discriminator 1 view .LVU2731 +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7996 .loc 1 4528 9 discriminator 1 view .LVU2732 +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 7997 .loc 1 4528 9 discriminator 1 view .LVU2733 + 7998 00de 2268 ldr r2, [r4] + 7999 .LVL721: + 8000 .LBB872: + 8001 .LBI872: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8002 .loc 2 1151 31 discriminator 1 view .LVU2734 + 8003 .LBB873: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8004 .loc 2 1153 5 discriminator 1 view .LVU2735 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8005 .loc 2 1155 4 discriminator 1 view .LVU2736 + 8006 .syntax unified + 8007 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8008 00e0 52E8003F ldrex r3, [r2] + 8009 @ 0 "" 2 + 8010 .LVL722: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8011 .loc 2 1156 4 discriminator 1 view .LVU2737 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8012 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2738 + 8013 .thumb + 8014 .syntax unified + 8015 .LBE873: + 8016 .LBE872: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8017 .loc 1 4528 9 discriminator 1 view .LVU2739 + 8018 00e4 23F48073 bic r3, r3, #256 + 8019 .LVL723: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8020 .loc 1 4528 9 is_stmt 1 discriminator 1 view .LVU2740 + 8021 .LBB874: + 8022 .LBI874: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8023 .loc 2 1202 31 discriminator 1 view .LVU2741 + 8024 .LBB875: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8025 .loc 2 1204 4 discriminator 1 view .LVU2742 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8026 .loc 2 1206 4 discriminator 1 view .LVU2743 + 8027 .syntax unified + 8028 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8029 00e8 42E80031 strex r1, r3, [r2] + 8030 @ 0 "" 2 + 8031 .LVL724: + 8032 .loc 2 1207 4 discriminator 1 view .LVU2744 + 8033 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2745 + ARM GAS /tmp/cceWHrnJ.s page 285 + + + 8034 .thumb + 8035 .syntax unified + 8036 .LBE875: + 8037 .LBE874: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8038 .loc 1 4528 9 discriminator 1 view .LVU2746 + 8039 00ec 0029 cmp r1, #0 + 8040 00ee F6D1 bne .L338 + 8041 .LVL725: + 8042 .L339: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8043 .loc 1 4528 9 discriminator 1 view .LVU2747 + 8044 .LBE871: +4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8045 .loc 1 4528 9 is_stmt 1 discriminator 1 view .LVU2748 +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8046 .loc 1 4532 9 discriminator 1 view .LVU2749 + 8047 .LBB876: +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8048 .loc 1 4532 9 discriminator 1 view .LVU2750 +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8049 .loc 1 4532 9 discriminator 1 view .LVU2751 +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8050 .loc 1 4532 9 discriminator 1 view .LVU2752 + 8051 00f0 2268 ldr r2, [r4] + 8052 .LVL726: + 8053 .LBB877: + 8054 .LBI877: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8055 .loc 2 1151 31 discriminator 1 view .LVU2753 + 8056 .LBB878: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8057 .loc 2 1153 5 discriminator 1 view .LVU2754 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8058 .loc 2 1155 4 discriminator 1 view .LVU2755 + 8059 00f2 02F10803 add r3, r2, #8 + 8060 .LVL727: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8061 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2756 + 8062 .syntax unified + 8063 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8064 00f6 53E8003F ldrex r3, [r3] + 8065 @ 0 "" 2 + 8066 .LVL728: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8067 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2757 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8068 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2758 + 8069 .thumb + 8070 .syntax unified + 8071 .LBE878: + 8072 .LBE877: +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8073 .loc 1 4532 9 discriminator 1 view .LVU2759 + 8074 00fa 23F08053 bic r3, r3, #268435456 + 8075 00fe 23F00103 bic r3, r3, #1 + 8076 .LVL729: + ARM GAS /tmp/cceWHrnJ.s page 286 + + +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8077 .loc 1 4532 9 is_stmt 1 discriminator 1 view .LVU2760 + 8078 .LBB879: + 8079 .LBI879: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8080 .loc 2 1202 31 discriminator 1 view .LVU2761 + 8081 .LBB880: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8082 .loc 2 1204 4 discriminator 1 view .LVU2762 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8083 .loc 2 1206 4 discriminator 1 view .LVU2763 + 8084 0102 0832 adds r2, r2, #8 + 8085 .LVL730: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8086 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2764 + 8087 .syntax unified + 8088 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8089 0104 42E80031 strex r1, r3, [r2] + 8090 @ 0 "" 2 + 8091 .LVL731: + 8092 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2765 + 8093 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2766 + 8094 .thumb + 8095 .syntax unified + 8096 .LBE880: + 8097 .LBE879: +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8098 .loc 1 4532 9 discriminator 1 view .LVU2767 + 8099 0108 0029 cmp r1, #0 + 8100 010a F1D1 bne .L339 + 8101 .LBE876: +4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8102 .loc 1 4532 9 is_stmt 1 discriminator 2 view .LVU2768 +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8103 .loc 1 4535 9 discriminator 2 view .LVU2769 +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8104 .loc 1 4535 24 is_stmt 0 discriminator 2 view .LVU2770 + 8105 010c 2023 movs r3, #32 + 8106 .LVL732: +4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8107 .loc 1 4535 24 discriminator 2 view .LVU2771 + 8108 010e C4F88830 str r3, [r4, #136] +4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8109 .loc 1 4538 9 is_stmt 1 discriminator 2 view .LVU2772 +4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8110 .loc 1 4538 22 is_stmt 0 discriminator 2 view .LVU2773 + 8111 0112 0023 movs r3, #0 + 8112 0114 2367 str r3, [r4, #112] +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8113 .loc 1 4542 9 is_stmt 1 discriminator 2 view .LVU2774 +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8114 .loc 1 4542 18 is_stmt 0 discriminator 2 view .LVU2775 + 8115 0116 E36E ldr r3, [r4, #108] +4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8116 .loc 1 4542 12 discriminator 2 view .LVU2776 + 8117 0118 012B cmp r3, #1 + 8118 011a 03D0 beq .L351 + ARM GAS /tmp/cceWHrnJ.s page 287 + + +4571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8119 .loc 1 4571 11 is_stmt 1 view .LVU2777 + 8120 011c 2046 mov r0, r4 + 8121 011e FFF7FEFF bl HAL_UART_RxCpltCallback + 8122 .LVL733: + 8123 0122 8EE7 b .L332 + 8124 .L351: +4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8125 .loc 1 4545 11 view .LVU2778 +4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8126 .loc 1 4545 32 is_stmt 0 view .LVU2779 + 8127 0124 0023 movs r3, #0 + 8128 0126 E366 str r3, [r4, #108] + 8129 .L341: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8130 .loc 1 4548 11 is_stmt 1 discriminator 1 view .LVU2780 + 8131 .LBB881: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8132 .loc 1 4548 11 discriminator 1 view .LVU2781 +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8133 .loc 1 4548 11 discriminator 1 view .LVU2782 +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8134 .loc 1 4548 11 discriminator 1 view .LVU2783 + 8135 0128 2268 ldr r2, [r4] + 8136 .LVL734: + 8137 .LBB882: + 8138 .LBI882: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8139 .loc 2 1151 31 discriminator 1 view .LVU2784 + 8140 .LBB883: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8141 .loc 2 1153 5 discriminator 1 view .LVU2785 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8142 .loc 2 1155 4 discriminator 1 view .LVU2786 + 8143 .syntax unified + 8144 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8145 012a 52E8003F ldrex r3, [r2] + 8146 @ 0 "" 2 + 8147 .LVL735: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8148 .loc 2 1156 4 discriminator 1 view .LVU2787 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8149 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2788 + 8150 .thumb + 8151 .syntax unified + 8152 .LBE883: + 8153 .LBE882: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8154 .loc 1 4548 11 discriminator 1 view .LVU2789 + 8155 012e 23F01003 bic r3, r3, #16 + 8156 .LVL736: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8157 .loc 1 4548 11 is_stmt 1 discriminator 1 view .LVU2790 + 8158 .LBB884: + 8159 .LBI884: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8160 .loc 2 1202 31 discriminator 1 view .LVU2791 + ARM GAS /tmp/cceWHrnJ.s page 288 + + + 8161 .LBB885: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8162 .loc 2 1204 4 discriminator 1 view .LVU2792 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8163 .loc 2 1206 4 discriminator 1 view .LVU2793 + 8164 .syntax unified + 8165 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8166 0132 42E80031 strex r1, r3, [r2] + 8167 @ 0 "" 2 + 8168 .LVL737: + 8169 .loc 2 1207 4 discriminator 1 view .LVU2794 + 8170 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2795 + 8171 .thumb + 8172 .syntax unified + 8173 .LBE885: + 8174 .LBE884: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8175 .loc 1 4548 11 discriminator 1 view .LVU2796 + 8176 0136 0029 cmp r1, #0 + 8177 0138 F6D1 bne .L341 + 8178 .LBE881: +4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8179 .loc 1 4548 11 is_stmt 1 discriminator 2 view .LVU2797 +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8180 .loc 1 4550 11 discriminator 2 view .LVU2798 +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8181 .loc 1 4550 15 is_stmt 0 discriminator 2 view .LVU2799 + 8182 013a 2368 ldr r3, [r4] + 8183 .LVL738: +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8184 .loc 1 4550 15 discriminator 2 view .LVU2800 + 8185 013c DA69 ldr r2, [r3, #28] +4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8186 .loc 1 4550 14 discriminator 2 view .LVU2801 + 8187 013e 12F0100F tst r2, #16 + 8188 0142 01D0 beq .L342 +4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8189 .loc 1 4553 13 is_stmt 1 view .LVU2802 + 8190 0144 1022 movs r2, #16 + 8191 0146 1A62 str r2, [r3, #32] + 8192 .L342: +4560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 8193 .loc 1 4560 11 view .LVU2803 + 8194 0148 B4F85C10 ldrh r1, [r4, #92] + 8195 014c 2046 mov r0, r4 + 8196 014e FFF7FEFF bl HAL_UARTEx_RxEventCallback + 8197 .LVL739: + 8198 0152 76E7 b .L332 + 8199 .LVL740: + 8200 .L343: +4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + 8201 .loc 1 4581 5 view .LVU2804 +4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) + 8202 .loc 1 4581 17 is_stmt 0 view .LVU2805 + 8203 0154 B4F85E30 ldrh r3, [r4, #94] + 8204 0158 9BB2 uxth r3, r3 + 8205 .LVL741: + ARM GAS /tmp/cceWHrnJ.s page 289 + + +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8206 .loc 1 4582 5 is_stmt 1 view .LVU2806 +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8207 .loc 1 4582 8 is_stmt 0 view .LVU2807 + 8208 015a 002B cmp r3, #0 + 8209 015c 3FF462AF beq .L330 +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8210 .loc 1 4582 52 discriminator 1 view .LVU2808 + 8211 0160 B4F86820 ldrh r2, [r4, #104] +4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8212 .loc 1 4582 29 discriminator 1 view .LVU2809 + 8213 0164 9A42 cmp r2, r3 + 8214 0166 7FF65DAF bls .L330 + 8215 .LVL742: + 8216 .L346: +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8217 .loc 1 4585 7 is_stmt 1 discriminator 1 view .LVU2810 + 8218 .LBB886: +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8219 .loc 1 4585 7 discriminator 1 view .LVU2811 +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8220 .loc 1 4585 7 discriminator 1 view .LVU2812 +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8221 .loc 1 4585 7 discriminator 1 view .LVU2813 + 8222 016a 2268 ldr r2, [r4] + 8223 .LVL743: + 8224 .LBB887: + 8225 .LBI887: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8226 .loc 2 1151 31 discriminator 1 view .LVU2814 + 8227 .LBB888: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8228 .loc 2 1153 5 discriminator 1 view .LVU2815 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8229 .loc 2 1155 4 discriminator 1 view .LVU2816 + 8230 016c 02F10803 add r3, r2, #8 + 8231 .LVL744: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8232 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2817 + 8233 .syntax unified + 8234 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8235 0170 53E8003F ldrex r3, [r3] + 8236 @ 0 "" 2 + 8237 .LVL745: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8238 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2818 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8239 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2819 + 8240 .thumb + 8241 .syntax unified + 8242 .LBE888: + 8243 .LBE887: +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8244 .loc 1 4585 7 discriminator 1 view .LVU2820 + 8245 0174 23F08053 bic r3, r3, #268435456 + 8246 .LVL746: +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 290 + + + 8247 .loc 1 4585 7 is_stmt 1 discriminator 1 view .LVU2821 + 8248 .LBB889: + 8249 .LBI889: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8250 .loc 2 1202 31 discriminator 1 view .LVU2822 + 8251 .LBB890: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8252 .loc 2 1204 4 discriminator 1 view .LVU2823 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8253 .loc 2 1206 4 discriminator 1 view .LVU2824 + 8254 0178 0832 adds r2, r2, #8 + 8255 .LVL747: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8256 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2825 + 8257 .syntax unified + 8258 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8259 017a 42E80031 strex r1, r3, [r2] + 8260 @ 0 "" 2 + 8261 .LVL748: + 8262 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2826 + 8263 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2827 + 8264 .thumb + 8265 .syntax unified + 8266 .LBE890: + 8267 .LBE889: +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8268 .loc 1 4585 7 discriminator 1 view .LVU2828 + 8269 017e 0029 cmp r1, #0 + 8270 0180 F3D1 bne .L346 + 8271 .LBE886: +4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8272 .loc 1 4585 7 is_stmt 1 discriminator 2 view .LVU2829 +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8273 .loc 1 4588 7 discriminator 2 view .LVU2830 +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8274 .loc 1 4588 20 is_stmt 0 discriminator 2 view .LVU2831 + 8275 0182 064B ldr r3, .L352 + 8276 .LVL749: +4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8277 .loc 1 4588 20 discriminator 2 view .LVU2832 + 8278 0184 2367 str r3, [r4, #112] + 8279 .L347: +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8280 .loc 1 4591 7 is_stmt 1 discriminator 1 view .LVU2833 + 8281 .LBB891: +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8282 .loc 1 4591 7 discriminator 1 view .LVU2834 +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8283 .loc 1 4591 7 discriminator 1 view .LVU2835 +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8284 .loc 1 4591 7 discriminator 1 view .LVU2836 + 8285 0186 2268 ldr r2, [r4] + 8286 .LVL750: + 8287 .LBB892: + 8288 .LBI892: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8289 .loc 2 1151 31 discriminator 1 view .LVU2837 + ARM GAS /tmp/cceWHrnJ.s page 291 + + + 8290 .LBB893: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8291 .loc 2 1153 5 discriminator 1 view .LVU2838 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8292 .loc 2 1155 4 discriminator 1 view .LVU2839 + 8293 .syntax unified + 8294 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8295 0188 52E8003F ldrex r3, [r2] + 8296 @ 0 "" 2 + 8297 .LVL751: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8298 .loc 2 1156 4 discriminator 1 view .LVU2840 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8299 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2841 + 8300 .thumb + 8301 .syntax unified + 8302 .LBE893: + 8303 .LBE892: +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8304 .loc 1 4591 7 discriminator 1 view .LVU2842 + 8305 018c 43F02003 orr r3, r3, #32 + 8306 .LVL752: +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8307 .loc 1 4591 7 is_stmt 1 discriminator 1 view .LVU2843 + 8308 .LBB894: + 8309 .LBI894: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8310 .loc 2 1202 31 discriminator 1 view .LVU2844 + 8311 .LBB895: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8312 .loc 2 1204 4 discriminator 1 view .LVU2845 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8313 .loc 2 1206 4 discriminator 1 view .LVU2846 + 8314 .syntax unified + 8315 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8316 0190 42E80031 strex r1, r3, [r2] + 8317 @ 0 "" 2 + 8318 .LVL753: + 8319 .loc 2 1207 4 discriminator 1 view .LVU2847 + 8320 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2848 + 8321 .thumb + 8322 .syntax unified + 8323 .LBE895: + 8324 .LBE894: +4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8325 .loc 1 4591 7 discriminator 1 view .LVU2849 + 8326 0194 0029 cmp r1, #0 + 8327 0196 F6D1 bne .L347 + 8328 0198 44E7 b .L330 + 8329 .L353: + 8330 019a 00BF .align 2 + 8331 .L352: + 8332 019c 00000000 .word UART_RxISR_16BIT + 8333 .LBE891: + 8334 .cfi_endproc + 8335 .LFE398: + 8337 .section .text.UART_DMARxHalfCplt,"ax",%progbits + ARM GAS /tmp/cceWHrnJ.s page 292 + + + 8338 .align 1 + 8339 .syntax unified + 8340 .thumb + 8341 .thumb_func + 8343 UART_DMARxHalfCplt: + 8344 .LVL754: + 8345 .LFB383: +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8346 .loc 1 3718 1 is_stmt 1 view -0 + 8347 .cfi_startproc + 8348 @ args = 0, pretend = 0, frame = 0 + 8349 @ frame_needed = 0, uses_anonymous_args = 0 +3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8350 .loc 1 3718 1 is_stmt 0 view .LVU2851 + 8351 0000 08B5 push {r3, lr} + 8352 .LCFI29: + 8353 .cfi_def_cfa_offset 8 + 8354 .cfi_offset 3, -8 + 8355 .cfi_offset 14, -4 +3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8356 .loc 1 3719 3 is_stmt 1 view .LVU2852 +3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8357 .loc 1 3719 23 is_stmt 0 view .LVU2853 + 8358 0002 806A ldr r0, [r0, #40] + 8359 .LVL755: +3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8360 .loc 1 3723 3 is_stmt 1 view .LVU2854 +3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8361 .loc 1 3723 12 is_stmt 0 view .LVU2855 + 8362 0004 C36E ldr r3, [r0, #108] +3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8363 .loc 1 3723 6 view .LVU2856 + 8364 0006 012B cmp r3, #1 + 8365 0008 02D0 beq .L358 +3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8366 .loc 1 3741 5 is_stmt 1 view .LVU2857 + 8367 000a FFF7FEFF bl HAL_UART_RxHalfCpltCallback + 8368 .LVL756: + 8369 .L354: +3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8370 .loc 1 3744 1 is_stmt 0 view .LVU2858 + 8371 000e 08BD pop {r3, pc} + 8372 .LVL757: + 8373 .L358: +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8374 .loc 1 3730 5 is_stmt 1 view .LVU2859 +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8375 .loc 1 3730 44 is_stmt 0 view .LVU2860 + 8376 0010 B0F85C10 ldrh r1, [r0, #92] +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8377 .loc 1 3730 5 view .LVU2861 + 8378 0014 4908 lsrs r1, r1, #1 + 8379 0016 FFF7FEFF bl HAL_UARTEx_RxEventCallback + 8380 .LVL758: +3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8381 .loc 1 3730 5 view .LVU2862 + 8382 001a F8E7 b .L354 + ARM GAS /tmp/cceWHrnJ.s page 293 + + + 8383 .cfi_endproc + 8384 .LFE383: + 8386 .section .text.UART_DMAReceiveCplt,"ax",%progbits + 8387 .align 1 + 8388 .syntax unified + 8389 .thumb + 8390 .thumb_func + 8392 UART_DMAReceiveCplt: + 8393 .LVL759: + 8394 .LFB382: +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8395 .loc 1 3661 1 is_stmt 1 view -0 + 8396 .cfi_startproc + 8397 @ args = 0, pretend = 0, frame = 0 + 8398 @ frame_needed = 0, uses_anonymous_args = 0 +3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8399 .loc 1 3661 1 is_stmt 0 view .LVU2864 + 8400 0000 08B5 push {r3, lr} + 8401 .LCFI30: + 8402 .cfi_def_cfa_offset 8 + 8403 .cfi_offset 3, -8 + 8404 .cfi_offset 14, -4 + 8405 0002 0346 mov r3, r0 +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8406 .loc 1 3662 3 is_stmt 1 view .LVU2865 +3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8407 .loc 1 3662 23 is_stmt 0 view .LVU2866 + 8408 0004 806A ldr r0, [r0, #40] + 8409 .LVL760: +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8410 .loc 1 3665 3 is_stmt 1 view .LVU2867 +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8411 .loc 1 3665 7 is_stmt 0 view .LVU2868 + 8412 0006 1B68 ldr r3, [r3] + 8413 .LVL761: +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8414 .loc 1 3665 7 view .LVU2869 + 8415 0008 1B68 ldr r3, [r3] +3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8416 .loc 1 3665 6 view .LVU2870 + 8417 000a 13F0200F tst r3, #32 + 8418 000e 29D1 bne .L360 +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8419 .loc 1 3667 5 is_stmt 1 view .LVU2871 +3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8420 .loc 1 3667 24 is_stmt 0 view .LVU2872 + 8421 0010 0023 movs r3, #0 + 8422 0012 A0F85E30 strh r3, [r0, #94] @ movhi + 8423 .L361: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8424 .loc 1 3670 5 is_stmt 1 discriminator 1 view .LVU2873 + 8425 .LBB896: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8426 .loc 1 3670 5 discriminator 1 view .LVU2874 +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8427 .loc 1 3670 5 discriminator 1 view .LVU2875 +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + ARM GAS /tmp/cceWHrnJ.s page 294 + + + 8428 .loc 1 3670 5 discriminator 1 view .LVU2876 + 8429 0016 0268 ldr r2, [r0] + 8430 .LVL762: + 8431 .LBB897: + 8432 .LBI897: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8433 .loc 2 1151 31 discriminator 1 view .LVU2877 + 8434 .LBB898: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8435 .loc 2 1153 5 discriminator 1 view .LVU2878 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8436 .loc 2 1155 4 discriminator 1 view .LVU2879 + 8437 .syntax unified + 8438 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8439 0018 52E8003F ldrex r3, [r2] + 8440 @ 0 "" 2 + 8441 .LVL763: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8442 .loc 2 1156 4 discriminator 1 view .LVU2880 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8443 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2881 + 8444 .thumb + 8445 .syntax unified + 8446 .LBE898: + 8447 .LBE897: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8448 .loc 1 3670 5 discriminator 1 view .LVU2882 + 8449 001c 23F48073 bic r3, r3, #256 + 8450 .LVL764: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8451 .loc 1 3670 5 is_stmt 1 discriminator 1 view .LVU2883 + 8452 .LBB899: + 8453 .LBI899: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8454 .loc 2 1202 31 discriminator 1 view .LVU2884 + 8455 .LBB900: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8456 .loc 2 1204 4 discriminator 1 view .LVU2885 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8457 .loc 2 1206 4 discriminator 1 view .LVU2886 + 8458 .syntax unified + 8459 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8460 0020 42E80031 strex r1, r3, [r2] + 8461 @ 0 "" 2 + 8462 .LVL765: + 8463 .loc 2 1207 4 discriminator 1 view .LVU2887 + 8464 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2888 + 8465 .thumb + 8466 .syntax unified + 8467 .LBE900: + 8468 .LBE899: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8469 .loc 1 3670 5 discriminator 1 view .LVU2889 + 8470 0024 0029 cmp r1, #0 + 8471 0026 F6D1 bne .L361 + 8472 .LVL766: + 8473 .L362: + ARM GAS /tmp/cceWHrnJ.s page 295 + + +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8474 .loc 1 3670 5 discriminator 1 view .LVU2890 + 8475 .LBE896: +3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8476 .loc 1 3670 5 is_stmt 1 discriminator 1 view .LVU2891 +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8477 .loc 1 3671 5 discriminator 1 view .LVU2892 + 8478 .LBB901: +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8479 .loc 1 3671 5 discriminator 1 view .LVU2893 +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8480 .loc 1 3671 5 discriminator 1 view .LVU2894 +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8481 .loc 1 3671 5 discriminator 1 view .LVU2895 + 8482 0028 0268 ldr r2, [r0] + 8483 .LVL767: + 8484 .LBB902: + 8485 .LBI902: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8486 .loc 2 1151 31 discriminator 1 view .LVU2896 + 8487 .LBB903: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8488 .loc 2 1153 5 discriminator 1 view .LVU2897 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8489 .loc 2 1155 4 discriminator 1 view .LVU2898 + 8490 002a 02F10803 add r3, r2, #8 + 8491 .LVL768: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8492 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2899 + 8493 .syntax unified + 8494 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8495 002e 53E8003F ldrex r3, [r3] + 8496 @ 0 "" 2 + 8497 .LVL769: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8498 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2900 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8499 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2901 + 8500 .thumb + 8501 .syntax unified + 8502 .LBE903: + 8503 .LBE902: +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8504 .loc 1 3671 5 discriminator 1 view .LVU2902 + 8505 0032 23F00103 bic r3, r3, #1 + 8506 .LVL770: +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8507 .loc 1 3671 5 is_stmt 1 discriminator 1 view .LVU2903 + 8508 .LBB904: + 8509 .LBI904: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8510 .loc 2 1202 31 discriminator 1 view .LVU2904 + 8511 .LBB905: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8512 .loc 2 1204 4 discriminator 1 view .LVU2905 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8513 .loc 2 1206 4 discriminator 1 view .LVU2906 + ARM GAS /tmp/cceWHrnJ.s page 296 + + + 8514 0036 0832 adds r2, r2, #8 + 8515 .LVL771: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8516 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2907 + 8517 .syntax unified + 8518 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8519 0038 42E80031 strex r1, r3, [r2] + 8520 @ 0 "" 2 + 8521 .LVL772: + 8522 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2908 + 8523 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2909 + 8524 .thumb + 8525 .syntax unified + 8526 .LBE905: + 8527 .LBE904: +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8528 .loc 1 3671 5 discriminator 1 view .LVU2910 + 8529 003c 0029 cmp r1, #0 + 8530 003e F3D1 bne .L362 + 8531 .LVL773: + 8532 .L363: +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8533 .loc 1 3671 5 discriminator 1 view .LVU2911 + 8534 .LBE901: +3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8535 .loc 1 3671 5 is_stmt 1 discriminator 1 view .LVU2912 +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8536 .loc 1 3675 5 discriminator 1 view .LVU2913 + 8537 .LBB906: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8538 .loc 1 3675 5 discriminator 1 view .LVU2914 +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8539 .loc 1 3675 5 discriminator 1 view .LVU2915 +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8540 .loc 1 3675 5 discriminator 1 view .LVU2916 + 8541 0040 0268 ldr r2, [r0] + 8542 .LVL774: + 8543 .LBB907: + 8544 .LBI907: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8545 .loc 2 1151 31 discriminator 1 view .LVU2917 + 8546 .LBB908: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8547 .loc 2 1153 5 discriminator 1 view .LVU2918 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8548 .loc 2 1155 4 discriminator 1 view .LVU2919 + 8549 0042 02F10803 add r3, r2, #8 + 8550 .LVL775: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8551 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU2920 + 8552 .syntax unified + 8553 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8554 0046 53E8003F ldrex r3, [r3] + 8555 @ 0 "" 2 + 8556 .LVL776: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8557 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU2921 + ARM GAS /tmp/cceWHrnJ.s page 297 + + +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8558 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2922 + 8559 .thumb + 8560 .syntax unified + 8561 .LBE908: + 8562 .LBE907: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8563 .loc 1 3675 5 discriminator 1 view .LVU2923 + 8564 004a 23F04003 bic r3, r3, #64 + 8565 .LVL777: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8566 .loc 1 3675 5 is_stmt 1 discriminator 1 view .LVU2924 + 8567 .LBB909: + 8568 .LBI909: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8569 .loc 2 1202 31 discriminator 1 view .LVU2925 + 8570 .LBB910: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8571 .loc 2 1204 4 discriminator 1 view .LVU2926 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8572 .loc 2 1206 4 discriminator 1 view .LVU2927 + 8573 004e 0832 adds r2, r2, #8 + 8574 .LVL778: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8575 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU2928 + 8576 .syntax unified + 8577 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8578 0050 42E80031 strex r1, r3, [r2] + 8579 @ 0 "" 2 + 8580 .LVL779: + 8581 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU2929 + 8582 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2930 + 8583 .thumb + 8584 .syntax unified + 8585 .LBE910: + 8586 .LBE909: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8587 .loc 1 3675 5 discriminator 1 view .LVU2931 + 8588 0054 0029 cmp r1, #0 + 8589 0056 F3D1 bne .L363 + 8590 .LBE906: +3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8591 .loc 1 3675 5 is_stmt 1 discriminator 2 view .LVU2932 +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8592 .loc 1 3678 5 discriminator 2 view .LVU2933 +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8593 .loc 1 3678 20 is_stmt 0 discriminator 2 view .LVU2934 + 8594 0058 2023 movs r3, #32 + 8595 .LVL780: +3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8596 .loc 1 3678 20 discriminator 2 view .LVU2935 + 8597 005a C0F88830 str r3, [r0, #136] +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8598 .loc 1 3681 5 is_stmt 1 discriminator 2 view .LVU2936 +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8599 .loc 1 3681 14 is_stmt 0 discriminator 2 view .LVU2937 + 8600 005e C36E ldr r3, [r0, #108] + ARM GAS /tmp/cceWHrnJ.s page 298 + + +3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8601 .loc 1 3681 8 discriminator 2 view .LVU2938 + 8602 0060 012B cmp r3, #1 + 8603 0062 05D0 beq .L364 + 8604 .LVL781: + 8605 .L360: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8606 .loc 1 3683 7 is_stmt 1 discriminator 2 view .LVU2939 +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8607 .loc 1 3689 3 discriminator 2 view .LVU2940 +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8608 .loc 1 3689 12 is_stmt 0 discriminator 2 view .LVU2941 + 8609 0064 C36E ldr r3, [r0, #108] +3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8610 .loc 1 3689 6 discriminator 2 view .LVU2942 + 8611 0066 012B cmp r3, #1 + 8612 0068 0CD0 beq .L368 +3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8613 .loc 1 3707 5 is_stmt 1 view .LVU2943 + 8614 006a FFF7FEFF bl HAL_UART_RxCpltCallback + 8615 .LVL782: + 8616 .L359: +3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8617 .loc 1 3710 1 is_stmt 0 view .LVU2944 + 8618 006e 08BD pop {r3, pc} + 8619 .LVL783: + 8620 .L364: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8621 .loc 1 3683 7 is_stmt 1 discriminator 1 view .LVU2945 + 8622 .LBB911: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8623 .loc 1 3683 7 discriminator 1 view .LVU2946 +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8624 .loc 1 3683 7 discriminator 1 view .LVU2947 +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8625 .loc 1 3683 7 discriminator 1 view .LVU2948 + 8626 0070 0268 ldr r2, [r0] + 8627 .LVL784: + 8628 .LBB912: + 8629 .LBI912: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8630 .loc 2 1151 31 discriminator 1 view .LVU2949 + 8631 .LBB913: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8632 .loc 2 1153 5 discriminator 1 view .LVU2950 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8633 .loc 2 1155 4 discriminator 1 view .LVU2951 + 8634 .syntax unified + 8635 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8636 0072 52E8003F ldrex r3, [r2] + 8637 @ 0 "" 2 + 8638 .LVL785: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8639 .loc 2 1156 4 discriminator 1 view .LVU2952 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8640 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU2953 + 8641 .thumb + ARM GAS /tmp/cceWHrnJ.s page 299 + + + 8642 .syntax unified + 8643 .LBE913: + 8644 .LBE912: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8645 .loc 1 3683 7 discriminator 1 view .LVU2954 + 8646 0076 23F01003 bic r3, r3, #16 + 8647 .LVL786: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8648 .loc 1 3683 7 is_stmt 1 discriminator 1 view .LVU2955 + 8649 .LBB914: + 8650 .LBI914: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8651 .loc 2 1202 31 discriminator 1 view .LVU2956 + 8652 .LBB915: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8653 .loc 2 1204 4 discriminator 1 view .LVU2957 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8654 .loc 2 1206 4 discriminator 1 view .LVU2958 + 8655 .syntax unified + 8656 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8657 007a 42E80031 strex r1, r3, [r2] + 8658 @ 0 "" 2 + 8659 .LVL787: + 8660 .loc 2 1207 4 discriminator 1 view .LVU2959 + 8661 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU2960 + 8662 .thumb + 8663 .syntax unified + 8664 .LBE915: + 8665 .LBE914: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8666 .loc 1 3683 7 discriminator 1 view .LVU2961 + 8667 007e 0029 cmp r1, #0 + 8668 0080 F6D1 bne .L364 + 8669 0082 EFE7 b .L360 + 8670 .LVL788: + 8671 .L368: +3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8672 .loc 1 3683 7 discriminator 1 view .LVU2962 + 8673 .LBE911: +3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8674 .loc 1 3696 5 is_stmt 1 view .LVU2963 + 8675 0084 B0F85C10 ldrh r1, [r0, #92] + 8676 0088 FFF7FEFF bl HAL_UARTEx_RxEventCallback + 8677 .LVL789: +3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + 8678 .loc 1 3696 5 is_stmt 0 view .LVU2964 + 8679 008c EFE7 b .L359 + 8680 .cfi_endproc + 8681 .LFE382: + 8683 .section .text.HAL_UART_ReceiverTimeout_Config,"ax",%progbits + 8684 .align 1 + 8685 .global HAL_UART_ReceiverTimeout_Config + 8686 .syntax unified + 8687 .thumb + 8688 .thumb_func + 8690 HAL_UART_ReceiverTimeout_Config: + 8691 .LVL790: + ARM GAS /tmp/cceWHrnJ.s page 300 + + + 8692 .LFB361: +2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) + 8693 .loc 1 2729 1 is_stmt 1 view -0 + 8694 .cfi_startproc + 8695 @ args = 0, pretend = 0, frame = 0 + 8696 @ frame_needed = 0, uses_anonymous_args = 0 + 8697 @ link register save eliminated. +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8698 .loc 1 2730 3 view .LVU2966 +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8699 .loc 1 2730 9 is_stmt 0 view .LVU2967 + 8700 0000 0268 ldr r2, [r0] +2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8701 .loc 1 2730 6 view .LVU2968 + 8702 0002 044B ldr r3, .L371 + 8703 0004 9A42 cmp r2, r3 + 8704 0006 04D0 beq .L369 +2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); + 8705 .loc 1 2732 5 is_stmt 1 view .LVU2969 +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8706 .loc 1 2733 5 view .LVU2970 + 8707 0008 5369 ldr r3, [r2, #20] + 8708 000a 03F07F43 and r3, r3, #-16777216 + 8709 000e 1943 orrs r1, r1, r3 + 8710 .LVL791: +2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8711 .loc 1 2733 5 is_stmt 0 view .LVU2971 + 8712 0010 5161 str r1, [r2, #20] + 8713 .L369: +2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8714 .loc 1 2735 1 view .LVU2972 + 8715 0012 7047 bx lr + 8716 .L372: + 8717 .align 2 + 8718 .L371: + 8719 0014 00800040 .word 1073774592 + 8720 .cfi_endproc + 8721 .LFE361: + 8723 .section .text.HAL_UART_EnableReceiverTimeout,"ax",%progbits + 8724 .align 1 + 8725 .global HAL_UART_EnableReceiverTimeout + 8726 .syntax unified + 8727 .thumb + 8728 .thumb_func + 8730 HAL_UART_EnableReceiverTimeout: + 8731 .LVL792: + 8732 .LFB362: +2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) + 8733 .loc 1 2744 1 is_stmt 1 view -0 + 8734 .cfi_startproc + 8735 @ args = 0, pretend = 0, frame = 0 + 8736 @ frame_needed = 0, uses_anonymous_args = 0 + 8737 @ link register save eliminated. +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8738 .loc 1 2745 3 view .LVU2974 +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8739 .loc 1 2745 9 is_stmt 0 view .LVU2975 + ARM GAS /tmp/cceWHrnJ.s page 301 + + + 8740 0000 0368 ldr r3, [r0] +2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8741 .loc 1 2745 6 view .LVU2976 + 8742 0002 114A ldr r2, .L378 + 8743 0004 9342 cmp r3, r2 + 8744 0006 19D0 beq .L375 +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8745 .loc 1 2747 5 is_stmt 1 view .LVU2977 +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8746 .loc 1 2747 14 is_stmt 0 view .LVU2978 + 8747 0008 D0F88420 ldr r2, [r0, #132] +2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8748 .loc 1 2747 8 view .LVU2979 + 8749 000c 202A cmp r2, #32 + 8750 000e 17D1 bne .L376 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8751 .loc 1 2750 7 is_stmt 1 view .LVU2980 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8752 .loc 1 2750 7 view .LVU2981 + 8753 0010 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 + 8754 0014 012A cmp r2, #1 + 8755 0016 15D0 beq .L377 +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8756 .loc 1 2750 7 discriminator 2 view .LVU2982 + 8757 0018 0122 movs r2, #1 + 8758 001a 80F88020 strb r2, [r0, #128] +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8759 .loc 1 2750 7 discriminator 2 view .LVU2983 +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8760 .loc 1 2752 7 discriminator 2 view .LVU2984 +2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8761 .loc 1 2752 21 is_stmt 0 discriminator 2 view .LVU2985 + 8762 001e 2422 movs r2, #36 + 8763 0020 C0F88420 str r2, [r0, #132] +2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8764 .loc 1 2755 7 is_stmt 1 discriminator 2 view .LVU2986 + 8765 0024 5A68 ldr r2, [r3, #4] + 8766 0026 42F40002 orr r2, r2, #8388608 + 8767 002a 5A60 str r2, [r3, #4] +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8768 .loc 1 2757 7 discriminator 2 view .LVU2987 +2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8769 .loc 1 2757 21 is_stmt 0 discriminator 2 view .LVU2988 + 8770 002c 2023 movs r3, #32 + 8771 002e C0F88430 str r3, [r0, #132] +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8772 .loc 1 2760 7 is_stmt 1 discriminator 2 view .LVU2989 +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8773 .loc 1 2760 7 discriminator 2 view .LVU2990 + 8774 0032 0023 movs r3, #0 + 8775 0034 80F88030 strb r3, [r0, #128] +2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8776 .loc 1 2760 7 discriminator 2 view .LVU2991 +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8777 .loc 1 2762 7 discriminator 2 view .LVU2992 +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8778 .loc 1 2762 14 is_stmt 0 discriminator 2 view .LVU2993 + ARM GAS /tmp/cceWHrnJ.s page 302 + + + 8779 0038 1846 mov r0, r3 + 8780 .LVL793: +2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8781 .loc 1 2762 14 discriminator 2 view .LVU2994 + 8782 003a 7047 bx lr + 8783 .LVL794: + 8784 .L375: +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8785 .loc 1 2771 12 view .LVU2995 + 8786 003c 0120 movs r0, #1 + 8787 .LVL795: +2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8788 .loc 1 2771 12 view .LVU2996 + 8789 003e 7047 bx lr + 8790 .LVL796: + 8791 .L376: +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8792 .loc 1 2766 14 view .LVU2997 + 8793 0040 0220 movs r0, #2 + 8794 .LVL797: +2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8795 .loc 1 2766 14 view .LVU2998 + 8796 0042 7047 bx lr + 8797 .LVL798: + 8798 .L377: +2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8799 .loc 1 2750 7 view .LVU2999 + 8800 0044 0220 movs r0, #2 + 8801 .LVL799: +2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8802 .loc 1 2773 1 view .LVU3000 + 8803 0046 7047 bx lr + 8804 .L379: + 8805 .align 2 + 8806 .L378: + 8807 0048 00800040 .word 1073774592 + 8808 .cfi_endproc + 8809 .LFE362: + 8811 .section .text.HAL_UART_DisableReceiverTimeout,"ax",%progbits + 8812 .align 1 + 8813 .global HAL_UART_DisableReceiverTimeout + 8814 .syntax unified + 8815 .thumb + 8816 .thumb_func + 8818 HAL_UART_DisableReceiverTimeout: + 8819 .LVL800: + 8820 .LFB363: +2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) + 8821 .loc 1 2782 1 is_stmt 1 view -0 + 8822 .cfi_startproc + 8823 @ args = 0, pretend = 0, frame = 0 + 8824 @ frame_needed = 0, uses_anonymous_args = 0 + 8825 @ link register save eliminated. +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8826 .loc 1 2783 3 view .LVU3002 +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8827 .loc 1 2783 9 is_stmt 0 view .LVU3003 + ARM GAS /tmp/cceWHrnJ.s page 303 + + + 8828 0000 0368 ldr r3, [r0] +2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8829 .loc 1 2783 6 view .LVU3004 + 8830 0002 114A ldr r2, .L385 + 8831 0004 9342 cmp r3, r2 + 8832 0006 19D0 beq .L382 +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8833 .loc 1 2785 5 is_stmt 1 view .LVU3005 +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8834 .loc 1 2785 14 is_stmt 0 view .LVU3006 + 8835 0008 D0F88420 ldr r2, [r0, #132] +2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 8836 .loc 1 2785 8 view .LVU3007 + 8837 000c 202A cmp r2, #32 + 8838 000e 17D1 bne .L383 +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8839 .loc 1 2788 7 is_stmt 1 view .LVU3008 +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8840 .loc 1 2788 7 view .LVU3009 + 8841 0010 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 + 8842 0014 012A cmp r2, #1 + 8843 0016 15D0 beq .L384 +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8844 .loc 1 2788 7 discriminator 2 view .LVU3010 + 8845 0018 0122 movs r2, #1 + 8846 001a 80F88020 strb r2, [r0, #128] +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8847 .loc 1 2788 7 discriminator 2 view .LVU3011 +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8848 .loc 1 2790 7 discriminator 2 view .LVU3012 +2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8849 .loc 1 2790 21 is_stmt 0 discriminator 2 view .LVU3013 + 8850 001e 2422 movs r2, #36 + 8851 0020 C0F88420 str r2, [r0, #132] +2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8852 .loc 1 2793 7 is_stmt 1 discriminator 2 view .LVU3014 + 8853 0024 5A68 ldr r2, [r3, #4] + 8854 0026 22F40002 bic r2, r2, #8388608 + 8855 002a 5A60 str r2, [r3, #4] +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8856 .loc 1 2795 7 discriminator 2 view .LVU3015 +2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8857 .loc 1 2795 21 is_stmt 0 discriminator 2 view .LVU3016 + 8858 002c 2023 movs r3, #32 + 8859 002e C0F88430 str r3, [r0, #132] +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8860 .loc 1 2798 7 is_stmt 1 discriminator 2 view .LVU3017 +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8861 .loc 1 2798 7 discriminator 2 view .LVU3018 + 8862 0032 0023 movs r3, #0 + 8863 0034 80F88030 strb r3, [r0, #128] +2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8864 .loc 1 2798 7 discriminator 2 view .LVU3019 +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8865 .loc 1 2800 7 discriminator 2 view .LVU3020 +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8866 .loc 1 2800 14 is_stmt 0 discriminator 2 view .LVU3021 + ARM GAS /tmp/cceWHrnJ.s page 304 + + + 8867 0038 1846 mov r0, r3 + 8868 .LVL801: +2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8869 .loc 1 2800 14 discriminator 2 view .LVU3022 + 8870 003a 7047 bx lr + 8871 .LVL802: + 8872 .L382: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8873 .loc 1 2809 12 view .LVU3023 + 8874 003c 0120 movs r0, #1 + 8875 .LVL803: +2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8876 .loc 1 2809 12 view .LVU3024 + 8877 003e 7047 bx lr + 8878 .LVL804: + 8879 .L383: +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8880 .loc 1 2804 14 view .LVU3025 + 8881 0040 0220 movs r0, #2 + 8882 .LVL805: +2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8883 .loc 1 2804 14 view .LVU3026 + 8884 0042 7047 bx lr + 8885 .LVL806: + 8886 .L384: +2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8887 .loc 1 2788 7 view .LVU3027 + 8888 0044 0220 movs r0, #2 + 8889 .LVL807: +2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8890 .loc 1 2811 1 view .LVU3028 + 8891 0046 7047 bx lr + 8892 .L386: + 8893 .align 2 + 8894 .L385: + 8895 0048 00800040 .word 1073774592 + 8896 .cfi_endproc + 8897 .LFE363: + 8899 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits + 8900 .align 1 + 8901 .global HAL_MultiProcessor_EnterMuteMode + 8902 .syntax unified + 8903 .thumb + 8904 .thumb_func + 8906 HAL_MultiProcessor_EnterMuteMode: + 8907 .LVL808: + 8908 .LFB366: +2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); + 8909 .loc 1 2860 1 is_stmt 1 view -0 + 8910 .cfi_startproc + 8911 @ args = 0, pretend = 0, frame = 0 + 8912 @ frame_needed = 0, uses_anonymous_args = 0 + 8913 @ link register save eliminated. +2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 8914 .loc 1 2861 3 view .LVU3030 + 8915 0000 0268 ldr r2, [r0] + 8916 0002 9369 ldr r3, [r2, #24] + ARM GAS /tmp/cceWHrnJ.s page 305 + + + 8917 0004 43F00403 orr r3, r3, #4 + 8918 0008 9361 str r3, [r2, #24] +2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8919 .loc 1 2862 1 is_stmt 0 view .LVU3031 + 8920 000a 7047 bx lr + 8921 .cfi_endproc + 8922 .LFE366: + 8924 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits + 8925 .align 1 + 8926 .global HAL_HalfDuplex_EnableTransmitter + 8927 .syntax unified + 8928 .thumb + 8929 .thumb_func + 8931 HAL_HalfDuplex_EnableTransmitter: + 8932 .LVL809: + 8933 .LFB367: +2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 8934 .loc 1 2870 1 is_stmt 1 view -0 + 8935 .cfi_startproc + 8936 @ args = 0, pretend = 0, frame = 0 + 8937 @ frame_needed = 0, uses_anonymous_args = 0 + 8938 @ link register save eliminated. +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 8939 .loc 1 2871 3 view .LVU3033 +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 8940 .loc 1 2871 3 view .LVU3034 + 8941 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 8942 0004 012B cmp r3, #1 + 8943 0006 1FD0 beq .L392 +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 8944 .loc 1 2871 3 discriminator 2 view .LVU3035 + 8945 0008 0123 movs r3, #1 + 8946 000a 80F88030 strb r3, [r0, #128] +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 8947 .loc 1 2871 3 discriminator 2 view .LVU3036 +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8948 .loc 1 2872 3 discriminator 2 view .LVU3037 +2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8949 .loc 1 2872 17 is_stmt 0 discriminator 2 view .LVU3038 + 8950 000e 2423 movs r3, #36 + 8951 0010 C0F88430 str r3, [r0, #132] + 8952 .L390: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8953 .loc 1 2875 3 is_stmt 1 discriminator 1 view .LVU3039 + 8954 .LBB916: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8955 .loc 1 2875 3 discriminator 1 view .LVU3040 +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8956 .loc 1 2875 3 discriminator 1 view .LVU3041 +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8957 .loc 1 2875 3 discriminator 1 view .LVU3042 + 8958 0014 0268 ldr r2, [r0] + 8959 .LVL810: + 8960 .LBB917: + 8961 .LBI917: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8962 .loc 2 1151 31 discriminator 1 view .LVU3043 + ARM GAS /tmp/cceWHrnJ.s page 306 + + + 8963 .LBB918: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8964 .loc 2 1153 5 discriminator 1 view .LVU3044 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8965 .loc 2 1155 4 discriminator 1 view .LVU3045 + 8966 .syntax unified + 8967 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8968 0016 52E8003F ldrex r3, [r2] + 8969 @ 0 "" 2 + 8970 .LVL811: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8971 .loc 2 1156 4 discriminator 1 view .LVU3046 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 8972 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3047 + 8973 .thumb + 8974 .syntax unified + 8975 .LBE918: + 8976 .LBE917: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8977 .loc 1 2875 3 discriminator 1 view .LVU3048 + 8978 001a 23F00C03 bic r3, r3, #12 + 8979 .LVL812: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8980 .loc 1 2875 3 is_stmt 1 discriminator 1 view .LVU3049 + 8981 .LBB919: + 8982 .LBI919: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 8983 .loc 2 1202 31 discriminator 1 view .LVU3050 + 8984 .LBB920: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 8985 .loc 2 1204 4 discriminator 1 view .LVU3051 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 8986 .loc 2 1206 4 discriminator 1 view .LVU3052 + 8987 .syntax unified + 8988 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 8989 001e 42E80031 strex r1, r3, [r2] + 8990 @ 0 "" 2 + 8991 .LVL813: + 8992 .loc 2 1207 4 discriminator 1 view .LVU3053 + 8993 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3054 + 8994 .thumb + 8995 .syntax unified + 8996 .LBE920: + 8997 .LBE919: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 8998 .loc 1 2875 3 discriminator 1 view .LVU3055 + 8999 0022 0029 cmp r1, #0 + 9000 0024 F6D1 bne .L390 + 9001 .LVL814: + 9002 .L391: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9003 .loc 1 2875 3 discriminator 1 view .LVU3056 + 9004 .LBE916: +2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9005 .loc 1 2875 3 is_stmt 1 discriminator 1 view .LVU3057 +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9006 .loc 1 2878 3 discriminator 1 view .LVU3058 + ARM GAS /tmp/cceWHrnJ.s page 307 + + + 9007 .LBB921: +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9008 .loc 1 2878 3 discriminator 1 view .LVU3059 +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9009 .loc 1 2878 3 discriminator 1 view .LVU3060 +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9010 .loc 1 2878 3 discriminator 1 view .LVU3061 + 9011 0026 0268 ldr r2, [r0] + 9012 .LVL815: + 9013 .LBB922: + 9014 .LBI922: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 9015 .loc 2 1151 31 discriminator 1 view .LVU3062 + 9016 .LBB923: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 9017 .loc 2 1153 5 discriminator 1 view .LVU3063 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 9018 .loc 2 1155 4 discriminator 1 view .LVU3064 + 9019 .syntax unified + 9020 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 9021 0028 52E8003F ldrex r3, [r2] + 9022 @ 0 "" 2 + 9023 .LVL816: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 9024 .loc 2 1156 4 discriminator 1 view .LVU3065 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 9025 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3066 + 9026 .thumb + 9027 .syntax unified + 9028 .LBE923: + 9029 .LBE922: +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9030 .loc 1 2878 3 discriminator 1 view .LVU3067 + 9031 002c 43F00803 orr r3, r3, #8 + 9032 .LVL817: +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9033 .loc 1 2878 3 is_stmt 1 discriminator 1 view .LVU3068 + 9034 .LBB924: + 9035 .LBI924: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 9036 .loc 2 1202 31 discriminator 1 view .LVU3069 + 9037 .LBB925: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 9038 .loc 2 1204 4 discriminator 1 view .LVU3070 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 9039 .loc 2 1206 4 discriminator 1 view .LVU3071 + 9040 .syntax unified + 9041 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 9042 0030 42E80031 strex r1, r3, [r2] + 9043 @ 0 "" 2 + 9044 .LVL818: + 9045 .loc 2 1207 4 discriminator 1 view .LVU3072 + 9046 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3073 + 9047 .thumb + 9048 .syntax unified + 9049 .LBE925: + 9050 .LBE924: + ARM GAS /tmp/cceWHrnJ.s page 308 + + +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9051 .loc 1 2878 3 discriminator 1 view .LVU3074 + 9052 0034 0029 cmp r1, #0 + 9053 0036 F6D1 bne .L391 + 9054 .LBE921: +2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9055 .loc 1 2878 3 is_stmt 1 discriminator 2 view .LVU3075 +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9056 .loc 1 2880 3 discriminator 2 view .LVU3076 +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9057 .loc 1 2880 17 is_stmt 0 discriminator 2 view .LVU3077 + 9058 0038 2023 movs r3, #32 + 9059 .LVL819: +2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9060 .loc 1 2880 17 discriminator 2 view .LVU3078 + 9061 003a C0F88430 str r3, [r0, #132] +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9062 .loc 1 2882 3 is_stmt 1 discriminator 2 view .LVU3079 +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9063 .loc 1 2882 3 discriminator 2 view .LVU3080 + 9064 003e 0023 movs r3, #0 + 9065 0040 80F88030 strb r3, [r0, #128] +2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9066 .loc 1 2882 3 discriminator 2 view .LVU3081 +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9067 .loc 1 2884 3 discriminator 2 view .LVU3082 +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9068 .loc 1 2884 10 is_stmt 0 discriminator 2 view .LVU3083 + 9069 0044 1846 mov r0, r3 + 9070 .LVL820: +2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9071 .loc 1 2884 10 discriminator 2 view .LVU3084 + 9072 0046 7047 bx lr + 9073 .LVL821: + 9074 .L392: +2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 9075 .loc 1 2871 3 view .LVU3085 + 9076 0048 0220 movs r0, #2 + 9077 .LVL822: +2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9078 .loc 1 2885 1 view .LVU3086 + 9079 004a 7047 bx lr + 9080 .cfi_endproc + 9081 .LFE367: + 9083 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits + 9084 .align 1 + 9085 .global HAL_HalfDuplex_EnableReceiver + 9086 .syntax unified + 9087 .thumb + 9088 .thumb_func + 9090 HAL_HalfDuplex_EnableReceiver: + 9091 .LVL823: + 9092 .LFB368: +2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 9093 .loc 1 2893 1 is_stmt 1 view -0 + 9094 .cfi_startproc + 9095 @ args = 0, pretend = 0, frame = 0 + ARM GAS /tmp/cceWHrnJ.s page 309 + + + 9096 @ frame_needed = 0, uses_anonymous_args = 0 + 9097 @ link register save eliminated. +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 9098 .loc 1 2894 3 view .LVU3088 +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 9099 .loc 1 2894 3 view .LVU3089 + 9100 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 9101 0004 012B cmp r3, #1 + 9102 0006 1FD0 beq .L397 +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 9103 .loc 1 2894 3 discriminator 2 view .LVU3090 + 9104 0008 0123 movs r3, #1 + 9105 000a 80F88030 strb r3, [r0, #128] +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 9106 .loc 1 2894 3 discriminator 2 view .LVU3091 +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9107 .loc 1 2895 3 discriminator 2 view .LVU3092 +2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9108 .loc 1 2895 17 is_stmt 0 discriminator 2 view .LVU3093 + 9109 000e 2423 movs r3, #36 + 9110 0010 C0F88430 str r3, [r0, #132] + 9111 .L395: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9112 .loc 1 2898 3 is_stmt 1 discriminator 1 view .LVU3094 + 9113 .LBB926: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9114 .loc 1 2898 3 discriminator 1 view .LVU3095 +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9115 .loc 1 2898 3 discriminator 1 view .LVU3096 +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9116 .loc 1 2898 3 discriminator 1 view .LVU3097 + 9117 0014 0268 ldr r2, [r0] + 9118 .LVL824: + 9119 .LBB927: + 9120 .LBI927: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 9121 .loc 2 1151 31 discriminator 1 view .LVU3098 + 9122 .LBB928: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 9123 .loc 2 1153 5 discriminator 1 view .LVU3099 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 9124 .loc 2 1155 4 discriminator 1 view .LVU3100 + 9125 .syntax unified + 9126 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 9127 0016 52E8003F ldrex r3, [r2] + 9128 @ 0 "" 2 + 9129 .LVL825: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 9130 .loc 2 1156 4 discriminator 1 view .LVU3101 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 9131 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3102 + 9132 .thumb + 9133 .syntax unified + 9134 .LBE928: + 9135 .LBE927: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9136 .loc 1 2898 3 discriminator 1 view .LVU3103 + ARM GAS /tmp/cceWHrnJ.s page 310 + + + 9137 001a 23F00C03 bic r3, r3, #12 + 9138 .LVL826: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9139 .loc 1 2898 3 is_stmt 1 discriminator 1 view .LVU3104 + 9140 .LBB929: + 9141 .LBI929: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 9142 .loc 2 1202 31 discriminator 1 view .LVU3105 + 9143 .LBB930: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 9144 .loc 2 1204 4 discriminator 1 view .LVU3106 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 9145 .loc 2 1206 4 discriminator 1 view .LVU3107 + 9146 .syntax unified + 9147 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 9148 001e 42E80031 strex r1, r3, [r2] + 9149 @ 0 "" 2 + 9150 .LVL827: + 9151 .loc 2 1207 4 discriminator 1 view .LVU3108 + 9152 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3109 + 9153 .thumb + 9154 .syntax unified + 9155 .LBE930: + 9156 .LBE929: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9157 .loc 1 2898 3 discriminator 1 view .LVU3110 + 9158 0022 0029 cmp r1, #0 + 9159 0024 F6D1 bne .L395 + 9160 .LVL828: + 9161 .L396: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9162 .loc 1 2898 3 discriminator 1 view .LVU3111 + 9163 .LBE926: +2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9164 .loc 1 2898 3 is_stmt 1 discriminator 1 view .LVU3112 +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9165 .loc 1 2901 3 discriminator 1 view .LVU3113 + 9166 .LBB931: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9167 .loc 1 2901 3 discriminator 1 view .LVU3114 +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9168 .loc 1 2901 3 discriminator 1 view .LVU3115 +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9169 .loc 1 2901 3 discriminator 1 view .LVU3116 + 9170 0026 0268 ldr r2, [r0] + 9171 .LVL829: + 9172 .LBB932: + 9173 .LBI932: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 9174 .loc 2 1151 31 discriminator 1 view .LVU3117 + 9175 .LBB933: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 9176 .loc 2 1153 5 discriminator 1 view .LVU3118 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 9177 .loc 2 1155 4 discriminator 1 view .LVU3119 + 9178 .syntax unified + 9179 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + ARM GAS /tmp/cceWHrnJ.s page 311 + + + 9180 0028 52E8003F ldrex r3, [r2] + 9181 @ 0 "" 2 + 9182 .LVL830: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 9183 .loc 2 1156 4 discriminator 1 view .LVU3120 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 9184 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3121 + 9185 .thumb + 9186 .syntax unified + 9187 .LBE933: + 9188 .LBE932: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9189 .loc 1 2901 3 discriminator 1 view .LVU3122 + 9190 002c 43F00403 orr r3, r3, #4 + 9191 .LVL831: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9192 .loc 1 2901 3 is_stmt 1 discriminator 1 view .LVU3123 + 9193 .LBB934: + 9194 .LBI934: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 9195 .loc 2 1202 31 discriminator 1 view .LVU3124 + 9196 .LBB935: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 9197 .loc 2 1204 4 discriminator 1 view .LVU3125 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 9198 .loc 2 1206 4 discriminator 1 view .LVU3126 + 9199 .syntax unified + 9200 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 9201 0030 42E80031 strex r1, r3, [r2] + 9202 @ 0 "" 2 + 9203 .LVL832: + 9204 .loc 2 1207 4 discriminator 1 view .LVU3127 + 9205 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3128 + 9206 .thumb + 9207 .syntax unified + 9208 .LBE935: + 9209 .LBE934: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9210 .loc 1 2901 3 discriminator 1 view .LVU3129 + 9211 0034 0029 cmp r1, #0 + 9212 0036 F6D1 bne .L396 + 9213 .LBE931: +2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9214 .loc 1 2901 3 is_stmt 1 discriminator 2 view .LVU3130 +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9215 .loc 1 2903 3 discriminator 2 view .LVU3131 +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9216 .loc 1 2903 17 is_stmt 0 discriminator 2 view .LVU3132 + 9217 0038 2023 movs r3, #32 + 9218 .LVL833: +2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9219 .loc 1 2903 17 discriminator 2 view .LVU3133 + 9220 003a C0F88430 str r3, [r0, #132] +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9221 .loc 1 2905 3 is_stmt 1 discriminator 2 view .LVU3134 +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9222 .loc 1 2905 3 discriminator 2 view .LVU3135 + ARM GAS /tmp/cceWHrnJ.s page 312 + + + 9223 003e 0023 movs r3, #0 + 9224 0040 80F88030 strb r3, [r0, #128] +2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9225 .loc 1 2905 3 discriminator 2 view .LVU3136 +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9226 .loc 1 2907 3 discriminator 2 view .LVU3137 +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9227 .loc 1 2907 10 is_stmt 0 discriminator 2 view .LVU3138 + 9228 0044 1846 mov r0, r3 + 9229 .LVL834: +2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9230 .loc 1 2907 10 discriminator 2 view .LVU3139 + 9231 0046 7047 bx lr + 9232 .LVL835: + 9233 .L397: +2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; + 9234 .loc 1 2894 3 view .LVU3140 + 9235 0048 0220 movs r0, #2 + 9236 .LVL836: +2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9237 .loc 1 2908 1 view .LVU3141 + 9238 004a 7047 bx lr + 9239 .cfi_endproc + 9240 .LFE368: + 9242 .section .text.HAL_LIN_SendBreak,"ax",%progbits + 9243 .align 1 + 9244 .global HAL_LIN_SendBreak + 9245 .syntax unified + 9246 .thumb + 9247 .thumb_func + 9249 HAL_LIN_SendBreak: + 9250 .LVL837: + 9251 .LFB369: +2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ + 9252 .loc 1 2917 1 is_stmt 1 view -0 + 9253 .cfi_startproc + 9254 @ args = 0, pretend = 0, frame = 0 + 9255 @ frame_needed = 0, uses_anonymous_args = 0 + 9256 @ link register save eliminated. +2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9257 .loc 1 2919 3 view .LVU3143 +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9258 .loc 1 2921 3 view .LVU3144 +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9259 .loc 1 2921 3 view .LVU3145 + 9260 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 9261 0004 012B cmp r3, #1 + 9262 0006 12D0 beq .L400 +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9263 .loc 1 2921 3 discriminator 2 view .LVU3146 + 9264 0008 0123 movs r3, #1 + 9265 000a 80F88030 strb r3, [r0, #128] +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9266 .loc 1 2921 3 discriminator 2 view .LVU3147 +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9267 .loc 1 2923 3 discriminator 2 view .LVU3148 +2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 313 + + + 9268 .loc 1 2923 17 is_stmt 0 discriminator 2 view .LVU3149 + 9269 000e 2423 movs r3, #36 + 9270 0010 C0F88430 str r3, [r0, #132] +2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9271 .loc 1 2926 3 is_stmt 1 discriminator 2 view .LVU3150 + 9272 0014 0268 ldr r2, [r0] + 9273 0016 9369 ldr r3, [r2, #24] + 9274 0018 43F00203 orr r3, r3, #2 + 9275 001c 9361 str r3, [r2, #24] +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9276 .loc 1 2928 3 discriminator 2 view .LVU3151 +2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9277 .loc 1 2928 17 is_stmt 0 discriminator 2 view .LVU3152 + 9278 001e 2023 movs r3, #32 + 9279 0020 C0F88430 str r3, [r0, #132] +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9280 .loc 1 2930 3 is_stmt 1 discriminator 2 view .LVU3153 +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9281 .loc 1 2930 3 discriminator 2 view .LVU3154 + 9282 0024 0023 movs r3, #0 + 9283 0026 80F88030 strb r3, [r0, #128] +2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9284 .loc 1 2930 3 discriminator 2 view .LVU3155 +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9285 .loc 1 2932 3 discriminator 2 view .LVU3156 +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9286 .loc 1 2932 10 is_stmt 0 discriminator 2 view .LVU3157 + 9287 002a 1846 mov r0, r3 + 9288 .LVL838: +2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9289 .loc 1 2932 10 discriminator 2 view .LVU3158 + 9290 002c 7047 bx lr + 9291 .LVL839: + 9292 .L400: +2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9293 .loc 1 2921 3 view .LVU3159 + 9294 002e 0220 movs r0, #2 + 9295 .LVL840: +2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9296 .loc 1 2933 1 view .LVU3160 + 9297 0030 7047 bx lr + 9298 .cfi_endproc + 9299 .LFE369: + 9301 .section .text.HAL_UART_GetState,"ax",%progbits + 9302 .align 1 + 9303 .global HAL_UART_GetState + 9304 .syntax unified + 9305 .thumb + 9306 .thumb_func + 9308 HAL_UART_GetState: + 9309 .LVL841: + 9310 .LFB370: +2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp1; + 9311 .loc 1 2962 1 is_stmt 1 view -0 + 9312 .cfi_startproc + 9313 @ args = 0, pretend = 0, frame = 0 + 9314 @ frame_needed = 0, uses_anonymous_args = 0 + ARM GAS /tmp/cceWHrnJ.s page 314 + + + 9315 @ link register save eliminated. +2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp2; + 9316 .loc 1 2963 3 view .LVU3162 +2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp1 = huart->gState; + 9317 .loc 1 2964 3 view .LVU3163 +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp2 = huart->RxState; + 9318 .loc 1 2965 3 view .LVU3164 +2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp2 = huart->RxState; + 9319 .loc 1 2965 9 is_stmt 0 view .LVU3165 + 9320 0000 D0F88420 ldr r2, [r0, #132] + 9321 .LVL842: +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9322 .loc 1 2966 3 is_stmt 1 view .LVU3166 +2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9323 .loc 1 2966 9 is_stmt 0 view .LVU3167 + 9324 0004 D0F88800 ldr r0, [r0, #136] + 9325 .LVL843: +2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9326 .loc 1 2968 3 is_stmt 1 view .LVU3168 +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9327 .loc 1 2969 1 is_stmt 0 view .LVU3169 + 9328 0008 1043 orrs r0, r0, r2 + 9329 .LVL844: +2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9330 .loc 1 2969 1 view .LVU3170 + 9331 000a 7047 bx lr + 9332 .cfi_endproc + 9333 .LFE370: + 9335 .section .text.HAL_UART_GetError,"ax",%progbits + 9336 .align 1 + 9337 .global HAL_UART_GetError + 9338 .syntax unified + 9339 .thumb + 9340 .thumb_func + 9342 HAL_UART_GetError: + 9343 .LVL845: + 9344 .LFB371: +2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return huart->ErrorCode; + 9345 .loc 1 2978 1 is_stmt 1 view -0 + 9346 .cfi_startproc + 9347 @ args = 0, pretend = 0, frame = 0 + 9348 @ frame_needed = 0, uses_anonymous_args = 0 + 9349 @ link register save eliminated. +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9350 .loc 1 2979 3 view .LVU3172 +2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9351 .loc 1 2979 15 is_stmt 0 view .LVU3173 + 9352 0000 D0F88C00 ldr r0, [r0, #140] + 9353 .LVL846: +2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** + 9354 .loc 1 2980 1 view .LVU3174 + 9355 0004 7047 bx lr + 9356 .cfi_endproc + 9357 .LFE371: + 9359 .global __aeabi_uldivmod + 9360 .section .text.UART_SetConfig,"ax",%progbits + 9361 .align 1 + ARM GAS /tmp/cceWHrnJ.s page 315 + + + 9362 .global UART_SetConfig + 9363 .syntax unified + 9364 .thumb + 9365 .thumb_func + 9367 UART_SetConfig: + 9368 .LVL847: + 9369 .LFB372: +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; + 9370 .loc 1 3024 1 is_stmt 1 view -0 + 9371 .cfi_startproc + 9372 @ args = 0, pretend = 0, frame = 0 + 9373 @ frame_needed = 0, uses_anonymous_args = 0 +3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; + 9374 .loc 1 3024 1 is_stmt 0 view .LVU3176 + 9375 0000 70B5 push {r4, r5, r6, lr} + 9376 .LCFI31: + 9377 .cfi_def_cfa_offset 16 + 9378 .cfi_offset 4, -16 + 9379 .cfi_offset 5, -12 + 9380 .cfi_offset 6, -8 + 9381 .cfi_offset 14, -4 + 9382 0002 0446 mov r4, r0 +3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t brrtemp; + 9383 .loc 1 3025 3 is_stmt 1 view .LVU3177 +3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_ClockSourceTypeDef clocksource; + 9384 .loc 1 3026 3 view .LVU3178 +3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t usartdiv; + 9385 .loc 1 3027 3 view .LVU3179 +3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef ret = HAL_OK; + 9386 .loc 1 3028 3 view .LVU3180 +3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t lpuart_ker_ck_pres; + 9387 .loc 1 3029 3 view .LVU3181 + 9388 .LVL848: +3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t pclk; + 9389 .loc 1 3030 3 view .LVU3182 +3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9390 .loc 1 3031 3 view .LVU3183 +3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); + 9391 .loc 1 3034 3 view .LVU3184 +3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_INSTANCE_LOWPOWER(huart)) + 9392 .loc 1 3035 3 view .LVU3185 +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9393 .loc 1 3036 3 view .LVU3186 +3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9394 .loc 1 3036 7 is_stmt 0 view .LVU3187 + 9395 0004 0168 ldr r1, [r0] +3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); + 9396 .loc 1 3042 5 is_stmt 1 view .LVU3188 +3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9397 .loc 1 3043 5 view .LVU3189 +3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); + 9398 .loc 1 3046 3 view .LVU3190 +3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); + 9399 .loc 1 3047 3 view .LVU3191 +3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); + 9400 .loc 1 3048 3 view .LVU3192 +3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); + ARM GAS /tmp/cceWHrnJ.s page 316 + + + 9401 .loc 1 3049 3 view .LVU3193 +3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9402 .loc 1 3050 3 view .LVU3194 +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9403 .loc 1 3059 3 view .LVU3195 +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9404 .loc 1 3059 33 is_stmt 0 view .LVU3196 + 9405 0006 8368 ldr r3, [r0, #8] +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9406 .loc 1 3059 58 view .LVU3197 + 9407 0008 0269 ldr r2, [r0, #16] +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9408 .loc 1 3059 45 view .LVU3198 + 9409 000a 1343 orrs r3, r3, r2 +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9410 .loc 1 3059 79 view .LVU3199 + 9411 000c 4269 ldr r2, [r0, #20] +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9412 .loc 1 3059 66 view .LVU3200 + 9413 000e 1343 orrs r3, r3, r2 +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9414 .loc 1 3059 98 view .LVU3201 + 9415 0010 C269 ldr r2, [r0, #28] +3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 9416 .loc 1 3059 10 view .LVU3202 + 9417 0012 1343 orrs r3, r3, r2 + 9418 .LVL849: +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9419 .loc 1 3060 3 is_stmt 1 view .LVU3203 + 9420 0014 0868 ldr r0, [r1] + 9421 .LVL850: +3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9422 .loc 1 3060 3 is_stmt 0 view .LVU3204 + 9423 0016 8B4A ldr r2, .L483 + 9424 0018 0240 ands r2, r2, r0 + 9425 001a 1A43 orrs r2, r2, r3 + 9426 001c 0A60 str r2, [r1] +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9427 .loc 1 3065 3 is_stmt 1 view .LVU3205 + 9428 001e 2268 ldr r2, [r4] + 9429 0020 5368 ldr r3, [r2, #4] + 9430 .LVL851: +3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9431 .loc 1 3065 3 is_stmt 0 view .LVU3206 + 9432 0022 23F44053 bic r3, r3, #12288 + 9433 0026 E168 ldr r1, [r4, #12] + 9434 0028 0B43 orrs r3, r3, r1 + 9435 002a 5360 str r3, [r2, #4] +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9436 .loc 1 3073 3 is_stmt 1 view .LVU3207 +3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9437 .loc 1 3073 10 is_stmt 0 view .LVU3208 + 9438 002c A169 ldr r1, [r4, #24] + 9439 .LVL852: +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9440 .loc 1 3075 3 is_stmt 1 view .LVU3209 +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 317 + + + 9441 .loc 1 3075 9 is_stmt 0 view .LVU3210 + 9442 002e 2268 ldr r2, [r4] +3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9443 .loc 1 3075 6 view .LVU3211 + 9444 0030 854B ldr r3, .L483+4 + 9445 0032 9A42 cmp r2, r3 + 9446 0034 01D0 beq .L404 +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9447 .loc 1 3077 5 is_stmt 1 view .LVU3212 +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9448 .loc 1 3077 26 is_stmt 0 view .LVU3213 + 9449 0036 236A ldr r3, [r4, #32] +3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9450 .loc 1 3077 12 view .LVU3214 + 9451 0038 1943 orrs r1, r1, r3 + 9452 .LVL853: + 9453 .L404: +3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9454 .loc 1 3079 3 is_stmt 1 view .LVU3215 + 9455 003a 9368 ldr r3, [r2, #8] + 9456 003c 23F06E43 bic r3, r3, #-301989888 + 9457 0040 23F43063 bic r3, r3, #2816 + 9458 0044 0B43 orrs r3, r3, r1 + 9459 0046 9360 str r3, [r2, #8] +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9460 .loc 1 3084 3 view .LVU3216 + 9461 0048 2268 ldr r2, [r4] + 9462 004a D36A ldr r3, [r2, #44] + 9463 004c 23F00F03 bic r3, r3, #15 + 9464 0050 616A ldr r1, [r4, #36] + 9465 .LVL854: +3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9466 .loc 1 3084 3 is_stmt 0 view .LVU3217 + 9467 0052 0B43 orrs r3, r3, r1 + 9468 0054 D362 str r3, [r2, #44] +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9469 .loc 1 3087 3 is_stmt 1 view .LVU3218 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9470 .loc 1 3087 3 view .LVU3219 + 9471 0056 2368 ldr r3, [r4] + 9472 0058 7C4A ldr r2, .L483+8 + 9473 005a 9342 cmp r3, r2 + 9474 005c 23D0 beq .L476 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9475 .loc 1 3087 3 discriminator 2 view .LVU3220 + 9476 005e 7C4A ldr r2, .L483+12 + 9477 0060 9342 cmp r3, r2 + 9478 0062 34D0 beq .L477 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9479 .loc 1 3087 3 discriminator 9 view .LVU3221 + 9480 0064 7B4A ldr r2, .L483+16 + 9481 0066 9342 cmp r3, r2 + 9482 0068 4AD0 beq .L478 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9483 .loc 1 3087 3 discriminator 16 view .LVU3222 + 9484 006a 7B4A ldr r2, .L483+20 + 9485 006c 9342 cmp r3, r2 + ARM GAS /tmp/cceWHrnJ.s page 318 + + + 9486 006e 59D0 beq .L479 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9487 .loc 1 3087 3 discriminator 23 view .LVU3223 + 9488 0070 754A ldr r2, .L483+4 + 9489 0072 9342 cmp r3, r2 + 9490 0074 68D0 beq .L480 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9491 .loc 1 3087 3 is_stmt 0 view .LVU3224 + 9492 0076 1022 movs r2, #16 + 9493 .L409: + 9494 .LVL855: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9495 .loc 1 3087 3 is_stmt 1 discriminator 36 view .LVU3225 +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9496 .loc 1 3090 3 discriminator 36 view .LVU3226 +3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9497 .loc 1 3090 6 is_stmt 0 discriminator 36 view .LVU3227 + 9498 0078 7349 ldr r1, .L483+4 + 9499 007a 8B42 cmp r3, r1 + 9500 007c 00F09580 beq .L481 +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9501 .loc 1 3143 8 is_stmt 1 view .LVU3228 +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9502 .loc 1 3143 23 is_stmt 0 view .LVU3229 + 9503 0080 E069 ldr r0, [r4, #28] +3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9504 .loc 1 3143 11 view .LVU3230 + 9505 0082 B0F5004F cmp r0, #32768 + 9506 0086 00F0D280 beq .L482 +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9507 .loc 1 3186 5 is_stmt 1 view .LVU3231 + 9508 008a 082A cmp r2, #8 + 9509 008c 00F24F81 bhi .L470 + 9510 0090 DFE812F0 tbh [pc, r2, lsl #1] + 9511 .L440: + 9512 0094 1201 .2byte (.L444-.L440)/2 + 9513 0096 3401 .2byte (.L443-.L440)/2 + 9514 0098 1001 .2byte (.L442-.L440)/2 + 9515 009a 4D01 .2byte (.L470-.L440)/2 + 9516 009c 3701 .2byte (.L441-.L440)/2 + 9517 009e 4D01 .2byte (.L470-.L440)/2 + 9518 00a0 4D01 .2byte (.L470-.L440)/2 + 9519 00a2 4D01 .2byte (.L470-.L440)/2 + 9520 00a4 3A01 .2byte (.L471-.L440)/2 + 9521 .LVL856: + 9522 .p2align 1 + 9523 .L476: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9524 .loc 1 3087 3 discriminator 1 view .LVU3232 + 9525 00a6 02F55842 add r2, r2, #55296 + 9526 00aa D2F88820 ldr r2, [r2, #136] + 9527 00ae 02F00302 and r2, r2, #3 + 9528 00b2 032A cmp r2, #3 + 9529 00b4 09D8 bhi .L406 + 9530 00b6 DFE802F0 tbb [pc, r2] + 9531 .L408: + 9532 00ba 02 .byte (.L411-.L408)/2 + ARM GAS /tmp/cceWHrnJ.s page 319 + + + 9533 00bb 04 .byte (.L410-.L408)/2 + 9534 00bc 5C .byte (.L446-.L408)/2 + 9535 00bd 06 .byte (.L407-.L408)/2 + 9536 .p2align 1 + 9537 .L411: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9538 .loc 1 3087 3 is_stmt 0 view .LVU3233 + 9539 00be 0122 movs r2, #1 + 9540 00c0 DAE7 b .L409 + 9541 .L410: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9542 .loc 1 3087 3 is_stmt 1 discriminator 5 view .LVU3234 + 9543 .LVL857: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9544 .loc 1 3087 3 discriminator 5 view .LVU3235 + 9545 00c2 0422 movs r2, #4 + 9546 00c4 D8E7 b .L409 + 9547 .LVL858: + 9548 .L407: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9549 .loc 1 3087 3 discriminator 7 view .LVU3236 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9550 .loc 1 3087 3 discriminator 7 view .LVU3237 + 9551 00c6 0822 movs r2, #8 + 9552 00c8 D6E7 b .L409 + 9553 .LVL859: + 9554 .L406: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9555 .loc 1 3087 3 discriminator 3 view .LVU3238 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9556 .loc 1 3087 3 discriminator 3 view .LVU3239 + 9557 00ca 1022 movs r2, #16 + 9558 00cc D4E7 b .L409 + 9559 .LVL860: + 9560 .L477: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9561 .loc 1 3087 3 discriminator 8 view .LVU3240 + 9562 00ce 02F5E632 add r2, r2, #117760 + 9563 00d2 D2F88820 ldr r2, [r2, #136] + 9564 00d6 02F00C02 and r2, r2, #12 + 9565 00da 0C2A cmp r2, #12 + 9566 00dc 0ED8 bhi .L413 + 9567 00de DFE802F0 tbb [pc, r2] + 9568 .L415: + 9569 00e2 07 .byte (.L417-.L415)/2 + 9570 00e3 0D .byte (.L413-.L415)/2 + 9571 00e4 0D .byte (.L413-.L415)/2 + 9572 00e5 0D .byte (.L413-.L415)/2 + 9573 00e6 09 .byte (.L416-.L415)/2 + 9574 00e7 0D .byte (.L413-.L415)/2 + 9575 00e8 0D .byte (.L413-.L415)/2 + 9576 00e9 0D .byte (.L413-.L415)/2 + 9577 00ea 4A .byte (.L447-.L415)/2 + 9578 00eb 0D .byte (.L413-.L415)/2 + 9579 00ec 0D .byte (.L413-.L415)/2 + 9580 00ed 0D .byte (.L413-.L415)/2 + 9581 00ee 0B .byte (.L414-.L415)/2 + ARM GAS /tmp/cceWHrnJ.s page 320 + + + 9582 00ef 00 .p2align 1 + 9583 .L417: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9584 .loc 1 3087 3 is_stmt 0 view .LVU3241 + 9585 00f0 0022 movs r2, #0 + 9586 00f2 C1E7 b .L409 + 9587 .L416: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9588 .loc 1 3087 3 is_stmt 1 discriminator 12 view .LVU3242 + 9589 .LVL861: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9590 .loc 1 3087 3 discriminator 12 view .LVU3243 + 9591 00f4 0422 movs r2, #4 + 9592 00f6 BFE7 b .L409 + 9593 .LVL862: + 9594 .L414: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9595 .loc 1 3087 3 discriminator 14 view .LVU3244 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9596 .loc 1 3087 3 discriminator 14 view .LVU3245 + 9597 00f8 0822 movs r2, #8 + 9598 00fa BDE7 b .L409 + 9599 .LVL863: + 9600 .L413: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9601 .loc 1 3087 3 discriminator 10 view .LVU3246 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9602 .loc 1 3087 3 discriminator 10 view .LVU3247 + 9603 00fc 1022 movs r2, #16 + 9604 00fe BBE7 b .L409 + 9605 .LVL864: + 9606 .L478: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9607 .loc 1 3087 3 discriminator 15 view .LVU3248 + 9608 0100 02F5E432 add r2, r2, #116736 + 9609 0104 D2F88820 ldr r2, [r2, #136] + 9610 0108 02F03002 and r2, r2, #48 + 9611 010c 202A cmp r2, #32 + 9612 010e 34D0 beq .L448 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9613 .loc 1 3087 3 is_stmt 0 view .LVU3249 + 9614 0110 04D8 bhi .L419 + 9615 0112 A2B3 cbz r2, .L449 + 9616 0114 102A cmp r2, #16 + 9617 0116 34D1 bne .L450 + 9618 0118 0422 movs r2, #4 + 9619 011a ADE7 b .L409 + 9620 .L419: + 9621 011c 302A cmp r2, #48 + 9622 011e 32D1 bne .L451 + 9623 0120 0822 movs r2, #8 + 9624 0122 A9E7 b .L409 + 9625 .L479: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9626 .loc 1 3087 3 is_stmt 1 discriminator 22 view .LVU3250 + 9627 0124 02F5E232 add r2, r2, #115712 + 9628 0128 D2F88820 ldr r2, [r2, #136] + ARM GAS /tmp/cceWHrnJ.s page 321 + + + 9629 012c 02F0C002 and r2, r2, #192 + 9630 0130 802A cmp r2, #128 + 9631 0132 2AD0 beq .L452 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9632 .loc 1 3087 3 is_stmt 0 view .LVU3251 + 9633 0134 04D8 bhi .L421 + 9634 0136 52B3 cbz r2, .L453 + 9635 0138 402A cmp r2, #64 + 9636 013a 2AD1 bne .L454 + 9637 013c 0422 movs r2, #4 + 9638 013e 9BE7 b .L409 + 9639 .L421: + 9640 0140 C02A cmp r2, #192 + 9641 0142 28D1 bne .L455 + 9642 0144 0822 movs r2, #8 + 9643 0146 97E7 b .L409 + 9644 .L480: +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9645 .loc 1 3087 3 is_stmt 1 discriminator 29 view .LVU3252 + 9646 0148 02F5C832 add r2, r2, #102400 + 9647 014c D2F88820 ldr r2, [r2, #136] + 9648 0150 02F44062 and r2, r2, #3072 + 9649 0154 B2F5006F cmp r2, #2048 + 9650 0158 1FD0 beq .L457 +3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9651 .loc 1 3087 3 is_stmt 0 view .LVU3253 + 9652 015a 05D8 bhi .L422 + 9653 015c FAB1 cbz r2, .L458 + 9654 015e B2F5806F cmp r2, #1024 + 9655 0162 1ED1 bne .L459 + 9656 0164 0422 movs r2, #4 + 9657 0166 87E7 b .L409 + 9658 .L422: + 9659 0168 B2F5406F cmp r2, #3072 + 9660 016c 1BD1 bne .L460 + 9661 016e 0822 movs r2, #8 + 9662 0170 82E7 b .L409 + 9663 .L446: + 9664 0172 0222 movs r2, #2 + 9665 0174 80E7 b .L409 + 9666 .L447: + 9667 0176 0222 movs r2, #2 + 9668 0178 7EE7 b .L409 + 9669 .L448: + 9670 017a 0222 movs r2, #2 + 9671 017c 7CE7 b .L409 + 9672 .L449: + 9673 017e 0022 movs r2, #0 + 9674 0180 7AE7 b .L409 + 9675 .L450: + 9676 0182 1022 movs r2, #16 + 9677 0184 78E7 b .L409 + 9678 .L451: + 9679 0186 1022 movs r2, #16 + 9680 0188 76E7 b .L409 + 9681 .L452: + 9682 018a 0222 movs r2, #2 + ARM GAS /tmp/cceWHrnJ.s page 322 + + + 9683 018c 74E7 b .L409 + 9684 .L453: + 9685 018e 0022 movs r2, #0 + 9686 0190 72E7 b .L409 + 9687 .L454: + 9688 0192 1022 movs r2, #16 + 9689 0194 70E7 b .L409 + 9690 .L455: + 9691 0196 1022 movs r2, #16 + 9692 0198 6EE7 b .L409 + 9693 .L457: + 9694 019a 0222 movs r2, #2 + 9695 019c 6CE7 b .L409 + 9696 .L458: + 9697 019e 0022 movs r2, #0 + 9698 01a0 6AE7 b .L409 + 9699 .L459: + 9700 01a2 1022 movs r2, #16 + 9701 01a4 68E7 b .L409 + 9702 .L460: + 9703 01a6 1022 movs r2, #16 + 9704 01a8 66E7 b .L409 + 9705 .LVL865: + 9706 .L481: +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9707 .loc 1 3093 5 is_stmt 1 view .LVU3254 + 9708 01aa 082A cmp r2, #8 + 9709 01ac 00F2AF80 bhi .L461 + 9710 01b0 DFE802F0 tbb [pc, r2] + 9711 .L426: + 9712 01b4 08 .byte (.L429-.L426)/2 + 9713 01b5 AD .byte (.L461-.L426)/2 + 9714 01b6 3B .byte (.L462-.L426)/2 + 9715 01b7 AD .byte (.L461-.L426)/2 + 9716 01b8 38 .byte (.L427-.L426)/2 + 9717 01b9 AD .byte (.L461-.L426)/2 + 9718 01ba AD .byte (.L461-.L426)/2 + 9719 01bb AD .byte (.L461-.L426)/2 + 9720 01bc 05 .byte (.L425-.L426)/2 + 9721 01bd 00 .p2align 1 + 9722 .L425: + 9723 01be 4FF40040 mov r0, #32768 + 9724 01c2 04E0 b .L428 + 9725 .L429: +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9726 .loc 1 3096 9 view .LVU3255 +3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9727 .loc 1 3096 16 is_stmt 0 view .LVU3256 + 9728 01c4 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 9729 .LVL866: +3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: + 9730 .loc 1 3097 9 is_stmt 1 view .LVU3257 + 9731 .L430: +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9732 .loc 1 3114 5 view .LVU3258 +3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9733 .loc 1 3114 8 is_stmt 0 view .LVU3259 + ARM GAS /tmp/cceWHrnJ.s page 323 + + + 9734 01c8 0028 cmp r0, #0 + 9735 01ca 00F0A280 beq .L463 + 9736 .LVL867: + 9737 .L428: +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9738 .loc 1 3117 7 is_stmt 1 view .LVU3260 +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9739 .loc 1 3117 62 is_stmt 0 view .LVU3261 + 9740 01ce 626A ldr r2, [r4, #36] +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9741 .loc 1 3117 50 view .LVU3262 + 9742 01d0 224B ldr r3, .L483+24 + 9743 01d2 33F81220 ldrh r2, [r3, r2, lsl #1] +3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9744 .loc 1 3117 26 view .LVU3263 + 9745 01d6 B0FBF2F3 udiv r3, r0, r2 + 9746 .LVL868: +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + 9747 .loc 1 3120 7 is_stmt 1 view .LVU3264 +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + 9748 .loc 1 3120 50 is_stmt 0 view .LVU3265 + 9749 01da 6568 ldr r5, [r4, #4] +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + 9750 .loc 1 3120 37 view .LVU3266 + 9751 01dc 05EB4501 add r1, r5, r5, lsl #1 +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + 9752 .loc 1 3120 10 view .LVU3267 + 9753 01e0 9942 cmp r1, r3 + 9754 01e2 00F29880 bhi .L464 +3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) + 9755 .loc 1 3120 62 discriminator 1 view .LVU3268 + 9756 01e6 B3EB053F cmp r3, r5, lsl #12 + 9757 01ea 00F29680 bhi .L465 +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) + 9758 .loc 1 3129 9 is_stmt 1 view .LVU3269 +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) + 9759 .loc 1 3129 31 is_stmt 0 view .LVU3270 + 9760 01ee 0026 movs r6, #0 + 9761 01f0 3346 mov r3, r6 + 9762 .LVL869: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) + 9763 .loc 1 3129 31 view .LVU3271 + 9764 01f2 3146 mov r1, r6 + 9765 01f4 FFF7FEFF bl __aeabi_uldivmod + 9766 .LVL870: +3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) + 9767 .loc 1 3129 31 view .LVU3272 + 9768 01f8 0902 lsls r1, r1, #8 + 9769 01fa 41EA1061 orr r1, r1, r0, lsr #24 + 9770 01fe 0002 lsls r0, r0, #8 + 9771 0200 6B08 lsrs r3, r5, #1 + 9772 0202 C018 adds r0, r0, r3 + 9773 0204 2A46 mov r2, r5 + 9774 0206 3346 mov r3, r6 + 9775 0208 41F10001 adc r1, r1, #0 + 9776 020c FFF7FEFF bl __aeabi_uldivmod + 9777 .LVL871: + ARM GAS /tmp/cceWHrnJ.s page 324 + + +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9778 .loc 1 3130 9 is_stmt 1 view .LVU3273 +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9779 .loc 1 3130 42 is_stmt 0 view .LVU3274 + 9780 0210 A0F54072 sub r2, r0, #768 +3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9781 .loc 1 3130 12 view .LVU3275 + 9782 0214 124B ldr r3, .L483+28 + 9783 0216 9A42 cmp r2, r3 + 9784 0218 00F28180 bhi .L466 +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9785 .loc 1 3132 11 is_stmt 1 view .LVU3276 +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9786 .loc 1 3132 16 is_stmt 0 view .LVU3277 + 9787 021c 2368 ldr r3, [r4] +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9788 .loc 1 3132 32 view .LVU3278 + 9789 021e D860 str r0, [r3, #12] + 9790 0220 3046 mov r0, r6 + 9791 .LVL872: +3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9792 .loc 1 3132 32 view .LVU3279 + 9793 0222 62E0 b .L424 + 9794 .LVL873: + 9795 .L427: +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9796 .loc 1 3102 9 is_stmt 1 view .LVU3280 +3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9797 .loc 1 3102 16 is_stmt 0 view .LVU3281 + 9798 0224 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 9799 .LVL874: +3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: + 9800 .loc 1 3103 9 is_stmt 1 view .LVU3282 + 9801 0228 CEE7 b .L430 + 9802 .LVL875: + 9803 .L462: +3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9804 .loc 1 3099 14 is_stmt 0 view .LVU3283 + 9805 022a 0E48 ldr r0, .L483+32 + 9806 022c CFE7 b .L428 + 9807 .L482: +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9808 .loc 1 3145 5 is_stmt 1 view .LVU3284 + 9809 022e 082A cmp r2, #8 + 9810 0230 77D8 bhi .L467 + 9811 0232 DFE802F0 tbb [pc, r2] + 9812 .L433: + 9813 0236 19 .byte (.L437-.L433)/2 + 9814 0237 39 .byte (.L436-.L433)/2 + 9815 0238 05 .byte (.L435-.L433)/2 + 9816 0239 76 .byte (.L467-.L433)/2 + 9817 023a 3C .byte (.L434-.L433)/2 + 9818 023b 76 .byte (.L467-.L433)/2 + 9819 023c 76 .byte (.L467-.L433)/2 + 9820 023d 76 .byte (.L467-.L433)/2 + 9821 023e 1D .byte (.L432-.L433)/2 + 9822 023f 00 .p2align 1 + ARM GAS /tmp/cceWHrnJ.s page 325 + + + 9823 .L435: + 9824 0240 0848 ldr r0, .L483+32 + 9825 0242 15E0 b .L432 + 9826 .L484: + 9827 .align 2 + 9828 .L483: + 9829 0244 F369FFCF .word -805344781 + 9830 0248 00800040 .word 1073774592 + 9831 024c 00380140 .word 1073821696 + 9832 0250 00440040 .word 1073759232 + 9833 0254 00480040 .word 1073760256 + 9834 0258 004C0040 .word 1073761280 + 9835 025c 00000000 .word UARTPrescTable + 9836 0260 FFFC0F00 .word 1047807 + 9837 0264 0024F400 .word 16000000 + 9838 .L437: +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9839 .loc 1 3148 9 view .LVU3285 +3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9840 .loc 1 3148 16 is_stmt 0 view .LVU3286 + 9841 0268 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 9842 .LVL876: +3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: + 9843 .loc 1 3149 9 is_stmt 1 view .LVU3287 + 9844 .L438: +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9845 .loc 1 3169 5 view .LVU3288 +3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9846 .loc 1 3169 8 is_stmt 0 view .LVU3289 + 9847 026c 0028 cmp r0, #0 + 9848 026e 5AD0 beq .L468 + 9849 .LVL877: + 9850 .L432: +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 9851 .loc 1 3171 7 is_stmt 1 view .LVU3290 +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 9852 .loc 1 3171 29 is_stmt 0 view .LVU3291 + 9853 0270 626A ldr r2, [r4, #36] + 9854 0272 324B ldr r3, .L485 + 9855 0274 33F81230 ldrh r3, [r3, r2, lsl #1] + 9856 0278 B0FBF3F0 udiv r0, r0, r3 + 9857 027c 6268 ldr r2, [r4, #4] + 9858 027e 5308 lsrs r3, r2, #1 + 9859 0280 03EB4003 add r3, r3, r0, lsl #1 +3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 9860 .loc 1 3171 16 view .LVU3292 + 9861 0284 B3FBF2F3 udiv r3, r3, r2 + 9862 .LVL878: +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9863 .loc 1 3172 7 is_stmt 1 view .LVU3293 +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9864 .loc 1 3172 38 is_stmt 0 view .LVU3294 + 9865 0288 A3F11001 sub r1, r3, #16 +3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9866 .loc 1 3172 10 view .LVU3295 + 9867 028c 4FF6EF72 movw r2, #65519 + 9868 0290 9142 cmp r1, r2 + ARM GAS /tmp/cceWHrnJ.s page 326 + + + 9869 0292 4AD8 bhi .L469 +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + 9870 .loc 1 3174 9 is_stmt 1 view .LVU3296 +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + 9871 .loc 1 3174 19 is_stmt 0 view .LVU3297 + 9872 0294 9AB2 uxth r2, r3 +3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + 9873 .loc 1 3174 17 view .LVU3298 + 9874 0296 22F00F02 bic r2, r2, #15 + 9875 .LVL879: +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; + 9876 .loc 1 3175 9 is_stmt 1 view .LVU3299 +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; + 9877 .loc 1 3175 20 is_stmt 0 view .LVU3300 + 9878 029a C3F34203 ubfx r3, r3, #1, #3 + 9879 .LVL880: +3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; + 9880 .loc 1 3175 17 view .LVU3301 + 9881 029e 1343 orrs r3, r3, r2 + 9882 .LVL881: +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9883 .loc 1 3176 9 is_stmt 1 view .LVU3302 +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9884 .loc 1 3176 14 is_stmt 0 view .LVU3303 + 9885 02a0 2268 ldr r2, [r4] +3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9886 .loc 1 3176 30 view .LVU3304 + 9887 02a2 D360 str r3, [r2, #12] + 9888 02a4 0020 movs r0, #0 + 9889 02a6 20E0 b .L424 + 9890 .LVL882: + 9891 .L436: +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9892 .loc 1 3151 9 is_stmt 1 view .LVU3305 +3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9893 .loc 1 3151 16 is_stmt 0 view .LVU3306 + 9894 02a8 FFF7FEFF bl HAL_RCC_GetPCLK2Freq + 9895 .LVL883: +3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: + 9896 .loc 1 3152 9 is_stmt 1 view .LVU3307 + 9897 02ac DEE7 b .L438 + 9898 .LVL884: + 9899 .L434: +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9900 .loc 1 3157 9 view .LVU3308 +3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9901 .loc 1 3157 16 is_stmt 0 view .LVU3309 + 9902 02ae FFF7FEFF bl HAL_RCC_GetSysClockFreq + 9903 .LVL885: +3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: + 9904 .loc 1 3158 9 is_stmt 1 view .LVU3310 + 9905 02b2 DBE7 b .L438 + 9906 .LVL886: + 9907 .L442: +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9908 .loc 1 3186 5 is_stmt 0 view .LVU3311 + 9909 02b4 2248 ldr r0, .L485+4 + ARM GAS /tmp/cceWHrnJ.s page 327 + + + 9910 02b6 03E0 b .L439 + 9911 .L444: +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9912 .loc 1 3189 9 is_stmt 1 view .LVU3312 +3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9913 .loc 1 3189 16 is_stmt 0 view .LVU3313 + 9914 02b8 FFF7FEFF bl HAL_RCC_GetPCLK1Freq + 9915 .LVL887: +3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: + 9916 .loc 1 3190 9 is_stmt 1 view .LVU3314 + 9917 .L445: +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9918 .loc 1 3209 5 view .LVU3315 +3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9919 .loc 1 3209 8 is_stmt 0 view .LVU3316 + 9920 02bc 0028 cmp r0, #0 + 9921 02be 38D0 beq .L472 + 9922 .LVL888: + 9923 .L439: +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 9924 .loc 1 3212 7 is_stmt 1 view .LVU3317 +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 9925 .loc 1 3212 29 is_stmt 0 view .LVU3318 + 9926 02c0 626A ldr r2, [r4, #36] + 9927 02c2 1E4B ldr r3, .L485 + 9928 02c4 33F81230 ldrh r3, [r3, r2, lsl #1] + 9929 02c8 B0FBF3F0 udiv r0, r0, r3 + 9930 02cc 6368 ldr r3, [r4, #4] + 9931 02ce 00EB5300 add r0, r0, r3, lsr #1 +3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 9932 .loc 1 3212 16 view .LVU3319 + 9933 02d2 B0FBF3F0 udiv r0, r0, r3 + 9934 .LVL889: +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9935 .loc 1 3213 7 is_stmt 1 view .LVU3320 +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9936 .loc 1 3213 38 is_stmt 0 view .LVU3321 + 9937 02d6 A0F11002 sub r2, r0, #16 +3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9938 .loc 1 3213 10 view .LVU3322 + 9939 02da 4FF6EF73 movw r3, #65519 + 9940 02de 9A42 cmp r2, r3 + 9941 02e0 29D8 bhi .L473 +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9942 .loc 1 3215 9 is_stmt 1 view .LVU3323 +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9943 .loc 1 3215 14 is_stmt 0 view .LVU3324 + 9944 02e2 2368 ldr r3, [r4] + 9945 02e4 80B2 uxth r0, r0 + 9946 .LVL890: +3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9947 .loc 1 3215 30 view .LVU3325 + 9948 02e6 D860 str r0, [r3, #12] + 9949 02e8 0020 movs r0, #0 + 9950 .LVL891: + 9951 .L424: +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->NbRxDataToProcess = 1; + ARM GAS /tmp/cceWHrnJ.s page 328 + + + 9952 .loc 1 3225 3 is_stmt 1 view .LVU3326 +3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->NbRxDataToProcess = 1; + 9953 .loc 1 3225 28 is_stmt 0 view .LVU3327 + 9954 02ea 0123 movs r3, #1 + 9955 02ec A4F86A30 strh r3, [r4, #106] @ movhi +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9956 .loc 1 3226 3 is_stmt 1 view .LVU3328 +3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9957 .loc 1 3226 28 is_stmt 0 view .LVU3329 + 9958 02f0 A4F86830 strh r3, [r4, #104] @ movhi +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 9959 .loc 1 3229 3 is_stmt 1 view .LVU3330 +3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; + 9960 .loc 1 3229 16 is_stmt 0 view .LVU3331 + 9961 02f4 0023 movs r3, #0 + 9962 02f6 2367 str r3, [r4, #112] +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9963 .loc 1 3230 3 is_stmt 1 view .LVU3332 +3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9964 .loc 1 3230 16 is_stmt 0 view .LVU3333 + 9965 02f8 6367 str r3, [r4, #116] +3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 9966 .loc 1 3232 3 is_stmt 1 view .LVU3334 +3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 9967 .loc 1 3233 1 is_stmt 0 view .LVU3335 + 9968 02fa 70BD pop {r4, r5, r6, pc} + 9969 .LVL892: + 9970 .L443: +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9971 .loc 1 3192 9 is_stmt 1 view .LVU3336 +3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9972 .loc 1 3192 16 is_stmt 0 view .LVU3337 + 9973 02fc FFF7FEFF bl HAL_RCC_GetPCLK2Freq + 9974 .LVL893: +3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: + 9975 .loc 1 3193 9 is_stmt 1 view .LVU3338 + 9976 0300 DCE7 b .L445 + 9977 .LVL894: + 9978 .L441: +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9979 .loc 1 3198 9 view .LVU3339 +3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9980 .loc 1 3198 16 is_stmt 0 view .LVU3340 + 9981 0302 FFF7FEFF bl HAL_RCC_GetSysClockFreq + 9982 .LVL895: +3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: + 9983 .loc 1 3199 9 is_stmt 1 view .LVU3341 + 9984 0306 D9E7 b .L445 + 9985 .LVL896: + 9986 .L471: +3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; + 9987 .loc 1 3201 14 is_stmt 0 view .LVU3342 + 9988 0308 4FF40040 mov r0, #32768 + 9989 030c D8E7 b .L439 + 9990 .L461: +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9991 .loc 1 3093 5 view .LVU3343 + ARM GAS /tmp/cceWHrnJ.s page 329 + + + 9992 030e 0120 movs r0, #1 + 9993 0310 EBE7 b .L424 + 9994 .LVL897: + 9995 .L463: +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9996 .loc 1 3093 5 view .LVU3344 + 9997 0312 0020 movs r0, #0 + 9998 .LVL898: +3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 9999 .loc 1 3093 5 view .LVU3345 + 10000 0314 E9E7 b .L424 + 10001 .LVL899: + 10002 .L464: +3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10003 .loc 1 3123 13 view .LVU3346 + 10004 0316 0120 movs r0, #1 + 10005 0318 E7E7 b .L424 + 10006 .L465: + 10007 031a 0120 movs r0, #1 + 10008 031c E5E7 b .L424 + 10009 .LVL900: + 10010 .L466: +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10011 .loc 1 3136 15 view .LVU3347 + 10012 031e 0120 movs r0, #1 + 10013 .LVL901: +3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10014 .loc 1 3136 15 view .LVU3348 + 10015 0320 E3E7 b .L424 + 10016 .LVL902: + 10017 .L467: +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10018 .loc 1 3145 5 view .LVU3349 + 10019 0322 0120 movs r0, #1 + 10020 0324 E1E7 b .L424 + 10021 .LVL903: + 10022 .L468: +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10023 .loc 1 3145 5 view .LVU3350 + 10024 0326 0020 movs r0, #0 + 10025 .LVL904: +3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10026 .loc 1 3145 5 view .LVU3351 + 10027 0328 DFE7 b .L424 + 10028 .LVL905: + 10029 .L469: +3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10030 .loc 1 3180 13 view .LVU3352 + 10031 032a 0120 movs r0, #1 + 10032 032c DDE7 b .L424 + 10033 .LVL906: + 10034 .L470: +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10035 .loc 1 3186 5 view .LVU3353 + 10036 032e 0120 movs r0, #1 + 10037 0330 DBE7 b .L424 + 10038 .LVL907: + ARM GAS /tmp/cceWHrnJ.s page 330 + + + 10039 .L472: +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10040 .loc 1 3186 5 view .LVU3354 + 10041 0332 0020 movs r0, #0 + 10042 .LVL908: +3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10043 .loc 1 3186 5 view .LVU3355 + 10044 0334 D9E7 b .L424 + 10045 .LVL909: + 10046 .L473: +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10047 .loc 1 3219 13 view .LVU3356 + 10048 0336 0120 movs r0, #1 + 10049 .LVL910: +3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10050 .loc 1 3219 13 view .LVU3357 + 10051 0338 D7E7 b .L424 + 10052 .L486: + 10053 033a 00BF .align 2 + 10054 .L485: + 10055 033c 00000000 .word UARTPrescTable + 10056 0340 0024F400 .word 16000000 + 10057 .cfi_endproc + 10058 .LFE372: + 10060 .section .text.UART_AdvFeatureConfig,"ax",%progbits + 10061 .align 1 + 10062 .global UART_AdvFeatureConfig + 10063 .syntax unified + 10064 .thumb + 10065 .thumb_func + 10067 UART_AdvFeatureConfig: + 10068 .LVL911: + 10069 .LFB373: +3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */ + 10070 .loc 1 3241 1 is_stmt 1 view -0 + 10071 .cfi_startproc + 10072 @ args = 0, pretend = 0, frame = 0 + 10073 @ frame_needed = 0, uses_anonymous_args = 0 + 10074 @ link register save eliminated. +3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10075 .loc 1 3243 3 view .LVU3359 +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10076 .loc 1 3246 3 view .LVU3360 +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10077 .loc 1 3246 7 is_stmt 0 view .LVU3361 + 10078 0000 836A ldr r3, [r0, #40] +3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10079 .loc 1 3246 6 view .LVU3362 + 10080 0002 13F0010F tst r3, #1 + 10081 0006 06D0 beq .L488 +3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); + 10082 .loc 1 3248 5 is_stmt 1 view .LVU3363 +3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10083 .loc 1 3249 5 view .LVU3364 + 10084 0008 0268 ldr r2, [r0] + 10085 000a 5368 ldr r3, [r2, #4] + 10086 000c 23F40033 bic r3, r3, #131072 + ARM GAS /tmp/cceWHrnJ.s page 331 + + + 10087 0010 C16A ldr r1, [r0, #44] + 10088 0012 0B43 orrs r3, r3, r1 + 10089 0014 5360 str r3, [r2, #4] + 10090 .L488: +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10091 .loc 1 3253 3 view .LVU3365 +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10092 .loc 1 3253 7 is_stmt 0 view .LVU3366 + 10093 0016 836A ldr r3, [r0, #40] +3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10094 .loc 1 3253 6 view .LVU3367 + 10095 0018 13F0020F tst r3, #2 + 10096 001c 06D0 beq .L489 +3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); + 10097 .loc 1 3255 5 is_stmt 1 view .LVU3368 +3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10098 .loc 1 3256 5 view .LVU3369 + 10099 001e 0268 ldr r2, [r0] + 10100 0020 5368 ldr r3, [r2, #4] + 10101 0022 23F48033 bic r3, r3, #65536 + 10102 0026 016B ldr r1, [r0, #48] + 10103 0028 0B43 orrs r3, r3, r1 + 10104 002a 5360 str r3, [r2, #4] + 10105 .L489: +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10106 .loc 1 3260 3 view .LVU3370 +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10107 .loc 1 3260 7 is_stmt 0 view .LVU3371 + 10108 002c 836A ldr r3, [r0, #40] +3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10109 .loc 1 3260 6 view .LVU3372 + 10110 002e 13F0040F tst r3, #4 + 10111 0032 06D0 beq .L490 +3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); + 10112 .loc 1 3262 5 is_stmt 1 view .LVU3373 +3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10113 .loc 1 3263 5 view .LVU3374 + 10114 0034 0268 ldr r2, [r0] + 10115 0036 5368 ldr r3, [r2, #4] + 10116 0038 23F48023 bic r3, r3, #262144 + 10117 003c 416B ldr r1, [r0, #52] + 10118 003e 0B43 orrs r3, r3, r1 + 10119 0040 5360 str r3, [r2, #4] + 10120 .L490: +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10121 .loc 1 3267 3 view .LVU3375 +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10122 .loc 1 3267 7 is_stmt 0 view .LVU3376 + 10123 0042 836A ldr r3, [r0, #40] +3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10124 .loc 1 3267 6 view .LVU3377 + 10125 0044 13F0080F tst r3, #8 + 10126 0048 06D0 beq .L491 +3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); + 10127 .loc 1 3269 5 is_stmt 1 view .LVU3378 +3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10128 .loc 1 3270 5 view .LVU3379 + ARM GAS /tmp/cceWHrnJ.s page 332 + + + 10129 004a 0268 ldr r2, [r0] + 10130 004c 5368 ldr r3, [r2, #4] + 10131 004e 23F40043 bic r3, r3, #32768 + 10132 0052 816B ldr r1, [r0, #56] + 10133 0054 0B43 orrs r3, r3, r1 + 10134 0056 5360 str r3, [r2, #4] + 10135 .L491: +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10136 .loc 1 3274 3 view .LVU3380 +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10137 .loc 1 3274 7 is_stmt 0 view .LVU3381 + 10138 0058 836A ldr r3, [r0, #40] +3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10139 .loc 1 3274 6 view .LVU3382 + 10140 005a 13F0100F tst r3, #16 + 10141 005e 06D0 beq .L492 +3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); + 10142 .loc 1 3276 5 is_stmt 1 view .LVU3383 +3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10143 .loc 1 3277 5 view .LVU3384 + 10144 0060 0268 ldr r2, [r0] + 10145 0062 9368 ldr r3, [r2, #8] + 10146 0064 23F48053 bic r3, r3, #4096 + 10147 0068 C16B ldr r1, [r0, #60] + 10148 006a 0B43 orrs r3, r3, r1 + 10149 006c 9360 str r3, [r2, #8] + 10150 .L492: +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10151 .loc 1 3281 3 view .LVU3385 +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10152 .loc 1 3281 7 is_stmt 0 view .LVU3386 + 10153 006e 836A ldr r3, [r0, #40] +3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10154 .loc 1 3281 6 view .LVU3387 + 10155 0070 13F0200F tst r3, #32 + 10156 0074 06D0 beq .L493 +3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); + 10157 .loc 1 3283 5 is_stmt 1 view .LVU3388 +3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10158 .loc 1 3284 5 view .LVU3389 + 10159 0076 0268 ldr r2, [r0] + 10160 0078 9368 ldr r3, [r2, #8] + 10161 007a 23F40053 bic r3, r3, #8192 + 10162 007e 016C ldr r1, [r0, #64] + 10163 0080 0B43 orrs r3, r3, r1 + 10164 0082 9360 str r3, [r2, #8] + 10165 .L493: +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10166 .loc 1 3288 3 view .LVU3390 +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10167 .loc 1 3288 7 is_stmt 0 view .LVU3391 + 10168 0084 836A ldr r3, [r0, #40] +3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10169 .loc 1 3288 6 view .LVU3392 + 10170 0086 13F0400F tst r3, #64 + 10171 008a 0AD0 beq .L494 +3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); + ARM GAS /tmp/cceWHrnJ.s page 333 + + + 10172 .loc 1 3290 5 is_stmt 1 view .LVU3393 +3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); + 10173 .loc 1 3291 5 view .LVU3394 +3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */ + 10174 .loc 1 3292 5 view .LVU3395 + 10175 008c 0268 ldr r2, [r0] + 10176 008e 5368 ldr r3, [r2, #4] + 10177 0090 23F48013 bic r3, r3, #1048576 + 10178 0094 416C ldr r1, [r0, #68] + 10179 0096 0B43 orrs r3, r3, r1 + 10180 0098 5360 str r3, [r2, #4] +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10181 .loc 1 3294 5 view .LVU3396 +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10182 .loc 1 3294 28 is_stmt 0 view .LVU3397 + 10183 009a 436C ldr r3, [r0, #68] +3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10184 .loc 1 3294 8 view .LVU3398 + 10185 009c B3F5801F cmp r3, #1048576 + 10186 00a0 0BD0 beq .L496 + 10187 .L494: +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10188 .loc 1 3302 3 is_stmt 1 view .LVU3399 +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10189 .loc 1 3302 7 is_stmt 0 view .LVU3400 + 10190 00a2 836A ldr r3, [r0, #40] +3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10191 .loc 1 3302 6 view .LVU3401 + 10192 00a4 13F0800F tst r3, #128 + 10193 00a8 06D0 beq .L487 +3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); + 10194 .loc 1 3304 5 is_stmt 1 view .LVU3402 +3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10195 .loc 1 3305 5 view .LVU3403 + 10196 00aa 0268 ldr r2, [r0] + 10197 00ac 5368 ldr r3, [r2, #4] + 10198 00ae 23F40023 bic r3, r3, #524288 + 10199 00b2 C16C ldr r1, [r0, #76] + 10200 00b4 0B43 orrs r3, r3, r1 + 10201 00b6 5360 str r3, [r2, #4] + 10202 .L487: +3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10203 .loc 1 3307 1 is_stmt 0 view .LVU3404 + 10204 00b8 7047 bx lr + 10205 .L496: +3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); + 10206 .loc 1 3296 7 is_stmt 1 view .LVU3405 +3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10207 .loc 1 3297 7 view .LVU3406 + 10208 00ba 0268 ldr r2, [r0] + 10209 00bc 5368 ldr r3, [r2, #4] + 10210 00be 23F4C003 bic r3, r3, #6291456 + 10211 00c2 816C ldr r1, [r0, #72] + 10212 00c4 0B43 orrs r3, r3, r1 + 10213 00c6 5360 str r3, [r2, #4] + 10214 00c8 EBE7 b .L494 + 10215 .cfi_endproc + ARM GAS /tmp/cceWHrnJ.s page 334 + + + 10216 .LFE373: + 10218 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits + 10219 .align 1 + 10220 .global UART_WaitOnFlagUntilTimeout + 10221 .syntax unified + 10222 .thumb + 10223 .thumb_func + 10225 UART_WaitOnFlagUntilTimeout: + 10226 .LVL912: + 10227 .LFB375: +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until flag is set */ + 10228 .loc 1 3368 1 view -0 + 10229 .cfi_startproc + 10230 @ args = 4, pretend = 0, frame = 0 + 10231 @ frame_needed = 0, uses_anonymous_args = 0 +3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until flag is set */ + 10232 .loc 1 3368 1 is_stmt 0 view .LVU3408 + 10233 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} + 10234 .LCFI32: + 10235 .cfi_def_cfa_offset 32 + 10236 .cfi_offset 3, -32 + 10237 .cfi_offset 4, -28 + 10238 .cfi_offset 5, -24 + 10239 .cfi_offset 6, -20 + 10240 .cfi_offset 7, -16 + 10241 .cfi_offset 8, -12 + 10242 .cfi_offset 9, -8 + 10243 .cfi_offset 14, -4 + 10244 0004 0546 mov r5, r0 + 10245 0006 0F46 mov r7, r1 + 10246 0008 1646 mov r6, r2 + 10247 000a 9946 mov r9, r3 + 10248 000c DDF82080 ldr r8, [sp, #32] +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10249 .loc 1 3370 3 is_stmt 1 view .LVU3409 + 10250 .LVL913: + 10251 .L499: +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10252 .loc 1 3370 59 view .LVU3410 +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10253 .loc 1 3370 11 is_stmt 0 view .LVU3411 + 10254 0010 2B68 ldr r3, [r5] + 10255 0012 DC69 ldr r4, [r3, #28] +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10256 .loc 1 3370 50 view .LVU3412 + 10257 0014 37EA0404 bics r4, r7, r4 + 10258 0018 0CBF ite eq + 10259 001a 0124 moveq r4, #1 + 10260 001c 0024 movne r4, #0 +3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10261 .loc 1 3370 59 view .LVU3413 + 10262 001e B442 cmp r4, r6 + 10263 0020 57D1 bne .L509 +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10264 .loc 1 3373 5 is_stmt 1 view .LVU3414 +3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10265 .loc 1 3373 8 is_stmt 0 view .LVU3415 + ARM GAS /tmp/cceWHrnJ.s page 335 + + + 10266 0022 B8F1FF3F cmp r8, #-1 + 10267 0026 F3D0 beq .L499 +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10268 .loc 1 3375 7 is_stmt 1 view .LVU3416 +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10269 .loc 1 3375 13 is_stmt 0 view .LVU3417 + 10270 0028 FFF7FEFF bl HAL_GetTick + 10271 .LVL914: +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10272 .loc 1 3375 27 view .LVU3418 + 10273 002c A0EB0900 sub r0, r0, r9 +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10274 .loc 1 3375 10 view .LVU3419 + 10275 0030 4045 cmp r0, r8 + 10276 0032 2FD8 bhi .L502 +3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10277 .loc 1 3375 51 discriminator 1 view .LVU3420 + 10278 0034 B8F1000F cmp r8, #0 + 10279 0038 2CD0 beq .L502 +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10280 .loc 1 3391 7 is_stmt 1 view .LVU3421 +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10281 .loc 1 3391 11 is_stmt 0 view .LVU3422 + 10282 003a 2B68 ldr r3, [r5] + 10283 003c 1A68 ldr r2, [r3] +3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10284 .loc 1 3391 10 view .LVU3423 + 10285 003e 12F0040F tst r2, #4 + 10286 0042 E5D0 beq .L499 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10287 .loc 1 3393 9 is_stmt 1 view .LVU3424 +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10288 .loc 1 3393 13 is_stmt 0 view .LVU3425 + 10289 0044 DA69 ldr r2, [r3, #28] +3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10290 .loc 1 3393 12 view .LVU3426 + 10291 0046 12F4006F tst r2, #2048 + 10292 004a E1D0 beq .L499 +3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10293 .loc 1 3396 11 is_stmt 1 view .LVU3427 + 10294 004c 4FF40062 mov r2, #2048 + 10295 0050 1A62 str r2, [r3, #32] + 10296 .L505: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10297 .loc 1 3400 11 discriminator 1 view .LVU3428 + 10298 .LBB936: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10299 .loc 1 3400 11 discriminator 1 view .LVU3429 +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10300 .loc 1 3400 11 discriminator 1 view .LVU3430 +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10301 .loc 1 3400 11 discriminator 1 view .LVU3431 + 10302 0052 2A68 ldr r2, [r5] + 10303 .LVL915: + 10304 .LBB937: + 10305 .LBI937: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 336 + + + 10306 .loc 2 1151 31 discriminator 1 view .LVU3432 + 10307 .LBB938: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10308 .loc 2 1153 5 discriminator 1 view .LVU3433 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10309 .loc 2 1155 4 discriminator 1 view .LVU3434 + 10310 .syntax unified + 10311 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10312 0054 52E8003F ldrex r3, [r2] + 10313 @ 0 "" 2 + 10314 .LVL916: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10315 .loc 2 1156 4 discriminator 1 view .LVU3435 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10316 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3436 + 10317 .thumb + 10318 .syntax unified + 10319 .LBE938: + 10320 .LBE937: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10321 .loc 1 3400 11 discriminator 1 view .LVU3437 + 10322 0058 23F4D073 bic r3, r3, #416 + 10323 .LVL917: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10324 .loc 1 3400 11 is_stmt 1 discriminator 1 view .LVU3438 + 10325 .LBB939: + 10326 .LBI939: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10327 .loc 2 1202 31 discriminator 1 view .LVU3439 + 10328 .LBB940: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10329 .loc 2 1204 4 discriminator 1 view .LVU3440 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10330 .loc 2 1206 4 discriminator 1 view .LVU3441 + 10331 .syntax unified + 10332 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10333 005c 42E80031 strex r1, r3, [r2] + 10334 @ 0 "" 2 + 10335 .LVL918: + 10336 .loc 2 1207 4 discriminator 1 view .LVU3442 + 10337 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3443 + 10338 .thumb + 10339 .syntax unified + 10340 .LBE940: + 10341 .LBE939: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10342 .loc 1 3400 11 discriminator 1 view .LVU3444 + 10343 0060 0029 cmp r1, #0 + 10344 0062 F6D1 bne .L505 + 10345 .LVL919: + 10346 .L506: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10347 .loc 1 3400 11 discriminator 1 view .LVU3445 + 10348 .LBE936: +3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10349 .loc 1 3400 11 is_stmt 1 discriminator 1 view .LVU3446 +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 337 + + + 10350 .loc 1 3402 11 discriminator 1 view .LVU3447 + 10351 .LBB941: +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10352 .loc 1 3402 11 discriminator 1 view .LVU3448 +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10353 .loc 1 3402 11 discriminator 1 view .LVU3449 +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10354 .loc 1 3402 11 discriminator 1 view .LVU3450 + 10355 0064 2A68 ldr r2, [r5] + 10356 .LVL920: + 10357 .LBB942: + 10358 .LBI942: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10359 .loc 2 1151 31 discriminator 1 view .LVU3451 + 10360 .LBB943: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10361 .loc 2 1153 5 discriminator 1 view .LVU3452 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10362 .loc 2 1155 4 discriminator 1 view .LVU3453 + 10363 0066 02F10803 add r3, r2, #8 + 10364 .LVL921: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10365 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU3454 + 10366 .syntax unified + 10367 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10368 006a 53E8003F ldrex r3, [r3] + 10369 @ 0 "" 2 + 10370 .LVL922: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10371 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU3455 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10372 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3456 + 10373 .thumb + 10374 .syntax unified + 10375 .LBE943: + 10376 .LBE942: +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10377 .loc 1 3402 11 discriminator 1 view .LVU3457 + 10378 006e 23F00103 bic r3, r3, #1 + 10379 .LVL923: +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10380 .loc 1 3402 11 is_stmt 1 discriminator 1 view .LVU3458 + 10381 .LBB944: + 10382 .LBI944: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10383 .loc 2 1202 31 discriminator 1 view .LVU3459 + 10384 .LBB945: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10385 .loc 2 1204 4 discriminator 1 view .LVU3460 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10386 .loc 2 1206 4 discriminator 1 view .LVU3461 + 10387 0072 0832 adds r2, r2, #8 + 10388 .LVL924: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10389 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU3462 + 10390 .syntax unified + 10391 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + ARM GAS /tmp/cceWHrnJ.s page 338 + + + 10392 0074 42E80031 strex r1, r3, [r2] + 10393 @ 0 "" 2 + 10394 .LVL925: + 10395 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU3463 + 10396 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3464 + 10397 .thumb + 10398 .syntax unified + 10399 .LBE945: + 10400 .LBE944: +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10401 .loc 1 3402 11 discriminator 1 view .LVU3465 + 10402 0078 0029 cmp r1, #0 + 10403 007a F3D1 bne .L506 + 10404 .LBE941: +3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10405 .loc 1 3402 11 is_stmt 1 discriminator 2 view .LVU3466 +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 10406 .loc 1 3404 11 discriminator 2 view .LVU3467 +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 10407 .loc 1 3404 25 is_stmt 0 discriminator 2 view .LVU3468 + 10408 007c 2023 movs r3, #32 + 10409 .LVL926: +3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 10410 .loc 1 3404 25 discriminator 2 view .LVU3469 + 10411 007e C5F88430 str r3, [r5, #132] +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; + 10412 .loc 1 3405 11 is_stmt 1 discriminator 2 view .LVU3470 +3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; + 10413 .loc 1 3405 26 is_stmt 0 discriminator 2 view .LVU3471 + 10414 0082 C5F88830 str r3, [r5, #136] +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10415 .loc 1 3406 11 is_stmt 1 discriminator 2 view .LVU3472 +3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10416 .loc 1 3406 28 is_stmt 0 discriminator 2 view .LVU3473 + 10417 0086 C5F88C30 str r3, [r5, #140] +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10418 .loc 1 3409 11 is_stmt 1 discriminator 2 view .LVU3474 +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10419 .loc 1 3409 11 discriminator 2 view .LVU3475 + 10420 008a 0023 movs r3, #0 + 10421 008c 85F88030 strb r3, [r5, #128] +3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10422 .loc 1 3409 11 discriminator 2 view .LVU3476 +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10423 .loc 1 3411 11 discriminator 2 view .LVU3477 +3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10424 .loc 1 3411 18 is_stmt 0 discriminator 2 view .LVU3478 + 10425 0090 0320 movs r0, #3 + 10426 0092 1FE0 b .L504 + 10427 .LVL927: + 10428 .L502: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10429 .loc 1 3379 9 is_stmt 1 discriminator 1 view .LVU3479 + 10430 .LBB946: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10431 .loc 1 3379 9 discriminator 1 view .LVU3480 +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + ARM GAS /tmp/cceWHrnJ.s page 339 + + + 10432 .loc 1 3379 9 discriminator 1 view .LVU3481 +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10433 .loc 1 3379 9 discriminator 1 view .LVU3482 + 10434 0094 2A68 ldr r2, [r5] + 10435 .LVL928: + 10436 .LBB947: + 10437 .LBI947: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10438 .loc 2 1151 31 discriminator 1 view .LVU3483 + 10439 .LBB948: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10440 .loc 2 1153 5 discriminator 1 view .LVU3484 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10441 .loc 2 1155 4 discriminator 1 view .LVU3485 + 10442 .syntax unified + 10443 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10444 0096 52E8003F ldrex r3, [r2] + 10445 @ 0 "" 2 + 10446 .LVL929: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10447 .loc 2 1156 4 discriminator 1 view .LVU3486 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10448 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3487 + 10449 .thumb + 10450 .syntax unified + 10451 .LBE948: + 10452 .LBE947: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10453 .loc 1 3379 9 discriminator 1 view .LVU3488 + 10454 009a 23F4D073 bic r3, r3, #416 + 10455 .LVL930: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10456 .loc 1 3379 9 is_stmt 1 discriminator 1 view .LVU3489 + 10457 .LBB949: + 10458 .LBI949: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10459 .loc 2 1202 31 discriminator 1 view .LVU3490 + 10460 .LBB950: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10461 .loc 2 1204 4 discriminator 1 view .LVU3491 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10462 .loc 2 1206 4 discriminator 1 view .LVU3492 + 10463 .syntax unified + 10464 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10465 009e 42E80031 strex r1, r3, [r2] + 10466 @ 0 "" 2 + 10467 .LVL931: + 10468 .loc 2 1207 4 discriminator 1 view .LVU3493 + 10469 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3494 + 10470 .thumb + 10471 .syntax unified + 10472 .LBE950: + 10473 .LBE949: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10474 .loc 1 3379 9 discriminator 1 view .LVU3495 + 10475 00a2 0029 cmp r1, #0 + 10476 00a4 F6D1 bne .L502 + ARM GAS /tmp/cceWHrnJ.s page 340 + + + 10477 .LVL932: + 10478 .L503: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10479 .loc 1 3379 9 discriminator 1 view .LVU3496 + 10480 .LBE946: +3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); + 10481 .loc 1 3379 9 is_stmt 1 discriminator 1 view .LVU3497 +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10482 .loc 1 3381 9 discriminator 1 view .LVU3498 + 10483 .LBB951: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10484 .loc 1 3381 9 discriminator 1 view .LVU3499 +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10485 .loc 1 3381 9 discriminator 1 view .LVU3500 +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10486 .loc 1 3381 9 discriminator 1 view .LVU3501 + 10487 00a6 2A68 ldr r2, [r5] + 10488 .LVL933: + 10489 .LBB952: + 10490 .LBI952: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10491 .loc 2 1151 31 discriminator 1 view .LVU3502 + 10492 .LBB953: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10493 .loc 2 1153 5 discriminator 1 view .LVU3503 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10494 .loc 2 1155 4 discriminator 1 view .LVU3504 + 10495 00a8 02F10803 add r3, r2, #8 + 10496 .LVL934: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10497 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU3505 + 10498 .syntax unified + 10499 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10500 00ac 53E8003F ldrex r3, [r3] + 10501 @ 0 "" 2 + 10502 .LVL935: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10503 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU3506 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 10504 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3507 + 10505 .thumb + 10506 .syntax unified + 10507 .LBE953: + 10508 .LBE952: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10509 .loc 1 3381 9 discriminator 1 view .LVU3508 + 10510 00b0 23F00103 bic r3, r3, #1 + 10511 .LVL936: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10512 .loc 1 3381 9 is_stmt 1 discriminator 1 view .LVU3509 + 10513 .LBB954: + 10514 .LBI954: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 10515 .loc 2 1202 31 discriminator 1 view .LVU3510 + 10516 .LBB955: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 10517 .loc 2 1204 4 discriminator 1 view .LVU3511 + ARM GAS /tmp/cceWHrnJ.s page 341 + + +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10518 .loc 2 1206 4 discriminator 1 view .LVU3512 + 10519 00b4 0832 adds r2, r2, #8 + 10520 .LVL937: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 10521 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU3513 + 10522 .syntax unified + 10523 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 10524 00b6 42E80031 strex r1, r3, [r2] + 10525 @ 0 "" 2 + 10526 .LVL938: + 10527 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU3514 + 10528 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3515 + 10529 .thumb + 10530 .syntax unified + 10531 .LBE955: + 10532 .LBE954: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10533 .loc 1 3381 9 discriminator 1 view .LVU3516 + 10534 00ba 0029 cmp r1, #0 + 10535 00bc F3D1 bne .L503 + 10536 .LBE951: +3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10537 .loc 1 3381 9 is_stmt 1 discriminator 2 view .LVU3517 +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 10538 .loc 1 3383 9 discriminator 2 view .LVU3518 +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 10539 .loc 1 3383 23 is_stmt 0 discriminator 2 view .LVU3519 + 10540 00be 2023 movs r3, #32 + 10541 .LVL939: +3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 10542 .loc 1 3383 23 discriminator 2 view .LVU3520 + 10543 00c0 C5F88430 str r3, [r5, #132] +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10544 .loc 1 3384 9 is_stmt 1 discriminator 2 view .LVU3521 +3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10545 .loc 1 3384 24 is_stmt 0 discriminator 2 view .LVU3522 + 10546 00c4 C5F88830 str r3, [r5, #136] +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10547 .loc 1 3386 9 is_stmt 1 discriminator 2 view .LVU3523 +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10548 .loc 1 3386 9 discriminator 2 view .LVU3524 + 10549 00c8 0023 movs r3, #0 + 10550 00ca 85F88030 strb r3, [r5, #128] +3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10551 .loc 1 3386 9 discriminator 2 view .LVU3525 +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10552 .loc 1 3388 9 discriminator 2 view .LVU3526 +3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10553 .loc 1 3388 16 is_stmt 0 discriminator 2 view .LVU3527 + 10554 00ce 0320 movs r0, #3 + 10555 00d0 00E0 b .L504 + 10556 .LVL940: + 10557 .L509: +3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10558 .loc 1 3416 10 view .LVU3528 + 10559 00d2 0020 movs r0, #0 + ARM GAS /tmp/cceWHrnJ.s page 342 + + + 10560 .L504: +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10561 .loc 1 3417 1 view .LVU3529 + 10562 00d4 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} +3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10563 .loc 1 3417 1 view .LVU3530 + 10564 .cfi_endproc + 10565 .LFE375: + 10567 .section .text.HAL_UART_Transmit,"ax",%progbits + 10568 .align 1 + 10569 .global HAL_UART_Transmit + 10570 .syntax unified + 10571 .thumb + 10572 .thumb_func + 10574 HAL_UART_Transmit: + 10575 .LVL941: + 10576 .LFB336: +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint8_t *pdata8bits; + 10577 .loc 1 1122 1 is_stmt 1 view -0 + 10578 .cfi_startproc + 10579 @ args = 0, pretend = 0, frame = 0 + 10580 @ frame_needed = 0, uses_anonymous_args = 0 +1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint8_t *pdata8bits; + 10581 .loc 1 1122 1 is_stmt 0 view .LVU3532 + 10582 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} + 10583 .LCFI33: + 10584 .cfi_def_cfa_offset 24 + 10585 .cfi_offset 4, -24 + 10586 .cfi_offset 5, -20 + 10587 .cfi_offset 6, -16 + 10588 .cfi_offset 7, -12 + 10589 .cfi_offset 8, -8 + 10590 .cfi_offset 14, -4 + 10591 0004 82B0 sub sp, sp, #8 + 10592 .LCFI34: + 10593 .cfi_def_cfa_offset 32 + 10594 0006 1E46 mov r6, r3 +1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint16_t *pdata16bits; + 10595 .loc 1 1123 3 is_stmt 1 view .LVU3533 +1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; + 10596 .loc 1 1124 3 view .LVU3534 +1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10597 .loc 1 1125 3 view .LVU3535 +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10598 .loc 1 1128 3 view .LVU3536 +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10599 .loc 1 1128 12 is_stmt 0 view .LVU3537 + 10600 0008 D0F88430 ldr r3, [r0, #132] + 10601 .LVL942: +1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10602 .loc 1 1128 6 view .LVU3538 + 10603 000c 202B cmp r3, #32 + 10604 000e 58D1 bne .L517 + 10605 0010 0446 mov r4, r0 + 10606 0012 0D46 mov r5, r1 + 10607 0014 9046 mov r8, r2 +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 343 + + + 10608 .loc 1 1130 5 is_stmt 1 view .LVU3539 +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10609 .loc 1 1130 8 is_stmt 0 view .LVU3540 + 10610 0016 0029 cmp r1, #0 + 10611 0018 57D0 beq .L518 +1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10612 .loc 1 1130 25 discriminator 1 view .LVU3541 + 10613 001a 002A cmp r2, #0 + 10614 001c 57D0 beq .L519 +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10615 .loc 1 1135 5 is_stmt 1 view .LVU3542 +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10616 .loc 1 1135 5 view .LVU3543 + 10617 001e 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 10618 0022 012B cmp r3, #1 + 10619 0024 55D0 beq .L520 +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10620 .loc 1 1135 5 discriminator 2 view .LVU3544 + 10621 0026 0123 movs r3, #1 + 10622 0028 80F88030 strb r3, [r0, #128] +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10623 .loc 1 1135 5 discriminator 2 view .LVU3545 +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; + 10624 .loc 1 1137 5 discriminator 2 view .LVU3546 +1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; + 10625 .loc 1 1137 22 is_stmt 0 discriminator 2 view .LVU3547 + 10626 002c 0023 movs r3, #0 + 10627 002e C0F88C30 str r3, [r0, #140] +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10628 .loc 1 1138 5 is_stmt 1 discriminator 2 view .LVU3548 +1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10629 .loc 1 1138 19 is_stmt 0 discriminator 2 view .LVU3549 + 10630 0032 2123 movs r3, #33 + 10631 0034 C0F88430 str r3, [r0, #132] +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10632 .loc 1 1141 5 is_stmt 1 discriminator 2 view .LVU3550 +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10633 .loc 1 1141 17 is_stmt 0 discriminator 2 view .LVU3551 + 10634 0038 FFF7FEFF bl HAL_GetTick + 10635 .LVL943: +1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10636 .loc 1 1141 17 discriminator 2 view .LVU3552 + 10637 003c 0746 mov r7, r0 + 10638 .LVL944: +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; + 10639 .loc 1 1143 5 is_stmt 1 discriminator 2 view .LVU3553 +1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; + 10640 .loc 1 1143 24 is_stmt 0 discriminator 2 view .LVU3554 + 10641 003e A4F85480 strh r8, [r4, #84] @ movhi +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10642 .loc 1 1144 5 is_stmt 1 discriminator 2 view .LVU3555 +1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10643 .loc 1 1144 24 is_stmt 0 discriminator 2 view .LVU3556 + 10644 0042 A4F85680 strh r8, [r4, #86] @ movhi +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10645 .loc 1 1147 5 is_stmt 1 discriminator 2 view .LVU3557 +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 344 + + + 10646 .loc 1 1147 21 is_stmt 0 discriminator 2 view .LVU3558 + 10647 0046 A368 ldr r3, [r4, #8] +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10648 .loc 1 1147 8 discriminator 2 view .LVU3559 + 10649 0048 B3F5805F cmp r3, #4096 + 10650 004c 05D0 beq .L526 +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10651 .loc 1 1155 19 view .LVU3560 + 10652 004e 4FF00008 mov r8, #0 + 10653 .LVL945: + 10654 .L512: +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10655 .loc 1 1158 5 is_stmt 1 view .LVU3561 +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10656 .loc 1 1158 5 view .LVU3562 + 10657 0052 0023 movs r3, #0 + 10658 0054 84F88030 strb r3, [r4, #128] +1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10659 .loc 1 1158 5 view .LVU3563 +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10660 .loc 1 1160 5 view .LVU3564 +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10661 .loc 1 1160 11 is_stmt 0 view .LVU3565 + 10662 0058 14E0 b .L513 + 10663 .LVL946: + 10664 .L526: +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10665 .loc 1 1147 71 discriminator 1 view .LVU3566 + 10666 005a 2369 ldr r3, [r4, #16] +1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10667 .loc 1 1147 56 discriminator 1 view .LVU3567 + 10668 005c 13B1 cbz r3, .L522 +1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10669 .loc 1 1155 19 view .LVU3568 + 10670 005e 4FF00008 mov r8, #0 + 10671 0062 F6E7 b .L512 + 10672 .L522: +1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10673 .loc 1 1150 19 view .LVU3569 + 10674 0064 A846 mov r8, r5 +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; + 10675 .loc 1 1149 19 view .LVU3570 + 10676 0066 0025 movs r5, #0 + 10677 .LVL947: +1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; + 10678 .loc 1 1149 19 view .LVU3571 + 10679 0068 F3E7 b .L512 + 10680 .LVL948: + 10681 .L528: +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10682 .loc 1 1168 9 is_stmt 1 view .LVU3572 +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10683 .loc 1 1168 43 is_stmt 0 view .LVU3573 + 10684 006a 38F8023B ldrh r3, [r8], #2 + 10685 .LVL949: +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10686 .loc 1 1168 14 view .LVU3574 + ARM GAS /tmp/cceWHrnJ.s page 345 + + + 10687 006e 2268 ldr r2, [r4] +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10688 .loc 1 1168 32 view .LVU3575 + 10689 0070 C3F30803 ubfx r3, r3, #0, #9 +1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10690 .loc 1 1168 30 view .LVU3576 + 10691 0074 9362 str r3, [r2, #40] +1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10692 .loc 1 1169 9 is_stmt 1 view .LVU3577 + 10693 .LVL950: + 10694 .L515: +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10695 .loc 1 1176 7 view .LVU3578 +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10696 .loc 1 1176 12 is_stmt 0 view .LVU3579 + 10697 0076 B4F85620 ldrh r2, [r4, #86] + 10698 007a 92B2 uxth r2, r2 +1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10699 .loc 1 1176 25 view .LVU3580 + 10700 007c 013A subs r2, r2, #1 + 10701 007e 92B2 uxth r2, r2 + 10702 0080 A4F85620 strh r2, [r4, #86] @ movhi + 10703 .L513: +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10704 .loc 1 1160 31 is_stmt 1 view .LVU3581 +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10705 .loc 1 1160 17 is_stmt 0 view .LVU3582 + 10706 0084 B4F85630 ldrh r3, [r4, #86] + 10707 0088 9BB2 uxth r3, r3 +1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10708 .loc 1 1160 31 view .LVU3583 + 10709 008a 73B1 cbz r3, .L527 +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10710 .loc 1 1162 7 is_stmt 1 view .LVU3584 +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10711 .loc 1 1162 11 is_stmt 0 view .LVU3585 + 10712 008c 0096 str r6, [sp] + 10713 008e 3B46 mov r3, r7 + 10714 0090 0022 movs r2, #0 + 10715 0092 8021 movs r1, #128 + 10716 0094 2046 mov r0, r4 + 10717 0096 FFF7FEFF bl UART_WaitOnFlagUntilTimeout + 10718 .LVL951: +1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10719 .loc 1 1162 10 view .LVU3586 + 10720 009a E0B9 cbnz r0, .L523 +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10721 .loc 1 1166 7 is_stmt 1 view .LVU3587 +1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10722 .loc 1 1166 10 is_stmt 0 view .LVU3588 + 10723 009c 002D cmp r5, #0 + 10724 009e E4D0 beq .L528 +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 10725 .loc 1 1173 9 is_stmt 1 view .LVU3589 +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 10726 .loc 1 1173 42 is_stmt 0 view .LVU3590 + 10727 00a0 15F8012B ldrb r2, [r5], #1 @ zero_extendqisi2 + ARM GAS /tmp/cceWHrnJ.s page 346 + + + 10728 .LVL952: +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 10729 .loc 1 1173 14 view .LVU3591 + 10730 00a4 2368 ldr r3, [r4] +1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 10731 .loc 1 1173 30 view .LVU3592 + 10732 00a6 9A62 str r2, [r3, #40] +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10733 .loc 1 1174 9 is_stmt 1 view .LVU3593 + 10734 .LVL953: +1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10735 .loc 1 1174 9 is_stmt 0 view .LVU3594 + 10736 00a8 E5E7 b .L515 + 10737 .L527: +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10738 .loc 1 1179 5 is_stmt 1 view .LVU3595 +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10739 .loc 1 1179 9 is_stmt 0 view .LVU3596 + 10740 00aa 0096 str r6, [sp] + 10741 00ac 3B46 mov r3, r7 + 10742 00ae 0022 movs r2, #0 + 10743 00b0 4021 movs r1, #64 + 10744 00b2 2046 mov r0, r4 + 10745 00b4 FFF7FEFF bl UART_WaitOnFlagUntilTimeout + 10746 .LVL954: +1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10747 .loc 1 1179 8 view .LVU3597 + 10748 00b8 78B9 cbnz r0, .L524 +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10749 .loc 1 1185 5 is_stmt 1 view .LVU3598 +1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10750 .loc 1 1185 19 is_stmt 0 view .LVU3599 + 10751 00ba 2023 movs r3, #32 + 10752 00bc C4F88430 str r3, [r4, #132] +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10753 .loc 1 1187 5 is_stmt 1 view .LVU3600 +1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10754 .loc 1 1187 12 is_stmt 0 view .LVU3601 + 10755 00c0 00E0 b .L511 + 10756 .LVL955: + 10757 .L517: +1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10758 .loc 1 1191 12 view .LVU3602 + 10759 00c2 0220 movs r0, #2 + 10760 .LVL956: + 10761 .L511: +1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10762 .loc 1 1193 1 view .LVU3603 + 10763 00c4 02B0 add sp, sp, #8 + 10764 .LCFI35: + 10765 .cfi_remember_state + 10766 .cfi_def_cfa_offset 24 + 10767 @ sp needed + 10768 00c6 BDE8F081 pop {r4, r5, r6, r7, r8, pc} + 10769 .LVL957: + 10770 .L518: + 10771 .LCFI36: + ARM GAS /tmp/cceWHrnJ.s page 347 + + + 10772 .cfi_restore_state +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10773 .loc 1 1132 15 view .LVU3604 + 10774 00ca 0120 movs r0, #1 + 10775 .LVL958: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10776 .loc 1 1132 15 view .LVU3605 + 10777 00cc FAE7 b .L511 + 10778 .LVL959: + 10779 .L519: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10780 .loc 1 1132 15 view .LVU3606 + 10781 00ce 0120 movs r0, #1 + 10782 .LVL960: +1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10783 .loc 1 1132 15 view .LVU3607 + 10784 00d0 F8E7 b .L511 + 10785 .LVL961: + 10786 .L520: +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10787 .loc 1 1135 5 view .LVU3608 + 10788 00d2 0220 movs r0, #2 + 10789 .LVL962: +1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10790 .loc 1 1135 5 view .LVU3609 + 10791 00d4 F6E7 b .L511 + 10792 .LVL963: + 10793 .L523: +1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10794 .loc 1 1164 16 view .LVU3610 + 10795 00d6 0320 movs r0, #3 + 10796 00d8 F4E7 b .L511 + 10797 .L524: +1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10798 .loc 1 1181 14 view .LVU3611 + 10799 00da 0320 movs r0, #3 + 10800 00dc F2E7 b .L511 + 10801 .cfi_endproc + 10802 .LFE336: + 10804 .section .text.HAL_UART_Receive,"ax",%progbits + 10805 .align 1 + 10806 .global HAL_UART_Receive + 10807 .syntax unified + 10808 .thumb + 10809 .thumb_func + 10811 HAL_UART_Receive: + 10812 .LVL964: + 10813 .LFB337: +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; + 10814 .loc 1 1211 1 is_stmt 1 view -0 + 10815 .cfi_startproc + 10816 @ args = 0, pretend = 0, frame = 0 + 10817 @ frame_needed = 0, uses_anonymous_args = 0 +1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; + 10818 .loc 1 1211 1 is_stmt 0 view .LVU3613 + 10819 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} + 10820 .LCFI37: + ARM GAS /tmp/cceWHrnJ.s page 348 + + + 10821 .cfi_def_cfa_offset 28 + 10822 .cfi_offset 4, -28 + 10823 .cfi_offset 5, -24 + 10824 .cfi_offset 6, -20 + 10825 .cfi_offset 7, -16 + 10826 .cfi_offset 8, -12 + 10827 .cfi_offset 9, -8 + 10828 .cfi_offset 14, -4 + 10829 0004 83B0 sub sp, sp, #12 + 10830 .LCFI38: + 10831 .cfi_def_cfa_offset 40 + 10832 0006 1E46 mov r6, r3 +1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *pdata16bits; + 10833 .loc 1 1212 3 is_stmt 1 view .LVU3614 +1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask; + 10834 .loc 1 1213 3 view .LVU3615 +1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; + 10835 .loc 1 1214 3 view .LVU3616 +1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10836 .loc 1 1215 3 view .LVU3617 +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10837 .loc 1 1218 3 view .LVU3618 +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10838 .loc 1 1218 12 is_stmt 0 view .LVU3619 + 10839 0008 D0F88830 ldr r3, [r0, #136] + 10840 .LVL965: +1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10841 .loc 1 1218 6 view .LVU3620 + 10842 000c 202B cmp r3, #32 + 10843 000e 40F08180 bne .L543 + 10844 0012 0446 mov r4, r0 + 10845 0014 0D46 mov r5, r1 + 10846 0016 9046 mov r8, r2 +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10847 .loc 1 1220 5 is_stmt 1 view .LVU3621 +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10848 .loc 1 1220 8 is_stmt 0 view .LVU3622 + 10849 0018 0029 cmp r1, #0 + 10850 001a 7FD0 beq .L544 +1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10851 .loc 1 1220 25 discriminator 1 view .LVU3623 + 10852 001c 002A cmp r2, #0 + 10853 001e 7FD0 beq .L545 +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10854 .loc 1 1225 5 is_stmt 1 view .LVU3624 +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10855 .loc 1 1225 5 view .LVU3625 + 10856 0020 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 10857 0024 012B cmp r3, #1 + 10858 0026 7DD0 beq .L546 +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10859 .loc 1 1225 5 discriminator 2 view .LVU3626 + 10860 0028 0123 movs r3, #1 + 10861 002a 80F88030 strb r3, [r0, #128] +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10862 .loc 1 1225 5 discriminator 2 view .LVU3627 +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + ARM GAS /tmp/cceWHrnJ.s page 349 + + + 10863 .loc 1 1227 5 discriminator 2 view .LVU3628 +1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 10864 .loc 1 1227 22 is_stmt 0 discriminator 2 view .LVU3629 + 10865 002e 0023 movs r3, #0 + 10866 0030 C0F88C30 str r3, [r0, #140] +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 10867 .loc 1 1228 5 is_stmt 1 discriminator 2 view .LVU3630 +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 10868 .loc 1 1228 20 is_stmt 0 discriminator 2 view .LVU3631 + 10869 0034 2222 movs r2, #34 + 10870 .LVL966: +1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 10871 .loc 1 1228 20 discriminator 2 view .LVU3632 + 10872 0036 C0F88820 str r2, [r0, #136] +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10873 .loc 1 1229 5 is_stmt 1 discriminator 2 view .LVU3633 +1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10874 .loc 1 1229 26 is_stmt 0 discriminator 2 view .LVU3634 + 10875 003a C366 str r3, [r0, #108] +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10876 .loc 1 1232 5 is_stmt 1 discriminator 2 view .LVU3635 +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10877 .loc 1 1232 17 is_stmt 0 discriminator 2 view .LVU3636 + 10878 003c FFF7FEFF bl HAL_GetTick + 10879 .LVL967: +1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10880 .loc 1 1232 17 discriminator 2 view .LVU3637 + 10881 0040 0746 mov r7, r0 + 10882 .LVL968: +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; + 10883 .loc 1 1234 5 is_stmt 1 discriminator 2 view .LVU3638 +1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; + 10884 .loc 1 1234 24 is_stmt 0 discriminator 2 view .LVU3639 + 10885 0042 A4F85C80 strh r8, [r4, #92] @ movhi +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10886 .loc 1 1235 5 is_stmt 1 discriminator 2 view .LVU3640 +1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10887 .loc 1 1235 24 is_stmt 0 discriminator 2 view .LVU3641 + 10888 0046 A4F85E80 strh r8, [r4, #94] @ movhi +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10889 .loc 1 1238 5 is_stmt 1 discriminator 2 view .LVU3642 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10890 .loc 1 1238 5 discriminator 2 view .LVU3643 + 10891 004a A368 ldr r3, [r4, #8] + 10892 004c B3F5805F cmp r3, #4096 + 10893 0050 06D0 beq .L551 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10894 .loc 1 1238 5 discriminator 2 view .LVU3644 + 10895 0052 A3B9 cbnz r3, .L534 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10896 .loc 1 1238 5 discriminator 5 view .LVU3645 + 10897 0054 2269 ldr r2, [r4, #16] + 10898 0056 72B9 cbnz r2, .L535 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10899 .loc 1 1238 5 discriminator 7 view .LVU3646 + 10900 0058 FF22 movs r2, #255 + 10901 005a A4F86020 strh r2, [r4, #96] @ movhi + ARM GAS /tmp/cceWHrnJ.s page 350 + + + 10902 005e 14E0 b .L533 + 10903 .L551: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10904 .loc 1 1238 5 discriminator 1 view .LVU3647 + 10905 0060 2269 ldr r2, [r4, #16] + 10906 0062 22B9 cbnz r2, .L532 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10907 .loc 1 1238 5 discriminator 3 view .LVU3648 + 10908 0064 40F2FF12 movw r2, #511 + 10909 0068 A4F86020 strh r2, [r4, #96] @ movhi + 10910 006c 0DE0 b .L533 + 10911 .L532: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10912 .loc 1 1238 5 discriminator 4 view .LVU3649 + 10913 006e FF22 movs r2, #255 + 10914 0070 A4F86020 strh r2, [r4, #96] @ movhi + 10915 0074 09E0 b .L533 + 10916 .L535: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10917 .loc 1 1238 5 discriminator 8 view .LVU3650 + 10918 0076 7F22 movs r2, #127 + 10919 0078 A4F86020 strh r2, [r4, #96] @ movhi + 10920 007c 05E0 b .L533 + 10921 .L534: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10922 .loc 1 1238 5 discriminator 6 view .LVU3651 + 10923 007e B3F1805F cmp r3, #268435456 + 10924 0082 0DD0 beq .L552 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10925 .loc 1 1238 5 discriminator 10 view .LVU3652 + 10926 0084 0022 movs r2, #0 + 10927 0086 A4F86020 strh r2, [r4, #96] @ movhi + 10928 .L533: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10929 .loc 1 1238 5 discriminator 13 view .LVU3653 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10930 .loc 1 1239 5 discriminator 13 view .LVU3654 +1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10931 .loc 1 1239 12 is_stmt 0 discriminator 13 view .LVU3655 + 10932 008a B4F86080 ldrh r8, [r4, #96] + 10933 .LVL969: +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10934 .loc 1 1242 5 is_stmt 1 discriminator 13 view .LVU3656 +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10935 .loc 1 1242 8 is_stmt 0 discriminator 13 view .LVU3657 + 10936 008e B3F5805F cmp r3, #4096 + 10937 0092 0FD0 beq .L553 +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10938 .loc 1 1250 19 view .LVU3658 + 10939 0094 4FF00009 mov r9, #0 + 10940 .LVL970: + 10941 .L538: +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10942 .loc 1 1253 5 is_stmt 1 view .LVU3659 +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10943 .loc 1 1253 5 view .LVU3660 + 10944 0098 0023 movs r3, #0 + ARM GAS /tmp/cceWHrnJ.s page 351 + + + 10945 009a 84F88030 strb r3, [r4, #128] +1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 10946 .loc 1 1253 5 view .LVU3661 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10947 .loc 1 1256 5 view .LVU3662 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10948 .loc 1 1256 11 is_stmt 0 view .LVU3663 + 10949 009e 1EE0 b .L539 + 10950 .LVL971: + 10951 .L552: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10952 .loc 1 1238 5 is_stmt 1 discriminator 9 view .LVU3664 + 10953 00a0 2269 ldr r2, [r4, #16] + 10954 00a2 1AB9 cbnz r2, .L537 +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10955 .loc 1 1238 5 discriminator 11 view .LVU3665 + 10956 00a4 7F22 movs r2, #127 + 10957 00a6 A4F86020 strh r2, [r4, #96] @ movhi + 10958 00aa EEE7 b .L533 + 10959 .L537: +1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; + 10960 .loc 1 1238 5 discriminator 12 view .LVU3666 + 10961 00ac 3F22 movs r2, #63 + 10962 00ae A4F86020 strh r2, [r4, #96] @ movhi + 10963 00b2 EAE7 b .L533 + 10964 .LVL972: + 10965 .L553: +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10966 .loc 1 1242 71 is_stmt 0 discriminator 1 view .LVU3667 + 10967 00b4 2369 ldr r3, [r4, #16] +1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 10968 .loc 1 1242 56 discriminator 1 view .LVU3668 + 10969 00b6 13B1 cbz r3, .L548 +1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10970 .loc 1 1250 19 view .LVU3669 + 10971 00b8 4FF00009 mov r9, #0 + 10972 00bc ECE7 b .L538 + 10973 .L548: +1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10974 .loc 1 1245 19 view .LVU3670 + 10975 00be A946 mov r9, r5 +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; + 10976 .loc 1 1244 19 view .LVU3671 + 10977 00c0 0025 movs r5, #0 + 10978 .LVL973: +1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; + 10979 .loc 1 1244 19 view .LVU3672 + 10980 00c2 E9E7 b .L538 + 10981 .LVL974: + 10982 .L555: +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10983 .loc 1 1264 9 is_stmt 1 view .LVU3673 +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10984 .loc 1 1264 40 is_stmt 0 view .LVU3674 + 10985 00c4 2368 ldr r3, [r4] +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10986 .loc 1 1264 50 view .LVU3675 + ARM GAS /tmp/cceWHrnJ.s page 352 + + + 10987 00c6 5B6A ldr r3, [r3, #36] +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10988 .loc 1 1264 24 view .LVU3676 + 10989 00c8 08EA0303 and r3, r8, r3 +1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; + 10990 .loc 1 1264 22 view .LVU3677 + 10991 00cc 29F8023B strh r3, [r9], #2 @ movhi + 10992 .LVL975: +1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10993 .loc 1 1265 9 is_stmt 1 view .LVU3678 + 10994 .L541: +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10995 .loc 1 1272 7 view .LVU3679 +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10996 .loc 1 1272 12 is_stmt 0 view .LVU3680 + 10997 00d0 B4F85E20 ldrh r2, [r4, #94] + 10998 00d4 92B2 uxth r2, r2 +1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 10999 .loc 1 1272 25 view .LVU3681 + 11000 00d6 013A subs r2, r2, #1 + 11001 00d8 92B2 uxth r2, r2 + 11002 00da A4F85E20 strh r2, [r4, #94] @ movhi + 11003 .L539: +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11004 .loc 1 1256 31 is_stmt 1 view .LVU3682 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11005 .loc 1 1256 17 is_stmt 0 view .LVU3683 + 11006 00de B4F85E30 ldrh r3, [r4, #94] + 11007 00e2 9BB2 uxth r3, r3 +1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11008 .loc 1 1256 31 view .LVU3684 + 11009 00e4 8BB1 cbz r3, .L554 +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11010 .loc 1 1258 7 is_stmt 1 view .LVU3685 +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11011 .loc 1 1258 11 is_stmt 0 view .LVU3686 + 11012 00e6 0096 str r6, [sp] + 11013 00e8 3B46 mov r3, r7 + 11014 00ea 0022 movs r2, #0 + 11015 00ec 2021 movs r1, #32 + 11016 00ee 2046 mov r0, r4 + 11017 00f0 FFF7FEFF bl UART_WaitOnFlagUntilTimeout + 11018 .LVL976: +1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11019 .loc 1 1258 10 view .LVU3687 + 11020 00f4 C0B9 cbnz r0, .L549 +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11021 .loc 1 1262 7 is_stmt 1 view .LVU3688 +1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11022 .loc 1 1262 10 is_stmt 0 view .LVU3689 + 11023 00f6 002D cmp r5, #0 + 11024 00f8 E4D0 beq .L555 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 11025 .loc 1 1269 9 is_stmt 1 view .LVU3690 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 11026 .loc 1 1269 38 is_stmt 0 view .LVU3691 + 11027 00fa 2368 ldr r3, [r4] + ARM GAS /tmp/cceWHrnJ.s page 353 + + +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 11028 .loc 1 1269 48 view .LVU3692 + 11029 00fc 5A6A ldr r2, [r3, #36] +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 11030 .loc 1 1269 56 view .LVU3693 + 11031 00fe 5FFA88F3 uxtb r3, r8 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 11032 .loc 1 1269 23 view .LVU3694 + 11033 0102 1340 ands r3, r3, r2 +1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; + 11034 .loc 1 1269 21 view .LVU3695 + 11035 0104 05F8013B strb r3, [r5], #1 + 11036 .LVL977: +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11037 .loc 1 1270 9 is_stmt 1 view .LVU3696 +1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11038 .loc 1 1270 9 is_stmt 0 view .LVU3697 + 11039 0108 E2E7 b .L541 + 11040 .L554: +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11041 .loc 1 1276 5 is_stmt 1 view .LVU3698 +1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11042 .loc 1 1276 20 is_stmt 0 view .LVU3699 + 11043 010a 2023 movs r3, #32 + 11044 010c C4F88830 str r3, [r4, #136] +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11045 .loc 1 1278 5 is_stmt 1 view .LVU3700 +1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11046 .loc 1 1278 12 is_stmt 0 view .LVU3701 + 11047 0110 0020 movs r0, #0 + 11048 0112 00E0 b .L530 + 11049 .LVL978: + 11050 .L543: +1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11051 .loc 1 1282 12 view .LVU3702 + 11052 0114 0220 movs r0, #2 + 11053 .LVL979: + 11054 .L530: +1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11055 .loc 1 1284 1 view .LVU3703 + 11056 0116 03B0 add sp, sp, #12 + 11057 .LCFI39: + 11058 .cfi_remember_state + 11059 .cfi_def_cfa_offset 28 + 11060 @ sp needed + 11061 0118 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} + 11062 .LVL980: + 11063 .L544: + 11064 .LCFI40: + 11065 .cfi_restore_state +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11066 .loc 1 1222 15 view .LVU3704 + 11067 011c 0120 movs r0, #1 + 11068 .LVL981: +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11069 .loc 1 1222 15 view .LVU3705 + 11070 011e FAE7 b .L530 + ARM GAS /tmp/cceWHrnJ.s page 354 + + + 11071 .LVL982: + 11072 .L545: +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11073 .loc 1 1222 15 view .LVU3706 + 11074 0120 0120 movs r0, #1 + 11075 .LVL983: +1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11076 .loc 1 1222 15 view .LVU3707 + 11077 0122 F8E7 b .L530 + 11078 .LVL984: + 11079 .L546: +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11080 .loc 1 1225 5 view .LVU3708 + 11081 0124 0220 movs r0, #2 + 11082 .LVL985: +1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11083 .loc 1 1225 5 view .LVU3709 + 11084 0126 F6E7 b .L530 + 11085 .LVL986: + 11086 .L549: +1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11087 .loc 1 1260 16 view .LVU3710 + 11088 0128 0320 movs r0, #3 + 11089 012a F4E7 b .L530 + 11090 .cfi_endproc + 11091 .LFE337: + 11093 .section .text.UART_CheckIdleState,"ax",%progbits + 11094 .align 1 + 11095 .global UART_CheckIdleState + 11096 .syntax unified + 11097 .thumb + 11098 .thumb_func + 11100 UART_CheckIdleState: + 11101 .LVL987: + 11102 .LFB374: +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; + 11103 .loc 1 3315 1 is_stmt 1 view -0 + 11104 .cfi_startproc + 11105 @ args = 0, pretend = 0, frame = 0 + 11106 @ frame_needed = 0, uses_anonymous_args = 0 +3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; + 11107 .loc 1 3315 1 is_stmt 0 view .LVU3712 + 11108 0000 30B5 push {r4, r5, lr} + 11109 .LCFI41: + 11110 .cfi_def_cfa_offset 12 + 11111 .cfi_offset 4, -12 + 11112 .cfi_offset 5, -8 + 11113 .cfi_offset 14, -4 + 11114 0002 83B0 sub sp, sp, #12 + 11115 .LCFI42: + 11116 .cfi_def_cfa_offset 24 + 11117 0004 0446 mov r4, r0 +3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11118 .loc 1 3316 3 is_stmt 1 view .LVU3713 +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11119 .loc 1 3319 3 view .LVU3714 +3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 355 + + + 11120 .loc 1 3319 20 is_stmt 0 view .LVU3715 + 11121 0006 0023 movs r3, #0 + 11122 0008 C0F88C30 str r3, [r0, #140] +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11123 .loc 1 3322 3 is_stmt 1 view .LVU3716 +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11124 .loc 1 3322 15 is_stmt 0 view .LVU3717 + 11125 000c FFF7FEFF bl HAL_GetTick + 11126 .LVL988: +3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11127 .loc 1 3322 15 view .LVU3718 + 11128 0010 0546 mov r5, r0 + 11129 .LVL989: +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11130 .loc 1 3325 3 is_stmt 1 view .LVU3719 +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11131 .loc 1 3325 13 is_stmt 0 view .LVU3720 + 11132 0012 2268 ldr r2, [r4] +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11133 .loc 1 3325 23 view .LVU3721 + 11134 0014 1268 ldr r2, [r2] +3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11135 .loc 1 3325 6 view .LVU3722 + 11136 0016 12F0080F tst r2, #8 + 11137 001a 0FD1 bne .L563 + 11138 .LVL990: + 11139 .L557: +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11140 .loc 1 3336 3 is_stmt 1 view .LVU3723 +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11141 .loc 1 3336 13 is_stmt 0 view .LVU3724 + 11142 001c 2368 ldr r3, [r4] +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11143 .loc 1 3336 23 view .LVU3725 + 11144 001e 1B68 ldr r3, [r3] +3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11145 .loc 1 3336 6 view .LVU3726 + 11146 0020 13F0040F tst r3, #4 + 11147 0024 18D1 bne .L564 + 11148 .L559: +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 11149 .loc 1 3347 3 is_stmt 1 view .LVU3727 +3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; + 11150 .loc 1 3347 17 is_stmt 0 view .LVU3728 + 11151 0026 2023 movs r3, #32 + 11152 0028 C4F88430 str r3, [r4, #132] +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 11153 .loc 1 3348 3 is_stmt 1 view .LVU3729 +3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; + 11154 .loc 1 3348 18 is_stmt 0 view .LVU3730 + 11155 002c C4F88830 str r3, [r4, #136] +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11156 .loc 1 3349 3 is_stmt 1 view .LVU3731 +3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11157 .loc 1 3349 24 is_stmt 0 view .LVU3732 + 11158 0030 0020 movs r0, #0 + 11159 0032 E066 str r0, [r4, #108] + ARM GAS /tmp/cceWHrnJ.s page 356 + + +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11160 .loc 1 3351 3 is_stmt 1 view .LVU3733 +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11161 .loc 1 3351 3 view .LVU3734 + 11162 0034 84F88000 strb r0, [r4, #128] +3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11163 .loc 1 3351 3 view .LVU3735 +3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11164 .loc 1 3353 3 view .LVU3736 + 11165 .L558: +3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11166 .loc 1 3354 1 is_stmt 0 view .LVU3737 + 11167 0038 03B0 add sp, sp, #12 + 11168 .LCFI43: + 11169 .cfi_remember_state + 11170 .cfi_def_cfa_offset 12 + 11171 @ sp needed + 11172 003a 30BD pop {r4, r5, pc} + 11173 .LVL991: + 11174 .L563: + 11175 .LCFI44: + 11176 .cfi_restore_state +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11177 .loc 1 3328 5 is_stmt 1 view .LVU3738 +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11178 .loc 1 3328 9 is_stmt 0 view .LVU3739 + 11179 003c 6FF07E43 mvn r3, #-33554432 + 11180 0040 0093 str r3, [sp] + 11181 0042 0346 mov r3, r0 + 11182 0044 0022 movs r2, #0 + 11183 0046 4FF40011 mov r1, #2097152 + 11184 004a 2046 mov r0, r4 + 11185 .LVL992: +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11186 .loc 1 3328 9 view .LVU3740 + 11187 004c FFF7FEFF bl UART_WaitOnFlagUntilTimeout + 11188 .LVL993: +3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11189 .loc 1 3328 8 view .LVU3741 + 11190 0050 0028 cmp r0, #0 + 11191 0052 E3D0 beq .L557 +3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11192 .loc 1 3331 14 view .LVU3742 + 11193 0054 0320 movs r0, #3 + 11194 0056 EFE7 b .L558 + 11195 .L564: +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11196 .loc 1 3339 5 is_stmt 1 view .LVU3743 +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11197 .loc 1 3339 9 is_stmt 0 view .LVU3744 + 11198 0058 6FF07E43 mvn r3, #-33554432 + 11199 005c 0093 str r3, [sp] + 11200 005e 2B46 mov r3, r5 + 11201 0060 0022 movs r2, #0 + 11202 0062 4FF48001 mov r1, #4194304 + 11203 0066 2046 mov r0, r4 + 11204 0068 FFF7FEFF bl UART_WaitOnFlagUntilTimeout + ARM GAS /tmp/cceWHrnJ.s page 357 + + + 11205 .LVL994: +3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11206 .loc 1 3339 8 view .LVU3745 + 11207 006c 0028 cmp r0, #0 + 11208 006e DAD0 beq .L559 +3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11209 .loc 1 3342 14 view .LVU3746 + 11210 0070 0320 movs r0, #3 + 11211 0072 E1E7 b .L558 + 11212 .cfi_endproc + 11213 .LFE374: + 11215 .section .text.HAL_UART_Init,"ax",%progbits + 11216 .align 1 + 11217 .global HAL_UART_Init + 11218 .syntax unified + 11219 .thumb + 11220 .thumb_func + 11222 HAL_UART_Init: + 11223 .LVL995: + 11224 .LFB329: + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11225 .loc 1 308 1 is_stmt 1 view -0 + 11226 .cfi_startproc + 11227 @ args = 0, pretend = 0, frame = 0 + 11228 @ frame_needed = 0, uses_anonymous_args = 0 + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11229 .loc 1 310 3 view .LVU3748 + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11230 .loc 1 310 6 is_stmt 0 view .LVU3749 + 11231 0000 78B3 cbz r0, .L569 + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11232 .loc 1 308 1 view .LVU3750 + 11233 0002 10B5 push {r4, lr} + 11234 .LCFI45: + 11235 .cfi_def_cfa_offset 8 + 11236 .cfi_offset 4, -8 + 11237 .cfi_offset 14, -4 + 11238 0004 0446 mov r4, r0 + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11239 .loc 1 315 3 is_stmt 1 view .LVU3751 + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11240 .loc 1 323 5 view .LVU3752 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11241 .loc 1 326 3 view .LVU3753 + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11242 .loc 1 326 12 is_stmt 0 view .LVU3754 + 11243 0006 D0F88430 ldr r3, [r0, #132] + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11244 .loc 1 326 6 view .LVU3755 + 11245 000a 0BB3 cbz r3, .L574 + 11246 .LVL996: + 11247 .L567: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11248 .loc 1 347 3 is_stmt 1 view .LVU3756 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11249 .loc 1 347 17 is_stmt 0 view .LVU3757 + 11250 000c 2423 movs r3, #36 + ARM GAS /tmp/cceWHrnJ.s page 358 + + + 11251 000e C4F88430 str r3, [r4, #132] + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11252 .loc 1 349 3 is_stmt 1 view .LVU3758 + 11253 0012 2268 ldr r2, [r4] + 11254 0014 1368 ldr r3, [r2] + 11255 0016 23F00103 bic r3, r3, #1 + 11256 001a 1360 str r3, [r2] + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11257 .loc 1 352 3 view .LVU3759 + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11258 .loc 1 352 7 is_stmt 0 view .LVU3760 + 11259 001c 2046 mov r0, r4 + 11260 001e FFF7FEFF bl UART_SetConfig + 11261 .LVL997: + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11262 .loc 1 352 6 view .LVU3761 + 11263 0022 0128 cmp r0, #1 + 11264 0024 13D0 beq .L566 + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11265 .loc 1 357 3 is_stmt 1 view .LVU3762 + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11266 .loc 1 357 26 is_stmt 0 view .LVU3763 + 11267 0026 A36A ldr r3, [r4, #40] + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11268 .loc 1 357 6 view .LVU3764 + 11269 0028 BBB9 cbnz r3, .L575 + 11270 .L568: + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + 11271 .loc 1 365 3 is_stmt 1 view .LVU3765 + 11272 002a 2268 ldr r2, [r4] + 11273 002c 5368 ldr r3, [r2, #4] + 11274 002e 23F49043 bic r3, r3, #18432 + 11275 0032 5360 str r3, [r2, #4] + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11276 .loc 1 366 3 view .LVU3766 + 11277 0034 2268 ldr r2, [r4] + 11278 0036 9368 ldr r3, [r2, #8] + 11279 0038 23F02A03 bic r3, r3, #42 + 11280 003c 9360 str r3, [r2, #8] + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11281 .loc 1 368 3 view .LVU3767 + 11282 003e 2268 ldr r2, [r4] + 11283 0040 1368 ldr r3, [r2] + 11284 0042 43F00103 orr r3, r3, #1 + 11285 0046 1360 str r3, [r2] + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11286 .loc 1 371 3 view .LVU3768 + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11287 .loc 1 371 11 is_stmt 0 view .LVU3769 + 11288 0048 2046 mov r0, r4 + 11289 004a FFF7FEFF bl UART_CheckIdleState + 11290 .LVL998: + 11291 .L566: + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11292 .loc 1 372 1 view .LVU3770 + 11293 004e 10BD pop {r4, pc} + 11294 .LVL999: + ARM GAS /tmp/cceWHrnJ.s page 359 + + + 11295 .L574: + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11296 .loc 1 329 5 is_stmt 1 view .LVU3771 + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11297 .loc 1 329 17 is_stmt 0 view .LVU3772 + 11298 0050 80F88030 strb r3, [r0, #128] + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11299 .loc 1 343 5 is_stmt 1 view .LVU3773 + 11300 0054 FFF7FEFF bl HAL_UART_MspInit + 11301 .LVL1000: + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11302 .loc 1 343 5 is_stmt 0 view .LVU3774 + 11303 0058 D8E7 b .L567 + 11304 .L575: + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11305 .loc 1 359 5 is_stmt 1 view .LVU3775 + 11306 005a 2046 mov r0, r4 + 11307 005c FFF7FEFF bl UART_AdvFeatureConfig + 11308 .LVL1001: + 11309 0060 E3E7 b .L568 + 11310 .LVL1002: + 11311 .L569: + 11312 .LCFI46: + 11313 .cfi_def_cfa_offset 0 + 11314 .cfi_restore 4 + 11315 .cfi_restore 14 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11316 .loc 1 312 12 is_stmt 0 view .LVU3776 + 11317 0062 0120 movs r0, #1 + 11318 .LVL1003: + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11319 .loc 1 372 1 view .LVU3777 + 11320 0064 7047 bx lr + 11321 .cfi_endproc + 11322 .LFE329: + 11324 .section .text.HAL_HalfDuplex_Init,"ax",%progbits + 11325 .align 1 + 11326 .global HAL_HalfDuplex_Init + 11327 .syntax unified + 11328 .thumb + 11329 .thumb_func + 11331 HAL_HalfDuplex_Init: + 11332 .LVL1004: + 11333 .LFB330: + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11334 .loc 1 381 1 is_stmt 1 view -0 + 11335 .cfi_startproc + 11336 @ args = 0, pretend = 0, frame = 0 + 11337 @ frame_needed = 0, uses_anonymous_args = 0 + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11338 .loc 1 383 3 view .LVU3779 + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11339 .loc 1 383 6 is_stmt 0 view .LVU3780 + 11340 0000 0028 cmp r0, #0 + 11341 0002 34D0 beq .L580 + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11342 .loc 1 381 1 view .LVU3781 + ARM GAS /tmp/cceWHrnJ.s page 360 + + + 11343 0004 10B5 push {r4, lr} + 11344 .LCFI47: + 11345 .cfi_def_cfa_offset 8 + 11346 .cfi_offset 4, -8 + 11347 .cfi_offset 14, -4 + 11348 0006 0446 mov r4, r0 + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11349 .loc 1 389 3 is_stmt 1 view .LVU3782 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11350 .loc 1 391 3 view .LVU3783 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11351 .loc 1 391 12 is_stmt 0 view .LVU3784 + 11352 0008 D0F88430 ldr r3, [r0, #132] + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11353 .loc 1 391 6 view .LVU3785 + 11354 000c 33B3 cbz r3, .L585 + 11355 .LVL1005: + 11356 .L578: + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11357 .loc 1 412 3 is_stmt 1 view .LVU3786 + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11358 .loc 1 412 17 is_stmt 0 view .LVU3787 + 11359 000e 2423 movs r3, #36 + 11360 0010 C4F88430 str r3, [r4, #132] + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11361 .loc 1 414 3 is_stmt 1 view .LVU3788 + 11362 0014 2268 ldr r2, [r4] + 11363 0016 1368 ldr r3, [r2] + 11364 0018 23F00103 bic r3, r3, #1 + 11365 001c 1360 str r3, [r2] + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11366 .loc 1 417 3 view .LVU3789 + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11367 .loc 1 417 7 is_stmt 0 view .LVU3790 + 11368 001e 2046 mov r0, r4 + 11369 0020 FFF7FEFF bl UART_SetConfig + 11370 .LVL1006: + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11371 .loc 1 417 6 view .LVU3791 + 11372 0024 0128 cmp r0, #1 + 11373 0026 18D0 beq .L577 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11374 .loc 1 422 3 is_stmt 1 view .LVU3792 + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11375 .loc 1 422 26 is_stmt 0 view .LVU3793 + 11376 0028 A36A ldr r3, [r4, #40] + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11377 .loc 1 422 6 view .LVU3794 + 11378 002a E3B9 cbnz r3, .L586 + 11379 .L579: + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); + 11380 .loc 1 430 3 is_stmt 1 view .LVU3795 + 11381 002c 2268 ldr r2, [r4] + 11382 002e 5368 ldr r3, [r2, #4] + 11383 0030 23F49043 bic r3, r3, #18432 + 11384 0034 5360 str r3, [r2, #4] + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 361 + + + 11385 .loc 1 431 3 view .LVU3796 + 11386 0036 2268 ldr r2, [r4] + 11387 0038 9368 ldr r3, [r2, #8] + 11388 003a 23F02203 bic r3, r3, #34 + 11389 003e 9360 str r3, [r2, #8] + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11390 .loc 1 434 3 view .LVU3797 + 11391 0040 2268 ldr r2, [r4] + 11392 0042 9368 ldr r3, [r2, #8] + 11393 0044 43F00803 orr r3, r3, #8 + 11394 0048 9360 str r3, [r2, #8] + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11395 .loc 1 436 3 view .LVU3798 + 11396 004a 2268 ldr r2, [r4] + 11397 004c 1368 ldr r3, [r2] + 11398 004e 43F00103 orr r3, r3, #1 + 11399 0052 1360 str r3, [r2] + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11400 .loc 1 439 3 view .LVU3799 + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11401 .loc 1 439 11 is_stmt 0 view .LVU3800 + 11402 0054 2046 mov r0, r4 + 11403 0056 FFF7FEFF bl UART_CheckIdleState + 11404 .LVL1007: + 11405 .L577: + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11406 .loc 1 440 1 view .LVU3801 + 11407 005a 10BD pop {r4, pc} + 11408 .LVL1008: + 11409 .L585: + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11410 .loc 1 394 5 is_stmt 1 view .LVU3802 + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11411 .loc 1 394 17 is_stmt 0 view .LVU3803 + 11412 005c 80F88030 strb r3, [r0, #128] + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11413 .loc 1 408 5 is_stmt 1 view .LVU3804 + 11414 0060 FFF7FEFF bl HAL_UART_MspInit + 11415 .LVL1009: + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11416 .loc 1 408 5 is_stmt 0 view .LVU3805 + 11417 0064 D3E7 b .L578 + 11418 .L586: + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11419 .loc 1 424 5 is_stmt 1 view .LVU3806 + 11420 0066 2046 mov r0, r4 + 11421 0068 FFF7FEFF bl UART_AdvFeatureConfig + 11422 .LVL1010: + 11423 006c DEE7 b .L579 + 11424 .LVL1011: + 11425 .L580: + 11426 .LCFI48: + 11427 .cfi_def_cfa_offset 0 + 11428 .cfi_restore 4 + 11429 .cfi_restore 14 + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11430 .loc 1 385 12 is_stmt 0 view .LVU3807 + ARM GAS /tmp/cceWHrnJ.s page 362 + + + 11431 006e 0120 movs r0, #1 + 11432 .LVL1012: + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11433 .loc 1 440 1 view .LVU3808 + 11434 0070 7047 bx lr + 11435 .cfi_endproc + 11436 .LFE330: + 11438 .section .text.HAL_LIN_Init,"ax",%progbits + 11439 .align 1 + 11440 .global HAL_LIN_Init + 11441 .syntax unified + 11442 .thumb + 11443 .thumb_func + 11445 HAL_LIN_Init: + 11446 .LVL1013: + 11447 .LFB331: + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11448 .loc 1 454 1 is_stmt 1 view -0 + 11449 .cfi_startproc + 11450 @ args = 0, pretend = 0, frame = 0 + 11451 @ frame_needed = 0, uses_anonymous_args = 0 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11452 .loc 1 456 3 view .LVU3810 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11453 .loc 1 456 6 is_stmt 0 view .LVU3811 + 11454 0000 0028 cmp r0, #0 + 11455 0002 42D0 beq .L591 + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11456 .loc 1 454 1 view .LVU3812 + 11457 0004 38B5 push {r3, r4, r5, lr} + 11458 .LCFI49: + 11459 .cfi_def_cfa_offset 16 + 11460 .cfi_offset 3, -16 + 11461 .cfi_offset 4, -12 + 11462 .cfi_offset 5, -8 + 11463 .cfi_offset 14, -4 + 11464 0006 0D46 mov r5, r1 + 11465 0008 0446 mov r4, r0 + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the Break detection length parameter */ + 11466 .loc 1 462 3 is_stmt 1 view .LVU3813 + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11467 .loc 1 464 3 view .LVU3814 + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11468 .loc 1 467 3 view .LVU3815 + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11469 .loc 1 467 18 is_stmt 0 view .LVU3816 + 11470 000a C369 ldr r3, [r0, #28] + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11471 .loc 1 467 6 view .LVU3817 + 11472 000c B3F5004F cmp r3, #32768 + 11473 0010 3DD0 beq .L592 + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11474 .loc 1 472 3 is_stmt 1 view .LVU3818 + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11475 .loc 1 472 18 is_stmt 0 view .LVU3819 + 11476 0012 8368 ldr r3, [r0, #8] + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + ARM GAS /tmp/cceWHrnJ.s page 363 + + + 11477 .loc 1 472 6 view .LVU3820 + 11478 0014 002B cmp r3, #0 + 11479 0016 3CD1 bne .L593 + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11480 .loc 1 477 3 is_stmt 1 view .LVU3821 + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11481 .loc 1 477 12 is_stmt 0 view .LVU3822 + 11482 0018 D0F88430 ldr r3, [r0, #132] + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11483 .loc 1 477 6 view .LVU3823 + 11484 001c 63B3 cbz r3, .L598 + 11485 .LVL1014: + 11486 .L589: + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11487 .loc 1 498 3 is_stmt 1 view .LVU3824 + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11488 .loc 1 498 17 is_stmt 0 view .LVU3825 + 11489 001e 2423 movs r3, #36 + 11490 0020 C4F88430 str r3, [r4, #132] + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11491 .loc 1 500 3 is_stmt 1 view .LVU3826 + 11492 0024 2268 ldr r2, [r4] + 11493 0026 1368 ldr r3, [r2] + 11494 0028 23F00103 bic r3, r3, #1 + 11495 002c 1360 str r3, [r2] + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11496 .loc 1 503 3 view .LVU3827 + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11497 .loc 1 503 7 is_stmt 0 view .LVU3828 + 11498 002e 2046 mov r0, r4 + 11499 0030 FFF7FEFF bl UART_SetConfig + 11500 .LVL1015: + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11501 .loc 1 503 6 view .LVU3829 + 11502 0034 0128 cmp r0, #1 + 11503 0036 1ED0 beq .L588 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11504 .loc 1 508 3 is_stmt 1 view .LVU3830 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11505 .loc 1 508 26 is_stmt 0 view .LVU3831 + 11506 0038 A36A ldr r3, [r4, #40] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11507 .loc 1 508 6 view .LVU3832 + 11508 003a 13BB cbnz r3, .L599 + 11509 .L590: + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); + 11510 .loc 1 516 3 is_stmt 1 view .LVU3833 + 11511 003c 2268 ldr r2, [r4] + 11512 003e 5368 ldr r3, [r2, #4] + 11513 0040 23F40063 bic r3, r3, #2048 + 11514 0044 5360 str r3, [r2, #4] + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11515 .loc 1 517 3 view .LVU3834 + 11516 0046 2268 ldr r2, [r4] + 11517 0048 9368 ldr r3, [r2, #8] + 11518 004a 23F02A03 bic r3, r3, #42 + 11519 004e 9360 str r3, [r2, #8] + ARM GAS /tmp/cceWHrnJ.s page 364 + + + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11520 .loc 1 520 3 view .LVU3835 + 11521 0050 2268 ldr r2, [r4] + 11522 0052 5368 ldr r3, [r2, #4] + 11523 0054 43F48043 orr r3, r3, #16384 + 11524 0058 5360 str r3, [r2, #4] + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11525 .loc 1 523 3 view .LVU3836 + 11526 005a 2268 ldr r2, [r4] + 11527 005c 5368 ldr r3, [r2, #4] + 11528 005e 23F02003 bic r3, r3, #32 + 11529 0062 2B43 orrs r3, r3, r5 + 11530 0064 5360 str r3, [r2, #4] + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11531 .loc 1 525 3 view .LVU3837 + 11532 0066 2268 ldr r2, [r4] + 11533 0068 1368 ldr r3, [r2] + 11534 006a 43F00103 orr r3, r3, #1 + 11535 006e 1360 str r3, [r2] + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11536 .loc 1 528 3 view .LVU3838 + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11537 .loc 1 528 11 is_stmt 0 view .LVU3839 + 11538 0070 2046 mov r0, r4 + 11539 0072 FFF7FEFF bl UART_CheckIdleState + 11540 .LVL1016: + 11541 .L588: + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11542 .loc 1 529 1 view .LVU3840 + 11543 0076 38BD pop {r3, r4, r5, pc} + 11544 .LVL1017: + 11545 .L598: + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11546 .loc 1 480 5 is_stmt 1 view .LVU3841 + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11547 .loc 1 480 17 is_stmt 0 view .LVU3842 + 11548 0078 80F88030 strb r3, [r0, #128] + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11549 .loc 1 494 5 is_stmt 1 view .LVU3843 + 11550 007c FFF7FEFF bl HAL_UART_MspInit + 11551 .LVL1018: + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11552 .loc 1 494 5 is_stmt 0 view .LVU3844 + 11553 0080 CDE7 b .L589 + 11554 .L599: + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11555 .loc 1 510 5 is_stmt 1 view .LVU3845 + 11556 0082 2046 mov r0, r4 + 11557 0084 FFF7FEFF bl UART_AdvFeatureConfig + 11558 .LVL1019: + 11559 0088 D8E7 b .L590 + 11560 .LVL1020: + 11561 .L591: + 11562 .LCFI50: + 11563 .cfi_def_cfa_offset 0 + 11564 .cfi_restore 3 + 11565 .cfi_restore 4 + ARM GAS /tmp/cceWHrnJ.s page 365 + + + 11566 .cfi_restore 5 + 11567 .cfi_restore 14 + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11568 .loc 1 458 12 is_stmt 0 view .LVU3846 + 11569 008a 0120 movs r0, #1 + 11570 .LVL1021: + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11571 .loc 1 529 1 view .LVU3847 + 11572 008c 7047 bx lr + 11573 .LVL1022: + 11574 .L592: + 11575 .LCFI51: + 11576 .cfi_def_cfa_offset 16 + 11577 .cfi_offset 3, -16 + 11578 .cfi_offset 4, -12 + 11579 .cfi_offset 5, -8 + 11580 .cfi_offset 14, -4 + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11581 .loc 1 469 12 view .LVU3848 + 11582 008e 0120 movs r0, #1 + 11583 .LVL1023: + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11584 .loc 1 469 12 view .LVU3849 + 11585 0090 F1E7 b .L588 + 11586 .LVL1024: + 11587 .L593: + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11588 .loc 1 474 12 view .LVU3850 + 11589 0092 0120 movs r0, #1 + 11590 .LVL1025: + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11591 .loc 1 474 12 view .LVU3851 + 11592 0094 EFE7 b .L588 + 11593 .cfi_endproc + 11594 .LFE331: + 11596 .section .text.HAL_MultiProcessor_Init,"ax",%progbits + 11597 .align 1 + 11598 .global HAL_MultiProcessor_Init + 11599 .syntax unified + 11600 .thumb + 11601 .thumb_func + 11603 HAL_MultiProcessor_Init: + 11604 .LVL1026: + 11605 .LFB332: + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11606 .loc 1 551 1 is_stmt 1 view -0 + 11607 .cfi_startproc + 11608 @ args = 0, pretend = 0, frame = 0 + 11609 @ frame_needed = 0, uses_anonymous_args = 0 + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11610 .loc 1 553 3 view .LVU3853 + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11611 .loc 1 553 6 is_stmt 0 view .LVU3854 + 11612 0000 0028 cmp r0, #0 + 11613 0002 42D0 beq .L605 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ + 11614 .loc 1 551 1 view .LVU3855 + ARM GAS /tmp/cceWHrnJ.s page 366 + + + 11615 0004 70B5 push {r4, r5, r6, lr} + 11616 .LCFI52: + 11617 .cfi_def_cfa_offset 16 + 11618 .cfi_offset 4, -16 + 11619 .cfi_offset 5, -12 + 11620 .cfi_offset 6, -8 + 11621 .cfi_offset 14, -4 + 11622 0006 0E46 mov r6, r1 + 11623 0008 1546 mov r5, r2 + 11624 000a 0446 mov r4, r0 + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11625 .loc 1 559 3 is_stmt 1 view .LVU3856 + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11626 .loc 1 561 3 view .LVU3857 + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11627 .loc 1 561 12 is_stmt 0 view .LVU3858 + 11628 000c D0F88430 ldr r3, [r0, #132] + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11629 .loc 1 561 6 view .LVU3859 + 11630 0010 53B3 cbz r3, .L610 + 11631 .LVL1027: + 11632 .L602: + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11633 .loc 1 582 3 is_stmt 1 view .LVU3860 + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11634 .loc 1 582 17 is_stmt 0 view .LVU3861 + 11635 0012 2423 movs r3, #36 + 11636 0014 C4F88430 str r3, [r4, #132] + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11637 .loc 1 584 3 is_stmt 1 view .LVU3862 + 11638 0018 2268 ldr r2, [r4] + 11639 001a 1368 ldr r3, [r2] + 11640 001c 23F00103 bic r3, r3, #1 + 11641 0020 1360 str r3, [r2] + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11642 .loc 1 587 3 view .LVU3863 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11643 .loc 1 587 7 is_stmt 0 view .LVU3864 + 11644 0022 2046 mov r0, r4 + 11645 0024 FFF7FEFF bl UART_SetConfig + 11646 .LVL1028: + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11647 .loc 1 587 6 view .LVU3865 + 11648 0028 0128 cmp r0, #1 + 11649 002a 1CD0 beq .L601 + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11650 .loc 1 592 3 is_stmt 1 view .LVU3866 + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11651 .loc 1 592 26 is_stmt 0 view .LVU3867 + 11652 002c A36A ldr r3, [r4, #40] + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11653 .loc 1 592 6 view .LVU3868 + 11654 002e 03BB cbnz r3, .L611 + 11655 .L603: + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + 11656 .loc 1 600 3 is_stmt 1 view .LVU3869 + 11657 0030 2268 ldr r2, [r4] + ARM GAS /tmp/cceWHrnJ.s page 367 + + + 11658 0032 5368 ldr r3, [r2, #4] + 11659 0034 23F49043 bic r3, r3, #18432 + 11660 0038 5360 str r3, [r2, #4] + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11661 .loc 1 601 3 view .LVU3870 + 11662 003a 2268 ldr r2, [r4] + 11663 003c 9368 ldr r3, [r2, #8] + 11664 003e 23F02A03 bic r3, r3, #42 + 11665 0042 9360 str r3, [r2, #8] + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11666 .loc 1 603 3 view .LVU3871 + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 11667 .loc 1 603 6 is_stmt 0 view .LVU3872 + 11668 0044 B5F5006F cmp r5, #2048 + 11669 0048 17D0 beq .L612 + 11670 .L604: + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11671 .loc 1 610 3 is_stmt 1 view .LVU3873 + 11672 004a 2268 ldr r2, [r4] + 11673 004c 1368 ldr r3, [r2] + 11674 004e 23F40063 bic r3, r3, #2048 + 11675 0052 2B43 orrs r3, r3, r5 + 11676 0054 1360 str r3, [r2] + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11677 .loc 1 612 3 view .LVU3874 + 11678 0056 2268 ldr r2, [r4] + 11679 0058 1368 ldr r3, [r2] + 11680 005a 43F00103 orr r3, r3, #1 + 11681 005e 1360 str r3, [r2] + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11682 .loc 1 615 3 view .LVU3875 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11683 .loc 1 615 11 is_stmt 0 view .LVU3876 + 11684 0060 2046 mov r0, r4 + 11685 0062 FFF7FEFF bl UART_CheckIdleState + 11686 .LVL1029: + 11687 .L601: + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11688 .loc 1 616 1 view .LVU3877 + 11689 0066 70BD pop {r4, r5, r6, pc} + 11690 .LVL1030: + 11691 .L610: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11692 .loc 1 564 5 is_stmt 1 view .LVU3878 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11693 .loc 1 564 17 is_stmt 0 view .LVU3879 + 11694 0068 80F88030 strb r3, [r0, #128] + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11695 .loc 1 578 5 is_stmt 1 view .LVU3880 + 11696 006c FFF7FEFF bl HAL_UART_MspInit + 11697 .LVL1031: + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 11698 .loc 1 578 5 is_stmt 0 view .LVU3881 + 11699 0070 CFE7 b .L602 + 11700 .L611: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11701 .loc 1 594 5 is_stmt 1 view .LVU3882 + ARM GAS /tmp/cceWHrnJ.s page 368 + + + 11702 0072 2046 mov r0, r4 + 11703 0074 FFF7FEFF bl UART_AdvFeatureConfig + 11704 .LVL1032: + 11705 0078 DAE7 b .L603 + 11706 .L612: + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11707 .loc 1 606 5 view .LVU3883 + 11708 007a 2268 ldr r2, [r4] + 11709 007c 5368 ldr r3, [r2, #4] + 11710 007e 23F07F43 bic r3, r3, #-16777216 + 11711 0082 43EA0663 orr r3, r3, r6, lsl #24 + 11712 0086 5360 str r3, [r2, #4] + 11713 0088 DFE7 b .L604 + 11714 .LVL1033: + 11715 .L605: + 11716 .LCFI53: + 11717 .cfi_def_cfa_offset 0 + 11718 .cfi_restore 4 + 11719 .cfi_restore 5 + 11720 .cfi_restore 6 + 11721 .cfi_restore 14 + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11722 .loc 1 555 12 is_stmt 0 view .LVU3884 + 11723 008a 0120 movs r0, #1 + 11724 .LVL1034: + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11725 .loc 1 616 1 view .LVU3885 + 11726 008c 7047 bx lr + 11727 .cfi_endproc + 11728 .LFE332: + 11730 .section .text.HAL_MultiProcessor_EnableMuteMode,"ax",%progbits + 11731 .align 1 + 11732 .global HAL_MultiProcessor_EnableMuteMode + 11733 .syntax unified + 11734 .thumb + 11735 .thumb_func + 11737 HAL_MultiProcessor_EnableMuteMode: + 11738 .LVL1035: + 11739 .LFB364: +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 11740 .loc 1 2820 1 is_stmt 1 view -0 + 11741 .cfi_startproc + 11742 @ args = 0, pretend = 0, frame = 0 + 11743 @ frame_needed = 0, uses_anonymous_args = 0 +2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 11744 .loc 1 2820 1 is_stmt 0 view .LVU3887 + 11745 0000 08B5 push {r3, lr} + 11746 .LCFI54: + 11747 .cfi_def_cfa_offset 8 + 11748 .cfi_offset 3, -8 + 11749 .cfi_offset 14, -4 +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11750 .loc 1 2821 3 is_stmt 1 view .LVU3888 +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11751 .loc 1 2821 3 view .LVU3889 + 11752 0002 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 11753 0006 012B cmp r3, #1 + ARM GAS /tmp/cceWHrnJ.s page 369 + + + 11754 0008 14D0 beq .L616 +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11755 .loc 1 2821 3 discriminator 2 view .LVU3890 + 11756 000a 0123 movs r3, #1 + 11757 000c 80F88030 strb r3, [r0, #128] +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11758 .loc 1 2821 3 discriminator 2 view .LVU3891 +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11759 .loc 1 2823 3 discriminator 2 view .LVU3892 +2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11760 .loc 1 2823 17 is_stmt 0 discriminator 2 view .LVU3893 + 11761 0010 2423 movs r3, #36 + 11762 0012 C0F88430 str r3, [r0, #132] + 11763 .L615: +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11764 .loc 1 2826 3 is_stmt 1 discriminator 1 view .LVU3894 + 11765 .LBB956: +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11766 .loc 1 2826 3 discriminator 1 view .LVU3895 +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11767 .loc 1 2826 3 discriminator 1 view .LVU3896 +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11768 .loc 1 2826 3 discriminator 1 view .LVU3897 + 11769 0016 0268 ldr r2, [r0] + 11770 .LVL1036: + 11771 .LBB957: + 11772 .LBI957: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 11773 .loc 2 1151 31 discriminator 1 view .LVU3898 + 11774 .LBB958: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 11775 .loc 2 1153 5 discriminator 1 view .LVU3899 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 11776 .loc 2 1155 4 discriminator 1 view .LVU3900 + 11777 .syntax unified + 11778 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 11779 0018 52E8003F ldrex r3, [r2] + 11780 @ 0 "" 2 + 11781 .LVL1037: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 11782 .loc 2 1156 4 discriminator 1 view .LVU3901 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 11783 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3902 + 11784 .thumb + 11785 .syntax unified + 11786 .LBE958: + 11787 .LBE957: +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11788 .loc 1 2826 3 discriminator 1 view .LVU3903 + 11789 001c 43F40053 orr r3, r3, #8192 + 11790 .LVL1038: +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11791 .loc 1 2826 3 is_stmt 1 discriminator 1 view .LVU3904 + 11792 .LBB959: + 11793 .LBI959: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 11794 .loc 2 1202 31 discriminator 1 view .LVU3905 + ARM GAS /tmp/cceWHrnJ.s page 370 + + + 11795 .LBB960: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 11796 .loc 2 1204 4 discriminator 1 view .LVU3906 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 11797 .loc 2 1206 4 discriminator 1 view .LVU3907 + 11798 .syntax unified + 11799 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 11800 0020 42E80031 strex r1, r3, [r2] + 11801 @ 0 "" 2 + 11802 .LVL1039: + 11803 .loc 2 1207 4 discriminator 1 view .LVU3908 + 11804 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3909 + 11805 .thumb + 11806 .syntax unified + 11807 .LBE960: + 11808 .LBE959: +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11809 .loc 1 2826 3 discriminator 1 view .LVU3910 + 11810 0024 0029 cmp r1, #0 + 11811 0026 F6D1 bne .L615 + 11812 .LBE956: +2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11813 .loc 1 2826 3 is_stmt 1 discriminator 2 view .LVU3911 +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11814 .loc 1 2828 3 discriminator 2 view .LVU3912 +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11815 .loc 1 2828 17 is_stmt 0 discriminator 2 view .LVU3913 + 11816 0028 2023 movs r3, #32 + 11817 .LVL1040: +2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11818 .loc 1 2828 17 discriminator 2 view .LVU3914 + 11819 002a C0F88430 str r3, [r0, #132] +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11820 .loc 1 2830 3 is_stmt 1 discriminator 2 view .LVU3915 +2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11821 .loc 1 2830 11 is_stmt 0 discriminator 2 view .LVU3916 + 11822 002e FFF7FEFF bl UART_CheckIdleState + 11823 .LVL1041: + 11824 .L614: +2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11825 .loc 1 2831 1 view .LVU3917 + 11826 0032 08BD pop {r3, pc} + 11827 .LVL1042: + 11828 .L616: +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11829 .loc 1 2821 3 view .LVU3918 + 11830 0034 0220 movs r0, #2 + 11831 .LVL1043: +2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11832 .loc 1 2821 3 view .LVU3919 + 11833 0036 FCE7 b .L614 + 11834 .cfi_endproc + 11835 .LFE364: + 11837 .section .text.HAL_MultiProcessor_DisableMuteMode,"ax",%progbits + 11838 .align 1 + 11839 .global HAL_MultiProcessor_DisableMuteMode + 11840 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 371 + + + 11841 .thumb + 11842 .thumb_func + 11844 HAL_MultiProcessor_DisableMuteMode: + 11845 .LVL1044: + 11846 .LFB365: +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 11847 .loc 1 2840 1 is_stmt 1 view -0 + 11848 .cfi_startproc + 11849 @ args = 0, pretend = 0, frame = 0 + 11850 @ frame_needed = 0, uses_anonymous_args = 0 +2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); + 11851 .loc 1 2840 1 is_stmt 0 view .LVU3921 + 11852 0000 08B5 push {r3, lr} + 11853 .LCFI55: + 11854 .cfi_def_cfa_offset 8 + 11855 .cfi_offset 3, -8 + 11856 .cfi_offset 14, -4 +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11857 .loc 1 2841 3 is_stmt 1 view .LVU3922 +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11858 .loc 1 2841 3 view .LVU3923 + 11859 0002 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 11860 0006 012B cmp r3, #1 + 11861 0008 14D0 beq .L621 +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11862 .loc 1 2841 3 discriminator 2 view .LVU3924 + 11863 000a 0123 movs r3, #1 + 11864 000c 80F88030 strb r3, [r0, #128] +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11865 .loc 1 2841 3 discriminator 2 view .LVU3925 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11866 .loc 1 2843 3 discriminator 2 view .LVU3926 +2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11867 .loc 1 2843 17 is_stmt 0 discriminator 2 view .LVU3927 + 11868 0010 2423 movs r3, #36 + 11869 0012 C0F88430 str r3, [r0, #132] + 11870 .L620: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11871 .loc 1 2846 3 is_stmt 1 discriminator 1 view .LVU3928 + 11872 .LBB961: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11873 .loc 1 2846 3 discriminator 1 view .LVU3929 +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11874 .loc 1 2846 3 discriminator 1 view .LVU3930 +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11875 .loc 1 2846 3 discriminator 1 view .LVU3931 + 11876 0016 0268 ldr r2, [r0] + 11877 .LVL1045: + 11878 .LBB962: + 11879 .LBI962: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 11880 .loc 2 1151 31 discriminator 1 view .LVU3932 + 11881 .LBB963: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 11882 .loc 2 1153 5 discriminator 1 view .LVU3933 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 11883 .loc 2 1155 4 discriminator 1 view .LVU3934 + ARM GAS /tmp/cceWHrnJ.s page 372 + + + 11884 .syntax unified + 11885 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 11886 0018 52E8003F ldrex r3, [r2] + 11887 @ 0 "" 2 + 11888 .LVL1046: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 11889 .loc 2 1156 4 discriminator 1 view .LVU3935 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 11890 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3936 + 11891 .thumb + 11892 .syntax unified + 11893 .LBE963: + 11894 .LBE962: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11895 .loc 1 2846 3 discriminator 1 view .LVU3937 + 11896 001c 23F40053 bic r3, r3, #8192 + 11897 .LVL1047: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11898 .loc 1 2846 3 is_stmt 1 discriminator 1 view .LVU3938 + 11899 .LBB964: + 11900 .LBI964: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 11901 .loc 2 1202 31 discriminator 1 view .LVU3939 + 11902 .LBB965: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 11903 .loc 2 1204 4 discriminator 1 view .LVU3940 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 11904 .loc 2 1206 4 discriminator 1 view .LVU3941 + 11905 .syntax unified + 11906 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 11907 0020 42E80031 strex r1, r3, [r2] + 11908 @ 0 "" 2 + 11909 .LVL1048: + 11910 .loc 2 1207 4 discriminator 1 view .LVU3942 + 11911 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3943 + 11912 .thumb + 11913 .syntax unified + 11914 .LBE965: + 11915 .LBE964: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11916 .loc 1 2846 3 discriminator 1 view .LVU3944 + 11917 0024 0029 cmp r1, #0 + 11918 0026 F6D1 bne .L620 + 11919 .LBE961: +2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11920 .loc 1 2846 3 is_stmt 1 discriminator 2 view .LVU3945 +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11921 .loc 1 2848 3 discriminator 2 view .LVU3946 +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11922 .loc 1 2848 17 is_stmt 0 discriminator 2 view .LVU3947 + 11923 0028 2023 movs r3, #32 + 11924 .LVL1049: +2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11925 .loc 1 2848 17 discriminator 2 view .LVU3948 + 11926 002a C0F88430 str r3, [r0, #132] +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11927 .loc 1 2850 3 is_stmt 1 discriminator 2 view .LVU3949 + ARM GAS /tmp/cceWHrnJ.s page 373 + + +2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 11928 .loc 1 2850 11 is_stmt 0 discriminator 2 view .LVU3950 + 11929 002e FFF7FEFF bl UART_CheckIdleState + 11930 .LVL1050: + 11931 .L619: +2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11932 .loc 1 2851 1 view .LVU3951 + 11933 0032 08BD pop {r3, pc} + 11934 .LVL1051: + 11935 .L621: +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11936 .loc 1 2841 3 view .LVU3952 + 11937 0034 0220 movs r0, #2 + 11938 .LVL1052: +2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11939 .loc 1 2841 3 view .LVU3953 + 11940 0036 FCE7 b .L619 + 11941 .cfi_endproc + 11942 .LFE365: + 11944 .section .text.UART_Start_Receive_IT,"ax",%progbits + 11945 .align 1 + 11946 .global UART_Start_Receive_IT + 11947 .syntax unified + 11948 .thumb + 11949 .thumb_func + 11951 UART_Start_Receive_IT: + 11952 .LVL1053: + 11953 .LFB376: +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; + 11954 .loc 1 3431 1 is_stmt 1 view -0 + 11955 .cfi_startproc + 11956 @ args = 0, pretend = 0, frame = 0 + 11957 @ frame_needed = 0, uses_anonymous_args = 0 + 11958 @ link register save eliminated. +3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; + 11959 .loc 1 3431 1 is_stmt 0 view .LVU3955 + 11960 0000 10B4 push {r4} + 11961 .LCFI56: + 11962 .cfi_def_cfa_offset 4 + 11963 .cfi_offset 4, -4 +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; + 11964 .loc 1 3432 3 is_stmt 1 view .LVU3956 +3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; + 11965 .loc 1 3432 22 is_stmt 0 view .LVU3957 + 11966 0002 8165 str r1, [r0, #88] +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; + 11967 .loc 1 3433 3 is_stmt 1 view .LVU3958 +3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; + 11968 .loc 1 3433 22 is_stmt 0 view .LVU3959 + 11969 0004 A0F85C20 strh r2, [r0, #92] @ movhi +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; + 11970 .loc 1 3434 3 is_stmt 1 view .LVU3960 +3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; + 11971 .loc 1 3434 22 is_stmt 0 view .LVU3961 + 11972 0008 A0F85E20 strh r2, [r0, #94] @ movhi +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11973 .loc 1 3435 3 is_stmt 1 view .LVU3962 + ARM GAS /tmp/cceWHrnJ.s page 374 + + +3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11974 .loc 1 3435 22 is_stmt 0 view .LVU3963 + 11975 000c 0023 movs r3, #0 + 11976 000e 0367 str r3, [r0, #112] +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11977 .loc 1 3438 3 is_stmt 1 view .LVU3964 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11978 .loc 1 3438 3 view .LVU3965 + 11979 0010 8368 ldr r3, [r0, #8] + 11980 0012 B3F5805F cmp r3, #4096 + 11981 0016 06D0 beq .L644 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11982 .loc 1 3438 3 discriminator 2 view .LVU3966 + 11983 0018 A3B9 cbnz r3, .L627 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11984 .loc 1 3438 3 discriminator 5 view .LVU3967 + 11985 001a 0369 ldr r3, [r0, #16] + 11986 001c 73B9 cbnz r3, .L628 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11987 .loc 1 3438 3 discriminator 7 view .LVU3968 + 11988 001e FF23 movs r3, #255 + 11989 0020 A0F86030 strh r3, [r0, #96] @ movhi + 11990 0024 14E0 b .L626 + 11991 .L644: +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11992 .loc 1 3438 3 discriminator 1 view .LVU3969 + 11993 0026 0369 ldr r3, [r0, #16] + 11994 0028 23B9 cbnz r3, .L625 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 11995 .loc 1 3438 3 discriminator 3 view .LVU3970 + 11996 002a 40F2FF13 movw r3, #511 + 11997 002e A0F86030 strh r3, [r0, #96] @ movhi + 11998 0032 0DE0 b .L626 + 11999 .L625: +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12000 .loc 1 3438 3 discriminator 4 view .LVU3971 + 12001 0034 FF23 movs r3, #255 + 12002 0036 A0F86030 strh r3, [r0, #96] @ movhi + 12003 003a 09E0 b .L626 + 12004 .L628: +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12005 .loc 1 3438 3 discriminator 8 view .LVU3972 + 12006 003c 7F23 movs r3, #127 + 12007 003e A0F86030 strh r3, [r0, #96] @ movhi + 12008 0042 05E0 b .L626 + 12009 .L627: +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12010 .loc 1 3438 3 discriminator 6 view .LVU3973 + 12011 0044 B3F1805F cmp r3, #268435456 + 12012 0048 31D0 beq .L645 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12013 .loc 1 3438 3 discriminator 10 view .LVU3974 + 12014 004a 0023 movs r3, #0 + 12015 004c A0F86030 strh r3, [r0, #96] @ movhi + 12016 .L626: +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12017 .loc 1 3438 3 discriminator 13 view .LVU3975 + ARM GAS /tmp/cceWHrnJ.s page 375 + + +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 12018 .loc 1 3440 3 discriminator 13 view .LVU3976 +3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 12019 .loc 1 3440 20 is_stmt 0 discriminator 13 view .LVU3977 + 12020 0050 0023 movs r3, #0 + 12021 0052 C0F88C30 str r3, [r0, #140] +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12022 .loc 1 3441 3 is_stmt 1 discriminator 13 view .LVU3978 +3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12023 .loc 1 3441 18 is_stmt 0 discriminator 13 view .LVU3979 + 12024 0056 2223 movs r3, #34 + 12025 0058 C0F88830 str r3, [r0, #136] + 12026 .LVL1054: + 12027 .L631: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12028 .loc 1 3444 3 is_stmt 1 discriminator 1 view .LVU3980 + 12029 .LBB966: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12030 .loc 1 3444 3 discriminator 1 view .LVU3981 +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12031 .loc 1 3444 3 discriminator 1 view .LVU3982 +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12032 .loc 1 3444 3 discriminator 1 view .LVU3983 + 12033 005c 0168 ldr r1, [r0] + 12034 .LVL1055: + 12035 .LBB967: + 12036 .LBI967: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12037 .loc 2 1151 31 discriminator 1 view .LVU3984 + 12038 .LBB968: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12039 .loc 2 1153 5 discriminator 1 view .LVU3985 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12040 .loc 2 1155 4 discriminator 1 view .LVU3986 + 12041 005e 01F10803 add r3, r1, #8 + 12042 .LVL1056: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12043 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU3987 + 12044 .syntax unified + 12045 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12046 0062 53E8003F ldrex r3, [r3] + 12047 @ 0 "" 2 + 12048 .LVL1057: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12049 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU3988 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12050 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU3989 + 12051 .thumb + 12052 .syntax unified + 12053 .LBE968: + 12054 .LBE967: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12055 .loc 1 3444 3 discriminator 1 view .LVU3990 + 12056 0066 43F00103 orr r3, r3, #1 + 12057 .LVL1058: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12058 .loc 1 3444 3 is_stmt 1 discriminator 1 view .LVU3991 + ARM GAS /tmp/cceWHrnJ.s page 376 + + + 12059 .LBB969: + 12060 .LBI969: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12061 .loc 2 1202 31 discriminator 1 view .LVU3992 + 12062 .LBB970: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12063 .loc 2 1204 4 discriminator 1 view .LVU3993 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12064 .loc 2 1206 4 discriminator 1 view .LVU3994 + 12065 006a 0831 adds r1, r1, #8 + 12066 .LVL1059: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12067 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU3995 + 12068 .syntax unified + 12069 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12070 006c 41E80034 strex r4, r3, [r1] + 12071 @ 0 "" 2 + 12072 .LVL1060: + 12073 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU3996 + 12074 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU3997 + 12075 .thumb + 12076 .syntax unified + 12077 .LBE970: + 12078 .LBE969: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12079 .loc 1 3444 3 discriminator 1 view .LVU3998 + 12080 0070 002C cmp r4, #0 + 12081 0072 F3D1 bne .L631 + 12082 .LBE966: +3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12083 .loc 1 3444 3 is_stmt 1 discriminator 2 view .LVU3999 +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12084 .loc 1 3447 3 discriminator 2 view .LVU4000 +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12085 .loc 1 3447 13 is_stmt 0 discriminator 2 view .LVU4001 + 12086 0074 436E ldr r3, [r0, #100] + 12087 .LVL1061: +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12088 .loc 1 3447 6 discriminator 2 view .LVU4002 + 12089 0076 B3F1005F cmp r3, #536870912 + 12090 007a 22D0 beq .L646 + 12091 .L632: +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12092 .loc 1 3471 5 is_stmt 1 view .LVU4003 +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12093 .loc 1 3471 21 is_stmt 0 view .LVU4004 + 12094 007c 8368 ldr r3, [r0, #8] +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12095 .loc 1 3471 8 view .LVU4005 + 12096 007e B3F5805F cmp r3, #4096 + 12097 0082 49D0 beq .L647 + 12098 .L639: +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12099 .loc 1 3477 7 is_stmt 1 view .LVU4006 +3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12100 .loc 1 3477 20 is_stmt 0 view .LVU4007 + 12101 0084 2C4B ldr r3, .L649 + ARM GAS /tmp/cceWHrnJ.s page 377 + + + 12102 0086 0367 str r3, [r0, #112] + 12103 .L640: +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12104 .loc 1 3480 5 is_stmt 1 view .LVU4008 +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12105 .loc 1 3480 5 view .LVU4009 + 12106 0088 0023 movs r3, #0 + 12107 008a 80F88030 strb r3, [r0, #128] +3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12108 .loc 1 3480 5 view .LVU4010 +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12109 .loc 1 3483 5 view .LVU4011 +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12110 .loc 1 3483 20 is_stmt 0 view .LVU4012 + 12111 008e 0369 ldr r3, [r0, #16] +3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12112 .loc 1 3483 8 view .LVU4013 + 12113 0090 002B cmp r3, #0 + 12114 0092 47D0 beq .L641 + 12115 .LVL1062: + 12116 .L642: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12117 .loc 1 3485 7 is_stmt 1 discriminator 1 view .LVU4014 + 12118 .LBB971: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12119 .loc 1 3485 7 discriminator 1 view .LVU4015 +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12120 .loc 1 3485 7 discriminator 1 view .LVU4016 +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12121 .loc 1 3485 7 discriminator 1 view .LVU4017 + 12122 0094 0268 ldr r2, [r0] + 12123 .LVL1063: + 12124 .LBB972: + 12125 .LBI972: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12126 .loc 2 1151 31 discriminator 1 view .LVU4018 + 12127 .LBB973: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12128 .loc 2 1153 5 discriminator 1 view .LVU4019 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12129 .loc 2 1155 4 discriminator 1 view .LVU4020 + 12130 .syntax unified + 12131 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12132 0096 52E8003F ldrex r3, [r2] + 12133 @ 0 "" 2 + 12134 .LVL1064: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12135 .loc 2 1156 4 discriminator 1 view .LVU4021 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12136 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4022 + 12137 .thumb + 12138 .syntax unified + 12139 .LBE973: + 12140 .LBE972: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12141 .loc 1 3485 7 discriminator 1 view .LVU4023 + 12142 009a 43F49073 orr r3, r3, #288 + ARM GAS /tmp/cceWHrnJ.s page 378 + + + 12143 .LVL1065: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12144 .loc 1 3485 7 is_stmt 1 discriminator 1 view .LVU4024 + 12145 .LBB974: + 12146 .LBI974: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12147 .loc 2 1202 31 discriminator 1 view .LVU4025 + 12148 .LBB975: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12149 .loc 2 1204 4 discriminator 1 view .LVU4026 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12150 .loc 2 1206 4 discriminator 1 view .LVU4027 + 12151 .syntax unified + 12152 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12153 009e 42E80031 strex r1, r3, [r2] + 12154 @ 0 "" 2 + 12155 .LVL1066: + 12156 .loc 2 1207 4 discriminator 1 view .LVU4028 + 12157 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4029 + 12158 .thumb + 12159 .syntax unified + 12160 .LBE975: + 12161 .LBE974: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12162 .loc 1 3485 7 discriminator 1 view .LVU4030 + 12163 00a2 0029 cmp r1, #0 + 12164 00a4 F6D1 bne .L642 + 12165 .LVL1067: + 12166 .L638: +3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12167 .loc 1 3485 7 discriminator 1 view .LVU4031 + 12168 .LBE971: +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12169 .loc 1 3489 7 is_stmt 1 discriminator 2 view .LVU4032 +3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12170 .loc 1 3492 3 discriminator 2 view .LVU4033 +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12171 .loc 1 3493 1 is_stmt 0 discriminator 2 view .LVU4034 + 12172 00a6 0020 movs r0, #0 + 12173 .LVL1068: +3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12174 .loc 1 3493 1 discriminator 2 view .LVU4035 + 12175 00a8 5DF8044B ldr r4, [sp], #4 + 12176 .LCFI57: + 12177 .cfi_remember_state + 12178 .cfi_restore 4 + 12179 .cfi_def_cfa_offset 0 + 12180 00ac 7047 bx lr + 12181 .LVL1069: + 12182 .L645: + 12183 .LCFI58: + 12184 .cfi_restore_state +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12185 .loc 1 3438 3 is_stmt 1 discriminator 9 view .LVU4036 + 12186 00ae 0369 ldr r3, [r0, #16] + 12187 00b0 1BB9 cbnz r3, .L630 +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 379 + + + 12188 .loc 1 3438 3 discriminator 11 view .LVU4037 + 12189 00b2 7F23 movs r3, #127 + 12190 00b4 A0F86030 strh r3, [r0, #96] @ movhi + 12191 00b8 CAE7 b .L626 + 12192 .L630: +3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12193 .loc 1 3438 3 discriminator 12 view .LVU4038 + 12194 00ba 3F23 movs r3, #63 + 12195 00bc A0F86030 strh r3, [r0, #96] @ movhi + 12196 00c0 C6E7 b .L626 + 12197 .LVL1070: + 12198 .L646: +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12199 .loc 1 3447 66 is_stmt 0 discriminator 1 view .LVU4039 + 12200 00c2 B0F86830 ldrh r3, [r0, #104] +3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12201 .loc 1 3447 49 discriminator 1 view .LVU4040 + 12202 00c6 9342 cmp r3, r2 + 12203 00c8 D8D8 bhi .L632 +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12204 .loc 1 3450 5 is_stmt 1 view .LVU4041 +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12205 .loc 1 3450 21 is_stmt 0 view .LVU4042 + 12206 00ca 8368 ldr r3, [r0, #8] +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12207 .loc 1 3450 8 view .LVU4043 + 12208 00cc B3F5805F cmp r3, #4096 + 12209 00d0 1CD0 beq .L648 + 12210 .L633: +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12211 .loc 1 3456 7 is_stmt 1 view .LVU4044 +3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12212 .loc 1 3456 20 is_stmt 0 view .LVU4045 + 12213 00d2 1A4B ldr r3, .L649+4 + 12214 00d4 0367 str r3, [r0, #112] + 12215 .L634: +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12216 .loc 1 3459 5 is_stmt 1 view .LVU4046 +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12217 .loc 1 3459 5 view .LVU4047 + 12218 00d6 0023 movs r3, #0 + 12219 00d8 80F88030 strb r3, [r0, #128] +3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12220 .loc 1 3459 5 view .LVU4048 +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12221 .loc 1 3462 5 view .LVU4049 +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12222 .loc 1 3462 20 is_stmt 0 view .LVU4050 + 12223 00dc 0369 ldr r3, [r0, #16] +3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12224 .loc 1 3462 8 view .LVU4051 + 12225 00de 43B1 cbz r3, .L637 + 12226 .LVL1071: + 12227 .L636: +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12228 .loc 1 3464 7 is_stmt 1 discriminator 1 view .LVU4052 + 12229 .LBB976: + ARM GAS /tmp/cceWHrnJ.s page 380 + + +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12230 .loc 1 3464 7 discriminator 1 view .LVU4053 +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12231 .loc 1 3464 7 discriminator 1 view .LVU4054 +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12232 .loc 1 3464 7 discriminator 1 view .LVU4055 + 12233 00e0 0268 ldr r2, [r0] + 12234 .LVL1072: + 12235 .LBB977: + 12236 .LBI977: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12237 .loc 2 1151 31 discriminator 1 view .LVU4056 + 12238 .LBB978: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12239 .loc 2 1153 5 discriminator 1 view .LVU4057 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12240 .loc 2 1155 4 discriminator 1 view .LVU4058 + 12241 .syntax unified + 12242 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12243 00e2 52E8003F ldrex r3, [r2] + 12244 @ 0 "" 2 + 12245 .LVL1073: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12246 .loc 2 1156 4 discriminator 1 view .LVU4059 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12247 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4060 + 12248 .thumb + 12249 .syntax unified + 12250 .LBE978: + 12251 .LBE977: +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12252 .loc 1 3464 7 discriminator 1 view .LVU4061 + 12253 00e6 43F48073 orr r3, r3, #256 + 12254 .LVL1074: +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12255 .loc 1 3464 7 is_stmt 1 discriminator 1 view .LVU4062 + 12256 .LBB979: + 12257 .LBI979: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12258 .loc 2 1202 31 discriminator 1 view .LVU4063 + 12259 .LBB980: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12260 .loc 2 1204 4 discriminator 1 view .LVU4064 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12261 .loc 2 1206 4 discriminator 1 view .LVU4065 + 12262 .syntax unified + 12263 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12264 00ea 42E80031 strex r1, r3, [r2] + 12265 @ 0 "" 2 + 12266 .LVL1075: + 12267 .loc 2 1207 4 discriminator 1 view .LVU4066 + 12268 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4067 + 12269 .thumb + 12270 .syntax unified + 12271 .LBE980: + 12272 .LBE979: +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 381 + + + 12273 .loc 1 3464 7 discriminator 1 view .LVU4068 + 12274 00ee 0029 cmp r1, #0 + 12275 00f0 F6D1 bne .L636 + 12276 .LVL1076: + 12277 .L637: +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12278 .loc 1 3464 7 discriminator 1 view .LVU4069 + 12279 .LBE976: +3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12280 .loc 1 3464 7 is_stmt 1 discriminator 1 view .LVU4070 +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12281 .loc 1 3466 5 discriminator 1 view .LVU4071 + 12282 .LBB981: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12283 .loc 1 3466 5 discriminator 1 view .LVU4072 +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12284 .loc 1 3466 5 discriminator 1 view .LVU4073 +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12285 .loc 1 3466 5 discriminator 1 view .LVU4074 + 12286 00f2 0268 ldr r2, [r0] + 12287 .LVL1077: + 12288 .LBB982: + 12289 .LBI982: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12290 .loc 2 1151 31 discriminator 1 view .LVU4075 + 12291 .LBB983: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12292 .loc 2 1153 5 discriminator 1 view .LVU4076 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12293 .loc 2 1155 4 discriminator 1 view .LVU4077 + 12294 00f4 02F10803 add r3, r2, #8 + 12295 .LVL1078: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12296 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU4078 + 12297 .syntax unified + 12298 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12299 00f8 53E8003F ldrex r3, [r3] + 12300 @ 0 "" 2 + 12301 .LVL1079: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12302 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU4079 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12303 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4080 + 12304 .thumb + 12305 .syntax unified + 12306 .LBE983: + 12307 .LBE982: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12308 .loc 1 3466 5 discriminator 1 view .LVU4081 + 12309 00fc 43F08053 orr r3, r3, #268435456 + 12310 .LVL1080: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12311 .loc 1 3466 5 is_stmt 1 discriminator 1 view .LVU4082 + 12312 .LBB984: + 12313 .LBI984: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12314 .loc 2 1202 31 discriminator 1 view .LVU4083 + ARM GAS /tmp/cceWHrnJ.s page 382 + + + 12315 .LBB985: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12316 .loc 2 1204 4 discriminator 1 view .LVU4084 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12317 .loc 2 1206 4 discriminator 1 view .LVU4085 + 12318 0100 0832 adds r2, r2, #8 + 12319 .LVL1081: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12320 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU4086 + 12321 .syntax unified + 12322 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12323 0102 42E80031 strex r1, r3, [r2] + 12324 @ 0 "" 2 + 12325 .LVL1082: + 12326 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU4087 + 12327 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4088 + 12328 .thumb + 12329 .syntax unified + 12330 .LBE985: + 12331 .LBE984: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12332 .loc 1 3466 5 discriminator 1 view .LVU4089 + 12333 0106 0029 cmp r1, #0 + 12334 0108 F3D1 bne .L637 + 12335 010a CCE7 b .L638 + 12336 .LVL1083: + 12337 .L648: +3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12338 .loc 1 3466 5 discriminator 1 view .LVU4090 + 12339 .LBE981: +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12340 .loc 1 3450 71 discriminator 1 view .LVU4091 + 12341 010c 0369 ldr r3, [r0, #16] +3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12342 .loc 1 3450 56 discriminator 1 view .LVU4092 + 12343 010e 002B cmp r3, #0 + 12344 0110 DFD1 bne .L633 +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12345 .loc 1 3452 7 is_stmt 1 view .LVU4093 +3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12346 .loc 1 3452 20 is_stmt 0 view .LVU4094 + 12347 0112 0B4B ldr r3, .L649+8 + 12348 0114 0367 str r3, [r0, #112] + 12349 0116 DEE7 b .L634 + 12350 .L647: +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12351 .loc 1 3471 71 discriminator 1 view .LVU4095 + 12352 0118 0369 ldr r3, [r0, #16] +3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12353 .loc 1 3471 56 discriminator 1 view .LVU4096 + 12354 011a 002B cmp r3, #0 + 12355 011c B2D1 bne .L639 +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12356 .loc 1 3473 7 is_stmt 1 view .LVU4097 +3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12357 .loc 1 3473 20 is_stmt 0 view .LVU4098 + 12358 011e 094B ldr r3, .L649+12 + ARM GAS /tmp/cceWHrnJ.s page 383 + + + 12359 0120 0367 str r3, [r0, #112] + 12360 0122 B1E7 b .L640 + 12361 .LVL1084: + 12362 .L641: +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12363 .loc 1 3489 7 is_stmt 1 discriminator 1 view .LVU4099 + 12364 .LBB986: +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12365 .loc 1 3489 7 discriminator 1 view .LVU4100 +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12366 .loc 1 3489 7 discriminator 1 view .LVU4101 +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12367 .loc 1 3489 7 discriminator 1 view .LVU4102 + 12368 0124 0268 ldr r2, [r0] + 12369 .LVL1085: + 12370 .LBB987: + 12371 .LBI987: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12372 .loc 2 1151 31 discriminator 1 view .LVU4103 + 12373 .LBB988: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12374 .loc 2 1153 5 discriminator 1 view .LVU4104 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12375 .loc 2 1155 4 discriminator 1 view .LVU4105 + 12376 .syntax unified + 12377 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12378 0126 52E8003F ldrex r3, [r2] + 12379 @ 0 "" 2 + 12380 .LVL1086: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12381 .loc 2 1156 4 discriminator 1 view .LVU4106 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12382 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4107 + 12383 .thumb + 12384 .syntax unified + 12385 .LBE988: + 12386 .LBE987: +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12387 .loc 1 3489 7 discriminator 1 view .LVU4108 + 12388 012a 43F02003 orr r3, r3, #32 + 12389 .LVL1087: +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12390 .loc 1 3489 7 is_stmt 1 discriminator 1 view .LVU4109 + 12391 .LBB989: + 12392 .LBI989: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12393 .loc 2 1202 31 discriminator 1 view .LVU4110 + 12394 .LBB990: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12395 .loc 2 1204 4 discriminator 1 view .LVU4111 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12396 .loc 2 1206 4 discriminator 1 view .LVU4112 + 12397 .syntax unified + 12398 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12399 012e 42E80031 strex r1, r3, [r2] + 12400 @ 0 "" 2 + 12401 .LVL1088: + ARM GAS /tmp/cceWHrnJ.s page 384 + + + 12402 .loc 2 1207 4 discriminator 1 view .LVU4113 + 12403 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4114 + 12404 .thumb + 12405 .syntax unified + 12406 .LBE990: + 12407 .LBE989: +3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12408 .loc 1 3489 7 discriminator 1 view .LVU4115 + 12409 0132 0029 cmp r1, #0 + 12410 0134 F6D1 bne .L641 + 12411 0136 B6E7 b .L638 + 12412 .L650: + 12413 .align 2 + 12414 .L649: + 12415 0138 00000000 .word UART_RxISR_8BIT + 12416 013c 00000000 .word UART_RxISR_8BIT_FIFOEN + 12417 0140 00000000 .word UART_RxISR_16BIT_FIFOEN + 12418 0144 00000000 .word UART_RxISR_16BIT + 12419 .LBE986: + 12420 .cfi_endproc + 12421 .LFE376: + 12423 .section .text.HAL_UART_Receive_IT,"ax",%progbits + 12424 .align 1 + 12425 .global HAL_UART_Receive_IT + 12426 .syntax unified + 12427 .thumb + 12428 .thumb_func + 12430 HAL_UART_Receive_IT: + 12431 .LVL1089: + 12432 .LFB339: +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ + 12433 .loc 1 1371 1 is_stmt 1 view -0 + 12434 .cfi_startproc + 12435 @ args = 0, pretend = 0, frame = 0 + 12436 @ frame_needed = 0, uses_anonymous_args = 0 +1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ + 12437 .loc 1 1371 1 is_stmt 0 view .LVU4117 + 12438 0000 38B5 push {r3, r4, r5, lr} + 12439 .LCFI59: + 12440 .cfi_def_cfa_offset 16 + 12441 .cfi_offset 3, -16 + 12442 .cfi_offset 4, -12 + 12443 .cfi_offset 5, -8 + 12444 .cfi_offset 14, -4 +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12445 .loc 1 1373 3 is_stmt 1 view .LVU4118 +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12446 .loc 1 1373 12 is_stmt 0 view .LVU4119 + 12447 0002 D0F88830 ldr r3, [r0, #136] +1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12448 .loc 1 1373 6 view .LVU4120 + 12449 0006 202B cmp r3, #32 + 12450 0008 1ED1 bne .L655 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12451 .loc 1 1375 5 is_stmt 1 view .LVU4121 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12452 .loc 1 1375 8 is_stmt 0 view .LVU4122 + ARM GAS /tmp/cceWHrnJ.s page 385 + + + 12453 000a F9B1 cbz r1, .L656 +1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12454 .loc 1 1375 25 discriminator 1 view .LVU4123 + 12455 000c 02B3 cbz r2, .L657 +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12456 .loc 1 1380 5 is_stmt 1 view .LVU4124 +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12457 .loc 1 1380 5 view .LVU4125 + 12458 000e 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 12459 0012 012B cmp r3, #1 + 12460 0014 1ED0 beq .L658 +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12461 .loc 1 1380 5 discriminator 2 view .LVU4126 + 12462 0016 0123 movs r3, #1 + 12463 0018 80F88030 strb r3, [r0, #128] +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12464 .loc 1 1380 5 discriminator 2 view .LVU4127 +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12465 .loc 1 1383 5 discriminator 2 view .LVU4128 +1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12466 .loc 1 1383 26 is_stmt 0 discriminator 2 view .LVU4129 + 12467 001c 0023 movs r3, #0 + 12468 001e C366 str r3, [r0, #108] +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12469 .loc 1 1385 5 is_stmt 1 discriminator 2 view .LVU4130 +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12470 .loc 1 1385 11 is_stmt 0 discriminator 2 view .LVU4131 + 12471 0020 0368 ldr r3, [r0] +1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12472 .loc 1 1385 8 discriminator 2 view .LVU4132 + 12473 0022 0D4C ldr r4, .L660 + 12474 0024 A342 cmp r3, r4 + 12475 0026 0CD0 beq .L653 +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12476 .loc 1 1388 7 is_stmt 1 view .LVU4133 +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12477 .loc 1 1388 11 is_stmt 0 view .LVU4134 + 12478 0028 5B68 ldr r3, [r3, #4] +1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12479 .loc 1 1388 10 view .LVU4135 + 12480 002a 13F4000F tst r3, #8388608 + 12481 002e 08D0 beq .L653 + 12482 .L654: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12483 .loc 1 1391 9 is_stmt 1 discriminator 1 view .LVU4136 + 12484 .LBB991: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12485 .loc 1 1391 9 discriminator 1 view .LVU4137 +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12486 .loc 1 1391 9 discriminator 1 view .LVU4138 +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12487 .loc 1 1391 9 discriminator 1 view .LVU4139 + 12488 0030 0468 ldr r4, [r0] + 12489 .LVL1090: + 12490 .LBB992: + 12491 .LBI992: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 386 + + + 12492 .loc 2 1151 31 discriminator 1 view .LVU4140 + 12493 .LBB993: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12494 .loc 2 1153 5 discriminator 1 view .LVU4141 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12495 .loc 2 1155 4 discriminator 1 view .LVU4142 + 12496 .syntax unified + 12497 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12498 0032 54E8003F ldrex r3, [r4] + 12499 @ 0 "" 2 + 12500 .LVL1091: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12501 .loc 2 1156 4 discriminator 1 view .LVU4143 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12502 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4144 + 12503 .thumb + 12504 .syntax unified + 12505 .LBE993: + 12506 .LBE992: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12507 .loc 1 1391 9 discriminator 1 view .LVU4145 + 12508 0036 43F08063 orr r3, r3, #67108864 + 12509 .LVL1092: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12510 .loc 1 1391 9 is_stmt 1 discriminator 1 view .LVU4146 + 12511 .LBB994: + 12512 .LBI994: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12513 .loc 2 1202 31 discriminator 1 view .LVU4147 + 12514 .LBB995: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12515 .loc 2 1204 4 discriminator 1 view .LVU4148 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12516 .loc 2 1206 4 discriminator 1 view .LVU4149 + 12517 .syntax unified + 12518 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12519 003a 44E80035 strex r5, r3, [r4] + 12520 @ 0 "" 2 + 12521 .LVL1093: + 12522 .loc 2 1207 4 discriminator 1 view .LVU4150 + 12523 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4151 + 12524 .thumb + 12525 .syntax unified + 12526 .LBE995: + 12527 .LBE994: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12528 .loc 1 1391 9 discriminator 1 view .LVU4152 + 12529 003e 002D cmp r5, #0 + 12530 0040 F6D1 bne .L654 + 12531 .LVL1094: + 12532 .L653: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12533 .loc 1 1391 9 discriminator 1 view .LVU4153 + 12534 .LBE991: +1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12535 .loc 1 1391 9 is_stmt 1 discriminator 2 view .LVU4154 +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + ARM GAS /tmp/cceWHrnJ.s page 387 + + + 12536 .loc 1 1395 5 discriminator 2 view .LVU4155 +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12537 .loc 1 1395 13 is_stmt 0 discriminator 2 view .LVU4156 + 12538 0042 FFF7FEFF bl UART_Start_Receive_IT + 12539 .LVL1095: +1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12540 .loc 1 1395 13 discriminator 2 view .LVU4157 + 12541 0046 00E0 b .L652 + 12542 .LVL1096: + 12543 .L655: +1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12544 .loc 1 1399 12 view .LVU4158 + 12545 0048 0220 movs r0, #2 + 12546 .LVL1097: + 12547 .L652: +1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12548 .loc 1 1401 1 view .LVU4159 + 12549 004a 38BD pop {r3, r4, r5, pc} + 12550 .LVL1098: + 12551 .L656: +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12552 .loc 1 1377 14 view .LVU4160 + 12553 004c 0120 movs r0, #1 + 12554 .LVL1099: +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12555 .loc 1 1377 14 view .LVU4161 + 12556 004e FCE7 b .L652 + 12557 .LVL1100: + 12558 .L657: +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12559 .loc 1 1377 14 view .LVU4162 + 12560 0050 0120 movs r0, #1 + 12561 .LVL1101: +1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12562 .loc 1 1377 14 view .LVU4163 + 12563 0052 FAE7 b .L652 + 12564 .LVL1102: + 12565 .L658: +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12566 .loc 1 1380 5 view .LVU4164 + 12567 0054 0220 movs r0, #2 + 12568 .LVL1103: +1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12569 .loc 1 1380 5 view .LVU4165 + 12570 0056 F8E7 b .L652 + 12571 .L661: + 12572 .align 2 + 12573 .L660: + 12574 0058 00800040 .word 1073774592 + 12575 .cfi_endproc + 12576 .LFE339: + 12578 .section .text.UART_Start_Receive_DMA,"ax",%progbits + 12579 .align 1 + 12580 .global UART_Start_Receive_DMA + 12581 .syntax unified + 12582 .thumb + 12583 .thumb_func + ARM GAS /tmp/cceWHrnJ.s page 388 + + + 12585 UART_Start_Receive_DMA: + 12586 .LVL1104: + 12587 .LFB377: +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; + 12588 .loc 1 3507 1 is_stmt 1 view -0 + 12589 .cfi_startproc + 12590 @ args = 0, pretend = 0, frame = 0 + 12591 @ frame_needed = 0, uses_anonymous_args = 0 +3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; + 12592 .loc 1 3507 1 is_stmt 0 view .LVU4167 + 12593 0000 10B5 push {r4, lr} + 12594 .LCFI60: + 12595 .cfi_def_cfa_offset 8 + 12596 .cfi_offset 4, -8 + 12597 .cfi_offset 14, -4 + 12598 0002 0446 mov r4, r0 + 12599 0004 1346 mov r3, r2 +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; + 12600 .loc 1 3508 3 is_stmt 1 view .LVU4168 +3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; + 12601 .loc 1 3508 21 is_stmt 0 view .LVU4169 + 12602 0006 8165 str r1, [r0, #88] +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12603 .loc 1 3509 3 is_stmt 1 view .LVU4170 +3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12604 .loc 1 3509 21 is_stmt 0 view .LVU4171 + 12605 0008 A0F85C20 strh r2, [r0, #92] @ movhi +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 12606 .loc 1 3511 3 is_stmt 1 view .LVU4172 +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 12607 .loc 1 3511 20 is_stmt 0 view .LVU4173 + 12608 000c 0022 movs r2, #0 + 12609 .LVL1105: +3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 12610 .loc 1 3511 20 view .LVU4174 + 12611 000e C0F88C20 str r2, [r0, #140] +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12612 .loc 1 3512 3 is_stmt 1 view .LVU4175 +3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12613 .loc 1 3512 18 is_stmt 0 view .LVU4176 + 12614 0012 2222 movs r2, #34 + 12615 0014 C0F88820 str r2, [r0, #136] +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12616 .loc 1 3514 3 is_stmt 1 view .LVU4177 +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12617 .loc 1 3514 12 is_stmt 0 view .LVU4178 + 12618 0018 C26F ldr r2, [r0, #124] +3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12619 .loc 1 3514 6 view .LVU4179 + 12620 001a 8AB1 cbz r2, .L663 +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12621 .loc 1 3517 5 is_stmt 1 view .LVU4180 +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12622 .loc 1 3517 37 is_stmt 0 view .LVU4181 + 12623 001c 2249 ldr r1, .L671 + 12624 .LVL1106: +3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + ARM GAS /tmp/cceWHrnJ.s page 389 + + + 12625 .loc 1 3517 37 view .LVU4182 + 12626 001e D162 str r1, [r2, #44] + 12627 .LVL1107: +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12628 .loc 1 3520 5 is_stmt 1 view .LVU4183 +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12629 .loc 1 3520 10 is_stmt 0 view .LVU4184 + 12630 0020 C26F ldr r2, [r0, #124] +3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12631 .loc 1 3520 41 view .LVU4185 + 12632 0022 2249 ldr r1, .L671+4 + 12633 0024 1163 str r1, [r2, #48] +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12634 .loc 1 3523 5 is_stmt 1 view .LVU4186 +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12635 .loc 1 3523 10 is_stmt 0 view .LVU4187 + 12636 0026 C26F ldr r2, [r0, #124] +3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12637 .loc 1 3523 38 view .LVU4188 + 12638 0028 2149 ldr r1, .L671+8 + 12639 002a 5163 str r1, [r2, #52] +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12640 .loc 1 3526 5 is_stmt 1 view .LVU4189 +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12641 .loc 1 3526 10 is_stmt 0 view .LVU4190 + 12642 002c C26F ldr r2, [r0, #124] +3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12643 .loc 1 3526 38 view .LVU4191 + 12644 002e 0021 movs r1, #0 + 12645 0030 9163 str r1, [r2, #56] +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12646 .loc 1 3529 5 is_stmt 1 view .LVU4192 +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12647 .loc 1 3529 57 is_stmt 0 view .LVU4193 + 12648 0032 0168 ldr r1, [r0] +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12649 .loc 1 3529 9 view .LVU4194 + 12650 0034 826D ldr r2, [r0, #88] + 12651 0036 2431 adds r1, r1, #36 + 12652 0038 C06F ldr r0, [r0, #124] + 12653 .LVL1108: +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12654 .loc 1 3529 9 view .LVU4195 + 12655 003a FFF7FEFF bl HAL_DMA_Start_IT + 12656 .LVL1109: +3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12657 .loc 1 3529 8 view .LVU4196 + 12658 003e 38BB cbnz r0, .L670 + 12659 .L663: +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12660 .loc 1 3542 3 is_stmt 1 view .LVU4197 +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12661 .loc 1 3542 3 view .LVU4198 + 12662 0040 0023 movs r3, #0 + 12663 0042 84F88030 strb r3, [r4, #128] +3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12664 .loc 1 3542 3 view .LVU4199 + ARM GAS /tmp/cceWHrnJ.s page 390 + + +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12665 .loc 1 3545 3 view .LVU4200 +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12666 .loc 1 3545 18 is_stmt 0 view .LVU4201 + 12667 0046 2369 ldr r3, [r4, #16] +3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12668 .loc 1 3545 6 view .LVU4202 + 12669 0048 43B1 cbz r3, .L667 + 12670 .L666: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12671 .loc 1 3547 5 is_stmt 1 discriminator 1 view .LVU4203 + 12672 .LBB996: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12673 .loc 1 3547 5 discriminator 1 view .LVU4204 +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12674 .loc 1 3547 5 discriminator 1 view .LVU4205 +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12675 .loc 1 3547 5 discriminator 1 view .LVU4206 + 12676 004a 2268 ldr r2, [r4] + 12677 .LVL1110: + 12678 .LBB997: + 12679 .LBI997: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12680 .loc 2 1151 31 discriminator 1 view .LVU4207 + 12681 .LBB998: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12682 .loc 2 1153 5 discriminator 1 view .LVU4208 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12683 .loc 2 1155 4 discriminator 1 view .LVU4209 + 12684 .syntax unified + 12685 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12686 004c 52E8003F ldrex r3, [r2] + 12687 @ 0 "" 2 + 12688 .LVL1111: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12689 .loc 2 1156 4 discriminator 1 view .LVU4210 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12690 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4211 + 12691 .thumb + 12692 .syntax unified + 12693 .LBE998: + 12694 .LBE997: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12695 .loc 1 3547 5 discriminator 1 view .LVU4212 + 12696 0050 43F48073 orr r3, r3, #256 + 12697 .LVL1112: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12698 .loc 1 3547 5 is_stmt 1 discriminator 1 view .LVU4213 + 12699 .LBB999: + 12700 .LBI999: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12701 .loc 2 1202 31 discriminator 1 view .LVU4214 + 12702 .LBB1000: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12703 .loc 2 1204 4 discriminator 1 view .LVU4215 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12704 .loc 2 1206 4 discriminator 1 view .LVU4216 + ARM GAS /tmp/cceWHrnJ.s page 391 + + + 12705 .syntax unified + 12706 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12707 0054 42E80031 strex r1, r3, [r2] + 12708 @ 0 "" 2 + 12709 .LVL1113: + 12710 .loc 2 1207 4 discriminator 1 view .LVU4217 + 12711 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4218 + 12712 .thumb + 12713 .syntax unified + 12714 .LBE1000: + 12715 .LBE999: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12716 .loc 1 3547 5 discriminator 1 view .LVU4219 + 12717 0058 0029 cmp r1, #0 + 12718 005a F6D1 bne .L666 + 12719 .LVL1114: + 12720 .L667: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12721 .loc 1 3547 5 discriminator 1 view .LVU4220 + 12722 .LBE996: +3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12723 .loc 1 3547 5 is_stmt 1 discriminator 1 view .LVU4221 +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12724 .loc 1 3551 3 discriminator 1 view .LVU4222 + 12725 .LBB1001: +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12726 .loc 1 3551 3 discriminator 1 view .LVU4223 +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12727 .loc 1 3551 3 discriminator 1 view .LVU4224 +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12728 .loc 1 3551 3 discriminator 1 view .LVU4225 + 12729 005c 2268 ldr r2, [r4] + 12730 .LVL1115: + 12731 .LBB1002: + 12732 .LBI1002: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12733 .loc 2 1151 31 discriminator 1 view .LVU4226 + 12734 .LBB1003: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12735 .loc 2 1153 5 discriminator 1 view .LVU4227 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12736 .loc 2 1155 4 discriminator 1 view .LVU4228 + 12737 005e 02F10803 add r3, r2, #8 + 12738 .LVL1116: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12739 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU4229 + 12740 .syntax unified + 12741 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12742 0062 53E8003F ldrex r3, [r3] + 12743 @ 0 "" 2 + 12744 .LVL1117: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12745 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU4230 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12746 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4231 + 12747 .thumb + 12748 .syntax unified + ARM GAS /tmp/cceWHrnJ.s page 392 + + + 12749 .LBE1003: + 12750 .LBE1002: +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12751 .loc 1 3551 3 discriminator 1 view .LVU4232 + 12752 0066 43F00103 orr r3, r3, #1 + 12753 .LVL1118: +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12754 .loc 1 3551 3 is_stmt 1 discriminator 1 view .LVU4233 + 12755 .LBB1004: + 12756 .LBI1004: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12757 .loc 2 1202 31 discriminator 1 view .LVU4234 + 12758 .LBB1005: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12759 .loc 2 1204 4 discriminator 1 view .LVU4235 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12760 .loc 2 1206 4 discriminator 1 view .LVU4236 + 12761 006a 0832 adds r2, r2, #8 + 12762 .LVL1119: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12763 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU4237 + 12764 .syntax unified + 12765 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12766 006c 42E80031 strex r1, r3, [r2] + 12767 @ 0 "" 2 + 12768 .LVL1120: + 12769 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU4238 + 12770 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4239 + 12771 .thumb + 12772 .syntax unified + 12773 .LBE1005: + 12774 .LBE1004: +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12775 .loc 1 3551 3 discriminator 1 view .LVU4240 + 12776 0070 0029 cmp r1, #0 + 12777 0072 F3D1 bne .L667 + 12778 .LVL1121: + 12779 .L668: +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12780 .loc 1 3551 3 discriminator 1 view .LVU4241 + 12781 .LBE1001: +3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12782 .loc 1 3551 3 is_stmt 1 discriminator 1 view .LVU4242 +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12783 .loc 1 3555 3 discriminator 1 view .LVU4243 + 12784 .LBB1006: +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12785 .loc 1 3555 3 discriminator 1 view .LVU4244 +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12786 .loc 1 3555 3 discriminator 1 view .LVU4245 +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12787 .loc 1 3555 3 discriminator 1 view .LVU4246 + 12788 0074 2268 ldr r2, [r4] + 12789 .LVL1122: + 12790 .LBB1007: + 12791 .LBI1007: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + ARM GAS /tmp/cceWHrnJ.s page 393 + + + 12792 .loc 2 1151 31 discriminator 1 view .LVU4247 + 12793 .LBB1008: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12794 .loc 2 1153 5 discriminator 1 view .LVU4248 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12795 .loc 2 1155 4 discriminator 1 view .LVU4249 + 12796 0076 02F10803 add r3, r2, #8 + 12797 .LVL1123: +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12798 .loc 2 1155 4 is_stmt 0 discriminator 1 view .LVU4250 + 12799 .syntax unified + 12800 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12801 007a 53E8003F ldrex r3, [r3] + 12802 @ 0 "" 2 + 12803 .LVL1124: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12804 .loc 2 1156 4 is_stmt 1 discriminator 1 view .LVU4251 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12805 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4252 + 12806 .thumb + 12807 .syntax unified + 12808 .LBE1008: + 12809 .LBE1007: +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12810 .loc 1 3555 3 discriminator 1 view .LVU4253 + 12811 007e 43F04003 orr r3, r3, #64 + 12812 .LVL1125: +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12813 .loc 1 3555 3 is_stmt 1 discriminator 1 view .LVU4254 + 12814 .LBB1009: + 12815 .LBI1009: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12816 .loc 2 1202 31 discriminator 1 view .LVU4255 + 12817 .LBB1010: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12818 .loc 2 1204 4 discriminator 1 view .LVU4256 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12819 .loc 2 1206 4 discriminator 1 view .LVU4257 + 12820 0082 0832 adds r2, r2, #8 + 12821 .LVL1126: +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12822 .loc 2 1206 4 is_stmt 0 discriminator 1 view .LVU4258 + 12823 .syntax unified + 12824 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12825 0084 42E80031 strex r1, r3, [r2] + 12826 @ 0 "" 2 + 12827 .LVL1127: + 12828 .loc 2 1207 4 is_stmt 1 discriminator 1 view .LVU4259 + 12829 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4260 + 12830 .thumb + 12831 .syntax unified + 12832 .LBE1010: + 12833 .LBE1009: +3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12834 .loc 1 3555 3 discriminator 1 view .LVU4261 + 12835 0088 0029 cmp r1, #0 + 12836 008a F3D1 bne .L668 + ARM GAS /tmp/cceWHrnJ.s page 394 + + + 12837 .LBE1006: +3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12838 .loc 1 3557 10 view .LVU4262 + 12839 008c 0020 movs r0, #0 + 12840 .LVL1128: + 12841 .L664: +3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12842 .loc 1 3558 1 view .LVU4263 + 12843 008e 10BD pop {r4, pc} + 12844 .LVL1129: + 12845 .L670: +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12846 .loc 1 3532 7 is_stmt 1 view .LVU4264 +3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12847 .loc 1 3532 24 is_stmt 0 view .LVU4265 + 12848 0090 1023 movs r3, #16 + 12849 0092 C4F88C30 str r3, [r4, #140] +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12850 .loc 1 3534 7 is_stmt 1 view .LVU4266 +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12851 .loc 1 3534 7 view .LVU4267 + 12852 0096 0023 movs r3, #0 + 12853 0098 84F88030 strb r3, [r4, #128] +3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12854 .loc 1 3534 7 view .LVU4268 +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12855 .loc 1 3537 7 view .LVU4269 +3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12856 .loc 1 3537 22 is_stmt 0 view .LVU4270 + 12857 009c 2023 movs r3, #32 + 12858 009e C4F88830 str r3, [r4, #136] +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12859 .loc 1 3539 7 is_stmt 1 view .LVU4271 +3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12860 .loc 1 3539 14 is_stmt 0 view .LVU4272 + 12861 00a2 0120 movs r0, #1 + 12862 00a4 F3E7 b .L664 + 12863 .L672: + 12864 00a6 00BF .align 2 + 12865 .L671: + 12866 00a8 00000000 .word UART_DMAReceiveCplt + 12867 00ac 00000000 .word UART_DMARxHalfCplt + 12868 00b0 00000000 .word UART_DMAError + 12869 .cfi_endproc + 12870 .LFE377: + 12872 .section .text.HAL_UART_Receive_DMA,"ax",%progbits + 12873 .align 1 + 12874 .global HAL_UART_Receive_DMA + 12875 .syntax unified + 12876 .thumb + 12877 .thumb_func + 12879 HAL_UART_Receive_DMA: + 12880 .LVL1130: + 12881 .LFB341: +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ + 12882 .loc 1 1490 1 is_stmt 1 view -0 + 12883 .cfi_startproc + ARM GAS /tmp/cceWHrnJ.s page 395 + + + 12884 @ args = 0, pretend = 0, frame = 0 + 12885 @ frame_needed = 0, uses_anonymous_args = 0 +1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ + 12886 .loc 1 1490 1 is_stmt 0 view .LVU4274 + 12887 0000 38B5 push {r3, r4, r5, lr} + 12888 .LCFI61: + 12889 .cfi_def_cfa_offset 16 + 12890 .cfi_offset 3, -16 + 12891 .cfi_offset 4, -12 + 12892 .cfi_offset 5, -8 + 12893 .cfi_offset 14, -4 +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12894 .loc 1 1492 3 is_stmt 1 view .LVU4275 +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12895 .loc 1 1492 12 is_stmt 0 view .LVU4276 + 12896 0002 D0F88830 ldr r3, [r0, #136] +1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12897 .loc 1 1492 6 view .LVU4277 + 12898 0006 202B cmp r3, #32 + 12899 0008 1ED1 bne .L677 +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12900 .loc 1 1494 5 is_stmt 1 view .LVU4278 +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12901 .loc 1 1494 8 is_stmt 0 view .LVU4279 + 12902 000a F9B1 cbz r1, .L678 +1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12903 .loc 1 1494 25 discriminator 1 view .LVU4280 + 12904 000c 02B3 cbz r2, .L679 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12905 .loc 1 1499 5 is_stmt 1 view .LVU4281 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12906 .loc 1 1499 5 view .LVU4282 + 12907 000e 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 12908 0012 012B cmp r3, #1 + 12909 0014 1ED0 beq .L680 +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12910 .loc 1 1499 5 discriminator 2 view .LVU4283 + 12911 0016 0123 movs r3, #1 + 12912 0018 80F88030 strb r3, [r0, #128] +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12913 .loc 1 1499 5 discriminator 2 view .LVU4284 +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12914 .loc 1 1502 5 discriminator 2 view .LVU4285 +1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12915 .loc 1 1502 26 is_stmt 0 discriminator 2 view .LVU4286 + 12916 001c 0023 movs r3, #0 + 12917 001e C366 str r3, [r0, #108] +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12918 .loc 1 1504 5 is_stmt 1 discriminator 2 view .LVU4287 +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12919 .loc 1 1504 11 is_stmt 0 discriminator 2 view .LVU4288 + 12920 0020 0368 ldr r3, [r0] +1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12921 .loc 1 1504 8 discriminator 2 view .LVU4289 + 12922 0022 0D4C ldr r4, .L682 + 12923 0024 A342 cmp r3, r4 + 12924 0026 0CD0 beq .L675 + ARM GAS /tmp/cceWHrnJ.s page 396 + + +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12925 .loc 1 1507 7 is_stmt 1 view .LVU4290 +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12926 .loc 1 1507 11 is_stmt 0 view .LVU4291 + 12927 0028 5B68 ldr r3, [r3, #4] +1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { + 12928 .loc 1 1507 10 view .LVU4292 + 12929 002a 13F4000F tst r3, #8388608 + 12930 002e 08D0 beq .L675 + 12931 .L676: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12932 .loc 1 1510 9 is_stmt 1 discriminator 1 view .LVU4293 + 12933 .LBB1011: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12934 .loc 1 1510 9 discriminator 1 view .LVU4294 +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12935 .loc 1 1510 9 discriminator 1 view .LVU4295 +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12936 .loc 1 1510 9 discriminator 1 view .LVU4296 + 12937 0030 0468 ldr r4, [r0] + 12938 .LVL1131: + 12939 .LBB1012: + 12940 .LBI1012: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12941 .loc 2 1151 31 discriminator 1 view .LVU4297 + 12942 .LBB1013: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12943 .loc 2 1153 5 discriminator 1 view .LVU4298 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 12944 .loc 2 1155 4 discriminator 1 view .LVU4299 + 12945 .syntax unified + 12946 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12947 0032 54E8003F ldrex r3, [r4] + 12948 @ 0 "" 2 + 12949 .LVL1132: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12950 .loc 2 1156 4 discriminator 1 view .LVU4300 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 12951 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU4301 + 12952 .thumb + 12953 .syntax unified + 12954 .LBE1013: + 12955 .LBE1012: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12956 .loc 1 1510 9 discriminator 1 view .LVU4302 + 12957 0036 43F08063 orr r3, r3, #67108864 + 12958 .LVL1133: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12959 .loc 1 1510 9 is_stmt 1 discriminator 1 view .LVU4303 + 12960 .LBB1014: + 12961 .LBI1014: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 12962 .loc 2 1202 31 discriminator 1 view .LVU4304 + 12963 .LBB1015: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 12964 .loc 2 1204 4 discriminator 1 view .LVU4305 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + ARM GAS /tmp/cceWHrnJ.s page 397 + + + 12965 .loc 2 1206 4 discriminator 1 view .LVU4306 + 12966 .syntax unified + 12967 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 12968 003a 44E80035 strex r5, r3, [r4] + 12969 @ 0 "" 2 + 12970 .LVL1134: + 12971 .loc 2 1207 4 discriminator 1 view .LVU4307 + 12972 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU4308 + 12973 .thumb + 12974 .syntax unified + 12975 .LBE1015: + 12976 .LBE1014: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12977 .loc 1 1510 9 discriminator 1 view .LVU4309 + 12978 003e 002D cmp r5, #0 + 12979 0040 F6D1 bne .L676 + 12980 .LVL1135: + 12981 .L675: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12982 .loc 1 1510 9 discriminator 1 view .LVU4310 + 12983 .LBE1011: +1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12984 .loc 1 1510 9 is_stmt 1 discriminator 2 view .LVU4311 +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12985 .loc 1 1514 5 discriminator 2 view .LVU4312 +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12986 .loc 1 1514 13 is_stmt 0 discriminator 2 view .LVU4313 + 12987 0042 FFF7FEFF bl UART_Start_Receive_DMA + 12988 .LVL1136: +1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12989 .loc 1 1514 13 discriminator 2 view .LVU4314 + 12990 0046 00E0 b .L674 + 12991 .LVL1137: + 12992 .L677: +1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 12993 .loc 1 1518 12 view .LVU4315 + 12994 0048 0220 movs r0, #2 + 12995 .LVL1138: + 12996 .L674: +1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 12997 .loc 1 1520 1 view .LVU4316 + 12998 004a 38BD pop {r3, r4, r5, pc} + 12999 .LVL1139: + 13000 .L678: +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 13001 .loc 1 1496 14 view .LVU4317 + 13002 004c 0120 movs r0, #1 + 13003 .LVL1140: +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 13004 .loc 1 1496 14 view .LVU4318 + 13005 004e FCE7 b .L674 + 13006 .LVL1141: + 13007 .L679: +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 13008 .loc 1 1496 14 view .LVU4319 + 13009 0050 0120 movs r0, #1 + 13010 .LVL1142: + ARM GAS /tmp/cceWHrnJ.s page 398 + + +1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } + 13011 .loc 1 1496 14 view .LVU4320 + 13012 0052 FAE7 b .L674 + 13013 .LVL1143: + 13014 .L680: +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 13015 .loc 1 1499 5 view .LVU4321 + 13016 0054 0220 movs r0, #2 + 13017 .LVL1144: +1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** + 13018 .loc 1 1499 5 view .LVU4322 + 13019 0056 F8E7 b .L674 + 13020 .L683: + 13021 .align 2 + 13022 .L682: + 13023 0058 00800040 .word 1073774592 + 13024 .cfi_endproc + 13025 .LFE341: + 13027 .global UARTPrescTable + 13028 .section .rodata.UARTPrescTable,"a" + 13029 .align 2 + 13032 UARTPrescTable: + 13033 0000 0100 .short 1 + 13034 0002 0200 .short 2 + 13035 0004 0400 .short 4 + 13036 0006 0600 .short 6 + 13037 0008 0800 .short 8 + 13038 000a 0A00 .short 10 + 13039 000c 0C00 .short 12 + 13040 000e 1000 .short 16 + 13041 0010 2000 .short 32 + 13042 0012 4000 .short 64 + 13043 0014 8000 .short 128 + 13044 0016 0001 .short 256 + 13045 .text + 13046 .Letext0: + 13047 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 13048 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 13049 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 13050 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 13051 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 13052 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" + 13053 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h" + 13054 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h" + 13055 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/cceWHrnJ.s page 399 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_uart.c + /tmp/cceWHrnJ.s:21 .text.UART_EndTxTransfer:00000000 $t + /tmp/cceWHrnJ.s:26 .text.UART_EndTxTransfer:00000000 UART_EndTxTransfer + /tmp/cceWHrnJ.s:157 .text.UART_EndRxTransfer:00000000 $t + /tmp/cceWHrnJ.s:162 .text.UART_EndRxTransfer:00000000 UART_EndRxTransfer + /tmp/cceWHrnJ.s:358 .text.UART_TxISR_8BIT:00000000 $t + /tmp/cceWHrnJ.s:363 .text.UART_TxISR_8BIT:00000000 UART_TxISR_8BIT + /tmp/cceWHrnJ.s:523 .text.UART_TxISR_16BIT:00000000 $t + /tmp/cceWHrnJ.s:528 .text.UART_TxISR_16BIT:00000000 UART_TxISR_16BIT + /tmp/cceWHrnJ.s:695 .text.UART_TxISR_8BIT_FIFOEN:00000000 $t + /tmp/cceWHrnJ.s:700 .text.UART_TxISR_8BIT_FIFOEN:00000000 UART_TxISR_8BIT_FIFOEN + /tmp/cceWHrnJ.s:890 .text.UART_TxISR_16BIT_FIFOEN:00000000 $t + /tmp/cceWHrnJ.s:895 .text.UART_TxISR_16BIT_FIFOEN:00000000 UART_TxISR_16BIT_FIFOEN + /tmp/cceWHrnJ.s:1092 .text.HAL_UART_MspInit:00000000 $t + /tmp/cceWHrnJ.s:1098 .text.HAL_UART_MspInit:00000000 HAL_UART_MspInit + /tmp/cceWHrnJ.s:1113 .text.HAL_UART_MspDeInit:00000000 $t + /tmp/cceWHrnJ.s:1119 .text.HAL_UART_MspDeInit:00000000 HAL_UART_MspDeInit + /tmp/cceWHrnJ.s:1134 .text.HAL_UART_DeInit:00000000 $t + /tmp/cceWHrnJ.s:1140 .text.HAL_UART_DeInit:00000000 HAL_UART_DeInit + /tmp/cceWHrnJ.s:1226 .text.HAL_UART_Transmit_IT:00000000 $t + /tmp/cceWHrnJ.s:1232 .text.HAL_UART_Transmit_IT:00000000 HAL_UART_Transmit_IT + /tmp/cceWHrnJ.s:1497 .text.HAL_UART_Transmit_IT:000000bc $d + /tmp/cceWHrnJ.s:1505 .text.HAL_UART_Transmit_DMA:00000000 $t + /tmp/cceWHrnJ.s:1511 .text.HAL_UART_Transmit_DMA:00000000 HAL_UART_Transmit_DMA + /tmp/cceWHrnJ.s:1738 .text.HAL_UART_Transmit_DMA:000000b0 $d + /tmp/cceWHrnJ.s:3690 .text.UART_DMATransmitCplt:00000000 UART_DMATransmitCplt + /tmp/cceWHrnJ.s:3960 .text.UART_DMATxHalfCplt:00000000 UART_DMATxHalfCplt + /tmp/cceWHrnJ.s:4055 .text.UART_DMAError:00000000 UART_DMAError + /tmp/cceWHrnJ.s:1745 .text.HAL_UART_DMAPause:00000000 $t + /tmp/cceWHrnJ.s:1751 .text.HAL_UART_DMAPause:00000000 HAL_UART_DMAPause + /tmp/cceWHrnJ.s:2067 .text.HAL_UART_DMAResume:00000000 $t + /tmp/cceWHrnJ.s:2073 .text.HAL_UART_DMAResume:00000000 HAL_UART_DMAResume + /tmp/cceWHrnJ.s:2367 .text.HAL_UART_DMAStop:00000000 $t + /tmp/cceWHrnJ.s:2373 .text.HAL_UART_DMAStop:00000000 HAL_UART_DMAStop + /tmp/cceWHrnJ.s:2621 .text.HAL_UART_Abort:00000000 $t + /tmp/cceWHrnJ.s:2627 .text.HAL_UART_Abort:00000000 HAL_UART_Abort + /tmp/cceWHrnJ.s:3072 .text.HAL_UART_AbortTransmit:00000000 $t + /tmp/cceWHrnJ.s:3078 .text.HAL_UART_AbortTransmit:00000000 HAL_UART_AbortTransmit + /tmp/cceWHrnJ.s:3340 .text.HAL_UART_AbortReceive:00000000 $t + /tmp/cceWHrnJ.s:3346 .text.HAL_UART_AbortReceive:00000000 HAL_UART_AbortReceive + /tmp/cceWHrnJ.s:3664 .text.HAL_UART_TxCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:3670 .text.HAL_UART_TxCpltCallback:00000000 HAL_UART_TxCpltCallback + /tmp/cceWHrnJ.s:3685 .text.UART_DMATransmitCplt:00000000 $t + /tmp/cceWHrnJ.s:3846 .text.UART_EndTransmit_IT:00000000 $t + /tmp/cceWHrnJ.s:3851 .text.UART_EndTransmit_IT:00000000 UART_EndTransmit_IT + /tmp/cceWHrnJ.s:3934 .text.HAL_UART_TxHalfCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:3940 .text.HAL_UART_TxHalfCpltCallback:00000000 HAL_UART_TxHalfCpltCallback + /tmp/cceWHrnJ.s:3955 .text.UART_DMATxHalfCplt:00000000 $t + /tmp/cceWHrnJ.s:3987 .text.HAL_UART_RxCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:3993 .text.HAL_UART_RxCpltCallback:00000000 HAL_UART_RxCpltCallback + /tmp/cceWHrnJ.s:4008 .text.HAL_UART_RxHalfCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:4014 .text.HAL_UART_RxHalfCpltCallback:00000000 HAL_UART_RxHalfCpltCallback + /tmp/cceWHrnJ.s:4029 .text.HAL_UART_ErrorCallback:00000000 $t + /tmp/cceWHrnJ.s:4035 .text.HAL_UART_ErrorCallback:00000000 HAL_UART_ErrorCallback + /tmp/cceWHrnJ.s:4050 .text.UART_DMAError:00000000 $t + /tmp/cceWHrnJ.s:4145 .text.UART_DMAAbortOnError:00000000 $t + ARM GAS /tmp/cceWHrnJ.s page 400 + + + /tmp/cceWHrnJ.s:4150 .text.UART_DMAAbortOnError:00000000 UART_DMAAbortOnError + /tmp/cceWHrnJ.s:4183 .text.HAL_UART_AbortCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:4189 .text.HAL_UART_AbortCpltCallback:00000000 HAL_UART_AbortCpltCallback + /tmp/cceWHrnJ.s:4204 .text.HAL_UART_Abort_IT:00000000 $t + /tmp/cceWHrnJ.s:4210 .text.HAL_UART_Abort_IT:00000000 HAL_UART_Abort_IT + /tmp/cceWHrnJ.s:4701 .text.HAL_UART_Abort_IT:00000144 $d + /tmp/cceWHrnJ.s:4790 .text.UART_DMATxAbortCallback:00000000 UART_DMATxAbortCallback + /tmp/cceWHrnJ.s:4712 .text.UART_DMARxAbortCallback:00000000 UART_DMARxAbortCallback + /tmp/cceWHrnJ.s:4707 .text.UART_DMARxAbortCallback:00000000 $t + /tmp/cceWHrnJ.s:4785 .text.UART_DMATxAbortCallback:00000000 $t + /tmp/cceWHrnJ.s:4874 .text.HAL_UART_AbortTransmitCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:4880 .text.HAL_UART_AbortTransmitCpltCallback:00000000 HAL_UART_AbortTransmitCpltCallback + /tmp/cceWHrnJ.s:4895 .text.HAL_UART_AbortTransmit_IT:00000000 $t + /tmp/cceWHrnJ.s:4901 .text.HAL_UART_AbortTransmit_IT:00000000 HAL_UART_AbortTransmit_IT + /tmp/cceWHrnJ.s:5180 .text.HAL_UART_AbortTransmit_IT:000000a8 $d + /tmp/cceWHrnJ.s:5190 .text.UART_DMATxOnlyAbortCallback:00000000 UART_DMATxOnlyAbortCallback + /tmp/cceWHrnJ.s:5185 .text.UART_DMATxOnlyAbortCallback:00000000 $t + /tmp/cceWHrnJ.s:5239 .text.HAL_UART_AbortReceiveCpltCallback:00000000 $t + /tmp/cceWHrnJ.s:5245 .text.HAL_UART_AbortReceiveCpltCallback:00000000 HAL_UART_AbortReceiveCpltCallback + /tmp/cceWHrnJ.s:5260 .text.HAL_UART_AbortReceive_IT:00000000 $t + /tmp/cceWHrnJ.s:5266 .text.HAL_UART_AbortReceive_IT:00000000 HAL_UART_AbortReceive_IT + /tmp/cceWHrnJ.s:5612 .text.HAL_UART_AbortReceive_IT:000000cc $d + /tmp/cceWHrnJ.s:5622 .text.UART_DMARxOnlyAbortCallback:00000000 UART_DMARxOnlyAbortCallback + /tmp/cceWHrnJ.s:5617 .text.UART_DMARxOnlyAbortCallback:00000000 $t + /tmp/cceWHrnJ.s:5668 .text.HAL_UARTEx_RxEventCallback:00000000 $t + /tmp/cceWHrnJ.s:5674 .text.HAL_UARTEx_RxEventCallback:00000000 HAL_UARTEx_RxEventCallback + /tmp/cceWHrnJ.s:5690 .text.HAL_UART_IRQHandler:00000000 $t + /tmp/cceWHrnJ.s:5696 .text.HAL_UART_IRQHandler:00000000 HAL_UART_IRQHandler + /tmp/cceWHrnJ.s:6598 .text.HAL_UART_IRQHandler:000002f4 $d + /tmp/cceWHrnJ.s:6606 .text.HAL_UART_IRQHandler:00000300 $t + /tmp/cceWHrnJ.s:6669 .text.UART_RxISR_8BIT:00000000 $t + /tmp/cceWHrnJ.s:6674 .text.UART_RxISR_8BIT:00000000 UART_RxISR_8BIT + /tmp/cceWHrnJ.s:6960 .text.UART_RxISR_16BIT:00000000 $t + /tmp/cceWHrnJ.s:6965 .text.UART_RxISR_16BIT:00000000 UART_RxISR_16BIT + /tmp/cceWHrnJ.s:7251 .text.UART_RxISR_8BIT_FIFOEN:00000000 $t + /tmp/cceWHrnJ.s:7256 .text.UART_RxISR_8BIT_FIFOEN:00000000 UART_RxISR_8BIT_FIFOEN + /tmp/cceWHrnJ.s:7787 .text.UART_RxISR_8BIT_FIFOEN:0000019c $d + /tmp/cceWHrnJ.s:7793 .text.UART_RxISR_16BIT_FIFOEN:00000000 $t + /tmp/cceWHrnJ.s:7798 .text.UART_RxISR_16BIT_FIFOEN:00000000 UART_RxISR_16BIT_FIFOEN + /tmp/cceWHrnJ.s:8332 .text.UART_RxISR_16BIT_FIFOEN:0000019c $d + /tmp/cceWHrnJ.s:8338 .text.UART_DMARxHalfCplt:00000000 $t + /tmp/cceWHrnJ.s:8343 .text.UART_DMARxHalfCplt:00000000 UART_DMARxHalfCplt + /tmp/cceWHrnJ.s:8387 .text.UART_DMAReceiveCplt:00000000 $t + /tmp/cceWHrnJ.s:8392 .text.UART_DMAReceiveCplt:00000000 UART_DMAReceiveCplt + /tmp/cceWHrnJ.s:8684 .text.HAL_UART_ReceiverTimeout_Config:00000000 $t + /tmp/cceWHrnJ.s:8690 .text.HAL_UART_ReceiverTimeout_Config:00000000 HAL_UART_ReceiverTimeout_Config + /tmp/cceWHrnJ.s:8719 .text.HAL_UART_ReceiverTimeout_Config:00000014 $d + /tmp/cceWHrnJ.s:8724 .text.HAL_UART_EnableReceiverTimeout:00000000 $t + /tmp/cceWHrnJ.s:8730 .text.HAL_UART_EnableReceiverTimeout:00000000 HAL_UART_EnableReceiverTimeout + /tmp/cceWHrnJ.s:8807 .text.HAL_UART_EnableReceiverTimeout:00000048 $d + /tmp/cceWHrnJ.s:8812 .text.HAL_UART_DisableReceiverTimeout:00000000 $t + /tmp/cceWHrnJ.s:8818 .text.HAL_UART_DisableReceiverTimeout:00000000 HAL_UART_DisableReceiverTimeout + /tmp/cceWHrnJ.s:8895 .text.HAL_UART_DisableReceiverTimeout:00000048 $d + /tmp/cceWHrnJ.s:8900 .text.HAL_MultiProcessor_EnterMuteMode:00000000 $t + /tmp/cceWHrnJ.s:8906 .text.HAL_MultiProcessor_EnterMuteMode:00000000 HAL_MultiProcessor_EnterMuteMode + /tmp/cceWHrnJ.s:8925 .text.HAL_HalfDuplex_EnableTransmitter:00000000 $t + /tmp/cceWHrnJ.s:8931 .text.HAL_HalfDuplex_EnableTransmitter:00000000 HAL_HalfDuplex_EnableTransmitter + ARM GAS /tmp/cceWHrnJ.s page 401 + + + /tmp/cceWHrnJ.s:9084 .text.HAL_HalfDuplex_EnableReceiver:00000000 $t + /tmp/cceWHrnJ.s:9090 .text.HAL_HalfDuplex_EnableReceiver:00000000 HAL_HalfDuplex_EnableReceiver + /tmp/cceWHrnJ.s:9243 .text.HAL_LIN_SendBreak:00000000 $t + /tmp/cceWHrnJ.s:9249 .text.HAL_LIN_SendBreak:00000000 HAL_LIN_SendBreak + /tmp/cceWHrnJ.s:9302 .text.HAL_UART_GetState:00000000 $t + /tmp/cceWHrnJ.s:9308 .text.HAL_UART_GetState:00000000 HAL_UART_GetState + /tmp/cceWHrnJ.s:9336 .text.HAL_UART_GetError:00000000 $t + /tmp/cceWHrnJ.s:9342 .text.HAL_UART_GetError:00000000 HAL_UART_GetError + /tmp/cceWHrnJ.s:9361 .text.UART_SetConfig:00000000 $t + /tmp/cceWHrnJ.s:9367 .text.UART_SetConfig:00000000 UART_SetConfig + /tmp/cceWHrnJ.s:9512 .text.UART_SetConfig:00000094 $d + /tmp/cceWHrnJ.s:9522 .text.UART_SetConfig:000000a6 $t + /tmp/cceWHrnJ.s:9532 .text.UART_SetConfig:000000ba $d + /tmp/cceWHrnJ.s:9536 .text.UART_SetConfig:000000be $t + /tmp/cceWHrnJ.s:9569 .text.UART_SetConfig:000000e2 $d + /tmp/cceWHrnJ.s:9712 .text.UART_SetConfig:000001b4 $d + /tmp/cceWHrnJ.s:9813 .text.UART_SetConfig:00000236 $d + /tmp/cceWHrnJ.s:9829 .text.UART_SetConfig:00000244 $d + /tmp/cceWHrnJ.s:13032 .rodata.UARTPrescTable:00000000 UARTPrescTable + /tmp/cceWHrnJ.s:9841 .text.UART_SetConfig:00000268 $t + /tmp/cceWHrnJ.s:10055 .text.UART_SetConfig:0000033c $d + /tmp/cceWHrnJ.s:10061 .text.UART_AdvFeatureConfig:00000000 $t + /tmp/cceWHrnJ.s:10067 .text.UART_AdvFeatureConfig:00000000 UART_AdvFeatureConfig + /tmp/cceWHrnJ.s:10219 .text.UART_WaitOnFlagUntilTimeout:00000000 $t + /tmp/cceWHrnJ.s:10225 .text.UART_WaitOnFlagUntilTimeout:00000000 UART_WaitOnFlagUntilTimeout + /tmp/cceWHrnJ.s:10568 .text.HAL_UART_Transmit:00000000 $t + /tmp/cceWHrnJ.s:10574 .text.HAL_UART_Transmit:00000000 HAL_UART_Transmit + /tmp/cceWHrnJ.s:10805 .text.HAL_UART_Receive:00000000 $t + /tmp/cceWHrnJ.s:10811 .text.HAL_UART_Receive:00000000 HAL_UART_Receive + /tmp/cceWHrnJ.s:11094 .text.UART_CheckIdleState:00000000 $t + /tmp/cceWHrnJ.s:11100 .text.UART_CheckIdleState:00000000 UART_CheckIdleState + /tmp/cceWHrnJ.s:11216 .text.HAL_UART_Init:00000000 $t + /tmp/cceWHrnJ.s:11222 .text.HAL_UART_Init:00000000 HAL_UART_Init + /tmp/cceWHrnJ.s:11325 .text.HAL_HalfDuplex_Init:00000000 $t + /tmp/cceWHrnJ.s:11331 .text.HAL_HalfDuplex_Init:00000000 HAL_HalfDuplex_Init + /tmp/cceWHrnJ.s:11439 .text.HAL_LIN_Init:00000000 $t + /tmp/cceWHrnJ.s:11445 .text.HAL_LIN_Init:00000000 HAL_LIN_Init + /tmp/cceWHrnJ.s:11597 .text.HAL_MultiProcessor_Init:00000000 $t + /tmp/cceWHrnJ.s:11603 .text.HAL_MultiProcessor_Init:00000000 HAL_MultiProcessor_Init + /tmp/cceWHrnJ.s:11731 .text.HAL_MultiProcessor_EnableMuteMode:00000000 $t + /tmp/cceWHrnJ.s:11737 .text.HAL_MultiProcessor_EnableMuteMode:00000000 HAL_MultiProcessor_EnableMuteMode + /tmp/cceWHrnJ.s:11838 .text.HAL_MultiProcessor_DisableMuteMode:00000000 $t + /tmp/cceWHrnJ.s:11844 .text.HAL_MultiProcessor_DisableMuteMode:00000000 HAL_MultiProcessor_DisableMuteMode + /tmp/cceWHrnJ.s:11945 .text.UART_Start_Receive_IT:00000000 $t + /tmp/cceWHrnJ.s:11951 .text.UART_Start_Receive_IT:00000000 UART_Start_Receive_IT + /tmp/cceWHrnJ.s:12415 .text.UART_Start_Receive_IT:00000138 $d + /tmp/cceWHrnJ.s:12424 .text.HAL_UART_Receive_IT:00000000 $t + /tmp/cceWHrnJ.s:12430 .text.HAL_UART_Receive_IT:00000000 HAL_UART_Receive_IT + /tmp/cceWHrnJ.s:12574 .text.HAL_UART_Receive_IT:00000058 $d + /tmp/cceWHrnJ.s:12579 .text.UART_Start_Receive_DMA:00000000 $t + /tmp/cceWHrnJ.s:12585 .text.UART_Start_Receive_DMA:00000000 UART_Start_Receive_DMA + /tmp/cceWHrnJ.s:12866 .text.UART_Start_Receive_DMA:000000a8 $d + /tmp/cceWHrnJ.s:12873 .text.HAL_UART_Receive_DMA:00000000 $t + /tmp/cceWHrnJ.s:12879 .text.HAL_UART_Receive_DMA:00000000 HAL_UART_Receive_DMA + /tmp/cceWHrnJ.s:13023 .text.HAL_UART_Receive_DMA:00000058 $d + /tmp/cceWHrnJ.s:13029 .rodata.UARTPrescTable:00000000 $d + /tmp/cceWHrnJ.s:9582 .text.UART_SetConfig:000000ef $d + ARM GAS /tmp/cceWHrnJ.s page 402 + + + /tmp/cceWHrnJ.s:9582 .text.UART_SetConfig:000000f0 $t + /tmp/cceWHrnJ.s:9721 .text.UART_SetConfig:000001bd $d + /tmp/cceWHrnJ.s:9721 .text.UART_SetConfig:000001be $t + /tmp/cceWHrnJ.s:9822 .text.UART_SetConfig:0000023f $d + /tmp/cceWHrnJ.s:9822 .text.UART_SetConfig:00000240 $t + +UNDEFINED SYMBOLS +HAL_DMA_Start_IT +HAL_DMA_Abort +HAL_DMA_GetError +HAL_DMA_Abort_IT +HAL_UARTEx_WakeupCallback +HAL_UARTEx_TxFifoEmptyCallback +HAL_UARTEx_RxFifoFullCallback +__aeabi_uldivmod +HAL_RCC_GetPCLK1Freq +HAL_RCC_GetSysClockFreq +HAL_RCC_GetPCLK2Freq +HAL_GetTick diff --git a/squeow_sw/build/stm32g4xx_hal_uart.o b/squeow_sw/build/stm32g4xx_hal_uart.o new file mode 100644 index 0000000000000000000000000000000000000000..ef7df5fb5ebd95dcf748c172b266f656722aceca GIT binary patch literal 158440 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 + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the Driver Enable polarity */ + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_DE_POLARITY(Polarity)); + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the Driver Enable assertion time */ + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_ASSERTIONTIME(AssertionTime)); + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the Driver Enable deassertion time */ + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_DEASSERTIONTIME(DeassertionTime)); + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->gState == HAL_UART_STATE_RESET) + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Allocate lock resource and initialize it */ + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->Lock = HAL_UNLOCKED; + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UART_InitCallbacksToDefault(huart); + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->MspInitCallback == NULL) + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->MspInitCallback = HAL_UART_MspInit; + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Init the low level hardware */ + ARM GAS /tmp/ccEfj1JP.s page 5 + + + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->MspInitCallback(huart); + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** #else + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX */ + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_UART_MspInit(huart); + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable the Peripheral */ + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the UART Communication parameters */ + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (UART_SetConfig(huart) == HAL_ERROR) + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_ERROR; + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UART_AdvFeatureConfig(huart); + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Enable the Driver Enable mode by setting the DEM bit in the CR3 register */ + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DEM); + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the Driver Enable polarity */ + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_DEP, Polarity); + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the Driver Enable assertion and deassertion times */ + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** temp = (AssertionTime << UART_CR1_DEAT_ADDRESS_LSB_POS); + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** temp |= (DeassertionTime << UART_CR1_DEDT_ADDRESS_LSB_POS); + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR1, (USART_CR1_DEDT | USART_CR1_DEAT), temp); + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Enable the Peripheral */ + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_ENABLE(huart); + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return (UART_CheckIdleState(huart)); + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @} + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** @defgroup UARTEx_Exported_Functions_Group2 IO operation functions + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Extended functions + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** @verbatim + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** =============================================================================== + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ##### IO operation functions ##### + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** =============================================================================== + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** This subsection provides a set of Wakeup and FIFO mode related callback functions. + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) Wakeup from Stop mode Callback: + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_WakeupCallback() + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 6 + + + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) TX/RX Fifos Callbacks: + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_RxFifoFullCallback() + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_TxFifoEmptyCallback() + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** @endverbatim + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @{ + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief UART wakeup from Stop mode callback. + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval None + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */ + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UNUSED(huart); + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** the HAL_UARTEx_WakeupCallback can be implemented in the user file. + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief UART RX Fifo full callback. + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval None + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __weak void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart) + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */ + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UNUSED(huart); + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** the HAL_UARTEx_RxFifoFullCallback can be implemented in the user file. + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief UART TX Fifo empty callback. + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval None + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __weak void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart) + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */ + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UNUSED(huart); + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** the HAL_UARTEx_TxFifoEmptyCallback can be implemented in the user file. + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @} + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 7 + + + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** @defgroup UARTEx_Exported_Functions_Group3 Peripheral Control functions + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Extended Peripheral Control functions + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** @verbatim + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** =============================================================================== + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ##### Peripheral Control functions ##### + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** =============================================================================== + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** [..] This section provides the following functions: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_MultiProcessorEx_AddressLength_Set() API optionally sets the UART node address + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** detection length to more than 4 bits for multiprocessor address mark wake up. + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_StopModeWakeUpSourceConfig() API defines the wake-up from stop mode + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** trigger: address match, Start Bit detection or RXNE bit status. + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_EnableStopMode() API enables the UART to wake up the MCU from stop mode + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_DisableStopMode() API disables the above functionality + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_EnableFifoMode() API enables the FIFO mode + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_DisableFifoMode() API disables the FIFO mode + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_SetTxFifoThreshold() API sets the TX FIFO threshold + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_SetRxFifoThreshold() API sets the RX FIFO threshold + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** [..] This subsection also provides a set of additional functions providing enhanced reception + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** services to user. (For example, these functions allow application to handle use cases + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** where number of data to be received is unknown). + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) Compared to standard reception services which only consider number of received + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** data elements as reception completion criteria, these functions also consider additional ev + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** as triggers for updating reception status to caller : + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) Detection of inactivity period (RX line has not been active for a given period). + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (++) RX inactivity detected by IDLE event, i.e. RX line has been in idle state (normally + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** for 1 frame time, after last received byte. + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (++) RX inactivity detected by RTO, i.e. line has been in idle state + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** for a programmable time, after last received byte. + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) Detection that a specific character has been received. + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) There are two mode of transfer: + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) Blocking mode: The reception is performed in polling mode, until either expected number + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** or till IDLE event occurs. Reception is handled only during function execution. + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** When function exits, no data reception could occur. HAL status and number of actually re + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** are returned by function after finishing transfer. + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) Non-Blocking mode: The reception is performed using Interrupts or DMA. + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** These API's return the HAL status. + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** The end of the data processing will be indicated through the + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when using DMA mode. + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** The HAL_UARTEx_RxEventCallback() user callback will be executed during Receive process + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** The HAL_UART_ErrorCallback()user callback will be executed when a reception error is det + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) Blocking mode API: + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_ReceiveToIdle() + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) Non-Blocking mode API with Interrupt: + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_ReceiveToIdle_IT() + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (#) Non-Blocking mode API with DMA: + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (+) HAL_UARTEx_ReceiveToIdle_DMA() + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** @endverbatim + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @{ + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + ARM GAS /tmp/ccEfj1JP.s page 8 + + + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief By default in multiprocessor mode, when the wake up method is set + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * to address mark, the UART handles only 4-bit long addresses detection; + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * this API allows to enable longer addresses detection (6-, 7- or 8-bit + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * long). + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note Addresses detection lengths are: 6-bit address detection in 7-bit data mode, + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * 7-bit address detection in 8-bit data mode, 8-bit address detection in 9-bit data mode. + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param AddressLength This parameter can be one of the following values: + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_ADDRESS_DETECT_4B 4-bit long address + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_ADDRESS_DETECT_7B 6-, 7- or 8-bit long address + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t Addres + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the UART handle allocation */ + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart == NULL) + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_ERROR; + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the address length parameter */ + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_ADDRESSLENGTH_DETECT(AddressLength)); + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable the Peripheral */ + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the address length */ + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, AddressLength); + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Enable the Peripheral */ + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_ENABLE(huart); + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* TEACK and/or REACK to check before moving huart->gState to Ready */ + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return (UART_CheckIdleState(huart)); + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Set Wakeup from Stop mode interrupt flag selection. + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note It is the application responsibility to enable the interrupt used as + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * usart_wkup interrupt source before entering low-power mode. + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param WakeUpSelection Address match, Start Bit detection or RXNE/RXFNE bit status. + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * This parameter can be one of the following values: + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_WAKEUP_ON_ADDRESS + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_WAKEUP_ON_STARTBIT + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_WAKEUP_ON_READDATA_NONEMPTY + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeD + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tickstart; + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 9 + + + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* check the wake-up from stop mode UART instance */ + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_WAKEUP_FROMSTOP_INSTANCE(huart->Instance)); + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* check the wake-up selection parameter */ + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_WAKEUP_SELECTION(WakeUpSelection.WakeUpEvent)); + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable the Peripheral */ + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the wake-up selection scheme */ + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_WUS, WakeUpSelection.WakeUpEvent); + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (WakeUpSelection.WakeUpEvent == UART_WAKEUP_ON_ADDRESS) + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UARTEx_Wakeup_AddressConfig(huart, WakeUpSelection); + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Enable the Peripheral */ + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_ENABLE(huart); + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Init tickstart for timeout management */ + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tickstart = HAL_GetTick(); + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Wait until REACK flag is set */ + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** status = HAL_TIMEOUT; + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Initialize the UART State */ + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_READY; + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return status; + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Enable UART Stop Mode. + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note The UART is able to wake up the MCU from Stop 1 mode as long as UART clock is HSI or LSE. + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart) + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set UESM bit */ + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_UESM); + ARM GAS /tmp/ccEfj1JP.s page 10 + + + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Disable UART Stop Mode. + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart) + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Clear UESM bit */ + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_UESM); + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Enable the FIFO mode. + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart) + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check parameters */ + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Save actual UART configuration */ + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tmpcr1 = READ_REG(huart->Instance->CR1); + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable UART */ + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Enable FIFO mode */ + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** SET_BIT(tmpcr1, USART_CR1_FIFOEN); + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->FifoMode = UART_FIFOMODE_ENABLE; + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Restore UART configuration */ + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** WRITE_REG(huart->Instance->CR1, tmpcr1); + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Determine the number of data to process during RX/TX ISR execution */ + ARM GAS /tmp/ccEfj1JP.s page 11 + + + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UARTEx_SetNbDataToProcess(huart); + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_READY; + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Disable the FIFO mode. + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart) + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check parameters */ + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Save actual UART configuration */ + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tmpcr1 = READ_REG(huart->Instance->CR1); + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable UART */ + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Enable FIFO mode */ + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** CLEAR_BIT(tmpcr1, USART_CR1_FIFOEN); + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->FifoMode = UART_FIFOMODE_DISABLE; + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Restore UART configuration */ + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** WRITE_REG(huart->Instance->CR1, tmpcr1); + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_READY; + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Set the TXFIFO threshold. + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param Threshold TX FIFO threshold value + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * This parameter can be one of the following values: + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_TXFIFO_THRESHOLD_1_8 + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_TXFIFO_THRESHOLD_1_4 + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_TXFIFO_THRESHOLD_1_2 + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_TXFIFO_THRESHOLD_3_4 + ARM GAS /tmp/ccEfj1JP.s page 12 + + + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_TXFIFO_THRESHOLD_7_8 + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_TXFIFO_THRESHOLD_8_8 + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check parameters */ + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_TXFIFO_THRESHOLD(Threshold)); + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Save actual UART configuration */ + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tmpcr1 = READ_REG(huart->Instance->CR1); + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable UART */ + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Update TX threshold configuration */ + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_TXFTCFG, Threshold); + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Determine the number of data to process during RX/TX ISR execution */ + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UARTEx_SetNbDataToProcess(huart); + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Restore UART configuration */ + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** WRITE_REG(huart->Instance->CR1, tmpcr1); + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_READY; + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Set the RXFIFO threshold. + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param Threshold RX FIFO threshold value + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * This parameter can be one of the following values: + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_RXFIFO_THRESHOLD_1_8 + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_RXFIFO_THRESHOLD_1_4 + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_RXFIFO_THRESHOLD_1_2 + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_RXFIFO_THRESHOLD_3_4 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_RXFIFO_THRESHOLD_7_8 + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @arg @ref UART_RXFIFO_THRESHOLD_8_8 + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 13 + + + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the parameters */ + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_RXFIFO_THRESHOLD(Threshold)); + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY; + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Save actual UART configuration */ + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tmpcr1 = READ_REG(huart->Instance->CR1); + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Disable UART */ + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart); + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Update RX threshold configuration */ + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_RXFTCFG, Threshold); + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Determine the number of data to process during RX/TX ISR execution */ + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UARTEx_SetNbDataToProcess(huart); + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Restore UART configuration */ + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** WRITE_REG(huart->Instance->CR1, tmpcr1); + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_READY; + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Unlocked */ + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Receive an amount of data in blocking mode till either the expected number of data + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * is received or an IDLE event occurs. + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note HAL_OK is returned if reception is completed (expected number of data has been received) + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * or if reception is stopped after IDLE event (less than the expected number of data has b + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * In this case, RxLen output parameter indicates number of data available in reception buf + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * of uint16_t available through pData. + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note When FIFO mode is enabled, the RXFNE flag is set as long as the RXFIFO + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * is not empty. Read operations from the RDR register are performed when + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * RXFNE flag is set. From hardware perspective, RXFNE flag and + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * RXNE are mapped on the same bit-field. + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param RxLen Number of data elements finally received + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * (could be lower than Size, in case reception ends on IDLE event) + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param Timeout Timeout duration expressed in ms (covers the whole reception sequence). + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t Timeout) + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t *pdata8bits; + ARM GAS /tmp/ccEfj1JP.s page 14 + + + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint16_t *pdata16bits; + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint16_t uhMask; + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tickstart; + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check that a Rx process is not already ongoing */ + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->RxState == HAL_UART_STATE_READY) + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if ((pData == NULL) || (Size == 0U)) + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_ERROR; + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Init tickstart for timeout management */ + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tickstart = HAL_GetTick(); + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferSize = Size; + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferCount = Size; + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Computation of UART mask to apply to RDR register */ + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** UART_MASK_COMPUTATION(huart); + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits = NULL; + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits = (uint16_t *) pData; + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits = pData; + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits = NULL; + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UNLOCK(huart); + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Initialize output number of received elements */ + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** *RxLen = 0U; + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* as long as data have to be received */ + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** while (huart->RxXferCount > 0U) + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check if IDLE flag is set */ + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Clear IDLE flag in ISR */ + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* If Set, but no data ever received, clear flag without exiting loop */ + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* If Set, and data has already been received, this means Idle Event is valid : End recepti + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (*RxLen > 0U) + ARM GAS /tmp/ccEfj1JP.s page 15 + + + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_READY; + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check if RXNE flag is set */ + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (pdata8bits == NULL) + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits++; + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits++; + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Increment number of received elements */ + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** *RxLen += 1U; + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferCount--; + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check for the Timeout */ + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (Timeout != HAL_MAX_DELAY) + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_READY; + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_TIMEOUT; + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set number of received elements in output parameter : RxLen */ + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** *RxLen = huart->RxXferSize - huart->RxXferCount; + 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */ + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_READY; + 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_OK; + 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_BUSY; + 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Receive an amount of data in interrupt mode till either the expected number of data + 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * is received or an IDLE event occurs. + 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved + 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * to UART interrupts raised by RXNE and IDLE events. Callback is called at end of receptio + 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * number of received data elements. + 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M + ARM GAS /tmp/ccEfj1JP.s page 16 + + + 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the + 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * of uint16_t available through pData. + 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). + 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. + 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status; + 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check that a Rx process is not already ongoing */ + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->RxState == HAL_UART_STATE_READY) + 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if ((pData == NULL) || (Size == 0U)) + 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_ERROR; + 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set Reception type to reception till IDLE Event*/ + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** status = UART_Start_Receive_IT(huart, pData, Size); + 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check Rx process has been successfully started */ + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (status == HAL_OK) + 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* In case of errors already pending when reception is started, + 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** Interrupts may have already been raised and lead to reception abortion. + 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (Overrun error for instance). + 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** status = HAL_ERROR; + 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return status; + 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_BUSY; + 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Receive an amount of data in DMA mode till either the expected number + 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * of data is received or an IDLE event occurs. + 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved + 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * to DMA services, transferring automatically received data elements in user reception buf + ARM GAS /tmp/ccEfj1JP.s page 17 + + + 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * calling registered callbacks at half/end of reception. UART IDLE events are also used to + 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * reception phase as ended. In all cases, callback execution will indicate number of recei + 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note When the UART parity is enabled (PCE = 1), the received data contain + 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * the parity bit (MSB position). + 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M + 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the + 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * of uint16_t available through pData. + 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). + 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. + 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval HAL status + 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status; + 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check that a Rx process is not already ongoing */ + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->RxState == HAL_UART_STATE_READY) + 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if ((pData == NULL) || (Size == 0U)) + 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_ERROR; + 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_LOCK(huart); + 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set Reception type to reception till IDLE Event*/ + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** status = UART_Start_Receive_DMA(huart, pData, Size); + 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check Rx process has been successfully started */ + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (status == HAL_OK) + 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) + 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* In case of errors already pending when reception is started, + 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** Interrupts may have already been raised and lead to reception abortion. + 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (Overrun error for instance). + 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** status = HAL_ERROR; + 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return status; + 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** return HAL_BUSY; + 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 18 + + + 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @} + 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @} + 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** @addtogroup UARTEx_Private_Functions + 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @{ + 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Initialize the UART wake-up from stop mode parameters when triggered by address detectio + 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param WakeUpSelection UART wake up from stop mode parameters. + 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval None + 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** static void UARTEx_Wakeup_AddressConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelecti + 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 29 .loc 1 962 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 8 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 34 .loc 1 962 1 is_stmt 0 view .LVU1 + 35 0000 82B0 sub sp, sp, #8 + 36 .LCFI0: + 37 .cfi_def_cfa_offset 8 + 38 0002 02AB add r3, sp, #8 + 39 0004 03E90600 stmdb r3, {r1, r2} + 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_ADDRESSLENGTH_DETECT(WakeUpSelection.AddressLength)); + 40 .loc 1 963 3 is_stmt 1 view .LVU2 + 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the USART address length */ + 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, WakeUpSelection.AddressLength); + 41 .loc 1 966 3 view .LVU3 + 42 0008 0268 ldr r2, [r0] + 43 000a 5368 ldr r3, [r2, #4] + 44 000c 23F01003 bic r3, r3, #16 + 45 0010 BDF80410 ldrh r1, [sp, #4] + 46 0014 0B43 orrs r3, r3, r1 + 47 0016 5360 str r3, [r2, #4] + 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Set the USART address node */ + 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)WakeUpSelection.Address << UART_CR2_AD + 48 .loc 1 969 3 view .LVU4 + 49 0018 0268 ldr r2, [r0] + 50 001a 5368 ldr r3, [r2, #4] + 51 001c 23F07F43 bic r3, r3, #-16777216 + 52 0020 9DF80610 ldrb r1, [sp, #6] @ zero_extendqisi2 + 53 0024 43EA0163 orr r3, r3, r1, lsl #24 + 54 0028 5360 str r3, [r2, #4] + 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 55 .loc 1 970 1 is_stmt 0 view .LVU5 + 56 002a 02B0 add sp, sp, #8 + 57 .LCFI1: + ARM GAS /tmp/ccEfj1JP.s page 19 + + + 58 .cfi_def_cfa_offset 0 + 59 @ sp needed + 60 002c 7047 bx lr + 61 .cfi_endproc + 62 .LFE344: + 64 .section .text.UARTEx_SetNbDataToProcess,"ax",%progbits + 65 .align 1 + 66 .syntax unified + 67 .thumb + 68 .thumb_func + 70 UARTEx_SetNbDataToProcess: + 71 .LVL1: + 72 .LFB345: + 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /** + 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @brief Calculate the number of data to process in RX/TX ISR. + 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @note The RX FIFO depth and the TX FIFO depth is extracted from + 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * the UART configuration registers. + 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @param huart UART handle. + 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** * @retval None + 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** */ + 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** static void UARTEx_SetNbDataToProcess(UART_HandleTypeDef *huart) + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 73 .loc 1 980 1 is_stmt 1 view -0 + 74 .cfi_startproc + 75 @ args = 0, pretend = 0, frame = 0 + 76 @ frame_needed = 0, uses_anonymous_args = 0 + 77 @ link register save eliminated. + 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t rx_fifo_depth; + 78 .loc 1 981 3 view .LVU7 + 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t tx_fifo_depth; + 79 .loc 1 982 3 view .LVU8 + 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t rx_fifo_threshold; + 80 .loc 1 983 3 view .LVU9 + 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t tx_fifo_threshold; + 81 .loc 1 984 3 view .LVU10 + 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** static const uint8_t numerator[] = {1U, 1U, 1U, 3U, 7U, 1U, 0U, 0U}; + 82 .loc 1 985 3 view .LVU11 + 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** static const uint8_t denominator[] = {8U, 4U, 2U, 4U, 8U, 1U, 1U, 1U}; + 83 .loc 1 986 3 view .LVU12 + 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** if (huart->FifoMode == UART_FIFOMODE_DISABLE) + 84 .loc 1 988 3 view .LVU13 + 85 .loc 1 988 12 is_stmt 0 view .LVU14 + 86 0000 436E ldr r3, [r0, #100] + 87 .loc 1 988 6 view .LVU15 + 88 0002 2BB9 cbnz r3, .L4 + 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbTxDataToProcess = 1U; + 89 .loc 1 990 5 is_stmt 1 view .LVU16 + 90 .loc 1 990 30 is_stmt 0 view .LVU17 + 91 0004 0123 movs r3, #1 + 92 0006 A0F86A30 strh r3, [r0, #106] @ movhi + 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbRxDataToProcess = 1U; + 93 .loc 1 991 5 is_stmt 1 view .LVU18 + 94 .loc 1 991 30 is_stmt 0 view .LVU19 + 95 000a A0F86830 strh r3, [r0, #104] @ movhi + ARM GAS /tmp/ccEfj1JP.s page 20 + + + 96 000e 7047 bx lr + 97 .L4: + 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t rx_fifo_depth; + 98 .loc 1 980 1 view .LVU20 + 99 0010 30B4 push {r4, r5} + 100 .LCFI2: + 101 .cfi_def_cfa_offset 8 + 102 .cfi_offset 4, -8 + 103 .cfi_offset 5, -4 + 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** else + 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** rx_fifo_depth = RX_FIFO_DEPTH; + 104 .loc 1 995 5 is_stmt 1 view .LVU21 + 105 .LVL2: + 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tx_fifo_depth = TX_FIFO_DEPTH; + 106 .loc 1 996 5 view .LVU22 + 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** rx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RX + 107 .loc 1 997 5 view .LVU23 + 108 .loc 1 997 35 is_stmt 0 view .LVU24 + 109 0012 0368 ldr r3, [r0] + 110 0014 9A68 ldr r2, [r3, #8] + 111 .loc 1 997 23 view .LVU25 + 112 0016 C2F34262 ubfx r2, r2, #25, #3 + 113 .LVL3: + 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** tx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TX + 114 .loc 1 998 5 is_stmt 1 view .LVU26 + 115 .loc 1 998 35 is_stmt 0 view .LVU27 + 116 001a 9968 ldr r1, [r3, #8] + 117 .loc 1 998 23 view .LVU28 + 118 001c 490F lsrs r1, r1, #29 + 119 .LVL4: + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + 120 .loc 1 999 5 is_stmt 1 view .LVU29 + 121 .loc 1 999 68 is_stmt 0 view .LVU30 + 122 001e 094D ldr r5, .L9 + 123 0020 6B5C ldrb r3, [r5, r1] @ zero_extendqisi2 + 124 .loc 1 999 57 view .LVU31 + 125 0022 DB00 lsls r3, r3, #3 +1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (uint16_t)denominator[tx_fifo_threshold]; + 126 .loc 1 1000 53 view .LVU32 + 127 0024 084C ldr r4, .L9+4 + 128 0026 615C ldrb r1, [r4, r1] @ zero_extendqisi2 + 129 .LVL5: + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + 130 .loc 1 999 89 view .LVU33 + 131 0028 93FBF1F3 sdiv r3, r3, r1 + 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / + 132 .loc 1 999 30 view .LVU34 + 133 002c A0F86A30 strh r3, [r0, #106] @ movhi +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + 134 .loc 1 1001 5 is_stmt 1 view .LVU35 + 135 .loc 1 1001 68 is_stmt 0 view .LVU36 + 136 0030 AB5C ldrb r3, [r5, r2] @ zero_extendqisi2 + 137 .loc 1 1001 57 view .LVU37 + 138 0032 DB00 lsls r3, r3, #3 +1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** (uint16_t)denominator[rx_fifo_threshold]; + ARM GAS /tmp/ccEfj1JP.s page 21 + + + 139 .loc 1 1002 53 view .LVU38 + 140 0034 A25C ldrb r2, [r4, r2] @ zero_extendqisi2 + 141 .LVL6: +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + 142 .loc 1 1001 89 view .LVU39 + 143 0036 93FBF2F3 sdiv r3, r3, r2 +1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / + 144 .loc 1 1001 30 view .LVU40 + 145 003a A0F86830 strh r3, [r0, #104] @ movhi +1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } +1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 146 .loc 1 1004 1 view .LVU41 + 147 003e 30BC pop {r4, r5} + 148 .LCFI3: + 149 .cfi_restore 5 + 150 .cfi_restore 4 + 151 .cfi_def_cfa_offset 0 + 152 0040 7047 bx lr + 153 .L10: + 154 0042 00BF .align 2 + 155 .L9: + 156 0044 00000000 .word numerator.1 + 157 0048 00000000 .word denominator.0 + 158 .cfi_endproc + 159 .LFE345: + 161 .section .text.HAL_RS485Ex_Init,"ax",%progbits + 162 .align 1 + 163 .global HAL_RS485Ex_Init + 164 .syntax unified + 165 .thumb + 166 .thumb_func + 168 HAL_RS485Ex_Init: + 169 .LVL7: + 170 .LFB329: + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t temp; + 171 .loc 1 168 1 is_stmt 1 view -0 + 172 .cfi_startproc + 173 @ args = 0, pretend = 0, frame = 0 + 174 @ frame_needed = 0, uses_anonymous_args = 0 + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 175 .loc 1 169 3 view .LVU43 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 176 .loc 1 172 3 view .LVU44 + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 177 .loc 1 172 6 is_stmt 0 view .LVU45 + 178 0000 0028 cmp r0, #0 + 179 0002 3ED0 beq .L15 + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t temp; + 180 .loc 1 168 1 view .LVU46 + 181 0004 F8B5 push {r3, r4, r5, r6, r7, lr} + 182 .LCFI4: + 183 .cfi_def_cfa_offset 24 + 184 .cfi_offset 3, -24 + 185 .cfi_offset 4, -20 + 186 .cfi_offset 5, -16 + 187 .cfi_offset 6, -12 + 188 .cfi_offset 7, -8 + ARM GAS /tmp/ccEfj1JP.s page 22 + + + 189 .cfi_offset 14, -4 + 190 0006 0F46 mov r7, r1 + 191 0008 1646 mov r6, r2 + 192 000a 1D46 mov r5, r3 + 193 000c 0446 mov r4, r0 + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 194 .loc 1 177 3 is_stmt 1 view .LVU47 + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 195 .loc 1 180 3 view .LVU48 + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 196 .loc 1 183 3 view .LVU49 + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 197 .loc 1 186 3 view .LVU50 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 198 .loc 1 188 3 view .LVU51 + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 199 .loc 1 188 12 is_stmt 0 view .LVU52 + 200 000e D0F88430 ldr r3, [r0, #132] + 201 .LVL8: + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 202 .loc 1 188 6 view .LVU53 + 203 0012 6BB3 cbz r3, .L20 + 204 .LVL9: + 205 .L13: + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 206 .loc 1 209 3 is_stmt 1 view .LVU54 + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 207 .loc 1 209 17 is_stmt 0 view .LVU55 + 208 0014 2423 movs r3, #36 + 209 0016 C4F88430 str r3, [r4, #132] + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 210 .loc 1 212 3 is_stmt 1 view .LVU56 + 211 001a 2268 ldr r2, [r4] + 212 001c 1368 ldr r3, [r2] + 213 001e 23F00103 bic r3, r3, #1 + 214 0022 1360 str r3, [r2] + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 215 .loc 1 215 3 view .LVU57 + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 216 .loc 1 215 7 is_stmt 0 view .LVU58 + 217 0024 2046 mov r0, r4 + 218 0026 FFF7FEFF bl UART_SetConfig + 219 .LVL10: + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 220 .loc 1 215 6 view .LVU59 + 221 002a 0128 cmp r0, #1 + 222 002c 1FD0 beq .L12 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 223 .loc 1 220 3 is_stmt 1 view .LVU60 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 224 .loc 1 220 26 is_stmt 0 view .LVU61 + 225 002e A36A ldr r3, [r4, #40] + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 226 .loc 1 220 6 view .LVU62 + 227 0030 1BBB cbnz r3, .L21 + 228 .L14: + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 23 + + + 229 .loc 1 226 3 is_stmt 1 view .LVU63 + 230 0032 2268 ldr r2, [r4] + 231 0034 9368 ldr r3, [r2, #8] + 232 0036 43F48043 orr r3, r3, #16384 + 233 003a 9360 str r3, [r2, #8] + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 234 .loc 1 229 3 view .LVU64 + 235 003c 2268 ldr r2, [r4] + 236 003e 9368 ldr r3, [r2, #8] + 237 0040 23F40043 bic r3, r3, #32768 + 238 0044 3B43 orrs r3, r3, r7 + 239 0046 9360 str r3, [r2, #8] + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** temp |= (DeassertionTime << UART_CR1_DEDT_ADDRESS_LSB_POS); + 240 .loc 1 232 3 view .LVU65 + 241 .LVL11: + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR1, (USART_CR1_DEDT | USART_CR1_DEAT), temp); + 242 .loc 1 233 3 view .LVU66 + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR1, (USART_CR1_DEDT | USART_CR1_DEAT), temp); + 243 .loc 1 233 28 is_stmt 0 view .LVU67 + 244 0048 2D04 lsls r5, r5, #16 + 245 .LVL12: + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR1, (USART_CR1_DEDT | USART_CR1_DEAT), temp); + 246 .loc 1 233 8 view .LVU68 + 247 004a 45EA4652 orr r2, r5, r6, lsl #21 + 248 .LVL13: + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 249 .loc 1 234 3 is_stmt 1 view .LVU69 + 250 004e 2168 ldr r1, [r4] + 251 0050 0B68 ldr r3, [r1] + 252 0052 23F07F73 bic r3, r3, #66846720 + 253 0056 23F44033 bic r3, r3, #196608 + 254 005a 1343 orrs r3, r3, r2 + 255 005c 0B60 str r3, [r1] + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 256 .loc 1 237 3 view .LVU70 + 257 005e 2268 ldr r2, [r4] + 258 .LVL14: + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 259 .loc 1 237 3 is_stmt 0 view .LVU71 + 260 0060 1368 ldr r3, [r2] + 261 0062 43F00103 orr r3, r3, #1 + 262 0066 1360 str r3, [r2] + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 263 .loc 1 240 3 is_stmt 1 view .LVU72 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 264 .loc 1 240 11 is_stmt 0 view .LVU73 + 265 0068 2046 mov r0, r4 + 266 006a FFF7FEFF bl UART_CheckIdleState + 267 .LVL15: + 268 .L12: + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 269 .loc 1 241 1 view .LVU74 + 270 006e F8BD pop {r3, r4, r5, r6, r7, pc} + 271 .LVL16: + 272 .L20: + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 273 .loc 1 191 5 is_stmt 1 view .LVU75 + ARM GAS /tmp/ccEfj1JP.s page 24 + + + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 274 .loc 1 191 17 is_stmt 0 view .LVU76 + 275 0070 80F88030 strb r3, [r0, #128] + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 276 .loc 1 205 5 is_stmt 1 view .LVU77 + 277 0074 FFF7FEFF bl HAL_UART_MspInit + 278 .LVL17: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 279 .loc 1 205 5 is_stmt 0 view .LVU78 + 280 0078 CCE7 b .L13 + 281 .L21: + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 282 .loc 1 222 5 is_stmt 1 view .LVU79 + 283 007a 2046 mov r0, r4 + 284 007c FFF7FEFF bl UART_AdvFeatureConfig + 285 .LVL18: + 286 0080 D7E7 b .L14 + 287 .LVL19: + 288 .L15: + 289 .LCFI5: + 290 .cfi_def_cfa_offset 0 + 291 .cfi_restore 3 + 292 .cfi_restore 4 + 293 .cfi_restore 5 + 294 .cfi_restore 6 + 295 .cfi_restore 7 + 296 .cfi_restore 14 + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 297 .loc 1 174 12 is_stmt 0 view .LVU80 + 298 0082 0120 movs r0, #1 + 299 .LVL20: + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 300 .loc 1 241 1 view .LVU81 + 301 0084 7047 bx lr + 302 .cfi_endproc + 303 .LFE329: + 305 .section .text.HAL_UARTEx_WakeupCallback,"ax",%progbits + 306 .align 1 + 307 .weak HAL_UARTEx_WakeupCallback + 308 .syntax unified + 309 .thumb + 310 .thumb_func + 312 HAL_UARTEx_WakeupCallback: + 313 .LVL21: + 314 .LFB330: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */ + 315 .loc 1 273 1 is_stmt 1 view -0 + 316 .cfi_startproc + 317 @ args = 0, pretend = 0, frame = 0 + 318 @ frame_needed = 0, uses_anonymous_args = 0 + 319 @ link register save eliminated. + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 320 .loc 1 275 3 view .LVU83 + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 321 .loc 1 280 1 is_stmt 0 view .LVU84 + 322 0000 7047 bx lr + 323 .cfi_endproc + ARM GAS /tmp/ccEfj1JP.s page 25 + + + 324 .LFE330: + 326 .section .text.HAL_UARTEx_RxFifoFullCallback,"ax",%progbits + 327 .align 1 + 328 .weak HAL_UARTEx_RxFifoFullCallback + 329 .syntax unified + 330 .thumb + 331 .thumb_func + 333 HAL_UARTEx_RxFifoFullCallback: + 334 .LVL22: + 335 .LFB331: + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */ + 336 .loc 1 288 1 is_stmt 1 view -0 + 337 .cfi_startproc + 338 @ args = 0, pretend = 0, frame = 0 + 339 @ frame_needed = 0, uses_anonymous_args = 0 + 340 @ link register save eliminated. + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 341 .loc 1 290 3 view .LVU86 + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 342 .loc 1 295 1 is_stmt 0 view .LVU87 + 343 0000 7047 bx lr + 344 .cfi_endproc + 345 .LFE331: + 347 .section .text.HAL_UARTEx_TxFifoEmptyCallback,"ax",%progbits + 348 .align 1 + 349 .weak HAL_UARTEx_TxFifoEmptyCallback + 350 .syntax unified + 351 .thumb + 352 .thumb_func + 354 HAL_UARTEx_TxFifoEmptyCallback: + 355 .LVL23: + 356 .LFB332: + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */ + 357 .loc 1 303 1 is_stmt 1 view -0 + 358 .cfi_startproc + 359 @ args = 0, pretend = 0, frame = 0 + 360 @ frame_needed = 0, uses_anonymous_args = 0 + 361 @ link register save eliminated. + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 362 .loc 1 305 3 view .LVU89 + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 363 .loc 1 310 1 is_stmt 0 view .LVU90 + 364 0000 7047 bx lr + 365 .cfi_endproc + 366 .LFE332: + 368 .section .text.HAL_MultiProcessorEx_AddressLength_Set,"ax",%progbits + 369 .align 1 + 370 .global HAL_MultiProcessorEx_AddressLength_Set + 371 .syntax unified + 372 .thumb + 373 .thumb_func + 375 HAL_MultiProcessorEx_AddressLength_Set: + 376 .LVL24: + 377 .LFB333: + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the UART handle allocation */ + 378 .loc 1 388 1 is_stmt 1 view -0 + 379 .cfi_startproc + ARM GAS /tmp/ccEfj1JP.s page 26 + + + 380 @ args = 0, pretend = 0, frame = 0 + 381 @ frame_needed = 0, uses_anonymous_args = 0 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 382 .loc 1 390 3 view .LVU92 + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 383 .loc 1 390 6 is_stmt 0 view .LVU93 + 384 0000 C0B1 cbz r0, .L27 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Check the UART handle allocation */ + 385 .loc 1 388 1 view .LVU94 + 386 0002 08B5 push {r3, lr} + 387 .LCFI6: + 388 .cfi_def_cfa_offset 8 + 389 .cfi_offset 3, -8 + 390 .cfi_offset 14, -4 + 391 0004 0346 mov r3, r0 + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 392 .loc 1 396 3 is_stmt 1 view .LVU95 + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 393 .loc 1 398 3 view .LVU96 + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 394 .loc 1 398 17 is_stmt 0 view .LVU97 + 395 0006 2422 movs r2, #36 + 396 0008 C0F88420 str r2, [r0, #132] + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 397 .loc 1 401 3 is_stmt 1 view .LVU98 + 398 000c 0068 ldr r0, [r0] + 399 .LVL25: + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 400 .loc 1 401 3 is_stmt 0 view .LVU99 + 401 000e 0268 ldr r2, [r0] + 402 0010 22F00102 bic r2, r2, #1 + 403 0014 0260 str r2, [r0] + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 404 .loc 1 404 3 is_stmt 1 view .LVU100 + 405 0016 1868 ldr r0, [r3] + 406 0018 4268 ldr r2, [r0, #4] + 407 001a 22F01002 bic r2, r2, #16 + 408 001e 1143 orrs r1, r1, r2 + 409 .LVL26: + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 410 .loc 1 404 3 is_stmt 0 view .LVU101 + 411 0020 4160 str r1, [r0, #4] + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 412 .loc 1 407 3 is_stmt 1 view .LVU102 + 413 0022 1968 ldr r1, [r3] + 414 0024 0A68 ldr r2, [r1] + 415 0026 42F00102 orr r2, r2, #1 + 416 002a 0A60 str r2, [r1] + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 417 .loc 1 410 3 view .LVU103 + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 418 .loc 1 410 11 is_stmt 0 view .LVU104 + 419 002c 1846 mov r0, r3 + 420 002e FFF7FEFF bl UART_CheckIdleState + 421 .LVL27: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 422 .loc 1 411 1 view .LVU105 + ARM GAS /tmp/ccEfj1JP.s page 27 + + + 423 0032 08BD pop {r3, pc} + 424 .LVL28: + 425 .L27: + 426 .LCFI7: + 427 .cfi_def_cfa_offset 0 + 428 .cfi_restore 3 + 429 .cfi_restore 14 + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 430 .loc 1 392 12 view .LVU106 + 431 0034 0120 movs r0, #1 + 432 .LVL29: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 433 .loc 1 411 1 view .LVU107 + 434 0036 7047 bx lr + 435 .cfi_endproc + 436 .LFE333: + 438 .section .text.HAL_UARTEx_StopModeWakeUpSourceConfig,"ax",%progbits + 439 .align 1 + 440 .global HAL_UARTEx_StopModeWakeUpSourceConfig + 441 .syntax unified + 442 .thumb + 443 .thumb_func + 445 HAL_UARTEx_StopModeWakeUpSourceConfig: + 446 .LVL30: + 447 .LFB334: + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 448 .loc 1 426 1 is_stmt 1 view -0 + 449 .cfi_startproc + 450 @ args = 0, pretend = 0, frame = 8 + 451 @ frame_needed = 0, uses_anonymous_args = 0 + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status = HAL_OK; + 452 .loc 1 426 1 is_stmt 0 view .LVU109 + 453 0000 10B5 push {r4, lr} + 454 .LCFI8: + 455 .cfi_def_cfa_offset 8 + 456 .cfi_offset 4, -8 + 457 .cfi_offset 14, -4 + 458 0002 84B0 sub sp, sp, #16 + 459 .LCFI9: + 460 .cfi_def_cfa_offset 24 + 461 0004 04AB add r3, sp, #16 + 462 0006 03E90600 stmdb r3, {r1, r2} + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tickstart; + 463 .loc 1 427 3 is_stmt 1 view .LVU110 + 464 .LVL31: + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 465 .loc 1 428 3 view .LVU111 + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* check the wake-up selection parameter */ + 466 .loc 1 431 3 view .LVU112 + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 467 .loc 1 433 3 view .LVU113 + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 468 .loc 1 436 3 view .LVU114 + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 469 .loc 1 436 3 view .LVU115 + 470 000a 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 471 000e 012B cmp r3, #1 + ARM GAS /tmp/ccEfj1JP.s page 28 + + + 472 0010 35D0 beq .L36 + 473 0012 0446 mov r4, r0 + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 474 .loc 1 436 3 discriminator 2 view .LVU116 + 475 0014 0123 movs r3, #1 + 476 0016 80F88030 strb r3, [r0, #128] + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 477 .loc 1 436 3 discriminator 2 view .LVU117 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 478 .loc 1 438 3 discriminator 2 view .LVU118 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 479 .loc 1 438 17 is_stmt 0 discriminator 2 view .LVU119 + 480 001a 2423 movs r3, #36 + 481 001c C0F88430 str r3, [r0, #132] + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 482 .loc 1 441 3 is_stmt 1 discriminator 2 view .LVU120 + 483 0020 0268 ldr r2, [r0] + 484 0022 1368 ldr r3, [r2] + 485 0024 23F00103 bic r3, r3, #1 + 486 0028 1360 str r3, [r2] + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 487 .loc 1 444 3 discriminator 2 view .LVU121 + 488 002a 0168 ldr r1, [r0] + 489 002c 8B68 ldr r3, [r1, #8] + 490 002e 23F44013 bic r3, r3, #3145728 + 491 0032 029A ldr r2, [sp, #8] + 492 0034 1343 orrs r3, r3, r2 + 493 0036 8B60 str r3, [r1, #8] + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 494 .loc 1 446 3 discriminator 2 view .LVU122 + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 495 .loc 1 446 6 is_stmt 0 discriminator 2 view .LVU123 + 496 0038 AAB1 cbz r2, .L39 + 497 .LVL32: + 498 .L34: + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 499 .loc 1 452 3 is_stmt 1 view .LVU124 + 500 003a 2268 ldr r2, [r4] + 501 003c 1368 ldr r3, [r2] + 502 003e 43F00103 orr r3, r3, #1 + 503 0042 1360 str r3, [r2] + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 504 .loc 1 455 3 view .LVU125 + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 505 .loc 1 455 15 is_stmt 0 view .LVU126 + 506 0044 FFF7FEFF bl HAL_GetTick + 507 .LVL33: + 508 0048 0346 mov r3, r0 + 509 .LVL34: + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 510 .loc 1 458 3 is_stmt 1 view .LVU127 + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 511 .loc 1 458 7 is_stmt 0 view .LVU128 + 512 004a 6FF07E42 mvn r2, #-33554432 + 513 004e 0092 str r2, [sp] + 514 0050 0022 movs r2, #0 + 515 0052 4FF48001 mov r1, #4194304 + ARM GAS /tmp/ccEfj1JP.s page 29 + + + 516 0056 2046 mov r0, r4 + 517 .LVL35: + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 518 .loc 1 458 7 view .LVU129 + 519 0058 FFF7FEFF bl UART_WaitOnFlagUntilTimeout + 520 .LVL36: + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 521 .loc 1 458 6 view .LVU130 + 522 005c 48B9 cbnz r0, .L37 + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 523 .loc 1 465 5 is_stmt 1 view .LVU131 + 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 524 .loc 1 465 19 is_stmt 0 view .LVU132 + 525 005e 2023 movs r3, #32 + 526 0060 C4F88430 str r3, [r4, #132] + 527 0064 06E0 b .L35 + 528 .LVL37: + 529 .L39: + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 530 .loc 1 448 5 is_stmt 1 view .LVU133 + 531 0066 04AB add r3, sp, #16 + 532 0068 13E90600 ldmdb r3, {r1, r2} + 533 006c FFF7FEFF bl UARTEx_Wakeup_AddressConfig + 534 .LVL38: + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 535 .loc 1 448 5 is_stmt 0 view .LVU134 + 536 0070 E3E7 b .L34 + 537 .LVL39: + 538 .L37: + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 539 .loc 1 460 12 view .LVU135 + 540 0072 0320 movs r0, #3 + 541 .L35: + 542 .LVL40: + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 543 .loc 1 469 3 is_stmt 1 view .LVU136 + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 544 .loc 1 469 3 view .LVU137 + 545 0074 0023 movs r3, #0 + 546 0076 84F88030 strb r3, [r4, #128] + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 547 .loc 1 469 3 view .LVU138 + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 548 .loc 1 471 3 view .LVU139 + 549 .LVL41: + 550 .L33: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 551 .loc 1 472 1 is_stmt 0 view .LVU140 + 552 007a 04B0 add sp, sp, #16 + 553 .LCFI10: + 554 .cfi_remember_state + 555 .cfi_def_cfa_offset 8 + 556 @ sp needed + 557 007c 10BD pop {r4, pc} + 558 .LVL42: + 559 .L36: + 560 .LCFI11: + ARM GAS /tmp/ccEfj1JP.s page 30 + + + 561 .cfi_restore_state + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 562 .loc 1 436 3 view .LVU141 + 563 007e 0220 movs r0, #2 + 564 .LVL43: + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 565 .loc 1 436 3 view .LVU142 + 566 0080 FBE7 b .L33 + 567 .cfi_endproc + 568 .LFE334: + 570 .section .text.HAL_UARTEx_EnableStopMode,"ax",%progbits + 571 .align 1 + 572 .global HAL_UARTEx_EnableStopMode + 573 .syntax unified + 574 .thumb + 575 .thumb_func + 577 HAL_UARTEx_EnableStopMode: + 578 .LVL44: + 579 .LFB335: + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 580 .loc 1 481 1 is_stmt 1 view -0 + 581 .cfi_startproc + 582 @ args = 0, pretend = 0, frame = 0 + 583 @ frame_needed = 0, uses_anonymous_args = 0 + 584 @ link register save eliminated. + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 585 .loc 1 483 3 view .LVU144 + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 586 .loc 1 483 3 view .LVU145 + 587 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 588 0004 012B cmp r3, #1 + 589 0006 10D0 beq .L43 + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 590 .loc 1 483 3 discriminator 2 view .LVU146 + 591 0008 0123 movs r3, #1 + 592 000a 80F88030 strb r3, [r0, #128] + 593 .L42: + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 594 .loc 1 483 3 discriminator 1 view .LVU147 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 595 .loc 1 486 3 discriminator 1 view .LVU148 + 596 .LBB22: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 597 .loc 1 486 3 discriminator 1 view .LVU149 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 598 .loc 1 486 3 discriminator 1 view .LVU150 + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 599 .loc 1 486 3 discriminator 1 view .LVU151 + 600 000e 0268 ldr r2, [r0] + 601 .LVL45: + 602 .LBB23: + 603 .LBI23: + 604 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" + 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** + 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h + 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file + 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.2.0 + ARM GAS /tmp/ccEfj1JP.s page 31 + + + 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 + 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ + 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* + 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 Arm Limited. All rights reserved. + 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 + 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may + 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. + 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at + 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 + 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * + 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software + 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT + 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and + 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. + 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 24:Drivers/CMSIS/Include/cmsis_gcc.h **** + 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H + 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H + 27:Drivers/CMSIS/Include/cmsis_gcc.h **** + 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ + 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" + 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" + 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" + 33:Drivers/CMSIS/Include/cmsis_gcc.h **** + 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ + 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin + 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) + 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 38:Drivers/CMSIS/Include/cmsis_gcc.h **** + 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ + 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM + 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm + 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE + 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline + 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE + 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline + 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE + 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline + 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN + 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) + 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED + 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) + 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK + 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) + 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED + ARM GAS /tmp/ccEfj1JP.s page 32 + + + 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) + 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT + 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION + 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) + 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ + 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE + 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- + 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ + 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add + 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE + 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- + 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ + 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push + 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" + 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" + 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop + 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add + 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED + 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) + 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT + 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict + 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER + 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") + 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccEfj1JP.s page 33 + + + 119:Drivers/CMSIS/Include/cmsis_gcc.h **** + 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ + 121:Drivers/CMSIS/Include/cmsis_gcc.h **** + 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START + 123:Drivers/CMSIS/Include/cmsis_gcc.h **** + 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections + 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss + 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly + 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. + 129:Drivers/CMSIS/Include/cmsis_gcc.h **** + 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) + 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; + 134:Drivers/CMSIS/Include/cmsis_gcc.h **** + 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; + 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; + 140:Drivers/CMSIS/Include/cmsis_gcc.h **** + 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { + 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; + 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; + 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; + 145:Drivers/CMSIS/Include/cmsis_gcc.h **** + 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; + 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; + 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; + 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; + 150:Drivers/CMSIS/Include/cmsis_gcc.h **** + 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable + 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; + 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 156:Drivers/CMSIS/Include/cmsis_gcc.h **** + 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable + 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { + 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; + 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 162:Drivers/CMSIS/Include/cmsis_gcc.h **** + 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); + 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 165:Drivers/CMSIS/Include/cmsis_gcc.h **** + 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start + 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 168:Drivers/CMSIS/Include/cmsis_gcc.h **** + 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP + 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop + 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 172:Drivers/CMSIS/Include/cmsis_gcc.h **** + 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT + 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit + 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccEfj1JP.s page 34 + + + 176:Drivers/CMSIS/Include/cmsis_gcc.h **** + 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE + 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors + 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 180:Drivers/CMSIS/Include/cmsis_gcc.h **** + 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE + 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute((used, section(".vectors"))) + 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 184:Drivers/CMSIS/Include/cmsis_gcc.h **** + 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ + 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface + 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 190:Drivers/CMSIS/Include/cmsis_gcc.h **** + 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts + 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) + 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); + 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 200:Drivers/CMSIS/Include/cmsis_gcc.h **** + 201:Drivers/CMSIS/Include/cmsis_gcc.h **** + 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts + 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. + 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) + 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); + 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 211:Drivers/CMSIS/Include/cmsis_gcc.h **** + 212:Drivers/CMSIS/Include/cmsis_gcc.h **** + 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register + 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. + 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value + 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) + 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 221:Drivers/CMSIS/Include/cmsis_gcc.h **** + 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); + 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 225:Drivers/CMSIS/Include/cmsis_gcc.h **** + 226:Drivers/CMSIS/Include/cmsis_gcc.h **** + 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) + 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. + 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value + 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + ARM GAS /tmp/ccEfj1JP.s page 35 + + + 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) + 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 236:Drivers/CMSIS/Include/cmsis_gcc.h **** + 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 241:Drivers/CMSIS/Include/cmsis_gcc.h **** + 242:Drivers/CMSIS/Include/cmsis_gcc.h **** + 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register + 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. + 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) + 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); + 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 252:Drivers/CMSIS/Include/cmsis_gcc.h **** + 253:Drivers/CMSIS/Include/cmsis_gcc.h **** + 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) + 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. + 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set + 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) + 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); + 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 265:Drivers/CMSIS/Include/cmsis_gcc.h **** + 266:Drivers/CMSIS/Include/cmsis_gcc.h **** + 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register + 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. + 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value + 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) + 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 275:Drivers/CMSIS/Include/cmsis_gcc.h **** + 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 279:Drivers/CMSIS/Include/cmsis_gcc.h **** + 280:Drivers/CMSIS/Include/cmsis_gcc.h **** + 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register + 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. + 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value + 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) + 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 289:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccEfj1JP.s page 36 + + + 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 293:Drivers/CMSIS/Include/cmsis_gcc.h **** + 294:Drivers/CMSIS/Include/cmsis_gcc.h **** + 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register + 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. + 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value + 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) + 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 303:Drivers/CMSIS/Include/cmsis_gcc.h **** + 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 307:Drivers/CMSIS/Include/cmsis_gcc.h **** + 308:Drivers/CMSIS/Include/cmsis_gcc.h **** + 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer + 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). + 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) + 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 317:Drivers/CMSIS/Include/cmsis_gcc.h **** + 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); + 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 321:Drivers/CMSIS/Include/cmsis_gcc.h **** + 322:Drivers/CMSIS/Include/cmsis_gcc.h **** + 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) + 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s + 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value + 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) + 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 332:Drivers/CMSIS/Include/cmsis_gcc.h **** + 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 337:Drivers/CMSIS/Include/cmsis_gcc.h **** + 338:Drivers/CMSIS/Include/cmsis_gcc.h **** + 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer + 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). + 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) + 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); + ARM GAS /tmp/ccEfj1JP.s page 37 + + + 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 348:Drivers/CMSIS/Include/cmsis_gcc.h **** + 349:Drivers/CMSIS/Include/cmsis_gcc.h **** + 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta + 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set + 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) + 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); + 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 361:Drivers/CMSIS/Include/cmsis_gcc.h **** + 362:Drivers/CMSIS/Include/cmsis_gcc.h **** + 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer + 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). + 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) + 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 371:Drivers/CMSIS/Include/cmsis_gcc.h **** + 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); + 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 375:Drivers/CMSIS/Include/cmsis_gcc.h **** + 376:Drivers/CMSIS/Include/cmsis_gcc.h **** + 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) + 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat + 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value + 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) + 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 386:Drivers/CMSIS/Include/cmsis_gcc.h **** + 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 391:Drivers/CMSIS/Include/cmsis_gcc.h **** + 392:Drivers/CMSIS/Include/cmsis_gcc.h **** + 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer + 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). + 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) + 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); + 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 402:Drivers/CMSIS/Include/cmsis_gcc.h **** + 403:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccEfj1JP.s page 38 + + + 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) + 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set + 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) + 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); + 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 415:Drivers/CMSIS/Include/cmsis_gcc.h **** + 416:Drivers/CMSIS/Include/cmsis_gcc.h **** + 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) + 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value + 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) + 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 426:Drivers/CMSIS/Include/cmsis_gcc.h **** + 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 430:Drivers/CMSIS/Include/cmsis_gcc.h **** + 431:Drivers/CMSIS/Include/cmsis_gcc.h **** + 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) + 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set + 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) + 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); + 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 442:Drivers/CMSIS/Include/cmsis_gcc.h **** + 443:Drivers/CMSIS/Include/cmsis_gcc.h **** + 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask + 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. + 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) + 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 452:Drivers/CMSIS/Include/cmsis_gcc.h **** + 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 456:Drivers/CMSIS/Include/cmsis_gcc.h **** + 457:Drivers/CMSIS/Include/cmsis_gcc.h **** + 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) + ARM GAS /tmp/ccEfj1JP.s page 39 + + + 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg + 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value + 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) + 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 467:Drivers/CMSIS/Include/cmsis_gcc.h **** + 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 472:Drivers/CMSIS/Include/cmsis_gcc.h **** + 473:Drivers/CMSIS/Include/cmsis_gcc.h **** + 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask + 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. + 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) + 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); + 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 483:Drivers/CMSIS/Include/cmsis_gcc.h **** + 484:Drivers/CMSIS/Include/cmsis_gcc.h **** + 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) + 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask + 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) + 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); + 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 496:Drivers/CMSIS/Include/cmsis_gcc.h **** + 497:Drivers/CMSIS/Include/cmsis_gcc.h **** + 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ + 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) + 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); + 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 510:Drivers/CMSIS/Include/cmsis_gcc.h **** + 511:Drivers/CMSIS/Include/cmsis_gcc.h **** + 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ + 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. + 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. + 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) + ARM GAS /tmp/ccEfj1JP.s page 40 + + + 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); + 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 521:Drivers/CMSIS/Include/cmsis_gcc.h **** + 522:Drivers/CMSIS/Include/cmsis_gcc.h **** + 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority + 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. + 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) + 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 531:Drivers/CMSIS/Include/cmsis_gcc.h **** + 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 535:Drivers/CMSIS/Include/cmsis_gcc.h **** + 536:Drivers/CMSIS/Include/cmsis_gcc.h **** + 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) + 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. + 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value + 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) + 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 546:Drivers/CMSIS/Include/cmsis_gcc.h **** + 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 551:Drivers/CMSIS/Include/cmsis_gcc.h **** + 552:Drivers/CMSIS/Include/cmsis_gcc.h **** + 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority + 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. + 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) + 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); + 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 562:Drivers/CMSIS/Include/cmsis_gcc.h **** + 563:Drivers/CMSIS/Include/cmsis_gcc.h **** + 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) + 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. + 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) + 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); + 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + ARM GAS /tmp/ccEfj1JP.s page 41 + + + 575:Drivers/CMSIS/Include/cmsis_gcc.h **** + 576:Drivers/CMSIS/Include/cmsis_gcc.h **** + 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition + 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable + 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. + 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set + 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) + 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); + 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 587:Drivers/CMSIS/Include/cmsis_gcc.h **** + 588:Drivers/CMSIS/Include/cmsis_gcc.h **** + 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask + 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. + 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) + 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 597:Drivers/CMSIS/Include/cmsis_gcc.h **** + 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 601:Drivers/CMSIS/Include/cmsis_gcc.h **** + 602:Drivers/CMSIS/Include/cmsis_gcc.h **** + 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) + 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. + 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value + 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) + 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 612:Drivers/CMSIS/Include/cmsis_gcc.h **** + 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 617:Drivers/CMSIS/Include/cmsis_gcc.h **** + 618:Drivers/CMSIS/Include/cmsis_gcc.h **** + 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask + 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. + 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) + 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); + 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 628:Drivers/CMSIS/Include/cmsis_gcc.h **** + 629:Drivers/CMSIS/Include/cmsis_gcc.h **** + 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + ARM GAS /tmp/ccEfj1JP.s page 42 + + + 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) + 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. + 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set + 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) + 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); + 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 641:Drivers/CMSIS/Include/cmsis_gcc.h **** + 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + 645:Drivers/CMSIS/Include/cmsis_gcc.h **** + 646:Drivers/CMSIS/Include/cmsis_gcc.h **** + 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + 649:Drivers/CMSIS/Include/cmsis_gcc.h **** + 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit + 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 655:Drivers/CMSIS/Include/cmsis_gcc.h **** + 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) + 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 671:Drivers/CMSIS/Include/cmsis_gcc.h **** + 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) + 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 677:Drivers/CMSIS/Include/cmsis_gcc.h **** + 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in + 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value + 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) + 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + ARM GAS /tmp/ccEfj1JP.s page 43 + + + 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 693:Drivers/CMSIS/Include/cmsis_gcc.h **** + 694:Drivers/CMSIS/Include/cmsis_gcc.h **** + 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit + 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 700:Drivers/CMSIS/Include/cmsis_gcc.h **** + 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) + 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); + 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 714:Drivers/CMSIS/Include/cmsis_gcc.h **** + 715:Drivers/CMSIS/Include/cmsis_gcc.h **** + 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) + 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 721:Drivers/CMSIS/Include/cmsis_gcc.h **** + 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s + 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) + 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI + 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; + 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); + 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 735:Drivers/CMSIS/Include/cmsis_gcc.h **** + 736:Drivers/CMSIS/Include/cmsis_gcc.h **** + 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit + 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure + 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 742:Drivers/CMSIS/Include/cmsis_gcc.h **** + 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + ARM GAS /tmp/ccEfj1JP.s page 44 + + + 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) + 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 758:Drivers/CMSIS/Include/cmsis_gcc.h **** + 759:Drivers/CMSIS/Include/cmsis_gcc.h **** + 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) + 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. + 765:Drivers/CMSIS/Include/cmsis_gcc.h **** + 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec + 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value + 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) + 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; + 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 781:Drivers/CMSIS/Include/cmsis_gcc.h **** + 782:Drivers/CMSIS/Include/cmsis_gcc.h **** + 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit + 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure + 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. + 788:Drivers/CMSIS/Include/cmsis_gcc.h **** + 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) + 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); + 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 802:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccEfj1JP.s page 45 + + + 803:Drivers/CMSIS/Include/cmsis_gcc.h **** + 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) + 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) + 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. + 809:Drivers/CMSIS/Include/cmsis_gcc.h **** + 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu + 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set + 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) + 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI + 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; + 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); + 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 823:Drivers/CMSIS/Include/cmsis_gcc.h **** + 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + 826:Drivers/CMSIS/Include/cmsis_gcc.h **** + 827:Drivers/CMSIS/Include/cmsis_gcc.h **** + 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR + 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. + 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value + 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) + 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) + 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); + 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 844:Drivers/CMSIS/Include/cmsis_gcc.h **** + 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); + 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 852:Drivers/CMSIS/Include/cmsis_gcc.h **** + 853:Drivers/CMSIS/Include/cmsis_gcc.h **** + 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR + 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. + 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set + 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) + ARM GAS /tmp/ccEfj1JP.s page 46 + + + 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) + 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed + 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); + 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); + 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; + 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 875:Drivers/CMSIS/Include/cmsis_gcc.h **** + 876:Drivers/CMSIS/Include/cmsis_gcc.h **** + 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ + 878:Drivers/CMSIS/Include/cmsis_gcc.h **** + 879:Drivers/CMSIS/Include/cmsis_gcc.h **** + 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ + 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions + 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ + 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 885:Drivers/CMSIS/Include/cmsis_gcc.h **** + 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. + 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" + 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ + 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) + 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) + 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) + 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) + 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) + 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) + 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) + 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 898:Drivers/CMSIS/Include/cmsis_gcc.h **** + 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation + 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. + 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") + 904:Drivers/CMSIS/Include/cmsis_gcc.h **** + 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt + 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o + 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") + 910:Drivers/CMSIS/Include/cmsis_gcc.h **** + 911:Drivers/CMSIS/Include/cmsis_gcc.h **** + 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event + 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter + 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. + 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + ARM GAS /tmp/ccEfj1JP.s page 47 + + + 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") + 918:Drivers/CMSIS/Include/cmsis_gcc.h **** + 919:Drivers/CMSIS/Include/cmsis_gcc.h **** + 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event + 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") + 925:Drivers/CMSIS/Include/cmsis_gcc.h **** + 926:Drivers/CMSIS/Include/cmsis_gcc.h **** + 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier + 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, + 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, + 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. + 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) + 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); + 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 937:Drivers/CMSIS/Include/cmsis_gcc.h **** + 938:Drivers/CMSIS/Include/cmsis_gcc.h **** + 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier + 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. + 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. + 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) + 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); + 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 948:Drivers/CMSIS/Include/cmsis_gcc.h **** + 949:Drivers/CMSIS/Include/cmsis_gcc.h **** + 950:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier + 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before + 953:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. + 954:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 955:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) + 956:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 957:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); + 958:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 959:Drivers/CMSIS/Include/cmsis_gcc.h **** + 960:Drivers/CMSIS/Include/cmsis_gcc.h **** + 961:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 962:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) + 963:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 + 964:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 965:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 966:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 967:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) + 968:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 969:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + 970:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); + 971:Drivers/CMSIS/Include/cmsis_gcc.h **** #else + 972:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 973:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccEfj1JP.s page 48 + + + 974:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 975:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 976:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif + 977:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 978:Drivers/CMSIS/Include/cmsis_gcc.h **** + 979:Drivers/CMSIS/Include/cmsis_gcc.h **** + 980:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 981:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 982:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes + 983:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 984:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value + 985:Drivers/CMSIS/Include/cmsis_gcc.h **** */ + 986:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) + 987:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 988:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 989:Drivers/CMSIS/Include/cmsis_gcc.h **** + 990:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + 991:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; + 992:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 993:Drivers/CMSIS/Include/cmsis_gcc.h **** + 994:Drivers/CMSIS/Include/cmsis_gcc.h **** + 995:Drivers/CMSIS/Include/cmsis_gcc.h **** /** + 996:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) + 997:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam + 998:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse + 999:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1000:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1001:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +1002:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1003:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1004:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); +1005:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1006:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; +1007:Drivers/CMSIS/Include/cmsis_gcc.h **** +1008:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); +1009:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1010:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1011:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1012:Drivers/CMSIS/Include/cmsis_gcc.h **** +1013:Drivers/CMSIS/Include/cmsis_gcc.h **** +1014:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1015:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) +1016:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v +1017:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate +1018:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate +1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value +1020:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1021:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +1022:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1023:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; +1024:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) +1025:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1026:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; +1027:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1028:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); +1029:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1030:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccEfj1JP.s page 49 + + +1031:Drivers/CMSIS/Include/cmsis_gcc.h **** +1032:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1033:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint +1034:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. +1035:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula +1036:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. +1037:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break +1038:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1039:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) +1040:Drivers/CMSIS/Include/cmsis_gcc.h **** +1041:Drivers/CMSIS/Include/cmsis_gcc.h **** +1042:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value +1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. +1045:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse +1046:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value +1047:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1048:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +1049:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1050:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1051:Drivers/CMSIS/Include/cmsis_gcc.h **** +1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1053:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1054:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +1055:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +1056:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1057:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ +1058:Drivers/CMSIS/Include/cmsis_gcc.h **** +1059:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ +1060:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) +1061:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1062:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; +1063:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; +1064:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; +1065:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1066:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ +1067:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1068:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; +1069:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1070:Drivers/CMSIS/Include/cmsis_gcc.h **** +1071:Drivers/CMSIS/Include/cmsis_gcc.h **** +1072:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1073:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros +1074:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. +1075:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros +1076:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value +1077:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1078:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +1079:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1080:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Even though __builtin_clz produces a CLZ instruction on ARM, formally +1081:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_clz(0) is undefined behaviour, so handle this case specially. +1082:Drivers/CMSIS/Include/cmsis_gcc.h **** This guarantees ARM-compatible results if happening to compile on a non-ARM +1083:Drivers/CMSIS/Include/cmsis_gcc.h **** target, and ensures the compiler doesn't decide to activate any +1084:Drivers/CMSIS/Include/cmsis_gcc.h **** optimisations using the logic "value was passed to __builtin_clz, so it +1085:Drivers/CMSIS/Include/cmsis_gcc.h **** is non-zero". +1086:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a +1087:Drivers/CMSIS/Include/cmsis_gcc.h **** single CLZ instruction. + ARM GAS /tmp/ccEfj1JP.s page 50 + + +1088:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1089:Drivers/CMSIS/Include/cmsis_gcc.h **** if (value == 0U) +1090:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1091:Drivers/CMSIS/Include/cmsis_gcc.h **** return 32U; +1092:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1093:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_clz(value); +1094:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1095:Drivers/CMSIS/Include/cmsis_gcc.h **** +1096:Drivers/CMSIS/Include/cmsis_gcc.h **** +1097:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ +1098:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ +1099:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ +1100:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +1101:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1102:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (8 bit) +1103:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 8 bit value. +1104:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data +1105:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint8_t at (*ptr) +1106:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1107:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +1108:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1109:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1110:Drivers/CMSIS/Include/cmsis_gcc.h **** +1111:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1112:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +1113:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1114:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not +1115:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. +1116:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1117:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +1118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1119:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint8_t) result); /* Add explicit type cast here */ +1120:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1121:Drivers/CMSIS/Include/cmsis_gcc.h **** +1122:Drivers/CMSIS/Include/cmsis_gcc.h **** +1123:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1124:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (16 bit) +1125:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 16 bit values. +1126:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data +1127:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr) +1128:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +1130:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1131:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1132:Drivers/CMSIS/Include/cmsis_gcc.h **** +1133:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +1134:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +1135:Drivers/CMSIS/Include/cmsis_gcc.h **** #else +1136:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not +1137:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. +1138:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1139:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +1140:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif +1141:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint16_t) result); /* Add explicit type cast here */ +1142:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1143:Drivers/CMSIS/Include/cmsis_gcc.h **** +1144:Drivers/CMSIS/Include/cmsis_gcc.h **** + ARM GAS /tmp/ccEfj1JP.s page 51 + + +1145:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1146:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (32 bit) +1147:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 32 bit values. +1148:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data +1149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint32_t at (*ptr) +1150:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) + 605 .loc 2 1151 31 discriminator 1 view .LVU152 + 606 .LBB24: +1152:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 607 .loc 2 1153 5 discriminator 1 view .LVU153 +1154:Drivers/CMSIS/Include/cmsis_gcc.h **** +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + 608 .loc 2 1155 4 discriminator 1 view .LVU154 + 609 .syntax unified + 610 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 611 0010 52E8003F ldrex r3, [r2] + 612 @ 0 "" 2 + 613 .LVL46: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 614 .loc 2 1156 4 discriminator 1 view .LVU155 + 615 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU156 + 616 .thumb + 617 .syntax unified + 618 .LBE24: + 619 .LBE23: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 620 .loc 1 486 3 discriminator 1 view .LVU157 + 621 0014 43F00203 orr r3, r3, #2 + 622 .LVL47: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 623 .loc 1 486 3 is_stmt 1 discriminator 1 view .LVU158 + 624 .LBB25: + 625 .LBI25: +1157:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1158:Drivers/CMSIS/Include/cmsis_gcc.h **** +1159:Drivers/CMSIS/Include/cmsis_gcc.h **** +1160:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1161:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (8 bit) +1162:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 8 bit values. +1163:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store +1164:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location +1165:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded +1166:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed +1167:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1168:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +1169:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1170:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1171:Drivers/CMSIS/Include/cmsis_gcc.h **** +1172:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); +1173:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); +1174:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1175:Drivers/CMSIS/Include/cmsis_gcc.h **** +1176:Drivers/CMSIS/Include/cmsis_gcc.h **** +1177:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1178:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (16 bit) + ARM GAS /tmp/ccEfj1JP.s page 52 + + +1179:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 16 bit values. +1180:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store +1181:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location +1182:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded +1183:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed +1184:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1185:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +1186:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1187:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; +1188:Drivers/CMSIS/Include/cmsis_gcc.h **** +1189:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); +1190:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); +1191:Drivers/CMSIS/Include/cmsis_gcc.h **** } +1192:Drivers/CMSIS/Include/cmsis_gcc.h **** +1193:Drivers/CMSIS/Include/cmsis_gcc.h **** +1194:Drivers/CMSIS/Include/cmsis_gcc.h **** /** +1195:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (32 bit) +1196:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 32 bit values. +1197:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store +1198:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location +1199:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded +1200:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed +1201:Drivers/CMSIS/Include/cmsis_gcc.h **** */ +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) + 626 .loc 2 1202 31 discriminator 1 view .LVU159 + 627 .LBB26: +1203:Drivers/CMSIS/Include/cmsis_gcc.h **** { +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; + 628 .loc 2 1204 4 discriminator 1 view .LVU160 +1205:Drivers/CMSIS/Include/cmsis_gcc.h **** +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + 629 .loc 2 1206 4 discriminator 1 view .LVU161 + 630 .syntax unified + 631 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 632 0018 42E80031 strex r1, r3, [r2] + 633 @ 0 "" 2 + 634 .LVL48: +1207:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 635 .loc 2 1207 4 discriminator 1 view .LVU162 + 636 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU163 + 637 .thumb + 638 .syntax unified + 639 .LBE26: + 640 .LBE25: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 641 .loc 1 486 3 discriminator 1 view .LVU164 + 642 001c 0029 cmp r1, #0 + 643 001e F6D1 bne .L42 + 644 .LBE22: + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 645 .loc 1 486 3 is_stmt 1 discriminator 2 view .LVU165 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 646 .loc 1 489 3 discriminator 2 view .LVU166 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 647 .loc 1 489 3 discriminator 2 view .LVU167 + 648 0020 0023 movs r3, #0 + 649 .LVL49: + ARM GAS /tmp/ccEfj1JP.s page 53 + + + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 650 .loc 1 489 3 is_stmt 0 discriminator 2 view .LVU168 + 651 0022 80F88030 strb r3, [r0, #128] + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 652 .loc 1 489 3 is_stmt 1 discriminator 2 view .LVU169 + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 653 .loc 1 491 3 discriminator 2 view .LVU170 + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 654 .loc 1 491 10 is_stmt 0 discriminator 2 view .LVU171 + 655 0026 1846 mov r0, r3 + 656 .LVL50: + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 657 .loc 1 491 10 discriminator 2 view .LVU172 + 658 0028 7047 bx lr + 659 .LVL51: + 660 .L43: + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 661 .loc 1 483 3 view .LVU173 + 662 002a 0220 movs r0, #2 + 663 .LVL52: + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 664 .loc 1 492 1 view .LVU174 + 665 002c 7047 bx lr + 666 .cfi_endproc + 667 .LFE335: + 669 .section .text.HAL_UARTEx_DisableStopMode,"ax",%progbits + 670 .align 1 + 671 .global HAL_UARTEx_DisableStopMode + 672 .syntax unified + 673 .thumb + 674 .thumb_func + 676 HAL_UARTEx_DisableStopMode: + 677 .LVL53: + 678 .LFB336: + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* Process Locked */ + 679 .loc 1 500 1 is_stmt 1 view -0 + 680 .cfi_startproc + 681 @ args = 0, pretend = 0, frame = 0 + 682 @ frame_needed = 0, uses_anonymous_args = 0 + 683 @ link register save eliminated. + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 684 .loc 1 502 3 view .LVU176 + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 685 .loc 1 502 3 view .LVU177 + 686 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 687 0004 012B cmp r3, #1 + 688 0006 10D0 beq .L47 + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 689 .loc 1 502 3 discriminator 2 view .LVU178 + 690 0008 0123 movs r3, #1 + 691 000a 80F88030 strb r3, [r0, #128] + 692 .L46: + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 693 .loc 1 502 3 discriminator 1 view .LVU179 + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 694 .loc 1 505 3 discriminator 1 view .LVU180 + 695 .LBB27: + ARM GAS /tmp/ccEfj1JP.s page 54 + + + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 696 .loc 1 505 3 discriminator 1 view .LVU181 + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 697 .loc 1 505 3 discriminator 1 view .LVU182 + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 698 .loc 1 505 3 discriminator 1 view .LVU183 + 699 000e 0268 ldr r2, [r0] + 700 .LVL54: + 701 .LBB28: + 702 .LBI28: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 703 .loc 2 1151 31 discriminator 1 view .LVU184 + 704 .LBB29: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 705 .loc 2 1153 5 discriminator 1 view .LVU185 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 706 .loc 2 1155 4 discriminator 1 view .LVU186 + 707 .syntax unified + 708 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 709 0010 52E8003F ldrex r3, [r2] + 710 @ 0 "" 2 + 711 .LVL55: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 712 .loc 2 1156 4 discriminator 1 view .LVU187 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 713 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU188 + 714 .thumb + 715 .syntax unified + 716 .LBE29: + 717 .LBE28: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 718 .loc 1 505 3 discriminator 1 view .LVU189 + 719 0014 23F00203 bic r3, r3, #2 + 720 .LVL56: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 721 .loc 1 505 3 is_stmt 1 discriminator 1 view .LVU190 + 722 .LBB30: + 723 .LBI30: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 724 .loc 2 1202 31 discriminator 1 view .LVU191 + 725 .LBB31: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 726 .loc 2 1204 4 discriminator 1 view .LVU192 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 727 .loc 2 1206 4 discriminator 1 view .LVU193 + 728 .syntax unified + 729 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 730 0018 42E80031 strex r1, r3, [r2] + 731 @ 0 "" 2 + 732 .LVL57: + 733 .loc 2 1207 4 discriminator 1 view .LVU194 + 734 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU195 + 735 .thumb + 736 .syntax unified + 737 .LBE31: + 738 .LBE30: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 55 + + + 739 .loc 1 505 3 discriminator 1 view .LVU196 + 740 001c 0029 cmp r1, #0 + 741 001e F6D1 bne .L46 + 742 .LBE27: + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 743 .loc 1 505 3 is_stmt 1 discriminator 2 view .LVU197 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 744 .loc 1 508 3 discriminator 2 view .LVU198 + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 745 .loc 1 508 3 discriminator 2 view .LVU199 + 746 0020 0023 movs r3, #0 + 747 .LVL58: + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 748 .loc 1 508 3 is_stmt 0 discriminator 2 view .LVU200 + 749 0022 80F88030 strb r3, [r0, #128] + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 750 .loc 1 508 3 is_stmt 1 discriminator 2 view .LVU201 + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 751 .loc 1 510 3 discriminator 2 view .LVU202 + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 752 .loc 1 510 10 is_stmt 0 discriminator 2 view .LVU203 + 753 0026 1846 mov r0, r3 + 754 .LVL59: + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 755 .loc 1 510 10 discriminator 2 view .LVU204 + 756 0028 7047 bx lr + 757 .LVL60: + 758 .L47: + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 759 .loc 1 502 3 view .LVU205 + 760 002a 0220 movs r0, #2 + 761 .LVL61: + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 762 .loc 1 511 1 view .LVU206 + 763 002c 7047 bx lr + 764 .cfi_endproc + 765 .LFE336: + 767 .section .text.HAL_UARTEx_EnableFifoMode,"ax",%progbits + 768 .align 1 + 769 .global HAL_UARTEx_EnableFifoMode + 770 .syntax unified + 771 .thumb + 772 .thumb_func + 774 HAL_UARTEx_EnableFifoMode: + 775 .LVL62: + 776 .LFB337: + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 777 .loc 1 519 1 is_stmt 1 view -0 + 778 .cfi_startproc + 779 @ args = 0, pretend = 0, frame = 0 + 780 @ frame_needed = 0, uses_anonymous_args = 0 + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 781 .loc 1 520 3 view .LVU208 + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 782 .loc 1 523 3 view .LVU209 + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 783 .loc 1 526 3 view .LVU210 + ARM GAS /tmp/ccEfj1JP.s page 56 + + + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 784 .loc 1 526 3 view .LVU211 + 785 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 786 0004 012B cmp r3, #1 + 787 0006 1DD0 beq .L50 + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 788 .loc 1 519 1 is_stmt 0 discriminator 2 view .LVU212 + 789 0008 10B5 push {r4, lr} + 790 .LCFI12: + 791 .cfi_def_cfa_offset 8 + 792 .cfi_offset 4, -8 + 793 .cfi_offset 14, -4 + 794 000a 0446 mov r4, r0 + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 795 .loc 1 526 3 is_stmt 1 discriminator 2 view .LVU213 + 796 000c 0123 movs r3, #1 + 797 000e 80F88030 strb r3, [r0, #128] + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 798 .loc 1 526 3 discriminator 2 view .LVU214 + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 799 .loc 1 528 3 discriminator 2 view .LVU215 + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 800 .loc 1 528 17 is_stmt 0 discriminator 2 view .LVU216 + 801 0012 2423 movs r3, #36 + 802 0014 C0F88430 str r3, [r0, #132] + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 803 .loc 1 531 3 is_stmt 1 discriminator 2 view .LVU217 + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 804 .loc 1 531 12 is_stmt 0 discriminator 2 view .LVU218 + 805 0018 0268 ldr r2, [r0] + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 806 .loc 1 531 10 discriminator 2 view .LVU219 + 807 001a 1368 ldr r3, [r2] + 808 .LVL63: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 809 .loc 1 534 3 is_stmt 1 discriminator 2 view .LVU220 + 810 001c 1168 ldr r1, [r2] + 811 001e 21F00101 bic r1, r1, #1 + 812 0022 1160 str r1, [r2] + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->FifoMode = UART_FIFOMODE_ENABLE; + 813 .loc 1 537 3 discriminator 2 view .LVU221 + 814 0024 43F00053 orr r3, r3, #536870912 + 815 .LVL64: + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 816 .loc 1 538 3 discriminator 2 view .LVU222 + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 817 .loc 1 538 19 is_stmt 0 discriminator 2 view .LVU223 + 818 0028 4FF00052 mov r2, #536870912 + 819 002c 4266 str r2, [r0, #100] + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 820 .loc 1 541 3 is_stmt 1 discriminator 2 view .LVU224 + 821 002e 0268 ldr r2, [r0] + 822 0030 1360 str r3, [r2] + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 823 .loc 1 544 3 discriminator 2 view .LVU225 + 824 0032 FFF7FEFF bl UARTEx_SetNbDataToProcess + 825 .LVL65: + ARM GAS /tmp/ccEfj1JP.s page 57 + + + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 826 .loc 1 546 3 discriminator 2 view .LVU226 + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 827 .loc 1 546 17 is_stmt 0 discriminator 2 view .LVU227 + 828 0036 2023 movs r3, #32 + 829 0038 C4F88430 str r3, [r4, #132] + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 830 .loc 1 549 3 is_stmt 1 discriminator 2 view .LVU228 + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 831 .loc 1 549 3 discriminator 2 view .LVU229 + 832 003c 0020 movs r0, #0 + 833 003e 84F88000 strb r0, [r4, #128] + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 834 .loc 1 549 3 discriminator 2 view .LVU230 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 835 .loc 1 551 3 discriminator 2 view .LVU231 + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 836 .loc 1 552 1 is_stmt 0 discriminator 2 view .LVU232 + 837 0042 10BD pop {r4, pc} + 838 .LVL66: + 839 .L50: + 840 .LCFI13: + 841 .cfi_def_cfa_offset 0 + 842 .cfi_restore 4 + 843 .cfi_restore 14 + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 844 .loc 1 526 3 view .LVU233 + 845 0044 0220 movs r0, #2 + 846 .LVL67: + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 847 .loc 1 552 1 view .LVU234 + 848 0046 7047 bx lr + 849 .cfi_endproc + 850 .LFE337: + 852 .section .text.HAL_UARTEx_DisableFifoMode,"ax",%progbits + 853 .align 1 + 854 .global HAL_UARTEx_DisableFifoMode + 855 .syntax unified + 856 .thumb + 857 .thumb_func + 859 HAL_UARTEx_DisableFifoMode: + 860 .LVL68: + 861 .LFB338: + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 862 .loc 1 560 1 is_stmt 1 view -0 + 863 .cfi_startproc + 864 @ args = 0, pretend = 0, frame = 0 + 865 @ frame_needed = 0, uses_anonymous_args = 0 + 866 @ link register save eliminated. + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 867 .loc 1 561 3 view .LVU236 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 868 .loc 1 564 3 view .LVU237 + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 869 .loc 1 567 3 view .LVU238 + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 870 .loc 1 567 3 view .LVU239 + ARM GAS /tmp/ccEfj1JP.s page 58 + + + 871 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 872 0004 012B cmp r3, #1 + 873 0006 18D0 beq .L57 + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 874 .loc 1 567 3 discriminator 2 view .LVU240 + 875 0008 0123 movs r3, #1 + 876 000a 80F88030 strb r3, [r0, #128] + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 877 .loc 1 567 3 discriminator 2 view .LVU241 + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 878 .loc 1 569 3 discriminator 2 view .LVU242 + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 879 .loc 1 569 17 is_stmt 0 discriminator 2 view .LVU243 + 880 000e 2423 movs r3, #36 + 881 0010 C0F88430 str r3, [r0, #132] + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 882 .loc 1 572 3 is_stmt 1 discriminator 2 view .LVU244 + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 883 .loc 1 572 12 is_stmt 0 discriminator 2 view .LVU245 + 884 0014 0368 ldr r3, [r0] + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 885 .loc 1 572 10 discriminator 2 view .LVU246 + 886 0016 1A68 ldr r2, [r3] + 887 .LVL69: + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 888 .loc 1 575 3 is_stmt 1 discriminator 2 view .LVU247 + 889 0018 1968 ldr r1, [r3] + 890 001a 21F00101 bic r1, r1, #1 + 891 001e 1960 str r1, [r3] + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->FifoMode = UART_FIFOMODE_DISABLE; + 892 .loc 1 578 3 discriminator 2 view .LVU248 + 893 0020 22F00052 bic r2, r2, #536870912 + 894 .LVL70: + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 895 .loc 1 579 3 discriminator 2 view .LVU249 + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 896 .loc 1 579 19 is_stmt 0 discriminator 2 view .LVU250 + 897 0024 0023 movs r3, #0 + 898 0026 4366 str r3, [r0, #100] + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 899 .loc 1 582 3 is_stmt 1 discriminator 2 view .LVU251 + 900 0028 0168 ldr r1, [r0] + 901 002a 0A60 str r2, [r1] + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 902 .loc 1 584 3 discriminator 2 view .LVU252 + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 903 .loc 1 584 17 is_stmt 0 discriminator 2 view .LVU253 + 904 002c 2022 movs r2, #32 + 905 .LVL71: + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 906 .loc 1 584 17 discriminator 2 view .LVU254 + 907 002e C0F88420 str r2, [r0, #132] + 908 .LVL72: + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 909 .loc 1 587 3 is_stmt 1 discriminator 2 view .LVU255 + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 910 .loc 1 587 3 discriminator 2 view .LVU256 + ARM GAS /tmp/ccEfj1JP.s page 59 + + + 911 0032 80F88030 strb r3, [r0, #128] + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 912 .loc 1 587 3 discriminator 2 view .LVU257 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 913 .loc 1 589 3 discriminator 2 view .LVU258 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 914 .loc 1 589 10 is_stmt 0 discriminator 2 view .LVU259 + 915 0036 1846 mov r0, r3 + 916 .LVL73: + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 917 .loc 1 589 10 discriminator 2 view .LVU260 + 918 0038 7047 bx lr + 919 .LVL74: + 920 .L57: + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 921 .loc 1 567 3 view .LVU261 + 922 003a 0220 movs r0, #2 + 923 .LVL75: + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 924 .loc 1 590 1 view .LVU262 + 925 003c 7047 bx lr + 926 .cfi_endproc + 927 .LFE338: + 929 .section .text.HAL_UARTEx_SetTxFifoThreshold,"ax",%progbits + 930 .align 1 + 931 .global HAL_UARTEx_SetTxFifoThreshold + 932 .syntax unified + 933 .thumb + 934 .thumb_func + 936 HAL_UARTEx_SetTxFifoThreshold: + 937 .LVL76: + 938 .LFB339: + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 939 .loc 1 606 1 is_stmt 1 view -0 + 940 .cfi_startproc + 941 @ args = 0, pretend = 0, frame = 0 + 942 @ frame_needed = 0, uses_anonymous_args = 0 + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 943 .loc 1 606 1 is_stmt 0 view .LVU264 + 944 0000 38B5 push {r3, r4, r5, lr} + 945 .LCFI14: + 946 .cfi_def_cfa_offset 16 + 947 .cfi_offset 3, -16 + 948 .cfi_offset 4, -12 + 949 .cfi_offset 5, -8 + 950 .cfi_offset 14, -4 + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 951 .loc 1 607 3 is_stmt 1 view .LVU265 + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_TXFIFO_THRESHOLD(Threshold)); + 952 .loc 1 610 3 view .LVU266 + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 953 .loc 1 611 3 view .LVU267 + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 954 .loc 1 614 3 view .LVU268 + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 955 .loc 1 614 3 view .LVU269 + 956 0002 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + ARM GAS /tmp/ccEfj1JP.s page 60 + + + 957 0006 012B cmp r3, #1 + 958 0008 1DD0 beq .L60 + 959 000a 0446 mov r4, r0 + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 960 .loc 1 614 3 discriminator 2 view .LVU270 + 961 000c 0123 movs r3, #1 + 962 000e 80F88030 strb r3, [r0, #128] + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 963 .loc 1 614 3 discriminator 2 view .LVU271 + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 964 .loc 1 616 3 discriminator 2 view .LVU272 + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 965 .loc 1 616 17 is_stmt 0 discriminator 2 view .LVU273 + 966 0012 2423 movs r3, #36 + 967 0014 C0F88430 str r3, [r0, #132] + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 968 .loc 1 619 3 is_stmt 1 discriminator 2 view .LVU274 + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 969 .loc 1 619 12 is_stmt 0 discriminator 2 view .LVU275 + 970 0018 0368 ldr r3, [r0] + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 971 .loc 1 619 10 discriminator 2 view .LVU276 + 972 001a 1D68 ldr r5, [r3] + 973 .LVL77: + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 974 .loc 1 622 3 is_stmt 1 discriminator 2 view .LVU277 + 975 001c 1A68 ldr r2, [r3] + 976 001e 22F00102 bic r2, r2, #1 + 977 0022 1A60 str r2, [r3] + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 978 .loc 1 625 3 discriminator 2 view .LVU278 + 979 0024 0268 ldr r2, [r0] + 980 0026 9368 ldr r3, [r2, #8] + 981 0028 23F06043 bic r3, r3, #-536870912 + 982 002c 1943 orrs r1, r1, r3 + 983 .LVL78: + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 984 .loc 1 625 3 is_stmt 0 discriminator 2 view .LVU279 + 985 002e 9160 str r1, [r2, #8] + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 986 .loc 1 628 3 is_stmt 1 discriminator 2 view .LVU280 + 987 0030 FFF7FEFF bl UARTEx_SetNbDataToProcess + 988 .LVL79: + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 989 .loc 1 631 3 discriminator 2 view .LVU281 + 990 0034 2368 ldr r3, [r4] + 991 0036 1D60 str r5, [r3] + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 992 .loc 1 633 3 discriminator 2 view .LVU282 + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 993 .loc 1 633 17 is_stmt 0 discriminator 2 view .LVU283 + 994 0038 2023 movs r3, #32 + 995 003a C4F88430 str r3, [r4, #132] + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 996 .loc 1 636 3 is_stmt 1 discriminator 2 view .LVU284 + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 997 .loc 1 636 3 discriminator 2 view .LVU285 + ARM GAS /tmp/ccEfj1JP.s page 61 + + + 998 003e 0020 movs r0, #0 + 999 0040 84F88000 strb r0, [r4, #128] + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1000 .loc 1 636 3 discriminator 2 view .LVU286 + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1001 .loc 1 638 3 discriminator 2 view .LVU287 + 1002 .LVL80: + 1003 .L59: + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1004 .loc 1 639 1 is_stmt 0 view .LVU288 + 1005 0044 38BD pop {r3, r4, r5, pc} + 1006 .LVL81: + 1007 .L60: + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1008 .loc 1 614 3 view .LVU289 + 1009 0046 0220 movs r0, #2 + 1010 .LVL82: + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1011 .loc 1 614 3 view .LVU290 + 1012 0048 FCE7 b .L59 + 1013 .cfi_endproc + 1014 .LFE339: + 1016 .section .text.HAL_UARTEx_SetRxFifoThreshold,"ax",%progbits + 1017 .align 1 + 1018 .global HAL_UARTEx_SetRxFifoThreshold + 1019 .syntax unified + 1020 .thumb + 1021 .thumb_func + 1023 HAL_UARTEx_SetRxFifoThreshold: + 1024 .LVL83: + 1025 .LFB340: + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 1026 .loc 1 655 1 is_stmt 1 view -0 + 1027 .cfi_startproc + 1028 @ args = 0, pretend = 0, frame = 0 + 1029 @ frame_needed = 0, uses_anonymous_args = 0 + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tmpcr1; + 1030 .loc 1 655 1 is_stmt 0 view .LVU292 + 1031 0000 38B5 push {r3, r4, r5, lr} + 1032 .LCFI15: + 1033 .cfi_def_cfa_offset 16 + 1034 .cfi_offset 3, -16 + 1035 .cfi_offset 4, -12 + 1036 .cfi_offset 5, -8 + 1037 .cfi_offset 14, -4 + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1038 .loc 1 656 3 is_stmt 1 view .LVU293 + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** assert_param(IS_UART_RXFIFO_THRESHOLD(Threshold)); + 1039 .loc 1 659 3 view .LVU294 + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1040 .loc 1 660 3 view .LVU295 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1041 .loc 1 663 3 view .LVU296 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1042 .loc 1 663 3 view .LVU297 + 1043 0002 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 1044 0006 012B cmp r3, #1 + ARM GAS /tmp/ccEfj1JP.s page 62 + + + 1045 0008 1DD0 beq .L64 + 1046 000a 0446 mov r4, r0 + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1047 .loc 1 663 3 discriminator 2 view .LVU298 + 1048 000c 0123 movs r3, #1 + 1049 000e 80F88030 strb r3, [r0, #128] + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1050 .loc 1 663 3 discriminator 2 view .LVU299 + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1051 .loc 1 665 3 discriminator 2 view .LVU300 + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1052 .loc 1 665 17 is_stmt 0 discriminator 2 view .LVU301 + 1053 0012 2423 movs r3, #36 + 1054 0014 C0F88430 str r3, [r0, #132] + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1055 .loc 1 668 3 is_stmt 1 discriminator 2 view .LVU302 + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1056 .loc 1 668 12 is_stmt 0 discriminator 2 view .LVU303 + 1057 0018 0368 ldr r3, [r0] + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1058 .loc 1 668 10 discriminator 2 view .LVU304 + 1059 001a 1D68 ldr r5, [r3] + 1060 .LVL84: + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1061 .loc 1 671 3 is_stmt 1 discriminator 2 view .LVU305 + 1062 001c 1A68 ldr r2, [r3] + 1063 001e 22F00102 bic r2, r2, #1 + 1064 0022 1A60 str r2, [r3] + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1065 .loc 1 674 3 discriminator 2 view .LVU306 + 1066 0024 0268 ldr r2, [r0] + 1067 0026 9368 ldr r3, [r2, #8] + 1068 0028 23F06063 bic r3, r3, #234881024 + 1069 002c 1943 orrs r1, r1, r3 + 1070 .LVL85: + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1071 .loc 1 674 3 is_stmt 0 discriminator 2 view .LVU307 + 1072 002e 9160 str r1, [r2, #8] + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1073 .loc 1 677 3 is_stmt 1 discriminator 2 view .LVU308 + 1074 0030 FFF7FEFF bl UARTEx_SetNbDataToProcess + 1075 .LVL86: + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1076 .loc 1 680 3 discriminator 2 view .LVU309 + 1077 0034 2368 ldr r3, [r4] + 1078 0036 1D60 str r5, [r3] + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1079 .loc 1 682 3 discriminator 2 view .LVU310 + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1080 .loc 1 682 17 is_stmt 0 discriminator 2 view .LVU311 + 1081 0038 2023 movs r3, #32 + 1082 003a C4F88430 str r3, [r4, #132] + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1083 .loc 1 685 3 is_stmt 1 discriminator 2 view .LVU312 + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1084 .loc 1 685 3 discriminator 2 view .LVU313 + 1085 003e 0020 movs r0, #0 + ARM GAS /tmp/ccEfj1JP.s page 63 + + + 1086 0040 84F88000 strb r0, [r4, #128] + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1087 .loc 1 685 3 discriminator 2 view .LVU314 + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1088 .loc 1 687 3 discriminator 2 view .LVU315 + 1089 .LVL87: + 1090 .L63: + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1091 .loc 1 688 1 is_stmt 0 view .LVU316 + 1092 0044 38BD pop {r3, r4, r5, pc} + 1093 .LVL88: + 1094 .L64: + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1095 .loc 1 663 3 view .LVU317 + 1096 0046 0220 movs r0, #2 + 1097 .LVL89: + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1098 .loc 1 663 3 view .LVU318 + 1099 0048 FCE7 b .L63 + 1100 .cfi_endproc + 1101 .LFE340: + 1103 .section .text.HAL_UARTEx_ReceiveToIdle,"ax",%progbits + 1104 .align 1 + 1105 .global HAL_UARTEx_ReceiveToIdle + 1106 .syntax unified + 1107 .thumb + 1108 .thumb_func + 1110 HAL_UARTEx_ReceiveToIdle: + 1111 .LVL90: + 1112 .LFB341: + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t *pdata8bits; + 1113 .loc 1 713 1 is_stmt 1 view -0 + 1114 .cfi_startproc + 1115 @ args = 4, pretend = 0, frame = 0 + 1116 @ frame_needed = 0, uses_anonymous_args = 0 + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint8_t *pdata8bits; + 1117 .loc 1 713 1 is_stmt 0 view .LVU320 + 1118 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} + 1119 .LCFI16: + 1120 .cfi_def_cfa_offset 32 + 1121 .cfi_offset 4, -32 + 1122 .cfi_offset 5, -28 + 1123 .cfi_offset 6, -24 + 1124 .cfi_offset 7, -20 + 1125 .cfi_offset 8, -16 + 1126 .cfi_offset 9, -12 + 1127 .cfi_offset 10, -8 + 1128 .cfi_offset 14, -4 + 1129 0004 1D46 mov r5, r3 + 1130 0006 089E ldr r6, [sp, #32] + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint16_t *pdata16bits; + 1131 .loc 1 714 3 is_stmt 1 view .LVU321 + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint16_t uhMask; + 1132 .loc 1 715 3 view .LVU322 + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uint32_t tickstart; + 1133 .loc 1 716 3 view .LVU323 + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + ARM GAS /tmp/ccEfj1JP.s page 64 + + + 1134 .loc 1 717 3 view .LVU324 + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1135 .loc 1 720 3 view .LVU325 + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1136 .loc 1 720 12 is_stmt 0 view .LVU326 + 1137 0008 D0F88830 ldr r3, [r0, #136] + 1138 .LVL91: + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1139 .loc 1 720 6 view .LVU327 + 1140 000c 202B cmp r3, #32 + 1141 000e 40F0A980 bne .L84 + 1142 0012 0446 mov r4, r0 + 1143 0014 0F46 mov r7, r1 + 1144 0016 9146 mov r9, r2 + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1145 .loc 1 722 5 is_stmt 1 view .LVU328 + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1146 .loc 1 722 8 is_stmt 0 view .LVU329 + 1147 0018 0029 cmp r1, #0 + 1148 001a 00F0A680 beq .L85 + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1149 .loc 1 722 25 discriminator 1 view .LVU330 + 1150 001e 002A cmp r2, #0 + 1151 0020 00F0A580 beq .L86 + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1152 .loc 1 727 5 is_stmt 1 view .LVU331 + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1153 .loc 1 727 5 view .LVU332 + 1154 0024 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 1155 0028 012B cmp r3, #1 + 1156 002a 00F0A280 beq .L87 + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1157 .loc 1 727 5 discriminator 2 view .LVU333 + 1158 002e 0123 movs r3, #1 + 1159 0030 80F88030 strb r3, [r0, #128] + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1160 .loc 1 727 5 discriminator 2 view .LVU334 + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 1161 .loc 1 729 5 discriminator 2 view .LVU335 + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 1162 .loc 1 729 22 is_stmt 0 discriminator 2 view .LVU336 + 1163 0034 0022 movs r2, #0 + 1164 .LVL92: + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; + 1165 .loc 1 729 22 discriminator 2 view .LVU337 + 1166 0036 C0F88C20 str r2, [r0, #140] + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + 1167 .loc 1 730 5 is_stmt 1 discriminator 2 view .LVU338 + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; + 1168 .loc 1 730 20 is_stmt 0 discriminator 2 view .LVU339 + 1169 003a 2222 movs r2, #34 + 1170 003c C0F88820 str r2, [r0, #136] + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1171 .loc 1 731 5 is_stmt 1 discriminator 2 view .LVU340 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1172 .loc 1 731 26 is_stmt 0 discriminator 2 view .LVU341 + 1173 0040 C366 str r3, [r0, #108] + ARM GAS /tmp/ccEfj1JP.s page 65 + + + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1174 .loc 1 734 5 is_stmt 1 discriminator 2 view .LVU342 + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1175 .loc 1 734 17 is_stmt 0 discriminator 2 view .LVU343 + 1176 0042 FFF7FEFF bl HAL_GetTick + 1177 .LVL93: + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1178 .loc 1 734 17 discriminator 2 view .LVU344 + 1179 0046 8046 mov r8, r0 + 1180 .LVL94: + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferCount = Size; + 1181 .loc 1 736 5 is_stmt 1 discriminator 2 view .LVU345 + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferCount = Size; + 1182 .loc 1 736 24 is_stmt 0 discriminator 2 view .LVU346 + 1183 0048 A4F85C90 strh r9, [r4, #92] @ movhi + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1184 .loc 1 737 5 is_stmt 1 discriminator 2 view .LVU347 + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1185 .loc 1 737 24 is_stmt 0 discriminator 2 view .LVU348 + 1186 004c A4F85E90 strh r9, [r4, #94] @ movhi + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1187 .loc 1 740 5 is_stmt 1 discriminator 2 view .LVU349 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1188 .loc 1 740 5 discriminator 2 view .LVU350 + 1189 0050 A368 ldr r3, [r4, #8] + 1190 0052 B3F5805F cmp r3, #4096 + 1191 0056 06D0 beq .L91 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1192 .loc 1 740 5 discriminator 2 view .LVU351 + 1193 0058 A3B9 cbnz r3, .L71 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1194 .loc 1 740 5 discriminator 5 view .LVU352 + 1195 005a 2269 ldr r2, [r4, #16] + 1196 005c 72B9 cbnz r2, .L72 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1197 .loc 1 740 5 discriminator 7 view .LVU353 + 1198 005e FF22 movs r2, #255 + 1199 0060 A4F86020 strh r2, [r4, #96] @ movhi + 1200 0064 14E0 b .L70 + 1201 .L91: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1202 .loc 1 740 5 discriminator 1 view .LVU354 + 1203 0066 2269 ldr r2, [r4, #16] + 1204 0068 22B9 cbnz r2, .L69 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1205 .loc 1 740 5 discriminator 3 view .LVU355 + 1206 006a 40F2FF12 movw r2, #511 + 1207 006e A4F86020 strh r2, [r4, #96] @ movhi + 1208 0072 0DE0 b .L70 + 1209 .L69: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1210 .loc 1 740 5 discriminator 4 view .LVU356 + 1211 0074 FF22 movs r2, #255 + 1212 0076 A4F86020 strh r2, [r4, #96] @ movhi + 1213 007a 09E0 b .L70 + 1214 .L72: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + ARM GAS /tmp/ccEfj1JP.s page 66 + + + 1215 .loc 1 740 5 discriminator 8 view .LVU357 + 1216 007c 7F22 movs r2, #127 + 1217 007e A4F86020 strh r2, [r4, #96] @ movhi + 1218 0082 05E0 b .L70 + 1219 .L71: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1220 .loc 1 740 5 discriminator 6 view .LVU358 + 1221 0084 B3F1805F cmp r3, #268435456 + 1222 0088 0ED0 beq .L92 + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1223 .loc 1 740 5 discriminator 10 view .LVU359 + 1224 008a 0022 movs r2, #0 + 1225 008c A4F86020 strh r2, [r4, #96] @ movhi + 1226 .L70: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1227 .loc 1 740 5 discriminator 13 view .LVU360 + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1228 .loc 1 741 5 discriminator 13 view .LVU361 + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1229 .loc 1 741 12 is_stmt 0 discriminator 13 view .LVU362 + 1230 0090 B4F86090 ldrh r9, [r4, #96] + 1231 .LVL95: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1232 .loc 1 744 5 is_stmt 1 discriminator 13 view .LVU363 + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1233 .loc 1 744 8 is_stmt 0 discriminator 13 view .LVU364 + 1234 0094 B3F5805F cmp r3, #4096 + 1235 0098 10D0 beq .L93 + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1236 .loc 1 752 19 view .LVU365 + 1237 009a 4FF0000A mov r10, #0 + 1238 .LVL96: + 1239 .L75: + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1240 .loc 1 755 5 is_stmt 1 view .LVU366 + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1241 .loc 1 755 5 view .LVU367 + 1242 009e 0023 movs r3, #0 + 1243 00a0 84F88030 strb r3, [r4, #128] + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1244 .loc 1 755 5 view .LVU368 + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1245 .loc 1 758 5 view .LVU369 + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1246 .loc 1 758 12 is_stmt 0 view .LVU370 + 1247 00a4 2B80 strh r3, [r5] @ movhi + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1248 .loc 1 761 5 is_stmt 1 view .LVU371 + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1249 .loc 1 761 11 is_stmt 0 view .LVU372 + 1250 00a6 28E0 b .L76 + 1251 .LVL97: + 1252 .L92: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1253 .loc 1 740 5 is_stmt 1 discriminator 9 view .LVU373 + 1254 00a8 2269 ldr r2, [r4, #16] + 1255 00aa 1AB9 cbnz r2, .L74 + ARM GAS /tmp/ccEfj1JP.s page 67 + + + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1256 .loc 1 740 5 discriminator 11 view .LVU374 + 1257 00ac 7F22 movs r2, #127 + 1258 00ae A4F86020 strh r2, [r4, #96] @ movhi + 1259 00b2 EDE7 b .L70 + 1260 .L74: + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** uhMask = huart->Mask; + 1261 .loc 1 740 5 discriminator 12 view .LVU375 + 1262 00b4 3F22 movs r2, #63 + 1263 00b6 A4F86020 strh r2, [r4, #96] @ movhi + 1264 00ba E9E7 b .L70 + 1265 .LVL98: + 1266 .L93: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1267 .loc 1 744 71 is_stmt 0 discriminator 1 view .LVU376 + 1268 00bc 2369 ldr r3, [r4, #16] + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1269 .loc 1 744 56 discriminator 1 view .LVU377 + 1270 00be 13B1 cbz r3, .L89 + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1271 .loc 1 752 19 view .LVU378 + 1272 00c0 4FF0000A mov r10, #0 + 1273 00c4 EBE7 b .L75 + 1274 .L89: + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1275 .loc 1 747 19 view .LVU379 + 1276 00c6 BA46 mov r10, r7 + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits = (uint16_t *) pData; + 1277 .loc 1 746 19 view .LVU380 + 1278 00c8 0027 movs r7, #0 + 1279 .LVL99: + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits = (uint16_t *) pData; + 1280 .loc 1 746 19 view .LVU381 + 1281 00ca E8E7 b .L75 + 1282 .LVL100: + 1283 .L96: + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1284 .loc 1 773 11 is_stmt 1 view .LVU382 + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1285 .loc 1 773 26 is_stmt 0 view .LVU383 + 1286 00cc 2023 movs r3, #32 + 1287 00ce C4F88830 str r3, [r4, #136] + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1288 .loc 1 775 11 is_stmt 1 view .LVU384 + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1289 .loc 1 775 18 is_stmt 0 view .LVU385 + 1290 00d2 0020 movs r0, #0 + 1291 00d4 47E0 b .L67 + 1292 .L97: + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits++; + 1293 .loc 1 784 11 is_stmt 1 view .LVU386 + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits++; + 1294 .loc 1 784 52 is_stmt 0 view .LVU387 + 1295 00d6 5B6A ldr r3, [r3, #36] + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits++; + 1296 .loc 1 784 26 view .LVU388 + 1297 00d8 09EA0303 and r3, r9, r3 + ARM GAS /tmp/ccEfj1JP.s page 68 + + + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata16bits++; + 1298 .loc 1 784 24 view .LVU389 + 1299 00dc 2AF8023B strh r3, [r10], #2 @ movhi + 1300 .LVL101: + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1301 .loc 1 785 11 is_stmt 1 view .LVU390 + 1302 .L80: + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferCount--; + 1303 .loc 1 793 9 view .LVU391 + 1304 00e0 2B88 ldrh r3, [r5] + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** huart->RxXferCount--; + 1305 .loc 1 793 16 is_stmt 0 view .LVU392 + 1306 00e2 0133 adds r3, r3, #1 + 1307 00e4 2B80 strh r3, [r5] @ movhi + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1308 .loc 1 794 9 is_stmt 1 view .LVU393 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1309 .loc 1 794 14 is_stmt 0 view .LVU394 + 1310 00e6 B4F85E30 ldrh r3, [r4, #94] + 1311 00ea 9BB2 uxth r3, r3 + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1312 .loc 1 794 27 view .LVU395 + 1313 00ec 013B subs r3, r3, #1 + 1314 00ee 9BB2 uxth r3, r3 + 1315 00f0 A4F85E30 strh r3, [r4, #94] @ movhi + 1316 .L78: + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1317 .loc 1 798 7 is_stmt 1 view .LVU396 + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1318 .loc 1 798 10 is_stmt 0 view .LVU397 + 1319 00f4 B6F1FF3F cmp r6, #-1 + 1320 00f8 1BD1 bne .L94 + 1321 .L76: + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1322 .loc 1 761 31 is_stmt 1 view .LVU398 + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1323 .loc 1 761 17 is_stmt 0 view .LVU399 + 1324 00fa B4F85E20 ldrh r2, [r4, #94] + 1325 00fe 92B2 uxth r2, r2 + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1326 .loc 1 761 31 view .LVU400 + 1327 0100 22B3 cbz r2, .L95 + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1328 .loc 1 764 7 is_stmt 1 view .LVU401 + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1329 .loc 1 764 11 is_stmt 0 view .LVU402 + 1330 0102 2368 ldr r3, [r4] + 1331 0104 DA69 ldr r2, [r3, #28] + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1332 .loc 1 764 10 view .LVU403 + 1333 0106 12F0100F tst r2, #16 + 1334 010a 04D0 beq .L77 + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1335 .loc 1 767 9 is_stmt 1 view .LVU404 + 1336 010c 1022 movs r2, #16 + 1337 010e 1A62 str r2, [r3, #32] + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + ARM GAS /tmp/ccEfj1JP.s page 69 + + + 1338 .loc 1 771 9 view .LVU405 + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1339 .loc 1 771 13 is_stmt 0 view .LVU406 + 1340 0110 2B88 ldrh r3, [r5] + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1341 .loc 1 771 12 view .LVU407 + 1342 0112 002B cmp r3, #0 + 1343 0114 DAD1 bne .L96 + 1344 .L77: + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1345 .loc 1 780 7 is_stmt 1 view .LVU408 + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1346 .loc 1 780 11 is_stmt 0 view .LVU409 + 1347 0116 2368 ldr r3, [r4] + 1348 0118 DA69 ldr r2, [r3, #28] + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1349 .loc 1 780 10 view .LVU410 + 1350 011a 12F0200F tst r2, #32 + 1351 011e E9D0 beq .L78 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1352 .loc 1 782 9 is_stmt 1 view .LVU411 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1353 .loc 1 782 12 is_stmt 0 view .LVU412 + 1354 0120 002F cmp r7, #0 + 1355 0122 D8D0 beq .L97 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits++; + 1356 .loc 1 789 11 is_stmt 1 view .LVU413 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits++; + 1357 .loc 1 789 50 is_stmt 0 view .LVU414 + 1358 0124 5A6A ldr r2, [r3, #36] + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits++; + 1359 .loc 1 789 58 view .LVU415 + 1360 0126 5FFA89F3 uxtb r3, r9 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits++; + 1361 .loc 1 789 25 view .LVU416 + 1362 012a 1340 ands r3, r3, r2 + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** pdata8bits++; + 1363 .loc 1 789 23 view .LVU417 + 1364 012c 07F8013B strb r3, [r7], #1 + 1365 .LVL102: + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1366 .loc 1 790 11 is_stmt 1 view .LVU418 + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1367 .loc 1 790 11 is_stmt 0 view .LVU419 + 1368 0130 D6E7 b .L80 + 1369 .L94: + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1370 .loc 1 800 9 is_stmt 1 view .LVU420 + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1371 .loc 1 800 15 is_stmt 0 view .LVU421 + 1372 0132 FFF7FEFF bl HAL_GetTick + 1373 .LVL103: + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1374 .loc 1 800 29 view .LVU422 + 1375 0136 A0EB0800 sub r0, r0, r8 + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1376 .loc 1 800 12 view .LVU423 + ARM GAS /tmp/ccEfj1JP.s page 70 + + + 1377 013a B042 cmp r0, r6 + 1378 013c 01D8 bhi .L82 + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1379 .loc 1 800 53 discriminator 1 view .LVU424 + 1380 013e 002E cmp r6, #0 + 1381 0140 DBD1 bne .L76 + 1382 .L82: + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1383 .loc 1 802 11 is_stmt 1 view .LVU425 + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1384 .loc 1 802 26 is_stmt 0 view .LVU426 + 1385 0142 2023 movs r3, #32 + 1386 0144 C4F88830 str r3, [r4, #136] + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1387 .loc 1 804 11 is_stmt 1 view .LVU427 + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1388 .loc 1 804 18 is_stmt 0 view .LVU428 + 1389 0148 0320 movs r0, #3 + 1390 014a 0CE0 b .L67 + 1391 .L95: + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */ + 1392 .loc 1 810 5 is_stmt 1 view .LVU429 + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */ + 1393 .loc 1 810 19 is_stmt 0 view .LVU430 + 1394 014c B4F85C30 ldrh r3, [r4, #92] + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */ + 1395 .loc 1 810 39 view .LVU431 + 1396 0150 B4F85E20 ldrh r2, [r4, #94] + 1397 0154 92B2 uxth r2, r2 + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */ + 1398 .loc 1 810 32 view .LVU432 + 1399 0156 9B1A subs r3, r3, r2 + 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */ + 1400 .loc 1 810 12 view .LVU433 + 1401 0158 2B80 strh r3, [r5] @ movhi + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1402 .loc 1 812 5 is_stmt 1 view .LVU434 + 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1403 .loc 1 812 20 is_stmt 0 view .LVU435 + 1404 015a 2023 movs r3, #32 + 1405 015c C4F88830 str r3, [r4, #136] + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1406 .loc 1 814 5 is_stmt 1 view .LVU436 + 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1407 .loc 1 814 12 is_stmt 0 view .LVU437 + 1408 0160 0020 movs r0, #0 + 1409 0162 00E0 b .L67 + 1410 .LVL104: + 1411 .L84: + 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1412 .loc 1 818 12 view .LVU438 + 1413 0164 0220 movs r0, #2 + 1414 .LVL105: + 1415 .L67: + 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1416 .loc 1 820 1 view .LVU439 + 1417 0166 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} + ARM GAS /tmp/ccEfj1JP.s page 71 + + + 1418 .LVL106: + 1419 .L85: + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1420 .loc 1 724 15 view .LVU440 + 1421 016a 0120 movs r0, #1 + 1422 .LVL107: + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1423 .loc 1 724 15 view .LVU441 + 1424 016c FBE7 b .L67 + 1425 .LVL108: + 1426 .L86: + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1427 .loc 1 724 15 view .LVU442 + 1428 016e 0120 movs r0, #1 + 1429 .LVL109: + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1430 .loc 1 724 15 view .LVU443 + 1431 0170 F9E7 b .L67 + 1432 .LVL110: + 1433 .L87: + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1434 .loc 1 727 5 view .LVU444 + 1435 0172 0220 movs r0, #2 + 1436 .LVL111: + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1437 .loc 1 727 5 view .LVU445 + 1438 0174 F7E7 b .L67 + 1439 .cfi_endproc + 1440 .LFE341: + 1442 .section .text.HAL_UARTEx_ReceiveToIdle_IT,"ax",%progbits + 1443 .align 1 + 1444 .global HAL_UARTEx_ReceiveToIdle_IT + 1445 .syntax unified + 1446 .thumb + 1447 .thumb_func + 1449 HAL_UARTEx_ReceiveToIdle_IT: + 1450 .LVL112: + 1451 .LFB342: + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status; + 1452 .loc 1 837 1 is_stmt 1 view -0 + 1453 .cfi_startproc + 1454 @ args = 0, pretend = 0, frame = 0 + 1455 @ frame_needed = 0, uses_anonymous_args = 0 + 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1456 .loc 1 838 3 view .LVU447 + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1457 .loc 1 841 3 view .LVU448 + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1458 .loc 1 841 12 is_stmt 0 view .LVU449 + 1459 0000 D0F88830 ldr r3, [r0, #136] + 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1460 .loc 1 841 6 view .LVU450 + 1461 0004 202B cmp r3, #32 + 1462 0006 20D1 bne .L102 + 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status; + 1463 .loc 1 837 1 view .LVU451 + 1464 0008 10B5 push {r4, lr} + ARM GAS /tmp/ccEfj1JP.s page 72 + + + 1465 .LCFI17: + 1466 .cfi_def_cfa_offset 8 + 1467 .cfi_offset 4, -8 + 1468 .cfi_offset 14, -4 + 1469 000a 0446 mov r4, r0 + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1470 .loc 1 843 5 is_stmt 1 view .LVU452 + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1471 .loc 1 843 8 is_stmt 0 view .LVU453 + 1472 000c F9B1 cbz r1, .L103 + 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1473 .loc 1 843 25 discriminator 1 view .LVU454 + 1474 000e 02B3 cbz r2, .L104 + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1475 .loc 1 848 5 is_stmt 1 view .LVU455 + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1476 .loc 1 848 5 view .LVU456 + 1477 0010 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + 1478 0014 012B cmp r3, #1 + 1479 0016 1ED0 beq .L105 + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1480 .loc 1 848 5 discriminator 2 view .LVU457 + 1481 0018 0123 movs r3, #1 + 1482 001a 80F88030 strb r3, [r0, #128] + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1483 .loc 1 848 5 discriminator 2 view .LVU458 + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1484 .loc 1 851 5 discriminator 2 view .LVU459 + 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1485 .loc 1 851 26 is_stmt 0 discriminator 2 view .LVU460 + 1486 001e C366 str r3, [r0, #108] + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1487 .loc 1 853 5 is_stmt 1 discriminator 2 view .LVU461 + 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1488 .loc 1 853 15 is_stmt 0 discriminator 2 view .LVU462 + 1489 0020 FFF7FEFF bl UART_Start_Receive_IT + 1490 .LVL113: + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1491 .loc 1 856 5 is_stmt 1 discriminator 2 view .LVU463 + 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1492 .loc 1 856 8 is_stmt 0 discriminator 2 view .LVU464 + 1493 0024 B0B9 cbnz r0, .L99 + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1494 .loc 1 858 7 is_stmt 1 view .LVU465 + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1495 .loc 1 858 16 is_stmt 0 view .LVU466 + 1496 0026 E36E ldr r3, [r4, #108] + 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1497 .loc 1 858 10 view .LVU467 + 1498 0028 012B cmp r3, #1 + 1499 002a 01D0 beq .L111 + 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1500 .loc 1 869 16 view .LVU468 + 1501 002c 0120 movs r0, #1 + 1502 .LVL114: + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1503 .loc 1 873 5 is_stmt 1 view .LVU469 + ARM GAS /tmp/ccEfj1JP.s page 73 + + + 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1504 .loc 1 873 12 is_stmt 0 view .LVU470 + 1505 002e 11E0 b .L99 + 1506 .LVL115: + 1507 .L111: + 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 1508 .loc 1 860 9 is_stmt 1 view .LVU471 + 1509 0030 2368 ldr r3, [r4] + 1510 0032 1022 movs r2, #16 + 1511 0034 1A62 str r2, [r3, #32] + 1512 .L101: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1513 .loc 1 861 9 discriminator 1 view .LVU472 + 1514 .LBB32: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1515 .loc 1 861 9 discriminator 1 view .LVU473 + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1516 .loc 1 861 9 discriminator 1 view .LVU474 + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1517 .loc 1 861 9 discriminator 1 view .LVU475 + 1518 0036 2268 ldr r2, [r4] + 1519 .LVL116: + 1520 .LBB33: + 1521 .LBI33: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1522 .loc 2 1151 31 discriminator 1 view .LVU476 + 1523 .LBB34: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1524 .loc 2 1153 5 discriminator 1 view .LVU477 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1525 .loc 2 1155 4 discriminator 1 view .LVU478 + 1526 .syntax unified + 1527 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1528 0038 52E8003F ldrex r3, [r2] + 1529 @ 0 "" 2 + 1530 .LVL117: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1531 .loc 2 1156 4 discriminator 1 view .LVU479 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1532 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU480 + 1533 .thumb + 1534 .syntax unified + 1535 .LBE34: + 1536 .LBE33: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1537 .loc 1 861 9 discriminator 1 view .LVU481 + 1538 003c 43F01003 orr r3, r3, #16 + 1539 .LVL118: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1540 .loc 1 861 9 is_stmt 1 discriminator 1 view .LVU482 + 1541 .LBB35: + 1542 .LBI35: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1543 .loc 2 1202 31 discriminator 1 view .LVU483 + 1544 .LBB36: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1545 .loc 2 1204 4 discriminator 1 view .LVU484 + ARM GAS /tmp/ccEfj1JP.s page 74 + + +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1546 .loc 2 1206 4 discriminator 1 view .LVU485 + 1547 .syntax unified + 1548 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1549 0040 42E80031 strex r1, r3, [r2] + 1550 @ 0 "" 2 + 1551 .LVL119: + 1552 .loc 2 1207 4 discriminator 1 view .LVU486 + 1553 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU487 + 1554 .thumb + 1555 .syntax unified + 1556 .LBE36: + 1557 .LBE35: + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1558 .loc 1 861 9 discriminator 1 view .LVU488 + 1559 0044 0029 cmp r1, #0 + 1560 0046 F6D1 bne .L101 + 1561 0048 04E0 b .L99 + 1562 .LVL120: + 1563 .L102: + 1564 .LCFI18: + 1565 .cfi_def_cfa_offset 0 + 1566 .cfi_restore 4 + 1567 .cfi_restore 14 + 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1568 .loc 1 861 9 discriminator 1 view .LVU489 + 1569 .LBE32: + 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1570 .loc 1 877 12 view .LVU490 + 1571 004a 0220 movs r0, #2 + 1572 .LVL121: + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1573 .loc 1 879 1 view .LVU491 + 1574 004c 7047 bx lr + 1575 .LVL122: + 1576 .L103: + 1577 .LCFI19: + 1578 .cfi_def_cfa_offset 8 + 1579 .cfi_offset 4, -8 + 1580 .cfi_offset 14, -4 + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1581 .loc 1 845 14 view .LVU492 + 1582 004e 0120 movs r0, #1 + 1583 .LVL123: + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1584 .loc 1 845 14 view .LVU493 + 1585 0050 00E0 b .L99 + 1586 .LVL124: + 1587 .L104: + 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1588 .loc 1 845 14 view .LVU494 + 1589 0052 0120 movs r0, #1 + 1590 .LVL125: + 1591 .L99: + 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1592 .loc 1 879 1 view .LVU495 + 1593 0054 10BD pop {r4, pc} + ARM GAS /tmp/ccEfj1JP.s page 75 + + + 1594 .LVL126: + 1595 .L105: + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1596 .loc 1 848 5 view .LVU496 + 1597 0056 0220 movs r0, #2 + 1598 .LVL127: + 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1599 .loc 1 848 5 view .LVU497 + 1600 0058 FCE7 b .L99 + 1601 .cfi_endproc + 1602 .LFE342: + 1604 .section .text.HAL_UARTEx_ReceiveToIdle_DMA,"ax",%progbits + 1605 .align 1 + 1606 .global HAL_UARTEx_ReceiveToIdle_DMA + 1607 .syntax unified + 1608 .thumb + 1609 .thumb_func + 1611 HAL_UARTEx_ReceiveToIdle_DMA: + 1612 .LVL128: + 1613 .LFB343: + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status; + 1614 .loc 1 899 1 is_stmt 1 view -0 + 1615 .cfi_startproc + 1616 @ args = 0, pretend = 0, frame = 0 + 1617 @ frame_needed = 0, uses_anonymous_args = 0 + 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1618 .loc 1 900 3 view .LVU499 + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1619 .loc 1 903 3 view .LVU500 + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1620 .loc 1 903 12 is_stmt 0 view .LVU501 + 1621 0000 D0F88830 ldr r3, [r0, #136] + 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1622 .loc 1 903 6 view .LVU502 + 1623 0004 202B cmp r3, #32 + 1624 0006 20D1 bne .L116 + 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** HAL_StatusTypeDef status; + 1625 .loc 1 899 1 view .LVU503 + 1626 0008 10B5 push {r4, lr} + 1627 .LCFI20: + 1628 .cfi_def_cfa_offset 8 + 1629 .cfi_offset 4, -8 + 1630 .cfi_offset 14, -4 + 1631 000a 0446 mov r4, r0 + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1632 .loc 1 905 5 is_stmt 1 view .LVU504 + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1633 .loc 1 905 8 is_stmt 0 view .LVU505 + 1634 000c F9B1 cbz r1, .L117 + 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1635 .loc 1 905 25 discriminator 1 view .LVU506 + 1636 000e 02B3 cbz r2, .L118 + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1637 .loc 1 910 5 is_stmt 1 view .LVU507 + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1638 .loc 1 910 5 view .LVU508 + 1639 0010 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 + ARM GAS /tmp/ccEfj1JP.s page 76 + + + 1640 0014 012B cmp r3, #1 + 1641 0016 1ED0 beq .L119 + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1642 .loc 1 910 5 discriminator 2 view .LVU509 + 1643 0018 0123 movs r3, #1 + 1644 001a 80F88030 strb r3, [r0, #128] + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1645 .loc 1 910 5 discriminator 2 view .LVU510 + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1646 .loc 1 913 5 discriminator 2 view .LVU511 + 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1647 .loc 1 913 26 is_stmt 0 discriminator 2 view .LVU512 + 1648 001e C366 str r3, [r0, #108] + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1649 .loc 1 915 5 is_stmt 1 discriminator 2 view .LVU513 + 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1650 .loc 1 915 15 is_stmt 0 discriminator 2 view .LVU514 + 1651 0020 FFF7FEFF bl UART_Start_Receive_DMA + 1652 .LVL129: + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1653 .loc 1 918 5 is_stmt 1 discriminator 2 view .LVU515 + 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1654 .loc 1 918 8 is_stmt 0 discriminator 2 view .LVU516 + 1655 0024 B0B9 cbnz r0, .L113 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1656 .loc 1 920 7 is_stmt 1 view .LVU517 + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1657 .loc 1 920 16 is_stmt 0 view .LVU518 + 1658 0026 E36E ldr r3, [r4, #108] + 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** { + 1659 .loc 1 920 10 view .LVU519 + 1660 0028 012B cmp r3, #1 + 1661 002a 01D0 beq .L125 + 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1662 .loc 1 931 16 view .LVU520 + 1663 002c 0120 movs r0, #1 + 1664 .LVL130: + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1665 .loc 1 935 5 is_stmt 1 view .LVU521 + 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1666 .loc 1 935 12 is_stmt 0 view .LVU522 + 1667 002e 11E0 b .L113 + 1668 .LVL131: + 1669 .L125: + 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); + 1670 .loc 1 922 9 is_stmt 1 view .LVU523 + 1671 0030 2368 ldr r3, [r4] + 1672 0032 1022 movs r2, #16 + 1673 0034 1A62 str r2, [r3, #32] + 1674 .L115: + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1675 .loc 1 923 9 discriminator 1 view .LVU524 + 1676 .LBB37: + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1677 .loc 1 923 9 discriminator 1 view .LVU525 + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1678 .loc 1 923 9 discriminator 1 view .LVU526 + ARM GAS /tmp/ccEfj1JP.s page 77 + + + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1679 .loc 1 923 9 discriminator 1 view .LVU527 + 1680 0036 2268 ldr r2, [r4] + 1681 .LVL132: + 1682 .LBB38: + 1683 .LBI38: +1151:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1684 .loc 2 1151 31 discriminator 1 view .LVU528 + 1685 .LBB39: +1153:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1686 .loc 2 1153 5 discriminator 1 view .LVU529 +1155:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1687 .loc 2 1155 4 discriminator 1 view .LVU530 + 1688 .syntax unified + 1689 @ 1155 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1690 0038 52E8003F ldrex r3, [r2] + 1691 @ 0 "" 2 + 1692 .LVL133: +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1693 .loc 2 1156 4 discriminator 1 view .LVU531 +1156:Drivers/CMSIS/Include/cmsis_gcc.h **** } + 1694 .loc 2 1156 4 is_stmt 0 discriminator 1 view .LVU532 + 1695 .thumb + 1696 .syntax unified + 1697 .LBE39: + 1698 .LBE38: + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1699 .loc 1 923 9 discriminator 1 view .LVU533 + 1700 003c 43F01003 orr r3, r3, #16 + 1701 .LVL134: + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1702 .loc 1 923 9 is_stmt 1 discriminator 1 view .LVU534 + 1703 .LBB40: + 1704 .LBI40: +1202:Drivers/CMSIS/Include/cmsis_gcc.h **** { + 1705 .loc 2 1202 31 discriminator 1 view .LVU535 + 1706 .LBB41: +1204:Drivers/CMSIS/Include/cmsis_gcc.h **** + 1707 .loc 2 1204 4 discriminator 1 view .LVU536 +1206:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); + 1708 .loc 2 1206 4 discriminator 1 view .LVU537 + 1709 .syntax unified + 1710 @ 1206 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 + 1711 0040 42E80031 strex r1, r3, [r2] + 1712 @ 0 "" 2 + 1713 .LVL135: + 1714 .loc 2 1207 4 discriminator 1 view .LVU538 + 1715 .loc 2 1207 4 is_stmt 0 discriminator 1 view .LVU539 + 1716 .thumb + 1717 .syntax unified + 1718 .LBE41: + 1719 .LBE40: + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1720 .loc 1 923 9 discriminator 1 view .LVU540 + 1721 0044 0029 cmp r1, #0 + 1722 0046 F6D1 bne .L115 + 1723 0048 04E0 b .L113 + ARM GAS /tmp/ccEfj1JP.s page 78 + + + 1724 .LVL136: + 1725 .L116: + 1726 .LCFI21: + 1727 .cfi_def_cfa_offset 0 + 1728 .cfi_restore 4 + 1729 .cfi_restore 14 + 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1730 .loc 1 923 9 discriminator 1 view .LVU541 + 1731 .LBE37: + 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1732 .loc 1 939 12 view .LVU542 + 1733 004a 0220 movs r0, #2 + 1734 .LVL137: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1735 .loc 1 941 1 view .LVU543 + 1736 004c 7047 bx lr + 1737 .LVL138: + 1738 .L117: + 1739 .LCFI22: + 1740 .cfi_def_cfa_offset 8 + 1741 .cfi_offset 4, -8 + 1742 .cfi_offset 14, -4 + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1743 .loc 1 907 14 view .LVU544 + 1744 004e 0120 movs r0, #1 + 1745 .LVL139: + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1746 .loc 1 907 14 view .LVU545 + 1747 0050 00E0 b .L113 + 1748 .LVL140: + 1749 .L118: + 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** } + 1750 .loc 1 907 14 view .LVU546 + 1751 0052 0120 movs r0, #1 + 1752 .LVL141: + 1753 .L113: + 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1754 .loc 1 941 1 view .LVU547 + 1755 0054 10BD pop {r4, pc} + 1756 .LVL142: + 1757 .L119: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1758 .loc 1 910 5 view .LVU548 + 1759 0056 0220 movs r0, #2 + 1760 .LVL143: + 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart_ex.c **** + 1761 .loc 1 910 5 view .LVU549 + 1762 0058 FCE7 b .L113 + 1763 .cfi_endproc + 1764 .LFE343: + 1766 .section .rodata.denominator.0,"a" + 1767 .align 2 + 1770 denominator.0: + 1771 0000 08040204 .ascii "\010\004\002\004\010\001\001\001" + 1771 08010101 + 1772 .section .rodata.numerator.1,"a" + 1773 .align 2 + ARM GAS /tmp/ccEfj1JP.s page 79 + + + 1776 numerator.1: + 1777 0000 01010103 .ascii "\001\001\001\003\007\001\000\000" + 1777 07010000 + 1778 .text + 1779 .Letext0: + 1780 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1781 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1782 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 1783 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1784 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" + 1785 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" + 1786 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h" + 1787 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + ARM GAS /tmp/ccEfj1JP.s page 80 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_hal_uart_ex.c + /tmp/ccEfj1JP.s:21 .text.UARTEx_Wakeup_AddressConfig:00000000 $t + /tmp/ccEfj1JP.s:26 .text.UARTEx_Wakeup_AddressConfig:00000000 UARTEx_Wakeup_AddressConfig + /tmp/ccEfj1JP.s:65 .text.UARTEx_SetNbDataToProcess:00000000 $t + /tmp/ccEfj1JP.s:70 .text.UARTEx_SetNbDataToProcess:00000000 UARTEx_SetNbDataToProcess + /tmp/ccEfj1JP.s:156 .text.UARTEx_SetNbDataToProcess:00000044 $d + /tmp/ccEfj1JP.s:1776 .rodata.numerator.1:00000000 numerator.1 + /tmp/ccEfj1JP.s:1770 .rodata.denominator.0:00000000 denominator.0 + /tmp/ccEfj1JP.s:162 .text.HAL_RS485Ex_Init:00000000 $t + /tmp/ccEfj1JP.s:168 .text.HAL_RS485Ex_Init:00000000 HAL_RS485Ex_Init + /tmp/ccEfj1JP.s:306 .text.HAL_UARTEx_WakeupCallback:00000000 $t + /tmp/ccEfj1JP.s:312 .text.HAL_UARTEx_WakeupCallback:00000000 HAL_UARTEx_WakeupCallback + /tmp/ccEfj1JP.s:327 .text.HAL_UARTEx_RxFifoFullCallback:00000000 $t + /tmp/ccEfj1JP.s:333 .text.HAL_UARTEx_RxFifoFullCallback:00000000 HAL_UARTEx_RxFifoFullCallback + /tmp/ccEfj1JP.s:348 .text.HAL_UARTEx_TxFifoEmptyCallback:00000000 $t + /tmp/ccEfj1JP.s:354 .text.HAL_UARTEx_TxFifoEmptyCallback:00000000 HAL_UARTEx_TxFifoEmptyCallback + /tmp/ccEfj1JP.s:369 .text.HAL_MultiProcessorEx_AddressLength_Set:00000000 $t + /tmp/ccEfj1JP.s:375 .text.HAL_MultiProcessorEx_AddressLength_Set:00000000 HAL_MultiProcessorEx_AddressLength_Set + /tmp/ccEfj1JP.s:439 .text.HAL_UARTEx_StopModeWakeUpSourceConfig:00000000 $t + /tmp/ccEfj1JP.s:445 .text.HAL_UARTEx_StopModeWakeUpSourceConfig:00000000 HAL_UARTEx_StopModeWakeUpSourceConfig + /tmp/ccEfj1JP.s:571 .text.HAL_UARTEx_EnableStopMode:00000000 $t + /tmp/ccEfj1JP.s:577 .text.HAL_UARTEx_EnableStopMode:00000000 HAL_UARTEx_EnableStopMode + /tmp/ccEfj1JP.s:670 .text.HAL_UARTEx_DisableStopMode:00000000 $t + /tmp/ccEfj1JP.s:676 .text.HAL_UARTEx_DisableStopMode:00000000 HAL_UARTEx_DisableStopMode + /tmp/ccEfj1JP.s:768 .text.HAL_UARTEx_EnableFifoMode:00000000 $t + /tmp/ccEfj1JP.s:774 .text.HAL_UARTEx_EnableFifoMode:00000000 HAL_UARTEx_EnableFifoMode + /tmp/ccEfj1JP.s:853 .text.HAL_UARTEx_DisableFifoMode:00000000 $t + /tmp/ccEfj1JP.s:859 .text.HAL_UARTEx_DisableFifoMode:00000000 HAL_UARTEx_DisableFifoMode + /tmp/ccEfj1JP.s:930 .text.HAL_UARTEx_SetTxFifoThreshold:00000000 $t + /tmp/ccEfj1JP.s:936 .text.HAL_UARTEx_SetTxFifoThreshold:00000000 HAL_UARTEx_SetTxFifoThreshold + /tmp/ccEfj1JP.s:1017 .text.HAL_UARTEx_SetRxFifoThreshold:00000000 $t + /tmp/ccEfj1JP.s:1023 .text.HAL_UARTEx_SetRxFifoThreshold:00000000 HAL_UARTEx_SetRxFifoThreshold + /tmp/ccEfj1JP.s:1104 .text.HAL_UARTEx_ReceiveToIdle:00000000 $t + /tmp/ccEfj1JP.s:1110 .text.HAL_UARTEx_ReceiveToIdle:00000000 HAL_UARTEx_ReceiveToIdle + /tmp/ccEfj1JP.s:1443 .text.HAL_UARTEx_ReceiveToIdle_IT:00000000 $t + /tmp/ccEfj1JP.s:1449 .text.HAL_UARTEx_ReceiveToIdle_IT:00000000 HAL_UARTEx_ReceiveToIdle_IT + /tmp/ccEfj1JP.s:1605 .text.HAL_UARTEx_ReceiveToIdle_DMA:00000000 $t + /tmp/ccEfj1JP.s:1611 .text.HAL_UARTEx_ReceiveToIdle_DMA:00000000 HAL_UARTEx_ReceiveToIdle_DMA + /tmp/ccEfj1JP.s:1767 .rodata.denominator.0:00000000 $d + /tmp/ccEfj1JP.s:1773 .rodata.numerator.1:00000000 $d + +UNDEFINED SYMBOLS +UART_SetConfig +UART_CheckIdleState +HAL_UART_MspInit +UART_AdvFeatureConfig +HAL_GetTick +UART_WaitOnFlagUntilTimeout +UART_Start_Receive_IT +UART_Start_Receive_DMA diff --git a/squeow_sw/build/stm32g4xx_hal_uart_ex.o b/squeow_sw/build/stm32g4xx_hal_uart_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..3e1a4e17ba11317017baa4f49a3a5d149e573996 GIT binary patch literal 30860 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 aAFmXD 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/stm32g4xx_ll_adc.d b/squeow_sw/build/stm32g4xx_ll_adc.d new file mode 100644 index 0000000..d414128 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_ll_adc.d @@ -0,0 +1,2 @@ +build/stm32g4xx_ll_adc.o: \ + Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c diff --git a/squeow_sw/build/stm32g4xx_ll_adc.lst b/squeow_sw/build/stm32g4xx_ll_adc.lst new file mode 100644 index 0000000..d380929 --- /dev/null +++ b/squeow_sw/build/stm32g4xx_ll_adc.lst @@ -0,0 +1,30 @@ +ARM GAS /tmp/ccsoDKzN.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "stm32g4xx_ll_adc.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_adc.c" + 20 .Letext0: + ARM GAS /tmp/ccsoDKzN.s page 2 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_ll_adc.c + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_ll_adc.o b/squeow_sw/build/stm32g4xx_ll_adc.o new file mode 100644 index 0000000000000000000000000000000000000000..51f87b848bb3dab3fde10cad567d5fcf1e7e636a GIT binary patch literal 1116 zcmah{+iuf95S?uoh#^ z3w%U>kS~B)+e?#(%gF1QbLMz=JhR^}rf&%$po~BpZVmZxrMhRmmQ0jTp;IRu1eAM7Q0@i;%Hvg^>G6r5YWe~n?}~C? zw>AAeBHyEe>KSuIm@G5Ie!eW?-yFbrG&gK6UuISTR = 0U; + 73 .loc 1 89 3 view .LVU10 + 74 .loc 1 89 14 is_stmt 0 view .LVU11 + 75 0002 0020 movs r0, #0 + 76 .LVL3: + 77 .loc 1 89 14 view .LVU12 + 78 0004 A3F84400 strh r0, [r3, #68] @ movhi + 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set winterruptmask variable */ + 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** winterruptmask = USB_CNTR_CTRM | USB_CNTR_WKUPM | + 79 .loc 1 92 3 is_stmt 1 view .LVU13 + 80 .LVL4: + 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_CNTR_SUSPM | USB_CNTR_ERRM | + 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_CNTR_SOFM | USB_CNTR_ESOFM | + ARM GAS /tmp/cc2t6zYn.s page 4 + + + 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_CNTR_RESETM | USB_CNTR_L1REQM; + 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set interrupt mask */ + 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR = (uint16_t)winterruptmask; + 81 .loc 1 98 3 view .LVU14 + 82 .loc 1 98 14 is_stmt 0 view .LVU15 + 83 0008 4BF68072 movw r2, #49024 + 84 000c A3F84020 strh r2, [r3, #64] @ movhi + 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 85 .loc 1 100 3 is_stmt 1 view .LVU16 + 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 86 .loc 1 101 1 is_stmt 0 view .LVU17 + 87 0010 7047 bx lr + 88 .cfi_endproc + 89 .LFE330: + 91 .section .text.USB_DisableGlobalInt,"ax",%progbits + 92 .align 1 + 93 .global USB_DisableGlobalInt + 94 .syntax unified + 95 .thumb + 96 .thumb_func + 98 USB_DisableGlobalInt: + 99 .LVL5: + 100 .LFB331: + 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_DisableGlobalInt + 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * Disable the controller's Global Int in the AHB Config reg + 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_DisableGlobalInt(USB_TypeDef *USBx) + 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 101 .loc 1 110 1 is_stmt 1 view -0 + 102 .cfi_startproc + 103 @ args = 0, pretend = 0, frame = 0 + 104 @ frame_needed = 0, uses_anonymous_args = 0 + 105 @ link register save eliminated. + 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t winterruptmask; + 106 .loc 1 111 3 view .LVU19 + 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set winterruptmask variable */ + 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** winterruptmask = USB_CNTR_CTRM | USB_CNTR_WKUPM | + 107 .loc 1 114 3 view .LVU20 + 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_CNTR_SUSPM | USB_CNTR_ERRM | + 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_CNTR_SOFM | USB_CNTR_ESOFM | + 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_CNTR_RESETM | USB_CNTR_L1REQM; + 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Clear interrupt mask */ + 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR &= (uint16_t)(~winterruptmask); + 108 .loc 1 120 3 view .LVU21 + 109 .loc 1 120 7 is_stmt 0 view .LVU22 + 110 0000 B0F84030 ldrh r3, [r0, #64] + 111 .loc 1 120 14 view .LVU23 + 112 0004 23F47E53 bic r3, r3, #16256 + 113 0008 5B04 lsls r3, r3, #17 + ARM GAS /tmp/cc2t6zYn.s page 5 + + + 114 000a 5B0C lsrs r3, r3, #17 + 115 000c A0F84030 strh r3, [r0, #64] @ movhi + 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 116 .loc 1 122 3 is_stmt 1 view .LVU24 + 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 117 .loc 1 123 1 is_stmt 0 view .LVU25 + 118 0010 0020 movs r0, #0 + 119 .LVL6: + 120 .loc 1 123 1 view .LVU26 + 121 0012 7047 bx lr + 122 .cfi_endproc + 123 .LFE331: + 125 .section .text.USB_SetCurrentMode,"ax",%progbits + 126 .align 1 + 127 .global USB_SetCurrentMode + 128 .syntax unified + 129 .thumb + 130 .thumb_func + 132 USB_SetCurrentMode: + 133 .LVL7: + 134 .LFB332: + 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_SetCurrentMode Set functional mode + 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param mode current core mode + 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * This parameter can be one of the these values: + 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @arg USB_DEVICE_MODE Peripheral mode + 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_SetCurrentMode(USB_TypeDef *USBx, USB_ModeTypeDef mode) + 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 135 .loc 1 134 1 is_stmt 1 view -0 + 136 .cfi_startproc + 137 @ args = 0, pretend = 0, frame = 0 + 138 @ frame_needed = 0, uses_anonymous_args = 0 + 139 @ link register save eliminated. + 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */ + 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** UNUSED(USBx); + 140 .loc 1 136 3 view .LVU28 + 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** UNUSED(mode); + 141 .loc 1 137 3 view .LVU29 + 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used + 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** only by USB OTG FS peripheral. + 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** - This function is added to ensure compatibility across platforms. + 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 142 .loc 1 143 3 view .LVU30 + 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 143 .loc 1 144 1 is_stmt 0 view .LVU31 + 144 0000 0020 movs r0, #0 + 145 .LVL8: + 146 .loc 1 144 1 view .LVU32 + 147 0002 7047 bx lr + 148 .cfi_endproc + ARM GAS /tmp/cc2t6zYn.s page 6 + + + 149 .LFE332: + 151 .section .text.USB_DevInit,"ax",%progbits + 152 .align 1 + 153 .global USB_DevInit + 154 .syntax unified + 155 .thumb + 156 .thumb_func + 158 USB_DevInit: + 159 .LVL9: + 160 .LFB333: + 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_DevInit Initializes the USB controller registers + 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * for device mode + 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param cfg pointer to a USB_CfgTypeDef structure that contains + 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * the configuration information for the specified USBx peripheral. + 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_DevInit(USB_TypeDef *USBx, USB_CfgTypeDef cfg) + 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 161 .loc 1 155 1 is_stmt 1 view -0 + 162 .cfi_startproc + 163 @ args = 36, pretend = 16, frame = 0 + 164 @ frame_needed = 0, uses_anonymous_args = 0 + 165 @ link register save eliminated. + 166 .loc 1 155 1 is_stmt 0 view .LVU34 + 167 0000 84B0 sub sp, sp, #16 + 168 .LCFI2: + 169 .cfi_def_cfa_offset 16 + 170 0002 8446 mov ip, r0 + 171 0004 01A8 add r0, sp, #4 + 172 .LVL10: + 173 .loc 1 155 1 view .LVU35 + 174 0006 80E80E00 stm r0, {r1, r2, r3} + 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */ + 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** UNUSED(cfg); + 175 .loc 1 157 3 is_stmt 1 view .LVU36 + 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Init Device */ + 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* CNTR_FRES = 1 */ + 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR = (uint16_t)USB_CNTR_FRES; + 176 .loc 1 161 3 view .LVU37 + 177 .loc 1 161 14 is_stmt 0 view .LVU38 + 178 000a 0123 movs r3, #1 + 179 000c ACF84030 strh r3, [ip, #64] @ movhi + 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* CNTR_FRES = 0 */ + 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR = 0U; + 180 .loc 1 164 3 is_stmt 1 view .LVU39 + 181 .loc 1 164 14 is_stmt 0 view .LVU40 + 182 0010 0020 movs r0, #0 + 183 0012 ACF84000 strh r0, [ip, #64] @ movhi + 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Clear pending interrupts */ + 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->ISTR = 0U; + 184 .loc 1 167 3 is_stmt 1 view .LVU41 + ARM GAS /tmp/cc2t6zYn.s page 7 + + + 185 .loc 1 167 14 is_stmt 0 view .LVU42 + 186 0016 ACF84400 strh r0, [ip, #68] @ movhi + 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /*Set Btable Address*/ + 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->BTABLE = BTABLE_ADDRESS; + 187 .loc 1 170 3 is_stmt 1 view .LVU43 + 188 .loc 1 170 16 is_stmt 0 view .LVU44 + 189 001a ACF85000 strh r0, [ip, #80] @ movhi + 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 190 .loc 1 172 3 is_stmt 1 view .LVU45 + 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 191 .loc 1 173 1 is_stmt 0 view .LVU46 + 192 001e 04B0 add sp, sp, #16 + 193 .LCFI3: + 194 .cfi_def_cfa_offset 0 + 195 0020 7047 bx lr + 196 .cfi_endproc + 197 .LFE333: + 199 .section .text.USB_ActivateEndpoint,"ax",%progbits + 200 .align 1 + 201 .global USB_ActivateEndpoint + 202 .syntax unified + 203 .thumb + 204 .thumb_func + 206 USB_ActivateEndpoint: + 207 .LVL11: + 208 .LFB334: + 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if defined (HAL_PCD_MODULE_ENABLED) + 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief Activate and configure an endpoint + 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param ep pointer to endpoint structure + 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_ActivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep) + 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 209 .loc 1 183 1 is_stmt 1 view -0 + 210 .cfi_startproc + 211 @ args = 0, pretend = 0, frame = 0 + 212 @ frame_needed = 0, uses_anonymous_args = 0 + 213 .loc 1 183 1 is_stmt 0 view .LVU48 + 214 0000 10B5 push {r4, lr} + 215 .LCFI4: + 216 .cfi_def_cfa_offset 8 + 217 .cfi_offset 4, -8 + 218 .cfi_offset 14, -4 + 219 0002 0346 mov r3, r0 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef ret = HAL_OK; + 220 .loc 1 184 3 is_stmt 1 view .LVU49 + 221 .LVL12: + 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint16_t wEpRegVal; + 222 .loc 1 185 3 view .LVU50 + 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** wEpRegVal = PCD_GET_ENDPOINT(USBx, ep->num) & USB_EP_T_MASK; + 223 .loc 1 187 3 view .LVU51 + ARM GAS /tmp/cc2t6zYn.s page 8 + + + 224 .loc 1 187 15 is_stmt 0 view .LVU52 + 225 0004 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 226 .loc 1 187 47 view .LVU53 + 227 0008 30F82C20 ldrh r2, [r0, ip, lsl #2] + 228 000c 92B2 uxth r2, r2 + 229 .loc 1 187 13 view .LVU54 + 230 000e 22F4EC42 bic r2, r2, #30208 + 231 0012 22F07002 bic r2, r2, #112 + 232 0016 92B2 uxth r2, r2 + 233 .LVL13: + 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* initialize Endpoint */ + 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** switch (ep->type) + 234 .loc 1 190 3 is_stmt 1 view .LVU55 + 235 .loc 1 190 13 is_stmt 0 view .LVU56 + 236 0018 C878 ldrb r0, [r1, #3] @ zero_extendqisi2 + 237 .LVL14: + 238 .loc 1 190 3 view .LVU57 + 239 001a 0328 cmp r0, #3 + 240 001c 61D8 bhi .L35 + 241 001e DFE800F0 tbb [pc, r0] + 242 .L11: + 243 0022 55 .byte (.L14-.L11)/2 + 244 0023 5C .byte (.L13-.L11)/2 + 245 0024 02 .byte (.L12-.L11)/2 + 246 0025 58 .byte (.L10-.L11)/2 + 247 .p2align 1 + 248 .L12: + 249 0026 0020 movs r0, #0 + 250 .L9: + 251 .LVL15: + 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** case EP_TYPE_CTRL: + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** wEpRegVal |= USB_EP_CONTROL; + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** case EP_TYPE_BULK: + 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** wEpRegVal |= USB_EP_BULK; + 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** case EP_TYPE_INTR: + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** wEpRegVal |= USB_EP_INTERRUPT; + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** case EP_TYPE_ISOC: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** wEpRegVal |= USB_EP_ISOCHRONOUS; + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** default: + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ret = HAL_ERROR; + 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_ENDPOINT(USBx, ep->num, (wEpRegVal | USB_EP_CTR_RX | USB_EP_CTR_TX)); + 252 .loc 1 213 3 is_stmt 1 view .LVU58 + 253 0028 48F2800E movw lr, #32896 + 254 002c 42EA0E02 orr r2, r2, lr + ARM GAS /tmp/cc2t6zYn.s page 9 + + + 255 .LVL16: + 256 .loc 1 213 3 is_stmt 0 view .LVU59 + 257 0030 23F82C20 strh r2, [r3, ip, lsl #2] @ movhi + 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_ADDRESS(USBx, ep->num, ep->num); + 258 .loc 1 215 3 is_stmt 1 view .LVU60 + 259 .LBB2: + 260 .loc 1 215 3 view .LVU61 + 261 .loc 1 215 3 view .LVU62 + 262 0034 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 263 0038 33F82C20 ldrh r2, [r3, ip, lsl #2] + 264 003c 92B2 uxth r2, r2 + 265 003e 22F4E042 bic r2, r2, #28672 + 266 0042 22F07002 bic r2, r2, #112 + 267 0046 4CEA0202 orr r2, ip, r2 + 268 .LVL17: + 269 .loc 1 215 3 view .LVU63 + 270 004a 42EA0E02 orr r2, r2, lr + 271 .LVL18: + 272 .loc 1 215 3 is_stmt 0 view .LVU64 + 273 004e 23F82C20 strh r2, [r3, ip, lsl #2] @ movhi + 274 .LBE2: + 275 .loc 1 215 3 is_stmt 1 view .LVU65 + 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->doublebuffer == 0U) + 276 .loc 1 217 3 view .LVU66 + 277 .loc 1 217 9 is_stmt 0 view .LVU67 + 278 0052 0A7B ldrb r2, [r1, #12] @ zero_extendqisi2 + 279 .loc 1 217 6 view .LVU68 + 280 0054 002A cmp r2, #0 + 281 0056 40F0C280 bne .L15 + 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in != 0U) + 282 .loc 1 219 5 is_stmt 1 view .LVU69 + 283 .loc 1 219 11 is_stmt 0 view .LVU70 + 284 005a 4A78 ldrb r2, [r1, #1] @ zero_extendqisi2 + 285 .loc 1 219 8 view .LVU71 + 286 005c 002A cmp r2, #0 + 287 005e 51D0 beq .L16 + 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /*Set the endpoint Transmit buffer address */ + 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_ADDRESS(USBx, ep->num, ep->pmaadress); + 288 .loc 1 222 7 is_stmt 1 view .LVU72 + 289 .LBB3: + 290 .loc 1 222 7 view .LVU73 + 291 .loc 1 222 7 view .LVU74 + 292 .LVL19: + 293 .loc 1 222 7 view .LVU75 + 294 0060 B3F85020 ldrh r2, [r3, #80] + 295 0064 13FA82F2 uxtah r2, r3, r2 + 296 .LVL20: + 297 .loc 1 222 7 view .LVU76 + 298 0068 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 299 006a 02EBC402 add r2, r2, r4, lsl #3 + 300 .LVL21: + 301 .loc 1 222 7 view .LVU77 + 302 006e B1F806C0 ldrh ip, [r1, #6] + ARM GAS /tmp/cc2t6zYn.s page 10 + + + 303 .loc 1 222 7 is_stmt 0 view .LVU78 + 304 0072 4FEA5C0C lsr ip, ip, #1 + 305 0076 4FEA4C0C lsl ip, ip, #1 + 306 007a A2F800C4 strh ip, [r2, #1024] @ movhi + 307 .LBE3: + 308 .loc 1 222 7 is_stmt 1 view .LVU79 + 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 309 .loc 1 223 7 view .LVU80 + 310 .LBB4: + 311 .loc 1 223 7 view .LVU81 + 312 .loc 1 223 7 view .LVU82 + 313 007e 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 314 0080 33F82420 ldrh r2, [r3, r4, lsl #2] + 315 .LVL22: + 316 .loc 1 223 7 view .LVU83 + 317 0084 12F0400F tst r2, #64 + 318 0088 0CD0 beq .L17 + 319 .loc 1 223 7 discriminator 1 view .LVU84 + 320 .LBB5: + 321 .loc 1 223 7 discriminator 1 view .LVU85 + 322 .loc 1 223 7 discriminator 1 view .LVU86 + 323 008a 33F82420 ldrh r2, [r3, r4, lsl #2] + 324 .LVL23: + 325 .loc 1 223 7 is_stmt 0 discriminator 1 view .LVU87 + 326 008e 92B2 uxth r2, r2 + 327 0090 22F4E042 bic r2, r2, #28672 + 328 0094 22F07002 bic r2, r2, #112 + 329 .LVL24: + 330 .loc 1 223 7 is_stmt 1 discriminator 1 view .LVU88 + 331 0098 42F40042 orr r2, r2, #32768 + 332 .LVL25: + 333 .loc 1 223 7 is_stmt 0 discriminator 1 view .LVU89 + 334 009c 42F0C002 orr r2, r2, #192 + 335 00a0 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 336 .LVL26: + 337 .L17: + 338 .loc 1 223 7 discriminator 1 view .LVU90 + 339 .LBE5: + 340 .loc 1 223 7 is_stmt 1 discriminator 3 view .LVU91 + 341 .LBE4: + 342 .loc 1 223 7 discriminator 3 view .LVU92 + 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->type != EP_TYPE_ISOC) + 343 .loc 1 225 7 discriminator 3 view .LVU93 + 344 .loc 1 225 13 is_stmt 0 discriminator 3 view .LVU94 + 345 00a4 CA78 ldrb r2, [r1, #3] @ zero_extendqisi2 + 346 .loc 1 225 10 discriminator 3 view .LVU95 + 347 00a6 012A cmp r2, #1 + 348 00a8 1DD0 beq .L18 + 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure NAK status for the Endpoint */ + 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_NAK); + 349 .loc 1 228 9 is_stmt 1 view .LVU96 + 350 .LBB6: + 351 .loc 1 228 9 view .LVU97 + 352 .loc 1 228 9 view .LVU98 + 353 00aa 0978 ldrb r1, [r1] @ zero_extendqisi2 + ARM GAS /tmp/cc2t6zYn.s page 11 + + + 354 .LVL27: + 355 .loc 1 228 9 is_stmt 0 view .LVU99 + 356 00ac 33F82120 ldrh r2, [r3, r1, lsl #2] + 357 00b0 92B2 uxth r2, r2 + 358 00b2 22F4E042 bic r2, r2, #28672 + 359 00b6 22F04002 bic r2, r2, #64 + 360 .LVL28: + 361 .loc 1 228 9 is_stmt 1 view .LVU100 + 362 .loc 1 228 9 view .LVU101 + 363 .loc 1 228 9 view .LVU102 + 364 00ba 82F02002 eor r2, r2, #32 + 365 .LVL29: + 366 .loc 1 228 9 view .LVU103 + 367 00be 42F40042 orr r2, r2, #32768 + 368 .LVL30: + 369 .loc 1 228 9 is_stmt 0 view .LVU104 + 370 00c2 42F08002 orr r2, r2, #128 + 371 00c6 23F82120 strh r2, [r3, r1, lsl #2] @ movhi + 372 .LBE6: + 373 .loc 1 228 9 is_stmt 1 view .LVU105 + 374 00ca 66E0 b .L19 + 375 .LVL31: + 376 .L14: + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 377 .loc 1 193 7 view .LVU106 + 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 378 .loc 1 193 17 is_stmt 0 view .LVU107 + 379 00cc 42F40072 orr r2, r2, #512 + 380 .LVL32: + 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 381 .loc 1 194 7 is_stmt 1 view .LVU108 + 382 00d0 AAE7 b .L9 + 383 .L10: + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 384 .loc 1 201 7 view .LVU109 + 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 385 .loc 1 201 17 is_stmt 0 view .LVU110 + 386 00d2 42F4C062 orr r2, r2, #1536 + 387 .LVL33: + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 388 .loc 1 202 7 is_stmt 1 view .LVU111 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint16_t wEpRegVal; + 389 .loc 1 184 21 is_stmt 0 view .LVU112 + 390 00d6 0020 movs r0, #0 + 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 391 .loc 1 202 7 view .LVU113 + 392 00d8 A6E7 b .L9 + 393 .L13: + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 394 .loc 1 205 7 is_stmt 1 view .LVU114 + 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 395 .loc 1 205 17 is_stmt 0 view .LVU115 + 396 00da 42F48062 orr r2, r2, #1024 + 397 .LVL34: + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 398 .loc 1 206 7 is_stmt 1 view .LVU116 + 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint16_t wEpRegVal; + ARM GAS /tmp/cc2t6zYn.s page 12 + + + 399 .loc 1 184 21 is_stmt 0 view .LVU117 + 400 00de 0020 movs r0, #0 + 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 401 .loc 1 206 7 view .LVU118 + 402 00e0 A2E7 b .L9 + 403 .L35: + 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** break; + 404 .loc 1 209 11 view .LVU119 + 405 00e2 0120 movs r0, #1 + 406 00e4 A0E7 b .L9 + 407 .LVL35: + 408 .L18: + 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure TX Endpoint to disabled state */ + 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 409 .loc 1 233 9 is_stmt 1 view .LVU120 + 410 .LBB7: + 411 .loc 1 233 9 view .LVU121 + 412 .loc 1 233 9 view .LVU122 + 413 00e6 0978 ldrb r1, [r1] @ zero_extendqisi2 + 414 .LVL36: + 415 .loc 1 233 9 is_stmt 0 view .LVU123 + 416 00e8 33F82120 ldrh r2, [r3, r1, lsl #2] + 417 00ec 92B2 uxth r2, r2 + 418 00ee 22F4E042 bic r2, r2, #28672 + 419 00f2 22F04002 bic r2, r2, #64 + 420 .LVL37: + 421 .loc 1 233 9 is_stmt 1 view .LVU124 + 422 .loc 1 233 9 view .LVU125 + 423 .loc 1 233 9 view .LVU126 + 424 00f6 42F40042 orr r2, r2, #32768 + 425 .LVL38: + 426 .loc 1 233 9 is_stmt 0 view .LVU127 + 427 00fa 42F08002 orr r2, r2, #128 + 428 00fe 23F82120 strh r2, [r3, r1, lsl #2] @ movhi + 429 0102 4AE0 b .L19 + 430 .LVL39: + 431 .L16: + 432 .loc 1 233 9 view .LVU128 + 433 .LBE7: + 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the endpoint Receive buffer address */ + 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_ADDRESS(USBx, ep->num, ep->pmaadress); + 434 .loc 1 239 7 is_stmt 1 view .LVU129 + 435 .LBB8: + 436 .loc 1 239 7 view .LVU130 + 437 .loc 1 239 7 view .LVU131 + 438 .loc 1 239 7 view .LVU132 + 439 0104 B3F85020 ldrh r2, [r3, #80] + 440 0108 13FA82F2 uxtah r2, r3, r2 + 441 .LVL40: + 442 .loc 1 239 7 view .LVU133 + ARM GAS /tmp/cc2t6zYn.s page 13 + + + 443 010c 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 444 010e 02EBC402 add r2, r2, r4, lsl #3 + 445 .LVL41: + 446 .loc 1 239 7 view .LVU134 + 447 0112 B1F806C0 ldrh ip, [r1, #6] + 448 .loc 1 239 7 is_stmt 0 view .LVU135 + 449 0116 4FEA5C0C lsr ip, ip, #1 + 450 011a 4FEA4C0C lsl ip, ip, #1 + 451 011e A2F804C4 strh ip, [r2, #1028] @ movhi + 452 .LBE8: + 453 .loc 1 239 7 is_stmt 1 view .LVU136 + 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the endpoint Receive buffer counter */ + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_CNT(USBx, ep->num, ep->maxpacket); + 454 .loc 1 242 7 view .LVU137 + 455 .LBB9: + 456 .loc 1 242 7 view .LVU138 + 457 .LVL42: + 458 .loc 1 242 7 view .LVU139 + 459 .loc 1 242 7 view .LVU140 + 460 0122 B3F85020 ldrh r2, [r3, #80] + 461 .LVL43: + 462 .loc 1 242 7 is_stmt 0 view .LVU141 + 463 0126 13FA82F2 uxtah r2, r3, r2 + 464 .LVL44: + 465 .loc 1 242 7 is_stmt 1 view .LVU142 + 466 012a 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 467 .loc 1 242 7 is_stmt 0 view .LVU143 + 468 012c 02EBC402 add r2, r2, r4, lsl #3 + 469 .LVL45: + 470 .loc 1 242 7 is_stmt 1 view .LVU144 + 471 .LBB10: + 472 .loc 1 242 7 view .LVU145 + 473 .loc 1 242 7 view .LVU146 + 474 0130 0C69 ldr r4, [r1, #16] + 475 0132 3E2C cmp r4, #62 + 476 0134 32D9 bls .L20 + 477 .loc 1 242 7 discriminator 1 view .LVU147 + 478 .loc 1 242 7 discriminator 1 view .LVU148 + 479 0136 4FEA541C lsr ip, r4, #5 + 480 .LVL46: + 481 .loc 1 242 7 discriminator 1 view .LVU149 + 482 013a 14F01F0F tst r4, #31 + 483 013e 01D1 bne .L21 + 484 .loc 1 242 7 discriminator 3 view .LVU150 + 485 0140 0CF1FF3C add ip, ip, #-1 + 486 .LVL47: + 487 .L21: + 488 .loc 1 242 7 discriminator 5 view .LVU151 + 489 0144 6FEACC6C mvn ip, ip, lsl #27 + 490 .LVL48: + 491 .loc 1 242 7 is_stmt 0 discriminator 5 view .LVU152 + 492 0148 6FEA5C4C mvn ip, ip, lsr #17 + 493 014c 1FFA8CFC uxth ip, ip + 494 0150 A2F806C4 strh ip, [r2, #1030] @ movhi + 495 .loc 1 242 7 is_stmt 1 discriminator 5 view .LVU153 + 496 .LVL49: + ARM GAS /tmp/cc2t6zYn.s page 14 + + + 497 .L22: + 498 .loc 1 242 7 discriminator 13 view .LVU154 + 499 .LBE10: + 500 .loc 1 242 7 discriminator 13 view .LVU155 + 501 .LBE9: + 502 .loc 1 242 7 discriminator 13 view .LVU156 + 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 503 .loc 1 243 7 discriminator 13 view .LVU157 + 504 .LBB12: + 505 .loc 1 243 7 discriminator 13 view .LVU158 + 506 .loc 1 243 7 discriminator 13 view .LVU159 + 507 0154 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 508 0156 33F82420 ldrh r2, [r3, r4, lsl #2] + 509 .LVL50: + 510 .loc 1 243 7 discriminator 13 view .LVU160 + 511 015a 12F4804F tst r2, #16384 + 512 015e 0CD0 beq .L25 + 513 .loc 1 243 7 discriminator 1 view .LVU161 + 514 .LBB13: + 515 .loc 1 243 7 discriminator 1 view .LVU162 + 516 .loc 1 243 7 discriminator 1 view .LVU163 + 517 0160 33F82420 ldrh r2, [r3, r4, lsl #2] + 518 .LVL51: + 519 .loc 1 243 7 is_stmt 0 discriminator 1 view .LVU164 + 520 0164 92B2 uxth r2, r2 + 521 0166 22F4E042 bic r2, r2, #28672 + 522 016a 22F07002 bic r2, r2, #112 + 523 .LVL52: + 524 .loc 1 243 7 is_stmt 1 discriminator 1 view .LVU165 + 525 016e 42F44042 orr r2, r2, #49152 + 526 .LVL53: + 527 .loc 1 243 7 is_stmt 0 discriminator 1 view .LVU166 + 528 0172 42F08002 orr r2, r2, #128 + 529 0176 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 530 .LVL54: + 531 .L25: + 532 .loc 1 243 7 discriminator 1 view .LVU167 + 533 .LBE13: + 534 .loc 1 243 7 is_stmt 1 discriminator 3 view .LVU168 + 535 .LBE12: + 536 .loc 1 243 7 discriminator 3 view .LVU169 + 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure VALID status for the Endpoint */ + 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID); + 537 .loc 1 246 7 discriminator 3 view .LVU170 + 538 .LBB14: + 539 .loc 1 246 7 discriminator 3 view .LVU171 + 540 .loc 1 246 7 discriminator 3 view .LVU172 + 541 017a 0978 ldrb r1, [r1] @ zero_extendqisi2 + 542 .LVL55: + 543 .loc 1 246 7 is_stmt 0 discriminator 3 view .LVU173 + 544 017c 33F82120 ldrh r2, [r3, r1, lsl #2] + 545 0180 92B2 uxth r2, r2 + 546 0182 22F48042 bic r2, r2, #16384 + 547 0186 22F07002 bic r2, r2, #112 + 548 .LVL56: + 549 .loc 1 246 7 is_stmt 1 discriminator 3 view .LVU174 + ARM GAS /tmp/cc2t6zYn.s page 15 + + + 550 .loc 1 246 7 discriminator 3 view .LVU175 + 551 .loc 1 246 7 discriminator 3 view .LVU176 + 552 .loc 1 246 7 discriminator 3 view .LVU177 + 553 018a 82F44052 eor r2, r2, #12288 + 554 .LVL57: + 555 .loc 1 246 7 discriminator 3 view .LVU178 + 556 018e 42F40042 orr r2, r2, #32768 + 557 .LVL58: + 558 .loc 1 246 7 is_stmt 0 discriminator 3 view .LVU179 + 559 0192 42F08002 orr r2, r2, #128 + 560 0196 23F82120 strh r2, [r3, r1, lsl #2] @ movhi + 561 .LVL59: + 562 .L19: + 563 .loc 1 246 7 discriminator 3 view .LVU180 + 564 .LBE14: + 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Double Buffer */ + 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->type == EP_TYPE_BULK) + 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set bulk endpoint as double buffered */ + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_BULK_EP_DBUF(USBx, ep->num); + 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the ISOC endpoint in double buffer mode */ + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_EP_KIND(USBx, ep->num); + 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set buffer address for double buffered mode */ + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF_ADDR(USBx, ep->num, ep->pmaaddr0, ep->pmaaddr1); + 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in == 0U) + 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT */ + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID); + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT */ + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->type != EP_TYPE_ISOC) + 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure NAK status for the Endpoint */ + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_NAK); + 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + ARM GAS /tmp/cc2t6zYn.s page 16 + + + 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure TX Endpoint to disabled state */ + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 565 .loc 1 293 7 is_stmt 1 discriminator 7 view .LVU181 + 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return ret; + 566 .loc 1 298 3 discriminator 7 view .LVU182 + 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 567 .loc 1 299 1 is_stmt 0 discriminator 7 view .LVU183 + 568 019a 10BD pop {r4, pc} + 569 .LVL60: + 570 .L20: + 571 .LBB15: + 572 .LBB11: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 573 .loc 1 242 7 is_stmt 1 discriminator 2 view .LVU184 + 574 019c 8CB9 cbnz r4, .L23 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 575 .loc 1 242 7 discriminator 7 view .LVU185 + 576 019e B2F80644 ldrh r4, [r2, #1030] + 577 01a2 A4B2 uxth r4, r4 + 578 01a4 24F4F844 bic r4, r4, #31744 + 579 01a8 A4B2 uxth r4, r4 + 580 01aa A2F80644 strh r4, [r2, #1030] @ movhi + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 581 .loc 1 242 7 discriminator 7 view .LVU186 + 582 01ae B2F80644 ldrh r4, [r2, #1030] + 583 01b2 6FEA4444 mvn r4, r4, lsl #17 + 584 01b6 6FEA5444 mvn r4, r4, lsr #17 + 585 01ba A4B2 uxth r4, r4 + 586 01bc A2F80644 strh r4, [r2, #1030] @ movhi + 587 01c0 C8E7 b .L22 + 588 .L23: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 589 .loc 1 242 7 discriminator 8 view .LVU187 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 590 .loc 1 242 7 discriminator 8 view .LVU188 + 591 01c2 4FEA540C lsr ip, r4, #1 + 592 .LVL61: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 593 .loc 1 242 7 discriminator 8 view .LVU189 + 594 01c6 14F0010F tst r4, #1 + 595 01ca 01D0 beq .L24 + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 596 .loc 1 242 7 discriminator 10 view .LVU190 + 597 01cc 0CF1010C add ip, ip, #1 + 598 .LVL62: + 599 .L24: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 600 .loc 1 242 7 discriminator 12 view .LVU191 + 601 01d0 4FEA8C2C lsl ip, ip, #10 + 602 .LVL63: + ARM GAS /tmp/cc2t6zYn.s page 17 + + + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 603 .loc 1 242 7 is_stmt 0 discriminator 12 view .LVU192 + 604 01d4 1FFA8CFC uxth ip, ip + 605 01d8 A2F806C4 strh ip, [r2, #1030] @ movhi + 606 01dc BAE7 b .L22 + 607 .LVL64: + 608 .L15: + 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 609 .loc 1 242 7 discriminator 12 view .LVU193 + 610 .LBE11: + 611 .LBE15: + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 612 .loc 1 253 5 is_stmt 1 view .LVU194 + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 613 .loc 1 253 11 is_stmt 0 view .LVU195 + 614 01de CA78 ldrb r2, [r1, #3] @ zero_extendqisi2 + 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 615 .loc 1 253 8 view .LVU196 + 616 01e0 022A cmp r2, #2 + 617 01e2 72D0 beq .L37 + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 618 .loc 1 261 7 is_stmt 1 view .LVU197 + 619 .LBB16: + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 620 .loc 1 261 7 view .LVU198 + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 621 .loc 1 261 7 view .LVU199 + 622 01e4 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 623 01e6 33F82420 ldrh r2, [r3, r4, lsl #2] + 624 01ea 92B2 uxth r2, r2 + 625 01ec 22F4E242 bic r2, r2, #28928 + 626 01f0 22F07002 bic r2, r2, #112 + 627 .LVL65: + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 628 .loc 1 261 7 view .LVU200 + 629 01f4 42F40042 orr r2, r2, #32768 + 630 .LVL66: + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 631 .loc 1 261 7 is_stmt 0 view .LVU201 + 632 01f8 42F08002 orr r2, r2, #128 + 633 01fc 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 634 .LVL67: + 635 .L27: + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 636 .loc 1 261 7 view .LVU202 + 637 .LBE16: + 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 638 .loc 1 261 7 is_stmt 1 discriminator 1 view .LVU203 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 639 .loc 1 265 5 discriminator 1 view .LVU204 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 640 .loc 1 265 5 discriminator 1 view .LVU205 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 641 .loc 1 265 5 discriminator 1 view .LVU206 + 642 .LBB17: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 643 .loc 1 265 5 discriminator 1 view .LVU207 + ARM GAS /tmp/cc2t6zYn.s page 18 + + + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 644 .loc 1 265 5 discriminator 1 view .LVU208 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 645 .loc 1 265 5 discriminator 1 view .LVU209 + 646 0200 B3F85020 ldrh r2, [r3, #80] + 647 0204 13FA82F2 uxtah r2, r3, r2 + 648 .LVL68: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 649 .loc 1 265 5 discriminator 1 view .LVU210 + 650 0208 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 651 .loc 1 265 5 is_stmt 0 discriminator 1 view .LVU211 + 652 020c 02EBCC02 add r2, r2, ip, lsl #3 + 653 .LVL69: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 654 .loc 1 265 5 is_stmt 1 discriminator 1 view .LVU212 + 655 0210 B1F808C0 ldrh ip, [r1, #8] + 656 0214 4FEA5C0C lsr ip, ip, #1 + 657 0218 4FEA4C0C lsl ip, ip, #1 + 658 021c A2F800C4 strh ip, [r2, #1024] @ movhi + 659 .LBE17: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 660 .loc 1 265 5 discriminator 1 view .LVU213 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 661 .loc 1 265 5 discriminator 1 view .LVU214 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 662 .loc 1 265 5 discriminator 1 view .LVU215 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 663 .loc 1 265 5 discriminator 1 view .LVU216 + 664 .LBB18: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 665 .loc 1 265 5 discriminator 1 view .LVU217 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 666 .loc 1 265 5 discriminator 1 view .LVU218 + 667 .LVL70: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 668 .loc 1 265 5 discriminator 1 view .LVU219 + 669 0220 B3F85020 ldrh r2, [r3, #80] + 670 .LVL71: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 671 .loc 1 265 5 is_stmt 0 discriminator 1 view .LVU220 + 672 0224 13FA82F2 uxtah r2, r3, r2 + 673 .LVL72: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 674 .loc 1 265 5 is_stmt 1 discriminator 1 view .LVU221 + 675 0228 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 676 022c 02EBCC02 add r2, r2, ip, lsl #3 + 677 .LVL73: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 678 .loc 1 265 5 discriminator 1 view .LVU222 + 679 0230 B1F80AC0 ldrh ip, [r1, #10] + 680 0234 4FEA5C0C lsr ip, ip, #1 + 681 0238 4FEA4C0C lsl ip, ip, #1 + 682 023c A2F804C4 strh ip, [r2, #1028] @ movhi + 683 .LBE18: + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 684 .loc 1 265 5 discriminator 1 view .LVU223 + ARM GAS /tmp/cc2t6zYn.s page 19 + + + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 685 .loc 1 265 5 discriminator 1 view .LVU224 + 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 686 .loc 1 265 5 discriminator 1 view .LVU225 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 687 .loc 1 267 5 discriminator 1 view .LVU226 + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 688 .loc 1 267 11 is_stmt 0 discriminator 1 view .LVU227 + 689 0240 4A78 ldrb r2, [r1, #1] @ zero_extendqisi2 + 690 .LVL74: + 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 691 .loc 1 267 8 discriminator 1 view .LVU228 + 692 0242 002A cmp r2, #0 + 693 0244 50D1 bne .L28 + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 694 .loc 1 270 7 is_stmt 1 view .LVU229 + 695 .LBB19: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 696 .loc 1 270 7 view .LVU230 + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 697 .loc 1 270 7 view .LVU231 + 698 0246 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 699 0248 33F82420 ldrh r2, [r3, r4, lsl #2] + 700 .LVL75: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 701 .loc 1 270 7 view .LVU232 + 702 024c 12F4804F tst r2, #16384 + 703 0250 0CD0 beq .L29 + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 704 .loc 1 270 7 discriminator 1 view .LVU233 + 705 .LBB20: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 706 .loc 1 270 7 discriminator 1 view .LVU234 + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 707 .loc 1 270 7 discriminator 1 view .LVU235 + 708 0252 33F82420 ldrh r2, [r3, r4, lsl #2] + 709 .LVL76: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 710 .loc 1 270 7 is_stmt 0 discriminator 1 view .LVU236 + 711 0256 92B2 uxth r2, r2 + 712 0258 22F4E042 bic r2, r2, #28672 + 713 025c 22F07002 bic r2, r2, #112 + 714 .LVL77: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 715 .loc 1 270 7 is_stmt 1 discriminator 1 view .LVU237 + 716 0260 42F44042 orr r2, r2, #49152 + 717 .LVL78: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 718 .loc 1 270 7 is_stmt 0 discriminator 1 view .LVU238 + 719 0264 42F08002 orr r2, r2, #128 + 720 0268 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 721 .LVL79: + 722 .L29: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 723 .loc 1 270 7 discriminator 1 view .LVU239 + 724 .LBE20: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + ARM GAS /tmp/cc2t6zYn.s page 20 + + + 725 .loc 1 270 7 is_stmt 1 discriminator 3 view .LVU240 + 726 .LBE19: + 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 727 .loc 1 270 7 discriminator 3 view .LVU241 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 728 .loc 1 271 7 discriminator 3 view .LVU242 + 729 .LBB21: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 730 .loc 1 271 7 discriminator 3 view .LVU243 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 731 .loc 1 271 7 discriminator 3 view .LVU244 + 732 026c 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 733 026e 33F82420 ldrh r2, [r3, r4, lsl #2] + 734 .LVL80: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 735 .loc 1 271 7 discriminator 3 view .LVU245 + 736 0272 12F0400F tst r2, #64 + 737 0276 0CD0 beq .L30 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 738 .loc 1 271 7 discriminator 1 view .LVU246 + 739 .LBB22: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 740 .loc 1 271 7 discriminator 1 view .LVU247 + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 741 .loc 1 271 7 discriminator 1 view .LVU248 + 742 0278 33F82420 ldrh r2, [r3, r4, lsl #2] + 743 .LVL81: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 744 .loc 1 271 7 is_stmt 0 discriminator 1 view .LVU249 + 745 027c 92B2 uxth r2, r2 + 746 027e 22F4E042 bic r2, r2, #28672 + 747 0282 22F07002 bic r2, r2, #112 + 748 .LVL82: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 749 .loc 1 271 7 is_stmt 1 discriminator 1 view .LVU250 + 750 0286 42F40042 orr r2, r2, #32768 + 751 .LVL83: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 752 .loc 1 271 7 is_stmt 0 discriminator 1 view .LVU251 + 753 028a 42F0C002 orr r2, r2, #192 + 754 028e 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 755 .LVL84: + 756 .L30: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 757 .loc 1 271 7 discriminator 1 view .LVU252 + 758 .LBE22: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 759 .loc 1 271 7 is_stmt 1 discriminator 3 view .LVU253 + 760 .LBE21: + 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 761 .loc 1 271 7 discriminator 3 view .LVU254 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 762 .loc 1 273 7 discriminator 3 view .LVU255 + 763 .LBB23: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 764 .loc 1 273 7 discriminator 3 view .LVU256 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + ARM GAS /tmp/cc2t6zYn.s page 21 + + + 765 .loc 1 273 7 discriminator 3 view .LVU257 + 766 0292 91F800C0 ldrb ip, [r1] @ zero_extendqisi2 + 767 0296 33F82C20 ldrh r2, [r3, ip, lsl #2] + 768 029a 92B2 uxth r2, r2 + 769 029c 22F48042 bic r2, r2, #16384 + 770 02a0 22F07002 bic r2, r2, #112 + 771 .LVL85: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 772 .loc 1 273 7 discriminator 3 view .LVU258 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 773 .loc 1 273 7 discriminator 3 view .LVU259 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 774 .loc 1 273 7 discriminator 3 view .LVU260 + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 775 .loc 1 273 7 discriminator 3 view .LVU261 + 776 02a4 82F44052 eor r2, r2, #12288 + 777 .LVL86: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 778 .loc 1 273 7 discriminator 3 view .LVU262 + 779 02a8 48F28004 movw r4, #32896 + 780 02ac 2243 orrs r2, r2, r4 + 781 .LVL87: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 782 .loc 1 273 7 is_stmt 0 discriminator 3 view .LVU263 + 783 02ae 23F82C20 strh r2, [r3, ip, lsl #2] @ movhi + 784 .LBE23: + 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 785 .loc 1 273 7 is_stmt 1 discriminator 3 view .LVU264 + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 786 .loc 1 274 7 discriminator 3 view .LVU265 + 787 .LBB24: + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 788 .loc 1 274 7 discriminator 3 view .LVU266 + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 789 .loc 1 274 7 discriminator 3 view .LVU267 + 790 02b2 0978 ldrb r1, [r1] @ zero_extendqisi2 + 791 .LVL88: + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 792 .loc 1 274 7 is_stmt 0 discriminator 3 view .LVU268 + 793 02b4 33F82120 ldrh r2, [r3, r1, lsl #2] + 794 02b8 92B2 uxth r2, r2 + 795 02ba 22F4E042 bic r2, r2, #28672 + 796 02be 22F04002 bic r2, r2, #64 + 797 .LVL89: + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 798 .loc 1 274 7 is_stmt 1 discriminator 3 view .LVU269 + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 799 .loc 1 274 7 discriminator 3 view .LVU270 + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 800 .loc 1 274 7 discriminator 3 view .LVU271 + 801 02c2 2243 orrs r2, r2, r4 + 802 .LVL90: + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 803 .loc 1 274 7 is_stmt 0 discriminator 3 view .LVU272 + 804 02c4 23F82120 strh r2, [r3, r1, lsl #2] @ movhi + 805 .LBE24: + 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + ARM GAS /tmp/cc2t6zYn.s page 22 + + + 806 .loc 1 274 7 is_stmt 1 discriminator 3 view .LVU273 + 807 02c8 67E7 b .L19 + 808 .LVL91: + 809 .L37: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 810 .loc 1 256 7 view .LVU274 + 811 .LBB25: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 812 .loc 1 256 7 view .LVU275 + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 813 .loc 1 256 7 view .LVU276 + 814 02ca 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 815 02cc 33F82420 ldrh r2, [r3, r4, lsl #2] + 816 02d0 92B2 uxth r2, r2 + 817 02d2 22F4E042 bic r2, r2, #28672 + 818 02d6 22F07002 bic r2, r2, #112 + 819 .LVL92: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 820 .loc 1 256 7 view .LVU277 + 821 02da 42F40142 orr r2, r2, #33024 + 822 .LVL93: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 823 .loc 1 256 7 is_stmt 0 view .LVU278 + 824 02de 42F08002 orr r2, r2, #128 + 825 02e2 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 826 .LBE25: + 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 827 .loc 1 256 7 is_stmt 1 view .LVU279 + 828 02e6 8BE7 b .L27 + 829 .LVL94: + 830 .L28: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 831 .loc 1 279 7 view .LVU280 + 832 .LBB26: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 833 .loc 1 279 7 view .LVU281 + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 834 .loc 1 279 7 view .LVU282 + 835 02e8 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 836 02ea 33F82420 ldrh r2, [r3, r4, lsl #2] + 837 .LVL95: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 838 .loc 1 279 7 view .LVU283 + 839 02ee 12F4804F tst r2, #16384 + 840 02f2 0CD0 beq .L31 + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 841 .loc 1 279 7 discriminator 1 view .LVU284 + 842 .LBB27: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 843 .loc 1 279 7 discriminator 1 view .LVU285 + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 844 .loc 1 279 7 discriminator 1 view .LVU286 + 845 02f4 33F82420 ldrh r2, [r3, r4, lsl #2] + 846 .LVL96: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 847 .loc 1 279 7 is_stmt 0 discriminator 1 view .LVU287 + 848 02f8 92B2 uxth r2, r2 + ARM GAS /tmp/cc2t6zYn.s page 23 + + + 849 02fa 22F4E042 bic r2, r2, #28672 + 850 02fe 22F07002 bic r2, r2, #112 + 851 .LVL97: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 852 .loc 1 279 7 is_stmt 1 discriminator 1 view .LVU288 + 853 0302 42F44042 orr r2, r2, #49152 + 854 .LVL98: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 855 .loc 1 279 7 is_stmt 0 discriminator 1 view .LVU289 + 856 0306 42F08002 orr r2, r2, #128 + 857 030a 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 858 .LVL99: + 859 .L31: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 860 .loc 1 279 7 discriminator 1 view .LVU290 + 861 .LBE27: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 862 .loc 1 279 7 is_stmt 1 discriminator 3 view .LVU291 + 863 .LBE26: + 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 864 .loc 1 279 7 discriminator 3 view .LVU292 + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 865 .loc 1 280 7 discriminator 3 view .LVU293 + 866 .LBB28: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 867 .loc 1 280 7 discriminator 3 view .LVU294 + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 868 .loc 1 280 7 discriminator 3 view .LVU295 + 869 030e 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 870 0310 33F82420 ldrh r2, [r3, r4, lsl #2] + 871 .LVL100: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 872 .loc 1 280 7 discriminator 3 view .LVU296 + 873 0314 12F0400F tst r2, #64 + 874 0318 0CD0 beq .L32 + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 875 .loc 1 280 7 discriminator 1 view .LVU297 + 876 .LBB29: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 877 .loc 1 280 7 discriminator 1 view .LVU298 + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 878 .loc 1 280 7 discriminator 1 view .LVU299 + 879 031a 33F82420 ldrh r2, [r3, r4, lsl #2] + 880 .LVL101: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 881 .loc 1 280 7 is_stmt 0 discriminator 1 view .LVU300 + 882 031e 92B2 uxth r2, r2 + 883 0320 22F4E042 bic r2, r2, #28672 + 884 0324 22F07002 bic r2, r2, #112 + 885 .LVL102: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 886 .loc 1 280 7 is_stmt 1 discriminator 1 view .LVU301 + 887 0328 42F40042 orr r2, r2, #32768 + 888 .LVL103: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 889 .loc 1 280 7 is_stmt 0 discriminator 1 view .LVU302 + 890 032c 42F0C002 orr r2, r2, #192 + ARM GAS /tmp/cc2t6zYn.s page 24 + + + 891 0330 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 892 .LVL104: + 893 .L32: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 894 .loc 1 280 7 discriminator 1 view .LVU303 + 895 .LBE29: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 896 .loc 1 280 7 is_stmt 1 discriminator 3 view .LVU304 + 897 .LBE28: + 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 898 .loc 1 280 7 discriminator 3 view .LVU305 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 899 .loc 1 282 7 discriminator 3 view .LVU306 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 900 .loc 1 282 13 is_stmt 0 discriminator 3 view .LVU307 + 901 0334 CA78 ldrb r2, [r1, #3] @ zero_extendqisi2 + 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 902 .loc 1 282 10 discriminator 3 view .LVU308 + 903 0336 012A cmp r2, #1 + 904 0338 1ED0 beq .L33 + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 905 .loc 1 285 9 is_stmt 1 view .LVU309 + 906 .LBB30: + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 907 .loc 1 285 9 view .LVU310 + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 908 .loc 1 285 9 view .LVU311 + 909 033a 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 910 033c 33F82420 ldrh r2, [r3, r4, lsl #2] + 911 0340 92B2 uxth r2, r2 + 912 0342 22F4E042 bic r2, r2, #28672 + 913 0346 22F04002 bic r2, r2, #64 + 914 .LVL105: + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 915 .loc 1 285 9 view .LVU312 + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 916 .loc 1 285 9 view .LVU313 + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 917 .loc 1 285 9 view .LVU314 + 918 034a 82F02002 eor r2, r2, #32 + 919 .LVL106: + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 920 .loc 1 285 9 view .LVU315 + 921 034e 42F40042 orr r2, r2, #32768 + 922 .LVL107: + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 923 .loc 1 285 9 is_stmt 0 view .LVU316 + 924 0352 42F08002 orr r2, r2, #128 + 925 0356 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 926 .LBE30: + 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 927 .loc 1 285 9 is_stmt 1 view .LVU317 + 928 .LVL108: + 929 .L34: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 930 .loc 1 290 9 discriminator 7 view .LVU318 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + ARM GAS /tmp/cc2t6zYn.s page 25 + + + 931 .loc 1 293 7 discriminator 7 view .LVU319 + 932 .LBB31: + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 933 .loc 1 293 7 discriminator 7 view .LVU320 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 934 .loc 1 293 7 discriminator 7 view .LVU321 + 935 035a 0978 ldrb r1, [r1] @ zero_extendqisi2 + 936 .LVL109: + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 937 .loc 1 293 7 is_stmt 0 discriminator 7 view .LVU322 + 938 035c 33F82120 ldrh r2, [r3, r1, lsl #2] + 939 0360 92B2 uxth r2, r2 + 940 0362 22F48042 bic r2, r2, #16384 + 941 0366 22F07002 bic r2, r2, #112 + 942 .LVL110: + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 943 .loc 1 293 7 is_stmt 1 discriminator 7 view .LVU323 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 944 .loc 1 293 7 discriminator 7 view .LVU324 + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 945 .loc 1 293 7 discriminator 7 view .LVU325 + 946 036a 42F40042 orr r2, r2, #32768 + 947 .LVL111: + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 948 .loc 1 293 7 is_stmt 0 discriminator 7 view .LVU326 + 949 036e 42F08002 orr r2, r2, #128 + 950 0372 23F82120 strh r2, [r3, r1, lsl #2] @ movhi + 951 0376 10E7 b .L19 + 952 .LVL112: + 953 .L33: + 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 954 .loc 1 293 7 discriminator 7 view .LVU327 + 955 .LBE31: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 956 .loc 1 290 9 is_stmt 1 view .LVU328 + 957 .LBB32: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 958 .loc 1 290 9 view .LVU329 + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 959 .loc 1 290 9 view .LVU330 + 960 0378 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 961 037a 33F82420 ldrh r2, [r3, r4, lsl #2] + 962 037e 92B2 uxth r2, r2 + 963 0380 22F4E042 bic r2, r2, #28672 + 964 0384 22F04002 bic r2, r2, #64 + 965 .LVL113: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 966 .loc 1 290 9 view .LVU331 + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 967 .loc 1 290 9 view .LVU332 + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 968 .loc 1 290 9 view .LVU333 + 969 0388 42F40042 orr r2, r2, #32768 + 970 .LVL114: + 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 971 .loc 1 290 9 is_stmt 0 view .LVU334 + 972 038c 42F08002 orr r2, r2, #128 + ARM GAS /tmp/cc2t6zYn.s page 26 + + + 973 0390 23F82420 strh r2, [r3, r4, lsl #2] @ movhi + 974 0394 E1E7 b .L34 + 975 .LBE32: + 976 .cfi_endproc + 977 .LFE334: + 979 .section .text.USB_DeactivateEndpoint,"ax",%progbits + 980 .align 1 + 981 .global USB_DeactivateEndpoint + 982 .syntax unified + 983 .thumb + 984 .thumb_func + 986 USB_DeactivateEndpoint: + 987 .LVL115: + 988 .LFB335: + 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief De-activate and de-initialize an endpoint + 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param ep pointer to endpoint structure + 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_DeactivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep) + 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 989 .loc 1 308 1 is_stmt 1 view -0 + 990 .cfi_startproc + 991 @ args = 0, pretend = 0, frame = 0 + 992 @ frame_needed = 0, uses_anonymous_args = 0 + 993 @ link register save eliminated. + 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->doublebuffer == 0U) + 994 .loc 1 309 3 view .LVU336 + 995 .loc 1 309 9 is_stmt 0 view .LVU337 + 996 0000 0B7B ldrb r3, [r1, #12] @ zero_extendqisi2 + 997 .loc 1 309 6 view .LVU338 + 998 0002 002B cmp r3, #0 + 999 0004 46D1 bne .L39 + 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in != 0U) + 1000 .loc 1 311 5 is_stmt 1 view .LVU339 + 1001 .loc 1 311 11 is_stmt 0 view .LVU340 + 1002 0006 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 1003 .loc 1 311 8 view .LVU341 + 1004 0008 13B3 cbz r3, .L40 + 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1005 .loc 1 313 7 is_stmt 1 view .LVU342 + 1006 .LBB33: + 1007 .loc 1 313 7 view .LVU343 + 1008 .loc 1 313 7 view .LVU344 + 1009 000a 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1010 000c 30F82230 ldrh r3, [r0, r2, lsl #2] + 1011 .LVL116: + 1012 .loc 1 313 7 view .LVU345 + 1013 0010 13F0400F tst r3, #64 + 1014 0014 0CD0 beq .L41 + 1015 .loc 1 313 7 discriminator 1 view .LVU346 + 1016 .LBB34: + 1017 .loc 1 313 7 discriminator 1 view .LVU347 + ARM GAS /tmp/cc2t6zYn.s page 27 + + + 1018 .loc 1 313 7 discriminator 1 view .LVU348 + 1019 0016 30F82230 ldrh r3, [r0, r2, lsl #2] + 1020 .LVL117: + 1021 .loc 1 313 7 is_stmt 0 discriminator 1 view .LVU349 + 1022 001a 9BB2 uxth r3, r3 + 1023 001c 23F4E043 bic r3, r3, #28672 + 1024 0020 23F07003 bic r3, r3, #112 + 1025 .LVL118: + 1026 .loc 1 313 7 is_stmt 1 discriminator 1 view .LVU350 + 1027 0024 43F40043 orr r3, r3, #32768 + 1028 .LVL119: + 1029 .loc 1 313 7 is_stmt 0 discriminator 1 view .LVU351 + 1030 0028 43F0C003 orr r3, r3, #192 + 1031 002c 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1032 .LVL120: + 1033 .L41: + 1034 .loc 1 313 7 discriminator 1 view .LVU352 + 1035 .LBE34: + 1036 .loc 1 313 7 is_stmt 1 discriminator 3 view .LVU353 + 1037 .LBE33: + 1038 .loc 1 313 7 discriminator 3 view .LVU354 + 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint */ + 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1039 .loc 1 316 7 discriminator 3 view .LVU355 + 1040 .LBB35: + 1041 .loc 1 316 7 discriminator 3 view .LVU356 + 1042 .loc 1 316 7 discriminator 3 view .LVU357 + 1043 0030 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1044 0032 30F82230 ldrh r3, [r0, r2, lsl #2] + 1045 0036 9BB2 uxth r3, r3 + 1046 0038 23F4E043 bic r3, r3, #28672 + 1047 003c 23F04003 bic r3, r3, #64 + 1048 .LVL121: + 1049 .loc 1 316 7 discriminator 3 view .LVU358 + 1050 .loc 1 316 7 discriminator 3 view .LVU359 + 1051 .loc 1 316 7 discriminator 3 view .LVU360 + 1052 0040 43F40043 orr r3, r3, #32768 + 1053 .LVL122: + 1054 .loc 1 316 7 is_stmt 0 discriminator 3 view .LVU361 + 1055 0044 43F08003 orr r3, r3, #128 + 1056 0048 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1057 .LBE35: + 1058 .loc 1 316 7 is_stmt 1 discriminator 3 view .LVU362 + 1059 .LVL123: + 1060 .L42: + 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint */ + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + ARM GAS /tmp/cc2t6zYn.s page 28 + + + 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Double Buffer */ + 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in == 0U) + 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT*/ + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Reset value of the data toggle bits for the endpoint out*/ + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_TX_DTOG(USBx, ep->num); + 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT*/ + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/ + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1061 .loc 1 352 7 discriminator 7 view .LVU363 + 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1062 .loc 1 357 3 discriminator 7 view .LVU364 + 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1063 .loc 1 358 1 is_stmt 0 discriminator 7 view .LVU365 + 1064 004c 0020 movs r0, #0 + 1065 .LVL124: + 1066 .loc 1 358 1 discriminator 7 view .LVU366 + 1067 004e 7047 bx lr + 1068 .LVL125: + 1069 .L40: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1070 .loc 1 321 7 is_stmt 1 view .LVU367 + 1071 .LBB36: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1072 .loc 1 321 7 view .LVU368 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1073 .loc 1 321 7 view .LVU369 + 1074 0050 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1075 0052 30F82230 ldrh r3, [r0, r2, lsl #2] + 1076 .LVL126: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1077 .loc 1 321 7 view .LVU370 + 1078 0056 13F4804F tst r3, #16384 + 1079 005a 0CD0 beq .L43 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1080 .loc 1 321 7 discriminator 1 view .LVU371 + 1081 .LBB37: + ARM GAS /tmp/cc2t6zYn.s page 29 + + + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1082 .loc 1 321 7 discriminator 1 view .LVU372 + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1083 .loc 1 321 7 discriminator 1 view .LVU373 + 1084 005c 30F82230 ldrh r3, [r0, r2, lsl #2] + 1085 .LVL127: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1086 .loc 1 321 7 is_stmt 0 discriminator 1 view .LVU374 + 1087 0060 9BB2 uxth r3, r3 + 1088 0062 23F4E043 bic r3, r3, #28672 + 1089 0066 23F07003 bic r3, r3, #112 + 1090 .LVL128: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1091 .loc 1 321 7 is_stmt 1 discriminator 1 view .LVU375 + 1092 006a 43F44043 orr r3, r3, #49152 + 1093 .LVL129: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1094 .loc 1 321 7 is_stmt 0 discriminator 1 view .LVU376 + 1095 006e 43F08003 orr r3, r3, #128 + 1096 0072 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1097 .LVL130: + 1098 .L43: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1099 .loc 1 321 7 discriminator 1 view .LVU377 + 1100 .LBE37: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1101 .loc 1 321 7 is_stmt 1 discriminator 3 view .LVU378 + 1102 .LBE36: + 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1103 .loc 1 321 7 discriminator 3 view .LVU379 + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1104 .loc 1 324 7 discriminator 3 view .LVU380 + 1105 .LBB38: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1106 .loc 1 324 7 discriminator 3 view .LVU381 + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1107 .loc 1 324 7 discriminator 3 view .LVU382 + 1108 0076 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1109 0078 30F82230 ldrh r3, [r0, r2, lsl #2] + 1110 007c 9BB2 uxth r3, r3 + 1111 007e 23F48043 bic r3, r3, #16384 + 1112 0082 23F07003 bic r3, r3, #112 + 1113 .LVL131: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1114 .loc 1 324 7 discriminator 3 view .LVU383 + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1115 .loc 1 324 7 discriminator 3 view .LVU384 + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1116 .loc 1 324 7 discriminator 3 view .LVU385 + 1117 0086 43F40043 orr r3, r3, #32768 + 1118 .LVL132: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1119 .loc 1 324 7 is_stmt 0 discriminator 3 view .LVU386 + 1120 008a 43F08003 orr r3, r3, #128 + 1121 008e 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1122 0092 DBE7 b .L42 + 1123 .LVL133: + ARM GAS /tmp/cc2t6zYn.s page 30 + + + 1124 .L39: + 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1125 .loc 1 324 7 discriminator 3 view .LVU387 + 1126 .LBE38: + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1127 .loc 1 331 5 is_stmt 1 view .LVU388 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1128 .loc 1 331 11 is_stmt 0 view .LVU389 + 1129 0094 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1130 .loc 1 331 8 view .LVU390 + 1131 0096 002B cmp r3, #0 + 1132 0098 4ED1 bne .L44 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1133 .loc 1 334 7 is_stmt 1 view .LVU391 + 1134 .LBB39: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1135 .loc 1 334 7 view .LVU392 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1136 .loc 1 334 7 view .LVU393 + 1137 009a 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1138 009c 30F82230 ldrh r3, [r0, r2, lsl #2] + 1139 .LVL134: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1140 .loc 1 334 7 view .LVU394 + 1141 00a0 13F4804F tst r3, #16384 + 1142 00a4 0CD0 beq .L45 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1143 .loc 1 334 7 discriminator 1 view .LVU395 + 1144 .LBB40: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1145 .loc 1 334 7 discriminator 1 view .LVU396 + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1146 .loc 1 334 7 discriminator 1 view .LVU397 + 1147 00a6 30F82230 ldrh r3, [r0, r2, lsl #2] + 1148 .LVL135: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1149 .loc 1 334 7 is_stmt 0 discriminator 1 view .LVU398 + 1150 00aa 9BB2 uxth r3, r3 + 1151 00ac 23F4E043 bic r3, r3, #28672 + 1152 00b0 23F07003 bic r3, r3, #112 + 1153 .LVL136: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1154 .loc 1 334 7 is_stmt 1 discriminator 1 view .LVU399 + 1155 00b4 43F44043 orr r3, r3, #49152 + 1156 .LVL137: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1157 .loc 1 334 7 is_stmt 0 discriminator 1 view .LVU400 + 1158 00b8 43F08003 orr r3, r3, #128 + 1159 00bc 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1160 .LVL138: + 1161 .L45: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1162 .loc 1 334 7 discriminator 1 view .LVU401 + 1163 .LBE40: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1164 .loc 1 334 7 is_stmt 1 discriminator 3 view .LVU402 + ARM GAS /tmp/cc2t6zYn.s page 31 + + + 1165 .LBE39: + 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1166 .loc 1 334 7 discriminator 3 view .LVU403 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1167 .loc 1 335 7 discriminator 3 view .LVU404 + 1168 .LBB41: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1169 .loc 1 335 7 discriminator 3 view .LVU405 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1170 .loc 1 335 7 discriminator 3 view .LVU406 + 1171 00c0 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1172 00c2 30F82230 ldrh r3, [r0, r2, lsl #2] + 1173 .LVL139: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1174 .loc 1 335 7 discriminator 3 view .LVU407 + 1175 00c6 13F0400F tst r3, #64 + 1176 00ca 0CD0 beq .L46 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1177 .loc 1 335 7 discriminator 1 view .LVU408 + 1178 .LBB42: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1179 .loc 1 335 7 discriminator 1 view .LVU409 + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1180 .loc 1 335 7 discriminator 1 view .LVU410 + 1181 00cc 30F82230 ldrh r3, [r0, r2, lsl #2] + 1182 .LVL140: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1183 .loc 1 335 7 is_stmt 0 discriminator 1 view .LVU411 + 1184 00d0 9BB2 uxth r3, r3 + 1185 00d2 23F4E043 bic r3, r3, #28672 + 1186 00d6 23F07003 bic r3, r3, #112 + 1187 .LVL141: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1188 .loc 1 335 7 is_stmt 1 discriminator 1 view .LVU412 + 1189 00da 43F40043 orr r3, r3, #32768 + 1190 .LVL142: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1191 .loc 1 335 7 is_stmt 0 discriminator 1 view .LVU413 + 1192 00de 43F0C003 orr r3, r3, #192 + 1193 00e2 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1194 .LVL143: + 1195 .L46: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1196 .loc 1 335 7 discriminator 1 view .LVU414 + 1197 .LBE42: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1198 .loc 1 335 7 is_stmt 1 discriminator 3 view .LVU415 + 1199 .LBE41: + 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1200 .loc 1 335 7 discriminator 3 view .LVU416 + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1201 .loc 1 338 7 discriminator 3 view .LVU417 + 1202 .LBB43: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1203 .loc 1 338 7 discriminator 3 view .LVU418 + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1204 .loc 1 338 7 discriminator 3 view .LVU419 + ARM GAS /tmp/cc2t6zYn.s page 32 + + + 1205 00e6 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1206 00e8 30F82230 ldrh r3, [r0, r2, lsl #2] + 1207 00ec 9BB2 uxth r3, r3 + 1208 00ee 23F4E043 bic r3, r3, #28672 + 1209 00f2 23F07003 bic r3, r3, #112 + 1210 .LVL144: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1211 .loc 1 338 7 discriminator 3 view .LVU420 + 1212 00f6 43F40043 orr r3, r3, #32768 + 1213 .LVL145: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1214 .loc 1 338 7 is_stmt 0 discriminator 3 view .LVU421 + 1215 00fa 43F0C003 orr r3, r3, #192 + 1216 00fe 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1217 .LBE43: + 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1218 .loc 1 338 7 is_stmt 1 discriminator 3 view .LVU422 + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1219 .loc 1 340 7 discriminator 3 view .LVU423 + 1220 .LBB44: + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1221 .loc 1 340 7 discriminator 3 view .LVU424 + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1222 .loc 1 340 7 discriminator 3 view .LVU425 + 1223 0102 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1224 0104 30F82230 ldrh r3, [r0, r2, lsl #2] + 1225 0108 9BB2 uxth r3, r3 + 1226 010a 23F48043 bic r3, r3, #16384 + 1227 010e 23F07003 bic r3, r3, #112 + 1228 .LVL146: + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1229 .loc 1 340 7 discriminator 3 view .LVU426 + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1230 .loc 1 340 7 discriminator 3 view .LVU427 + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1231 .loc 1 340 7 discriminator 3 view .LVU428 + 1232 0112 48F2800C movw ip, #32896 + 1233 0116 43EA0C03 orr r3, r3, ip + 1234 .LVL147: + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1235 .loc 1 340 7 is_stmt 0 discriminator 3 view .LVU429 + 1236 011a 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1237 .LBE44: + 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS); + 1238 .loc 1 340 7 is_stmt 1 discriminator 3 view .LVU430 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1239 .loc 1 341 7 discriminator 3 view .LVU431 + 1240 .LBB45: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1241 .loc 1 341 7 discriminator 3 view .LVU432 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1242 .loc 1 341 7 discriminator 3 view .LVU433 + 1243 011e 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1244 0120 30F82230 ldrh r3, [r0, r2, lsl #2] + 1245 0124 9BB2 uxth r3, r3 + 1246 0126 23F4E043 bic r3, r3, #28672 + 1247 012a 23F04003 bic r3, r3, #64 + ARM GAS /tmp/cc2t6zYn.s page 33 + + + 1248 .LVL148: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1249 .loc 1 341 7 discriminator 3 view .LVU434 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1250 .loc 1 341 7 discriminator 3 view .LVU435 + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1251 .loc 1 341 7 discriminator 3 view .LVU436 + 1252 012e 43EA0C03 orr r3, r3, ip + 1253 .LVL149: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1254 .loc 1 341 7 is_stmt 0 discriminator 3 view .LVU437 + 1255 0132 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1256 .LBE45: + 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1257 .loc 1 341 7 is_stmt 1 discriminator 3 view .LVU438 + 1258 0136 89E7 b .L42 + 1259 .LVL150: + 1260 .L44: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1261 .loc 1 346 7 view .LVU439 + 1262 .LBB46: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1263 .loc 1 346 7 view .LVU440 + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1264 .loc 1 346 7 view .LVU441 + 1265 0138 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1266 013a 30F82230 ldrh r3, [r0, r2, lsl #2] + 1267 .LVL151: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1268 .loc 1 346 7 view .LVU442 + 1269 013e 13F4804F tst r3, #16384 + 1270 0142 0CD0 beq .L47 + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1271 .loc 1 346 7 discriminator 1 view .LVU443 + 1272 .LBB47: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1273 .loc 1 346 7 discriminator 1 view .LVU444 + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1274 .loc 1 346 7 discriminator 1 view .LVU445 + 1275 0144 30F82230 ldrh r3, [r0, r2, lsl #2] + 1276 .LVL152: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1277 .loc 1 346 7 is_stmt 0 discriminator 1 view .LVU446 + 1278 0148 9BB2 uxth r3, r3 + 1279 014a 23F4E043 bic r3, r3, #28672 + 1280 014e 23F07003 bic r3, r3, #112 + 1281 .LVL153: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1282 .loc 1 346 7 is_stmt 1 discriminator 1 view .LVU447 + 1283 0152 43F44043 orr r3, r3, #49152 + 1284 .LVL154: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1285 .loc 1 346 7 is_stmt 0 discriminator 1 view .LVU448 + 1286 0156 43F08003 orr r3, r3, #128 + 1287 015a 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1288 .LVL155: + 1289 .L47: + ARM GAS /tmp/cc2t6zYn.s page 34 + + + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1290 .loc 1 346 7 discriminator 1 view .LVU449 + 1291 .LBE47: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1292 .loc 1 346 7 is_stmt 1 discriminator 3 view .LVU450 + 1293 .LBE46: + 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1294 .loc 1 346 7 discriminator 3 view .LVU451 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1295 .loc 1 347 7 discriminator 3 view .LVU452 + 1296 .LBB48: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1297 .loc 1 347 7 discriminator 3 view .LVU453 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1298 .loc 1 347 7 discriminator 3 view .LVU454 + 1299 015e 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1300 0160 30F82230 ldrh r3, [r0, r2, lsl #2] + 1301 .LVL156: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1302 .loc 1 347 7 discriminator 3 view .LVU455 + 1303 0164 13F0400F tst r3, #64 + 1304 0168 0CD0 beq .L48 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1305 .loc 1 347 7 discriminator 1 view .LVU456 + 1306 .LBB49: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1307 .loc 1 347 7 discriminator 1 view .LVU457 + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1308 .loc 1 347 7 discriminator 1 view .LVU458 + 1309 016a 30F82230 ldrh r3, [r0, r2, lsl #2] + 1310 .LVL157: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1311 .loc 1 347 7 is_stmt 0 discriminator 1 view .LVU459 + 1312 016e 9BB2 uxth r3, r3 + 1313 0170 23F4E043 bic r3, r3, #28672 + 1314 0174 23F07003 bic r3, r3, #112 + 1315 .LVL158: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1316 .loc 1 347 7 is_stmt 1 discriminator 1 view .LVU460 + 1317 0178 43F40043 orr r3, r3, #32768 + 1318 .LVL159: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1319 .loc 1 347 7 is_stmt 0 discriminator 1 view .LVU461 + 1320 017c 43F0C003 orr r3, r3, #192 + 1321 0180 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1322 .LVL160: + 1323 .L48: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1324 .loc 1 347 7 discriminator 1 view .LVU462 + 1325 .LBE49: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1326 .loc 1 347 7 is_stmt 1 discriminator 3 view .LVU463 + 1327 .LBE48: + 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num); + 1328 .loc 1 347 7 discriminator 3 view .LVU464 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1329 .loc 1 348 7 discriminator 3 view .LVU465 + ARM GAS /tmp/cc2t6zYn.s page 35 + + + 1330 .LBB50: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1331 .loc 1 348 7 discriminator 3 view .LVU466 + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1332 .loc 1 348 7 discriminator 3 view .LVU467 + 1333 0184 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1334 0186 30F82230 ldrh r3, [r0, r2, lsl #2] + 1335 018a 9BB2 uxth r3, r3 + 1336 018c 23F4E043 bic r3, r3, #28672 + 1337 0190 23F07003 bic r3, r3, #112 + 1338 .LVL161: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1339 .loc 1 348 7 discriminator 3 view .LVU468 + 1340 0194 43F44043 orr r3, r3, #49152 + 1341 .LVL162: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1342 .loc 1 348 7 is_stmt 0 discriminator 3 view .LVU469 + 1343 0198 43F08003 orr r3, r3, #128 + 1344 019c 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1345 .LBE50: + 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 1346 .loc 1 348 7 is_stmt 1 discriminator 3 view .LVU470 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1347 .loc 1 351 7 discriminator 3 view .LVU471 + 1348 .LBB51: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1349 .loc 1 351 7 discriminator 3 view .LVU472 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1350 .loc 1 351 7 discriminator 3 view .LVU473 + 1351 01a0 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1352 01a2 30F82230 ldrh r3, [r0, r2, lsl #2] + 1353 01a6 9BB2 uxth r3, r3 + 1354 01a8 23F4E043 bic r3, r3, #28672 + 1355 01ac 23F04003 bic r3, r3, #64 + 1356 .LVL163: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1357 .loc 1 351 7 discriminator 3 view .LVU474 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1358 .loc 1 351 7 discriminator 3 view .LVU475 + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1359 .loc 1 351 7 discriminator 3 view .LVU476 + 1360 01b0 48F2800C movw ip, #32896 + 1361 01b4 43EA0C03 orr r3, r3, ip + 1362 .LVL164: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1363 .loc 1 351 7 is_stmt 0 discriminator 3 view .LVU477 + 1364 01b8 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1365 .LBE51: + 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS); + 1366 .loc 1 351 7 is_stmt 1 discriminator 3 view .LVU478 + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1367 .loc 1 352 7 discriminator 3 view .LVU479 + 1368 .LBB52: + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1369 .loc 1 352 7 discriminator 3 view .LVU480 + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1370 .loc 1 352 7 discriminator 3 view .LVU481 + ARM GAS /tmp/cc2t6zYn.s page 36 + + + 1371 01bc 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1372 01be 30F82230 ldrh r3, [r0, r2, lsl #2] + 1373 01c2 9BB2 uxth r3, r3 + 1374 01c4 23F48043 bic r3, r3, #16384 + 1375 01c8 23F07003 bic r3, r3, #112 + 1376 .LVL165: + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1377 .loc 1 352 7 discriminator 3 view .LVU482 + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1378 .loc 1 352 7 discriminator 3 view .LVU483 + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1379 .loc 1 352 7 discriminator 3 view .LVU484 + 1380 01cc 43EA0C03 orr r3, r3, ip + 1381 .LVL166: + 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1382 .loc 1 352 7 is_stmt 0 discriminator 3 view .LVU485 + 1383 01d0 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1384 01d4 3AE7 b .L42 + 1385 .LBE52: + 1386 .cfi_endproc + 1387 .LFE335: + 1389 .section .text.USB_EPSetStall,"ax",%progbits + 1390 .align 1 + 1391 .global USB_EPSetStall + 1392 .syntax unified + 1393 .thumb + 1394 .thumb_func + 1396 USB_EPSetStall: + 1397 .LVL167: + 1398 .LFB337: + 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_EPStartXfer setup and starts a transfer over an EP + 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param ep pointer to endpoint structure + 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx, USB_EPTypeDef *ep) + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t len; + 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint16_t pmabuffer; + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint16_t wEPVal; + 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* IN endpoint */ + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in == 1U) + 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /*Multi packet transfer*/ + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_len > ep->maxpacket) + 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->maxpacket; + 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->xfer_len; + 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + ARM GAS /tmp/cc2t6zYn.s page 37 + + + 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* configure and validate Tx endpoint */ + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->doublebuffer == 0U) + 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, ep->pmaadress, (uint16_t)len); + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len); + 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* double buffer bulk management */ + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->type == EP_TYPE_BULK) + 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_len_db > ep->maxpacket) + 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* enable double buffer */ + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_BULK_EP_DBUF(USBx, ep->num); + 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* each Time to write in PMA xfer_len_db will */ + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db -= len; + 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Fill the two first buffer in the Buffer0 & Buffer1 */ + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if ((PCD_GET_ENDPOINT(USBx, ep->num) & USB_EP_DTOG_TX) != 0U) + 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer1 */ + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF1_CNT(USBx, ep->num, ep->is_in, len); + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_buff += len; + 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_len_db > ep->maxpacket) + 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db -= len; + 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->xfer_len_db; + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db = 0U; + 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer0 */ + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF0_CNT(USBx, ep->num, ep->is_in, len); + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer0 */ + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF0_CNT(USBx, ep->num, ep->is_in, len); + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + ARM GAS /tmp/cc2t6zYn.s page 38 + + + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_buff += len; + 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_len_db > ep->maxpacket) + 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db -= len; + 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->xfer_len_db; + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db = 0U; + 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer1 */ + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF1_CNT(USBx, ep->num, ep->is_in, len); + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* auto Switch to single buffer mode when transfer xfer_len_db; + 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* disable double buffer mode for Bulk endpoint */ + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_BULK_EP_DBUF(USBx, ep->num); + 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set Tx count with nbre of byte to be transmitted */ + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len); + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else /* manage isochronous double buffer IN mode */ + 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* each Time to write in PMA xfer_len_db will */ + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db -= len; + 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Fill the data buffer */ + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if ((PCD_GET_ENDPOINT(USBx, ep->num) & USB_EP_DTOG_TX) != 0U) + 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer1 */ + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF1_CNT(USBx, ep->num, ep->is_in, len); + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer0 */ + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF0_CNT(USBx, ep->num, ep->is_in, len); + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + ARM GAS /tmp/cc2t6zYn.s page 39 + + + 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Write the user buffer to USB PMA */ + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len); + 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_VALID); + 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else /* OUT endpoint */ + 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->doublebuffer == 0U) + 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Multi packet transfer */ + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_len > ep->maxpacket) + 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->maxpacket; + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len -= len; + 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->xfer_len; + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len = 0U; + 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* configure and validate Rx endpoint */ + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_CNT(USBx, ep->num, len); + 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* First Transfer Coming From HAL_PCD_EP_Receive & From ISR */ + 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Set the Double buffer counter */ + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->type == EP_TYPE_BULK) + 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF_CNT(USBx, ep->num, ep->is_in, ep->maxpacket); + 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Coming from ISR */ + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_count != 0U) + 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* update last value to check if there is blocking state */ + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** wEPVal = PCD_GET_ENDPOINT(USBx, ep->num); + 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /*Blocking State */ + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if ((((wEPVal & USB_EP_DTOG_RX) != 0U) && ((wEPVal & USB_EP_DTOG_TX) != 0U)) || + 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** (((wEPVal & USB_EP_DTOG_RX) == 0U) && ((wEPVal & USB_EP_DTOG_TX) == 0U))) + 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_FREE_USER_BUFFER(USBx, ep->num, 0U); + 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* iso out double */ + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else if (ep->type == EP_TYPE_ISOC) + 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Multi packet transfer */ + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->xfer_len > ep->maxpacket) + 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->maxpacket; + ARM GAS /tmp/cc2t6zYn.s page 40 + + + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len -= len; + 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** len = ep->xfer_len; + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len = 0U; + 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_DBUF_CNT(USBx, ep->num, ep->is_in, len); + 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_ERROR; + 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID); + 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_EPSetStall set a stall condition over an EP + 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param ep pointer to endpoint structure + 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_EPSetStall(USB_TypeDef *USBx, USB_EPTypeDef *ep) + 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1399 .loc 1 587 1 is_stmt 1 view -0 + 1400 .cfi_startproc + 1401 @ args = 0, pretend = 0, frame = 0 + 1402 @ frame_needed = 0, uses_anonymous_args = 0 + 1403 @ link register save eliminated. + 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in != 0U) + 1404 .loc 1 588 3 view .LVU487 + 1405 .loc 1 588 9 is_stmt 0 view .LVU488 + 1406 0000 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 1407 .loc 1 588 6 view .LVU489 + 1408 0002 8BB1 cbz r3, .L50 + 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_STALL); + 1409 .loc 1 590 5 is_stmt 1 view .LVU490 + 1410 .LBB53: + 1411 .loc 1 590 5 view .LVU491 + 1412 .loc 1 590 5 view .LVU492 + 1413 0004 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1414 0006 30F82230 ldrh r3, [r0, r2, lsl #2] + 1415 000a 9BB2 uxth r3, r3 + 1416 000c 23F4E043 bic r3, r3, #28672 + 1417 0010 23F04003 bic r3, r3, #64 + 1418 .LVL168: + 1419 .loc 1 590 5 view .LVU493 + 1420 .loc 1 590 5 view .LVU494 + 1421 0014 83F01003 eor r3, r3, #16 + ARM GAS /tmp/cc2t6zYn.s page 41 + + + 1422 .LVL169: + 1423 .loc 1 590 5 view .LVU495 + 1424 .loc 1 590 5 view .LVU496 + 1425 0018 43F40043 orr r3, r3, #32768 + 1426 .LVL170: + 1427 .loc 1 590 5 is_stmt 0 view .LVU497 + 1428 001c 43F08003 orr r3, r3, #128 + 1429 0020 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1430 .LBE53: + 1431 .loc 1 590 5 is_stmt 1 view .LVU498 + 1432 .LVL171: + 1433 .L51: + 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_STALL); + 1434 .loc 1 594 5 discriminator 7 view .LVU499 + 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1435 .loc 1 597 3 discriminator 7 view .LVU500 + 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1436 .loc 1 598 1 is_stmt 0 discriminator 7 view .LVU501 + 1437 0024 0020 movs r0, #0 + 1438 .LVL172: + 1439 .loc 1 598 1 discriminator 7 view .LVU502 + 1440 0026 7047 bx lr + 1441 .LVL173: + 1442 .L50: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1443 .loc 1 594 5 is_stmt 1 view .LVU503 + 1444 .LBB54: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1445 .loc 1 594 5 view .LVU504 + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1446 .loc 1 594 5 view .LVU505 + 1447 0028 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1448 002a 30F82230 ldrh r3, [r0, r2, lsl #2] + 1449 002e 9BB2 uxth r3, r3 + 1450 0030 23F48043 bic r3, r3, #16384 + 1451 0034 23F07003 bic r3, r3, #112 + 1452 .LVL174: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1453 .loc 1 594 5 view .LVU506 + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1454 .loc 1 594 5 view .LVU507 + 1455 0038 83F48053 eor r3, r3, #4096 + 1456 .LVL175: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1457 .loc 1 594 5 view .LVU508 + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1458 .loc 1 594 5 view .LVU509 + 1459 003c 43F40043 orr r3, r3, #32768 + 1460 .LVL176: + 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1461 .loc 1 594 5 is_stmt 0 view .LVU510 + 1462 0040 43F08003 orr r3, r3, #128 + ARM GAS /tmp/cc2t6zYn.s page 42 + + + 1463 0044 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1464 0048 ECE7 b .L51 + 1465 .LBE54: + 1466 .cfi_endproc + 1467 .LFE337: + 1469 .section .text.USB_EPClearStall,"ax",%progbits + 1470 .align 1 + 1471 .global USB_EPClearStall + 1472 .syntax unified + 1473 .thumb + 1474 .thumb_func + 1476 USB_EPClearStall: + 1477 .LVL177: + 1478 .LFB338: + 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_EPClearStall Clear a stall condition over an EP + 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param ep pointer to endpoint structure + 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_EPClearStall(USB_TypeDef *USBx, USB_EPTypeDef *ep) + 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1479 .loc 1 607 1 is_stmt 1 view -0 + 1480 .cfi_startproc + 1481 @ args = 0, pretend = 0, frame = 0 + 1482 @ frame_needed = 0, uses_anonymous_args = 0 + 1483 @ link register save eliminated. + 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->doublebuffer == 0U) + 1484 .loc 1 608 3 view .LVU512 + 1485 .loc 1 608 9 is_stmt 0 view .LVU513 + 1486 0000 0B7B ldrb r3, [r1, #12] @ zero_extendqisi2 + 1487 .loc 1 608 6 view .LVU514 + 1488 0002 002B cmp r3, #0 + 1489 0004 4BD1 bne .L53 + 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->is_in != 0U) + 1490 .loc 1 610 5 is_stmt 1 view .LVU515 + 1491 .loc 1 610 11 is_stmt 0 view .LVU516 + 1492 0006 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 1493 .loc 1 610 8 view .LVU517 + 1494 0008 33B3 cbz r3, .L54 + 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num); + 1495 .loc 1 612 7 is_stmt 1 view .LVU518 + 1496 .LBB55: + 1497 .loc 1 612 7 view .LVU519 + 1498 .loc 1 612 7 view .LVU520 + 1499 000a 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1500 000c 30F82230 ldrh r3, [r0, r2, lsl #2] + 1501 .LVL178: + 1502 .loc 1 612 7 view .LVU521 + 1503 0010 13F0400F tst r3, #64 + 1504 0014 0CD0 beq .L55 + 1505 .loc 1 612 7 discriminator 1 view .LVU522 + 1506 .LBB56: + 1507 .loc 1 612 7 discriminator 1 view .LVU523 + ARM GAS /tmp/cc2t6zYn.s page 43 + + + 1508 .loc 1 612 7 discriminator 1 view .LVU524 + 1509 0016 30F82230 ldrh r3, [r0, r2, lsl #2] + 1510 .LVL179: + 1511 .loc 1 612 7 is_stmt 0 discriminator 1 view .LVU525 + 1512 001a 9BB2 uxth r3, r3 + 1513 001c 23F4E043 bic r3, r3, #28672 + 1514 0020 23F07003 bic r3, r3, #112 + 1515 .LVL180: + 1516 .loc 1 612 7 is_stmt 1 discriminator 1 view .LVU526 + 1517 0024 43F40043 orr r3, r3, #32768 + 1518 .LVL181: + 1519 .loc 1 612 7 is_stmt 0 discriminator 1 view .LVU527 + 1520 0028 43F0C003 orr r3, r3, #192 + 1521 002c 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1522 .LVL182: + 1523 .L55: + 1524 .loc 1 612 7 discriminator 1 view .LVU528 + 1525 .LBE56: + 1526 .loc 1 612 7 is_stmt 1 discriminator 3 view .LVU529 + 1527 .LBE55: + 1528 .loc 1 612 7 discriminator 3 view .LVU530 + 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (ep->type != EP_TYPE_ISOC) + 1529 .loc 1 614 7 discriminator 3 view .LVU531 + 1530 .loc 1 614 13 is_stmt 0 discriminator 3 view .LVU532 + 1531 0030 CB78 ldrb r3, [r1, #3] @ zero_extendqisi2 + 1532 .loc 1 614 10 discriminator 3 view .LVU533 + 1533 0032 012B cmp r3, #1 + 1534 0034 33D0 beq .L53 + 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure NAK status for the Endpoint */ + 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_NAK); + 1535 .loc 1 617 9 is_stmt 1 view .LVU534 + 1536 .LBB57: + 1537 .loc 1 617 9 view .LVU535 + 1538 .loc 1 617 9 view .LVU536 + 1539 0036 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1540 0038 30F82230 ldrh r3, [r0, r2, lsl #2] + 1541 003c 9BB2 uxth r3, r3 + 1542 003e 23F4E043 bic r3, r3, #28672 + 1543 0042 23F04003 bic r3, r3, #64 + 1544 .LVL183: + 1545 .loc 1 617 9 view .LVU537 + 1546 .loc 1 617 9 view .LVU538 + 1547 .loc 1 617 9 view .LVU539 + 1548 0046 83F02003 eor r3, r3, #32 + 1549 .LVL184: + 1550 .loc 1 617 9 view .LVU540 + 1551 004a 43F40043 orr r3, r3, #32768 + 1552 .LVL185: + 1553 .loc 1 617 9 is_stmt 0 view .LVU541 + 1554 004e 43F08003 orr r3, r3, #128 + 1555 0052 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1556 0056 22E0 b .L53 + 1557 .LVL186: + 1558 .L54: + 1559 .loc 1 617 9 view .LVU542 + ARM GAS /tmp/cc2t6zYn.s page 44 + + + 1560 .LBE57: + 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** else + 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num); + 1561 .loc 1 622 7 is_stmt 1 view .LVU543 + 1562 .LBB58: + 1563 .loc 1 622 7 view .LVU544 + 1564 .loc 1 622 7 view .LVU545 + 1565 0058 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1566 005a 30F82230 ldrh r3, [r0, r2, lsl #2] + 1567 .LVL187: + 1568 .loc 1 622 7 view .LVU546 + 1569 005e 13F4804F tst r3, #16384 + 1570 0062 0CD0 beq .L56 + 1571 .loc 1 622 7 discriminator 1 view .LVU547 + 1572 .LBB59: + 1573 .loc 1 622 7 discriminator 1 view .LVU548 + 1574 .loc 1 622 7 discriminator 1 view .LVU549 + 1575 0064 30F82230 ldrh r3, [r0, r2, lsl #2] + 1576 .LVL188: + 1577 .loc 1 622 7 is_stmt 0 discriminator 1 view .LVU550 + 1578 0068 9BB2 uxth r3, r3 + 1579 006a 23F4E043 bic r3, r3, #28672 + 1580 006e 23F07003 bic r3, r3, #112 + 1581 .LVL189: + 1582 .loc 1 622 7 is_stmt 1 discriminator 1 view .LVU551 + 1583 0072 43F44043 orr r3, r3, #49152 + 1584 .LVL190: + 1585 .loc 1 622 7 is_stmt 0 discriminator 1 view .LVU552 + 1586 0076 43F08003 orr r3, r3, #128 + 1587 007a 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1588 .LVL191: + 1589 .L56: + 1590 .loc 1 622 7 discriminator 1 view .LVU553 + 1591 .LBE59: + 1592 .loc 1 622 7 is_stmt 1 discriminator 3 view .LVU554 + 1593 .LBE58: + 1594 .loc 1 622 7 discriminator 3 view .LVU555 + 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Configure VALID status for the Endpoint */ + 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID); + 1595 .loc 1 625 7 discriminator 3 view .LVU556 + 1596 .LBB60: + 1597 .loc 1 625 7 discriminator 3 view .LVU557 + 1598 .loc 1 625 7 discriminator 3 view .LVU558 + 1599 007e 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 1600 0080 30F82230 ldrh r3, [r0, r2, lsl #2] + 1601 0084 9BB2 uxth r3, r3 + 1602 0086 23F48043 bic r3, r3, #16384 + 1603 008a 23F07003 bic r3, r3, #112 + 1604 .LVL192: + 1605 .loc 1 625 7 discriminator 3 view .LVU559 + 1606 .loc 1 625 7 discriminator 3 view .LVU560 + 1607 .loc 1 625 7 discriminator 3 view .LVU561 + 1608 .loc 1 625 7 discriminator 3 view .LVU562 + ARM GAS /tmp/cc2t6zYn.s page 45 + + + 1609 008e 83F44053 eor r3, r3, #12288 + 1610 .LVL193: + 1611 .loc 1 625 7 discriminator 3 view .LVU563 + 1612 0092 43F40043 orr r3, r3, #32768 + 1613 .LVL194: + 1614 .loc 1 625 7 is_stmt 0 discriminator 3 view .LVU564 + 1615 0096 43F08003 orr r3, r3, #128 + 1616 009a 20F82230 strh r3, [r0, r2, lsl #2] @ movhi + 1617 .LVL195: + 1618 .L53: + 1619 .loc 1 625 7 discriminator 3 view .LVU565 + 1620 .LBE60: + 1621 .loc 1 625 7 is_stmt 1 discriminator 7 view .LVU566 + 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1622 .loc 1 629 3 discriminator 7 view .LVU567 + 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1623 .loc 1 630 1 is_stmt 0 discriminator 7 view .LVU568 + 1624 009e 0020 movs r0, #0 + 1625 .LVL196: + 1626 .loc 1 630 1 discriminator 7 view .LVU569 + 1627 00a0 7047 bx lr + 1628 .cfi_endproc + 1629 .LFE338: + 1631 .section .text.USB_StopDevice,"ax",%progbits + 1632 .align 1 + 1633 .global USB_StopDevice + 1634 .syntax unified + 1635 .thumb + 1636 .thumb_func + 1638 USB_StopDevice: + 1639 .LVL197: + 1640 .LFB339: + 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* defined (HAL_PCD_MODULE_ENABLED) */ + 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_StopDevice Stop the usb device mode + 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_StopDevice(USB_TypeDef *USBx) + 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1641 .loc 1 639 1 is_stmt 1 view -0 + 1642 .cfi_startproc + 1643 @ args = 0, pretend = 0, frame = 0 + 1644 @ frame_needed = 0, uses_anonymous_args = 0 + 1645 @ link register save eliminated. + 1646 .loc 1 639 1 is_stmt 0 view .LVU571 + 1647 0000 0346 mov r3, r0 + 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* disable all interrupts and force USB reset */ + 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR = (uint16_t)USB_CNTR_FRES; + 1648 .loc 1 641 3 is_stmt 1 view .LVU572 + 1649 .loc 1 641 14 is_stmt 0 view .LVU573 + 1650 0002 0122 movs r2, #1 + 1651 0004 A0F84020 strh r2, [r0, #64] @ movhi + ARM GAS /tmp/cc2t6zYn.s page 46 + + + 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* clear interrupt status register */ + 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->ISTR = 0U; + 1652 .loc 1 644 3 is_stmt 1 view .LVU574 + 1653 .loc 1 644 14 is_stmt 0 view .LVU575 + 1654 0008 0020 movs r0, #0 + 1655 .LVL198: + 1656 .loc 1 644 14 view .LVU576 + 1657 000a A3F84400 strh r0, [r3, #68] @ movhi + 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* switch-off device */ + 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR = (uint16_t)(USB_CNTR_FRES | USB_CNTR_PDWN); + 1658 .loc 1 647 3 is_stmt 1 view .LVU577 + 1659 .loc 1 647 14 is_stmt 0 view .LVU578 + 1660 000e 0322 movs r2, #3 + 1661 0010 A3F84020 strh r2, [r3, #64] @ movhi + 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1662 .loc 1 649 3 is_stmt 1 view .LVU579 + 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1663 .loc 1 650 1 is_stmt 0 view .LVU580 + 1664 0014 7047 bx lr + 1665 .cfi_endproc + 1666 .LFE339: + 1668 .section .text.USB_SetDevAddress,"ax",%progbits + 1669 .align 1 + 1670 .global USB_SetDevAddress + 1671 .syntax unified + 1672 .thumb + 1673 .thumb_func + 1675 USB_SetDevAddress: + 1676 .LVL199: + 1677 .LFB340: + 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_SetDevAddress Stop the usb device mode + 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param address new device address to be assigned + 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * This parameter can be a value from 0 to 255 + 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_SetDevAddress(USB_TypeDef *USBx, uint8_t address) + 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1678 .loc 1 660 1 is_stmt 1 view -0 + 1679 .cfi_startproc + 1680 @ args = 0, pretend = 0, frame = 0 + 1681 @ frame_needed = 0, uses_anonymous_args = 0 + 1682 @ link register save eliminated. + 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if (address == 0U) + 1683 .loc 1 661 3 view .LVU582 + 1684 .loc 1 661 6 is_stmt 0 view .LVU583 + 1685 0000 11B9 cbnz r1, .L59 + 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* set device address and enable function */ + 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->DADDR = (uint16_t)USB_DADDR_EF; + 1686 .loc 1 664 5 is_stmt 1 view .LVU584 + 1687 .loc 1 664 17 is_stmt 0 view .LVU585 + ARM GAS /tmp/cc2t6zYn.s page 47 + + + 1688 0002 8023 movs r3, #128 + 1689 0004 A0F84C30 strh r3, [r0, #76] @ movhi + 1690 .L59: + 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1691 .loc 1 667 3 is_stmt 1 view .LVU586 + 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1692 .loc 1 668 1 is_stmt 0 view .LVU587 + 1693 0008 0020 movs r0, #0 + 1694 .LVL200: + 1695 .loc 1 668 1 view .LVU588 + 1696 000a 7047 bx lr + 1697 .cfi_endproc + 1698 .LFE340: + 1700 .section .text.USB_DevConnect,"ax",%progbits + 1701 .align 1 + 1702 .global USB_DevConnect + 1703 .syntax unified + 1704 .thumb + 1705 .thumb_func + 1707 USB_DevConnect: + 1708 .LVL201: + 1709 .LFB341: + 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_DevConnect Connect the USB device by enabling the pull-up/pull-down + 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_DevConnect(USB_TypeDef *USBx) + 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1710 .loc 1 676 1 is_stmt 1 view -0 + 1711 .cfi_startproc + 1712 @ args = 0, pretend = 0, frame = 0 + 1713 @ frame_needed = 0, uses_anonymous_args = 0 + 1714 @ link register save eliminated. + 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Enabling DP Pull-UP bit to Connect internal PU resistor on USB DP line */ + 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->BCDR |= (uint16_t)USB_BCDR_DPPU; + 1715 .loc 1 678 3 view .LVU590 + 1716 .loc 1 678 7 is_stmt 0 view .LVU591 + 1717 0000 B0F85830 ldrh r3, [r0, #88] + 1718 .loc 1 678 14 view .LVU592 + 1719 0004 6FEA4343 mvn r3, r3, lsl #17 + 1720 0008 6FEA5343 mvn r3, r3, lsr #17 + 1721 000c 9BB2 uxth r3, r3 + 1722 000e A0F85830 strh r3, [r0, #88] @ movhi + 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1723 .loc 1 680 3 is_stmt 1 view .LVU593 + 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1724 .loc 1 681 1 is_stmt 0 view .LVU594 + 1725 0012 0020 movs r0, #0 + 1726 .LVL202: + 1727 .loc 1 681 1 view .LVU595 + 1728 0014 7047 bx lr + 1729 .cfi_endproc + ARM GAS /tmp/cc2t6zYn.s page 48 + + + 1730 .LFE341: + 1732 .section .text.USB_DevDisconnect,"ax",%progbits + 1733 .align 1 + 1734 .global USB_DevDisconnect + 1735 .syntax unified + 1736 .thumb + 1737 .thumb_func + 1739 USB_DevDisconnect: + 1740 .LVL203: + 1741 .LFB342: + 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_DevDisconnect Disconnect the USB device by disabling the pull-up/pull-down + 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_DevDisconnect(USB_TypeDef *USBx) + 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1742 .loc 1 689 1 is_stmt 1 view -0 + 1743 .cfi_startproc + 1744 @ args = 0, pretend = 0, frame = 0 + 1745 @ frame_needed = 0, uses_anonymous_args = 0 + 1746 @ link register save eliminated. + 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /* Disable DP Pull-Up bit to disconnect the Internal PU resistor on USB DP line */ + 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->BCDR &= (uint16_t)(~(USB_BCDR_DPPU)); + 1747 .loc 1 691 3 view .LVU597 + 1748 .loc 1 691 7 is_stmt 0 view .LVU598 + 1749 0000 B0F85830 ldrh r3, [r0, #88] + 1750 .loc 1 691 14 view .LVU599 + 1751 0004 C3F30E03 ubfx r3, r3, #0, #15 + 1752 0008 A0F85830 strh r3, [r0, #88] @ movhi + 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1753 .loc 1 693 3 is_stmt 1 view .LVU600 + 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1754 .loc 1 694 1 is_stmt 0 view .LVU601 + 1755 000c 0020 movs r0, #0 + 1756 .LVL204: + 1757 .loc 1 694 1 view .LVU602 + 1758 000e 7047 bx lr + 1759 .cfi_endproc + 1760 .LFE342: + 1762 .section .text.USB_ReadInterrupts,"ax",%progbits + 1763 .align 1 + 1764 .global USB_ReadInterrupts + 1765 .syntax unified + 1766 .thumb + 1767 .thumb_func + 1769 USB_ReadInterrupts: + 1770 .LVL205: + 1771 .LFB343: + 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_ReadInterrupts return the global USB interrupt status + 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + ARM GAS /tmp/cc2t6zYn.s page 49 + + + 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t USB_ReadInterrupts(USB_TypeDef *USBx) + 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1772 .loc 1 702 1 is_stmt 1 view -0 + 1773 .cfi_startproc + 1774 @ args = 0, pretend = 0, frame = 0 + 1775 @ frame_needed = 0, uses_anonymous_args = 0 + 1776 @ link register save eliminated. + 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t tmpreg; + 1777 .loc 1 703 3 view .LVU604 + 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** tmpreg = USBx->ISTR; + 1778 .loc 1 705 3 view .LVU605 + 1779 .loc 1 705 16 is_stmt 0 view .LVU606 + 1780 0000 B0F84400 ldrh r0, [r0, #68] + 1781 .LVL206: + 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return tmpreg; + 1782 .loc 1 706 3 is_stmt 1 view .LVU607 + 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1783 .loc 1 707 1 is_stmt 0 view .LVU608 + 1784 0004 80B2 uxth r0, r0 + 1785 .LVL207: + 1786 .loc 1 707 1 view .LVU609 + 1787 0006 7047 bx lr + 1788 .cfi_endproc + 1789 .LFE343: + 1791 .section .text.USB_ActivateRemoteWakeup,"ax",%progbits + 1792 .align 1 + 1793 .global USB_ActivateRemoteWakeup + 1794 .syntax unified + 1795 .thumb + 1796 .thumb_func + 1798 USB_ActivateRemoteWakeup: + 1799 .LVL208: + 1800 .LFB344: + 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_ActivateRemoteWakeup : active remote wakeup signalling + 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_TypeDef *USBx) + 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1801 .loc 1 715 1 is_stmt 1 view -0 + 1802 .cfi_startproc + 1803 @ args = 0, pretend = 0, frame = 0 + 1804 @ frame_needed = 0, uses_anonymous_args = 0 + 1805 @ link register save eliminated. + 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR |= (uint16_t)USB_CNTR_RESUME; + 1806 .loc 1 716 3 view .LVU611 + 1807 .loc 1 716 7 is_stmt 0 view .LVU612 + 1808 0000 B0F84030 ldrh r3, [r0, #64] + 1809 0004 9BB2 uxth r3, r3 + 1810 .loc 1 716 14 view .LVU613 + 1811 0006 43F01003 orr r3, r3, #16 + 1812 000a A0F84030 strh r3, [r0, #64] @ movhi + 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + ARM GAS /tmp/cc2t6zYn.s page 50 + + + 1813 .loc 1 718 3 is_stmt 1 view .LVU614 + 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1814 .loc 1 719 1 is_stmt 0 view .LVU615 + 1815 000e 0020 movs r0, #0 + 1816 .LVL209: + 1817 .loc 1 719 1 view .LVU616 + 1818 0010 7047 bx lr + 1819 .cfi_endproc + 1820 .LFE344: + 1822 .section .text.USB_DeActivateRemoteWakeup,"ax",%progbits + 1823 .align 1 + 1824 .global USB_DeActivateRemoteWakeup + 1825 .syntax unified + 1826 .thumb + 1827 .thumb_func + 1829 USB_DeActivateRemoteWakeup: + 1830 .LVL210: + 1831 .LFB345: + 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief USB_DeActivateRemoteWakeup de-active remote wakeup signalling + 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx Selected device + 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval HAL status + 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_TypeDef *USBx) + 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1832 .loc 1 727 1 is_stmt 1 view -0 + 1833 .cfi_startproc + 1834 @ args = 0, pretend = 0, frame = 0 + 1835 @ frame_needed = 0, uses_anonymous_args = 0 + 1836 @ link register save eliminated. + 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** USBx->CNTR &= (uint16_t)(~USB_CNTR_RESUME); + 1837 .loc 1 728 3 view .LVU618 + 1838 .loc 1 728 7 is_stmt 0 view .LVU619 + 1839 0000 B0F84030 ldrh r3, [r0, #64] + 1840 0004 9BB2 uxth r3, r3 + 1841 .loc 1 728 14 view .LVU620 + 1842 0006 23F01003 bic r3, r3, #16 + 1843 000a 9BB2 uxth r3, r3 + 1844 000c A0F84030 strh r3, [r0, #64] @ movhi + 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** return HAL_OK; + 1845 .loc 1 730 3 is_stmt 1 view .LVU621 + 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1846 .loc 1 731 1 is_stmt 0 view .LVU622 + 1847 0010 0020 movs r0, #0 + 1848 .LVL211: + 1849 .loc 1 731 1 view .LVU623 + 1850 0012 7047 bx lr + 1851 .cfi_endproc + 1852 .LFE345: + 1854 .section .text.USB_WritePMA,"ax",%progbits + 1855 .align 1 + 1856 .global USB_WritePMA + 1857 .syntax unified + 1858 .thumb + 1859 .thumb_func + ARM GAS /tmp/cc2t6zYn.s page 51 + + + 1861 USB_WritePMA: + 1862 .LVL212: + 1863 .LFB346: + 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief Copy a buffer from user memory area to packet memory area (PMA) + 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx USB peripheral instance register address. + 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param pbUsrBuf pointer to user memory area. + 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param wPMABufAddr address into PMA. + 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param wNBytes no. of bytes to be copied. + 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval None + 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** void USB_WritePMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes) + 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1864 .loc 1 742 1 is_stmt 1 view -0 + 1865 .cfi_startproc + 1866 @ args = 0, pretend = 0, frame = 0 + 1867 @ frame_needed = 0, uses_anonymous_args = 0 + 1868 @ link register save eliminated. + 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t n = ((uint32_t)wNBytes + 1U) >> 1; + 1869 .loc 1 743 3 view .LVU625 + 1870 .loc 1 743 35 is_stmt 0 view .LVU626 + 1871 0000 0133 adds r3, r3, #1 + 1872 .LVL213: + 1873 .loc 1 743 12 view .LVU627 + 1874 0002 5B08 lsrs r3, r3, #1 + 1875 .LVL214: + 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t BaseAddr = (uint32_t)USBx; + 1876 .loc 1 744 3 is_stmt 1 view .LVU628 + 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t i; + 1877 .loc 1 745 3 view .LVU629 + 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t temp1; + 1878 .loc 1 746 3 view .LVU630 + 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t temp2; + 1879 .loc 1 747 3 view .LVU631 + 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** __IO uint16_t *pdwVal; + 1880 .loc 1 748 3 view .LVU632 + 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint8_t *pBuf = pbUsrBuf; + 1881 .loc 1 749 3 view .LVU633 + 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pdwVal = (__IO uint16_t *)(BaseAddr + 0x400U + ((uint32_t)wPMABufAddr * PMA_ACCESS)); + 1882 .loc 1 751 3 view .LVU634 + 1883 .loc 1 751 48 is_stmt 0 view .LVU635 + 1884 0004 0244 add r2, r2, r0 + 1885 .LVL215: + 1886 .loc 1 751 48 view .LVU636 + 1887 0006 02F58062 add r2, r2, #1024 + 1888 .LVL216: + 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** for (i = n; i != 0U; i--) + 1889 .loc 1 753 3 is_stmt 1 view .LVU637 + 1890 .loc 1 753 3 is_stmt 0 view .LVU638 + 1891 000a 08E0 b .L66 + 1892 .LVL217: + 1893 .L67: + 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** temp1 = *pBuf; + ARM GAS /tmp/cc2t6zYn.s page 52 + + + 1894 .loc 1 755 5 is_stmt 1 discriminator 3 view .LVU639 + 1895 .loc 1 755 13 is_stmt 0 discriminator 3 view .LVU640 + 1896 000c 0878 ldrb r0, [r1] @ zero_extendqisi2 + 1897 .LVL218: + 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pBuf++; + 1898 .loc 1 756 5 is_stmt 1 discriminator 3 view .LVU641 + 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** temp2 = temp1 | ((uint16_t)((uint16_t) *pBuf << 8)); + 1899 .loc 1 757 5 discriminator 3 view .LVU642 + 1900 .loc 1 757 44 is_stmt 0 discriminator 3 view .LVU643 + 1901 000e 91F801C0 ldrb ip, [r1, #1] @ zero_extendqisi2 + 1902 .LVL219: + 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** *pdwVal = (uint16_t)temp2; + 1903 .loc 1 758 5 is_stmt 1 discriminator 3 view .LVU644 + 1904 .loc 1 758 15 is_stmt 0 discriminator 3 view .LVU645 + 1905 0012 40EA0C20 orr r0, r0, ip, lsl #8 + 1906 .LVL220: + 1907 .loc 1 758 13 discriminator 3 view .LVU646 + 1908 0016 22F8020B strh r0, [r2], #2 @ movhi + 1909 .LVL221: + 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pdwVal++; + 1910 .loc 1 759 5 is_stmt 1 discriminator 3 view .LVU647 + 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if PMA_ACCESS > 1U + 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pdwVal++; + 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* PMA_ACCESS */ + 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pBuf++; + 1911 .loc 1 765 5 discriminator 3 view .LVU648 + 1912 .loc 1 765 9 is_stmt 0 discriminator 3 view .LVU649 + 1913 001a 0231 adds r1, r1, #2 + 1914 .LVL222: + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1915 .loc 1 753 25 is_stmt 1 discriminator 3 view .LVU650 + 1916 001c 013B subs r3, r3, #1 + 1917 .LVL223: + 1918 .L66: + 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1919 .loc 1 753 17 discriminator 1 view .LVU651 + 1920 001e 002B cmp r3, #0 + 1921 0020 F4D1 bne .L67 + 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1922 .loc 1 767 1 is_stmt 0 view .LVU652 + 1923 0022 7047 bx lr + 1924 .cfi_endproc + 1925 .LFE346: + 1927 .section .text.USB_EPStartXfer,"ax",%progbits + 1928 .align 1 + 1929 .global USB_EPStartXfer + 1930 .syntax unified + 1931 .thumb + 1932 .thumb_func + 1934 USB_EPStartXfer: + 1935 .LVL224: + 1936 .LFB336: + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t len; + 1937 .loc 1 367 1 is_stmt 1 view -0 + ARM GAS /tmp/cc2t6zYn.s page 53 + + + 1938 .cfi_startproc + 1939 @ args = 0, pretend = 0, frame = 0 + 1940 @ frame_needed = 0, uses_anonymous_args = 0 + 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t len; + 1941 .loc 1 367 1 is_stmt 0 view .LVU654 + 1942 0000 70B5 push {r4, r5, r6, lr} + 1943 .LCFI5: + 1944 .cfi_def_cfa_offset 16 + 1945 .cfi_offset 4, -16 + 1946 .cfi_offset 5, -12 + 1947 .cfi_offset 6, -8 + 1948 .cfi_offset 14, -4 + 1949 0002 0546 mov r5, r0 + 1950 0004 0C46 mov r4, r1 + 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if (USE_USB_DOUBLE_BUFFER == 1U) + 1951 .loc 1 368 3 is_stmt 1 view .LVU655 + 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint16_t wEPVal; + 1952 .loc 1 370 3 view .LVU656 + 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */ + 1953 .loc 1 371 3 view .LVU657 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1954 .loc 1 375 3 view .LVU658 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1955 .loc 1 375 9 is_stmt 0 view .LVU659 + 1956 0006 4A78 ldrb r2, [r1, #1] @ zero_extendqisi2 + 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1957 .loc 1 375 6 view .LVU660 + 1958 0008 012A cmp r2, #1 + 1959 000a 32D0 beq .L153 + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1960 .loc 1 511 5 is_stmt 1 view .LVU661 + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1961 .loc 1 511 11 is_stmt 0 view .LVU662 + 1962 000c 0B7B ldrb r3, [r1, #12] @ zero_extendqisi2 + 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1963 .loc 1 511 8 view .LVU663 + 1964 000e 002B cmp r3, #0 + 1965 0010 40F08382 bne .L118 + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1966 .loc 1 514 7 is_stmt 1 view .LVU664 + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1967 .loc 1 514 13 is_stmt 0 view .LVU665 + 1968 0014 8B69 ldr r3, [r1, #24] + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1969 .loc 1 514 28 view .LVU666 + 1970 0016 0A69 ldr r2, [r1, #16] + 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 1971 .loc 1 514 10 view .LVU667 + 1972 0018 9342 cmp r3, r2 + 1973 001a 40F25D82 bls .L119 + 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len -= len; + 1974 .loc 1 516 9 is_stmt 1 view .LVU668 + 1975 .LVL225: + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1976 .loc 1 517 9 view .LVU669 + 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1977 .loc 1 517 22 is_stmt 0 view .LVU670 + ARM GAS /tmp/cc2t6zYn.s page 54 + + + 1978 001e 9B1A subs r3, r3, r2 + 1979 0020 8B61 str r3, [r1, #24] + 1980 .L120: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1981 .loc 1 525 7 is_stmt 1 view .LVU671 + 1982 .LBB61: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1983 .loc 1 525 7 view .LVU672 + 1984 .LVL226: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1985 .loc 1 525 7 view .LVU673 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1986 .loc 1 525 7 view .LVU674 + 1987 0022 B5F85030 ldrh r3, [r5, #80] + 1988 0026 15FA83F3 uxtah r3, r5, r3 + 1989 .LVL227: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1990 .loc 1 525 7 view .LVU675 + 1991 002a 2178 ldrb r1, [r4] @ zero_extendqisi2 + 1992 .LVL228: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1993 .loc 1 525 7 is_stmt 0 view .LVU676 + 1994 002c 03EBC103 add r3, r3, r1, lsl #3 + 1995 .LVL229: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1996 .loc 1 525 7 is_stmt 1 view .LVU677 + 1997 .LBB62: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1998 .loc 1 525 7 view .LVU678 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 1999 .loc 1 525 7 view .LVU679 + 2000 0030 3E2A cmp r2, #62 + 2001 0032 40F25582 bls .L121 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2002 .loc 1 525 7 discriminator 1 view .LVU680 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2003 .loc 1 525 7 discriminator 1 view .LVU681 + 2004 0036 5109 lsrs r1, r2, #5 + 2005 .LVL230: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2006 .loc 1 525 7 discriminator 1 view .LVU682 + 2007 0038 12F01F0F tst r2, #31 + 2008 003c 00D1 bne .L122 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2009 .loc 1 525 7 discriminator 3 view .LVU683 + 2010 003e 0139 subs r1, r1, #1 + 2011 .LVL231: + 2012 .L122: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2013 .loc 1 525 7 discriminator 5 view .LVU684 + 2014 0040 6FEAC161 mvn r1, r1, lsl #27 + 2015 .LVL232: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2016 .loc 1 525 7 is_stmt 0 discriminator 5 view .LVU685 + 2017 0044 6FEA5141 mvn r1, r1, lsr #17 + 2018 0048 89B2 uxth r1, r1 + 2019 004a A3F80614 strh r1, [r3, #1030] @ movhi + ARM GAS /tmp/cc2t6zYn.s page 55 + + + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2020 .loc 1 525 7 is_stmt 1 discriminator 5 view .LVU686 + 2021 .LVL233: + 2022 .L123: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2023 .loc 1 525 7 is_stmt 0 discriminator 5 view .LVU687 + 2024 .LBE62: + 2025 .LBE61: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2026 .loc 1 573 5 is_stmt 1 view .LVU688 + 2027 .LBB64: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2028 .loc 1 573 5 view .LVU689 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2029 .loc 1 573 5 view .LVU690 + 2030 004e 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2031 0050 35F82230 ldrh r3, [r5, r2, lsl #2] + 2032 0054 9BB2 uxth r3, r3 + 2033 0056 23F48043 bic r3, r3, #16384 + 2034 005a 23F07003 bic r3, r3, #112 + 2035 .LVL234: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2036 .loc 1 573 5 view .LVU691 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2037 .loc 1 573 5 view .LVU692 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2038 .loc 1 573 5 view .LVU693 + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2039 .loc 1 573 5 view .LVU694 + 2040 005e 83F44053 eor r3, r3, #12288 + 2041 .LVL235: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2042 .loc 1 573 5 view .LVU695 + 2043 0062 43F40043 orr r3, r3, #32768 + 2044 .LVL236: + 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2045 .loc 1 573 5 is_stmt 0 view .LVU696 + 2046 0066 43F08003 orr r3, r3, #128 + 2047 006a 25F82230 strh r3, [r5, r2, lsl #2] @ movhi + 2048 .LBE64: + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2049 .loc 1 576 10 view .LVU697 + 2050 006e 0020 movs r0, #0 + 2051 .LVL237: + 2052 .L117: + 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2053 .loc 1 577 1 view .LVU698 + 2054 0070 70BD pop {r4, r5, r6, pc} + 2055 .LVL238: + 2056 .L153: + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2057 .loc 1 378 5 is_stmt 1 view .LVU699 + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2058 .loc 1 378 11 is_stmt 0 view .LVU700 + 2059 0072 8E69 ldr r6, [r1, #24] + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2060 .loc 1 378 26 view .LVU701 + ARM GAS /tmp/cc2t6zYn.s page 56 + + + 2061 0074 0969 ldr r1, [r1, #16] + 2062 .LVL239: + 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2063 .loc 1 378 8 view .LVU702 + 2064 0076 8E42 cmp r6, r1 + 2065 0078 00D9 bls .L70 + 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2066 .loc 1 380 11 view .LVU703 + 2067 007a 0E46 mov r6, r1 + 2068 .L70: + 2069 .LVL240: + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2070 .loc 1 388 5 is_stmt 1 view .LVU704 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2071 .loc 1 388 11 is_stmt 0 view .LVU705 + 2072 007c 237B ldrb r3, [r4, #12] @ zero_extendqisi2 + 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2073 .loc 1 388 8 view .LVU706 + 2074 007e 2BB3 cbz r3, .L154 + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2075 .loc 1 397 7 is_stmt 1 view .LVU707 + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2076 .loc 1 397 13 is_stmt 0 view .LVU708 + 2077 0080 E378 ldrb r3, [r4, #3] @ zero_extendqisi2 + 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2078 .loc 1 397 10 view .LVU709 + 2079 0082 022B cmp r3, #2 + 2080 0084 44D0 beq .L155 + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2081 .loc 1 482 9 is_stmt 1 view .LVU710 + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2082 .loc 1 482 11 is_stmt 0 view .LVU711 + 2083 0086 236A ldr r3, [r4, #32] + 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2084 .loc 1 482 25 view .LVU712 + 2085 0088 9B1B subs r3, r3, r6 + 2086 008a 2362 str r3, [r4, #32] + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2087 .loc 1 485 9 is_stmt 1 view .LVU713 + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2088 .loc 1 485 14 is_stmt 0 view .LVU714 + 2089 008c 2378 ldrb r3, [r4] @ zero_extendqisi2 + 2090 008e 35F82310 ldrh r1, [r5, r3, lsl #2] + 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2091 .loc 1 485 12 view .LVU715 + 2092 0092 11F0400F tst r1, #64 + 2093 0096 00F0DC81 beq .L104 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2094 .loc 1 488 11 is_stmt 1 view .LVU716 + 2095 .LBB65: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2096 .loc 1 488 11 view .LVU717 + 2097 .LVL241: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2098 .loc 1 488 11 view .LVU718 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2099 .loc 1 488 11 view .LVU719 + ARM GAS /tmp/cc2t6zYn.s page 57 + + + 2100 009a 002A cmp r2, #0 + 2101 009c 40F0C981 bne .L105 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2102 .loc 1 488 11 discriminator 1 view .LVU720 + 2103 .LBB66: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2104 .loc 1 488 11 discriminator 1 view .LVU721 + 2105 .LVL242: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2106 .loc 1 488 11 discriminator 1 view .LVU722 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2107 .loc 1 488 11 discriminator 1 view .LVU723 + 2108 00a0 B5F85020 ldrh r2, [r5, #80] + 2109 00a4 15FA82F2 uxtah r2, r5, r2 + 2110 .LVL243: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2111 .loc 1 488 11 discriminator 1 view .LVU724 + 2112 00a8 02EBC303 add r3, r2, r3, lsl #3 + 2113 .LVL244: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2114 .loc 1 488 11 discriminator 1 view .LVU725 + 2115 .LBB67: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2116 .loc 1 488 11 discriminator 1 view .LVU726 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2117 .loc 1 488 11 discriminator 1 view .LVU727 + 2118 00ac 3E2E cmp r6, #62 + 2119 00ae 40F2A381 bls .L106 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2120 .loc 1 488 11 discriminator 3 view .LVU728 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2121 .loc 1 488 11 discriminator 3 view .LVU729 + 2122 00b2 7209 lsrs r2, r6, #5 + 2123 .LVL245: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2124 .loc 1 488 11 discriminator 3 view .LVU730 + 2125 00b4 16F01F0F tst r6, #31 + 2126 00b8 00D1 bne .L107 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2127 .loc 1 488 11 discriminator 5 view .LVU731 + 2128 00ba 013A subs r2, r2, #1 + 2129 .LVL246: + 2130 .L107: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2131 .loc 1 488 11 discriminator 7 view .LVU732 + 2132 00bc 6FEAC262 mvn r2, r2, lsl #27 + 2133 .LVL247: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2134 .loc 1 488 11 is_stmt 0 discriminator 7 view .LVU733 + 2135 00c0 6FEA5242 mvn r2, r2, lsr #17 + 2136 00c4 92B2 uxth r2, r2 + 2137 00c6 A3F80624 strh r2, [r3, #1030] @ movhi + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2138 .loc 1 488 11 is_stmt 1 discriminator 7 view .LVU734 + 2139 00ca BBE1 b .L108 + 2140 .LVL248: + 2141 .L154: + ARM GAS /tmp/cc2t6zYn.s page 58 + + + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2142 .loc 1 488 11 is_stmt 0 discriminator 7 view .LVU735 + 2143 .LBE67: + 2144 .LBE66: + 2145 .LBE65: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len); + 2146 .loc 1 390 7 is_stmt 1 view .LVU736 + 2147 00cc B6B2 uxth r6, r6 + 2148 .LVL249: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len); + 2149 .loc 1 390 7 is_stmt 0 view .LVU737 + 2150 00ce 3346 mov r3, r6 + 2151 00d0 E288 ldrh r2, [r4, #6] + 2152 00d2 6169 ldr r1, [r4, #20] + 2153 00d4 2846 mov r0, r5 + 2154 .LVL250: + 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len); + 2155 .loc 1 390 7 view .LVU738 + 2156 00d6 FFF7FEFF bl USB_WritePMA + 2157 .LVL251: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2158 .loc 1 391 7 is_stmt 1 view .LVU739 + 2159 .LBB70: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2160 .loc 1 391 7 view .LVU740 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2161 .loc 1 391 7 view .LVU741 + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2162 .loc 1 391 7 view .LVU742 + 2163 00da B5F85030 ldrh r3, [r5, #80] + 2164 00de 15FA83F3 uxtah r3, r5, r3 + 2165 .LVL252: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2166 .loc 1 391 7 view .LVU743 + 2167 00e2 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2168 00e4 03EBC203 add r3, r3, r2, lsl #3 + 2169 .LVL253: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2170 .loc 1 391 7 view .LVU744 + 2171 00e8 A3F80264 strh r6, [r3, #1026] @ movhi + 2172 .LBE70: + 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2173 .loc 1 391 7 view .LVU745 + 2174 .LVL254: + 2175 .L72: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2176 .loc 1 507 5 view .LVU746 + 2177 .LBB71: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2178 .loc 1 507 5 view .LVU747 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2179 .loc 1 507 5 view .LVU748 + 2180 00ec 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2181 00ee 35F82230 ldrh r3, [r5, r2, lsl #2] + 2182 00f2 9BB2 uxth r3, r3 + 2183 00f4 23F4E043 bic r3, r3, #28672 + 2184 00f8 23F04003 bic r3, r3, #64 + ARM GAS /tmp/cc2t6zYn.s page 59 + + + 2185 .LVL255: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2186 .loc 1 507 5 view .LVU749 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2187 .loc 1 507 5 view .LVU750 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2188 .loc 1 507 5 view .LVU751 + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2189 .loc 1 507 5 view .LVU752 + 2190 00fc 83F03003 eor r3, r3, #48 + 2191 .LVL256: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2192 .loc 1 507 5 view .LVU753 + 2193 0100 43F40043 orr r3, r3, #32768 + 2194 .LVL257: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2195 .loc 1 507 5 is_stmt 0 view .LVU754 + 2196 0104 43F08003 orr r3, r3, #128 + 2197 0108 25F82230 strh r3, [r5, r2, lsl #2] @ movhi + 2198 .LBE71: + 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2199 .loc 1 507 5 is_stmt 1 view .LVU755 + 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2200 .loc 1 576 10 is_stmt 0 view .LVU756 + 2201 010c 0020 movs r0, #0 + 2202 010e AFE7 b .L117 + 2203 .LVL258: + 2204 .L155: + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2205 .loc 1 399 9 is_stmt 1 view .LVU757 + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2206 .loc 1 399 15 is_stmt 0 view .LVU758 + 2207 0110 236A ldr r3, [r4, #32] + 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2208 .loc 1 399 12 view .LVU759 + 2209 0112 9942 cmp r1, r3 + 2210 0114 80F05281 bcs .L74 + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2211 .loc 1 402 11 is_stmt 1 view .LVU760 + 2212 .LBB72: + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2213 .loc 1 402 11 view .LVU761 + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2214 .loc 1 402 11 view .LVU762 + 2215 0118 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2216 011a 35F82230 ldrh r3, [r5, r2, lsl #2] + 2217 011e 9BB2 uxth r3, r3 + 2218 0120 23F4E043 bic r3, r3, #28672 + 2219 0124 23F07003 bic r3, r3, #112 + 2220 .LVL259: + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2221 .loc 1 402 11 view .LVU763 + 2222 0128 43F40143 orr r3, r3, #33024 + 2223 .LVL260: + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2224 .loc 1 402 11 is_stmt 0 view .LVU764 + 2225 012c 43F08003 orr r3, r3, #128 + ARM GAS /tmp/cc2t6zYn.s page 60 + + + 2226 0130 25F82230 strh r3, [r5, r2, lsl #2] @ movhi + 2227 .LBE72: + 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2228 .loc 1 402 11 is_stmt 1 view .LVU765 + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2229 .loc 1 405 11 view .LVU766 + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2230 .loc 1 405 13 is_stmt 0 view .LVU767 + 2231 0134 236A ldr r3, [r4, #32] + 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2232 .loc 1 405 27 view .LVU768 + 2233 0136 9B1B subs r3, r3, r6 + 2234 0138 2362 str r3, [r4, #32] + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2235 .loc 1 408 11 is_stmt 1 view .LVU769 + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2236 .loc 1 408 16 is_stmt 0 view .LVU770 + 2237 013a 2378 ldrb r3, [r4] @ zero_extendqisi2 + 2238 013c 35F82320 ldrh r2, [r5, r3, lsl #2] + 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2239 .loc 1 408 14 view .LVU771 + 2240 0140 12F0400F tst r2, #64 + 2241 0144 00F09D80 beq .L75 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2242 .loc 1 411 13 is_stmt 1 view .LVU772 + 2243 .LBB73: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2244 .loc 1 411 13 view .LVU773 + 2245 .LVL261: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2246 .loc 1 411 13 view .LVU774 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2247 .loc 1 411 13 view .LVU775 + 2248 0148 6278 ldrb r2, [r4, #1] @ zero_extendqisi2 + 2249 014a 8ABB cbnz r2, .L76 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2250 .loc 1 411 13 discriminator 1 view .LVU776 + 2251 .LBB74: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2252 .loc 1 411 13 discriminator 1 view .LVU777 + 2253 .LVL262: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2254 .loc 1 411 13 discriminator 1 view .LVU778 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2255 .loc 1 411 13 discriminator 1 view .LVU779 + 2256 014c B5F85020 ldrh r2, [r5, #80] + 2257 0150 15FA82F2 uxtah r2, r5, r2 + 2258 .LVL263: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2259 .loc 1 411 13 discriminator 1 view .LVU780 + 2260 0154 02EBC303 add r3, r2, r3, lsl #3 + 2261 .LVL264: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2262 .loc 1 411 13 discriminator 1 view .LVU781 + 2263 .LBB75: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2264 .loc 1 411 13 discriminator 1 view .LVU782 + ARM GAS /tmp/cc2t6zYn.s page 61 + + + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2265 .loc 1 411 13 discriminator 1 view .LVU783 + 2266 0158 3E2E cmp r6, #62 + 2267 015a 0CD9 bls .L77 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2268 .loc 1 411 13 discriminator 3 view .LVU784 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2269 .loc 1 411 13 discriminator 3 view .LVU785 + 2270 015c 7209 lsrs r2, r6, #5 + 2271 .LVL265: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2272 .loc 1 411 13 discriminator 3 view .LVU786 + 2273 015e 16F01F0F tst r6, #31 + 2274 0162 00D1 bne .L78 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2275 .loc 1 411 13 discriminator 5 view .LVU787 + 2276 0164 013A subs r2, r2, #1 + 2277 .LVL266: + 2278 .L78: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2279 .loc 1 411 13 discriminator 7 view .LVU788 + 2280 0166 6FEAC262 mvn r2, r2, lsl #27 + 2281 .LVL267: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2282 .loc 1 411 13 is_stmt 0 discriminator 7 view .LVU789 + 2283 016a 6FEA5242 mvn r2, r2, lsr #17 + 2284 016e 92B2 uxth r2, r2 + 2285 0170 A3F80624 strh r2, [r3, #1030] @ movhi + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2286 .loc 1 411 13 is_stmt 1 discriminator 7 view .LVU790 + 2287 0174 1EE0 b .L79 + 2288 .LVL268: + 2289 .L77: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2290 .loc 1 411 13 discriminator 4 view .LVU791 + 2291 0176 8EB9 cbnz r6, .L80 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2292 .loc 1 411 13 discriminator 9 view .LVU792 + 2293 0178 B3F80624 ldrh r2, [r3, #1030] + 2294 .LVL269: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2295 .loc 1 411 13 is_stmt 0 discriminator 9 view .LVU793 + 2296 017c 92B2 uxth r2, r2 + 2297 017e 22F4F842 bic r2, r2, #31744 + 2298 0182 92B2 uxth r2, r2 + 2299 0184 A3F80624 strh r2, [r3, #1030] @ movhi + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2300 .loc 1 411 13 is_stmt 1 discriminator 9 view .LVU794 + 2301 0188 B3F80624 ldrh r2, [r3, #1030] + 2302 018c 6FEA4242 mvn r2, r2, lsl #17 + 2303 0190 6FEA5242 mvn r2, r2, lsr #17 + 2304 0194 92B2 uxth r2, r2 + 2305 0196 A3F80624 strh r2, [r3, #1030] @ movhi + 2306 019a 0BE0 b .L79 + 2307 .LVL270: + 2308 .L80: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + ARM GAS /tmp/cc2t6zYn.s page 62 + + + 2309 .loc 1 411 13 discriminator 10 view .LVU795 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2310 .loc 1 411 13 discriminator 10 view .LVU796 + 2311 019c 7208 lsrs r2, r6, #1 + 2312 .LVL271: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2313 .loc 1 411 13 discriminator 10 view .LVU797 + 2314 019e 16F0010F tst r6, #1 + 2315 01a2 00D0 beq .L81 + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2316 .loc 1 411 13 discriminator 12 view .LVU798 + 2317 01a4 0132 adds r2, r2, #1 + 2318 .LVL272: + 2319 .L81: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2320 .loc 1 411 13 discriminator 14 view .LVU799 + 2321 01a6 9202 lsls r2, r2, #10 + 2322 .LVL273: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2323 .loc 1 411 13 is_stmt 0 discriminator 14 view .LVU800 + 2324 01a8 92B2 uxth r2, r2 + 2325 01aa A3F80624 strh r2, [r3, #1030] @ movhi + 2326 01ae 01E0 b .L79 + 2327 .LVL274: + 2328 .L76: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2329 .loc 1 411 13 discriminator 14 view .LVU801 + 2330 .LBE75: + 2331 .LBE74: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2332 .loc 1 411 13 is_stmt 1 discriminator 2 view .LVU802 + 2333 01b0 012A cmp r2, #1 + 2334 01b2 27D0 beq .L156 + 2335 .LVL275: + 2336 .L79: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2337 .loc 1 411 13 is_stmt 0 discriminator 2 view .LVU803 + 2338 .LBE73: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2339 .loc 1 411 13 is_stmt 1 discriminator 18 view .LVU804 + 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2340 .loc 1 412 13 discriminator 18 view .LVU805 + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_buff += len; + 2341 .loc 1 415 13 discriminator 18 view .LVU806 + 2342 01b4 B3B2 uxth r3, r6 + 2343 01b6 6289 ldrh r2, [r4, #10] + 2344 01b8 6169 ldr r1, [r4, #20] + 2345 01ba 2846 mov r0, r5 + 2346 .LVL276: + 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_buff += len; + 2347 .loc 1 415 13 is_stmt 0 discriminator 18 view .LVU807 + 2348 01bc FFF7FEFF bl USB_WritePMA + 2349 .LVL277: + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2350 .loc 1 416 13 is_stmt 1 discriminator 18 view .LVU808 + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2351 .loc 1 416 15 is_stmt 0 discriminator 18 view .LVU809 + ARM GAS /tmp/cc2t6zYn.s page 63 + + + 2352 01c0 6369 ldr r3, [r4, #20] + 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2353 .loc 1 416 27 discriminator 18 view .LVU810 + 2354 01c2 3344 add r3, r3, r6 + 2355 01c4 6361 str r3, [r4, #20] + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2356 .loc 1 418 13 is_stmt 1 discriminator 18 view .LVU811 + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2357 .loc 1 418 19 is_stmt 0 discriminator 18 view .LVU812 + 2358 01c6 236A ldr r3, [r4, #32] + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2359 .loc 1 418 37 discriminator 18 view .LVU813 + 2360 01c8 2269 ldr r2, [r4, #16] + 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2361 .loc 1 418 16 discriminator 18 view .LVU814 + 2362 01ca 9342 cmp r3, r2 + 2363 01cc 24D9 bls .L82 + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2364 .loc 1 420 15 is_stmt 1 view .LVU815 + 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2365 .loc 1 420 31 is_stmt 0 view .LVU816 + 2366 01ce 9B1B subs r3, r3, r6 + 2367 01d0 2362 str r3, [r4, #32] + 2368 .L83: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2369 .loc 1 429 13 is_stmt 1 view .LVU817 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2370 .loc 1 429 13 view .LVU818 + 2371 01d2 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 2372 01d4 002B cmp r3, #0 + 2373 01d6 40D1 bne .L84 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2374 .loc 1 429 13 discriminator 1 view .LVU819 + 2375 .LBB76: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2376 .loc 1 429 13 discriminator 1 view .LVU820 + 2377 .LVL278: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2378 .loc 1 429 13 discriminator 1 view .LVU821 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2379 .loc 1 429 13 discriminator 1 view .LVU822 + 2380 01d8 B5F85030 ldrh r3, [r5, #80] + 2381 01dc 15FA83F3 uxtah r3, r5, r3 + 2382 .LVL279: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2383 .loc 1 429 13 discriminator 1 view .LVU823 + 2384 01e0 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2385 01e2 03EBC203 add r3, r3, r2, lsl #3 + 2386 .LVL280: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2387 .loc 1 429 13 discriminator 1 view .LVU824 + 2388 .LBB77: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2389 .loc 1 429 13 discriminator 1 view .LVU825 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2390 .loc 1 429 13 discriminator 1 view .LVU826 + 2391 01e6 3E2E cmp r6, #62 + ARM GAS /tmp/cc2t6zYn.s page 64 + + + 2392 01e8 1AD9 bls .L85 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2393 .loc 1 429 13 discriminator 3 view .LVU827 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2394 .loc 1 429 13 discriminator 3 view .LVU828 + 2395 01ea 7209 lsrs r2, r6, #5 + 2396 .LVL281: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2397 .loc 1 429 13 discriminator 3 view .LVU829 + 2398 01ec 16F01F0F tst r6, #31 + 2399 01f0 00D1 bne .L86 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2400 .loc 1 429 13 discriminator 5 view .LVU830 + 2401 01f2 013A subs r2, r2, #1 + 2402 .LVL282: + 2403 .L86: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2404 .loc 1 429 13 discriminator 7 view .LVU831 + 2405 01f4 6FEAC262 mvn r2, r2, lsl #27 + 2406 .LVL283: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2407 .loc 1 429 13 is_stmt 0 discriminator 7 view .LVU832 + 2408 01f8 6FEA5242 mvn r2, r2, lsr #17 + 2409 01fc 92B2 uxth r2, r2 + 2410 01fe A3F80224 strh r2, [r3, #1026] @ movhi + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2411 .loc 1 429 13 is_stmt 1 discriminator 7 view .LVU833 + 2412 0202 2CE0 b .L87 + 2413 .LVL284: + 2414 .L156: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2415 .loc 1 429 13 is_stmt 0 discriminator 7 view .LVU834 + 2416 .LBE77: + 2417 .LBE76: + 2418 .LBB79: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2419 .loc 1 411 13 is_stmt 1 discriminator 16 view .LVU835 + 2420 0204 B5F85020 ldrh r2, [r5, #80] + 2421 0208 15FA82F2 uxtah r2, r5, r2 + 2422 .LVL285: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2423 .loc 1 411 13 discriminator 16 view .LVU836 + 2424 020c 02EBC303 add r3, r2, r3, lsl #3 + 2425 .LVL286: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2426 .loc 1 411 13 discriminator 16 view .LVU837 + 2427 0210 B2B2 uxth r2, r6 + 2428 .LVL287: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2429 .loc 1 411 13 is_stmt 0 discriminator 16 view .LVU838 + 2430 0212 A3F80624 strh r2, [r3, #1030] @ movhi + 2431 0216 CDE7 b .L79 + 2432 .LVL288: + 2433 .L82: + 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2434 .loc 1 411 13 discriminator 16 view .LVU839 + 2435 .LBE79: + ARM GAS /tmp/cc2t6zYn.s page 65 + + + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db = 0U; + 2436 .loc 1 424 15 is_stmt 1 view .LVU840 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2437 .loc 1 425 15 view .LVU841 + 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2438 .loc 1 425 31 is_stmt 0 view .LVU842 + 2439 0218 0022 movs r2, #0 + 2440 021a 2262 str r2, [r4, #32] + 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db = 0U; + 2441 .loc 1 424 19 view .LVU843 + 2442 021c 1E46 mov r6, r3 + 2443 021e D8E7 b .L83 + 2444 .LVL289: + 2445 .L85: + 2446 .LBB80: + 2447 .LBB78: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2448 .loc 1 429 13 is_stmt 1 discriminator 4 view .LVU844 + 2449 0220 8EB9 cbnz r6, .L88 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2450 .loc 1 429 13 discriminator 9 view .LVU845 + 2451 0222 B3F80224 ldrh r2, [r3, #1026] + 2452 0226 92B2 uxth r2, r2 + 2453 0228 22F4F842 bic r2, r2, #31744 + 2454 022c 92B2 uxth r2, r2 + 2455 022e A3F80224 strh r2, [r3, #1026] @ movhi + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2456 .loc 1 429 13 discriminator 9 view .LVU846 + 2457 0232 B3F80224 ldrh r2, [r3, #1026] + 2458 0236 6FEA4242 mvn r2, r2, lsl #17 + 2459 023a 6FEA5242 mvn r2, r2, lsr #17 + 2460 023e 92B2 uxth r2, r2 + 2461 0240 A3F80224 strh r2, [r3, #1026] @ movhi + 2462 0244 0BE0 b .L87 + 2463 .L88: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2464 .loc 1 429 13 discriminator 10 view .LVU847 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2465 .loc 1 429 13 discriminator 10 view .LVU848 + 2466 0246 7208 lsrs r2, r6, #1 + 2467 .LVL290: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2468 .loc 1 429 13 discriminator 10 view .LVU849 + 2469 0248 16F0010F tst r6, #1 + 2470 024c 00D0 beq .L89 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2471 .loc 1 429 13 discriminator 12 view .LVU850 + 2472 024e 0132 adds r2, r2, #1 + 2473 .LVL291: + 2474 .L89: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2475 .loc 1 429 13 discriminator 14 view .LVU851 + 2476 0250 9202 lsls r2, r2, #10 + 2477 .LVL292: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2478 .loc 1 429 13 is_stmt 0 discriminator 14 view .LVU852 + 2479 0252 92B2 uxth r2, r2 + ARM GAS /tmp/cc2t6zYn.s page 66 + + + 2480 0254 A3F80224 strh r2, [r3, #1026] @ movhi + 2481 0258 01E0 b .L87 + 2482 .LVL293: + 2483 .L84: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2484 .loc 1 429 13 discriminator 14 view .LVU853 + 2485 .LBE78: + 2486 .LBE80: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2487 .loc 1 429 13 is_stmt 1 discriminator 2 view .LVU854 + 2488 025a 012B cmp r3, #1 + 2489 025c 06D0 beq .L157 + 2490 .L87: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2491 .loc 1 429 13 discriminator 18 view .LVU855 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2492 .loc 1 429 13 discriminator 18 view .LVU856 + 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2493 .loc 1 430 13 discriminator 18 view .LVU857 + 2494 .LVL294: + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2495 .loc 1 433 13 discriminator 18 view .LVU858 + 2496 025e B3B2 uxth r3, r6 + 2497 0260 2289 ldrh r2, [r4, #8] + 2498 0262 6169 ldr r1, [r4, #20] + 2499 0264 2846 mov r0, r5 + 2500 0266 FFF7FEFF bl USB_WritePMA + 2501 .LVL295: + 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2502 .loc 1 433 13 is_stmt 0 discriminator 18 view .LVU859 + 2503 026a 3FE7 b .L72 + 2504 .L157: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2505 .loc 1 429 13 is_stmt 1 discriminator 16 view .LVU860 + 2506 .LBB81: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2507 .loc 1 429 13 discriminator 16 view .LVU861 + 2508 .LVL296: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2509 .loc 1 429 13 discriminator 16 view .LVU862 + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2510 .loc 1 429 13 discriminator 16 view .LVU863 + 2511 026c B5F85030 ldrh r3, [r5, #80] + 2512 0270 15FA83F3 uxtah r3, r5, r3 + 2513 .LVL297: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2514 .loc 1 429 13 discriminator 16 view .LVU864 + 2515 0274 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2516 0276 03EBC203 add r3, r3, r2, lsl #3 + 2517 .LVL298: + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2518 .loc 1 429 13 discriminator 16 view .LVU865 + 2519 027a B2B2 uxth r2, r6 + 2520 027c A3F80224 strh r2, [r3, #1026] @ movhi + 2521 0280 EDE7 b .L87 + 2522 .LVL299: + 2523 .L75: + ARM GAS /tmp/cc2t6zYn.s page 67 + + + 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2524 .loc 1 429 13 is_stmt 0 discriminator 16 view .LVU866 + 2525 .LBE81: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2526 .loc 1 438 13 is_stmt 1 view .LVU867 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2527 .loc 1 438 13 view .LVU868 + 2528 0282 6278 ldrb r2, [r4, #1] @ zero_extendqisi2 + 2529 0284 8ABB cbnz r2, .L90 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2530 .loc 1 438 13 discriminator 1 view .LVU869 + 2531 .LBB82: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2532 .loc 1 438 13 discriminator 1 view .LVU870 + 2533 .LVL300: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2534 .loc 1 438 13 discriminator 1 view .LVU871 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2535 .loc 1 438 13 discriminator 1 view .LVU872 + 2536 0286 B5F85020 ldrh r2, [r5, #80] + 2537 028a 15FA82F2 uxtah r2, r5, r2 + 2538 .LVL301: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2539 .loc 1 438 13 discriminator 1 view .LVU873 + 2540 028e 02EBC303 add r3, r2, r3, lsl #3 + 2541 .LVL302: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2542 .loc 1 438 13 discriminator 1 view .LVU874 + 2543 .LBB83: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2544 .loc 1 438 13 discriminator 1 view .LVU875 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2545 .loc 1 438 13 discriminator 1 view .LVU876 + 2546 0292 3E2E cmp r6, #62 + 2547 0294 0CD9 bls .L91 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2548 .loc 1 438 13 discriminator 3 view .LVU877 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2549 .loc 1 438 13 discriminator 3 view .LVU878 + 2550 0296 7209 lsrs r2, r6, #5 + 2551 .LVL303: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2552 .loc 1 438 13 discriminator 3 view .LVU879 + 2553 0298 16F01F0F tst r6, #31 + 2554 029c 00D1 bne .L92 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2555 .loc 1 438 13 discriminator 5 view .LVU880 + 2556 029e 013A subs r2, r2, #1 + 2557 .LVL304: + 2558 .L92: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2559 .loc 1 438 13 discriminator 7 view .LVU881 + 2560 02a0 6FEAC262 mvn r2, r2, lsl #27 + 2561 .LVL305: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2562 .loc 1 438 13 is_stmt 0 discriminator 7 view .LVU882 + 2563 02a4 6FEA5242 mvn r2, r2, lsr #17 + ARM GAS /tmp/cc2t6zYn.s page 68 + + + 2564 02a8 92B2 uxth r2, r2 + 2565 02aa A3F80224 strh r2, [r3, #1026] @ movhi + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2566 .loc 1 438 13 is_stmt 1 discriminator 7 view .LVU883 + 2567 02ae 1EE0 b .L93 + 2568 .LVL306: + 2569 .L91: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2570 .loc 1 438 13 discriminator 4 view .LVU884 + 2571 02b0 8EB9 cbnz r6, .L94 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2572 .loc 1 438 13 discriminator 9 view .LVU885 + 2573 02b2 B3F80224 ldrh r2, [r3, #1026] + 2574 .LVL307: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2575 .loc 1 438 13 is_stmt 0 discriminator 9 view .LVU886 + 2576 02b6 92B2 uxth r2, r2 + 2577 02b8 22F4F842 bic r2, r2, #31744 + 2578 02bc 92B2 uxth r2, r2 + 2579 02be A3F80224 strh r2, [r3, #1026] @ movhi + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2580 .loc 1 438 13 is_stmt 1 discriminator 9 view .LVU887 + 2581 02c2 B3F80224 ldrh r2, [r3, #1026] + 2582 02c6 6FEA4242 mvn r2, r2, lsl #17 + 2583 02ca 6FEA5242 mvn r2, r2, lsr #17 + 2584 02ce 92B2 uxth r2, r2 + 2585 02d0 A3F80224 strh r2, [r3, #1026] @ movhi + 2586 02d4 0BE0 b .L93 + 2587 .LVL308: + 2588 .L94: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2589 .loc 1 438 13 discriminator 10 view .LVU888 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2590 .loc 1 438 13 discriminator 10 view .LVU889 + 2591 02d6 7208 lsrs r2, r6, #1 + 2592 .LVL309: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2593 .loc 1 438 13 discriminator 10 view .LVU890 + 2594 02d8 16F0010F tst r6, #1 + 2595 02dc 00D0 beq .L95 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2596 .loc 1 438 13 discriminator 12 view .LVU891 + 2597 02de 0132 adds r2, r2, #1 + 2598 .LVL310: + 2599 .L95: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2600 .loc 1 438 13 discriminator 14 view .LVU892 + 2601 02e0 9202 lsls r2, r2, #10 + 2602 .LVL311: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2603 .loc 1 438 13 is_stmt 0 discriminator 14 view .LVU893 + 2604 02e2 92B2 uxth r2, r2 + 2605 02e4 A3F80224 strh r2, [r3, #1026] @ movhi + 2606 02e8 01E0 b .L93 + 2607 .LVL312: + 2608 .L90: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + ARM GAS /tmp/cc2t6zYn.s page 69 + + + 2609 .loc 1 438 13 discriminator 14 view .LVU894 + 2610 .LBE83: + 2611 .LBE82: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2612 .loc 1 438 13 is_stmt 1 discriminator 2 view .LVU895 + 2613 02ea 012A cmp r2, #1 + 2614 02ec 27D0 beq .L158 + 2615 .L93: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2616 .loc 1 438 13 discriminator 18 view .LVU896 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2617 .loc 1 438 13 discriminator 18 view .LVU897 + 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2618 .loc 1 439 13 discriminator 18 view .LVU898 + 2619 .LVL313: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_buff += len; + 2620 .loc 1 442 13 discriminator 18 view .LVU899 + 2621 02ee B3B2 uxth r3, r6 + 2622 02f0 2289 ldrh r2, [r4, #8] + 2623 02f2 6169 ldr r1, [r4, #20] + 2624 02f4 2846 mov r0, r5 + 2625 .LVL314: + 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_buff += len; + 2626 .loc 1 442 13 is_stmt 0 discriminator 18 view .LVU900 + 2627 02f6 FFF7FEFF bl USB_WritePMA + 2628 .LVL315: + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2629 .loc 1 443 13 is_stmt 1 discriminator 18 view .LVU901 + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2630 .loc 1 443 15 is_stmt 0 discriminator 18 view .LVU902 + 2631 02fa 6369 ldr r3, [r4, #20] + 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2632 .loc 1 443 27 discriminator 18 view .LVU903 + 2633 02fc 3344 add r3, r3, r6 + 2634 02fe 6361 str r3, [r4, #20] + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2635 .loc 1 445 13 is_stmt 1 discriminator 18 view .LVU904 + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2636 .loc 1 445 19 is_stmt 0 discriminator 18 view .LVU905 + 2637 0300 236A ldr r3, [r4, #32] + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2638 .loc 1 445 37 discriminator 18 view .LVU906 + 2639 0302 2269 ldr r2, [r4, #16] + 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 2640 .loc 1 445 16 discriminator 18 view .LVU907 + 2641 0304 9342 cmp r3, r2 + 2642 0306 24D9 bls .L96 + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2643 .loc 1 447 15 is_stmt 1 view .LVU908 + 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2644 .loc 1 447 31 is_stmt 0 view .LVU909 + 2645 0308 9B1B subs r3, r3, r6 + 2646 030a 2362 str r3, [r4, #32] + 2647 .L97: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2648 .loc 1 456 13 is_stmt 1 view .LVU910 + 2649 .LBB84: + ARM GAS /tmp/cc2t6zYn.s page 70 + + + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2650 .loc 1 456 13 view .LVU911 + 2651 .LVL316: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2652 .loc 1 456 13 view .LVU912 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2653 .loc 1 456 13 view .LVU913 + 2654 030c 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 2655 030e 002B cmp r3, #0 + 2656 0310 40D1 bne .L98 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2657 .loc 1 456 13 discriminator 1 view .LVU914 + 2658 .LBB85: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2659 .loc 1 456 13 discriminator 1 view .LVU915 + 2660 .LVL317: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2661 .loc 1 456 13 discriminator 1 view .LVU916 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2662 .loc 1 456 13 discriminator 1 view .LVU917 + 2663 0312 B5F85030 ldrh r3, [r5, #80] + 2664 0316 15FA83F3 uxtah r3, r5, r3 + 2665 .LVL318: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2666 .loc 1 456 13 discriminator 1 view .LVU918 + 2667 031a 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2668 031c 03EBC203 add r3, r3, r2, lsl #3 + 2669 .LVL319: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2670 .loc 1 456 13 discriminator 1 view .LVU919 + 2671 .LBB86: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2672 .loc 1 456 13 discriminator 1 view .LVU920 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2673 .loc 1 456 13 discriminator 1 view .LVU921 + 2674 0320 3E2E cmp r6, #62 + 2675 0322 1AD9 bls .L99 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2676 .loc 1 456 13 discriminator 3 view .LVU922 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2677 .loc 1 456 13 discriminator 3 view .LVU923 + 2678 0324 7209 lsrs r2, r6, #5 + 2679 .LVL320: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2680 .loc 1 456 13 discriminator 3 view .LVU924 + 2681 0326 16F01F0F tst r6, #31 + 2682 032a 00D1 bne .L100 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2683 .loc 1 456 13 discriminator 5 view .LVU925 + 2684 032c 013A subs r2, r2, #1 + 2685 .LVL321: + 2686 .L100: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2687 .loc 1 456 13 discriminator 7 view .LVU926 + 2688 032e 6FEAC262 mvn r2, r2, lsl #27 + 2689 .LVL322: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + ARM GAS /tmp/cc2t6zYn.s page 71 + + + 2690 .loc 1 456 13 is_stmt 0 discriminator 7 view .LVU927 + 2691 0332 6FEA5242 mvn r2, r2, lsr #17 + 2692 0336 92B2 uxth r2, r2 + 2693 0338 A3F80624 strh r2, [r3, #1030] @ movhi + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2694 .loc 1 456 13 is_stmt 1 discriminator 7 view .LVU928 + 2695 033c 2CE0 b .L101 + 2696 .LVL323: + 2697 .L158: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2698 .loc 1 456 13 is_stmt 0 discriminator 7 view .LVU929 + 2699 .LBE86: + 2700 .LBE85: + 2701 .LBE84: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2702 .loc 1 438 13 is_stmt 1 discriminator 16 view .LVU930 + 2703 .LBB89: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2704 .loc 1 438 13 discriminator 16 view .LVU931 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2705 .loc 1 438 13 discriminator 16 view .LVU932 + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2706 .loc 1 438 13 discriminator 16 view .LVU933 + 2707 033e B5F85020 ldrh r2, [r5, #80] + 2708 0342 15FA82F2 uxtah r2, r5, r2 + 2709 .LVL324: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2710 .loc 1 438 13 discriminator 16 view .LVU934 + 2711 0346 02EBC303 add r3, r2, r3, lsl #3 + 2712 .LVL325: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2713 .loc 1 438 13 discriminator 16 view .LVU935 + 2714 034a B2B2 uxth r2, r6 + 2715 .LVL326: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2716 .loc 1 438 13 is_stmt 0 discriminator 16 view .LVU936 + 2717 034c A3F80224 strh r2, [r3, #1026] @ movhi + 2718 0350 CDE7 b .L93 + 2719 .LVL327: + 2720 .L96: + 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2721 .loc 1 438 13 discriminator 16 view .LVU937 + 2722 .LBE89: + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db = 0U; + 2723 .loc 1 451 15 is_stmt 1 view .LVU938 + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2724 .loc 1 452 15 view .LVU939 + 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2725 .loc 1 452 31 is_stmt 0 view .LVU940 + 2726 0352 0022 movs r2, #0 + 2727 0354 2262 str r2, [r4, #32] + 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len_db = 0U; + 2728 .loc 1 451 19 view .LVU941 + 2729 0356 1E46 mov r6, r3 + 2730 0358 D8E7 b .L97 + 2731 .LVL328: + 2732 .L99: + ARM GAS /tmp/cc2t6zYn.s page 72 + + + 2733 .LBB90: + 2734 .LBB88: + 2735 .LBB87: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2736 .loc 1 456 13 is_stmt 1 discriminator 4 view .LVU942 + 2737 035a 8EB9 cbnz r6, .L102 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2738 .loc 1 456 13 discriminator 9 view .LVU943 + 2739 035c B3F80624 ldrh r2, [r3, #1030] + 2740 0360 92B2 uxth r2, r2 + 2741 0362 22F4F842 bic r2, r2, #31744 + 2742 0366 92B2 uxth r2, r2 + 2743 0368 A3F80624 strh r2, [r3, #1030] @ movhi + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2744 .loc 1 456 13 discriminator 9 view .LVU944 + 2745 036c B3F80624 ldrh r2, [r3, #1030] + 2746 0370 6FEA4242 mvn r2, r2, lsl #17 + 2747 0374 6FEA5242 mvn r2, r2, lsr #17 + 2748 0378 92B2 uxth r2, r2 + 2749 037a A3F80624 strh r2, [r3, #1030] @ movhi + 2750 037e 0BE0 b .L101 + 2751 .L102: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2752 .loc 1 456 13 discriminator 10 view .LVU945 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2753 .loc 1 456 13 discriminator 10 view .LVU946 + 2754 0380 7208 lsrs r2, r6, #1 + 2755 .LVL329: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2756 .loc 1 456 13 discriminator 10 view .LVU947 + 2757 0382 16F0010F tst r6, #1 + 2758 0386 00D0 beq .L103 + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2759 .loc 1 456 13 discriminator 12 view .LVU948 + 2760 0388 0132 adds r2, r2, #1 + 2761 .LVL330: + 2762 .L103: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2763 .loc 1 456 13 discriminator 14 view .LVU949 + 2764 038a 9202 lsls r2, r2, #10 + 2765 .LVL331: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2766 .loc 1 456 13 is_stmt 0 discriminator 14 view .LVU950 + 2767 038c 92B2 uxth r2, r2 + 2768 038e A3F80624 strh r2, [r3, #1030] @ movhi + 2769 0392 01E0 b .L101 + 2770 .LVL332: + 2771 .L98: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2772 .loc 1 456 13 discriminator 14 view .LVU951 + 2773 .LBE87: + 2774 .LBE88: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2775 .loc 1 456 13 is_stmt 1 discriminator 2 view .LVU952 + 2776 0394 012B cmp r3, #1 + 2777 0396 06D0 beq .L159 + 2778 .LVL333: + ARM GAS /tmp/cc2t6zYn.s page 73 + + + 2779 .L101: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2780 .loc 1 456 13 is_stmt 0 discriminator 2 view .LVU953 + 2781 .LBE90: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2782 .loc 1 456 13 is_stmt 1 discriminator 18 view .LVU954 + 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2783 .loc 1 457 13 discriminator 18 view .LVU955 + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2784 .loc 1 460 13 discriminator 18 view .LVU956 + 2785 0398 B3B2 uxth r3, r6 + 2786 039a 6289 ldrh r2, [r4, #10] + 2787 039c 6169 ldr r1, [r4, #20] + 2788 039e 2846 mov r0, r5 + 2789 03a0 FFF7FEFF bl USB_WritePMA + 2790 .LVL334: + 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2791 .loc 1 460 13 is_stmt 0 discriminator 18 view .LVU957 + 2792 03a4 A2E6 b .L72 + 2793 .LVL335: + 2794 .L159: + 2795 .LBB91: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2796 .loc 1 456 13 is_stmt 1 discriminator 16 view .LVU958 + 2797 03a6 B5F85030 ldrh r3, [r5, #80] + 2798 03aa 15FA83F3 uxtah r3, r5, r3 + 2799 .LVL336: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2800 .loc 1 456 13 discriminator 16 view .LVU959 + 2801 03ae 2278 ldrb r2, [r4] @ zero_extendqisi2 + 2802 03b0 03EBC203 add r3, r3, r2, lsl #3 + 2803 .LVL337: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2804 .loc 1 456 13 discriminator 16 view .LVU960 + 2805 03b4 B2B2 uxth r2, r6 + 2806 03b6 A3F80624 strh r2, [r3, #1030] @ movhi + 2807 03ba EDE7 b .L101 + 2808 .LVL338: + 2809 .L74: + 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2810 .loc 1 456 13 is_stmt 0 discriminator 16 view .LVU961 + 2811 .LBE91: + 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2812 .loc 1 466 11 is_stmt 1 view .LVU962 + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2813 .loc 1 469 11 view .LVU963 + 2814 .LBB92: + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2815 .loc 1 469 11 view .LVU964 + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2816 .loc 1 469 11 view .LVU965 + 2817 03bc 2178 ldrb r1, [r4] @ zero_extendqisi2 + 2818 03be 35F82120 ldrh r2, [r5, r1, lsl #2] + 2819 03c2 92B2 uxth r2, r2 + 2820 03c4 22F4E242 bic r2, r2, #28928 + 2821 03c8 22F07002 bic r2, r2, #112 + 2822 .LVL339: + ARM GAS /tmp/cc2t6zYn.s page 74 + + + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2823 .loc 1 469 11 view .LVU966 + 2824 03cc 42F40042 orr r2, r2, #32768 + 2825 .LVL340: + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2826 .loc 1 469 11 is_stmt 0 view .LVU967 + 2827 03d0 42F08002 orr r2, r2, #128 + 2828 03d4 25F82120 strh r2, [r5, r1, lsl #2] @ movhi + 2829 .LBE92: + 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2830 .loc 1 469 11 is_stmt 1 view .LVU968 + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2831 .loc 1 472 11 view .LVU969 + 2832 .LBB93: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2833 .loc 1 472 11 view .LVU970 + 2834 .LVL341: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2835 .loc 1 472 11 view .LVU971 + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2836 .loc 1 472 11 view .LVU972 + 2837 03d8 B5F85020 ldrh r2, [r5, #80] + 2838 03dc 15FA82F2 uxtah r2, r5, r2 + 2839 .LVL342: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2840 .loc 1 472 11 view .LVU973 + 2841 03e0 2178 ldrb r1, [r4] @ zero_extendqisi2 + 2842 03e2 02EBC102 add r2, r2, r1, lsl #3 + 2843 .LVL343: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2844 .loc 1 472 11 view .LVU974 + 2845 03e6 9BB2 uxth r3, r3 + 2846 .LVL344: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2847 .loc 1 472 11 is_stmt 0 view .LVU975 + 2848 03e8 A2F80234 strh r3, [r2, #1026] @ movhi + 2849 .LBE93: + 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2850 .loc 1 472 11 is_stmt 1 view .LVU976 + 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2851 .loc 1 473 11 view .LVU977 + 2852 .LVL345: + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2853 .loc 1 476 11 view .LVU978 + 2854 03ec 2289 ldrh r2, [r4, #8] + 2855 .LVL346: + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2856 .loc 1 476 11 is_stmt 0 view .LVU979 + 2857 03ee 6169 ldr r1, [r4, #20] + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2858 .loc 1 476 11 view .LVU980 + 2859 03f0 2846 mov r0, r5 + 2860 .LVL347: + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2861 .loc 1 476 11 view .LVU981 + 2862 03f2 FFF7FEFF bl USB_WritePMA + 2863 .LVL348: + ARM GAS /tmp/cc2t6zYn.s page 75 + + + 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2864 .loc 1 476 11 view .LVU982 + 2865 03f6 79E6 b .L72 + 2866 .LVL349: + 2867 .L106: + 2868 .LBB94: + 2869 .LBB69: + 2870 .LBB68: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2871 .loc 1 488 11 is_stmt 1 discriminator 4 view .LVU983 + 2872 03f8 8EB9 cbnz r6, .L109 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2873 .loc 1 488 11 discriminator 9 view .LVU984 + 2874 03fa B3F80624 ldrh r2, [r3, #1030] + 2875 .LVL350: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2876 .loc 1 488 11 is_stmt 0 discriminator 9 view .LVU985 + 2877 03fe 92B2 uxth r2, r2 + 2878 0400 22F4F842 bic r2, r2, #31744 + 2879 0404 92B2 uxth r2, r2 + 2880 0406 A3F80624 strh r2, [r3, #1030] @ movhi + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2881 .loc 1 488 11 is_stmt 1 discriminator 9 view .LVU986 + 2882 040a B3F80624 ldrh r2, [r3, #1030] + 2883 040e 6FEA4242 mvn r2, r2, lsl #17 + 2884 0412 6FEA5242 mvn r2, r2, lsr #17 + 2885 0416 92B2 uxth r2, r2 + 2886 0418 A3F80624 strh r2, [r3, #1030] @ movhi + 2887 041c 12E0 b .L108 + 2888 .LVL351: + 2889 .L109: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2890 .loc 1 488 11 discriminator 10 view .LVU987 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2891 .loc 1 488 11 discriminator 10 view .LVU988 + 2892 041e 7208 lsrs r2, r6, #1 + 2893 .LVL352: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2894 .loc 1 488 11 discriminator 10 view .LVU989 + 2895 0420 16F0010F tst r6, #1 + 2896 0424 00D0 beq .L110 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2897 .loc 1 488 11 discriminator 12 view .LVU990 + 2898 0426 0132 adds r2, r2, #1 + 2899 .LVL353: + 2900 .L110: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2901 .loc 1 488 11 discriminator 14 view .LVU991 + 2902 0428 9202 lsls r2, r2, #10 + 2903 .LVL354: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2904 .loc 1 488 11 is_stmt 0 discriminator 14 view .LVU992 + 2905 042a 92B2 uxth r2, r2 + 2906 042c A3F80624 strh r2, [r3, #1030] @ movhi + 2907 0430 08E0 b .L108 + 2908 .LVL355: + 2909 .L105: + ARM GAS /tmp/cc2t6zYn.s page 76 + + + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2910 .loc 1 488 11 discriminator 14 view .LVU993 + 2911 .LBE68: + 2912 .LBE69: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2913 .loc 1 488 11 is_stmt 1 discriminator 16 view .LVU994 + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2914 .loc 1 488 11 discriminator 16 view .LVU995 + 2915 0432 B5F85020 ldrh r2, [r5, #80] + 2916 0436 15FA82F2 uxtah r2, r5, r2 + 2917 .LVL356: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2918 .loc 1 488 11 discriminator 16 view .LVU996 + 2919 043a 02EBC303 add r3, r2, r3, lsl #3 + 2920 .LVL357: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2921 .loc 1 488 11 discriminator 16 view .LVU997 + 2922 043e B2B2 uxth r2, r6 + 2923 .LVL358: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2924 .loc 1 488 11 is_stmt 0 discriminator 16 view .LVU998 + 2925 0440 A3F80624 strh r2, [r3, #1030] @ movhi + 2926 .LVL359: + 2927 .L108: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2928 .loc 1 488 11 discriminator 16 view .LVU999 + 2929 .LBE94: + 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr1; + 2930 .loc 1 488 11 is_stmt 1 discriminator 18 view .LVU1000 + 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 2931 .loc 1 489 11 discriminator 18 view .LVU1001 + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2932 .loc 1 492 11 discriminator 18 view .LVU1002 + 2933 0444 B3B2 uxth r3, r6 + 2934 0446 6289 ldrh r2, [r4, #10] + 2935 0448 6169 ldr r1, [r4, #20] + 2936 044a 2846 mov r0, r5 + 2937 .LVL360: + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2938 .loc 1 492 11 is_stmt 0 discriminator 18 view .LVU1003 + 2939 044c FFF7FEFF bl USB_WritePMA + 2940 .LVL361: + 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 2941 .loc 1 492 11 discriminator 18 view .LVU1004 + 2942 0450 4CE6 b .L72 + 2943 .LVL362: + 2944 .L104: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2945 .loc 1 497 11 is_stmt 1 view .LVU1005 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2946 .loc 1 497 11 view .LVU1006 + 2947 0452 8ABB cbnz r2, .L111 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2948 .loc 1 497 11 discriminator 1 view .LVU1007 + 2949 .LBB95: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2950 .loc 1 497 11 discriminator 1 view .LVU1008 + ARM GAS /tmp/cc2t6zYn.s page 77 + + + 2951 .LVL363: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2952 .loc 1 497 11 discriminator 1 view .LVU1009 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2953 .loc 1 497 11 discriminator 1 view .LVU1010 + 2954 0454 B5F85020 ldrh r2, [r5, #80] + 2955 0458 15FA82F2 uxtah r2, r5, r2 + 2956 .LVL364: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2957 .loc 1 497 11 discriminator 1 view .LVU1011 + 2958 045c 02EBC303 add r3, r2, r3, lsl #3 + 2959 .LVL365: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2960 .loc 1 497 11 discriminator 1 view .LVU1012 + 2961 .LBB96: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2962 .loc 1 497 11 discriminator 1 view .LVU1013 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2963 .loc 1 497 11 discriminator 1 view .LVU1014 + 2964 0460 3E2E cmp r6, #62 + 2965 0462 0CD9 bls .L112 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2966 .loc 1 497 11 discriminator 3 view .LVU1015 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2967 .loc 1 497 11 discriminator 3 view .LVU1016 + 2968 0464 7209 lsrs r2, r6, #5 + 2969 .LVL366: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2970 .loc 1 497 11 discriminator 3 view .LVU1017 + 2971 0466 16F01F0F tst r6, #31 + 2972 046a 00D1 bne .L113 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2973 .loc 1 497 11 discriminator 5 view .LVU1018 + 2974 046c 013A subs r2, r2, #1 + 2975 .LVL367: + 2976 .L113: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2977 .loc 1 497 11 discriminator 7 view .LVU1019 + 2978 046e 6FEAC262 mvn r2, r2, lsl #27 + 2979 .LVL368: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2980 .loc 1 497 11 is_stmt 0 discriminator 7 view .LVU1020 + 2981 0472 6FEA5242 mvn r2, r2, lsr #17 + 2982 0476 92B2 uxth r2, r2 + 2983 0478 A3F80224 strh r2, [r3, #1026] @ movhi + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2984 .loc 1 497 11 is_stmt 1 discriminator 7 view .LVU1021 + 2985 047c 25E0 b .L114 + 2986 .LVL369: + 2987 .L112: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2988 .loc 1 497 11 discriminator 4 view .LVU1022 + 2989 047e 8EB9 cbnz r6, .L115 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2990 .loc 1 497 11 discriminator 9 view .LVU1023 + 2991 0480 B3F80224 ldrh r2, [r3, #1026] + 2992 .LVL370: + ARM GAS /tmp/cc2t6zYn.s page 78 + + + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2993 .loc 1 497 11 is_stmt 0 discriminator 9 view .LVU1024 + 2994 0484 92B2 uxth r2, r2 + 2995 0486 22F4F842 bic r2, r2, #31744 + 2996 048a 92B2 uxth r2, r2 + 2997 048c A3F80224 strh r2, [r3, #1026] @ movhi + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 2998 .loc 1 497 11 is_stmt 1 discriminator 9 view .LVU1025 + 2999 0490 B3F80224 ldrh r2, [r3, #1026] + 3000 0494 6FEA4242 mvn r2, r2, lsl #17 + 3001 0498 6FEA5242 mvn r2, r2, lsr #17 + 3002 049c 92B2 uxth r2, r2 + 3003 049e A3F80224 strh r2, [r3, #1026] @ movhi + 3004 04a2 12E0 b .L114 + 3005 .LVL371: + 3006 .L115: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3007 .loc 1 497 11 discriminator 10 view .LVU1026 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3008 .loc 1 497 11 discriminator 10 view .LVU1027 + 3009 04a4 7208 lsrs r2, r6, #1 + 3010 .LVL372: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3011 .loc 1 497 11 discriminator 10 view .LVU1028 + 3012 04a6 16F0010F tst r6, #1 + 3013 04aa 00D0 beq .L116 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3014 .loc 1 497 11 discriminator 12 view .LVU1029 + 3015 04ac 0132 adds r2, r2, #1 + 3016 .LVL373: + 3017 .L116: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3018 .loc 1 497 11 discriminator 14 view .LVU1030 + 3019 04ae 9202 lsls r2, r2, #10 + 3020 .LVL374: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3021 .loc 1 497 11 is_stmt 0 discriminator 14 view .LVU1031 + 3022 04b0 92B2 uxth r2, r2 + 3023 04b2 A3F80224 strh r2, [r3, #1026] @ movhi + 3024 04b6 08E0 b .L114 + 3025 .LVL375: + 3026 .L111: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3027 .loc 1 497 11 discriminator 14 view .LVU1032 + 3028 .LBE96: + 3029 .LBE95: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3030 .loc 1 497 11 is_stmt 1 discriminator 16 view .LVU1033 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3031 .loc 1 497 11 discriminator 16 view .LVU1034 + 3032 .LBB97: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3033 .loc 1 497 11 discriminator 16 view .LVU1035 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3034 .loc 1 497 11 discriminator 16 view .LVU1036 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3035 .loc 1 497 11 discriminator 16 view .LVU1037 + ARM GAS /tmp/cc2t6zYn.s page 79 + + + 3036 04b8 B5F85020 ldrh r2, [r5, #80] + 3037 04bc 15FA82F2 uxtah r2, r5, r2 + 3038 .LVL376: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3039 .loc 1 497 11 discriminator 16 view .LVU1038 + 3040 04c0 02EBC303 add r3, r2, r3, lsl #3 + 3041 .LVL377: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3042 .loc 1 497 11 discriminator 16 view .LVU1039 + 3043 04c4 B2B2 uxth r2, r6 + 3044 .LVL378: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3045 .loc 1 497 11 is_stmt 0 discriminator 16 view .LVU1040 + 3046 04c6 A3F80224 strh r2, [r3, #1026] @ movhi + 3047 .LVL379: + 3048 .L114: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3049 .loc 1 497 11 discriminator 16 view .LVU1041 + 3050 .LBE97: + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3051 .loc 1 497 11 is_stmt 1 discriminator 18 view .LVU1042 + 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pmabuffer = ep->pmaaddr0; + 3052 .loc 1 497 11 discriminator 18 view .LVU1043 + 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3053 .loc 1 498 11 discriminator 18 view .LVU1044 + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3054 .loc 1 501 11 discriminator 18 view .LVU1045 + 3055 04ca B3B2 uxth r3, r6 + 3056 04cc 2289 ldrh r2, [r4, #8] + 3057 04ce 6169 ldr r1, [r4, #20] + 3058 04d0 2846 mov r0, r5 + 3059 .LVL380: + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3060 .loc 1 501 11 is_stmt 0 discriminator 18 view .LVU1046 + 3061 04d2 FFF7FEFF bl USB_WritePMA + 3062 .LVL381: + 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3063 .loc 1 501 11 discriminator 18 view .LVU1047 + 3064 04d6 09E6 b .L72 + 3065 .LVL382: + 3066 .L119: + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len = 0U; + 3067 .loc 1 521 9 is_stmt 1 view .LVU1048 + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3068 .loc 1 522 9 view .LVU1049 + 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3069 .loc 1 522 22 is_stmt 0 view .LVU1050 + 3070 04d8 0022 movs r2, #0 + 3071 04da 8A61 str r2, [r1, #24] + 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len = 0U; + 3072 .loc 1 521 13 view .LVU1051 + 3073 04dc 1A46 mov r2, r3 + 3074 04de A0E5 b .L120 + 3075 .LVL383: + 3076 .L121: + 3077 .LBB98: + 3078 .LBB63: + ARM GAS /tmp/cc2t6zYn.s page 80 + + + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3079 .loc 1 525 7 is_stmt 1 discriminator 2 view .LVU1052 + 3080 04e0 8AB9 cbnz r2, .L124 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3081 .loc 1 525 7 discriminator 7 view .LVU1053 + 3082 04e2 B3F80624 ldrh r2, [r3, #1030] + 3083 .LVL384: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3084 .loc 1 525 7 is_stmt 0 discriminator 7 view .LVU1054 + 3085 04e6 92B2 uxth r2, r2 + 3086 04e8 22F4F842 bic r2, r2, #31744 + 3087 04ec 92B2 uxth r2, r2 + 3088 04ee A3F80624 strh r2, [r3, #1030] @ movhi + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3089 .loc 1 525 7 is_stmt 1 discriminator 7 view .LVU1055 + 3090 04f2 B3F80624 ldrh r2, [r3, #1030] + 3091 04f6 6FEA4242 mvn r2, r2, lsl #17 + 3092 04fa 6FEA5242 mvn r2, r2, lsr #17 + 3093 04fe 92B2 uxth r2, r2 + 3094 0500 A3F80624 strh r2, [r3, #1030] @ movhi + 3095 0504 A3E5 b .L123 + 3096 .LVL385: + 3097 .L124: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3098 .loc 1 525 7 discriminator 8 view .LVU1056 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3099 .loc 1 525 7 discriminator 8 view .LVU1057 + 3100 0506 5108 lsrs r1, r2, #1 + 3101 .LVL386: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3102 .loc 1 525 7 discriminator 8 view .LVU1058 + 3103 0508 12F0010F tst r2, #1 + 3104 050c 00D0 beq .L125 + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3105 .loc 1 525 7 discriminator 10 view .LVU1059 + 3106 050e 0131 adds r1, r1, #1 + 3107 .LVL387: + 3108 .L125: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3109 .loc 1 525 7 discriminator 12 view .LVU1060 + 3110 0510 8902 lsls r1, r1, #10 + 3111 .LVL388: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3112 .loc 1 525 7 is_stmt 0 discriminator 12 view .LVU1061 + 3113 0512 89B2 uxth r1, r1 + 3114 0514 A3F80614 strh r1, [r3, #1030] @ movhi + 3115 0518 99E5 b .L123 + 3116 .LVL389: + 3117 .L118: + 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3118 .loc 1 525 7 discriminator 12 view .LVU1062 + 3119 .LBE63: + 3120 .LBE98: + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3121 .loc 1 532 7 is_stmt 1 view .LVU1063 + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3122 .loc 1 532 13 is_stmt 0 view .LVU1064 + ARM GAS /tmp/cc2t6zYn.s page 81 + + + 3123 051a CB78 ldrb r3, [r1, #3] @ zero_extendqisi2 + 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3124 .loc 1 532 10 view .LVU1065 + 3125 051c 022B cmp r3, #2 + 3126 051e 3BD0 beq .L160 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3127 .loc 1 551 12 is_stmt 1 view .LVU1066 + 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3128 .loc 1 551 15 is_stmt 0 view .LVU1067 + 3129 0520 012B cmp r3, #1 + 3130 0522 40F01B81 bne .L151 + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3131 .loc 1 554 9 is_stmt 1 view .LVU1068 + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3132 .loc 1 554 15 is_stmt 0 view .LVU1069 + 3133 0526 8969 ldr r1, [r1, #24] + 3134 .LVL390: + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3135 .loc 1 554 30 view .LVU1070 + 3136 0528 2369 ldr r3, [r4, #16] + 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3137 .loc 1 554 12 view .LVU1071 + 3138 052a 9942 cmp r1, r3 + 3139 052c 40F2CA80 bls .L139 + 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len -= len; + 3140 .loc 1 556 11 is_stmt 1 view .LVU1072 + 3141 .LVL391: + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3142 .loc 1 557 11 view .LVU1073 + 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3143 .loc 1 557 24 is_stmt 0 view .LVU1074 + 3144 0530 C91A subs r1, r1, r3 + 3145 0532 A161 str r1, [r4, #24] + 3146 .L140: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3147 .loc 1 564 9 is_stmt 1 view .LVU1075 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3148 .loc 1 564 9 view .LVU1076 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3149 .loc 1 564 9 view .LVU1077 + 3150 0534 AAB9 cbnz r2, .L141 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3151 .loc 1 564 9 discriminator 1 view .LVU1078 + 3152 .LBB99: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3153 .loc 1 564 9 discriminator 1 view .LVU1079 + 3154 .LVL392: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3155 .loc 1 564 9 discriminator 1 view .LVU1080 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3156 .loc 1 564 9 discriminator 1 view .LVU1081 + 3157 0536 B5F85020 ldrh r2, [r5, #80] + 3158 053a 15FA82F2 uxtah r2, r5, r2 + 3159 .LVL393: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3160 .loc 1 564 9 discriminator 1 view .LVU1082 + 3161 053e 2178 ldrb r1, [r4] @ zero_extendqisi2 + ARM GAS /tmp/cc2t6zYn.s page 82 + + + 3162 0540 02EBC102 add r2, r2, r1, lsl #3 + 3163 .LVL394: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3164 .loc 1 564 9 discriminator 1 view .LVU1083 + 3165 .LBB100: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3166 .loc 1 564 9 discriminator 1 view .LVU1084 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3167 .loc 1 564 9 discriminator 1 view .LVU1085 + 3168 0544 3E2B cmp r3, #62 + 3169 0546 40F2C180 bls .L142 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3170 .loc 1 564 9 discriminator 3 view .LVU1086 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3171 .loc 1 564 9 discriminator 3 view .LVU1087 + 3172 054a 5909 lsrs r1, r3, #5 + 3173 .LVL395: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3174 .loc 1 564 9 discriminator 3 view .LVU1088 + 3175 054c 13F01F0F tst r3, #31 + 3176 0550 00D1 bne .L143 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3177 .loc 1 564 9 discriminator 5 view .LVU1089 + 3178 0552 0139 subs r1, r1, #1 + 3179 .LVL396: + 3180 .L143: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3181 .loc 1 564 9 discriminator 7 view .LVU1090 + 3182 0554 6FEAC161 mvn r1, r1, lsl #27 + 3183 .LVL397: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3184 .loc 1 564 9 is_stmt 0 discriminator 7 view .LVU1091 + 3185 0558 6FEA5141 mvn r1, r1, lsr #17 + 3186 055c 89B2 uxth r1, r1 + 3187 055e A2F80214 strh r1, [r2, #1026] @ movhi + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3188 .loc 1 564 9 is_stmt 1 discriminator 7 view .LVU1092 + 3189 .LVL398: + 3190 .L141: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3191 .loc 1 564 9 is_stmt 0 discriminator 7 view .LVU1093 + 3192 .LBE100: + 3193 .LBE99: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3194 .loc 1 564 9 is_stmt 1 discriminator 18 view .LVU1094 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3195 .loc 1 564 9 discriminator 18 view .LVU1095 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3196 .loc 1 564 9 discriminator 18 view .LVU1096 + 3197 .LBB102: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3198 .loc 1 564 9 discriminator 18 view .LVU1097 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3199 .loc 1 564 9 discriminator 18 view .LVU1098 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3200 .loc 1 564 9 discriminator 18 view .LVU1099 + 3201 0562 6278 ldrb r2, [r4, #1] @ zero_extendqisi2 + ARM GAS /tmp/cc2t6zYn.s page 83 + + + 3202 0564 002A cmp r2, #0 + 3203 0566 40F0EB80 bne .L146 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3204 .loc 1 564 9 discriminator 19 view .LVU1100 + 3205 .LBB103: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3206 .loc 1 564 9 discriminator 19 view .LVU1101 + 3207 .LVL399: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3208 .loc 1 564 9 discriminator 19 view .LVU1102 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3209 .loc 1 564 9 discriminator 19 view .LVU1103 + 3210 056a B5F85020 ldrh r2, [r5, #80] + 3211 056e 15FA82F2 uxtah r2, r5, r2 + 3212 .LVL400: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3213 .loc 1 564 9 discriminator 19 view .LVU1104 + 3214 0572 2178 ldrb r1, [r4] @ zero_extendqisi2 + 3215 0574 02EBC102 add r2, r2, r1, lsl #3 + 3216 .LVL401: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3217 .loc 1 564 9 discriminator 19 view .LVU1105 + 3218 .LBB104: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3219 .loc 1 564 9 discriminator 19 view .LVU1106 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3220 .loc 1 564 9 discriminator 19 view .LVU1107 + 3221 0578 3E2B cmp r3, #62 + 3222 057a 40F2C480 bls .L147 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3223 .loc 1 564 9 discriminator 21 view .LVU1108 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3224 .loc 1 564 9 discriminator 21 view .LVU1109 + 3225 057e 5909 lsrs r1, r3, #5 + 3226 .LVL402: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3227 .loc 1 564 9 discriminator 21 view .LVU1110 + 3228 0580 13F01F0F tst r3, #31 + 3229 0584 00D1 bne .L148 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3230 .loc 1 564 9 discriminator 23 view .LVU1111 + 3231 0586 0139 subs r1, r1, #1 + 3232 .LVL403: + 3233 .L148: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3234 .loc 1 564 9 discriminator 25 view .LVU1112 + 3235 0588 6FEAC163 mvn r3, r1, lsl #27 + 3236 .LVL404: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3237 .loc 1 564 9 is_stmt 0 discriminator 25 view .LVU1113 + 3238 058c 6FEA5343 mvn r3, r3, lsr #17 + 3239 0590 9BB2 uxth r3, r3 + 3240 0592 A2F80634 strh r3, [r2, #1030] @ movhi + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3241 .loc 1 564 9 is_stmt 1 discriminator 25 view .LVU1114 + 3242 0596 5AE5 b .L123 + 3243 .LVL405: + ARM GAS /tmp/cc2t6zYn.s page 84 + + + 3244 .L160: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3245 .loc 1 564 9 is_stmt 0 discriminator 25 view .LVU1115 + 3246 .LBE104: + 3247 .LBE103: + 3248 .LBE102: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3249 .loc 1 534 9 is_stmt 1 view .LVU1116 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3250 .loc 1 534 9 view .LVU1117 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3251 .loc 1 534 9 view .LVU1118 + 3252 0598 AAB9 cbnz r2, .L127 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3253 .loc 1 534 9 discriminator 1 view .LVU1119 + 3254 .LBB107: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3255 .loc 1 534 9 discriminator 1 view .LVU1120 + 3256 .LVL406: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3257 .loc 1 534 9 discriminator 1 view .LVU1121 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3258 .loc 1 534 9 discriminator 1 view .LVU1122 + 3259 059a B0F85030 ldrh r3, [r0, #80] + 3260 059e 10FA83F3 uxtah r3, r0, r3 + 3261 .LVL407: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3262 .loc 1 534 9 discriminator 1 view .LVU1123 + 3263 05a2 0A78 ldrb r2, [r1] @ zero_extendqisi2 + 3264 05a4 03EBC203 add r3, r3, r2, lsl #3 + 3265 .LVL408: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3266 .loc 1 534 9 discriminator 1 view .LVU1124 + 3267 .LBB108: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3268 .loc 1 534 9 discriminator 1 view .LVU1125 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3269 .loc 1 534 9 discriminator 1 view .LVU1126 + 3270 05a8 0969 ldr r1, [r1, #16] + 3271 .LVL409: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3272 .loc 1 534 9 is_stmt 0 discriminator 1 view .LVU1127 + 3273 05aa 3E29 cmp r1, #62 + 3274 05ac 25D9 bls .L128 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3275 .loc 1 534 9 is_stmt 1 discriminator 3 view .LVU1128 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3276 .loc 1 534 9 discriminator 3 view .LVU1129 + 3277 05ae 4A09 lsrs r2, r1, #5 + 3278 .LVL410: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3279 .loc 1 534 9 discriminator 3 view .LVU1130 + 3280 05b0 11F01F0F tst r1, #31 + 3281 05b4 00D1 bne .L129 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3282 .loc 1 534 9 discriminator 5 view .LVU1131 + 3283 05b6 013A subs r2, r2, #1 + ARM GAS /tmp/cc2t6zYn.s page 85 + + + 3284 .LVL411: + 3285 .L129: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3286 .loc 1 534 9 discriminator 7 view .LVU1132 + 3287 05b8 6FEAC262 mvn r2, r2, lsl #27 + 3288 .LVL412: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3289 .loc 1 534 9 is_stmt 0 discriminator 7 view .LVU1133 + 3290 05bc 6FEA5242 mvn r2, r2, lsr #17 + 3291 05c0 92B2 uxth r2, r2 + 3292 05c2 A3F80224 strh r2, [r3, #1026] @ movhi + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3293 .loc 1 534 9 is_stmt 1 discriminator 7 view .LVU1134 + 3294 .LVL413: + 3295 .L127: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3296 .loc 1 534 9 is_stmt 0 discriminator 7 view .LVU1135 + 3297 .LBE108: + 3298 .LBE107: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3299 .loc 1 534 9 is_stmt 1 discriminator 18 view .LVU1136 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3300 .loc 1 534 9 discriminator 18 view .LVU1137 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3301 .loc 1 534 9 discriminator 18 view .LVU1138 + 3302 .LBB110: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3303 .loc 1 534 9 discriminator 18 view .LVU1139 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3304 .loc 1 534 9 discriminator 18 view .LVU1140 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3305 .loc 1 534 9 discriminator 18 view .LVU1141 + 3306 05c6 6378 ldrb r3, [r4, #1] @ zero_extendqisi2 + 3307 05c8 002B cmp r3, #0 + 3308 05ca 50D1 bne .L132 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3309 .loc 1 534 9 discriminator 19 view .LVU1142 + 3310 .LBB111: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3311 .loc 1 534 9 discriminator 19 view .LVU1143 + 3312 .LVL414: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3313 .loc 1 534 9 discriminator 19 view .LVU1144 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3314 .loc 1 534 9 discriminator 19 view .LVU1145 + 3315 05cc B5F85030 ldrh r3, [r5, #80] + 3316 05d0 15FA83F3 uxtah r3, r5, r3 + 3317 .LVL415: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3318 .loc 1 534 9 discriminator 19 view .LVU1146 + 3319 05d4 2278 ldrb r2, [r4] @ zero_extendqisi2 + 3320 05d6 03EBC203 add r3, r3, r2, lsl #3 + 3321 .LVL416: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3322 .loc 1 534 9 discriminator 19 view .LVU1147 + 3323 .LBB112: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + ARM GAS /tmp/cc2t6zYn.s page 86 + + + 3324 .loc 1 534 9 discriminator 19 view .LVU1148 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3325 .loc 1 534 9 discriminator 19 view .LVU1149 + 3326 05da 2169 ldr r1, [r4, #16] + 3327 05dc 3E29 cmp r1, #62 + 3328 05de 29D9 bls .L133 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3329 .loc 1 534 9 discriminator 21 view .LVU1150 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3330 .loc 1 534 9 discriminator 21 view .LVU1151 + 3331 05e0 4A09 lsrs r2, r1, #5 + 3332 .LVL417: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3333 .loc 1 534 9 discriminator 21 view .LVU1152 + 3334 05e2 11F01F0F tst r1, #31 + 3335 05e6 00D1 bne .L134 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3336 .loc 1 534 9 discriminator 23 view .LVU1153 + 3337 05e8 013A subs r2, r2, #1 + 3338 .LVL418: + 3339 .L134: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3340 .loc 1 534 9 discriminator 25 view .LVU1154 + 3341 05ea 6FEAC262 mvn r2, r2, lsl #27 + 3342 .LVL419: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3343 .loc 1 534 9 is_stmt 0 discriminator 25 view .LVU1155 + 3344 05ee 6FEA5242 mvn r2, r2, lsr #17 + 3345 05f2 92B2 uxth r2, r2 + 3346 05f4 A3F80624 strh r2, [r3, #1030] @ movhi + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3347 .loc 1 534 9 is_stmt 1 discriminator 25 view .LVU1156 + 3348 05f8 3BE0 b .L135 + 3349 .LVL420: + 3350 .L128: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3351 .loc 1 534 9 is_stmt 0 discriminator 25 view .LVU1157 + 3352 .LBE112: + 3353 .LBE111: + 3354 .LBE110: + 3355 .LBB115: + 3356 .LBB109: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3357 .loc 1 534 9 is_stmt 1 discriminator 4 view .LVU1158 + 3358 05fa 89B9 cbnz r1, .L130 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3359 .loc 1 534 9 discriminator 9 view .LVU1159 + 3360 05fc B3F80224 ldrh r2, [r3, #1026] + 3361 0600 92B2 uxth r2, r2 + 3362 0602 22F4F842 bic r2, r2, #31744 + 3363 0606 92B2 uxth r2, r2 + 3364 0608 A3F80224 strh r2, [r3, #1026] @ movhi + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3365 .loc 1 534 9 discriminator 9 view .LVU1160 + 3366 060c B3F80224 ldrh r2, [r3, #1026] + 3367 0610 6FEA4242 mvn r2, r2, lsl #17 + 3368 0614 6FEA5242 mvn r2, r2, lsr #17 + ARM GAS /tmp/cc2t6zYn.s page 87 + + + 3369 0618 92B2 uxth r2, r2 + 3370 061a A3F80224 strh r2, [r3, #1026] @ movhi + 3371 061e D2E7 b .L127 + 3372 .L130: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3373 .loc 1 534 9 discriminator 10 view .LVU1161 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3374 .loc 1 534 9 discriminator 10 view .LVU1162 + 3375 0620 4A08 lsrs r2, r1, #1 + 3376 .LVL421: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3377 .loc 1 534 9 discriminator 10 view .LVU1163 + 3378 0622 11F0010F tst r1, #1 + 3379 0626 00D0 beq .L131 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3380 .loc 1 534 9 discriminator 12 view .LVU1164 + 3381 0628 0132 adds r2, r2, #1 + 3382 .LVL422: + 3383 .L131: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3384 .loc 1 534 9 discriminator 14 view .LVU1165 + 3385 062a 9202 lsls r2, r2, #10 + 3386 .LVL423: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3387 .loc 1 534 9 is_stmt 0 discriminator 14 view .LVU1166 + 3388 062c 92B2 uxth r2, r2 + 3389 062e A3F80224 strh r2, [r3, #1026] @ movhi + 3390 0632 C8E7 b .L127 + 3391 .LVL424: + 3392 .L133: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3393 .loc 1 534 9 discriminator 14 view .LVU1167 + 3394 .LBE109: + 3395 .LBE115: + 3396 .LBB116: + 3397 .LBB114: + 3398 .LBB113: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3399 .loc 1 534 9 is_stmt 1 discriminator 22 view .LVU1168 + 3400 0634 89B9 cbnz r1, .L136 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3401 .loc 1 534 9 discriminator 27 view .LVU1169 + 3402 0636 B3F80624 ldrh r2, [r3, #1030] + 3403 063a 92B2 uxth r2, r2 + 3404 063c 22F4F842 bic r2, r2, #31744 + 3405 0640 92B2 uxth r2, r2 + 3406 0642 A3F80624 strh r2, [r3, #1030] @ movhi + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3407 .loc 1 534 9 discriminator 27 view .LVU1170 + 3408 0646 B3F80624 ldrh r2, [r3, #1030] + 3409 064a 6FEA4242 mvn r2, r2, lsl #17 + 3410 064e 6FEA5242 mvn r2, r2, lsr #17 + 3411 0652 92B2 uxth r2, r2 + 3412 0654 A3F80624 strh r2, [r3, #1030] @ movhi + 3413 0658 0BE0 b .L135 + 3414 .L136: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + ARM GAS /tmp/cc2t6zYn.s page 88 + + + 3415 .loc 1 534 9 discriminator 28 view .LVU1171 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3416 .loc 1 534 9 discriminator 28 view .LVU1172 + 3417 065a 4A08 lsrs r2, r1, #1 + 3418 .LVL425: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3419 .loc 1 534 9 discriminator 28 view .LVU1173 + 3420 065c 11F0010F tst r1, #1 + 3421 0660 00D0 beq .L137 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3422 .loc 1 534 9 discriminator 30 view .LVU1174 + 3423 0662 0132 adds r2, r2, #1 + 3424 .LVL426: + 3425 .L137: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3426 .loc 1 534 9 discriminator 32 view .LVU1175 + 3427 0664 9202 lsls r2, r2, #10 + 3428 .LVL427: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3429 .loc 1 534 9 is_stmt 0 discriminator 32 view .LVU1176 + 3430 0666 92B2 uxth r2, r2 + 3431 0668 A3F80624 strh r2, [r3, #1030] @ movhi + 3432 066c 01E0 b .L135 + 3433 .LVL428: + 3434 .L132: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3435 .loc 1 534 9 discriminator 32 view .LVU1177 + 3436 .LBE113: + 3437 .LBE114: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3438 .loc 1 534 9 is_stmt 1 discriminator 20 view .LVU1178 + 3439 066e 012B cmp r3, #1 + 3440 0670 1DD0 beq .L161 + 3441 .LVL429: + 3442 .L135: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3443 .loc 1 534 9 is_stmt 0 discriminator 20 view .LVU1179 + 3444 .LBE116: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3445 .loc 1 534 9 is_stmt 1 discriminator 36 view .LVU1180 + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3446 .loc 1 534 9 discriminator 36 view .LVU1181 + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3447 .loc 1 537 9 discriminator 36 view .LVU1182 + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3448 .loc 1 537 15 is_stmt 0 discriminator 36 view .LVU1183 + 3449 0672 E369 ldr r3, [r4, #28] + 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3450 .loc 1 537 12 discriminator 36 view .LVU1184 + 3451 0674 002B cmp r3, #0 + 3452 0676 3FF4EAAC beq .L123 + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3453 .loc 1 540 11 is_stmt 1 view .LVU1185 + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3454 .loc 1 540 20 is_stmt 0 view .LVU1186 + 3455 067a 2278 ldrb r2, [r4] @ zero_extendqisi2 + 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + ARM GAS /tmp/cc2t6zYn.s page 89 + + + 3456 .loc 1 540 18 view .LVU1187 + 3457 067c 35F82210 ldrh r1, [r5, r2, lsl #2] + 3458 .LVL430: + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** (((wEPVal & USB_EP_DTOG_RX) == 0U) && ((wEPVal & USB_EP_DTOG_TX) == 0U))) + 3459 .loc 1 543 11 is_stmt 1 view .LVU1188 + 3460 0680 44F24003 movw r3, #16448 + 3461 0684 03EA0100 and r0, r3, r1 + 3462 .LVL431: + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** (((wEPVal & USB_EP_DTOG_RX) == 0U) && ((wEPVal & USB_EP_DTOG_TX) == 0U))) + 3463 .loc 1 543 14 is_stmt 0 view .LVU1189 + 3464 0688 8B43 bics r3, r3, r1 + 3465 068a 02D0 beq .L138 + 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** (((wEPVal & USB_EP_DTOG_RX) == 0U) && ((wEPVal & USB_EP_DTOG_TX) == 0U))) + 3466 .loc 1 543 88 discriminator 1 view .LVU1190 + 3467 068c 0028 cmp r0, #0 + 3468 068e 7FF4DEAC bne .L123 + 3469 .L138: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3470 .loc 1 546 13 is_stmt 1 discriminator 1 view .LVU1191 + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3471 .loc 1 546 13 discriminator 1 view .LVU1192 + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3472 .loc 1 546 13 discriminator 1 view .LVU1193 + 3473 .LBB117: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3474 .loc 1 546 13 discriminator 1 view .LVU1194 + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3475 .loc 1 546 13 discriminator 1 view .LVU1195 + 3476 0692 35F82230 ldrh r3, [r5, r2, lsl #2] + 3477 0696 9BB2 uxth r3, r3 + 3478 0698 23F4E043 bic r3, r3, #28672 + 3479 069c 23F07003 bic r3, r3, #112 + 3480 .LVL432: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3481 .loc 1 546 13 discriminator 1 view .LVU1196 + 3482 06a0 43F40043 orr r3, r3, #32768 + 3483 .LVL433: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3484 .loc 1 546 13 is_stmt 0 discriminator 1 view .LVU1197 + 3485 06a4 43F0C003 orr r3, r3, #192 + 3486 06a8 25F82230 strh r3, [r5, r2, lsl #2] @ movhi + 3487 .LBE117: + 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3488 .loc 1 546 13 is_stmt 1 discriminator 1 view .LVU1198 + 3489 06ac CFE4 b .L123 + 3490 .LVL434: + 3491 .L161: + 3492 .LBB118: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3493 .loc 1 534 9 discriminator 34 view .LVU1199 + 3494 06ae B5F85030 ldrh r3, [r5, #80] + 3495 06b2 15FA83F3 uxtah r3, r5, r3 + 3496 .LVL435: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3497 .loc 1 534 9 discriminator 34 view .LVU1200 + 3498 06b6 2278 ldrb r2, [r4] @ zero_extendqisi2 + 3499 06b8 03EBC203 add r3, r3, r2, lsl #3 + ARM GAS /tmp/cc2t6zYn.s page 90 + + + 3500 .LVL436: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3501 .loc 1 534 9 discriminator 34 view .LVU1201 + 3502 06bc 228A ldrh r2, [r4, #16] + 3503 06be A3F80624 strh r2, [r3, #1030] @ movhi + 3504 06c2 D6E7 b .L135 + 3505 .LVL437: + 3506 .L139: + 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 3507 .loc 1 534 9 is_stmt 0 discriminator 34 view .LVU1202 + 3508 .LBE118: + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len = 0U; + 3509 .loc 1 561 11 is_stmt 1 view .LVU1203 + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3510 .loc 1 562 11 view .LVU1204 + 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3511 .loc 1 562 24 is_stmt 0 view .LVU1205 + 3512 06c4 0023 movs r3, #0 + 3513 06c6 A361 str r3, [r4, #24] + 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** ep->xfer_len = 0U; + 3514 .loc 1 561 15 view .LVU1206 + 3515 06c8 0B46 mov r3, r1 + 3516 06ca 33E7 b .L140 + 3517 .LVL438: + 3518 .L142: + 3519 .LBB119: + 3520 .LBB101: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3521 .loc 1 564 9 is_stmt 1 discriminator 4 view .LVU1207 + 3522 06cc 8BB9 cbnz r3, .L144 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3523 .loc 1 564 9 discriminator 9 view .LVU1208 + 3524 06ce B2F80214 ldrh r1, [r2, #1026] + 3525 06d2 89B2 uxth r1, r1 + 3526 06d4 21F4F841 bic r1, r1, #31744 + 3527 06d8 89B2 uxth r1, r1 + 3528 06da A2F80214 strh r1, [r2, #1026] @ movhi + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3529 .loc 1 564 9 discriminator 9 view .LVU1209 + 3530 06de B2F80214 ldrh r1, [r2, #1026] + 3531 06e2 6FEA4141 mvn r1, r1, lsl #17 + 3532 06e6 6FEA5141 mvn r1, r1, lsr #17 + 3533 06ea 89B2 uxth r1, r1 + 3534 06ec A2F80214 strh r1, [r2, #1026] @ movhi + 3535 06f0 37E7 b .L141 + 3536 .L144: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3537 .loc 1 564 9 discriminator 10 view .LVU1210 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3538 .loc 1 564 9 discriminator 10 view .LVU1211 + 3539 06f2 5908 lsrs r1, r3, #1 + 3540 .LVL439: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3541 .loc 1 564 9 discriminator 10 view .LVU1212 + 3542 06f4 13F0010F tst r3, #1 + 3543 06f8 00D0 beq .L145 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + ARM GAS /tmp/cc2t6zYn.s page 91 + + + 3544 .loc 1 564 9 discriminator 12 view .LVU1213 + 3545 06fa 0131 adds r1, r1, #1 + 3546 .LVL440: + 3547 .L145: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3548 .loc 1 564 9 discriminator 14 view .LVU1214 + 3549 06fc 8902 lsls r1, r1, #10 + 3550 .LVL441: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3551 .loc 1 564 9 is_stmt 0 discriminator 14 view .LVU1215 + 3552 06fe 89B2 uxth r1, r1 + 3553 0700 A2F80214 strh r1, [r2, #1026] @ movhi + 3554 0704 2DE7 b .L141 + 3555 .LVL442: + 3556 .L147: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3557 .loc 1 564 9 discriminator 14 view .LVU1216 + 3558 .LBE101: + 3559 .LBE119: + 3560 .LBB120: + 3561 .LBB106: + 3562 .LBB105: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3563 .loc 1 564 9 is_stmt 1 discriminator 22 view .LVU1217 + 3564 0706 8BB9 cbnz r3, .L149 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3565 .loc 1 564 9 discriminator 27 view .LVU1218 + 3566 0708 B2F80634 ldrh r3, [r2, #1030] + 3567 .LVL443: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3568 .loc 1 564 9 is_stmt 0 discriminator 27 view .LVU1219 + 3569 070c 9BB2 uxth r3, r3 + 3570 070e 23F4F843 bic r3, r3, #31744 + 3571 0712 9BB2 uxth r3, r3 + 3572 0714 A2F80634 strh r3, [r2, #1030] @ movhi + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3573 .loc 1 564 9 is_stmt 1 discriminator 27 view .LVU1220 + 3574 0718 B2F80634 ldrh r3, [r2, #1030] + 3575 071c 6FEA4343 mvn r3, r3, lsl #17 + 3576 0720 6FEA5343 mvn r3, r3, lsr #17 + 3577 0724 9BB2 uxth r3, r3 + 3578 0726 A2F80634 strh r3, [r2, #1030] @ movhi + 3579 072a 90E4 b .L123 + 3580 .LVL444: + 3581 .L149: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3582 .loc 1 564 9 discriminator 28 view .LVU1221 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3583 .loc 1 564 9 discriminator 28 view .LVU1222 + 3584 072c 5908 lsrs r1, r3, #1 + 3585 .LVL445: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3586 .loc 1 564 9 discriminator 28 view .LVU1223 + 3587 072e 13F0010F tst r3, #1 + 3588 0732 00D0 beq .L150 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3589 .loc 1 564 9 discriminator 30 view .LVU1224 + ARM GAS /tmp/cc2t6zYn.s page 92 + + + 3590 0734 0131 adds r1, r1, #1 + 3591 .LVL446: + 3592 .L150: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3593 .loc 1 564 9 discriminator 32 view .LVU1225 + 3594 0736 8B02 lsls r3, r1, #10 + 3595 .LVL447: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3596 .loc 1 564 9 is_stmt 0 discriminator 32 view .LVU1226 + 3597 0738 9BB2 uxth r3, r3 + 3598 073a A2F80634 strh r3, [r2, #1030] @ movhi + 3599 073e 86E4 b .L123 + 3600 .LVL448: + 3601 .L146: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3602 .loc 1 564 9 discriminator 32 view .LVU1227 + 3603 .LBE105: + 3604 .LBE106: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3605 .loc 1 564 9 is_stmt 1 discriminator 20 view .LVU1228 + 3606 0740 012A cmp r2, #1 + 3607 0742 7FF484AC bne .L123 + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3608 .loc 1 564 9 discriminator 34 view .LVU1229 + 3609 0746 B5F85020 ldrh r2, [r5, #80] + 3610 074a 15FA82F2 uxtah r2, r5, r2 + 3611 .LVL449: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3612 .loc 1 564 9 discriminator 34 view .LVU1230 + 3613 074e 2178 ldrb r1, [r4] @ zero_extendqisi2 + 3614 0750 02EBC102 add r2, r2, r1, lsl #3 + 3615 .LVL450: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3616 .loc 1 564 9 discriminator 34 view .LVU1231 + 3617 0754 9BB2 uxth r3, r3 + 3618 .LVL451: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3619 .loc 1 564 9 is_stmt 0 discriminator 34 view .LVU1232 + 3620 0756 A2F80634 strh r3, [r2, #1030] @ movhi + 3621 075a 78E4 b .L123 + 3622 .LVL452: + 3623 .L151: + 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3624 .loc 1 564 9 discriminator 34 view .LVU1233 + 3625 .LBE120: + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3626 .loc 1 568 16 view .LVU1234 + 3627 075c 0120 movs r0, #1 + 3628 .LVL453: + 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3629 .loc 1 568 16 view .LVU1235 + 3630 075e 87E4 b .L117 + 3631 .cfi_endproc + 3632 .LFE336: + 3634 .section .text.USB_ReadPMA,"ax",%progbits + 3635 .align 1 + 3636 .global USB_ReadPMA + ARM GAS /tmp/cc2t6zYn.s page 93 + + + 3637 .syntax unified + 3638 .thumb + 3639 .thumb_func + 3641 USB_ReadPMA: + 3642 .LVL454: + 3643 .LFB347: + 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** /** + 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @brief Copy data from packet memory area (PMA) to user memory buffer + 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param USBx USB peripheral instance register address. + 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param pbUsrBuf pointer to user memory area. + 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param wPMABufAddr address into PMA. + 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @param wNBytes no. of bytes to be copied. + 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** * @retval None + 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** */ + 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** void USB_ReadPMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes) + 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3644 .loc 1 778 1 is_stmt 1 view -0 + 3645 .cfi_startproc + 3646 @ args = 0, pretend = 0, frame = 0 + 3647 @ frame_needed = 0, uses_anonymous_args = 0 + 3648 @ link register save eliminated. + 3649 .loc 1 778 1 is_stmt 0 view .LVU1237 + 3650 0000 10B4 push {r4} + 3651 .LCFI6: + 3652 .cfi_def_cfa_offset 4 + 3653 .cfi_offset 4, -4 + 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t n = (uint32_t)wNBytes >> 1; + 3654 .loc 1 779 3 is_stmt 1 view .LVU1238 + 3655 .loc 1 779 34 is_stmt 0 view .LVU1239 + 3656 0002 5C08 lsrs r4, r3, #1 + 3657 .LVL455: + 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t BaseAddr = (uint32_t)USBx; + 3658 .loc 1 780 3 is_stmt 1 view .LVU1240 + 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t i; + 3659 .loc 1 781 3 view .LVU1241 + 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint32_t temp; + 3660 .loc 1 782 3 view .LVU1242 + 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** __IO uint16_t *pdwVal; + 3661 .loc 1 783 3 view .LVU1243 + 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** uint8_t *pBuf = pbUsrBuf; + 3662 .loc 1 784 3 view .LVU1244 + 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pdwVal = (__IO uint16_t *)(BaseAddr + 0x400U + ((uint32_t)wPMABufAddr * PMA_ACCESS)); + 3663 .loc 1 786 3 view .LVU1245 + 3664 .loc 1 786 48 is_stmt 0 view .LVU1246 + 3665 0004 0244 add r2, r2, r0 + 3666 .LVL456: + 3667 .loc 1 786 48 view .LVU1247 + 3668 0006 02F58062 add r2, r2, #1024 + 3669 .LVL457: + 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** for (i = n; i != 0U; i--) + 3670 .loc 1 788 3 is_stmt 1 view .LVU1248 + 3671 .loc 1 788 3 is_stmt 0 view .LVU1249 + 3672 000a 07E0 b .L163 + 3673 .LVL458: + ARM GAS /tmp/cc2t6zYn.s page 94 + + + 3674 .L164: + 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** temp = *(__IO uint16_t *)pdwVal; + 3675 .loc 1 790 5 is_stmt 1 discriminator 3 view .LVU1250 + 3676 .loc 1 790 12 is_stmt 0 discriminator 3 view .LVU1251 + 3677 000c 32F8020B ldrh r0, [r2], #2 + 3678 .LVL459: + 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pdwVal++; + 3679 .loc 1 791 5 is_stmt 1 discriminator 3 view .LVU1252 + 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** *pBuf = (uint8_t)((temp >> 0) & 0xFFU); + 3680 .loc 1 792 5 discriminator 3 view .LVU1253 + 3681 .loc 1 792 11 is_stmt 0 discriminator 3 view .LVU1254 + 3682 0010 0870 strb r0, [r1] + 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pBuf++; + 3683 .loc 1 793 5 is_stmt 1 discriminator 3 view .LVU1255 + 3684 .LVL460: + 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** *pBuf = (uint8_t)((temp >> 8) & 0xFFU); + 3685 .loc 1 794 5 discriminator 3 view .LVU1256 + 3686 .loc 1 794 13 is_stmt 0 discriminator 3 view .LVU1257 + 3687 0012 C0F30720 ubfx r0, r0, #8, #8 + 3688 .LVL461: + 3689 .loc 1 794 11 discriminator 3 view .LVU1258 + 3690 0016 4870 strb r0, [r1, #1] + 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pBuf++; + 3691 .loc 1 795 5 is_stmt 1 discriminator 3 view .LVU1259 + 3692 .loc 1 795 9 is_stmt 0 discriminator 3 view .LVU1260 + 3693 0018 0231 adds r1, r1, #2 + 3694 .LVL462: + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3695 .loc 1 788 25 is_stmt 1 discriminator 3 view .LVU1261 + 3696 001a 013C subs r4, r4, #1 + 3697 .LVL463: + 3698 .L163: + 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 3699 .loc 1 788 17 discriminator 1 view .LVU1262 + 3700 001c 002C cmp r4, #0 + 3701 001e F5D1 bne .L164 + 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #if PMA_ACCESS > 1U + 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** pdwVal++; + 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** #endif /* PMA_ACCESS */ + 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** + 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** if ((wNBytes % 2U) != 0U) + 3702 .loc 1 802 3 view .LVU1263 + 3703 .loc 1 802 6 is_stmt 0 view .LVU1264 + 3704 0020 13F0010F tst r3, #1 + 3705 0024 01D0 beq .L162 + 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** { + 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** temp = *pdwVal; + 3706 .loc 1 804 5 is_stmt 1 view .LVU1265 + 3707 .loc 1 804 12 is_stmt 0 view .LVU1266 + 3708 0026 1388 ldrh r3, [r2] + 3709 .LVL464: + 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** *pBuf = (uint8_t)((temp >> 0) & 0xFFU); + 3710 .loc 1 805 5 is_stmt 1 view .LVU1267 + 3711 .loc 1 805 11 is_stmt 0 view .LVU1268 + ARM GAS /tmp/cc2t6zYn.s page 95 + + + 3712 0028 0B70 strb r3, [r1] + 3713 .LVL465: + 3714 .L162: + 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_ll_usb.c **** } + 3715 .loc 1 807 1 view .LVU1269 + 3716 002a 5DF8044B ldr r4, [sp], #4 + 3717 .LCFI7: + 3718 .cfi_restore 4 + 3719 .cfi_def_cfa_offset 0 + 3720 .LVL466: + 3721 .loc 1 807 1 view .LVU1270 + 3722 002e 7047 bx lr + 3723 .cfi_endproc + 3724 .LFE347: + 3726 .text + 3727 .Letext0: + 3728 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 3729 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 3730 .file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 3731 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h" + ARM GAS /tmp/cc2t6zYn.s page 96 + + +DEFINED SYMBOLS + *ABS*:00000000 stm32g4xx_ll_usb.c + /tmp/cc2t6zYn.s:21 .text.USB_CoreInit:00000000 $t + /tmp/cc2t6zYn.s:27 .text.USB_CoreInit:00000000 USB_CoreInit + /tmp/cc2t6zYn.s:56 .text.USB_EnableGlobalInt:00000000 $t + /tmp/cc2t6zYn.s:62 .text.USB_EnableGlobalInt:00000000 USB_EnableGlobalInt + /tmp/cc2t6zYn.s:92 .text.USB_DisableGlobalInt:00000000 $t + /tmp/cc2t6zYn.s:98 .text.USB_DisableGlobalInt:00000000 USB_DisableGlobalInt + /tmp/cc2t6zYn.s:126 .text.USB_SetCurrentMode:00000000 $t + /tmp/cc2t6zYn.s:132 .text.USB_SetCurrentMode:00000000 USB_SetCurrentMode + /tmp/cc2t6zYn.s:152 .text.USB_DevInit:00000000 $t + /tmp/cc2t6zYn.s:158 .text.USB_DevInit:00000000 USB_DevInit + /tmp/cc2t6zYn.s:200 .text.USB_ActivateEndpoint:00000000 $t + /tmp/cc2t6zYn.s:206 .text.USB_ActivateEndpoint:00000000 USB_ActivateEndpoint + /tmp/cc2t6zYn.s:243 .text.USB_ActivateEndpoint:00000022 $d + /tmp/cc2t6zYn.s:247 .text.USB_ActivateEndpoint:00000026 $t + /tmp/cc2t6zYn.s:980 .text.USB_DeactivateEndpoint:00000000 $t + /tmp/cc2t6zYn.s:986 .text.USB_DeactivateEndpoint:00000000 USB_DeactivateEndpoint + /tmp/cc2t6zYn.s:1390 .text.USB_EPSetStall:00000000 $t + /tmp/cc2t6zYn.s:1396 .text.USB_EPSetStall:00000000 USB_EPSetStall + /tmp/cc2t6zYn.s:1470 .text.USB_EPClearStall:00000000 $t + /tmp/cc2t6zYn.s:1476 .text.USB_EPClearStall:00000000 USB_EPClearStall + /tmp/cc2t6zYn.s:1632 .text.USB_StopDevice:00000000 $t + /tmp/cc2t6zYn.s:1638 .text.USB_StopDevice:00000000 USB_StopDevice + /tmp/cc2t6zYn.s:1669 .text.USB_SetDevAddress:00000000 $t + /tmp/cc2t6zYn.s:1675 .text.USB_SetDevAddress:00000000 USB_SetDevAddress + /tmp/cc2t6zYn.s:1701 .text.USB_DevConnect:00000000 $t + /tmp/cc2t6zYn.s:1707 .text.USB_DevConnect:00000000 USB_DevConnect + /tmp/cc2t6zYn.s:1733 .text.USB_DevDisconnect:00000000 $t + /tmp/cc2t6zYn.s:1739 .text.USB_DevDisconnect:00000000 USB_DevDisconnect + /tmp/cc2t6zYn.s:1763 .text.USB_ReadInterrupts:00000000 $t + /tmp/cc2t6zYn.s:1769 .text.USB_ReadInterrupts:00000000 USB_ReadInterrupts + /tmp/cc2t6zYn.s:1792 .text.USB_ActivateRemoteWakeup:00000000 $t + /tmp/cc2t6zYn.s:1798 .text.USB_ActivateRemoteWakeup:00000000 USB_ActivateRemoteWakeup + /tmp/cc2t6zYn.s:1823 .text.USB_DeActivateRemoteWakeup:00000000 $t + /tmp/cc2t6zYn.s:1829 .text.USB_DeActivateRemoteWakeup:00000000 USB_DeActivateRemoteWakeup + /tmp/cc2t6zYn.s:1855 .text.USB_WritePMA:00000000 $t + /tmp/cc2t6zYn.s:1861 .text.USB_WritePMA:00000000 USB_WritePMA + /tmp/cc2t6zYn.s:1928 .text.USB_EPStartXfer:00000000 $t + /tmp/cc2t6zYn.s:1934 .text.USB_EPStartXfer:00000000 USB_EPStartXfer + /tmp/cc2t6zYn.s:3635 .text.USB_ReadPMA:00000000 $t + /tmp/cc2t6zYn.s:3641 .text.USB_ReadPMA:00000000 USB_ReadPMA + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/stm32g4xx_ll_usb.o b/squeow_sw/build/stm32g4xx_ll_usb.o new file mode 100644 index 0000000000000000000000000000000000000000..b6a19134f756571fb72dc881cb172c1866d97514 GIT binary patch literal 44576 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 QF@CSzY}emVo6Yn4f4br`PXGV_ literal 0 HcmV?d00001 diff --git a/squeow_sw/build/system_stm32g4xx.d b/squeow_sw/build/system_stm32g4xx.d new file mode 100644 index 0000000..d3a631c --- /dev/null +++ b/squeow_sw/build/system_stm32g4xx.d @@ -0,0 +1,73 @@ +build/system_stm32g4xx.o: Src/system_stm32g4xx.c \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: diff --git a/squeow_sw/build/system_stm32g4xx.lst b/squeow_sw/build/system_stm32g4xx.lst new file mode 100644 index 0000000..ef9d1bd --- /dev/null +++ b/squeow_sw/build/system_stm32g4xx.lst @@ -0,0 +1,570 @@ +ARM GAS /tmp/cc1Ld1Ft.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "system_stm32g4xx.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/system_stm32g4xx.c" + 20 .section .text.SystemInit,"ax",%progbits + 21 .align 1 + 22 .global SystemInit + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 SystemInit: + 28 .LFB329: + 1:Src/system_stm32g4xx.c **** /** + 2:Src/system_stm32g4xx.c **** ****************************************************************************** + 3:Src/system_stm32g4xx.c **** * @file system_stm32g4xx.c + 4:Src/system_stm32g4xx.c **** * @author MCD Application Team + 5:Src/system_stm32g4xx.c **** * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File + 6:Src/system_stm32g4xx.c **** * + 7:Src/system_stm32g4xx.c **** * This file provides two functions and one global variable to be called from + 8:Src/system_stm32g4xx.c **** * user application: + 9:Src/system_stm32g4xx.c **** * - SystemInit(): This function is called at startup just after reset and + 10:Src/system_stm32g4xx.c **** * before branch to main program. This call is made inside + 11:Src/system_stm32g4xx.c **** * the "startup_stm32g4xx.s" file. + 12:Src/system_stm32g4xx.c **** * + 13:Src/system_stm32g4xx.c **** * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + 14:Src/system_stm32g4xx.c **** * by the user application to setup the SysTick + 15:Src/system_stm32g4xx.c **** * timer or configure other parameters. + 16:Src/system_stm32g4xx.c **** * + 17:Src/system_stm32g4xx.c **** * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + 18:Src/system_stm32g4xx.c **** * be called whenever the core clock is changed + 19:Src/system_stm32g4xx.c **** * during program execution. + 20:Src/system_stm32g4xx.c **** * + 21:Src/system_stm32g4xx.c **** * After each device reset the HSI (16 MHz) is used as system clock source. + 22:Src/system_stm32g4xx.c **** * Then SystemInit() function is called, in "startup_stm32g4xx.s" file, to + 23:Src/system_stm32g4xx.c **** * configure the system clock before to branch to main program. + 24:Src/system_stm32g4xx.c **** * + 25:Src/system_stm32g4xx.c **** * This file configures the system clock as follows: + 26:Src/system_stm32g4xx.c **** *============================================================================= + 27:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 28:Src/system_stm32g4xx.c **** * System Clock source | HSI + 29:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 30:Src/system_stm32g4xx.c **** * SYSCLK(Hz) | 16000000 + ARM GAS /tmp/cc1Ld1Ft.s page 2 + + + 31:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 32:Src/system_stm32g4xx.c **** * HCLK(Hz) | 16000000 + 33:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 34:Src/system_stm32g4xx.c **** * AHB Prescaler | 1 + 35:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 36:Src/system_stm32g4xx.c **** * APB1 Prescaler | 1 + 37:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 38:Src/system_stm32g4xx.c **** * APB2 Prescaler | 1 + 39:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 40:Src/system_stm32g4xx.c **** * PLL_M | 1 + 41:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 42:Src/system_stm32g4xx.c **** * PLL_N | 16 + 43:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 44:Src/system_stm32g4xx.c **** * PLL_P | 7 + 45:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 46:Src/system_stm32g4xx.c **** * PLL_Q | 2 + 47:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 48:Src/system_stm32g4xx.c **** * PLL_R | 2 + 49:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 50:Src/system_stm32g4xx.c **** * Require 48MHz for RNG | Disabled + 51:Src/system_stm32g4xx.c **** *----------------------------------------------------------------------------- + 52:Src/system_stm32g4xx.c **** *============================================================================= + 53:Src/system_stm32g4xx.c **** ****************************************************************************** + 54:Src/system_stm32g4xx.c **** * @attention + 55:Src/system_stm32g4xx.c **** * + 56:Src/system_stm32g4xx.c **** * Copyright (c) 2019 STMicroelectronics. + 57:Src/system_stm32g4xx.c **** * All rights reserved. + 58:Src/system_stm32g4xx.c **** * + 59:Src/system_stm32g4xx.c **** * This software is licensed under terms that can be found in the LICENSE file + 60:Src/system_stm32g4xx.c **** * in the root directory of this software component. + 61:Src/system_stm32g4xx.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 62:Src/system_stm32g4xx.c **** * + 63:Src/system_stm32g4xx.c **** ****************************************************************************** + 64:Src/system_stm32g4xx.c **** */ + 65:Src/system_stm32g4xx.c **** + 66:Src/system_stm32g4xx.c **** /** @addtogroup CMSIS + 67:Src/system_stm32g4xx.c **** * @{ + 68:Src/system_stm32g4xx.c **** */ + 69:Src/system_stm32g4xx.c **** + 70:Src/system_stm32g4xx.c **** /** @addtogroup stm32g4xx_system + 71:Src/system_stm32g4xx.c **** * @{ + 72:Src/system_stm32g4xx.c **** */ + 73:Src/system_stm32g4xx.c **** + 74:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_Includes + 75:Src/system_stm32g4xx.c **** * @{ + 76:Src/system_stm32g4xx.c **** */ + 77:Src/system_stm32g4xx.c **** + 78:Src/system_stm32g4xx.c **** #include "stm32g4xx.h" + 79:Src/system_stm32g4xx.c **** + 80:Src/system_stm32g4xx.c **** #if !defined (HSE_VALUE) + 81:Src/system_stm32g4xx.c **** #define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ + 82:Src/system_stm32g4xx.c **** #endif /* HSE_VALUE */ + 83:Src/system_stm32g4xx.c **** + 84:Src/system_stm32g4xx.c **** #if !defined (HSI_VALUE) + 85:Src/system_stm32g4xx.c **** #define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz*/ + 86:Src/system_stm32g4xx.c **** #endif /* HSI_VALUE */ + 87:Src/system_stm32g4xx.c **** + ARM GAS /tmp/cc1Ld1Ft.s page 3 + + + 88:Src/system_stm32g4xx.c **** /** + 89:Src/system_stm32g4xx.c **** * @} + 90:Src/system_stm32g4xx.c **** */ + 91:Src/system_stm32g4xx.c **** + 92:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_TypesDefinitions + 93:Src/system_stm32g4xx.c **** * @{ + 94:Src/system_stm32g4xx.c **** */ + 95:Src/system_stm32g4xx.c **** + 96:Src/system_stm32g4xx.c **** /** + 97:Src/system_stm32g4xx.c **** * @} + 98:Src/system_stm32g4xx.c **** */ + 99:Src/system_stm32g4xx.c **** + 100:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_Defines + 101:Src/system_stm32g4xx.c **** * @{ + 102:Src/system_stm32g4xx.c **** */ + 103:Src/system_stm32g4xx.c **** + 104:Src/system_stm32g4xx.c **** /************************* Miscellaneous Configuration ************************/ + 105:Src/system_stm32g4xx.c **** /* Note: Following vector table addresses must be defined in line with linker + 106:Src/system_stm32g4xx.c **** configuration. */ + 107:Src/system_stm32g4xx.c **** /*!< Uncomment the following line if you need to relocate the vector table + 108:Src/system_stm32g4xx.c **** anywhere in Flash or Sram, else the vector table is kept at the automatic + 109:Src/system_stm32g4xx.c **** remap of boot address selected */ + 110:Src/system_stm32g4xx.c **** /* #define USER_VECT_TAB_ADDRESS */ + 111:Src/system_stm32g4xx.c **** + 112:Src/system_stm32g4xx.c **** #if defined(USER_VECT_TAB_ADDRESS) + 113:Src/system_stm32g4xx.c **** /*!< Uncomment the following line if you need to relocate your vector Table + 114:Src/system_stm32g4xx.c **** in Sram else user remap will be done in Flash. */ + 115:Src/system_stm32g4xx.c **** /* #define VECT_TAB_SRAM */ + 116:Src/system_stm32g4xx.c **** #if defined(VECT_TAB_SRAM) + 117:Src/system_stm32g4xx.c **** #define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field. + 118:Src/system_stm32g4xx.c **** This value must be a multiple of 0x200. */ + 119:Src/system_stm32g4xx.c **** #define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + 120:Src/system_stm32g4xx.c **** This value must be a multiple of 0x200. */ + 121:Src/system_stm32g4xx.c **** #else + 122:Src/system_stm32g4xx.c **** #define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field. + 123:Src/system_stm32g4xx.c **** This value must be a multiple of 0x200. */ + 124:Src/system_stm32g4xx.c **** #define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + 125:Src/system_stm32g4xx.c **** This value must be a multiple of 0x200. */ + 126:Src/system_stm32g4xx.c **** #endif /* VECT_TAB_SRAM */ + 127:Src/system_stm32g4xx.c **** #endif /* USER_VECT_TAB_ADDRESS */ + 128:Src/system_stm32g4xx.c **** /******************************************************************************/ + 129:Src/system_stm32g4xx.c **** /** + 130:Src/system_stm32g4xx.c **** * @} + 131:Src/system_stm32g4xx.c **** */ + 132:Src/system_stm32g4xx.c **** + 133:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_Macros + 134:Src/system_stm32g4xx.c **** * @{ + 135:Src/system_stm32g4xx.c **** */ + 136:Src/system_stm32g4xx.c **** + 137:Src/system_stm32g4xx.c **** /** + 138:Src/system_stm32g4xx.c **** * @} + 139:Src/system_stm32g4xx.c **** */ + 140:Src/system_stm32g4xx.c **** + 141:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_Variables + 142:Src/system_stm32g4xx.c **** * @{ + 143:Src/system_stm32g4xx.c **** */ + 144:Src/system_stm32g4xx.c **** /* The SystemCoreClock variable is updated in three ways: + ARM GAS /tmp/cc1Ld1Ft.s page 4 + + + 145:Src/system_stm32g4xx.c **** 1) by calling CMSIS function SystemCoreClockUpdate() + 146:Src/system_stm32g4xx.c **** 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 147:Src/system_stm32g4xx.c **** 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + 148:Src/system_stm32g4xx.c **** Note: If you use this function to configure the system clock; then there + 149:Src/system_stm32g4xx.c **** is no need to call the 2 first functions listed above, since SystemCoreClock + 150:Src/system_stm32g4xx.c **** variable is updated automatically. + 151:Src/system_stm32g4xx.c **** */ + 152:Src/system_stm32g4xx.c **** uint32_t SystemCoreClock = HSI_VALUE; + 153:Src/system_stm32g4xx.c **** + 154:Src/system_stm32g4xx.c **** const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U + 155:Src/system_stm32g4xx.c **** const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U}; + 156:Src/system_stm32g4xx.c **** + 157:Src/system_stm32g4xx.c **** /** + 158:Src/system_stm32g4xx.c **** * @} + 159:Src/system_stm32g4xx.c **** */ + 160:Src/system_stm32g4xx.c **** + 161:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_FunctionPrototypes + 162:Src/system_stm32g4xx.c **** * @{ + 163:Src/system_stm32g4xx.c **** */ + 164:Src/system_stm32g4xx.c **** + 165:Src/system_stm32g4xx.c **** /** + 166:Src/system_stm32g4xx.c **** * @} + 167:Src/system_stm32g4xx.c **** */ + 168:Src/system_stm32g4xx.c **** + 169:Src/system_stm32g4xx.c **** /** @addtogroup STM32G4xx_System_Private_Functions + 170:Src/system_stm32g4xx.c **** * @{ + 171:Src/system_stm32g4xx.c **** */ + 172:Src/system_stm32g4xx.c **** + 173:Src/system_stm32g4xx.c **** /** + 174:Src/system_stm32g4xx.c **** * @brief Setup the microcontroller system. + 175:Src/system_stm32g4xx.c **** * @param None + 176:Src/system_stm32g4xx.c **** * @retval None + 177:Src/system_stm32g4xx.c **** */ + 178:Src/system_stm32g4xx.c **** + 179:Src/system_stm32g4xx.c **** void SystemInit(void) + 180:Src/system_stm32g4xx.c **** { + 29 .loc 1 180 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 181:Src/system_stm32g4xx.c **** /* FPU settings ------------------------------------------------------------*/ + 182:Src/system_stm32g4xx.c **** #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + 183:Src/system_stm32g4xx.c **** SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2))); /* set CP10 and CP11 Full Access */ + 34 .loc 1 183 5 view .LVU1 + 35 .loc 1 183 8 is_stmt 0 view .LVU2 + 36 0000 034A ldr r2, .L2 + 37 0002 D2F88830 ldr r3, [r2, #136] + 38 .loc 1 183 16 view .LVU3 + 39 0006 43F47003 orr r3, r3, #15728640 + 40 000a C2F88830 str r3, [r2, #136] + 184:Src/system_stm32g4xx.c **** #endif + 185:Src/system_stm32g4xx.c **** + 186:Src/system_stm32g4xx.c **** /* Configure the Vector Table location add offset address ------------------*/ + 187:Src/system_stm32g4xx.c **** #if defined(USER_VECT_TAB_ADDRESS) + 188:Src/system_stm32g4xx.c **** SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM + 189:Src/system_stm32g4xx.c **** #endif /* USER_VECT_TAB_ADDRESS */ + ARM GAS /tmp/cc1Ld1Ft.s page 5 + + + 190:Src/system_stm32g4xx.c **** } + 41 .loc 1 190 1 view .LVU4 + 42 000e 7047 bx lr + 43 .L3: + 44 .align 2 + 45 .L2: + 46 0010 00ED00E0 .word -536810240 + 47 .cfi_endproc + 48 .LFE329: + 50 .section .text.SystemCoreClockUpdate,"ax",%progbits + 51 .align 1 + 52 .global SystemCoreClockUpdate + 53 .syntax unified + 54 .thumb + 55 .thumb_func + 57 SystemCoreClockUpdate: + 58 .LFB330: + 191:Src/system_stm32g4xx.c **** + 192:Src/system_stm32g4xx.c **** /** + 193:Src/system_stm32g4xx.c **** * @brief Update SystemCoreClock variable according to Clock Register Values. + 194:Src/system_stm32g4xx.c **** * The SystemCoreClock variable contains the core clock (HCLK), it can + 195:Src/system_stm32g4xx.c **** * be used by the user application to setup the SysTick timer or configure + 196:Src/system_stm32g4xx.c **** * other parameters. + 197:Src/system_stm32g4xx.c **** * + 198:Src/system_stm32g4xx.c **** * @note Each time the core clock (HCLK) changes, this function must be called + 199:Src/system_stm32g4xx.c **** * to update SystemCoreClock variable value. Otherwise, any configuration + 200:Src/system_stm32g4xx.c **** * based on this variable will be incorrect. + 201:Src/system_stm32g4xx.c **** * + 202:Src/system_stm32g4xx.c **** * @note - The system frequency computed by this function is not the real + 203:Src/system_stm32g4xx.c **** * frequency in the chip. It is calculated based on the predefined + 204:Src/system_stm32g4xx.c **** * constant and the selected clock source: + 205:Src/system_stm32g4xx.c **** * + 206:Src/system_stm32g4xx.c **** * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(**) + 207:Src/system_stm32g4xx.c **** * + 208:Src/system_stm32g4xx.c **** * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(***) + 209:Src/system_stm32g4xx.c **** * + 210:Src/system_stm32g4xx.c **** * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(***) + 211:Src/system_stm32g4xx.c **** * or HSI_VALUE(*) multiplied/divided by the PLL factors. + 212:Src/system_stm32g4xx.c **** * + 213:Src/system_stm32g4xx.c **** * (**) HSI_VALUE is a constant defined in stm32g4xx_hal.h file (default value + 214:Src/system_stm32g4xx.c **** * 16 MHz) but the real value may vary depending on the variations + 215:Src/system_stm32g4xx.c **** * in voltage and temperature. + 216:Src/system_stm32g4xx.c **** * + 217:Src/system_stm32g4xx.c **** * (***) HSE_VALUE is a constant defined in stm32g4xx_hal.h file (default value + 218:Src/system_stm32g4xx.c **** * 24 MHz), user has to ensure that HSE_VALUE is same as the real + 219:Src/system_stm32g4xx.c **** * frequency of the crystal used. Otherwise, this function may + 220:Src/system_stm32g4xx.c **** * have wrong result. + 221:Src/system_stm32g4xx.c **** * + 222:Src/system_stm32g4xx.c **** * - The result of this function could be not correct when using fractional + 223:Src/system_stm32g4xx.c **** * value for HSE crystal. + 224:Src/system_stm32g4xx.c **** * + 225:Src/system_stm32g4xx.c **** * @param None + 226:Src/system_stm32g4xx.c **** * @retval None + 227:Src/system_stm32g4xx.c **** */ + 228:Src/system_stm32g4xx.c **** void SystemCoreClockUpdate(void) + 229:Src/system_stm32g4xx.c **** { + 59 .loc 1 229 1 is_stmt 1 view -0 + ARM GAS /tmp/cc1Ld1Ft.s page 6 + + + 60 .cfi_startproc + 61 @ args = 0, pretend = 0, frame = 0 + 62 @ frame_needed = 0, uses_anonymous_args = 0 + 63 @ link register save eliminated. + 230:Src/system_stm32g4xx.c **** uint32_t tmp, pllvco, pllr, pllsource, pllm; + 64 .loc 1 230 3 view .LVU6 + 231:Src/system_stm32g4xx.c **** + 232:Src/system_stm32g4xx.c **** /* Get SYSCLK source -------------------------------------------------------*/ + 233:Src/system_stm32g4xx.c **** switch (RCC->CFGR & RCC_CFGR_SWS) + 65 .loc 1 233 3 view .LVU7 + 66 .loc 1 233 14 is_stmt 0 view .LVU8 + 67 0000 1E4B ldr r3, .L12 + 68 0002 9B68 ldr r3, [r3, #8] + 69 .loc 1 233 21 view .LVU9 + 70 0004 03F00C03 and r3, r3, #12 + 71 .loc 1 233 3 view .LVU10 + 72 0008 082B cmp r3, #8 + 73 000a 12D0 beq .L5 + 74 000c 0C2B cmp r3, #12 + 75 000e 14D0 beq .L6 + 76 0010 042B cmp r3, #4 + 77 0012 0AD0 beq .L10 + 78 .L7: + 234:Src/system_stm32g4xx.c **** { + 235:Src/system_stm32g4xx.c **** case 0x04: /* HSI used as system clock source */ + 236:Src/system_stm32g4xx.c **** SystemCoreClock = HSI_VALUE; + 237:Src/system_stm32g4xx.c **** break; + 238:Src/system_stm32g4xx.c **** + 239:Src/system_stm32g4xx.c **** case 0x08: /* HSE used as system clock source */ + 240:Src/system_stm32g4xx.c **** SystemCoreClock = HSE_VALUE; + 241:Src/system_stm32g4xx.c **** break; + 242:Src/system_stm32g4xx.c **** + 243:Src/system_stm32g4xx.c **** case 0x0C: /* PLL used as system clock source */ + 244:Src/system_stm32g4xx.c **** /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN + 245:Src/system_stm32g4xx.c **** SYSCLK = PLL_VCO / PLLR + 246:Src/system_stm32g4xx.c **** */ + 247:Src/system_stm32g4xx.c **** pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC); + 248:Src/system_stm32g4xx.c **** pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ; + 249:Src/system_stm32g4xx.c **** if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + 250:Src/system_stm32g4xx.c **** { + 251:Src/system_stm32g4xx.c **** pllvco = (HSI_VALUE / pllm); + 252:Src/system_stm32g4xx.c **** } + 253:Src/system_stm32g4xx.c **** else /* HSE used as PLL clock source */ + 254:Src/system_stm32g4xx.c **** { + 255:Src/system_stm32g4xx.c **** pllvco = (HSE_VALUE / pllm); + 256:Src/system_stm32g4xx.c **** } + 257:Src/system_stm32g4xx.c **** pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8); + 258:Src/system_stm32g4xx.c **** pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + 259:Src/system_stm32g4xx.c **** SystemCoreClock = pllvco/pllr; + 260:Src/system_stm32g4xx.c **** break; + 261:Src/system_stm32g4xx.c **** + 262:Src/system_stm32g4xx.c **** default: + 263:Src/system_stm32g4xx.c **** break; + 264:Src/system_stm32g4xx.c **** } + 265:Src/system_stm32g4xx.c **** /* Compute HCLK clock frequency --------------------------------------------*/ + 266:Src/system_stm32g4xx.c **** /* Get HCLK prescaler */ + 267:Src/system_stm32g4xx.c **** tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + ARM GAS /tmp/cc1Ld1Ft.s page 7 + + + 79 .loc 1 267 3 is_stmt 1 view .LVU11 + 80 .loc 1 267 28 is_stmt 0 view .LVU12 + 81 0014 194B ldr r3, .L12 + 82 0016 9B68 ldr r3, [r3, #8] + 83 .loc 1 267 52 view .LVU13 + 84 0018 C3F30313 ubfx r3, r3, #4, #4 + 85 .loc 1 267 22 view .LVU14 + 86 001c 184A ldr r2, .L12+4 + 87 001e D15C ldrb r1, [r2, r3] @ zero_extendqisi2 + 88 .LVL0: + 268:Src/system_stm32g4xx.c **** /* HCLK clock frequency */ + 269:Src/system_stm32g4xx.c **** SystemCoreClock >>= tmp; + 89 .loc 1 269 3 is_stmt 1 view .LVU15 + 90 .loc 1 269 19 is_stmt 0 view .LVU16 + 91 0020 184A ldr r2, .L12+8 + 92 0022 1368 ldr r3, [r2] + 93 0024 CB40 lsrs r3, r3, r1 + 94 0026 1360 str r3, [r2] + 270:Src/system_stm32g4xx.c **** } + 95 .loc 1 270 1 view .LVU17 + 96 0028 7047 bx lr + 97 .LVL1: + 98 .L10: + 236:Src/system_stm32g4xx.c **** break; + 99 .loc 1 236 7 is_stmt 1 view .LVU18 + 236:Src/system_stm32g4xx.c **** break; + 100 .loc 1 236 23 is_stmt 0 view .LVU19 + 101 002a 164B ldr r3, .L12+8 + 102 002c 164A ldr r2, .L12+12 + 103 002e 1A60 str r2, [r3] + 237:Src/system_stm32g4xx.c **** + 104 .loc 1 237 7 is_stmt 1 view .LVU20 + 105 0030 F0E7 b .L7 + 106 .L5: + 240:Src/system_stm32g4xx.c **** break; + 107 .loc 1 240 7 view .LVU21 + 240:Src/system_stm32g4xx.c **** break; + 108 .loc 1 240 23 is_stmt 0 view .LVU22 + 109 0032 144B ldr r3, .L12+8 + 110 0034 154A ldr r2, .L12+16 + 111 0036 1A60 str r2, [r3] + 241:Src/system_stm32g4xx.c **** + 112 .loc 1 241 7 is_stmt 1 view .LVU23 + 113 0038 ECE7 b .L7 + 114 .L6: + 247:Src/system_stm32g4xx.c **** pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ; + 115 .loc 1 247 7 view .LVU24 + 247:Src/system_stm32g4xx.c **** pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ; + 116 .loc 1 247 23 is_stmt 0 view .LVU25 + 117 003a 104A ldr r2, .L12 + 118 003c D368 ldr r3, [r2, #12] + 247:Src/system_stm32g4xx.c **** pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ; + 119 .loc 1 247 17 view .LVU26 + 120 003e 03F00303 and r3, r3, #3 + 121 .LVL2: + 248:Src/system_stm32g4xx.c **** if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + 122 .loc 1 248 7 is_stmt 1 view .LVU27 + ARM GAS /tmp/cc1Ld1Ft.s page 8 + + + 248:Src/system_stm32g4xx.c **** if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + 123 .loc 1 248 19 is_stmt 0 view .LVU28 + 124 0042 D268 ldr r2, [r2, #12] + 248:Src/system_stm32g4xx.c **** if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + 125 .loc 1 248 49 view .LVU29 + 126 0044 C2F30312 ubfx r2, r2, #4, #4 + 248:Src/system_stm32g4xx.c **** if (pllsource == 0x02UL) /* HSI used as PLL clock source */ + 127 .loc 1 248 12 view .LVU30 + 128 0048 0132 adds r2, r2, #1 + 129 .LVL3: + 249:Src/system_stm32g4xx.c **** { + 130 .loc 1 249 7 is_stmt 1 view .LVU31 + 249:Src/system_stm32g4xx.c **** { + 131 .loc 1 249 10 is_stmt 0 view .LVU32 + 132 004a 022B cmp r3, #2 + 133 004c 12D0 beq .L11 + 255:Src/system_stm32g4xx.c **** } + 134 .loc 1 255 9 is_stmt 1 view .LVU33 + 255:Src/system_stm32g4xx.c **** } + 135 .loc 1 255 16 is_stmt 0 view .LVU34 + 136 004e 0F4B ldr r3, .L12+16 + 137 .LVL4: + 255:Src/system_stm32g4xx.c **** } + 138 .loc 1 255 16 view .LVU35 + 139 0050 B3FBF2F2 udiv r2, r3, r2 + 140 .LVL5: + 141 .L9: + 257:Src/system_stm32g4xx.c **** pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + 142 .loc 1 257 7 is_stmt 1 view .LVU36 + 257:Src/system_stm32g4xx.c **** pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + 143 .loc 1 257 30 is_stmt 0 view .LVU37 + 144 0054 0949 ldr r1, .L12 + 145 0056 CB68 ldr r3, [r1, #12] + 257:Src/system_stm32g4xx.c **** pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + 146 .loc 1 257 60 view .LVU38 + 147 0058 C3F30623 ubfx r3, r3, #8, #7 + 257:Src/system_stm32g4xx.c **** pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U; + 148 .loc 1 257 14 view .LVU39 + 149 005c 02FB03F3 mul r3, r2, r3 + 150 .LVL6: + 258:Src/system_stm32g4xx.c **** SystemCoreClock = pllvco/pllr; + 151 .loc 1 258 7 is_stmt 1 view .LVU40 + 258:Src/system_stm32g4xx.c **** SystemCoreClock = pllvco/pllr; + 152 .loc 1 258 20 is_stmt 0 view .LVU41 + 153 0060 CA68 ldr r2, [r1, #12] + 258:Src/system_stm32g4xx.c **** SystemCoreClock = pllvco/pllr; + 154 .loc 1 258 50 view .LVU42 + 155 0062 C2F34162 ubfx r2, r2, #25, #2 + 258:Src/system_stm32g4xx.c **** SystemCoreClock = pllvco/pllr; + 156 .loc 1 258 57 view .LVU43 + 157 0066 0132 adds r2, r2, #1 + 258:Src/system_stm32g4xx.c **** SystemCoreClock = pllvco/pllr; + 158 .loc 1 258 12 view .LVU44 + 159 0068 5200 lsls r2, r2, #1 + 160 .LVL7: + 259:Src/system_stm32g4xx.c **** break; + 161 .loc 1 259 7 is_stmt 1 view .LVU45 + ARM GAS /tmp/cc1Ld1Ft.s page 9 + + + 259:Src/system_stm32g4xx.c **** break; + 162 .loc 1 259 31 is_stmt 0 view .LVU46 + 163 006a B3FBF2F3 udiv r3, r3, r2 + 164 .LVL8: + 259:Src/system_stm32g4xx.c **** break; + 165 .loc 1 259 23 view .LVU47 + 166 006e 054A ldr r2, .L12+8 + 167 .LVL9: + 259:Src/system_stm32g4xx.c **** break; + 168 .loc 1 259 23 view .LVU48 + 169 0070 1360 str r3, [r2] + 260:Src/system_stm32g4xx.c **** + 170 .loc 1 260 7 is_stmt 1 view .LVU49 + 171 0072 CFE7 b .L7 + 172 .LVL10: + 173 .L11: + 251:Src/system_stm32g4xx.c **** } + 174 .loc 1 251 9 view .LVU50 + 251:Src/system_stm32g4xx.c **** } + 175 .loc 1 251 16 is_stmt 0 view .LVU51 + 176 0074 044B ldr r3, .L12+12 + 177 .LVL11: + 251:Src/system_stm32g4xx.c **** } + 178 .loc 1 251 16 view .LVU52 + 179 0076 B3FBF2F2 udiv r2, r3, r2 + 180 .LVL12: + 251:Src/system_stm32g4xx.c **** } + 181 .loc 1 251 16 view .LVU53 + 182 007a EBE7 b .L9 + 183 .L13: + 184 .align 2 + 185 .L12: + 186 007c 00100240 .word 1073876992 + 187 0080 00000000 .word AHBPrescTable + 188 0084 00000000 .word SystemCoreClock + 189 0088 0024F400 .word 16000000 + 190 008c 0080BB00 .word 12288000 + 191 .cfi_endproc + 192 .LFE330: + 194 .global APBPrescTable + 195 .section .rodata.APBPrescTable,"a" + 196 .align 2 + 199 APBPrescTable: + 200 0000 00000000 .ascii "\000\000\000\000\001\002\003\004" + 200 01020304 + 201 .global AHBPrescTable + 202 .section .rodata.AHBPrescTable,"a" + 203 .align 2 + 206 AHBPrescTable: + 207 0000 00000000 .ascii "\000\000\000\000\000\000\000\000\001\002\003\004\006" + 207 00000000 + 207 01020304 + 207 06 + 208 000d 070809 .ascii "\007\010\011" + 209 .global SystemCoreClock + 210 .section .data.SystemCoreClock,"aw" + 211 .align 2 + ARM GAS /tmp/cc1Ld1Ft.s page 10 + + + 214 SystemCoreClock: + 215 0000 0024F400 .word 16000000 + 216 .text + 217 .Letext0: + 218 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 219 .file 3 "Drivers/CMSIS/Include/core_cm4.h" + 220 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" + 221 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + ARM GAS /tmp/cc1Ld1Ft.s page 11 + + +DEFINED SYMBOLS + *ABS*:00000000 system_stm32g4xx.c + /tmp/cc1Ld1Ft.s:21 .text.SystemInit:00000000 $t + /tmp/cc1Ld1Ft.s:27 .text.SystemInit:00000000 SystemInit + /tmp/cc1Ld1Ft.s:46 .text.SystemInit:00000010 $d + /tmp/cc1Ld1Ft.s:51 .text.SystemCoreClockUpdate:00000000 $t + /tmp/cc1Ld1Ft.s:57 .text.SystemCoreClockUpdate:00000000 SystemCoreClockUpdate + /tmp/cc1Ld1Ft.s:186 .text.SystemCoreClockUpdate:0000007c $d + /tmp/cc1Ld1Ft.s:206 .rodata.AHBPrescTable:00000000 AHBPrescTable + /tmp/cc1Ld1Ft.s:214 .data.SystemCoreClock:00000000 SystemCoreClock + /tmp/cc1Ld1Ft.s:199 .rodata.APBPrescTable:00000000 APBPrescTable + /tmp/cc1Ld1Ft.s:196 .rodata.APBPrescTable:00000000 $d + /tmp/cc1Ld1Ft.s:203 .rodata.AHBPrescTable:00000000 $d + /tmp/cc1Ld1Ft.s:211 .data.SystemCoreClock:00000000 $d + +NO UNDEFINED SYMBOLS diff --git a/squeow_sw/build/system_stm32g4xx.o b/squeow_sw/build/system_stm32g4xx.o new file mode 100644 index 0000000000000000000000000000000000000000..03975347c7b08d2dcf537f0a79ec0217807ba181 GIT binary patch literal 6984 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usb_device.d b/squeow_sw/build/usb_device.d new file mode 100644 index 0000000..eee431b --- /dev/null +++ b/squeow_sw/build/usb_device.d @@ -0,0 +1,96 @@ +build/usb_device.o: Src/usb_device.c Inc/usb_device.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + Inc/usbd_conf.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 \ + Inc/usbd_desc.h \ + Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + Inc/usbd_audio_if.h +Inc/usb_device.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.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: +Inc/usbd_desc.h: +Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h: +Inc/usbd_audio_if.h: diff --git a/squeow_sw/build/usb_device.lst b/squeow_sw/build/usb_device.lst new file mode 100644 index 0000000..ce7b331 --- /dev/null +++ b/squeow_sw/build/usb_device.lst @@ -0,0 +1,245 @@ +ARM GAS /tmp/ccKCpqw4.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usb_device.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/usb_device.c" + 20 .section .text.MX_USB_Device_Init,"ax",%progbits + 21 .align 1 + 22 .global MX_USB_Device_Init + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 MX_USB_Device_Init: + 28 .LFB333: + 1:Src/usb_device.c **** /* USER CODE BEGIN Header */ + 2:Src/usb_device.c **** /** + 3:Src/usb_device.c **** ****************************************************************************** + 4:Src/usb_device.c **** * @file : usb_device.c + 5:Src/usb_device.c **** * @version : v3.0_Cube + 6:Src/usb_device.c **** * @brief : This file implements the USB Device + 7:Src/usb_device.c **** ****************************************************************************** + 8:Src/usb_device.c **** * @attention + 9:Src/usb_device.c **** * + 10:Src/usb_device.c **** * Copyright (c) 2022 STMicroelectronics. + 11:Src/usb_device.c **** * All rights reserved. + 12:Src/usb_device.c **** * + 13:Src/usb_device.c **** * This software is licensed under terms that can be found in the LICENSE file + 14:Src/usb_device.c **** * in the root directory of this software component. + 15:Src/usb_device.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 16:Src/usb_device.c **** * + 17:Src/usb_device.c **** ****************************************************************************** + 18:Src/usb_device.c **** */ + 19:Src/usb_device.c **** /* USER CODE END Header */ + 20:Src/usb_device.c **** + 21:Src/usb_device.c **** /* Includes ------------------------------------------------------------------*/ + 22:Src/usb_device.c **** + 23:Src/usb_device.c **** #include "usb_device.h" + 24:Src/usb_device.c **** #include "usbd_core.h" + 25:Src/usb_device.c **** #include "usbd_desc.h" + 26:Src/usb_device.c **** #include "usbd_audio.h" + 27:Src/usb_device.c **** #include "usbd_audio_if.h" + 28:Src/usb_device.c **** + 29:Src/usb_device.c **** /* USER CODE BEGIN Includes */ + 30:Src/usb_device.c **** + ARM GAS /tmp/ccKCpqw4.s page 2 + + + 31:Src/usb_device.c **** /* USER CODE END Includes */ + 32:Src/usb_device.c **** + 33:Src/usb_device.c **** /* USER CODE BEGIN PV */ + 34:Src/usb_device.c **** /* Private variables ---------------------------------------------------------*/ + 35:Src/usb_device.c **** + 36:Src/usb_device.c **** /* USER CODE END PV */ + 37:Src/usb_device.c **** + 38:Src/usb_device.c **** /* USER CODE BEGIN PFP */ + 39:Src/usb_device.c **** /* Private function prototypes -----------------------------------------------*/ + 40:Src/usb_device.c **** + 41:Src/usb_device.c **** /* USER CODE END PFP */ + 42:Src/usb_device.c **** + 43:Src/usb_device.c **** extern void Error_Handler(void); + 44:Src/usb_device.c **** /* USB Device Core handle declaration. */ + 45:Src/usb_device.c **** USBD_HandleTypeDef hUsbDeviceFS; + 46:Src/usb_device.c **** extern USBD_DescriptorsTypeDef AUDIO_Desc; + 47:Src/usb_device.c **** + 48:Src/usb_device.c **** /* + 49:Src/usb_device.c **** * -- Insert your variables declaration here -- + 50:Src/usb_device.c **** */ + 51:Src/usb_device.c **** /* USER CODE BEGIN 0 */ + 52:Src/usb_device.c **** + 53:Src/usb_device.c **** /* USER CODE END 0 */ + 54:Src/usb_device.c **** + 55:Src/usb_device.c **** /* + 56:Src/usb_device.c **** * -- Insert your external function declaration here -- + 57:Src/usb_device.c **** */ + 58:Src/usb_device.c **** /* USER CODE BEGIN 1 */ + 59:Src/usb_device.c **** + 60:Src/usb_device.c **** /* USER CODE END 1 */ + 61:Src/usb_device.c **** + 62:Src/usb_device.c **** /** + 63:Src/usb_device.c **** * Init USB device Library, add supported class and start the library + 64:Src/usb_device.c **** * @retval None + 65:Src/usb_device.c **** */ + 66:Src/usb_device.c **** void MX_USB_Device_Init(void) + 67:Src/usb_device.c **** { + 29 .loc 1 67 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 0000 08B5 push {r3, lr} + 34 .LCFI0: + 35 .cfi_def_cfa_offset 8 + 36 .cfi_offset 3, -8 + 37 .cfi_offset 14, -4 + 68:Src/usb_device.c **** /* USER CODE BEGIN USB_Device_Init_PreTreatment */ + 69:Src/usb_device.c **** + 70:Src/usb_device.c **** /* USER CODE END USB_Device_Init_PreTreatment */ + 71:Src/usb_device.c **** + 72:Src/usb_device.c **** /* Init Device Library, add supported class and start the library. */ + 73:Src/usb_device.c **** if (USBD_Init(&hUsbDeviceFS, &AUDIO_Desc, DEVICE_FS) != USBD_OK) { + 38 .loc 1 73 3 view .LVU1 + 39 .loc 1 73 7 is_stmt 0 view .LVU2 + 40 0002 0022 movs r2, #0 + 41 0004 0F49 ldr r1, .L11 + 42 0006 1048 ldr r0, .L11+4 + ARM GAS /tmp/ccKCpqw4.s page 3 + + + 43 0008 FFF7FEFF bl USBD_Init + 44 .LVL0: + 45 .loc 1 73 6 view .LVU3 + 46 000c 70B9 cbnz r0, .L7 + 47 .L2: + 74:Src/usb_device.c **** Error_Handler(); + 75:Src/usb_device.c **** } + 76:Src/usb_device.c **** if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_AUDIO) != USBD_OK) { + 48 .loc 1 76 3 is_stmt 1 view .LVU4 + 49 .loc 1 76 7 is_stmt 0 view .LVU5 + 50 000e 0F49 ldr r1, .L11+8 + 51 0010 0D48 ldr r0, .L11+4 + 52 0012 FFF7FEFF bl USBD_RegisterClass + 53 .LVL1: + 54 .loc 1 76 6 view .LVU6 + 55 0016 60B9 cbnz r0, .L8 + 56 .L3: + 77:Src/usb_device.c **** Error_Handler(); + 78:Src/usb_device.c **** } + 79:Src/usb_device.c **** if (USBD_AUDIO_RegisterInterface(&hUsbDeviceFS, &USBD_AUDIO_fops_FS) != USBD_OK) { + 57 .loc 1 79 3 is_stmt 1 view .LVU7 + 58 .loc 1 79 7 is_stmt 0 view .LVU8 + 59 0018 0D49 ldr r1, .L11+12 + 60 001a 0B48 ldr r0, .L11+4 + 61 001c FFF7FEFF bl USBD_AUDIO_RegisterInterface + 62 .LVL2: + 63 .loc 1 79 6 view .LVU9 + 64 0020 50B9 cbnz r0, .L9 + 65 .L4: + 80:Src/usb_device.c **** Error_Handler(); + 81:Src/usb_device.c **** } + 82:Src/usb_device.c **** if (USBD_Start(&hUsbDeviceFS) != USBD_OK) { + 66 .loc 1 82 3 is_stmt 1 view .LVU10 + 67 .loc 1 82 7 is_stmt 0 view .LVU11 + 68 0022 0948 ldr r0, .L11+4 + 69 0024 FFF7FEFF bl USBD_Start + 70 .LVL3: + 71 .loc 1 82 6 view .LVU12 + 72 0028 48B9 cbnz r0, .L10 + 73 .L1: + 83:Src/usb_device.c **** Error_Handler(); + 84:Src/usb_device.c **** } + 85:Src/usb_device.c **** /* USER CODE BEGIN USB_Device_Init_PostTreatment */ + 86:Src/usb_device.c **** + 87:Src/usb_device.c **** /* USER CODE END USB_Device_Init_PostTreatment */ + 88:Src/usb_device.c **** } + 74 .loc 1 88 1 view .LVU13 + 75 002a 08BD pop {r3, pc} + 76 .L7: + 74:Src/usb_device.c **** } + 77 .loc 1 74 5 is_stmt 1 view .LVU14 + 78 002c FFF7FEFF bl Error_Handler + 79 .LVL4: + 80 0030 EDE7 b .L2 + 81 .L8: + 77:Src/usb_device.c **** } + 82 .loc 1 77 5 view .LVU15 + ARM GAS /tmp/ccKCpqw4.s page 4 + + + 83 0032 FFF7FEFF bl Error_Handler + 84 .LVL5: + 85 0036 EFE7 b .L3 + 86 .L9: + 80:Src/usb_device.c **** } + 87 .loc 1 80 5 view .LVU16 + 88 0038 FFF7FEFF bl Error_Handler + 89 .LVL6: + 90 003c F1E7 b .L4 + 91 .L10: + 83:Src/usb_device.c **** } + 92 .loc 1 83 5 view .LVU17 + 93 003e FFF7FEFF bl Error_Handler + 94 .LVL7: + 95 .loc 1 88 1 is_stmt 0 view .LVU18 + 96 0042 F2E7 b .L1 + 97 .L12: + 98 .align 2 + 99 .L11: + 100 0044 00000000 .word AUDIO_Desc + 101 0048 00000000 .word hUsbDeviceFS + 102 004c 00000000 .word USBD_AUDIO + 103 0050 00000000 .word USBD_AUDIO_fops_FS + 104 .cfi_endproc + 105 .LFE333: + 107 .global hUsbDeviceFS + 108 .section .bss.hUsbDeviceFS,"aw",%nobits + 109 .align 2 + 112 hUsbDeviceFS: + 113 0000 00000000 .space 720 + 113 00000000 + 113 00000000 + 113 00000000 + 113 00000000 + 114 .text + 115 .Letext0: + 116 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 117 .file 3 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 118 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h" + 119 .file 5 "Inc/usbd_desc.h" + 120 .file 6 "Inc/usbd_audio_if.h" + 121 .file 7 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" + ARM GAS /tmp/ccKCpqw4.s page 5 + + +DEFINED SYMBOLS + *ABS*:00000000 usb_device.c + /tmp/ccKCpqw4.s:21 .text.MX_USB_Device_Init:00000000 $t + /tmp/ccKCpqw4.s:27 .text.MX_USB_Device_Init:00000000 MX_USB_Device_Init + /tmp/ccKCpqw4.s:100 .text.MX_USB_Device_Init:00000044 $d + /tmp/ccKCpqw4.s:112 .bss.hUsbDeviceFS:00000000 hUsbDeviceFS + /tmp/ccKCpqw4.s:109 .bss.hUsbDeviceFS:00000000 $d + +UNDEFINED SYMBOLS +USBD_Init +USBD_RegisterClass +USBD_AUDIO_RegisterInterface +USBD_Start +Error_Handler +AUDIO_Desc +USBD_AUDIO +USBD_AUDIO_fops_FS diff --git a/squeow_sw/build/usb_device.o b/squeow_sw/build/usb_device.o new file mode 100644 index 0000000000000000000000000000000000000000..055b33edd3d961b3a8b15ba13138fdcd1b573090 GIT binary patch literal 8068 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usbd_audio.d b/squeow_sw/build/usbd_audio.d new file mode 100644 index 0000000..0abe015 --- /dev/null +++ b/squeow_sw/build/usbd_audio.d @@ -0,0 +1,89 @@ +build/usbd_audio.o: \ + Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c \ + Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + Inc/usbd_conf.h Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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 +Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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: diff --git a/squeow_sw/build/usbd_audio.lst b/squeow_sw/build/usbd_audio.lst new file mode 100644 index 0000000..3ec1680 --- /dev/null +++ b/squeow_sw/build/usbd_audio.lst @@ -0,0 +1,2657 @@ +ARM GAS /tmp/ccdtFdaF.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usbd_audio.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c" + 20 .section .text.USBD_AUDIO_GetCfgDesc,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 USBD_AUDIO_GetCfgDesc: + 27 .LVL0: + 28 .LFB336: + 1:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 2:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ****************************************************************************** + 3:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @file usbd_audio.c + 4:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @author MCD Application Team + 5:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief This file provides the Audio core functions. + 6:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 7:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @verbatim + 8:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 9:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * =================================================================== + 10:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * AUDIO Class Description + 11:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * =================================================================== + 12:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * This driver manages the Audio Class 1.0 following the "USB Device Class Definition fo + 13:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * Audio Devices V1.0 Mar 18, 98". + 14:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * This driver implements the following aspects of the specification: + 15:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Device descriptor management + 16:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Configuration descriptor management + 17:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Standard AC Interface Descriptor management + 18:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - 1 Audio Streaming Interface (with single channel, PCM, Stereo mode) + 19:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - 1 Audio Streaming Endpoint + 20:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - 1 Audio Terminal Input (1 channel) + 21:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Audio Class-Specific AC Interfaces + 22:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Audio Class-Specific AS Interfaces + 23:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - AudioControl Requests: only SET_CUR and GET_CUR requests are supported (for Mute) + 24:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Audio Feature Unit (limited to Mute control) + 25:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Audio Synchronization type: Asynchronous + 26:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Single fixed audio sampling rate (configurable in usbd_conf.h file) + 27:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * The current audio class version supports the following audio features: + 28:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Pulse Coded Modulation (PCM) format + 29:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - sampling rate: 48KHz. + 30:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Bit resolution: 16 + ARM GAS /tmp/ccdtFdaF.s page 2 + + + 31:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Number of channels: 2 + 32:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - No volume control + 33:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Mute/Unmute capability + 34:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * - Asynchronous Endpoints + 35:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 36:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @note In HS mode and when the DMA is used, all variables and data structures + 37:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * dealing with the DMA during the transaction process should be 32-bit aligned. + 38:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 39:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 40:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @endverbatim + 41:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 42:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ****************************************************************************** + 43:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @attention + 44:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 45:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** *

© Copyright (c) 2015 STMicroelectronics. + 46:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * All rights reserved.

+ 47:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 48:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * This software component is licensed by ST under Ultimate Liberty license + 49:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * SLA0044, the "License"; You may not use this file except in compliance with + 50:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * the License. You may obtain a copy of the License at: + 51:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * www.st.com/SLA0044 + 52:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * + 53:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ****************************************************************************** + 54:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 55:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 56:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* BSPDependencies + 57:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** - "stm32xxxxx_{eval}{discovery}.c" + 58:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** - "stm32xxxxx_{eval}{discovery}_io.c" + 59:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** - "stm32xxxxx_{eval}{discovery}_audio.c" + 60:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** EndBSPDependencies */ + 61:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 62:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Includes ------------------------------------------------------------------*/ + 63:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #include "usbd_audio.h" + 64:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #include "usbd_ctlreq.h" + 65:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 66:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 67:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @addtogroup STM32_USB_DEVICE_LIBRARY + 68:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 69:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 70:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 71:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 72:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO + 73:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief usbd core module + 74:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 75:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 76:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 77:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO_Private_TypesDefinitions + 78:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 79:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 80:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 81:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @} + 82:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 83:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 84:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 85:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO_Private_Defines + 86:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 87:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + ARM GAS /tmp/ccdtFdaF.s page 3 + + + 88:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 89:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @} + 90:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 91:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 92:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 93:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO_Private_Macros + 94:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 95:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 96:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #define AUDIO_SAMPLE_FREQ(frq) (uint8_t)(frq), (uint8_t)((frq >> 8)), (uint8_t)((frq >> 16) + 97:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 98:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #define AUDIO_PACKET_SZE(frq) (uint8_t)(((frq * 2U * 2U)/1000U) & 0xFFU), \ + 99:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (uint8_t)((((frq * 2U * 2U)/1000U) >> 8) & 0xFFU) + 100:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 101:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 102:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @} + 103:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 104:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 105:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 106:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO_Private_FunctionPrototypes + 107:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 108:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 109:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx); + 110:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_DeInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx); + 111:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 112:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_Setup(USBD_HandleTypeDef *pdev, + 113:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_SetupReqTypedef *req); + 114:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 115:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t *USBD_AUDIO_GetCfgDesc(uint16_t *length); + 116:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t *USBD_AUDIO_GetDeviceQualifierDesc(uint16_t *length); + 117:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_DataIn(USBD_HandleTypeDef *pdev, uint8_t epnum); + 118:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_DataOut(USBD_HandleTypeDef *pdev, uint8_t epnum); + 119:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_EP0_RxReady(USBD_HandleTypeDef *pdev); + 120:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_EP0_TxReady(USBD_HandleTypeDef *pdev); + 121:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_SOF(USBD_HandleTypeDef *pdev); + 122:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 123:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_IsoINIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum); + 124:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_IsoOutIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum); + 125:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static void AUDIO_REQ_GetCurrent(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 126:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static void AUDIO_REQ_SetCurrent(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 127:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 128:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 129:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @} + 130:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 131:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 132:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO_Private_Variables + 133:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 134:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 135:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 136:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_ClassTypeDef USBD_AUDIO = + 137:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 138:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_Init, + 139:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_DeInit, + 140:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_Setup, + 141:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_EP0_TxReady, + 142:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_EP0_RxReady, + 143:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_DataIn, + 144:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_DataOut, + ARM GAS /tmp/ccdtFdaF.s page 4 + + + 145:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_SOF, + 146:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_IsoINIncomplete, + 147:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_IsoOutIncomplete, + 148:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_GetCfgDesc, + 149:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_GetCfgDesc, + 150:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_GetCfgDesc, + 151:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_GetDeviceQualifierDesc, + 152:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** }; + 153:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 154:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB AUDIO device Configuration Descriptor */ + 155:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** __ALIGN_BEGIN static uint8_t USBD_AUDIO_CfgDesc[USB_AUDIO_CONFIG_DESC_SIZ] __ALIGN_END = + 156:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 157:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Configuration 1 */ + 158:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x09, /* bLength */ + 159:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType */ + 160:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** LOBYTE(USB_AUDIO_CONFIG_DESC_SIZ), /* wTotalLength 109 bytes*/ + 161:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** HIBYTE(USB_AUDIO_CONFIG_DESC_SIZ), + 162:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x02, /* bNumInterfaces */ + 163:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bConfigurationValue */ + 164:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iConfiguration */ + 165:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #if (USBD_SELF_POWERED == 1U) + 166:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0xC0, /* bmAttributes: Bus Powered according to user configuratio + 167:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #else + 168:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x80, /* bmAttributes: Bus Powered according to user configuratio + 169:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** #endif + 170:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_MAX_POWER, /* bMaxPower = 100 mA */ + 171:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 172:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 173:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Standard interface descriptor */ + 174:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESC_SIZE, /* bLength */ + 175:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DESC_TYPE_INTERFACE, /* bDescriptorType */ + 176:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bInterfaceNumber */ + 177:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bAlternateSetting */ + 178:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bNumEndpoints */ + 179:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */ + 180:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_SUBCLASS_AUDIOCONTROL, /* bInterfaceSubClass */ + 181:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */ + 182:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iInterface */ + 183:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 184:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 185:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Class-specific AC Interface Descriptor */ + 186:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESC_SIZE, /* bLength */ + 187:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ + 188:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_CONTROL_HEADER, /* bDescriptorSubtype */ + 189:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* 1.00 */ /* bcdADC */ + 190:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, + 191:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x27, /* wTotalLength = 39*/ + 192:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 193:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bInCollection */ + 194:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* baInterfaceNr */ + 195:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 196:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 197:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Input Terminal Descriptor */ + 198:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INPUT_TERMINAL_DESC_SIZE, /* bLength */ + 199:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ + 200:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_CONTROL_INPUT_TERMINAL, /* bDescriptorSubtype */ + 201:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bTerminalID */ + ARM GAS /tmp/ccdtFdaF.s page 5 + + + 202:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* wTerminalType AUDIO_TERMINAL_USB_STREAMING 0x0101 */ + 203:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, + 204:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bAssocTerminal */ + 205:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bNrChannels */ + 206:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* wChannelConfig 0x0000 Mono */ + 207:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 208:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iChannelNames */ + 209:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iTerminal */ + 210:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 12 byte*/ + 211:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 212:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Audio Feature Unit Descriptor */ + 213:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x09, /* bLength */ + 214:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ + 215:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_CONTROL_FEATURE_UNIT, /* bDescriptorSubtype */ + 216:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_STREAMING_CTRL, /* bUnitID */ + 217:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bSourceID */ + 218:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bControlSize */ + 219:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_CONTROL_MUTE, /* bmaControls(0) */ + 220:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0, /* bmaControls(1) */ + 221:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iTerminal */ + 222:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 223:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 224:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /*USB Speaker Output Terminal Descriptor */ + 225:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x09, /* bLength */ + 226:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ + 227:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_CONTROL_OUTPUT_TERMINAL, /* bDescriptorSubtype */ + 228:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x03, /* bTerminalID */ + 229:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* wTerminalType 0x0301*/ + 230:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x03, + 231:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bAssocTerminal */ + 232:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x02, /* bSourceID */ + 233:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iTerminal */ + 234:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 235:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 236:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Zero Bandwidth */ + 237:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Interface 1, Alternate Setting 0 */ + 238:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESC_SIZE, /* bLength */ + 239:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DESC_TYPE_INTERFACE, /* bDescriptorType */ + 240:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bInterfaceNumber */ + 241:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bAlternateSetting */ + 242:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bNumEndpoints */ + 243:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */ + 244:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */ + 245:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */ + 246:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iInterface */ + 247:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 248:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 249:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Operational */ + 250:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Interface 1, Alternate Setting 1 */ + 251:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESC_SIZE, /* bLength */ + 252:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DESC_TYPE_INTERFACE, /* bDescriptorType */ + 253:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bInterfaceNumber */ + 254:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bAlternateSetting */ + 255:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bNumEndpoints */ + 256:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */ + 257:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */ + 258:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */ + ARM GAS /tmp/ccdtFdaF.s page 6 + + + 259:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* iInterface */ + 260:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 261:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 262:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Audio Streaming Interface Descriptor */ + 263:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_STREAMING_INTERFACE_DESC_SIZE, /* bLength */ + 264:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ + 265:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_STREAMING_GENERAL, /* bDescriptorSubtype */ + 266:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bTerminalLink */ + 267:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bDelay */ + 268:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* wFormatTag AUDIO_FORMAT_PCM 0x0001 */ + 269:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 270:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 07 byte*/ + 271:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 272:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Speaker Audio Type III Format Interface Descriptor */ + 273:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x0B, /* bLength */ + 274:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ + 275:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_STREAMING_FORMAT_TYPE, /* bDescriptorSubtype */ + 276:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_FORMAT_TYPE_I, /* bFormatType */ + 277:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x02, /* bNrChannels */ + 278:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x02, /* bSubFrameSize : 2 Bytes per frame (16bits) */ + 279:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 16, /* bBitResolution (16-bits per sample) */ + 280:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, /* bSamFreqType only one frequency supported */ + 281:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_SAMPLE_FREQ(USBD_AUDIO_FREQ), /* Audio sampling frequency coded on 3 bytes */ + 282:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 11 byte*/ + 283:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 284:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Endpoint 1 - Standard Descriptor */ + 285:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_STANDARD_ENDPOINT_DESC_SIZE, /* bLength */ + 286:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DESC_TYPE_ENDPOINT, /* bDescriptorType */ + 287:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_EP, /* bEndpointAddress 1 out endpoint */ + 288:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_EP_TYPE_ISOC, /* bmAttributes */ + 289:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_PACKET_SZE(USBD_AUDIO_FREQ), /* wMaxPacketSize in Bytes (Freq(Samples)*2(Stereo)*2(HalfW + 290:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_FS_BINTERVAL, /* bInterval */ + 291:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bRefresh */ + 292:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bSynchAddress */ + 293:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 09 byte*/ + 294:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 295:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Endpoint - Audio Streaming Descriptor*/ + 296:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_STREAMING_ENDPOINT_DESC_SIZE, /* bLength */ + 297:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */ + 298:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_ENDPOINT_GENERAL, /* bDescriptor */ + 299:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bmAttributes */ + 300:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* bLockDelayUnits */ + 301:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, /* wLockDelay */ + 302:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 303:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* 07 byte*/ + 304:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } ; + 305:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 306:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* USB Standard Device Descriptor */ + 307:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** __ALIGN_BEGIN static uint8_t USBD_AUDIO_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END + 308:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 309:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_LEN_DEV_QUALIFIER_DESC, + 310:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USB_DESC_TYPE_DEVICE_QUALIFIER, + 311:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 312:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x02, + 313:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 314:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 315:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + ARM GAS /tmp/ccdtFdaF.s page 7 + + + 316:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x40, + 317:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x01, + 318:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0x00, + 319:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** }; + 320:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 321:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 322:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @} + 323:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 324:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 325:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** @defgroup USBD_AUDIO_Private_Functions + 326:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @{ + 327:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 328:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 329:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 330:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_Init + 331:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * Initialize the AUDIO interface + 332:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 333:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param cfgidx: Configuration index + 334:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 335:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 336:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx) + 337:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 338:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(cfgidx); + 339:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 340:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 341:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Allocate Audio structure */ + 342:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = USBD_malloc(sizeof(USBD_AUDIO_HandleTypeDef)); + 343:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 344:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio == NULL) + 345:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 346:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->pClassData = NULL; + 347:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_EMEM; + 348:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 349:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 350:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->pClassData = (void *)haudio; + 351:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 352:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (pdev->dev_speed == USBD_SPEED_HIGH) + 353:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 354:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].bInterval = AUDIO_HS_BINTERVAL; + 355:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 356:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else /* LOW and FULL-speed endpoints */ + 357:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 358:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].bInterval = AUDIO_FS_BINTERVAL; + 359:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 360:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 361:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Open EP OUT */ + 362:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_LL_OpenEP(pdev, AUDIO_OUT_EP, USBD_EP_TYPE_ISOC, AUDIO_OUT_PACKET); + 363:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 1U; + 364:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 365:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->alt_setting = 0U; + 366:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->offset = AUDIO_OFFSET_UNKNOWN; + 367:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->wr_ptr = 0U; + 368:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_ptr = 0U; + 369:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_enable = 0U; + 370:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 371:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Initialize the Audio output Hardware layer */ + 372:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->Init(USBD_AUDIO_FREQ, + ARM GAS /tmp/ccdtFdaF.s page 8 + + + 373:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_DEFAULT_VOLUME, + 374:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** 0U) != 0U) + 375:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 376:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_FAIL; + 377:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 378:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 379:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Prepare Out endpoint to receive 1st packet */ + 380:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_LL_PrepareReceive(pdev, AUDIO_OUT_EP, haudio->buffer, + 381:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_PACKET); + 382:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 383:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 384:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 385:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 386:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 387:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_Init + 388:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * DeInitialize the AUDIO layer + 389:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 390:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param cfgidx: Configuration index + 391:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 392:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 393:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_DeInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx) + 394:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 395:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(cfgidx); + 396:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 397:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Open EP OUT */ + 398:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_LL_CloseEP(pdev, AUDIO_OUT_EP); + 399:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 0U; + 400:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].bInterval = 0U; + 401:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 402:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* DeInit physical Interface components */ + 403:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (pdev->pClassData != NULL) + 404:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 405:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->DeInit(0U); + 406:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_free(pdev->pClassData); + 407:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->pClassData = NULL; + 408:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 409:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 410:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 411:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 412:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 413:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 414:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_Setup + 415:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * Handle the AUDIO specific requests + 416:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: instance + 417:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param req: usb requests + 418:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 419:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 420:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_Setup(USBD_HandleTypeDef *pdev, + 421:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_SetupReqTypedef *req) + 422:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 423:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 424:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t len; + 425:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint8_t *pbuf; + 426:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t status_info = 0U; + 427:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_StatusTypeDef ret = USBD_OK; + 428:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 429:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + ARM GAS /tmp/ccdtFdaF.s page 9 + + + 430:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 431:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio == NULL) + 432:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 433:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_FAIL; + 434:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 435:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 436:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** switch (req->bmRequest & USB_REQ_TYPE_MASK) + 437:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 438:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_TYPE_CLASS: + 439:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** switch (req->bRequest) + 440:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 441:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case AUDIO_REQ_GET_CUR: + 442:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_REQ_GetCurrent(pdev, req); + 443:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 444:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 445:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case AUDIO_REQ_SET_CUR: + 446:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_REQ_SetCurrent(pdev, req); + 447:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 448:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 449:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** default: + 450:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 451:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 452:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 453:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 454:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 455:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 456:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_TYPE_STANDARD: + 457:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** switch (req->bRequest) + 458:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 459:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_GET_STATUS: + 460:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 461:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 462:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U); + 463:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 464:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + 465:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 466:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 467:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 468:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 469:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 470:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 471:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_GET_DESCRIPTOR: + 472:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if ((req->wValue >> 8) == AUDIO_DESCRIPTOR_TYPE) + 473:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 474:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pbuf = USBD_AUDIO_CfgDesc + 18; + 475:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** len = MIN(USB_AUDIO_DESC_SIZ, req->wLength); + 476:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 477:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_CtlSendData(pdev, pbuf, len); + 478:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 479:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 480:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 481:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_GET_INTERFACE: + 482:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 483:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 484:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&haudio->alt_setting, 1U); + 485:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 486:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + ARM GAS /tmp/ccdtFdaF.s page 10 + + + 487:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 488:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 489:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 490:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 491:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 492:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 493:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_SET_INTERFACE: + 494:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 495:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 496:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if ((uint8_t)(req->wValue) <= USBD_MAX_NUM_INTERFACES) + 497:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 498:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->alt_setting = (uint8_t)(req->wValue); + 499:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 500:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + 501:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 502:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Call the error management function (command will be NAKed */ + 503:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 504:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 505:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 506:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 507:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + 508:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 509:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 510:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 511:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 512:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 513:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 514:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** case USB_REQ_CLEAR_FEATURE: + 515:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 516:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 517:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** default: + 518:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 519:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 520:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 521:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 522:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 523:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** default: + 524:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_CtlError(pdev, req); + 525:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 526:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 527:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 528:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 529:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)ret; + 530:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 531:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 532:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 533:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 534:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_GetCfgDesc + 535:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * return configuration descriptor + 536:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param speed : current device speed + 537:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param length : pointer data length + 538:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval pointer to descriptor buffer + 539:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 540:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t *USBD_AUDIO_GetCfgDesc(uint16_t *length) + 541:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 29 .loc 1 541 1 view -0 + 30 .cfi_startproc + ARM GAS /tmp/ccdtFdaF.s page 11 + + + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 542:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** *length = (uint16_t)sizeof(USBD_AUDIO_CfgDesc); + 34 .loc 1 542 3 view .LVU1 + 35 .loc 1 542 11 is_stmt 0 view .LVU2 + 36 0000 6D23 movs r3, #109 + 37 0002 0380 strh r3, [r0] @ movhi + 543:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 544:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return USBD_AUDIO_CfgDesc; + 38 .loc 1 544 3 is_stmt 1 view .LVU3 + 545:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 39 .loc 1 545 1 is_stmt 0 view .LVU4 + 40 0004 0048 ldr r0, .L2 + 41 .LVL1: + 42 .loc 1 545 1 view .LVU5 + 43 0006 7047 bx lr + 44 .L3: + 45 .align 2 + 46 .L2: + 47 0008 00000000 .word USBD_AUDIO_CfgDesc + 48 .cfi_endproc + 49 .LFE336: + 51 .section .text.USBD_AUDIO_DataIn,"ax",%progbits + 52 .align 1 + 53 .syntax unified + 54 .thumb + 55 .thumb_func + 57 USBD_AUDIO_DataIn: + 58 .LVL2: + 59 .LFB337: + 546:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 547:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 548:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_DataIn + 549:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle data IN Stage + 550:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 551:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param epnum: endpoint index + 552:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 553:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 554:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_DataIn(USBD_HandleTypeDef *pdev, uint8_t epnum) + 555:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 60 .loc 1 555 1 is_stmt 1 view -0 + 61 .cfi_startproc + 62 @ args = 0, pretend = 0, frame = 0 + 63 @ frame_needed = 0, uses_anonymous_args = 0 + 64 @ link register save eliminated. + 556:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(pdev); + 65 .loc 1 556 3 view .LVU7 + 557:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(epnum); + 66 .loc 1 557 3 view .LVU8 + 558:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 559:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Only OUT data are processed */ + 560:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 67 .loc 1 560 3 view .LVU9 + 561:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 68 .loc 1 561 1 is_stmt 0 view .LVU10 + 69 0000 0020 movs r0, #0 + ARM GAS /tmp/ccdtFdaF.s page 12 + + + 70 .LVL3: + 71 .loc 1 561 1 view .LVU11 + 72 0002 7047 bx lr + 73 .cfi_endproc + 74 .LFE337: + 76 .section .text.USBD_AUDIO_EP0_RxReady,"ax",%progbits + 77 .align 1 + 78 .syntax unified + 79 .thumb + 80 .thumb_func + 82 USBD_AUDIO_EP0_RxReady: + 83 .LVL4: + 84 .LFB338: + 562:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 563:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 564:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_EP0_RxReady + 565:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle EP0 Rx Ready event + 566:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 567:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 568:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 569:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_EP0_RxReady(USBD_HandleTypeDef *pdev) + 570:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 85 .loc 1 570 1 is_stmt 1 view -0 + 86 .cfi_startproc + 87 @ args = 0, pretend = 0, frame = 0 + 88 @ frame_needed = 0, uses_anonymous_args = 0 + 89 .loc 1 570 1 is_stmt 0 view .LVU13 + 90 0000 10B5 push {r4, lr} + 91 .LCFI0: + 92 .cfi_def_cfa_offset 8 + 93 .cfi_offset 4, -8 + 94 .cfi_offset 14, -4 + 571:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 95 .loc 1 571 3 is_stmt 1 view .LVU14 + 572:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 96 .loc 1 572 3 view .LVU15 + 97 .loc 1 572 10 is_stmt 0 view .LVU16 + 98 0002 D0F8BC42 ldr r4, [r0, #700] + 99 .LVL5: + 573:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 574:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio == NULL) + 100 .loc 1 574 3 is_stmt 1 view .LVU17 + 101 .loc 1 574 6 is_stmt 0 view .LVU18 + 102 0006 ECB1 cbz r4, .L7 + 575:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 576:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_FAIL; + 577:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 578:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 579:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->control.cmd == AUDIO_REQ_SET_CUR) + 103 .loc 1 579 3 is_stmt 1 view .LVU19 + 104 .loc 1 579 22 is_stmt 0 view .LVU20 + 105 0008 04F58052 add r2, r4, #4096 + 106 000c 92F88A2B ldrb r2, [r2, #2954] @ zero_extendqisi2 + 107 .loc 1 579 6 view .LVU21 + 108 0010 012A cmp r2, #1 + 109 0012 01D0 beq .L11 + 580:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + ARM GAS /tmp/ccdtFdaF.s page 13 + + + 581:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* In this driver, to simplify code, only SET_CUR request is managed */ + 582:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 583:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->control.unit == AUDIO_OUT_STREAMING_CTRL) + 584:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->MuteCtl(haudio->control.data[0]); + 586:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 587:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = 0U; + 588:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 589:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 590:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 591:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 110 .loc 1 591 10 view .LVU22 + 111 0014 0020 movs r0, #0 + 112 .LVL6: + 113 .L6: + 592:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 114 .loc 1 592 1 view .LVU23 + 115 0016 10BD pop {r4, pc} + 116 .LVL7: + 117 .L11: + 583:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 118 .loc 1 583 5 is_stmt 1 view .LVU24 + 583:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 119 .loc 1 583 24 is_stmt 0 view .LVU25 + 120 0018 04F58052 add r2, r4, #4096 + 121 001c 92F8CC2B ldrb r2, [r2, #3020] @ zero_extendqisi2 + 583:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 122 .loc 1 583 8 view .LVU26 + 123 0020 022A cmp r2, #2 + 124 0022 01D0 beq .L12 + 591:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 125 .loc 1 591 10 view .LVU27 + 126 0024 0020 movs r0, #0 + 127 .LVL8: + 591:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 128 .loc 1 591 10 view .LVU28 + 129 0026 F6E7 b .L6 + 130 .LVL9: + 131 .L12: + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 132 .loc 1 585 7 is_stmt 1 view .LVU29 + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 133 .loc 1 585 37 is_stmt 0 view .LVU30 + 134 0028 D0F8C022 ldr r2, [r0, #704] + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 135 .loc 1 585 49 view .LVU31 + 136 002c 1269 ldr r2, [r2, #16] + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 137 .loc 1 585 8 view .LVU32 + 138 002e 04F58054 add r4, r4, #4096 + 139 .LVL10: + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 140 .loc 1 585 8 view .LVU33 + 141 0032 94F88B0B ldrb r0, [r4, #2955] @ zero_extendqisi2 + 142 .LVL11: + 585:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = 0U; + 143 .loc 1 585 8 view .LVU34 + ARM GAS /tmp/ccdtFdaF.s page 14 + + + 144 0036 9047 blx r2 + 145 .LVL12: + 586:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = 0U; + 146 .loc 1 586 7 is_stmt 1 view .LVU35 + 586:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = 0U; + 147 .loc 1 586 27 is_stmt 0 view .LVU36 + 148 0038 0020 movs r0, #0 + 149 003a 84F88A0B strb r0, [r4, #2954] + 587:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 150 .loc 1 587 7 is_stmt 1 view .LVU37 + 587:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 151 .loc 1 587 27 is_stmt 0 view .LVU38 + 152 003e 84F8CB0B strb r0, [r4, #3019] + 153 0042 E8E7 b .L6 + 154 .LVL13: + 155 .L7: + 576:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 156 .loc 1 576 12 view .LVU39 + 157 0044 0320 movs r0, #3 + 158 .LVL14: + 576:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 159 .loc 1 576 12 view .LVU40 + 160 0046 E6E7 b .L6 + 161 .cfi_endproc + 162 .LFE338: + 164 .section .text.USBD_AUDIO_EP0_TxReady,"ax",%progbits + 165 .align 1 + 166 .syntax unified + 167 .thumb + 168 .thumb_func + 170 USBD_AUDIO_EP0_TxReady: + 171 .LVL15: + 172 .LFB339: + 593:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 594:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_EP0_TxReady + 595:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle EP0 TRx Ready event + 596:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 597:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 598:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 599:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_EP0_TxReady(USBD_HandleTypeDef *pdev) + 600:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 173 .loc 1 600 1 is_stmt 1 view -0 + 174 .cfi_startproc + 175 @ args = 0, pretend = 0, frame = 0 + 176 @ frame_needed = 0, uses_anonymous_args = 0 + 177 @ link register save eliminated. + 601:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(pdev); + 178 .loc 1 601 3 view .LVU42 + 602:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 603:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Only OUT control data are processed */ + 604:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 179 .loc 1 604 3 view .LVU43 + 605:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 180 .loc 1 605 1 is_stmt 0 view .LVU44 + 181 0000 0020 movs r0, #0 + 182 .LVL16: + 183 .loc 1 605 1 view .LVU45 + ARM GAS /tmp/ccdtFdaF.s page 15 + + + 184 0002 7047 bx lr + 185 .cfi_endproc + 186 .LFE339: + 188 .section .text.USBD_AUDIO_SOF,"ax",%progbits + 189 .align 1 + 190 .syntax unified + 191 .thumb + 192 .thumb_func + 194 USBD_AUDIO_SOF: + 195 .LVL17: + 196 .LFB340: + 606:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 607:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_SOF + 608:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle SOF event + 609:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 610:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 611:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 612:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_SOF(USBD_HandleTypeDef *pdev) + 613:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 197 .loc 1 613 1 is_stmt 1 view -0 + 198 .cfi_startproc + 199 @ args = 0, pretend = 0, frame = 0 + 200 @ frame_needed = 0, uses_anonymous_args = 0 + 201 @ link register save eliminated. + 614:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(pdev); + 202 .loc 1 614 3 view .LVU47 + 615:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 616:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 203 .loc 1 616 3 view .LVU48 + 617:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 204 .loc 1 617 1 is_stmt 0 view .LVU49 + 205 0000 0020 movs r0, #0 + 206 .LVL18: + 207 .loc 1 617 1 view .LVU50 + 208 0002 7047 bx lr + 209 .cfi_endproc + 210 .LFE340: + 212 .section .text.USBD_AUDIO_IsoINIncomplete,"ax",%progbits + 213 .align 1 + 214 .syntax unified + 215 .thumb + 216 .thumb_func + 218 USBD_AUDIO_IsoINIncomplete: + 219 .LVL19: + 220 .LFB342: + 618:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 619:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 620:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_SOF + 621:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle SOF event + 622:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 623:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 624:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 625:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** void USBD_AUDIO_Sync(USBD_HandleTypeDef *pdev, AUDIO_OffsetTypeDef offset) + 626:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 627:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 628:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint32_t BufferSize = AUDIO_TOTAL_BUF_SIZE / 2U; + 629:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + ARM GAS /tmp/ccdtFdaF.s page 16 + + + 630:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (pdev->pClassData == NULL) + 631:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 632:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return; + 633:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 634:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 635:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 636:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 637:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->offset = offset; + 638:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 639:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->rd_enable == 1U) + 640:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 641:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_ptr += (uint16_t)BufferSize; + 642:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 643:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->rd_ptr == AUDIO_TOTAL_BUF_SIZE) + 644:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 645:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* roll back */ + 646:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_ptr = 0U; + 647:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 648:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 649:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 650:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->rd_ptr > haudio->wr_ptr) + 651:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 652:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if ((haudio->rd_ptr - haudio->wr_ptr) < AUDIO_OUT_PACKET) + 653:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 654:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize += 4U; + 655:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 656:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + 657:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 658:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if ((haudio->rd_ptr - haudio->wr_ptr) > (AUDIO_TOTAL_BUF_SIZE - AUDIO_OUT_PACKET)) + 659:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 660:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize -= 4U; + 661:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 662:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 663:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 664:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + 665:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 666:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if ((haudio->wr_ptr - haudio->rd_ptr) < AUDIO_OUT_PACKET) + 667:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 668:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize -= 4U; + 669:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 670:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** else + 671:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 672:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if ((haudio->wr_ptr - haudio->rd_ptr) > (AUDIO_TOTAL_BUF_SIZE - AUDIO_OUT_PACKET)) + 673:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 674:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize += 4U; + 675:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 676:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 677:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 678:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 679:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->offset == AUDIO_OFFSET_FULL) + 680:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 681:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->AudioCmd(&haudio->buffer[0], + 682:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize, AUDIO_CMD_PLAY); + 683:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->offset = AUDIO_OFFSET_NONE; + 684:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 685:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 686:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + ARM GAS /tmp/ccdtFdaF.s page 17 + + + 687:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 688:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_IsoINIncomplete + 689:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle data ISO IN Incomplete event + 690:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 691:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param epnum: endpoint index + 692:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 693:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 694:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_IsoINIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum) + 695:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 221 .loc 1 695 1 is_stmt 1 view -0 + 222 .cfi_startproc + 223 @ args = 0, pretend = 0, frame = 0 + 224 @ frame_needed = 0, uses_anonymous_args = 0 + 225 @ link register save eliminated. + 696:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(pdev); + 226 .loc 1 696 3 view .LVU52 + 697:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(epnum); + 227 .loc 1 697 3 view .LVU53 + 698:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 699:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 228 .loc 1 699 3 view .LVU54 + 700:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 229 .loc 1 700 1 is_stmt 0 view .LVU55 + 230 0000 0020 movs r0, #0 + 231 .LVL20: + 232 .loc 1 700 1 view .LVU56 + 233 0002 7047 bx lr + 234 .cfi_endproc + 235 .LFE342: + 237 .section .text.USBD_AUDIO_IsoOutIncomplete,"ax",%progbits + 238 .align 1 + 239 .syntax unified + 240 .thumb + 241 .thumb_func + 243 USBD_AUDIO_IsoOutIncomplete: + 244 .LVL21: + 245 .LFB343: + 701:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 702:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_IsoOutIncomplete + 703:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle data ISO OUT Incomplete event + 704:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 705:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param epnum: endpoint index + 706:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 707:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 708:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_IsoOutIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum) + 709:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 246 .loc 1 709 1 is_stmt 1 view -0 + 247 .cfi_startproc + 248 @ args = 0, pretend = 0, frame = 0 + 249 @ frame_needed = 0, uses_anonymous_args = 0 + 250 @ link register save eliminated. + 710:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(pdev); + 251 .loc 1 710 3 view .LVU58 + 711:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(epnum); + 252 .loc 1 711 3 view .LVU59 + 712:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 713:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + ARM GAS /tmp/ccdtFdaF.s page 18 + + + 253 .loc 1 713 3 view .LVU60 + 714:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 254 .loc 1 714 1 is_stmt 0 view .LVU61 + 255 0000 0020 movs r0, #0 + 256 .LVL22: + 257 .loc 1 714 1 view .LVU62 + 258 0002 7047 bx lr + 259 .cfi_endproc + 260 .LFE343: + 262 .section .text.USBD_AUDIO_GetDeviceQualifierDesc,"ax",%progbits + 263 .align 1 + 264 .syntax unified + 265 .thumb + 266 .thumb_func + 268 USBD_AUDIO_GetDeviceQualifierDesc: + 269 .LVL23: + 270 .LFB347: + 715:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 716:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_DataOut + 717:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * handle data OUT Stage + 718:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: device instance + 719:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param epnum: endpoint index + 720:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 721:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 722:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t USBD_AUDIO_DataOut(USBD_HandleTypeDef *pdev, uint8_t epnum) + 723:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 724:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t PacketSize; + 725:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 726:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 727:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 728:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 729:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio == NULL) + 730:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 731:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_FAIL; + 732:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 733:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 734:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (epnum == AUDIO_OUT_EP) + 735:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 736:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Get received data packet length */ + 737:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize = (uint16_t)USBD_LL_GetRxDataSize(pdev, epnum); + 738:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 739:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Packet received Callback */ + 740:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->PeriodicTC(&haudio->buffer[haudio->wr_ptr], + 741:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize, AUDIO_OUT_TC); + 742:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 743:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Increment the Buffer pointer or roll it back when all buffers are full */ + 744:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->wr_ptr += PacketSize; + 745:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 746:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->wr_ptr == AUDIO_TOTAL_BUF_SIZE) + 747:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 748:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* All buffers are full: roll back */ + 749:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->wr_ptr = 0U; + 750:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 751:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->offset == AUDIO_OFFSET_UNKNOWN) + 752:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 753:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->AudioCmd(&haudio->buffer[0], + 754:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_TOTAL_BUF_SIZE / 2U, + ARM GAS /tmp/ccdtFdaF.s page 19 + + + 755:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_CMD_START); + 756:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->offset = AUDIO_OFFSET_NONE; + 757:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 758:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 759:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 760:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->rd_enable == 0U) + 761:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 762:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio->wr_ptr == (AUDIO_TOTAL_BUF_SIZE / 2U)) + 763:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 764:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_enable = 1U; + 765:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 766:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 767:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 768:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Prepare Out endpoint to receive next audio packet */ + 769:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_LL_PrepareReceive(pdev, AUDIO_OUT_EP, + 770:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** &haudio->buffer[haudio->wr_ptr], + 771:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_PACKET); + 772:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 773:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 774:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 775:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 776:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 777:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 778:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief AUDIO_Req_GetCurrent + 779:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * Handles the GET_CUR Audio control request. + 780:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: instance + 781:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param req: setup class request + 782:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 783:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 784:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static void AUDIO_REQ_GetCurrent(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 785:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 786:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 787:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 788:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 789:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio == NULL) + 790:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 791:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return; + 792:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 793:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_memset(haudio->control.data, 0, 64U); + 795:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 796:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Send the current mute state */ + 797:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_CtlSendData(pdev, haudio->control.data, req->wLength); + 798:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 799:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 800:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 801:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief AUDIO_Req_SetCurrent + 802:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * Handles the SET_CUR Audio control request. + 803:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param pdev: instance + 804:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param req: setup class request + 805:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 806:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 807:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static void AUDIO_REQ_SetCurrent(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 808:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 809:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 810:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 811:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + ARM GAS /tmp/ccdtFdaF.s page 20 + + + 812:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (haudio == NULL) + 813:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 814:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return; + 815:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 816:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 817:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (req->wLength != 0U) + 818:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 819:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /* Prepare the reception of the buffer over EP0 */ + 820:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_CtlPrepareRx(pdev, haudio->control.data, req->wLength); + 821:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 822:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.cmd = AUDIO_REQ_SET_CUR; /* Set the request value */ + 823:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = (uint8_t)req->wLength; /* Set the request data length */ + 824:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.unit = HIBYTE(req->wIndex); /* Set the request target unit */ + 825:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 826:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 827:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 828:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 829:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 830:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief DeviceQualifierDescriptor + 831:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * return Device Qualifier descriptor + 832:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param length : pointer data length + 833:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval pointer to descriptor buffer + 834:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 835:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** static uint8_t *USBD_AUDIO_GetDeviceQualifierDesc(uint16_t *length) + 836:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 271 .loc 1 836 1 is_stmt 1 view -0 + 272 .cfi_startproc + 273 @ args = 0, pretend = 0, frame = 0 + 274 @ frame_needed = 0, uses_anonymous_args = 0 + 275 @ link register save eliminated. + 837:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** *length = (uint16_t)sizeof(USBD_AUDIO_DeviceQualifierDesc); + 276 .loc 1 837 3 view .LVU64 + 277 .loc 1 837 11 is_stmt 0 view .LVU65 + 278 0000 0A23 movs r3, #10 + 279 0002 0380 strh r3, [r0] @ movhi + 838:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 839:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return USBD_AUDIO_DeviceQualifierDesc; + 280 .loc 1 839 3 is_stmt 1 view .LVU66 + 840:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 281 .loc 1 840 1 is_stmt 0 view .LVU67 + 282 0004 0048 ldr r0, .L18 + 283 .LVL24: + 284 .loc 1 840 1 view .LVU68 + 285 0006 7047 bx lr + 286 .L19: + 287 .align 2 + 288 .L18: + 289 0008 00000000 .word USBD_AUDIO_DeviceQualifierDesc + 290 .cfi_endproc + 291 .LFE347: + 293 .section .text.USBD_AUDIO_DataOut,"ax",%progbits + 294 .align 1 + 295 .syntax unified + 296 .thumb + 297 .thumb_func + 299 USBD_AUDIO_DataOut: + 300 .LVL25: + ARM GAS /tmp/ccdtFdaF.s page 21 + + + 301 .LFB344: + 723:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t PacketSize; + 302 .loc 1 723 1 is_stmt 1 view -0 + 303 .cfi_startproc + 304 @ args = 0, pretend = 0, frame = 0 + 305 @ frame_needed = 0, uses_anonymous_args = 0 + 723:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t PacketSize; + 306 .loc 1 723 1 is_stmt 0 view .LVU70 + 307 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + 308 .LCFI1: + 309 .cfi_def_cfa_offset 24 + 310 .cfi_offset 3, -24 + 311 .cfi_offset 4, -20 + 312 .cfi_offset 5, -16 + 313 .cfi_offset 6, -12 + 314 .cfi_offset 7, -8 + 315 .cfi_offset 14, -4 + 724:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 316 .loc 1 724 3 is_stmt 1 view .LVU71 + 725:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 317 .loc 1 725 3 view .LVU72 + 727:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 318 .loc 1 727 3 view .LVU73 + 727:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 319 .loc 1 727 10 is_stmt 0 view .LVU74 + 320 0002 D0F8BC52 ldr r5, [r0, #700] + 321 .LVL26: + 729:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 322 .loc 1 729 3 is_stmt 1 view .LVU75 + 729:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 323 .loc 1 729 6 is_stmt 0 view .LVU76 + 324 0006 002D cmp r5, #0 + 325 0008 4ED0 beq .L24 + 326 000a 0446 mov r4, r0 + 734:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 327 .loc 1 734 3 is_stmt 1 view .LVU77 + 734:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 328 .loc 1 734 6 is_stmt 0 view .LVU78 + 329 000c 0129 cmp r1, #1 + 330 000e 01D0 beq .L27 + 774:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 331 .loc 1 774 10 view .LVU79 + 332 0010 0020 movs r0, #0 + 333 .LVL27: + 334 .L21: + 775:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 335 .loc 1 775 1 view .LVU80 + 336 0012 F8BD pop {r3, r4, r5, r6, r7, pc} + 337 .LVL28: + 338 .L27: + 737:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 339 .loc 1 737 5 is_stmt 1 view .LVU81 + 737:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 340 .loc 1 737 28 is_stmt 0 view .LVU82 + 341 0014 FFF7FEFF bl USBD_LL_GetRxDataSize + 342 .LVL29: + 737:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + ARM GAS /tmp/ccdtFdaF.s page 22 + + + 343 .loc 1 737 16 view .LVU83 + 344 0018 86B2 uxth r6, r0 + 345 .LVL30: + 740:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize, AUDIO_OUT_TC); + 346 .loc 1 740 5 is_stmt 1 view .LVU84 + 740:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize, AUDIO_OUT_TC); + 347 .loc 1 740 35 is_stmt 0 view .LVU85 + 348 001a D4F8C032 ldr r3, [r4, #704] + 740:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize, AUDIO_OUT_TC); + 349 .loc 1 740 47 view .LVU86 + 350 001e 5B69 ldr r3, [r3, #20] + 740:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize, AUDIO_OUT_TC); + 351 .loc 1 740 82 view .LVU87 + 352 0020 05F58057 add r7, r5, #4096 + 353 0024 B7F8880B ldrh r0, [r7, #2952] + 740:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** PacketSize, AUDIO_OUT_TC); + 354 .loc 1 740 6 view .LVU88 + 355 0028 2844 add r0, r0, r5 + 356 002a 0122 movs r2, #1 + 357 002c 3146 mov r1, r6 + 358 002e 0430 adds r0, r0, #4 + 359 0030 9847 blx r3 + 360 .LVL31: + 744:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 361 .loc 1 744 5 is_stmt 1 view .LVU89 + 744:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 362 .loc 1 744 11 is_stmt 0 view .LVU90 + 363 0032 B7F8883B ldrh r3, [r7, #2952] + 744:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 364 .loc 1 744 20 view .LVU91 + 365 0036 3344 add r3, r3, r6 + 366 0038 9BB2 uxth r3, r3 + 367 003a A7F8883B strh r3, [r7, #2952] @ movhi + 746:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 368 .loc 1 746 5 is_stmt 1 view .LVU92 + 746:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 369 .loc 1 746 8 is_stmt 0 view .LVU93 + 370 003e B3F5DC5F cmp r3, #7040 + 371 0042 18D0 beq .L28 + 372 .L22: + 760:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 373 .loc 1 760 5 is_stmt 1 view .LVU94 + 760:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 374 .loc 1 760 15 is_stmt 0 view .LVU95 + 375 0044 05F58053 add r3, r5, #4096 + 376 0048 93F8853B ldrb r3, [r3, #2949] @ zero_extendqisi2 + 760:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 377 .loc 1 760 8 view .LVU96 + 378 004c 33B9 cbnz r3, .L23 + 762:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 379 .loc 1 762 7 is_stmt 1 view .LVU97 + 762:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 380 .loc 1 762 17 is_stmt 0 view .LVU98 + 381 004e 05F58053 add r3, r5, #4096 + 382 0052 B3F8883B ldrh r3, [r3, #2952] + 762:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 383 .loc 1 762 10 view .LVU99 + ARM GAS /tmp/ccdtFdaF.s page 23 + + + 384 0056 B3F55C6F cmp r3, #3520 + 385 005a 1FD0 beq .L29 + 386 .L23: + 769:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** &haudio->buffer[haudio->wr_ptr], + 387 .loc 1 769 5 is_stmt 1 view .LVU100 + 770:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_PACKET); + 388 .loc 1 770 56 is_stmt 0 view .LVU101 + 389 005c 05F58053 add r3, r5, #4096 + 390 0060 B3F8883B ldrh r3, [r3, #2952] + 769:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** &haudio->buffer[haudio->wr_ptr], + 391 .loc 1 769 11 view .LVU102 + 392 0064 EA18 adds r2, r5, r3 + 393 0066 5823 movs r3, #88 + 394 0068 0432 adds r2, r2, #4 + 395 006a 0121 movs r1, #1 + 396 006c 2046 mov r0, r4 + 397 006e FFF7FEFF bl USBD_LL_PrepareReceive + 398 .LVL32: + 774:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 399 .loc 1 774 10 view .LVU103 + 400 0072 0020 movs r0, #0 + 401 0074 CDE7 b .L21 + 402 .L28: + 749:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 403 .loc 1 749 7 is_stmt 1 view .LVU104 + 749:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 404 .loc 1 749 22 is_stmt 0 view .LVU105 + 405 0076 0022 movs r2, #0 + 406 0078 A7F8882B strh r2, [r7, #2952] @ movhi + 751:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 407 .loc 1 751 7 is_stmt 1 view .LVU106 + 751:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 408 .loc 1 751 17 is_stmt 0 view .LVU107 + 409 007c 97F8843B ldrb r3, [r7, #2948] @ zero_extendqisi2 + 751:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 410 .loc 1 751 10 view .LVU108 + 411 0080 032B cmp r3, #3 + 412 0082 DFD1 bne .L22 + 753:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_TOTAL_BUF_SIZE / 2U, + 413 .loc 1 753 9 is_stmt 1 view .LVU109 + 753:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_TOTAL_BUF_SIZE / 2U, + 414 .loc 1 753 39 is_stmt 0 view .LVU110 + 415 0084 D4F8C032 ldr r3, [r4, #704] + 753:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_TOTAL_BUF_SIZE / 2U, + 416 .loc 1 753 51 view .LVU111 + 417 0088 9B68 ldr r3, [r3, #8] + 753:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_TOTAL_BUF_SIZE / 2U, + 418 .loc 1 753 10 view .LVU112 + 419 008a 0122 movs r2, #1 + 420 008c 4FF45C61 mov r1, #3520 + 421 0090 281D adds r0, r5, #4 + 422 0092 9847 blx r3 + 423 .LVL33: + 756:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 424 .loc 1 756 9 is_stmt 1 view .LVU113 + 756:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 425 .loc 1 756 24 is_stmt 0 view .LVU114 + ARM GAS /tmp/ccdtFdaF.s page 24 + + + 426 0094 0022 movs r2, #0 + 427 0096 87F8842B strb r2, [r7, #2948] + 428 009a D3E7 b .L22 + 429 .L29: + 764:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 430 .loc 1 764 9 is_stmt 1 view .LVU115 + 764:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 431 .loc 1 764 27 is_stmt 0 view .LVU116 + 432 009c 05F58053 add r3, r5, #4096 + 433 00a0 0122 movs r2, #1 + 434 00a2 83F8852B strb r2, [r3, #2949] + 435 00a6 D9E7 b .L23 + 436 .LVL34: + 437 .L24: + 731:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 438 .loc 1 731 12 view .LVU117 + 439 00a8 0320 movs r0, #3 + 440 .LVL35: + 731:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 441 .loc 1 731 12 view .LVU118 + 442 00aa B2E7 b .L21 + 443 .cfi_endproc + 444 .LFE344: + 446 .section .text.AUDIO_REQ_GetCurrent,"ax",%progbits + 447 .align 1 + 448 .syntax unified + 449 .thumb + 450 .thumb_func + 452 AUDIO_REQ_GetCurrent: + 453 .LVL36: + 454 .LFB345: + 785:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 455 .loc 1 785 1 is_stmt 1 view -0 + 456 .cfi_startproc + 457 @ args = 0, pretend = 0, frame = 0 + 458 @ frame_needed = 0, uses_anonymous_args = 0 + 785:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 459 .loc 1 785 1 is_stmt 0 view .LVU120 + 460 0000 70B5 push {r4, r5, r6, lr} + 461 .LCFI2: + 462 .cfi_def_cfa_offset 16 + 463 .cfi_offset 4, -16 + 464 .cfi_offset 5, -12 + 465 .cfi_offset 6, -8 + 466 .cfi_offset 14, -4 + 786:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 467 .loc 1 786 3 is_stmt 1 view .LVU121 + 787:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 468 .loc 1 787 3 view .LVU122 + 787:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 469 .loc 1 787 10 is_stmt 0 view .LVU123 + 470 0002 D0F8BC42 ldr r4, [r0, #700] + 471 .LVL37: + 789:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 472 .loc 1 789 3 is_stmt 1 view .LVU124 + 789:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 473 .loc 1 789 6 is_stmt 0 view .LVU125 + ARM GAS /tmp/ccdtFdaF.s page 25 + + + 474 0006 74B1 cbz r4, .L30 + 475 0008 0546 mov r5, r0 + 476 000a 0E46 mov r6, r1 + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 477 .loc 1 794 3 is_stmt 1 view .LVU126 + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 478 .loc 1 794 36 is_stmt 0 view .LVU127 + 479 000c 04F5DC54 add r4, r4, #7040 + 480 .LVL38: + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 481 .loc 1 794 36 view .LVU128 + 482 0010 0B34 adds r4, r4, #11 + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 483 .loc 1 794 9 view .LVU129 + 484 0012 4022 movs r2, #64 + 485 0014 0021 movs r1, #0 + 486 .LVL39: + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 487 .loc 1 794 9 view .LVU130 + 488 0016 2046 mov r0, r4 + 489 .LVL40: + 794:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 490 .loc 1 794 9 view .LVU131 + 491 0018 FFF7FEFF bl memset + 492 .LVL41: + 797:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 493 .loc 1 797 3 is_stmt 1 view .LVU132 + 797:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 494 .loc 1 797 9 is_stmt 0 view .LVU133 + 495 001c F288 ldrh r2, [r6, #6] + 496 001e 2146 mov r1, r4 + 497 0020 2846 mov r0, r5 + 498 0022 FFF7FEFF bl USBD_CtlSendData + 499 .LVL42: + 500 .L30: + 798:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 501 .loc 1 798 1 view .LVU134 + 502 0026 70BD pop {r4, r5, r6, pc} + 503 .cfi_endproc + 504 .LFE345: + 506 .section .text.AUDIO_REQ_SetCurrent,"ax",%progbits + 507 .align 1 + 508 .syntax unified + 509 .thumb + 510 .thumb_func + 512 AUDIO_REQ_SetCurrent: + 513 .LVL43: + 514 .LFB346: + 808:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 515 .loc 1 808 1 is_stmt 1 view -0 + 516 .cfi_startproc + 517 @ args = 0, pretend = 0, frame = 0 + 518 @ frame_needed = 0, uses_anonymous_args = 0 + 808:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 519 .loc 1 808 1 is_stmt 0 view .LVU136 + 520 0000 38B5 push {r3, r4, r5, lr} + 521 .LCFI3: + ARM GAS /tmp/ccdtFdaF.s page 26 + + + 522 .cfi_def_cfa_offset 16 + 523 .cfi_offset 3, -16 + 524 .cfi_offset 4, -12 + 525 .cfi_offset 5, -8 + 526 .cfi_offset 14, -4 + 809:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio = (USBD_AUDIO_HandleTypeDef *)pdev->pClassData; + 527 .loc 1 809 3 is_stmt 1 view .LVU137 + 810:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 528 .loc 1 810 3 view .LVU138 + 810:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 529 .loc 1 810 10 is_stmt 0 view .LVU139 + 530 0002 D0F8BC52 ldr r5, [r0, #700] + 531 .LVL44: + 812:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 532 .loc 1 812 3 is_stmt 1 view .LVU140 + 812:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 533 .loc 1 812 6 is_stmt 0 view .LVU141 + 534 0006 15B1 cbz r5, .L33 + 535 0008 0C46 mov r4, r1 + 817:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 536 .loc 1 817 3 is_stmt 1 view .LVU142 + 817:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 537 .loc 1 817 10 is_stmt 0 view .LVU143 + 538 000a CA88 ldrh r2, [r1, #6] + 817:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 539 .loc 1 817 6 view .LVU144 + 540 000c 02B9 cbnz r2, .L36 + 541 .LVL45: + 542 .L33: + 826:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 543 .loc 1 826 1 view .LVU145 + 544 000e 38BD pop {r3, r4, r5, pc} + 545 .LVL46: + 546 .L36: + 820:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 547 .loc 1 820 5 is_stmt 1 view .LVU146 + 820:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 548 .loc 1 820 11 is_stmt 0 view .LVU147 + 549 0010 05F5DC51 add r1, r5, #7040 + 550 .LVL47: + 820:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 551 .loc 1 820 11 view .LVU148 + 552 0014 0B31 adds r1, r1, #11 + 553 0016 FFF7FEFF bl USBD_CtlPrepareRx + 554 .LVL48: + 822:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = (uint8_t)req->wLength; /* Set the request data length */ + 555 .loc 1 822 5 is_stmt 1 view .LVU149 + 822:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = (uint8_t)req->wLength; /* Set the request data length */ + 556 .loc 1 822 25 is_stmt 0 view .LVU150 + 557 001a 05F58055 add r5, r5, #4096 + 558 .LVL49: + 822:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.len = (uint8_t)req->wLength; /* Set the request data length */ + 559 .loc 1 822 25 view .LVU151 + 560 001e 0123 movs r3, #1 + 561 0020 85F88A3B strb r3, [r5, #2954] + 823:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.unit = HIBYTE(req->wIndex); /* Set the request target unit */ + 562 .loc 1 823 5 is_stmt 1 view .LVU152 + ARM GAS /tmp/ccdtFdaF.s page 27 + + + 823:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.unit = HIBYTE(req->wIndex); /* Set the request target unit */ + 563 .loc 1 823 27 is_stmt 0 view .LVU153 + 564 0024 A379 ldrb r3, [r4, #6] @ zero_extendqisi2 + 823:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->control.unit = HIBYTE(req->wIndex); /* Set the request target unit */ + 565 .loc 1 823 25 view .LVU154 + 566 0026 85F8CB3B strb r3, [r5, #3019] + 824:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 567 .loc 1 824 5 is_stmt 1 view .LVU155 + 824:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 568 .loc 1 824 28 is_stmt 0 view .LVU156 + 569 002a A388 ldrh r3, [r4, #4] + 570 002c 1B0A lsrs r3, r3, #8 + 824:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 571 .loc 1 824 26 view .LVU157 + 572 002e 85F8CC3B strb r3, [r5, #3020] + 573 0032 ECE7 b .L33 + 574 .cfi_endproc + 575 .LFE346: + 577 .section .text.USBD_AUDIO_Setup,"ax",%progbits + 578 .align 1 + 579 .syntax unified + 580 .thumb + 581 .thumb_func + 583 USBD_AUDIO_Setup: + 584 .LVL50: + 585 .LFB335: + 422:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 586 .loc 1 422 1 is_stmt 1 view -0 + 587 .cfi_startproc + 588 @ args = 0, pretend = 0, frame = 8 + 589 @ frame_needed = 0, uses_anonymous_args = 0 + 422:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 590 .loc 1 422 1 is_stmt 0 view .LVU159 + 591 0000 30B5 push {r4, r5, lr} + 592 .LCFI4: + 593 .cfi_def_cfa_offset 12 + 594 .cfi_offset 4, -12 + 595 .cfi_offset 5, -8 + 596 .cfi_offset 14, -4 + 597 0002 83B0 sub sp, sp, #12 + 598 .LCFI5: + 599 .cfi_def_cfa_offset 24 + 423:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t len; + 600 .loc 1 423 3 is_stmt 1 view .LVU160 + 424:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint8_t *pbuf; + 601 .loc 1 424 3 view .LVU161 + 425:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint16_t status_info = 0U; + 602 .loc 1 425 3 view .LVU162 + 426:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_StatusTypeDef ret = USBD_OK; + 603 .loc 1 426 3 view .LVU163 + 426:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_StatusTypeDef ret = USBD_OK; + 604 .loc 1 426 12 is_stmt 0 view .LVU164 + 605 0004 0023 movs r3, #0 + 606 0006 ADF80630 strh r3, [sp, #6] @ movhi + 427:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 607 .loc 1 427 3 is_stmt 1 view .LVU165 + 608 .LVL51: + ARM GAS /tmp/ccdtFdaF.s page 28 + + + 429:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 609 .loc 1 429 3 view .LVU166 + 429:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 610 .loc 1 429 10 is_stmt 0 view .LVU167 + 611 000a D0F8BC32 ldr r3, [r0, #700] + 612 .LVL52: + 431:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 613 .loc 1 431 3 is_stmt 1 view .LVU168 + 431:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 614 .loc 1 431 6 is_stmt 0 view .LVU169 + 615 000e 002B cmp r3, #0 + 616 0010 67D0 beq .L53 + 436:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 617 .loc 1 436 3 is_stmt 1 view .LVU170 + 436:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 618 .loc 1 436 14 is_stmt 0 view .LVU171 + 619 0012 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 436:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 620 .loc 1 436 3 view .LVU172 + 621 0014 14F06004 ands r4, r4, #96 + 622 0018 12D0 beq .L39 + 623 001a 202C cmp r4, #32 + 624 001c 5BD1 bne .L40 + 439:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 625 .loc 1 439 7 is_stmt 1 view .LVU173 + 439:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 626 .loc 1 439 18 is_stmt 0 view .LVU174 + 627 001e 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 628 .LVL53: + 439:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 629 .loc 1 439 18 view .LVU175 + 630 0020 012B cmp r3, #1 + 631 0022 05D0 beq .L41 + 632 0024 812B cmp r3, #129 + 633 0026 07D1 bne .L42 + 442:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 634 .loc 1 442 11 is_stmt 1 view .LVU176 + 635 0028 FFF7FEFF bl AUDIO_REQ_GetCurrent + 636 .LVL54: + 443:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 637 .loc 1 443 11 view .LVU177 + 427:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 638 .loc 1 427 22 is_stmt 0 view .LVU178 + 639 002c 0024 movs r4, #0 + 443:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 640 .loc 1 443 11 view .LVU179 + 641 002e 55E0 b .L38 + 642 .LVL55: + 643 .L41: + 446:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 644 .loc 1 446 11 is_stmt 1 view .LVU180 + 645 0030 FFF7FEFF bl AUDIO_REQ_SetCurrent + 646 .LVL56: + 447:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 647 .loc 1 447 11 view .LVU181 + 427:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 648 .loc 1 427 22 is_stmt 0 view .LVU182 + ARM GAS /tmp/ccdtFdaF.s page 29 + + + 649 0034 0024 movs r4, #0 + 447:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 650 .loc 1 447 11 view .LVU183 + 651 0036 51E0 b .L38 + 652 .LVL57: + 653 .L42: + 450:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 654 .loc 1 450 11 is_stmt 1 view .LVU184 + 655 0038 FFF7FEFF bl USBD_CtlError + 656 .LVL58: + 451:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 657 .loc 1 451 11 view .LVU185 + 452:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 658 .loc 1 452 11 view .LVU186 + 451:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 659 .loc 1 451 15 is_stmt 0 view .LVU187 + 660 003c 0324 movs r4, #3 + 452:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 661 .loc 1 452 11 view .LVU188 + 662 003e 4DE0 b .L38 + 663 .LVL59: + 664 .L39: + 457:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 665 .loc 1 457 7 is_stmt 1 view .LVU189 + 457:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 666 .loc 1 457 18 is_stmt 0 view .LVU190 + 667 0040 4D78 ldrb r5, [r1, #1] @ zero_extendqisi2 + 668 0042 0B2D cmp r5, #11 + 669 0044 43D8 bhi .L43 + 670 0046 DFE805F0 tbb [pc, r5] + 671 .L45: + 672 004a 06 .byte (.L48-.L45)/2 + 673 004b 49 .byte (.L38-.L45)/2 + 674 004c 42 .byte (.L43-.L45)/2 + 675 004d 42 .byte (.L43-.L45)/2 + 676 004e 42 .byte (.L43-.L45)/2 + 677 004f 42 .byte (.L43-.L45)/2 + 678 0050 16 .byte (.L47-.L45)/2 + 679 0051 42 .byte (.L43-.L45)/2 + 680 0052 42 .byte (.L43-.L45)/2 + 681 0053 42 .byte (.L43-.L45)/2 + 682 0054 22 .byte (.L46-.L45)/2 + 683 0055 30 .byte (.L44-.L45)/2 + 684 .p2align 1 + 685 .L48: + 460:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 686 .loc 1 460 11 is_stmt 1 view .LVU191 + 460:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 687 .loc 1 460 19 is_stmt 0 view .LVU192 + 688 0056 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 689 .LVL60: + 460:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 690 .loc 1 460 19 view .LVU193 + 691 005a DBB2 uxtb r3, r3 + 460:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 692 .loc 1 460 14 view .LVU194 + 693 005c 032B cmp r3, #3 + ARM GAS /tmp/ccdtFdaF.s page 30 + + + 694 005e 03D0 beq .L56 + 466:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 695 .loc 1 466 13 is_stmt 1 view .LVU195 + 696 0060 FFF7FEFF bl USBD_CtlError + 697 .LVL61: + 467:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 698 .loc 1 467 13 view .LVU196 + 467:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 699 .loc 1 467 17 is_stmt 0 view .LVU197 + 700 0064 0324 movs r4, #3 + 701 0066 39E0 b .L38 + 702 .LVL62: + 703 .L56: + 462:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 704 .loc 1 462 13 is_stmt 1 view .LVU198 + 462:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 705 .loc 1 462 19 is_stmt 0 view .LVU199 + 706 0068 0222 movs r2, #2 + 707 006a 0DF10601 add r1, sp, #6 + 708 .LVL63: + 462:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 709 .loc 1 462 19 view .LVU200 + 710 006e FFF7FEFF bl USBD_CtlSendData + 711 .LVL64: + 427:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 712 .loc 1 427 22 view .LVU201 + 713 0072 2C46 mov r4, r5 + 714 0074 32E0 b .L38 + 715 .LVL65: + 716 .L47: + 472:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 717 .loc 1 472 11 is_stmt 1 view .LVU202 + 472:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 718 .loc 1 472 19 is_stmt 0 view .LVU203 + 719 0076 4B88 ldrh r3, [r1, #2] + 720 .LVL66: + 472:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 721 .loc 1 472 34 view .LVU204 + 722 0078 1B0A lsrs r3, r3, #8 + 472:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 723 .loc 1 472 14 view .LVU205 + 724 007a 212B cmp r3, #33 + 725 007c 2ED1 bne .L38 + 474:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** len = MIN(USB_AUDIO_DESC_SIZ, req->wLength); + 726 .loc 1 474 13 is_stmt 1 view .LVU206 + 727 .LVL67: + 475:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 728 .loc 1 475 13 view .LVU207 + 475:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 729 .loc 1 475 19 is_stmt 0 view .LVU208 + 730 007e CA88 ldrh r2, [r1, #6] + 731 .LVL68: + 477:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 732 .loc 1 477 13 is_stmt 1 view .LVU209 + 477:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 733 .loc 1 477 19 is_stmt 0 view .LVU210 + 734 0080 092A cmp r2, #9 + ARM GAS /tmp/ccdtFdaF.s page 31 + + + 735 0082 28BF it cs + 736 0084 0922 movcs r2, #9 + 737 .LVL69: + 477:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 738 .loc 1 477 19 view .LVU211 + 739 0086 1849 ldr r1, .L58 + 740 .LVL70: + 477:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 741 .loc 1 477 19 view .LVU212 + 742 0088 FFF7FEFF bl USBD_CtlSendData + 743 .LVL71: + 477:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 744 .loc 1 477 19 view .LVU213 + 745 008c 26E0 b .L38 + 746 .LVL72: + 747 .L46: + 482:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 748 .loc 1 482 11 is_stmt 1 view .LVU214 + 482:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 749 .loc 1 482 19 is_stmt 0 view .LVU215 + 750 008e 90F89C22 ldrb r2, [r0, #668] @ zero_extendqisi2 + 751 0092 D2B2 uxtb r2, r2 + 482:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 752 .loc 1 482 14 view .LVU216 + 753 0094 032A cmp r2, #3 + 754 0096 03D0 beq .L57 + 488:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 755 .loc 1 488 13 is_stmt 1 view .LVU217 + 756 0098 FFF7FEFF bl USBD_CtlError + 757 .LVL73: + 489:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 758 .loc 1 489 13 view .LVU218 + 489:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 759 .loc 1 489 17 is_stmt 0 view .LVU219 + 760 009c 0324 movs r4, #3 + 761 009e 1DE0 b .L38 + 762 .LVL74: + 763 .L57: + 484:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 764 .loc 1 484 13 is_stmt 1 view .LVU220 + 484:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 765 .loc 1 484 19 is_stmt 0 view .LVU221 + 766 00a0 0122 movs r2, #1 + 767 00a2 1946 mov r1, r3 + 768 .LVL75: + 484:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 769 .loc 1 484 19 view .LVU222 + 770 00a4 FFF7FEFF bl USBD_CtlSendData + 771 .LVL76: + 484:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 772 .loc 1 484 19 view .LVU223 + 773 00a8 18E0 b .L38 + 774 .LVL77: + 775 .L44: + 494:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 776 .loc 1 494 11 is_stmt 1 view .LVU224 + 494:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + ARM GAS /tmp/ccdtFdaF.s page 32 + + + 777 .loc 1 494 19 is_stmt 0 view .LVU225 + 778 00aa 90F89C52 ldrb r5, [r0, #668] @ zero_extendqisi2 + 779 00ae EDB2 uxtb r5, r5 + 494:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 780 .loc 1 494 14 view .LVU226 + 781 00b0 032D cmp r5, #3 + 782 00b2 08D1 bne .L51 + 496:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 783 .loc 1 496 13 is_stmt 1 view .LVU227 + 496:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 784 .loc 1 496 17 is_stmt 0 view .LVU228 + 785 00b4 8A78 ldrb r2, [r1, #2] @ zero_extendqisi2 + 496:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 786 .loc 1 496 16 view .LVU229 + 787 00b6 012A cmp r2, #1 + 788 00b8 01D8 bhi .L52 + 498:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 789 .loc 1 498 15 is_stmt 1 view .LVU230 + 498:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 790 .loc 1 498 35 is_stmt 0 view .LVU231 + 791 00ba 1A60 str r2, [r3] + 792 00bc 0EE0 b .L38 + 793 .L52: + 503:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 794 .loc 1 503 15 is_stmt 1 view .LVU232 + 795 00be FFF7FEFF bl USBD_CtlError + 796 .LVL78: + 504:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 797 .loc 1 504 15 view .LVU233 + 504:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 798 .loc 1 504 19 is_stmt 0 view .LVU234 + 799 00c2 2C46 mov r4, r5 + 800 00c4 0AE0 b .L38 + 801 .LVL79: + 802 .L51: + 509:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 803 .loc 1 509 13 is_stmt 1 view .LVU235 + 804 00c6 FFF7FEFF bl USBD_CtlError + 805 .LVL80: + 510:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 806 .loc 1 510 13 view .LVU236 + 510:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 807 .loc 1 510 17 is_stmt 0 view .LVU237 + 808 00ca 0324 movs r4, #3 + 809 00cc 06E0 b .L38 + 810 .LVL81: + 811 .L43: + 518:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 812 .loc 1 518 11 is_stmt 1 view .LVU238 + 813 00ce FFF7FEFF bl USBD_CtlError + 814 .LVL82: + 519:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 815 .loc 1 519 11 view .LVU239 + 520:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 816 .loc 1 520 11 view .LVU240 + 519:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 817 .loc 1 519 15 is_stmt 0 view .LVU241 + ARM GAS /tmp/ccdtFdaF.s page 33 + + + 818 00d2 0324 movs r4, #3 + 520:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 819 .loc 1 520 11 view .LVU242 + 820 00d4 02E0 b .L38 + 821 .LVL83: + 822 .L40: + 524:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** ret = USBD_FAIL; + 823 .loc 1 524 7 is_stmt 1 view .LVU243 + 824 00d6 FFF7FEFF bl USBD_CtlError + 825 .LVL84: + 525:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 826 .loc 1 525 7 view .LVU244 + 526:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 827 .loc 1 526 7 view .LVU245 + 525:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** break; + 828 .loc 1 525 11 is_stmt 0 view .LVU246 + 829 00da 0324 movs r4, #3 + 830 .LVL85: + 831 .L38: + 530:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 832 .loc 1 530 1 view .LVU247 + 833 00dc 2046 mov r0, r4 + 834 00de 03B0 add sp, sp, #12 + 835 .LCFI6: + 836 .cfi_remember_state + 837 .cfi_def_cfa_offset 12 + 838 @ sp needed + 839 00e0 30BD pop {r4, r5, pc} + 840 .LVL86: + 841 .L53: + 842 .LCFI7: + 843 .cfi_restore_state + 433:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 844 .loc 1 433 12 view .LVU248 + 845 00e2 0324 movs r4, #3 + 846 00e4 FAE7 b .L38 + 847 .L59: + 848 00e6 00BF .align 2 + 849 .L58: + 850 00e8 12000000 .word USBD_AUDIO_CfgDesc+18 + 851 .cfi_endproc + 852 .LFE335: + 854 .section .text.USBD_AUDIO_DeInit,"ax",%progbits + 855 .align 1 + 856 .syntax unified + 857 .thumb + 858 .thumb_func + 860 USBD_AUDIO_DeInit: + 861 .LVL87: + 862 .LFB334: + 394:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(cfgidx); + 863 .loc 1 394 1 is_stmt 1 view -0 + 864 .cfi_startproc + 865 @ args = 0, pretend = 0, frame = 0 + 866 @ frame_needed = 0, uses_anonymous_args = 0 + 394:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(cfgidx); + 867 .loc 1 394 1 is_stmt 0 view .LVU250 + ARM GAS /tmp/ccdtFdaF.s page 34 + + + 868 0000 10B5 push {r4, lr} + 869 .LCFI8: + 870 .cfi_def_cfa_offset 8 + 871 .cfi_offset 4, -8 + 872 .cfi_offset 14, -4 + 873 0002 0446 mov r4, r0 + 395:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 874 .loc 1 395 3 is_stmt 1 view .LVU251 + 398:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 0U; + 875 .loc 1 398 3 view .LVU252 + 398:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 0U; + 876 .loc 1 398 9 is_stmt 0 view .LVU253 + 877 0004 0121 movs r1, #1 + 878 .LVL88: + 398:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 0U; + 879 .loc 1 398 9 view .LVU254 + 880 0006 FFF7FEFF bl USBD_LL_CloseEP + 881 .LVL89: + 399:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].bInterval = 0U; + 882 .loc 1 399 3 is_stmt 1 view .LVU255 + 399:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].bInterval = 0U; + 883 .loc 1 399 45 is_stmt 0 view .LVU256 + 884 000a 0023 movs r3, #0 + 885 000c A4F87831 strh r3, [r4, #376] @ movhi + 400:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 886 .loc 1 400 3 is_stmt 1 view .LVU257 + 400:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 887 .loc 1 400 47 is_stmt 0 view .LVU258 + 888 0010 A4F87A31 strh r3, [r4, #378] @ movhi + 403:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 889 .loc 1 403 3 is_stmt 1 view .LVU259 + 403:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 890 .loc 1 403 11 is_stmt 0 view .LVU260 + 891 0014 D4F8BC32 ldr r3, [r4, #700] + 403:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 892 .loc 1 403 6 view .LVU261 + 893 0018 5BB1 cbz r3, .L61 + 405:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_free(pdev->pClassData); + 894 .loc 1 405 5 is_stmt 1 view .LVU262 + 405:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_free(pdev->pClassData); + 895 .loc 1 405 35 is_stmt 0 view .LVU263 + 896 001a D4F8C032 ldr r3, [r4, #704] + 405:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_free(pdev->pClassData); + 897 .loc 1 405 47 view .LVU264 + 898 001e 5B68 ldr r3, [r3, #4] + 405:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** (void)USBD_free(pdev->pClassData); + 899 .loc 1 405 6 view .LVU265 + 900 0020 0020 movs r0, #0 + 901 0022 9847 blx r3 + 902 .LVL90: + 406:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->pClassData = NULL; + 903 .loc 1 406 5 is_stmt 1 view .LVU266 + 904 0024 D4F8BC02 ldr r0, [r4, #700] + 905 0028 FFF7FEFF bl USBD_static_free + 906 .LVL91: + 407:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 907 .loc 1 407 5 view .LVU267 + ARM GAS /tmp/ccdtFdaF.s page 35 + + + 407:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 908 .loc 1 407 22 is_stmt 0 view .LVU268 + 909 002c 0023 movs r3, #0 + 910 002e C4F8BC32 str r3, [r4, #700] + 911 .L61: + 410:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 912 .loc 1 410 3 is_stmt 1 view .LVU269 + 411:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 913 .loc 1 411 1 is_stmt 0 view .LVU270 + 914 0032 0020 movs r0, #0 + 915 0034 10BD pop {r4, pc} + 411:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 916 .loc 1 411 1 view .LVU271 + 917 .cfi_endproc + 918 .LFE334: + 920 .section .text.USBD_AUDIO_Init,"ax",%progbits + 921 .align 1 + 922 .syntax unified + 923 .thumb + 924 .thumb_func + 926 USBD_AUDIO_Init: + 927 .LVL92: + 928 .LFB333: + 337:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(cfgidx); + 929 .loc 1 337 1 is_stmt 1 view -0 + 930 .cfi_startproc + 931 @ args = 0, pretend = 0, frame = 0 + 932 @ frame_needed = 0, uses_anonymous_args = 0 + 337:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** UNUSED(cfgidx); + 933 .loc 1 337 1 is_stmt 0 view .LVU273 + 934 0000 38B5 push {r3, r4, r5, lr} + 935 .LCFI9: + 936 .cfi_def_cfa_offset 16 + 937 .cfi_offset 3, -16 + 938 .cfi_offset 4, -12 + 939 .cfi_offset 5, -8 + 940 .cfi_offset 14, -4 + 941 0002 0446 mov r4, r0 + 338:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 942 .loc 1 338 3 is_stmt 1 view .LVU274 + 339:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 943 .loc 1 339 3 view .LVU275 + 342:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 944 .loc 1 342 3 view .LVU276 + 342:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 945 .loc 1 342 12 is_stmt 0 view .LVU277 + 946 0004 41F6D030 movw r0, #7120 + 947 .LVL93: + 342:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 948 .loc 1 342 12 view .LVU278 + 949 0008 FFF7FEFF bl USBD_static_malloc + 950 .LVL94: + 344:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 951 .loc 1 344 3 is_stmt 1 view .LVU279 + 344:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 952 .loc 1 344 6 is_stmt 0 view .LVU280 + 953 000c 68B3 cbz r0, .L70 + ARM GAS /tmp/ccdtFdaF.s page 36 + + + 954 000e 0546 mov r5, r0 + 350:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 955 .loc 1 350 3 is_stmt 1 view .LVU281 + 350:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 956 .loc 1 350 20 is_stmt 0 view .LVU282 + 957 0010 C4F8BC02 str r0, [r4, #700] + 352:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 958 .loc 1 352 3 is_stmt 1 view .LVU283 + 352:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 959 .loc 1 352 11 is_stmt 0 view .LVU284 + 960 0014 237C ldrb r3, [r4, #16] @ zero_extendqisi2 + 352:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 961 .loc 1 352 6 view .LVU285 + 962 0016 6BBB cbnz r3, .L66 + 354:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 963 .loc 1 354 5 is_stmt 1 view .LVU286 + 354:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 964 .loc 1 354 49 is_stmt 0 view .LVU287 + 965 0018 0123 movs r3, #1 + 966 001a A4F87A31 strh r3, [r4, #378] @ movhi + 967 .L67: + 362:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 1U; + 968 .loc 1 362 3 is_stmt 1 view .LVU288 + 362:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 1U; + 969 .loc 1 362 9 is_stmt 0 view .LVU289 + 970 001e 5823 movs r3, #88 + 971 0020 0122 movs r2, #1 + 972 0022 1146 mov r1, r2 + 973 0024 2046 mov r0, r4 + 974 .LVL95: + 362:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->ep_out[AUDIO_OUT_EP & 0xFU].is_used = 1U; + 975 .loc 1 362 9 view .LVU290 + 976 0026 FFF7FEFF bl USBD_LL_OpenEP + 977 .LVL96: + 363:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 978 .loc 1 363 3 is_stmt 1 view .LVU291 + 363:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 979 .loc 1 363 45 is_stmt 0 view .LVU292 + 980 002a 0123 movs r3, #1 + 981 002c A4F87831 strh r3, [r4, #376] @ movhi + 365:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->offset = AUDIO_OFFSET_UNKNOWN; + 982 .loc 1 365 3 is_stmt 1 view .LVU293 + 365:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->offset = AUDIO_OFFSET_UNKNOWN; + 983 .loc 1 365 23 is_stmt 0 view .LVU294 + 984 0030 0022 movs r2, #0 + 985 0032 2A60 str r2, [r5] + 366:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->wr_ptr = 0U; + 986 .loc 1 366 3 is_stmt 1 view .LVU295 + 366:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->wr_ptr = 0U; + 987 .loc 1 366 18 is_stmt 0 view .LVU296 + 988 0034 05F58053 add r3, r5, #4096 + 989 0038 0321 movs r1, #3 + 990 003a 83F8841B strb r1, [r3, #2948] + 367:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_ptr = 0U; + 991 .loc 1 367 3 is_stmt 1 view .LVU297 + 367:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_ptr = 0U; + 992 .loc 1 367 18 is_stmt 0 view .LVU298 + ARM GAS /tmp/ccdtFdaF.s page 37 + + + 993 003e A3F8882B strh r2, [r3, #2952] @ movhi + 368:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_enable = 0U; + 994 .loc 1 368 3 is_stmt 1 view .LVU299 + 368:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** haudio->rd_enable = 0U; + 995 .loc 1 368 18 is_stmt 0 view .LVU300 + 996 0042 A3F8862B strh r2, [r3, #2950] @ movhi + 369:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 997 .loc 1 369 3 is_stmt 1 view .LVU301 + 369:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 998 .loc 1 369 21 is_stmt 0 view .LVU302 + 999 0046 83F8852B strb r2, [r3, #2949] + 372:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_DEFAULT_VOLUME, + 1000 .loc 1 372 3 is_stmt 1 view .LVU303 + 372:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_DEFAULT_VOLUME, + 1001 .loc 1 372 37 is_stmt 0 view .LVU304 + 1002 004a D4F8C032 ldr r3, [r4, #704] + 372:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_DEFAULT_VOLUME, + 1003 .loc 1 372 49 view .LVU305 + 1004 004e 1B68 ldr r3, [r3] + 372:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_DEFAULT_VOLUME, + 1005 .loc 1 372 8 view .LVU306 + 1006 0050 4621 movs r1, #70 + 1007 0052 45F25460 movw r0, #22100 + 1008 0056 9847 blx r3 + 1009 .LVL97: + 372:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_DEFAULT_VOLUME, + 1010 .loc 1 372 6 view .LVU307 + 1011 0058 80B9 cbnz r0, .L68 + 380:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_PACKET); + 1012 .loc 1 380 3 is_stmt 1 view .LVU308 + 380:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** AUDIO_OUT_PACKET); + 1013 .loc 1 380 9 is_stmt 0 view .LVU309 + 1014 005a 5823 movs r3, #88 + 1015 005c 2A1D adds r2, r5, #4 + 1016 005e 0121 movs r1, #1 + 1017 0060 2046 mov r0, r4 + 1018 0062 FFF7FEFF bl USBD_LL_PrepareReceive + 1019 .LVL98: + 383:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1020 .loc 1 383 3 is_stmt 1 view .LVU310 + 383:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1021 .loc 1 383 10 is_stmt 0 view .LVU311 + 1022 0066 0020 movs r0, #0 + 1023 .LVL99: + 1024 .L65: + 384:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1025 .loc 1 384 1 view .LVU312 + 1026 0068 38BD pop {r3, r4, r5, pc} + 1027 .LVL100: + 1028 .L70: + 346:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_EMEM; + 1029 .loc 1 346 5 is_stmt 1 view .LVU313 + 346:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_EMEM; + 1030 .loc 1 346 22 is_stmt 0 view .LVU314 + 1031 006a 0023 movs r3, #0 + 1032 006c C4F8BC32 str r3, [r4, #700] + 347:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + ARM GAS /tmp/ccdtFdaF.s page 38 + + + 1033 .loc 1 347 5 is_stmt 1 view .LVU315 + 347:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1034 .loc 1 347 12 is_stmt 0 view .LVU316 + 1035 0070 0220 movs r0, #2 + 1036 .LVL101: + 347:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1037 .loc 1 347 12 view .LVU317 + 1038 0072 F9E7 b .L65 + 1039 .LVL102: + 1040 .L66: + 358:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1041 .loc 1 358 5 is_stmt 1 view .LVU318 + 358:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1042 .loc 1 358 49 is_stmt 0 view .LVU319 + 1043 0074 0123 movs r3, #1 + 1044 0076 A4F87A31 strh r3, [r4, #378] @ movhi + 1045 007a D0E7 b .L67 + 1046 .LVL103: + 1047 .L68: + 376:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1048 .loc 1 376 12 view .LVU320 + 1049 007c 0320 movs r0, #3 + 1050 007e F3E7 b .L65 + 1051 .cfi_endproc + 1052 .LFE333: + 1054 .section .text.USBD_AUDIO_Sync,"ax",%progbits + 1055 .align 1 + 1056 .global USBD_AUDIO_Sync + 1057 .syntax unified + 1058 .thumb + 1059 .thumb_func + 1061 USBD_AUDIO_Sync: + 1062 .LVL104: + 1063 .LFB341: + 626:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 1064 .loc 1 626 1 is_stmt 1 view -0 + 1065 .cfi_startproc + 1066 @ args = 0, pretend = 0, frame = 0 + 1067 @ frame_needed = 0, uses_anonymous_args = 0 + 626:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_HandleTypeDef *haudio; + 1068 .loc 1 626 1 is_stmt 0 view .LVU322 + 1069 0000 10B5 push {r4, lr} + 1070 .LCFI10: + 1071 .cfi_def_cfa_offset 8 + 1072 .cfi_offset 4, -8 + 1073 .cfi_offset 14, -4 + 627:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint32_t BufferSize = AUDIO_TOTAL_BUF_SIZE / 2U; + 1074 .loc 1 627 3 is_stmt 1 view .LVU323 + 628:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1075 .loc 1 628 3 view .LVU324 + 1076 .LVL105: + 630:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1077 .loc 1 630 3 view .LVU325 + 630:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1078 .loc 1 630 11 is_stmt 0 view .LVU326 + 1079 0002 D0F8BC42 ldr r4, [r0, #700] + 630:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + ARM GAS /tmp/ccdtFdaF.s page 39 + + + 1080 .loc 1 630 6 view .LVU327 + 1081 0006 CCB3 cbz r4, .L71 + 1082 0008 0B46 mov r3, r1 + 635:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1083 .loc 1 635 3 is_stmt 1 view .LVU328 + 1084 .LVL106: + 637:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1085 .loc 1 637 3 view .LVU329 + 637:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1086 .loc 1 637 18 is_stmt 0 view .LVU330 + 1087 000a 04F58052 add r2, r4, #4096 + 1088 000e 82F8841B strb r1, [r2, #2948] + 639:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1089 .loc 1 639 3 is_stmt 1 view .LVU331 + 639:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1090 .loc 1 639 13 is_stmt 0 view .LVU332 + 1091 0012 92F8852B ldrb r2, [r2, #2949] @ zero_extendqisi2 + 639:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1092 .loc 1 639 6 view .LVU333 + 1093 0016 012A cmp r2, #1 + 1094 0018 11D0 beq .L81 + 1095 .LVL107: + 1096 .L73: + 650:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1097 .loc 1 650 3 is_stmt 1 view .LVU334 + 650:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1098 .loc 1 650 13 is_stmt 0 view .LVU335 + 1099 001a 04F58052 add r2, r4, #4096 + 1100 001e B2F8861B ldrh r1, [r2, #2950] + 650:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1101 .loc 1 650 30 view .LVU336 + 1102 0022 B2F8882B ldrh r2, [r2, #2952] + 650:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1103 .loc 1 650 6 view .LVU337 + 1104 0026 9142 cmp r1, r2 + 1105 0028 1AD9 bls .L74 + 652:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1106 .loc 1 652 5 is_stmt 1 view .LVU338 + 652:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1107 .loc 1 652 25 is_stmt 0 view .LVU339 + 1108 002a 891A subs r1, r1, r2 + 652:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1109 .loc 1 652 8 view .LVU340 + 1110 002c 5729 cmp r1, #87 + 1111 002e 21DD ble .L76 + 658:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1112 .loc 1 658 7 is_stmt 1 view .LVU341 + 658:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1113 .loc 1 658 10 is_stmt 0 view .LVU342 + 1114 0030 41F62832 movw r2, #6952 + 1115 0034 9142 cmp r1, r2 + 1116 0036 22DC bgt .L77 + 628:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1117 .loc 1 628 12 view .LVU343 + 1118 0038 4FF45C61 mov r1, #3520 + 1119 003c 1CE0 b .L75 + 1120 .LVL108: + ARM GAS /tmp/ccdtFdaF.s page 40 + + + 1121 .L81: + 641:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1122 .loc 1 641 5 is_stmt 1 view .LVU344 + 641:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1123 .loc 1 641 11 is_stmt 0 view .LVU345 + 1124 003e 04F58051 add r1, r4, #4096 + 1125 .LVL109: + 641:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1126 .loc 1 641 11 view .LVU346 + 1127 0042 B1F8862B ldrh r2, [r1, #2950] + 641:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1128 .loc 1 641 20 view .LVU347 + 1129 0046 02F55C62 add r2, r2, #3520 + 1130 004a 92B2 uxth r2, r2 + 1131 004c A1F8862B strh r2, [r1, #2950] @ movhi + 643:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1132 .loc 1 643 5 is_stmt 1 view .LVU348 + 643:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1133 .loc 1 643 8 is_stmt 0 view .LVU349 + 1134 0050 B2F5DC5F cmp r2, #7040 + 1135 0054 E1D1 bne .L73 + 646:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1136 .loc 1 646 7 is_stmt 1 view .LVU350 + 646:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1137 .loc 1 646 22 is_stmt 0 view .LVU351 + 1138 0056 0A46 mov r2, r1 + 1139 0058 0021 movs r1, #0 + 1140 005a A2F8861B strh r1, [r2, #2950] @ movhi + 1141 005e DCE7 b .L73 + 1142 .L74: + 666:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1143 .loc 1 666 5 is_stmt 1 view .LVU352 + 666:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1144 .loc 1 666 25 is_stmt 0 view .LVU353 + 1145 0060 521A subs r2, r2, r1 + 666:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1146 .loc 1 666 8 view .LVU354 + 1147 0062 572A cmp r2, #87 + 1148 0064 0EDD ble .L78 + 672:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1149 .loc 1 672 7 is_stmt 1 view .LVU355 + 672:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1150 .loc 1 672 10 is_stmt 0 view .LVU356 + 1151 0066 41F62831 movw r1, #6952 + 1152 006a 8A42 cmp r2, r1 + 1153 006c 0DDC bgt .L79 + 628:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1154 .loc 1 628 12 view .LVU357 + 1155 006e 4FF45C61 mov r1, #3520 + 1156 0072 01E0 b .L75 + 1157 .L76: + 654:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1158 .loc 1 654 18 view .LVU358 + 1159 0074 40F6C451 movw r1, #3524 + 1160 .L75: + 1161 .LVL110: + 679:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + ARM GAS /tmp/ccdtFdaF.s page 41 + + + 1162 .loc 1 679 3 is_stmt 1 view .LVU359 + 679:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1163 .loc 1 679 6 is_stmt 0 view .LVU360 + 1164 0078 022B cmp r3, #2 + 1165 007a 09D0 beq .L82 + 1166 .LVL111: + 1167 .L71: + 685:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 1168 .loc 1 685 1 view .LVU361 + 1169 007c 10BD pop {r4, pc} + 1170 .LVL112: + 1171 .L77: + 660:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1172 .loc 1 660 20 view .LVU362 + 1173 007e 40F6BC51 movw r1, #3516 + 1174 0082 F9E7 b .L75 + 1175 .L78: + 668:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1176 .loc 1 668 18 view .LVU363 + 1177 0084 40F6BC51 movw r1, #3516 + 1178 0088 F6E7 b .L75 + 1179 .L79: + 674:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1180 .loc 1 674 20 view .LVU364 + 1181 008a 40F6C451 movw r1, #3524 + 1182 008e F3E7 b .L75 + 1183 .LVL113: + 1184 .L82: + 681:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize, AUDIO_CMD_PLAY); + 1185 .loc 1 681 5 is_stmt 1 view .LVU365 + 681:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize, AUDIO_CMD_PLAY); + 1186 .loc 1 681 35 is_stmt 0 view .LVU366 + 1187 0090 D0F8C032 ldr r3, [r0, #704] + 681:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize, AUDIO_CMD_PLAY); + 1188 .loc 1 681 47 view .LVU367 + 1189 0094 9B68 ldr r3, [r3, #8] + 681:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize, AUDIO_CMD_PLAY); + 1190 .loc 1 681 6 view .LVU368 + 1191 0096 0222 movs r2, #2 + 1192 0098 201D adds r0, r4, #4 + 1193 .LVL114: + 681:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** BufferSize, AUDIO_CMD_PLAY); + 1194 .loc 1 681 6 view .LVU369 + 1195 009a 9847 blx r3 + 1196 .LVL115: + 683:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1197 .loc 1 683 5 is_stmt 1 view .LVU370 + 683:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1198 .loc 1 683 20 is_stmt 0 view .LVU371 + 1199 009c 04F58054 add r4, r4, #4096 + 1200 .LVL116: + 683:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1201 .loc 1 683 20 view .LVU372 + 1202 00a0 0023 movs r3, #0 + 1203 00a2 84F8843B strb r3, [r4, #2948] + 1204 00a6 E9E7 b .L71 + 1205 .cfi_endproc + ARM GAS /tmp/ccdtFdaF.s page 42 + + + 1206 .LFE341: + 1208 .section .text.USBD_AUDIO_RegisterInterface,"ax",%progbits + 1209 .align 1 + 1210 .global USBD_AUDIO_RegisterInterface + 1211 .syntax unified + 1212 .thumb + 1213 .thumb_func + 1215 USBD_AUDIO_RegisterInterface: + 1216 .LVL117: + 1217 .LFB348: + 841:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 842:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** /** + 843:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @brief USBD_AUDIO_RegisterInterface + 844:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @param fops: Audio interface callback + 845:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** * @retval status + 846:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** */ + 847:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** uint8_t USBD_AUDIO_RegisterInterface(USBD_HandleTypeDef *pdev, + 848:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** USBD_AUDIO_ItfTypeDef *fops) + 849:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 1218 .loc 1 849 1 is_stmt 1 view -0 + 1219 .cfi_startproc + 1220 @ args = 0, pretend = 0, frame = 0 + 1221 @ frame_needed = 0, uses_anonymous_args = 0 + 1222 @ link register save eliminated. + 850:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** if (fops == NULL) + 1223 .loc 1 850 3 view .LVU374 + 1224 .loc 1 850 6 is_stmt 0 view .LVU375 + 1225 0000 19B1 cbz r1, .L85 + 851:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** { + 852:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_FAIL; + 853:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 854:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 855:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** pdev->pUserData = fops; + 1226 .loc 1 855 3 is_stmt 1 view .LVU376 + 1227 .loc 1 855 19 is_stmt 0 view .LVU377 + 1228 0002 C0F8C012 str r1, [r0, #704] + 856:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** + 857:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** return (uint8_t)USBD_OK; + 1229 .loc 1 857 3 is_stmt 1 view .LVU378 + 1230 .loc 1 857 10 is_stmt 0 view .LVU379 + 1231 0006 0020 movs r0, #0 + 1232 .LVL118: + 1233 .loc 1 857 10 view .LVU380 + 1234 0008 7047 bx lr + 1235 .LVL119: + 1236 .L85: + 852:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1237 .loc 1 852 12 view .LVU381 + 1238 000a 0320 movs r0, #3 + 1239 .LVL120: + 858:Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c **** } + 1240 .loc 1 858 1 view .LVU382 + 1241 000c 7047 bx lr + 1242 .cfi_endproc + 1243 .LFE348: + 1245 .section .data.USBD_AUDIO_DeviceQualifierDesc,"aw" + 1246 .align 2 + ARM GAS /tmp/ccdtFdaF.s page 43 + + + 1249 USBD_AUDIO_DeviceQualifierDesc: + 1250 0000 0A060002 .ascii "\012\006\000\002\000\000\000@\001\000" + 1250 00000040 + 1250 0100 + 1251 .section .data.USBD_AUDIO_CfgDesc,"aw" + 1252 .align 2 + 1255 USBD_AUDIO_CfgDesc: + 1256 0000 09026D00 .ascii "\011\002m\000\002\001\000\3002\011\004\000\000\000\001" + 1256 020100C0 + 1256 32090400 + 1256 000001 + 1257 000f 01000009 .ascii "\001\000\000\011$\001\000\001'\000\001\001\014$\002" + 1257 24010001 + 1257 27000101 + 1257 0C2402 + 1258 001e 01010100 .ascii "\001\001\001\000\001\000\000\000\000\011$\006\002\001" + 1258 01000000 + 1258 00092406 + 1258 0201 + 1259 002c 01010000 .ascii "\001\001\000\000\011$\003\003\001\003\000\002\000\011" + 1259 09240303 + 1259 01030002 + 1259 0009 + 1260 003a 04010000 .ascii "\004\001\000\000\001\002\000\000\011\004\001\001\001" + 1260 01020000 + 1260 09040101 + 1260 01 + 1261 0047 01020000 .ascii "\001\002\000\000\007$\001\001\001\001\000\013$\002\001" + 1261 07240101 + 1261 0101000B + 1261 240201 + 1262 0056 02021001 .ascii "\002\002\020\001TV\000\011\005\001\001X\000\001\000" + 1262 54560009 + 1262 05010158 + 1262 000100 + 1263 0065 00072501 .ascii "\000\007%\001\000\000\000\000" + 1263 00000000 + 1264 .global USBD_AUDIO + 1265 .section .data.USBD_AUDIO,"aw" + 1266 .align 2 + 1269 USBD_AUDIO: + 1270 0000 00000000 .word USBD_AUDIO_Init + 1271 0004 00000000 .word USBD_AUDIO_DeInit + 1272 0008 00000000 .word USBD_AUDIO_Setup + 1273 000c 00000000 .word USBD_AUDIO_EP0_TxReady + 1274 0010 00000000 .word USBD_AUDIO_EP0_RxReady + 1275 0014 00000000 .word USBD_AUDIO_DataIn + 1276 0018 00000000 .word USBD_AUDIO_DataOut + 1277 001c 00000000 .word USBD_AUDIO_SOF + 1278 0020 00000000 .word USBD_AUDIO_IsoINIncomplete + 1279 0024 00000000 .word USBD_AUDIO_IsoOutIncomplete + 1280 0028 00000000 .word USBD_AUDIO_GetCfgDesc + 1281 002c 00000000 .word USBD_AUDIO_GetCfgDesc + 1282 0030 00000000 .word USBD_AUDIO_GetCfgDesc + 1283 0034 00000000 .word USBD_AUDIO_GetDeviceQualifierDesc + 1284 .text + 1285 .Letext0: + ARM GAS /tmp/ccdtFdaF.s page 44 + + + 1286 .file 2 "/usr/include/newlib/machine/_default_types.h" + 1287 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stddef.h" + 1288 .file 4 "/usr/include/newlib/sys/_stdint.h" + 1289 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 1290 .file 6 "Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h" + 1291 .file 7 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" + 1292 .file 8 "Inc/usbd_conf.h" + 1293 .file 9 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h" + 1294 .file 10 "/usr/include/newlib/string.h" + 1295 .file 11 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" + 1296 .file 12 "" + ARM GAS /tmp/ccdtFdaF.s page 45 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_audio.c + /tmp/ccdtFdaF.s:21 .text.USBD_AUDIO_GetCfgDesc:00000000 $t + /tmp/ccdtFdaF.s:26 .text.USBD_AUDIO_GetCfgDesc:00000000 USBD_AUDIO_GetCfgDesc + /tmp/ccdtFdaF.s:47 .text.USBD_AUDIO_GetCfgDesc:00000008 $d + /tmp/ccdtFdaF.s:1255 .data.USBD_AUDIO_CfgDesc:00000000 USBD_AUDIO_CfgDesc + /tmp/ccdtFdaF.s:52 .text.USBD_AUDIO_DataIn:00000000 $t + /tmp/ccdtFdaF.s:57 .text.USBD_AUDIO_DataIn:00000000 USBD_AUDIO_DataIn + /tmp/ccdtFdaF.s:77 .text.USBD_AUDIO_EP0_RxReady:00000000 $t + /tmp/ccdtFdaF.s:82 .text.USBD_AUDIO_EP0_RxReady:00000000 USBD_AUDIO_EP0_RxReady + /tmp/ccdtFdaF.s:165 .text.USBD_AUDIO_EP0_TxReady:00000000 $t + /tmp/ccdtFdaF.s:170 .text.USBD_AUDIO_EP0_TxReady:00000000 USBD_AUDIO_EP0_TxReady + /tmp/ccdtFdaF.s:189 .text.USBD_AUDIO_SOF:00000000 $t + /tmp/ccdtFdaF.s:194 .text.USBD_AUDIO_SOF:00000000 USBD_AUDIO_SOF + /tmp/ccdtFdaF.s:213 .text.USBD_AUDIO_IsoINIncomplete:00000000 $t + /tmp/ccdtFdaF.s:218 .text.USBD_AUDIO_IsoINIncomplete:00000000 USBD_AUDIO_IsoINIncomplete + /tmp/ccdtFdaF.s:238 .text.USBD_AUDIO_IsoOutIncomplete:00000000 $t + /tmp/ccdtFdaF.s:243 .text.USBD_AUDIO_IsoOutIncomplete:00000000 USBD_AUDIO_IsoOutIncomplete + /tmp/ccdtFdaF.s:263 .text.USBD_AUDIO_GetDeviceQualifierDesc:00000000 $t + /tmp/ccdtFdaF.s:268 .text.USBD_AUDIO_GetDeviceQualifierDesc:00000000 USBD_AUDIO_GetDeviceQualifierDesc + /tmp/ccdtFdaF.s:289 .text.USBD_AUDIO_GetDeviceQualifierDesc:00000008 $d + /tmp/ccdtFdaF.s:1249 .data.USBD_AUDIO_DeviceQualifierDesc:00000000 USBD_AUDIO_DeviceQualifierDesc + /tmp/ccdtFdaF.s:294 .text.USBD_AUDIO_DataOut:00000000 $t + /tmp/ccdtFdaF.s:299 .text.USBD_AUDIO_DataOut:00000000 USBD_AUDIO_DataOut + /tmp/ccdtFdaF.s:447 .text.AUDIO_REQ_GetCurrent:00000000 $t + /tmp/ccdtFdaF.s:452 .text.AUDIO_REQ_GetCurrent:00000000 AUDIO_REQ_GetCurrent + /tmp/ccdtFdaF.s:507 .text.AUDIO_REQ_SetCurrent:00000000 $t + /tmp/ccdtFdaF.s:512 .text.AUDIO_REQ_SetCurrent:00000000 AUDIO_REQ_SetCurrent + /tmp/ccdtFdaF.s:578 .text.USBD_AUDIO_Setup:00000000 $t + /tmp/ccdtFdaF.s:583 .text.USBD_AUDIO_Setup:00000000 USBD_AUDIO_Setup + /tmp/ccdtFdaF.s:672 .text.USBD_AUDIO_Setup:0000004a $d + /tmp/ccdtFdaF.s:684 .text.USBD_AUDIO_Setup:00000056 $t + /tmp/ccdtFdaF.s:850 .text.USBD_AUDIO_Setup:000000e8 $d + /tmp/ccdtFdaF.s:855 .text.USBD_AUDIO_DeInit:00000000 $t + /tmp/ccdtFdaF.s:860 .text.USBD_AUDIO_DeInit:00000000 USBD_AUDIO_DeInit + /tmp/ccdtFdaF.s:921 .text.USBD_AUDIO_Init:00000000 $t + /tmp/ccdtFdaF.s:926 .text.USBD_AUDIO_Init:00000000 USBD_AUDIO_Init + /tmp/ccdtFdaF.s:1055 .text.USBD_AUDIO_Sync:00000000 $t + /tmp/ccdtFdaF.s:1061 .text.USBD_AUDIO_Sync:00000000 USBD_AUDIO_Sync + /tmp/ccdtFdaF.s:1209 .text.USBD_AUDIO_RegisterInterface:00000000 $t + /tmp/ccdtFdaF.s:1215 .text.USBD_AUDIO_RegisterInterface:00000000 USBD_AUDIO_RegisterInterface + /tmp/ccdtFdaF.s:1246 .data.USBD_AUDIO_DeviceQualifierDesc:00000000 $d + /tmp/ccdtFdaF.s:1252 .data.USBD_AUDIO_CfgDesc:00000000 $d + /tmp/ccdtFdaF.s:1269 .data.USBD_AUDIO:00000000 USBD_AUDIO + /tmp/ccdtFdaF.s:1266 .data.USBD_AUDIO:00000000 $d + +UNDEFINED SYMBOLS +USBD_LL_GetRxDataSize +USBD_LL_PrepareReceive +memset +USBD_CtlSendData +USBD_CtlPrepareRx +USBD_CtlError +USBD_LL_CloseEP +USBD_static_free +USBD_static_malloc +USBD_LL_OpenEP + ARM GAS /tmp/ccdtFdaF.s page 46 + + diff --git a/squeow_sw/build/usbd_audio.o b/squeow_sw/build/usbd_audio.o new file mode 100644 index 0000000000000000000000000000000000000000..09417e2d3baf2cc96d1a82ee9054b9f97c0adbb6 GIT binary patch literal 26716 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 N>%Pb^J{m^vKLKS2*C+r0 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usbd_audio_if.d b/squeow_sw/build/usbd_audio_if.d new file mode 100644 index 0000000..883b53a --- /dev/null +++ b/squeow_sw/build/usbd_audio_if.d @@ -0,0 +1,87 @@ +build/usbd_audio_if.o: Src/usbd_audio_if.c Inc/usbd_audio_if.h \ + Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + Inc/usbd_conf.h Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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 +Inc/usbd_audio_if.h: +Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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: diff --git a/squeow_sw/build/usbd_audio_if.lst b/squeow_sw/build/usbd_audio_if.lst new file mode 100644 index 0000000..1420bb6 --- /dev/null +++ b/squeow_sw/build/usbd_audio_if.lst @@ -0,0 +1,588 @@ +ARM GAS /tmp/ccLD46hm.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usbd_audio_if.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/usbd_audio_if.c" + 20 .section .text.AUDIO_Init_FS,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 AUDIO_Init_FS: + 27 .LVL0: + 28 .LFB333: + 1:Src/usbd_audio_if.c **** /* USER CODE BEGIN Header */ + 2:Src/usbd_audio_if.c **** /** + 3:Src/usbd_audio_if.c **** ****************************************************************************** + 4:Src/usbd_audio_if.c **** * @file : usbd_audio_if.c + 5:Src/usbd_audio_if.c **** * @version : v3.0_Cube + 6:Src/usbd_audio_if.c **** * @brief : Generic media access layer. + 7:Src/usbd_audio_if.c **** ****************************************************************************** + 8:Src/usbd_audio_if.c **** * @attention + 9:Src/usbd_audio_if.c **** * + 10:Src/usbd_audio_if.c **** * Copyright (c) 2022 STMicroelectronics. + 11:Src/usbd_audio_if.c **** * All rights reserved. + 12:Src/usbd_audio_if.c **** * + 13:Src/usbd_audio_if.c **** * This software is licensed under terms that can be found in the LICENSE file + 14:Src/usbd_audio_if.c **** * in the root directory of this software component. + 15:Src/usbd_audio_if.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 16:Src/usbd_audio_if.c **** * + 17:Src/usbd_audio_if.c **** ****************************************************************************** + 18:Src/usbd_audio_if.c **** */ + 19:Src/usbd_audio_if.c **** /* USER CODE END Header */ + 20:Src/usbd_audio_if.c **** + 21:Src/usbd_audio_if.c **** /* Includes ------------------------------------------------------------------*/ + 22:Src/usbd_audio_if.c **** #include "usbd_audio_if.h" + 23:Src/usbd_audio_if.c **** + 24:Src/usbd_audio_if.c **** /* USER CODE BEGIN INCLUDE */ + 25:Src/usbd_audio_if.c **** + 26:Src/usbd_audio_if.c **** /* USER CODE END INCLUDE */ + 27:Src/usbd_audio_if.c **** + 28:Src/usbd_audio_if.c **** /* Private typedef -----------------------------------------------------------*/ + 29:Src/usbd_audio_if.c **** /* Private define ------------------------------------------------------------*/ + 30:Src/usbd_audio_if.c **** /* Private macro -------------------------------------------------------------*/ + ARM GAS /tmp/ccLD46hm.s page 2 + + + 31:Src/usbd_audio_if.c **** + 32:Src/usbd_audio_if.c **** /* USER CODE BEGIN PV */ + 33:Src/usbd_audio_if.c **** /* Private variables ---------------------------------------------------------*/ + 34:Src/usbd_audio_if.c **** + 35:Src/usbd_audio_if.c **** /* USER CODE END PV */ + 36:Src/usbd_audio_if.c **** + 37:Src/usbd_audio_if.c **** /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + 38:Src/usbd_audio_if.c **** * @brief Usb device library. + 39:Src/usbd_audio_if.c **** * @{ + 40:Src/usbd_audio_if.c **** */ + 41:Src/usbd_audio_if.c **** + 42:Src/usbd_audio_if.c **** /** @addtogroup USBD_AUDIO_IF + 43:Src/usbd_audio_if.c **** * @{ + 44:Src/usbd_audio_if.c **** */ + 45:Src/usbd_audio_if.c **** + 46:Src/usbd_audio_if.c **** /** @defgroup USBD_AUDIO_IF_Private_TypesDefinitions USBD_AUDIO_IF_Private_TypesDefinitions + 47:Src/usbd_audio_if.c **** * @brief Private types. + 48:Src/usbd_audio_if.c **** * @{ + 49:Src/usbd_audio_if.c **** */ + 50:Src/usbd_audio_if.c **** + 51:Src/usbd_audio_if.c **** /* USER CODE BEGIN PRIVATE_TYPES */ + 52:Src/usbd_audio_if.c **** + 53:Src/usbd_audio_if.c **** /* USER CODE END PRIVATE_TYPES */ + 54:Src/usbd_audio_if.c **** + 55:Src/usbd_audio_if.c **** /** + 56:Src/usbd_audio_if.c **** * @} + 57:Src/usbd_audio_if.c **** */ + 58:Src/usbd_audio_if.c **** + 59:Src/usbd_audio_if.c **** /** @defgroup USBD_AUDIO_IF_Private_Defines USBD_AUDIO_IF_Private_Defines + 60:Src/usbd_audio_if.c **** * @brief Private defines. + 61:Src/usbd_audio_if.c **** * @{ + 62:Src/usbd_audio_if.c **** */ + 63:Src/usbd_audio_if.c **** + 64:Src/usbd_audio_if.c **** /* USER CODE BEGIN PRIVATE_DEFINES */ + 65:Src/usbd_audio_if.c **** + 66:Src/usbd_audio_if.c **** /* USER CODE END PRIVATE_DEFINES */ + 67:Src/usbd_audio_if.c **** + 68:Src/usbd_audio_if.c **** /** + 69:Src/usbd_audio_if.c **** * @} + 70:Src/usbd_audio_if.c **** */ + 71:Src/usbd_audio_if.c **** + 72:Src/usbd_audio_if.c **** /** @defgroup USBD_AUDIO_IF_Private_Macros USBD_AUDIO_IF_Private_Macros + 73:Src/usbd_audio_if.c **** * @brief Private macros. + 74:Src/usbd_audio_if.c **** * @{ + 75:Src/usbd_audio_if.c **** */ + 76:Src/usbd_audio_if.c **** + 77:Src/usbd_audio_if.c **** /* USER CODE BEGIN PRIVATE_MACRO */ + 78:Src/usbd_audio_if.c **** + 79:Src/usbd_audio_if.c **** /* USER CODE END PRIVATE_MACRO */ + 80:Src/usbd_audio_if.c **** + 81:Src/usbd_audio_if.c **** /** + 82:Src/usbd_audio_if.c **** * @} + 83:Src/usbd_audio_if.c **** */ + 84:Src/usbd_audio_if.c **** + 85:Src/usbd_audio_if.c **** /** @defgroup USBD_AUDIO_IF_Private_Variables USBD_AUDIO_IF_Private_Variables + 86:Src/usbd_audio_if.c **** * @brief Private variables. + 87:Src/usbd_audio_if.c **** * @{ + ARM GAS /tmp/ccLD46hm.s page 3 + + + 88:Src/usbd_audio_if.c **** */ + 89:Src/usbd_audio_if.c **** + 90:Src/usbd_audio_if.c **** /* USER CODE BEGIN PRIVATE_VARIABLES */ + 91:Src/usbd_audio_if.c **** + 92:Src/usbd_audio_if.c **** /* USER CODE END PRIVATE_VARIABLES */ + 93:Src/usbd_audio_if.c **** + 94:Src/usbd_audio_if.c **** /** + 95:Src/usbd_audio_if.c **** * @} + 96:Src/usbd_audio_if.c **** */ + 97:Src/usbd_audio_if.c **** + 98:Src/usbd_audio_if.c **** /** @defgroup USBD_AUDIO_IF_Exported_Variables USBD_AUDIO_IF_Exported_Variables + 99:Src/usbd_audio_if.c **** * @brief Public variables. + 100:Src/usbd_audio_if.c **** * @{ + 101:Src/usbd_audio_if.c **** */ + 102:Src/usbd_audio_if.c **** + 103:Src/usbd_audio_if.c **** extern USBD_HandleTypeDef hUsbDeviceFS; + 104:Src/usbd_audio_if.c **** + 105:Src/usbd_audio_if.c **** /* USER CODE BEGIN EXPORTED_VARIABLES */ + 106:Src/usbd_audio_if.c **** + 107:Src/usbd_audio_if.c **** /* USER CODE END EXPORTED_VARIABLES */ + 108:Src/usbd_audio_if.c **** + 109:Src/usbd_audio_if.c **** /** + 110:Src/usbd_audio_if.c **** * @} + 111:Src/usbd_audio_if.c **** */ + 112:Src/usbd_audio_if.c **** + 113:Src/usbd_audio_if.c **** /** @defgroup USBD_AUDIO_IF_Private_FunctionPrototypes USBD_AUDIO_IF_Private_FunctionPrototypes + 114:Src/usbd_audio_if.c **** * @brief Private functions declaration. + 115:Src/usbd_audio_if.c **** * @{ + 116:Src/usbd_audio_if.c **** */ + 117:Src/usbd_audio_if.c **** + 118:Src/usbd_audio_if.c **** static int8_t AUDIO_Init_FS(uint32_t AudioFreq, uint32_t Volume, uint32_t options); + 119:Src/usbd_audio_if.c **** static int8_t AUDIO_DeInit_FS(uint32_t options); + 120:Src/usbd_audio_if.c **** static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd); + 121:Src/usbd_audio_if.c **** static int8_t AUDIO_VolumeCtl_FS(uint8_t vol); + 122:Src/usbd_audio_if.c **** static int8_t AUDIO_MuteCtl_FS(uint8_t cmd); + 123:Src/usbd_audio_if.c **** static int8_t AUDIO_PeriodicTC_FS(uint8_t *pbuf, uint32_t size, uint8_t cmd); + 124:Src/usbd_audio_if.c **** static int8_t AUDIO_GetState_FS(void); + 125:Src/usbd_audio_if.c **** + 126:Src/usbd_audio_if.c **** /* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ + 127:Src/usbd_audio_if.c **** + 128:Src/usbd_audio_if.c **** /* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ + 129:Src/usbd_audio_if.c **** + 130:Src/usbd_audio_if.c **** /** + 131:Src/usbd_audio_if.c **** * @} + 132:Src/usbd_audio_if.c **** */ + 133:Src/usbd_audio_if.c **** + 134:Src/usbd_audio_if.c **** USBD_AUDIO_ItfTypeDef USBD_AUDIO_fops_FS = + 135:Src/usbd_audio_if.c **** { + 136:Src/usbd_audio_if.c **** AUDIO_Init_FS, + 137:Src/usbd_audio_if.c **** AUDIO_DeInit_FS, + 138:Src/usbd_audio_if.c **** AUDIO_AudioCmd_FS, + 139:Src/usbd_audio_if.c **** AUDIO_VolumeCtl_FS, + 140:Src/usbd_audio_if.c **** AUDIO_MuteCtl_FS, + 141:Src/usbd_audio_if.c **** AUDIO_PeriodicTC_FS, + 142:Src/usbd_audio_if.c **** AUDIO_GetState_FS, + 143:Src/usbd_audio_if.c **** }; + 144:Src/usbd_audio_if.c **** + ARM GAS /tmp/ccLD46hm.s page 4 + + + 145:Src/usbd_audio_if.c **** /* Private functions ---------------------------------------------------------*/ + 146:Src/usbd_audio_if.c **** /** + 147:Src/usbd_audio_if.c **** * @brief Initializes the AUDIO media low layer over USB FS IP + 148:Src/usbd_audio_if.c **** * @param AudioFreq: Audio frequency used to play the audio stream. + 149:Src/usbd_audio_if.c **** * @param Volume: Initial volume level (from 0 (Mute) to 100 (Max)) + 150:Src/usbd_audio_if.c **** * @param options: Reserved for future use + 151:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 152:Src/usbd_audio_if.c **** */ + 153:Src/usbd_audio_if.c **** static int8_t AUDIO_Init_FS(uint32_t AudioFreq, uint32_t Volume, uint32_t options) + 154:Src/usbd_audio_if.c **** { + 29 .loc 1 154 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 155:Src/usbd_audio_if.c **** /* USER CODE BEGIN 0 */ + 156:Src/usbd_audio_if.c **** UNUSED(AudioFreq); + 34 .loc 1 156 3 view .LVU1 + 157:Src/usbd_audio_if.c **** UNUSED(Volume); + 35 .loc 1 157 3 view .LVU2 + 158:Src/usbd_audio_if.c **** UNUSED(options); + 36 .loc 1 158 3 view .LVU3 + 159:Src/usbd_audio_if.c **** return (USBD_OK); + 37 .loc 1 159 3 view .LVU4 + 160:Src/usbd_audio_if.c **** /* USER CODE END 0 */ + 161:Src/usbd_audio_if.c **** } + 38 .loc 1 161 1 is_stmt 0 view .LVU5 + 39 0000 0020 movs r0, #0 + 40 .LVL1: + 41 .loc 1 161 1 view .LVU6 + 42 0002 7047 bx lr + 43 .cfi_endproc + 44 .LFE333: + 46 .section .text.AUDIO_DeInit_FS,"ax",%progbits + 47 .align 1 + 48 .syntax unified + 49 .thumb + 50 .thumb_func + 52 AUDIO_DeInit_FS: + 53 .LVL2: + 54 .LFB334: + 162:Src/usbd_audio_if.c **** + 163:Src/usbd_audio_if.c **** /** + 164:Src/usbd_audio_if.c **** * @brief De-Initializes the AUDIO media low layer + 165:Src/usbd_audio_if.c **** * @param options: Reserved for future use + 166:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 167:Src/usbd_audio_if.c **** */ + 168:Src/usbd_audio_if.c **** static int8_t AUDIO_DeInit_FS(uint32_t options) + 169:Src/usbd_audio_if.c **** { + 55 .loc 1 169 1 is_stmt 1 view -0 + 56 .cfi_startproc + 57 @ args = 0, pretend = 0, frame = 0 + 58 @ frame_needed = 0, uses_anonymous_args = 0 + 59 @ link register save eliminated. + 170:Src/usbd_audio_if.c **** /* USER CODE BEGIN 1 */ + 171:Src/usbd_audio_if.c **** UNUSED(options); + 60 .loc 1 171 3 view .LVU8 + ARM GAS /tmp/ccLD46hm.s page 5 + + + 172:Src/usbd_audio_if.c **** return (USBD_OK); + 61 .loc 1 172 3 view .LVU9 + 173:Src/usbd_audio_if.c **** /* USER CODE END 1 */ + 174:Src/usbd_audio_if.c **** } + 62 .loc 1 174 1 is_stmt 0 view .LVU10 + 63 0000 0020 movs r0, #0 + 64 .LVL3: + 65 .loc 1 174 1 view .LVU11 + 66 0002 7047 bx lr + 67 .cfi_endproc + 68 .LFE334: + 70 .section .text.AUDIO_AudioCmd_FS,"ax",%progbits + 71 .align 1 + 72 .syntax unified + 73 .thumb + 74 .thumb_func + 76 AUDIO_AudioCmd_FS: + 77 .LVL4: + 78 .LFB335: + 175:Src/usbd_audio_if.c **** + 176:Src/usbd_audio_if.c **** /** + 177:Src/usbd_audio_if.c **** * @brief Handles AUDIO command. + 178:Src/usbd_audio_if.c **** * @param pbuf: Pointer to buffer of data to be sent + 179:Src/usbd_audio_if.c **** * @param size: Number of data to be sent (in bytes) + 180:Src/usbd_audio_if.c **** * @param cmd: Command opcode + 181:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 182:Src/usbd_audio_if.c **** */ + 183:Src/usbd_audio_if.c **** static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd) + 184:Src/usbd_audio_if.c **** { + 79 .loc 1 184 1 is_stmt 1 view -0 + 80 .cfi_startproc + 81 @ args = 0, pretend = 0, frame = 0 + 82 @ frame_needed = 0, uses_anonymous_args = 0 + 83 @ link register save eliminated. + 185:Src/usbd_audio_if.c **** /* USER CODE BEGIN 2 */ + 186:Src/usbd_audio_if.c **** switch(cmd) + 84 .loc 1 186 3 view .LVU13 + 187:Src/usbd_audio_if.c **** { + 188:Src/usbd_audio_if.c **** case AUDIO_CMD_START: + 189:Src/usbd_audio_if.c **** break; + 190:Src/usbd_audio_if.c **** + 191:Src/usbd_audio_if.c **** case AUDIO_CMD_PLAY: + 192:Src/usbd_audio_if.c **** break; + 193:Src/usbd_audio_if.c **** } + 194:Src/usbd_audio_if.c **** UNUSED(pbuf); + 85 .loc 1 194 3 view .LVU14 + 195:Src/usbd_audio_if.c **** UNUSED(size); + 86 .loc 1 195 3 view .LVU15 + 196:Src/usbd_audio_if.c **** UNUSED(cmd); + 87 .loc 1 196 3 view .LVU16 + 197:Src/usbd_audio_if.c **** return (USBD_OK); + 88 .loc 1 197 3 view .LVU17 + 198:Src/usbd_audio_if.c **** /* USER CODE END 2 */ + 199:Src/usbd_audio_if.c **** } + 89 .loc 1 199 1 is_stmt 0 view .LVU18 + 90 0000 0020 movs r0, #0 + 91 .LVL5: + ARM GAS /tmp/ccLD46hm.s page 6 + + + 92 .loc 1 199 1 view .LVU19 + 93 0002 7047 bx lr + 94 .cfi_endproc + 95 .LFE335: + 97 .section .text.AUDIO_VolumeCtl_FS,"ax",%progbits + 98 .align 1 + 99 .syntax unified + 100 .thumb + 101 .thumb_func + 103 AUDIO_VolumeCtl_FS: + 104 .LVL6: + 105 .LFB336: + 200:Src/usbd_audio_if.c **** + 201:Src/usbd_audio_if.c **** /** + 202:Src/usbd_audio_if.c **** * @brief Controls AUDIO Volume. + 203:Src/usbd_audio_if.c **** * @param vol: volume level (0..100) + 204:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 205:Src/usbd_audio_if.c **** */ + 206:Src/usbd_audio_if.c **** static int8_t AUDIO_VolumeCtl_FS(uint8_t vol) + 207:Src/usbd_audio_if.c **** { + 106 .loc 1 207 1 is_stmt 1 view -0 + 107 .cfi_startproc + 108 @ args = 0, pretend = 0, frame = 0 + 109 @ frame_needed = 0, uses_anonymous_args = 0 + 110 @ link register save eliminated. + 208:Src/usbd_audio_if.c **** /* USER CODE BEGIN 3 */ + 209:Src/usbd_audio_if.c **** UNUSED(vol); + 111 .loc 1 209 3 view .LVU21 + 210:Src/usbd_audio_if.c **** return (USBD_OK); + 112 .loc 1 210 3 view .LVU22 + 211:Src/usbd_audio_if.c **** /* USER CODE END 3 */ + 212:Src/usbd_audio_if.c **** } + 113 .loc 1 212 1 is_stmt 0 view .LVU23 + 114 0000 0020 movs r0, #0 + 115 .LVL7: + 116 .loc 1 212 1 view .LVU24 + 117 0002 7047 bx lr + 118 .cfi_endproc + 119 .LFE336: + 121 .section .text.AUDIO_MuteCtl_FS,"ax",%progbits + 122 .align 1 + 123 .syntax unified + 124 .thumb + 125 .thumb_func + 127 AUDIO_MuteCtl_FS: + 128 .LVL8: + 129 .LFB337: + 213:Src/usbd_audio_if.c **** + 214:Src/usbd_audio_if.c **** /** + 215:Src/usbd_audio_if.c **** * @brief Controls AUDIO Mute. + 216:Src/usbd_audio_if.c **** * @param cmd: command opcode + 217:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 218:Src/usbd_audio_if.c **** */ + 219:Src/usbd_audio_if.c **** static int8_t AUDIO_MuteCtl_FS(uint8_t cmd) + 220:Src/usbd_audio_if.c **** { + 130 .loc 1 220 1 is_stmt 1 view -0 + 131 .cfi_startproc + ARM GAS /tmp/ccLD46hm.s page 7 + + + 132 @ args = 0, pretend = 0, frame = 0 + 133 @ frame_needed = 0, uses_anonymous_args = 0 + 134 @ link register save eliminated. + 221:Src/usbd_audio_if.c **** /* USER CODE BEGIN 4 */ + 222:Src/usbd_audio_if.c **** UNUSED(cmd); + 135 .loc 1 222 3 view .LVU26 + 223:Src/usbd_audio_if.c **** return (USBD_OK); + 136 .loc 1 223 3 view .LVU27 + 224:Src/usbd_audio_if.c **** /* USER CODE END 4 */ + 225:Src/usbd_audio_if.c **** } + 137 .loc 1 225 1 is_stmt 0 view .LVU28 + 138 0000 0020 movs r0, #0 + 139 .LVL9: + 140 .loc 1 225 1 view .LVU29 + 141 0002 7047 bx lr + 142 .cfi_endproc + 143 .LFE337: + 145 .section .text.AUDIO_PeriodicTC_FS,"ax",%progbits + 146 .align 1 + 147 .syntax unified + 148 .thumb + 149 .thumb_func + 151 AUDIO_PeriodicTC_FS: + 152 .LVL10: + 153 .LFB338: + 226:Src/usbd_audio_if.c **** + 227:Src/usbd_audio_if.c **** /** + 228:Src/usbd_audio_if.c **** * @brief AUDIO_PeriodicT_FS + 229:Src/usbd_audio_if.c **** * @param cmd: Command opcode + 230:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 231:Src/usbd_audio_if.c **** */ + 232:Src/usbd_audio_if.c **** static int8_t AUDIO_PeriodicTC_FS(uint8_t *pbuf, uint32_t size, uint8_t cmd) + 233:Src/usbd_audio_if.c **** { + 154 .loc 1 233 1 is_stmt 1 view -0 + 155 .cfi_startproc + 156 @ args = 0, pretend = 0, frame = 0 + 157 @ frame_needed = 0, uses_anonymous_args = 0 + 158 @ link register save eliminated. + 234:Src/usbd_audio_if.c **** /* USER CODE BEGIN 5 */ + 235:Src/usbd_audio_if.c **** UNUSED(pbuf); + 159 .loc 1 235 3 view .LVU31 + 236:Src/usbd_audio_if.c **** UNUSED(size); + 160 .loc 1 236 3 view .LVU32 + 237:Src/usbd_audio_if.c **** UNUSED(cmd); + 161 .loc 1 237 3 view .LVU33 + 238:Src/usbd_audio_if.c **** return (USBD_OK); + 162 .loc 1 238 3 view .LVU34 + 239:Src/usbd_audio_if.c **** /* USER CODE END 5 */ + 240:Src/usbd_audio_if.c **** } + 163 .loc 1 240 1 is_stmt 0 view .LVU35 + 164 0000 0020 movs r0, #0 + 165 .LVL11: + 166 .loc 1 240 1 view .LVU36 + 167 0002 7047 bx lr + 168 .cfi_endproc + 169 .LFE338: + 171 .section .text.AUDIO_GetState_FS,"ax",%progbits + ARM GAS /tmp/ccLD46hm.s page 8 + + + 172 .align 1 + 173 .syntax unified + 174 .thumb + 175 .thumb_func + 177 AUDIO_GetState_FS: + 178 .LFB339: + 241:Src/usbd_audio_if.c **** + 242:Src/usbd_audio_if.c **** /** + 243:Src/usbd_audio_if.c **** * @brief Gets AUDIO State. + 244:Src/usbd_audio_if.c **** * @retval USBD_OK if all operations are OK else USBD_FAIL + 245:Src/usbd_audio_if.c **** */ + 246:Src/usbd_audio_if.c **** static int8_t AUDIO_GetState_FS(void) + 247:Src/usbd_audio_if.c **** { + 179 .loc 1 247 1 is_stmt 1 view -0 + 180 .cfi_startproc + 181 @ args = 0, pretend = 0, frame = 0 + 182 @ frame_needed = 0, uses_anonymous_args = 0 + 183 @ link register save eliminated. + 248:Src/usbd_audio_if.c **** /* USER CODE BEGIN 6 */ + 249:Src/usbd_audio_if.c **** return (USBD_OK); + 184 .loc 1 249 3 view .LVU38 + 250:Src/usbd_audio_if.c **** /* USER CODE END 6 */ + 251:Src/usbd_audio_if.c **** } + 185 .loc 1 251 1 is_stmt 0 view .LVU39 + 186 0000 0020 movs r0, #0 + 187 0002 7047 bx lr + 188 .cfi_endproc + 189 .LFE339: + 191 .section .text.TransferComplete_CallBack_FS,"ax",%progbits + 192 .align 1 + 193 .global TransferComplete_CallBack_FS + 194 .syntax unified + 195 .thumb + 196 .thumb_func + 198 TransferComplete_CallBack_FS: + 199 .LFB340: + 252:Src/usbd_audio_if.c **** + 253:Src/usbd_audio_if.c **** /** + 254:Src/usbd_audio_if.c **** * @brief Manages the DMA full transfer complete event. + 255:Src/usbd_audio_if.c **** * @retval None + 256:Src/usbd_audio_if.c **** */ + 257:Src/usbd_audio_if.c **** void TransferComplete_CallBack_FS(void) + 258:Src/usbd_audio_if.c **** { + 200 .loc 1 258 1 is_stmt 1 view -0 + 201 .cfi_startproc + 202 @ args = 0, pretend = 0, frame = 0 + 203 @ frame_needed = 0, uses_anonymous_args = 0 + 204 0000 08B5 push {r3, lr} + 205 .LCFI0: + 206 .cfi_def_cfa_offset 8 + 207 .cfi_offset 3, -8 + 208 .cfi_offset 14, -4 + 259:Src/usbd_audio_if.c **** /* USER CODE BEGIN 7 */ + 260:Src/usbd_audio_if.c **** USBD_AUDIO_Sync(&hUsbDeviceFS, AUDIO_OFFSET_FULL); + 209 .loc 1 260 3 view .LVU41 + 210 0002 0221 movs r1, #2 + 211 0004 0148 ldr r0, .L10 + ARM GAS /tmp/ccLD46hm.s page 9 + + + 212 0006 FFF7FEFF bl USBD_AUDIO_Sync + 213 .LVL12: + 261:Src/usbd_audio_if.c **** /* USER CODE END 7 */ + 262:Src/usbd_audio_if.c **** } + 214 .loc 1 262 1 is_stmt 0 view .LVU42 + 215 000a 08BD pop {r3, pc} + 216 .L11: + 217 .align 2 + 218 .L10: + 219 000c 00000000 .word hUsbDeviceFS + 220 .cfi_endproc + 221 .LFE340: + 223 .section .text.HalfTransfer_CallBack_FS,"ax",%progbits + 224 .align 1 + 225 .global HalfTransfer_CallBack_FS + 226 .syntax unified + 227 .thumb + 228 .thumb_func + 230 HalfTransfer_CallBack_FS: + 231 .LFB341: + 263:Src/usbd_audio_if.c **** + 264:Src/usbd_audio_if.c **** /** + 265:Src/usbd_audio_if.c **** * @brief Manages the DMA Half transfer complete event. + 266:Src/usbd_audio_if.c **** * @retval None + 267:Src/usbd_audio_if.c **** */ + 268:Src/usbd_audio_if.c **** void HalfTransfer_CallBack_FS(void) + 269:Src/usbd_audio_if.c **** { + 232 .loc 1 269 1 is_stmt 1 view -0 + 233 .cfi_startproc + 234 @ args = 0, pretend = 0, frame = 0 + 235 @ frame_needed = 0, uses_anonymous_args = 0 + 236 0000 08B5 push {r3, lr} + 237 .LCFI1: + 238 .cfi_def_cfa_offset 8 + 239 .cfi_offset 3, -8 + 240 .cfi_offset 14, -4 + 270:Src/usbd_audio_if.c **** /* USER CODE BEGIN 8 */ + 271:Src/usbd_audio_if.c **** USBD_AUDIO_Sync(&hUsbDeviceFS, AUDIO_OFFSET_HALF); + 241 .loc 1 271 3 view .LVU44 + 242 0002 0121 movs r1, #1 + 243 0004 0148 ldr r0, .L14 + 244 0006 FFF7FEFF bl USBD_AUDIO_Sync + 245 .LVL13: + 272:Src/usbd_audio_if.c **** /* USER CODE END 8 */ + 273:Src/usbd_audio_if.c **** } + 246 .loc 1 273 1 is_stmt 0 view .LVU45 + 247 000a 08BD pop {r3, pc} + 248 .L15: + 249 .align 2 + 250 .L14: + 251 000c 00000000 .word hUsbDeviceFS + 252 .cfi_endproc + 253 .LFE341: + 255 .global USBD_AUDIO_fops_FS + 256 .section .data.USBD_AUDIO_fops_FS,"aw" + 257 .align 2 + 260 USBD_AUDIO_fops_FS: + ARM GAS /tmp/ccLD46hm.s page 10 + + + 261 0000 00000000 .word AUDIO_Init_FS + 262 0004 00000000 .word AUDIO_DeInit_FS + 263 0008 00000000 .word AUDIO_AudioCmd_FS + 264 000c 00000000 .word AUDIO_VolumeCtl_FS + 265 0010 00000000 .word AUDIO_MuteCtl_FS + 266 0014 00000000 .word AUDIO_PeriodicTC_FS + 267 0018 00000000 .word AUDIO_GetState_FS + 268 .text + 269 .Letext0: + 270 .file 2 "/usr/include/newlib/machine/_default_types.h" + 271 .file 3 "/usr/include/newlib/sys/_stdint.h" + 272 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 273 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc/usbd_audio.h" + 274 .file 6 "Inc/usbd_audio_if.h" + ARM GAS /tmp/ccLD46hm.s page 11 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_audio_if.c + /tmp/ccLD46hm.s:21 .text.AUDIO_Init_FS:00000000 $t + /tmp/ccLD46hm.s:26 .text.AUDIO_Init_FS:00000000 AUDIO_Init_FS + /tmp/ccLD46hm.s:47 .text.AUDIO_DeInit_FS:00000000 $t + /tmp/ccLD46hm.s:52 .text.AUDIO_DeInit_FS:00000000 AUDIO_DeInit_FS + /tmp/ccLD46hm.s:71 .text.AUDIO_AudioCmd_FS:00000000 $t + /tmp/ccLD46hm.s:76 .text.AUDIO_AudioCmd_FS:00000000 AUDIO_AudioCmd_FS + /tmp/ccLD46hm.s:98 .text.AUDIO_VolumeCtl_FS:00000000 $t + /tmp/ccLD46hm.s:103 .text.AUDIO_VolumeCtl_FS:00000000 AUDIO_VolumeCtl_FS + /tmp/ccLD46hm.s:122 .text.AUDIO_MuteCtl_FS:00000000 $t + /tmp/ccLD46hm.s:127 .text.AUDIO_MuteCtl_FS:00000000 AUDIO_MuteCtl_FS + /tmp/ccLD46hm.s:146 .text.AUDIO_PeriodicTC_FS:00000000 $t + /tmp/ccLD46hm.s:151 .text.AUDIO_PeriodicTC_FS:00000000 AUDIO_PeriodicTC_FS + /tmp/ccLD46hm.s:172 .text.AUDIO_GetState_FS:00000000 $t + /tmp/ccLD46hm.s:177 .text.AUDIO_GetState_FS:00000000 AUDIO_GetState_FS + /tmp/ccLD46hm.s:192 .text.TransferComplete_CallBack_FS:00000000 $t + /tmp/ccLD46hm.s:198 .text.TransferComplete_CallBack_FS:00000000 TransferComplete_CallBack_FS + /tmp/ccLD46hm.s:219 .text.TransferComplete_CallBack_FS:0000000c $d + /tmp/ccLD46hm.s:224 .text.HalfTransfer_CallBack_FS:00000000 $t + /tmp/ccLD46hm.s:230 .text.HalfTransfer_CallBack_FS:00000000 HalfTransfer_CallBack_FS + /tmp/ccLD46hm.s:251 .text.HalfTransfer_CallBack_FS:0000000c $d + /tmp/ccLD46hm.s:260 .data.USBD_AUDIO_fops_FS:00000000 USBD_AUDIO_fops_FS + /tmp/ccLD46hm.s:257 .data.USBD_AUDIO_fops_FS:00000000 $d + +UNDEFINED SYMBOLS +USBD_AUDIO_Sync +hUsbDeviceFS diff --git a/squeow_sw/build/usbd_audio_if.o b/squeow_sw/build/usbd_audio_if.o new file mode 100644 index 0000000000000000000000000000000000000000..de2986fedf07c58d12fe8cff964450aec59a2537 GIT binary patch literal 11388 zcmdT~eQ;dWb-(ZJdy>{#X(daxWlI>zlCdzBWcdr5Puu#iw#b%kNjOl-vf6#JHd*a1 z`(fD$Bq?M9p@c%q455h$B|xAd1On7dLp)4|HnbrmX`Lwv458EsB<-{?VStoL-QVxN z^R#c*R>B|or+4(;@11kcJ?GqW&pq#B^{JuJVZ$(#*9_IIN|aKsoTGc}O&YpYm+Dli zJ-ch6qvk2I!x%aB-v6Ge`8J2tJY|&8TFnBd>w-#|y3aDc2`54yv6T8m)#=jae}iY9 zyKFNcU{tM!ta$@j=e3MzR!xtM9@D-MU@B-Zw=JJyk6Aqx09f`U$4tYTIkx;d_E^(dre)d5bb)=pfMlS?Iu3od6)dR&WW8{IsqSLS|=8@UQ5?%XMos844OS@`{iR!Ov0nRT_m{Qp9$HrXnbr~ zS+9w3TktPw_ur(qJ$NJRTdxb*6}*S;o(vCYL*2m_DExCF*9A9{{DqL~gWEaw4IwwF zT7wabU?L%XB8B*lfl>F*IQ`JH&N3P};re7kS!Wxq65;SWRMc*?azV^aD_l=I9Ufg1 zzMT_X<8GoH4?=h4bWqwPWM=`(gXNTr)R#iJ;n<* zmWfH}u3#;Ea#xU7=%RDg*1K@T6<``_0dSY$y4Lt5NAgn`yWoSzp9`qmVuuCNi{ToyN5i;duS!4AJhcC!(36JLdw z(4{3FZH51iCYE}1P59?@VVOsV!e67yEk?*KMh)Q<)LY9vda-JvBi0Hda22dI(V-(h9DHANKvB zW&jJ{49N#VJ!Yx>jZ=j!cbbL!E%$c6J z{WPq*z&$z7rTq}I+8rgO?0@F_=}<_xD{#F`+p4zK({_w*Jsj8v>6UN7r>ZMgUIe~j zwER7yYaDFVId3c@s|^?PUC_Qg(w}N3*waRvT%;2J2F_wU$0H9*c5i7_RXp9WdSp z`K2O{`P2BaC5rxGlWp=%<Y3Aa}C8kdH=*sXyC$G6TiVR22U(O7J3 zuexie?rZzp4F=YrA7W?Sa)Y7FMR)9ko|V1xmS|cJS%e|T)?UQdonu)K4Yk|zqasaa z)v=ve%Z@T0RIdVKKK%3<_ctHI9o4mf6{HdyauUb&8d)H4jf^O@-`7t`${1=dftA2g zzc%)M85d>k|DDiPaGy@QlhPM@dVUV4`(bFW^m-`6{-FAn!Px-HIlMMLz%D~AXW3_c z8_&g6UooHSOQz$gV#4W5J9DYzRNrhYK9fv4XY9)#$*bMTL?Y$P#d1!*Z+rrOyEkr# zPLA)44myXDaVI*OoXW*=NBRabIj1j@j(_+8saQVWw_|cJGN#9ItSaWG646*Ok<3Js z)4g$e9!)sYv0|zaEgZ=@`Q8~WNHkwa;Jpq6?j3pzgg{{}N*X|;ewJuzoZ+javJGYH zWewbI7u7Z)D*^1@wjx?N}Xy#cAba*K67vxp!!2FgiMRz*RJ~duX?NrI#}rDNIx6Aaw3^a>-00 z8J`$X(P$BCwl!K%uGHA@@c7U~bY#cqu-fGmM#cv+>FMObK_?&2C9{Q0PNg#GgYEiM zOy`pa(@vtDZ}Sk2qzg`NIu>`v3pw9_+1TN1EdDX40ApfnA{R^Nr=8qDW;UC03Qlw& zmP+k}P;_`)=?Lg~bFz*SBk`G7uH4BzV|#{#vxC_=Fq`0b?HgShiKV7JOJx?yraC-1 zI;sX^g;*r*1sfCg0zG$mELC(AgVetTQQEa4;&>)ka1Qs(ZUSAHDb7v-r@^1j9@^BC&-Ntxw~&*{#0ovJspQ3&QUZ)vEazo-K;y@wAI6`K3EM3Hc7K%A1SH7q@XEvI0 z(gzDOYGyJ&<<=bxVig*Uj>OWaPhPr})g;VyW^8 zC-c!_-buJSYV0!q&YI3-^Yl5Zqwm$=_*8kePVTvE&)9)Iz8ur0bc#D!>%V5 zMh451$gS|&6Z=Qj?%FvyeubV-0lPOkn@KpjGL0eFZpQmU#Nh26-Ejp2@8&@< z7vt_egUQlH&wIVhv^7?`RxK*GuO>H8RO33|jzOFG?dvlpYF^<*u7Yns(VBmuG z?*7de=*pgRQvE&s=T??^g|`EB3Jq@&*VTvWH0^(8WWU$=4El$rn?2<~KC|wques5@ z%}@*RcWi`E%)z}z8Rz2CK7XiZx2meE-W@a-RV~K%swKv*y@pR)S`Jt$S#I(U4{SBn#4`1y|Eud;DwMCDZwc%E5;I)7 z#8sd|TR`C*+1CPPnMwJjzFyKT74(V^$1@$N8{_biw8N>-^Z&X=JQ>$KWg{utzH^53hv63Tm~ zJ>%1JWvwlHI$Q9G*f+|1n$a(1i+bD|X7=JU6yo8h8733kL+@LpB{Sbd`Y`uQ1e&on zkq+G7_}rye+Fb7H!PjC}uA4DNKX8d4M3i}sQmct;lv*qNt%4T|UM7f7YfcDw zKPB|Ff}a-rbHRHAzb^QU;7Lv0#f}kKjhZZGx8y4h#OV;70|I2;MAsm*9hfPYGU(y-K?g!2^P6;(DbDLf!a%|u$_FY15{{SCy1rh^dJ#&9uXW992ZOy5zkq{g5Y7n+lYwcUkKhUcvSES zBI0*UkoQ^A-x1{RA&k>2g8we~hTw0Bhzq}t5^Dr?T?LIaR^}?1FK9kFP+vO{cDjl1 zPtOcRTsWJ3Vj2XD?~Qi;Z@4JZX?cUWK7O*$_Kp%^=V>DJ|Ck89 z|3!p8UH_p6UHC5^i4W$b{R6H2gI?_qXzdU5Yx|%_I1clgkntZO!d^n?86uPygg#7! z{m%$}GZB7#N$7itjB{`P$ZR1t1uW!Tobj&kwXC3e`JqSkPT_-2FB!e=Q;+v_<>!^Y z3;4PICoMm}?0L)I;d|=xv&)~o{5}3BuwJ|zx_!U%L98UU;8T|t;pBVI@ciX=I#b1i z_%<}1L6r1$Y-%d!98$jCR3`2xWB9gu&_O8araR_zPKv)SNH5kx_2NaJ-vIoh@NEDe zrF(bm-`yK46mrQad?^}*x-uas;L2aQNeL4d^rJdk=iSz7sxucwLy+ zw-U;z&&z`>t|2<#JpWce$gl4tgt&GcIQVu-Ir?{@=)XCD1Y<%c2(#L;hkrLmrRiJ^j%RQcS#68HhY~uIlc$@=P|L$?d$+F)M?dwo;PCW)zCvFJ z_mI{z#D)Lb==X0^mwV5lKHN6u_1!J{)`Q2krUCyGf@emrpO-8{f11{#^(Ey!rC0gE!yfkVB4U^&p&XMlk#}i+0(FzA&g~AlHC_ mTxQlN>ciBuO|a+N3n-l2GhXxbF&F)Eq18&g=yjscyZk?K{!@hj literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usbd_conf.d b/squeow_sw/build/usbd_conf.d new file mode 100644 index 0000000..58f153d --- /dev/null +++ b/squeow_sw/build/usbd_conf.d @@ -0,0 +1,91 @@ +build/usbd_conf.o: Src/usbd_conf.c \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + Inc/usbd_conf.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/AUDIO/Inc/usbd_audio.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.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/AUDIO/Inc/usbd_audio.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h: diff --git a/squeow_sw/build/usbd_conf.lst b/squeow_sw/build/usbd_conf.lst new file mode 100644 index 0000000..d04a847 --- /dev/null +++ b/squeow_sw/build/usbd_conf.lst @@ -0,0 +1,2810 @@ +ARM GAS /tmp/ccf5FGie.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usbd_conf.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/usbd_conf.c" + 20 .section .text.USBD_Get_USB_Status,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 USBD_Get_USB_Status: + 27 .LVL0: + 28 .LFB365: + 1:Src/usbd_conf.c **** /* USER CODE BEGIN Header */ + 2:Src/usbd_conf.c **** /** + 3:Src/usbd_conf.c **** ****************************************************************************** + 4:Src/usbd_conf.c **** * @file : usbd_conf.c + 5:Src/usbd_conf.c **** * @version : v3.0_Cube + 6:Src/usbd_conf.c **** * @brief : This file implements the board support package for the USB device library + 7:Src/usbd_conf.c **** ****************************************************************************** + 8:Src/usbd_conf.c **** * @attention + 9:Src/usbd_conf.c **** * + 10:Src/usbd_conf.c **** * Copyright (c) 2022 STMicroelectronics. + 11:Src/usbd_conf.c **** * All rights reserved. + 12:Src/usbd_conf.c **** * + 13:Src/usbd_conf.c **** * This software is licensed under terms that can be found in the LICENSE file + 14:Src/usbd_conf.c **** * in the root directory of this software component. + 15:Src/usbd_conf.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 16:Src/usbd_conf.c **** * + 17:Src/usbd_conf.c **** ****************************************************************************** + 18:Src/usbd_conf.c **** */ + 19:Src/usbd_conf.c **** /* USER CODE END Header */ + 20:Src/usbd_conf.c **** + 21:Src/usbd_conf.c **** /* Includes ------------------------------------------------------------------*/ + 22:Src/usbd_conf.c **** #include "stm32g4xx.h" + 23:Src/usbd_conf.c **** #include "stm32g4xx_hal.h" + 24:Src/usbd_conf.c **** #include "usbd_def.h" + 25:Src/usbd_conf.c **** #include "usbd_core.h" + 26:Src/usbd_conf.c **** + 27:Src/usbd_conf.c **** #include "usbd_audio.h" + 28:Src/usbd_conf.c **** + 29:Src/usbd_conf.c **** /* USER CODE BEGIN Includes */ + 30:Src/usbd_conf.c **** + ARM GAS /tmp/ccf5FGie.s page 2 + + + 31:Src/usbd_conf.c **** /* USER CODE END Includes */ + 32:Src/usbd_conf.c **** + 33:Src/usbd_conf.c **** /* Private typedef -----------------------------------------------------------*/ + 34:Src/usbd_conf.c **** /* Private define ------------------------------------------------------------*/ + 35:Src/usbd_conf.c **** /* Private macro -------------------------------------------------------------*/ + 36:Src/usbd_conf.c **** + 37:Src/usbd_conf.c **** /* Private variables ---------------------------------------------------------*/ + 38:Src/usbd_conf.c **** /* USER CODE BEGIN PV */ + 39:Src/usbd_conf.c **** + 40:Src/usbd_conf.c **** /* USER CODE END PV */ + 41:Src/usbd_conf.c **** + 42:Src/usbd_conf.c **** PCD_HandleTypeDef hpcd_USB_FS; + 43:Src/usbd_conf.c **** void Error_Handler(void); + 44:Src/usbd_conf.c **** + 45:Src/usbd_conf.c **** /* USER CODE BEGIN 0 */ + 46:Src/usbd_conf.c **** + 47:Src/usbd_conf.c **** /* USER CODE END 0 */ + 48:Src/usbd_conf.c **** + 49:Src/usbd_conf.c **** /* Exported function prototypes ----------------------------------------------*/ + 50:Src/usbd_conf.c **** + 51:Src/usbd_conf.c **** /* USER CODE BEGIN PFP */ + 52:Src/usbd_conf.c **** /* Private function prototypes -----------------------------------------------*/ + 53:Src/usbd_conf.c **** + 54:Src/usbd_conf.c **** /* USER CODE END PFP */ + 55:Src/usbd_conf.c **** + 56:Src/usbd_conf.c **** /* Private functions ---------------------------------------------------------*/ + 57:Src/usbd_conf.c **** static USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status); + 58:Src/usbd_conf.c **** /* USER CODE BEGIN 1 */ + 59:Src/usbd_conf.c **** static void SystemClockConfig_Resume(void); + 60:Src/usbd_conf.c **** + 61:Src/usbd_conf.c **** /* USER CODE END 1 */ + 62:Src/usbd_conf.c **** extern void SystemClock_Config(void); + 63:Src/usbd_conf.c **** + 64:Src/usbd_conf.c **** /******************************************************************************* + 65:Src/usbd_conf.c **** LL Driver Callbacks (PCD -> USB Device Library) + 66:Src/usbd_conf.c **** *******************************************************************************/ + 67:Src/usbd_conf.c **** /* MSP Init */ + 68:Src/usbd_conf.c **** + 69:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 70:Src/usbd_conf.c **** static void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) + 71:Src/usbd_conf.c **** #else + 72:Src/usbd_conf.c **** void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) + 73:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 74:Src/usbd_conf.c **** { + 75:Src/usbd_conf.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 76:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + 77:Src/usbd_conf.c **** { + 78:Src/usbd_conf.c **** /* USER CODE BEGIN USB_MspInit 0 */ + 79:Src/usbd_conf.c **** + 80:Src/usbd_conf.c **** /* USER CODE END USB_MspInit 0 */ + 81:Src/usbd_conf.c **** + 82:Src/usbd_conf.c **** /** Initializes the peripherals clocks + 83:Src/usbd_conf.c **** */ + 84:Src/usbd_conf.c **** PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USB; + 85:Src/usbd_conf.c **** PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_HSI48; + 86:Src/usbd_conf.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 87:Src/usbd_conf.c **** { + ARM GAS /tmp/ccf5FGie.s page 3 + + + 88:Src/usbd_conf.c **** Error_Handler(); + 89:Src/usbd_conf.c **** } + 90:Src/usbd_conf.c **** + 91:Src/usbd_conf.c **** /* Peripheral clock enable */ + 92:Src/usbd_conf.c **** __HAL_RCC_USB_CLK_ENABLE(); + 93:Src/usbd_conf.c **** + 94:Src/usbd_conf.c **** /* Peripheral interrupt init */ + 95:Src/usbd_conf.c **** HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0); + 96:Src/usbd_conf.c **** HAL_NVIC_EnableIRQ(USB_LP_IRQn); + 97:Src/usbd_conf.c **** /* USER CODE BEGIN USB_MspInit 1 */ + 98:Src/usbd_conf.c **** + 99:Src/usbd_conf.c **** /* USER CODE END USB_MspInit 1 */ + 100:Src/usbd_conf.c **** } + 101:Src/usbd_conf.c **** } + 102:Src/usbd_conf.c **** + 103:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 104:Src/usbd_conf.c **** static void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) + 105:Src/usbd_conf.c **** #else + 106:Src/usbd_conf.c **** void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) + 107:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 108:Src/usbd_conf.c **** { + 109:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + 110:Src/usbd_conf.c **** { + 111:Src/usbd_conf.c **** /* USER CODE BEGIN USB_MspDeInit 0 */ + 112:Src/usbd_conf.c **** + 113:Src/usbd_conf.c **** /* USER CODE END USB_MspDeInit 0 */ + 114:Src/usbd_conf.c **** /* Peripheral clock disable */ + 115:Src/usbd_conf.c **** __HAL_RCC_USB_CLK_DISABLE(); + 116:Src/usbd_conf.c **** + 117:Src/usbd_conf.c **** /* Peripheral interrupt Deinit*/ + 118:Src/usbd_conf.c **** HAL_NVIC_DisableIRQ(USB_LP_IRQn); + 119:Src/usbd_conf.c **** + 120:Src/usbd_conf.c **** /* USER CODE BEGIN USB_MspDeInit 1 */ + 121:Src/usbd_conf.c **** + 122:Src/usbd_conf.c **** /* USER CODE END USB_MspDeInit 1 */ + 123:Src/usbd_conf.c **** } + 124:Src/usbd_conf.c **** } + 125:Src/usbd_conf.c **** + 126:Src/usbd_conf.c **** /** + 127:Src/usbd_conf.c **** * @brief Setup stage callback + 128:Src/usbd_conf.c **** * @param hpcd: PCD handle + 129:Src/usbd_conf.c **** * @retval None + 130:Src/usbd_conf.c **** */ + 131:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 132:Src/usbd_conf.c **** static void PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) + 133:Src/usbd_conf.c **** #else + 134:Src/usbd_conf.c **** void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) + 135:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 136:Src/usbd_conf.c **** { + 137:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PreTreatment */ + 138:Src/usbd_conf.c **** + 139:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_SetupStageCallback_PreTreatment */ + 140:Src/usbd_conf.c **** USBD_LL_SetupStage((USBD_HandleTypeDef*)hpcd->pData, (uint8_t *)hpcd->Setup); + 141:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PostTreatment */ + 142:Src/usbd_conf.c **** + 143:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_SetupStageCallback_PostTreatment */ + 144:Src/usbd_conf.c **** } + ARM GAS /tmp/ccf5FGie.s page 4 + + + 145:Src/usbd_conf.c **** + 146:Src/usbd_conf.c **** /** + 147:Src/usbd_conf.c **** * @brief Data Out stage callback. + 148:Src/usbd_conf.c **** * @param hpcd: PCD handle + 149:Src/usbd_conf.c **** * @param epnum: Endpoint number + 150:Src/usbd_conf.c **** * @retval None + 151:Src/usbd_conf.c **** */ + 152:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 153:Src/usbd_conf.c **** static void PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 154:Src/usbd_conf.c **** #else + 155:Src/usbd_conf.c **** void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 156:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 157:Src/usbd_conf.c **** { + 158:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PreTreatment */ + 159:Src/usbd_conf.c **** + 160:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_DataOutStageCallback_PreTreatment */ + 161:Src/usbd_conf.c **** USBD_LL_DataOutStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->OUT_ep[epnum].xfer_buff); + 162:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PostTreatment */ + 163:Src/usbd_conf.c **** + 164:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_DataOutStageCallback_PostTreatment */ + 165:Src/usbd_conf.c **** } + 166:Src/usbd_conf.c **** + 167:Src/usbd_conf.c **** /** + 168:Src/usbd_conf.c **** * @brief Data In stage callback. + 169:Src/usbd_conf.c **** * @param hpcd: PCD handle + 170:Src/usbd_conf.c **** * @param epnum: Endpoint number + 171:Src/usbd_conf.c **** * @retval None + 172:Src/usbd_conf.c **** */ + 173:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 174:Src/usbd_conf.c **** static void PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 175:Src/usbd_conf.c **** #else + 176:Src/usbd_conf.c **** void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 177:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 178:Src/usbd_conf.c **** { + 179:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PreTreatment */ + 180:Src/usbd_conf.c **** + 181:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_DataInStageCallback_PreTreatment */ + 182:Src/usbd_conf.c **** USBD_LL_DataInStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->IN_ep[epnum].xfer_buff); + 183:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PostTreatment */ + 184:Src/usbd_conf.c **** + 185:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_DataInStageCallback_PostTreatment */ + 186:Src/usbd_conf.c **** } + 187:Src/usbd_conf.c **** + 188:Src/usbd_conf.c **** /** + 189:Src/usbd_conf.c **** * @brief SOF callback. + 190:Src/usbd_conf.c **** * @param hpcd: PCD handle + 191:Src/usbd_conf.c **** * @retval None + 192:Src/usbd_conf.c **** */ + 193:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 194:Src/usbd_conf.c **** static void PCD_SOFCallback(PCD_HandleTypeDef *hpcd) + 195:Src/usbd_conf.c **** #else + 196:Src/usbd_conf.c **** void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) + 197:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 198:Src/usbd_conf.c **** { + 199:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SOFCallback_PreTreatment */ + 200:Src/usbd_conf.c **** + 201:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_SOFCallback_PreTreatment */ + ARM GAS /tmp/ccf5FGie.s page 5 + + + 202:Src/usbd_conf.c **** USBD_LL_SOF((USBD_HandleTypeDef*)hpcd->pData); + 203:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SOFCallback_PostTreatment */ + 204:Src/usbd_conf.c **** + 205:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_SOFCallback_PostTreatment */ + 206:Src/usbd_conf.c **** } + 207:Src/usbd_conf.c **** + 208:Src/usbd_conf.c **** /** + 209:Src/usbd_conf.c **** * @brief Reset callback. + 210:Src/usbd_conf.c **** * @param hpcd: PCD handle + 211:Src/usbd_conf.c **** * @retval None + 212:Src/usbd_conf.c **** */ + 213:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 214:Src/usbd_conf.c **** static void PCD_ResetCallback(PCD_HandleTypeDef *hpcd) + 215:Src/usbd_conf.c **** #else + 216:Src/usbd_conf.c **** void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) + 217:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 218:Src/usbd_conf.c **** { + 219:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResetCallback_PreTreatment */ + 220:Src/usbd_conf.c **** + 221:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ResetCallback_PreTreatment */ + 222:Src/usbd_conf.c **** USBD_SpeedTypeDef speed = USBD_SPEED_FULL; + 223:Src/usbd_conf.c **** + 224:Src/usbd_conf.c **** if ( hpcd->Init.speed != PCD_SPEED_FULL) + 225:Src/usbd_conf.c **** { + 226:Src/usbd_conf.c **** Error_Handler(); + 227:Src/usbd_conf.c **** } + 228:Src/usbd_conf.c **** /* Set Speed. */ + 229:Src/usbd_conf.c **** USBD_LL_SetSpeed((USBD_HandleTypeDef*)hpcd->pData, speed); + 230:Src/usbd_conf.c **** + 231:Src/usbd_conf.c **** /* Reset Device. */ + 232:Src/usbd_conf.c **** USBD_LL_Reset((USBD_HandleTypeDef*)hpcd->pData); + 233:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResetCallback_PostTreatment */ + 234:Src/usbd_conf.c **** + 235:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ResetCallback_PostTreatment */ + 236:Src/usbd_conf.c **** } + 237:Src/usbd_conf.c **** + 238:Src/usbd_conf.c **** /** + 239:Src/usbd_conf.c **** * @brief Suspend callback. + 240:Src/usbd_conf.c **** * When Low power mode is enabled the debug cannot be used (IAR, Keil doesn't support it) + 241:Src/usbd_conf.c **** * @param hpcd: PCD handle + 242:Src/usbd_conf.c **** * @retval None + 243:Src/usbd_conf.c **** */ + 244:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 245:Src/usbd_conf.c **** static void PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) + 246:Src/usbd_conf.c **** #else + 247:Src/usbd_conf.c **** void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) + 248:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 249:Src/usbd_conf.c **** { + 250:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SuspendCallback_PreTreatment */ + 251:Src/usbd_conf.c **** + 252:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_SuspendCallback_PreTreatment */ + 253:Src/usbd_conf.c **** /* Inform USB library that core enters in suspend Mode. */ + 254:Src/usbd_conf.c **** USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData); + 255:Src/usbd_conf.c **** /* Enter in STOP mode. */ + 256:Src/usbd_conf.c **** /* USER CODE BEGIN 2 */ + 257:Src/usbd_conf.c **** if (hpcd->Init.low_power_enable) + 258:Src/usbd_conf.c **** { + ARM GAS /tmp/ccf5FGie.s page 6 + + + 259:Src/usbd_conf.c **** /* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */ + 260:Src/usbd_conf.c **** SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + 261:Src/usbd_conf.c **** } + 262:Src/usbd_conf.c **** /* USER CODE END 2 */ + 263:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SuspendCallback_PostTreatment */ + 264:Src/usbd_conf.c **** + 265:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_SuspendCallback_PostTreatment */ + 266:Src/usbd_conf.c **** } + 267:Src/usbd_conf.c **** + 268:Src/usbd_conf.c **** /** + 269:Src/usbd_conf.c **** * @brief Resume callback. + 270:Src/usbd_conf.c **** * When Low power mode is enabled the debug cannot be used (IAR, Keil doesn't support it) + 271:Src/usbd_conf.c **** * @param hpcd: PCD handle + 272:Src/usbd_conf.c **** * @retval None + 273:Src/usbd_conf.c **** */ + 274:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 275:Src/usbd_conf.c **** static void PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) + 276:Src/usbd_conf.c **** #else + 277:Src/usbd_conf.c **** void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) + 278:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 279:Src/usbd_conf.c **** { + 280:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResumeCallback_PreTreatment */ + 281:Src/usbd_conf.c **** + 282:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ResumeCallback_PreTreatment */ + 283:Src/usbd_conf.c **** + 284:Src/usbd_conf.c **** /* USER CODE BEGIN 3 */ + 285:Src/usbd_conf.c **** if (hpcd->Init.low_power_enable) + 286:Src/usbd_conf.c **** { + 287:Src/usbd_conf.c **** /* Reset SLEEPDEEP bit of Cortex System Control Register. */ + 288:Src/usbd_conf.c **** SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + 289:Src/usbd_conf.c **** SystemClockConfig_Resume(); + 290:Src/usbd_conf.c **** } + 291:Src/usbd_conf.c **** /* USER CODE END 3 */ + 292:Src/usbd_conf.c **** + 293:Src/usbd_conf.c **** USBD_LL_Resume((USBD_HandleTypeDef*)hpcd->pData); + 294:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResumeCallback_PostTreatment */ + 295:Src/usbd_conf.c **** + 296:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ResumeCallback_PostTreatment */ + 297:Src/usbd_conf.c **** } + 298:Src/usbd_conf.c **** + 299:Src/usbd_conf.c **** /** + 300:Src/usbd_conf.c **** * @brief ISOOUTIncomplete callback. + 301:Src/usbd_conf.c **** * @param hpcd: PCD handle + 302:Src/usbd_conf.c **** * @param epnum: Endpoint number + 303:Src/usbd_conf.c **** * @retval None + 304:Src/usbd_conf.c **** */ + 305:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 306:Src/usbd_conf.c **** static void PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 307:Src/usbd_conf.c **** #else + 308:Src/usbd_conf.c **** void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 309:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 310:Src/usbd_conf.c **** { + 311:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PreTreatment */ + 312:Src/usbd_conf.c **** + 313:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ISOOUTIncompleteCallback_PreTreatment */ + 314:Src/usbd_conf.c **** USBD_LL_IsoOUTIncomplete((USBD_HandleTypeDef*)hpcd->pData, epnum); + 315:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PostTreatment */ + ARM GAS /tmp/ccf5FGie.s page 7 + + + 316:Src/usbd_conf.c **** + 317:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ISOOUTIncompleteCallback_PostTreatment */ + 318:Src/usbd_conf.c **** } + 319:Src/usbd_conf.c **** + 320:Src/usbd_conf.c **** /** + 321:Src/usbd_conf.c **** * @brief ISOINIncomplete callback. + 322:Src/usbd_conf.c **** * @param hpcd: PCD handle + 323:Src/usbd_conf.c **** * @param epnum: Endpoint number + 324:Src/usbd_conf.c **** * @retval None + 325:Src/usbd_conf.c **** */ + 326:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 327:Src/usbd_conf.c **** static void PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 328:Src/usbd_conf.c **** #else + 329:Src/usbd_conf.c **** void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) + 330:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 331:Src/usbd_conf.c **** { + 332:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PreTreatment */ + 333:Src/usbd_conf.c **** + 334:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ISOINIncompleteCallback_PreTreatment */ + 335:Src/usbd_conf.c **** USBD_LL_IsoINIncomplete((USBD_HandleTypeDef*)hpcd->pData, epnum); + 336:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PostTreatment */ + 337:Src/usbd_conf.c **** + 338:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ISOINIncompleteCallback_PostTreatment */ + 339:Src/usbd_conf.c **** } + 340:Src/usbd_conf.c **** + 341:Src/usbd_conf.c **** /** + 342:Src/usbd_conf.c **** * @brief Connect callback. + 343:Src/usbd_conf.c **** * @param hpcd: PCD handle + 344:Src/usbd_conf.c **** * @retval None + 345:Src/usbd_conf.c **** */ + 346:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 347:Src/usbd_conf.c **** static void PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) + 348:Src/usbd_conf.c **** #else + 349:Src/usbd_conf.c **** void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) + 350:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 351:Src/usbd_conf.c **** { + 352:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ConnectCallback_PreTreatment */ + 353:Src/usbd_conf.c **** + 354:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ConnectCallback_PreTreatment */ + 355:Src/usbd_conf.c **** USBD_LL_DevConnected((USBD_HandleTypeDef*)hpcd->pData); + 356:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ConnectCallback_PostTreatment */ + 357:Src/usbd_conf.c **** + 358:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_ConnectCallback_PostTreatment */ + 359:Src/usbd_conf.c **** } + 360:Src/usbd_conf.c **** + 361:Src/usbd_conf.c **** /** + 362:Src/usbd_conf.c **** * @brief Disconnect callback. + 363:Src/usbd_conf.c **** * @param hpcd: PCD handle + 364:Src/usbd_conf.c **** * @retval None + 365:Src/usbd_conf.c **** */ + 366:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 367:Src/usbd_conf.c **** static void PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) + 368:Src/usbd_conf.c **** #else + 369:Src/usbd_conf.c **** void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) + 370:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 371:Src/usbd_conf.c **** { + 372:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PreTreatment */ + ARM GAS /tmp/ccf5FGie.s page 8 + + + 373:Src/usbd_conf.c **** + 374:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_DisconnectCallback_PreTreatment */ + 375:Src/usbd_conf.c **** USBD_LL_DevDisconnected((USBD_HandleTypeDef*)hpcd->pData); + 376:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PostTreatment */ + 377:Src/usbd_conf.c **** + 378:Src/usbd_conf.c **** /* USER CODE END HAL_PCD_DisconnectCallback_PostTreatment */ + 379:Src/usbd_conf.c **** } + 380:Src/usbd_conf.c **** + 381:Src/usbd_conf.c **** /* USER CODE BEGIN LowLevelInterface */ + 382:Src/usbd_conf.c **** + 383:Src/usbd_conf.c **** /* USER CODE END LowLevelInterface */ + 384:Src/usbd_conf.c **** + 385:Src/usbd_conf.c **** /******************************************************************************* + 386:Src/usbd_conf.c **** LL Driver Interface (USB Device Library --> PCD) + 387:Src/usbd_conf.c **** *******************************************************************************/ + 388:Src/usbd_conf.c **** + 389:Src/usbd_conf.c **** /** + 390:Src/usbd_conf.c **** * @brief Initializes the low level portion of the device driver. + 391:Src/usbd_conf.c **** * @param pdev: Device handle + 392:Src/usbd_conf.c **** * @retval USBD status + 393:Src/usbd_conf.c **** */ + 394:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev) + 395:Src/usbd_conf.c **** { + 396:Src/usbd_conf.c **** /* Init USB Ip. */ + 397:Src/usbd_conf.c **** hpcd_USB_FS.pData = pdev; + 398:Src/usbd_conf.c **** /* Link the driver to the stack. */ + 399:Src/usbd_conf.c **** pdev->pData = &hpcd_USB_FS; + 400:Src/usbd_conf.c **** + 401:Src/usbd_conf.c **** hpcd_USB_FS.Instance = USB; + 402:Src/usbd_conf.c **** hpcd_USB_FS.Init.dev_endpoints = 8; + 403:Src/usbd_conf.c **** hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; + 404:Src/usbd_conf.c **** hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED; + 405:Src/usbd_conf.c **** hpcd_USB_FS.Init.Sof_enable = DISABLE; + 406:Src/usbd_conf.c **** hpcd_USB_FS.Init.low_power_enable = DISABLE; + 407:Src/usbd_conf.c **** hpcd_USB_FS.Init.lpm_enable = DISABLE; + 408:Src/usbd_conf.c **** hpcd_USB_FS.Init.battery_charging_enable = DISABLE; + 409:Src/usbd_conf.c **** + 410:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 411:Src/usbd_conf.c **** /* register Msp Callbacks (before the Init) */ + 412:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_MSPINIT_CB_ID, PCD_MspInit); + 413:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_MSPDEINIT_CB_ID, PCD_MspDeInit); + 414:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 415:Src/usbd_conf.c **** + 416:Src/usbd_conf.c **** if (HAL_PCD_Init(&hpcd_USB_FS) != HAL_OK) + 417:Src/usbd_conf.c **** { + 418:Src/usbd_conf.c **** Error_Handler( ); + 419:Src/usbd_conf.c **** } + 420:Src/usbd_conf.c **** + 421:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 422:Src/usbd_conf.c **** /* Register USB PCD CallBacks */ + 423:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback); + 424:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback); + 425:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback); + 426:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback); + 427:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback); + 428:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback); + 429:Src/usbd_conf.c **** HAL_PCD_RegisterCallback(&hpcd_USB_FS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback); + ARM GAS /tmp/ccf5FGie.s page 9 + + + 430:Src/usbd_conf.c **** /* USER CODE BEGIN RegisterCallBackFirstPart */ + 431:Src/usbd_conf.c **** + 432:Src/usbd_conf.c **** /* USER CODE END RegisterCallBackFirstPart */ + 433:Src/usbd_conf.c **** HAL_PCD_RegisterLpmCallback(&hpcd_USB_FS, PCDEx_LPM_Callback); + 434:Src/usbd_conf.c **** HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_FS, PCD_DataOutStageCallback); + 435:Src/usbd_conf.c **** HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_FS, PCD_DataInStageCallback); + 436:Src/usbd_conf.c **** HAL_PCD_RegisterIsoOutIncpltCallback(&hpcd_USB_FS, PCD_ISOOUTIncompleteCallback); + 437:Src/usbd_conf.c **** HAL_PCD_RegisterIsoInIncpltCallback(&hpcd_USB_FS, PCD_ISOINIncompleteCallback); + 438:Src/usbd_conf.c **** /* USER CODE BEGIN RegisterCallBackSecondPart */ + 439:Src/usbd_conf.c **** + 440:Src/usbd_conf.c **** /* USER CODE END RegisterCallBackSecondPart */ + 441:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 442:Src/usbd_conf.c **** /* USER CODE BEGIN EndPoint_Configuration */ + 443:Src/usbd_conf.c **** HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, 0x00, PCD_SNG_BUF, 0x10); + 444:Src/usbd_conf.c **** HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, 0x80, PCD_SNG_BUF, 0x50); + 445:Src/usbd_conf.c **** /* USER CODE END EndPoint_Configuration */ + 446:Src/usbd_conf.c **** /* USER CODE BEGIN EndPoint_Configuration_AUDIO */ + 447:Src/usbd_conf.c **** HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, AUDIO_OUT_EP, PCD_DBL_BUF, 0x01500090); + 448:Src/usbd_conf.c **** /* USER CODE END EndPoint_Configuration_AUDIO */ + 449:Src/usbd_conf.c **** return USBD_OK; + 450:Src/usbd_conf.c **** } + 451:Src/usbd_conf.c **** + 452:Src/usbd_conf.c **** /** + 453:Src/usbd_conf.c **** * @brief De-Initializes the low level portion of the device driver. + 454:Src/usbd_conf.c **** * @param pdev: Device handle + 455:Src/usbd_conf.c **** * @retval USBD status + 456:Src/usbd_conf.c **** */ + 457:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev) + 458:Src/usbd_conf.c **** { + 459:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 460:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 461:Src/usbd_conf.c **** + 462:Src/usbd_conf.c **** hal_status = HAL_PCD_DeInit(pdev->pData); + 463:Src/usbd_conf.c **** + 464:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 465:Src/usbd_conf.c **** + 466:Src/usbd_conf.c **** return usb_status; + 467:Src/usbd_conf.c **** } + 468:Src/usbd_conf.c **** + 469:Src/usbd_conf.c **** /** + 470:Src/usbd_conf.c **** * @brief Starts the low level portion of the device driver. + 471:Src/usbd_conf.c **** * @param pdev: Device handle + 472:Src/usbd_conf.c **** * @retval USBD status + 473:Src/usbd_conf.c **** */ + 474:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev) + 475:Src/usbd_conf.c **** { + 476:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 477:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 478:Src/usbd_conf.c **** + 479:Src/usbd_conf.c **** hal_status = HAL_PCD_Start(pdev->pData); + 480:Src/usbd_conf.c **** + 481:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 482:Src/usbd_conf.c **** + 483:Src/usbd_conf.c **** return usb_status; + 484:Src/usbd_conf.c **** } + 485:Src/usbd_conf.c **** + 486:Src/usbd_conf.c **** /** + ARM GAS /tmp/ccf5FGie.s page 10 + + + 487:Src/usbd_conf.c **** * @brief Stops the low level portion of the device driver. + 488:Src/usbd_conf.c **** * @param pdev: Device handle + 489:Src/usbd_conf.c **** * @retval USBD status + 490:Src/usbd_conf.c **** */ + 491:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev) + 492:Src/usbd_conf.c **** { + 493:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 494:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 495:Src/usbd_conf.c **** + 496:Src/usbd_conf.c **** hal_status = HAL_PCD_Stop(pdev->pData); + 497:Src/usbd_conf.c **** + 498:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 499:Src/usbd_conf.c **** + 500:Src/usbd_conf.c **** return usb_status; + 501:Src/usbd_conf.c **** } + 502:Src/usbd_conf.c **** + 503:Src/usbd_conf.c **** /** + 504:Src/usbd_conf.c **** * @brief Opens an endpoint of the low level driver. + 505:Src/usbd_conf.c **** * @param pdev: Device handle + 506:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 507:Src/usbd_conf.c **** * @param ep_type: Endpoint type + 508:Src/usbd_conf.c **** * @param ep_mps: Endpoint max packet size + 509:Src/usbd_conf.c **** * @retval USBD status + 510:Src/usbd_conf.c **** */ + 511:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint1 + 512:Src/usbd_conf.c **** { + 513:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 514:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 515:Src/usbd_conf.c **** + 516:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_Open(pdev->pData, ep_addr, ep_mps, ep_type); + 517:Src/usbd_conf.c **** + 518:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 519:Src/usbd_conf.c **** + 520:Src/usbd_conf.c **** return usb_status; + 521:Src/usbd_conf.c **** } + 522:Src/usbd_conf.c **** + 523:Src/usbd_conf.c **** /** + 524:Src/usbd_conf.c **** * @brief Closes an endpoint of the low level driver. + 525:Src/usbd_conf.c **** * @param pdev: Device handle + 526:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 527:Src/usbd_conf.c **** * @retval USBD status + 528:Src/usbd_conf.c **** */ + 529:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 530:Src/usbd_conf.c **** { + 531:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 532:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 533:Src/usbd_conf.c **** + 534:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_Close(pdev->pData, ep_addr); + 535:Src/usbd_conf.c **** + 536:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 537:Src/usbd_conf.c **** + 538:Src/usbd_conf.c **** return usb_status; + 539:Src/usbd_conf.c **** } + 540:Src/usbd_conf.c **** + 541:Src/usbd_conf.c **** /** + 542:Src/usbd_conf.c **** * @brief Flushes an endpoint of the Low Level Driver. + 543:Src/usbd_conf.c **** * @param pdev: Device handle + ARM GAS /tmp/ccf5FGie.s page 11 + + + 544:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 545:Src/usbd_conf.c **** * @retval USBD status + 546:Src/usbd_conf.c **** */ + 547:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 548:Src/usbd_conf.c **** { + 549:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 550:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 551:Src/usbd_conf.c **** + 552:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_Flush(pdev->pData, ep_addr); + 553:Src/usbd_conf.c **** + 554:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 555:Src/usbd_conf.c **** + 556:Src/usbd_conf.c **** return usb_status; + 557:Src/usbd_conf.c **** } + 558:Src/usbd_conf.c **** + 559:Src/usbd_conf.c **** /** + 560:Src/usbd_conf.c **** * @brief Sets a Stall condition on an endpoint of the Low Level Driver. + 561:Src/usbd_conf.c **** * @param pdev: Device handle + 562:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 563:Src/usbd_conf.c **** * @retval USBD status + 564:Src/usbd_conf.c **** */ + 565:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 566:Src/usbd_conf.c **** { + 567:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 568:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 569:Src/usbd_conf.c **** + 570:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_SetStall(pdev->pData, ep_addr); + 571:Src/usbd_conf.c **** + 572:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 573:Src/usbd_conf.c **** + 574:Src/usbd_conf.c **** return usb_status; + 575:Src/usbd_conf.c **** } + 576:Src/usbd_conf.c **** + 577:Src/usbd_conf.c **** /** + 578:Src/usbd_conf.c **** * @brief Clears a Stall condition on an endpoint of the Low Level Driver. + 579:Src/usbd_conf.c **** * @param pdev: Device handle + 580:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 581:Src/usbd_conf.c **** * @retval USBD status + 582:Src/usbd_conf.c **** */ + 583:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 584:Src/usbd_conf.c **** { + 585:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 586:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 587:Src/usbd_conf.c **** + 588:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_ClrStall(pdev->pData, ep_addr); + 589:Src/usbd_conf.c **** + 590:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 591:Src/usbd_conf.c **** + 592:Src/usbd_conf.c **** return usb_status; + 593:Src/usbd_conf.c **** } + 594:Src/usbd_conf.c **** + 595:Src/usbd_conf.c **** /** + 596:Src/usbd_conf.c **** * @brief Returns Stall condition. + 597:Src/usbd_conf.c **** * @param pdev: Device handle + 598:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 599:Src/usbd_conf.c **** * @retval Stall (1: Yes, 0: No) + 600:Src/usbd_conf.c **** */ + ARM GAS /tmp/ccf5FGie.s page 12 + + + 601:Src/usbd_conf.c **** uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 602:Src/usbd_conf.c **** { + 603:Src/usbd_conf.c **** PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->pData; + 604:Src/usbd_conf.c **** + 605:Src/usbd_conf.c **** if((ep_addr & 0x80) == 0x80) + 606:Src/usbd_conf.c **** { + 607:Src/usbd_conf.c **** return hpcd->IN_ep[ep_addr & 0x7F].is_stall; + 608:Src/usbd_conf.c **** } + 609:Src/usbd_conf.c **** else + 610:Src/usbd_conf.c **** { + 611:Src/usbd_conf.c **** return hpcd->OUT_ep[ep_addr & 0x7F].is_stall; + 612:Src/usbd_conf.c **** } + 613:Src/usbd_conf.c **** } + 614:Src/usbd_conf.c **** + 615:Src/usbd_conf.c **** /** + 616:Src/usbd_conf.c **** * @brief Assigns a USB address to the device. + 617:Src/usbd_conf.c **** * @param pdev: Device handle + 618:Src/usbd_conf.c **** * @param dev_addr: Device address + 619:Src/usbd_conf.c **** * @retval USBD status + 620:Src/usbd_conf.c **** */ + 621:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr) + 622:Src/usbd_conf.c **** { + 623:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 624:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 625:Src/usbd_conf.c **** + 626:Src/usbd_conf.c **** hal_status = HAL_PCD_SetAddress(pdev->pData, dev_addr); + 627:Src/usbd_conf.c **** + 628:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 629:Src/usbd_conf.c **** + 630:Src/usbd_conf.c **** return usb_status; + 631:Src/usbd_conf.c **** } + 632:Src/usbd_conf.c **** + 633:Src/usbd_conf.c **** /** + 634:Src/usbd_conf.c **** * @brief Transmits data over an endpoint. + 635:Src/usbd_conf.c **** * @param pdev: Device handle + 636:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 637:Src/usbd_conf.c **** * @param pbuf: Pointer to data to be sent + 638:Src/usbd_conf.c **** * @param size: Data size + 639:Src/usbd_conf.c **** * @retval USBD status + 640:Src/usbd_conf.c **** */ + 641:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint3 + 642:Src/usbd_conf.c **** { + 643:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 644:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 645:Src/usbd_conf.c **** + 646:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_Transmit(pdev->pData, ep_addr, pbuf, size); + 647:Src/usbd_conf.c **** + 648:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 649:Src/usbd_conf.c **** + 650:Src/usbd_conf.c **** return usb_status; + 651:Src/usbd_conf.c **** } + 652:Src/usbd_conf.c **** + 653:Src/usbd_conf.c **** /** + 654:Src/usbd_conf.c **** * @brief Prepares an endpoint for reception. + 655:Src/usbd_conf.c **** * @param pdev: Device handle + 656:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 657:Src/usbd_conf.c **** * @param pbuf: Pointer to data to be received + ARM GAS /tmp/ccf5FGie.s page 13 + + + 658:Src/usbd_conf.c **** * @param size: Data size + 659:Src/usbd_conf.c **** * @retval USBD status + 660:Src/usbd_conf.c **** */ + 661:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, + 662:Src/usbd_conf.c **** { + 663:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 664:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 665:Src/usbd_conf.c **** + 666:Src/usbd_conf.c **** hal_status = HAL_PCD_EP_Receive(pdev->pData, ep_addr, pbuf, size); + 667:Src/usbd_conf.c **** + 668:Src/usbd_conf.c **** usb_status = USBD_Get_USB_Status(hal_status); + 669:Src/usbd_conf.c **** + 670:Src/usbd_conf.c **** return usb_status; + 671:Src/usbd_conf.c **** } + 672:Src/usbd_conf.c **** + 673:Src/usbd_conf.c **** /** + 674:Src/usbd_conf.c **** * @brief Returns the last transferred packet size. + 675:Src/usbd_conf.c **** * @param pdev: Device handle + 676:Src/usbd_conf.c **** * @param ep_addr: Endpoint number + 677:Src/usbd_conf.c **** * @retval Received Data Size + 678:Src/usbd_conf.c **** */ + 679:Src/usbd_conf.c **** uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 680:Src/usbd_conf.c **** { + 681:Src/usbd_conf.c **** return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->pData, ep_addr); + 682:Src/usbd_conf.c **** } + 683:Src/usbd_conf.c **** + 684:Src/usbd_conf.c **** /** + 685:Src/usbd_conf.c **** * @brief Send LPM message to user layer + 686:Src/usbd_conf.c **** * @param hpcd: PCD handle + 687:Src/usbd_conf.c **** * @param msg: LPM message + 688:Src/usbd_conf.c **** * @retval None + 689:Src/usbd_conf.c **** */ + 690:Src/usbd_conf.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + 691:Src/usbd_conf.c **** static void PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg) + 692:Src/usbd_conf.c **** #else + 693:Src/usbd_conf.c **** void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg) + 694:Src/usbd_conf.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + 695:Src/usbd_conf.c **** { + 696:Src/usbd_conf.c **** /* USER CODE BEGIN LPM_Callback */ + 697:Src/usbd_conf.c **** switch (msg) + 698:Src/usbd_conf.c **** { + 699:Src/usbd_conf.c **** case PCD_LPM_L0_ACTIVE: + 700:Src/usbd_conf.c **** if (hpcd->Init.low_power_enable) + 701:Src/usbd_conf.c **** { + 702:Src/usbd_conf.c **** SystemClockConfig_Resume(); + 703:Src/usbd_conf.c **** + 704:Src/usbd_conf.c **** /* Reset SLEEPDEEP bit of Cortex System Control Register. */ + 705:Src/usbd_conf.c **** SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + 706:Src/usbd_conf.c **** } + 707:Src/usbd_conf.c **** USBD_LL_Resume(hpcd->pData); + 708:Src/usbd_conf.c **** break; + 709:Src/usbd_conf.c **** + 710:Src/usbd_conf.c **** case PCD_LPM_L1_ACTIVE: + 711:Src/usbd_conf.c **** USBD_LL_Suspend(hpcd->pData); + 712:Src/usbd_conf.c **** + 713:Src/usbd_conf.c **** /* Enter in STOP mode. */ + 714:Src/usbd_conf.c **** if (hpcd->Init.low_power_enable) + ARM GAS /tmp/ccf5FGie.s page 14 + + + 715:Src/usbd_conf.c **** { + 716:Src/usbd_conf.c **** /* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */ + 717:Src/usbd_conf.c **** SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + 718:Src/usbd_conf.c **** } + 719:Src/usbd_conf.c **** break; + 720:Src/usbd_conf.c **** } + 721:Src/usbd_conf.c **** /* USER CODE END LPM_Callback */ + 722:Src/usbd_conf.c **** } + 723:Src/usbd_conf.c **** + 724:Src/usbd_conf.c **** /** + 725:Src/usbd_conf.c **** * @brief Delays routine for the USB Device Library. + 726:Src/usbd_conf.c **** * @param Delay: Delay in ms + 727:Src/usbd_conf.c **** * @retval None + 728:Src/usbd_conf.c **** */ + 729:Src/usbd_conf.c **** void USBD_LL_Delay(uint32_t Delay) + 730:Src/usbd_conf.c **** { + 731:Src/usbd_conf.c **** HAL_Delay(Delay); + 732:Src/usbd_conf.c **** } + 733:Src/usbd_conf.c **** + 734:Src/usbd_conf.c **** /** + 735:Src/usbd_conf.c **** * @brief Static single allocation. + 736:Src/usbd_conf.c **** * @param size: Size of allocated memory + 737:Src/usbd_conf.c **** * @retval None + 738:Src/usbd_conf.c **** */ + 739:Src/usbd_conf.c **** void *USBD_static_malloc(uint32_t size) + 740:Src/usbd_conf.c **** { + 741:Src/usbd_conf.c **** static uint32_t mem[(sizeof(USBD_AUDIO_HandleTypeDef)/4)+1];/* On 32-bit boundary */ + 742:Src/usbd_conf.c **** return mem; + 743:Src/usbd_conf.c **** } + 744:Src/usbd_conf.c **** + 745:Src/usbd_conf.c **** /** + 746:Src/usbd_conf.c **** * @brief Dummy memory free + 747:Src/usbd_conf.c **** * @param p: Pointer to allocated memory address + 748:Src/usbd_conf.c **** * @retval None + 749:Src/usbd_conf.c **** */ + 750:Src/usbd_conf.c **** void USBD_static_free(void *p) + 751:Src/usbd_conf.c **** { + 752:Src/usbd_conf.c **** + 753:Src/usbd_conf.c **** } + 754:Src/usbd_conf.c **** + 755:Src/usbd_conf.c **** /* USER CODE BEGIN 5 */ + 756:Src/usbd_conf.c **** /** + 757:Src/usbd_conf.c **** * @brief Configures system clock after wake-up from USB resume callBack: + 758:Src/usbd_conf.c **** * enable HSI, PLL and select PLL as system clock source. + 759:Src/usbd_conf.c **** * @retval None + 760:Src/usbd_conf.c **** */ + 761:Src/usbd_conf.c **** static void SystemClockConfig_Resume(void) + 762:Src/usbd_conf.c **** { + 763:Src/usbd_conf.c **** SystemClock_Config(); + 764:Src/usbd_conf.c **** } + 765:Src/usbd_conf.c **** /* USER CODE END 5 */ + 766:Src/usbd_conf.c **** + 767:Src/usbd_conf.c **** /** + 768:Src/usbd_conf.c **** * @brief Returns the USB status depending on the HAL status: + 769:Src/usbd_conf.c **** * @param hal_status: HAL status + 770:Src/usbd_conf.c **** * @retval USB status + 771:Src/usbd_conf.c **** */ + ARM GAS /tmp/ccf5FGie.s page 15 + + + 772:Src/usbd_conf.c **** USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status) + 773:Src/usbd_conf.c **** { + 29 .loc 1 773 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 774:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 34 .loc 1 774 3 view .LVU1 + 775:Src/usbd_conf.c **** + 776:Src/usbd_conf.c **** switch (hal_status) + 35 .loc 1 776 3 view .LVU2 + 36 0000 0328 cmp r0, #3 + 37 0002 05D8 bhi .L7 + 38 0004 DFE800F0 tbb [pc, r0] + 39 .L4: + 40 0008 05 .byte (.L2-.L4)/2 + 41 0009 04 .byte (.L7-.L4)/2 + 42 000a 02 .byte (.L5-.L4)/2 + 43 000b 05 .byte (.L2-.L4)/2 + 44 .p2align 1 + 45 .L5: + 777:Src/usbd_conf.c **** { + 778:Src/usbd_conf.c **** case HAL_OK : + 779:Src/usbd_conf.c **** usb_status = USBD_OK; + 780:Src/usbd_conf.c **** break; + 781:Src/usbd_conf.c **** case HAL_ERROR : + 782:Src/usbd_conf.c **** usb_status = USBD_FAIL; + 783:Src/usbd_conf.c **** break; + 784:Src/usbd_conf.c **** case HAL_BUSY : + 785:Src/usbd_conf.c **** usb_status = USBD_BUSY; + 46 .loc 1 785 7 view .LVU3 + 47 .LVL1: + 786:Src/usbd_conf.c **** break; + 48 .loc 1 786 5 view .LVU4 + 785:Src/usbd_conf.c **** break; + 49 .loc 1 785 18 is_stmt 0 view .LVU5 + 50 000c 0120 movs r0, #1 + 51 .LVL2: + 52 .loc 1 786 5 view .LVU6 + 53 000e 7047 bx lr + 54 .LVL3: + 55 .L7: + 782:Src/usbd_conf.c **** break; + 56 .loc 1 782 18 view .LVU7 + 57 0010 0320 movs r0, #3 + 58 .LVL4: + 59 .L2: + 787:Src/usbd_conf.c **** case HAL_TIMEOUT : + 788:Src/usbd_conf.c **** usb_status = USBD_FAIL; + 789:Src/usbd_conf.c **** break; + 790:Src/usbd_conf.c **** default : + 791:Src/usbd_conf.c **** usb_status = USBD_FAIL; + 792:Src/usbd_conf.c **** break; + 793:Src/usbd_conf.c **** } + 794:Src/usbd_conf.c **** return usb_status; + 60 .loc 1 794 3 is_stmt 1 view .LVU8 + ARM GAS /tmp/ccf5FGie.s page 16 + + + 795:Src/usbd_conf.c **** } + 61 .loc 1 795 1 is_stmt 0 view .LVU9 + 62 0012 7047 bx lr + 63 .cfi_endproc + 64 .LFE365: + 66 .section .text.SystemClockConfig_Resume,"ax",%progbits + 67 .align 1 + 68 .syntax unified + 69 .thumb + 70 .thumb_func + 72 SystemClockConfig_Resume: + 73 .LFB364: + 762:Src/usbd_conf.c **** SystemClock_Config(); + 74 .loc 1 762 1 is_stmt 1 view -0 + 75 .cfi_startproc + 76 @ args = 0, pretend = 0, frame = 0 + 77 @ frame_needed = 0, uses_anonymous_args = 0 + 78 0000 08B5 push {r3, lr} + 79 .LCFI0: + 80 .cfi_def_cfa_offset 8 + 81 .cfi_offset 3, -8 + 82 .cfi_offset 14, -4 + 763:Src/usbd_conf.c **** } + 83 .loc 1 763 3 view .LVU11 + 84 0002 FFF7FEFF bl SystemClock_Config + 85 .LVL5: + 764:Src/usbd_conf.c **** /* USER CODE END 5 */ + 86 .loc 1 764 1 is_stmt 0 view .LVU12 + 87 0006 08BD pop {r3, pc} + 88 .cfi_endproc + 89 .LFE364: + 91 .section .text.HAL_PCD_MspInit,"ax",%progbits + 92 .align 1 + 93 .global HAL_PCD_MspInit + 94 .syntax unified + 95 .thumb + 96 .thumb_func + 98 HAL_PCD_MspInit: + 99 .LVL6: + 100 .LFB333: + 74:Src/usbd_conf.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 101 .loc 1 74 1 is_stmt 1 view -0 + 102 .cfi_startproc + 103 @ args = 0, pretend = 0, frame = 72 + 104 @ frame_needed = 0, uses_anonymous_args = 0 + 74:Src/usbd_conf.c **** RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + 105 .loc 1 74 1 is_stmt 0 view .LVU14 + 106 0000 10B5 push {r4, lr} + 107 .LCFI1: + 108 .cfi_def_cfa_offset 8 + 109 .cfi_offset 4, -8 + 110 .cfi_offset 14, -4 + 111 0002 92B0 sub sp, sp, #72 + 112 .LCFI2: + 113 .cfi_def_cfa_offset 80 + 114 0004 0446 mov r4, r0 + 75:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + ARM GAS /tmp/ccf5FGie.s page 17 + + + 115 .loc 1 75 3 is_stmt 1 view .LVU15 + 75:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + 116 .loc 1 75 28 is_stmt 0 view .LVU16 + 117 0006 4422 movs r2, #68 + 118 0008 0021 movs r1, #0 + 119 000a 01A8 add r0, sp, #4 + 120 .LVL7: + 75:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + 121 .loc 1 75 28 view .LVU17 + 122 000c FFF7FEFF bl memset + 123 .LVL8: + 76:Src/usbd_conf.c **** { + 124 .loc 1 76 3 is_stmt 1 view .LVU18 + 76:Src/usbd_conf.c **** { + 125 .loc 1 76 15 is_stmt 0 view .LVU19 + 126 0010 2268 ldr r2, [r4] + 76:Src/usbd_conf.c **** { + 127 .loc 1 76 5 view .LVU20 + 128 0012 114B ldr r3, .L16 + 129 0014 9A42 cmp r2, r3 + 130 0016 01D0 beq .L14 + 131 .L10: + 101:Src/usbd_conf.c **** + 132 .loc 1 101 1 view .LVU21 + 133 0018 12B0 add sp, sp, #72 + 134 .LCFI3: + 135 .cfi_remember_state + 136 .cfi_def_cfa_offset 8 + 137 @ sp needed + 138 001a 10BD pop {r4, pc} + 139 .LVL9: + 140 .L14: + 141 .LCFI4: + 142 .cfi_restore_state + 84:Src/usbd_conf.c **** PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_HSI48; + 143 .loc 1 84 5 is_stmt 1 view .LVU22 + 84:Src/usbd_conf.c **** PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_HSI48; + 144 .loc 1 84 40 is_stmt 0 view .LVU23 + 145 001c 4FF40053 mov r3, #8192 + 146 0020 0193 str r3, [sp, #4] + 85:Src/usbd_conf.c **** if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + 147 .loc 1 85 5 is_stmt 1 view .LVU24 + 86:Src/usbd_conf.c **** { + 148 .loc 1 86 5 view .LVU25 + 86:Src/usbd_conf.c **** { + 149 .loc 1 86 9 is_stmt 0 view .LVU26 + 150 0022 01A8 add r0, sp, #4 + 151 0024 FFF7FEFF bl HAL_RCCEx_PeriphCLKConfig + 152 .LVL10: + 86:Src/usbd_conf.c **** { + 153 .loc 1 86 8 view .LVU27 + 154 0028 90B9 cbnz r0, .L15 + 155 .L12: + 92:Src/usbd_conf.c **** + 156 .loc 1 92 5 is_stmt 1 view .LVU28 + 157 .LBB2: + 92:Src/usbd_conf.c **** + ARM GAS /tmp/ccf5FGie.s page 18 + + + 158 .loc 1 92 5 view .LVU29 + 92:Src/usbd_conf.c **** + 159 .loc 1 92 5 view .LVU30 + 160 002a 0C4B ldr r3, .L16+4 + 161 002c 9A6D ldr r2, [r3, #88] + 162 002e 42F40002 orr r2, r2, #8388608 + 163 0032 9A65 str r2, [r3, #88] + 92:Src/usbd_conf.c **** + 164 .loc 1 92 5 view .LVU31 + 165 0034 9B6D ldr r3, [r3, #88] + 166 0036 03F40003 and r3, r3, #8388608 + 167 003a 0093 str r3, [sp] + 92:Src/usbd_conf.c **** + 168 .loc 1 92 5 view .LVU32 + 169 003c 009B ldr r3, [sp] + 170 .LBE2: + 92:Src/usbd_conf.c **** + 171 .loc 1 92 5 view .LVU33 + 95:Src/usbd_conf.c **** HAL_NVIC_EnableIRQ(USB_LP_IRQn); + 172 .loc 1 95 5 view .LVU34 + 173 003e 0022 movs r2, #0 + 174 0040 1146 mov r1, r2 + 175 0042 1420 movs r0, #20 + 176 0044 FFF7FEFF bl HAL_NVIC_SetPriority + 177 .LVL11: + 96:Src/usbd_conf.c **** /* USER CODE BEGIN USB_MspInit 1 */ + 178 .loc 1 96 5 view .LVU35 + 179 0048 1420 movs r0, #20 + 180 004a FFF7FEFF bl HAL_NVIC_EnableIRQ + 181 .LVL12: + 101:Src/usbd_conf.c **** + 182 .loc 1 101 1 is_stmt 0 view .LVU36 + 183 004e E3E7 b .L10 + 184 .L15: + 88:Src/usbd_conf.c **** } + 185 .loc 1 88 7 is_stmt 1 view .LVU37 + 186 0050 FFF7FEFF bl Error_Handler + 187 .LVL13: + 188 0054 E9E7 b .L12 + 189 .L17: + 190 0056 00BF .align 2 + 191 .L16: + 192 0058 005C0040 .word 1073765376 + 193 005c 00100240 .word 1073876992 + 194 .cfi_endproc + 195 .LFE333: + 197 .section .text.HAL_PCD_MspDeInit,"ax",%progbits + 198 .align 1 + 199 .global HAL_PCD_MspDeInit + 200 .syntax unified + 201 .thumb + 202 .thumb_func + 204 HAL_PCD_MspDeInit: + 205 .LVL14: + 206 .LFB334: + 108:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + 207 .loc 1 108 1 view -0 + ARM GAS /tmp/ccf5FGie.s page 19 + + + 208 .cfi_startproc + 209 @ args = 0, pretend = 0, frame = 0 + 210 @ frame_needed = 0, uses_anonymous_args = 0 + 108:Src/usbd_conf.c **** if(pcdHandle->Instance==USB) + 211 .loc 1 108 1 is_stmt 0 view .LVU39 + 212 0000 08B5 push {r3, lr} + 213 .LCFI5: + 214 .cfi_def_cfa_offset 8 + 215 .cfi_offset 3, -8 + 216 .cfi_offset 14, -4 + 109:Src/usbd_conf.c **** { + 217 .loc 1 109 3 is_stmt 1 view .LVU40 + 109:Src/usbd_conf.c **** { + 218 .loc 1 109 15 is_stmt 0 view .LVU41 + 219 0002 0268 ldr r2, [r0] + 109:Src/usbd_conf.c **** { + 220 .loc 1 109 5 view .LVU42 + 221 0004 064B ldr r3, .L22 + 222 0006 9A42 cmp r2, r3 + 223 0008 00D0 beq .L21 + 224 .LVL15: + 225 .L18: + 124:Src/usbd_conf.c **** + 226 .loc 1 124 1 view .LVU43 + 227 000a 08BD pop {r3, pc} + 228 .LVL16: + 229 .L21: + 115:Src/usbd_conf.c **** + 230 .loc 1 115 5 is_stmt 1 view .LVU44 + 231 000c 054A ldr r2, .L22+4 + 232 000e 936D ldr r3, [r2, #88] + 233 0010 23F40003 bic r3, r3, #8388608 + 234 0014 9365 str r3, [r2, #88] + 118:Src/usbd_conf.c **** + 235 .loc 1 118 5 view .LVU45 + 236 0016 1420 movs r0, #20 + 237 .LVL17: + 118:Src/usbd_conf.c **** + 238 .loc 1 118 5 is_stmt 0 view .LVU46 + 239 0018 FFF7FEFF bl HAL_NVIC_DisableIRQ + 240 .LVL18: + 124:Src/usbd_conf.c **** + 241 .loc 1 124 1 view .LVU47 + 242 001c F5E7 b .L18 + 243 .L23: + 244 001e 00BF .align 2 + 245 .L22: + 246 0020 005C0040 .word 1073765376 + 247 0024 00100240 .word 1073876992 + 248 .cfi_endproc + 249 .LFE334: + 251 .section .text.HAL_PCD_SetupStageCallback,"ax",%progbits + 252 .align 1 + 253 .global HAL_PCD_SetupStageCallback + 254 .syntax unified + 255 .thumb + 256 .thumb_func + ARM GAS /tmp/ccf5FGie.s page 20 + + + 258 HAL_PCD_SetupStageCallback: + 259 .LVL19: + 260 .LFB335: + 136:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PreTreatment */ + 261 .loc 1 136 1 is_stmt 1 view -0 + 262 .cfi_startproc + 263 @ args = 0, pretend = 0, frame = 0 + 264 @ frame_needed = 0, uses_anonymous_args = 0 + 136:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PreTreatment */ + 265 .loc 1 136 1 is_stmt 0 view .LVU49 + 266 0000 08B5 push {r3, lr} + 267 .LCFI6: + 268 .cfi_def_cfa_offset 8 + 269 .cfi_offset 3, -8 + 270 .cfi_offset 14, -4 + 140:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PostTreatment */ + 271 .loc 1 140 3 is_stmt 1 view .LVU50 + 272 0002 00F52C71 add r1, r0, #688 + 273 0006 D0F8F002 ldr r0, [r0, #752] + 274 .LVL20: + 140:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SetupStageCallback_PostTreatment */ + 275 .loc 1 140 3 is_stmt 0 view .LVU51 + 276 000a FFF7FEFF bl USBD_LL_SetupStage + 277 .LVL21: + 144:Src/usbd_conf.c **** + 278 .loc 1 144 1 view .LVU52 + 279 000e 08BD pop {r3, pc} + 280 .cfi_endproc + 281 .LFE335: + 283 .section .text.HAL_PCD_DataOutStageCallback,"ax",%progbits + 284 .align 1 + 285 .global HAL_PCD_DataOutStageCallback + 286 .syntax unified + 287 .thumb + 288 .thumb_func + 290 HAL_PCD_DataOutStageCallback: + 291 .LVL22: + 292 .LFB336: + 157:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PreTreatment */ + 293 .loc 1 157 1 is_stmt 1 view -0 + 294 .cfi_startproc + 295 @ args = 0, pretend = 0, frame = 0 + 296 @ frame_needed = 0, uses_anonymous_args = 0 + 157:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PreTreatment */ + 297 .loc 1 157 1 is_stmt 0 view .LVU54 + 298 0000 08B5 push {r3, lr} + 299 .LCFI7: + 300 .cfi_def_cfa_offset 8 + 301 .cfi_offset 3, -8 + 302 .cfi_offset 14, -4 + 161:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PostTreatment */ + 303 .loc 1 161 3 is_stmt 1 view .LVU55 + 304 0002 01EB8103 add r3, r1, r1, lsl #2 + 305 0006 00EBC303 add r3, r0, r3, lsl #3 + 306 000a D3F87C21 ldr r2, [r3, #380] + 307 000e D0F8F002 ldr r0, [r0, #752] + 308 .LVL23: + ARM GAS /tmp/ccf5FGie.s page 21 + + + 161:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataOutStageCallback_PostTreatment */ + 309 .loc 1 161 3 is_stmt 0 view .LVU56 + 310 0012 FFF7FEFF bl USBD_LL_DataOutStage + 311 .LVL24: + 165:Src/usbd_conf.c **** + 312 .loc 1 165 1 view .LVU57 + 313 0016 08BD pop {r3, pc} + 314 .cfi_endproc + 315 .LFE336: + 317 .section .text.HAL_PCD_DataInStageCallback,"ax",%progbits + 318 .align 1 + 319 .global HAL_PCD_DataInStageCallback + 320 .syntax unified + 321 .thumb + 322 .thumb_func + 324 HAL_PCD_DataInStageCallback: + 325 .LVL25: + 326 .LFB337: + 178:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PreTreatment */ + 327 .loc 1 178 1 is_stmt 1 view -0 + 328 .cfi_startproc + 329 @ args = 0, pretend = 0, frame = 0 + 330 @ frame_needed = 0, uses_anonymous_args = 0 + 178:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PreTreatment */ + 331 .loc 1 178 1 is_stmt 0 view .LVU59 + 332 0000 08B5 push {r3, lr} + 333 .LCFI8: + 334 .cfi_def_cfa_offset 8 + 335 .cfi_offset 3, -8 + 336 .cfi_offset 14, -4 + 182:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PostTreatment */ + 337 .loc 1 182 3 is_stmt 1 view .LVU60 + 338 0002 01EB8103 add r3, r1, r1, lsl #2 + 339 0006 00EBC303 add r3, r0, r3, lsl #3 + 340 000a DA6B ldr r2, [r3, #60] + 341 000c D0F8F002 ldr r0, [r0, #752] + 342 .LVL26: + 182:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DataInStageCallback_PostTreatment */ + 343 .loc 1 182 3 is_stmt 0 view .LVU61 + 344 0010 FFF7FEFF bl USBD_LL_DataInStage + 345 .LVL27: + 186:Src/usbd_conf.c **** + 346 .loc 1 186 1 view .LVU62 + 347 0014 08BD pop {r3, pc} + 348 .cfi_endproc + 349 .LFE337: + 351 .section .text.HAL_PCD_SOFCallback,"ax",%progbits + 352 .align 1 + 353 .global HAL_PCD_SOFCallback + 354 .syntax unified + 355 .thumb + 356 .thumb_func + 358 HAL_PCD_SOFCallback: + 359 .LVL28: + 360 .LFB338: + 198:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SOFCallback_PreTreatment */ + 361 .loc 1 198 1 is_stmt 1 view -0 + ARM GAS /tmp/ccf5FGie.s page 22 + + + 362 .cfi_startproc + 363 @ args = 0, pretend = 0, frame = 0 + 364 @ frame_needed = 0, uses_anonymous_args = 0 + 198:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SOFCallback_PreTreatment */ + 365 .loc 1 198 1 is_stmt 0 view .LVU64 + 366 0000 08B5 push {r3, lr} + 367 .LCFI9: + 368 .cfi_def_cfa_offset 8 + 369 .cfi_offset 3, -8 + 370 .cfi_offset 14, -4 + 202:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SOFCallback_PostTreatment */ + 371 .loc 1 202 3 is_stmt 1 view .LVU65 + 372 0002 D0F8F002 ldr r0, [r0, #752] + 373 .LVL29: + 202:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SOFCallback_PostTreatment */ + 374 .loc 1 202 3 is_stmt 0 view .LVU66 + 375 0006 FFF7FEFF bl USBD_LL_SOF + 376 .LVL30: + 206:Src/usbd_conf.c **** + 377 .loc 1 206 1 view .LVU67 + 378 000a 08BD pop {r3, pc} + 379 .cfi_endproc + 380 .LFE338: + 382 .section .text.HAL_PCD_ResetCallback,"ax",%progbits + 383 .align 1 + 384 .global HAL_PCD_ResetCallback + 385 .syntax unified + 386 .thumb + 387 .thumb_func + 389 HAL_PCD_ResetCallback: + 390 .LVL31: + 391 .LFB339: + 218:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResetCallback_PreTreatment */ + 392 .loc 1 218 1 is_stmt 1 view -0 + 393 .cfi_startproc + 394 @ args = 0, pretend = 0, frame = 0 + 395 @ frame_needed = 0, uses_anonymous_args = 0 + 218:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResetCallback_PreTreatment */ + 396 .loc 1 218 1 is_stmt 0 view .LVU69 + 397 0000 10B5 push {r4, lr} + 398 .LCFI10: + 399 .cfi_def_cfa_offset 8 + 400 .cfi_offset 4, -8 + 401 .cfi_offset 14, -4 + 402 0002 0446 mov r4, r0 + 222:Src/usbd_conf.c **** + 403 .loc 1 222 3 is_stmt 1 view .LVU70 + 404 .LVL32: + 224:Src/usbd_conf.c **** { + 405 .loc 1 224 3 view .LVU71 + 224:Src/usbd_conf.c **** { + 406 .loc 1 224 18 is_stmt 0 view .LVU72 + 407 0004 8368 ldr r3, [r0, #8] + 224:Src/usbd_conf.c **** { + 408 .loc 1 224 6 view .LVU73 + 409 0006 022B cmp r3, #2 + 410 0008 09D1 bne .L35 + ARM GAS /tmp/ccf5FGie.s page 23 + + + 411 .LVL33: + 412 .L33: + 229:Src/usbd_conf.c **** + 413 .loc 1 229 3 is_stmt 1 view .LVU74 + 414 000a 0121 movs r1, #1 + 415 000c D4F8F002 ldr r0, [r4, #752] + 416 0010 FFF7FEFF bl USBD_LL_SetSpeed + 417 .LVL34: + 232:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResetCallback_PostTreatment */ + 418 .loc 1 232 3 view .LVU75 + 419 0014 D4F8F002 ldr r0, [r4, #752] + 420 0018 FFF7FEFF bl USBD_LL_Reset + 421 .LVL35: + 236:Src/usbd_conf.c **** + 422 .loc 1 236 1 is_stmt 0 view .LVU76 + 423 001c 10BD pop {r4, pc} + 424 .LVL36: + 425 .L35: + 226:Src/usbd_conf.c **** } + 426 .loc 1 226 5 is_stmt 1 view .LVU77 + 427 001e FFF7FEFF bl Error_Handler + 428 .LVL37: + 226:Src/usbd_conf.c **** } + 429 .loc 1 226 5 is_stmt 0 view .LVU78 + 430 0022 F2E7 b .L33 + 431 .cfi_endproc + 432 .LFE339: + 434 .section .text.HAL_PCD_SuspendCallback,"ax",%progbits + 435 .align 1 + 436 .global HAL_PCD_SuspendCallback + 437 .syntax unified + 438 .thumb + 439 .thumb_func + 441 HAL_PCD_SuspendCallback: + 442 .LVL38: + 443 .LFB340: + 249:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SuspendCallback_PreTreatment */ + 444 .loc 1 249 1 is_stmt 1 view -0 + 445 .cfi_startproc + 446 @ args = 0, pretend = 0, frame = 0 + 447 @ frame_needed = 0, uses_anonymous_args = 0 + 249:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_SuspendCallback_PreTreatment */ + 448 .loc 1 249 1 is_stmt 0 view .LVU80 + 449 0000 10B5 push {r4, lr} + 450 .LCFI11: + 451 .cfi_def_cfa_offset 8 + 452 .cfi_offset 4, -8 + 453 .cfi_offset 14, -4 + 454 0002 0446 mov r4, r0 + 254:Src/usbd_conf.c **** /* Enter in STOP mode. */ + 455 .loc 1 254 3 is_stmt 1 view .LVU81 + 456 0004 D0F8F002 ldr r0, [r0, #752] + 457 .LVL39: + 254:Src/usbd_conf.c **** /* Enter in STOP mode. */ + 458 .loc 1 254 3 is_stmt 0 view .LVU82 + 459 0008 FFF7FEFF bl USBD_LL_Suspend + 460 .LVL40: + ARM GAS /tmp/ccf5FGie.s page 24 + + + 257:Src/usbd_conf.c **** { + 461 .loc 1 257 3 is_stmt 1 view .LVU83 + 257:Src/usbd_conf.c **** { + 462 .loc 1 257 17 is_stmt 0 view .LVU84 + 463 000c A369 ldr r3, [r4, #24] + 257:Src/usbd_conf.c **** { + 464 .loc 1 257 6 view .LVU85 + 465 000e 23B1 cbz r3, .L36 + 260:Src/usbd_conf.c **** } + 466 .loc 1 260 5 is_stmt 1 view .LVU86 + 260:Src/usbd_conf.c **** } + 467 .loc 1 260 8 is_stmt 0 view .LVU87 + 468 0010 024A ldr r2, .L39 + 469 0012 1369 ldr r3, [r2, #16] + 260:Src/usbd_conf.c **** } + 470 .loc 1 260 14 view .LVU88 + 471 0014 43F00603 orr r3, r3, #6 + 472 0018 1361 str r3, [r2, #16] + 473 .L36: + 266:Src/usbd_conf.c **** + 474 .loc 1 266 1 view .LVU89 + 475 001a 10BD pop {r4, pc} + 476 .LVL41: + 477 .L40: + 266:Src/usbd_conf.c **** + 478 .loc 1 266 1 view .LVU90 + 479 .align 2 + 480 .L39: + 481 001c 00ED00E0 .word -536810240 + 482 .cfi_endproc + 483 .LFE340: + 485 .section .text.HAL_PCD_ResumeCallback,"ax",%progbits + 486 .align 1 + 487 .global HAL_PCD_ResumeCallback + 488 .syntax unified + 489 .thumb + 490 .thumb_func + 492 HAL_PCD_ResumeCallback: + 493 .LVL42: + 494 .LFB341: + 279:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResumeCallback_PreTreatment */ + 495 .loc 1 279 1 is_stmt 1 view -0 + 496 .cfi_startproc + 497 @ args = 0, pretend = 0, frame = 0 + 498 @ frame_needed = 0, uses_anonymous_args = 0 + 279:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResumeCallback_PreTreatment */ + 499 .loc 1 279 1 is_stmt 0 view .LVU92 + 500 0000 10B5 push {r4, lr} + 501 .LCFI12: + 502 .cfi_def_cfa_offset 8 + 503 .cfi_offset 4, -8 + 504 .cfi_offset 14, -4 + 505 0002 0446 mov r4, r0 + 285:Src/usbd_conf.c **** { + 506 .loc 1 285 3 is_stmt 1 view .LVU93 + 285:Src/usbd_conf.c **** { + 507 .loc 1 285 17 is_stmt 0 view .LVU94 + ARM GAS /tmp/ccf5FGie.s page 25 + + + 508 0004 8369 ldr r3, [r0, #24] + 285:Src/usbd_conf.c **** { + 509 .loc 1 285 6 view .LVU95 + 510 0006 23B9 cbnz r3, .L44 + 511 .LVL43: + 512 .L42: + 293:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ResumeCallback_PostTreatment */ + 513 .loc 1 293 3 is_stmt 1 view .LVU96 + 514 0008 D4F8F002 ldr r0, [r4, #752] + 515 000c FFF7FEFF bl USBD_LL_Resume + 516 .LVL44: + 297:Src/usbd_conf.c **** + 517 .loc 1 297 1 is_stmt 0 view .LVU97 + 518 0010 10BD pop {r4, pc} + 519 .LVL45: + 520 .L44: + 288:Src/usbd_conf.c **** SystemClockConfig_Resume(); + 521 .loc 1 288 5 is_stmt 1 view .LVU98 + 288:Src/usbd_conf.c **** SystemClockConfig_Resume(); + 522 .loc 1 288 8 is_stmt 0 view .LVU99 + 523 0012 044A ldr r2, .L45 + 524 0014 1369 ldr r3, [r2, #16] + 288:Src/usbd_conf.c **** SystemClockConfig_Resume(); + 525 .loc 1 288 14 view .LVU100 + 526 0016 23F00603 bic r3, r3, #6 + 527 001a 1361 str r3, [r2, #16] + 289:Src/usbd_conf.c **** } + 528 .loc 1 289 5 is_stmt 1 view .LVU101 + 529 001c FFF7FEFF bl SystemClockConfig_Resume + 530 .LVL46: + 289:Src/usbd_conf.c **** } + 531 .loc 1 289 5 is_stmt 0 view .LVU102 + 532 0020 F2E7 b .L42 + 533 .L46: + 534 0022 00BF .align 2 + 535 .L45: + 536 0024 00ED00E0 .word -536810240 + 537 .cfi_endproc + 538 .LFE341: + 540 .section .text.HAL_PCD_ISOOUTIncompleteCallback,"ax",%progbits + 541 .align 1 + 542 .global HAL_PCD_ISOOUTIncompleteCallback + 543 .syntax unified + 544 .thumb + 545 .thumb_func + 547 HAL_PCD_ISOOUTIncompleteCallback: + 548 .LVL47: + 549 .LFB342: + 310:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PreTreatment */ + 550 .loc 1 310 1 is_stmt 1 view -0 + 551 .cfi_startproc + 552 @ args = 0, pretend = 0, frame = 0 + 553 @ frame_needed = 0, uses_anonymous_args = 0 + 310:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PreTreatment */ + 554 .loc 1 310 1 is_stmt 0 view .LVU104 + 555 0000 08B5 push {r3, lr} + 556 .LCFI13: + ARM GAS /tmp/ccf5FGie.s page 26 + + + 557 .cfi_def_cfa_offset 8 + 558 .cfi_offset 3, -8 + 559 .cfi_offset 14, -4 + 314:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PostTreatment */ + 560 .loc 1 314 3 is_stmt 1 view .LVU105 + 561 0002 D0F8F002 ldr r0, [r0, #752] + 562 .LVL48: + 314:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOOUTIncompleteCallback_PostTreatment */ + 563 .loc 1 314 3 is_stmt 0 view .LVU106 + 564 0006 FFF7FEFF bl USBD_LL_IsoOUTIncomplete + 565 .LVL49: + 318:Src/usbd_conf.c **** + 566 .loc 1 318 1 view .LVU107 + 567 000a 08BD pop {r3, pc} + 568 .cfi_endproc + 569 .LFE342: + 571 .section .text.HAL_PCD_ISOINIncompleteCallback,"ax",%progbits + 572 .align 1 + 573 .global HAL_PCD_ISOINIncompleteCallback + 574 .syntax unified + 575 .thumb + 576 .thumb_func + 578 HAL_PCD_ISOINIncompleteCallback: + 579 .LVL50: + 580 .LFB343: + 331:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PreTreatment */ + 581 .loc 1 331 1 is_stmt 1 view -0 + 582 .cfi_startproc + 583 @ args = 0, pretend = 0, frame = 0 + 584 @ frame_needed = 0, uses_anonymous_args = 0 + 331:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PreTreatment */ + 585 .loc 1 331 1 is_stmt 0 view .LVU109 + 586 0000 08B5 push {r3, lr} + 587 .LCFI14: + 588 .cfi_def_cfa_offset 8 + 589 .cfi_offset 3, -8 + 590 .cfi_offset 14, -4 + 335:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PostTreatment */ + 591 .loc 1 335 3 is_stmt 1 view .LVU110 + 592 0002 D0F8F002 ldr r0, [r0, #752] + 593 .LVL51: + 335:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ISOINIncompleteCallback_PostTreatment */ + 594 .loc 1 335 3 is_stmt 0 view .LVU111 + 595 0006 FFF7FEFF bl USBD_LL_IsoINIncomplete + 596 .LVL52: + 339:Src/usbd_conf.c **** + 597 .loc 1 339 1 view .LVU112 + 598 000a 08BD pop {r3, pc} + 599 .cfi_endproc + 600 .LFE343: + 602 .section .text.HAL_PCD_ConnectCallback,"ax",%progbits + 603 .align 1 + 604 .global HAL_PCD_ConnectCallback + 605 .syntax unified + 606 .thumb + 607 .thumb_func + 609 HAL_PCD_ConnectCallback: + ARM GAS /tmp/ccf5FGie.s page 27 + + + 610 .LVL53: + 611 .LFB344: + 351:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ConnectCallback_PreTreatment */ + 612 .loc 1 351 1 is_stmt 1 view -0 + 613 .cfi_startproc + 614 @ args = 0, pretend = 0, frame = 0 + 615 @ frame_needed = 0, uses_anonymous_args = 0 + 351:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ConnectCallback_PreTreatment */ + 616 .loc 1 351 1 is_stmt 0 view .LVU114 + 617 0000 08B5 push {r3, lr} + 618 .LCFI15: + 619 .cfi_def_cfa_offset 8 + 620 .cfi_offset 3, -8 + 621 .cfi_offset 14, -4 + 355:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ConnectCallback_PostTreatment */ + 622 .loc 1 355 3 is_stmt 1 view .LVU115 + 623 0002 D0F8F002 ldr r0, [r0, #752] + 624 .LVL54: + 355:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_ConnectCallback_PostTreatment */ + 625 .loc 1 355 3 is_stmt 0 view .LVU116 + 626 0006 FFF7FEFF bl USBD_LL_DevConnected + 627 .LVL55: + 359:Src/usbd_conf.c **** + 628 .loc 1 359 1 view .LVU117 + 629 000a 08BD pop {r3, pc} + 630 .cfi_endproc + 631 .LFE344: + 633 .section .text.HAL_PCD_DisconnectCallback,"ax",%progbits + 634 .align 1 + 635 .global HAL_PCD_DisconnectCallback + 636 .syntax unified + 637 .thumb + 638 .thumb_func + 640 HAL_PCD_DisconnectCallback: + 641 .LVL56: + 642 .LFB345: + 371:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PreTreatment */ + 643 .loc 1 371 1 is_stmt 1 view -0 + 644 .cfi_startproc + 645 @ args = 0, pretend = 0, frame = 0 + 646 @ frame_needed = 0, uses_anonymous_args = 0 + 371:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PreTreatment */ + 647 .loc 1 371 1 is_stmt 0 view .LVU119 + 648 0000 08B5 push {r3, lr} + 649 .LCFI16: + 650 .cfi_def_cfa_offset 8 + 651 .cfi_offset 3, -8 + 652 .cfi_offset 14, -4 + 375:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PostTreatment */ + 653 .loc 1 375 3 is_stmt 1 view .LVU120 + 654 0002 D0F8F002 ldr r0, [r0, #752] + 655 .LVL57: + 375:Src/usbd_conf.c **** /* USER CODE BEGIN HAL_PCD_DisconnectCallback_PostTreatment */ + 656 .loc 1 375 3 is_stmt 0 view .LVU121 + 657 0006 FFF7FEFF bl USBD_LL_DevDisconnected + 658 .LVL58: + 379:Src/usbd_conf.c **** + ARM GAS /tmp/ccf5FGie.s page 28 + + + 659 .loc 1 379 1 view .LVU122 + 660 000a 08BD pop {r3, pc} + 661 .cfi_endproc + 662 .LFE345: + 664 .section .text.USBD_LL_Init,"ax",%progbits + 665 .align 1 + 666 .global USBD_LL_Init + 667 .syntax unified + 668 .thumb + 669 .thumb_func + 671 USBD_LL_Init: + 672 .LVL59: + 673 .LFB346: + 395:Src/usbd_conf.c **** /* Init USB Ip. */ + 674 .loc 1 395 1 is_stmt 1 view -0 + 675 .cfi_startproc + 676 @ args = 0, pretend = 0, frame = 0 + 677 @ frame_needed = 0, uses_anonymous_args = 0 + 395:Src/usbd_conf.c **** /* Init USB Ip. */ + 678 .loc 1 395 1 is_stmt 0 view .LVU124 + 679 0000 10B5 push {r4, lr} + 680 .LCFI17: + 681 .cfi_def_cfa_offset 8 + 682 .cfi_offset 4, -8 + 683 .cfi_offset 14, -4 + 684 0002 0446 mov r4, r0 + 397:Src/usbd_conf.c **** /* Link the driver to the stack. */ + 685 .loc 1 397 3 is_stmt 1 view .LVU125 + 397:Src/usbd_conf.c **** /* Link the driver to the stack. */ + 686 .loc 1 397 21 is_stmt 0 view .LVU126 + 687 0004 1648 ldr r0, .L59 + 688 .LVL60: + 397:Src/usbd_conf.c **** /* Link the driver to the stack. */ + 689 .loc 1 397 21 view .LVU127 + 690 0006 C0F8F042 str r4, [r0, #752] + 399:Src/usbd_conf.c **** + 691 .loc 1 399 3 is_stmt 1 view .LVU128 + 399:Src/usbd_conf.c **** + 692 .loc 1 399 15 is_stmt 0 view .LVU129 + 693 000a C4F8C402 str r0, [r4, #708] + 401:Src/usbd_conf.c **** hpcd_USB_FS.Init.dev_endpoints = 8; + 694 .loc 1 401 3 is_stmt 1 view .LVU130 + 401:Src/usbd_conf.c **** hpcd_USB_FS.Init.dev_endpoints = 8; + 695 .loc 1 401 24 is_stmt 0 view .LVU131 + 696 000e 154B ldr r3, .L59+4 + 697 0010 0360 str r3, [r0] + 402:Src/usbd_conf.c **** hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; + 698 .loc 1 402 3 is_stmt 1 view .LVU132 + 402:Src/usbd_conf.c **** hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; + 699 .loc 1 402 34 is_stmt 0 view .LVU133 + 700 0012 0823 movs r3, #8 + 701 0014 4360 str r3, [r0, #4] + 403:Src/usbd_conf.c **** hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED; + 702 .loc 1 403 3 is_stmt 1 view .LVU134 + 403:Src/usbd_conf.c **** hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED; + 703 .loc 1 403 26 is_stmt 0 view .LVU135 + 704 0016 0223 movs r3, #2 + ARM GAS /tmp/ccf5FGie.s page 29 + + + 705 0018 8360 str r3, [r0, #8] + 404:Src/usbd_conf.c **** hpcd_USB_FS.Init.Sof_enable = DISABLE; + 706 .loc 1 404 3 is_stmt 1 view .LVU136 + 404:Src/usbd_conf.c **** hpcd_USB_FS.Init.Sof_enable = DISABLE; + 707 .loc 1 404 31 is_stmt 0 view .LVU137 + 708 001a 0361 str r3, [r0, #16] + 405:Src/usbd_conf.c **** hpcd_USB_FS.Init.low_power_enable = DISABLE; + 709 .loc 1 405 3 is_stmt 1 view .LVU138 + 405:Src/usbd_conf.c **** hpcd_USB_FS.Init.low_power_enable = DISABLE; + 710 .loc 1 405 31 is_stmt 0 view .LVU139 + 711 001c 0023 movs r3, #0 + 712 001e 4361 str r3, [r0, #20] + 406:Src/usbd_conf.c **** hpcd_USB_FS.Init.lpm_enable = DISABLE; + 713 .loc 1 406 3 is_stmt 1 view .LVU140 + 406:Src/usbd_conf.c **** hpcd_USB_FS.Init.lpm_enable = DISABLE; + 714 .loc 1 406 37 is_stmt 0 view .LVU141 + 715 0020 8361 str r3, [r0, #24] + 407:Src/usbd_conf.c **** hpcd_USB_FS.Init.battery_charging_enable = DISABLE; + 716 .loc 1 407 3 is_stmt 1 view .LVU142 + 407:Src/usbd_conf.c **** hpcd_USB_FS.Init.battery_charging_enable = DISABLE; + 717 .loc 1 407 31 is_stmt 0 view .LVU143 + 718 0022 C361 str r3, [r0, #28] + 408:Src/usbd_conf.c **** + 719 .loc 1 408 3 is_stmt 1 view .LVU144 + 408:Src/usbd_conf.c **** + 720 .loc 1 408 44 is_stmt 0 view .LVU145 + 721 0024 0362 str r3, [r0, #32] + 416:Src/usbd_conf.c **** { + 722 .loc 1 416 3 is_stmt 1 view .LVU146 + 416:Src/usbd_conf.c **** { + 723 .loc 1 416 7 is_stmt 0 view .LVU147 + 724 0026 FFF7FEFF bl HAL_PCD_Init + 725 .LVL61: + 416:Src/usbd_conf.c **** { + 726 .loc 1 416 6 view .LVU148 + 727 002a B0B9 cbnz r0, .L58 + 728 .L56: + 443:Src/usbd_conf.c **** HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData, 0x80, PCD_SNG_BUF, 0x50); + 729 .loc 1 443 3 is_stmt 1 view .LVU149 + 730 002c 1023 movs r3, #16 + 731 002e 0022 movs r2, #0 + 732 0030 1146 mov r1, r2 + 733 0032 D4F8C402 ldr r0, [r4, #708] + 734 0036 FFF7FEFF bl HAL_PCDEx_PMAConfig + 735 .LVL62: + 444:Src/usbd_conf.c **** /* USER CODE END EndPoint_Configuration */ + 736 .loc 1 444 3 view .LVU150 + 737 003a 5023 movs r3, #80 + 738 003c 0022 movs r2, #0 + 739 003e 8021 movs r1, #128 + 740 0040 D4F8C402 ldr r0, [r4, #708] + 741 0044 FFF7FEFF bl HAL_PCDEx_PMAConfig + 742 .LVL63: + 447:Src/usbd_conf.c **** /* USER CODE END EndPoint_Configuration_AUDIO */ + 743 .loc 1 447 3 view .LVU151 + 744 0048 074B ldr r3, .L59+8 + 745 004a 0122 movs r2, #1 + ARM GAS /tmp/ccf5FGie.s page 30 + + + 746 004c 1146 mov r1, r2 + 747 004e D4F8C402 ldr r0, [r4, #708] + 748 0052 FFF7FEFF bl HAL_PCDEx_PMAConfig + 749 .LVL64: + 449:Src/usbd_conf.c **** } + 750 .loc 1 449 3 view .LVU152 + 450:Src/usbd_conf.c **** + 751 .loc 1 450 1 is_stmt 0 view .LVU153 + 752 0056 0020 movs r0, #0 + 753 0058 10BD pop {r4, pc} + 754 .LVL65: + 755 .L58: + 418:Src/usbd_conf.c **** } + 756 .loc 1 418 5 is_stmt 1 view .LVU154 + 757 005a FFF7FEFF bl Error_Handler + 758 .LVL66: + 759 005e E5E7 b .L56 + 760 .L60: + 761 .align 2 + 762 .L59: + 763 0060 00000000 .word hpcd_USB_FS + 764 0064 005C0040 .word 1073765376 + 765 0068 90005001 .word 22020240 + 766 .cfi_endproc + 767 .LFE346: + 769 .section .text.USBD_LL_DeInit,"ax",%progbits + 770 .align 1 + 771 .global USBD_LL_DeInit + 772 .syntax unified + 773 .thumb + 774 .thumb_func + 776 USBD_LL_DeInit: + 777 .LVL67: + 778 .LFB347: + 458:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 779 .loc 1 458 1 view -0 + 780 .cfi_startproc + 781 @ args = 0, pretend = 0, frame = 0 + 782 @ frame_needed = 0, uses_anonymous_args = 0 + 458:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 783 .loc 1 458 1 is_stmt 0 view .LVU156 + 784 0000 08B5 push {r3, lr} + 785 .LCFI18: + 786 .cfi_def_cfa_offset 8 + 787 .cfi_offset 3, -8 + 788 .cfi_offset 14, -4 + 459:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 789 .loc 1 459 3 is_stmt 1 view .LVU157 + 790 .LVL68: + 460:Src/usbd_conf.c **** + 791 .loc 1 460 3 view .LVU158 + 462:Src/usbd_conf.c **** + 792 .loc 1 462 3 view .LVU159 + 462:Src/usbd_conf.c **** + 793 .loc 1 462 16 is_stmt 0 view .LVU160 + 794 0002 D0F8C402 ldr r0, [r0, #708] + 795 .LVL69: + ARM GAS /tmp/ccf5FGie.s page 31 + + + 462:Src/usbd_conf.c **** + 796 .loc 1 462 16 view .LVU161 + 797 0006 FFF7FEFF bl HAL_PCD_DeInit + 798 .LVL70: + 464:Src/usbd_conf.c **** + 799 .loc 1 464 3 is_stmt 1 view .LVU162 + 464:Src/usbd_conf.c **** + 800 .loc 1 464 17 is_stmt 0 view .LVU163 + 801 000a FFF7FEFF bl USBD_Get_USB_Status + 802 .LVL71: + 466:Src/usbd_conf.c **** } + 803 .loc 1 466 3 is_stmt 1 view .LVU164 + 467:Src/usbd_conf.c **** + 804 .loc 1 467 1 is_stmt 0 view .LVU165 + 805 000e 08BD pop {r3, pc} + 806 .cfi_endproc + 807 .LFE347: + 809 .section .text.USBD_LL_Start,"ax",%progbits + 810 .align 1 + 811 .global USBD_LL_Start + 812 .syntax unified + 813 .thumb + 814 .thumb_func + 816 USBD_LL_Start: + 817 .LVL72: + 818 .LFB348: + 475:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 819 .loc 1 475 1 is_stmt 1 view -0 + 820 .cfi_startproc + 821 @ args = 0, pretend = 0, frame = 0 + 822 @ frame_needed = 0, uses_anonymous_args = 0 + 475:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 823 .loc 1 475 1 is_stmt 0 view .LVU167 + 824 0000 08B5 push {r3, lr} + 825 .LCFI19: + 826 .cfi_def_cfa_offset 8 + 827 .cfi_offset 3, -8 + 828 .cfi_offset 14, -4 + 476:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 829 .loc 1 476 3 is_stmt 1 view .LVU168 + 830 .LVL73: + 477:Src/usbd_conf.c **** + 831 .loc 1 477 3 view .LVU169 + 479:Src/usbd_conf.c **** + 832 .loc 1 479 3 view .LVU170 + 479:Src/usbd_conf.c **** + 833 .loc 1 479 16 is_stmt 0 view .LVU171 + 834 0002 D0F8C402 ldr r0, [r0, #708] + 835 .LVL74: + 479:Src/usbd_conf.c **** + 836 .loc 1 479 16 view .LVU172 + 837 0006 FFF7FEFF bl HAL_PCD_Start + 838 .LVL75: + 481:Src/usbd_conf.c **** + 839 .loc 1 481 3 is_stmt 1 view .LVU173 + 481:Src/usbd_conf.c **** + 840 .loc 1 481 17 is_stmt 0 view .LVU174 + ARM GAS /tmp/ccf5FGie.s page 32 + + + 841 000a FFF7FEFF bl USBD_Get_USB_Status + 842 .LVL76: + 483:Src/usbd_conf.c **** } + 843 .loc 1 483 3 is_stmt 1 view .LVU175 + 484:Src/usbd_conf.c **** + 844 .loc 1 484 1 is_stmt 0 view .LVU176 + 845 000e 08BD pop {r3, pc} + 846 .cfi_endproc + 847 .LFE348: + 849 .section .text.USBD_LL_Stop,"ax",%progbits + 850 .align 1 + 851 .global USBD_LL_Stop + 852 .syntax unified + 853 .thumb + 854 .thumb_func + 856 USBD_LL_Stop: + 857 .LVL77: + 858 .LFB349: + 492:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 859 .loc 1 492 1 is_stmt 1 view -0 + 860 .cfi_startproc + 861 @ args = 0, pretend = 0, frame = 0 + 862 @ frame_needed = 0, uses_anonymous_args = 0 + 492:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 863 .loc 1 492 1 is_stmt 0 view .LVU178 + 864 0000 08B5 push {r3, lr} + 865 .LCFI20: + 866 .cfi_def_cfa_offset 8 + 867 .cfi_offset 3, -8 + 868 .cfi_offset 14, -4 + 493:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 869 .loc 1 493 3 is_stmt 1 view .LVU179 + 870 .LVL78: + 494:Src/usbd_conf.c **** + 871 .loc 1 494 3 view .LVU180 + 496:Src/usbd_conf.c **** + 872 .loc 1 496 3 view .LVU181 + 496:Src/usbd_conf.c **** + 873 .loc 1 496 16 is_stmt 0 view .LVU182 + 874 0002 D0F8C402 ldr r0, [r0, #708] + 875 .LVL79: + 496:Src/usbd_conf.c **** + 876 .loc 1 496 16 view .LVU183 + 877 0006 FFF7FEFF bl HAL_PCD_Stop + 878 .LVL80: + 498:Src/usbd_conf.c **** + 879 .loc 1 498 3 is_stmt 1 view .LVU184 + 498:Src/usbd_conf.c **** + 880 .loc 1 498 17 is_stmt 0 view .LVU185 + 881 000a FFF7FEFF bl USBD_Get_USB_Status + 882 .LVL81: + 500:Src/usbd_conf.c **** } + 883 .loc 1 500 3 is_stmt 1 view .LVU186 + 501:Src/usbd_conf.c **** + 884 .loc 1 501 1 is_stmt 0 view .LVU187 + 885 000e 08BD pop {r3, pc} + 886 .cfi_endproc + ARM GAS /tmp/ccf5FGie.s page 33 + + + 887 .LFE349: + 889 .section .text.USBD_LL_OpenEP,"ax",%progbits + 890 .align 1 + 891 .global USBD_LL_OpenEP + 892 .syntax unified + 893 .thumb + 894 .thumb_func + 896 USBD_LL_OpenEP: + 897 .LVL82: + 898 .LFB350: + 512:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 899 .loc 1 512 1 is_stmt 1 view -0 + 900 .cfi_startproc + 901 @ args = 0, pretend = 0, frame = 0 + 902 @ frame_needed = 0, uses_anonymous_args = 0 + 512:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 903 .loc 1 512 1 is_stmt 0 view .LVU189 + 904 0000 08B5 push {r3, lr} + 905 .LCFI21: + 906 .cfi_def_cfa_offset 8 + 907 .cfi_offset 3, -8 + 908 .cfi_offset 14, -4 + 909 0002 9446 mov ip, r2 + 910 0004 1A46 mov r2, r3 + 911 .LVL83: + 513:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 912 .loc 1 513 3 is_stmt 1 view .LVU190 + 514:Src/usbd_conf.c **** + 913 .loc 1 514 3 view .LVU191 + 516:Src/usbd_conf.c **** + 914 .loc 1 516 3 view .LVU192 + 516:Src/usbd_conf.c **** + 915 .loc 1 516 16 is_stmt 0 view .LVU193 + 916 0006 6346 mov r3, ip + 917 .LVL84: + 516:Src/usbd_conf.c **** + 918 .loc 1 516 16 view .LVU194 + 919 0008 D0F8C402 ldr r0, [r0, #708] + 920 .LVL85: + 516:Src/usbd_conf.c **** + 921 .loc 1 516 16 view .LVU195 + 922 000c FFF7FEFF bl HAL_PCD_EP_Open + 923 .LVL86: + 518:Src/usbd_conf.c **** + 924 .loc 1 518 3 is_stmt 1 view .LVU196 + 518:Src/usbd_conf.c **** + 925 .loc 1 518 17 is_stmt 0 view .LVU197 + 926 0010 FFF7FEFF bl USBD_Get_USB_Status + 927 .LVL87: + 520:Src/usbd_conf.c **** } + 928 .loc 1 520 3 is_stmt 1 view .LVU198 + 521:Src/usbd_conf.c **** + 929 .loc 1 521 1 is_stmt 0 view .LVU199 + 930 0014 08BD pop {r3, pc} + 931 .cfi_endproc + 932 .LFE350: + 934 .section .text.USBD_LL_CloseEP,"ax",%progbits + ARM GAS /tmp/ccf5FGie.s page 34 + + + 935 .align 1 + 936 .global USBD_LL_CloseEP + 937 .syntax unified + 938 .thumb + 939 .thumb_func + 941 USBD_LL_CloseEP: + 942 .LVL88: + 943 .LFB351: + 530:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 944 .loc 1 530 1 is_stmt 1 view -0 + 945 .cfi_startproc + 946 @ args = 0, pretend = 0, frame = 0 + 947 @ frame_needed = 0, uses_anonymous_args = 0 + 530:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 948 .loc 1 530 1 is_stmt 0 view .LVU201 + 949 0000 08B5 push {r3, lr} + 950 .LCFI22: + 951 .cfi_def_cfa_offset 8 + 952 .cfi_offset 3, -8 + 953 .cfi_offset 14, -4 + 531:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 954 .loc 1 531 3 is_stmt 1 view .LVU202 + 955 .LVL89: + 532:Src/usbd_conf.c **** + 956 .loc 1 532 3 view .LVU203 + 534:Src/usbd_conf.c **** + 957 .loc 1 534 3 view .LVU204 + 534:Src/usbd_conf.c **** + 958 .loc 1 534 16 is_stmt 0 view .LVU205 + 959 0002 D0F8C402 ldr r0, [r0, #708] + 960 .LVL90: + 534:Src/usbd_conf.c **** + 961 .loc 1 534 16 view .LVU206 + 962 0006 FFF7FEFF bl HAL_PCD_EP_Close + 963 .LVL91: + 536:Src/usbd_conf.c **** + 964 .loc 1 536 3 is_stmt 1 view .LVU207 + 536:Src/usbd_conf.c **** + 965 .loc 1 536 17 is_stmt 0 view .LVU208 + 966 000a FFF7FEFF bl USBD_Get_USB_Status + 967 .LVL92: + 538:Src/usbd_conf.c **** } + 968 .loc 1 538 3 is_stmt 1 view .LVU209 + 539:Src/usbd_conf.c **** + 969 .loc 1 539 1 is_stmt 0 view .LVU210 + 970 000e 08BD pop {r3, pc} + 971 .cfi_endproc + 972 .LFE351: + 974 .section .text.USBD_LL_FlushEP,"ax",%progbits + 975 .align 1 + 976 .global USBD_LL_FlushEP + 977 .syntax unified + 978 .thumb + 979 .thumb_func + 981 USBD_LL_FlushEP: + 982 .LVL93: + 983 .LFB352: + ARM GAS /tmp/ccf5FGie.s page 35 + + + 548:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 984 .loc 1 548 1 is_stmt 1 view -0 + 985 .cfi_startproc + 986 @ args = 0, pretend = 0, frame = 0 + 987 @ frame_needed = 0, uses_anonymous_args = 0 + 548:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 988 .loc 1 548 1 is_stmt 0 view .LVU212 + 989 0000 08B5 push {r3, lr} + 990 .LCFI23: + 991 .cfi_def_cfa_offset 8 + 992 .cfi_offset 3, -8 + 993 .cfi_offset 14, -4 + 549:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 994 .loc 1 549 3 is_stmt 1 view .LVU213 + 995 .LVL94: + 550:Src/usbd_conf.c **** + 996 .loc 1 550 3 view .LVU214 + 552:Src/usbd_conf.c **** + 997 .loc 1 552 3 view .LVU215 + 552:Src/usbd_conf.c **** + 998 .loc 1 552 16 is_stmt 0 view .LVU216 + 999 0002 D0F8C402 ldr r0, [r0, #708] + 1000 .LVL95: + 552:Src/usbd_conf.c **** + 1001 .loc 1 552 16 view .LVU217 + 1002 0006 FFF7FEFF bl HAL_PCD_EP_Flush + 1003 .LVL96: + 554:Src/usbd_conf.c **** + 1004 .loc 1 554 3 is_stmt 1 view .LVU218 + 554:Src/usbd_conf.c **** + 1005 .loc 1 554 17 is_stmt 0 view .LVU219 + 1006 000a FFF7FEFF bl USBD_Get_USB_Status + 1007 .LVL97: + 556:Src/usbd_conf.c **** } + 1008 .loc 1 556 3 is_stmt 1 view .LVU220 + 557:Src/usbd_conf.c **** + 1009 .loc 1 557 1 is_stmt 0 view .LVU221 + 1010 000e 08BD pop {r3, pc} + 1011 .cfi_endproc + 1012 .LFE352: + 1014 .section .text.USBD_LL_StallEP,"ax",%progbits + 1015 .align 1 + 1016 .global USBD_LL_StallEP + 1017 .syntax unified + 1018 .thumb + 1019 .thumb_func + 1021 USBD_LL_StallEP: + 1022 .LVL98: + 1023 .LFB353: + 566:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1024 .loc 1 566 1 is_stmt 1 view -0 + 1025 .cfi_startproc + 1026 @ args = 0, pretend = 0, frame = 0 + 1027 @ frame_needed = 0, uses_anonymous_args = 0 + 566:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1028 .loc 1 566 1 is_stmt 0 view .LVU223 + 1029 0000 08B5 push {r3, lr} + ARM GAS /tmp/ccf5FGie.s page 36 + + + 1030 .LCFI24: + 1031 .cfi_def_cfa_offset 8 + 1032 .cfi_offset 3, -8 + 1033 .cfi_offset 14, -4 + 567:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 1034 .loc 1 567 3 is_stmt 1 view .LVU224 + 1035 .LVL99: + 568:Src/usbd_conf.c **** + 1036 .loc 1 568 3 view .LVU225 + 570:Src/usbd_conf.c **** + 1037 .loc 1 570 3 view .LVU226 + 570:Src/usbd_conf.c **** + 1038 .loc 1 570 16 is_stmt 0 view .LVU227 + 1039 0002 D0F8C402 ldr r0, [r0, #708] + 1040 .LVL100: + 570:Src/usbd_conf.c **** + 1041 .loc 1 570 16 view .LVU228 + 1042 0006 FFF7FEFF bl HAL_PCD_EP_SetStall + 1043 .LVL101: + 572:Src/usbd_conf.c **** + 1044 .loc 1 572 3 is_stmt 1 view .LVU229 + 572:Src/usbd_conf.c **** + 1045 .loc 1 572 17 is_stmt 0 view .LVU230 + 1046 000a FFF7FEFF bl USBD_Get_USB_Status + 1047 .LVL102: + 574:Src/usbd_conf.c **** } + 1048 .loc 1 574 3 is_stmt 1 view .LVU231 + 575:Src/usbd_conf.c **** + 1049 .loc 1 575 1 is_stmt 0 view .LVU232 + 1050 000e 08BD pop {r3, pc} + 1051 .cfi_endproc + 1052 .LFE353: + 1054 .section .text.USBD_LL_ClearStallEP,"ax",%progbits + 1055 .align 1 + 1056 .global USBD_LL_ClearStallEP + 1057 .syntax unified + 1058 .thumb + 1059 .thumb_func + 1061 USBD_LL_ClearStallEP: + 1062 .LVL103: + 1063 .LFB354: + 584:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1064 .loc 1 584 1 is_stmt 1 view -0 + 1065 .cfi_startproc + 1066 @ args = 0, pretend = 0, frame = 0 + 1067 @ frame_needed = 0, uses_anonymous_args = 0 + 584:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1068 .loc 1 584 1 is_stmt 0 view .LVU234 + 1069 0000 08B5 push {r3, lr} + 1070 .LCFI25: + 1071 .cfi_def_cfa_offset 8 + 1072 .cfi_offset 3, -8 + 1073 .cfi_offset 14, -4 + 585:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 1074 .loc 1 585 3 is_stmt 1 view .LVU235 + 1075 .LVL104: + 586:Src/usbd_conf.c **** + ARM GAS /tmp/ccf5FGie.s page 37 + + + 1076 .loc 1 586 3 view .LVU236 + 588:Src/usbd_conf.c **** + 1077 .loc 1 588 3 view .LVU237 + 588:Src/usbd_conf.c **** + 1078 .loc 1 588 16 is_stmt 0 view .LVU238 + 1079 0002 D0F8C402 ldr r0, [r0, #708] + 1080 .LVL105: + 588:Src/usbd_conf.c **** + 1081 .loc 1 588 16 view .LVU239 + 1082 0006 FFF7FEFF bl HAL_PCD_EP_ClrStall + 1083 .LVL106: + 590:Src/usbd_conf.c **** + 1084 .loc 1 590 3 is_stmt 1 view .LVU240 + 590:Src/usbd_conf.c **** + 1085 .loc 1 590 17 is_stmt 0 view .LVU241 + 1086 000a FFF7FEFF bl USBD_Get_USB_Status + 1087 .LVL107: + 592:Src/usbd_conf.c **** } + 1088 .loc 1 592 3 is_stmt 1 view .LVU242 + 593:Src/usbd_conf.c **** + 1089 .loc 1 593 1 is_stmt 0 view .LVU243 + 1090 000e 08BD pop {r3, pc} + 1091 .cfi_endproc + 1092 .LFE354: + 1094 .section .text.USBD_LL_IsStallEP,"ax",%progbits + 1095 .align 1 + 1096 .global USBD_LL_IsStallEP + 1097 .syntax unified + 1098 .thumb + 1099 .thumb_func + 1101 USBD_LL_IsStallEP: + 1102 .LVL108: + 1103 .LFB355: + 602:Src/usbd_conf.c **** PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->pData; + 1104 .loc 1 602 1 is_stmt 1 view -0 + 1105 .cfi_startproc + 1106 @ args = 0, pretend = 0, frame = 0 + 1107 @ frame_needed = 0, uses_anonymous_args = 0 + 1108 @ link register save eliminated. + 603:Src/usbd_conf.c **** + 1109 .loc 1 603 3 view .LVU245 + 603:Src/usbd_conf.c **** + 1110 .loc 1 603 22 is_stmt 0 view .LVU246 + 1111 0000 D0F8C432 ldr r3, [r0, #708] + 1112 .LVL109: + 605:Src/usbd_conf.c **** { + 1113 .loc 1 605 3 is_stmt 1 view .LVU247 + 605:Src/usbd_conf.c **** { + 1114 .loc 1 605 5 is_stmt 0 view .LVU248 + 1115 0004 11F0800F tst r1, #128 + 1116 0008 08D1 bne .L80 + 611:Src/usbd_conf.c **** } + 1117 .loc 1 611 5 is_stmt 1 view .LVU249 + 611:Src/usbd_conf.c **** } + 1118 .loc 1 611 33 is_stmt 0 view .LVU250 + 1119 000a 01F07F01 and r1, r1, #127 + 1120 .LVL110: + ARM GAS /tmp/ccf5FGie.s page 38 + + + 611:Src/usbd_conf.c **** } + 1121 .loc 1 611 40 view .LVU251 + 1122 000e 01EB8101 add r1, r1, r1, lsl #2 + 1123 0012 03EBC103 add r3, r3, r1, lsl #3 + 1124 .LVL111: + 611:Src/usbd_conf.c **** } + 1125 .loc 1 611 40 view .LVU252 + 1126 0016 93F86A01 ldrb r0, [r3, #362] @ zero_extendqisi2 + 1127 .LVL112: + 613:Src/usbd_conf.c **** + 1128 .loc 1 613 1 view .LVU253 + 1129 001a 7047 bx lr + 1130 .LVL113: + 1131 .L80: + 607:Src/usbd_conf.c **** } + 1132 .loc 1 607 5 is_stmt 1 view .LVU254 + 607:Src/usbd_conf.c **** } + 1133 .loc 1 607 32 is_stmt 0 view .LVU255 + 1134 001c 01F07F01 and r1, r1, #127 + 1135 .LVL114: + 607:Src/usbd_conf.c **** } + 1136 .loc 1 607 39 view .LVU256 + 1137 0020 0131 adds r1, r1, #1 + 1138 0022 01EB8101 add r1, r1, r1, lsl #2 + 1139 0026 03EBC103 add r3, r3, r1, lsl #3 + 1140 .LVL115: + 607:Src/usbd_conf.c **** } + 1141 .loc 1 607 39 view .LVU257 + 1142 002a 9878 ldrb r0, [r3, #2] @ zero_extendqisi2 + 1143 .LVL116: + 607:Src/usbd_conf.c **** } + 1144 .loc 1 607 39 view .LVU258 + 1145 002c 7047 bx lr + 1146 .cfi_endproc + 1147 .LFE355: + 1149 .section .text.USBD_LL_SetUSBAddress,"ax",%progbits + 1150 .align 1 + 1151 .global USBD_LL_SetUSBAddress + 1152 .syntax unified + 1153 .thumb + 1154 .thumb_func + 1156 USBD_LL_SetUSBAddress: + 1157 .LVL117: + 1158 .LFB356: + 622:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1159 .loc 1 622 1 is_stmt 1 view -0 + 1160 .cfi_startproc + 1161 @ args = 0, pretend = 0, frame = 0 + 1162 @ frame_needed = 0, uses_anonymous_args = 0 + 622:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1163 .loc 1 622 1 is_stmt 0 view .LVU260 + 1164 0000 08B5 push {r3, lr} + 1165 .LCFI26: + 1166 .cfi_def_cfa_offset 8 + 1167 .cfi_offset 3, -8 + 1168 .cfi_offset 14, -4 + 623:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + ARM GAS /tmp/ccf5FGie.s page 39 + + + 1169 .loc 1 623 3 is_stmt 1 view .LVU261 + 1170 .LVL118: + 624:Src/usbd_conf.c **** + 1171 .loc 1 624 3 view .LVU262 + 626:Src/usbd_conf.c **** + 1172 .loc 1 626 3 view .LVU263 + 626:Src/usbd_conf.c **** + 1173 .loc 1 626 16 is_stmt 0 view .LVU264 + 1174 0002 D0F8C402 ldr r0, [r0, #708] + 1175 .LVL119: + 626:Src/usbd_conf.c **** + 1176 .loc 1 626 16 view .LVU265 + 1177 0006 FFF7FEFF bl HAL_PCD_SetAddress + 1178 .LVL120: + 628:Src/usbd_conf.c **** + 1179 .loc 1 628 3 is_stmt 1 view .LVU266 + 628:Src/usbd_conf.c **** + 1180 .loc 1 628 17 is_stmt 0 view .LVU267 + 1181 000a FFF7FEFF bl USBD_Get_USB_Status + 1182 .LVL121: + 630:Src/usbd_conf.c **** } + 1183 .loc 1 630 3 is_stmt 1 view .LVU268 + 631:Src/usbd_conf.c **** + 1184 .loc 1 631 1 is_stmt 0 view .LVU269 + 1185 000e 08BD pop {r3, pc} + 1186 .cfi_endproc + 1187 .LFE356: + 1189 .section .text.USBD_LL_Transmit,"ax",%progbits + 1190 .align 1 + 1191 .global USBD_LL_Transmit + 1192 .syntax unified + 1193 .thumb + 1194 .thumb_func + 1196 USBD_LL_Transmit: + 1197 .LVL122: + 1198 .LFB357: + 642:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1199 .loc 1 642 1 is_stmt 1 view -0 + 1200 .cfi_startproc + 1201 @ args = 0, pretend = 0, frame = 0 + 1202 @ frame_needed = 0, uses_anonymous_args = 0 + 642:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1203 .loc 1 642 1 is_stmt 0 view .LVU271 + 1204 0000 08B5 push {r3, lr} + 1205 .LCFI27: + 1206 .cfi_def_cfa_offset 8 + 1207 .cfi_offset 3, -8 + 1208 .cfi_offset 14, -4 + 643:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 1209 .loc 1 643 3 is_stmt 1 view .LVU272 + 1210 .LVL123: + 644:Src/usbd_conf.c **** + 1211 .loc 1 644 3 view .LVU273 + 646:Src/usbd_conf.c **** + 1212 .loc 1 646 3 view .LVU274 + 646:Src/usbd_conf.c **** + 1213 .loc 1 646 16 is_stmt 0 view .LVU275 + ARM GAS /tmp/ccf5FGie.s page 40 + + + 1214 0002 D0F8C402 ldr r0, [r0, #708] + 1215 .LVL124: + 646:Src/usbd_conf.c **** + 1216 .loc 1 646 16 view .LVU276 + 1217 0006 FFF7FEFF bl HAL_PCD_EP_Transmit + 1218 .LVL125: + 648:Src/usbd_conf.c **** + 1219 .loc 1 648 3 is_stmt 1 view .LVU277 + 648:Src/usbd_conf.c **** + 1220 .loc 1 648 17 is_stmt 0 view .LVU278 + 1221 000a FFF7FEFF bl USBD_Get_USB_Status + 1222 .LVL126: + 650:Src/usbd_conf.c **** } + 1223 .loc 1 650 3 is_stmt 1 view .LVU279 + 651:Src/usbd_conf.c **** + 1224 .loc 1 651 1 is_stmt 0 view .LVU280 + 1225 000e 08BD pop {r3, pc} + 1226 .cfi_endproc + 1227 .LFE357: + 1229 .section .text.USBD_LL_PrepareReceive,"ax",%progbits + 1230 .align 1 + 1231 .global USBD_LL_PrepareReceive + 1232 .syntax unified + 1233 .thumb + 1234 .thumb_func + 1236 USBD_LL_PrepareReceive: + 1237 .LVL127: + 1238 .LFB358: + 662:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1239 .loc 1 662 1 is_stmt 1 view -0 + 1240 .cfi_startproc + 1241 @ args = 0, pretend = 0, frame = 0 + 1242 @ frame_needed = 0, uses_anonymous_args = 0 + 662:Src/usbd_conf.c **** HAL_StatusTypeDef hal_status = HAL_OK; + 1243 .loc 1 662 1 is_stmt 0 view .LVU282 + 1244 0000 08B5 push {r3, lr} + 1245 .LCFI28: + 1246 .cfi_def_cfa_offset 8 + 1247 .cfi_offset 3, -8 + 1248 .cfi_offset 14, -4 + 663:Src/usbd_conf.c **** USBD_StatusTypeDef usb_status = USBD_OK; + 1249 .loc 1 663 3 is_stmt 1 view .LVU283 + 1250 .LVL128: + 664:Src/usbd_conf.c **** + 1251 .loc 1 664 3 view .LVU284 + 666:Src/usbd_conf.c **** + 1252 .loc 1 666 3 view .LVU285 + 666:Src/usbd_conf.c **** + 1253 .loc 1 666 16 is_stmt 0 view .LVU286 + 1254 0002 D0F8C402 ldr r0, [r0, #708] + 1255 .LVL129: + 666:Src/usbd_conf.c **** + 1256 .loc 1 666 16 view .LVU287 + 1257 0006 FFF7FEFF bl HAL_PCD_EP_Receive + 1258 .LVL130: + 668:Src/usbd_conf.c **** + 1259 .loc 1 668 3 is_stmt 1 view .LVU288 + ARM GAS /tmp/ccf5FGie.s page 41 + + + 668:Src/usbd_conf.c **** + 1260 .loc 1 668 17 is_stmt 0 view .LVU289 + 1261 000a FFF7FEFF bl USBD_Get_USB_Status + 1262 .LVL131: + 670:Src/usbd_conf.c **** } + 1263 .loc 1 670 3 is_stmt 1 view .LVU290 + 671:Src/usbd_conf.c **** + 1264 .loc 1 671 1 is_stmt 0 view .LVU291 + 1265 000e 08BD pop {r3, pc} + 1266 .cfi_endproc + 1267 .LFE358: + 1269 .section .text.USBD_LL_GetRxDataSize,"ax",%progbits + 1270 .align 1 + 1271 .global USBD_LL_GetRxDataSize + 1272 .syntax unified + 1273 .thumb + 1274 .thumb_func + 1276 USBD_LL_GetRxDataSize: + 1277 .LVL132: + 1278 .LFB359: + 680:Src/usbd_conf.c **** return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->pData, ep_addr); + 1279 .loc 1 680 1 is_stmt 1 view -0 + 1280 .cfi_startproc + 1281 @ args = 0, pretend = 0, frame = 0 + 1282 @ frame_needed = 0, uses_anonymous_args = 0 + 680:Src/usbd_conf.c **** return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->pData, ep_addr); + 1283 .loc 1 680 1 is_stmt 0 view .LVU293 + 1284 0000 08B5 push {r3, lr} + 1285 .LCFI29: + 1286 .cfi_def_cfa_offset 8 + 1287 .cfi_offset 3, -8 + 1288 .cfi_offset 14, -4 + 681:Src/usbd_conf.c **** } + 1289 .loc 1 681 3 is_stmt 1 view .LVU294 + 681:Src/usbd_conf.c **** } + 1290 .loc 1 681 10 is_stmt 0 view .LVU295 + 1291 0002 D0F8C402 ldr r0, [r0, #708] + 1292 .LVL133: + 681:Src/usbd_conf.c **** } + 1293 .loc 1 681 10 view .LVU296 + 1294 0006 FFF7FEFF bl HAL_PCD_EP_GetRxCount + 1295 .LVL134: + 682:Src/usbd_conf.c **** + 1296 .loc 1 682 1 view .LVU297 + 1297 000a 08BD pop {r3, pc} + 1298 .cfi_endproc + 1299 .LFE359: + 1301 .section .text.HAL_PCDEx_LPM_Callback,"ax",%progbits + 1302 .align 1 + 1303 .global HAL_PCDEx_LPM_Callback + 1304 .syntax unified + 1305 .thumb + 1306 .thumb_func + 1308 HAL_PCDEx_LPM_Callback: + 1309 .LVL135: + 1310 .LFB360: + 695:Src/usbd_conf.c **** /* USER CODE BEGIN LPM_Callback */ + ARM GAS /tmp/ccf5FGie.s page 42 + + + 1311 .loc 1 695 1 is_stmt 1 view -0 + 1312 .cfi_startproc + 1313 @ args = 0, pretend = 0, frame = 0 + 1314 @ frame_needed = 0, uses_anonymous_args = 0 + 695:Src/usbd_conf.c **** /* USER CODE BEGIN LPM_Callback */ + 1315 .loc 1 695 1 is_stmt 0 view .LVU299 + 1316 0000 10B5 push {r4, lr} + 1317 .LCFI30: + 1318 .cfi_def_cfa_offset 8 + 1319 .cfi_offset 4, -8 + 1320 .cfi_offset 14, -4 + 1321 0002 0446 mov r4, r0 + 697:Src/usbd_conf.c **** { + 1322 .loc 1 697 3 is_stmt 1 view .LVU300 + 1323 0004 11B1 cbz r1, .L90 + 1324 0006 0129 cmp r1, #1 + 1325 0008 0FD0 beq .L91 + 1326 .LVL136: + 1327 .L89: + 722:Src/usbd_conf.c **** + 1328 .loc 1 722 1 is_stmt 0 view .LVU301 + 1329 000a 10BD pop {r4, pc} + 1330 .LVL137: + 1331 .L90: + 700:Src/usbd_conf.c **** { + 1332 .loc 1 700 5 is_stmt 1 view .LVU302 + 700:Src/usbd_conf.c **** { + 1333 .loc 1 700 19 is_stmt 0 view .LVU303 + 1334 000c 8369 ldr r3, [r0, #24] + 700:Src/usbd_conf.c **** { + 1335 .loc 1 700 8 view .LVU304 + 1336 000e 23B9 cbnz r3, .L95 + 1337 .LVL138: + 1338 .L93: + 707:Src/usbd_conf.c **** break; + 1339 .loc 1 707 5 is_stmt 1 view .LVU305 + 1340 0010 D4F8F002 ldr r0, [r4, #752] + 1341 0014 FFF7FEFF bl USBD_LL_Resume + 1342 .LVL139: + 708:Src/usbd_conf.c **** + 1343 .loc 1 708 5 view .LVU306 + 1344 0018 F7E7 b .L89 + 1345 .LVL140: + 1346 .L95: + 702:Src/usbd_conf.c **** + 1347 .loc 1 702 7 view .LVU307 + 1348 001a FFF7FEFF bl SystemClockConfig_Resume + 1349 .LVL141: + 705:Src/usbd_conf.c **** } + 1350 .loc 1 705 7 view .LVU308 + 705:Src/usbd_conf.c **** } + 1351 .loc 1 705 10 is_stmt 0 view .LVU309 + 1352 001e 094A ldr r2, .L96 + 1353 0020 1369 ldr r3, [r2, #16] + 705:Src/usbd_conf.c **** } + 1354 .loc 1 705 16 view .LVU310 + 1355 0022 23F00603 bic r3, r3, #6 + ARM GAS /tmp/ccf5FGie.s page 43 + + + 1356 0026 1361 str r3, [r2, #16] + 1357 0028 F2E7 b .L93 + 1358 .LVL142: + 1359 .L91: + 711:Src/usbd_conf.c **** + 1360 .loc 1 711 5 is_stmt 1 view .LVU311 + 1361 002a D0F8F002 ldr r0, [r0, #752] + 1362 .LVL143: + 711:Src/usbd_conf.c **** + 1363 .loc 1 711 5 is_stmt 0 view .LVU312 + 1364 002e FFF7FEFF bl USBD_LL_Suspend + 1365 .LVL144: + 714:Src/usbd_conf.c **** { + 1366 .loc 1 714 5 is_stmt 1 view .LVU313 + 714:Src/usbd_conf.c **** { + 1367 .loc 1 714 19 is_stmt 0 view .LVU314 + 1368 0032 A369 ldr r3, [r4, #24] + 714:Src/usbd_conf.c **** { + 1369 .loc 1 714 8 view .LVU315 + 1370 0034 002B cmp r3, #0 + 1371 0036 E8D0 beq .L89 + 717:Src/usbd_conf.c **** } + 1372 .loc 1 717 7 is_stmt 1 view .LVU316 + 717:Src/usbd_conf.c **** } + 1373 .loc 1 717 10 is_stmt 0 view .LVU317 + 1374 0038 024A ldr r2, .L96 + 1375 003a 1369 ldr r3, [r2, #16] + 717:Src/usbd_conf.c **** } + 1376 .loc 1 717 16 view .LVU318 + 1377 003c 43F00603 orr r3, r3, #6 + 1378 0040 1361 str r3, [r2, #16] + 722:Src/usbd_conf.c **** + 1379 .loc 1 722 1 view .LVU319 + 1380 0042 E2E7 b .L89 + 1381 .L97: + 1382 .align 2 + 1383 .L96: + 1384 0044 00ED00E0 .word -536810240 + 1385 .cfi_endproc + 1386 .LFE360: + 1388 .section .text.USBD_LL_Delay,"ax",%progbits + 1389 .align 1 + 1390 .global USBD_LL_Delay + 1391 .syntax unified + 1392 .thumb + 1393 .thumb_func + 1395 USBD_LL_Delay: + 1396 .LVL145: + 1397 .LFB361: + 730:Src/usbd_conf.c **** HAL_Delay(Delay); + 1398 .loc 1 730 1 is_stmt 1 view -0 + 1399 .cfi_startproc + 1400 @ args = 0, pretend = 0, frame = 0 + 1401 @ frame_needed = 0, uses_anonymous_args = 0 + 730:Src/usbd_conf.c **** HAL_Delay(Delay); + 1402 .loc 1 730 1 is_stmt 0 view .LVU321 + 1403 0000 08B5 push {r3, lr} + ARM GAS /tmp/ccf5FGie.s page 44 + + + 1404 .LCFI31: + 1405 .cfi_def_cfa_offset 8 + 1406 .cfi_offset 3, -8 + 1407 .cfi_offset 14, -4 + 731:Src/usbd_conf.c **** } + 1408 .loc 1 731 3 is_stmt 1 view .LVU322 + 1409 0002 FFF7FEFF bl HAL_Delay + 1410 .LVL146: + 732:Src/usbd_conf.c **** + 1411 .loc 1 732 1 is_stmt 0 view .LVU323 + 1412 0006 08BD pop {r3, pc} + 1413 .cfi_endproc + 1414 .LFE361: + 1416 .section .text.USBD_static_malloc,"ax",%progbits + 1417 .align 1 + 1418 .global USBD_static_malloc + 1419 .syntax unified + 1420 .thumb + 1421 .thumb_func + 1423 USBD_static_malloc: + 1424 .LVL147: + 1425 .LFB362: + 740:Src/usbd_conf.c **** static uint32_t mem[(sizeof(USBD_AUDIO_HandleTypeDef)/4)+1];/* On 32-bit boundary */ + 1426 .loc 1 740 1 is_stmt 1 view -0 + 1427 .cfi_startproc + 1428 @ args = 0, pretend = 0, frame = 0 + 1429 @ frame_needed = 0, uses_anonymous_args = 0 + 1430 @ link register save eliminated. + 741:Src/usbd_conf.c **** return mem; + 1431 .loc 1 741 3 view .LVU325 + 742:Src/usbd_conf.c **** } + 1432 .loc 1 742 3 view .LVU326 + 743:Src/usbd_conf.c **** + 1433 .loc 1 743 1 is_stmt 0 view .LVU327 + 1434 0000 0048 ldr r0, .L101 + 1435 .LVL148: + 743:Src/usbd_conf.c **** + 1436 .loc 1 743 1 view .LVU328 + 1437 0002 7047 bx lr + 1438 .L102: + 1439 .align 2 + 1440 .L101: + 1441 0004 00000000 .word mem.0 + 1442 .cfi_endproc + 1443 .LFE362: + 1445 .section .text.USBD_static_free,"ax",%progbits + 1446 .align 1 + 1447 .global USBD_static_free + 1448 .syntax unified + 1449 .thumb + 1450 .thumb_func + 1452 USBD_static_free: + 1453 .LVL149: + 1454 .LFB363: + 751:Src/usbd_conf.c **** + 1455 .loc 1 751 1 is_stmt 1 view -0 + 1456 .cfi_startproc + ARM GAS /tmp/ccf5FGie.s page 45 + + + 1457 @ args = 0, pretend = 0, frame = 0 + 1458 @ frame_needed = 0, uses_anonymous_args = 0 + 1459 @ link register save eliminated. + 753:Src/usbd_conf.c **** + 1460 .loc 1 753 1 view .LVU330 + 1461 0000 7047 bx lr + 1462 .cfi_endproc + 1463 .LFE363: + 1465 .section .bss.mem.0,"aw",%nobits + 1466 .align 2 + 1469 mem.0: + 1470 0000 00000000 .space 7124 + 1470 00000000 + 1470 00000000 + 1470 00000000 + 1470 00000000 + 1471 .global hpcd_USB_FS + 1472 .section .bss.hpcd_USB_FS,"aw",%nobits + 1473 .align 2 + 1476 hpcd_USB_FS: + 1477 0000 00000000 .space 756 + 1477 00000000 + 1477 00000000 + 1477 00000000 + 1477 00000000 + 1478 .text + 1479 .Letext0: + 1480 .file 2 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" + 1481 .file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" + 1482 .file 4 "Drivers/CMSIS/Include/core_cm4.h" + 1483 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" + 1484 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" + 1485 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h" + 1486 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h" + 1487 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h" + 1488 .file 10 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 1489 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h" + 1490 .file 12 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" + 1491 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" + 1492 .file 14 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h" + 1493 .file 15 "" + ARM GAS /tmp/ccf5FGie.s page 46 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_conf.c + /tmp/ccf5FGie.s:21 .text.USBD_Get_USB_Status:00000000 $t + /tmp/ccf5FGie.s:26 .text.USBD_Get_USB_Status:00000000 USBD_Get_USB_Status + /tmp/ccf5FGie.s:40 .text.USBD_Get_USB_Status:00000008 $d + /tmp/ccf5FGie.s:44 .text.USBD_Get_USB_Status:0000000c $t + /tmp/ccf5FGie.s:67 .text.SystemClockConfig_Resume:00000000 $t + /tmp/ccf5FGie.s:72 .text.SystemClockConfig_Resume:00000000 SystemClockConfig_Resume + /tmp/ccf5FGie.s:92 .text.HAL_PCD_MspInit:00000000 $t + /tmp/ccf5FGie.s:98 .text.HAL_PCD_MspInit:00000000 HAL_PCD_MspInit + /tmp/ccf5FGie.s:192 .text.HAL_PCD_MspInit:00000058 $d + /tmp/ccf5FGie.s:198 .text.HAL_PCD_MspDeInit:00000000 $t + /tmp/ccf5FGie.s:204 .text.HAL_PCD_MspDeInit:00000000 HAL_PCD_MspDeInit + /tmp/ccf5FGie.s:246 .text.HAL_PCD_MspDeInit:00000020 $d + /tmp/ccf5FGie.s:252 .text.HAL_PCD_SetupStageCallback:00000000 $t + /tmp/ccf5FGie.s:258 .text.HAL_PCD_SetupStageCallback:00000000 HAL_PCD_SetupStageCallback + /tmp/ccf5FGie.s:284 .text.HAL_PCD_DataOutStageCallback:00000000 $t + /tmp/ccf5FGie.s:290 .text.HAL_PCD_DataOutStageCallback:00000000 HAL_PCD_DataOutStageCallback + /tmp/ccf5FGie.s:318 .text.HAL_PCD_DataInStageCallback:00000000 $t + /tmp/ccf5FGie.s:324 .text.HAL_PCD_DataInStageCallback:00000000 HAL_PCD_DataInStageCallback + /tmp/ccf5FGie.s:352 .text.HAL_PCD_SOFCallback:00000000 $t + /tmp/ccf5FGie.s:358 .text.HAL_PCD_SOFCallback:00000000 HAL_PCD_SOFCallback + /tmp/ccf5FGie.s:383 .text.HAL_PCD_ResetCallback:00000000 $t + /tmp/ccf5FGie.s:389 .text.HAL_PCD_ResetCallback:00000000 HAL_PCD_ResetCallback + /tmp/ccf5FGie.s:435 .text.HAL_PCD_SuspendCallback:00000000 $t + /tmp/ccf5FGie.s:441 .text.HAL_PCD_SuspendCallback:00000000 HAL_PCD_SuspendCallback + /tmp/ccf5FGie.s:481 .text.HAL_PCD_SuspendCallback:0000001c $d + /tmp/ccf5FGie.s:486 .text.HAL_PCD_ResumeCallback:00000000 $t + /tmp/ccf5FGie.s:492 .text.HAL_PCD_ResumeCallback:00000000 HAL_PCD_ResumeCallback + /tmp/ccf5FGie.s:536 .text.HAL_PCD_ResumeCallback:00000024 $d + /tmp/ccf5FGie.s:541 .text.HAL_PCD_ISOOUTIncompleteCallback:00000000 $t + /tmp/ccf5FGie.s:547 .text.HAL_PCD_ISOOUTIncompleteCallback:00000000 HAL_PCD_ISOOUTIncompleteCallback + /tmp/ccf5FGie.s:572 .text.HAL_PCD_ISOINIncompleteCallback:00000000 $t + /tmp/ccf5FGie.s:578 .text.HAL_PCD_ISOINIncompleteCallback:00000000 HAL_PCD_ISOINIncompleteCallback + /tmp/ccf5FGie.s:603 .text.HAL_PCD_ConnectCallback:00000000 $t + /tmp/ccf5FGie.s:609 .text.HAL_PCD_ConnectCallback:00000000 HAL_PCD_ConnectCallback + /tmp/ccf5FGie.s:634 .text.HAL_PCD_DisconnectCallback:00000000 $t + /tmp/ccf5FGie.s:640 .text.HAL_PCD_DisconnectCallback:00000000 HAL_PCD_DisconnectCallback + /tmp/ccf5FGie.s:665 .text.USBD_LL_Init:00000000 $t + /tmp/ccf5FGie.s:671 .text.USBD_LL_Init:00000000 USBD_LL_Init + /tmp/ccf5FGie.s:763 .text.USBD_LL_Init:00000060 $d + /tmp/ccf5FGie.s:1476 .bss.hpcd_USB_FS:00000000 hpcd_USB_FS + /tmp/ccf5FGie.s:770 .text.USBD_LL_DeInit:00000000 $t + /tmp/ccf5FGie.s:776 .text.USBD_LL_DeInit:00000000 USBD_LL_DeInit + /tmp/ccf5FGie.s:810 .text.USBD_LL_Start:00000000 $t + /tmp/ccf5FGie.s:816 .text.USBD_LL_Start:00000000 USBD_LL_Start + /tmp/ccf5FGie.s:850 .text.USBD_LL_Stop:00000000 $t + /tmp/ccf5FGie.s:856 .text.USBD_LL_Stop:00000000 USBD_LL_Stop + /tmp/ccf5FGie.s:890 .text.USBD_LL_OpenEP:00000000 $t + /tmp/ccf5FGie.s:896 .text.USBD_LL_OpenEP:00000000 USBD_LL_OpenEP + /tmp/ccf5FGie.s:935 .text.USBD_LL_CloseEP:00000000 $t + /tmp/ccf5FGie.s:941 .text.USBD_LL_CloseEP:00000000 USBD_LL_CloseEP + /tmp/ccf5FGie.s:975 .text.USBD_LL_FlushEP:00000000 $t + /tmp/ccf5FGie.s:981 .text.USBD_LL_FlushEP:00000000 USBD_LL_FlushEP + /tmp/ccf5FGie.s:1015 .text.USBD_LL_StallEP:00000000 $t + /tmp/ccf5FGie.s:1021 .text.USBD_LL_StallEP:00000000 USBD_LL_StallEP + /tmp/ccf5FGie.s:1055 .text.USBD_LL_ClearStallEP:00000000 $t + ARM GAS /tmp/ccf5FGie.s page 47 + + + /tmp/ccf5FGie.s:1061 .text.USBD_LL_ClearStallEP:00000000 USBD_LL_ClearStallEP + /tmp/ccf5FGie.s:1095 .text.USBD_LL_IsStallEP:00000000 $t + /tmp/ccf5FGie.s:1101 .text.USBD_LL_IsStallEP:00000000 USBD_LL_IsStallEP + /tmp/ccf5FGie.s:1150 .text.USBD_LL_SetUSBAddress:00000000 $t + /tmp/ccf5FGie.s:1156 .text.USBD_LL_SetUSBAddress:00000000 USBD_LL_SetUSBAddress + /tmp/ccf5FGie.s:1190 .text.USBD_LL_Transmit:00000000 $t + /tmp/ccf5FGie.s:1196 .text.USBD_LL_Transmit:00000000 USBD_LL_Transmit + /tmp/ccf5FGie.s:1230 .text.USBD_LL_PrepareReceive:00000000 $t + /tmp/ccf5FGie.s:1236 .text.USBD_LL_PrepareReceive:00000000 USBD_LL_PrepareReceive + /tmp/ccf5FGie.s:1270 .text.USBD_LL_GetRxDataSize:00000000 $t + /tmp/ccf5FGie.s:1276 .text.USBD_LL_GetRxDataSize:00000000 USBD_LL_GetRxDataSize + /tmp/ccf5FGie.s:1302 .text.HAL_PCDEx_LPM_Callback:00000000 $t + /tmp/ccf5FGie.s:1308 .text.HAL_PCDEx_LPM_Callback:00000000 HAL_PCDEx_LPM_Callback + /tmp/ccf5FGie.s:1384 .text.HAL_PCDEx_LPM_Callback:00000044 $d + /tmp/ccf5FGie.s:1389 .text.USBD_LL_Delay:00000000 $t + /tmp/ccf5FGie.s:1395 .text.USBD_LL_Delay:00000000 USBD_LL_Delay + /tmp/ccf5FGie.s:1417 .text.USBD_static_malloc:00000000 $t + /tmp/ccf5FGie.s:1423 .text.USBD_static_malloc:00000000 USBD_static_malloc + /tmp/ccf5FGie.s:1441 .text.USBD_static_malloc:00000004 $d + /tmp/ccf5FGie.s:1469 .bss.mem.0:00000000 mem.0 + /tmp/ccf5FGie.s:1446 .text.USBD_static_free:00000000 $t + /tmp/ccf5FGie.s:1452 .text.USBD_static_free:00000000 USBD_static_free + /tmp/ccf5FGie.s:1466 .bss.mem.0:00000000 $d + /tmp/ccf5FGie.s:1473 .bss.hpcd_USB_FS:00000000 $d + +UNDEFINED SYMBOLS +SystemClock_Config +memset +HAL_RCCEx_PeriphCLKConfig +HAL_NVIC_SetPriority +HAL_NVIC_EnableIRQ +Error_Handler +HAL_NVIC_DisableIRQ +USBD_LL_SetupStage +USBD_LL_DataOutStage +USBD_LL_DataInStage +USBD_LL_SOF +USBD_LL_SetSpeed +USBD_LL_Reset +USBD_LL_Suspend +USBD_LL_Resume +USBD_LL_IsoOUTIncomplete +USBD_LL_IsoINIncomplete +USBD_LL_DevConnected +USBD_LL_DevDisconnected +HAL_PCD_Init +HAL_PCDEx_PMAConfig +HAL_PCD_DeInit +HAL_PCD_Start +HAL_PCD_Stop +HAL_PCD_EP_Open +HAL_PCD_EP_Close +HAL_PCD_EP_Flush +HAL_PCD_EP_SetStall +HAL_PCD_EP_ClrStall +HAL_PCD_SetAddress +HAL_PCD_EP_Transmit + ARM GAS /tmp/ccf5FGie.s page 48 + + +HAL_PCD_EP_Receive +HAL_PCD_EP_GetRxCount +HAL_Delay diff --git a/squeow_sw/build/usbd_conf.o b/squeow_sw/build/usbd_conf.o new file mode 100644 index 0000000000000000000000000000000000000000..56e88fbacf4dd9bcf820435fd908757763e2f1d3 GIT binary patch literal 45340 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 xYUh#!e~ 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
© Copyright (c) 2015 STMicroelectronics. + 10:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * All rights reserved.

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 literal 0 HcmV?d00001 diff --git a/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_225139.zip b/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-11_225139.zip new file mode 100644 index 0000000000000000000000000000000000000000..efffbe79d41494decb0591bbd899b3f472cbe07d GIT binary patch literal 49843 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 B@<9Lq literal 0 HcmV?d00001 diff --git a/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_011331.zip b/squeow_mod/squeow_mod-backups/squeow_mod-2022-11-13_011331.zip new file mode 100644 index 0000000000000000000000000000000000000000..449678ef9d98b3912e3261f1f9bb85bf0db80ee1 GIT binary patch literal 78013 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

+ 11:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * + 12:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * This software component is licensed by ST under Ultimate Liberty license + 13:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * SLA0044, the "License"; You may not use this file except in compliance with + 14:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * the License. You may obtain a copy of the License at: + 15:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * www.st.com/SLA0044 + 16:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * + 17:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ****************************************************************************** + 18:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 19:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 20:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Includes ------------------------------------------------------------------*/ + 21:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #include "usbd_core.h" + 22:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 23:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @addtogroup STM32_USBD_DEVICE_LIBRARY + 24:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 25:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 26:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 27:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 28:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE + 29:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief usbd core module + ARM GAS /tmp/ccXNKvGT.s page 2 + + + 30:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 31:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 32:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 33:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_TypesDefinitions + 34:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 35:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 36:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 37:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 38:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} + 39:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 40:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 41:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 42:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Defines + 43:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 44:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 45:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 46:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 47:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} + 48:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 49:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 50:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 51:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Macros + 52:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 53:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 54:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 55:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 56:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} + 57:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 58:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 59:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 60:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_FunctionPrototypes + 61:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 62:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 63:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 64:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 65:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} + 66:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 67:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 68:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Variables + 69:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 70:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 71:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 72:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 73:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} + 74:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 75:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 76:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 77:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Functions + 78:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ + 79:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 80:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 81:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 82:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_Init + 83:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Initializes the device stack and load the class driver + 84:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 85:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdesc: Descriptor structure address + 86:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param id: Low level core index + ARM GAS /tmp/ccXNKvGT.s page 3 + + + 87:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval None + 88:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 89:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, + 90:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescriptorsTypeDef *pdesc, uint8_t id) + 91:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 30 .loc 1 91 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 92:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; + 34 .loc 1 92 3 view .LVU1 + 93:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 94:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check whether the USB Host handle is valid */ + 95:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev == NULL) + 35 .loc 1 95 3 view .LVU2 + 36 .loc 1 95 6 is_stmt 0 view .LVU3 + 37 0000 98B1 cbz r0, .L4 + 91:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; + 38 .loc 1 91 1 view .LVU4 + 39 0002 08B5 push {r3, lr} + 40 .LCFI0: + 41 .cfi_def_cfa_offset 8 + 42 .cfi_offset 3, -8 + 43 .cfi_offset 14, -4 + 44 0004 0346 mov r3, r0 + 96:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 97:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_DEBUG_LEVEL > 1U) + 98:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ErrLog("Invalid Device handle"); + 99:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif + 100:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; + 101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 103:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Unlink previous class resources */ + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass = NULL; + 45 .loc 1 104 3 is_stmt 1 view .LVU5 + 46 .loc 1 104 16 is_stmt 0 view .LVU6 + 47 0006 0020 movs r0, #0 + 48 .LVL1: + 49 .loc 1 104 16 view .LVU7 + 50 0008 C3F8B802 str r0, [r3, #696] + 105:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pUserData = NULL; + 51 .loc 1 105 3 is_stmt 1 view .LVU8 + 52 .loc 1 105 19 is_stmt 0 view .LVU9 + 53 000c C3F8C002 str r0, [r3, #704] + 106:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = NULL; + 54 .loc 1 106 3 is_stmt 1 view .LVU10 + 55 .loc 1 106 19 is_stmt 0 view .LVU11 + 56 0010 C3F8CC02 str r0, [r3, #716] + 107:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Assign USBD Descriptors */ + 109:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdesc != NULL) + 57 .loc 1 109 3 is_stmt 1 view .LVU12 + 58 .loc 1 109 6 is_stmt 0 view .LVU13 + 59 0014 09B1 cbz r1, .L3 + 110:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 111:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pDesc = pdesc; + 60 .loc 1 111 5 is_stmt 1 view .LVU14 + ARM GAS /tmp/ccXNKvGT.s page 4 + + + 61 .loc 1 111 17 is_stmt 0 view .LVU15 + 62 0016 C3F8B412 str r1, [r3, #692] + 63 .L3: + 112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 113:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 114:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set Device initial State */ + 115:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; + 64 .loc 1 115 3 is_stmt 1 view .LVU16 + 65 .loc 1 115 19 is_stmt 0 view .LVU17 + 66 001a 0121 movs r1, #1 + 67 .LVL2: + 68 .loc 1 115 19 view .LVU18 + 69 001c 83F89C12 strb r1, [r3, #668] + 116:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->id = id; + 70 .loc 1 116 3 is_stmt 1 view .LVU19 + 71 .loc 1 116 12 is_stmt 0 view .LVU20 + 72 0020 1A70 strb r2, [r3] + 117:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 118:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Initialize low level driver */ + 119:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_Init(pdev); + 73 .loc 1 119 3 is_stmt 1 view .LVU21 + 74 .loc 1 119 9 is_stmt 0 view .LVU22 + 75 0022 1846 mov r0, r3 + 76 0024 FFF7FEFF bl USBD_LL_Init + 77 .LVL3: + 120:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 121:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; + 78 .loc 1 121 3 is_stmt 1 view .LVU23 + 122:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 79 .loc 1 122 1 is_stmt 0 view .LVU24 + 80 0028 08BD pop {r3, pc} + 81 .LVL4: + 82 .L4: + 83 .LCFI1: + 84 .cfi_def_cfa_offset 0 + 85 .cfi_restore 3 + 86 .cfi_restore 14 + 100:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 87 .loc 1 100 12 view .LVU25 + 88 002a 0320 movs r0, #3 + 89 .LVL5: + 90 .loc 1 122 1 view .LVU26 + 91 002c 7047 bx lr + 92 .cfi_endproc + 93 .LFE333: + 95 .section .text.USBD_DeInit,"ax",%progbits + 96 .align 1 + 97 .global USBD_DeInit + 98 .syntax unified + 99 .thumb + 100 .thumb_func + 102 USBD_DeInit: + 103 .LVL6: + 104 .LFB334: + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 124:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 125:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_DeInit + ARM GAS /tmp/ccXNKvGT.s page 5 + + + 126:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Re-Initialize the device library + 127:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 128:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status: status + 129:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 130:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_DeInit(USBD_HandleTypeDef *pdev) + 131:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 105 .loc 1 131 1 is_stmt 1 view -0 + 106 .cfi_startproc + 107 @ args = 0, pretend = 0, frame = 0 + 108 @ frame_needed = 0, uses_anonymous_args = 0 + 109 .loc 1 131 1 is_stmt 0 view .LVU28 + 110 0000 10B5 push {r4, lr} + 111 .LCFI2: + 112 .cfi_def_cfa_offset 8 + 113 .cfi_offset 4, -8 + 114 .cfi_offset 14, -4 + 115 0002 0446 mov r4, r0 + 132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; + 116 .loc 1 132 3 is_stmt 1 view .LVU29 + 133:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 134:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Disconnect the USB Device */ + 135:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_Stop(pdev); + 117 .loc 1 135 3 view .LVU30 + 118 .loc 1 135 9 is_stmt 0 view .LVU31 + 119 0004 FFF7FEFF bl USBD_LL_Stop + 120 .LVL7: + 136:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 137:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set Default State */ + 138:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; + 121 .loc 1 138 3 is_stmt 1 view .LVU32 + 122 .loc 1 138 19 is_stmt 0 view .LVU33 + 123 0008 0123 movs r3, #1 + 124 000a 84F89C32 strb r3, [r4, #668] + 139:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 140:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ + 141:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass != NULL) + 125 .loc 1 141 3 is_stmt 1 view .LVU34 + 126 .loc 1 141 11 is_stmt 0 view .LVU35 + 127 000e D4F8B832 ldr r3, [r4, #696] + 128 .loc 1 141 6 view .LVU36 + 129 0012 43B1 cbz r3, .L10 + 142:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 143:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass->DeInit(pdev, (uint8_t)pdev->dev_config); + 130 .loc 1 143 5 is_stmt 1 view .LVU37 + 131 .loc 1 143 17 is_stmt 0 view .LVU38 + 132 0014 5B68 ldr r3, [r3, #4] + 133 .loc 1 143 5 view .LVU39 + 134 0016 2179 ldrb r1, [r4, #4] @ zero_extendqisi2 + 135 0018 2046 mov r0, r4 + 136 001a 9847 blx r3 + 137 .LVL8: + 144:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass = NULL; + 138 .loc 1 144 5 is_stmt 1 view .LVU40 + 139 .loc 1 144 18 is_stmt 0 view .LVU41 + 140 001c 0023 movs r3, #0 + 141 001e C4F8B832 str r3, [r4, #696] + 145:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pUserData = NULL; + ARM GAS /tmp/ccXNKvGT.s page 6 + + + 142 .loc 1 145 5 is_stmt 1 view .LVU42 + 143 .loc 1 145 21 is_stmt 0 view .LVU43 + 144 0022 C4F8C032 str r3, [r4, #704] + 145 .L10: + 146:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 147:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 148:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Device descriptors resources */ + 149:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pDesc = NULL; + 146 .loc 1 149 3 is_stmt 1 view .LVU44 + 147 .loc 1 149 15 is_stmt 0 view .LVU45 + 148 0026 0023 movs r3, #0 + 149 0028 C4F8B432 str r3, [r4, #692] + 150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = NULL; + 150 .loc 1 150 3 is_stmt 1 view .LVU46 + 151 .loc 1 150 19 is_stmt 0 view .LVU47 + 152 002c C4F8CC32 str r3, [r4, #716] + 151:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 152:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* DeInitialize low level driver */ + 153:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_DeInit(pdev); + 153 .loc 1 153 3 is_stmt 1 view .LVU48 + 154 .loc 1 153 9 is_stmt 0 view .LVU49 + 155 0030 2046 mov r0, r4 + 156 0032 FFF7FEFF bl USBD_LL_DeInit + 157 .LVL9: + 154:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 155:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; + 158 .loc 1 155 3 is_stmt 1 view .LVU50 + 156:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 159 .loc 1 156 1 is_stmt 0 view .LVU51 + 160 0036 10BD pop {r4, pc} + 161 .loc 1 156 1 view .LVU52 + 162 .cfi_endproc + 163 .LFE334: + 165 .section .text.USBD_RegisterClass,"ax",%progbits + 166 .align 1 + 167 .global USBD_RegisterClass + 168 .syntax unified + 169 .thumb + 170 .thumb_func + 172 USBD_RegisterClass: + 173 .LVL10: + 174 .LFB335: + 157:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 159:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_RegisterClass + 160:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Link class driver to Device Core. + 161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pDevice : Device Handle + 162:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pclass: Class handle + 163:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status + 164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_RegisterClass(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass) + 166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 175 .loc 1 166 1 is_stmt 1 view -0 + 176 .cfi_startproc + 177 @ args = 0, pretend = 0, frame = 8 + 178 @ frame_needed = 0, uses_anonymous_args = 0 + 179 .loc 1 166 1 is_stmt 0 view .LVU54 + ARM GAS /tmp/ccXNKvGT.s page 7 + + + 180 0000 10B5 push {r4, lr} + 181 .LCFI3: + 182 .cfi_def_cfa_offset 8 + 183 .cfi_offset 4, -8 + 184 .cfi_offset 14, -4 + 185 0002 82B0 sub sp, sp, #8 + 186 .LCFI4: + 187 .cfi_def_cfa_offset 16 + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint16_t len = 0U; + 188 .loc 1 167 3 is_stmt 1 view .LVU55 + 189 .loc 1 167 12 is_stmt 0 view .LVU56 + 190 0004 0023 movs r3, #0 + 191 0006 ADF80630 strh r3, [sp, #6] @ movhi + 168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 169:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pclass == NULL) + 192 .loc 1 169 3 is_stmt 1 view .LVU57 + 193 .loc 1 169 6 is_stmt 0 view .LVU58 + 194 000a 61B1 cbz r1, .L14 + 195 000c 0446 mov r4, r0 + 170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 171:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_DEBUG_LEVEL > 1U) + 172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ErrLog("Invalid Class handle"); + 173:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif + 174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; + 175:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 177:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* link the class to the USB Device handle */ + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass = pclass; + 196 .loc 1 178 3 is_stmt 1 view .LVU59 + 197 .loc 1 178 16 is_stmt 0 view .LVU60 + 198 000e C0F8B812 str r1, [r0, #696] + 179:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Get Device Configuration Descriptor */ + 181:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USB_HS + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->GetHSConfigDescriptor != NULL) + 183:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = (void *)pdev->pClass->GetHSConfigDescriptor(&len); + 185:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 186:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else /* Default USE_USB_FS */ + 187:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->GetFSConfigDescriptor != NULL) + 199 .loc 1 187 3 is_stmt 1 view .LVU61 + 200 .loc 1 187 19 is_stmt 0 view .LVU62 + 201 0012 CB6A ldr r3, [r1, #44] + 202 .loc 1 187 6 view .LVU63 + 203 0014 4BB1 cbz r3, .L15 + 188:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = (void *)pdev->pClass->GetFSConfigDescriptor(&len); + 204 .loc 1 189 5 is_stmt 1 view .LVU64 + 205 .loc 1 189 31 is_stmt 0 view .LVU65 + 206 0016 0DF10600 add r0, sp, #6 + 207 .LVL11: + 208 .loc 1 189 31 view .LVU66 + 209 001a 9847 blx r3 + 210 .LVL12: + 211 .loc 1 189 21 view .LVU67 + 212 001c C4F8CC02 str r0, [r4, #716] + 190:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + ARM GAS /tmp/ccXNKvGT.s page 8 + + + 191:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USB_FS */ + 192:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 213 .loc 1 193 10 view .LVU68 + 214 0020 0020 movs r0, #0 + 215 .LVL13: + 216 .L13: + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 217 .loc 1 194 1 view .LVU69 + 218 0022 02B0 add sp, sp, #8 + 219 .LCFI5: + 220 .cfi_remember_state + 221 .cfi_def_cfa_offset 8 + 222 @ sp needed + 223 0024 10BD pop {r4, pc} + 224 .LVL14: + 225 .L14: + 226 .LCFI6: + 227 .cfi_restore_state + 174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 228 .loc 1 174 12 view .LVU70 + 229 0026 0320 movs r0, #3 + 230 .LVL15: + 174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 231 .loc 1 174 12 view .LVU71 + 232 0028 FBE7 b .L13 + 233 .LVL16: + 234 .L15: + 193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 235 .loc 1 193 10 view .LVU72 + 236 002a 0020 movs r0, #0 + 237 .LVL17: + 193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 238 .loc 1 193 10 view .LVU73 + 239 002c F9E7 b .L13 + 240 .cfi_endproc + 241 .LFE335: + 243 .section .text.USBD_Start,"ax",%progbits + 244 .align 1 + 245 .global USBD_Start + 246 .syntax unified + 247 .thumb + 248 .thumb_func + 250 USBD_Start: + 251 .LVL18: + 252 .LFB336: + 195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 196:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 197:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_Start + 198:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Start the USB Device Core. + 199:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: Device Handle + 200:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status + 201:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 202:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_Start(USBD_HandleTypeDef *pdev) + 203:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 253 .loc 1 203 1 is_stmt 1 view -0 + 254 .cfi_startproc + ARM GAS /tmp/ccXNKvGT.s page 9 + + + 255 @ args = 0, pretend = 0, frame = 0 + 256 @ frame_needed = 0, uses_anonymous_args = 0 + 257 .loc 1 203 1 is_stmt 0 view .LVU75 + 258 0000 08B5 push {r3, lr} + 259 .LCFI7: + 260 .cfi_def_cfa_offset 8 + 261 .cfi_offset 3, -8 + 262 .cfi_offset 14, -4 + 204:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Start the low level driver */ + 205:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_LL_Start(pdev); + 263 .loc 1 205 3 is_stmt 1 view .LVU76 + 264 .loc 1 205 10 is_stmt 0 view .LVU77 + 265 0002 FFF7FEFF bl USBD_LL_Start + 266 .LVL19: + 206:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 267 .loc 1 206 1 view .LVU78 + 268 0006 08BD pop {r3, pc} + 269 .cfi_endproc + 270 .LFE336: + 272 .section .text.USBD_Stop,"ax",%progbits + 273 .align 1 + 274 .global USBD_Stop + 275 .syntax unified + 276 .thumb + 277 .thumb_func + 279 USBD_Stop: + 280 .LVL20: + 281 .LFB337: + 207:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 208:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 209:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_Stop + 210:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Stop the USB Device Core. + 211:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: Device Handle + 212:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status + 213:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 214:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_Stop(USBD_HandleTypeDef *pdev) + 215:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 282 .loc 1 215 1 is_stmt 1 view -0 + 283 .cfi_startproc + 284 @ args = 0, pretend = 0, frame = 0 + 285 @ frame_needed = 0, uses_anonymous_args = 0 + 286 .loc 1 215 1 is_stmt 0 view .LVU80 + 287 0000 10B5 push {r4, lr} + 288 .LCFI8: + 289 .cfi_def_cfa_offset 8 + 290 .cfi_offset 4, -8 + 291 .cfi_offset 14, -4 + 292 0002 0446 mov r4, r0 + 216:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Disconnect USB Device */ + 217:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_Stop(pdev); + 293 .loc 1 217 3 is_stmt 1 view .LVU81 + 294 .loc 1 217 9 is_stmt 0 view .LVU82 + 295 0004 FFF7FEFF bl USBD_LL_Stop + 296 .LVL21: + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 219:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ + 220:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass != NULL) + ARM GAS /tmp/ccXNKvGT.s page 10 + + + 297 .loc 1 220 3 is_stmt 1 view .LVU83 + 298 .loc 1 220 11 is_stmt 0 view .LVU84 + 299 0008 D4F8B832 ldr r3, [r4, #696] + 300 .loc 1 220 6 view .LVU85 + 301 000c 1BB1 cbz r3, .L20 + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 222:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass->DeInit(pdev, (uint8_t)pdev->dev_config); + 302 .loc 1 222 5 is_stmt 1 view .LVU86 + 303 .loc 1 222 23 is_stmt 0 view .LVU87 + 304 000e 5B68 ldr r3, [r3, #4] + 305 .loc 1 222 11 view .LVU88 + 306 0010 2179 ldrb r1, [r4, #4] @ zero_extendqisi2 + 307 0012 2046 mov r0, r4 + 308 0014 9847 blx r3 + 309 .LVL22: + 310 .L20: + 223:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 224:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 311 .loc 1 225 3 is_stmt 1 view .LVU89 + 226:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 312 .loc 1 226 1 is_stmt 0 view .LVU90 + 313 0016 0020 movs r0, #0 + 314 0018 10BD pop {r4, pc} + 315 .loc 1 226 1 view .LVU91 + 316 .cfi_endproc + 317 .LFE337: + 319 .section .text.USBD_RunTestMode,"ax",%progbits + 320 .align 1 + 321 .global USBD_RunTestMode + 322 .syntax unified + 323 .thumb + 324 .thumb_func + 326 USBD_RunTestMode: + 327 .LVL23: + 328 .LFB338: + 227:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 228:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 229:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_RunTestMode + 230:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Launch test mode process + 231:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 232:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 233:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 234:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_RunTestMode(USBD_HandleTypeDef *pdev) + 235:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 329 .loc 1 235 1 is_stmt 1 view -0 + 330 .cfi_startproc + 331 @ args = 0, pretend = 0, frame = 0 + 332 @ frame_needed = 0, uses_anonymous_args = 0 + 333 @ link register save eliminated. + 236:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prevent unused argument compilation warning */ + 237:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdev); + 334 .loc 1 237 3 view .LVU93 + 238:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 239:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 335 .loc 1 239 3 view .LVU94 + 240:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + ARM GAS /tmp/ccXNKvGT.s page 11 + + + 336 .loc 1 240 1 is_stmt 0 view .LVU95 + 337 0000 0020 movs r0, #0 + 338 .LVL24: + 339 .loc 1 240 1 view .LVU96 + 340 0002 7047 bx lr + 341 .cfi_endproc + 342 .LFE338: + 344 .section .text.USBD_SetClassConfig,"ax",%progbits + 345 .align 1 + 346 .global USBD_SetClassConfig + 347 .syntax unified + 348 .thumb + 349 .thumb_func + 351 USBD_SetClassConfig: + 352 .LVL25: + 353 .LFB339: + 241:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 243:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_SetClassConfig + 244:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Configure device and start the interface + 245:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 246:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param cfgidx: configuration index + 247:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 248:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 250:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx) + 251:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 354 .loc 1 251 1 is_stmt 1 view -0 + 355 .cfi_startproc + 356 @ args = 0, pretend = 0, frame = 0 + 357 @ frame_needed = 0, uses_anonymous_args = 0 + 358 .loc 1 251 1 is_stmt 0 view .LVU98 + 359 0000 08B5 push {r3, lr} + 360 .LCFI9: + 361 .cfi_def_cfa_offset 8 + 362 .cfi_offset 3, -8 + 363 .cfi_offset 14, -4 + 252:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_FAIL; + 364 .loc 1 252 3 is_stmt 1 view .LVU99 + 365 .LVL26: + 253:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 254:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass != NULL) + 366 .loc 1 254 3 view .LVU100 + 367 .loc 1 254 11 is_stmt 0 view .LVU101 + 368 0002 D0F8B832 ldr r3, [r0, #696] + 369 .loc 1 254 6 view .LVU102 + 370 0006 13B1 cbz r3, .L25 + 255:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 256:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set configuration and Start the Class */ + 257:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Init(pdev, cfgidx); + 371 .loc 1 257 5 is_stmt 1 view .LVU103 + 372 .loc 1 257 43 is_stmt 0 view .LVU104 + 373 0008 1B68 ldr r3, [r3] + 374 .loc 1 257 31 view .LVU105 + 375 000a 9847 blx r3 + 376 .LVL27: + 377 .L24: + ARM GAS /tmp/ccXNKvGT.s page 12 + + + 258:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 259:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 260:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; + 378 .loc 1 260 3 is_stmt 1 view .LVU106 + 261:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 379 .loc 1 261 1 is_stmt 0 view .LVU107 + 380 000c 08BD pop {r3, pc} + 381 .LVL28: + 382 .L25: + 252:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 383 .loc 1 252 22 view .LVU108 + 384 000e 0320 movs r0, #3 + 385 .LVL29: + 252:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 386 .loc 1 252 22 view .LVU109 + 387 0010 FCE7 b .L24 + 388 .cfi_endproc + 389 .LFE339: + 391 .section .text.USBD_ClrClassConfig,"ax",%progbits + 392 .align 1 + 393 .global USBD_ClrClassConfig + 394 .syntax unified + 395 .thumb + 396 .thumb_func + 398 USBD_ClrClassConfig: + 399 .LVL30: + 400 .LFB340: + 262:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 263:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 264:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_ClrClassConfig + 265:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Clear current configuration + 266:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 267:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param cfgidx: configuration index + 268:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status: USBD_StatusTypeDef + 269:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 270:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx) + 271:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 401 .loc 1 271 1 is_stmt 1 view -0 + 402 .cfi_startproc + 403 @ args = 0, pretend = 0, frame = 0 + 404 @ frame_needed = 0, uses_anonymous_args = 0 + 405 .loc 1 271 1 is_stmt 0 view .LVU111 + 406 0000 08B5 push {r3, lr} + 407 .LCFI10: + 408 .cfi_def_cfa_offset 8 + 409 .cfi_offset 3, -8 + 410 .cfi_offset 14, -4 + 272:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Clear configuration and De-initialize the Class process */ + 273:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass != NULL) + 411 .loc 1 273 3 is_stmt 1 view .LVU112 + 412 .loc 1 273 11 is_stmt 0 view .LVU113 + 413 0002 D0F8B832 ldr r3, [r0, #696] + 414 .loc 1 273 6 view .LVU114 + 415 0006 0BB1 cbz r3, .L28 + 274:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 275:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass->DeInit(pdev, cfgidx); + 416 .loc 1 275 5 is_stmt 1 view .LVU115 + ARM GAS /tmp/ccXNKvGT.s page 13 + + + 417 .loc 1 275 17 is_stmt 0 view .LVU116 + 418 0008 5B68 ldr r3, [r3, #4] + 419 .loc 1 275 5 view .LVU117 + 420 000a 9847 blx r3 + 421 .LVL31: + 422 .L28: + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 277:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 278:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 423 .loc 1 278 3 is_stmt 1 view .LVU118 + 279:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 424 .loc 1 279 1 is_stmt 0 view .LVU119 + 425 000c 0020 movs r0, #0 + 426 000e 08BD pop {r3, pc} + 427 .cfi_endproc + 428 .LFE340: + 430 .section .text.USBD_LL_SetupStage,"ax",%progbits + 431 .align 1 + 432 .global USBD_LL_SetupStage + 433 .syntax unified + 434 .thumb + 435 .thumb_func + 437 USBD_LL_SetupStage: + 438 .LVL32: + 439 .LFB341: + 280:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 281:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 282:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 283:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_SetupStage + 284:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle the setup stage + 285:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 286:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 287:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup) + 289:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 440 .loc 1 289 1 is_stmt 1 view -0 + 441 .cfi_startproc + 442 @ args = 0, pretend = 0, frame = 0 + 443 @ frame_needed = 0, uses_anonymous_args = 0 + 444 .loc 1 289 1 is_stmt 0 view .LVU121 + 445 0000 38B5 push {r3, r4, r5, lr} + 446 .LCFI11: + 447 .cfi_def_cfa_offset 16 + 448 .cfi_offset 3, -16 + 449 .cfi_offset 4, -12 + 450 .cfi_offset 5, -8 + 451 .cfi_offset 14, -4 + 452 0002 0446 mov r4, r0 + 290:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; + 453 .loc 1 290 3 is_stmt 1 view .LVU122 + 291:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 292:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ParseSetupRequest(&pdev->request, psetup); + 454 .loc 1 292 3 view .LVU123 + 455 0004 00F2AA25 addw r5, r0, #682 + 456 0008 2846 mov r0, r5 + 457 .LVL33: + 458 .loc 1 292 3 is_stmt 0 view .LVU124 + ARM GAS /tmp/ccXNKvGT.s page 14 + + + 459 000a FFF7FEFF bl USBD_ParseSetupRequest + 460 .LVL34: + 293:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 294:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_state = USBD_EP0_SETUP; + 461 .loc 1 294 3 is_stmt 1 view .LVU125 + 462 .loc 1 294 19 is_stmt 0 view .LVU126 + 463 000e 0123 movs r3, #1 + 464 0010 C4F89432 str r3, [r4, #660] + 295:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 296:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = pdev->request.wLength; + 465 .loc 1 296 3 is_stmt 1 view .LVU127 + 466 .loc 1 296 37 is_stmt 0 view .LVU128 + 467 0014 B4F8B032 ldrh r3, [r4, #688] + 468 .loc 1 296 22 view .LVU129 + 469 0018 C4F89832 str r3, [r4, #664] + 297:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 298:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** switch (pdev->request.bmRequest & 0x1FU) + 470 .loc 1 298 3 is_stmt 1 view .LVU130 + 471 .loc 1 298 24 is_stmt 0 view .LVU131 + 472 001c 94F8AA12 ldrb r1, [r4, #682] @ zero_extendqisi2 + 473 0020 01F01F03 and r3, r1, #31 + 474 .loc 1 298 3 view .LVU132 + 475 0024 012B cmp r3, #1 + 476 0026 0DD0 beq .L31 + 477 0028 022B cmp r3, #2 + 478 002a 10D0 beq .L32 + 479 002c 2BB1 cbz r3, .L36 + 299:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 300:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_DEVICE: + 301:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_StdDevReq(pdev, &pdev->request); + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 303:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 304:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_INTERFACE: + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_StdItfReq(pdev, &pdev->request); + 306:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 308:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_ENDPOINT: + 309:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_StdEPReq(pdev, &pdev->request); + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 311:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 312:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** default: + 313:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_StallEP(pdev, (pdev->request.bmRequest & 0x80U)); + 480 .loc 1 313 7 is_stmt 1 view .LVU133 + 481 .loc 1 313 13 is_stmt 0 view .LVU134 + 482 002e 01F08001 and r1, r1, #128 + 483 0032 2046 mov r0, r4 + 484 0034 FFF7FEFF bl USBD_LL_StallEP + 485 .LVL35: + 314:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 486 .loc 1 314 7 is_stmt 1 view .LVU135 + 487 0038 03E0 b .L34 + 488 .LVL36: + 489 .L36: + 301:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 490 .loc 1 301 7 view .LVU136 + 301:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 491 .loc 1 301 13 is_stmt 0 view .LVU137 + ARM GAS /tmp/ccXNKvGT.s page 15 + + + 492 003a 2946 mov r1, r5 + 493 003c 2046 mov r0, r4 + 494 003e FFF7FEFF bl USBD_StdDevReq + 495 .LVL37: + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 496 .loc 1 302 7 is_stmt 1 view .LVU138 + 497 .L34: + 315:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 316:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 317:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; + 498 .loc 1 317 3 view .LVU139 + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 499 .loc 1 318 1 is_stmt 0 view .LVU140 + 500 0042 38BD pop {r3, r4, r5, pc} + 501 .LVL38: + 502 .L31: + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 503 .loc 1 305 7 is_stmt 1 view .LVU141 + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 504 .loc 1 305 13 is_stmt 0 view .LVU142 + 505 0044 2946 mov r1, r5 + 506 0046 2046 mov r0, r4 + 507 0048 FFF7FEFF bl USBD_StdItfReq + 508 .LVL39: + 306:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 509 .loc 1 306 7 is_stmt 1 view .LVU143 + 510 004c F9E7 b .L34 + 511 .LVL40: + 512 .L32: + 309:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 513 .loc 1 309 7 view .LVU144 + 309:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; + 514 .loc 1 309 13 is_stmt 0 view .LVU145 + 515 004e 2946 mov r1, r5 + 516 0050 2046 mov r0, r4 + 517 0052 FFF7FEFF bl USBD_StdEPReq + 518 .LVL41: + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 519 .loc 1 310 7 is_stmt 1 view .LVU146 + 520 0056 F4E7 b .L34 + 521 .cfi_endproc + 522 .LFE341: + 524 .section .text.USBD_LL_DataOutStage,"ax",%progbits + 525 .align 1 + 526 .global USBD_LL_DataOutStage + 527 .syntax unified + 528 .thumb + 529 .thumb_func + 531 USBD_LL_DataOutStage: + 532 .LVL42: + 533 .LFB342: + 319:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 320:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 321:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DataOutStage + 322:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle data OUT stage + 323:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 324:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param epnum: endpoint index + ARM GAS /tmp/ccXNKvGT.s page 16 + + + 325:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdata: data pointer + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 327:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev, + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum, uint8_t *pdata) + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 534 .loc 1 330 1 view -0 + 535 .cfi_startproc + 536 @ args = 0, pretend = 0, frame = 0 + 537 @ frame_needed = 0, uses_anonymous_args = 0 + 538 .loc 1 330 1 is_stmt 0 view .LVU148 + 539 0000 38B5 push {r3, r4, r5, lr} + 540 .LCFI12: + 541 .cfi_def_cfa_offset 16 + 542 .cfi_offset 3, -16 + 543 .cfi_offset 4, -12 + 544 .cfi_offset 5, -8 + 545 .cfi_offset 14, -4 + 546 0002 0446 mov r4, r0 + 331:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; + 547 .loc 1 331 3 is_stmt 1 view .LVU149 + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; + 548 .loc 1 332 3 view .LVU150 + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 334:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (epnum == 0U) + 549 .loc 1 334 3 view .LVU151 + 550 .loc 1 334 6 is_stmt 0 view .LVU152 + 551 0004 0D46 mov r5, r1 + 552 0006 41BB cbnz r1, .L38 + 553 0008 1346 mov r3, r2 + 335:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 336:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep = &pdev->ep_out[0]; + 554 .loc 1 336 5 is_stmt 1 view .LVU153 + 555 .LVL43: + 337:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 338:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->ep0_state == USBD_EP0_DATA_OUT) + 556 .loc 1 338 5 view .LVU154 + 557 .loc 1 338 13 is_stmt 0 view .LVU155 + 558 000a D0F89422 ldr r2, [r0, #660] + 559 .LVL44: + 560 .loc 1 338 8 view .LVU156 + 561 000e 032A cmp r2, #3 + 562 0010 01D0 beq .L46 + 339:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pep->rem_length > pep->maxpacket) + 341:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->rem_length -= pep->maxpacket; + 343:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 344:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlContinueRx(pdev, pdata, MIN(pep->rem_length, pep->maxpacket)); + 345:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 346:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 347:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 349:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->EP0_RxReady != NULL) + 351:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 352:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass->EP0_RxReady(pdev); + ARM GAS /tmp/ccXNKvGT.s page 17 + + + 353:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 354:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 355:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 356:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlSendStatus(pdev); + 357:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 358:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 359:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 360:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 361:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if 0 + 362:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->ep0_state == USBD_EP0_STATUS_OUT) + 363:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 364:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* + 365:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * STATUS PHASE completed, update ep0_state to idle + 366:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 367:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_state = USBD_EP0_IDLE; + 368:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_StallEP(pdev, 0U); + 369:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 370:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif + 371:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 372:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 373:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 374:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 375:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 376:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->DataOut != NULL) + 378:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 379:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass->DataOut(pdev, epnum); + 380:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 381:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (ret != USBD_OK) + 382:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 383:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; + 384:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 385:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 387:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 388:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 563 .loc 1 389 10 view .LVU157 + 564 0012 0846 mov r0, r1 + 565 .LVL45: + 566 .L39: + 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 567 .loc 1 390 1 view .LVU158 + 568 0014 38BD pop {r3, r4, r5, pc} + 569 .LVL46: + 570 .L46: + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 571 .loc 1 340 7 is_stmt 1 view .LVU159 + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 572 .loc 1 340 14 is_stmt 0 view .LVU160 + 573 0016 D0F85C11 ldr r1, [r0, #348] + 574 .LVL47: + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 575 .loc 1 340 32 view .LVU161 + 576 001a D0F86021 ldr r2, [r0, #352] + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 577 .loc 1 340 10 view .LVU162 + ARM GAS /tmp/ccXNKvGT.s page 18 + + + 578 001e 9142 cmp r1, r2 + 579 0020 09D8 bhi .L47 + 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 580 .loc 1 348 9 is_stmt 1 view .LVU163 + 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 581 .loc 1 348 17 is_stmt 0 view .LVU164 + 582 0022 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 583 .LVL48: + 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 584 .loc 1 348 17 view .LVU165 + 585 0026 DBB2 uxtb r3, r3 + 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 586 .loc 1 348 12 view .LVU166 + 587 0028 032B cmp r3, #3 + 588 002a 0FD0 beq .L48 + 589 .LVL49: + 590 .L41: + 356:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 591 .loc 1 356 9 is_stmt 1 view .LVU167 + 356:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 592 .loc 1 356 15 is_stmt 0 view .LVU168 + 593 002c 2046 mov r0, r4 + 594 002e FFF7FEFF bl USBD_CtlSendStatus + 595 .LVL50: + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 596 .loc 1 389 10 view .LVU169 + 597 0032 2846 mov r0, r5 + 598 0034 EEE7 b .L39 + 599 .LVL51: + 600 .L47: + 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 601 .loc 1 342 9 is_stmt 1 view .LVU170 + 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 602 .loc 1 342 25 is_stmt 0 view .LVU171 + 603 0036 891A subs r1, r1, r2 + 604 0038 C0F85C11 str r1, [r0, #348] + 344:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 605 .loc 1 344 9 is_stmt 1 view .LVU172 + 344:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 606 .loc 1 344 15 is_stmt 0 view .LVU173 + 607 003c 8A42 cmp r2, r1 + 608 003e 28BF it cs + 609 0040 0A46 movcs r2, r1 + 610 0042 1946 mov r1, r3 + 611 0044 FFF7FEFF bl USBD_CtlContinueRx + 612 .LVL52: + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 613 .loc 1 389 10 view .LVU174 + 614 0048 2846 mov r0, r5 + 615 004a E3E7 b .L39 + 616 .LVL53: + 617 .L48: + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 618 .loc 1 350 11 is_stmt 1 view .LVU175 + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 619 .loc 1 350 19 is_stmt 0 view .LVU176 + 620 004c D0F8B832 ldr r3, [r0, #696] + ARM GAS /tmp/ccXNKvGT.s page 19 + + + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 621 .loc 1 350 27 view .LVU177 + 622 0050 1B69 ldr r3, [r3, #16] + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 623 .loc 1 350 14 view .LVU178 + 624 0052 002B cmp r3, #0 + 625 0054 EAD0 beq .L41 + 352:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 626 .loc 1 352 13 is_stmt 1 view .LVU179 + 627 0056 9847 blx r3 + 628 .LVL54: + 352:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 629 .loc 1 352 13 is_stmt 0 view .LVU180 + 630 0058 E8E7 b .L41 + 631 .LVL55: + 632 .L38: + 375:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 633 .loc 1 375 5 is_stmt 1 view .LVU181 + 375:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 634 .loc 1 375 13 is_stmt 0 view .LVU182 + 635 005a 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 636 005e DBB2 uxtb r3, r3 + 375:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 637 .loc 1 375 8 view .LVU183 + 638 0060 032B cmp r3, #3 + 639 0062 01D0 beq .L49 + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 640 .loc 1 389 10 view .LVU184 + 641 0064 0020 movs r0, #0 + 642 .LVL56: + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 643 .loc 1 389 10 view .LVU185 + 644 0066 D5E7 b .L39 + 645 .LVL57: + 646 .L49: + 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 647 .loc 1 377 7 is_stmt 1 view .LVU186 + 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 648 .loc 1 377 15 is_stmt 0 view .LVU187 + 649 0068 D0F8B832 ldr r3, [r0, #696] + 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 650 .loc 1 377 23 view .LVU188 + 651 006c 9B69 ldr r3, [r3, #24] + 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 652 .loc 1 377 10 view .LVU189 + 653 006e 0BB1 cbz r3, .L44 + 379:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 654 .loc 1 379 9 is_stmt 1 view .LVU190 + 379:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 655 .loc 1 379 35 is_stmt 0 view .LVU191 + 656 0070 9847 blx r3 + 657 .LVL58: + 381:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 658 .loc 1 381 9 is_stmt 1 view .LVU192 + 659 0072 CFE7 b .L39 + 660 .LVL59: + 661 .L44: + ARM GAS /tmp/ccXNKvGT.s page 20 + + + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 662 .loc 1 389 10 is_stmt 0 view .LVU193 + 663 0074 0020 movs r0, #0 + 664 .LVL60: + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 665 .loc 1 389 10 view .LVU194 + 666 0076 CDE7 b .L39 + 667 .cfi_endproc + 668 .LFE342: + 670 .section .text.USBD_LL_DataInStage,"ax",%progbits + 671 .align 1 + 672 .global USBD_LL_DataInStage + 673 .syntax unified + 674 .thumb + 675 .thumb_func + 677 USBD_LL_DataInStage: + 678 .LVL61: + 679 .LFB343: + 391:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 392:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 393:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DataInStage + 394:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle data in stage + 395:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 396:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param epnum: endpoint index + 397:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 398:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 399:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, + 400:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum, uint8_t *pdata) + 401:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 680 .loc 1 401 1 is_stmt 1 view -0 + 681 .cfi_startproc + 682 @ args = 0, pretend = 0, frame = 0 + 683 @ frame_needed = 0, uses_anonymous_args = 0 + 684 .loc 1 401 1 is_stmt 0 view .LVU196 + 685 0000 38B5 push {r3, r4, r5, lr} + 686 .LCFI13: + 687 .cfi_def_cfa_offset 16 + 688 .cfi_offset 3, -16 + 689 .cfi_offset 4, -12 + 690 .cfi_offset 5, -8 + 691 .cfi_offset 14, -4 + 692 0002 0446 mov r4, r0 + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; + 693 .loc 1 402 3 is_stmt 1 view .LVU197 + 403:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; + 694 .loc 1 403 3 view .LVU198 + 404:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 405:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (epnum == 0U) + 695 .loc 1 405 3 view .LVU199 + 696 .loc 1 405 6 is_stmt 0 view .LVU200 + 697 0004 0D46 mov r5, r1 + 698 0006 0029 cmp r1, #0 + 699 0008 4AD1 bne .L51 + 700 000a 1346 mov r3, r2 + 406:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 407:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep = &pdev->ep_in[0]; + 701 .loc 1 407 5 is_stmt 1 view .LVU201 + ARM GAS /tmp/ccXNKvGT.s page 21 + + + 702 .LVL62: + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 409:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->ep0_state == USBD_EP0_DATA_IN) + 703 .loc 1 409 5 view .LVU202 + 704 .loc 1 409 13 is_stmt 0 view .LVU203 + 705 000c D0F89422 ldr r2, [r0, #660] + 706 .LVL63: + 707 .loc 1 409 8 view .LVU204 + 708 0010 022A cmp r2, #2 + 709 0012 05D0 beq .L61 + 710 .LVL64: + 711 .L52: + 410:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pep->rem_length > pep->maxpacket) + 412:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->rem_length -= pep->maxpacket; + 414:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 415:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlContinueSendData(pdev, pdata, pep->rem_length); + 416:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 417:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prepare endpoint for premature end of transfer */ + 418:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); + 419:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 420:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 421:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* last packet is MPS multiple, so send ZLP packet */ + 423:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pep->maxpacket == pep->rem_length) && + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && + 425:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length < pdev->ep0_data_len)) + 426:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 427:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlContinueSendData(pdev, NULL, 0U); + 428:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; + 429:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 430:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prepare endpoint for premature end of transfer */ + 431:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); + 432:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 433:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 435:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 436:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->EP0_TxSent != NULL) + 438:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 439:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass->EP0_TxSent(pdev); + 440:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 441:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 442:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 443:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlReceiveStatus(pdev); + 444:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 445:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 447:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 448:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 449:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if 0 + 450:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->ep0_state == USBD_EP0_STATUS_IN) || + 451:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pdev->ep0_state == USBD_EP0_IDLE)) + 452:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 453:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 454:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + ARM GAS /tmp/ccXNKvGT.s page 22 + + + 455:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif + 456:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 712 .loc 1 456 5 is_stmt 1 view .LVU205 + 457:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_test_mode == 1U) + 713 .loc 1 458 5 view .LVU206 + 714 .loc 1 458 13 is_stmt 0 view .LVU207 + 715 0014 94F8A032 ldrb r3, [r4, #672] @ zero_extendqisi2 + 716 .loc 1 458 8 view .LVU208 + 717 0018 012B cmp r3, #1 + 718 001a 3CD0 beq .L62 + 459:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_RunTestMode(pdev); + 461:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_test_mode = 0U; + 462:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 463:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 464:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else + 465:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 466:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 467:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->DataIn != NULL) + 469:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass->DataIn(pdev, epnum); + 471:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (ret != USBD_OK) + 473:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 474:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; + 475:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 476:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 477:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 478:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 479:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 719 .loc 1 480 10 view .LVU209 + 720 001c 2846 mov r0, r5 + 721 .LVL65: + 722 .L56: + 481:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 723 .loc 1 481 1 view .LVU210 + 724 001e 38BD pop {r3, r4, r5, pc} + 725 .LVL66: + 726 .L61: + 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 727 .loc 1 411 7 is_stmt 1 view .LVU211 + 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 728 .loc 1 411 14 is_stmt 0 view .LVU212 + 729 0020 C269 ldr r2, [r0, #28] + 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 730 .loc 1 411 32 view .LVU213 + 731 0022 016A ldr r1, [r0, #32] + 732 .LVL67: + 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 733 .loc 1 411 10 view .LVU214 + 734 0024 8A42 cmp r2, r1 + 735 0026 0ED8 bhi .L63 + 423:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && + 736 .loc 1 423 9 is_stmt 1 view .LVU215 + ARM GAS /tmp/ccXNKvGT.s page 23 + + + 423:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && + 737 .loc 1 423 12 is_stmt 0 view .LVU216 + 738 0028 8A42 cmp r2, r1 + 739 002a 18D0 beq .L64 + 740 .LVL68: + 741 .L54: + 435:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 742 .loc 1 435 11 is_stmt 1 view .LVU217 + 435:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 743 .loc 1 435 19 is_stmt 0 view .LVU218 + 744 002c 94F89C32 ldrb r3, [r4, #668] @ zero_extendqisi2 + 745 0030 DBB2 uxtb r3, r3 + 435:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 746 .loc 1 435 14 view .LVU219 + 747 0032 032B cmp r3, #3 + 748 0034 27D0 beq .L65 + 749 .LVL69: + 750 .L55: + 442:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlReceiveStatus(pdev); + 751 .loc 1 442 11 is_stmt 1 view .LVU220 + 442:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlReceiveStatus(pdev); + 752 .loc 1 442 17 is_stmt 0 view .LVU221 + 753 0036 8021 movs r1, #128 + 754 0038 2046 mov r0, r4 + 755 003a FFF7FEFF bl USBD_LL_StallEP + 756 .LVL70: + 443:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 757 .loc 1 443 11 is_stmt 1 view .LVU222 + 443:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 758 .loc 1 443 17 is_stmt 0 view .LVU223 + 759 003e 2046 mov r0, r4 + 760 0040 FFF7FEFF bl USBD_CtlReceiveStatus + 761 .LVL71: + 762 0044 E6E7 b .L52 + 763 .LVL72: + 764 .L63: + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 765 .loc 1 413 9 is_stmt 1 view .LVU224 + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 766 .loc 1 413 25 is_stmt 0 view .LVU225 + 767 0046 521A subs r2, r2, r1 + 768 0048 C261 str r2, [r0, #28] + 415:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 769 .loc 1 415 9 is_stmt 1 view .LVU226 + 415:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 770 .loc 1 415 15 is_stmt 0 view .LVU227 + 771 004a 1946 mov r1, r3 + 772 004c FFF7FEFF bl USBD_CtlContinueSendData + 773 .LVL73: + 418:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 774 .loc 1 418 9 is_stmt 1 view .LVU228 + 418:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 775 .loc 1 418 15 is_stmt 0 view .LVU229 + 776 0050 0023 movs r3, #0 + 777 0052 1A46 mov r2, r3 + 778 0054 1946 mov r1, r3 + 779 0056 2046 mov r0, r4 + ARM GAS /tmp/ccXNKvGT.s page 24 + + + 780 0058 FFF7FEFF bl USBD_LL_PrepareReceive + 781 .LVL74: + 782 005c DAE7 b .L52 + 783 .LVL75: + 784 .L64: + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length < pdev->ep0_data_len)) + 785 .loc 1 424 17 discriminator 1 view .LVU230 + 786 005e 8369 ldr r3, [r0, #24] + 787 .LVL76: + 423:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && + 788 .loc 1 423 49 discriminator 1 view .LVU231 + 789 0060 9942 cmp r1, r3 + 790 0062 E3D8 bhi .L54 + 425:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 791 .loc 1 425 38 view .LVU232 + 792 0064 D0F89822 ldr r2, [r0, #664] + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length < pdev->ep0_data_len)) + 793 .loc 1 424 51 view .LVU233 + 794 0068 9342 cmp r3, r2 + 795 006a DFD2 bcs .L54 + 427:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; + 796 .loc 1 427 11 is_stmt 1 view .LVU234 + 427:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; + 797 .loc 1 427 17 is_stmt 0 view .LVU235 + 798 006c 0022 movs r2, #0 + 799 006e 1146 mov r1, r2 + 800 0070 FFF7FEFF bl USBD_CtlContinueSendData + 801 .LVL77: + 428:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 802 .loc 1 428 11 is_stmt 1 view .LVU236 + 428:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 803 .loc 1 428 30 is_stmt 0 view .LVU237 + 804 0074 0021 movs r1, #0 + 805 0076 C4F89812 str r1, [r4, #664] + 431:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 806 .loc 1 431 11 is_stmt 1 view .LVU238 + 431:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 807 .loc 1 431 17 is_stmt 0 view .LVU239 + 808 007a 0B46 mov r3, r1 + 809 007c 0A46 mov r2, r1 + 810 007e 2046 mov r0, r4 + 811 0080 FFF7FEFF bl USBD_LL_PrepareReceive + 812 .LVL78: + 431:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 813 .loc 1 431 11 view .LVU240 + 814 0084 C6E7 b .L52 + 815 .LVL79: + 816 .L65: + 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 817 .loc 1 437 13 is_stmt 1 view .LVU241 + 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 818 .loc 1 437 21 is_stmt 0 view .LVU242 + 819 0086 D4F8B832 ldr r3, [r4, #696] + 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 820 .loc 1 437 29 view .LVU243 + 821 008a DB68 ldr r3, [r3, #12] + 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + ARM GAS /tmp/ccXNKvGT.s page 25 + + + 822 .loc 1 437 16 view .LVU244 + 823 008c 002B cmp r3, #0 + 824 008e D2D0 beq .L55 + 439:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 825 .loc 1 439 15 is_stmt 1 view .LVU245 + 826 0090 2046 mov r0, r4 + 827 .LVL80: + 439:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 828 .loc 1 439 15 is_stmt 0 view .LVU246 + 829 0092 9847 blx r3 + 830 .LVL81: + 831 0094 CFE7 b .L55 + 832 .L62: + 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_test_mode = 0U; + 833 .loc 1 460 7 is_stmt 1 view .LVU247 + 461:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 834 .loc 1 461 7 view .LVU248 + 461:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 835 .loc 1 461 27 is_stmt 0 view .LVU249 + 836 0096 0023 movs r3, #0 + 837 0098 84F8A032 strb r3, [r4, #672] + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 838 .loc 1 480 10 view .LVU250 + 839 009c 2846 mov r0, r5 + 840 009e BEE7 b .L56 + 841 .LVL82: + 842 .L51: + 466:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 843 .loc 1 466 5 is_stmt 1 view .LVU251 + 466:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 844 .loc 1 466 13 is_stmt 0 view .LVU252 + 845 00a0 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 846 00a4 DBB2 uxtb r3, r3 + 466:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 847 .loc 1 466 8 view .LVU253 + 848 00a6 032B cmp r3, #3 + 849 00a8 01D0 beq .L66 + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 850 .loc 1 480 10 view .LVU254 + 851 00aa 0020 movs r0, #0 + 852 .LVL83: + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 853 .loc 1 480 10 view .LVU255 + 854 00ac B7E7 b .L56 + 855 .LVL84: + 856 .L66: + 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 857 .loc 1 468 7 is_stmt 1 view .LVU256 + 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 858 .loc 1 468 15 is_stmt 0 view .LVU257 + 859 00ae D0F8B832 ldr r3, [r0, #696] + 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 860 .loc 1 468 23 view .LVU258 + 861 00b2 5B69 ldr r3, [r3, #20] + 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 862 .loc 1 468 10 view .LVU259 + 863 00b4 0BB1 cbz r3, .L59 + ARM GAS /tmp/ccXNKvGT.s page 26 + + + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 864 .loc 1 470 9 is_stmt 1 view .LVU260 + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 865 .loc 1 470 35 is_stmt 0 view .LVU261 + 866 00b6 9847 blx r3 + 867 .LVL85: + 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 868 .loc 1 472 9 is_stmt 1 view .LVU262 + 869 00b8 B1E7 b .L56 + 870 .LVL86: + 871 .L59: + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 872 .loc 1 480 10 is_stmt 0 view .LVU263 + 873 00ba 0020 movs r0, #0 + 874 .LVL87: + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 875 .loc 1 480 10 view .LVU264 + 876 00bc AFE7 b .L56 + 877 .cfi_endproc + 878 .LFE343: + 880 .section .text.USBD_LL_Reset,"ax",%progbits + 881 .align 1 + 882 .global USBD_LL_Reset + 883 .syntax unified + 884 .thumb + 885 .thumb_func + 887 USBD_LL_Reset: + 888 .LVL88: + 889 .LFB344: + 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 483:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 484:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_Reset + 485:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Reset event + 486:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 487:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 488:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 489:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 490:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev) + 491:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 890 .loc 1 491 1 is_stmt 1 view -0 + 891 .cfi_startproc + 892 @ args = 0, pretend = 0, frame = 0 + 893 @ frame_needed = 0, uses_anonymous_args = 0 + 492:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Upon Reset call user call back */ + 493:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; + 894 .loc 1 493 3 view .LVU266 + 895 .loc 1 493 19 is_stmt 0 view .LVU267 + 896 0000 0123 movs r3, #1 + 897 0002 80F89C32 strb r3, [r0, #668] + 494:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_state = USBD_EP0_IDLE; + 898 .loc 1 494 3 is_stmt 1 view .LVU268 + 899 .loc 1 494 19 is_stmt 0 view .LVU269 + 900 0006 0023 movs r3, #0 + 901 0008 C0F89432 str r3, [r0, #660] + 495:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_config = 0U; + 902 .loc 1 495 3 is_stmt 1 view .LVU270 + 903 .loc 1 495 20 is_stmt 0 view .LVU271 + ARM GAS /tmp/ccXNKvGT.s page 27 + + + 904 000c 4360 str r3, [r0, #4] + 496:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_remote_wakeup = 0U; + 905 .loc 1 496 3 is_stmt 1 view .LVU272 + 906 .loc 1 496 27 is_stmt 0 view .LVU273 + 907 000e C0F8A432 str r3, [r0, #676] + 497:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 498:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 908 .loc 1 498 3 is_stmt 1 view .LVU274 + 909 .loc 1 498 11 is_stmt 0 view .LVU275 + 910 0012 D0F8B832 ldr r3, [r0, #696] + 911 .loc 1 498 6 view .LVU276 + 912 0016 F3B1 cbz r3, .L70 + 491:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Upon Reset call user call back */ + 913 .loc 1 491 1 view .LVU277 + 914 0018 70B5 push {r4, r5, r6, lr} + 915 .LCFI14: + 916 .cfi_def_cfa_offset 16 + 917 .cfi_offset 4, -16 + 918 .cfi_offset 5, -12 + 919 .cfi_offset 6, -8 + 920 .cfi_offset 14, -4 + 921 001a 0446 mov r4, r0 + 499:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 500:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; + 501:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 502:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 503:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClassData != NULL) + 922 .loc 1 503 3 is_stmt 1 view .LVU278 + 923 .loc 1 503 11 is_stmt 0 view .LVU279 + 924 001c D0F8BC22 ldr r2, [r0, #700] + 925 .loc 1 503 6 view .LVU280 + 926 0020 1AB1 cbz r2, .L69 + 504:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 505:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->DeInit != NULL) + 927 .loc 1 505 5 is_stmt 1 view .LVU281 + 928 .loc 1 505 21 is_stmt 0 view .LVU282 + 929 0022 5B68 ldr r3, [r3, #4] + 930 .loc 1 505 8 view .LVU283 + 931 0024 0BB1 cbz r3, .L69 + 506:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 507:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass->DeInit(pdev, (uint8_t)pdev->dev_config); + 932 .loc 1 507 7 is_stmt 1 view .LVU284 + 933 .loc 1 507 13 is_stmt 0 view .LVU285 + 934 0026 0021 movs r1, #0 + 935 0028 9847 blx r3 + 936 .LVL89: + 937 .L69: + 508:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 509:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 510:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 511:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Open EP0 OUT */ + 512:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_OpenEP(pdev, 0x00U, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); + 938 .loc 1 512 3 is_stmt 1 view .LVU286 + 939 .loc 1 512 9 is_stmt 0 view .LVU287 + 940 002a 4023 movs r3, #64 + 941 002c 0022 movs r2, #0 + 942 002e 1146 mov r1, r2 + ARM GAS /tmp/ccXNKvGT.s page 28 + + + 943 0030 2046 mov r0, r4 + 944 0032 FFF7FEFF bl USBD_LL_OpenEP + 945 .LVL90: + 513:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_out[0x00U & 0xFU].is_used = 1U; + 946 .loc 1 513 3 is_stmt 1 view .LVU288 + 947 .loc 1 513 38 is_stmt 0 view .LVU289 + 948 0036 0126 movs r6, #1 + 949 0038 A4F86461 strh r6, [r4, #356] @ movhi + 514:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 515:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_out[0].maxpacket = USB_MAX_EP0_SIZE; + 950 .loc 1 515 3 is_stmt 1 view .LVU290 + 951 .loc 1 515 29 is_stmt 0 view .LVU291 + 952 003c 4025 movs r5, #64 + 953 003e C4F86051 str r5, [r4, #352] + 516:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 517:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Open EP0 IN */ + 518:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_OpenEP(pdev, 0x80U, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); + 954 .loc 1 518 3 is_stmt 1 view .LVU292 + 955 .loc 1 518 9 is_stmt 0 view .LVU293 + 956 0042 2B46 mov r3, r5 + 957 0044 0022 movs r2, #0 + 958 0046 8021 movs r1, #128 + 959 0048 2046 mov r0, r4 + 960 004a FFF7FEFF bl USBD_LL_OpenEP + 961 .LVL91: + 519:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_in[0x80U & 0xFU].is_used = 1U; + 962 .loc 1 519 3 is_stmt 1 view .LVU294 + 963 .loc 1 519 37 is_stmt 0 view .LVU295 + 964 004e A684 strh r6, [r4, #36] @ movhi + 520:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 521:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_in[0].maxpacket = USB_MAX_EP0_SIZE; + 965 .loc 1 521 3 is_stmt 1 view .LVU296 + 966 .loc 1 521 28 is_stmt 0 view .LVU297 + 967 0050 2562 str r5, [r4, #32] + 522:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 523:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 968 .loc 1 523 3 is_stmt 1 view .LVU298 + 969 .loc 1 523 10 is_stmt 0 view .LVU299 + 970 0052 0020 movs r0, #0 + 524:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 971 .loc 1 524 1 view .LVU300 + 972 0054 70BD pop {r4, r5, r6, pc} + 973 .LVL92: + 974 .L70: + 975 .LCFI15: + 976 .cfi_def_cfa_offset 0 + 977 .cfi_restore 4 + 978 .cfi_restore 5 + 979 .cfi_restore 6 + 980 .cfi_restore 14 + 500:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 981 .loc 1 500 12 view .LVU301 + 982 0056 0320 movs r0, #3 + 983 .LVL93: + 984 .loc 1 524 1 view .LVU302 + 985 0058 7047 bx lr + 986 .cfi_endproc + ARM GAS /tmp/ccXNKvGT.s page 29 + + + 987 .LFE344: + 989 .section .text.USBD_LL_SetSpeed,"ax",%progbits + 990 .align 1 + 991 .global USBD_LL_SetSpeed + 992 .syntax unified + 993 .thumb + 994 .thumb_func + 996 USBD_LL_SetSpeed: + 997 .LVL94: + 998 .LFB345: + 525:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 526:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 527:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_SetSpeed + 528:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Reset event + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 530:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 531:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 532:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, + 533:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_SpeedTypeDef speed) + 534:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 999 .loc 1 534 1 is_stmt 1 view -0 + 1000 .cfi_startproc + 1001 @ args = 0, pretend = 0, frame = 0 + 1002 @ frame_needed = 0, uses_anonymous_args = 0 + 1003 @ link register save eliminated. + 535:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_speed = speed; + 1004 .loc 1 535 3 view .LVU304 + 1005 .loc 1 535 19 is_stmt 0 view .LVU305 + 1006 0000 0174 strb r1, [r0, #16] + 536:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 537:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1007 .loc 1 537 3 is_stmt 1 view .LVU306 + 538:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1008 .loc 1 538 1 is_stmt 0 view .LVU307 + 1009 0002 0020 movs r0, #0 + 1010 .LVL95: + 1011 .loc 1 538 1 view .LVU308 + 1012 0004 7047 bx lr + 1013 .cfi_endproc + 1014 .LFE345: + 1016 .section .text.USBD_LL_Suspend,"ax",%progbits + 1017 .align 1 + 1018 .global USBD_LL_Suspend + 1019 .syntax unified + 1020 .thumb + 1021 .thumb_func + 1023 USBD_LL_Suspend: + 1024 .LVL96: + 1025 .LFB346: + 539:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 540:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_Suspend + 542:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Suspend event + 543:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 544:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 545:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 546:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + ARM GAS /tmp/ccXNKvGT.s page 30 + + + 547:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev) + 548:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1026 .loc 1 548 1 is_stmt 1 view -0 + 1027 .cfi_startproc + 1028 @ args = 0, pretend = 0, frame = 0 + 1029 @ frame_needed = 0, uses_anonymous_args = 0 + 1030 @ link register save eliminated. + 549:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_old_state = pdev->dev_state; + 1031 .loc 1 549 3 view .LVU310 + 1032 .loc 1 549 29 is_stmt 0 view .LVU311 + 1033 0000 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1034 0004 DBB2 uxtb r3, r3 + 1035 .loc 1 549 23 view .LVU312 + 1036 0006 80F89D32 strb r3, [r0, #669] + 550:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_SUSPENDED; + 1037 .loc 1 550 3 is_stmt 1 view .LVU313 + 1038 .loc 1 550 19 is_stmt 0 view .LVU314 + 1039 000a 0423 movs r3, #4 + 1040 000c 80F89C32 strb r3, [r0, #668] + 551:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 552:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1041 .loc 1 552 3 is_stmt 1 view .LVU315 + 553:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1042 .loc 1 553 1 is_stmt 0 view .LVU316 + 1043 0010 0020 movs r0, #0 + 1044 .LVL97: + 1045 .loc 1 553 1 view .LVU317 + 1046 0012 7047 bx lr + 1047 .cfi_endproc + 1048 .LFE346: + 1050 .section .text.USBD_LL_Resume,"ax",%progbits + 1051 .align 1 + 1052 .global USBD_LL_Resume + 1053 .syntax unified + 1054 .thumb + 1055 .thumb_func + 1057 USBD_LL_Resume: + 1058 .LVL98: + 1059 .LFB347: + 554:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 555:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 556:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_Resume + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Resume event + 558:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 559:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 560:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 561:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 562:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev) + 563:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1060 .loc 1 563 1 is_stmt 1 view -0 + 1061 .cfi_startproc + 1062 @ args = 0, pretend = 0, frame = 0 + 1063 @ frame_needed = 0, uses_anonymous_args = 0 + 1064 @ link register save eliminated. + 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_SUSPENDED) + 1065 .loc 1 564 3 view .LVU319 + 1066 .loc 1 564 11 is_stmt 0 view .LVU320 + ARM GAS /tmp/ccXNKvGT.s page 31 + + + 1067 0000 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1068 0004 DBB2 uxtb r3, r3 + 1069 .loc 1 564 6 view .LVU321 + 1070 0006 042B cmp r3, #4 + 1071 0008 01D0 beq .L79 + 1072 .L78: + 565:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = pdev->dev_old_state; + 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 568:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 569:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1073 .loc 1 569 3 is_stmt 1 view .LVU322 + 570:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1074 .loc 1 570 1 is_stmt 0 view .LVU323 + 1075 000a 0020 movs r0, #0 + 1076 .LVL99: + 1077 .loc 1 570 1 view .LVU324 + 1078 000c 7047 bx lr + 1079 .LVL100: + 1080 .L79: + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1081 .loc 1 566 5 is_stmt 1 view .LVU325 + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1082 .loc 1 566 27 is_stmt 0 view .LVU326 + 1083 000e 90F89D32 ldrb r3, [r0, #669] @ zero_extendqisi2 + 1084 0012 DBB2 uxtb r3, r3 + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1085 .loc 1 566 21 view .LVU327 + 1086 0014 80F89C32 strb r3, [r0, #668] + 1087 0018 F7E7 b .L78 + 1088 .cfi_endproc + 1089 .LFE347: + 1091 .section .text.USBD_LL_SOF,"ax",%progbits + 1092 .align 1 + 1093 .global USBD_LL_SOF + 1094 .syntax unified + 1095 .thumb + 1096 .thumb_func + 1098 USBD_LL_SOF: + 1099 .LVL101: + 1100 .LFB348: + 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 572:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 573:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_SOF + 574:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle SOF event + 575:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 576:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 577:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 578:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 579:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev) + 580:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1101 .loc 1 580 1 is_stmt 1 view -0 + 1102 .cfi_startproc + 1103 @ args = 0, pretend = 0, frame = 0 + 1104 @ frame_needed = 0, uses_anonymous_args = 0 + 581:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 1105 .loc 1 581 3 view .LVU329 + ARM GAS /tmp/ccXNKvGT.s page 32 + + + 1106 .loc 1 581 11 is_stmt 0 view .LVU330 + 1107 0000 D0F8B822 ldr r2, [r0, #696] + 1108 .loc 1 581 6 view .LVU331 + 1109 0004 62B1 cbz r2, .L82 + 580:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 1110 .loc 1 580 1 view .LVU332 + 1111 0006 08B5 push {r3, lr} + 1112 .LCFI16: + 1113 .cfi_def_cfa_offset 8 + 1114 .cfi_offset 3, -8 + 1115 .cfi_offset 14, -4 + 582:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 583:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; + 584:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 585:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 586:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 1116 .loc 1 586 3 is_stmt 1 view .LVU333 + 1117 .loc 1 586 11 is_stmt 0 view .LVU334 + 1118 0008 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1119 000c DBB2 uxtb r3, r3 + 1120 .loc 1 586 6 view .LVU335 + 1121 000e 032B cmp r3, #3 + 1122 0010 01D0 beq .L89 + 587:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->SOF != NULL) + 589:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass->SOF(pdev); + 591:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 593:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1123 .loc 1 594 10 view .LVU336 + 1124 0012 0020 movs r0, #0 + 1125 .LVL102: + 1126 .L81: + 595:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1127 .loc 1 595 1 view .LVU337 + 1128 0014 08BD pop {r3, pc} + 1129 .LVL103: + 1130 .L89: + 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1131 .loc 1 588 5 is_stmt 1 view .LVU338 + 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1132 .loc 1 588 21 is_stmt 0 view .LVU339 + 1133 0016 D369 ldr r3, [r2, #28] + 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1134 .loc 1 588 8 view .LVU340 + 1135 0018 23B1 cbz r3, .L84 + 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1136 .loc 1 590 7 is_stmt 1 view .LVU341 + 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1137 .loc 1 590 13 is_stmt 0 view .LVU342 + 1138 001a 9847 blx r3 + 1139 .LVL104: + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1140 .loc 1 594 10 view .LVU343 + 1141 001c 0020 movs r0, #0 + ARM GAS /tmp/ccXNKvGT.s page 33 + + + 1142 001e F9E7 b .L81 + 1143 .LVL105: + 1144 .L82: + 1145 .LCFI17: + 1146 .cfi_def_cfa_offset 0 + 1147 .cfi_restore 3 + 1148 .cfi_restore 14 + 583:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1149 .loc 1 583 12 view .LVU344 + 1150 0020 0320 movs r0, #3 + 1151 .LVL106: + 1152 .loc 1 595 1 view .LVU345 + 1153 0022 7047 bx lr + 1154 .LVL107: + 1155 .L84: + 1156 .LCFI18: + 1157 .cfi_def_cfa_offset 8 + 1158 .cfi_offset 3, -8 + 1159 .cfi_offset 14, -4 + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1160 .loc 1 594 10 view .LVU346 + 1161 0024 0020 movs r0, #0 + 1162 .LVL108: + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1163 .loc 1 594 10 view .LVU347 + 1164 0026 F5E7 b .L81 + 1165 .cfi_endproc + 1166 .LFE348: + 1168 .section .text.USBD_LL_IsoINIncomplete,"ax",%progbits + 1169 .align 1 + 1170 .global USBD_LL_IsoINIncomplete + 1171 .syntax unified + 1172 .thumb + 1173 .thumb_func + 1175 USBD_LL_IsoINIncomplete: + 1176 .LVL109: + 1177 .LFB349: + 596:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 597:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 598:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_IsoINIncomplete + 599:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle iso in incomplete event + 600:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 602:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, + 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum) + 605:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1178 .loc 1 605 1 is_stmt 1 view -0 + 1179 .cfi_startproc + 1180 @ args = 0, pretend = 0, frame = 0 + 1181 @ frame_needed = 0, uses_anonymous_args = 0 + 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 1182 .loc 1 606 3 view .LVU349 + 1183 .loc 1 606 11 is_stmt 0 view .LVU350 + 1184 0000 D0F8B822 ldr r2, [r0, #696] + 1185 .loc 1 606 6 view .LVU351 + 1186 0004 62B1 cbz r2, .L92 + ARM GAS /tmp/ccXNKvGT.s page 34 + + + 605:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 1187 .loc 1 605 1 view .LVU352 + 1188 0006 08B5 push {r3, lr} + 1189 .LCFI19: + 1190 .cfi_def_cfa_offset 8 + 1191 .cfi_offset 3, -8 + 1192 .cfi_offset 14, -4 + 607:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 608:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; + 609:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 610:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 1193 .loc 1 611 3 is_stmt 1 view .LVU353 + 1194 .loc 1 611 11 is_stmt 0 view .LVU354 + 1195 0008 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1196 000c DBB2 uxtb r3, r3 + 1197 .loc 1 611 6 view .LVU355 + 1198 000e 032B cmp r3, #3 + 1199 0010 01D0 beq .L99 + 612:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 613:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->IsoINIncomplete != NULL) + 614:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 615:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass->IsoINIncomplete(pdev, epnum); + 616:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 617:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 618:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 619:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1200 .loc 1 619 10 view .LVU356 + 1201 0012 0020 movs r0, #0 + 1202 .LVL110: + 1203 .L91: + 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1204 .loc 1 620 1 view .LVU357 + 1205 0014 08BD pop {r3, pc} + 1206 .LVL111: + 1207 .L99: + 613:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1208 .loc 1 613 5 is_stmt 1 view .LVU358 + 613:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1209 .loc 1 613 21 is_stmt 0 view .LVU359 + 1210 0016 136A ldr r3, [r2, #32] + 613:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1211 .loc 1 613 8 view .LVU360 + 1212 0018 23B1 cbz r3, .L94 + 615:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1213 .loc 1 615 7 is_stmt 1 view .LVU361 + 615:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1214 .loc 1 615 13 is_stmt 0 view .LVU362 + 1215 001a 9847 blx r3 + 1216 .LVL112: + 619:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1217 .loc 1 619 10 view .LVU363 + 1218 001c 0020 movs r0, #0 + 1219 001e F9E7 b .L91 + 1220 .LVL113: + 1221 .L92: + 1222 .LCFI20: + ARM GAS /tmp/ccXNKvGT.s page 35 + + + 1223 .cfi_def_cfa_offset 0 + 1224 .cfi_restore 3 + 1225 .cfi_restore 14 + 608:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1226 .loc 1 608 12 view .LVU364 + 1227 0020 0320 movs r0, #3 + 1228 .LVL114: + 1229 .loc 1 620 1 view .LVU365 + 1230 0022 7047 bx lr + 1231 .LVL115: + 1232 .L94: + 1233 .LCFI21: + 1234 .cfi_def_cfa_offset 8 + 1235 .cfi_offset 3, -8 + 1236 .cfi_offset 14, -4 + 619:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1237 .loc 1 619 10 view .LVU366 + 1238 0024 0020 movs r0, #0 + 1239 .LVL116: + 619:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1240 .loc 1 619 10 view .LVU367 + 1241 0026 F5E7 b .L91 + 1242 .cfi_endproc + 1243 .LFE349: + 1245 .section .text.USBD_LL_IsoOUTIncomplete,"ax",%progbits + 1246 .align 1 + 1247 .global USBD_LL_IsoOUTIncomplete + 1248 .syntax unified + 1249 .thumb + 1250 .thumb_func + 1252 USBD_LL_IsoOUTIncomplete: + 1253 .LVL117: + 1254 .LFB350: + 621:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 622:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 623:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_IsoOUTIncomplete + 624:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle iso out incomplete event + 625:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 626:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 627:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 628:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, + 629:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum) + 630:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1255 .loc 1 630 1 is_stmt 1 view -0 + 1256 .cfi_startproc + 1257 @ args = 0, pretend = 0, frame = 0 + 1258 @ frame_needed = 0, uses_anonymous_args = 0 + 631:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 1259 .loc 1 631 3 view .LVU369 + 1260 .loc 1 631 11 is_stmt 0 view .LVU370 + 1261 0000 D0F8B822 ldr r2, [r0, #696] + 1262 .loc 1 631 6 view .LVU371 + 1263 0004 62B1 cbz r2, .L102 + 630:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass == NULL) + 1264 .loc 1 630 1 view .LVU372 + 1265 0006 08B5 push {r3, lr} + 1266 .LCFI22: + ARM GAS /tmp/ccXNKvGT.s page 36 + + + 1267 .cfi_def_cfa_offset 8 + 1268 .cfi_offset 3, -8 + 1269 .cfi_offset 14, -4 + 632:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 633:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; + 634:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 635:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 1270 .loc 1 636 3 is_stmt 1 view .LVU373 + 1271 .loc 1 636 11 is_stmt 0 view .LVU374 + 1272 0008 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1273 000c DBB2 uxtb r3, r3 + 1274 .loc 1 636 6 view .LVU375 + 1275 000e 032B cmp r3, #3 + 1276 0010 01D0 beq .L109 + 637:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass->IsoOUTIncomplete != NULL) + 639:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass->IsoOUTIncomplete(pdev, epnum); + 641:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 642:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 643:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 644:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1277 .loc 1 644 10 view .LVU376 + 1278 0012 0020 movs r0, #0 + 1279 .LVL118: + 1280 .L101: + 645:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1281 .loc 1 645 1 view .LVU377 + 1282 0014 08BD pop {r3, pc} + 1283 .LVL119: + 1284 .L109: + 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1285 .loc 1 638 5 is_stmt 1 view .LVU378 + 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1286 .loc 1 638 21 is_stmt 0 view .LVU379 + 1287 0016 536A ldr r3, [r2, #36] + 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1288 .loc 1 638 8 view .LVU380 + 1289 0018 23B1 cbz r3, .L104 + 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1290 .loc 1 640 7 is_stmt 1 view .LVU381 + 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1291 .loc 1 640 13 is_stmt 0 view .LVU382 + 1292 001a 9847 blx r3 + 1293 .LVL120: + 644:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1294 .loc 1 644 10 view .LVU383 + 1295 001c 0020 movs r0, #0 + 1296 001e F9E7 b .L101 + 1297 .LVL121: + 1298 .L102: + 1299 .LCFI23: + 1300 .cfi_def_cfa_offset 0 + 1301 .cfi_restore 3 + 1302 .cfi_restore 14 + 633:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + ARM GAS /tmp/ccXNKvGT.s page 37 + + + 1303 .loc 1 633 12 view .LVU384 + 1304 0020 0320 movs r0, #3 + 1305 .LVL122: + 1306 .loc 1 645 1 view .LVU385 + 1307 0022 7047 bx lr + 1308 .LVL123: + 1309 .L104: + 1310 .LCFI24: + 1311 .cfi_def_cfa_offset 8 + 1312 .cfi_offset 3, -8 + 1313 .cfi_offset 14, -4 + 644:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1314 .loc 1 644 10 view .LVU386 + 1315 0024 0020 movs r0, #0 + 1316 .LVL124: + 644:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1317 .loc 1 644 10 view .LVU387 + 1318 0026 F5E7 b .L101 + 1319 .cfi_endproc + 1320 .LFE350: + 1322 .section .text.USBD_LL_DevConnected,"ax",%progbits + 1323 .align 1 + 1324 .global USBD_LL_DevConnected + 1325 .syntax unified + 1326 .thumb + 1327 .thumb_func + 1329 USBD_LL_DevConnected: + 1330 .LVL125: + 1331 .LFB351: + 646:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 647:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 648:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DevConnected + 649:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle device connection event + 650:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 651:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 652:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev) + 654:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1332 .loc 1 654 1 is_stmt 1 view -0 + 1333 .cfi_startproc + 1334 @ args = 0, pretend = 0, frame = 0 + 1335 @ frame_needed = 0, uses_anonymous_args = 0 + 1336 @ link register save eliminated. + 655:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prevent unused argument compilation warning */ + 656:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdev); + 1337 .loc 1 656 3 view .LVU389 + 657:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1338 .loc 1 658 3 view .LVU390 + 659:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1339 .loc 1 659 1 is_stmt 0 view .LVU391 + 1340 0000 0020 movs r0, #0 + 1341 .LVL126: + 1342 .loc 1 659 1 view .LVU392 + 1343 0002 7047 bx lr + 1344 .cfi_endproc + 1345 .LFE351: + ARM GAS /tmp/ccXNKvGT.s page 38 + + + 1347 .section .text.USBD_LL_DevDisconnected,"ax",%progbits + 1348 .align 1 + 1349 .global USBD_LL_DevDisconnected + 1350 .syntax unified + 1351 .thumb + 1352 .thumb_func + 1354 USBD_LL_DevDisconnected: + 1355 .LVL127: + 1356 .LFB352: + 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 661:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** + 662:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DevDisconnected + 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle device disconnection event + 664:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance + 665:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status + 666:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ + 667:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev) + 668:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 1357 .loc 1 668 1 is_stmt 1 view -0 + 1358 .cfi_startproc + 1359 @ args = 0, pretend = 0, frame = 0 + 1360 @ frame_needed = 0, uses_anonymous_args = 0 + 1361 .loc 1 668 1 is_stmt 0 view .LVU394 + 1362 0000 08B5 push {r3, lr} + 1363 .LCFI25: + 1364 .cfi_def_cfa_offset 8 + 1365 .cfi_offset 3, -8 + 1366 .cfi_offset 14, -4 + 669:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ + 670:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; + 1367 .loc 1 670 3 is_stmt 1 view .LVU395 + 1368 .loc 1 670 19 is_stmt 0 view .LVU396 + 1369 0002 0123 movs r3, #1 + 1370 0004 80F89C32 strb r3, [r0, #668] + 671:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 672:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass != NULL) + 1371 .loc 1 672 3 is_stmt 1 view .LVU397 + 1372 .loc 1 672 11 is_stmt 0 view .LVU398 + 1373 0008 D0F8B832 ldr r3, [r0, #696] + 1374 .loc 1 672 6 view .LVU399 + 1375 000c 13B1 cbz r3, .L112 + 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { + 674:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass->DeInit(pdev, (uint8_t)pdev->dev_config); + 1376 .loc 1 674 5 is_stmt 1 view .LVU400 + 1377 .loc 1 674 23 is_stmt 0 view .LVU401 + 1378 000e 5B68 ldr r3, [r3, #4] + 1379 .loc 1 674 11 view .LVU402 + 1380 0010 0179 ldrb r1, [r0, #4] @ zero_extendqisi2 + 1381 0012 9847 blx r3 + 1382 .LVL128: + 1383 .L112: + 675:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 676:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** + 677:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; + 1384 .loc 1 677 3 is_stmt 1 view .LVU403 + 678:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } + 1385 .loc 1 678 1 is_stmt 0 view .LVU404 + ARM GAS /tmp/ccXNKvGT.s page 39 + + + 1386 0014 0020 movs r0, #0 + 1387 0016 08BD pop {r3, pc} + 1388 .cfi_endproc + 1389 .LFE352: + 1391 .text + 1392 .Letext0: + 1393 .file 2 "/usr/include/newlib/machine/_default_types.h" + 1394 .file 3 "/usr/include/newlib/sys/_stdint.h" + 1395 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 1396 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" + 1397 .file 6 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h" + 1398 .file 7 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" + ARM GAS /tmp/ccXNKvGT.s page 40 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_core.c + /tmp/ccXNKvGT.s:21 .text.USBD_Init:00000000 $t + /tmp/ccXNKvGT.s:27 .text.USBD_Init:00000000 USBD_Init + /tmp/ccXNKvGT.s:96 .text.USBD_DeInit:00000000 $t + /tmp/ccXNKvGT.s:102 .text.USBD_DeInit:00000000 USBD_DeInit + /tmp/ccXNKvGT.s:166 .text.USBD_RegisterClass:00000000 $t + /tmp/ccXNKvGT.s:172 .text.USBD_RegisterClass:00000000 USBD_RegisterClass + /tmp/ccXNKvGT.s:244 .text.USBD_Start:00000000 $t + /tmp/ccXNKvGT.s:250 .text.USBD_Start:00000000 USBD_Start + /tmp/ccXNKvGT.s:273 .text.USBD_Stop:00000000 $t + /tmp/ccXNKvGT.s:279 .text.USBD_Stop:00000000 USBD_Stop + /tmp/ccXNKvGT.s:320 .text.USBD_RunTestMode:00000000 $t + /tmp/ccXNKvGT.s:326 .text.USBD_RunTestMode:00000000 USBD_RunTestMode + /tmp/ccXNKvGT.s:345 .text.USBD_SetClassConfig:00000000 $t + /tmp/ccXNKvGT.s:351 .text.USBD_SetClassConfig:00000000 USBD_SetClassConfig + /tmp/ccXNKvGT.s:392 .text.USBD_ClrClassConfig:00000000 $t + /tmp/ccXNKvGT.s:398 .text.USBD_ClrClassConfig:00000000 USBD_ClrClassConfig + /tmp/ccXNKvGT.s:431 .text.USBD_LL_SetupStage:00000000 $t + /tmp/ccXNKvGT.s:437 .text.USBD_LL_SetupStage:00000000 USBD_LL_SetupStage + /tmp/ccXNKvGT.s:525 .text.USBD_LL_DataOutStage:00000000 $t + /tmp/ccXNKvGT.s:531 .text.USBD_LL_DataOutStage:00000000 USBD_LL_DataOutStage + /tmp/ccXNKvGT.s:671 .text.USBD_LL_DataInStage:00000000 $t + /tmp/ccXNKvGT.s:677 .text.USBD_LL_DataInStage:00000000 USBD_LL_DataInStage + /tmp/ccXNKvGT.s:881 .text.USBD_LL_Reset:00000000 $t + /tmp/ccXNKvGT.s:887 .text.USBD_LL_Reset:00000000 USBD_LL_Reset + /tmp/ccXNKvGT.s:990 .text.USBD_LL_SetSpeed:00000000 $t + /tmp/ccXNKvGT.s:996 .text.USBD_LL_SetSpeed:00000000 USBD_LL_SetSpeed + /tmp/ccXNKvGT.s:1017 .text.USBD_LL_Suspend:00000000 $t + /tmp/ccXNKvGT.s:1023 .text.USBD_LL_Suspend:00000000 USBD_LL_Suspend + /tmp/ccXNKvGT.s:1051 .text.USBD_LL_Resume:00000000 $t + /tmp/ccXNKvGT.s:1057 .text.USBD_LL_Resume:00000000 USBD_LL_Resume + /tmp/ccXNKvGT.s:1092 .text.USBD_LL_SOF:00000000 $t + /tmp/ccXNKvGT.s:1098 .text.USBD_LL_SOF:00000000 USBD_LL_SOF + /tmp/ccXNKvGT.s:1169 .text.USBD_LL_IsoINIncomplete:00000000 $t + /tmp/ccXNKvGT.s:1175 .text.USBD_LL_IsoINIncomplete:00000000 USBD_LL_IsoINIncomplete + /tmp/ccXNKvGT.s:1246 .text.USBD_LL_IsoOUTIncomplete:00000000 $t + /tmp/ccXNKvGT.s:1252 .text.USBD_LL_IsoOUTIncomplete:00000000 USBD_LL_IsoOUTIncomplete + /tmp/ccXNKvGT.s:1323 .text.USBD_LL_DevConnected:00000000 $t + /tmp/ccXNKvGT.s:1329 .text.USBD_LL_DevConnected:00000000 USBD_LL_DevConnected + /tmp/ccXNKvGT.s:1348 .text.USBD_LL_DevDisconnected:00000000 $t + /tmp/ccXNKvGT.s:1354 .text.USBD_LL_DevDisconnected:00000000 USBD_LL_DevDisconnected + +UNDEFINED SYMBOLS +USBD_LL_Init +USBD_LL_Stop +USBD_LL_DeInit +USBD_LL_Start +USBD_ParseSetupRequest +USBD_LL_StallEP +USBD_StdDevReq +USBD_StdItfReq +USBD_StdEPReq +USBD_CtlSendStatus +USBD_CtlContinueRx +USBD_CtlReceiveStatus +USBD_CtlContinueSendData + ARM GAS /tmp/ccXNKvGT.s page 41 + + +USBD_LL_PrepareReceive +USBD_LL_OpenEP diff --git a/squeow_sw/build/usbd_core.o b/squeow_sw/build/usbd_core.o new file mode 100644 index 0000000000000000000000000000000000000000..b05106bd23c1fb95112ebd7b27585edc1a597b8a GIT binary patch literal 26720 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 bb@+iCzx(kv&mWf7De3Mz58r7Ik?wy1OWJaw literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usbd_ctlreq.d b/squeow_sw/build/usbd_ctlreq.d new file mode 100644 index 0000000..3368e96 --- /dev/null +++ b/squeow_sw/build/usbd_ctlreq.d @@ -0,0 +1,87 @@ +build/usbd_ctlreq.o: \ + 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 \ + Inc/usbd_conf.h Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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 +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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: diff --git a/squeow_sw/build/usbd_ctlreq.lst b/squeow_sw/build/usbd_ctlreq.lst new file mode 100644 index 0000000..a8d58ac --- /dev/null +++ b/squeow_sw/build/usbd_ctlreq.lst @@ -0,0 +1,4356 @@ +ARM GAS /tmp/ccQ58aJU.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usbd_ctlreq.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c" + 20 .section .text.USBD_GetLen,"ax",%progbits + 21 .align 1 + 22 .syntax unified + 23 .thumb + 24 .thumb_func + 26 USBD_GetLen: + 27 .LVL0: + 28 .LFB346: + 1:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 2:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ****************************************************************************** + 3:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @file usbd_req.c + 4:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @author MCD Application Team + 5:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief This file provides the standard USB requests following chapter 9. + 6:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ****************************************************************************** + 7:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @attention + 8:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * + 9:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** *

© Copyright (c) 2015 STMicroelectronics. + 10:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * All rights reserved.

+ 11:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * + 12:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * This software component is licensed by ST under Ultimate Liberty license + 13:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * SLA0044, the "License"; You may not use this file except in compliance with + 14:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * the License. You may obtain a copy of the License at: + 15:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * www.st.com/SLA0044 + 16:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * + 17:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ****************************************************************************** + 18:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 19:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 20:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /* Includes ------------------------------------------------------------------*/ + 21:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #include "usbd_ctlreq.h" + 22:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #include "usbd_ioreq.h" + 23:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 24:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 25:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @addtogroup STM32_USBD_STATE_DEVICE_LIBRARY + 26:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 27:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 28:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 29:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 30:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ + ARM GAS /tmp/ccQ58aJU.s page 2 + + + 31:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USB standard requests module + 32:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 33:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 34:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 35:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ_Private_TypesDefinitions + 36:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 37:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 38:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 39:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 40:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @} + 41:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 42:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 43:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 44:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ_Private_Defines + 45:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 46:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 47:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 48:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 49:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @} + 50:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 51:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 52:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 53:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ_Private_Macros + 54:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 55:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 56:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 57:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 58:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @} + 59:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 60:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 61:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 62:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ_Private_Variables + 63:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 64:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 65:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 66:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 67:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @} + 68:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 69:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 70:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 71:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ_Private_FunctionPrototypes + 72:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 73:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 74:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_GetDescriptor(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 75:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_SetAddress(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 76:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static USBD_StatusTypeDef USBD_SetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 77:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_GetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 78:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_GetStatus(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 79:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_SetFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 80:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_ClrFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 81:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static uint8_t USBD_GetLen(uint8_t *buf); + 82:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 83:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 84:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @} + 85:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 86:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 87:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + ARM GAS /tmp/ccQ58aJU.s page 3 + + + 88:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** @defgroup USBD_REQ_Private_Functions + 89:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @{ + 90:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 91:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 92:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 93:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 94:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_StdDevReq + 95:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle standard usb device requests + 96:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 97:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 98:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 99:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 100:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef USBD_StdDevReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 103:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (req->bmRequest & USB_REQ_TYPE_MASK) + 105:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 106:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_CLASS: + 107:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_VENDOR: + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Setup(pdev, req); + 109:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 110:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 111:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_STANDARD: + 112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (req->bRequest) + 113:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 114:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_GET_DESCRIPTOR: + 115:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_GetDescriptor(pdev, req); + 116:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 117:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 118:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_SET_ADDRESS: + 119:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_SetAddress(pdev, req); + 120:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 121:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 122:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_SET_CONFIGURATION: + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = USBD_SetConfig(pdev, req); + 124:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 125:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 126:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_GET_CONFIGURATION: + 127:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_GetConfig(pdev, req); + 128:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 129:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 130:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_GET_STATUS: + 131:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_GetStatus(pdev, req); + 132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 133:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 134:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_SET_FEATURE: + 135:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_SetFeature(pdev, req); + 136:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 137:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 138:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_CLEAR_FEATURE: + 139:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_ClrFeature(pdev, req); + 140:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 141:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 142:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 143:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 144:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + ARM GAS /tmp/ccQ58aJU.s page 4 + + + 145:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 146:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 147:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 148:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 149:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 151:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 152:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 153:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return ret; + 154:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 155:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 156:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 157:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_StdItfReq + 158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle standard usb interface requests + 159:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 160:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 162:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 163:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef USBD_StdItfReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (req->bmRequest & USB_REQ_TYPE_MASK) + 168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 169:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_CLASS: + 170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_VENDOR: + 171:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_STANDARD: + 172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 173:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_DEFAULT: + 175:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 177:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (LOBYTE(req->wIndex) <= USBD_MAX_NUM_INTERFACES) + 179:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Setup(pdev, req); + 181:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((req->wLength == 0U) && (ret == USBD_OK)) + 183:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 185:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 186:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 187:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 188:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 190:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 191:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 192:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 196:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 197:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 198:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 199:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 200:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 201:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + ARM GAS /tmp/ccQ58aJU.s page 5 + + + 202:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 203:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 204:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return ret; + 205:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 206:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 207:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 208:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_StdEPReq + 209:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle standard usb endpoint requests + 210:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 211:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 212:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 213:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 214:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef USBD_StdEPReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 215:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 216:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_EndpointTypeDef *pep; + 217:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t ep_addr; + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 219:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 220:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (req->bmRequest & USB_REQ_TYPE_MASK) + 222:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 223:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_CLASS: + 224:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_VENDOR: + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Setup(pdev, req); + 226:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 227:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 228:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_TYPE_STANDARD: + 229:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (req->bRequest) + 230:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 231:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_SET_FEATURE: + 232:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 233:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 234:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 235:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr != 0x00U) && (ep_addr != 0x80U)) + 236:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 237:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, ep_addr); + 238:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 239:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 240:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 241:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 243:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 244:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 245:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 246:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 247:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wValue == USB_FEATURE_EP_HALT) + 248:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr != 0x00U) && (ep_addr != 0x80U) && (req->wLength == 0x00U)) + 250:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 251:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, ep_addr); + 252:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 253:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 254:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 255:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 256:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 257:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 258:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + ARM GAS /tmp/ccQ58aJU.s page 6 + + + 259:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 260:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 261:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 262:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 263:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 264:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_CLEAR_FEATURE: + 265:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 266:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 267:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 268:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 269:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr != 0x00U) && (ep_addr != 0x80U)) + 270:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 271:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, ep_addr); + 272:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 273:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 274:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 275:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 277:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 278:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 279:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 280:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 281:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wValue == USB_FEATURE_EP_HALT) + 282:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 283:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr & 0x7FU) != 0x00U) + 284:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 285:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_ClearStallEP(pdev, ep_addr); + 286:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 287:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Setup(pdev, req); + 289:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 290:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 291:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 292:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 293:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 294:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 295:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 296:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 297:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 298:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_REQ_GET_STATUS: + 299:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 300:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 301:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr != 0x00U) && (ep_addr != 0x80U)) + 303:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 304:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 306:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pep = ((ep_addr & 0x80U) == 0x80U) ? &pdev->ep_in[ep_addr & 0x7FU] : \ + 308:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 309:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pep->status = 0x0000U; + 311:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 312:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pep->status, 2U); + 313:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 314:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 315:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + ARM GAS /tmp/ccQ58aJU.s page 7 + + + 316:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr & 0x80U) == 0x80U) + 317:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->ep_in[ep_addr & 0xFU].is_used == 0U) + 319:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 320:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 321:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 322:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 323:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 324:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 325:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->ep_out[ep_addr & 0xFU].is_used == 0U) + 327:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 331:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pep = ((ep_addr & 0x80U) == 0x80U) ? &pdev->ep_in[ep_addr & 0x7FU] : \ + 334:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 335:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 336:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((ep_addr == 0x00U) || (ep_addr == 0x80U)) + 337:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 338:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pep->status = 0x0000U; + 339:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else if (USBD_LL_IsStallEP(pdev, ep_addr) != 0U) + 341:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pep->status = 0x0001U; + 343:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 344:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 345:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 346:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pep->status = 0x0000U; + 347:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 349:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pep->status, 2U); + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 351:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 352:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 353:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 354:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 355:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 356:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 357:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 358:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 359:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 360:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 361:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 362:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 363:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 364:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 365:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 366:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 367:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 368:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 369:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return ret; + 370:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 371:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 372:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + ARM GAS /tmp/ccQ58aJU.s page 8 + + + 373:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 374:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_GetDescriptor + 375:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle Get Descriptor requests + 376:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 378:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 379:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 380:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_GetDescriptor(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 381:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 382:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint16_t len = 0U; + 383:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuf = NULL; + 384:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t err = 0U; + 385:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (req->wValue >> 8) + 387:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 388:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #if ((USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1U)) + 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_DESC_TYPE_BOS: + 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetBOSDescriptor != NULL) + 391:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 392:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetBOSDescriptor(pdev->dev_speed, &len); + 393:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 394:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 395:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 396:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 397:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 398:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 399:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 400:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #endif + 401:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_DESC_TYPE_DEVICE: + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetDeviceDescriptor(pdev->dev_speed, &len); + 403:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 404:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 405:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_DESC_TYPE_CONFIGURATION: + 406:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->dev_speed == USBD_SPEED_HIGH) + 407:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pClass->GetHSConfigDescriptor(&len); + 409:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 410:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 412:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pClass->GetFSConfigDescriptor(&len); + 414:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 415:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 416:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 417:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 418:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_DESC_TYPE_STRING: + 419:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch ((uint8_t)(req->wValue)) + 420:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 421:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_IDX_LANGID_STR: + 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetLangIDStrDescriptor != NULL) + 423:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetLangIDStrDescriptor(pdev->dev_speed, &len); + 425:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 426:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 427:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 428:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 429:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + ARM GAS /tmp/ccQ58aJU.s page 9 + + + 430:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 431:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 432:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 433:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_IDX_MFC_STR: + 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetManufacturerStrDescriptor != NULL) + 435:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 436:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetManufacturerStrDescriptor(pdev->dev_speed, &len); + 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 438:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 439:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 440:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 441:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 442:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 443:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 444:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 445:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_IDX_PRODUCT_STR: + 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetProductStrDescriptor != NULL) + 447:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 448:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetProductStrDescriptor(pdev->dev_speed, &len); + 449:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 450:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 451:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 452:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 453:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 454:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 455:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 456:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 457:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_IDX_SERIAL_STR: + 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetSerialStrDescriptor != NULL) + 459:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetSerialStrDescriptor(pdev->dev_speed, &len); + 461:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 462:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 463:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 464:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 465:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 466:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 467:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 469:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_IDX_CONFIG_STR: + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetConfigurationStrDescriptor != NULL) + 471:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetConfigurationStrDescriptor(pdev->dev_speed, &len); + 473:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 474:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 475:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 476:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 477:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 478:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 479:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 481:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_IDX_INTERFACE_STR: + 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetInterfaceStrDescriptor != NULL) + 483:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 484:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetInterfaceStrDescriptor(pdev->dev_speed, &len); + 485:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 486:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + ARM GAS /tmp/ccQ58aJU.s page 10 + + + 487:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 488:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 489:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 490:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 491:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 492:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 493:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 494:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #if (USBD_SUPPORT_USER_STRING_DESC == 1U) + 495:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pClass->GetUsrStrDescriptor != NULL) + 496:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 497:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pClass->GetUsrStrDescriptor(pdev, (req->wValue), &len); + 498:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 499:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 500:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 501:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 502:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 503:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 504:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #endif + 505:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 506:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #if (USBD_CLASS_USER_STRING_DESC == 1U) + 507:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->pDesc->GetUserStrDescriptor != NULL) + 508:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 509:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pDesc->GetUserStrDescriptor(pdev->dev_speed, (req->wValue), &len); + 510:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 511:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 512:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 513:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 514:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 515:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 516:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #endif + 517:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 518:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #if ((USBD_CLASS_USER_STRING_DESC == 0U) && (USBD_SUPPORT_USER_STRING_DESC == 0U)) + 519:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 520:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 521:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #endif + 522:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 523:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 524:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 525:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 526:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_DESC_TYPE_DEVICE_QUALIFIER: + 527:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->dev_speed == USBD_SPEED_HIGH) + 528:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pClass->GetDeviceQualifierDescriptor(&len); + 530:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 531:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 532:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 533:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 534:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 535:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 536:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 537:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 538:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION: + 539:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->dev_speed == USBD_SPEED_HIGH) + 540:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf = pdev->pClass->GetOtherSpeedConfigDescriptor(&len); + 542:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + 543:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + ARM GAS /tmp/ccQ58aJU.s page 11 + + + 544:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 545:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 546:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 547:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 548:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 549:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 550:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 551:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 552:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 553:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 554:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 555:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 556:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (err != 0U) + 558:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 559:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return; + 560:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 561:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 562:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wLength != 0U) + 563:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (len != 0U) + 565:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** len = MIN(len, req->wLength); + 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, pbuf, len); + 568:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 569:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 570:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 572:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 573:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 574:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 575:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 576:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 577:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 578:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 579:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 580:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 581:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 582:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_SetAddress + 583:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Set device address + 584:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 585:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 586:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 587:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_SetAddress(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 589:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t dev_addr; + 591:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if ((req->wIndex == 0U) && (req->wLength == 0U) && (req->wValue < 128U)) + 593:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** dev_addr = (uint8_t)(req->wValue) & 0x7FU; + 595:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 596:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) + 597:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 598:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 599:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 600:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + ARM GAS /tmp/ccQ58aJU.s page 12 + + + 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 602:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_address = dev_addr; + 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_SetUSBAddress(pdev, dev_addr); + 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 605:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (dev_addr != 0U) + 607:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 608:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_ADDRESSED; + 609:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 610:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 612:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_DEFAULT; + 613:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 614:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 615:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 616:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 617:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 618:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 619:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 621:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 622:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 623:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_SetConfig + 624:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle Set device configuration request + 625:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 626:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 627:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 628:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 629:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static USBD_StatusTypeDef USBD_SetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 630:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 631:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 632:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static uint8_t cfgidx; + 633:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 634:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** cfgidx = (uint8_t)(req->wValue); + 635:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (cfgidx > USBD_MAX_NUM_CONFIGURATION) + 637:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 639:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return USBD_FAIL; + 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 641:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 642:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 643:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 644:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 645:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (cfgidx != 0U) + 646:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 647:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config = cfgidx; + 648:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 649:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = USBD_SetClassConfig(pdev, cfgidx); + 650:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 651:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (ret != USBD_OK) + 652:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 654:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 655:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 656:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 657:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + ARM GAS /tmp/ccQ58aJU.s page 13 + + + 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_CONFIGURED; + 659:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 661:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 662:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 664:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 665:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 666:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 667:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 668:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (cfgidx == 0U) + 669:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 670:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_ADDRESSED; + 671:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config = cfgidx; + 672:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, cfgidx); + 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 674:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 675:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else if (cfgidx != pdev->dev_config) + 676:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 677:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /* Clear old configuration */ + 678:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, (uint8_t)pdev->dev_config); + 679:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 680:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /* set new configuration */ + 681:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config = cfgidx; + 682:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 683:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = USBD_SetClassConfig(pdev, cfgidx); + 684:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 685:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (ret != USBD_OK) + 686:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 687:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 688:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, (uint8_t)pdev->dev_config); + 689:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_ADDRESSED; + 690:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 691:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 692:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 694:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 695:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 696:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 697:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 698:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 699:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 700:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 701:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 702:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 703:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 704:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, cfgidx); + 705:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = USBD_FAIL; + 706:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 707:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 708:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 709:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return ret; + 710:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 711:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 712:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 713:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_GetConfig + 714:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle Get device configuration request + ARM GAS /tmp/ccQ58aJU.s page 14 + + + 715:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 716:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 717:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 718:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 719:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_GetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 721:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wLength != 1U) + 722:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 723:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 724:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 725:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** else + 726:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 727:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 728:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_DEFAULT: + 730:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 731:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_default_config = 0U; + 732:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_default_config, 1U); + 733:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 734:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 735:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 736:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_config, 1U); + 737:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 738:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 739:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 740:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 741:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 742:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 743:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 744:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 745:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 746:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 747:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_GetStatus + 748:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle Get Status request + 749:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 750:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 751:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 752:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 753:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_GetStatus(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 755:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 756:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 757:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_DEFAULT: + 758:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 759:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 760:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wLength != 0x2U) + 761:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 762:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 763:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 764:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 765:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 766:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #if (USBD_SELF_POWERED == 1U) + 767:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config_status = USB_CONFIG_SELF_POWERED; + 768:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #else + 769:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config_status = 0U; + 770:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #endif + 771:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + ARM GAS /tmp/ccQ58aJU.s page 15 + + + 772:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (pdev->dev_remote_wakeup != 0U) + 773:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 774:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config_status |= USB_CONFIG_REMOTE_WAKEUP; + 775:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 776:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 777:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_config_status, 2U); + 778:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 779:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 780:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 781:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 782:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 783:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 784:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 785:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 786:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 787:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 788:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_SetFeature + 789:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle Set device feature request + 790:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 791:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 792:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 793:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 794:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_SetFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 795:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 796:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) + 797:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 798:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_remote_wakeup = 1U; + 799:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 800:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 801:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 802:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 803:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 804:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 805:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_ClrFeature + 806:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle clear device feature request + 807:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 808:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 809:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval status + 810:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 811:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static void USBD_ClrFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 812:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 813:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 814:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 815:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_DEFAULT: + 816:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_ADDRESSED: + 817:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** case USBD_STATE_CONFIGURED: + 818:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) + 819:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 820:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_remote_wakeup = 0U; + 821:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 822:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 823:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 824:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 825:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** default: + 826:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_CtlError(pdev, req); + 827:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 828:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + ARM GAS /tmp/ccQ58aJU.s page 16 + + + 829:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 830:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 831:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 832:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 833:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_ParseSetupRequest + 834:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Copy buffer into setup structure + 835:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 836:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 837:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval None + 838:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 839:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** void USBD_ParseSetupRequest(USBD_SetupReqTypedef *req, uint8_t *pdata) + 840:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 841:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuff = pdata; + 842:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 843:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->bmRequest = *(uint8_t *)(pbuff); + 844:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 845:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 846:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->bRequest = *(uint8_t *)(pbuff); + 847:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 848:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 849:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->wValue = SWAPBYTE(pbuff); + 850:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 851:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 852:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 853:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->wIndex = SWAPBYTE(pbuff); + 854:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 855:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 856:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 857:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->wLength = SWAPBYTE(pbuff); + 858:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 859:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 860:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 861:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 862:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_CtlError + 863:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Handle USB low level Error + 864:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param pdev: device instance + 865:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param req: usb request + 866:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval None + 867:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 868:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** void USBD_CtlError(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) + 869:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 870:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** UNUSED(req); + 871:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 872:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 873:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0U); + 874:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 875:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 876:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 877:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 878:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_GetString + 879:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * Convert Ascii string into unicode one + 880:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param desc : descriptor buffer + 881:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param unicode : Formatted string buffer (unicode) + 882:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param len : descriptor length + 883:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval None + 884:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 885:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len) + ARM GAS /tmp/ccQ58aJU.s page 17 + + + 886:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 887:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t idx = 0U; + 888:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pdesc; + 889:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 890:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (desc == NULL) + 891:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 892:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return; + 893:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 894:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 895:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdesc = desc; + 896:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** *len = ((uint16_t)USBD_GetLen(pdesc) * 2U) + 2U; + 897:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 898:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** unicode[idx] = *(uint8_t *)len; + 899:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 900:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** unicode[idx] = USB_DESC_TYPE_STRING; + 901:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 902:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** while (*pdesc != (uint8_t)'\0') + 904:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 905:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** unicode[idx] = *pdesc; + 906:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdesc++; + 907:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 908:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 909:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** unicode[idx] = 0U; + 910:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 911:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 912:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 913:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 914:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 915:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** /** + 916:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @brief USBD_GetLen + 917:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * return the string length + 918:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @param buf : pointer to the ascii string buffer + 919:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** * @retval string length + 920:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** */ + 921:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static uint8_t USBD_GetLen(uint8_t *buf) + 922:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 29 .loc 1 922 1 view -0 + 30 .cfi_startproc + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 @ link register save eliminated. + 34 .loc 1 922 1 is_stmt 0 view .LVU1 + 35 0000 0346 mov r3, r0 + 923:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t len = 0U; + 36 .loc 1 923 3 is_stmt 1 view .LVU2 + 37 .LVL1: + 924:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuff = buf; + 38 .loc 1 924 3 view .LVU3 + 925:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 926:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** while (*pbuff != (uint8_t)'\0') + 39 .loc 1 926 3 view .LVU4 + 923:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuff = buf; + 40 .loc 1 923 12 is_stmt 0 view .LVU5 + 41 0002 0020 movs r0, #0 + 42 .LVL2: + 43 .loc 1 926 9 view .LVU6 + ARM GAS /tmp/ccQ58aJU.s page 18 + + + 44 0004 02E0 b .L2 + 45 .LVL3: + 46 .L3: + 927:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 928:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** len++; + 47 .loc 1 928 5 is_stmt 1 view .LVU7 + 48 .loc 1 928 8 is_stmt 0 view .LVU8 + 49 0006 0130 adds r0, r0, #1 + 50 .LVL4: + 51 .loc 1 928 8 view .LVU9 + 52 0008 C0B2 uxtb r0, r0 + 53 .LVL5: + 929:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 54 .loc 1 929 5 is_stmt 1 view .LVU10 + 55 .loc 1 929 10 is_stmt 0 view .LVU11 + 56 000a 0133 adds r3, r3, #1 + 57 .LVL6: + 58 .L2: + 926:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 59 .loc 1 926 17 is_stmt 1 view .LVU12 + 926:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 60 .loc 1 926 10 is_stmt 0 view .LVU13 + 61 000c 1A78 ldrb r2, [r3] @ zero_extendqisi2 + 926:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 62 .loc 1 926 17 view .LVU14 + 63 000e 002A cmp r2, #0 + 64 0010 F9D1 bne .L3 + 930:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 931:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 932:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return len; + 65 .loc 1 932 3 is_stmt 1 view .LVU15 + 933:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 66 .loc 1 933 1 is_stmt 0 view .LVU16 + 67 0012 7047 bx lr + 68 .cfi_endproc + 69 .LFE346: + 71 .section .text.USBD_SetFeature,"ax",%progbits + 72 .align 1 + 73 .syntax unified + 74 .thumb + 75 .thumb_func + 77 USBD_SetFeature: + 78 .LVL7: + 79 .LFB341: + 795:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) + 80 .loc 1 795 1 is_stmt 1 view -0 + 81 .cfi_startproc + 82 @ args = 0, pretend = 0, frame = 0 + 83 @ frame_needed = 0, uses_anonymous_args = 0 + 795:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) + 84 .loc 1 795 1 is_stmt 0 view .LVU18 + 85 0000 08B5 push {r3, lr} + 86 .LCFI0: + 87 .cfi_def_cfa_offset 8 + 88 .cfi_offset 3, -8 + 89 .cfi_offset 14, -4 + 796:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + ARM GAS /tmp/ccQ58aJU.s page 19 + + + 90 .loc 1 796 3 is_stmt 1 view .LVU19 + 796:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 91 .loc 1 796 10 is_stmt 0 view .LVU20 + 92 0002 4B88 ldrh r3, [r1, #2] + 796:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 93 .loc 1 796 6 view .LVU21 + 94 0004 012B cmp r3, #1 + 95 0006 00D0 beq .L7 + 96 .LVL8: + 97 .L4: + 801:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 98 .loc 1 801 1 view .LVU22 + 99 0008 08BD pop {r3, pc} + 100 .LVL9: + 101 .L7: + 798:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 102 .loc 1 798 5 is_stmt 1 view .LVU23 + 798:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 103 .loc 1 798 29 is_stmt 0 view .LVU24 + 104 000a C0F8A432 str r3, [r0, #676] + 799:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 105 .loc 1 799 5 is_stmt 1 view .LVU25 + 799:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 106 .loc 1 799 11 is_stmt 0 view .LVU26 + 107 000e FFF7FEFF bl USBD_CtlSendStatus + 108 .LVL10: + 801:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 109 .loc 1 801 1 view .LVU27 + 110 0012 F9E7 b .L4 + 111 .cfi_endproc + 112 .LFE341: + 114 .section .text.USBD_ParseSetupRequest,"ax",%progbits + 115 .align 1 + 116 .global USBD_ParseSetupRequest + 117 .syntax unified + 118 .thumb + 119 .thumb_func + 121 USBD_ParseSetupRequest: + 122 .LVL11: + 123 .LFB343: + 840:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuff = pdata; + 124 .loc 1 840 1 is_stmt 1 view -0 + 125 .cfi_startproc + 126 @ args = 0, pretend = 0, frame = 0 + 127 @ frame_needed = 0, uses_anonymous_args = 0 + 128 @ link register save eliminated. + 841:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 129 .loc 1 841 3 view .LVU29 + 843:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 130 .loc 1 843 3 view .LVU30 + 843:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 131 .loc 1 843 20 is_stmt 0 view .LVU31 + 132 0000 0B78 ldrb r3, [r1] @ zero_extendqisi2 + 843:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 133 .loc 1 843 18 view .LVU32 + 134 0002 0370 strb r3, [r0] + 845:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->bRequest = *(uint8_t *)(pbuff); + ARM GAS /tmp/ccQ58aJU.s page 20 + + + 135 .loc 1 845 3 is_stmt 1 view .LVU33 + 136 .LVL12: + 846:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 137 .loc 1 846 3 view .LVU34 + 846:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 138 .loc 1 846 19 is_stmt 0 view .LVU35 + 139 0004 4B78 ldrb r3, [r1, #1] @ zero_extendqisi2 + 846:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 140 .loc 1 846 17 view .LVU36 + 141 0006 4370 strb r3, [r0, #1] + 848:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->wValue = SWAPBYTE(pbuff); + 142 .loc 1 848 3 is_stmt 1 view .LVU37 + 143 .LVL13: + 849:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 144 .loc 1 849 3 view .LVU38 + 145 .LBB8: + 146 .LBI8: + 147 .file 2 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 1:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** + 2:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** ****************************************************************************** + 3:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @file usbd_def.h + 4:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @author MCD Application Team + 5:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @brief General defines for the usb device library + 6:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** ****************************************************************************** + 7:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @attention + 8:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * + 9:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** *

© Copyright (c) 2015 STMicroelectronics. + 10:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * All rights reserved.

+ 11:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * + 12:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * This software component is licensed by ST under Ultimate Liberty license + 13:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * SLA0044, the "License"; You may not use this file except in compliance with + 14:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * the License. You may obtain a copy of the License at: + 15:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * www.st.com/SLA0044 + 16:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * + 17:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** ****************************************************************************** + 18:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 19:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 20:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Define to prevent recursive inclusion -------------------------------------*/ + 21:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef __USBD_DEF_H + 22:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define __USBD_DEF_H + 23:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 24:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifdef __cplusplus + 25:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** extern "C" { + 26:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif + 27:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 28:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Includes ------------------------------------------------------------------*/ + 29:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #include "usbd_conf.h" + 30:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 31:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** @addtogroup STM32_USBD_DEVICE_LIBRARY + 32:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @{ + 33:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 34:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 35:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** @defgroup USB_DEF + 36:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @brief general defines for the usb device library file + 37:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @{ + 38:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 39:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + ARM GAS /tmp/ccQ58aJU.s page 21 + + + 40:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** @defgroup USB_DEF_Exported_Defines + 41:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @{ + 42:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 43:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 44:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef NULL + 45:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define NULL 0U + 46:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* NULL */ + 47:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 48:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_MAX_NUM_INTERFACES + 49:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_MAX_NUM_INTERFACES 1U + 50:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* USBD_MAX_NUM_CONFIGURATION */ + 51:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 52:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_MAX_NUM_CONFIGURATION + 53:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_MAX_NUM_CONFIGURATION 1U + 54:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* USBD_MAX_NUM_CONFIGURATION */ + 55:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 56:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_LPM_ENABLED + 57:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_LPM_ENABLED 0U + 58:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* USBD_LPM_ENABLED */ + 59:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 60:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_SELF_POWERED + 61:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_SELF_POWERED 1U + 62:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /*USBD_SELF_POWERED */ + 63:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 64:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_MAX_POWER + 65:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_MAX_POWER 0x32U /* 100 mA */ + 66:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* USBD_MAX_POWER */ + 67:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 68:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_SUPPORT_USER_STRING_DESC + 69:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_SUPPORT_USER_STRING_DESC 0U + 70:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* USBD_SUPPORT_USER_STRING_DESC */ + 71:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 72:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #ifndef USBD_CLASS_USER_STRING_DESC + 73:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_CLASS_USER_STRING_DESC 0U + 74:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif /* USBD_CLASS_USER_STRING_DESC */ + 75:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 76:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_DEV_QUALIFIER_DESC 0x0AU + 77:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_DEV_DESC 0x12U + 78:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_CFG_DESC 0x09U + 79:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_IF_DESC 0x09U + 80:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_EP_DESC 0x07U + 81:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_OTG_DESC 0x03U + 82:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_LANGID_STR_DESC 0x04U + 83:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_LEN_OTHER_SPEED_DESC_SIZ 0x09U + 84:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 85:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_IDX_LANGID_STR 0x00U + 86:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_IDX_MFC_STR 0x01U + 87:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_IDX_PRODUCT_STR 0x02U + 88:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_IDX_SERIAL_STR 0x03U + 89:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_IDX_CONFIG_STR 0x04U + 90:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_IDX_INTERFACE_STR 0x05U + 91:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 92:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_TYPE_STANDARD 0x00U + 93:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_TYPE_CLASS 0x20U + 94:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_TYPE_VENDOR 0x40U + 95:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_TYPE_MASK 0x60U + 96:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + ARM GAS /tmp/ccQ58aJU.s page 22 + + + 97:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_RECIPIENT_DEVICE 0x00U + 98:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_RECIPIENT_INTERFACE 0x01U + 99:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_RECIPIENT_ENDPOINT 0x02U + 100:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_RECIPIENT_MASK 0x03U + 101:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_GET_STATUS 0x00U + 103:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_CLEAR_FEATURE 0x01U + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_SET_FEATURE 0x03U + 105:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_SET_ADDRESS 0x05U + 106:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_GET_DESCRIPTOR 0x06U + 107:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_SET_DESCRIPTOR 0x07U + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_GET_CONFIGURATION 0x08U + 109:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_SET_CONFIGURATION 0x09U + 110:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_GET_INTERFACE 0x0AU + 111:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_SET_INTERFACE 0x0BU + 112:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_REQ_SYNCH_FRAME 0x0CU + 113:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 114:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_DEVICE 0x01U + 115:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_CONFIGURATION 0x02U + 116:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_STRING 0x03U + 117:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_INTERFACE 0x04U + 118:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_ENDPOINT 0x05U + 119:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_DEVICE_QUALIFIER 0x06U + 120:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION 0x07U + 121:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_IAD 0x0BU + 122:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DESC_TYPE_BOS 0x0FU + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 124:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_CONFIG_REMOTE_WAKEUP 0x02U + 125:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_CONFIG_SELF_POWERED 0x01U + 126:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 127:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_FEATURE_EP_HALT 0x00U + 128:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_FEATURE_REMOTE_WAKEUP 0x01U + 129:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_FEATURE_TEST_MODE 0x02U + 130:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 131:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_DEVICE_CAPABITY_TYPE 0x10U + 132:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 133:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_CONF_DESC_SIZE 0x09U + 134:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_IF_DESC_SIZE 0x09U + 135:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_EP_DESC_SIZE 0x07U + 136:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_IAD_DESC_SIZE 0x08U + 137:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 138:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_HS_MAX_PACKET_SIZE 512U + 139:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_FS_MAX_PACKET_SIZE 64U + 140:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USB_MAX_EP0_SIZE 64U + 141:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 142:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Device Status */ + 143:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_STATE_DEFAULT 0x01U + 144:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_STATE_ADDRESSED 0x02U + 145:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_STATE_CONFIGURED 0x03U + 146:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_STATE_SUSPENDED 0x04U + 147:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 148:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 149:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* EP0 State */ + 150:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_IDLE 0x00U + 151:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_SETUP 0x01U + 152:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_DATA_IN 0x02U + 153:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_DATA_OUT 0x03U + ARM GAS /tmp/ccQ58aJU.s page 23 + + + 154:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_STATUS_IN 0x04U + 155:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_STATUS_OUT 0x05U + 156:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP0_STALL 0x06U + 157:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 158:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP_TYPE_CTRL 0x00U + 159:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP_TYPE_ISOC 0x01U + 160:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP_TYPE_BULK 0x02U + 161:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #define USBD_EP_TYPE_INTR 0x03U + 162:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 163:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** + 164:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @} + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 166:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 168:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** @defgroup USBD_DEF_Exported_TypesDefinitions + 169:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @{ + 170:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 171:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 172:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct usb_setup_req + 173:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 174:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bmRequest; + 175:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bRequest; + 176:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t wValue; + 177:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t wIndex; + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t wLength; + 179:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_SetupReqTypedef; + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 181:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 183:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bLength; + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bDescriptorType; + 185:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t wTotalLength; + 186:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bNumInterfaces; + 187:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bConfigurationValue; + 188:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t iConfiguration; + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bmAttributes; + 190:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bMaxPower; + 191:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_ConfigDescTypedef; + 192:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 193:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 195:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bLength; + 196:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bDescriptorType; + 197:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t wTotalLength; + 198:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bNumDeviceCaps; + 199:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_BosDescTypedef; + 200:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 201:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct + 202:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 203:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bLength; + 204:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bDescriptorType; + 205:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bEndpointAddress; + 206:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bmAttributes; + 207:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t wMaxPacketSize; + 208:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t bInterval; + 209:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_EpDescTypedef; + 210:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + ARM GAS /tmp/ccQ58aJU.s page 24 + + + 211:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** struct _USBD_HandleTypeDef; + 212:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 213:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct _Device_cb + 214:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 215:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*Init)(struct _USBD_HandleTypeDef *pdev, uint8_t cfgidx); + 216:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*DeInit)(struct _USBD_HandleTypeDef *pdev, uint8_t cfgidx); + 217:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Control Endpoints*/ + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*Setup)(struct _USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + 219:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*EP0_TxSent)(struct _USBD_HandleTypeDef *pdev); + 220:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*EP0_RxReady)(struct _USBD_HandleTypeDef *pdev); + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Class Specific Endpoints*/ + 222:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*DataIn)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + 223:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*DataOut)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + 224:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*SOF)(struct _USBD_HandleTypeDef *pdev); + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*IsoINIncomplete)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + 226:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t (*IsoOUTIncomplete)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + 227:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 228:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetHSConfigDescriptor)(uint16_t *length); + 229:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetFSConfigDescriptor)(uint16_t *length); + 230:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetOtherSpeedConfigDescriptor)(uint16_t *length); + 231:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetDeviceQualifierDescriptor)(uint16_t *length); + 232:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #if (USBD_SUPPORT_USER_STRING_DESC == 1U) + 233:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetUsrStrDescriptor)(struct _USBD_HandleTypeDef *pdev, uint8_t index, uint16_t *leng + 234:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif + 235:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 236:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_ClassTypeDef; + 237:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 238:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Following USB Device Speed */ + 239:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef enum + 240:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 241:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_SPEED_HIGH = 0U, + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_SPEED_FULL = 1U, + 243:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_SPEED_LOW = 2U, + 244:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_SpeedTypeDef; + 245:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 246:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* Following USB Device status */ + 247:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef enum + 248:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_OK = 0U, + 250:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_BUSY, + 251:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_EMEM, + 252:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_FAIL, + 253:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_StatusTypeDef; + 254:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 255:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* USB Device descriptors structure */ + 256:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct + 257:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 258:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetDeviceDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 259:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetLangIDStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 260:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetManufacturerStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 261:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetProductStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 262:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetSerialStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 263:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetConfigurationStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 264:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetInterfaceStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 265:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #if (USBD_CLASS_USER_STRING_DESC == 1) + 266:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetUserStrDescriptor)(USBD_SpeedTypeDef speed, uint8_t idx, uint16_t *length); + 267:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif + ARM GAS /tmp/ccQ58aJU.s page 25 + + + 268:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #if ((USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1)) + 269:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *(*GetBOSDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + 270:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** #endif + 271:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_DescriptorsTypeDef; + 272:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 273:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* USB Device handle structure */ + 274:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct + 275:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t status; + 277:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t total_length; + 278:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t rem_length; + 279:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t maxpacket; + 280:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t is_used; + 281:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t bInterval; + 282:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_EndpointTypeDef; + 283:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 284:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /* USB Device handle structure */ + 285:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** typedef struct _USBD_HandleTypeDef + 286:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 287:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t id; + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t dev_config; + 289:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t dev_default_config; + 290:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t dev_config_status; + 291:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_SpeedTypeDef dev_speed; + 292:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_EndpointTypeDef ep_in[16]; + 293:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_EndpointTypeDef ep_out[16]; + 294:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** __IO uint32_t ep0_state; + 295:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t ep0_data_len; + 296:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** __IO uint8_t dev_state; + 297:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** __IO uint8_t dev_old_state; + 298:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t dev_address; + 299:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t dev_connection_status; + 300:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t dev_test_mode; + 301:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint32_t dev_remote_wakeup; + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t ConfIdx; + 303:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 304:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_SetupReqTypedef request; + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_DescriptorsTypeDef *pDesc; + 306:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** USBD_ClassTypeDef *pClass; + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** void *pClassData; + 308:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** void *pUserData; + 309:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** void *pData; + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** void *pBosDesc; + 311:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** void *pConfDesc; + 312:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** } USBD_HandleTypeDef; + 313:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 314:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** + 315:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @} + 316:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 317:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 319:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 320:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** /** @defgroup USBD_DEF_Exported_Macros + 321:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** * @{ + 322:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** */ + 323:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** __STATIC_INLINE uint16_t SWAPBYTE(uint8_t *addr) + 148 .loc 2 323 26 view .LVU39 + ARM GAS /tmp/ccQ58aJU.s page 26 + + + 149 .LBB9: + 324:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 325:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint16_t _SwapVal, _Byte1, _Byte2; + 150 .loc 2 325 3 view .LVU40 + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *_pbuff = addr; + 151 .loc 2 326 3 view .LVU41 + 327:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _Byte1 = *(uint8_t *)_pbuff; + 152 .loc 2 328 3 view .LVU42 + 153 .loc 2 328 12 is_stmt 0 view .LVU43 + 154 0008 8B78 ldrb r3, [r1, #2] @ zero_extendqisi2 + 155 .LVL14: + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _pbuff++; + 156 .loc 2 329 3 is_stmt 1 view .LVU44 + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _Byte2 = *(uint8_t *)_pbuff; + 157 .loc 2 330 3 view .LVU45 + 158 .loc 2 330 12 is_stmt 0 view .LVU46 + 159 000a CA78 ldrb r2, [r1, #3] @ zero_extendqisi2 + 160 .LVL15: + 331:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _SwapVal = (_Byte2 << 8) | _Byte1; + 161 .loc 2 332 3 is_stmt 1 view .LVU47 + 162 .loc 2 332 12 is_stmt 0 view .LVU48 + 163 000c 43EA0223 orr r3, r3, r2, lsl #8 + 164 .LVL16: + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 334:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** return _SwapVal; + 165 .loc 2 334 3 is_stmt 1 view .LVU49 + 166 .loc 2 334 3 is_stmt 0 view .LVU50 + 167 .LBE9: + 168 .LBE8: + 849:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 169 .loc 1 849 15 view .LVU51 + 170 0010 4380 strh r3, [r0, #2] @ movhi + 171 .LVL17: + 851:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 172 .loc 1 851 3 is_stmt 1 view .LVU52 + 852:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->wIndex = SWAPBYTE(pbuff); + 173 .loc 1 852 3 view .LVU53 + 853:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 174 .loc 1 853 3 view .LVU54 + 175 .LBB10: + 176 .LBI10: + 323:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 177 .loc 2 323 26 view .LVU55 + 178 .LBB11: + 325:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *_pbuff = addr; + 179 .loc 2 325 3 view .LVU56 + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 180 .loc 2 326 3 view .LVU57 + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _pbuff++; + 181 .loc 2 328 3 view .LVU58 + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _pbuff++; + 182 .loc 2 328 12 is_stmt 0 view .LVU59 + 183 0012 0B79 ldrb r3, [r1, #4] @ zero_extendqisi2 + 184 .LVL18: + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _Byte2 = *(uint8_t *)_pbuff; + ARM GAS /tmp/ccQ58aJU.s page 27 + + + 185 .loc 2 329 3 is_stmt 1 view .LVU60 + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 186 .loc 2 330 3 view .LVU61 + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 187 .loc 2 330 12 is_stmt 0 view .LVU62 + 188 0014 4A79 ldrb r2, [r1, #5] @ zero_extendqisi2 + 189 .LVL19: + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 190 .loc 2 332 3 is_stmt 1 view .LVU63 + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 191 .loc 2 332 12 is_stmt 0 view .LVU64 + 192 0016 43EA0223 orr r3, r3, r2, lsl #8 + 193 .LVL20: + 194 .loc 2 334 3 is_stmt 1 view .LVU65 + 195 .loc 2 334 3 is_stmt 0 view .LVU66 + 196 .LBE11: + 197 .LBE10: + 853:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 198 .loc 1 853 15 view .LVU67 + 199 001a 8380 strh r3, [r0, #4] @ movhi + 200 .LVL21: + 855:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuff++; + 201 .loc 1 855 3 is_stmt 1 view .LVU68 + 856:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** req->wLength = SWAPBYTE(pbuff); + 202 .loc 1 856 3 view .LVU69 + 857:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 203 .loc 1 857 3 view .LVU70 + 204 .LBB12: + 205 .LBI12: + 323:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** { + 206 .loc 2 323 26 view .LVU71 + 207 .LBB13: + 325:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** uint8_t *_pbuff = addr; + 208 .loc 2 325 3 view .LVU72 + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 209 .loc 2 326 3 view .LVU73 + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _pbuff++; + 210 .loc 2 328 3 view .LVU74 + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _pbuff++; + 211 .loc 2 328 12 is_stmt 0 view .LVU75 + 212 001c 8B79 ldrb r3, [r1, #6] @ zero_extendqisi2 + 213 .LVL22: + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** _Byte2 = *(uint8_t *)_pbuff; + 214 .loc 2 329 3 is_stmt 1 view .LVU76 + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 215 .loc 2 330 3 view .LVU77 + 330:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 216 .loc 2 330 12 is_stmt 0 view .LVU78 + 217 001e CA79 ldrb r2, [r1, #7] @ zero_extendqisi2 + 218 .LVL23: + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 219 .loc 2 332 3 is_stmt 1 view .LVU79 + 332:Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h **** + 220 .loc 2 332 12 is_stmt 0 view .LVU80 + 221 0020 43EA0223 orr r3, r3, r2, lsl #8 + 222 .LVL24: + 223 .loc 2 334 3 is_stmt 1 view .LVU81 + ARM GAS /tmp/ccQ58aJU.s page 28 + + + 224 .loc 2 334 3 is_stmt 0 view .LVU82 + 225 .LBE13: + 226 .LBE12: + 857:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 227 .loc 1 857 16 view .LVU83 + 228 0024 C380 strh r3, [r0, #6] @ movhi + 229 .LVL25: + 858:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 230 .loc 1 858 1 view .LVU84 + 231 0026 7047 bx lr + 232 .cfi_endproc + 233 .LFE343: + 235 .section .text.USBD_CtlError,"ax",%progbits + 236 .align 1 + 237 .global USBD_CtlError + 238 .syntax unified + 239 .thumb + 240 .thumb_func + 242 USBD_CtlError: + 243 .LVL26: + 244 .LFB344: + 869:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** UNUSED(req); + 245 .loc 1 869 1 is_stmt 1 view -0 + 246 .cfi_startproc + 247 @ args = 0, pretend = 0, frame = 0 + 248 @ frame_needed = 0, uses_anonymous_args = 0 + 869:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** UNUSED(req); + 249 .loc 1 869 1 is_stmt 0 view .LVU86 + 250 0000 10B5 push {r4, lr} + 251 .LCFI1: + 252 .cfi_def_cfa_offset 8 + 253 .cfi_offset 4, -8 + 254 .cfi_offset 14, -4 + 255 0002 0446 mov r4, r0 + 870:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 256 .loc 1 870 3 is_stmt 1 view .LVU87 + 872:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0U); + 257 .loc 1 872 3 view .LVU88 + 872:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0U); + 258 .loc 1 872 9 is_stmt 0 view .LVU89 + 259 0004 8021 movs r1, #128 + 260 .LVL27: + 872:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0U); + 261 .loc 1 872 9 view .LVU90 + 262 0006 FFF7FEFF bl USBD_LL_StallEP + 263 .LVL28: + 873:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 264 .loc 1 873 3 is_stmt 1 view .LVU91 + 873:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 265 .loc 1 873 9 is_stmt 0 view .LVU92 + 266 000a 0021 movs r1, #0 + 267 000c 2046 mov r0, r4 + 268 000e FFF7FEFF bl USBD_LL_StallEP + 269 .LVL29: + 874:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 270 .loc 1 874 1 view .LVU93 + 271 0012 10BD pop {r4, pc} + ARM GAS /tmp/ccQ58aJU.s page 29 + + + 874:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 272 .loc 1 874 1 view .LVU94 + 273 .cfi_endproc + 274 .LFE344: + 276 .section .text.USBD_GetDescriptor,"ax",%progbits + 277 .align 1 + 278 .syntax unified + 279 .thumb + 280 .thumb_func + 282 USBD_GetDescriptor: + 283 .LVL30: + 284 .LFB336: + 381:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint16_t len = 0U; + 285 .loc 1 381 1 is_stmt 1 view -0 + 286 .cfi_startproc + 287 @ args = 0, pretend = 0, frame = 8 + 288 @ frame_needed = 0, uses_anonymous_args = 0 + 381:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint16_t len = 0U; + 289 .loc 1 381 1 is_stmt 0 view .LVU96 + 290 0000 30B5 push {r4, r5, lr} + 291 .LCFI2: + 292 .cfi_def_cfa_offset 12 + 293 .cfi_offset 4, -12 + 294 .cfi_offset 5, -8 + 295 .cfi_offset 14, -4 + 296 0002 83B0 sub sp, sp, #12 + 297 .LCFI3: + 298 .cfi_def_cfa_offset 24 + 299 0004 0446 mov r4, r0 + 300 0006 0D46 mov r5, r1 + 382:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuf = NULL; + 301 .loc 1 382 3 is_stmt 1 view .LVU97 + 382:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pbuf = NULL; + 302 .loc 1 382 12 is_stmt 0 view .LVU98 + 303 0008 0023 movs r3, #0 + 304 000a ADF80630 strh r3, [sp, #6] @ movhi + 383:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t err = 0U; + 305 .loc 1 383 3 is_stmt 1 view .LVU99 + 306 .LVL31: + 384:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 307 .loc 1 384 3 view .LVU100 + 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 308 .loc 1 386 3 view .LVU101 + 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 309 .loc 1 386 14 is_stmt 0 view .LVU102 + 310 000e 4A88 ldrh r2, [r1, #2] + 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 311 .loc 1 386 23 view .LVU103 + 312 0010 130A lsrs r3, r2, #8 + 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 313 .loc 1 386 3 view .LVU104 + 314 0012 013B subs r3, r3, #1 + 315 0014 0E2B cmp r3, #14 + 316 0016 00F2BC80 bhi .L12 + 317 001a DFE803F0 tbb [pc, r3] + 318 .LVL32: + 319 .L14: + ARM GAS /tmp/ccQ58aJU.s page 30 + + + 320 001e 15 .byte (.L19-.L14)/2 + 321 001f 30 .byte (.L18-.L14)/2 + 322 0020 44 .byte (.L17-.L14)/2 + 323 0021 BA .byte (.L12-.L14)/2 + 324 0022 BA .byte (.L12-.L14)/2 + 325 0023 9E .byte (.L16-.L14)/2 + 326 0024 AB .byte (.L15-.L14)/2 + 327 0025 BA .byte (.L12-.L14)/2 + 328 0026 BA .byte (.L12-.L14)/2 + 329 0027 BA .byte (.L12-.L14)/2 + 330 0028 BA .byte (.L12-.L14)/2 + 331 0029 BA .byte (.L12-.L14)/2 + 332 002a BA .byte (.L12-.L14)/2 + 333 002b BA .byte (.L12-.L14)/2 + 334 002c 08 .byte (.L13-.L14)/2 + 335 002d 00 .p2align 1 + 336 .L13: + 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 337 .loc 1 390 7 is_stmt 1 view .LVU105 + 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 338 .loc 1 390 15 is_stmt 0 view .LVU106 + 339 002e D0F8B432 ldr r3, [r0, #692] + 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 340 .loc 1 390 22 view .LVU107 + 341 0032 DB69 ldr r3, [r3, #28] + 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 342 .loc 1 390 10 view .LVU108 + 343 0034 23B1 cbz r3, .L20 + 392:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 344 .loc 1 392 9 is_stmt 1 view .LVU109 + 392:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 345 .loc 1 392 16 is_stmt 0 view .LVU110 + 346 0036 0DF10601 add r1, sp, #6 + 347 003a 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 348 .LVL33: + 392:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 349 .loc 1 392 16 view .LVU111 + 350 003c 9847 blx r3 + 351 .LVL34: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 352 .loc 1 557 3 is_stmt 1 view .LVU112 + 353 003e 0AE0 b .L21 + 354 .LVL35: + 355 .L20: + 396:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 356 .loc 1 396 9 view .LVU113 + 357 0040 2946 mov r1, r5 + 358 0042 FFF7FEFF bl USBD_CtlError + 359 .LVL36: + 397:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 360 .loc 1 397 9 view .LVU114 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 361 .loc 1 557 3 view .LVU115 + 362 0046 18E0 b .L11 + 363 .LVL37: + 364 .L19: + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + ARM GAS /tmp/ccQ58aJU.s page 31 + + + 365 .loc 1 402 7 view .LVU116 + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 366 .loc 1 402 18 is_stmt 0 view .LVU117 + 367 0048 D0F8B432 ldr r3, [r0, #692] + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 368 .loc 1 402 25 view .LVU118 + 369 004c 1B68 ldr r3, [r3] + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 370 .loc 1 402 14 view .LVU119 + 371 004e 0DF10601 add r1, sp, #6 + 372 0052 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 373 .LVL38: + 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 374 .loc 1 402 14 view .LVU120 + 375 0054 9847 blx r3 + 376 .LVL39: + 403:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 377 .loc 1 403 7 is_stmt 1 view .LVU121 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 378 .loc 1 557 3 view .LVU122 + 379 .L21: + 562:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 380 .loc 1 562 3 view .LVU123 + 562:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 381 .loc 1 562 10 is_stmt 0 view .LVU124 + 382 0056 EA88 ldrh r2, [r5, #6] + 562:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 383 .loc 1 562 6 view .LVU125 + 384 0058 002A cmp r2, #0 + 385 005a 00F0A380 beq .L41 + 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 386 .loc 1 564 5 is_stmt 1 view .LVU126 + 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 387 .loc 1 564 13 is_stmt 0 view .LVU127 + 388 005e BDF80630 ldrh r3, [sp, #6] + 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 389 .loc 1 564 8 view .LVU128 + 390 0062 002B cmp r3, #0 + 391 0064 00F09980 beq .L42 + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, pbuf, len); + 392 .loc 1 566 7 is_stmt 1 view .LVU129 + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, pbuf, len); + 393 .loc 1 566 13 is_stmt 0 view .LVU130 + 394 0068 9A42 cmp r2, r3 + 395 006a 28BF it cs + 396 006c 1A46 movcs r2, r3 + 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, pbuf, len); + 397 .loc 1 566 11 view .LVU131 + 398 006e ADF80620 strh r2, [sp, #6] @ movhi + 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 399 .loc 1 567 7 is_stmt 1 view .LVU132 + 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 400 .loc 1 567 13 is_stmt 0 view .LVU133 + 401 0072 0146 mov r1, r0 + 402 0074 2046 mov r0, r4 + 403 .LVL40: + 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + ARM GAS /tmp/ccQ58aJU.s page 32 + + + 404 .loc 1 567 13 view .LVU134 + 405 0076 FFF7FEFF bl USBD_CtlSendData + 406 .LVL41: + 407 .L11: + 578:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 408 .loc 1 578 1 view .LVU135 + 409 007a 03B0 add sp, sp, #12 + 410 .LCFI4: + 411 .cfi_remember_state + 412 .cfi_def_cfa_offset 12 + 413 @ sp needed + 414 007c 30BD pop {r4, r5, pc} + 415 .LVL42: + 416 .L18: + 417 .LCFI5: + 418 .cfi_restore_state + 406:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 419 .loc 1 406 7 is_stmt 1 view .LVU136 + 406:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 420 .loc 1 406 15 is_stmt 0 view .LVU137 + 421 007e 037C ldrb r3, [r0, #16] @ zero_extendqisi2 + 406:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 422 .loc 1 406 10 view .LVU138 + 423 0080 43B9 cbnz r3, .L23 + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 424 .loc 1 408 9 is_stmt 1 view .LVU139 + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 425 .loc 1 408 20 is_stmt 0 view .LVU140 + 426 0082 D0F8B832 ldr r3, [r0, #696] + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 427 .loc 1 408 28 view .LVU141 + 428 0086 9B6A ldr r3, [r3, #40] + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 429 .loc 1 408 16 view .LVU142 + 430 0088 0DF10600 add r0, sp, #6 + 431 .LVL43: + 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 432 .loc 1 408 16 view .LVU143 + 433 008c 9847 blx r3 + 434 .LVL44: + 409:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 435 .loc 1 409 9 is_stmt 1 view .LVU144 + 409:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 436 .loc 1 409 17 is_stmt 0 view .LVU145 + 437 008e 0223 movs r3, #2 + 438 0090 4370 strb r3, [r0, #1] + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 439 .loc 1 557 3 is_stmt 1 view .LVU146 + 440 0092 E0E7 b .L21 + 441 .LVL45: + 442 .L23: + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 443 .loc 1 413 9 view .LVU147 + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 444 .loc 1 413 20 is_stmt 0 view .LVU148 + 445 0094 D0F8B832 ldr r3, [r0, #696] + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + ARM GAS /tmp/ccQ58aJU.s page 33 + + + 446 .loc 1 413 28 view .LVU149 + 447 0098 DB6A ldr r3, [r3, #44] + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 448 .loc 1 413 16 view .LVU150 + 449 009a 0DF10600 add r0, sp, #6 + 450 .LVL46: + 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + 451 .loc 1 413 16 view .LVU151 + 452 009e 9847 blx r3 + 453 .LVL47: + 414:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 454 .loc 1 414 9 is_stmt 1 view .LVU152 + 414:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 455 .loc 1 414 17 is_stmt 0 view .LVU153 + 456 00a0 0223 movs r3, #2 + 457 00a2 4370 strb r3, [r0, #1] + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 458 .loc 1 557 3 is_stmt 1 view .LVU154 + 459 00a4 D7E7 b .L21 + 460 .LVL48: + 461 .L17: + 419:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 462 .loc 1 419 7 view .LVU155 + 419:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 463 .loc 1 419 15 is_stmt 0 view .LVU156 + 464 00a6 D2B2 uxtb r2, r2 + 465 00a8 052A cmp r2, #5 + 466 00aa 52D8 bhi .L24 + 467 00ac DFE802F0 tbb [pc, r2] + 468 .L26: + 469 00b0 03 .byte (.L31-.L26)/2 + 470 00b1 10 .byte (.L30-.L26)/2 + 471 00b2 1D .byte (.L29-.L26)/2 + 472 00b3 2A .byte (.L28-.L26)/2 + 473 00b4 37 .byte (.L27-.L26)/2 + 474 00b5 44 .byte (.L25-.L26)/2 + 475 .p2align 1 + 476 .L31: + 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 477 .loc 1 422 11 is_stmt 1 view .LVU157 + 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 478 .loc 1 422 19 is_stmt 0 view .LVU158 + 479 00b6 D0F8B432 ldr r3, [r0, #692] + 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 480 .loc 1 422 26 view .LVU159 + 481 00ba 5B68 ldr r3, [r3, #4] + 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 482 .loc 1 422 14 view .LVU160 + 483 00bc 23B1 cbz r3, .L32 + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 484 .loc 1 424 13 is_stmt 1 view .LVU161 + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 485 .loc 1 424 20 is_stmt 0 view .LVU162 + 486 00be 0DF10601 add r1, sp, #6 + 487 00c2 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 488 .LVL49: + 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + ARM GAS /tmp/ccQ58aJU.s page 34 + + + 489 .loc 1 424 20 view .LVU163 + 490 00c4 9847 blx r3 + 491 .LVL50: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 492 .loc 1 557 3 is_stmt 1 view .LVU164 + 493 00c6 C6E7 b .L21 + 494 .LVL51: + 495 .L32: + 428:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 496 .loc 1 428 13 view .LVU165 + 497 00c8 2946 mov r1, r5 + 498 00ca FFF7FEFF bl USBD_CtlError + 499 .LVL52: + 429:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 500 .loc 1 429 13 view .LVU166 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 501 .loc 1 557 3 view .LVU167 + 502 00ce D4E7 b .L11 + 503 .LVL53: + 504 .L30: + 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 505 .loc 1 434 11 view .LVU168 + 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 506 .loc 1 434 19 is_stmt 0 view .LVU169 + 507 00d0 D0F8B432 ldr r3, [r0, #692] + 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 508 .loc 1 434 26 view .LVU170 + 509 00d4 9B68 ldr r3, [r3, #8] + 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 510 .loc 1 434 14 view .LVU171 + 511 00d6 23B1 cbz r3, .L33 + 436:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 512 .loc 1 436 13 is_stmt 1 view .LVU172 + 436:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 513 .loc 1 436 20 is_stmt 0 view .LVU173 + 514 00d8 0DF10601 add r1, sp, #6 + 515 00dc 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 516 .LVL54: + 436:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 517 .loc 1 436 20 view .LVU174 + 518 00de 9847 blx r3 + 519 .LVL55: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 520 .loc 1 557 3 is_stmt 1 view .LVU175 + 521 00e0 B9E7 b .L21 + 522 .LVL56: + 523 .L33: + 440:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 524 .loc 1 440 13 view .LVU176 + 525 00e2 2946 mov r1, r5 + 526 00e4 FFF7FEFF bl USBD_CtlError + 527 .LVL57: + 441:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 528 .loc 1 441 13 view .LVU177 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 529 .loc 1 557 3 view .LVU178 + 530 00e8 C7E7 b .L11 + ARM GAS /tmp/ccQ58aJU.s page 35 + + + 531 .LVL58: + 532 .L29: + 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 533 .loc 1 446 11 view .LVU179 + 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 534 .loc 1 446 19 is_stmt 0 view .LVU180 + 535 00ea D0F8B432 ldr r3, [r0, #692] + 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 536 .loc 1 446 26 view .LVU181 + 537 00ee DB68 ldr r3, [r3, #12] + 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 538 .loc 1 446 14 view .LVU182 + 539 00f0 23B1 cbz r3, .L34 + 448:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 540 .loc 1 448 13 is_stmt 1 view .LVU183 + 448:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 541 .loc 1 448 20 is_stmt 0 view .LVU184 + 542 00f2 0DF10601 add r1, sp, #6 + 543 00f6 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 544 .LVL59: + 448:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 545 .loc 1 448 20 view .LVU185 + 546 00f8 9847 blx r3 + 547 .LVL60: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 548 .loc 1 557 3 is_stmt 1 view .LVU186 + 549 00fa ACE7 b .L21 + 550 .LVL61: + 551 .L34: + 452:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 552 .loc 1 452 13 view .LVU187 + 553 00fc 2946 mov r1, r5 + 554 00fe FFF7FEFF bl USBD_CtlError + 555 .LVL62: + 453:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 556 .loc 1 453 13 view .LVU188 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 557 .loc 1 557 3 view .LVU189 + 558 0102 BAE7 b .L11 + 559 .LVL63: + 560 .L28: + 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 561 .loc 1 458 11 view .LVU190 + 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 562 .loc 1 458 19 is_stmt 0 view .LVU191 + 563 0104 D0F8B432 ldr r3, [r0, #692] + 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 564 .loc 1 458 26 view .LVU192 + 565 0108 1B69 ldr r3, [r3, #16] + 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 566 .loc 1 458 14 view .LVU193 + 567 010a 23B1 cbz r3, .L35 + 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 568 .loc 1 460 13 is_stmt 1 view .LVU194 + 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 569 .loc 1 460 20 is_stmt 0 view .LVU195 + 570 010c 0DF10601 add r1, sp, #6 + ARM GAS /tmp/ccQ58aJU.s page 36 + + + 571 0110 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 572 .LVL64: + 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 573 .loc 1 460 20 view .LVU196 + 574 0112 9847 blx r3 + 575 .LVL65: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 576 .loc 1 557 3 is_stmt 1 view .LVU197 + 577 0114 9FE7 b .L21 + 578 .LVL66: + 579 .L35: + 464:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 580 .loc 1 464 13 view .LVU198 + 581 0116 2946 mov r1, r5 + 582 0118 FFF7FEFF bl USBD_CtlError + 583 .LVL67: + 465:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 584 .loc 1 465 13 view .LVU199 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 585 .loc 1 557 3 view .LVU200 + 586 011c ADE7 b .L11 + 587 .LVL68: + 588 .L27: + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 589 .loc 1 470 11 view .LVU201 + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 590 .loc 1 470 19 is_stmt 0 view .LVU202 + 591 011e D0F8B432 ldr r3, [r0, #692] + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 592 .loc 1 470 26 view .LVU203 + 593 0122 5B69 ldr r3, [r3, #20] + 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 594 .loc 1 470 14 view .LVU204 + 595 0124 23B1 cbz r3, .L36 + 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 596 .loc 1 472 13 is_stmt 1 view .LVU205 + 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 597 .loc 1 472 20 is_stmt 0 view .LVU206 + 598 0126 0DF10601 add r1, sp, #6 + 599 012a 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 600 .LVL69: + 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 601 .loc 1 472 20 view .LVU207 + 602 012c 9847 blx r3 + 603 .LVL70: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 604 .loc 1 557 3 is_stmt 1 view .LVU208 + 605 012e 92E7 b .L21 + 606 .LVL71: + 607 .L36: + 476:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 608 .loc 1 476 13 view .LVU209 + 609 0130 2946 mov r1, r5 + 610 0132 FFF7FEFF bl USBD_CtlError + 611 .LVL72: + 477:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 612 .loc 1 477 13 view .LVU210 + ARM GAS /tmp/ccQ58aJU.s page 37 + + + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 613 .loc 1 557 3 view .LVU211 + 614 0136 A0E7 b .L11 + 615 .LVL73: + 616 .L25: + 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 617 .loc 1 482 11 view .LVU212 + 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 618 .loc 1 482 19 is_stmt 0 view .LVU213 + 619 0138 D0F8B432 ldr r3, [r0, #692] + 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 620 .loc 1 482 26 view .LVU214 + 621 013c 9B69 ldr r3, [r3, #24] + 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 622 .loc 1 482 14 view .LVU215 + 623 013e 23B1 cbz r3, .L37 + 484:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 624 .loc 1 484 13 is_stmt 1 view .LVU216 + 484:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 625 .loc 1 484 20 is_stmt 0 view .LVU217 + 626 0140 0DF10601 add r1, sp, #6 + 627 0144 007C ldrb r0, [r0, #16] @ zero_extendqisi2 + 628 .LVL74: + 484:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 629 .loc 1 484 20 view .LVU218 + 630 0146 9847 blx r3 + 631 .LVL75: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 632 .loc 1 557 3 is_stmt 1 view .LVU219 + 633 0148 85E7 b .L21 + 634 .LVL76: + 635 .L37: + 488:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 636 .loc 1 488 13 view .LVU220 + 637 014a 2946 mov r1, r5 + 638 014c FFF7FEFF bl USBD_CtlError + 639 .LVL77: + 489:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 640 .loc 1 489 13 view .LVU221 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 641 .loc 1 557 3 view .LVU222 + 642 0150 93E7 b .L11 + 643 .LVL78: + 644 .L24: + 519:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 645 .loc 1 519 11 view .LVU223 + 646 0152 2946 mov r1, r5 + 647 0154 FFF7FEFF bl USBD_CtlError + 648 .LVL79: + 520:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #endif + 649 .loc 1 520 11 view .LVU224 + 522:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 650 .loc 1 522 11 view .LVU225 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 651 .loc 1 557 3 view .LVU226 + 652 0158 8FE7 b .L11 + 653 .LVL80: + ARM GAS /tmp/ccQ58aJU.s page 38 + + + 654 .L16: + 527:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 655 .loc 1 527 7 view .LVU227 + 527:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 656 .loc 1 527 15 is_stmt 0 view .LVU228 + 657 015a 037C ldrb r3, [r0, #16] @ zero_extendqisi2 + 527:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 658 .loc 1 527 10 view .LVU229 + 659 015c 33B9 cbnz r3, .L38 + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 660 .loc 1 529 9 is_stmt 1 view .LVU230 + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 661 .loc 1 529 20 is_stmt 0 view .LVU231 + 662 015e D0F8B832 ldr r3, [r0, #696] + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 663 .loc 1 529 28 view .LVU232 + 664 0162 5B6B ldr r3, [r3, #52] + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 665 .loc 1 529 16 view .LVU233 + 666 0164 0DF10600 add r0, sp, #6 + 667 .LVL81: + 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 668 .loc 1 529 16 view .LVU234 + 669 0168 9847 blx r3 + 670 .LVL82: + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 671 .loc 1 557 3 is_stmt 1 view .LVU235 + 672 016a 74E7 b .L21 + 673 .LVL83: + 674 .L38: + 533:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 675 .loc 1 533 9 view .LVU236 + 676 016c 2946 mov r1, r5 + 677 016e FFF7FEFF bl USBD_CtlError + 678 .LVL84: + 534:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 679 .loc 1 534 9 view .LVU237 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 680 .loc 1 557 3 view .LVU238 + 681 0172 82E7 b .L11 + 682 .LVL85: + 683 .L15: + 539:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 684 .loc 1 539 7 view .LVU239 + 539:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 685 .loc 1 539 15 is_stmt 0 view .LVU240 + 686 0174 037C ldrb r3, [r0, #16] @ zero_extendqisi2 + 539:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 687 .loc 1 539 10 view .LVU241 + 688 0176 43B9 cbnz r3, .L39 + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + 689 .loc 1 541 9 is_stmt 1 view .LVU242 + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + 690 .loc 1 541 20 is_stmt 0 view .LVU243 + 691 0178 D0F8B832 ldr r3, [r0, #696] + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + 692 .loc 1 541 28 view .LVU244 + ARM GAS /tmp/ccQ58aJU.s page 39 + + + 693 017c 1B6B ldr r3, [r3, #48] + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + 694 .loc 1 541 16 view .LVU245 + 695 017e 0DF10600 add r0, sp, #6 + 696 .LVL86: + 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + 697 .loc 1 541 16 view .LVU246 + 698 0182 9847 blx r3 + 699 .LVL87: + 542:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 700 .loc 1 542 9 is_stmt 1 view .LVU247 + 542:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 701 .loc 1 542 17 is_stmt 0 view .LVU248 + 702 0184 0723 movs r3, #7 + 703 0186 4370 strb r3, [r0, #1] + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 704 .loc 1 557 3 is_stmt 1 view .LVU249 + 705 0188 65E7 b .L21 + 706 .LVL88: + 707 .L39: + 546:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 708 .loc 1 546 9 view .LVU250 + 709 018a 2946 mov r1, r5 + 710 018c FFF7FEFF bl USBD_CtlError + 711 .LVL89: + 547:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 712 .loc 1 547 9 view .LVU251 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 713 .loc 1 557 3 view .LVU252 + 714 0190 73E7 b .L11 + 715 .LVL90: + 716 .L12: + 552:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** err++; + 717 .loc 1 552 7 view .LVU253 + 718 0192 2946 mov r1, r5 + 719 0194 FFF7FEFF bl USBD_CtlError + 720 .LVL91: + 553:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 721 .loc 1 553 7 view .LVU254 + 554:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 722 .loc 1 554 7 view .LVU255 + 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 723 .loc 1 557 3 view .LVU256 + 559:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 724 .loc 1 559 5 view .LVU257 + 725 0198 6FE7 b .L11 + 726 .LVL92: + 727 .L42: + 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 728 .loc 1 571 7 view .LVU258 + 729 019a 2946 mov r1, r5 + 730 019c 2046 mov r0, r4 + 731 .LVL93: + 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 732 .loc 1 571 7 is_stmt 0 view .LVU259 + 733 019e FFF7FEFF bl USBD_CtlError + 734 .LVL94: + ARM GAS /tmp/ccQ58aJU.s page 40 + + + 735 01a2 6AE7 b .L11 + 736 .LVL95: + 737 .L41: + 576:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 738 .loc 1 576 5 is_stmt 1 view .LVU260 + 576:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 739 .loc 1 576 11 is_stmt 0 view .LVU261 + 740 01a4 2046 mov r0, r4 + 741 .LVL96: + 576:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 742 .loc 1 576 11 view .LVU262 + 743 01a6 FFF7FEFF bl USBD_CtlSendStatus + 744 .LVL97: + 745 01aa 66E7 b .L11 + 746 .cfi_endproc + 747 .LFE336: + 749 .section .text.USBD_SetAddress,"ax",%progbits + 750 .align 1 + 751 .syntax unified + 752 .thumb + 753 .thumb_func + 755 USBD_SetAddress: + 756 .LVL98: + 757 .LFB337: + 589:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t dev_addr; + 758 .loc 1 589 1 is_stmt 1 view -0 + 759 .cfi_startproc + 760 @ args = 0, pretend = 0, frame = 0 + 761 @ frame_needed = 0, uses_anonymous_args = 0 + 589:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t dev_addr; + 762 .loc 1 589 1 is_stmt 0 view .LVU264 + 763 0000 38B5 push {r3, r4, r5, lr} + 764 .LCFI6: + 765 .cfi_def_cfa_offset 16 + 766 .cfi_offset 3, -16 + 767 .cfi_offset 4, -12 + 768 .cfi_offset 5, -8 + 769 .cfi_offset 14, -4 + 770 0002 0446 mov r4, r0 + 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 771 .loc 1 590 3 is_stmt 1 view .LVU265 + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 772 .loc 1 592 3 view .LVU266 + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 773 .loc 1 592 11 is_stmt 0 view .LVU267 + 774 0004 8B88 ldrh r3, [r1, #4] + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 775 .loc 1 592 6 view .LVU268 + 776 0006 FBB9 cbnz r3, .L46 + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 777 .loc 1 592 34 discriminator 1 view .LVU269 + 778 0008 CB88 ldrh r3, [r1, #6] + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 779 .loc 1 592 27 discriminator 1 view .LVU270 + 780 000a EBB9 cbnz r3, .L46 + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 781 .loc 1 592 58 discriminator 2 view .LVU271 + ARM GAS /tmp/ccQ58aJU.s page 41 + + + 782 000c 4B88 ldrh r3, [r1, #2] + 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 783 .loc 1 592 51 discriminator 2 view .LVU272 + 784 000e 7F2B cmp r3, #127 + 785 0010 1AD8 bhi .L46 + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 786 .loc 1 594 5 is_stmt 1 view .LVU273 + 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 787 .loc 1 594 14 is_stmt 0 view .LVU274 + 788 0012 03F07F05 and r5, r3, #127 + 789 .LVL99: + 596:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 790 .loc 1 596 5 is_stmt 1 view .LVU275 + 596:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 791 .loc 1 596 13 is_stmt 0 view .LVU276 + 792 0016 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 793 001a DBB2 uxtb r3, r3 + 596:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 794 .loc 1 596 8 view .LVU277 + 795 001c 032B cmp r3, #3 + 796 001e 0CD0 beq .L51 + 602:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_SetUSBAddress(pdev, dev_addr); + 797 .loc 1 602 7 is_stmt 1 view .LVU278 + 602:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_SetUSBAddress(pdev, dev_addr); + 798 .loc 1 602 25 is_stmt 0 view .LVU279 + 799 0020 80F89E52 strb r5, [r0, #670] + 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 800 .loc 1 603 7 is_stmt 1 view .LVU280 + 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 801 .loc 1 603 13 is_stmt 0 view .LVU281 + 802 0024 2946 mov r1, r5 + 803 .LVL100: + 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 804 .loc 1 603 13 view .LVU282 + 805 0026 FFF7FEFF bl USBD_LL_SetUSBAddress + 806 .LVL101: + 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 807 .loc 1 604 7 is_stmt 1 view .LVU283 + 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 808 .loc 1 604 13 is_stmt 0 view .LVU284 + 809 002a 2046 mov r0, r4 + 810 002c FFF7FEFF bl USBD_CtlSendStatus + 811 .LVL102: + 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 812 .loc 1 606 7 is_stmt 1 view .LVU285 + 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 813 .loc 1 606 10 is_stmt 0 view .LVU286 + 814 0030 35B1 cbz r5, .L49 + 608:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 815 .loc 1 608 9 is_stmt 1 view .LVU287 + 608:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 816 .loc 1 608 25 is_stmt 0 view .LVU288 + 817 0032 0223 movs r3, #2 + 818 0034 84F89C32 strb r3, [r4, #668] + 819 0038 09E0 b .L45 + 820 .LVL103: + 821 .L51: + ARM GAS /tmp/ccQ58aJU.s page 42 + + + 598:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 822 .loc 1 598 7 is_stmt 1 view .LVU289 + 823 003a FFF7FEFF bl USBD_CtlError + 824 .LVL104: + 598:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 825 .loc 1 598 7 is_stmt 0 view .LVU290 + 826 003e 06E0 b .L45 + 827 .L49: + 612:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 828 .loc 1 612 9 is_stmt 1 view .LVU291 + 612:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 829 .loc 1 612 25 is_stmt 0 view .LVU292 + 830 0040 0123 movs r3, #1 + 831 0042 84F89C32 strb r3, [r4, #668] + 832 0046 02E0 b .L45 + 833 .LVL105: + 834 .L46: + 618:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 835 .loc 1 618 5 is_stmt 1 view .LVU293 + 836 0048 2046 mov r0, r4 + 837 .LVL106: + 618:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 838 .loc 1 618 5 is_stmt 0 view .LVU294 + 839 004a FFF7FEFF bl USBD_CtlError + 840 .LVL107: + 841 .L45: + 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 842 .loc 1 620 1 view .LVU295 + 843 004e 38BD pop {r3, r4, r5, pc} + 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 844 .loc 1 620 1 view .LVU296 + 845 .cfi_endproc + 846 .LFE337: + 848 .section .text.USBD_SetConfig,"ax",%progbits + 849 .align 1 + 850 .syntax unified + 851 .thumb + 852 .thumb_func + 854 USBD_SetConfig: + 855 .LVL108: + 856 .LFB338: + 630:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 857 .loc 1 630 1 is_stmt 1 view -0 + 858 .cfi_startproc + 859 @ args = 0, pretend = 0, frame = 0 + 860 @ frame_needed = 0, uses_anonymous_args = 0 + 630:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 861 .loc 1 630 1 is_stmt 0 view .LVU298 + 862 0000 70B5 push {r4, r5, r6, lr} + 863 .LCFI7: + 864 .cfi_def_cfa_offset 16 + 865 .cfi_offset 4, -16 + 866 .cfi_offset 5, -12 + 867 .cfi_offset 6, -8 + 868 .cfi_offset 14, -4 + 869 0002 0446 mov r4, r0 + 870 0004 0E46 mov r6, r1 + ARM GAS /tmp/ccQ58aJU.s page 43 + + + 631:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static uint8_t cfgidx; + 871 .loc 1 631 3 is_stmt 1 view .LVU299 + 872 .LVL109: + 632:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 873 .loc 1 632 3 view .LVU300 + 634:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 874 .loc 1 634 3 view .LVU301 + 634:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 875 .loc 1 634 12 is_stmt 0 view .LVU302 + 876 0006 8D78 ldrb r5, [r1, #2] @ zero_extendqisi2 + 634:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 877 .loc 1 634 10 view .LVU303 + 878 0008 2E4B ldr r3, .L67 + 879 000a 1D70 strb r5, [r3] + 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 880 .loc 1 636 3 is_stmt 1 view .LVU304 + 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 881 .loc 1 636 6 is_stmt 0 view .LVU305 + 882 000c 012D cmp r5, #1 + 883 000e 10D8 bhi .L65 + 642:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 884 .loc 1 642 3 is_stmt 1 view .LVU306 + 642:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 885 .loc 1 642 15 is_stmt 0 view .LVU307 + 886 0010 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 887 0014 DBB2 uxtb r3, r3 + 642:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 888 .loc 1 642 3 view .LVU308 + 889 0016 022B cmp r3, #2 + 890 0018 0FD0 beq .L55 + 891 001a 032B cmp r3, #3 + 892 001c 23D0 beq .L56 + 703:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, cfgidx); + 893 .loc 1 703 7 is_stmt 1 view .LVU309 + 894 001e FFF7FEFF bl USBD_CtlError + 895 .LVL110: + 704:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = USBD_FAIL; + 896 .loc 1 704 7 view .LVU310 + 704:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = USBD_FAIL; + 897 .loc 1 704 13 is_stmt 0 view .LVU311 + 898 0022 284B ldr r3, .L67 + 899 0024 1978 ldrb r1, [r3] @ zero_extendqisi2 + 900 0026 2046 mov r0, r4 + 901 0028 FFF7FEFF bl USBD_ClrClassConfig + 902 .LVL111: + 705:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 903 .loc 1 705 7 is_stmt 1 view .LVU312 + 706:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 904 .loc 1 706 7 view .LVU313 + 705:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 905 .loc 1 705 11 is_stmt 0 view .LVU314 + 906 002c 0325 movs r5, #3 + 907 .LVL112: + 908 .L54: + 710:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 909 .loc 1 710 1 view .LVU315 + 910 002e 2846 mov r0, r5 + ARM GAS /tmp/ccQ58aJU.s page 44 + + + 911 0030 70BD pop {r4, r5, r6, pc} + 912 .LVL113: + 913 .L65: + 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** return USBD_FAIL; + 914 .loc 1 638 5 is_stmt 1 view .LVU316 + 915 0032 FFF7FEFF bl USBD_CtlError + 916 .LVL114: + 639:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 917 .loc 1 639 5 view .LVU317 + 639:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 918 .loc 1 639 12 is_stmt 0 view .LVU318 + 919 0036 0325 movs r5, #3 + 920 0038 F9E7 b .L54 + 921 .LVL115: + 922 .L55: + 645:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 923 .loc 1 645 7 is_stmt 1 view .LVU319 + 645:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 924 .loc 1 645 10 is_stmt 0 view .LVU320 + 925 003a 8DB1 cbz r5, .L58 + 647:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 926 .loc 1 647 9 is_stmt 1 view .LVU321 + 647:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 927 .loc 1 647 26 is_stmt 0 view .LVU322 + 928 003c 4560 str r5, [r0, #4] + 649:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 929 .loc 1 649 9 is_stmt 1 view .LVU323 + 649:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 930 .loc 1 649 15 is_stmt 0 view .LVU324 + 931 003e 2946 mov r1, r5 + 932 .LVL116: + 649:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 933 .loc 1 649 15 view .LVU325 + 934 0040 FFF7FEFF bl USBD_SetClassConfig + 935 .LVL117: + 651:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 936 .loc 1 651 9 is_stmt 1 view .LVU326 + 651:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 937 .loc 1 651 12 is_stmt 0 view .LVU327 + 938 0044 0546 mov r5, r0 + 939 0046 20B1 cbz r0, .L59 + 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 940 .loc 1 653 11 is_stmt 1 view .LVU328 + 941 0048 3146 mov r1, r6 + 942 004a 2046 mov r0, r4 + 943 .LVL118: + 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 944 .loc 1 653 11 is_stmt 0 view .LVU329 + 945 004c FFF7FEFF bl USBD_CtlError + 946 .LVL119: + 947 0050 EDE7 b .L54 + 948 .LVL120: + 949 .L59: + 657:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_CONFIGURED; + 950 .loc 1 657 11 is_stmt 1 view .LVU330 + 657:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_CONFIGURED; + 951 .loc 1 657 17 is_stmt 0 view .LVU331 + ARM GAS /tmp/ccQ58aJU.s page 45 + + + 952 0052 2046 mov r0, r4 + 953 .LVL121: + 657:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_CONFIGURED; + 954 .loc 1 657 17 view .LVU332 + 955 0054 FFF7FEFF bl USBD_CtlSendStatus + 956 .LVL122: + 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 957 .loc 1 658 11 is_stmt 1 view .LVU333 + 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 958 .loc 1 658 27 is_stmt 0 view .LVU334 + 959 0058 0323 movs r3, #3 + 960 005a 84F89C32 strb r3, [r4, #668] + 961 005e E6E7 b .L54 + 962 .LVL123: + 963 .L58: + 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 964 .loc 1 663 9 is_stmt 1 view .LVU335 + 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 965 .loc 1 663 15 is_stmt 0 view .LVU336 + 966 0060 FFF7FEFF bl USBD_CtlSendStatus + 967 .LVL124: + 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 968 .loc 1 663 15 view .LVU337 + 969 0064 E3E7 b .L54 + 970 .LVL125: + 971 .L56: + 668:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 972 .loc 1 668 7 is_stmt 1 view .LVU338 + 668:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 973 .loc 1 668 10 is_stmt 0 view .LVU339 + 974 0066 CDB1 cbz r5, .L66 + 675:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 975 .loc 1 675 12 is_stmt 1 view .LVU340 + 675:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 976 .loc 1 675 30 is_stmt 0 view .LVU341 + 977 0068 4168 ldr r1, [r0, #4] + 978 .LVL126: + 675:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 979 .loc 1 675 15 view .LVU342 + 980 006a 8D42 cmp r5, r1 + 981 006c 25D0 beq .L61 + 678:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 982 .loc 1 678 9 is_stmt 1 view .LVU343 + 678:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 983 .loc 1 678 15 is_stmt 0 view .LVU344 + 984 006e C9B2 uxtb r1, r1 + 985 0070 FFF7FEFF bl USBD_ClrClassConfig + 986 .LVL127: + 681:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 987 .loc 1 681 9 is_stmt 1 view .LVU345 + 681:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 988 .loc 1 681 26 is_stmt 0 view .LVU346 + 989 0074 134B ldr r3, .L67 + 990 0076 1978 ldrb r1, [r3] @ zero_extendqisi2 + 991 0078 6160 str r1, [r4, #4] + 683:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 992 .loc 1 683 9 is_stmt 1 view .LVU347 + ARM GAS /tmp/ccQ58aJU.s page 46 + + + 683:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 993 .loc 1 683 15 is_stmt 0 view .LVU348 + 994 007a 2046 mov r0, r4 + 995 007c FFF7FEFF bl USBD_SetClassConfig + 996 .LVL128: + 685:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 997 .loc 1 685 9 is_stmt 1 view .LVU349 + 685:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 998 .loc 1 685 12 is_stmt 0 view .LVU350 + 999 0080 0546 mov r5, r0 + 1000 0082 B0B1 cbz r0, .L62 + 687:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, (uint8_t)pdev->dev_config); + 1001 .loc 1 687 11 is_stmt 1 view .LVU351 + 1002 0084 3146 mov r1, r6 + 1003 0086 2046 mov r0, r4 + 1004 .LVL129: + 687:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, (uint8_t)pdev->dev_config); + 1005 .loc 1 687 11 is_stmt 0 view .LVU352 + 1006 0088 FFF7FEFF bl USBD_CtlError + 1007 .LVL130: + 688:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_ADDRESSED; + 1008 .loc 1 688 11 is_stmt 1 view .LVU353 + 688:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_state = USBD_STATE_ADDRESSED; + 1009 .loc 1 688 17 is_stmt 0 view .LVU354 + 1010 008c 2179 ldrb r1, [r4, #4] @ zero_extendqisi2 + 1011 008e 2046 mov r0, r4 + 1012 0090 FFF7FEFF bl USBD_ClrClassConfig + 1013 .LVL131: + 689:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1014 .loc 1 689 11 is_stmt 1 view .LVU355 + 689:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1015 .loc 1 689 27 is_stmt 0 view .LVU356 + 1016 0094 0223 movs r3, #2 + 1017 0096 84F89C32 strb r3, [r4, #668] + 1018 009a C8E7 b .L54 + 1019 .LVL132: + 1020 .L66: + 670:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config = cfgidx; + 1021 .loc 1 670 9 is_stmt 1 view .LVU357 + 670:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdev->dev_config = cfgidx; + 1022 .loc 1 670 25 is_stmt 0 view .LVU358 + 1023 009c 0223 movs r3, #2 + 1024 009e 80F89C32 strb r3, [r0, #668] + 671:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, cfgidx); + 1025 .loc 1 671 9 is_stmt 1 view .LVU359 + 671:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_ClrClassConfig(pdev, cfgidx); + 1026 .loc 1 671 26 is_stmt 0 view .LVU360 + 1027 00a2 4560 str r5, [r0, #4] + 672:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 1028 .loc 1 672 9 is_stmt 1 view .LVU361 + 672:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 1029 .loc 1 672 15 is_stmt 0 view .LVU362 + 1030 00a4 2946 mov r1, r5 + 1031 .LVL133: + 672:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 1032 .loc 1 672 15 view .LVU363 + 1033 00a6 FFF7FEFF bl USBD_ClrClassConfig + ARM GAS /tmp/ccQ58aJU.s page 47 + + + 1034 .LVL134: + 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1035 .loc 1 673 9 is_stmt 1 view .LVU364 + 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1036 .loc 1 673 15 is_stmt 0 view .LVU365 + 1037 00aa 2046 mov r0, r4 + 1038 00ac FFF7FEFF bl USBD_CtlSendStatus + 1039 .LVL135: + 1040 00b0 BDE7 b .L54 + 1041 .LVL136: + 1042 .L62: + 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1043 .loc 1 693 11 is_stmt 1 view .LVU366 + 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1044 .loc 1 693 17 is_stmt 0 view .LVU367 + 1045 00b2 2046 mov r0, r4 + 1046 .LVL137: + 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1047 .loc 1 693 17 view .LVU368 + 1048 00b4 FFF7FEFF bl USBD_CtlSendStatus + 1049 .LVL138: + 1050 00b8 B9E7 b .L54 + 1051 .LVL139: + 1052 .L61: + 698:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1053 .loc 1 698 9 is_stmt 1 view .LVU369 + 698:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1054 .loc 1 698 15 is_stmt 0 view .LVU370 + 1055 00ba FFF7FEFF bl USBD_CtlSendStatus + 1056 .LVL140: + 631:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** static uint8_t cfgidx; + 1057 .loc 1 631 22 view .LVU371 + 1058 00be 0025 movs r5, #0 + 1059 00c0 B5E7 b .L54 + 1060 .L68: + 1061 00c2 00BF .align 2 + 1062 .L67: + 1063 00c4 00000000 .word cfgidx.0 + 1064 .cfi_endproc + 1065 .LFE338: + 1067 .section .text.USBD_GetConfig,"ax",%progbits + 1068 .align 1 + 1069 .syntax unified + 1070 .thumb + 1071 .thumb_func + 1073 USBD_GetConfig: + 1074 .LVL141: + 1075 .LFB339: + 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wLength != 1U) + 1076 .loc 1 720 1 is_stmt 1 view -0 + 1077 .cfi_startproc + 1078 @ args = 0, pretend = 0, frame = 0 + 1079 @ frame_needed = 0, uses_anonymous_args = 0 + 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** if (req->wLength != 1U) + 1080 .loc 1 720 1 is_stmt 0 view .LVU373 + 1081 0000 08B5 push {r3, lr} + 1082 .LCFI8: + ARM GAS /tmp/ccQ58aJU.s page 48 + + + 1083 .cfi_def_cfa_offset 8 + 1084 .cfi_offset 3, -8 + 1085 .cfi_offset 14, -4 + 721:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1086 .loc 1 721 3 is_stmt 1 view .LVU374 + 721:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1087 .loc 1 721 10 is_stmt 0 view .LVU375 + 1088 0002 CB88 ldrh r3, [r1, #6] + 721:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1089 .loc 1 721 6 view .LVU376 + 1090 0004 012B cmp r3, #1 + 1091 0006 0BD1 bne .L77 + 727:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1092 .loc 1 727 5 is_stmt 1 view .LVU377 + 727:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1093 .loc 1 727 17 is_stmt 0 view .LVU378 + 1094 0008 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1095 000c DBB2 uxtb r3, r3 + 727:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1096 .loc 1 727 5 view .LVU379 + 1097 000e 022B cmp r3, #2 + 1098 0010 09D9 bls .L78 + 1099 0012 032B cmp r3, #3 + 1100 0014 09D1 bne .L74 + 736:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1101 .loc 1 736 9 is_stmt 1 view .LVU380 + 736:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1102 .loc 1 736 15 is_stmt 0 view .LVU381 + 1103 0016 0122 movs r2, #1 + 1104 0018 011D adds r1, r0, #4 + 1105 .LVL142: + 736:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1106 .loc 1 736 15 view .LVU382 + 1107 001a FFF7FEFF bl USBD_CtlSendData + 1108 .LVL143: + 737:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1109 .loc 1 737 9 is_stmt 1 view .LVU383 + 1110 001e 01E0 b .L69 + 1111 .LVL144: + 1112 .L77: + 723:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1113 .loc 1 723 5 view .LVU384 + 1114 0020 FFF7FEFF bl USBD_CtlError + 1115 .LVL145: + 1116 .L69: + 744:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1117 .loc 1 744 1 is_stmt 0 view .LVU385 + 1118 0024 08BD pop {r3, pc} + 1119 .LVL146: + 1120 .L78: + 727:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1121 .loc 1 727 5 view .LVU386 + 1122 0026 5BB2 sxtb r3, r3 + 1123 0028 13B9 cbnz r3, .L79 + 1124 .L74: + 740:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1125 .loc 1 740 9 is_stmt 1 view .LVU387 + ARM GAS /tmp/ccQ58aJU.s page 49 + + + 1126 002a FFF7FEFF bl USBD_CtlError + 1127 .LVL147: + 741:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1128 .loc 1 741 9 view .LVU388 + 744:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1129 .loc 1 744 1 is_stmt 0 view .LVU389 + 1130 002e F9E7 b .L69 + 1131 .LVL148: + 1132 .L79: + 731:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_default_config, 1U); + 1133 .loc 1 731 9 is_stmt 1 view .LVU390 + 731:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_default_config, 1U); + 1134 .loc 1 731 34 is_stmt 0 view .LVU391 + 1135 0030 0146 mov r1, r0 + 1136 .LVL149: + 731:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_default_config, 1U); + 1137 .loc 1 731 34 view .LVU392 + 1138 0032 0023 movs r3, #0 + 1139 0034 41F8083F str r3, [r1, #8]! + 732:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1140 .loc 1 732 9 is_stmt 1 view .LVU393 + 732:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1141 .loc 1 732 15 is_stmt 0 view .LVU394 + 1142 0038 0122 movs r2, #1 + 1143 003a FFF7FEFF bl USBD_CtlSendData + 1144 .LVL150: + 733:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1145 .loc 1 733 9 is_stmt 1 view .LVU395 + 1146 003e F1E7 b .L69 + 1147 .cfi_endproc + 1148 .LFE339: + 1150 .section .text.USBD_GetStatus,"ax",%progbits + 1151 .align 1 + 1152 .syntax unified + 1153 .thumb + 1154 .thumb_func + 1156 USBD_GetStatus: + 1157 .LVL151: + 1158 .LFB340: + 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 1159 .loc 1 754 1 view -0 + 1160 .cfi_startproc + 1161 @ args = 0, pretend = 0, frame = 0 + 1162 @ frame_needed = 0, uses_anonymous_args = 0 + 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 1163 .loc 1 754 1 is_stmt 0 view .LVU397 + 1164 0000 08B5 push {r3, lr} + 1165 .LCFI9: + 1166 .cfi_def_cfa_offset 8 + 1167 .cfi_offset 3, -8 + 1168 .cfi_offset 14, -4 + 755:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1169 .loc 1 755 3 is_stmt 1 view .LVU398 + 755:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1170 .loc 1 755 15 is_stmt 0 view .LVU399 + 1171 0002 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 755:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + ARM GAS /tmp/ccQ58aJU.s page 50 + + + 1172 .loc 1 755 3 view .LVU400 + 1173 0006 013B subs r3, r3, #1 + 1174 0008 022B cmp r3, #2 + 1175 000a 12D8 bhi .L81 + 760:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1176 .loc 1 760 7 is_stmt 1 view .LVU401 + 760:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1177 .loc 1 760 14 is_stmt 0 view .LVU402 + 1178 000c CB88 ldrh r3, [r1, #6] + 760:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1179 .loc 1 760 10 view .LVU403 + 1180 000e 022B cmp r3, #2 + 1181 0010 0CD1 bne .L86 + 767:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #else + 1182 .loc 1 767 7 is_stmt 1 view .LVU404 + 767:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** #else + 1183 .loc 1 767 31 is_stmt 0 view .LVU405 + 1184 0012 0123 movs r3, #1 + 1185 0014 C360 str r3, [r0, #12] + 772:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1186 .loc 1 772 7 is_stmt 1 view .LVU406 + 772:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1187 .loc 1 772 15 is_stmt 0 view .LVU407 + 1188 0016 D0F8A432 ldr r3, [r0, #676] + 772:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1189 .loc 1 772 10 view .LVU408 + 1190 001a 0BB1 cbz r3, .L84 + 774:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1191 .loc 1 774 9 is_stmt 1 view .LVU409 + 774:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1192 .loc 1 774 33 is_stmt 0 view .LVU410 + 1193 001c 0323 movs r3, #3 + 1194 001e C360 str r3, [r0, #12] + 1195 .L84: + 777:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1196 .loc 1 777 7 is_stmt 1 view .LVU411 + 777:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1197 .loc 1 777 13 is_stmt 0 view .LVU412 + 1198 0020 0222 movs r2, #2 + 1199 0022 00F10C01 add r1, r0, #12 + 1200 .LVL152: + 777:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1201 .loc 1 777 13 view .LVU413 + 1202 0026 FFF7FEFF bl USBD_CtlSendData + 1203 .LVL153: + 778:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1204 .loc 1 778 7 is_stmt 1 view .LVU414 + 1205 .L80: + 784:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1206 .loc 1 784 1 is_stmt 0 view .LVU415 + 1207 002a 08BD pop {r3, pc} + 1208 .LVL154: + 1209 .L86: + 762:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1210 .loc 1 762 9 is_stmt 1 view .LVU416 + 1211 002c FFF7FEFF bl USBD_CtlError + 1212 .LVL155: + ARM GAS /tmp/ccQ58aJU.s page 51 + + + 763:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1213 .loc 1 763 9 view .LVU417 + 1214 0030 FBE7 b .L80 + 1215 .LVL156: + 1216 .L81: + 781:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1217 .loc 1 781 7 view .LVU418 + 1218 0032 FFF7FEFF bl USBD_CtlError + 1219 .LVL157: + 782:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1220 .loc 1 782 7 view .LVU419 + 784:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1221 .loc 1 784 1 is_stmt 0 view .LVU420 + 1222 0036 F8E7 b .L80 + 1223 .cfi_endproc + 1224 .LFE340: + 1226 .section .text.USBD_ClrFeature,"ax",%progbits + 1227 .align 1 + 1228 .syntax unified + 1229 .thumb + 1230 .thumb_func + 1232 USBD_ClrFeature: + 1233 .LVL158: + 1234 .LFB342: + 812:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 1235 .loc 1 812 1 is_stmt 1 view -0 + 1236 .cfi_startproc + 1237 @ args = 0, pretend = 0, frame = 0 + 1238 @ frame_needed = 0, uses_anonymous_args = 0 + 812:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** switch (pdev->dev_state) + 1239 .loc 1 812 1 is_stmt 0 view .LVU422 + 1240 0000 08B5 push {r3, lr} + 1241 .LCFI10: + 1242 .cfi_def_cfa_offset 8 + 1243 .cfi_offset 3, -8 + 1244 .cfi_offset 14, -4 + 813:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1245 .loc 1 813 3 is_stmt 1 view .LVU423 + 813:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1246 .loc 1 813 15 is_stmt 0 view .LVU424 + 1247 0002 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 813:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1248 .loc 1 813 3 view .LVU425 + 1249 0006 013B subs r3, r3, #1 + 1250 0008 022B cmp r3, #2 + 1251 000a 09D8 bhi .L88 + 818:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1252 .loc 1 818 7 is_stmt 1 view .LVU426 + 818:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1253 .loc 1 818 14 is_stmt 0 view .LVU427 + 1254 000c 4B88 ldrh r3, [r1, #2] + 818:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1255 .loc 1 818 10 view .LVU428 + 1256 000e 012B cmp r3, #1 + 1257 0010 00D0 beq .L91 + 1258 .LVL159: + 1259 .L87: + ARM GAS /tmp/ccQ58aJU.s page 52 + + + 829:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1260 .loc 1 829 1 view .LVU429 + 1261 0012 08BD pop {r3, pc} + 1262 .LVL160: + 1263 .L91: + 820:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 1264 .loc 1 820 9 is_stmt 1 view .LVU430 + 820:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_CtlSendStatus(pdev); + 1265 .loc 1 820 33 is_stmt 0 view .LVU431 + 1266 0014 0023 movs r3, #0 + 1267 0016 C0F8A432 str r3, [r0, #676] + 821:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1268 .loc 1 821 9 is_stmt 1 view .LVU432 + 821:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1269 .loc 1 821 15 is_stmt 0 view .LVU433 + 1270 001a FFF7FEFF bl USBD_CtlSendStatus + 1271 .LVL161: + 821:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1272 .loc 1 821 15 view .LVU434 + 1273 001e F8E7 b .L87 + 1274 .LVL162: + 1275 .L88: + 826:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1276 .loc 1 826 7 is_stmt 1 view .LVU435 + 1277 0020 FFF7FEFF bl USBD_CtlError + 1278 .LVL163: + 827:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1279 .loc 1 827 7 view .LVU436 + 829:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1280 .loc 1 829 1 is_stmt 0 view .LVU437 + 1281 0024 F5E7 b .L87 + 1282 .cfi_endproc + 1283 .LFE342: + 1285 .section .text.USBD_StdDevReq,"ax",%progbits + 1286 .align 1 + 1287 .global USBD_StdDevReq + 1288 .syntax unified + 1289 .thumb + 1290 .thumb_func + 1292 USBD_StdDevReq: + 1293 .LVL164: + 1294 .LFB333: + 101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 1295 .loc 1 101 1 is_stmt 1 view -0 + 1296 .cfi_startproc + 1297 @ args = 0, pretend = 0, frame = 0 + 1298 @ frame_needed = 0, uses_anonymous_args = 0 + 101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 1299 .loc 1 101 1 is_stmt 0 view .LVU439 + 1300 0000 38B5 push {r3, r4, r5, lr} + 1301 .LCFI11: + 1302 .cfi_def_cfa_offset 16 + 1303 .cfi_offset 3, -16 + 1304 .cfi_offset 4, -12 + 1305 .cfi_offset 5, -8 + 1306 .cfi_offset 14, -4 + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + ARM GAS /tmp/ccQ58aJU.s page 53 + + + 1307 .loc 1 102 3 is_stmt 1 view .LVU440 + 1308 .LVL165: + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1309 .loc 1 104 3 view .LVU441 + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1310 .loc 1 104 14 is_stmt 0 view .LVU442 + 1311 0002 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 1312 0004 04F06004 and r4, r4, #96 + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1313 .loc 1 104 3 view .LVU443 + 1314 0008 202C cmp r4, #32 + 1315 000a 06D0 beq .L93 + 1316 000c 402C cmp r4, #64 + 1317 000e 04D0 beq .L93 + 1318 0010 54B1 cbz r4, .L108 + 149:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1319 .loc 1 149 7 is_stmt 1 view .LVU444 + 1320 0012 FFF7FEFF bl USBD_CtlError + 1321 .LVL166: + 150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1322 .loc 1 150 7 view .LVU445 + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1323 .loc 1 102 22 is_stmt 0 view .LVU446 + 1324 0016 0024 movs r4, #0 + 150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1325 .loc 1 150 7 view .LVU447 + 1326 0018 04E0 b .L96 + 1327 .LVL167: + 1328 .L93: + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1329 .loc 1 108 7 is_stmt 1 view .LVU448 + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1330 .loc 1 108 37 is_stmt 0 view .LVU449 + 1331 001a D0F8B832 ldr r3, [r0, #696] + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1332 .loc 1 108 45 view .LVU450 + 1333 001e 9B68 ldr r3, [r3, #8] + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1334 .loc 1 108 33 view .LVU451 + 1335 0020 9847 blx r3 + 1336 .LVL168: + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1337 .loc 1 108 33 view .LVU452 + 1338 0022 0446 mov r4, r0 + 1339 .LVL169: + 109:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1340 .loc 1 109 7 is_stmt 1 view .LVU453 + 1341 .L96: + 153:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1342 .loc 1 153 3 view .LVU454 + 154:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1343 .loc 1 154 1 is_stmt 0 view .LVU455 + 1344 0024 2046 mov r0, r4 + 1345 0026 38BD pop {r3, r4, r5, pc} + 1346 .LVL170: + 1347 .L108: + 112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + ARM GAS /tmp/ccQ58aJU.s page 54 + + + 1348 .loc 1 112 7 is_stmt 1 view .LVU456 + 112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1349 .loc 1 112 18 is_stmt 0 view .LVU457 + 1350 0028 4D78 ldrb r5, [r1, #1] @ zero_extendqisi2 + 1351 002a 092D cmp r5, #9 + 1352 002c 1DD8 bhi .L97 + 1353 002e DFE805F0 tbb [pc, r5] + 1354 .L99: + 1355 0032 12 .byte (.L105-.L99)/2 + 1356 0033 19 .byte (.L104-.L99)/2 + 1357 0034 1C .byte (.L97-.L99)/2 + 1358 0035 16 .byte (.L103-.L99)/2 + 1359 0036 1C .byte (.L97-.L99)/2 + 1360 0037 08 .byte (.L102-.L99)/2 + 1361 0038 05 .byte (.L101-.L99)/2 + 1362 0039 1C .byte (.L97-.L99)/2 + 1363 003a 0F .byte (.L100-.L99)/2 + 1364 003b 0B .byte (.L98-.L99)/2 + 1365 .p2align 1 + 1366 .L101: + 115:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1367 .loc 1 115 11 is_stmt 1 view .LVU458 + 1368 003c FFF7FEFF bl USBD_GetDescriptor + 1369 .LVL171: + 116:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1370 .loc 1 116 11 view .LVU459 + 1371 0040 F0E7 b .L96 + 1372 .LVL172: + 1373 .L102: + 119:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1374 .loc 1 119 11 view .LVU460 + 1375 0042 FFF7FEFF bl USBD_SetAddress + 1376 .LVL173: + 120:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1377 .loc 1 120 11 view .LVU461 + 1378 0046 EDE7 b .L96 + 1379 .LVL174: + 1380 .L98: + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1381 .loc 1 123 11 view .LVU462 + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1382 .loc 1 123 17 is_stmt 0 view .LVU463 + 1383 0048 FFF7FEFF bl USBD_SetConfig + 1384 .LVL175: + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1385 .loc 1 123 17 view .LVU464 + 1386 004c 0446 mov r4, r0 + 1387 .LVL176: + 124:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1388 .loc 1 124 11 is_stmt 1 view .LVU465 + 1389 004e E9E7 b .L96 + 1390 .LVL177: + 1391 .L100: + 127:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1392 .loc 1 127 11 view .LVU466 + 1393 0050 FFF7FEFF bl USBD_GetConfig + 1394 .LVL178: + ARM GAS /tmp/ccQ58aJU.s page 55 + + + 128:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1395 .loc 1 128 11 view .LVU467 + 1396 0054 E6E7 b .L96 + 1397 .LVL179: + 1398 .L105: + 131:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1399 .loc 1 131 11 view .LVU468 + 1400 0056 FFF7FEFF bl USBD_GetStatus + 1401 .LVL180: + 132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1402 .loc 1 132 11 view .LVU469 + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1403 .loc 1 102 22 is_stmt 0 view .LVU470 + 1404 005a 2C46 mov r4, r5 + 132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1405 .loc 1 132 11 view .LVU471 + 1406 005c E2E7 b .L96 + 1407 .LVL181: + 1408 .L103: + 135:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1409 .loc 1 135 11 is_stmt 1 view .LVU472 + 1410 005e FFF7FEFF bl USBD_SetFeature + 1411 .LVL182: + 136:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1412 .loc 1 136 11 view .LVU473 + 1413 0062 DFE7 b .L96 + 1414 .LVL183: + 1415 .L104: + 139:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1416 .loc 1 139 11 view .LVU474 + 1417 0064 FFF7FEFF bl USBD_ClrFeature + 1418 .LVL184: + 140:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1419 .loc 1 140 11 view .LVU475 + 1420 0068 DCE7 b .L96 + 1421 .LVL185: + 1422 .L97: + 143:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1423 .loc 1 143 11 view .LVU476 + 1424 006a FFF7FEFF bl USBD_CtlError + 1425 .LVL186: + 144:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1426 .loc 1 144 11 view .LVU477 + 1427 006e D9E7 b .L96 + 1428 .cfi_endproc + 1429 .LFE333: + 1431 .section .text.USBD_StdItfReq,"ax",%progbits + 1432 .align 1 + 1433 .global USBD_StdItfReq + 1434 .syntax unified + 1435 .thumb + 1436 .thumb_func + 1438 USBD_StdItfReq: + 1439 .LVL187: + 1440 .LFB334: + 164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 1441 .loc 1 164 1 view -0 + ARM GAS /tmp/ccQ58aJU.s page 56 + + + 1442 .cfi_startproc + 1443 @ args = 0, pretend = 0, frame = 0 + 1444 @ frame_needed = 0, uses_anonymous_args = 0 + 164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 1445 .loc 1 164 1 is_stmt 0 view .LVU479 + 1446 0000 70B5 push {r4, r5, r6, lr} + 1447 .LCFI12: + 1448 .cfi_def_cfa_offset 16 + 1449 .cfi_offset 4, -16 + 1450 .cfi_offset 5, -12 + 1451 .cfi_offset 6, -8 + 1452 .cfi_offset 14, -4 + 1453 0002 0546 mov r5, r0 + 1454 0004 0C46 mov r4, r1 + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1455 .loc 1 165 3 is_stmt 1 view .LVU480 + 1456 .LVL188: + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1457 .loc 1 167 3 view .LVU481 + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1458 .loc 1 167 14 is_stmt 0 view .LVU482 + 1459 0006 0B78 ldrb r3, [r1] @ zero_extendqisi2 + 1460 0008 03F06003 and r3, r3, #96 + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1461 .loc 1 167 3 view .LVU483 + 1462 000c 202B cmp r3, #32 + 1463 000e 07D0 beq .L110 + 1464 0010 402B cmp r3, #64 + 1465 0012 05D0 beq .L110 + 1466 0014 23B1 cbz r3, .L110 + 200:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1467 .loc 1 200 7 is_stmt 1 view .LVU484 + 1468 0016 FFF7FEFF bl USBD_CtlError + 1469 .LVL189: + 201:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1470 .loc 1 201 7 view .LVU485 + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1471 .loc 1 165 22 is_stmt 0 view .LVU486 + 1472 001a 0026 movs r6, #0 + 1473 .LVL190: + 1474 .L114: + 204:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1475 .loc 1 204 3 is_stmt 1 view .LVU487 + 205:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1476 .loc 1 205 1 is_stmt 0 view .LVU488 + 1477 001c 3046 mov r0, r6 + 1478 001e 70BD pop {r4, r5, r6, pc} + 1479 .LVL191: + 1480 .L110: + 172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1481 .loc 1 172 7 is_stmt 1 view .LVU489 + 172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1482 .loc 1 172 19 is_stmt 0 view .LVU490 + 1483 0020 95F89C32 ldrb r3, [r5, #668] @ zero_extendqisi2 + 1484 0024 013B subs r3, r3, #1 + 1485 0026 022B cmp r3, #2 + 1486 0028 18D8 bhi .L112 + ARM GAS /tmp/ccQ58aJU.s page 57 + + + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1487 .loc 1 178 11 is_stmt 1 view .LVU491 + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1488 .loc 1 178 15 is_stmt 0 view .LVU492 + 1489 002a 2379 ldrb r3, [r4, #4] @ zero_extendqisi2 + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1490 .loc 1 178 14 view .LVU493 + 1491 002c 012B cmp r3, #1 + 1492 002e 0FD8 bhi .L113 + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1493 .loc 1 180 13 is_stmt 1 view .LVU494 + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1494 .loc 1 180 43 is_stmt 0 view .LVU495 + 1495 0030 D5F8B832 ldr r3, [r5, #696] + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1496 .loc 1 180 51 view .LVU496 + 1497 0034 9B68 ldr r3, [r3, #8] + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1498 .loc 1 180 39 view .LVU497 + 1499 0036 2146 mov r1, r4 + 1500 .LVL192: + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1501 .loc 1 180 39 view .LVU498 + 1502 0038 2846 mov r0, r5 + 1503 .LVL193: + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1504 .loc 1 180 39 view .LVU499 + 1505 003a 9847 blx r3 + 1506 .LVL194: + 1507 003c 0646 mov r6, r0 + 1508 .LVL195: + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1509 .loc 1 182 13 is_stmt 1 view .LVU500 + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1510 .loc 1 182 21 is_stmt 0 view .LVU501 + 1511 003e E388 ldrh r3, [r4, #6] + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1512 .loc 1 182 16 view .LVU502 + 1513 0040 002B cmp r3, #0 + 1514 0042 EBD1 bne .L114 + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1515 .loc 1 182 38 discriminator 1 view .LVU503 + 1516 0044 0028 cmp r0, #0 + 1517 0046 E9D1 bne .L114 + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1518 .loc 1 184 15 is_stmt 1 view .LVU504 + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1519 .loc 1 184 21 is_stmt 0 view .LVU505 + 1520 0048 2846 mov r0, r5 + 1521 .LVL196: + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1522 .loc 1 184 21 view .LVU506 + 1523 004a FFF7FEFF bl USBD_CtlSendStatus + 1524 .LVL197: + 1525 004e E5E7 b .L114 + 1526 .LVL198: + 1527 .L113: + ARM GAS /tmp/ccQ58aJU.s page 58 + + + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1528 .loc 1 189 13 is_stmt 1 view .LVU507 + 1529 0050 2146 mov r1, r4 + 1530 .LVL199: + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1531 .loc 1 189 13 is_stmt 0 view .LVU508 + 1532 0052 2846 mov r0, r5 + 1533 .LVL200: + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1534 .loc 1 189 13 view .LVU509 + 1535 0054 FFF7FEFF bl USBD_CtlError + 1536 .LVL201: + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1537 .loc 1 165 22 view .LVU510 + 1538 0058 0026 movs r6, #0 + 1539 005a DFE7 b .L114 + 1540 .LVL202: + 1541 .L112: + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1542 .loc 1 194 11 is_stmt 1 view .LVU511 + 1543 005c 2146 mov r1, r4 + 1544 .LVL203: + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1545 .loc 1 194 11 is_stmt 0 view .LVU512 + 1546 005e 2846 mov r0, r5 + 1547 .LVL204: + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1548 .loc 1 194 11 view .LVU513 + 1549 0060 FFF7FEFF bl USBD_CtlError + 1550 .LVL205: + 195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1551 .loc 1 195 11 is_stmt 1 view .LVU514 + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1552 .loc 1 165 22 is_stmt 0 view .LVU515 + 1553 0064 0026 movs r6, #0 + 195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1554 .loc 1 195 11 view .LVU516 + 1555 0066 D9E7 b .L114 + 1556 .cfi_endproc + 1557 .LFE334: + 1559 .section .text.USBD_StdEPReq,"ax",%progbits + 1560 .align 1 + 1561 .global USBD_StdEPReq + 1562 .syntax unified + 1563 .thumb + 1564 .thumb_func + 1566 USBD_StdEPReq: + 1567 .LVL206: + 1568 .LFB335: + 215:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_EndpointTypeDef *pep; + 1569 .loc 1 215 1 is_stmt 1 view -0 + 1570 .cfi_startproc + 1571 @ args = 0, pretend = 0, frame = 0 + 1572 @ frame_needed = 0, uses_anonymous_args = 0 + 215:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_EndpointTypeDef *pep; + 1573 .loc 1 215 1 is_stmt 0 view .LVU518 + 1574 0000 F8B5 push {r3, r4, r5, r6, r7, lr} + ARM GAS /tmp/ccQ58aJU.s page 59 + + + 1575 .LCFI13: + 1576 .cfi_def_cfa_offset 24 + 1577 .cfi_offset 3, -24 + 1578 .cfi_offset 4, -20 + 1579 .cfi_offset 5, -16 + 1580 .cfi_offset 6, -12 + 1581 .cfi_offset 7, -8 + 1582 .cfi_offset 14, -4 + 1583 0002 0646 mov r6, r0 + 1584 0004 0D46 mov r5, r1 + 216:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t ep_addr; + 1585 .loc 1 216 3 is_stmt 1 view .LVU519 + 217:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** USBD_StatusTypeDef ret = USBD_OK; + 1586 .loc 1 217 3 view .LVU520 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 1587 .loc 1 218 3 view .LVU521 + 1588 .LVL207: + 219:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1589 .loc 1 219 3 view .LVU522 + 219:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1590 .loc 1 219 13 is_stmt 0 view .LVU523 + 1591 0006 8B88 ldrh r3, [r1, #4] + 1592 .LVL208: + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1593 .loc 1 221 3 is_stmt 1 view .LVU524 + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1594 .loc 1 221 14 is_stmt 0 view .LVU525 + 1595 0008 0C78 ldrb r4, [r1] @ zero_extendqisi2 + 1596 000a 04F06004 and r4, r4, #96 + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1597 .loc 1 221 3 view .LVU526 + 1598 000e 202C cmp r4, #32 + 1599 0010 08D0 beq .L117 + 1600 0012 D9B2 uxtb r1, r3 + 1601 .LVL209: + 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1602 .loc 1 221 3 view .LVU527 + 1603 0014 402C cmp r4, #64 + 1604 0016 05D0 beq .L117 + 1605 0018 6CB1 cbz r4, .L155 + 365:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1606 .loc 1 365 7 is_stmt 1 view .LVU528 + 1607 001a 2946 mov r1, r5 + 1608 001c FFF7FEFF bl USBD_CtlError + 1609 .LVL210: + 366:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1610 .loc 1 366 7 view .LVU529 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 1611 .loc 1 218 22 is_stmt 0 view .LVU530 + 1612 0020 0024 movs r4, #0 + 366:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1613 .loc 1 366 7 view .LVU531 + 1614 0022 06E0 b .L120 + 1615 .LVL211: + 1616 .L117: + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1617 .loc 1 225 7 is_stmt 1 view .LVU532 + ARM GAS /tmp/ccQ58aJU.s page 60 + + + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1618 .loc 1 225 37 is_stmt 0 view .LVU533 + 1619 0024 D6F8B832 ldr r3, [r6, #696] + 1620 .LVL212: + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1621 .loc 1 225 45 view .LVU534 + 1622 0028 9B68 ldr r3, [r3, #8] + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1623 .loc 1 225 33 view .LVU535 + 1624 002a 2946 mov r1, r5 + 1625 002c 3046 mov r0, r6 + 1626 .LVL213: + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1627 .loc 1 225 33 view .LVU536 + 1628 002e 9847 blx r3 + 1629 .LVL214: + 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1630 .loc 1 225 33 view .LVU537 + 1631 0030 0446 mov r4, r0 + 1632 .LVL215: + 226:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1633 .loc 1 226 7 is_stmt 1 view .LVU538 + 1634 .L120: + 369:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1635 .loc 1 369 3 view .LVU539 + 370:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1636 .loc 1 370 1 is_stmt 0 view .LVU540 + 1637 0032 2046 mov r0, r4 + 1638 0034 F8BD pop {r3, r4, r5, r6, r7, pc} + 1639 .LVL216: + 1640 .L155: + 229:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1641 .loc 1 229 7 is_stmt 1 view .LVU541 + 229:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1642 .loc 1 229 18 is_stmt 0 view .LVU542 + 1643 0036 6F78 ldrb r7, [r5, #1] @ zero_extendqisi2 + 1644 0038 012F cmp r7, #1 + 1645 003a 2FD0 beq .L121 + 1646 003c 032F cmp r7, #3 + 1647 003e 05D0 beq .L122 + 1648 0040 002F cmp r7, #0 + 1649 0042 59D0 beq .L156 + 359:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1650 .loc 1 359 11 is_stmt 1 view .LVU543 + 1651 0044 2946 mov r1, r5 + 1652 0046 FFF7FEFF bl USBD_CtlError + 1653 .LVL217: + 360:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1654 .loc 1 360 11 view .LVU544 + 1655 004a F2E7 b .L120 + 1656 .LVL218: + 1657 .L122: + 232:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1658 .loc 1 232 11 discriminator 3 view .LVU545 + 232:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1659 .loc 1 232 23 is_stmt 0 discriminator 3 view .LVU546 + 1660 004c 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + ARM GAS /tmp/ccQ58aJU.s page 61 + + + 1661 .LVL219: + 232:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1662 .loc 1 232 23 discriminator 3 view .LVU547 + 1663 0050 DBB2 uxtb r3, r3 + 1664 0052 022B cmp r3, #2 + 1665 0054 05D0 beq .L125 + 1666 0056 032B cmp r3, #3 + 1667 0058 12D0 beq .L126 + 259:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1668 .loc 1 259 15 is_stmt 1 view .LVU548 + 1669 005a 2946 mov r1, r5 + 1670 .LVL220: + 259:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1671 .loc 1 259 15 is_stmt 0 view .LVU549 + 1672 005c FFF7FEFF bl USBD_CtlError + 1673 .LVL221: + 260:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1674 .loc 1 260 15 is_stmt 1 view .LVU550 + 1675 0060 E7E7 b .L120 + 1676 .LVL222: + 1677 .L125: + 235:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1678 .loc 1 235 15 view .LVU551 + 235:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1679 .loc 1 235 18 is_stmt 0 view .LVU552 + 1680 0062 09B1 cbz r1, .L128 + 235:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1681 .loc 1 235 38 discriminator 1 view .LVU553 + 1682 0064 8029 cmp r1, #128 + 1683 0066 04D1 bne .L157 + 1684 .L128: + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1685 .loc 1 242 17 is_stmt 1 view .LVU554 + 1686 0068 2946 mov r1, r5 + 1687 .LVL223: + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1688 .loc 1 242 17 is_stmt 0 view .LVU555 + 1689 006a 3046 mov r0, r6 + 1690 .LVL224: + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1691 .loc 1 242 17 view .LVU556 + 1692 006c FFF7FEFF bl USBD_CtlError + 1693 .LVL225: + 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1694 .loc 1 242 17 view .LVU557 + 1695 0070 DFE7 b .L120 + 1696 .LVL226: + 1697 .L157: + 237:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 1698 .loc 1 237 17 is_stmt 1 view .LVU558 + 237:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 1699 .loc 1 237 23 is_stmt 0 view .LVU559 + 1700 0072 FFF7FEFF bl USBD_LL_StallEP + 1701 .LVL227: + 238:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1702 .loc 1 238 17 is_stmt 1 view .LVU560 + 238:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + ARM GAS /tmp/ccQ58aJU.s page 62 + + + 1703 .loc 1 238 23 is_stmt 0 view .LVU561 + 1704 0076 8021 movs r1, #128 + 1705 0078 3046 mov r0, r6 + 1706 007a FFF7FEFF bl USBD_LL_StallEP + 1707 .LVL228: + 238:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1708 .loc 1 238 17 view .LVU562 + 1709 007e D8E7 b .L120 + 1710 .LVL229: + 1711 .L126: + 247:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1712 .loc 1 247 15 is_stmt 1 view .LVU563 + 247:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1713 .loc 1 247 22 is_stmt 0 view .LVU564 + 1714 0080 6B88 ldrh r3, [r5, #2] + 247:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1715 .loc 1 247 18 view .LVU565 + 1716 0082 23B9 cbnz r3, .L129 + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1717 .loc 1 249 17 is_stmt 1 view .LVU566 + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1718 .loc 1 249 20 is_stmt 0 view .LVU567 + 1719 0084 19B1 cbz r1, .L129 + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1720 .loc 1 249 40 discriminator 1 view .LVU568 + 1721 0086 8029 cmp r1, #128 + 1722 0088 01D0 beq .L129 + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1723 .loc 1 249 69 discriminator 2 view .LVU569 + 1724 008a EB88 ldrh r3, [r5, #6] + 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1725 .loc 1 249 62 discriminator 2 view .LVU570 + 1726 008c 1BB1 cbz r3, .L158 + 1727 .LVL230: + 1728 .L129: + 254:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1729 .loc 1 254 15 is_stmt 1 view .LVU571 + 254:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1730 .loc 1 254 21 is_stmt 0 view .LVU572 + 1731 008e 3046 mov r0, r6 + 1732 0090 FFF7FEFF bl USBD_CtlSendStatus + 1733 .LVL231: + 256:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1734 .loc 1 256 15 is_stmt 1 view .LVU573 + 1735 0094 CDE7 b .L120 + 1736 .LVL232: + 1737 .L158: + 251:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1738 .loc 1 251 19 view .LVU574 + 251:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1739 .loc 1 251 25 is_stmt 0 view .LVU575 + 1740 0096 FFF7FEFF bl USBD_LL_StallEP + 1741 .LVL233: + 251:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1742 .loc 1 251 25 view .LVU576 + 1743 009a F8E7 b .L129 + 1744 .LVL234: + ARM GAS /tmp/ccQ58aJU.s page 63 + + + 1745 .L121: + 266:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1746 .loc 1 266 11 is_stmt 1 discriminator 2 view .LVU577 + 266:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1747 .loc 1 266 23 is_stmt 0 discriminator 2 view .LVU578 + 1748 009c 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 + 1749 .LVL235: + 266:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1750 .loc 1 266 23 discriminator 2 view .LVU579 + 1751 00a0 DBB2 uxtb r3, r3 + 1752 00a2 022B cmp r3, #2 + 1753 00a4 05D0 beq .L130 + 1754 00a6 032B cmp r3, #3 + 1755 00a8 12D0 beq .L131 + 293:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1756 .loc 1 293 15 is_stmt 1 view .LVU580 + 1757 00aa 2946 mov r1, r5 + 1758 .LVL236: + 293:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1759 .loc 1 293 15 is_stmt 0 view .LVU581 + 1760 00ac FFF7FEFF bl USBD_CtlError + 1761 .LVL237: + 294:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1762 .loc 1 294 15 is_stmt 1 view .LVU582 + 1763 00b0 BFE7 b .L120 + 1764 .LVL238: + 1765 .L130: + 269:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1766 .loc 1 269 15 view .LVU583 + 269:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1767 .loc 1 269 18 is_stmt 0 view .LVU584 + 1768 00b2 09B1 cbz r1, .L133 + 269:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1769 .loc 1 269 38 discriminator 1 view .LVU585 + 1770 00b4 8029 cmp r1, #128 + 1771 00b6 04D1 bne .L159 + 1772 .L133: + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1773 .loc 1 276 17 is_stmt 1 view .LVU586 + 1774 00b8 2946 mov r1, r5 + 1775 .LVL239: + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1776 .loc 1 276 17 is_stmt 0 view .LVU587 + 1777 00ba 3046 mov r0, r6 + 1778 .LVL240: + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1779 .loc 1 276 17 view .LVU588 + 1780 00bc FFF7FEFF bl USBD_CtlError + 1781 .LVL241: + 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1782 .loc 1 276 17 view .LVU589 + 1783 00c0 B7E7 b .L120 + 1784 .LVL242: + 1785 .L159: + 271:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + 1786 .loc 1 271 17 is_stmt 1 view .LVU590 + 271:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** (void)USBD_LL_StallEP(pdev, 0x80U); + ARM GAS /tmp/ccQ58aJU.s page 64 + + + 1787 .loc 1 271 23 is_stmt 0 view .LVU591 + 1788 00c2 FFF7FEFF bl USBD_LL_StallEP + 1789 .LVL243: + 272:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1790 .loc 1 272 17 is_stmt 1 view .LVU592 + 272:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1791 .loc 1 272 23 is_stmt 0 view .LVU593 + 1792 00c6 8021 movs r1, #128 + 1793 00c8 3046 mov r0, r6 + 1794 00ca FFF7FEFF bl USBD_LL_StallEP + 1795 .LVL244: + 272:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1796 .loc 1 272 17 view .LVU594 + 1797 00ce B0E7 b .L120 + 1798 .LVL245: + 1799 .L131: + 281:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1800 .loc 1 281 15 is_stmt 1 view .LVU595 + 281:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1801 .loc 1 281 22 is_stmt 0 view .LVU596 + 1802 00d0 6B88 ldrh r3, [r5, #2] + 281:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1803 .loc 1 281 18 view .LVU597 + 1804 00d2 002B cmp r3, #0 + 1805 00d4 ADD1 bne .L120 + 283:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1806 .loc 1 283 17 is_stmt 1 view .LVU598 + 283:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1807 .loc 1 283 20 is_stmt 0 view .LVU599 + 1808 00d6 11F07F0F tst r1, #127 + 1809 00da 0AD1 bne .L160 + 1810 .LVL246: + 1811 .L134: + 287:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Setup(pdev, req); + 1812 .loc 1 287 17 is_stmt 1 view .LVU600 + 287:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ret = (USBD_StatusTypeDef)pdev->pClass->Setup(pdev, req); + 1813 .loc 1 287 23 is_stmt 0 view .LVU601 + 1814 00dc 3046 mov r0, r6 + 1815 00de FFF7FEFF bl USBD_CtlSendStatus + 1816 .LVL247: + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1817 .loc 1 288 17 is_stmt 1 view .LVU602 + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1818 .loc 1 288 47 is_stmt 0 view .LVU603 + 1819 00e2 D6F8B832 ldr r3, [r6, #696] + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1820 .loc 1 288 55 view .LVU604 + 1821 00e6 9B68 ldr r3, [r3, #8] + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1822 .loc 1 288 43 view .LVU605 + 1823 00e8 2946 mov r1, r5 + 1824 00ea 3046 mov r0, r6 + 1825 00ec 9847 blx r3 + 1826 .LVL248: + 1827 00ee 0446 mov r4, r0 + 1828 .LVL249: + 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + ARM GAS /tmp/ccQ58aJU.s page 65 + + + 1829 .loc 1 288 43 view .LVU606 + 1830 00f0 9FE7 b .L120 + 1831 .LVL250: + 1832 .L160: + 285:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1833 .loc 1 285 19 is_stmt 1 view .LVU607 + 285:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1834 .loc 1 285 25 is_stmt 0 view .LVU608 + 1835 00f2 FFF7FEFF bl USBD_LL_ClearStallEP + 1836 .LVL251: + 285:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1837 .loc 1 285 25 view .LVU609 + 1838 00f6 F1E7 b .L134 + 1839 .LVL252: + 1840 .L156: + 299:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1841 .loc 1 299 11 is_stmt 1 discriminator 1 view .LVU610 + 299:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1842 .loc 1 299 23 is_stmt 0 discriminator 1 view .LVU611 + 1843 00f8 90F89C22 ldrb r2, [r0, #668] @ zero_extendqisi2 + 1844 00fc D2B2 uxtb r2, r2 + 1845 00fe 022A cmp r2, #2 + 1846 0100 06D0 beq .L135 + 1847 0102 032A cmp r2, #3 + 1848 0104 29D0 beq .L136 + 353:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1849 .loc 1 353 15 is_stmt 1 view .LVU612 + 1850 0106 2946 mov r1, r5 + 1851 0108 FFF7FEFF bl USBD_CtlError + 1852 .LVL253: + 354:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1853 .loc 1 354 15 view .LVU613 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 1854 .loc 1 218 22 is_stmt 0 view .LVU614 + 1855 010c 3C46 mov r4, r7 + 354:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1856 .loc 1 354 15 view .LVU615 + 1857 010e 90E7 b .L120 + 1858 .LVL254: + 1859 .L135: + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1860 .loc 1 302 15 is_stmt 1 view .LVU616 + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1861 .loc 1 302 18 is_stmt 0 view .LVU617 + 1862 0110 09B1 cbz r1, .L138 + 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1863 .loc 1 302 38 discriminator 1 view .LVU618 + 1864 0112 8029 cmp r1, #128 + 1865 0114 13D1 bne .L161 + 1866 .L138: + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1867 .loc 1 307 15 is_stmt 1 view .LVU619 + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1868 .loc 1 307 82 is_stmt 0 view .LVU620 + 1869 0116 13F0800F tst r3, #128 + 1870 011a 15D1 bne .L162 + 308:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + ARM GAS /tmp/ccQ58aJU.s page 66 + + + 1871 .loc 1 308 43 discriminator 2 view .LVU621 + 1872 011c 01F07F01 and r1, r1, #127 + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1873 .loc 1 307 82 discriminator 2 view .LVU622 + 1874 0120 01EB8101 add r1, r1, r1, lsl #2 + 1875 0124 8900 lsls r1, r1, #2 + 1876 0126 01F5A871 add r1, r1, #336 + 1877 012a 3144 add r1, r1, r6 + 1878 012c 0431 adds r1, r1, #4 + 1879 .L140: + 1880 .LVL255: + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1881 .loc 1 310 15 is_stmt 1 discriminator 4 view .LVU623 + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1882 .loc 1 310 27 is_stmt 0 discriminator 4 view .LVU624 + 1883 012e 0023 movs r3, #0 + 1884 .LVL256: + 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1885 .loc 1 310 27 discriminator 4 view .LVU625 + 1886 0130 0B60 str r3, [r1] + 1887 .LVL257: + 312:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1888 .loc 1 312 15 is_stmt 1 discriminator 4 view .LVU626 + 312:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1889 .loc 1 312 21 is_stmt 0 discriminator 4 view .LVU627 + 1890 0132 0222 movs r2, #2 + 1891 0134 3046 mov r0, r6 + 1892 .LVL258: + 312:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1893 .loc 1 312 21 discriminator 4 view .LVU628 + 1894 0136 FFF7FEFF bl USBD_CtlSendData + 1895 .LVL259: + 313:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1896 .loc 1 313 15 is_stmt 1 discriminator 4 view .LVU629 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 1897 .loc 1 218 22 is_stmt 0 discriminator 4 view .LVU630 + 1898 013a 3C46 mov r4, r7 + 313:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1899 .loc 1 313 15 discriminator 4 view .LVU631 + 1900 013c 79E7 b .L120 + 1901 .LVL260: + 1902 .L161: + 304:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1903 .loc 1 304 17 is_stmt 1 view .LVU632 + 1904 013e 2946 mov r1, r5 + 1905 0140 FFF7FEFF bl USBD_CtlError + 1906 .LVL261: + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1907 .loc 1 305 17 view .LVU633 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 1908 .loc 1 218 22 is_stmt 0 view .LVU634 + 1909 0144 3C46 mov r4, r7 + 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1910 .loc 1 305 17 view .LVU635 + 1911 0146 74E7 b .L120 + 1912 .LVL262: + 1913 .L162: + ARM GAS /tmp/ccQ58aJU.s page 67 + + + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1914 .loc 1 307 73 discriminator 1 view .LVU636 + 1915 0148 01F07F01 and r1, r1, #127 + 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1916 .loc 1 307 82 discriminator 1 view .LVU637 + 1917 014c 01EB8101 add r1, r1, r1, lsl #2 + 1918 0150 8900 lsls r1, r1, #2 + 1919 0152 1031 adds r1, r1, #16 + 1920 0154 3144 add r1, r1, r6 + 1921 0156 0431 adds r1, r1, #4 + 1922 0158 E9E7 b .L140 + 1923 .L136: + 316:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1924 .loc 1 316 15 is_stmt 1 view .LVU638 + 316:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1925 .loc 1 316 37 is_stmt 0 view .LVU639 + 1926 015a 5BB2 sxtb r3, r3 + 316:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1927 .loc 1 316 18 view .LVU640 + 1928 015c 002B cmp r3, #0 + 1929 015e 1FDB blt .L163 + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1930 .loc 1 326 17 is_stmt 1 view .LVU641 + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1931 .loc 1 326 42 is_stmt 0 view .LVU642 + 1932 0160 01F00F02 and r2, r1, #15 + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1933 .loc 1 326 49 view .LVU643 + 1934 0164 02EB8202 add r2, r2, r2, lsl #2 + 1935 0168 00EB8202 add r2, r0, r2, lsl #2 + 1936 016c B2F86421 ldrh r2, [r2, #356] + 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1937 .loc 1 326 20 view .LVU644 + 1938 0170 22B3 cbz r2, .L164 + 1939 .L142: + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1940 .loc 1 333 15 is_stmt 1 view .LVU645 + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1941 .loc 1 333 82 is_stmt 0 view .LVU646 + 1942 0172 002B cmp r3, #0 + 1943 0174 27DB blt .L165 + 334:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1944 .loc 1 334 43 discriminator 2 view .LVU647 + 1945 0176 01F07F03 and r3, r1, #127 + 1946 .LVL263: + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 1947 .loc 1 333 82 discriminator 2 view .LVU648 + 1948 017a 03EB8303 add r3, r3, r3, lsl #2 + 1949 017e 9C00 lsls r4, r3, #2 + 1950 0180 04F5A874 add r4, r4, #336 + 1951 0184 3444 add r4, r4, r6 + 1952 0186 0434 adds r4, r4, #4 + 1953 .L144: + 1954 .LVL264: + 336:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1955 .loc 1 336 15 is_stmt 1 discriminator 4 view .LVU649 + 336:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + ARM GAS /tmp/ccQ58aJU.s page 68 + + + 1956 .loc 1 336 18 is_stmt 0 discriminator 4 view .LVU650 + 1957 0188 09B1 cbz r1, .L145 + 336:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1958 .loc 1 336 38 discriminator 1 view .LVU651 + 1959 018a 8029 cmp r1, #128 + 1960 018c 24D1 bne .L146 + 1961 .L145: + 338:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1962 .loc 1 338 17 is_stmt 1 view .LVU652 + 338:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1963 .loc 1 338 29 is_stmt 0 view .LVU653 + 1964 018e 0023 movs r3, #0 + 1965 0190 2360 str r3, [r4] + 1966 .LVL265: + 1967 .L147: + 349:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1968 .loc 1 349 15 is_stmt 1 view .LVU654 + 349:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1969 .loc 1 349 21 is_stmt 0 view .LVU655 + 1970 0192 0222 movs r2, #2 + 1971 0194 2146 mov r1, r4 + 1972 0196 3046 mov r0, r6 + 1973 0198 FFF7FEFF bl USBD_CtlSendData + 1974 .LVL266: + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1975 .loc 1 350 15 is_stmt 1 view .LVU656 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 1976 .loc 1 218 22 is_stmt 0 view .LVU657 + 1977 019c 3C46 mov r4, r7 + 1978 .LVL267: + 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 1979 .loc 1 350 15 view .LVU658 + 1980 019e 48E7 b .L120 + 1981 .LVL268: + 1982 .L163: + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1983 .loc 1 318 17 is_stmt 1 view .LVU659 + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1984 .loc 1 318 41 is_stmt 0 view .LVU660 + 1985 01a0 01F00F02 and r2, r1, #15 + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1986 .loc 1 318 48 view .LVU661 + 1987 01a4 02EB8202 add r2, r2, r2, lsl #2 + 1988 01a8 00EB8202 add r2, r0, r2, lsl #2 + 1989 01ac 928C ldrh r2, [r2, #36] + 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 1990 .loc 1 318 20 view .LVU662 + 1991 01ae 002A cmp r2, #0 + 1992 01b0 DFD1 bne .L142 + 320:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 1993 .loc 1 320 19 is_stmt 1 view .LVU663 + 1994 01b2 2946 mov r1, r5 + 1995 01b4 FFF7FEFF bl USBD_CtlError + 1996 .LVL269: + 321:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 1997 .loc 1 321 19 view .LVU664 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + ARM GAS /tmp/ccQ58aJU.s page 69 + + + 1998 .loc 1 218 22 is_stmt 0 view .LVU665 + 1999 01b8 3C46 mov r4, r7 + 321:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2000 .loc 1 321 19 view .LVU666 + 2001 01ba 3AE7 b .L120 + 2002 .LVL270: + 2003 .L164: + 328:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** break; + 2004 .loc 1 328 19 is_stmt 1 view .LVU667 + 2005 01bc 2946 mov r1, r5 + 2006 01be FFF7FEFF bl USBD_CtlError + 2007 .LVL271: + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2008 .loc 1 329 19 view .LVU668 + 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** ep_addr = LOBYTE(req->wIndex); + 2009 .loc 1 218 22 is_stmt 0 view .LVU669 + 2010 01c2 3C46 mov r4, r7 + 329:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2011 .loc 1 329 19 view .LVU670 + 2012 01c4 35E7 b .L120 + 2013 .LVL272: + 2014 .L165: + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 2015 .loc 1 333 73 discriminator 1 view .LVU671 + 2016 01c6 01F07F03 and r3, r1, #127 + 2017 .LVL273: + 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** &pdev->ep_out[ep_addr & 0x7FU]; + 2018 .loc 1 333 82 discriminator 1 view .LVU672 + 2019 01ca 03EB8303 add r3, r3, r3, lsl #2 + 2020 01ce 9C00 lsls r4, r3, #2 + 2021 01d0 1034 adds r4, r4, #16 + 2022 01d2 3444 add r4, r4, r6 + 2023 01d4 0434 adds r4, r4, #4 + 2024 01d6 D7E7 b .L144 + 2025 .LVL274: + 2026 .L146: + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2027 .loc 1 340 20 is_stmt 1 view .LVU673 + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2028 .loc 1 340 24 is_stmt 0 view .LVU674 + 2029 01d8 3046 mov r0, r6 + 2030 .LVL275: + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2031 .loc 1 340 24 view .LVU675 + 2032 01da FFF7FEFF bl USBD_LL_IsStallEP + 2033 .LVL276: + 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2034 .loc 1 340 23 view .LVU676 + 2035 01de 10B1 cbz r0, .L148 + 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2036 .loc 1 342 17 is_stmt 1 view .LVU677 + 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2037 .loc 1 342 29 is_stmt 0 view .LVU678 + 2038 01e0 0123 movs r3, #1 + 2039 01e2 2360 str r3, [r4] + 2040 01e4 D5E7 b .L147 + 2041 .L148: + ARM GAS /tmp/ccQ58aJU.s page 70 + + + 346:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2042 .loc 1 346 17 is_stmt 1 view .LVU679 + 346:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2043 .loc 1 346 29 is_stmt 0 view .LVU680 + 2044 01e6 0023 movs r3, #0 + 2045 01e8 2360 str r3, [r4] + 2046 01ea D2E7 b .L147 + 2047 .cfi_endproc + 2048 .LFE335: + 2050 .section .text.USBD_GetString,"ax",%progbits + 2051 .align 1 + 2052 .global USBD_GetString + 2053 .syntax unified + 2054 .thumb + 2055 .thumb_func + 2057 USBD_GetString: + 2058 .LVL277: + 2059 .LFB345: + 886:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t idx = 0U; + 2060 .loc 1 886 1 is_stmt 1 view -0 + 2061 .cfi_startproc + 2062 @ args = 0, pretend = 0, frame = 0 + 2063 @ frame_needed = 0, uses_anonymous_args = 0 + 887:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t *pdesc; + 2064 .loc 1 887 3 view .LVU682 + 888:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2065 .loc 1 888 3 view .LVU683 + 890:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2066 .loc 1 890 3 view .LVU684 + 890:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2067 .loc 1 890 6 is_stmt 0 view .LVU685 + 2068 0000 D0B1 cbz r0, .L171 + 886:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** uint8_t idx = 0U; + 2069 .loc 1 886 1 view .LVU686 + 2070 0002 70B5 push {r4, r5, r6, lr} + 2071 .LCFI14: + 2072 .cfi_def_cfa_offset 16 + 2073 .cfi_offset 4, -16 + 2074 .cfi_offset 5, -12 + 2075 .cfi_offset 6, -8 + 2076 .cfi_offset 14, -4 + 2077 0004 0D46 mov r5, r1 + 2078 0006 1646 mov r6, r2 + 2079 0008 0446 mov r4, r0 + 895:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** *len = ((uint16_t)USBD_GetLen(pdesc) * 2U) + 2U; + 2080 .loc 1 895 3 is_stmt 1 view .LVU687 + 2081 .LVL278: + 896:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2082 .loc 1 896 3 view .LVU688 + 896:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2083 .loc 1 896 21 is_stmt 0 view .LVU689 + 2084 000a FFF7FEFF bl USBD_GetLen + 2085 .LVL279: + 896:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2086 .loc 1 896 46 view .LVU690 + 2087 000e 431C adds r3, r0, #1 + 896:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + ARM GAS /tmp/ccQ58aJU.s page 71 + + + 2088 .loc 1 896 8 view .LVU691 + 2089 0010 5B00 lsls r3, r3, #1 + 2090 0012 9BB2 uxth r3, r3 + 2091 0014 3380 strh r3, [r6] @ movhi + 898:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2092 .loc 1 898 3 is_stmt 1 view .LVU692 + 898:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2093 .loc 1 898 16 is_stmt 0 view .LVU693 + 2094 0016 2B70 strb r3, [r5] + 899:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** unicode[idx] = USB_DESC_TYPE_STRING; + 2095 .loc 1 899 3 is_stmt 1 view .LVU694 + 2096 .LVL280: + 900:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2097 .loc 1 900 3 view .LVU695 + 900:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2098 .loc 1 900 16 is_stmt 0 view .LVU696 + 2099 0018 0323 movs r3, #3 + 2100 001a 6B70 strb r3, [r5, #1] + 901:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2101 .loc 1 901 3 is_stmt 1 view .LVU697 + 2102 .LVL281: + 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2103 .loc 1 903 3 view .LVU698 + 901:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2104 .loc 1 901 6 is_stmt 0 view .LVU699 + 2105 001c 0223 movs r3, #2 + 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2106 .loc 1 903 9 view .LVU700 + 2107 001e 07E0 b .L168 + 2108 .LVL282: + 2109 .L169: + 905:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdesc++; + 2110 .loc 1 905 5 is_stmt 1 view .LVU701 + 905:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** pdesc++; + 2111 .loc 1 905 18 is_stmt 0 view .LVU702 + 2112 0020 EA54 strb r2, [r5, r3] + 906:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2113 .loc 1 906 5 is_stmt 1 view .LVU703 + 906:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2114 .loc 1 906 10 is_stmt 0 view .LVU704 + 2115 0022 0134 adds r4, r4, #1 + 2116 .LVL283: + 907:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2117 .loc 1 907 5 is_stmt 1 view .LVU705 + 907:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2118 .loc 1 907 8 is_stmt 0 view .LVU706 + 2119 0024 5A1C adds r2, r3, #1 + 2120 0026 D2B2 uxtb r2, r2 + 2121 .LVL284: + 909:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2122 .loc 1 909 5 is_stmt 1 view .LVU707 + 909:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** idx++; + 2123 .loc 1 909 18 is_stmt 0 view .LVU708 + 2124 0028 0021 movs r1, #0 + 2125 002a A954 strb r1, [r5, r2] + 910:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2126 .loc 1 910 5 is_stmt 1 view .LVU709 + ARM GAS /tmp/ccQ58aJU.s page 72 + + + 910:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** } + 2127 .loc 1 910 8 is_stmt 0 view .LVU710 + 2128 002c 0233 adds r3, r3, #2 + 2129 002e DBB2 uxtb r3, r3 + 2130 .LVL285: + 2131 .L168: + 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2132 .loc 1 903 17 is_stmt 1 view .LVU711 + 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2133 .loc 1 903 10 is_stmt 0 view .LVU712 + 2134 0030 2278 ldrb r2, [r4] @ zero_extendqisi2 + 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** { + 2135 .loc 1 903 17 view .LVU713 + 2136 0032 002A cmp r2, #0 + 2137 0034 F4D1 bne .L169 + 912:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2138 .loc 1 912 1 view .LVU714 + 2139 0036 70BD pop {r4, r5, r6, pc} + 2140 .LVL286: + 2141 .L171: + 2142 .LCFI15: + 2143 .cfi_def_cfa_offset 0 + 2144 .cfi_restore 4 + 2145 .cfi_restore 5 + 2146 .cfi_restore 6 + 2147 .cfi_restore 14 + 912:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c **** + 2148 .loc 1 912 1 view .LVU715 + 2149 0038 7047 bx lr + 2150 .cfi_endproc + 2151 .LFE345: + 2153 .section .bss.cfgidx.0,"aw",%nobits + 2156 cfgidx.0: + 2157 0000 00 .space 1 + 2158 .text + 2159 .Letext0: + 2160 .file 3 "/usr/include/newlib/machine/_default_types.h" + 2161 .file 4 "/usr/include/newlib/sys/_stdint.h" + 2162 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" + 2163 .file 6 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h" + ARM GAS /tmp/ccQ58aJU.s page 73 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_ctlreq.c + /tmp/ccQ58aJU.s:21 .text.USBD_GetLen:00000000 $t + /tmp/ccQ58aJU.s:26 .text.USBD_GetLen:00000000 USBD_GetLen + /tmp/ccQ58aJU.s:72 .text.USBD_SetFeature:00000000 $t + /tmp/ccQ58aJU.s:77 .text.USBD_SetFeature:00000000 USBD_SetFeature + /tmp/ccQ58aJU.s:115 .text.USBD_ParseSetupRequest:00000000 $t + /tmp/ccQ58aJU.s:121 .text.USBD_ParseSetupRequest:00000000 USBD_ParseSetupRequest + /tmp/ccQ58aJU.s:236 .text.USBD_CtlError:00000000 $t + /tmp/ccQ58aJU.s:242 .text.USBD_CtlError:00000000 USBD_CtlError + /tmp/ccQ58aJU.s:277 .text.USBD_GetDescriptor:00000000 $t + /tmp/ccQ58aJU.s:282 .text.USBD_GetDescriptor:00000000 USBD_GetDescriptor + /tmp/ccQ58aJU.s:320 .text.USBD_GetDescriptor:0000001e $d + /tmp/ccQ58aJU.s:469 .text.USBD_GetDescriptor:000000b0 $d + /tmp/ccQ58aJU.s:475 .text.USBD_GetDescriptor:000000b6 $t + /tmp/ccQ58aJU.s:750 .text.USBD_SetAddress:00000000 $t + /tmp/ccQ58aJU.s:755 .text.USBD_SetAddress:00000000 USBD_SetAddress + /tmp/ccQ58aJU.s:849 .text.USBD_SetConfig:00000000 $t + /tmp/ccQ58aJU.s:854 .text.USBD_SetConfig:00000000 USBD_SetConfig + /tmp/ccQ58aJU.s:1063 .text.USBD_SetConfig:000000c4 $d + /tmp/ccQ58aJU.s:2156 .bss.cfgidx.0:00000000 cfgidx.0 + /tmp/ccQ58aJU.s:1068 .text.USBD_GetConfig:00000000 $t + /tmp/ccQ58aJU.s:1073 .text.USBD_GetConfig:00000000 USBD_GetConfig + /tmp/ccQ58aJU.s:1151 .text.USBD_GetStatus:00000000 $t + /tmp/ccQ58aJU.s:1156 .text.USBD_GetStatus:00000000 USBD_GetStatus + /tmp/ccQ58aJU.s:1227 .text.USBD_ClrFeature:00000000 $t + /tmp/ccQ58aJU.s:1232 .text.USBD_ClrFeature:00000000 USBD_ClrFeature + /tmp/ccQ58aJU.s:1286 .text.USBD_StdDevReq:00000000 $t + /tmp/ccQ58aJU.s:1292 .text.USBD_StdDevReq:00000000 USBD_StdDevReq + /tmp/ccQ58aJU.s:1355 .text.USBD_StdDevReq:00000032 $d + /tmp/ccQ58aJU.s:1365 .text.USBD_StdDevReq:0000003c $t + /tmp/ccQ58aJU.s:1432 .text.USBD_StdItfReq:00000000 $t + /tmp/ccQ58aJU.s:1438 .text.USBD_StdItfReq:00000000 USBD_StdItfReq + /tmp/ccQ58aJU.s:1560 .text.USBD_StdEPReq:00000000 $t + /tmp/ccQ58aJU.s:1566 .text.USBD_StdEPReq:00000000 USBD_StdEPReq + /tmp/ccQ58aJU.s:2051 .text.USBD_GetString:00000000 $t + /tmp/ccQ58aJU.s:2057 .text.USBD_GetString:00000000 USBD_GetString + /tmp/ccQ58aJU.s:2157 .bss.cfgidx.0:00000000 $d + /tmp/ccQ58aJU.s:335 .text.USBD_GetDescriptor:0000002d $d + /tmp/ccQ58aJU.s:335 .text.USBD_GetDescriptor:0000002e $t + +UNDEFINED SYMBOLS +USBD_CtlSendStatus +USBD_LL_StallEP +USBD_CtlSendData +USBD_LL_SetUSBAddress +USBD_ClrClassConfig +USBD_SetClassConfig +USBD_LL_ClearStallEP +USBD_LL_IsStallEP diff --git a/squeow_sw/build/usbd_ctlreq.o b/squeow_sw/build/usbd_ctlreq.o new file mode 100644 index 0000000000000000000000000000000000000000..6758051423e602385130834bd15fca7c2aaab604 GIT binary patch literal 35728 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usbd_desc.d b/squeow_sw/build/usbd_desc.d new file mode 100644 index 0000000..6f04039 --- /dev/null +++ b/squeow_sw/build/usbd_desc.d @@ -0,0 +1,88 @@ +build/usbd_desc.o: Src/usbd_desc.c \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + Inc/usbd_conf.h Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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 \ + Inc/usbd_desc.h \ + Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h: +Inc/usbd_conf.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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: +Inc/usbd_desc.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: diff --git a/squeow_sw/build/usbd_desc.lst b/squeow_sw/build/usbd_desc.lst new file mode 100644 index 0000000..52afc53 --- /dev/null +++ b/squeow_sw/build/usbd_desc.lst @@ -0,0 +1,1131 @@ +ARM GAS /tmp/ccDO9gP0.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usbd_desc.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Src/usbd_desc.c" + 20 .section .text.USBD_AUDIO_DeviceDescriptor,"ax",%progbits + 21 .align 1 + 22 .global USBD_AUDIO_DeviceDescriptor + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 USBD_AUDIO_DeviceDescriptor: + 28 .LVL0: + 29 .LFB333: + 1:Src/usbd_desc.c **** /* USER CODE BEGIN Header */ + 2:Src/usbd_desc.c **** /** + 3:Src/usbd_desc.c **** ****************************************************************************** + 4:Src/usbd_desc.c **** * @file : usbd_desc.c + 5:Src/usbd_desc.c **** * @version : v3.0_Cube + 6:Src/usbd_desc.c **** * @brief : This file implements the USB device descriptors. + 7:Src/usbd_desc.c **** ****************************************************************************** + 8:Src/usbd_desc.c **** * @attention + 9:Src/usbd_desc.c **** * + 10:Src/usbd_desc.c **** * Copyright (c) 2022 STMicroelectronics. + 11:Src/usbd_desc.c **** * All rights reserved. + 12:Src/usbd_desc.c **** * + 13:Src/usbd_desc.c **** * This software is licensed under terms that can be found in the LICENSE file + 14:Src/usbd_desc.c **** * in the root directory of this software component. + 15:Src/usbd_desc.c **** * If no LICENSE file comes with this software, it is provided AS-IS. + 16:Src/usbd_desc.c **** * + 17:Src/usbd_desc.c **** ****************************************************************************** + 18:Src/usbd_desc.c **** */ + 19:Src/usbd_desc.c **** /* USER CODE END Header */ + 20:Src/usbd_desc.c **** + 21:Src/usbd_desc.c **** /* Includes ------------------------------------------------------------------*/ + 22:Src/usbd_desc.c **** #include "usbd_core.h" + 23:Src/usbd_desc.c **** #include "usbd_desc.h" + 24:Src/usbd_desc.c **** #include "usbd_conf.h" + 25:Src/usbd_desc.c **** + 26:Src/usbd_desc.c **** /* USER CODE BEGIN INCLUDE */ + 27:Src/usbd_desc.c **** + 28:Src/usbd_desc.c **** /* USER CODE END INCLUDE */ + 29:Src/usbd_desc.c **** + ARM GAS /tmp/ccDO9gP0.s page 2 + + + 30:Src/usbd_desc.c **** /* Private typedef -----------------------------------------------------------*/ + 31:Src/usbd_desc.c **** /* Private define ------------------------------------------------------------*/ + 32:Src/usbd_desc.c **** /* Private macro -------------------------------------------------------------*/ + 33:Src/usbd_desc.c **** + 34:Src/usbd_desc.c **** /* USER CODE BEGIN PV */ + 35:Src/usbd_desc.c **** /* Private variables ---------------------------------------------------------*/ + 36:Src/usbd_desc.c **** + 37:Src/usbd_desc.c **** /* USER CODE END PV */ + 38:Src/usbd_desc.c **** + 39:Src/usbd_desc.c **** /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + 40:Src/usbd_desc.c **** * @{ + 41:Src/usbd_desc.c **** */ + 42:Src/usbd_desc.c **** + 43:Src/usbd_desc.c **** /** @addtogroup USBD_DESC + 44:Src/usbd_desc.c **** * @{ + 45:Src/usbd_desc.c **** */ + 46:Src/usbd_desc.c **** + 47:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_TypesDefinitions USBD_DESC_Private_TypesDefinitions + 48:Src/usbd_desc.c **** * @brief Private types. + 49:Src/usbd_desc.c **** * @{ + 50:Src/usbd_desc.c **** */ + 51:Src/usbd_desc.c **** + 52:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_TYPES */ + 53:Src/usbd_desc.c **** + 54:Src/usbd_desc.c **** /* USER CODE END PRIVATE_TYPES */ + 55:Src/usbd_desc.c **** + 56:Src/usbd_desc.c **** /** + 57:Src/usbd_desc.c **** * @} + 58:Src/usbd_desc.c **** */ + 59:Src/usbd_desc.c **** + 60:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Defines USBD_DESC_Private_Defines + 61:Src/usbd_desc.c **** * @brief Private defines. + 62:Src/usbd_desc.c **** * @{ + 63:Src/usbd_desc.c **** */ + 64:Src/usbd_desc.c **** + 65:Src/usbd_desc.c **** #define USBD_VID 1155 + 66:Src/usbd_desc.c **** #define USBD_LANGID_STRING 1033 + 67:Src/usbd_desc.c **** #define USBD_MANUFACTURER_STRING "STMicroelectronics" + 68:Src/usbd_desc.c **** #define USBD_PID 22336 + 69:Src/usbd_desc.c **** #define USBD_PRODUCT_STRING "STM32 Audio Class" + 70:Src/usbd_desc.c **** #define USBD_CONFIGURATION_STRING "AUDIO Config" + 71:Src/usbd_desc.c **** #define USBD_INTERFACE_STRING "AUDIO Interface" + 72:Src/usbd_desc.c **** + 73:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_DEFINES */ + 74:Src/usbd_desc.c **** + 75:Src/usbd_desc.c **** /* USER CODE END PRIVATE_DEFINES */ + 76:Src/usbd_desc.c **** + 77:Src/usbd_desc.c **** /** + 78:Src/usbd_desc.c **** * @} + 79:Src/usbd_desc.c **** */ + 80:Src/usbd_desc.c **** + 81:Src/usbd_desc.c **** /* USER CODE BEGIN 0 */ + 82:Src/usbd_desc.c **** + 83:Src/usbd_desc.c **** /* USER CODE END 0 */ + 84:Src/usbd_desc.c **** + 85:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Macros USBD_DESC_Private_Macros + 86:Src/usbd_desc.c **** * @brief Private macros. + ARM GAS /tmp/ccDO9gP0.s page 3 + + + 87:Src/usbd_desc.c **** * @{ + 88:Src/usbd_desc.c **** */ + 89:Src/usbd_desc.c **** + 90:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_MACRO */ + 91:Src/usbd_desc.c **** + 92:Src/usbd_desc.c **** /* USER CODE END PRIVATE_MACRO */ + 93:Src/usbd_desc.c **** + 94:Src/usbd_desc.c **** /** + 95:Src/usbd_desc.c **** * @} + 96:Src/usbd_desc.c **** */ + 97:Src/usbd_desc.c **** + 98:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes + 99:Src/usbd_desc.c **** * @brief Private functions declaration. + 100:Src/usbd_desc.c **** * @{ + 101:Src/usbd_desc.c **** */ + 102:Src/usbd_desc.c **** + 103:Src/usbd_desc.c **** static void Get_SerialNum(void); + 104:Src/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len); + 105:Src/usbd_desc.c **** + 106:Src/usbd_desc.c **** /** + 107:Src/usbd_desc.c **** * @} + 108:Src/usbd_desc.c **** */ + 109:Src/usbd_desc.c **** + 110:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes + 111:Src/usbd_desc.c **** * @brief Private functions declaration. + 112:Src/usbd_desc.c **** * @{ + 113:Src/usbd_desc.c **** */ + 114:Src/usbd_desc.c **** + 115:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 116:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 117:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 118:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 119:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 120:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 121:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + 122:Src/usbd_desc.c **** + 123:Src/usbd_desc.c **** /** + 124:Src/usbd_desc.c **** * @} + 125:Src/usbd_desc.c **** */ + 126:Src/usbd_desc.c **** + 127:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables + 128:Src/usbd_desc.c **** * @brief Private variables. + 129:Src/usbd_desc.c **** * @{ + 130:Src/usbd_desc.c **** */ + 131:Src/usbd_desc.c **** + 132:Src/usbd_desc.c **** USBD_DescriptorsTypeDef AUDIO_Desc = + 133:Src/usbd_desc.c **** { + 134:Src/usbd_desc.c **** USBD_AUDIO_DeviceDescriptor, + 135:Src/usbd_desc.c **** USBD_AUDIO_LangIDStrDescriptor, + 136:Src/usbd_desc.c **** USBD_AUDIO_ManufacturerStrDescriptor, + 137:Src/usbd_desc.c **** USBD_AUDIO_ProductStrDescriptor, + 138:Src/usbd_desc.c **** USBD_AUDIO_SerialStrDescriptor, + 139:Src/usbd_desc.c **** USBD_AUDIO_ConfigStrDescriptor, + 140:Src/usbd_desc.c **** USBD_AUDIO_InterfaceStrDescriptor + 141:Src/usbd_desc.c **** }; + 142:Src/usbd_desc.c **** + 143:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ + ARM GAS /tmp/ccDO9gP0.s page 4 + + + 144:Src/usbd_desc.c **** #pragma data_alignment=4 + 145:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ + 146:Src/usbd_desc.c **** /** USB standard device descriptor. */ + 147:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_AUDIO_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = + 148:Src/usbd_desc.c **** { + 149:Src/usbd_desc.c **** 0x12, /*bLength */ + 150:Src/usbd_desc.c **** USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ + 151:Src/usbd_desc.c **** 0x00, /*bcdUSB */ + 152:Src/usbd_desc.c **** 0x02, + 153:Src/usbd_desc.c **** 0x00, /*bDeviceClass*/ + 154:Src/usbd_desc.c **** 0x00, /*bDeviceSubClass*/ + 155:Src/usbd_desc.c **** 0x00, /*bDeviceProtocol*/ + 156:Src/usbd_desc.c **** USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ + 157:Src/usbd_desc.c **** LOBYTE(USBD_VID), /*idVendor*/ + 158:Src/usbd_desc.c **** HIBYTE(USBD_VID), /*idVendor*/ + 159:Src/usbd_desc.c **** LOBYTE(USBD_PID), /*idProduct*/ + 160:Src/usbd_desc.c **** HIBYTE(USBD_PID), /*idProduct*/ + 161:Src/usbd_desc.c **** 0x00, /*bcdDevice rel. 2.00*/ + 162:Src/usbd_desc.c **** 0x02, + 163:Src/usbd_desc.c **** USBD_IDX_MFC_STR, /*Index of manufacturer string*/ + 164:Src/usbd_desc.c **** USBD_IDX_PRODUCT_STR, /*Index of product string*/ + 165:Src/usbd_desc.c **** USBD_IDX_SERIAL_STR, /*Index of serial number string*/ + 166:Src/usbd_desc.c **** USBD_MAX_NUM_CONFIGURATION /*bNumConfigurations*/ + 167:Src/usbd_desc.c **** }; + 168:Src/usbd_desc.c **** + 169:Src/usbd_desc.c **** /* USB_DeviceDescriptor */ + 170:Src/usbd_desc.c **** + 171:Src/usbd_desc.c **** /** + 172:Src/usbd_desc.c **** * @} + 173:Src/usbd_desc.c **** */ + 174:Src/usbd_desc.c **** + 175:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables + 176:Src/usbd_desc.c **** * @brief Private variables. + 177:Src/usbd_desc.c **** * @{ + 178:Src/usbd_desc.c **** */ + 179:Src/usbd_desc.c **** + 180:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ + 181:Src/usbd_desc.c **** #pragma data_alignment=4 + 182:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ + 183:Src/usbd_desc.c **** + 184:Src/usbd_desc.c **** /** USB lang identifier descriptor. */ + 185:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = + 186:Src/usbd_desc.c **** { + 187:Src/usbd_desc.c **** USB_LEN_LANGID_STR_DESC, + 188:Src/usbd_desc.c **** USB_DESC_TYPE_STRING, + 189:Src/usbd_desc.c **** LOBYTE(USBD_LANGID_STRING), + 190:Src/usbd_desc.c **** HIBYTE(USBD_LANGID_STRING) + 191:Src/usbd_desc.c **** }; + 192:Src/usbd_desc.c **** + 193:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ + 194:Src/usbd_desc.c **** #pragma data_alignment=4 + 195:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ + 196:Src/usbd_desc.c **** /* Internal string descriptor. */ + 197:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; + 198:Src/usbd_desc.c **** + 199:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /*!< IAR Compiler */ + 200:Src/usbd_desc.c **** #pragma data_alignment=4 + ARM GAS /tmp/ccDO9gP0.s page 5 + + + 201:Src/usbd_desc.c **** #endif + 202:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = { + 203:Src/usbd_desc.c **** USB_SIZ_STRING_SERIAL, + 204:Src/usbd_desc.c **** USB_DESC_TYPE_STRING, + 205:Src/usbd_desc.c **** }; + 206:Src/usbd_desc.c **** + 207:Src/usbd_desc.c **** /** + 208:Src/usbd_desc.c **** * @} + 209:Src/usbd_desc.c **** */ + 210:Src/usbd_desc.c **** + 211:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Functions USBD_DESC_Private_Functions + 212:Src/usbd_desc.c **** * @brief Private functions. + 213:Src/usbd_desc.c **** * @{ + 214:Src/usbd_desc.c **** */ + 215:Src/usbd_desc.c **** + 216:Src/usbd_desc.c **** /** + 217:Src/usbd_desc.c **** * @brief Return the device descriptor + 218:Src/usbd_desc.c **** * @param speed : Current device speed + 219:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 220:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 221:Src/usbd_desc.c **** */ + 222:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 223:Src/usbd_desc.c **** { + 30 .loc 1 223 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 @ link register save eliminated. + 224:Src/usbd_desc.c **** UNUSED(speed); + 35 .loc 1 224 3 view .LVU1 + 225:Src/usbd_desc.c **** *length = sizeof(USBD_AUDIO_DeviceDesc); + 36 .loc 1 225 3 view .LVU2 + 37 .loc 1 225 11 is_stmt 0 view .LVU3 + 38 0000 1223 movs r3, #18 + 39 0002 0B80 strh r3, [r1] @ movhi + 226:Src/usbd_desc.c **** return USBD_AUDIO_DeviceDesc; + 40 .loc 1 226 3 is_stmt 1 view .LVU4 + 227:Src/usbd_desc.c **** } + 41 .loc 1 227 1 is_stmt 0 view .LVU5 + 42 0004 0048 ldr r0, .L2 + 43 .LVL1: + 44 .loc 1 227 1 view .LVU6 + 45 0006 7047 bx lr + 46 .L3: + 47 .align 2 + 48 .L2: + 49 0008 00000000 .word USBD_AUDIO_DeviceDesc + 50 .cfi_endproc + 51 .LFE333: + 53 .section .text.USBD_AUDIO_LangIDStrDescriptor,"ax",%progbits + 54 .align 1 + 55 .global USBD_AUDIO_LangIDStrDescriptor + 56 .syntax unified + 57 .thumb + 58 .thumb_func + 60 USBD_AUDIO_LangIDStrDescriptor: + 61 .LVL2: + ARM GAS /tmp/ccDO9gP0.s page 6 + + + 62 .LFB334: + 228:Src/usbd_desc.c **** + 229:Src/usbd_desc.c **** /** + 230:Src/usbd_desc.c **** * @brief Return the LangID string descriptor + 231:Src/usbd_desc.c **** * @param speed : Current device speed + 232:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 233:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 234:Src/usbd_desc.c **** */ + 235:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 236:Src/usbd_desc.c **** { + 63 .loc 1 236 1 is_stmt 1 view -0 + 64 .cfi_startproc + 65 @ args = 0, pretend = 0, frame = 0 + 66 @ frame_needed = 0, uses_anonymous_args = 0 + 67 @ link register save eliminated. + 237:Src/usbd_desc.c **** UNUSED(speed); + 68 .loc 1 237 3 view .LVU8 + 238:Src/usbd_desc.c **** *length = sizeof(USBD_LangIDDesc); + 69 .loc 1 238 3 view .LVU9 + 70 .loc 1 238 11 is_stmt 0 view .LVU10 + 71 0000 0423 movs r3, #4 + 72 0002 0B80 strh r3, [r1] @ movhi + 239:Src/usbd_desc.c **** return USBD_LangIDDesc; + 73 .loc 1 239 3 is_stmt 1 view .LVU11 + 240:Src/usbd_desc.c **** } + 74 .loc 1 240 1 is_stmt 0 view .LVU12 + 75 0004 0048 ldr r0, .L5 + 76 .LVL3: + 77 .loc 1 240 1 view .LVU13 + 78 0006 7047 bx lr + 79 .L6: + 80 .align 2 + 81 .L5: + 82 0008 00000000 .word USBD_LangIDDesc + 83 .cfi_endproc + 84 .LFE334: + 86 .section .text.IntToUnicode,"ax",%progbits + 87 .align 1 + 88 .syntax unified + 89 .thumb + 90 .thumb_func + 92 IntToUnicode: + 93 .LVL4: + 94 .LFB341: + 241:Src/usbd_desc.c **** + 242:Src/usbd_desc.c **** /** + 243:Src/usbd_desc.c **** * @brief Return the product string descriptor + 244:Src/usbd_desc.c **** * @param speed : Current device speed + 245:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 246:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 247:Src/usbd_desc.c **** */ + 248:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 249:Src/usbd_desc.c **** { + 250:Src/usbd_desc.c **** if(speed == 0) + 251:Src/usbd_desc.c **** { + 252:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_STRING, USBD_StrDesc, length); + 253:Src/usbd_desc.c **** } + ARM GAS /tmp/ccDO9gP0.s page 7 + + + 254:Src/usbd_desc.c **** else + 255:Src/usbd_desc.c **** { + 256:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_STRING, USBD_StrDesc, length); + 257:Src/usbd_desc.c **** } + 258:Src/usbd_desc.c **** return USBD_StrDesc; + 259:Src/usbd_desc.c **** } + 260:Src/usbd_desc.c **** + 261:Src/usbd_desc.c **** /** + 262:Src/usbd_desc.c **** * @brief Return the manufacturer string descriptor + 263:Src/usbd_desc.c **** * @param speed : Current device speed + 264:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 265:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 266:Src/usbd_desc.c **** */ + 267:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 268:Src/usbd_desc.c **** { + 269:Src/usbd_desc.c **** UNUSED(speed); + 270:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); + 271:Src/usbd_desc.c **** return USBD_StrDesc; + 272:Src/usbd_desc.c **** } + 273:Src/usbd_desc.c **** + 274:Src/usbd_desc.c **** /** + 275:Src/usbd_desc.c **** * @brief Return the serial number string descriptor + 276:Src/usbd_desc.c **** * @param speed : Current device speed + 277:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 278:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 279:Src/usbd_desc.c **** */ + 280:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 281:Src/usbd_desc.c **** { + 282:Src/usbd_desc.c **** UNUSED(speed); + 283:Src/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; + 284:Src/usbd_desc.c **** + 285:Src/usbd_desc.c **** /* Update the serial number string descriptor with the data from the unique + 286:Src/usbd_desc.c **** * ID */ + 287:Src/usbd_desc.c **** Get_SerialNum(); + 288:Src/usbd_desc.c **** + 289:Src/usbd_desc.c **** /* USER CODE BEGIN USBD_AUDIO_SerialStrDescriptor */ + 290:Src/usbd_desc.c **** + 291:Src/usbd_desc.c **** /* USER CODE END USBD_AUDIO_SerialStrDescriptor */ + 292:Src/usbd_desc.c **** + 293:Src/usbd_desc.c **** return (uint8_t *) USBD_StringSerial; + 294:Src/usbd_desc.c **** } + 295:Src/usbd_desc.c **** + 296:Src/usbd_desc.c **** /** + 297:Src/usbd_desc.c **** * @brief Return the configuration string descriptor + 298:Src/usbd_desc.c **** * @param speed : Current device speed + 299:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 300:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 301:Src/usbd_desc.c **** */ + 302:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 303:Src/usbd_desc.c **** { + 304:Src/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) + 305:Src/usbd_desc.c **** { + 306:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING, USBD_StrDesc, length); + 307:Src/usbd_desc.c **** } + 308:Src/usbd_desc.c **** else + 309:Src/usbd_desc.c **** { + 310:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING, USBD_StrDesc, length); + ARM GAS /tmp/ccDO9gP0.s page 8 + + + 311:Src/usbd_desc.c **** } + 312:Src/usbd_desc.c **** return USBD_StrDesc; + 313:Src/usbd_desc.c **** } + 314:Src/usbd_desc.c **** + 315:Src/usbd_desc.c **** /** + 316:Src/usbd_desc.c **** * @brief Return the interface string descriptor + 317:Src/usbd_desc.c **** * @param speed : Current device speed + 318:Src/usbd_desc.c **** * @param length : Pointer to data length variable + 319:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer + 320:Src/usbd_desc.c **** */ + 321:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) + 322:Src/usbd_desc.c **** { + 323:Src/usbd_desc.c **** if(speed == 0) + 324:Src/usbd_desc.c **** { + 325:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_INTERFACE_STRING, USBD_StrDesc, length); + 326:Src/usbd_desc.c **** } + 327:Src/usbd_desc.c **** else + 328:Src/usbd_desc.c **** { + 329:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_INTERFACE_STRING, USBD_StrDesc, length); + 330:Src/usbd_desc.c **** } + 331:Src/usbd_desc.c **** return USBD_StrDesc; + 332:Src/usbd_desc.c **** } + 333:Src/usbd_desc.c **** + 334:Src/usbd_desc.c **** /** + 335:Src/usbd_desc.c **** * @brief Create the serial number string descriptor + 336:Src/usbd_desc.c **** * @param None + 337:Src/usbd_desc.c **** * @retval None + 338:Src/usbd_desc.c **** */ + 339:Src/usbd_desc.c **** static void Get_SerialNum(void) + 340:Src/usbd_desc.c **** { + 341:Src/usbd_desc.c **** uint32_t deviceserial0; + 342:Src/usbd_desc.c **** uint32_t deviceserial1; + 343:Src/usbd_desc.c **** uint32_t deviceserial2; + 344:Src/usbd_desc.c **** + 345:Src/usbd_desc.c **** deviceserial0 = *(uint32_t *) DEVICE_ID1; + 346:Src/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; + 347:Src/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; + 348:Src/usbd_desc.c **** + 349:Src/usbd_desc.c **** deviceserial0 += deviceserial2; + 350:Src/usbd_desc.c **** + 351:Src/usbd_desc.c **** if (deviceserial0 != 0) + 352:Src/usbd_desc.c **** { + 353:Src/usbd_desc.c **** IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8); + 354:Src/usbd_desc.c **** IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); + 355:Src/usbd_desc.c **** } + 356:Src/usbd_desc.c **** } + 357:Src/usbd_desc.c **** + 358:Src/usbd_desc.c **** /** + 359:Src/usbd_desc.c **** * @brief Convert Hex 32Bits value into char + 360:Src/usbd_desc.c **** * @param value: value to convert + 361:Src/usbd_desc.c **** * @param pbuf: pointer to the buffer + 362:Src/usbd_desc.c **** * @param len: buffer length + 363:Src/usbd_desc.c **** * @retval None + 364:Src/usbd_desc.c **** */ + 365:Src/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len) + 366:Src/usbd_desc.c **** { + 95 .loc 1 366 1 is_stmt 1 view -0 + ARM GAS /tmp/ccDO9gP0.s page 9 + + + 96 .cfi_startproc + 97 @ args = 0, pretend = 0, frame = 0 + 98 @ frame_needed = 0, uses_anonymous_args = 0 + 367:Src/usbd_desc.c **** uint8_t idx = 0; + 99 .loc 1 367 3 view .LVU15 + 368:Src/usbd_desc.c **** + 369:Src/usbd_desc.c **** for (idx = 0; idx < len; idx++) + 100 .loc 1 369 3 view .LVU16 + 101 .loc 1 369 12 is_stmt 0 view .LVU17 + 102 0000 0023 movs r3, #0 + 103 .LVL5: + 104 .loc 1 369 21 is_stmt 1 view .LVU18 + 105 0002 9342 cmp r3, r2 + 106 0004 1ED2 bcs .L15 + 366:Src/usbd_desc.c **** uint8_t idx = 0; + 107 .loc 1 366 1 is_stmt 0 view .LVU19 + 108 0006 00B5 push {lr} + 109 .LCFI0: + 110 .cfi_def_cfa_offset 4 + 111 .cfi_offset 14, -4 + 112 0008 10E0 b .L11 + 113 .L9: + 370:Src/usbd_desc.c **** { + 371:Src/usbd_desc.c **** if (((value >> 28)) < 0xA) + 372:Src/usbd_desc.c **** { + 373:Src/usbd_desc.c **** pbuf[2 * idx] = (value >> 28) + '0'; + 374:Src/usbd_desc.c **** } + 375:Src/usbd_desc.c **** else + 376:Src/usbd_desc.c **** { + 377:Src/usbd_desc.c **** pbuf[2 * idx] = (value >> 28) + 'A' - 10; + 114 .loc 1 377 7 is_stmt 1 view .LVU20 + 115 .loc 1 377 43 is_stmt 0 view .LVU21 + 116 000a 0CF1370C add ip, ip, #55 + 117 .loc 1 377 21 view .LVU22 + 118 000e 01F813C0 strb ip, [r1, r3, lsl #1] + 119 .L10: + 378:Src/usbd_desc.c **** } + 379:Src/usbd_desc.c **** + 380:Src/usbd_desc.c **** value = value << 4; + 120 .loc 1 380 5 is_stmt 1 discriminator 2 view .LVU23 + 121 .loc 1 380 11 is_stmt 0 discriminator 2 view .LVU24 + 122 0012 0001 lsls r0, r0, #4 + 123 .LVL6: + 381:Src/usbd_desc.c **** + 382:Src/usbd_desc.c **** pbuf[2 * idx + 1] = 0; + 124 .loc 1 382 5 is_stmt 1 discriminator 2 view .LVU25 + 125 .loc 1 382 12 is_stmt 0 discriminator 2 view .LVU26 + 126 0014 4FEA430C lsl ip, r3, #1 + 127 .loc 1 382 9 discriminator 2 view .LVU27 + 128 0018 0CF1010C add ip, ip, #1 + 129 .loc 1 382 23 discriminator 2 view .LVU28 + 130 001c 4FF0000E mov lr, #0 + 131 0020 01F80CE0 strb lr, [r1, ip] + 369:Src/usbd_desc.c **** { + 132 .loc 1 369 31 is_stmt 1 discriminator 2 view .LVU29 + 133 0024 0133 adds r3, r3, #1 + 134 .LVL7: + ARM GAS /tmp/ccDO9gP0.s page 10 + + + 369:Src/usbd_desc.c **** { + 135 .loc 1 369 31 is_stmt 0 discriminator 2 view .LVU30 + 136 0026 DBB2 uxtb r3, r3 + 137 .LVL8: + 369:Src/usbd_desc.c **** { + 138 .loc 1 369 21 is_stmt 1 discriminator 2 view .LVU31 + 139 0028 9342 cmp r3, r2 + 140 002a 09D2 bcs .L16 + 141 .L11: + 371:Src/usbd_desc.c **** { + 142 .loc 1 371 5 view .LVU32 + 371:Src/usbd_desc.c **** { + 143 .loc 1 371 17 is_stmt 0 view .LVU33 + 144 002c 4FEA107C lsr ip, r0, #28 + 371:Src/usbd_desc.c **** { + 145 .loc 1 371 8 view .LVU34 + 146 0030 B0F1204F cmp r0, #-1610612736 + 147 0034 E9D2 bcs .L9 + 373:Src/usbd_desc.c **** } + 148 .loc 1 373 7 is_stmt 1 view .LVU35 + 373:Src/usbd_desc.c **** } + 149 .loc 1 373 37 is_stmt 0 view .LVU36 + 150 0036 0CF1300C add ip, ip, #48 + 373:Src/usbd_desc.c **** } + 151 .loc 1 373 21 view .LVU37 + 152 003a 01F813C0 strb ip, [r1, r3, lsl #1] + 153 003e E8E7 b .L10 + 154 .L16: + 383:Src/usbd_desc.c **** } + 384:Src/usbd_desc.c **** } + 155 .loc 1 384 1 view .LVU38 + 156 0040 5DF804FB ldr pc, [sp], #4 + 157 .L15: + 158 .LCFI1: + 159 .cfi_def_cfa_offset 0 + 160 .cfi_restore 14 + 161 .loc 1 384 1 view .LVU39 + 162 0044 7047 bx lr + 163 .cfi_endproc + 164 .LFE341: + 166 .section .text.Get_SerialNum,"ax",%progbits + 167 .align 1 + 168 .syntax unified + 169 .thumb + 170 .thumb_func + 172 Get_SerialNum: + 173 .LFB340: + 340:Src/usbd_desc.c **** uint32_t deviceserial0; + 174 .loc 1 340 1 is_stmt 1 view -0 + 175 .cfi_startproc + 176 @ args = 0, pretend = 0, frame = 0 + 177 @ frame_needed = 0, uses_anonymous_args = 0 + 178 0000 38B5 push {r3, r4, r5, lr} + 179 .LCFI2: + 180 .cfi_def_cfa_offset 16 + 181 .cfi_offset 3, -16 + 182 .cfi_offset 4, -12 + ARM GAS /tmp/ccDO9gP0.s page 11 + + + 183 .cfi_offset 5, -8 + 184 .cfi_offset 14, -4 + 341:Src/usbd_desc.c **** uint32_t deviceserial1; + 185 .loc 1 341 3 view .LVU41 + 342:Src/usbd_desc.c **** uint32_t deviceserial2; + 186 .loc 1 342 3 view .LVU42 + 343:Src/usbd_desc.c **** + 187 .loc 1 343 3 view .LVU43 + 345:Src/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; + 188 .loc 1 345 3 view .LVU44 + 345:Src/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; + 189 .loc 1 345 17 is_stmt 0 view .LVU45 + 190 0002 0B4B ldr r3, .L21 + 191 0004 D3F89005 ldr r0, [r3, #1424] + 192 .LVL9: + 346:Src/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; + 193 .loc 1 346 3 is_stmt 1 view .LVU46 + 346:Src/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; + 194 .loc 1 346 17 is_stmt 0 view .LVU47 + 195 0008 D3F89445 ldr r4, [r3, #1428] + 196 .LVL10: + 347:Src/usbd_desc.c **** + 197 .loc 1 347 3 is_stmt 1 view .LVU48 + 347:Src/usbd_desc.c **** + 198 .loc 1 347 17 is_stmt 0 view .LVU49 + 199 000c D3F89835 ldr r3, [r3, #1432] + 200 .LVL11: + 349:Src/usbd_desc.c **** + 201 .loc 1 349 3 is_stmt 1 view .LVU50 + 351:Src/usbd_desc.c **** { + 202 .loc 1 351 3 view .LVU51 + 351:Src/usbd_desc.c **** { + 203 .loc 1 351 6 is_stmt 0 view .LVU52 + 204 0010 C018 adds r0, r0, r3 + 205 .LVL12: + 351:Src/usbd_desc.c **** { + 206 .loc 1 351 6 view .LVU53 + 207 0012 00D1 bne .L20 + 208 .LVL13: + 209 .L17: + 356:Src/usbd_desc.c **** + 210 .loc 1 356 1 view .LVU54 + 211 0014 38BD pop {r3, r4, r5, pc} + 212 .LVL14: + 213 .L20: + 353:Src/usbd_desc.c **** IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); + 214 .loc 1 353 5 is_stmt 1 view .LVU55 + 215 0016 074D ldr r5, .L21+4 + 216 0018 0822 movs r2, #8 + 217 001a 2946 mov r1, r5 + 218 001c FFF7FEFF bl IntToUnicode + 219 .LVL15: + 354:Src/usbd_desc.c **** } + 220 .loc 1 354 5 view .LVU56 + 221 0020 0422 movs r2, #4 + 222 0022 05F11001 add r1, r5, #16 + 223 0026 2046 mov r0, r4 + ARM GAS /tmp/ccDO9gP0.s page 12 + + + 224 0028 FFF7FEFF bl IntToUnicode + 225 .LVL16: + 356:Src/usbd_desc.c **** + 226 .loc 1 356 1 is_stmt 0 view .LVU57 + 227 002c F2E7 b .L17 + 228 .L22: + 229 002e 00BF .align 2 + 230 .L21: + 231 0030 0070FF1F .word 536834048 + 232 0034 02000000 .word USBD_StringSerial+2 + 233 .cfi_endproc + 234 .LFE340: + 236 .section .text.USBD_AUDIO_SerialStrDescriptor,"ax",%progbits + 237 .align 1 + 238 .global USBD_AUDIO_SerialStrDescriptor + 239 .syntax unified + 240 .thumb + 241 .thumb_func + 243 USBD_AUDIO_SerialStrDescriptor: + 244 .LVL17: + 245 .LFB337: + 281:Src/usbd_desc.c **** UNUSED(speed); + 246 .loc 1 281 1 is_stmt 1 view -0 + 247 .cfi_startproc + 248 @ args = 0, pretend = 0, frame = 0 + 249 @ frame_needed = 0, uses_anonymous_args = 0 + 281:Src/usbd_desc.c **** UNUSED(speed); + 250 .loc 1 281 1 is_stmt 0 view .LVU59 + 251 0000 08B5 push {r3, lr} + 252 .LCFI3: + 253 .cfi_def_cfa_offset 8 + 254 .cfi_offset 3, -8 + 255 .cfi_offset 14, -4 + 282:Src/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; + 256 .loc 1 282 3 is_stmt 1 view .LVU60 + 283:Src/usbd_desc.c **** + 257 .loc 1 283 3 view .LVU61 + 283:Src/usbd_desc.c **** + 258 .loc 1 283 11 is_stmt 0 view .LVU62 + 259 0002 1A23 movs r3, #26 + 260 0004 0B80 strh r3, [r1] @ movhi + 287:Src/usbd_desc.c **** + 261 .loc 1 287 3 is_stmt 1 view .LVU63 + 262 0006 FFF7FEFF bl Get_SerialNum + 263 .LVL18: + 293:Src/usbd_desc.c **** } + 264 .loc 1 293 3 view .LVU64 + 294:Src/usbd_desc.c **** + 265 .loc 1 294 1 is_stmt 0 view .LVU65 + 266 000a 0148 ldr r0, .L25 + 267 000c 08BD pop {r3, pc} + 268 .L26: + 269 000e 00BF .align 2 + 270 .L25: + 271 0010 00000000 .word USBD_StringSerial + 272 .cfi_endproc + 273 .LFE337: + ARM GAS /tmp/ccDO9gP0.s page 13 + + + 275 .section .rodata.USBD_AUDIO_ProductStrDescriptor.str1.4,"aMS",%progbits,1 + 276 .align 2 + 277 .LC0: + 278 0000 53544D33 .ascii "STM32 Audio Class\000" + 278 32204175 + 278 64696F20 + 278 436C6173 + 278 7300 + 279 .section .text.USBD_AUDIO_ProductStrDescriptor,"ax",%progbits + 280 .align 1 + 281 .global USBD_AUDIO_ProductStrDescriptor + 282 .syntax unified + 283 .thumb + 284 .thumb_func + 286 USBD_AUDIO_ProductStrDescriptor: + 287 .LVL19: + 288 .LFB335: + 249:Src/usbd_desc.c **** if(speed == 0) + 289 .loc 1 249 1 is_stmt 1 view -0 + 290 .cfi_startproc + 291 @ args = 0, pretend = 0, frame = 0 + 292 @ frame_needed = 0, uses_anonymous_args = 0 + 249:Src/usbd_desc.c **** if(speed == 0) + 293 .loc 1 249 1 is_stmt 0 view .LVU67 + 294 0000 08B5 push {r3, lr} + 295 .LCFI4: + 296 .cfi_def_cfa_offset 8 + 297 .cfi_offset 3, -8 + 298 .cfi_offset 14, -4 + 299 0002 0A46 mov r2, r1 + 250:Src/usbd_desc.c **** { + 300 .loc 1 250 3 is_stmt 1 view .LVU68 + 250:Src/usbd_desc.c **** { + 301 .loc 1 250 5 is_stmt 0 view .LVU69 + 302 0004 28B9 cbnz r0, .L28 + 252:Src/usbd_desc.c **** } + 303 .loc 1 252 5 is_stmt 1 view .LVU70 + 304 0006 0549 ldr r1, .L31 + 305 .LVL20: + 252:Src/usbd_desc.c **** } + 306 .loc 1 252 5 is_stmt 0 view .LVU71 + 307 0008 0548 ldr r0, .L31+4 + 308 .LVL21: + 252:Src/usbd_desc.c **** } + 309 .loc 1 252 5 view .LVU72 + 310 000a FFF7FEFF bl USBD_GetString + 311 .LVL22: + 312 .L29: + 258:Src/usbd_desc.c **** } + 313 .loc 1 258 3 is_stmt 1 view .LVU73 + 259:Src/usbd_desc.c **** + 314 .loc 1 259 1 is_stmt 0 view .LVU74 + 315 000e 0348 ldr r0, .L31 + 316 0010 08BD pop {r3, pc} + 317 .LVL23: + 318 .L28: + 256:Src/usbd_desc.c **** } + ARM GAS /tmp/ccDO9gP0.s page 14 + + + 319 .loc 1 256 5 is_stmt 1 view .LVU75 + 320 0012 0249 ldr r1, .L31 + 321 .LVL24: + 256:Src/usbd_desc.c **** } + 322 .loc 1 256 5 is_stmt 0 view .LVU76 + 323 0014 0248 ldr r0, .L31+4 + 324 .LVL25: + 256:Src/usbd_desc.c **** } + 325 .loc 1 256 5 view .LVU77 + 326 0016 FFF7FEFF bl USBD_GetString + 327 .LVL26: + 256:Src/usbd_desc.c **** } + 328 .loc 1 256 5 view .LVU78 + 329 001a F8E7 b .L29 + 330 .L32: + 331 .align 2 + 332 .L31: + 333 001c 00000000 .word USBD_StrDesc + 334 0020 00000000 .word .LC0 + 335 .cfi_endproc + 336 .LFE335: + 338 .section .rodata.USBD_AUDIO_ManufacturerStrDescriptor.str1.4,"aMS",%progbits,1 + 339 .align 2 + 340 .LC1: + 341 0000 53544D69 .ascii "STMicroelectronics\000" + 341 63726F65 + 341 6C656374 + 341 726F6E69 + 341 637300 + 342 .section .text.USBD_AUDIO_ManufacturerStrDescriptor,"ax",%progbits + 343 .align 1 + 344 .global USBD_AUDIO_ManufacturerStrDescriptor + 345 .syntax unified + 346 .thumb + 347 .thumb_func + 349 USBD_AUDIO_ManufacturerStrDescriptor: + 350 .LVL27: + 351 .LFB336: + 268:Src/usbd_desc.c **** UNUSED(speed); + 352 .loc 1 268 1 is_stmt 1 view -0 + 353 .cfi_startproc + 354 @ args = 0, pretend = 0, frame = 0 + 355 @ frame_needed = 0, uses_anonymous_args = 0 + 268:Src/usbd_desc.c **** UNUSED(speed); + 356 .loc 1 268 1 is_stmt 0 view .LVU80 + 357 0000 10B5 push {r4, lr} + 358 .LCFI5: + 359 .cfi_def_cfa_offset 8 + 360 .cfi_offset 4, -8 + 361 .cfi_offset 14, -4 + 362 0002 0A46 mov r2, r1 + 269:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); + 363 .loc 1 269 3 is_stmt 1 view .LVU81 + 270:Src/usbd_desc.c **** return USBD_StrDesc; + 364 .loc 1 270 3 view .LVU82 + 365 0004 034C ldr r4, .L35 + 366 0006 2146 mov r1, r4 + ARM GAS /tmp/ccDO9gP0.s page 15 + + + 367 .LVL28: + 270:Src/usbd_desc.c **** return USBD_StrDesc; + 368 .loc 1 270 3 is_stmt 0 view .LVU83 + 369 0008 0348 ldr r0, .L35+4 + 370 .LVL29: + 270:Src/usbd_desc.c **** return USBD_StrDesc; + 371 .loc 1 270 3 view .LVU84 + 372 000a FFF7FEFF bl USBD_GetString + 373 .LVL30: + 271:Src/usbd_desc.c **** } + 374 .loc 1 271 3 is_stmt 1 view .LVU85 + 272:Src/usbd_desc.c **** + 375 .loc 1 272 1 is_stmt 0 view .LVU86 + 376 000e 2046 mov r0, r4 + 377 0010 10BD pop {r4, pc} + 378 .L36: + 379 0012 00BF .align 2 + 380 .L35: + 381 0014 00000000 .word USBD_StrDesc + 382 0018 00000000 .word .LC1 + 383 .cfi_endproc + 384 .LFE336: + 386 .section .rodata.USBD_AUDIO_ConfigStrDescriptor.str1.4,"aMS",%progbits,1 + 387 .align 2 + 388 .LC2: + 389 0000 41554449 .ascii "AUDIO Config\000" + 389 4F20436F + 389 6E666967 + 389 00 + 390 .section .text.USBD_AUDIO_ConfigStrDescriptor,"ax",%progbits + 391 .align 1 + 392 .global USBD_AUDIO_ConfigStrDescriptor + 393 .syntax unified + 394 .thumb + 395 .thumb_func + 397 USBD_AUDIO_ConfigStrDescriptor: + 398 .LVL31: + 399 .LFB338: + 303:Src/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) + 400 .loc 1 303 1 is_stmt 1 view -0 + 401 .cfi_startproc + 402 @ args = 0, pretend = 0, frame = 0 + 403 @ frame_needed = 0, uses_anonymous_args = 0 + 303:Src/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) + 404 .loc 1 303 1 is_stmt 0 view .LVU88 + 405 0000 08B5 push {r3, lr} + 406 .LCFI6: + 407 .cfi_def_cfa_offset 8 + 408 .cfi_offset 3, -8 + 409 .cfi_offset 14, -4 + 410 0002 0A46 mov r2, r1 + 304:Src/usbd_desc.c **** { + 411 .loc 1 304 3 is_stmt 1 view .LVU89 + 304:Src/usbd_desc.c **** { + 412 .loc 1 304 5 is_stmt 0 view .LVU90 + 413 0004 28B9 cbnz r0, .L38 + 306:Src/usbd_desc.c **** } + ARM GAS /tmp/ccDO9gP0.s page 16 + + + 414 .loc 1 306 5 is_stmt 1 view .LVU91 + 415 0006 0549 ldr r1, .L41 + 416 .LVL32: + 306:Src/usbd_desc.c **** } + 417 .loc 1 306 5 is_stmt 0 view .LVU92 + 418 0008 0548 ldr r0, .L41+4 + 419 .LVL33: + 306:Src/usbd_desc.c **** } + 420 .loc 1 306 5 view .LVU93 + 421 000a FFF7FEFF bl USBD_GetString + 422 .LVL34: + 423 .L39: + 312:Src/usbd_desc.c **** } + 424 .loc 1 312 3 is_stmt 1 view .LVU94 + 313:Src/usbd_desc.c **** + 425 .loc 1 313 1 is_stmt 0 view .LVU95 + 426 000e 0348 ldr r0, .L41 + 427 0010 08BD pop {r3, pc} + 428 .LVL35: + 429 .L38: + 310:Src/usbd_desc.c **** } + 430 .loc 1 310 5 is_stmt 1 view .LVU96 + 431 0012 0249 ldr r1, .L41 + 432 .LVL36: + 310:Src/usbd_desc.c **** } + 433 .loc 1 310 5 is_stmt 0 view .LVU97 + 434 0014 0248 ldr r0, .L41+4 + 435 .LVL37: + 310:Src/usbd_desc.c **** } + 436 .loc 1 310 5 view .LVU98 + 437 0016 FFF7FEFF bl USBD_GetString + 438 .LVL38: + 310:Src/usbd_desc.c **** } + 439 .loc 1 310 5 view .LVU99 + 440 001a F8E7 b .L39 + 441 .L42: + 442 .align 2 + 443 .L41: + 444 001c 00000000 .word USBD_StrDesc + 445 0020 00000000 .word .LC2 + 446 .cfi_endproc + 447 .LFE338: + 449 .section .rodata.USBD_AUDIO_InterfaceStrDescriptor.str1.4,"aMS",%progbits,1 + 450 .align 2 + 451 .LC3: + 452 0000 41554449 .ascii "AUDIO Interface\000" + 452 4F20496E + 452 74657266 + 452 61636500 + 453 .section .text.USBD_AUDIO_InterfaceStrDescriptor,"ax",%progbits + 454 .align 1 + 455 .global USBD_AUDIO_InterfaceStrDescriptor + 456 .syntax unified + 457 .thumb + 458 .thumb_func + 460 USBD_AUDIO_InterfaceStrDescriptor: + 461 .LVL39: + ARM GAS /tmp/ccDO9gP0.s page 17 + + + 462 .LFB339: + 322:Src/usbd_desc.c **** if(speed == 0) + 463 .loc 1 322 1 is_stmt 1 view -0 + 464 .cfi_startproc + 465 @ args = 0, pretend = 0, frame = 0 + 466 @ frame_needed = 0, uses_anonymous_args = 0 + 322:Src/usbd_desc.c **** if(speed == 0) + 467 .loc 1 322 1 is_stmt 0 view .LVU101 + 468 0000 08B5 push {r3, lr} + 469 .LCFI7: + 470 .cfi_def_cfa_offset 8 + 471 .cfi_offset 3, -8 + 472 .cfi_offset 14, -4 + 473 0002 0A46 mov r2, r1 + 323:Src/usbd_desc.c **** { + 474 .loc 1 323 3 is_stmt 1 view .LVU102 + 323:Src/usbd_desc.c **** { + 475 .loc 1 323 5 is_stmt 0 view .LVU103 + 476 0004 28B9 cbnz r0, .L44 + 325:Src/usbd_desc.c **** } + 477 .loc 1 325 5 is_stmt 1 view .LVU104 + 478 0006 0549 ldr r1, .L47 + 479 .LVL40: + 325:Src/usbd_desc.c **** } + 480 .loc 1 325 5 is_stmt 0 view .LVU105 + 481 0008 0548 ldr r0, .L47+4 + 482 .LVL41: + 325:Src/usbd_desc.c **** } + 483 .loc 1 325 5 view .LVU106 + 484 000a FFF7FEFF bl USBD_GetString + 485 .LVL42: + 486 .L45: + 331:Src/usbd_desc.c **** } + 487 .loc 1 331 3 is_stmt 1 view .LVU107 + 332:Src/usbd_desc.c **** + 488 .loc 1 332 1 is_stmt 0 view .LVU108 + 489 000e 0348 ldr r0, .L47 + 490 0010 08BD pop {r3, pc} + 491 .LVL43: + 492 .L44: + 329:Src/usbd_desc.c **** } + 493 .loc 1 329 5 is_stmt 1 view .LVU109 + 494 0012 0249 ldr r1, .L47 + 495 .LVL44: + 329:Src/usbd_desc.c **** } + 496 .loc 1 329 5 is_stmt 0 view .LVU110 + 497 0014 0248 ldr r0, .L47+4 + 498 .LVL45: + 329:Src/usbd_desc.c **** } + 499 .loc 1 329 5 view .LVU111 + 500 0016 FFF7FEFF bl USBD_GetString + 501 .LVL46: + 329:Src/usbd_desc.c **** } + 502 .loc 1 329 5 view .LVU112 + 503 001a F8E7 b .L45 + 504 .L48: + 505 .align 2 + ARM GAS /tmp/ccDO9gP0.s page 18 + + + 506 .L47: + 507 001c 00000000 .word USBD_StrDesc + 508 0020 00000000 .word .LC3 + 509 .cfi_endproc + 510 .LFE339: + 512 .global USBD_StringSerial + 513 .section .data.USBD_StringSerial,"aw" + 514 .align 2 + 517 USBD_StringSerial: + 518 0000 1A0300 .ascii "\032\003\000" + 519 0003 00000000 .space 23 + 519 00000000 + 519 00000000 + 519 00000000 + 519 00000000 + 520 .global USBD_StrDesc + 521 .section .bss.USBD_StrDesc,"aw",%nobits + 522 .align 2 + 525 USBD_StrDesc: + 526 0000 00000000 .space 512 + 526 00000000 + 526 00000000 + 526 00000000 + 526 00000000 + 527 .global USBD_LangIDDesc + 528 .section .data.USBD_LangIDDesc,"aw" + 529 .align 2 + 532 USBD_LangIDDesc: + 533 0000 04030904 .ascii "\004\003\011\004" + 534 .global USBD_AUDIO_DeviceDesc + 535 .section .data.USBD_AUDIO_DeviceDesc,"aw" + 536 .align 2 + 539 USBD_AUDIO_DeviceDesc: + 540 0000 12010002 .ascii "\022\001\000\002\000\000\000@\203\004@W\000\002\001" + 540 00000040 + 540 83044057 + 540 000201 + 541 000f 020301 .ascii "\002\003\001" + 542 .global AUDIO_Desc + 543 .section .data.AUDIO_Desc,"aw" + 544 .align 2 + 547 AUDIO_Desc: + 548 0000 00000000 .word USBD_AUDIO_DeviceDescriptor + 549 0004 00000000 .word USBD_AUDIO_LangIDStrDescriptor + 550 0008 00000000 .word USBD_AUDIO_ManufacturerStrDescriptor + 551 000c 00000000 .word USBD_AUDIO_ProductStrDescriptor + 552 0010 00000000 .word USBD_AUDIO_SerialStrDescriptor + 553 0014 00000000 .word USBD_AUDIO_ConfigStrDescriptor + 554 0018 00000000 .word USBD_AUDIO_InterfaceStrDescriptor + 555 001c 00000000 .space 4 + 556 .text + 557 .Letext0: + 558 .file 2 "/usr/include/newlib/machine/_default_types.h" + 559 .file 3 "/usr/include/newlib/sys/_stdint.h" + 560 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 561 .file 5 "Inc/usbd_desc.h" + 562 .file 6 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" + ARM GAS /tmp/ccDO9gP0.s page 19 + + + ARM GAS /tmp/ccDO9gP0.s page 20 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_desc.c + /tmp/ccDO9gP0.s:21 .text.USBD_AUDIO_DeviceDescriptor:00000000 $t + /tmp/ccDO9gP0.s:27 .text.USBD_AUDIO_DeviceDescriptor:00000000 USBD_AUDIO_DeviceDescriptor + /tmp/ccDO9gP0.s:49 .text.USBD_AUDIO_DeviceDescriptor:00000008 $d + /tmp/ccDO9gP0.s:539 .data.USBD_AUDIO_DeviceDesc:00000000 USBD_AUDIO_DeviceDesc + /tmp/ccDO9gP0.s:54 .text.USBD_AUDIO_LangIDStrDescriptor:00000000 $t + /tmp/ccDO9gP0.s:60 .text.USBD_AUDIO_LangIDStrDescriptor:00000000 USBD_AUDIO_LangIDStrDescriptor + /tmp/ccDO9gP0.s:82 .text.USBD_AUDIO_LangIDStrDescriptor:00000008 $d + /tmp/ccDO9gP0.s:532 .data.USBD_LangIDDesc:00000000 USBD_LangIDDesc + /tmp/ccDO9gP0.s:87 .text.IntToUnicode:00000000 $t + /tmp/ccDO9gP0.s:92 .text.IntToUnicode:00000000 IntToUnicode + /tmp/ccDO9gP0.s:167 .text.Get_SerialNum:00000000 $t + /tmp/ccDO9gP0.s:172 .text.Get_SerialNum:00000000 Get_SerialNum + /tmp/ccDO9gP0.s:231 .text.Get_SerialNum:00000030 $d + /tmp/ccDO9gP0.s:517 .data.USBD_StringSerial:00000000 USBD_StringSerial + /tmp/ccDO9gP0.s:237 .text.USBD_AUDIO_SerialStrDescriptor:00000000 $t + /tmp/ccDO9gP0.s:243 .text.USBD_AUDIO_SerialStrDescriptor:00000000 USBD_AUDIO_SerialStrDescriptor + /tmp/ccDO9gP0.s:271 .text.USBD_AUDIO_SerialStrDescriptor:00000010 $d + /tmp/ccDO9gP0.s:276 .rodata.USBD_AUDIO_ProductStrDescriptor.str1.4:00000000 $d + /tmp/ccDO9gP0.s:280 .text.USBD_AUDIO_ProductStrDescriptor:00000000 $t + /tmp/ccDO9gP0.s:286 .text.USBD_AUDIO_ProductStrDescriptor:00000000 USBD_AUDIO_ProductStrDescriptor + /tmp/ccDO9gP0.s:333 .text.USBD_AUDIO_ProductStrDescriptor:0000001c $d + /tmp/ccDO9gP0.s:525 .bss.USBD_StrDesc:00000000 USBD_StrDesc + /tmp/ccDO9gP0.s:339 .rodata.USBD_AUDIO_ManufacturerStrDescriptor.str1.4:00000000 $d + /tmp/ccDO9gP0.s:343 .text.USBD_AUDIO_ManufacturerStrDescriptor:00000000 $t + /tmp/ccDO9gP0.s:349 .text.USBD_AUDIO_ManufacturerStrDescriptor:00000000 USBD_AUDIO_ManufacturerStrDescriptor + /tmp/ccDO9gP0.s:381 .text.USBD_AUDIO_ManufacturerStrDescriptor:00000014 $d + /tmp/ccDO9gP0.s:387 .rodata.USBD_AUDIO_ConfigStrDescriptor.str1.4:00000000 $d + /tmp/ccDO9gP0.s:391 .text.USBD_AUDIO_ConfigStrDescriptor:00000000 $t + /tmp/ccDO9gP0.s:397 .text.USBD_AUDIO_ConfigStrDescriptor:00000000 USBD_AUDIO_ConfigStrDescriptor + /tmp/ccDO9gP0.s:444 .text.USBD_AUDIO_ConfigStrDescriptor:0000001c $d + /tmp/ccDO9gP0.s:450 .rodata.USBD_AUDIO_InterfaceStrDescriptor.str1.4:00000000 $d + /tmp/ccDO9gP0.s:454 .text.USBD_AUDIO_InterfaceStrDescriptor:00000000 $t + /tmp/ccDO9gP0.s:460 .text.USBD_AUDIO_InterfaceStrDescriptor:00000000 USBD_AUDIO_InterfaceStrDescriptor + /tmp/ccDO9gP0.s:507 .text.USBD_AUDIO_InterfaceStrDescriptor:0000001c $d + /tmp/ccDO9gP0.s:514 .data.USBD_StringSerial:00000000 $d + /tmp/ccDO9gP0.s:522 .bss.USBD_StrDesc:00000000 $d + /tmp/ccDO9gP0.s:529 .data.USBD_LangIDDesc:00000000 $d + /tmp/ccDO9gP0.s:536 .data.USBD_AUDIO_DeviceDesc:00000000 $d + /tmp/ccDO9gP0.s:547 .data.AUDIO_Desc:00000000 AUDIO_Desc + /tmp/ccDO9gP0.s:544 .data.AUDIO_Desc:00000000 $d + +UNDEFINED SYMBOLS +USBD_GetString diff --git a/squeow_sw/build/usbd_desc.o b/squeow_sw/build/usbd_desc.o new file mode 100644 index 0000000000000000000000000000000000000000..e6dee593094562dac4355c9d0e2ea78eca8bf939 GIT binary patch literal 13676 zcmdU0YjB*^c|K=v(rRT{S4*;uy|#rf7_BZg*ajP0vMgKJ#uwRKQb1mI_`36#r#106Jji~Bt1d(ZB- z>y_gl{gX5P^qlu{-uFG1@7%ui!3|q_wbsfetrn|1rPTecM&e&?V6o~{9jbOg=!ja>Z$7El_yqI>dCrimEQKw`pU`^x^mlxs!C5*9@oo${lww!;LF?I zsowwiiSV}ne!22QyU~67t!pNIpVI2er$U=wnf$W9PuPMN;(OguFljm6KZ%uFw>mrg!!&{wM!n_}Iq zzI9h9kM?-oomsk=+7VEu5PDP3g?{CgF!8ez${rn9=2Oaq;91(V8Y&)L{$D8K@%Uc= z+q)knJ*%28r^HhhB<1rDgYw?a{I=!^N_=IXuuQrCL6q^7mt6y+KA%4^o}uhbYL@#J zfeGu?G~2*GO?B-w^h@Sj>MvzpGn)4LA>{qOBj)d;_!}tGjLr9<{sW-wHIz_g)8SH= zy-ml;dk$E>kG;QupginTI`}2Dj76KMxMQhZuP1-|z<&V{DZj$oi&h?`Obi z3(3E(`e&MB>Gz6;dPH#X3o+t8)fP_wG}05RyFHD2V>sncHt71$Zj`T#N^R?+!m zs#iagzQ^=5_*SZye~|R+P;KaAZcHy=JF)N2$1~$mx){^TX-Ds99F32Y>^?$rXH#P6 zMx~QFL~<9N%kZfBBaEkCe5?fLW;}WVmYS0^w_8`z$HRCYz|(wy%*!3->tMV_=3Qi7 z;V>t`_!!U3F#fPwyC9sUcX+b+yHl@Jvl%M|v-EaP#t~Ihgo*SV-9}SgI%N7AimC
Y~uap;e*2I!tXMDaXV%9ZKW{eEO0QvyPeu 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/build/usbd_ioreq.d b/squeow_sw/build/usbd_ioreq.d new file mode 100644 index 0000000..efed58a --- /dev/null +++ b/squeow_sw/build/usbd_ioreq.d @@ -0,0 +1,85 @@ +build/usbd_ioreq.o: \ + 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 \ + Inc/usbd_conf.h Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \ + Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h \ + Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \ + Inc/stm32g4xx_hal_conf.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \ + Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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_ioreq.h: +Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: +Inc/usbd_conf.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h: +Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h: +Drivers/CMSIS/Include/core_cm4.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/STM32G4xx/Include/system_stm32g4xx.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h: +Inc/stm32g4xx_hal_conf.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h: +Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h: +Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_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: diff --git a/squeow_sw/build/usbd_ioreq.lst b/squeow_sw/build/usbd_ioreq.lst new file mode 100644 index 0000000..d0bf3d7 --- /dev/null +++ b/squeow_sw/build/usbd_ioreq.lst @@ -0,0 +1,549 @@ +ARM GAS /tmp/ccxQwdeR.s page 1 + + + 1 .cpu cortex-m4 + 2 .arch armv7e-m + 3 .fpu fpv4-sp-d16 + 4 .eabi_attribute 27, 1 + 5 .eabi_attribute 28, 1 + 6 .eabi_attribute 20, 1 + 7 .eabi_attribute 21, 1 + 8 .eabi_attribute 23, 3 + 9 .eabi_attribute 24, 1 + 10 .eabi_attribute 25, 1 + 11 .eabi_attribute 26, 1 + 12 .eabi_attribute 30, 1 + 13 .eabi_attribute 34, 1 + 14 .eabi_attribute 18, 4 + 15 .file "usbd_ioreq.c" + 16 .text + 17 .Ltext0: + 18 .cfi_sections .debug_frame + 19 .file 1 "Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c" + 20 .section .text.USBD_CtlSendData,"ax",%progbits + 21 .align 1 + 22 .global USBD_CtlSendData + 23 .syntax unified + 24 .thumb + 25 .thumb_func + 27 USBD_CtlSendData: + 28 .LVL0: + 29 .LFB333: + 1:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 2:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** ****************************************************************************** + 3:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @file usbd_ioreq.c + 4:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @author MCD Application Team + 5:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief This file provides the IO requests APIs for control endpoints. + 6:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** ****************************************************************************** + 7:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @attention + 8:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * + 9:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** *

© Copyright (c) 2015 STMicroelectronics. + 10:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * All rights reserved.

+ 11:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * + 12:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * This software component is licensed by ST under Ultimate Liberty license + 13:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * SLA0044, the "License"; You may not use this file except in compliance with + 14:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * the License. You may obtain a copy of the License at: + 15:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * www.st.com/SLA0044 + 16:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * + 17:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** ****************************************************************************** + 18:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 19:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 20:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Includes ------------------------------------------------------------------*/ + 21:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #include "usbd_ioreq.h" + 22:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 23:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @addtogroup STM32_USB_DEVICE_LIBRARY + 24:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 25:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 26:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 27:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 28:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ + 29:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief control I/O requests module + ARM GAS /tmp/ccxQwdeR.s page 2 + + + 30:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 31:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 32:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 33:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ_Private_TypesDefinitions + 34:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 35:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 36:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 37:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @} + 38:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 39:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 40:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 41:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ_Private_Defines + 42:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 43:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 44:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 45:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 46:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @} + 47:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 48:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 49:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 50:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ_Private_Macros + 51:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 52:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 53:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 54:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @} + 55:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 56:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 57:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 58:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ_Private_Variables + 59:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 60:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 61:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 62:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 63:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @} + 64:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 65:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 66:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 67:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ_Private_FunctionPrototypes + 68:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 69:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 70:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 71:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @} + 72:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 73:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 74:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 75:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** @defgroup USBD_IOREQ_Private_Functions + 76:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @{ + 77:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 78:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 79:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 80:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_CtlSendData + 81:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * send data on the ctl pipe + 82:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 83:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param buff: pointer to data buffer + 84:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param len: length of data to be sent + 85:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval status + 86:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + ARM GAS /tmp/ccxQwdeR.s page 3 + + + 87:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** USBD_StatusTypeDef USBD_CtlSendData(USBD_HandleTypeDef *pdev, + 88:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** uint8_t *pbuf, uint32_t len) + 89:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 30 .loc 1 89 1 view -0 + 31 .cfi_startproc + 32 @ args = 0, pretend = 0, frame = 0 + 33 @ frame_needed = 0, uses_anonymous_args = 0 + 34 .loc 1 89 1 is_stmt 0 view .LVU1 + 35 0000 08B5 push {r3, lr} + 36 .LCFI0: + 37 .cfi_def_cfa_offset 8 + 38 .cfi_offset 3, -8 + 39 .cfi_offset 14, -4 + 40 0002 1346 mov r3, r2 + 90:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Set EP0 State */ + 91:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep0_state = USBD_EP0_DATA_IN; + 41 .loc 1 91 3 is_stmt 1 view .LVU2 + 42 .loc 1 91 19 is_stmt 0 view .LVU3 + 43 0004 0222 movs r2, #2 + 44 .LVL1: + 45 .loc 1 91 19 view .LVU4 + 46 0006 C0F89422 str r2, [r0, #660] + 92:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep_in[0].total_length = len; + 47 .loc 1 92 3 is_stmt 1 view .LVU5 + 48 .loc 1 92 31 is_stmt 0 view .LVU6 + 49 000a 8361 str r3, [r0, #24] + 93:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 94:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #ifdef USBD_AVOID_PACKET_SPLIT_MPS + 95:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep_in[0].rem_length = 0U; + 96:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #else + 97:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep_in[0].rem_length = len; + 50 .loc 1 97 3 is_stmt 1 view .LVU7 + 51 .loc 1 97 29 is_stmt 0 view .LVU8 + 52 000c C361 str r3, [r0, #28] + 98:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #endif + 99:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 100:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Start the transfer */ + 101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** (void)USBD_LL_Transmit(pdev, 0x00U, pbuf, len); + 53 .loc 1 101 3 is_stmt 1 view .LVU9 + 54 .loc 1 101 9 is_stmt 0 view .LVU10 + 55 000e 0A46 mov r2, r1 + 56 0010 0021 movs r1, #0 + 57 .LVL2: + 58 .loc 1 101 9 view .LVU11 + 59 0012 FFF7FEFF bl USBD_LL_Transmit + 60 .LVL3: + 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 103:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_OK; + 61 .loc 1 103 3 is_stmt 1 view .LVU12 + 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + 62 .loc 1 104 1 is_stmt 0 view .LVU13 + 63 0016 0020 movs r0, #0 + 64 0018 08BD pop {r3, pc} + 65 .cfi_endproc + 66 .LFE333: + 68 .section .text.USBD_CtlContinueSendData,"ax",%progbits + 69 .align 1 + ARM GAS /tmp/ccxQwdeR.s page 4 + + + 70 .global USBD_CtlContinueSendData + 71 .syntax unified + 72 .thumb + 73 .thumb_func + 75 USBD_CtlContinueSendData: + 76 .LVL4: + 77 .LFB334: + 105:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 106:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 107:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_CtlContinueSendData + 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * continue sending data on the ctl pipe + 109:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 110:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param buff: pointer to data buffer + 111:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param len: length of data to be sent + 112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval status + 113:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 114:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** USBD_StatusTypeDef USBD_CtlContinueSendData(USBD_HandleTypeDef *pdev, + 115:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** uint8_t *pbuf, uint32_t len) + 116:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 78 .loc 1 116 1 is_stmt 1 view -0 + 79 .cfi_startproc + 80 @ args = 0, pretend = 0, frame = 0 + 81 @ frame_needed = 0, uses_anonymous_args = 0 + 82 .loc 1 116 1 is_stmt 0 view .LVU15 + 83 0000 08B5 push {r3, lr} + 84 .LCFI1: + 85 .cfi_def_cfa_offset 8 + 86 .cfi_offset 3, -8 + 87 .cfi_offset 14, -4 + 88 0002 1346 mov r3, r2 + 117:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Start the next transfer */ + 118:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** (void)USBD_LL_Transmit(pdev, 0x00U, pbuf, len); + 89 .loc 1 118 3 is_stmt 1 view .LVU16 + 90 .loc 1 118 9 is_stmt 0 view .LVU17 + 91 0004 0A46 mov r2, r1 + 92 .LVL5: + 93 .loc 1 118 9 view .LVU18 + 94 0006 0021 movs r1, #0 + 95 .LVL6: + 96 .loc 1 118 9 view .LVU19 + 97 0008 FFF7FEFF bl USBD_LL_Transmit + 98 .LVL7: + 119:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 120:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_OK; + 99 .loc 1 120 3 is_stmt 1 view .LVU20 + 121:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + 100 .loc 1 121 1 is_stmt 0 view .LVU21 + 101 000c 0020 movs r0, #0 + 102 000e 08BD pop {r3, pc} + 103 .cfi_endproc + 104 .LFE334: + 106 .section .text.USBD_CtlPrepareRx,"ax",%progbits + 107 .align 1 + 108 .global USBD_CtlPrepareRx + 109 .syntax unified + 110 .thumb + 111 .thumb_func + ARM GAS /tmp/ccxQwdeR.s page 5 + + + 113 USBD_CtlPrepareRx: + 114 .LVL8: + 115 .LFB335: + 122:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 124:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_CtlPrepareRx + 125:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * receive data on the ctl pipe + 126:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 127:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param buff: pointer to data buffer + 128:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param len: length of data to be received + 129:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval status + 130:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 131:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** USBD_StatusTypeDef USBD_CtlPrepareRx(USBD_HandleTypeDef *pdev, + 132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** uint8_t *pbuf, uint32_t len) + 133:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 116 .loc 1 133 1 is_stmt 1 view -0 + 117 .cfi_startproc + 118 @ args = 0, pretend = 0, frame = 0 + 119 @ frame_needed = 0, uses_anonymous_args = 0 + 120 .loc 1 133 1 is_stmt 0 view .LVU23 + 121 0000 08B5 push {r3, lr} + 122 .LCFI2: + 123 .cfi_def_cfa_offset 8 + 124 .cfi_offset 3, -8 + 125 .cfi_offset 14, -4 + 126 0002 1346 mov r3, r2 + 134:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Set EP0 State */ + 135:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep0_state = USBD_EP0_DATA_OUT; + 127 .loc 1 135 3 is_stmt 1 view .LVU24 + 128 .loc 1 135 19 is_stmt 0 view .LVU25 + 129 0004 0322 movs r2, #3 + 130 .LVL9: + 131 .loc 1 135 19 view .LVU26 + 132 0006 C0F89422 str r2, [r0, #660] + 136:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep_out[0].total_length = len; + 133 .loc 1 136 3 is_stmt 1 view .LVU27 + 134 .loc 1 136 32 is_stmt 0 view .LVU28 + 135 000a C0F85831 str r3, [r0, #344] + 137:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 138:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #ifdef USBD_AVOID_PACKET_SPLIT_MPS + 139:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep_out[0].rem_length = 0U; + 140:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #else + 141:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep_out[0].rem_length = len; + 136 .loc 1 141 3 is_stmt 1 view .LVU29 + 137 .loc 1 141 30 is_stmt 0 view .LVU30 + 138 000e C0F85C31 str r3, [r0, #348] + 142:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** #endif + 143:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 144:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Start the transfer */ + 145:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, pbuf, len); + 139 .loc 1 145 3 is_stmt 1 view .LVU31 + 140 .loc 1 145 9 is_stmt 0 view .LVU32 + 141 0012 0A46 mov r2, r1 + 142 0014 0021 movs r1, #0 + 143 .LVL10: + 144 .loc 1 145 9 view .LVU33 + 145 0016 FFF7FEFF bl USBD_LL_PrepareReceive + ARM GAS /tmp/ccxQwdeR.s page 6 + + + 146 .LVL11: + 146:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 147:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_OK; + 147 .loc 1 147 3 is_stmt 1 view .LVU34 + 148:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + 148 .loc 1 148 1 is_stmt 0 view .LVU35 + 149 001a 0020 movs r0, #0 + 150 001c 08BD pop {r3, pc} + 151 .cfi_endproc + 152 .LFE335: + 154 .section .text.USBD_CtlContinueRx,"ax",%progbits + 155 .align 1 + 156 .global USBD_CtlContinueRx + 157 .syntax unified + 158 .thumb + 159 .thumb_func + 161 USBD_CtlContinueRx: + 162 .LVL12: + 163 .LFB336: + 149:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 151:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_CtlContinueRx + 152:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * continue receive data on the ctl pipe + 153:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 154:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param buff: pointer to data buffer + 155:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param len: length of data to be received + 156:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval status + 157:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** USBD_StatusTypeDef USBD_CtlContinueRx(USBD_HandleTypeDef *pdev, + 159:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** uint8_t *pbuf, uint32_t len) + 160:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 164 .loc 1 160 1 is_stmt 1 view -0 + 165 .cfi_startproc + 166 @ args = 0, pretend = 0, frame = 0 + 167 @ frame_needed = 0, uses_anonymous_args = 0 + 168 .loc 1 160 1 is_stmt 0 view .LVU37 + 169 0000 08B5 push {r3, lr} + 170 .LCFI3: + 171 .cfi_def_cfa_offset 8 + 172 .cfi_offset 3, -8 + 173 .cfi_offset 14, -4 + 174 0002 1346 mov r3, r2 + 161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, pbuf, len); + 175 .loc 1 161 3 is_stmt 1 view .LVU38 + 176 .loc 1 161 9 is_stmt 0 view .LVU39 + 177 0004 0A46 mov r2, r1 + 178 .LVL13: + 179 .loc 1 161 9 view .LVU40 + 180 0006 0021 movs r1, #0 + 181 .LVL14: + 182 .loc 1 161 9 view .LVU41 + 183 0008 FFF7FEFF bl USBD_LL_PrepareReceive + 184 .LVL15: + 162:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 163:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_OK; + 185 .loc 1 163 3 is_stmt 1 view .LVU42 + 164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + ARM GAS /tmp/ccxQwdeR.s page 7 + + + 186 .loc 1 164 1 is_stmt 0 view .LVU43 + 187 000c 0020 movs r0, #0 + 188 000e 08BD pop {r3, pc} + 189 .cfi_endproc + 190 .LFE336: + 192 .section .text.USBD_CtlSendStatus,"ax",%progbits + 193 .align 1 + 194 .global USBD_CtlSendStatus + 195 .syntax unified + 196 .thumb + 197 .thumb_func + 199 USBD_CtlSendStatus: + 200 .LVL16: + 201 .LFB337: + 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_CtlSendStatus + 168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * send zero lzngth packet on the ctl pipe + 169:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval status + 171:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** USBD_StatusTypeDef USBD_CtlSendStatus(USBD_HandleTypeDef *pdev) + 173:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 202 .loc 1 173 1 is_stmt 1 view -0 + 203 .cfi_startproc + 204 @ args = 0, pretend = 0, frame = 0 + 205 @ frame_needed = 0, uses_anonymous_args = 0 + 206 .loc 1 173 1 is_stmt 0 view .LVU45 + 207 0000 08B5 push {r3, lr} + 208 .LCFI4: + 209 .cfi_def_cfa_offset 8 + 210 .cfi_offset 3, -8 + 211 .cfi_offset 14, -4 + 174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Set EP0 State */ + 175:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep0_state = USBD_EP0_STATUS_IN; + 212 .loc 1 175 3 is_stmt 1 view .LVU46 + 213 .loc 1 175 19 is_stmt 0 view .LVU47 + 214 0002 0422 movs r2, #4 + 215 0004 C0F89422 str r2, [r0, #660] + 176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 177:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Start the transfer */ + 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** (void)USBD_LL_Transmit(pdev, 0x00U, NULL, 0U); + 216 .loc 1 178 3 is_stmt 1 view .LVU48 + 217 .loc 1 178 9 is_stmt 0 view .LVU49 + 218 0008 0023 movs r3, #0 + 219 000a 1A46 mov r2, r3 + 220 000c 1946 mov r1, r3 + 221 000e FFF7FEFF bl USBD_LL_Transmit + 222 .LVL17: + 179:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_OK; + 223 .loc 1 180 3 is_stmt 1 view .LVU50 + 181:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + 224 .loc 1 181 1 is_stmt 0 view .LVU51 + 225 0012 0020 movs r0, #0 + 226 0014 08BD pop {r3, pc} + 227 .cfi_endproc + ARM GAS /tmp/ccxQwdeR.s page 8 + + + 228 .LFE337: + 230 .section .text.USBD_CtlReceiveStatus,"ax",%progbits + 231 .align 1 + 232 .global USBD_CtlReceiveStatus + 233 .syntax unified + 234 .thumb + 235 .thumb_func + 237 USBD_CtlReceiveStatus: + 238 .LVL18: + 239 .LFB338: + 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 183:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_CtlReceiveStatus + 185:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * receive zero lzngth packet on the ctl pipe + 186:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 187:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval status + 188:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** USBD_StatusTypeDef USBD_CtlReceiveStatus(USBD_HandleTypeDef *pdev) + 190:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 240 .loc 1 190 1 is_stmt 1 view -0 + 241 .cfi_startproc + 242 @ args = 0, pretend = 0, frame = 0 + 243 @ frame_needed = 0, uses_anonymous_args = 0 + 244 .loc 1 190 1 is_stmt 0 view .LVU53 + 245 0000 08B5 push {r3, lr} + 246 .LCFI5: + 247 .cfi_def_cfa_offset 8 + 248 .cfi_offset 3, -8 + 249 .cfi_offset 14, -4 + 191:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Set EP0 State */ + 192:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** pdev->ep0_state = USBD_EP0_STATUS_OUT; + 250 .loc 1 192 3 is_stmt 1 view .LVU54 + 251 .loc 1 192 19 is_stmt 0 view .LVU55 + 252 0002 0522 movs r2, #5 + 253 0004 C0F89422 str r2, [r0, #660] + 193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /* Start the transfer */ + 195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); + 254 .loc 1 195 3 is_stmt 1 view .LVU56 + 255 .loc 1 195 9 is_stmt 0 view .LVU57 + 256 0008 0023 movs r3, #0 + 257 000a 1A46 mov r2, r3 + 258 000c 1946 mov r1, r3 + 259 000e FFF7FEFF bl USBD_LL_PrepareReceive + 260 .LVL19: + 196:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 197:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_OK; + 261 .loc 1 197 3 is_stmt 1 view .LVU58 + 198:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + 262 .loc 1 198 1 is_stmt 0 view .LVU59 + 263 0012 0020 movs r0, #0 + 264 0014 08BD pop {r3, pc} + 265 .cfi_endproc + 266 .LFE338: + 268 .section .text.USBD_GetRxCount,"ax",%progbits + 269 .align 1 + 270 .global USBD_GetRxCount + ARM GAS /tmp/ccxQwdeR.s page 9 + + + 271 .syntax unified + 272 .thumb + 273 .thumb_func + 275 USBD_GetRxCount: + 276 .LVL20: + 277 .LFB339: + 199:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** + 200:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** /** + 201:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @brief USBD_GetRxCount + 202:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * returns the received data length + 203:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param pdev: device instance + 204:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @param ep_addr: endpoint address + 205:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** * @retval Rx Data blength + 206:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** */ + 207:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** uint32_t USBD_GetRxCount(USBD_HandleTypeDef *pdev, uint8_t ep_addr) + 208:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** { + 278 .loc 1 208 1 is_stmt 1 view -0 + 279 .cfi_startproc + 280 @ args = 0, pretend = 0, frame = 0 + 281 @ frame_needed = 0, uses_anonymous_args = 0 + 282 .loc 1 208 1 is_stmt 0 view .LVU61 + 283 0000 08B5 push {r3, lr} + 284 .LCFI6: + 285 .cfi_def_cfa_offset 8 + 286 .cfi_offset 3, -8 + 287 .cfi_offset 14, -4 + 209:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** return USBD_LL_GetRxDataSize(pdev, ep_addr); + 288 .loc 1 209 3 is_stmt 1 view .LVU62 + 289 .loc 1 209 10 is_stmt 0 view .LVU63 + 290 0002 FFF7FEFF bl USBD_LL_GetRxDataSize + 291 .LVL21: + 210:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c **** } + 292 .loc 1 210 1 view .LVU64 + 293 0006 08BD pop {r3, pc} + 294 .cfi_endproc + 295 .LFE339: + 297 .text + 298 .Letext0: + 299 .file 2 "/usr/include/newlib/machine/_default_types.h" + 300 .file 3 "/usr/include/newlib/sys/_stdint.h" + 301 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" + 302 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" + ARM GAS /tmp/ccxQwdeR.s page 10 + + +DEFINED SYMBOLS + *ABS*:00000000 usbd_ioreq.c + /tmp/ccxQwdeR.s:21 .text.USBD_CtlSendData:00000000 $t + /tmp/ccxQwdeR.s:27 .text.USBD_CtlSendData:00000000 USBD_CtlSendData + /tmp/ccxQwdeR.s:69 .text.USBD_CtlContinueSendData:00000000 $t + /tmp/ccxQwdeR.s:75 .text.USBD_CtlContinueSendData:00000000 USBD_CtlContinueSendData + /tmp/ccxQwdeR.s:107 .text.USBD_CtlPrepareRx:00000000 $t + /tmp/ccxQwdeR.s:113 .text.USBD_CtlPrepareRx:00000000 USBD_CtlPrepareRx + /tmp/ccxQwdeR.s:155 .text.USBD_CtlContinueRx:00000000 $t + /tmp/ccxQwdeR.s:161 .text.USBD_CtlContinueRx:00000000 USBD_CtlContinueRx + /tmp/ccxQwdeR.s:193 .text.USBD_CtlSendStatus:00000000 $t + /tmp/ccxQwdeR.s:199 .text.USBD_CtlSendStatus:00000000 USBD_CtlSendStatus + /tmp/ccxQwdeR.s:231 .text.USBD_CtlReceiveStatus:00000000 $t + /tmp/ccxQwdeR.s:237 .text.USBD_CtlReceiveStatus:00000000 USBD_CtlReceiveStatus + /tmp/ccxQwdeR.s:269 .text.USBD_GetRxCount:00000000 $t + /tmp/ccxQwdeR.s:275 .text.USBD_GetRxCount:00000000 USBD_GetRxCount + +UNDEFINED SYMBOLS +USBD_LL_Transmit +USBD_LL_PrepareReceive +USBD_LL_GetRxDataSize diff --git a/squeow_sw/build/usbd_ioreq.o b/squeow_sw/build/usbd_ioreq.o new file mode 100644 index 0000000000000000000000000000000000000000..b3ede2c2f2bd1fc9599e0b0191b89cd82e714986 GIT binary patch literal 12060 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 literal 0 HcmV?d00001 diff --git a/squeow_sw/squeow_codice.ioc b/squeow_sw/squeow_codice.ioc new file mode 100644 index 0000000..e52badc --- /dev/null +++ b/squeow_sw/squeow_codice.ioc @@ -0,0 +1,288 @@ +#MicroXplorer Configuration settings - do not modify +ADC1.Channel-2\#ChannelRegularConversion=ADC_CHANNEL_15 +ADC1.CommonPathInternal=null|null|null|null +ADC1.IPParameters=Rank-2\#ChannelRegularConversion,Channel-2\#ChannelRegularConversion,SamplingTime-2\#ChannelRegularConversion,OffsetNumber-2\#ChannelRegularConversion,NbrOfConversionFlag,master,CommonPathInternal +ADC1.NbrOfConversionFlag=1 +ADC1.OffsetNumber-2\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC1.Rank-2\#ChannelRegularConversion=1 +ADC1.SamplingTime-2\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC1.master=1 +ADC2.Channel-3\#ChannelRegularConversion=ADC_CHANNEL_3 +ADC2.Channel-4\#ChannelRegularConversion=ADC_CHANNEL_3 +ADC2.Channel-5\#ChannelRegularConversion=ADC_CHANNEL_3 +ADC2.Channel-6\#ChannelRegularConversion=ADC_CHANNEL_3 +ADC2.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV2 +ADC2.CommonPathInternal=null|null|null|null +ADC2.EOCSelection=ADC_EOC_SEQ_CONV +ADC2.IPParameters=Rank-3\#ChannelRegularConversion,ClockPrescaler,Channel-3\#ChannelRegularConversion,SamplingTime-3\#ChannelRegularConversion,OffsetNumber-3\#ChannelRegularConversion,NbrOfConversionFlag,Rank-4\#ChannelRegularConversion,Channel-4\#ChannelRegularConversion,SamplingTime-4\#ChannelRegularConversion,OffsetNumber-4\#ChannelRegularConversion,Rank-5\#ChannelRegularConversion,Channel-5\#ChannelRegularConversion,SamplingTime-5\#ChannelRegularConversion,OffsetNumber-5\#ChannelRegularConversion,Rank-6\#ChannelRegularConversion,Channel-6\#ChannelRegularConversion,SamplingTime-6\#ChannelRegularConversion,OffsetNumber-6\#ChannelRegularConversion,NbrOfConversion,EOCSelection,CommonPathInternal +ADC2.NbrOfConversion=4 +ADC2.NbrOfConversionFlag=1 +ADC2.OffsetNumber-3\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC2.OffsetNumber-4\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC2.OffsetNumber-5\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC2.OffsetNumber-6\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC2.Rank-3\#ChannelRegularConversion=1 +ADC2.Rank-4\#ChannelRegularConversion=2 +ADC2.Rank-5\#ChannelRegularConversion=3 +ADC2.Rank-6\#ChannelRegularConversion=4 +ADC2.SamplingTime-3\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC2.SamplingTime-4\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC2.SamplingTime-5\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC2.SamplingTime-6\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +CAD.formats= +CAD.pinconfig= +CAD.provider= +File.Version=6 +GPIO.groupedBy=Group By Peripherals +I2C1.IPParameters=Timing +I2C1.Timing=0x208080C1 +KeepUserPlacement=false +Mcu.CPN=STM32G431KBT6 +Mcu.Family=STM32G4 +Mcu.IP0=ADC1 +Mcu.IP1=ADC2 +Mcu.IP10=USB_DEVICE +Mcu.IP2=I2C1 +Mcu.IP3=NVIC +Mcu.IP4=RCC +Mcu.IP5=SYS +Mcu.IP6=TIM2 +Mcu.IP7=TIM3 +Mcu.IP8=USART1 +Mcu.IP9=USB +Mcu.IPNb=11 +Mcu.Name=STM32G431K(6-8-B)Tx +Mcu.Package=LQFP32 +Mcu.Pin0=PF0-OSC_IN +Mcu.Pin1=PF1-OSC_OUT +Mcu.Pin10=PA7 +Mcu.Pin11=PB0 +Mcu.Pin12=PA9 +Mcu.Pin13=PA10 +Mcu.Pin14=PA11 +Mcu.Pin15=PA12 +Mcu.Pin16=PA13 +Mcu.Pin17=PA14 +Mcu.Pin18=PA15 +Mcu.Pin19=PB3 +Mcu.Pin2=PG10-NRST +Mcu.Pin20=PB7 +Mcu.Pin21=PB8-BOOT0 +Mcu.Pin22=VP_SYS_VS_Systick +Mcu.Pin23=VP_SYS_VS_DBSignals +Mcu.Pin24=VP_TIM2_VS_ClockSourceINT +Mcu.Pin25=VP_TIM3_VS_ClockSourceINT +Mcu.Pin26=VP_USB_DEVICE_VS_USB_DEVICE_AUDIO_FS +Mcu.Pin3=PA0 +Mcu.Pin4=PA1 +Mcu.Pin5=PA2 +Mcu.Pin6=PA3 +Mcu.Pin7=PA4 +Mcu.Pin8=PA5 +Mcu.Pin9=PA6 +Mcu.PinsNb=27 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32G431KBTx +MxCube.Version=6.8.1 +MxDb.Version=DB.6.0.81 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +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.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 +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.TIM3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.USB_LP_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA0.Locked=true +PA0.Signal=S_TIM2_CH1 +PA1.Locked=true +PA1.Signal=S_TIM2_CH2 +PA10.Locked=true +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX +PA11.Mode=Device +PA11.Signal=USB_DM +PA12.Mode=Device +PA12.Signal=USB_DP +PA13.GPIOParameters=GPIO_Label +PA13.GPIO_Label=T_SWDIO +PA13.Locked=true +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.GPIOParameters=GPIO_Label +PA14.GPIO_Label=T_SWCLK +PA14.Locked=true +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA15.Locked=true +PA15.Mode=I2C +PA15.Signal=I2C1_SCL +PA2.Locked=true +PA2.Signal=S_TIM2_CH3 +PA3.Locked=true +PA3.Signal=S_TIM2_CH4 +PA4.GPIOParameters=GPIO_Label +PA4.GPIO_Label=TEMPERATURA +PA4.Locked=true +PA4.Mode=IN17-Single-Ended +PA4.Signal=ADC2_IN17 +PA5.GPIOParameters=GPIO_Label +PA5.GPIO_Label=CORRENTE +PA5.Locked=true +PA5.Mode=IN13-Single-Ended +PA5.Signal=ADC2_IN13 +PA6.GPIOParameters=GPIO_Label +PA6.GPIO_Label=DIRETTA +PA6.Locked=true +PA6.Mode=IN3-Single-Ended +PA6.Signal=ADC2_IN3 +PA7.GPIOParameters=GPIO_Label +PA7.GPIO_Label=RIFLESSA +PA7.Locked=true +PA7.Mode=IN4-Single-Ended +PA7.Signal=ADC2_IN4 +PA9.Locked=true +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX +PB0.GPIOParameters=GPIO_Label +PB0.GPIO_Label=AUDIO_IN +PB0.Locked=true +PB0.Mode=IN15-Single-Ended +PB0.Signal=ADC1_IN15 +PB3.GPIOParameters=GPIO_Label +PB3.GPIO_Label=T_SWO +PB3.Locked=true +PB3.Signal=SYS_JTDO-SWO +PB7.Locked=true +PB7.Mode=I2C +PB7.Signal=I2C1_SDA +PB8-BOOT0.Locked=true +PF0-OSC_IN.Mode=HSE-External-Oscillator +PF0-OSC_IN.Signal=RCC_OSC_IN +PF1-OSC_OUT.Mode=HSE-External-Oscillator +PF1-OSC_OUT.Signal=RCC_OSC_OUT +PG10-NRST.Mode=Clock-out +PG10-NRST.Signal=RCC_MCO +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32G431KBTx +ProjectManager.FirmwarePackage=STM32Cube FW_G4 V1.5.1 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=squeow_codice.ioc +ProjectManager.ProjectName=squeow_codice +ProjectManager.ProjectStructure= +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=Makefile +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM2_Init-TIM2-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_ADC1_Init-ADC1-false-HAL-true,7-MX_ADC2_Init-ADC2-false-HAL-true,8-MX_USART1_UART_Init-USART1-false-HAL-true,9-MX_USB_Device_Init-USB_DEVICE-false-HAL-false +RCC.ADC12Freq_Value=98304000 +RCC.AHBFreq_Value=98304000 +RCC.APB1Freq_Value=98304000 +RCC.APB1TimFreq_Value=98304000 +RCC.APB2Freq_Value=98304000 +RCC.APB2TimFreq_Value=98304000 +RCC.CK48CLockSelection=RCC_USBCLKSOURCE_HSI48 +RCC.CRSFreq_Value=48000000 +RCC.CortexFreq_Value=98304000 +RCC.EXTERNAL_CLOCK_VALUE=12288000 +RCC.FCLKCortexFreq_Value=98304000 +RCC.FDCANFreq_Value=98304000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=98304000 +RCC.HSE_VALUE=12288000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=98304000 +RCC.I2C2Freq_Value=98304000 +RCC.I2C3Freq_Value=98304000 +RCC.I2SFreq_Value=98304000 +RCC.IPParameters=ADC12Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLM,PLLN,PLLPoutputFreq_Value,PLLQ,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,RCC_MCO1Source,RNGFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value +RCC.LPTIM1Freq_Value=98304000 +RCC.LPUART1Freq_Value=98304000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=12288000 +RCC.PLLM=RCC_PLLM_DIV2 +RCC.PLLN=32 +RCC.PLLPoutputFreq_Value=98304000 +RCC.PLLQ=RCC_PLLQ_DIV4 +RCC.PLLQoutputFreq_Value=49152000 +RCC.PLLRCLKFreq_Value=98304000 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.PWRFreq_Value=98304000 +RCC.RCC_MCO1Source=RCC_MCO1SOURCE_HSE +RCC.RNGFreq_Value=48000000 +RCC.SAI1Freq_Value=98304000 +RCC.SYSCLKFreq_VALUE=98304000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=170000000 +RCC.USART1Freq_Value=98304000 +RCC.USART2Freq_Value=98304000 +RCC.USART3Freq_Value=170000000 +RCC.USBFreq_Value=48000000 +RCC.VCOInputFreq_Value=6144000 +RCC.VCOOutputFreq_Value=196608000 +SH.S_TIM2_CH1.0=TIM2_CH1,PWM Generation1 CH1 +SH.S_TIM2_CH1.ConfNb=1 +SH.S_TIM2_CH2.0=TIM2_CH2,PWM Generation2 CH2 +SH.S_TIM2_CH2.ConfNb=1 +SH.S_TIM2_CH3.0=TIM2_CH3,PWM Generation3 CH3 +SH.S_TIM2_CH3.ConfNb=1 +SH.S_TIM2_CH4.0=TIM2_CH4,PWM Generation4 CH4 +SH.S_TIM2_CH4.ConfNb=1 +TIM2.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 +TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 +TIM2.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3 +TIM2.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 +TIM2.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4,PeriodNoDither,PulseNoDither_1,PulseNoDither_2,PulseNoDither_3,PulseNoDither_4 +TIM2.PeriodNoDither=2047 +TIM2.PulseNoDither_1=500 +TIM2.PulseNoDither_2=1000 +TIM2.PulseNoDither_3=1500 +TIM2.PulseNoDither_4=2000 +TIM3.IPParameters=PeriodNoDither,Prescaler +TIM3.PeriodNoDither=199 +TIM3.Prescaler=49152 +USART1.IPParameters=VirtualMode-Asynchronous +USART1.VirtualMode-Asynchronous=VM_ASYNC +USB_DEVICE.CLASS_NAME_FS=AUDIO +USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS +USB_DEVICE.VirtualMode=Audio +USB_DEVICE.VirtualModeFS=Audio_FS +VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals +VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM2_VS_ClockSourceINT.Mode=Internal +VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT +VP_TIM3_VS_ClockSourceINT.Mode=Internal +VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT +VP_USB_DEVICE_VS_USB_DEVICE_AUDIO_FS.Mode=AUDIO_FS +VP_USB_DEVICE_VS_USB_DEVICE_AUDIO_FS.Signal=USB_DEVICE_VS_USB_DEVICE_AUDIO_FS +board=NUCLEO-G431KB +boardIOC=true diff --git a/squeow_sw/startup_stm32g431xx.s b/squeow_sw/startup_stm32g431xx.s new file mode 100644 index 0000000..9ea4773 --- /dev/null +++ b/squeow_sw/startup_stm32g431xx.s @@ -0,0 +1,497 @@ +/** + ****************************************************************************** + * @file startup_stm32g431xx.s + * @author MCD Application Team + * @brief STM32G431xx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address, + * - Configure the clock system + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M4 processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + * Copyright (c) 2019 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. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m4 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF1E0F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/****************************************************************************** +* +* The minimal vector table for a Cortex-M4. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_PVM_IRQHandler + .word RTC_TAMP_LSECSS_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word 0 + .word ADC1_2_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word FDCAN1_IT0_IRQHandler + .word FDCAN1_IT1_IRQHandler + .word EXTI9_5_IRQHandler + .word TIM1_BRK_TIM15_IRQHandler + .word TIM1_UP_TIM16_IRQHandler + .word TIM1_TRG_COM_TIM17_IRQHandler + .word TIM1_CC_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USBWakeUp_IRQHandler + .word TIM8_BRK_IRQHandler + .word TIM8_UP_IRQHandler + .word TIM8_TRG_COM_IRQHandler + .word TIM8_CC_IRQHandler + .word 0 + .word 0 + .word LPTIM1_IRQHandler + .word 0 + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word 0 + .word TIM6_DAC_IRQHandler + .word TIM7_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word 0 + .word 0 + .word UCPD1_IRQHandler + .word COMP1_2_3_IRQHandler + .word COMP4_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word CRS_IRQHandler + .word SAI1_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word FPU_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word RNG_IRQHandler + .word LPUART1_IRQHandler + .word I2C3_EV_IRQHandler + .word I2C3_ER_IRQHandler + .word DMAMUX_OVR_IRQHandler + .word 0 + .word 0 + .word DMA2_Channel6_IRQHandler + .word 0 + .word 0 + .word CORDIC_IRQHandler + .word FMAC_IRQHandler + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_PVM_IRQHandler + .thumb_set PVD_PVM_IRQHandler,Default_Handler + + .weak RTC_TAMP_LSECSS_IRQHandler + .thumb_set RTC_TAMP_LSECSS_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak ADC1_2_IRQHandler + .thumb_set ADC1_2_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak FDCAN1_IT0_IRQHandler + .thumb_set FDCAN1_IT0_IRQHandler,Default_Handler + + .weak FDCAN1_IT1_IRQHandler + .thumb_set FDCAN1_IT1_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak TIM1_BRK_TIM15_IRQHandler + .thumb_set TIM1_BRK_TIM15_IRQHandler,Default_Handler + + .weak TIM1_UP_TIM16_IRQHandler + .thumb_set TIM1_UP_TIM16_IRQHandler,Default_Handler + + .weak TIM1_TRG_COM_TIM17_IRQHandler + .thumb_set TIM1_TRG_COM_TIM17_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USBWakeUp_IRQHandler + .thumb_set USBWakeUp_IRQHandler,Default_Handler + + .weak TIM8_BRK_IRQHandler + .thumb_set TIM8_BRK_IRQHandler,Default_Handler + + .weak TIM8_UP_IRQHandler + .thumb_set TIM8_UP_IRQHandler,Default_Handler + + .weak TIM8_TRG_COM_IRQHandler + .thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler + + .weak TIM8_CC_IRQHandler + .thumb_set TIM8_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak TIM6_DAC_IRQHandler + .thumb_set TIM6_DAC_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak UCPD1_IRQHandler + .thumb_set UCPD1_IRQHandler,Default_Handler + + .weak COMP1_2_3_IRQHandler + .thumb_set COMP1_2_3_IRQHandler,Default_Handler + + .weak COMP4_IRQHandler + .thumb_set COMP4_IRQHandler,Default_Handler + + .weak CRS_IRQHandler + .thumb_set CRS_IRQHandler,Default_Handler + + .weak SAI1_IRQHandler + .thumb_set SAI1_IRQHandler,Default_Handler + + .weak FPU_IRQHandler + .thumb_set FPU_IRQHandler,Default_Handler + + .weak RNG_IRQHandler + .thumb_set RNG_IRQHandler,Default_Handler + + .weak LPUART1_IRQHandler + .thumb_set LPUART1_IRQHandler,Default_Handler + + .weak I2C3_EV_IRQHandler + .thumb_set I2C3_EV_IRQHandler,Default_Handler + + .weak I2C3_ER_IRQHandler + .thumb_set I2C3_ER_IRQHandler,Default_Handler + + .weak DMAMUX_OVR_IRQHandler + .thumb_set DMAMUX_OVR_IRQHandler,Default_Handler + + .weak DMA2_Channel6_IRQHandler + .thumb_set DMA2_Channel6_IRQHandler,Default_Handler + + .weak CORDIC_IRQHandler + .thumb_set CORDIC_IRQHandler,Default_Handler + + .weak FMAC_IRQHandler + .thumb_set FMAC_IRQHandler,Default_Handler +